Geheugenadres

index in een computergeheugen

Het werkgeheugen van een computer bestaat uit een groot aantal kleine eenheden van dezelfde grootte. Elk van deze eenheden is toegankelijk via een uniek nummer. Dit nummer wordt een geheugenadres (Eng: memory address) genoemd.

De adresseerbare eenheden van het geheugen zijn meestal bytes (8 bits). Alleen voor heel eenvoudige processors, zoals in toetsenborden, worden wel 4-bits processors gebruikt.

De fysieke geheugeneenheden ('woorden') zijn tegenwoordig[(sinds) wanneer?] meestal groter, namelijk 32-bits (4 bytes) of 64-bits (8 bytes). Dit betekent dat elke eenheid 1 woord aan data kan bevatten. Dit heet de woordbreedte van een computer. Er bestaan computers met woordbreedtes van meer dan 64 bits. Vroeger heeft men wel computers gemaakt met een woordbreedte van 12 en 48 bits, maar dit is tegenwoordig[(sinds) wanneer?] niet meer gebruikelijk.

Adresruimte

bewerken

Geheugenadressen worden doorgaans geschreven in hexadecimale vorm. Een geheugen van bijvoorbeeld 64KiB kan geadresseerd worden met de 16-bits adressen 000016 tot en met FFFF16. De 8-bits processors uit de jaren 80 hadden doorgaans een adresruimte van deze grootte. Tegenwoordig[(sinds) wanneer?] is een adresruimte van gigabytes gebruikelijk, en dit neemt alsmaar toe. Voor het adresseren van 4 gigabyte is een 32-bits adres nodig.

Adresbus

bewerken

De microprocessor heeft aan de buitenkant een aantal verbindingen die de adresbus heten. Op deze verbindingen (32 stuks in het geval van een 32-bits adresbus) komt het adres te staan waarvan de processor de waarde uit het geheugen wil lezen of schijven. De data worden via de databus uitgewisseld. De grootte hiervan is gelijk aan de woordbreedte van de computer.

Meer over het geheugen

bewerken

Swapping

bewerken

In de wat grotere computersystemen verwijst een geheugenadres in een actief programma vaak niet meer rechtstreeks naar het geheugenadres dat aangeboden wordt aan de geheugenchips. De memory manager, beheerd door het besturingssysteem, zit hier nog tussen. Deze vertaalt de logische adressen (zoals de software ze ziet) naar fysieke adressen (zoals de hardware ze ziet). Het belangrijkste nut hiervan is dat weinig gebruikte stukken geheugen tijdelijk op de harde schijf bewaard kunnen worden. Dit mechanisme wordt swapping genoemd. Het logische geheugen dat op deze manier wel te adresseren is, maar niet direct adresseerbaar is (omdat het naar de schijf geswapt is) heet virtueel geheugen.

Computers die met het systeem van een adresseerbaar geheugen werken (dit zijn bijna alle computers) heten Von Neumann-computers. Zowel het uit te voeren programma als de gegevens staan in dit geheugen. Het gegeven dat minder informatie over de databus gestuurd kan worden dan de microprocessor kan verwerken heet de Von Neuman bottleneck.

Er bestaan ook computers die niet volgens de Von Neumann-architectuur werken. De zogenaamde Harvard-architectuur. Dit is slechts een variant op Von Neumann waarbij de adres/databussen voor data en instructies gescheiden zijn.

Zie de categorie Memory addressing van Wikimedia Commons voor mediabestanden over dit onderwerp.