Wereld DRAM-markt. Dynamisch RAM-geheugen

Het belangrijkste kenmerk van DRAM is dynamische gegevensopslag. Dit maakt het mogelijk om herhaaldelijk informatie in het RAM-geheugen te schrijven, maar tegelijkertijd is het nodig om de gegevens voortdurend bij te werken. In feite vindt het herschrijven elke 15 µs plaats. Er is ook statisch willekeurig toegankelijk (of cache) geheugen (S-RAM), waarvoor geen constante gegevensupdate vereist is. Beide typen werken alleen als de computer is ingeschakeld. RAM is fysiek een set chips waarmee verbinding is gemaakt systeembord. Omdat de kenmerken van deze microschakelingen heel verschillend zijn, moeten ze voor normaal gebruik compatibel zijn met het systeem.

Momenteel worden drie soorten geheugenapparaten gebruikt: ROM (alleen-lezen geheugen), DRAM (Dynamic Random Access Memory), S-RAM (Static RAM).

Momenteel wordt DRAM in de meeste moderne computers gebruikt. Het belangrijkste voordeel van dit type geheugen is de extreem dichte celophoping, waardoor u geheugen met een grote capaciteit kunt creëren, terwijl het apparaat zelf zeer weinig ruimte in beslag neemt. Elke cel is een microcondensator die ladingen vasthoudt (de aan- of afwezigheid van ladingen en stukjes informatie worden gecodeerd). Het grootste probleem van een dergelijk geheugen is de noodzaak om de lading voortdurend te regenereren, anders zal de condensator "leeglopen", wat tot gegevensverlies zal leiden. De ingebouwde controller met een regeneratiefrequentie van 15 μs zorgt voor de update en dus voor de veiligheid. Bij moderne computers die op ultrahoge frequenties werken, duurt het regeneratieproces niet meer dan 1% van de bedrijfstijd van de processor. Daarom heeft het geen zin om de tijd tussen cycli te verlengen - dit zal de werking van de processor niet significant beïnvloeden, en bovendien kan het leiden tot ontlading van de condensator en als gevolg daarvan tot gegevensverlies.

Kenmerken van DRAM

De geheugenstructuur lijkt op een tabel, waarbij eerst een rij en vervolgens een kolom wordt geselecteerd. Deze tabel is onderverdeeld in banken. Geheugen met een dichtheid van minder dan 64 Mbit (SDRAM) heeft 2 banken, hoger - 4. In het bijzonder biedt DDR2 SDRAM-geheugen 4-bit voorlopig systeem monsters. DDR2 werkt op een spanning van 1,8 V. Overigens werkten de eerste DDR's op een spanning van 2,6 V. De laatste tijd is de DDR3-standaard, die een 8-bits samplingsysteem heeft en werkt op een spanning van 1,5 V, steeds populairder geworden. populair, dezelfde doorvoer op de helft van de kloksnelheid. Het duurt langer om een ​​lijn te openen bij de bank die u gebruikt dan bij een andere (aangezien de lijn die u gebruikt eerst moet worden gesloten). Het is duidelijk beter om een ​​nieuwe lijn te openen bij een nieuwe bank (het principe van afwisselende lijnen is hierop gebaseerd). De populariteit van DRAM wordt verklaard door de relatieve lage prijs en de extreem dichte verpakking van chipcellen, waardoor een klein apparaat een zeer grote capaciteit kan hebben. De nadelen zijn onder meer lage prestaties, die veel langzamer zijn dan processors. Om dit nadeel te ondervangen, zijn er verschillende soorten DRAM-organisatie.

tijdstippen

Meestal staat er op de geheugenchip of in de documentatie daarvoor een inscriptie van vier cijfers, zoals 3-4-4-8 of 5-5-5-15. Dit is een afkorting van basisgeheugentimings. Timing is een vertraging die de tijd instelt die nodig is om een ​​commando uit te voeren, dat wil zeggen de tijd vanaf het verzenden van een commando tot de uitvoering ervan. En elk getal geeft precies aan hoeveel tijd er nodig is. Het timingschema omvat vertragingen CL-Trcd-Trp-Tras. Om met geheugen te werken, moeten we eerst de chip selecteren waarmee we gaan werken. Dit gebeurt met de opdracht CS# (Chip Select). Vervolgens worden de bank en de lijn geselecteerd. Voordat u met een lijn gaat werken, moet u deze activeren. Dit wordt gedaan met het RAS# lijnselectiecommando (wanneer een lijn wordt geselecteerd, wordt deze geactiveerd). Vervolgens moet u de kolom selecteren met het CAS#-commando, waarmee het lezen wordt gestart. Lees vervolgens de gegevens en sluit de lijn, waarbij u de bank vooraf oplaadt.

Dynamisch geheugen van welk type dan ook, heeft, in tegenstelling tot statisch geheugen, zelfs wanneer voedingsspanning wordt toegepast, niet de mogelijkheid om zijn informatie voor onbepaalde tijd op te slaan. De toestand van een dynamische geheugeneenheidcel wordt bepaald door de aan- of afwezigheid van lading op de condensator, en deze lading is onderhevig aan lekkage. Om gegevens in het dynamische geheugen op te slaan, moeten de cellen daarom periodiek worden opgeladen, wat de essentie is van het regeneratieproces. Hieronder ziet u hoe dit gebeurt.
Wanneer een leesbewerking wordt uitgevoerd, wordt de regeneratie automatisch uitgevoerd. De op de signaalversterker ontvangen gegevens worden onmiddellijk teruggeschreven. Er wordt aangenomen dat een dergelijk algoritme het aantal vereiste regeneraties kan verminderen en de prestaties kan verbeteren. Maar dit is absoluut niet waar! Of informatie nu uit het geheugen wordt gelezen of niet, de regeneratiefrequentie verandert niet. Het is ofwel helemaal niet gereguleerd (er zijn geen overeenkomstige opties in de "BIOS Setup"), of wordt strikt vastgelegd na de juiste instellingen.

Er zijn drie verschillende methoden voor gegevensregeneratie mogelijk.

Regeneratie met één RAS (RAS Only Refresh - ROR). Deze methode werd gebruikt in de eerste DRAM-chips. Het adres van de geregenereerde lijn wordt overgedragen naar de adresbus en het RAS-signaal wordt afgegeven (net als bij lezen of schrijven). In dit geval wordt een rij cellen geselecteerd en de gegevens daarvan worden naar de interne circuits van de microschakeling gestuurd en vervolgens teruggeschreven. Omdat er geen CAS-signaal meer is, begint de lees-/schrijfcyclus niet. Vervolgens wordt het adres van de volgende rij verzonden, enzovoort, totdat de gehele geheugenmatrix is ​​doorlopen, waarna de regeneratiecyclus wordt herhaald. De nadelen van deze methode zijn onder meer het feit dat de adresbus bezet is en dat op het moment van regeneratie de toegang tot andere computersubsystemen wordt geblokkeerd.
CAS Before RAS (CAS Before RAS - CBR) is de standaard regeneratiemethode. In een normale lees-/schrijfcyclus arriveert RAS altijd als eerste, gevolgd door CAS. Als CAS vóór RAS arriveert, begint een speciale regeneratiecyclus: CBR. In dit geval wordt het rijadres niet verzonden en gebruikt de chip zijn interne teller, waarvan de inhoud bij elke CBR-cyclus met 1 wordt verhoogd (de zogenaamde rijadresincrement). In deze modus kunt u geheugen regenereren zonder de adresbus te bezetten, wat zeker zuiniger is.
Automatische geheugenregeneratie (Self Refresh - SR of zelfregeneratie). Deze methode wordt meestal gebruikt in de energiebesparende modus, wanneer het systeem in een "slaapstand" ("suspend") gaat en de klokoscillator niet meer werkt. In deze toestand is het bijwerken van het geheugen met behulp van de hierboven beschreven methoden onmogelijk (er zijn eenvoudigweg geen signaalbronnen) en voert de geheugenchip zelf regeneratie uit. Het start zijn eigen generator, die de interne regeneratiecircuits klokt. Deze geheugentechnologie werd geïntroduceerd met de komst van EDO DRAM. Opgemerkt moet worden dat het geheugen in de slaapmodus zeer weinig stroom verbruikt.
In de klassieke PC AT-implementatie werden verzoeken om DRAM-regeneratie gegenereerd door kanaal 1 van de systeemtimer 8254. Er is een trigger verbonden met de uitgang, die in telmodus werkt en bij elk verzoek de status naar de tegenovergestelde verandert. Via bit 4 van poort 61h is de toestand van deze flip-flop programmatisch uit te lezen. Inspectie Vernieuwen Wissel was om te controleren of deze trigger op een bepaalde frequentie schakelt. Maar na verloop van tijd begonnen andere algoritmen voor geheugenregeneratie te worden gebruikt (zoals hierboven beschreven), en ondanks het feit dat Vernieuwen Wissel wordt behouden vanwege compatibiliteit; het kan niet langer worden gebruikt om het genereren van regeneratieverzoeken te controleren. Regeneratiecycli worden uitgevoerd door de regeneratiecontroller die in de chipset zit en die elke 15,6 μs snelwegcontrole moet ontvangen om zijn taak te kunnen uitvoeren. Tijdens de regeneratiecyclus wordt één van N geheugencellen gelezen.

Burst vernieuwen

- (batchregeneratie). In de regel is de interpretatie van deze optie in de literatuur onjuist. Wanneer de optie is ingeschakeld ("Ingeschakeld"), worden verzoeken om regeneratie verzameld in één enkel pakket, en een dergelijke verpakking kan in sommige gevallen zorgen voor de accumulatie van verzoeken over het gehele aantal rijen in het geheugen. Deze methode leidt tot een aanzienlijke toename van de productiviteit, maar die zijn er ook achterkant. Gedurende vrij lange tijd en constant wordt de geheugenbus vastgelegd, wat leidt tot het blokkeren van de toegang daartoe door de processor of andere apparaten.
De optie heet mogelijk "DRAM Burst Refresh".

CAS vóór RAS vernieuwen

Een geheugenregeneratiemethode waarbij het CAS-signaal vóór het RAS-signaal wordt geplaatst. In tegenstelling tot de standaard regeneratiemethode vereist deze methode geen opsomming van rijadressen van buiten de geheugenchips; er wordt gebruik gemaakt van een interne adresteller. Deze regeneratiemethode moet echter worden ondersteund door geheugenchips. Als je eerder zinnen tegenkwam dat de meeste geheugenmodules deze regeneratiemethode ondersteunen, is dit nu al een standaard hardwareoplossing. Het gebruik van deze methode kan het energieverbruik van geheugenmodules aanzienlijk verminderen. Kan waarden aannemen:
"Ingeschakeld" - toegestaan,
"Gehandicapt" - verboden.
De optie kan "CAS Before RAS" worden genoemd.

CAS-naar-RAS vernieuwingsvertraging

Deze optie kan werken als de vorige (of soortgelijke) optie is ingeschakeld in dit geval de vertragingstijd tussen stroboscoopsignalen wordt ingesteld (in systeembuscycli). Uiteraard leidt het instellen van een lagere waarde tot een afname van de tijd die aan regeneratie wordt besteed. Een grotere waarde verhoogt de betrouwbaarheid, d.w.z. betrouwbaarheid van gegevens in het geheugen. De optimale optie voor een bepaald systeem wordt experimenteel geselecteerd. Kan waarden aannemen: "1T", "2T" (standaard).

Gelijktijdig vernieuwen

- (parallelle of concurrerende regeneratie). Wanneer deze optie is ingeschakeld, hebben zowel de regeneratiehardware als de CPU gelijktijdige geheugentoegang. In dit geval hoeft de processor niet te wachten totdat regeneratie plaatsvindt. Wanneer u de optie instelt op "Uitgeschakeld", zal de processor moeten wachten totdat het regeneratiecircuit klaar is met werken. Uiteraard verbetert het inschakelen van de optie de systeemprestaties.

Ontkoppeld vernieuwen

- (afzonderlijke regeneratie). Omdat de ISA-bus een lage werksnelheid heeft, zorgt het inschakelen van deze optie (“Enabled”) ervoor dat de chipset de regeneratie voor het hoofdgeheugen en de ISA-bus gescheiden kan houden. In dit geval kan het regeneratieproces voor de ISA-bus worden voltooid terwijl de processor andere instructies uitvoert. Het gebruik van deze optie verhoogt de prestaties van het hele systeem aanzienlijk. Deze optie speelde een belangrijke rol in de tijd van 486 auto's.
Maar een probleem dat zich kon voordoen, was dat sommige uitbreidingskaarten (meestal videokaarten) de aandacht van de processor vereisten tijdens de initiële busregeneratiecyclus. Uiteraard kan dit tot ongewenste faalsituaties leiden. Het uitschakelen van de optie kan ook nodig zijn als er bij het werken met grafische modi met hoge resolutie enkele symbolen of “sneeuw” op het beeldscherm verschijnen. In dit geval was het nodig om een ​​dergelijke methode voor het werken met geheugen als "Memory Relocation" uit te schakelen (zie hierboven). Het bovenstaande was bijvoorbeeld typisch voor videokaarten op de S3 801-chip (zoals SPEA V7 Mirage), die samenwerkten met enkele door Adaptec vervaardigde controllerkaarten met uitgebreid ROM-geheugen dat nodig is voor het onderhoud van harde schijven met een capaciteit van meer dan 1 GB .
De optie kan "Ontkoppelde vernieuwingsoptie" worden genoemd.

Gedistribueerde vernieuwing

- (gedistribueerde regeneratie). Het is niet helemaal duidelijk wat er onder deze optie “verborgen” is, hoewel er wordt aangenomen dat het een analogie is van “afzonderlijke regeneratie”. Ooit was deze optie te vinden in systemen op basis van chipsets van VIA Technologies. Optiewaarden: "Uitgeschakeld" en "Ingeschakeld".

DRAM vooruit vernieuwen

Een optie waarmee u de "anticipatie"-modus voor de regeneratiecyclus kunt inschakelen ("Ingeschakeld"). De essentie van deze "vooruitziende blik" zal duidelijker worden uit de volgende optie, die actief wordt wanneer de toestemming is ingeschakeld.
x DRAM vooruit vernieuwingstijdstip
- Met deze optie kunt u in principe de start van de regeneratiecyclus met 10 of 40 systeemklokcycli “terugdringen”. Klein, maar toch een prestatieverbetering. Dergelijke unieke opties zijn geïmplementeerd in systemen op basis van de SIS540-kit en zijn nog nooit ergens anders gezien.

DRAM Burst bij 4 vernieuwen

Deze optie heeft ook betrekking op batchregeneratie, maar de essentie ervan is anders. Als u de optie (“Enabled”) inschakelt, wordt regeneratie van 4 lijnen per batch mogelijk. Deze methode verbetert de productiviteit aanzienlijk. In dit geval wordt de bus veel sneller vrijgegeven dan in het geval van de optie "Burst Refresh".

DRAM CAS# Voorladen

- (CAS-voorlaadtijd). Deze functie wordt gebruikt als het systeem over een synchroon dynamisch geheugen beschikt en met zijn hulp (in systeembusklokken) de tijd instelt voor het genereren van het CAS-signaal (CAS-ladingsaccumulatie) vóór het begin van de geheugenregeneratiecyclus (zie hieronder voor aanvullende informatie "DRAM RAS# Voorlaadtijd" ). Het verlagen van deze waarde verhoogt de prestaties, maar er kunnen problemen zijn met de systeemstabiliteit als tegelijkertijd de "borderline" -waarden voor de RAS-flitser worden ingesteld. Als de waarde (tijd) te laag wordt ingesteld, kan de regeneratie bovendien niet worden voltooid, wat uiteindelijk zal leiden tot verlies van gegevens in het geheugen.
De optie kan de volgende namen hebben: "CAS# Precharge", "CAS# Precharge Time", "FPM CAS# Precharge", "FPM DRAM CAS Precharge", "EDO/FPM CAS Precharge Time", "EDO CAS# Precharge" , "EDO DRAM CAS-voorlading".
Alle genoemde opties verschillen niet in een grote verscheidenheid aan betekenissen. "1T", "2T" of deze serie: "1T", "1T/2T", "2T". De optie "CAS Precharge Period" voegde wat variatie toe: "1T", "2T", "3T", "4T".

DRAM RAS Alleen vernieuwen

Schakel de DRAM-vernieuwingsmethode in/uit, alternatief voor de "CAS-before-RAS"-methode. Als het BIOS andere opties voor geheugenregeneratie bevat, moet deze optie worden uitgeschakeld. Anders moet u deze verouderde geheugenupgrademethode gebruiken.

DRAM RAS# Voorlaadtijd

- (RAS-voorlaadtijd). Deze functie wordt gebruikt wanneer het systeem over een synchroon dynamisch geheugen beschikt en stelt u in staat de tijd (in systeembusklokken) in te stellen voor het genereren van het RAS-signaal (ook wel RAS-ladingsaccumulatie genoemd) voordat de geheugenregeneratiecyclus begint. In feite stelt dit een minimuminterval in tussen twee opeenvolgende lees- of schrijfcycli. Als u deze waarde verlaagt, worden de prestaties verhoogd. Maar als de tijd onvoldoende is ingesteld, kan de regeneratie onvolledig zijn, wat uiteindelijk zal leiden tot verlies van gegevens in het geheugen. Uiteraard wordt een verhoging van de frequentie waarmee het geheugen werkt gevolgd door de keuze voor een hogere waarde, wat belangrijk is bij het overklokken van het geheugen. Mogelijke waarden kunnen in verschillende vormen worden gepresenteerd: als digitale waarden - “3”, “4”, enz.; systeemklokken aangeven - "3 Klokken" of "1T". En de gegeneraliseerde reeks betekenissen heeft dat ook volgende weergave: 0T, 1T, 2T, 3T, 4T, 5T, 6T, hoewel er in elke specifieke optie 2-4 waarden kunnen worden weergegeven.
De optie kan vele namen hebben: "DRAM RAS# Precharge Period", "RAS# Precharge Time", "RAS Precharge Timing", "RAS# Precharge Period", "FPM DRAM RAS# Precharge", "FPM RAS Precharge", " RAS # Precharge", "DRAM RAS Precharge", "EDO RAS Precharge", "EDO RAS# Precharge Time", "EDO RAS Precharge Timing", "FPM/EDO RAS# Precharge Time", "EDO/FPM RAS Precharge Time" .
Zoals u kunt zien, heeft de optie zijn relevantie niet verloren met de komst van EDO-geheugen en, interessant genoeg, ook BEDO- en SDRAM-modules, aangezien deze parameter een van de de belangrijkste kenmerken geheugenchips: "BEDO RAS Precharge", "SDRAM RAS Precharge Time".
Toegegeven, naast de gebruikelijke parameters zoals "3T" of "2 Clks" (deze waarden zijn typisch voor SDRAM-modules), begonnen er nieuwe soorten waarden te verschijnen in verschillende BIOS-versies, zoals: "Hetzelfde als FPM ” en “FPM-1T”, "Snel" en "Normaal", "Snel" en "Langzaam". Voor het laatste paar parameters is ‘Slow’ (langzaam) gelijk aan een toename van het aantal klokcycli, wat de stabiliteit van het systeem vergroot. Daarom moet de ‘Fast’-waarde worden ingesteld als u vertrouwen heeft in de kwaliteit van het systeem. de geheugenmodules. Wat het eerste paar betreft, voor opties als “FPM DRAM RAS# Precharge” zouden een aantal waarden er als volgt uit kunnen zien: 2T, 3T, 4T, 5T, 6T, en dus een mogelijk resultaat voor SDRAM-geheugen, hoewel helemaal niet voor de hand liggend .
Het is ook heel goed mogelijk dat de BIOS-versie de mogelijkheid biedt om enkele parameters voor elke geheugenbank afzonderlijk in te stellen. Omdat de we praten over over “precharge” voor de RAS# flitser, dan kunnen de optie(s!) “Bank 0&1 (2&3)(4&5): EDO/SDRAM Precharge” worden genoemd met de waarden: “3T/2T”, “4T/3T” .
"AMI BIOS" bood een extra waarde van "Auto" voor zijn "SDRAM RAS# Precharge" -optie. Het is waar dat een van de opties voor de optie “SDRAM RAS Precharge” ook de waarden “Disabled”/“Enabled” introduceerde. U kunt de optie alleen uitschakelen als u absoluut zeker bent van de geheugenmodules, anders kunnen problemen niet worden vermeden. Omdat we de mogelijkheid hebben besproken om het voorlaadmechanisme uit of in te schakelen, moeten we ook de mogelijkheid vermelden om de optimalisatie van het vooraf opladen in te schakelen ("Ingeschakeld") - "SDRAM: Optimal RAS# Prech.".
Er zijn een paar belangrijke dingen die u moet weten over deze optie(s!). Deze optie moet niet worden verward met opties zoals "Refresh RAS Active Time", die verantwoordelijk zijn voor de duur van het RAS#-signaal. In ons geval hebben we het over een voorbereidingsproces. En ten tweede! Het zou absoluut correct zijn om deze optie in de sectie te plaatsen die gewijd is aan standaard geheugenoptimalisatie (zie hieronder). De procedures voor het instellen van het RAS#-signaal tijdens zowel regeneratie- als lees-/schrijfbewerkingen zijn identiek.
Om het bovenstaande compleet te maken is de optie "RAS# Precharge/Refresh" met de waarden "3T/4T" en "4T/5T". Met deze optie stelt u zowel de voorbereidingsfasetijd als de totale actieve tijd van het RAS#-signaal voor de regeneratiecyclus in.

DRAM-vernieuwingsmethode

Optie om de regeneratiemethode in te stellen. De optie kan ook "Refresh Type", "DRAM Refresh Type", "DRAM Refresh Mode" of "Refresh Type Select" worden genoemd. Voor eventuele variaties bevat de optie in de regel slechts twee parameters onder de mogelijke parameters. We presenteren de volledige mogelijke reeksen: “CAS vóór RAS” (of “CAS-RAS”), “alleen RAS”, “RAS# Vóór CAS#”, “Normaal”, “Verborgen”.

DRAM-vernieuwingsperiode

Instellen van de periode (herhalingsfrequentie) die nodig is voor geheugenregeneratie, in overeenstemming met de specificatie van de geheugenmodules. In de nieuwste BIOS-versies is deze optie mogelijk niet aanwezig, hoewel de aanwezigheid ervan in een modern systeem u nog steeds in staat stelt het regeneratieproces te optimaliseren. Voorheen bood deze optie de gebruiker veel ruimte voor creativiteit: afhankelijk van de BIOS-versie en de fabrikant, chipset en geheugenmodules. De optie kan ook "Refresh Cycle Time (us)", "DRAM Refresh Cycle Time", "Memory Refresh Rate", "DRAM Refresh Rate Select", "DRAM Refresh Rate", "SDRAM Refresh Rate" of eenvoudigweg "DRAM" worden genoemd. Vernieuwen". Hier is een gedeeltelijke lijst met waarden die de gebruiker kan tegenkomen:
“For 50 MHz Bus”, “For 60 MHz Bus”, “For 66 MHz Bus”, “Disabled” (deze ongebruikelijke optie werd gevonden in het systeem op i430FX),
"50/66 MHz", "60/60 MHz", "66/66 MHz",
"15 ons", "30 ons", "60 ons", "120 ons",
"Uitgeschakeld" (of "Niet vernieuwen"), "15.6 ons", "31.2 ons", "62.4 ons", "124.8 ons", "249.6 ons",
"15,6 ons", "31,2 ons", "62,4 ons", "125 ons", "250 ons",
"15,6 ons", "62,4 ons", "124,8 ons", "187,2 ons",
"1040 Klokken", "1300 Klokken",
"15.6 us", "7.9 us", "FR 128 CLK's" (het is duidelijk dat we het hebben over frequentie - "frequentie"),
"Uitgeschakeld", "Normaal",
"Snel langzaam",
"Sneller", "Langzamer",
"Uitgeschakeld" (standaard is 15,6 µs ingesteld), "Ingeschakeld" (komt overeen met een verdubbeling van de frequentie).
Er moet nog worden opgemerkt dat hoe minder vaak het geheugen wordt geregenereerd, hoe efficiënter het systeem werkt. Maar als er duidelijk overtredingen in de werking van het systeem worden waargenomen, moet de updatefrequentie worden verhoogd. De waarde "Disabled" die in sommige versies verschijnt, mag niet worden gebruikt. Anders kunt u verlies van informatie in het geheugen verwachten. En ten slotte, als de gebruiker op het scherm voor zich een hele reeks waarden ziet waaruit hij kan worden geselecteerd, kan dit betekenen dat de chipset een speciaal configuratieregister bevat waarin drie cijfers (of minder) worden “gegeven” aan mogelijke combinaties van de ingestelde frequentie.
Laten we naast het bovenstaande eens kijken naar nog enkele opties en de chipsets waarvoor ze zijn geïmplementeerd:
"DRAM Refresh Ratery Time" (SIS530) - "15,6 us", "7,8 us", "3,9 us",
"Vernieuwingssnelheid" (AMD751) - "20,4 ons", "15,3 ons", "10,2 ons", "5,1 ons".
Optie "Vernieuwen" Modus selecteren", ondanks enige discrepantie in de naam, suggereerde de waarden "7.8 ?sec", "15.6 ?sec", "64 ?sec", en de optie "Refresh Interval" - "7.8 ?sec", "15.6 ?sec ", "31,2 ?sec", "64 ?sec", "128 ?sec".
Dit is waar enerzijds een denkbeeldige discrepantie kan ontstaan, en anderzijds een misverstand over de essentie van de gepresenteerde opties. De namen van de opties omvatten immers ‘frequentie’, ‘periode’, ‘interval’ en ‘cyclustijd’. Daarom is verdere verduidelijking nodig.
Het is duidelijk dat het onmogelijk is om het hele dynamische geheugen tegelijkertijd te regenereren. Het is ook acceptabel om te praten over rij-voor-rij regeneratie van de geheugenmatrix (zie hiervoor hierboven). Dan kun je twee concepten tegelijk introduceren. De eerste is het tijdsinterval tussen regeneratie van bijvoorbeeld aangrenzende lijnen. De tweede is de tijd van de volledige regeneratiecyclus, d.w.z. de tijd waarna de voorwaardelijke startlijn opnieuw moet worden gegenereerd. Een "gewone" geheugenchip bevat 4096 lijnen. Er kan worden gesteld dat de totale regeneratiecyclustijd 64 ms bedraagt ​​(een van de JEDEC-normen). En dan is het genoemde regeneratie-interval (periode):
64000: 4096 = 15,6 ?sec.
Dit betekent dat de geheugencontroller elke 15,6 µs een vernieuwingscyclus voor een enkele geheugenlijn initieert. En deze waarde is typisch voor dezelfde DIMM-modules met een capaciteit van 128 Mbit of minder. Als we het hebben over modules met een capaciteit van 256 Mbit of meer, dan zal het aantal lijnen 8192 zijn en het regeneratie-interval 7,8 sec., vanwege tijdbesparing algemene cyclus bij 64 ms. Als het systeem modules met verschillende capaciteiten gebruikt, wordt de regeneratietijdkarakteristiek ingesteld op basis van de module met de grotere capaciteit, d.w.z. met meer hoge frequentie.
Opgemerkt moet worden dat eerder gebruikte geheugenmodules het in veel gevallen mogelijk maakten om de regeneratiecyclus te verlengen, d.w.z. vergroot het interval, waardoor de systeemprestaties enigszins toenemen.
En natuurlijk zou het beeld onvolledig zijn als we het ons niet zouden herinneren RAMBUS-DRAM. We zullen niet in detail ingaan op de architectuur van dit type geheugen; we zullen ons alleen herinneren dat de structuur en organisatie van geheugenbanken multi-channel van aard is. Bovendien is elk datakanaal een bus van slechts één (!) byte breed. Maar dankzij een krachtige pijplijn, een snelle interne backbone, gesynchroniseerd door zijn eigen klokgenerator, is de bandbreedte van de geheugenbus al vergroot tot 3,2 GB/sec. Welnu, nu is de optie "RDRAM Refresh Rate, Channel N", en de waarden ervan: "Geen vernieuwing", "1,95 us", "3,9 us", "7,8 us".

DRAM-vernieuwingswachtrij

Wanneer deze optie is ingeschakeld, kan een efficiëntere methode voor het vernieuwen van het geheugen worden gebruikt. Feit is dat de chipset in staat is een reeks van verschillende geheugenupdateverzoeken te genereren totdat de processorbus klaar is om de volgende bewerking uit te voeren. We hebben het hier over het gebruik van de pijplijnmodus voor verzoeken om geheugenregeneratie. Met 'Ingeschakeld' kunnen doorgaans vier verzoeken voor geheugenregeneratie in de wachtrij worden geplaatst. Als u dit op 'Uitgeschakeld' instelt, betekent dit het uitschakelen van pipelining, wat uiteraard de efficiëntie vermindert en ervoor zorgt dat alle regeneratiecycli worden uitgevoerd, hetzij op verzoekprioriteit, hetzij in overeenstemming met de methoden die in andere opties zijn beschreven.
Deze modus moet altijd ingeschakeld zijn. "Ingeschakeld" is ook standaard ingesteld. Een voorwaarde! Geïnstalleerde geheugenmodules moeten deze functie grotendeels ondersteunen moderne typen geheugen ondersteunt deze methode. Bovendien! Het gebruik van een dergelijke effectieve regeneratiemethode hangt zowel af van de implementatie van dergelijke functies door de chipset als van de BIOS-versie. In zo'n expliciete 'gebruikers'-vorm werd deze optie gevonden in het' AMI BIOS '.
De optie kan ook "DRAM Refresh Queing" worden genoemd.

DRAM Vernieuwingswachtrijdiepte

Deze optie Hiermee kunt u de mate ("diepte") van pipelineisatie instellen, d.w.z. aantal mogelijke transportstappen. Hoe hoger dit getal, hoe grote hoeveelheid verzoeken om regeneratie in gegeven tijd wordt verwerkt. Mogelijke waarden, die uiteraard afhankelijk zijn van bovenstaande implementaties en mogelijkheden, zijn:
"0" (equivalent aan "Uitgeschakeld"), "4", "8", "12" (standaard).
De optie kan ook "Wachtrijdiepte vernieuwen" worden genoemd.

Uitgebreid vernieuwen

- (verlengde regeneratie). De introductie (eenmalig) van deze optie in het BIOS impliceerde het gebruik van speciale EDO-chips. Regeneratie van de inhoud van EDO DRAM-cellen begon elke 125 μs plaats te vinden, en niet elke 15,6 μs, zoals bij standaardregeneratie. Dit verhoogde de algehele geheugenprestaties enigszins.

Snelle DRAM-vernieuwing

- (snelle DRAM-regeneratie). De geheugencontroller biedt twee modi voor geheugenregeneratie: standaard (normaal) en verborgen (verborgen). In elke modus wordt de CAS-stroboscoop ingesteld vóór het RAS-signaal, maar in de "Normale" modus wordt voor elke stroboscooppuls een extra processorcyclus toegewezen. Dit oude methode geheugenupdates, en daarom is het zinvol om de waarde van deze parameter in te stellen op "Hidden", wat zowel betere prestaties biedt als grotere efficiëntie(zie hieronder), ook vanwege het feit dat de CAS-flitser mogelijk niet is ingesteld - deze kan “verborgen” zijn.

Verborgen vernieuwing

- (verborgen regeneratie). Indien ingesteld op "Disabled", wordt het geheugen geregenereerd met behulp van de IBM AT-methodologie, waarbij voor elke regeneratie processorcycli worden gebruikt. Wanneer de optie "Hidden Refresh" is ingesteld op "Enabled", "zoekt" de geheugencontroller het meest geschikte moment om te vernieuwen, ongeacht de CPU-cycli. In dit geval vindt regeneratie gelijktijdig plaats met normale geheugentoegang. Het geheugenregeneratiealgoritme is multivariabel: regeneratiecycli zijn toegestaan ​​in geheugenbanken die niet door de centrale processor worden gebruikt. dit moment, in plaats van of in combinatie met de normale regeneratiecycli die worden uitgevoerd telkens (elke 15 ms) een bepaalde interrupt (DRQ0) veroorzaakt door een timer en geïnitieerd door het regeneratiecircuit.
De regeneratie vergt elke keer maximaal 4 ms. Tijdens deze 4 ms regenereert één regeneratiecyclus ongeveer elke 16 μs 256 geheugenlijnen (kenmerken voor geheugenmodules worden hier en hierboven weergegeven kleine capaciteit). Elke regeneratiecyclus duurt even lang of iets korter dan één geheugenleescyclus, omdat Voor de regeneratie is het CAS-signaal niet nodig.
"Verborgen vernieuwing" wordt gekenmerkt door maximale snelheid en efficiëntie, de minste verstoring van de systeemactiviteit en het minste prestatieverlies, waardoor u ook de geheugenstatus kunt behouden terwijl het systeem in de "suspend"-modus staat. Deze modus is sneller dan "Burst Refresh". Maar de aanwezigheid van deze functie in het BIOS betekent niet de implementatie ervan. Nadat u de optie op "Ingeschakeld" hebt ingesteld, moet u de functionaliteit van de computer zorgvuldig controleren. Bij sommige geheugenmodules kunt u "Hidden Refresh" gebruiken, bij andere niet. In de meeste gevallen wordt aanbevolen om deze in te stellen op "Ingeschakeld".

Hi-Speed ​​verversen

Met deze optie zal de chipset het hoofdgeheugen sneller regenereren. Het is waar dat het effect van deze instelling veel kleiner is dan dat van het inschakelen van "Slow Refresh". Laatste modus regeneratie verdient de voorkeur. Bovendien wordt deze functie niet door alle geheugenchips ondersteund.

ISA-vernieuwing

Optie om geheugenregeneratie voor de ISA-bus in/uit te schakelen. Deze optie werd zelfs in de laatste jaren van het bestaan ​​​​van de ISA-bus niet meer in deze vorm gezien.

ISA-vernieuwingsperiode

Instellen van de frequentie voor ISA-busregeneratie. Mogelijk waardenbereik: "15 us", "30 us", "60 us", "120 us".

ISA-vernieuwingstype

Optie om de geheugenregeneratiemethode voor de ISA-bus in te stellen. Mogelijke parameterwaarden: "Normaal" en "Verborgen". Een soortgelijke optie genaamd "ISA Bus Refresh Mode" zou andere waarden kunnen bieden: "Slow" en "Fast".

PCI-naar-DRAM RAS# vooraf opladen

Het onderwerp “voorladen” hebben we al voldoende onder de knie, dus we hoeven alleen maar kort iets te zeggen over het doel van deze optie: het instellen van de “voorlaadtijd” van de RAS#-flitser tijdens PCI-bus-schrijfcycli naar het dynamische hoofdgeheugen. Optiewaarden: "2T", "3T".

RAS Vooraf opladen @Toegangseinde

Wanneer "Enabled" is geselecteerd, blijft de RAS#-flitser actief aan het einde van het "voorlaad"-proces. Indien ingesteld op "Uitgeschakeld", wordt RAS# in een passieve status (hoog niveau) geplaatst.

RAS-time-out

Indien ingesteld op "Disabled", wordt de dynamische geheugenregeneratiecyclus uitgevoerd standaard modus, d.w.z. elke 15,6 µs. Er wordt een extra geheugenregeneratiecyclus ingevoegd wanneer "Enabled" wordt geselecteerd.

Ref/Act-opdrachtvertraging

- (stel de vertraging in voor de lees-/schrijfcyclus). De parameter selecteert de vertragingstijd tussen het einde van de regeneratiecyclus en het begin van de lees- of schrijfcyclus. De optie kan de volgende waarden aannemen: "5T", "6T" (standaard), "7T", "8T".
Het systeem op de SIS530-set bood een optie genaamd "DRAM Refresh/Active Delay" met iets conservatievere waarden: "9T", "8T", "7T", "6T". Een meer geavanceerde chipset (SIS540) heeft al twee opties geïntroduceerd: "DRAM REF/ACT Delay" ("10T", "9T") en "DRAM ACT/REF ​​Delay" ("10T", "9T", "8T "). Het is duidelijk dat de laatste optie bedoeld is om de vertraging voor de regeneratiemodus na het einde van de lees-/schrijfcyclus te selecteren. Kleinere waarden verdienen uiteraard meer de voorkeur. Deze optie is niet langer te vinden in moderne systemen.

Vernieuwen tijdens PCI-cycli

Een optie die geheugenregeneratie tijdens lees-/schrijfcycli op de PCI-bus toestaat/verbiedt. Kan waarden aannemen:
"Ingeschakeld" - toegestaan,
"Gehandicapt" - verboden.

Ververs RAS#-bewering

- (de periode van RAS-signaalactiviteit instellen). Deze parameter stelt de duur van het RAS-signaal (in systeembusklokken) in voor de regeneratiecyclus. Een lagere waarde verbetert de systeemprestaties. Maar aangezien de geaccepteerde waarden worden bepaald door de kwaliteit van het geheugen en de chipset, moet de installatie ervan met de nodige voorzichtigheid worden benaderd. Kan de volgende waarden aannemen: "4T" (of "4 Clks"), "5T" (of "5 Clks"). Er kunnen andere betekenissen zijn.
De optie kan ook "Refresh Assertion", "Refresh RAS Active Time" of "RAS Pulse Length Refresh" worden genoemd.

Waarde vernieuwen

Met deze optie wordt de vermenigvuldiger van de regeneratiefrequentie ingesteld. Een lagere waarde verhoogde de systeemprestaties door de regeneratiefrequentie te verlagen. Maar tegelijkertijd ook beste optie kon alleen worden bereikt door experimentele verificatie. De optiewaarden konden worden geselecteerd uit het volgende bereik: 1, 2, 4, 8, 16. Soms kon de waarde 0,5 worden gevonden. Deze optie is al lange tijd niet meer beschikbaar.
De optie kan "Refresh Divider" worden genoemd.

Vernieuwen bij CPU-hold

Een nogal verouderde optie die regeneratie ("Enabled") of geen regeneratie ("Disabled") suggereerde tijdens processorpauzes.

SDRAM-inactieve limiet

Met deze optie wordt het aantal "lege" wachtcycli ingesteld voordat SDRAM-modules worden opgeladen. De optimale instelling verbetert de prestaties van de lees-/schrijfcyclus door de hoeveelheid tijd aan te passen dat de geheugenbank "leeg" kan blijven voordat deze opnieuw wordt opgeladen, d.w.z. voordat u de geheugeninhoud terug in de cellen herschrijft. Deze installatie kan echter niet functioneren als vertraging in de regeneratiecyclus.
Het terugbrengen van het aantal klokcycli van 8 (standaard) naar 0 betekent dat de SDRAM-geheugenbank onmiddellijk wordt geregenereerd zodra de geheugencontroller een geldig verzoek indient. Wanneer u de "SDRAM Idle Limit" verhoogt van 8 cycli of meer, wordt het opladen van de bank vertraagd met langere tijd, waardoor de tijd voor het "opslaan" van informatie uit het geheugen in interne circuits wordt verlengd. Een lees-/schrijfopdracht die op dit moment wordt ontvangen, wordt onmiddellijk uitgevoerd. Dan moeten we toegeven dat de geheugenefficiëntie toeneemt als de bank langere tijd ‘leeg’ blijft. Maar er is altijd een MAAR! De interne oplaadcircuits slaan niet alle rijen van de geheugenbank op, maar alleen de rij die wordt geregenereerd. Daarom zal een binnenkomend verzoek, bijvoorbeeld om een ​​bepaalde regel te lezen, zeker niet “de strekking bereiken” en zal het systeem moeten wachten tot de regeneratie is voltooid, vooral als de parameterwaarde te hoog is.
In principe moet je echter kiezen tussen waarden tussen 0 en 8 klokcycli, voor zover de BIOS-versie dit toelaat. Uiteraard vereist een dergelijke instelling serieuze experimentele verificatie. Als het mogelijk is om de regeneratiefrequentie te regelen, is het daarom beter om deze optie te blokkeren. Ervaren specialisten kunnen worden aanbevolen om met twee kenmerken te 'spelen'.
De optie heet mogelijk "DRAM Idle Timer". Deze opties boden twee waardenbereiken:
"Uitgeschakeld", "0 cyclus", "8 cycli", "12 cycli", "16 cycli", "24 cycli", "32 cycli", "48 cycli",
"0 klokken", "2 klokken", "4 klokken", "8 klokken", "10 klokken", "12 klokken", "16 klokken", "32 klokken".
Dergelijke opties zijn vrij zeldzaam. Maar het systeem op een redelijk moderne AMD751-chipset bood er twee tegelijk:
"Limiet voor leeglopen" met een rij van "0 cycli", "8 cycli", "12 cycli", "16 cycli", "24 cycli", "32 cycli", "48 cycli" en "Geen voorladen bij stationair draaien" en "Extra" Hoge Idle Limit" met de waarden "Disabled"/"Enabled". Met de laatste optie kunt u het invoegen van een extra wachtklok toestaan ​​of uitschakelen.

SDRAM-voorlaadcontrole

- (SDRAM-voorlaadcontrole). Deze optie bepaalt of SDRAM “precharge” wordt bestuurd door de centrale processor of door de SDRAM zelf. In sommige BIOS-versies kan deze optie worden aangeroepen (geïnterpreteerd) als "SDRAM Page Closing Policy" ("methode voor het sluiten van SDRAM-pagina's" - zie meer in de volgende sectie). Als deze optie is uitgeschakeld ("Disabled"), worden alle processorcycli naar SDRAM voltooid met het "All Banks Precharge Command" in de SDRAM-geheugeninterface, wat de stabiliteit verbetert maar de geheugenprestaties vermindert. Als deze optie "Ingeschakeld" is, wordt de voorlopige lading beheerd door de geheugenchips zelf. Dit vermindert het aantal SDRAM-voorladingen en verhoogt aanzienlijk het aantal CPU-naar-SDRAM-cycli voordat geheugenregeneratie nodig is. Dit leidt zeker tot een stijging de performance over het geheel systeem, maar kan de stabiliteit ervan beïnvloeden.

SDRAM vernieuwen

Optie om een ​​regeneratiemethode voor SDRAM-geheugen te selecteren. Mogelijke opties: "Serieel" (sequentieel zoeken naar lijnen tijdens regeneratie) en "Gelijktijdig" (gelijktijdige regeneratie). Bij het overwegen van de optie "Burst Refresh" zijn de nadelen van batchregeneratie, waarbij verzoeken om regeneratie in één pakket worden verzameld, al opgemerkt. Rijen worden onmiddellijk "opgeladen", maar totdat de volledige regeneratie is voltooid, is toegang tot de geheugenbus niet mogelijk. Daarom zal het na experimentele tests mogelijk zijn om te praten over de optimale installatie voor een bepaald systeem.
Deze optie werd opgemerkt in systemen die waren gebouwd op SIS620, SIS600 en enkele andere chipsets.

Zelfvernieuwing

Optie om de modus "zelfregeneratie" van het hoofdgeheugen in te schakelen (indien ingesteld op "Ingeschakeld"). Deze modus wordt hierboven in het inleidende artikel gedetailleerd beschreven.
De optie kan ook "EDO/FPM DRAM Self-Refresh" worden genoemd.

Langzaam vernieuwen (1:4)

- (langzame regeneratie). Wanneer deze optie is ingeschakeld (“Enabled”), zal het regeneratiecircuit het geheugen 4 keer minder vaak regenereren (64 μs versus 16) dan in de normale modus. Deze opstelling verbetert de systeemprestaties door de strijd tussen de CPU en het regeneratiecircuit te verminderen, maar niet alle typen DRAM kunnen dergelijke cycli ondersteunen (in welk geval een pariteitsfout of systeemcrash wordt gerapporteerd). Vervolgens moet u de waarde instellen op "Uitgeschakeld". De optie werd ooit wijdverspreid met de ontwikkeling van een dergelijk type pc als de "laptop" (reis-pc), als energiebesparende functie. In moderne systemen wordt deze optie steeds minder gebruikelijk.
Ooit geloofde men ook dat het gebruik van “langzame regeneratie” behoorlijk effectief zou zijn bij gebruik van 16-bit ISA-uitbreidingskaarten die in “bus master” -modus werken. Omdat de ISA-kaart zelf een regeneratieverzoek kan initiëren, is het duidelijk dat een “langzame regeneratie” minder storend zou zijn voor de gegevensoverdracht via DMA-kanalen.
De optie kan ook "DRAM Slow Refresh", "Slow Refresh" of "Slow Refresh Enable" worden genoemd.
De optie kan ook "Slow Memory Refresh Divider" worden genoemd. Maar deze optie stelt een deler in voor langzame regeneratie: 1, 4, 16 of zelfs 64. Stel de grootste waarden in, d.w.z. Alleen een speciaal geheugen maakte het mogelijk om de regeneratiefrequentie maximaal te verminderen.

Gespreide vernieuwing

Een moeilijk te vertalen type regeneratie, zoiets als "rollende regeneratie". Maar deze onbegrijpelijke term verwijst naar de regeneratie van het ‘schaakbord’. Zoals u weet, wordt de regeneratie op volgorde van de geheugenbanken uitgevoerd, waarbij de rijen opeenvolgend worden doorzocht. Maar als er meerdere geheugenbanken zijn en deze optie is ingeschakeld, worden de geheugenbanken tegelijkertijd geregenereerd, maar met een verschuiving in het zoeken naar regels.
Met dit type regeneratie kunt u pieken in het verbruik van geheugenmodules afvlakken, waardoor de stromen tijdens verschillende schakelprocessen worden afgevlakt. Omdat stroompieken worden verminderd, is een dergelijke regeneratie effectief in termen van het verminderen van interferentie.
Met deze enigszins verouderde optie is het mogelijk om het tijdsinterval tussen geregenereerde lijnen in te stellen, gemeten in systeemklokcycli (0T, 1T, 2T, 3T, 4T, 5T, 6T, 7T). Als u dit op "0" instelt, kunnen alle rijen in banken tegelijkertijd opnieuw worden gegenereerd. Maar de optie kan ook de gebruikelijke reeks waarden bieden: “allow application”/“deny” (“Enabled” en “Disabled”).
De optie kan ook "Refresh Stagger" of "DRAM Refresh Stagger By" worden genoemd.

Zoals eerder vermeld vereist dynamisch geheugen elke paar ms regeneratie (herstel) van informatie. Dit komt doordat er voor het opslaan van één bit informatie een lading op een condensator wordt gebruikt, die na verloop van tijd verdwijnt. Geheugenregeneratie bestaat uit het lezen van de inhoud van elke regel van de DRAM-chip, het versterken ervan en het terugschrijven naar de oorspronkelijke locatie. Tijdens regeneratie is toegang tot geheugen vanaf de processor of andere apparaten verboden, wat leidt tot een afname van de computerprestaties.

In overeenstemming met de eerder besproken organisatie van de DRAM-chip moeten, om de daarin opgeslagen informatie te regenereren, een rijadres (vergezeld van een RAS-flitser) en een leessignaal aan de chip worden toegevoerd. Een vereenvoudigde structuur van een 256-lijnen DRAM-wordt weergegeven in figuur 7.10.

De regeneratie-intervaltimer zorgt ervoor dat alle rijen tijdig worden geregenereerd DRAM-chips. Als de vereiste verversingstijd 4 ms bedraagt, moet elke 15,6 μs een verversingssignaal (REFRESH) worden gegenereerd om elke rij van een DRAM-chip met 256 lijnen te verversen. Elke regeneratiecyclus herstelt de inhoud van één regel. Wanneer een nieuw REFRESH-signaal wordt gegenereerd, wordt de inhoud van de rijadresteller verhoogd, waarna de RAS-stroboscoop en het MEMR-geheugenleessignaal worden gegenereerd. De belangrijkste acties voor het regenereren van de inhoud van de volgende regel worden uitgevoerd

Figuur 7.10 - Structuur van het subsysteem voor dynamische geheugenregeneratie

in de DRAM-chip zelf. Het regeneratiesysteem is alleen verantwoordelijk voor het tijdig regenereren van alle lijnen, het genereren van het adres van de volgende lijn en de noodzakelijke stuursignalen.

Cachegeheugen

De toename van de processorprestaties heeft ertoe geleid dat het hoofdgeheugen, gebouwd op DRAM-chips, de verdere toename van de computerprestaties als geheel begon te vertragen. De implementatie van OP op SRAM-chips is technisch en economisch niet gerechtvaardigd, aangezien de afmetingen en kosten van SRAM-chips per 1 bit opgeslagen informatie aanzienlijk hoger zijn dan die van DRAM. Een redelijk compromis voor het bouwen van economische en snelle systemen was de combinatie van groot geheugen op DRAM en klein geheugen op SRAM-chips.

Het woord Cache betekent pakhuis, schuilplaats. Cachegeheugen heeft geen aparte adresruimte en is niet toegankelijk voor de gebruiker. Het is een extra snelle opslag van kopieën van die gebieden met OP-informatie die waarschijnlijk in de nabije toekomst toegankelijk zullen zijn. Deze omvatten in de eerste plaats gebieden die grenzen aan het momenteel uitgevoerde commando, en in de tweede plaats gebieden die daarmee zijn geassocieerd door overgangscommando's (zie figuur 7.11).

Afbeelding 7.11 - Mogelijk OP-cachinggebied

De bovenstaande figuur, evenals een analyse van de voortgang van de uitvoering van verschillende programma's, laten zien dat ze meestal bepaalde groepen opdrachten uitvoeren die vele malen worden herhaald. Deze eigenschap van programma's wordt linklokalisatie genoemd. Lokalisatie van verbindingen vindt plaats in tijd en ruimte. De eerste betekent dat recent uitgevoerde opdrachten waarschijnlijk opnieuw zullen worden opgevraagd. Lokalisatie in de ruimte betekent dat hoogstwaarschijnlijk op volgende tijdstippen instructies zullen worden uitgevoerd die zich (aan de hand van adreswaarden) in de directe nabijheid van de uitvoering bevinden. Merk op dat de volgorde van uitvoering van instructies voor de werking van het cachegeheugen er niet toe doet.

De cache kan geen kopie van het volledige hoofdgeheugen opslaan, omdat de grootte ervan vele malen kleiner is dan die van het OP. Daarom worden er kopieën van een deel van de inhoud van het OP opgeslagen. Om informatie vast te leggen over de huidige correspondentie van de inhoud van het cachegeheugen met specifieke gebieden (blokken) van het OP, wordt een map gebruikt die zich bevindt in het extra taggeheugen (TEG) dat is opgenomen in het cachegeheugen. Bij toegang tot het OP gebruikt de cachegeheugencontroller (CMC) de directory in de TEG om te controleren of er een kopie van de gevraagde gegevens (of opdracht) in de cache aanwezig is. Als die er is, is er sprake van een zogenaamde cachehit en worden de gegevens uit de cache gehaald. Als dit niet het geval is (een geval van een cache-misser), worden de gegevens uit het hoofdgeheugen gehaald, in de processor ingevoerd en naar de cache geschreven. Wanneer een cache wordt geraakt, neemt de toegangstijd tot het Cache+DRAM-geheugensubsysteem af en lijkt het hoofdgeheugen voor de processor sneller dan het in werkelijkheid is.

Soorten RAM

Er worden de volgende soorten RAM onderscheiden:

● DRDRAM, enz.

FPM-DRAM

FPM-DRAM(Fast Page Mode DRAM) - dynamisch geheugen met snelle paginatoegang, actief gebruikt met microprocessors 80386 en 80486. Geheugen met paginatoegang verschilt van conventioneel dynamisch geheugen doordat het na het selecteren van een matrixrij en het vasthouden van RAS meerdere instellingen van het kolomadres mogelijk maakt afgesloten door CAS. Dit maakt snellere blokoverdrachten mogelijk wanneer een gegevensblok geheel of gedeeltelijk in één enkele rij van een matrix staat, in dit systeem een ​​pagina genoemd. Er zijn twee soorten FPM DRAM, die verschillen in toegangstijd: 60 en 70 ns. Vanwege hun traagheid zijn ze niet effectief op systemen met Pentium II-processors. FPM DRAM-modules werden voornamelijk geproduceerd in het SIMM-ontwerp.

RAM EDO(EDO - Extended Data Out, verlengde retentietijd (beschikbaarheid) van uitvoergegevens) is eigenlijk een gewone FPM-chip, waaraan een set vergrendelde registers is toegevoegd, zodat de uitvoergegevens kunnen worden vastgehouden tijdens het volgende verzoek aan de chip . Tijdens pagina-uitwisseling werken dergelijke microschakelingen in een eenvoudige pijplijnmodus: ze houden de inhoud van de laatst geselecteerde cel aan de uitgang vast, terwijl het adres van de volgende geselecteerde cel al aan hun ingangen wordt geleverd. Dit maakt het mogelijk om het proces van het lezen van sequentiële data-arrays met ongeveer 15% te versnellen vergeleken met FPM. Bij willekeurige adressering levert dergelijk geheugen geen enkele prestatiewinst op. Geheugentype RAM EDO heeft een minimale toegangstijd van 45 ns en een maximale gegevensoverdrachtsnelheid via het processorgeheugenkanaal van 264 MB/s. RAM EDO-modules werden geproduceerd in SIMM- en DIMM-ontwerpen.

BEDO DRAM

BEDO DRAM(Burst Extended Data OutPut, EDO met bloktoegang). Moderne processoren dankzij interne en externe commandocaching

en gegevens worden voornamelijk in woordblokken met het hoofdgeheugen uitgewisseld maximale lengte. Met dit type geheugen kunnen gegevens in batches (blokken) worden verwerkt, zodat de gegevens in blokken in één klokcyclus worden gelezen. In het geval van BEDO-geheugen is het niet nodig om voortdurend opeenvolgende adressen aan de ingangen van de microschakelingen te leveren terwijl de nodige tijdsvertragingen in acht worden genomen - het is voldoende om de overgang naar het volgende woord van het blok te poorteren. Dankzij deze methode kan BEDO DRAM zeer snel werken. BEDO RCAM-geheugen wordt ondersteund door sommige chipsets van VIA Apollo (580VP, 590VP, 680VP) en Intel (i480TX, etc.) op een busfrequentie van niet hoger dan 66 MHz. Dit type geheugen concurreert actief met SDRAM-geheugen, dat het geleidelijk vervangt. BEDO DRAM wordt vertegenwoordigd door zowel SIMM- als DIMM-modules.

SDRAM Synchrone DRAM (synchroon dynamisch geheugen), synchroon toegangsgeheugen, verhoogt de systeemprestaties door de snelheid van het RAM te synchroniseren met de snelheid van de processorbus. SDRAM voert ook pijplijnverwerking van informatie uit, waarbij de geheugenarray intern in twee onafhankelijke banken wordt verdeeld, waardoor u sampling van de ene bank kunt combineren met het instellen van een adres in een andere bank. SDRAM ondersteunt ook blokwissel. Het belangrijkste voordeel van het gebruik van SDRAM is de ondersteuning van sequentiële toegang in synchrone modus, waardoor extra wachtcycli kunnen worden geëlimineerd. SDRAM-geheugen kan stabiel werken op hoge frequenties: er zijn modules beschikbaar die zijn ontworpen om te werken op frequenties van 100 MHz (PC100-specificatie) en 133 MHz (PC133). Begin 2000 Samsung-bedrijf kondigde de release aan van nieuwe SDRAM-geïntegreerde schakelingen (IC's) met een werkfrequentie van 266 MHz. De tijd voor toegang tot gegevens in dit geheugen is afhankelijk van de interne klokfrequentie van de MP en bereikt 5 - 10 ns; de maximale gegevensoverdrachtsnelheid "processorgeheugen" bij een busfrequentie van 100 MHz is 800 MB/s (eigenlijk gelijk aan de gegevensoverdrachtsnelheid via het processor-cachekanaal). SDRAM-geheugen zorgt voor een algehele toename van de pc-prestaties van ongeveer 25%. Toegegeven, dit cijfer heeft betrekking op de werking van een pc zonder cachegeheugen - als er een krachtig cachegeheugen is, kan de prestatiewinst slechts een paar procent bedragen. SDRAM wordt doorgaans geleverd in 168-pins DIMM-type modules en heeft een 64-bits databus. Niet alleen gebruikt als RAM, maar ook als geheugen video-adapters, waar dit handig is bij het bekijken van live video en bij het werken met 3D-graphics.

DDR-SDRAM

DDR-SDRAM(Dubbele datasnelheid SDRAM - SDRAM II). Een variant van SDRAM-geheugen dat informatie over beide randen van het kloksignaal overdraagt. Dit maakt een dubbele doorvoer mogelijk vergeleken met traditioneel SDRAM-geheugen(tot 1,6 GB/s bij een busfrequentie van 100 MHz). Bovendien kan DDR SDRAM op hogere frequenties werken - 143, 166 en 183 MHz 64 Mbit DDR-modules werden begin 2000 uitgebracht

SDRAM. DDR DRAM-modules zijn structureel compatibel met traditionele 168-pins DIMM's. Ze worden niet alleen gebruikt als RAM-elementen, maar ook in krachtige videoadapters. Nu richten ze zich vooral op de videoadaptermarkt. Eind 2001 presenteerde Hunix Semiconductor een exemplaar van 128 Mbit DDR SDRAM (0,16 micron). De kloksnelheid van 375 MHz is de hoogste frequentie voor DDR SDRAM tot nu toe (2003).

DRDRAM(Direct Rambus DRAM - dynamisch geheugen met een directe bus voor RAM) is een veelbelovend type RAM dat het mogelijk heeft gemaakt om de computerprestaties aanzienlijk te verbeteren. De hoge prestaties van Direct RDRAM-geheugen worden bereikt door een aantal functies die bij andere typen niet voorkomen. In het bijzonder het gebruik van zijn eigen twee-byte Rambus-bus met een frequentie van 800 MHz, die een piekdoorvoer tot 1,6 GB/s oplevert. De Direct RDRAM-geheugencontroller beheert de Rambus-bus en zorgt voor conversie van het 800 MHz-protocol naar een standaard 64-bits interface met een busfrequentie tot 200 MHz. Intel i820-, i840-, i850-chipsets uitgebracht met DRDRAM-ondersteuning. Directe RDRAM - RIMM-modules lijken qua uiterlijk op DIM M-modules.

De markering van SDRAM en DRDRAM (vaak ook wel RDRAM genoemd) geeft meestal de werkfrequentie van de module aan in de vorm van bijvoorbeeld de aanduiding PC150, wat voor SDRAM een piekbandbreedte van 1200 MB / s betekent - hetzelfde als die van PC600 voor DRDRAM (vanwege de bus met lage breedte van laatstgenoemde). Het is waar dat veel chipsets (bijvoorbeeld i850) dual-channel uitwisseling met DRDRAM-geheugen ondersteunen, waardoor de bandbreedte wordt verdubbeld.

Voor DDRDRAM zou het specificeren van PC150 een doorvoer van 2400 MB/s impliceren - 2 keer groter dan voor SDRAM (vanwege de overdracht van informatie over twee pulsranden). Maar voor DDR is het gebruikelijk om in de markering bij de letters RS niet de werkfrequentie aan te geven, maar de bandbreedte zelf. Dat wil zeggen, de PC2400-markering voor DDRDRAM betekent DDR-geheugen met een werkfrequentie van 150 MHz (een mogelijke aanduiding voor geheugen als DDR150).

De toename van de Rambus-busbreedte en -frequentie, beloofd in de komende jaren, maakt DRDRAM-geheugen ondanks zijn hoge kosten, veelbelovend. Dus, Samsung-bedrijf gepland om eind 2003 64-bits geheugen (met vier 16-bits kanalen) uit te brengen, met een doorvoersnelheid van 8500 MB/s (PC1066) en 9600 MB/s (PC120 0). De directe vooruitzichten voor DDRDRAM zijn niet veel bescheidener: Hunix Semiconducta heeft 512-megabit DDR-chips aangekondigd die zijn vervaardigd met behulp van 0,10 micron-technologie met werkfrequenties van 266, 333 en 400 MHz (overdrachtssnelheid tot 6400 MB/s). Kenmerken individuele soorten geheugen worden weergegeven in een tabel. 6.2. Eind 2002 verscheen er een bericht over de creatie door Toshiba en Infineon Technologies AG van een nieuwe ferro-elektrische niet-vluchtige geheugenchip (FeRAM - Ferroelectric Random Access non-volatile Memory) met een capaciteit van 32 Mbit, qua bandbreedte vergelijkbaar met YARKAM .

IBM en Infineon Technologies hebben magnetische Random Access Memory (MRAM)-technologie ontwikkeld. MRAM werkt op dezelfde manier als flashgeheugen (Flash) en is niet-vluchtig. IBM meldde dat MRAM tegen 2005 bestaande varianten van DRAM zou kunnen vervangen. Een computer met MRAM zal vrijwel onmiddellijk opstarten.

*************************************


Dynamisch RAM-geheugen(Dynamic RAM - DRAM) wordt gebruikt in de meeste RAM-systemen van moderne pc's. Het belangrijkste voordeel van dit type geheugen is dat de cellen zeer dicht opeengepakt zijn, d.w.z. Veel bits kunnen in een kleine chip worden verpakt, wat betekent dat geheugen met een grote capaciteit op basis daarvan kan worden georganiseerd.


De geheugencellen in een DRAM-chip zijn kleine condensatoren die ladingen vasthouden. Dit is precies hoe de bits worden gecodeerd (door de aanwezigheid of afwezigheid van ladingen). De problemen die met dit type geheugen gepaard gaan, worden veroorzaakt door het feit dat het dynamisch is, d.w.z. moeten voortdurend worden geregenereerd, omdat anders de elektrische ladingen in de geheugencondensatoren "afvoeren" en gegevens verloren gaan. Een vernieuwing vindt plaats wanneer de geheugencontroller van het systeem een ​​kleine pauze neemt en toegang krijgt tot alle datalijnen in de geheugenchips. De meeste systemen hebben een geheugencontroller (meestal ingebouwd in de chipset van het moederbord, maar deze kan ook in de processor worden ingebouwd, zoals in Athlon-processors 64 en Opteron), die is ingesteld op een industriestandaard verversingssnelheid van 15 ms. Dit betekent dat elke 15 ms alle rijen in het geheugen worden gelezen om gegevensregeneratie te garanderen.


Geheugenregeneratie vergt helaas tijd van de processor. Elke regeneratiecyclus duurt meerdere cycli centrale verwerker. Op oudere computers kunnen vernieuwingscycli tot 10% (of meer) van de CPU-tijd in beslag nemen, maar in moderne systemen zijn deze kosten minder dan 1%. Bij sommige systemen kunt u de regeneratie-instellingen wijzigen met behulp van het BIOS-setupprogramma. Het interval tussen updatecycli wordt tREF genoemd en wordt niet in milliseconden gespecificeerd, maar in klokcycli. Het is erg belangrijk om te begrijpen dat het vergroten van het interval tussen updatecycli om de systeemprestaties te verbeteren tot incidentele willekeurige fouten kan leiden.


Een willekeurige fout is een gegevensverwerkingsfout die geen verband houdt met een defect in de geheugenchip. In de meeste gevallen is het veiliger om de aanbevolen of standaardregeneratiefrequentie aan te houden. Omdat de regeneratiekosten in moderne computers minder dan 1% bedragen, heeft het wijzigen van de vernieuwingsfrequentie weinig invloed op de prestaties van de computer. Een van de meest acceptabele opties is om de standaardwaarden of automatische instellingen te gebruiken die zijn opgegeven met Programma's instellen BIOS. Bij de meeste moderne systemen kunt u de opgegeven geheugentiming niet wijzigen, waarbij u altijd automatisch ingestelde parameters gebruikt.


DRAM-apparaten gebruiken slechts één transistor en een paar condensatoren om één bit op te slaan, dus ze zijn groter dan andere soorten geheugenchips. Momenteel worden er al dynamische RAM-chips met een capaciteit van 4 GB of meer geproduceerd. Dit betekent dat dergelijke chips meer dan een miljard transistors bevatten! Maar de Core 2 Duo-processor heeft slechts 230 miljoen transistors. Waarom zo'n verschil? Feit is dat in een geheugenchip alle transistoren en condensatoren in serie zijn geplaatst, meestal in de knooppunten van een vierkant rooster, in de vorm van zeer eenvoudige, periodiek herhalende structuren, in tegenstelling tot de processor, die meer is complexe schakeling verschillende structuren zonder duidelijke organisatie.


De transistor van elk DRAM-register met één bit wordt gebruikt om de toestand van de aangrenzende condensator te lezen. Als de condensator is opgeladen, wordt er een eenheid in de cel geschreven; als er geen lading is, wordt er een nul geschreven. De ladingen in de kleine condensatoren lopen voortdurend leeg, dus het geheugen moet voortdurend worden geregenereerd. Zelfs een kortstondige onderbreking van de stroomvoorziening of een storing in de regeneratiecycli leidt tot verlies van lading in de DRAM-cel, en dientengevolge tot verlies van gegevens. In een draaiend systeem leidt dit tot de schijn van een “blue screen of death”, algemene storingen van het beveiligingssysteem, bestandsbeschadiging of een volledige systeemstoring.


RAM-typen en prestaties

Er bestaat enige verwarring over de geheugenprestaties, omdat deze meestal worden gemeten in nanoseconden, terwijl de processorsnelheid wordt gemeten in megahertz en gigahertz. In nieuwe snelle geheugenmodules worden de prestaties gemeten in megahertz, wat de situatie nog ingewikkelder maakt. Gelukkig is het niet moeilijk om de ene meeteenheid naar de andere om te zetten.


Een nanoseconde is een miljardste van een seconde, d.w.z. een zeer korte periode. In het bijzonder bedraagt ​​de lichtsnelheid in vacuüm 299.792 km/s, d.w.z. in een miljardste van een seconde legt de lichtbundel een afstand af van slechts 29,98 cm, d.w.z. minder dan de lengte van een gewone liniaal.


De snelheid van geheugenchips en systemen in het algemeen wordt uitgedrukt in megahertz (MHz), d.w.z. in miljoenen cycli per seconde, of in gigahertz (GHz), d.w.z. in miljarden cycli per seconde. Moderne processors hebben kloksnelheden variërend van 2 tot 4 GHz, hoewel hun interne architectuur (zoals multi-core) een veel grotere impact heeft op hun prestaties.


Naarmate de klokfrequentie toeneemt, neemt de cyclustijd af. Om de efficiëntie van de geheugentoegang te verbeteren, werden tijdens de evolutie van computers verschillende cachingniveaus gecreëerd om de toegang van de processor tot het langzamere hoofdgeheugen te onderscheppen. Pas recentelijk modules DDR-geheugen, DDR2 en DDR3 SDRAM hebben hun prestaties geëvenaard met de processorbus. Wanneer de processor- en geheugenbusfrequenties gelijk zijn, worden de geheugenprestaties optimaal voor een bepaald systeem.


In 2000 waren de processor- en geheugenbussnelheden gestegen tot 100 en zelfs 133 MHz (deze modules werden respectievelijk PC100 en PC133 genoemd). Begin 2001 verdubbelde de geheugensnelheid en werd gelijk aan 200 en 266 MHz; in 2002 werden DDR-geheugenmodules uitgebracht op 333 MHz, en in 2003 op 400 en 533 MHz. In 2005 en 2006 kwam de toename van de geheugensnelheid overeen met de toename van de processorbussnelheid - van 667 naar 800 MHz. In 2007 werd de snelheid van DDR2-geheugen verhoogd tot 1066 MHz, en tegelijkertijd werd DDR3-geheugen met dezelfde en hogere frequentie uitgebracht. In de onderstaande tabel staan ​​de belangrijkste typen geheugenmodules en hun snelheid vermeld.


Geheugentype Piek van populariteit Moduletype Spanning Max. frequentie, MHz Eénkanaals, MB/s Tweekanaals, MB/s
FPM-DRAM1987-1995 30/72-polige SIMM5 V22 177 -
EDO DRAM1995-1998 72-polige SIMM5 V33 266 -
SDR-DRAM1998-2002 168-pins DIMM3,3 V133 1066 -
Rambus-DRAM2000-2002 184-polige RIMM2,5 V1066 2133 4266
DDR-SDRAM2002-2005 184-pins DIMM2,5 V400 3200 6400
DDR2 SDRAM2005-2008 240-pins DDR2 DIMM1,8 V1066 8533 17066
DDR3 SDRAM2008+ 240-pins DDR3 DIMM1,5 V1600 12800 25600

EDO. Uitgebreide gegevensuitvoer (uitgebreide gegevensuitvoermogelijkheden).

DIMM. Dual Inline Memory Module (geheugenmodule met dubbele rij pinout).

DDR. Dubbele datasnelheid (dubbele gegevensoverdrachtsnelheid).

FPM. Snelle paginamodus (snelle paginamodus).

SIMM. Single Inline Memory Module (geheugenmodule met pinout op één rij).

RIMM. Rambus Inline Memory Module (geheugenmodule van de Rambus-standaard).


Geheugenprestaties

Bij vervanging van een defecte geheugenmodule of chip moet het nieuwe element van hetzelfde type zijn. Meestal ontstaan ​​er problemen bij het gebruik van chips of modules die niet aan bepaalde (niet al te talrijke) eisen voldoen, bijvoorbeeld de duur van regeneratiecycli. U kunt ook inconsistenties tegenkomen in pinouts, capaciteit, capaciteit of ontwerp. Als u niet weet welke geheugenmodules uw moederbord toestaat, raadpleeg dan uw documentatie.


Wanneer u snellere geheugenmodules installeert, verbeteren de computerprestaties meestal niet omdat het systeem er op dezelfde frequentie toegang toe heeft. In systemen die DIMM's en RIMM's gebruiken, worden snelheid en andere timingkenmerken gelezen van een speciaal SPD-ROM dat op de module is geïnstalleerd. De geheugencontroller wordt vervolgens geconfigureerd met behulp van deze parameters. De prestaties van dergelijke systemen kunnen worden verbeterd door snellere geheugenmodules te installeren, tot aan de limiet die wordt ondersteund door de systeemlogica-chipset.


Om timing- en betrouwbaarheidsproblemen aan te pakken, hebben Intel en JEDEC standaarden gecreëerd voor snelle geheugenmodules, waarbij geheugenmoduletypes worden gedefinieerd die aan specifieke prestatieniveaus voldoen. Volgens deze normen worden geheugenmodules geclassificeerd op basis van hun timingkarakteristieken.


De belangrijkste tekenen van onvoldoende geheugenprestaties of de inconsistentie ervan met de timingkarakteristieken van het systeem zijn geheugen- en pariteitsfouten, evenals bevriezing en onstabiele werking van het systeem. In dit geval kan de POST-test ook fouten opleveren. Als u niet zeker weet welke geheugenmodules geschikt zijn voor uw systeem, neem dan contact op met de computerfabrikant en probeer geheugenmodules bij een gerenommeerde leverancier aan te schaffen.


Pariteits- en foutcorrectiecodes (ECC)

Fouten bij het opslaan van informatie in RAM zijn onvermijdelijk. Deze worden meestal geclassificeerd als hardwarefouten en periodieke fouten (crashes).


Als een normaal functionerende microschakeling, als gevolg van bijvoorbeeld fysieke schade, niet meer correct begint te werken, wordt dit een hardwarefout genoemd. Om dit type storing op te lossen, moet u meestal een onderdeel van de geheugenhardware vervangen, zoals een defecte chip, SIMM of DIMM.


Een ander, meer verraderlijk type storing is een periodieke fout (crash). Dit is een periodieke storing die niet optreedt bij herhaalde bedrijfsomstandigheden of met regelmatige tussenpozen. (Dergelijke storingen worden gewoonlijk ‘behandeld’ door de computer uit te schakelen en vervolgens weer in te schakelen.)


Ongeveer twintig jaar geleden stelden medewerkers van Intel vast dat alfadeeltjes de storingen veroorzaakten. Omdat alfadeeltjes zelfs niet door een dun vel papier kunnen dringen, werd ontdekt dat hun bron een stof was die in halfgeleiders wordt gebruikt. Tijdens het onderzoek werden deeltjes thorium en uranium aangetroffen in plastic en keramische gevallen microschakelingen die in die jaren werden gebruikt. Door het technologische proces te veranderen, hebben geheugenfabrikanten deze onzuiverheden verwijderd.

Geheugenfabrikanten hebben de bronnen van alfadeeltjes nu bijna volledig geëlimineerd. Als gevolg hiervan hebben veel fabrikanten van geheugenmodules de ondersteuning voor pariteitscontrole uit hun producten verwijderd, ondanks het feit dat geheugenfouten nog niet volledig zijn geëlimineerd. Recenter onderzoek heeft aangetoond dat alfadeeltjes slechts een klein deel van de oorzaken van geheugenstoornissen vertegenwoordigen.


Tegenwoordig is kosmische straling de grootste oorzaak van onregelmatige fouten. Omdat ze zo doordringend zijn, is het vrijwel onmogelijk om er met afscherming tegen te beschermen. Deze stelling werd bevestigd door een aantal onderzoeken uitgevoerd door IBM onder leiding van Dr. J.F. Ziegler.


Een experiment om de mate te testen waarin kosmische straling fouten in de werking van microschakelingen beïnvloedt, toonde aan dat de signaal-foutverhouding (SER) voor sommige DRAM-modules 5950 Failure Units (FU) per miljard uur ontwikkeling voor elke microschakeling bedroeg. De metingen werden uitgevoerd onder omstandigheden die dicht bij de reële omstandigheden liggen, waarbij rekening werd gehouden met een duur van enkele miljoenen machine-uren. Op een gemiddelde computer zou dit betekenen dat er ongeveer elke zes maanden een softwaregeheugenfout optreedt. IN serversystemen of krachtige werkstations met een grote hoeveelheid geïnstalleerd RAM, dergelijke statistieken duiden op één (of zelfs meer) geheugenfout per maand! Toen een testsysteem met dezelfde DIMM's in een veilige schuilplaats op ruim 15 meter diepte onder een laag gesteente werd geplaatst, waardoor de invloed van kosmische straling volledig wordt geëlimineerd, werden softwarefouten in het geheugen helemaal niet geregistreerd. Het experiment toonde niet alleen het gevaar van de invloed van kosmische straling aan, maar bewees ook hoe effectief het is om de invloed van alfastraling en radioactieve onzuiverheden in de omhulsels van geheugenmodules te elimineren.


Fouten veroorzaakt door kosmische straling vormen een grotere bedreiging voor SRAM-modules dan voor DRAM-modules, omdat de lading die nodig is om één bit in een SRAM-cel op te slaan veel groter is. minder capaciteit condensator in DRAM. Kosmische straling vormt ook een grotere bedreiging voor geheugenchips met een hoge dichtheid. Hoe hoger de dichtheid van geheugencellen, hoe groter de kans dat een kosmische straal zo'n cel raakt. Naarmate de geheugengrootte toeneemt, neemt ook het foutenpercentage toe.


Helaas hebben pc-fabrikanten dit niet als oorzaak van geheugenfouten onderkend. De willekeurige aard van een storing is veel gemakkelijker te rechtvaardigen als elektrostatische ontlading, grote stroompieken of onstabiele softwarewerking (bijvoorbeeld bij gebruik van een nieuwe versie besturingssysteem of groot applicatieprogramma). Uit onderzoek is gebleken dat bij ECC-systemen het aandeel softwarefouten 30 keer groter is dan bij hardwarefouten. En dit is niet verrassend, gezien de schadelijke effecten van kosmische straling. Het aantal fouten is afhankelijk van het aantal geïnstalleerde modules geheugen en zijn capaciteit. Softwarefouten kunnen één keer per maand, meerdere keren per week en zelfs vaker voorkomen.


Hoewel kosmische straling en straling de oorzaak zijn van de meeste softwaregeheugenfouten, zijn er nog andere factoren.

Stroompieken of lijnruis. De reden kan zijn defecte eenheid voeding of stopcontact.

Geheugen gebruiken met een onjuist type of onjuiste kenmerken. Het geheugentype moet worden ondersteund door een specifieke chipset en een door die set gedefinieerde toegangssnelheid hebben.

Statische ontladingen. Veroorzaakt onmiddellijke pieken in de stroomvoorziening, wat de gegevensintegriteit kan beïnvloeden.

Synchronisatiefouten. Gegevens die niet tijdig worden ontvangen, kunnen softwarefouten veroorzaken. Vaak is de reden onjuiste BIOS-instellingen, RAM dat langzamer is dan het systeem nodig heeft, overgeklokte processors en andere systeemcomponenten.

Warmteafvoer. Snelle geheugenmodules worden gekenmerkt door hogere bedrijfstemperaturen dan oudere modules. De eerste modules uitgerust met warmtedissipators waren RDRAM RIMM-modules; Tegenwoordig zijn veel krachtige DDR2- en DDR3-modules uitgerust met warmteafvoerers, omdat dit de enige manier is om verhoogd niveau warmteopwekking.


De meeste van de beschreven problemen zorgen er niet voor dat geheugenchips niet meer werken (hoewel een slechte stroomvoorziening of statische elektriciteit kan deze fysiek beschadigen), maar kan de opgeslagen gegevens beïnvloeden.

Het negeren van mislukkingen is dat uiteraard niet De beste manier bevecht ze. Om de fouttolerantie te verbeteren, gebruiken moderne computers technieken zoals pariteit en foutcorrectiecodes (ECC).


Systemen zonder pariteit bieden helemaal geen fouttolerantie. De enige reden dat ze worden gebruikt zijn de minimale basiskosten. Tegelijkertijd is, in tegenstelling tot andere technologieën, geen extra RAM vereist. Een pariteitsdatabyte bevat 9 in plaats van 8 bits, dus de kosten van pariteitsgeheugen zijn ongeveer 12,5% hoger. Bovendien hebben geheugencontrollers die geen logische bruggen nodig hebben voor pariteits- of ECC-gegevens een vereenvoudigde interne architectuur. Draagbare systemen, waarbij een laag energieverbruik bijzonder belangrijk is, profiteren van minder geheugenvermogen als gevolg van het gebruik van minder DRAM-chips. Ten slotte heeft de geheugendatabus zonder pariteit een kleinere breedte, wat zich vertaalt in minder databuffers. De statistische waarschijnlijkheid dat geheugenfouten optreden in moderne desktopcomputers is ongeveer één fout per paar maanden. Het aantal fouten is afhankelijk van de hoeveelheid en het type geheugen dat wordt gebruikt.


Dit foutenniveau kan acceptabel zijn voor gewone computers, niet gebruikt om mee te werken belangrijke toepassingen. In dit geval speelt de prijs een grote rol en zijn de extra kosten van geheugenmodules met pariteit en ECC-ondersteuning niet gerechtvaardigd, dus het is gemakkelijker om zeldzame fouten te accepteren.


Pariteit

Dit is een van de door IBM geïntroduceerde standaarden, volgens welke informatie in geheugenbanken wordt opgeslagen in fragmenten van 9 bits, waarvan er acht (bestaande uit één byte) bedoeld zijn voor de gegevens zelf, en de negende een pariteitsbit is. Door het gebruik van de negende bit kunnen geheugenbeheercircuits dit doen hardwareniveau controleer de integriteit van elke byte aan gegevens. Als er een fout wordt gedetecteerd, stopt de computer en verschijnt er een foutmelding op het scherm. Als u op een computer met Windows of OS/2 werkt, verschijnt het bericht mogelijk niet als er een pariteitsfout optreedt, maar loopt het systeem gewoon vast. Na opnieuw opstarten BIOS-systeem moet de fout identificeren en een passend bericht sturen.


SIMM's en DIMM's worden geleverd met of zonder pariteitsbitondersteuning.

De eerste pc's gebruikten pariteitsgeheugen om de nauwkeurigheid van de uitgevoerde bewerkingen te regelen. Vanaf 1994 begon zich een verontrustende trend te ontwikkelen op de pc-markt. De meeste bedrijven begonnen computers aan te bieden met geheugen zonder pariteit en zonder enige manier om fouten op te sporen of te corrigeren. Het gebruik van SIMM-modules zonder pariteit verminderde de geheugenkosten met 10 à 15%. Pariteitsgeheugen was op zijn beurt duurder vanwege het gebruik van extra pariteitsbits. Pariteitstechnologie corrigeert geen systeemfouten, maar biedt de computergebruiker wel de mogelijkheid deze te detecteren, wat de volgende voordelen heeft:

Pariteitscontrole beschermt tegen de gevolgen van onjuiste berekeningen op basis van onjuiste gegevens;

Pariteitscontroles wijzen op de bron van fouten, helpen u het probleem te begrijpen en verbeteren de operationele betrouwbaarheid van uw computer.


Geheugenondersteuning met of zonder pariteit is niet vereist voor implementatie bijzondere inspanning. Met name het implementeren van pariteitsondersteuning voor een moederbord is niet moeilijk. De belangrijkste implementatiekosten houden verband met de kosten van de pariteitsgeheugenmodules zelf. Als kopers bereid zijn extra kosten te maken om de betrouwbaarheid van de door hen bestelde systemen te verbeteren, kunnen computerfabrikanten hen deze mogelijkheid bieden.


Pariteitscontroleschema

Bij het ontwikkelen van de pariteitsstandaard heeft IBM gespecificeerd dat de waarde van de pariteitsbit zo is ingesteld dat het aantal enen in alle negen bits (acht databits en de pariteitsbit) oneven is. Met andere woorden: wanneer een byte (8 bits) aan gegevens naar het geheugen wordt geschreven, telt een speciaal pariteitscircuit (een chip die op het moederbord of de geheugenkaart is geïnstalleerd) het aantal enen in de byte. Als het even is, wordt aan de uitgang van de microschakeling een logisch één-signaal gegenereerd, dat als negende bit (pariteitsbit) in de overeenkomstige geheugenbit wordt opgeslagen. Het totale aantal enen in alle negen cijfers wordt oneven. Als het aantal enen in acht bits van de brongegevens oneven is, dan is de pariteitsbit gelijk aan nul, en de som binaire cijfers in negen cijfers blijft het ook vreemd.


Laat ons nadenken specifiek voorbeeld(Houd er rekening mee dat de bits in een byte genummerd zijn vanaf nul, d.w.z. 0, 1, 2, ..., 7).

Bitwaarde: 1 0 1 1 0 0 1 1 0

In dit geval is het totale aantal databits oneven (5), dus de pariteitsbit moet nul zijn.


Laten we naar een ander voorbeeld kijken.

Databit: 0 1 2 3 4 5 6 7 pariteitsbits

Bitwaarde: 0 0 1 1 0 0 1 1 1

In dit voorbeeld is het totale aantal 1-databits even (4), dus de pariteitsbit moet op 1 worden ingesteld om ervoor te zorgen dat het aantal 1-en in alle negen bits oneven is.

Bij het lezen uit het geheugen controleert dezelfde chip de informatie op pariteit. Als er een even aantal enen in een 9-bits byte zit, is er een fout opgetreden tijdens het lezen of schrijven van gegevens. Het is onmogelijk om te bepalen bij welke ontlading het heeft plaatsgevonden (je kunt niet eens het aantal beschadigde ontladingen achterhalen). Als er bovendien een fout optreedt in drie bits (een oneven aantal), wordt de fout geregistreerd; Als er echter twee foutieve bits zijn (of een even aantal), wordt de fout niet geregistreerd. Omdat een gelijktijdige fout in meerdere bits van één byte uiterst onwaarschijnlijk is, was dit testschema goedkoop en maakte het tegelijkertijd mogelijk om fouten in het geheugen met een grote waarschijnlijkheid te detecteren.

Wanneer er een fout wordt gedetecteerd, genereert het pariteitscircuit op het moederbord een niet-maskeerbare interrupt (NMI), een systeemwaarschuwing die programma's niet kunnen negeren. Het hoofdwerk stopt en er wordt een speciale procedure gestart die in het BIOS is geschreven.


Nog maar een paar jaar geleden, toen geheugen duur was, brachten sommige bedrijven SIMM's uit met dummy-pariteitscontrolechips. In plaats van pariteitsbits op te slaan voor elke byte geheugen, genereerden deze chips altijd de juiste complementbit. Wanneer het systeem dus probeerde een pariteitsbit te schrijven, werd deze eenvoudigweg weggegooid, en bij het lezen van een byte werd de “noodzakelijke” pariteitsbit altijd vervangen. Als gevolg hiervan ontving het systeem altijd informatie over de juiste werking van het geheugen, hoewel in werkelijkheid alles verre van zo kon zijn.


Dergelijke oplichting werd veroorzaakt door de hoge kosten van geheugenchips, en fabrikanten waren bereid een paar extra dollars te betalen voor de generator in plaats van te betalen voor de duurdere chip die de pariteitsbits opslaat. Helaas was het vrij moeilijk om de aanwezigheid van een dergelijke generator in een geheugenmodule te bepalen. De nep-pariteitsgenerator zag er anders uit dan gewone geheugenchips en had andere markeringen dan andere modulechips. De meeste generatoren hadden een ‘GSM’-logo, dat de fabrikant van het pariteitslogica-apparaat aanduidde, vaak anders dan het bedrijf dat de geheugenmodule zelf produceerde.


Het enige hulpmiddel dat het mogelijk maakte om modules met valse pariteitscontroles te identificeren, waren hardwaretesters. Nu zijn de geheugenprijzen gedaald, waardoor de grondoorzaak van dergelijke fraude is geëlimineerd.


Foutcorrectiecode

Met Error Correcting Codes (ECC) kunt u niet alleen een fout detecteren, maar deze ook in één bit corrigeren. Daarom kan een computer die dergelijke codes gebruikt, zonder onderbreking werken in het geval van een fout in één bit, en zullen de gegevens niet beschadigd raken. De foutcorrectiecodes op de meeste pc's kunnen alleen tweebitsfouten detecteren, maar niet corrigeren. Tegelijkertijd wordt ongeveer 98% van de geheugenfouten veroorzaakt door een fout in één bit, d.w.z. het kan met succes worden opgelost met dit type code. Dit type ECC wordt SEC_DED genoemd (deze afkorting staat voor “één-bit correctie, twee-bit foutdetectie”).


Bij dit soort foutcorrectiecodes zijn voor elke 32 bits zeven extra controlebits nodig voor een organisatie van 4 bytes en acht voor een organisatie van 8 bytes (64-bits Athlon/Pentium-processors). Het implementeren van foutcorrectiecode met een organisatie van 4 bytes is uiteraard duurder routine controle pariteit, maar bij een organisatie van 8 bytes zijn hun kosten gelijk, omdat ze hetzelfde aantal extra bits nodig hebben.


Om foutcorrectiecodes te gebruiken is een geheugencontroller vereist die controlebits berekent tijdens een geheugenschrijfbewerking. Bij het uitlezen uit het geheugen vergelijkt zo’n controller de gelezen en berekende waarden van de controlebits en corrigeert indien nodig de beschadigde bit(s). De kosten van extra logische circuits om foutcorrectiecode in de geheugencontroller te implementeren zijn niet erg hoog, maar kunnen de geheugenprestaties tijdens schrijfbewerkingen aanzienlijk verminderen. Dit komt omdat schrijf- en leesbewerkingen moeten wachten totdat de controlebits zijn voltooid. Wanneer u een deel van een woord schrijft, moet u eerst het volledige woord lezen, vervolgens de gewijzigde bytes herschrijven, en pas daarna de nieuw berekende controlebits.


In de meeste gevallen treedt geheugenstoring op in een enkele bit en daarom worden dergelijke fouten met succes gecorrigeerd met behulp van foutcorrectiecode. Het gebruik van fouttolerant geheugen zorgt voor een hoge computerbetrouwbaarheid. ECC-geheugen is bedoeld voor servers, werkstations of toepassingen waarbij de potentiële kosten van een rekenfout ruimschoots opwegen tegen de extra hardware-investering en benodigde systeemtijd. Wanneer gegevens van bijzonder belang zijn en computers worden gebruikt om problemen op te lossen belangrijke taken, je kunt niet zonder ECC-geheugen. In feite zou geen enkele zichzelf respecterende systeemingenieur een server, zelfs de meest pretentieloze, zonder ECC-geheugen gebruiken.


Gebruikers hebben de keuze tussen non-pariteits-, pariteits- en ECC-systemen, d.w.z. tussen het gewenste niveau van computerfouttolerantie en de mate van waarde van de gebruikte gegevens.


Conclusie

Om foutcorrectiecodes te gebruiken is een geheugencontroller vereist die controlebits berekent tijdens een geheugenschrijfbewerking. De kosten van extra logische circuits om foutcorrectiecode in de geheugencontroller te implementeren zijn niet erg hoog, maar kunnen de geheugenprestaties tijdens schrijfbewerkingen aanzienlijk verminderen. Dit komt omdat schrijf- en leesbewerkingen moeten wachten totdat de controlebits zijn voltooid.

Het gebruik van fouttolerant geheugen zorgt voor een hoge computerbetrouwbaarheid. ECC-geheugen is bedoeld voor servers, werkstations of toepassingen waarbij de potentiële kosten van een rekenfout ruimschoots opwegen tegen de extra hardware-investering en benodigde systeemtijd. Als gegevens van bijzonder belang zijn en computers worden gebruikt om belangrijke problemen op te lossen, is ECC-geheugen onmisbaar.