Basiskennis informatica/Primair geheugen: verschil tussen versies

Uit Wikibooks
Verwijderde inhoud Toegevoegde inhoud
Dolledre (overleg | bijdragen)
sp
ElieDeBrauwer (overleg | bijdragen)
Regel 27: Regel 27:


== Volgorde van bytes ==
== Volgorde van bytes ==

Een computer bezit een geheugen, dit geheugen is een soort gigantisch kladblok waar data in geschreven kan worden, om makkelijk data terug te vinden zijn er geheugen adressen. Een 32 bit computer heeft zo geheugenadressen die bestaan uit 32 bits. Zo kunnen dus <math>2^{32}</math> verschillende geheugenlocaties aangesproken worden. Indien een geheugenlocatie (de kleinste adresseerbare hoeveelheid) bijvoorbeeld 1 byte bevat beslaat het geheugen maximaal <math>2^{32}</math> bytes
(of 4.294.967.296 byte, zijnde een geheugenlimiet van 4 gigabyte op een standaard x86 machine). Het opslaan van een enkele byte is dus geen enkel probleem. Wanneer men 0xAF wegschrijft op adres 0x12341234 dan zal dit perfect lukken en dan zal deze byte er steeds zo uitkomen. Nu kan een enkele byte niet bijster veel informatie bevatten, amper 256 <math>2^{8}</math> verschillende waarden. De oplossing is simpel, gebruik gewoon meer bytes gebruiken. Een mooi voorbeeld is een standaard IP adres. Neem 192.168.1.1 bijvoorbeeld, dit is een 32 bits getal en vereist dus 4 bytes.


=== Big endian ===
=== Big endian ===
Regel 33: Regel 36:


=== Fouten bij omzetting ===
=== Fouten bij omzetting ===



== Cache geheugen ==
== Cache geheugen ==

Versie van 23 okt 2006 09:33

Basiseenheid voor verwerking - Bit

De basiseenheid van verwerking is een binaire digit (afgekort: bit). Een bit heeft twee toestanden: een 0 of een 1. Deze twee toestanden kunnen voorgesteld worden in andere (fysische) grootheden zoals spanning, stroom, licht...

Een voorstelling van een decimaal getal met bits kan via de BCD-notatie. (Binary Coded Decimal). Hierbij zal men elke decimale digit (= teken) voorstellen door zijn binair equivalent. Aangezien een teken een waarde kan aannemen van 0 tot en met 9 zijn er 4 bits nodig om elk teken voor te stellen (3 bit kan slechts 8 verschillende waarden voorstellen, dit zijn er twee te weinig voor de reeks van 0 tot en met 9).

decimaal: 1971 <=> BCD: 0001 1001 0111 0001 <=> binair: 11110110011


Geheugenadressen

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

Byte
De adresseerbare eenheden van het geheugen zijn meestal bytes (8 bits). Alleen voor hele simpele processoren, zoals die in toetsenborden gebruikt worden, worden wel 4-bits processoren gebruikt.

Woord
De fysieke geheugeneenheden (woorden) zijn tegenwoordig meestal groter, namelijk 32-bits (4 bytes) of 64-bits (8 bytes). 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 niet meer gebruikelijk.

Adresruimte
Zulke adressen worden doorgaans geschreven in hexadecimale vorm. Bijvoorbeeld, een geheugen van 64kB kan geadresseerd worden door met de adressen van 000016 tot en met FFFF16. Dit is een 16-bits adres. De 8-bits processoren uit de jaren 80 hadden doorgaans een adresruimte van deze grootte. Tegenwoordig is een adresruimte van gigabytes gebruikelijk, en dit neemt alsmaar toe. Voor het adresseren van 4 gigabyte is een 32-bits adres nodig.

Adresbus
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 van het adres te staan waarvan de processor de waarde uit het geheugen wil lezen of schijven. De data wordt via de databus uitgewisseld. De grootte hiervan is gelijk aan de woordbreedte van de computer.

Volgorde van bytes

Een computer bezit een geheugen, dit geheugen is een soort gigantisch kladblok waar data in geschreven kan worden, om makkelijk data terug te vinden zijn er geheugen adressen. Een 32 bit computer heeft zo geheugenadressen die bestaan uit 32 bits. Zo kunnen dus verschillende geheugenlocaties aangesproken worden. Indien een geheugenlocatie (de kleinste adresseerbare hoeveelheid) bijvoorbeeld 1 byte bevat beslaat het geheugen maximaal bytes (of 4.294.967.296 byte, zijnde een geheugenlimiet van 4 gigabyte op een standaard x86 machine). Het opslaan van een enkele byte is dus geen enkel probleem. Wanneer men 0xAF wegschrijft op adres 0x12341234 dan zal dit perfect lukken en dan zal deze byte er steeds zo uitkomen. Nu kan een enkele byte niet bijster veel informatie bevatten, amper 256 verschillende waarden. De oplossing is simpel, gebruik gewoon meer bytes gebruiken. Een mooi voorbeeld is een standaard IP adres. Neem 192.168.1.1 bijvoorbeeld, dit is een 32 bits getal en vereist dus 4 bytes.

Big endian

Little endian

Fouten bij omzetting

Cache geheugen

Het cachegeheugen is een geheugen in een computer dat sneller toegankelijk is dan waar de gegevens eigenlijk opgeslagen zijn. Wanneer informatie wordt verkregen op een langzame manier dan kan het in een cache geplaatst worden zodat de computer wanneer die gegevens een volgende keer nodig zijn ze uit het cache kan halen in plaats van de langzame manier te herhalen. Dit principe heet een cache en het wordt op allerlei plaatsen gebruikt.

Level 1

Dit is een klein stukje geheugen dat bijzonder snel is en zich op de CPU zelf bevindt. Normaal gesproken wordt het gebruikt om instructies vast te houden terwijl ze worden uitgevoerd. L1 cache zit fysiek tussen de registers van de CPU en de L2 cache.

Level 2

Dit is een stukje snel geheugen wat zich tussen L1 cache en het "hoofd" geheugen van de computer. Vaak is dit groter als de L1 cache. L1 cache spreekt eerst L2 cache aan voordat het hoofdgeheugen van de computer aangesproken wordt. Over het algemeen buffert L2 cache hetzelfde als L1 cache.

Level 3

Daar steeds meer CPU bouwers zowel L1 als L2 cache in de CPU gaan bouwen, is er L2 cache bedacht als extra cache tussen L2 en het "hoofd"-geheugen van de computer.

Geheugentypen

Geheugenchips

Verklaar ROM, PROM, EPROM, EEPROM, flash, SRAM en DRAM


SIMM

Single Inline Memory Module (SIMM) zijn RAM-modules die het eigenlijke werkgeheugen van een computer vormen. SIMM is een verouderde variant van het huidige DIMM-systeem, ze worden anno 2005 nauwelijks meer verkocht.

SIMM-modules gebruiken contactpunten aan 1 kant van de module. Hierdoor is het aantal contactpunten op een SIMM-kaart lager dan het aantal op een DIMM-kaart. Er bestaan 2 varianten, een 3.5 inch formaat met 30 contactvlakjes, en een 4.25 inch formaat met 72 contactvlakjes.

De 30 pin-variant kan 8-bit dataverkeer aan. Met een breedte van de geheugenbus van 32-bits zijn daarom altijd modules in veelvouden van 4 nodig. De variant met 72 pinnen kan 32-bit dataverkeer aan, waardoor slechts 1 kaart nodig is voor het zelfde effect. Systemen met een geheugenbusbreedte van 64-bits zouden veelvouden van 8 respectievelijk 2 modules nodig hebben, ware het niet dat dergelijke systemen meestal alleen geschikt zijn voor de modernere DIMM modules.

DIMM

Dual Inline Memory Modules (DIMM) zijn RAM-modules die het eigenlijke werkgeheugen van een computer vormen. DIMM's zijn de modernere versies van het verouderende SIMM-systeem. Ze heten "Dual" omdat ze in tegenstelling tot SIMM's aan beide kanten van het 'reepje' een printplaat en aansluitcontactpunten hebben zitten. DIMM's zijn verkrijgbaar in verschillende versies, o.a. 5 volt en 3 volt, gebufferd of ongebufferd, SDR SDRAM (168 aansluitingen) of DDR SDRAM (184 aansluitingen). SDR staat voor Single Data Rate en DDR staat voor Dual Data Rate en slaat op het aantal bits dat het geheugen per kloktik kan verwerken. SDRAM staat voor Synchronous Dynamic RAM.

De oorspronkelijke SDR versie werden verkocht in de varianten PC66. PC100 en PC133, waar het getal de doorvoersnelheid van de geheugenbus in MHz aangeeft. Bij de modernere varianten wordt de doorvoersnelheid in (Mega)bytes per seconde weergegeven, omdat de modules per keer 32 bits = 4 bytes kunnen transporteren zijn deze getallen een stuk hoger, bijvoorbeeld PC2100, PC2700 of PC3200 voor resp. een 533, 677 of 800 Mhz bus.

De meeste recente AMD en Pentium gebaseerde PC's gebruiken ofwel SDR SDRAM in de goedkopere versies of DDR SDRAM in de high-end modellen, beide op 3,3 volt. Deze laatsten hebben een doorvoersnelheid die twee keer zo hoog ligt als die van SDR SDRAM (vandaar de benaming DDR: Dual Data Rate).

SDRAM

SDRAM staat voor Synchronous Dynamic Random Access Memory. Deze heeft een volledig andere architectuur dan DRAM en is daarom beduidend sneller. Dit geheugentype is er alleen als 168-polige DIMM module voor systemen met een bussnelheid van 66 MHz, 100 MHz en 133 MHz.

RIMM

Rambus Inline Memory Module (RIMM) is een geheugensoort voor de computer naast de gangbare DIMM en oudere SIMM. Dit geheugen is echter van het bedrijf Rambus Inc. en is in staat veel hogere datasnelheden te behalen door een hogere bussnelheid (tot wel 1200 Mhz). Deze snelheden kunnen oplopen tot 10.8 GB/s als ze in Quad-channel zijn uitgevoerd. Het geheugen op een RIMM noemt men ook wel RDRAM, met daarvoor de aanduiding in wat voor channel-specificatie het is. Dus bijvoorbeeld SDR RDRAM, DDR RDRAM of QDR RDRAM.

Dit geheugen is relatief duur en vereist een speciale chipset. Daardoor wordt het bij de thuis-pc haast nooit toegepast en ziet men het enkel bij high-end workstations en servers.

RIMMs kunnen alleen in paren worden gebruikt, dus twee of vier chips op één moederbord. Alle geheugensloten moeten ook opgevuld worden. De gebruikelijk lege sloten worden dan opgevuld met zogenaamde CRIMMs. Dit zijn als het ware lege RIMMs. CRIMMs zorgen er alleen voor dat de stroompjes worden doorgegeven zodat er een elektronisch circuit ontstaat.

DDR-SDRAM

DDR staat voor Double Data Rate, en is een techniek die gebruikt wordt in computergeheugens.

Geheugens werken aan een bepaalde frequentie, en gebruiken daarbij een kloksignaal. Bij vroegere geheugens, zoals SD-RAM, kon het geheugen alleen gegevens verwerken als het kloksignaal van een lage spanning naar een hoge spanning ging (de zogenaamde opgaande flank). DDR-geheugens kunnen per kloktik tweemaal zoveel data transporteren, omdat zowel op de op- als neergaande flank van het kloksignaal een bit vervoerd wordt. Door gebruik van DDR-geheugens kan de snelheid van het hele computersysteem aanzienlijk toenemen.

DDR2 is de tweede versie van Double Data Rate SDRAM. Het grootste verschil met DDR-SDRAM is dat er 4 bits tegelijk worden uitgelezen, in plaats van de gebruikelijke 2 bits. Om de aanvoer van de extra bits bij te kunnen houden is de I/O-buffer tweemaal sneller gemaakt. Door dit allemaal is er tweemaal zoveel bandbreedte ten opzichte van DDR-SDRAM. Er worden dus gewoon nog steeds 2 bitjes per kloktik verstuurd, echter de klok is tweemaal sneller.

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.