Jeden slot staci … dokud te nezabije kapacita sbernice (jejiz vliv jde omezit snizenim taktu), tak se jeden jediny slot da rozbocit klidne na 8. Mel jsem tak v desce se tremi ISA sloty 6 karet (2 normalne a 4 ve stromecku na 4 ISA sloty).
Dokonce nekde mam 8bit extender na ISA. Dlouha karta plna svabu, na ni asi trirady konektor, od toho 2cm tlusty kabel, druha karta, ta se zabodne do desky s 8mi ISAmi,
zdrojem a par kondiky a jede to. Mel jsem pres to pripojenou k AMD292@83MHz 8-bit soundblaster a hercules. ALe je to jenom 8bit, takze i kdybych to vyhrabal, tak to problem zvukovek asi neresi.
Řekl bych, že o kvalitě popisu ISA by se dalo s velkým úspěchem pochybovat. Kdysi jsem stavěl synchroní komunikační HDLC adapter na ISA s možností bus master DMA. V podstatě jednoduchá karta s pár CPLD, procesorem, komunikačním obvodem atd. Oživení bus master bylo něco neuvěřitelného právě díky dokumentaci. Některé signály měly opačný směr, časování byla černá magie, některé motherboardy nevyvstavovaly wait stavy, ale počítaly s tím, že data půjdou dostatečně pomalu. Bez dobrého logičáku se tím nedalo udělat vůbec nic. Nakonec jsem to uchodil, ale bylo to hodně složité. Je potřeba si uvědomit, že na rozdíl od PCI nebyla žádná oficiální dokumentace a většina dostupných zdrojů v té době popis sběrnice pouze odhadovala. Co se týká vystavování dat na ISA, tak adresa se posílala souběžně s daty protože ISA měla separátní adresovou a datovou sběrnici. Vystavení adresy v prvním taktu a pak dat přišlo až s PCI, kde adresy a data sdílí jednu sběrnici. Na ISA bylo dokonce možno přesunout data z/do paměti do/z I/O během (tuším – je už to hodně dávno) dvou cyklů. Využíval se trik se souběžným vystavením memory read a I/O write (a opačně).
Hehe, podobnou zkusenost jsem mel taky, ale kupodivu s PCI. Predchozi karta pro ISA byla v pohode. Ale to bylo hlavne pouzitym PCI radicem na karte, ke kterymu byla dokumentace stylem: 100 stran popisu + 50 stran oprav k tomu popisu :-)
Mas ale pravdu v tom, ze busmaster na ISA karte byl slozitejsi (logicky) nez jen jednoduche prenosy bajtu pomoci procesoru nebo DMA.
No já jsem si tehdá (1996) ten ISA řadič postavil sám. Použil jsem 4 kousky Lattice (tuším,žě 2064). Oživení přístupu pomocí portů, přerušení a DMA byla celkem brnkačka ale BM DMA byl, díky špatné dokumentaci, opravdový problém. Co se týká desek s PCI, PCI-X tak to bylo podstatně jednodušší. Musím ale přiznat, že to už nedělám já, ale lidi z týmu, který teď vedu. Asi největší problém jsme měli při oživování karty s VIRTEXem 5 a PCI-e x8. Dosáhnout reálnou propustnost přes 10Gb/s zabralo hodně času. Hlavně se na tom podepsala kvalita XILINXích nástrojů, kterou asi nemá smysl moc komentovat. No, nakonec to ale jede pěkně.
Ještě poznámka k rep movsd a architektuře x86–32 a PCI sběrnici. Při zápisu (CPU → karta PCI) se spustí PCI burst bez problémů, ale naopak při čtení (karta PCI → CPU) se při použití rep movsd burst nespustí (je to problém CPU a ne chipsetu). Dost jsem se s tím natrápil, protože to činní propustnost PCI (33MHz) jen slabé 2–3MB/s v režimu čtení. Trošku tomu pomůže využít 128bitových registrů SSE a kopírovat naráz 16byte, což způsobí alespoň burst přenos 4 slov a přenosová rychklost stoupne na pořád ubohých 20MB/s. Jestli má někdo lepší řešení u karet, co nejsou masterbus, sem s ním :)
Hojně se pro VL Bus používala také frekvence 25 MHz. Byla prakticky ve všech noteboocích s 486 procesory (používaly se s procesory DX2 50MHz a DX4 75MHz). V noteboocích VL Bus tehdy dost frčela. Později se dala najít ještě na lowend konfiguracích třeba IBM ThinkPadů s prvními Pentium procesory. (ThinkPady měly vůbec docela zajímavou desku složenou z mnoha modulů. Když u inovované verze hlavní desky přidali podporu PCI, bylo možné připojit VBL i PCI VGA modul tím samým speciálním konektorem.)