Geschiedenis van de pc local bus

Wat is 'Local Bus'?

Geschiedenis van PC bussystemen door Kees Stravers

Tegenwoordig hoor je er niet meer bij als er geen 'Local bus' in je PC zit. Maar wat is dat nu precies? Hier een toelichting.

Wat is een bus eigenlijk? Eerst even door een beetje theorie heenbijten, oftewel hoe zat een computer ook al weer in elkaar.

Als eerste is er de microprocessor. Dit is de chip die in de computer al het werk doet. Hij luistert naar de naam 8088, 286, 386, 486 enz enz. Zonder microprocessor geen computer. Die microprocessor moet de opdrachten die hij moet uitvoeren en de informatie waar hij mee moet werken, ergens kunnen opslaan. De opdrachten en gegevens waar hij op het ogenblik mee bezig is, zitten in kleine geheugenlokaties in de processor zelf: de registers. Het volledige programma en de bijbehorende gegevens zitten in het interne geheugen, oftewel het RAM geheugen.

Vroeger werd RAM in kilobytes gemeten, tegenwoordig meer in MegaBytes. Een byte is een geheugenplaats waarin 1 teken, of 1 opdracht opgeslagen kan worden. 1 kilobyte is 1024 bytes, en 1 megabyte is 1024 kilobytes. In een intern geheugen van 1 megabyte kunnen dus 1024 x 1024 tekens en/of opdrachten worden opgeslagen. Een byte bestaat uit 8 bits. Een bit is de kleinste hoeveelheid informatie waarmee een computer kan werken: aan of uit. Elke mogelijke combinatie van 8 bits (een byte dus) heeft een betekenis gekregen: een opdracht aan de processor, of de weergave van een teken.

RAM betekent Random Access Memory, oftewel willekeurig toegankelijk geheugen. De computer kan hierin zowel lezen als schrijven. Er zijn in een moderne PC een heleboel soorten RAM geheugen: normaal, extended/XMS, expanded/EMS, UMB, HMA, shadow, enz enz. Over deze materie zal ik later een apart artikel schrijven. RAM geheugen heeft 1 nadeel: als je de computer uitschakelt, verdwijnt alle informatie er uit. Maar hoe kan een computer dan opstarten?

Er zit ook een klein beetje ROM geheugen in een computer. ROM is Read Only Memory, geheugen waaruit de computer alleen maar kan lezen. Hier staat in hoe de computer moet beginnen met opstarten. Een PC heeft een BIOS ROM. BIOS betekent Basic Input/Output System. Behalve het opstartprogramma staan er ook nog een boel subroutines in waarmee programmatuur die op de computer draait makkelijk met de hardware kan communiceren. Ook zit er vaak een Setup programma in, om de hardware in te kunnen stellen. Ook hierover meer in een volgend artikel.

Nog even doorbijten, het onderwerp 'bus' komt er al aan.

Tussen de microprocessor en het interne ROM en RAM geheugen moet er natuurlijk een verkeersweg zijn, omdat de microprocessor anders nooit in het geheugen kan kijken. Deze verkeersweg moet ook leiden langs alle toestellen die verder nog op de processor moeten worden aangesloten, om de computer compleet te maken, zoals

Deze verkeersweg is de bus.

Een gedeelte van de bus loopt over het moederbord (de printkaart onderin een PC) tussen de daarop aanwezige onderdelen (processor, geheugen, toetsenbordaansluiting, klokschakeling en soms ook een floppy/harddiskbesturingsgedeelte en de serieele en parallele poorten, zoals bij de Philips PC's). Maar de bus valt het meeste op waar hij naar buiten is uitgevoerd: de 'slots' links bovenaan in de computerkast. Dit zijn de connectors waar de uitbreidingskaarten in gestoken worden die de computer compleet maken, zoals de beeldschermkaart, floppy/harddisk controllerkaart en par./ser. poorten als deze laatsten niet op het moederbord zitten.

De originele IBM PC was op deze wijze opgebouwd om hem zo universeel mogelijk te maken. Iedere klant kon een computer naar eigen wens samenstellen. De originele bus van de Intel 8088 microprocessor die in de allereerste IBM PC zat, werd met enkele hulpsignalen en met wat beschermbuffers er tussen direct aan de slots aangeboden. Stak je daar dan een kaart in, dan kon deze kaart rechtstreeks met de processor communiceren, op de volle snelheid van de processor, precies hetzelfde alsof de electronica van de insteekkaart op het moederbord zelf zou zijn geplaatst. De processor had een snelheid van 4,77 Mhz, en de informatie ging met 4,77 Mhz over de bus slots. Iedereen was tevreden, want dat was de bedoeling. (Bij een computer betekent Mhz het aantal miljoen acties per seconde die de processor uitvoert. Hoe meer Mhz, hoe sneller.)

De bus van de IBM PC, en wat later ook van de IBM PC XT, is een 8 bits systeem. De 8088 rekent intern wel met 16 bits tegelijk, maar communiceert met de buitenwereld in hoopjes van 8 bits. IBM koos voor deze processor omdat 16 bit ondersteunende hulpchips in die tijd nog zeer duur en moeilijk verkrijgbaar waren, maar voor 8 bits systemen was er keus genoeg, en IBM wilde snel een persoonlijke computer op de markt hebben, om ook in dit gedeelte van de markt een apparaat te kunnen aanbieden. (In die tijd deed IBM alleen in de hele grote systemen wat.)

Enkele jaren later kwam IBM met de PC AT. In de AT werd de 286 microprocessor gebruikt, een snellere processor met veel meer mogelijkheden dan de 8088. In de AT liep hij op een snelheid van eerst 6, en bij latere modellen zelfs op 8 Mhz. Deze processor is een 16 bitter, oftewel hij communiceert met de buitenwereld in happen van 16 bits, twee bytes tegelijk. Voor deze 8 extra bits en nog wat nieuwe hulpsignalen werd de PC bus met een extra, wat kleinere connector uitgebreid. Deze werd voor de connector die bij de XT al gebruikt gemonteerd. Het principe van de bus bleef hetzelfde: de insteekkaarten konden op de volle snelheid met de complete microprocessor communiceren. Processor 8 Mhz, dan de bus ook 8 Mhz. Processor 16 bits, bus 16 bits. dankzij de extra connector bleven de XT insteekkaarten bruikbaar. Een XT kaart maakte alleen gebruik van de achterste connector, en een AT kaart gebruikte allebei de connectors.

Maar toen begonnen de problemen.

Enkele jaren later kwam Intel met de 386 processor. Nog sneller dan de 286, nog meer mogelijkheden, en nog meer bits. De 386 is namelijk een 32 bits processor, hij kan 32 bits oftewel 4 bytes tegelijk versturen. IBM deed er erg lang over om met een computer te komen waar de 386 in gebruikt werd. De 'klonen' industrie, oftewel de fabrikanten die een dikbelegde boterham verdienen met het verkopen van IBM compatibele PC's, waren er echter als de kippen bij om systemen te maken waar de 386 in gebruikt werd. Toen was er echter een probleem: wat doen we met de bus?

IBM was na de 16 bit AT op zijn lauweren gaan rusten, dus een 32 bit bus-slot definitie zou er wel niet snel komen. De klonenfabrikanten besloten om toen maar de 16 bit AT bus-slots te blijven gebruiken, zodat alle bekende insteekkaarten nog gewoon te gebruiken waren en je geen compatibiliteitsproblemen kreeg. Dan kon je een 386 moederbord op de plaats van een 286 moederbord monteren in een AT en de computer bleef gewoon werken, met behoud van alles wat er al in zat gebouwd en gestoken (maar dan sneller natuurlijk.)

Maar de fabrikanten waren niet blij met deze ontwikkeling. Ze durfden de bus niet sneller te laten lopen dan de 8 Mhz van de AT, terwijl de 386 al op minimaal 16 Mhz liep, en daarna nog sneller werd. En de 386 was 32 bits, dus als die de bus slots op wilde, moest hij twee 16 bits acties achter elkaar doen. Lastig, want daar werd de boel een stuk minder snel door dan wat eigenlijk mogelijk was. En snelheid inleveren terwijl het eigenlijk niet nodig is, daar houden wij niet van. Hier moest iets op bedacht worden.

Er is toen een tijdje een wildgroei geweest, waarbij bijna iedere fabrikant een eigen 32 bits uitbreiding op de AT bus had. Lastig, want dan kon je de 32 bits kaarten van de ene fabrikant niet in het apparaat van een ander gebruiken. Een aantal andere fabrikanten loste het probleem op door alles wat vroeger op een insteekkaart zat, op het moederbord te integreren, zodat er alleen nog lege slots over bleven. Vooral als je de beeldscherm aansturing en de hard disk controller op die manier weer rechtstreeks op de processor aansloot, dus zonder de trage AT bus er tussen, kreeg je een zeer snel computersysteem wat nog goedkoper te maken was ook, want je hoefde maar 1 printkaart in de kast te stoppen. Een aantal PC's van Philips is op deze wijze opgebouwd. (Je moet voor de aardigheid maar eens wat snelheidsmetingen doen op een bv. 16 Mhz computer met VGA op het moederbord en een 16 Mhz computer met VGA op een insteekkaart. Je zult zien dat de computer met het VGA op het moederbord veel sneller is met de beeldafhandeling.)

Toen kwam IBM eindelijk met zijn eigen 32 bits systemen, met de 386 processor. Maar was was er gebeurd tot ieders verbijstering: er zat een totaal nieuwe bus in die computers, die in het geheel niet compatible was met de PC, XT of AT bus. Het betrof hier de IBM MCA bus. De Micro Channel Architecture was razendsnel, 32 bits dus weer volledige communicatie met de processor, en had een heleboel nieuwe mogelijkheden waardoor je uiterst ingenieuze computers kon maken, maar er pasten alleen maar MCA insteekkaarten in. Dat was een probleem.

Een heleboel computerfabrikanten zijn toen bij elkaar gaan zitten en hebben de EISA standaard afgesproken, Extended Industry Standard Architecture. (De 8 Mhz, 16 bit AT bus kreeg de naam ISA, Industry Standard Architecture.) Dit was ook een uiterst ingenieus 32 bits systeem met een heleboel nieuwe mogelijkheden en een zeer hoge snelheid, maar hier kon je wel nog de oude 8 en 16 bits kaarten in steken. Dat was al beter. Een EISA slot heeft twee 'verdiepingen', twee rijen aansluitingen boven elkaar in elk slot. Een gewone kaart gebruikt alleen de bovenste verdieping, maar een EISA kaart kan dankzij speciale inkepingen verder het slot inzakken en behalve de bovenste, ook de onderste verdieping met de speciale extra signalen gebruiken. Dit systeem vereist uiterst nauwkeurig gemaakte connectors en kaarten.

De MCA en de EISA bus hadden allebei een belangrijk nadeel. Omdat het zulke snelle en zeer uitgebreide systemen waren, waren ze ook nogal duur. Er waren speciale besturingschipsets nodig om de bus op een moederbord te kunnen gebruiken. Je zag al snel dat de goedkopere systemen de ISA bus bleven gebruiken, en dat alleen de high-end systemen, waarbij men zeer hoge snelheiden wenste en niet op een paar knaken keek, MCA of EISA hadden.

Maar het bleef bij de klonenfabrikanten jeuken dat de ISA bus goedkoop, maar langzaam was. Vooral toen de 486 processor er kwam, ook een 32 bits processor en nog veel sneller dan de 386, was een snelle bus extra nodig. De jacht begon naar een goedkope oplossing om toch een 32 bits bus met de snelheid van de processor aan te kunnen bieden, zodat ook goedkope computers uiterst snelle beeldscherm- en harddiskbesturing konden hebben, zonder dat het sloten geld ging kosten. Hieruit is de Local Bus ontstaan: een snelle 32 bit uitbreiding op de standaard 16 bits AT bus, die snelheden van 33 en 50 Mhz aan kan, en goedkoop gerealiseerd kan worden omdat de extra buscontrollerchip en connectors die je er voor nodig hebt niet duur zijn.

Ook nu zijn er verschillende fabrikanten die ieder een eigen local bus hebben. De grootste kanshebber is echter de VESA VL-bus. VESA is een organisatie van ongeveer 130 computerfabrikanten. De VESA bus is een uitbreiding op de AT ISA bus. Er is een extra connector voor de AT bus connector geplaatst, net zoals de AT bus een uitbreiding was van de PC XT bus. Als je geen Local Bus kaarten hebt, kun je gewone XT of AT kaarten in het slot steken. (De andere local bus standaarden hebben een eigen systeem, waar geen standaard ISA kaarten in passen.) Een VESA local bus moederbord is maar een fractie duurder dan een gewoon moederbord, dus je zult ze in de toekomst in de snelle 486 systemen steeds vaker tegenkomen. (Local bus op een langzaam 386 systeem heeft geen zin.)

Naast de VESA local bus is ook de PCI local bus in opkomst. Dit is niet een connector die voor een bestaand ISA slot is geplaatst, maar een geheel nieuwe slotdefinitie. PCI moederborden hebben dan ook zowel PCI als ISA slots naast elkaar zitten, van ieder drie of vier. De VESA local bus is sneller en goedkoper, maar de PCI local bus is uitgebreider, kan meer geavanceerde toepassingen aan en is al 64 bit voorbereid. Dit kan bij VESA alleen door voor de VESA local bus connector weer een connector voor te plaatsen waar dan de 64 bit uitbreiding op zit, net zoals ISA van 8 naar 16 gegaan is. Hierdoor zullen 64 bit VESA borden erg lang worden. De PCI bus wordt wegens zijn zeer geavanceerde mogelijkheden door een aparte chipset bestuurd, waardoor PCI moederborden wat duurder zijn dan VESA LB moederborden. De uiteindelijke keuze zal wel zoals altijd bepaald worden door voor welke bus de beste insteekkaarten te koop zullen zijn.

Want waar gaat het om: als je profijt van de Local Bus wilt hebben, moet je ook local bus insteekkaarten gebruiken. Pas met een local bus VGA kaart heb je de razendsnelle beeldschermaansturing, waar OS/2, Windows en dergelijke grafische programma's een heel stuk van opknappen. Maar een gewone VGA kaart in een local bus moederbord geeft niet meer dan gewone snelheid.

Kees Stravers