Geheugenhiërarchie

Uit Wikipedia, de vrije encyclopedie
(Doorverwezen vanaf Geheugenhiërarchie (computer))
Ga naar: navigatie, zoeken

In de computertechniek wordt geheugenhiërarchie het geheel van mechanismen in een digitale computer bedoeld dat als doel heeft een optimale prestatie te krijgen met een kleine hoeveelheid snel en duur geheugen en een grote hoeveelheid langzaam en goedkoop geheugen. Er wordt gesproken van een hiërarchie omdat de mechanismen zich op verschillende niveaus van het model van de virtuele machine bevinden en in onderlinge samenhang functioneren.

[bewerken] Werking

Een centrale verwerkingseenheid (processor) draait aan een veelvoud van de snelheid van het snelste geheugen. Wanneer er wordt gekeken naar geheugen dat zich niet op dezelfde chip bevindt, dan heeft men al gauw een factor van de tweede ordegrootte. Vanuit een performantie-oogpunt is het dus zeer duur om de processor te laten wachten op data die moet worden opgehaald van veel tragere componenten. Deze situatie is gekend als het geheugenknelpunt.

Aangezien het heel moeilijk en fysisch bijna onmogelijk is de snelst mogelijke geheugenschakelingen aan te bieden in een arbitraire grootte, wordt het fysisch geheugen gerangschikt in een hiërarchie die als doel heeft het verschil in snelheden te maskeren voor de processor.

Dit gebeurt door de snelste geheugens (en duurste schakelingen) dicht bij de processor te plaatsen. Op een lager niveau wordt een iets trager geheugen geplaatst, enzovoort.

Ook is men in staat om door een combinatie van hardware- en softwaretechnieken het te doen lijken of de processor beschikking heeft over een bijna oneindige voorraad aan snel geheugen: stukken data worden alvorens die gebruikt worden overgebracht in een hoger niveau in de geheugenhiërarchie. Op het moment dat de processor deze gegevens nodig heeft, heeft die direct toegang ertoe (en bevinden de gegevens zich dicht bij de processor).

Gerelateerd met de geheugenhiërarchie is het processorgeheugenknelpunt. Jaarlijks wordt een processor gemiddeld 60% sneller, terwijl de toegangstijd tot het geheugen maar daalt met een 7% per jaar. Deze kloof wordt dus steeds groter en steeds knellender.

Veel optimalisatietechnieken zijn gebaseerd op het verminderen van de gegeventransfers tussen de verschillende lagen in het fysisch geheugen enerzijds en het geheugen en de processor anderzijds.

Het intern geheugen bevindt zich op dezelfde chip als de processor. Doordat voor de gegevenstransfers interne bussen op de chip gebruikt kunnen worden, gecombineerd met de snelle geheugenschakelingen, is dit snel en dus duur geheugen. Moderne Digital Signal Processors (DSPs) bezitten een cachebeheerder: aan de hand van een aantal heuristische technieken wordt er transparant een inschatting gemaakt voor het datagebruik: de cachebeheerder probeert te voorspellen wat de processor in de nabije toekomst nodig zal hebben. Hierbij wordt vermeden dat de processor moet wachten op data.

In gespecialiseerde processoren voor signaalverwerking is de indeling en plaatsing van gegevens in de geheugenhiërarchie van speciaal belang. Hoewel een cachebeheerder duidelijk een gedeelte van de werklast van de programmeur weghaalt, komt het toch aan een kostprijs: de schakelingen zijn niet in staat een intelligente inschatting te maken gebaseerd op de structuur van het algoritme.

Bij deze DSP-algoritmes wordt de transfer van geheugen van extern (dus op een andere siliconchip, en toegankelijk via een externe bus) naar intern geheugen gedaan door Direct Memory Access: de programmeur haalt de data op van en slaat die op naar extern geheugen. Daar kunnen andere componenten (zoals een Field Programmable Gate Array (FPGA)) dan de data verder verwerken.


Persoonlijke instellingen
Naamruimten

Varianten
Handelingen
Navigatie
Informatie
Hulpmiddelen
Afdrukken/exporteren
In andere talen