Woordbreedte: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Richardw (overleg | bijdragen)
k →‎Steeds grotere woordbreedtes: stijl (destijds/destijds)
RobbertS (overleg | bijdragen)
k Onjuist spatiegebruik.
Regel 1:
'''Woordbreedte''' is een term waarmee de breedte van een machinewoord in bits in een [[computer]] wordt aangegeven. Meestal wordt bij de woordbreedte gesproken over de woordbreedte die de [[microprocessor]] intern gebruikt om zijn berekeningen uit te voeren, ofwel de breedte van de [[registergeheugen|dataregisters]] en het [[Arithmetic logic unit|rekengedeelte]]. Er wordt bijvoorbeeld gesproken van 4-, 8-, 16-, 32- en 64 -bitsprocessoren. [[Motorola]] heeft ooit een 1 -bitprocessor ontwikkeld, die zeer populair was voor industriële toepassingen.<ref>{{en}}[http://www.linurs.org/mc14500.html MC14500B - een industriële 1 -bit processor]</ref>
 
== Woordbreedte ==
De woordbreedte van een [[processor (computer)|processor]] bepaalt op hoeveel data de processor per [[klokpuls]] bewerkingen uitvoert. Een processor met een grotere woordbreedte kan dus per klokpuls bewerkingen op meer data uitvoeren. Een 32 -bitsprocessor kan dus tweemaal zoveel data per klokpuls verplaatsen als een 16 -bitsprocessor.
 
Indien getallen opgeteld worden kan een 32 -bitsprocessor getallen van 0 tot en met 4.294.967.295 optellen (2<sup>32</sup> - 1) terwijl een 16 -bitsprocessor getallen van 0 tot en met 65.535 (2<sup>16</sup> - 1) kan optellen. In dit geval zal de 32 -bitsprocessor alleen sneller zijn als getallen groter dan 65.535 voorkomen, aangezien de 32 -bitsprocessor deze getallen met 1 optelinstructie kan optellen, terwijl de 16 -bitsprocessor geen instructie heeft om zulke grote getallen op te tellen en daarom de bewerking met losse, afzonderlijke instructies zal moeten simuleren.
 
== Vergroten ==
Regel 14:
Het vergroten van de woordbreedte heeft ook nadelen voor de snelheid, namelijk er moet grotere blokken data naar de processor gevoerd worden. Omdat de snelheid van [[computergeheugen|geheugen]] eindig is, is een processor met een grotere woordbreedte hier in het nadeel. Een grotere woordbreedte heeft normaliter ook tot gevolg dat de programmacode meer plaats in neemt. Een laatste effect is dat sommige instructies trager worden bij een grotere woordbreedte. Voert u maar eens een vermenigvuldiging uit op papier onder elkaar zoals u het op school geleerd hebt. Indien u grotere getallen gebruikt, hebt u meer werk. De computer voert de vermenigvuldiging op exact dezelfde wijze uit. Bij een optelbewerking wordt de opteleenheid twee keer zo breed gemaakt zodat er geen extra werk is. Bij vermenigvuldigen lukt dit niet, omdat uw papiertje bij grotere getallen niet alleen breder wordt, maar ook langer.
 
Over het algemeen heeft een verdubbeling van de woordbreedte in de computergeschiedenis een voordelig effect gehad. Echter, iedere overstap op een grotere woordbreedte heeft een steeds kleiner effect gehad. Bijgevolg zullen er vermoedelijk nog wel 128 -bitsprocessoren komen, maar of we ooit 1024 -bitsprocessoren zullen gebruiken valt ernstig te betwijfelen.
 
== Adresseerbaar geheugen ==
In het meest simpele ontwerp van een processor voor zowel de programmeur als de processorontwerper bestaat een [[pointer (programmeerconcept)|pointer]] uit het nummer van één van de bytes in het geheugen. Als een processor dan een woordbreedte van 32 bits heeft dan kan je maximaal 2<sup>32</sup> = 4.294.967.296 verschillende bytes aanwijzen. Dat is dan de maximale hoeveelheid geheugen die zo'n processor kan aanspreken, in dit geval dus 4&nbsp;[[Gigabyte]]. Bij een 16 -bitsprocessor is dat 64 [[kilobyte]] en bij een 8 -bitsprocessor slechts 256 bytes. Dat zijn kleinere hoeveelheden dan meestal gewenst is en daarom gebruiken processoren met kleine woordbreedten vaak een ingewikkelder systeem.
 
De [[6502 (processor)|6502]], een 8 -bitsprocessor, gebruikte de eerste 256 bytes van het geheugen voor de zogenaamde "zeropage". Op een willekeurige plaats in de zeropage kon dan een 16 -bitgetal geplaatst worden en de processor beschikte over een speciale zeropageadresseermode zodat pointers die in deze zeropage waren geplaatst efficiënt gebruikt konden worden. Hiermee kon de 6502 64&nbsp;kilobyte geheugen aan.
 
De [[8086 (processor)|8086]], een 16 -bitsprocessor, gebruikte het roemruchte segment/offset-systeem. Hierbij bestond een pointer uit twee 16 -bitwaarden, het segment en een offset. De eigenlijke geheugenlocatie werd berekend als volgt:
 
<math>geheugenlocatie = 16 \times segment + offset</math>
Regel 32:
Aangezien een grotere woordbreedte meer transistoren vereist (de extra bits hebben immers ook logica nodig die ze verwerkt), had men in de eerste jaren weinig andere keus dan op de woordbreedte te bezuinigen. Behalve "alles-in-één"-processoren waren er ook "bit-slice"-bouwstenen beschikbaar waarmee computerbouwers zelf processoren met woordbreedte naar keuze konden samenstellen. Dergelijke processoren bestonden dan uit tientallen [[Geïntegreerde schakeling|IC]]'s op een [[printplaat]] en zijn niet te vergelijken met de huidige processoren.
 
Begin [[1980-1989|jaren tachtig]] was het aantal transistoren een minder groot probleem geworden, en in 32 -bitsprocessoren bleek het mogelijk ontwerpvereenvoudigingen door te voeren waardoor ze niet veel meer transistoren vereisten dan 16 -bitsprocessoren. Eén van de redenen hiervoor was dat maximaal 4&nbsp;GB voldoende geheugen was en de complexere systemen voor geheugenadressering zoals we hierboven beschreven overbodig werden.
 
Echter, men koos toch vooral voor 16 -bitsprocessoren vanwege beperkingen die printplaatontwerpen met zich meebrachten. Vanwege de strakke timing die voor de geheugens van destijds nodig was was er erg weinig vrijheid bij het ontwerpen van printplaten en was het bijzonder lastig om voldoende stroombanen voor een 32 -bitsprocessor op een printplaat te krijgen.
 
In die tijd was de [[homecomputer]]revolutie losgebarsten en was er extra druk op computerfabrikanten om hun printplaten eenvoudig te houden. Bijgevolg moest de zegetocht van de 32 -bitsprocessor wachten tot de tweede helft van de jaren tachtig.
 
Tegenwoordig is het ontwerp van de printbanen op een [[moederbord]] nog steeds geen eenvoudige kwestie. Een aantal technieken hebben het mogelijk gemaakt dat we op de huidige stand van techniek gekomen zijn. Een belangrijke ontwikkeling zijn de moderne geheugens die met een zekere vertragingstijd rekening houden. Moderne moederborden bestaan verder uit vele lagen printbanen die bovenop elkaar geplakt zijn.