Modules van hoofdgeheugensystemen. Fysieke en logische organisatie van het geheugen van computersystemen

Stuur uw goede werk in de kennisbank is eenvoudig. Gebruik het onderstaande formulier

Studenten, afstudeerders, jonge wetenschappers die de kennisbasis gebruiken in hun studie en werk zullen je zeer dankbaar zijn.

Gehost op http://www.allbest.ru/

1. Principes van informatie-uitwisseling tussen hiërarchische niveaus van het geheugensubsysteem.

2. Hoofdfuncties en hoofdsubsystemen van een computersysteem.

3. Het werkingsprincipe van het associatieve cachegeheugen.

4. Implementatie van interrupts van randapparatuur aangesloten via een seriële interface.

5. Wat zijn beschermingsringen?

6. Wat is RAM-segmentatie?

7. Belangrijkste kenmerken van videogegevens. Matrix en grafische weergave van video-informatie.

8. Wat is een bestand? Verschillen tussen een bestand en een map.

9. De belangrijkste fasen van de pijplijn van moderne processors.

10. Wat is het hernoemen van registers?

Vraag nummer 1. Principes van informatie-uitwisseling tussen de hiërarchische niveaus van het geheugensubsysteem

De implementatie van de geheugenhiërarchie van moderne computers is gebaseerd op twee principes: het principe van de lokaliteit van oproepen en de kosten-prestatieverhouding. Het principe van oproeplocatie zegt dat de meeste programma's gelukkig niet met dezelfde waarschijnlijkheid al hun commando's en gegevens aanroepen, maar de voorkeur geven aan een deel van hun adresruimte.

De geheugenhiërarchie van moderne computers is op verschillende niveaus gebouwd, waarbij het hogere niveau kleiner en sneller is en hogere kosten per byte heeft dan het lagere niveau. De niveaus van een hiërarchie zijn met elkaar verbonden: alle gegevens op het ene niveau zijn ook op een lager niveau te vinden, en alle gegevens op dat lagere niveau zijn te vinden op het volgende lagere niveau, enzovoort, totdat we de onderkant van de hiërarchie bereiken.

De hiërarchie van het geheugen bestaat gewoonlijk uit vele niveaus, maar op elk moment hebben we te maken met slechts twee nabijgelegen niveaus. De kleinste informatie-eenheid die in een hiërarchie met twee niveaus aanwezig of afwezig kan zijn, wordt een blok genoemd. De blokgrootte kan vast of variabel zijn. Als deze grootte vast is, is de hoeveelheid geheugen een veelvoud van de blokgrootte.

Een succesvolle of mislukte oproep naar een hoger niveau wordt respectievelijk een hit of een misser genoemd. Een hit is een verwijzing naar een object in het geheugen dat op een hoger niveau wordt gevonden, terwijl een misser betekent dat het niet op dat niveau wordt gevonden. De hit rate of hit ratio is het aandeel hits dat op een hoger niveau wordt gevonden. Soms wordt het weergegeven als een percentage. De miss rate is het aandeel hits dat niet op een hoger niveau wordt gevonden.

Aangezien prestatieverbetering de belangrijkste reden is voor het verschijnen van de geheugenhiërarchie, is de hit-and-miss-rate een belangrijk kenmerk. De treffertijd is de tijd om een ​​hoger niveau van de hiërarchie te bereiken, waaronder met name de tijd die nodig is om te bepalen of de treffer een treffer of een misser is. De miss penalty is de tijd om een ​​blok in een hogere laag te vervangen door een blok in een lagere laag, plus de tijd om dat blok naar het gewenste apparaat (meestal een processor) te sturen. Verliezen bij een misser omvatten verder twee componenten: toegangstijd (toegangstijd) - de tijd om toegang te krijgen tot het eerste woord van het blok bij een misser, en overdrachtstijd - extra tijd om de resterende woorden van het blok over te dragen. De toegangstijd is gerelateerd aan de latentie van het geheugen op een lager niveau, terwijl de overdrachtstijd gerelateerd is aan de bandbreedte van de verbinding tussen de geheugenapparaten van twee aangrenzende niveaus.

Vraag nummer 2. Hoofdfuncties en belangrijkste subsystemen van een computersysteem

OS is een reeks onderling gerelateerde programma's die zijn ontworpen om de efficiëntie van computerhardware te vergroten door de bronnen rationeel te beheren, en om de gebruiker gemak te bieden door hem een ​​uitgebreide virtuele machine te bieden. De belangrijkste bronnen die door het besturingssysteem worden beheerd, zijn processors, hoofdgeheugen, timers, datasets, schijven, tapedrives, printers, netwerkapparaten en enkele andere. Middelen worden gedeeld tussen processen. Om problemen met resourcebeheer op te lossen, gebruiken verschillende besturingssystemen verschillende algoritmen, waarvan de kenmerken uiteindelijk het uiterlijk van het besturingssysteem bepalen. De belangrijkste OS-subsystemen zijn de proces-, geheugen-, bestands- en externe apparaatbeheersubsystemen, evenals de gebruikersinterface, gegevensbescherming en beheersubsystemen.

Hoofdfuncties:

* Uitvoeren op verzoek van programma's van die vrij elementaire (low-level) acties die de meeste programma's gemeen hebben en die vaak in bijna alle programma's voorkomen (invoer en uitvoer van gegevens, starten en stoppen van andere programma's, toewijzen en vrijmaken van extra geheugen, enzovoort.).

* Gestandaardiseerde toegang tot randapparatuur (I/O-apparaten).

* RAM-beheer (verdeling tussen processen, organisatie van virtueel geheugen).

* Beheer de toegang tot gegevens op niet-vluchtige media (zoals een harde schijf, optische schijven, enz.), georganiseerd in een bepaald bestandssysteem.

* Zorg voor gebruikersinterface.

* Netwerkbewerkingen, ondersteuning voor de netwerkprotocolstack.

Extra functies:

* Parallelle of pseudo-parallelle uitvoering van taken (multitasking).

* Efficiënte verdeling van computersysteembronnen tussen processen.

* Differentiatie van toegang van verschillende processen tot resources.

* Interactie tussen processen: gegevensuitwisseling, onderlinge synchronisatie. Een proces is een dynamisch object dat in het besturingssysteem verschijnt nadat de gebruiker of het besturingssysteem zelf heeft besloten 'het programma uit te voeren', dat wil zeggen om een ​​nieuwe rekeneenheid te creëren. Een gebruiker is een persoon of organisatie die een draaiend systeem gebruikt om een ​​specifieke functie uit te voeren. Een bestand is een benoemd gebied van extern geheugen waarnaar kan worden geschreven en waarvan kan worden gelezen. De belangrijkste doelen van het gebruik van bestanden zijn: langdurige en betrouwbare opslag van informatie, evenals gedeelde toegang tot gegevens.

Vraag #3: Hoe associatieve cache werkt

In het associatieve geheugen worden elementen niet geselecteerd op adres, maar op inhoud. Laten we het laatste concept in meer detail uitleggen. Voor geheugen met een adresorganisatie werd het concept van de minimum adresseerbare eenheid (MAU) geïntroduceerd als een stuk data met een individueel adres. Laten we een soortgelijk concept introduceren voor associatief geheugen, en we zullen deze minimale opslageenheid in associatief geheugen een string van associatief geheugen (STRAP) noemen. Elke StrAP bevat twee velden: een tagveld en een dataveld. Een leesverzoek aan het associatieve geheugen kan als volgt in woorden worden uitgedrukt: selecteer een regel(s) waarvan de tag gelijk is (zijn) aan de opgegeven waarde.

In het bijzonder is een van de drie resultaten mogelijk met een dergelijke zoekopdracht:

1. er is precies één regel met de gegeven tag;

2. er zijn meerdere regels met de gegeven tag;

3. er is geen regel met de gegeven tag.

Zoeken naar een record op attribuut is een actie die typisch is voor databasetoegangen, en het doorzoeken van de database is vaak een associatieve zoekopdracht. Om een ​​dergelijke zoekopdracht uit te voeren, moet u alle vermeldingen bekijken en de gegeven tag vergelijken met de tag van elke vermelding. Dit kan ook bij gebruik van gewoon adresseerbaar geheugen voor het opslaan van records (en het is duidelijk dat dit veel tijd zal vergen - in verhouding tot het aantal opgeslagen records!). Men spreekt van associatief geheugen wanneer het associatief ophalen van gegevens uit het geheugen hardwarematig wordt ondersteund. Bij het schrijven naar het associatieve geheugen wordt het data-element in de StrAP geplaatst samen met de tag die inherent is aan dit element. Om dit te doen, kunt u elke gratis STRAP gebruiken.

Aan het begin van de operatie is het cachegeheugen leeg. Wanneer de eerste opdracht wordt uitgevoerd tijdens het ophalen, wordt de code, evenals een paar aangrenzende bytes van de programmacode, (langzaam) overgebracht naar een van de cacheregels en tegelijkertijd het bovenste deel van het adres wordt naar de bijbehorende tag geschreven. Zo wordt de cacheregel gevuld.

Als de volgende ophaalacties mogelijk zijn uit deze sectie, zullen ze worden gedaan met de CASH (fast) - "CASH hit". Als blijkt dat het vereiste element niet in de cache zit, - "CASH miss". In dit geval wordt het RAM (langzaam) benaderd en wordt tegelijkertijd de volgende cacheregel gevuld.

Toegang tot de cache is als volgt. Nadat het uitvoeringsadres is gevormd, worden de hoge bits, die de tag vormen, in hardware (snel) en gelijktijdig met de tags van alle cacheregels vergeleken. In dit geval zijn slechts twee van de drie hierboven genoemde situaties mogelijk: ofwel geven alle vergelijkingen een negatief resultaat (CASH-miss), ofwel wordt een positief resultaat van de vergelijking geregistreerd voor precies één rij (CASH-treffer).

Als bij het lezen een CACHE-treffer is vastgesteld, bepalen de onderste bits van het adres de positie in de cacheregel waaruit bytes moeten worden geselecteerd, en bepaalt het type bewerking het aantal bytes. Het is duidelijk dat als de lengte van een data-element groter is dan één byte, er situaties mogelijk zijn wanneer dit element (in delen) zich in twee (of meer) verschillende cacheregels bevindt, dan zal de tijd om zo'n element op te halen toenemen. Dit kan worden tegengegaan door operanden en instructies uit te lijnen langs de grenzen van de cacheregels, waarmee rekening wordt gehouden bij het ontwikkelen van optimaliserende vertalers of bij het handmatig optimaliseren van code.

Als er een cache-misser optreedt en er zijn geen vrije regels in de cache, moet u een regel van de cache vervangen door een andere regel.

Het belangrijkste doel van de vervangingsstrategie is om de regels die in de nabije toekomst het meest waarschijnlijk zullen worden geopend in de cache te bewaren en de regels te vervangen die in een meer verre tijd of helemaal niet zullen worden gebruikt. Het is duidelijk dat het optimale algoritme er een is die de regel vervangt die later in de toekomst zal worden gebruikt dan welke andere cacheregel dan ook.

Vraag nummer 4. Interrupts implementeren van randapparatuur aangesloten via een seriële interface

De seriële interface voor gegevensoverdracht in één richting maakt gebruik van één signaalleiding, waardoor informatiebits na elkaar worden verzonden. Deze transmissiemethode bepaalt de naam van de interface en de poort die deze implementeert (seriële interface en seriële poort). Seriële gegevensoverdracht kan in synchrone en asynchrone modus worden uitgevoerd.

Bij asynchrone verzending wordt elke byte voorafgegaan door een startbit, waarmee de ontvanger wordt gewaarschuwd dat de volgende verzending is begonnen, gevolgd door databits of een pariteitsbit. Beëindigt het verzenden van een stopbit.

Met het asynchrone verzendformaat kunt u mogelijke verzendfouten identificeren.

De synchrone transmissiemodus veronderstelt een constante activiteit van het communicatiekanaal. Het bericht begint met een synchronisatiebyte, op de voet gevolgd door een stroom databits. Als de zender geen gegevens heeft om te verzenden, vult deze de leemte op door continu sync-bytes te verzenden. Bij het overbrengen van grote data-arrays zal de synchronisatie-overhead in deze modus lager zijn dan in de asynchrone modus.

Interrupt (Engelse interrupt) -- een signaal dat de processor informeert over het optreden van een asynchrone gebeurtenis. In dit geval wordt de uitvoering van de huidige reeks opdrachten opgeschort en wordt de besturing overgedragen aan de interrupt-handler, die het werk van het verwerken van de gebeurtenis uitvoert en de besturing teruggeeft aan de onderbroken code. Soorten onderbrekingen: Hardware (Engelse IRQ - Interrupt Request) -- gebeurtenissen van randapparatuur (bijvoorbeeld toetsaanslagen op het toetsenbord, muisbewegingen, een signaal van een timer, netwerkkaart of schijfstation) -- externe onderbrekingen of gebeurtenissen in de microprocessor -- (bijvoorbeeld delen door nul) -- interne onderbrekingen; Software -- geïnitieerd door het uitvoerbare programma, d.w.z. al synchroon, niet asynchroon. Software-interrupts kunnen worden gebruikt om besturingssysteemservices aan te roepen.

Interrupts vereisen de opschorting van de uitvoering van de huidige instructiestroom (stateful) en de lancering van de uitvoering van de ISR (Interrupt Service Routine) interruptafhandelingsprocedure. Deze procedure moet eerst de bron van de onderbreking identificeren (en er kunnen er meerdere zijn), en vervolgens acties uitvoeren die verband houden met de reactie op de gebeurtenis. Als gebeurtenissen een actie van een toepassingsprogramma moeten veroorzaken, hoeft de interrupt-handler alleen een signaal (via het besturingssysteem) te geven om de instructiestroom die deze acties uitvoert te starten (of te wekken). De ISR-procedure zelf moet tijdgeoptimaliseerd zijn. Onderhoudsinterrupts, vooral in beveiligde modus, op x86-gebaseerde pc's hebben een aanzienlijke overhead. Om deze reden proberen ze hun aantal te verminderen. Identificatie van de bron van de onderbreking is een groot probleem - de architectuur van pc-compatibele computers gebruikt hiervoor traditionele, maar inefficiënte mechanismen. In sommige gevallen worden onderbrekingen van apparaten vervangen door polling - softwaregestuurde polling van de apparaatstatus. In dit geval worden de toestanden van meerdere apparaten opgevraagd door een onderbreking van een timer.

Vraag nummer 5. Wat zijn ringen van bescherming?

Rings of protection - een architectuur van informatiebeveiliging en functionele fouttolerantie die een hardwarescheiding van systeem- en gebruikersprivilegeniveaus implementeert. De structuur van privileges kan worden weergegeven als verschillende concentrische cirkels. In dit geval is de systeemmodus (supervisormodus of nulring, de zogenaamde "ring 0"), die maximale toegang tot bronnen biedt, de binnenste cirkel, terwijl de gebruikersmodus met beperkte toegang de buitenste is. Traditioneel biedt de x86-microprocessorfamilie 4 beschermingsringen.

Ondersteuning voor meerdere beschermingsringen was een van de revolutionaire concepten in het Multics-besturingssysteem, de voorloper van de huidige UNIX-achtige besturingssystemen.

De originele Multics hadden 8 beschermingsringen, maar veel moderne systemen hebben er meestal minder. Dankzij speciale machineregisters weet de processor altijd in welke ring de code wordt uitgevoerd.

Het ringmechanisme beperkt de paden waarlangs de controle van de ene ring naar de andere kan worden overgedragen ernstig. Er is een instructie die de controle overdraagt ​​van een minder veilige ring naar een veiligere (lager genummerde) ring. Dit mechanisme is ontworpen om de mogelijkheid van onopzettelijke of opzettelijke inbreuken op de beveiliging te beperken.

Een efficiënt gebruik van de ringbeveiligingsarchitectuur vereist een nauwe interactie tussen de hardware en het besturingssysteem. Besturingssystemen die zijn ontworpen om op een groot aantal platforms te draaien, kunnen op elk platform een ​​andere implementatie van het ringmechanisme hebben.

Vraag # 6. Wat is RAM-segmentatie?

Segmentatie is een techniek voor het organiseren van programma's, waarbij de adresstructuur van het programma de inhoudsverdeling weerspiegelt. Bij segmentatie wordt de adresruimte van elk programma onderverdeeld in segmenten van verschillende lengtes, die overeenkomen met betekenisvol verschillende delen van het programma. Een segment kan bijvoorbeeld een procedure of een gegevensgebied zijn. In dit geval bestaat het adres uit de segmentnaam en het adres binnen het -offset segment. Omdat programmasegmenten op naam worden benaderd, is het mogelijk om segmenten toe te wijzen in niet-aangrenzende geheugengebieden bij het toewijzen van geheugen, bovendien hoeven niet alle segmenten tegelijkertijd in het RAM te zijn, sommige kunnen zich in het externe geheugen bevinden en naar het RAM worden verplaatst als vereist.

Zoals reeds vermeld, vertegenwoordigt in een systeem met segmentatie elk adres een paar: s is de naam van het segment en d is de offset. Elk programma komt overeen met een tabel met segmenten die altijd in het geheugen aanwezig is, waarbij elk segment van dit proces overeenkomt met één invoer. Met behulp van deze tabel koppelt het systeem de programma-adressen aan de werkelijke OP-adressen. Het adres van de tafel wordt opgeslagen in een hardwareregister dat het segmenttabelregister wordt genoemd.

Adresberekening tijdens segmentatie wordt als volgt uitgevoerd. Voordat het systeem het adres kan berekenen, wordt de aanwezigheid van het segment in het OP door hardware gecontroleerd. Als het segment aanwezig is, wordt het segmenttabelregister gebruikt om toegang te krijgen tot de e rij van de segmenttabel, waar het adres van het segment in het geheugen wordt aangegeven. Omdat segmenten in verschillende lengtes verkrijgbaar zijn, moet de segmentgrens bekend zijn om lusvorming buiten het gespecificeerde segment te voorkomen.

Als het systeem op enig moment zijn aandacht wil afleiden naar een ander proces, zal het gewoon de inhoud van het segmenttabelregister vervangen door het adres van een andere segmenttabel, waarna de viewreferenties worden geïnterpreteerd volgens de nieuwe tabel.

Segmentatie van de adresruimte heeft veel voordelen ten opzichte van absolute adressering, en het belangrijkste is het efficiënte gebruik van RAM. Als er niet genoeg ruimte in het RAM-geheugen is voor alle segmenten van een bepaald programma, kunnen sommige zich tijdelijk in het hulpgeheugen bevinden. Als een programma een nieuw segment in het OP moet introduceren, kan het systeem elk segment uit het OP in een extra segment verwijderen. Het te verplaatsen segment hoeft niet te behoren tot het programma waarvoor het nieuwe segment in het OP wordt ingevoerd. Het maakt niet uit met welke segmenttabel het vervangen segment overeenkomt, het belangrijkste is dat wanneer het wordt overgebracht naar het hulpgeheugen, de waarde van het attribuut verandert in de overeenkomstige segmenttabel.

Vraag nummer 7. Belangrijkste kenmerken van videogegevens. Matrix en grafische weergave van video-informatie

Video-informatie kan zowel statisch als dynamisch zijn. Statische video-informatie omvat tekst, tekeningen, grafieken, tekeningen, tabellen, enz. Tekeningen zijn ook onderverdeeld in vlak - tweedimensionaal en driedimensionaal - driedimensionaal.

Dynamische video-informatie is videofilms en animatie die worden gebruikt om bewegende beelden over te brengen. Ze zijn gebaseerd op sequentiële blootstelling op het scherm in realtime van individuele frames in overeenstemming met het scenario.

De demonstratie van animatie- en diafilms is gebaseerd op verschillende principes. Animatiefilms worden zo getoond dat het menselijke visuele apparaat geen individuele frames kan vastleggen. Om animatie van hoge kwaliteit te krijgen, moeten frames ongeveer 30 keer per seconde worden gewijzigd. Bij het demonstreren van diafilms wordt elk frame zo lang op het scherm belicht als nodig is voor menselijke waarneming (meestal van 30 seconden tot 1 minuut). Diafilms kunnen worden geclassificeerd als statische video-informatie.

Bij computergebruik zijn er twee manieren om grafische afbeeldingen weer te geven; matrix (raster) en vector. Matrixindelingen (bitmap) zijn zeer geschikt voor afbeeldingen met complexe kleuren, schakeringen en vormen, zoals foto's, tekeningen en gescande gegevens. Vectorformaten zijn meer geschikt voor tekeningen en afbeeldingen met eenvoudige vormen, arcering en kleuren.

In matrixformaten wordt een afbeelding weergegeven door een rechthoekige matrix van punten -- pixels (beeldelement), waarvan de positie in de matrix overeenkomt met de coördinaten van de punten op het scherm. Naast de coördinaten wordt elke pixel gekenmerkt door een eigen kleur, achtergrondkleur of helderheidsgradatie. Het aantal bits dat wordt toegewezen om de kleur van een pixel aan te geven, is afhankelijk van het formaat. In afbeeldingen van hoge kwaliteit wordt de kleur van een pixel beschreven in 24 bits, wat ongeveer 16 miljoen kleuren oplevert. Het belangrijkste nadeel van matrix (raster) graphics is de grote geheugencapaciteit die nodig is om de afbeelding op te slaan. Daarom worden verschillende datacompressiemethoden gebruikt om afbeeldingen te beschrijven. Momenteel zijn er veel grafische bestandsindelingen die verschillen in compressie-algoritmen en manieren om matrixafbeeldingen weer te geven, evenals in de reikwijdte.

Vectorrepresentatie definieert, in tegenstelling tot matrixafbeeldingen, de beschrijving van de afbeelding niet door pixels, maar door curven - splines. Een spline is een vloeiende curve die door twee of meer ankerpunten gaat die de vorm van de spline bepalen.

Het belangrijkste voordeel van vectorafbeeldingen is dat de beschrijving van het object eenvoudig is en weinig geheugen in beslag neemt. Bovendien hebben vectorafbeeldingen de volgende voordelen ten opzichte van matrixafbeeldingen:

Gemak van het schalen van de afbeelding zonder afbreuk te doen aan de kwaliteit;

Onafhankelijkheid van de geheugencapaciteit die nodig is om de afbeelding op te slaan, van het geselecteerde kleurmodel.

Het nadeel van vectorafbeeldingen is hun enige kunstmatigheid, die erin bestaat dat elk beeld moet worden verdeeld in een eindige verzameling van zijn samenstellende primitieven. Net als bij matrixafbeeldingen zijn er verschillende bestandsindelingen voor vectorafbeeldingen.

Matrix- en vectorafbeeldingen bestaan ​​niet los van elkaar. Vectortekeningen kunnen dus ook matrixafbeeldingen bevatten. Bovendien kunnen vector- en matrixafbeeldingen naar elkaar worden geconverteerd. Grafische formaten waarmee u een matrix- en vectorbeschrijving van een afbeelding kunt combineren, worden metabestanden genoemd. Metabestanden zorgen voor voldoende compactheid van bestanden met behoud van een hoge beeldkwaliteit.

De overwogen vormen van presentatie van statische video-informatie worden met name gebruikt voor individuele frames die animatiefilms vormen. Om animatiefilms op te slaan, worden verschillende methoden voor informatiecompressie gebruikt, waarvan de meeste gestandaardiseerd zijn.

Vraag # 8. Wat is een bestand? Verschillen tussen een bestand en een map

computergeheugen operationele videogegevens

Bestand (Engels bestand - map) - een concept in informatica: een entiteit waarmee u toegang hebt tot elke bron van een computersysteem en die een aantal functies heeft:

Vaste naam (een reeks tekens, een nummer of iets anders dat het bestand uniek kenmerkt);

Een gedefinieerde logische weergave en de bijbehorende lees-/schrijfbewerkingen.

Het kan van alles zijn - van een reeks bits (hoewel we het in bytes lezen, of liever woorden-groepen van bytes, vier, acht, zestien elk) tot een database met een willekeurige organisatie of een tussenliggende optie; multidimensionale database, strikt geordend.

Het eerste geval komt overeen met lees-/schrijfbewerkingen van een stroom en/of een array (d.w.z. sequentieel of met toegang via index), het tweede - DBMS-opdrachten. Tussenliggende opties - lezen en ontleden van allerlei bestandsformaten.

Een bestand is een benoemde verzameling bytes van willekeurige lengte die zich op een opslagmedium bevindt, en een map is een benoemde plaats op een schijf waarop bestanden zijn opgeslagen. Een volledige bestandsnaam kan directory's bevatten, zoals C:\papka\file.txt, al dan niet C:\file.txt, en een directory is waar bestanden zich kunnen bevinden: C:\papka. De map kan niet in het programma worden geopend om er informatie naar te schrijven of te lezen, het is bedoeld om bestanden in zichzelf op te slaan, het bestand daarentegen kan worden geopend en bewerkt.

Vraag nummer 9. De belangrijkste fasen van de pijplijn van moderne processors

De belangrijkste taak van de processor is om (en zo snel mogelijk) de instructies in het programma uit te voeren. De eenvoudigste manier (het verhogen van de klokfrequentie van de processor) is vrij snel uitgeput door technologische beperkingen. Daarom moeten we op zoek naar andere manieren om de prestaties te verbeteren. Het was een reeks architecturale innovaties die het mogelijk maakten om de prestaties van de Pentium te verhogen in vergelijking met 486-processors. De belangrijkste daarvan is de transportband.

De uitvoering van de opdracht bestaat uit een aantal stappen:

1) een commando uit het geheugen lezen,

2) lengtebepaling,

3) het bepalen van het adres van de geheugencel, indien deze wordt gebruikt,

4) uitvoering van de opdracht,

5) het resultaat opslaan.

In vroege processors werden al deze stappen voor elke instructie volledig uitgevoerd. De pijplijn maakte het mogelijk om het proces te versnellen: nadat het team een ​​van de fasen had doorlopen en naar de volgende was gegaan, begon de verwerking van het volgende commando. Deze oplossing verscheen in de nieuwste 486s (bijvoorbeeld in AMD 5x86-133). De Pentium introduceerde voor het eerst de dubbele pijplijn. Instructies kunnen parallel worden uitgevoerd (behalve voor drijvende-kommaberekeningen en springinstructies). Hierdoor konden we de productiviteit met ongeveer 30-35% verhogen.

Vraag 10. Wat is het hernoemen van registers?

Het hernoemen van registers is een methode om de onderlinge afhankelijkheden te verzwakken van instructies die worden gebruikt in processors die hun uitvoering buiten de volgorde uitvoeren.

In het geval dat het, in overeenstemming met twee of meer instructies, nodig is om gegevens naar één register te schrijven, wordt hun correcte out-of-order uitvoering onmogelijk, zelfs als er geen gegevensafhankelijkheid is. Dergelijke onderlinge afhankelijkheden worden vaak vals genoemd.

Aangezien het aantal architectuurregisters meestal beperkt is, is de kans op valse onderlinge afhankelijkheden vrij groot, wat kan leiden tot een afname van de processorprestaties.

Register hernoemen is de transformatie van softwareverwijzingen naar architectuurregisters in verwijzingen naar fysieke registers en stelt u in staat de impact van valse onderlinge afhankelijkheden te verminderen door een groot aantal fysieke registers te gebruiken in plaats van een beperkt aantal architecturale registers. In dit geval bewaakt de processor de staat van de fysieke registers die overeenkomen met de staat van de architecturale, en de uitvoer van de resultaten wordt uitgevoerd in de volgorde die door het programma wordt gegeven.

bronnen

Internetbron - http://www.chinapads.ru/

Ryazantsev OI, Nedzelsky D.O., Guseva S.V. Architectuur en structurele organisatie van boekhoudsystemen. Hoofd helper. - Lugansk: Uitzicht. SNU im. V. Dahl, 2008.

Internetbron - http://studopedia.net/

Internetbron - http://proc.ucoz.ru/load/ustrojstvo_processora/1-1-0-2

E. Tannenbaum. Computerarchitectuur, 4e druk. SPb. Pieter 2006.

Internetbron - http://193.108.240.69/moodle/file.php/5/navch_pos_OS.doc

Internetbron - http://znanija.com/task/1788585

Gehost op Allbest.ru

Vergelijkbare documenten

    Classificatie van computergeheugen. Gebruik van operationeel, statisch en dynamisch willekeurig toegankelijk geheugen. Hoe DDR SDRAM werkt. Magnetische schijven formatteren. Het belangrijkste probleem van synchronisatie. Theorie van computationele processen. geheugen adressering.

    scriptie, toegevoegd 28-05-2016

    De geschiedenis van de opkomst en ontwikkeling van random access memory. Algemene kenmerken van de meest populaire moderne soorten RAM - SRAM en DRAM. Faseveranderingsgeheugen (PRAM). Thyristor random access memory, zijn specificiteit.

    scriptie, toegevoegd 21-11-2014

    Het eenvoudigste schema voor de interactie van RAM met de CPU. Het apparaat en de werkingsprincipes van RAM-geheugen. De evolutie van dynamisch geheugen. EDO-DRAM BEDO (Burst EDO) geheugenmodule - batch EDO RAM. Geheugenmodule SDRAM, DDR SDRAM, SDRAM II.

    samenvatting, toegevoegd 13-12-2009

    Het concept, de typen en de belangrijkste functies van computergeheugen - onderdelen van een computer, een fysiek apparaat voor het opslaan van gegevens die in berekeningen worden gebruikt, voor een bepaalde tijd. Schematisch diagram van RAM. Flexibele magnetische schijven.

    presentatie, toegevoegd 18-03-2012

    Geheugen voor computersystemen, het maken en kenmerken van functies. Creatie van geheugenapparaten en elementaire prestatiekenmerken. Functionele diagrammen en een methode voor het organiseren van een matrix van opslagelementen. Soorten magnetisch en flashgeheugen.

    presentatie, toegevoegd 01/12/2009

    Opslag van verschillende informatie als het belangrijkste doel van het geheugen. Kenmerken van de soorten geheugen. Geheugentype SRAM en DRAM. Cachegeheugen of scratchgeheugen, de bijzonderheden en toepassingen. De laatste ontwikkelingen op het gebied van in-memory.

    presentatie, toegevoegd 12/01/2014

    Generalisatie van de belangrijkste typen en het doel van computer-RAM. Vluchtig en niet-vluchtig geheugen. SRAM en DRAM. Triggers, dynamisch RAM-geheugen en zijn wijzigingen. cachegeheugen. Persistent opslagapparaat. Flash-geheugen. Soorten extern geheugen.

    scriptie, toegevoegd 17-06-2013

    Verbetering van de parameters van geheugenmodules. De werking en interactie van het besturingssysteem met RAM. Analyse van de belangrijkste typen, parameters van RAM. Het softwaregedeelte met de verwerking van opdrachtuitvoering en plaatsing in RAM.

    scriptie, toegevoegd 12/02/2009

    De algemene structuur van de microprocessor. De structuur van het 64-bits geheugensubsysteem. I/O-poort selectie. Kenmerken van de interface van microprocessorsystemen. Ontwerpen van een geheugensubsysteem op basis van Itanium 2. Berekening van informatie-inhoud en benodigde volumes.

    scriptie, toegevoegd 12/05/2012

    Het concept en de functionele kenmerken van computeropslagapparaten, hun classificatie en typen, vergelijkende kenmerken: ROM, DRAM en SRAM. Evaluatie van de voor- en nadelen van elk type RAM, aanwijzingen en manieren om ze te gebruiken.


Sinds de creatie van von Neumann-computers is de belangrijkste geheugen in een computersysteem is georganiseerd als een lineaire (eendimensionale) adresruimte, bestaande uit een reeks woorden en later bytes. de externe geheugen. Hoewel deze organisatie de aard van de gebruikte hardware weerspiegelt, komt deze niet overeen met de manier waarop programma's doorgaans worden geschreven. De meeste programma's zijn georganiseerd in modules, waarvan sommige onveranderlijk zijn (alleen-lezen, alleen uitvoeren) terwijl andere gegevens bevatten die kunnen worden gewijzigd.

Als besturingssysteem En Hardware effectief kan werken met gebruikersprogramma's en data weergegeven door modules, biedt dit een aantal voordelen.


  1. Modules kunnen onafhankelijk van elkaar worden gemaakt en gecompileerd, waarbij alle verwijzingen van de ene module naar de andere door het systeem worden opgelost terwijl het programma draait.

  2. Verschillende modules kunnen verschillende beschermingsniveaus krijgen (alleen-lezen, alleen-uitvoeren) tegen een zeer matige overhead.

  3. Het is mogelijk om een ​​mechanisme te gebruiken dat ervoor zorgt dat modules door verschillende processen worden gedeeld (voor het geval van samenwerking tussen processen bij het werken aan dezelfde taak).
Geheugen - het belangrijkstehulpbron computersysteem dat efficiënt beheer vereist. Ook al tegenwoordig geheugen de gemiddelde thuiscomputer is duizenden keren groter dan geheugen mainframe computers van de jaren 70, programma's groeien sneller in omvang dan geheugen. Het volstaat om dat alleen te zeggen besturingssysteem honderden MB in beslag neemt (bijvoorbeeld ramen 2000 - tot 30 miljoen regels), om nog maar te zwijgen van applicatieprogramma's en databases die tientallen en honderden GB in computersystemen kunnen innemen.

Een parafrase van de wet van Parkinson zegt: "Programma's breiden zich uit om al het beschikbare geheugen te vullen om ze te ondersteunen." (Er werd gezegd over het besturingssysteem). Idealiter zouden programmeurs onbeperkte grootte en snelheid willen hebben geheugen, die niet-vluchtig zou zijn, d.w.z. behield zijn inhoud wanneer de elektriciteit werd uitgeschakeld, en zou ook goedkoop zijn. In werkelijkheid is er echter nog geen dergelijk geheugen. Tegelijkertijd zijn in elk stadium van de ontwikkeling van de technologie voor de productie van opslagapparaten de volgende redelijk stabiele relaties van toepassing:


  • hoe korter de toegangstijd, hoe duurder het bit;

  • hoe hoger de capaciteit, hoe lager de kosten per bit;

  • hoe hoger de capaciteit, hoe langer de toegangstijd.
Vinden uitvoer Vanuit de huidige situatie is het noodzakelijk om niet te vertrouwen op individuele componenten of technologie, maar om een ​​hiërarchie van opslagapparaten op te bouwen, zoals weergegeven in Fig. 6.1. Bij het van links naar rechts bewegen gebeurt het volgende:

  • de kosten van een bit worden verlaagd;

  • toenemende capaciteit;

  • toegangstijd neemt toe;

  • de frequentie van de processortoegang tot het geheugen neemt af.

Rijst. 6.1. Hiërarchie van het geheugen

Veronderstellen CPU Het heeft toegang naar twee geheugenniveaus. Het eerste niveau bevat E 1 woorden en wordt gekenmerkt door een toegangstijd T 1 = 1 ns. Op dit niveau CPU direct kan solliciteren. Als u echter een woord, gelegen op het tweede niveau, dan moet het eerst worden overgebracht naar het eerste niveau. In dit geval zijn niet alleen de vereiste woord, maar gegevensblok, met daarin woord. Aangezien de geadresseerde adressen CPU, zijn meestal gegroepeerd (loops, subroutines), CPU verwijst naar een kleine repetitieve reeks opdrachten. Het werk van de processor met het nieuw ontvangen geheugenblok zal dus behoorlijk lang duren.

Laten we met T 2 = 10 ns de tijd van toegang tot het tweede geheugenniveau aangeven, en met P - houding het aantal keren dat het gewenste woord in het snelle geheugen voorkomt tot het aantal toegangen. Laten we in ons voorbeeld P = 0,95 (d.w.z. 95% van de treffers zijn snel geheugen, wat best realistisch is), dan is het gemiddelde toegangstijd geheugen kan als volgt worden geschreven:

Tav = 0,95*1ns + 0,05* (1ns+10ns)=1,55ns

Dit principe kan niet alleen worden toegepast op geheugen met twee niveaus. In werkelijkheid is dit wat er gebeurt. De hoeveelheid RAM heeft een significante invloed op de aard van het rekenproces, aangezien het het aantal gelijktijdig uitgevoerde programma's beperkt, d.w.z. multiprogrammering niveau. Ervan uitgaande dat een proces een deel p van zijn tijd besteedt aan het wachten op voltooiing activiteiten I / O, dan wordt de belastingsgraad Z van de centrale verwerkingseenheid (CPU) in het ideale geval uitgedrukt door de afhankelijkheid

Z = 1 - p n , waarbij n het aantal processen is.

Op afb. 6.2 toont de relatie Z=p(n) voor verschillende voltooiingswachttijden activiteiten I/O (20%, 50% en 80%) en het aantal processen n. Het grote aantal taken dat nodig is voor een hoog CPU-gebruik vereist een grote hoeveelheid RAM. In omstandigheden waarin het beschikbare geheugen niet voldoende is om een ​​acceptabel niveau van multiprogrammering te bieden, werd een methode voorgesteld om het rekenproces te organiseren, waarbij de afbeeldingen van sommige processen, geheel of gedeeltelijk, tijdelijk worden geüpload naar schijf.

Het is duidelijk logisch om inactieve processen die wachten op bronnen tijdelijk te verwijderen, inclusief de volgende CPU-tijdschijf. Tegen de tijd dat het voorbij is draai uitvoering van het wisselproces, de afbeelding wordt teruggestuurd van schijf naar de operating geheugen. Als tegelijkertijd wordt vastgesteld dat er onvoldoende vrije ruimte in het RAM-geheugen is, dan schijf een ander proces wordt gelost.

zo'n verandering ( virtualisatie) RAM met schijfgeheugen stelt u in staat om het niveau van multiprogrammering te verhogen, aangezien de hoeveelheid RAM het aantal gelijktijdig uitgevoerde processen niet zo ernstig beperkt. In dit geval kan de totale hoeveelheid RAM die wordt ingenomen door procesafbeeldingen aanzienlijk groter zijn dan de beschikbare hoeveelheid RAM.

In dit geval wordt de applicatieprogrammeur voorzien van een virtuele operationele geheugen, die veel groter is dan de werkelijke geheugen systeem en wordt alleen beperkt door de adresseringsmogelijkheden van het gebruikte proces (in een pc op basis van Pentium 2 32 = 4 GB). In het algemeen wordt virtueel (schijnbaar) genoemd hulpbron, dat eigenschappen heeft (in dit geval een grote hoeveelheid OP) die het eigenlijk niet heeft.

virtualisatie RAM wordt automatisch geleverd door een combinatie van hardware en software van het computersysteem (processorcircuits en besturingssysteem) zonder tussenkomst van een programmeur en heeft geen invloed op de logica van de applicatie.

virtualisatie geheugen is mogelijk op basis van twee mogelijke benaderingen:


  • swapping (swapping) - procesafbeeldingen worden naar de schijf verwijderd en in hun geheel teruggestuurd naar het RAM;

  • virtueel geheugen ( virtueel geheugen) - delen van afbeeldingen (segmenten, pagina's, blokken, enz.) van processen bewegen tussen RAM en schijf.
Nadelen ruilen:

  • redundantie van gegevens die worden verplaatst en dus het systeem vertragen en inefficiënt gebruik van geheugen;

  • het onvermogen om een ​​proces te laden waarvan de virtuele ruimte het beschikbare vrije geheugen overschrijdt.
Voordelen van ruilen Aan vergeleken met virtueel geheugen - kleiner uitgaven tijd om adressen om te zetten in programmacodes, aangezien het eenmalig wordt gedaan bij het laden van schijf naar geheugen(dit voordeel kan echter onbeduidend zijn, aangezien slechts een deel van de code wordt uitgevoerd tijdens de volgende laadbeurt en het misschien niet nodig is om de code volledig te transformeren).

Virtueel geheugen heeft deze nadelen niet, maar het belangrijkste probleem is de conversie van virtuele adressen naar fysieke (waarom dit een probleem is, zal later duidelijk worden, maar voor nu kunnen we aanzienlijke uitgaven tijd voor dit proces, tenzij speciale maatregelen worden genomen).

Het concept van virtueel geheugen

In VS met virtueel geheugen wordt de adresruimte (AP) van het proces (procesafbeelding) tijdens de uitvoering opgeslagen in het externe geheugen van de computer en dynamisch in delen geladen in het echte geheugen in elke vrije ruimte in de ROP. Het programma weet er echter niets van, het wordt geschreven en uitgevoerd alsof het volledig in de ROP staat.

Virtueel geheugen is een simulatie van RAM in extern geheugen.

Het mechanisme voor het in kaart brengen van virtuele en echte adressen brengt een overeenkomst tussen hen tot stand en heet dynamische adresvertaling(DPA) ).

De computer fungeert hier al als een logisch apparaat, en niet als een fysieke machine met unieke kenmerken. DPA wordt ondersteund op hardware- en firmwareniveau. Intel MP's die beginnen met de 386-processor ondersteunen virtueel geheugen.

Deze procedure wordt uitgevoerd voor EC-computers - serie 2 en hoger, voor SM-computers - 1700, voor IBM PC - I386 en hoger.

Bij virtueel geheugenbeheer zijn aangrenzende virtuele adressen niet noodzakelijk aangrenzende echte adressen (kunstmatige nabijheid). De programmeur hoeft niet na te denken over de plaatsing van zijn procedures en gegevens in het ROP. Hij kan programma's op de meest natuurlijke manier schrijven, waarbij hij alleen werkt aan de details van het algoritme en de structuur van het programma, waarbij hij de specifieke kenmerken van de structuur van de hardware negeert.

Het DPA-mechanisme omvat het bijhouden van tabellen die laten zien welke VP-cellen zich momenteel in het ROP bevinden en waar precies. Aangezien de individuele afbeelding van informatie-elementen (woord of byte) geen zin heeft (aangezien adresafbeeldingstabellen meer ROP zouden vereisen dan processen), wordt adresafbeelding uitgevoerd op het niveau van OP-blokken.

Foto 1. Dynamische adresvertaling

Probleem: welk deel van de processen in de OP moet worden gehouden, op sommige momenten in de tijd, sommige delen van de ROP naar buiten duwen en andere plaatsen.

Een andere vraag die moet worden beantwoord: Hoe de blokgrootte in te stellen?

Een toename van de blokgrootte leidt tot een afname van de grootte van de bloktoewijzingstabel, maar verhoogt de uitwisselingstijd, en omgekeerd leidt een afname van de blokgrootte tot een toename van tabellen en een afname van de uitwisselingstijd met externe geheugen.

Blokken kunnen een vaste grootte (pagina's) en een variabele grootte (segmenten) hebben. In dit verband is er vier manieren om virtueel geheugen te organiseren:

1.Dynamische pagina-organisatie.

2. Segmentorganisatie.

3. Gecombineerde segment-pagina-organisatie.

4. Oproeporganisatie op twee niveaus.

Virtuele adressen in paging- en segmentsystemen zijn tweecomponenten en vormen een geordend paar (p,d), waar P- nummer van het blok (pagina of segment) waarin het element is geplaatst, en D- offset ten opzichte van het startadres van dit blok. Virtuele adresvertalingV=(p,d) naar echt geheugenadresR wordt als volgt uitgevoerd. Wanneer het volgende proces wordt geactiveerd, wordt het adres van de bloktoewijzingstabel van dit proces in een speciaal processorregister geladen. Volgens bloknummer P uit de bloktoewijzingstabel wordt een regel gelezen waarin een overeenkomst wordt vastgesteld tussen het aantal virtuele en fysieke pagina's voor pagina's die in RAM zijn geladen, of er wordt een markering gemaakt dat de virtuele pagina naar schijf is gewisseld. Daarnaast bevat de paginatabel controle-informatie, zoals een paginawijzigingsvlag, een niet-paginabare vlag (sommige pagina's worden mogelijk niet verwijderd), een paginatoegangsvlag (gebruikt om het aantal treffers in een bepaalde periode te tellen) , en andere gegevens die door de engine worden gegenereerd en gebruikt. virtueel geheugen. De offset-grootte wordt toegevoegd aan het gelezen fysieke locatieadres van het geselecteerde blok D en het vereiste echte adres wordt berekend.

Figuur 2. Converteer virtueel adres naar echt geheugenadres

Overweeg wat de strategie voor virtueel geheugenbeheer is? Net als bij ROP-beheer zijn er drie categorieën strategieën voor het beheren van een VI, met als doel de paginalatentie te verminderen en alleen gebruikte blokken in de ROP te plaatsen.

Push-strategie , die bepaalt wanneer een pagina of segment van het externe geheugen naar het RAM moet worden herschreven.

maar) push-in op aanvraag- het systeem wacht op een link naar een pagina/segment van een lopend proces (afbreken bij afwezigheid van pagina);

argumenten voor:


  • het pad van de uitvoering van het programma kan niet met zekerheid worden voorspeld;

  • garantie van locatie in het OP van alleen de benodigde pagina's;

  • de overhead van het bepalen van de benodigde pagina's is minimaal;
argumenten tegen:

  • telkens één blok verwisselen leidt tot een toename van de totale wachttijd.
B) preventieve push suggereert dat het systeem kan anticiperen op de noodzaak om de pagina/het segment in de toekomst te gebruiken. Als de kans op oproepen groot is en er is een vrije OP, dan worden de bijbehorende blokken herschreven in de OP.

Voordeel: kortere wachttijd.

Op dit moment neemt de snelheid van de apparatuur toe en niet-optimale oplossingen leiden niet tot een afname van de efficiëntie van computersystemen.

plaatsingsstrategie, bepalen waar de inkomende pagina/segment moet worden geplaatst. In pagingsystemen - triviaal: naar elk vrij blok (de pagina heeft een vaste grootte). In segmentsystemen worden dezelfde strategieën gebruikt als voor het echte OP (naar het eerste geschikte gebied, naar het meest geschikte, naar het minst geschikte).

Push (vervangings)strategie, die bepaalt welke pagina/segment uit de OP moet worden verwijderd om ruimte vrij te maken voor de binnenkomende pagina.

Hier is het belangrijkste probleem: slippen", waarbij de uitgeworpen pagina het volgende moment weer in de ROP moet worden geplaatst.

Overweeg de procedures voor het bepalen van blokken die uit het OP moeten worden geduwd.

maar) een willekeurige pagina laten verschijnen- niet gebruikt in echte systemen;

b) op de eerste binnenkomende pagina drukken (FIFO- draai). Om het te implementeren, moet u paginatijdstempels instellen.

Argument: De pagina heeft al kansen gehad om zijn kans te benutten.

Werkelijk: meer kans om actief gebruikte pagina's te vervangen, omdat pagina's op de lange termijn kunnen betekenen dat deze constant in gebruik is. Bijvoorbeeld de gebruikte teksteditor.

in) uitwerpen van de langste ongebruikte pagina's.

Voor implementatie is het noodzakelijk om updatebare tijdstempels te implementeren. heuristisch argument: - het recente verleden is een goede leidraad voor de toekomst.

Het nadeel is een aanzienlijke overhead: het constant bijwerken van tijdstempels.

G) de minst gebruikte pagina's pushen- gaat uit van de aanwezigheid van paginatellers (minder intensief dan bijgewerkte tijdstempels). Intuïtief gerechtvaardigd, maar misschien ook niet rationeel.

e) verwijder recent ongebruikte pagina's- het meest voorkomende algoritme met lage overhead. Geïmplementeerd door twee hardwarebits per pagina:

1. teken van behandeling 0 - was

1 - niet.

2. teken van recordwijziging 0 - ongewijzigd.

1 - gewijzigd.

De volgende combinaties zijn mogelijk { 00,10,01,11). Als er geen wijzigingen op de pagina zijn, kan de pagina eenvoudig worden herschreven en niet op schijf worden opgeslagen.

Geheugenmodules worden gekenmerkt door parameters als grootte (16, 32, 64, 128, 256 of 512 MB), aantal chips, naambordfrequentie (100 of 133 MHz), datatoegangstijd (6 of 7 ns) en aantal contacten (72, 168 of 184).

DIP-modules. DRAM-chips zijn verpakt in een zogenaamd DIP-pakket, waarbij DIP staat voor Dual In-line Package. Deze term verwijst naar geheugenbehuizingen met pinnen (pinnen) aan de zijkanten (die op een kever lijken) - fig. 3.48, maar. Het kristal zelf, waarop de geheugencellen zich bevinden, is beduidend kleiner dan de behuizing. Dit behuizingsontwerp is te wijten aan vereisten als het gemak van gedrukte bedrading en installatie van een microschakeling in stopcontacten op het moederbord, evenals naleving van het temperatuurregime van de elementen.

De meeste DIP-modules hebben 2,54 mm (0,1") rijenafstand en 7,62 mm (0,3" - "Skinny DIP" of 15,24 mm rijenafstand (0,6"). Het typische aantal contacten is 8 of een ander even getal van 14 tot 24 ( minder vaak -28) voor pakketten van 0,3" en 24, 28, 32 of 40 (minder vaak 36, 48 of 52) voor koffers met 0,6". het metrische stelsel van maatregelen (bijvoorbeeld de afstand tussen de draden is 2,5 mm in plaats van 2,54 mm / 0, G).

Er zijn verschillende varianten van DIP-verpakkingen bekend, die voornamelijk verschillen in het fabricagemateriaal:

  • keramiek (Ceramic Dual In-line Package - CERDIP);
  • kunststof (Plastic Dual In-line Package - PDIP);
  • plastic verzegeld (Shrink Plastic Dual In-line Package - SPDIP) - een verzegelde versie van PDIP met een loodafstand van 1,778 mm (0,07").

De belangrijkste parameters van DRAM-chips zijn geheugencapaciteit en organisatie. DRAM-elementen in de vorm van individuele chips werden meestal geïnstalleerd op oudere moederborden. Momenteel worden deze microschakelingen gebruikt als componenten van geheugenmodules, zoals SIP-, ZIP- en SIMM-modules.

Informatie over een microschakeling in zijn aanduiding bestaat meestal uit verschillende velden. Het eerste veld bevat informatie over de fabrikant en het type afwijzing bij de vervaardiging van de microschakeling, het volgende kenmerkt de capaciteit en het volgende - het materiaal waarvan de behuizing is gemaakt en de toegangstijd.

Voor Mostek-microschakelingen zijn de eerste twee letters MK bijvoorbeeld de bedrijfsaanduiding, MKV betekent dat deze Mostek-microschakeling is afgewezen volgens de militaire norm (MIL STD-833) en MKI - dat de microschakeling is afgewezen in overeenstemming met de industriële temperatuurbereik. Het cijfer 4 geeft aan dat de chip een DRAM-element is. Het nummer erna geeft de hoeveelheid informatie aan

Rijst. 3.48. Het uiterlijk van de geheugenmodules: maar- behuizing DIP-14; B- SIP-module; in - ZIP-module; d - ZIP-connector; D- SIMM voor 72 contacten; e-DDR2 (1 GB, 533 MHz) met koellichaam (184 pinnen en één sleutel); goed- DDR SO-DIMM (PC2700, 200 pinnen); H - RDRAM-module met

ingebouwde radiator

rationale cijfers: 1 - één cijfer, 4 - vier cijfers. De cijfergroep die volgt geeft het aantal informatiebits in kilobits aan (64 - 64 Kbps, 256 - 256 Kbps, 1000 - 1 Mbps). Verder geeft de letter het type koffer aan (bijvoorbeeld P - plastic, hoewel het type mogelijk niet wordt aangegeven). Een streepje geeft de toegangstijd in nanoseconden aan. Door de aanduiding MKV44256-70 kan dus gemakkelijk worden vastgesteld dat dit een Mostek-microschakeling is, die is afgewezen volgens de militaire standaard, een 4e-cijferige capaciteit heeft van elk 256 Kbps en een toegangstijd van 70 ns.

SIP-modules. DRAM-chips zijn vrij eenvoudig en eenvoudig te installeren in een pc, maar ze nemen veel ruimte in beslag. Om de omvang van pc-componenten, inclusief RAM-elementen, te verkleinen, werden een aantal ontwerpoplossingen ontwikkeld die ertoe leidden dat elk geheugenelement niet langer in een apart paneel werd geïnstalleerd en compatibele DRAM-elementen werden gecombineerd in één module, gemaakt op een kleine printplaat. .

De technologie die dit ontwerp van geheugenelementen implementeert, wordt SMT (Surface Mounting Technology) genoemd, letterlijk vertaald als "surface mount-technologie". Dankzij haar werden compatibele DRAM-elementen op één bord geïnstalleerd, wat in de eerste plaats betekende dat er ruimte werd bespaard.

Als implementatie van SMT-technologie kan men de zogenaamde SIP-modules noemen met een enkele in-line opstelling van pinnen (Single In-line Package - SIP). SIP-modules zijn een klein bord waarop compatibele DRAM-chips zijn geïnstalleerd (zie afbeelding 3.48). Zo'n bord heeft 30 pinnen, de afmetingen zijn ongeveer 8 cm lang en ongeveer 1,7 cm hoog.

SIP-modules worden geïnstalleerd in de overeenkomstige sleuven op de systeemkaart. Bij het plaatsen en verwijderen van dergelijke modules breken echter vaak de dunne pinnen van de kabels af en is het contact tussen de pin en de connector onbetrouwbaar. Dit leidde tot de verdere ontwikkeling van geheugenmodules en de opkomst van SIMM-modules.

ZIP(Zig-zag In-line Package) is een kortstondige technologie voor geïntegreerde schakelingen, met name DRAM-chips. Het is ontworpen om DIP te vervangen. De ZIP-geïntegreerde schakeling is ingesloten in een plastic behuizing, meestal 3 x 30 x 10 mm. De uitgangen van het apparaat bevinden zich in 2 rijen aan één kant van de behuizing. Deze rijen zijn 1,27 mm (0,05") uit elkaar geplaatst, wat een compactere plaatsing mogelijk maakt dan een conventioneel rechthoekig raster (Fig. 3.48, c,d). In dit geval kunnen circuitpakketten dichter op het bord worden geplaatst dan bij DIP-circuits, met dezelfde grootte. ZIP's werden verder verdrongen door configuraties zoals TSOP (dunne, kleine pakketten) die worden gebruikt in SIMM's (single-in-line geheugenmodules) en DIMM's (dual-in-line geheugenmodules).

SIMM-modules. Als het over een SIMM-module gaat, bedoelen ze een bord dat ongeveer even groot is als een SIP-module. Het verschil zit hem vooral in het ontwerp van de contacten. In tegenstelling tot de SIP-module zijn de klemmen voor de SIMM-module vervangen door de zogenaamde PAD (plug) type contacten. Deze pinnen zijn bedrukt en bevinden zich aan een rand van het bord. Het is met deze rand dat SIMM-modules in speciale sleuven op het moederbord worden geïnstalleerd (Fig. 3.48, d). Dankzij dit ontwerp van SIMM-modules wordt de betrouwbaarheid van het elektrische contact in de connector en de mechanische sterkte van de module als geheel aanzienlijk verhoogd, vooral omdat alle contacten zijn gemaakt van hoogwaardig materiaal en verguld zijn.

Storingen in de werking van RAM treden meestal niet op als gevolg van schade aan de SIMM-modules, maar eerder als gevolg van slechte verwerking van connectorpinnen op het moederbord.

Bovendien stelt het handige ontwerp van SIMM-modules gebruikers in staat om zelf geheugenelementen te wijzigen en toe te voegen zonder angst voor beschadiging van de uitgangen.

SIMM-modules zijn de standaard in moderne computersystemen. SIMM's uitgerust met DRAM 41256 zijn tegenwoordig relatief zeldzaam. Vaker zijn SIMM-modules uitgerust met geheugenchips met een totale capaciteit van 8, 16 en 32 Mbps. Later kwamen er SIMM-modules op de markt met een capaciteit van 120 Mbps of meer.

Pc's met de 80386 CPU en vroege modellen met de 80486 CPU gebruikten 30-pins SIMM-geheugenmodules (DRAM), en het aantal slots op het moederbord varieerde van 4 tot 8. Tegenwoordig is het niet eenvoudig om dergelijke modules te koop te vinden. Later begonnen 80486- en Pentium-pc's 72-pins SIMM-geheugenmodules (FPM DRAM) te gebruiken.

DIMM's. In de toekomst hebben veel moederborden slots voor 168-pins DIMM-geheugenmodules (Dual In-line Memory Module). DIMM's hebben een interne architectuur die vergelijkbaar is met 72-pins SIMM's, maar dankzij een bredere bus bieden ze betere prestaties van het "CPU-RAM"-subsysteem.

Voor de juiste positionering van DIMM-modules wanneer geïnstalleerd in slots op het moederbord, zijn er twee sleutels in hun ontwerp:

  • de eerste sleutel bevindt zich tussen pinnen 10 en 11 en dient om het type modulegeheugen (FPM DRAM of SDRAM) te bepalen;
  • de tweede toets bevindt zich tussen contacten 40 en 41 en dient voor het bepalen van de voedingsspanning van de module (5 of 3,3 V).

DIMM-modules ondersteunen bijvoorbeeld moederborden op basis van Chipset 82430VX, 82440FX, 83450KX/GX, 82430TX.

SODIMM(Small Outline Dual In-Line Memory Module) is een type computer-RAM-geïntegreerde schakelingen (Fig. 3.48, G).

SO-DIMM's zijn een klein alternatief voor DIMM's en nemen doorgaans ongeveer de helft van de benodigde ruimte in beslag voor conventionele DIMM's. Als gevolg hiervan worden SO-DIMM's voornamelijk gebruikt in apparaten zoals laptops, kleine desktop-pc's (met Mini-ITX-kaarten), high-end printers en netwerkapparatuur (zoals routers).

SO-DIMM's kunnen 72, 100, 144 of 200 pinnen hebben en ondersteunen respectievelijk 32-bit (100) en 64-bit (144 en 200) gegevensoverdracht. Normale DIMM's hebben 168, 184 of 240 en ondersteunen allemaal 64-bits gegevensoverdracht.

Verschillende soorten SO-DIMM's worden herkend aan de plaatsing van de "sleutels" - 100-pins modules hebben twee sleutels, 144-pins SO-DIMM's hebben één sleutel dicht bij het midden van de behuizing, 200-pins SO-DIMM's hebben er één sleutel dichter bij de rand van de behuizing.

SO-DIMM's komen ongeveer overeen met (of minder dan) de kracht van DIMM's, en zowel SO-DIMM- als DIMM-technologieën bieden ongeveer gelijke snelheden (kloksnelheid, bijvoorbeeld 400 MHz voor de PC3200 en CAS-latenties van 2,0, 2,5 en 3, 0) en capaciteit (512 MB, 1 GB, enz.). Recentere DDR2 SO-DIMM's zijn geklokt tot 800MHz PC6400 en zullen naar verwachting 1066MHz PC8500 bereiken.

RIMM. Met de komst van Direct RDRAM (DRDRAM) in 1999, verscheen de RIMM-module (Fig. 3.49) (de naam is geen acroniem, maar een handelsmerk van Rambus Inc). RIMM-connectoren zijn qua grootte vergelijkbaar met DIMM's en kunnen in dezelfde . worden geïnstalleerd

Rijst. 3.49.

het moederbord zelf, net als de DIMM. Ze hebben 184 pinnen vergeleken met 168 voor DIMM's, maar gebruiken dezelfde socketspecificatie als de 100MHz DIMM-standaard. Het pc-BIOS kan bepalen welk RAM-geheugen is geïnstalleerd, dus 100 MHz SDRAM-modules moeten werken in een RIMM-compatibel systeem. Er zijn ook compacte SO-RIMM-geheugenmodellen die vergelijkbaar zijn met SO-DIMM's.

De belangrijkste elementen van het Rambus-geheugensubsysteem omvatten het hoofdapparaat, dat de Rambus ASIC Cell (RAC) en geheugencontroller (Rambus Memory Controller RMC), klokgenerator (Direct Rambus Clock Generator DRCG), RIMM-connectoren, RIMM-geheugenmodules en RIMM bevat. continuïteitsmodules, en ook het Serial Presence Detect SPD ROM-subsysteem.

Uiteindelijk hebben DDR-technologieën, die zich ontwikkelden en goedkoper werden, praktisch vervangen door RDRAM - in het interval 2002-2005. het marktaandeel van RDRAM bedroeg niet meer dan 5%.

FB-DIMM(Fully Buffered DIMM, Fully Buffered DIMM) is een technologie die is ontworpen om de betrouwbaarheid, snelheid en capaciteit van OP-systemen te verbeteren. In conventionele OP-ontwerpen zijn de datalijnen die van de geheugencontroller komen, verbonden met alle DIMM's. Met een toename van de elektrische belasting (toename van het aantal modules of geheugencapaciteit), evenals met een toename van de toegangsfrequentie, beginnen de verzonden signalen te worden vervormd, wat de efficiëntie van het systeem als geheel beperkt.

De volledig gebufferde DIMM-architectuur biedt een tussenbuffer (Advanced Memory Buffer - AM B) die is geïnstalleerd tussen de controller en de geheugenmodule (Fig. 3.50). In tegenstelling tot de parallelle busarchitectuur voor traditionele

DDR2-socket met unieke sleutel

Tot 8 DIMM's

"Southern Way" (10 bits)

Controller

Rijst. 3.50. FB-DIMM-geheugenarchitectuur

DRAM, FB-DIMM heeft een seriële interface tussen de controller en AM B. Hierdoor kunt u de geheugencapaciteit vergroten zonder het aantal geheugencontrollerlijnen te vergroten.

De controller zendt het signaal niet rechtstreeks naar de geheugenmodule, maar werkt via een buffer die de signaalvorm herstelt en verder verzendt. Bovendien kan AM B foutcorrectie uitvoeren door de processor en geheugencontroller van deze functie te ontlasten. Dit gaat echter gepaard met een toename van de latentie van het OP.

Er is een standaard (protocol JESD82-20) die een AMB-interface met DDR2-geheugen definieert. Het FB-DIMM-kanaal bestaat uit 14 "noordelijke" bitlijnen die gegevens van het geheugen naar de processor overbrengen, en 10 "zuidelijke" bitlijnen die opdrachten en gegevens van de processor verzenden.

Elke bit wordt verzonden met 12 keer de basisgeheugenfrequentie (6 keer als dubbele snelheid wordt gebruikt, DDR - DDR3). Voor een DDR2-667 DRAM-chip zal het kanaal bijvoorbeeld werken op een frequentie van 667 x 12/2 = 4000 MHz. Elke 12 cycli vormen een frame: 168 bits van het "noordelijke pad" (144 bits gegevens verzonden door 72-bits DDR SDRAM plus 24 bits voor CRC-correctie) en 120 bits van het "zuid" (98 nuttige bits en 22 CRC-bits ). Van de 98 bits hier stellen 2 het frametype in, 24 - het commando; de overige bits kunnen (afhankelijk van het frametype) ofwel 72 bits gegevens bevatten die moeten worden geschreven, of twee of meer 24-bits instructies, of een of meer instructies plus 36 bits te schrijven gegevens.

Aangezien de te schrijven gegevens langzamer zijn dan nodig is voor de DDR OP, worden ze verzameld in AM B en vervolgens in één burst geschreven (meestal vier gegevensframes).

De commando's komen overeen met standaard DRAM-toegangscycli, zoals rijselectie (/RAS), prefetch, refresh, enz. Lees- en schrijfcommando's bevatten alleen kolomadressen (/CAS) van de geheugenarray. Alle commando's bevatten 3-bit FB-DIMM-adressen, waardoor maximaal 8 FB-DIMM's per kanaal mogelijk zijn.

Tabel 9.1. Hiërarchie van het pc-geheugensubsysteem
Geheugentype: 1985 2000
Proeftijd Typisch volume Prijs / byte Proeftijd Typisch volume Prijs / byte
1 Supersnel geheugen (registers) 0.2 5 ns 16/32 bit $ 3 - 100 0,01 1 ns 32/64/128 bits $ 0,1 10
2 Snel buffergeheugen (cache) 20 100 ns 8Kb - 64Kb ~ $ 10 0,5 - 2 ns 32Kb 1Mb $ 0,1 - 0,5
3 Operationeel (hoofd) geheugen ~ 0,5 ms 1Mb - 256Mb $ 0,02 1 2 ns 20 ns 128 MB - 4 GB $ 0,01 0,1
4 Externe opslag (massaopslag) 10 - 100 ms 1Mb - 1Gb $ 0,002 - 0,04 5 - 20 ms 1 GB - 0,5 TB $ 0,001 - 0,01

Processorregisters vormen de context en slaan gegevens op die worden gebruikt door momenteel processoropdrachten uit te voeren. Processorregisters worden in de regel aangeduid met hun geheugensteuntjes in processorcommando's.

cache gebruikt om de snelheid van de CPU en het hoofdgeheugen aan te passen. In computersystemen wordt een cache met meerdere niveaus gebruikt: cache van niveau I (L1), cache van niveau II (L2), enz. Desktopsystemen gebruiken doorgaans een cache met twee niveaus, terwijl servers een cache met drie niveaus gebruiken. De cache slaat instructies of gegevens op die waarschijnlijk in de nabije toekomst door de processor zullen worden verwerkt. De werking van de cache is transparant voor de software, dus de cache is meestal niet toegankelijk voor software.

RAM slaat in de regel functioneel voltooide programmamodules op (kernel van het besturingssysteem, uitvoerende programma's en hun bibliotheken, stuurprogramma's van gebruikte apparaten, enz.) en hun gegevens die rechtstreeks betrokken zijn bij de werking van programma's, en wordt ook gebruikt om de resultaten van berekeningen op te slaan of andere verwerkingsgegevens voordat u deze naar externe opslag, uitvoerapparaten of communicatie-interfaces verzendt.

elke cel werkgeheugen een uniek adres toegewezen. Organisatorische methoden voor geheugentoewijzing bieden programmeurs de mogelijkheid om het hele computersysteem efficiënt te gebruiken. Deze methoden omvatten een solide ("plat") geheugenmodel en een gesegmenteerd geheugenmodel. Bij gebruik van een plat geheugenmodel werkt het programma op een enkele continue adresruimte, een lineaire adresruimte waarin geheugencellen opeenvolgend en continu worden genummerd van 0 tot 2n-1, waarbij n de CPU-bitdiepte op het adres is. Wanneer een gesegmenteerd model voor een programma wordt gebruikt, wordt het geheugen vertegenwoordigd door een groep onafhankelijke adresblokken die segmenten worden genoemd. Om een ​​geheugenbyte te adresseren, moet een programma een logisch adres gebruiken, bestaande uit een segmentkiezer en een offset. De segmentkiezer selecteert een specifiek segment en de offset wijst naar een specifieke cel in de adresruimte van het geselecteerde segment.

Alvorens de technologie van de fysieke organisatie van geheugen in een computer in overweging te nemen, moet het volgende worden opgemerkt:

1. Geheugen in een computer heeft een organisatie op meerdere niveaus.

2. Geheugen wordt geclassificeerd op basis van de manier waarop gegevens worden geopend.

Alle soorten geheugen met adresstructuren werken volgens het principe van één-op-één correspondentie tussen elk element van de set adresruimte en elk element van de set gegevens die in het geheugen zijn opgeslagen.

Geheugen met sequentiële toegang sluit de mogelijkheid uit van willekeurige toegang tot een geheugenelement, waarvan de toegang wordt bepaald door het ordeningsalgoritme in de geheugenstructuur met zijn homogene organisatie of door het sequentiële toegangsalgoritme van het hoogste naar het laagste niveau in een organisatie met meerdere niveaus ( bestandssysteem).

Associatief geheugen gebruikt een associatief teken om te zoeken naar een data-element in het geheugen (een tag, die kan worden gebruikt als een code, sleutel, adres of het deel van het adresgeheugen dat de kopie opslaat). Hierdoor kan het data-element overal in het geheugen worden geplaatst, wat in strijd is met het principe van één-op-één-correspondentie, dat kenmerkend is voor adresgeheugenstructuren.

3. Volgens de opslagmethode.

Statisch

Dynamisch

permanent

Flash-geheugen

4. Geheugen in een computer is modulair opgebouwd. Die is gebaseerd op een modulaire opbouw, die het mogelijk maakt om een ​​variabel volume van het opslagblok te vormen door het aantal modules in de configuratie te vergroten of te verkleinen.

Het fysieke geheugen van het computersysteem is verdeeld in extern en operationeel. Extern geheugen is ontworpen voor langdurige opslag van informatie en wordt opgeslagen in de passieve toestand van het computersysteem, zelfs wanneer het is uitgeschakeld.

Extern geheugen in moderne computersystemen wordt voornamelijk geïmplementeerd op schijven en magnetische banden, evenals op verschillende soorten niet-vluchtig geheugen.

Extern geheugen is fysiek geïmplementeerd als invoer-/uitvoersysteemapparaten die communiceren met de processor en het geheugen via invoer-/uitvoerinterfaces, waarvan de werking is gebaseerd op twee verschillende architecturale oplossingen: de systeembus en invoer-/uitvoerkanalen.

Wat betreft het RAM, waarvan de fysieke en logische organisatie het onderwerp van dit onderwerp is, is het structureel verdeeld in twee delen: een opslagapparaat en een besturingseenheid of geheugencontroller.

De geheugencontroller is de coördinator van het RAM-geheugen, het is verbonden met de interfaces met de processor en het invoer-/uitvoersysteem en ontvangt van hen verzoeken om gegevens, zowel om naar hun geheugen te schrijven als om eruit te lezen.

Nadat een verzoek is ontvangen, plaatst de controller het in de wachtrij voor toegang tot het opslagapparaat (opslag) volgens de prioriteit, waarbij de voorkeur wordt gegeven aan het I/O-systeem, de communicatie met het geheugen wordt georganiseerd in overeenstemming met het interfaceprotocol dat ze verbindt.



De functionaliteit van de geheugencontroller staat in directe verhouding tot de complexiteit van de functionaliteit van het systeem. In symmetrische multiprocessorsystemen is de geheugencontroller bijvoorbeeld de coördinator van verzoeken om gegevens van alle processors van het systeem, accepteert hij deze voor uitvoering of blokkeert hij tijdelijk als de gegevens al door een andere processor worden verwerkt, waardoor de gegevenscoherentie in het systeem.

Moderne RAM in computersystemen verwijst door de opslagmethode in de meeste gevallen naar dynamisch geheugen, dat tijdens het gebruik periodiek de modus vereist voor het herstellen van informatie in het geheugen, dat wil zeggen regeneratiecycli, waarbij toegang tot geheugen van externe agenten wordt geblokkeerd. De organisatie van dergelijke cycli en hun frequentie is opgenomen in de functies van de controller.

Om de impact van verversingscycli op de geheugenprestaties te verminderen, zijn verschillende methoden gebruikt. Dit is ten eerste het gebruik van een modulaire geheugenconstructietechnologie met de organisatie van banken en adresinterleaving, dat wil zeggen met de plaatsing van gegevens met even en oneven adressen in verschillende geheugenmodules (microschakelingen) die gelijktijdig toegankelijk zijn in een geheugen cyclus, waardoor gegevensbemonstering in de ene module wordt gecombineerd met een regeneratiecyclus in een andere, bij afwezigheid van een burst-ophaalmodus, dat wil zeggen gelijktijdige gegevensverzameling op een even en oneven adres.

Ze begonnen ook de modus van automatische regeneratie van geheugencellen te gebruiken, die toegankelijk zijn voor gegevens in de leesmodus en de modus van interne regeneratie van alle geheugencellen in microschakelingen. Maar voor dit doel moest in elke geheugenchip een interne controller worden ingebouwd en daaraan de bovenstaande en andere functies worden toegewezen, waardoor de externe controller vrijkwam voor andere, belangrijkere taken.

Wat betreft de architectuur van het geheugen zelf, dat bedoeld is voor opslag,

schrijven en lezen van gegevens kan als volgt worden opgemerkt.

Elektronische buizen gebruiken als opslagelementen in de beginfase van de ontwikkeling van computertechnologie en later ferrietkernen, en uiteindelijk overschakelen naar halfgeleidertechnologie, waarbij de capacitieve eigenschappen van een geïsoleerde afvoer van een veldeffecttransistor werden gebruikt. Het uiteindelijke doel van deze veranderingen was en zal zijn om de volgende taken op te lossen:

Geheugencapaciteit vergroten

Verbetering van de prestaties

Verbeter de opslagbetrouwbaarheid en verminder het energieverbruik van het geheugen.

Als het systeemgeheugen van moderne 32-bits computers met een 32-bits geheugentoegangsadresbus het mogelijk maakt om de capaciteit te vergroten tot 4 GBT, dan is voor computers van de 2e en 3e generatie met ferrietgeheugen de capaciteit van zelfs supercomputers van die tijd werd alleen berekend in tientallen en honderden kilowatts.Dus de capaciteit Het BESM6-geheugen van een huishoudelijke supercomputer was ooit ongeveer 768 kbt, en bereikte niet eens de limiet van megabyte.

De sprong in de hoeveelheid RAM kwam met de introductie van halfgeleidertechnologie bij de vervaardiging van geheugenopslagapparaten, waardoor de capaciteit van RAM de megabyte-grens overschreed. Een van de eerste computers met zo'n geheugen was de IBM7030 in 1961. De grootte van het geheugen was 2MGBT. Ontwerpontwikkelingen in deze machine werden later gebruikt in de bekende serie machines IBM360 en IBM370. Deze machines, met 24-bits adresbussen voor geheugentoegang, hadden de mogelijkheid om hun geheugencapaciteit te vergroten tot 16 MGBT's. Met de introductie van een 32-bits bus in computers als de ESA370, IBM4381, kon het geheugen, hoewel het de gigabytelimiet niet overschreed, groeien van 16 naar 64 megabyte.

Moderne mainframes met Z-architectuur, zoals Z9BC, kunnen groeien tot 64 GBT, met een 64-bits bus, en Z10-computers zelfs tot 1.5TRBT.

Wat onze huishoudelijke computers betreft, bereikte de hoeveelheid RAM in de EU Series 3-machines (EC1046,EC1066) 8 MB, machines die in dit stadium voorbestemd waren om hun historische ontwikkelingspad te beëindigen.

Er waren ook computers van de klasse van supercomputers ontworpen voor defensiedoeleinden van het raketafweersysteem, dat een grotere geheugencapaciteit had, bijvoorbeeld het M13-project (de RAM-capaciteit van deze supercomputer kon worden uitgebreid tot 34 megabyte).

Het volgende van de belangrijkste kenmerken van de fysieke organisatie van het geheugen is de bemonsteringstijd van gegevens, die 10-12 microseconden was voor computers van de 2e generatie met geheugen op magnetische kernen. En alleen met de introductie van halfgeleidergeheugen nam de databemonsteringstijd met een orde van grootte af en werd van 1,5 naar 0,5 ms.

Dynamisch geheugen is door zijn aard en methode van gegevensopslag, ondanks een eenvoudiger structuur dan statisch geheugen, het traagste, dat wil zeggen het langzaamste deel van het computersysteem, en zelfs met een aanzienlijke vermindering van toegangscycli blijft het zo de huidige tijd.

Dit is de reden voor de constructie van geheugen met meerdere niveaus in computersystemen, dat registerbestanden en een ander aantal niveaus van snel buffergeheugen omvat, gemaakt op statische (flip-flops) opslagelementen.

De moderne architectuur van computersystemen werkt met concepten als virtueel geheugen, waarvan de toewijzing aan fysiek geheugen wordt weergegeven door een combinatie van RAM en extern geheugen. Dit werd mogelijk als resultaat van een idee van Engelse wetenschappers van de Universiteit van Manchester, waarvan de essentie was om de concepten van de grootte van de adresruimte te scheiden van de specifieke grootte van het adres-RAM in het systeem. Zo werd de adresruimte van het systeem onafhankelijk van de grootte van het RAM-geheugen en begon het aan de programmeur te worden gepresenteerd als virtueel geheugen, waardoor hij voldoende mogelijkheden kreeg bij het schrijven van programma's, zonder zich te beperken tot de grootte van het RAM.

Om dit idee te implementeren, was het nodig om concepten als logische adressen en virtuele pagina's te introduceren, die geheugengebieden van een bepaalde gelijke grootte vertegenwoordigen, waarin de volledige adresruimte van het virtuele geheugen begon te worden verdeeld.

Het echte geheugen begon te worden verdeeld in fysieke pagina's, waarvan de grootte overeenkwam met de grootte van virtuele pagina's.

In feite kan de inhoud van virtueel geheugen zich in RAM bevinden, en dan krijgt de virtuele pagina de status van een fysieke pagina, bovendien in elk RAM-gebied dat is toegestaan ​​​​naar goeddunken van het besturingssysteem of, in de tegenovergestelde geval, extern geheugen.

Daarom moet een computersysteem dat het mechanisme voor geheugenvirtualisatie implementeert, een mechanisme hebben voor het verplaatsen van de inhoud van virtuele pagina's van extern geheugen naar RAM en terug tijdens de uitvoering van het programma. Dit mechanisme wordt het bestandssysteem genoemd en het dynamische omleidingsmechanisme, bijvoorbeeld in IBM-systemen, of het pagingmechanisme in INTEL-processors zet virtuele adressen om in fysieke adressen.

Het concept van logische adressen werd geïntroduceerd. De adressen van commando's en gegevens gevormd tijdens het uitvoeren van commando's in de processor kregen de status van logische, omdat ze niet langer overeenkwamen met fysieke geheugenadressen, maar alleen de locatie in de adresruimte van de programmacode aangaven.

Bovendien is het bestaan ​​van verschillende virtuele adresruimten in het systeem mogelijk geworden, met hun eigen schema's voor het omzetten van logische adressen in fysieke.

Virtueel geheugen is een systeemobject dat wordt beschouwd op het niveau van het besturingssysteem en daarom is het handiger om de structuur ervan te karakteriseren in termen van de logische organisatie van het geheugen.

Alvorens de logische organisatie van het geheugen te karakteriseren, moet worden opgemerkt dat de adressering van het fysieke geheugen byte voor byte wordt uitgevoerd, dat wil zeggen dat de minimaal adresseerbare eenheid een byte is, en daarom alle groottes van de structurele elementen van de logische organisatie van het geheugen moet een veelvoud zijn van het gehele aantal bytes daarin.

Het programma werkt met concepten als operator, operanden, constanten, variabelen uitgedrukt in numerieke of symbolische vorm. Als resultaat van de vertaling van de programmacode vertegenwoordigen ze binaire codes bestaande uit een geheel aantal bytes die in RAM worden geplaatst wanneer het programma wordt uitgevoerd. Bytes worden gecombineerd tot woorden, woorden tot regels, regels tot pagina's, pagina's tot segmenten.

Voor de logische indeling van het geheugen is de volgorde waarin bytes in het geheugen worden geplaatst belangrijk. Het is gebruikelijk om bytes opeenvolgend in het geheugen van links naar rechts te rangschikken, waarbij hun adreswaarden met één worden verhoogd.

Door virtueel en fysiek geheugen op te delen in pagina's en segmenten is het niet alleen mogelijk om virtuele pagina's toe te wijzen aan fysiek geheugen, maar ook om gebieden van lineaire ruimte en fysiek geheugen te beschrijven, rekening houdend met hun doel en toegangsrechten van programma's in de zogenaamde descriptors corresponderend met elk segment en elke pagina. Er wordt dus een beschermingsmechanisme geïmplementeerd bij toegang tot het RAM.

En dus beschikt de besturingssysteemlaag over een mechanisme om virtueel en fysiek geheugen in pagina's en segmenten te verdelen, dat het gebruikt als een hulpmiddel om de structuur van het logische geheugen van het systeem te vormen. Maar er zijn gebieden in RAM waarvoor alleen fysieke adressering wordt gebruikt. In deze gebieden plaatst het besturingssysteem meestal tabellen die worden gebruikt bij het converteren van logische geheugenadressen naar fysieke. A. ook verschillende soorten bedrijfseigen informatie, waartoe alleen haar kant toegang is. Deze gebieden worden permanent toegewezen geheugengebieden genoemd, waarvan de grootte wordt bepaald door de systeemarchitectuur en besturingssystemen.

Er is een plat en multidimensionaal model van logisch geheugen. Het concept van een plat geheugenmodel houdt verband met de door Von Neumann voorgestelde organisatie van RAM, dat wil zeggen met de plaatsing van opdrachten en gegevens in een gemeenschappelijk gebied van het fysieke geheugen, waardoor het recht wordt gegeven om de volgorde van hun plaatsing te bepalen de programmeur zelf. Een dergelijk model zorgde voor bepaalde moeilijkheden en vereiste extra inspanningen van de programmeur bij het schrijven van het programma. De eerste poging om het platte geheugenmodel te verbeteren, was de introductie van een segmentatiemechanisme om gebieden voor commando's en gegevens te scheiden. Dit model werd bekend als een plat beveiligd model, waarin de commando- en gegevensgebieden nog steeds binnen de grootte van het fysieke geheugen konden worden geplaatst, maar op verschillende plaatsen, waarvan de toegang werd aangegeven door de startadressen van de segmenten in de descriptors, en de grootte werd beperkt door de daarin vermelde grenswaarde. Zo werd het eenvoudigste beschermingsmechanisme in het geheugen geïmplementeerd. Deze technologie was vergelijkbaar met de geheugenmodeltechnologie in de Harvard-architectuur, maar werd toegepast op gedeeld fysiek geheugen voor instructies en gegevens. Later werd een plat geheugenmodel met meerdere segmenten geïntroduceerd, waarin andere gebieden die niet alleen bedoeld waren voor het opslaan van opdrachten en gegevens, werden gecontroleerd door het beveiligingsmechanisme.

Het geheugenmodel werd multidimensionaal met de introductie van virtueel geheugen, waarbij logische adressen in verschillende delen werden verdeeld, die elk werden onderworpen aan een tabeltransformatie. Het aantal mechanismen dat bij de transformatie betrokken is, bepaalt de multidimensionaliteit van het logisch geheugen. Bij het oproepen van adressen wordt het geheugen eendimensionaal, waarbij de groep bestaande uit de hoogste bits van het logische adres in de eenvoudigste versie wordt getransformeerd. Het aantal van deze bits in de groep, of liever de macht van 2 bepaald door dit aantal bits, bepaalt het aantal virtuele pagina's in het virtuele geheugen. De minst significante bits van het logische adres worden niet geconverteerd en bepalen de offset, dat wil zeggen de locatie van de gegevens op de fysieke pagina. Aangezien het aantal pagina's virtueel geheugen groot genoeg is, wordt de hoogste groep bits van het logische adres in verschillende groepen verdeeld. Als gevolg hiervan gebruikt de vertaalmachine in plaats van een enkele paginatabel meerdere sets kleinere tabellen. Het aantal tabellen in de set wordt ook bepaald door de mate die wordt bepaald door het aantal adresbits in de groep die volgt op de groep lage adressen van het logische adres, en het aantal sets is gelijk aan het aantal rijen in de paginamap, waarvan de grootte afhangt van het aantal bits in de groep die de grootte van de map bepaalt. De hierboven beschreven structuur zal typisch zijn in het geval van het splitsen van de hoogste groep bits van het logische adres in drie delen.

Bedenk welke hardware nodig is om logische adressen om te zetten in fysieke.

Zoals hierboven vermeld, is de minst significante groep bits van het logische adres niet onderhevig aan conversie en vertegenwoordigt de offset, dat wil zeggen de locatie van de eerste byte van de adresgegevens binnen de fysieke pagina.

Het stapsgewijze mechanisme voor het converteren van een logisch adres naar een fysiek adres (wanneer het bovenste deel van het logische adres in twee delen wordt verdeeld) vindt plaats in de volgende volgorde:

1. Er wordt toegang verkregen tot een rij in de tabel, bepaald door de groep van cijfers van de hoogste orde van het logische adres, geïnterpreteerd als een directory van pagina's. De tabel bevindt zich in RAM. Het rijadres wordt gevormd door het basisadres toe te voegen, dat het begin van de tabellocatie in het geheugen aangeeft, en eerder in het systeemregister in de processor is geladen. De tweede term is de code in de groep met hogere cijfers.

2. Dit leest een directoryregel uit het geheugen die de attributen en het basisadres bevat van de paginatabel die overeenkomt met die directoryregel.

3. Een geheugentoegangscyclus is georganiseerd voor een rij in de paginatabel. Het regeladres wordt gevormd door het basisadres uit de directoryregel op te tellen en de code die overeenkomt met de waarde van de cijfers in de groep die volgt op de groep cijfers in de directory.

4. De leesregel uit de paginatabel bevat het basisadres van de fysieke pagina in het geheugen, die wordt toegevoerd aan de opteller, waar, door toevoeging aan de waarde van de groep van minst significante bits van het logische adres, de offset in het gebied van de fysieke pagina, het fysieke adres van de geheugentoegang wordt gevormd.

En dus, in overeenstemming met het hierboven beschreven algoritme, is de hardware-ondersteuning voor het converteren van logische adressen naar fysieke:

1. Het RAM-gebied dat is toegewezen voor het opslaan van tabellen. Dit gebied is een ruimte waarin het transformatiemechanisme niet werkt.

2. De aanwezigheid van controleregisters in de processor om het basisadres op te slaan dat de locatie van de initiële tabel in het geheugen aangeeft.

3. Opteller voor het uitvoeren van optelbewerkingen van adresberekeningen.

4. De aanwezigheid van bufferregisters of cachegeheugens die volledig associatief zijn voor het opslaan van de resultaten van de fasen van het omzetten van logische adressen in fysieke.

De nieuwste hardware is nodig om de prestaties van het systeem te verhogen, aangezien het niet nodig is om elke keer dat het geheugen wordt geopend binnen dezelfde fysieke pagina een volledige cyclus van transformaties uit te voeren, waarvan de coördinaten werden berekend bij de eerste keer dat het werd geopend.

De introductie van een extra segmentatiemechanisme bij het converteren van logische adressen maakt het geheugenmodel tweedimensionaal. Het segmentatiemechanisme vormt een lineaire adresruimte van virtueel geheugen, die als resultaat van transformatie bestaat uit segmenten waarin programmacodes en gegevens zich bevinden, waardoor één dimensie van logisch geheugen wordt gedefinieerd, de tweede dimensie bepaalt het oproepmechanisme, dat geheugen vertegenwoordigt als een set virtuele pagina's.

Opgemerkt moet worden dat de ideologie van virtuele geheugensegmentatie in computersystemen anders wordt geïnterpreteerd. De segmentatiefase in het proces van het converteren van logische adressen naar fysieke adressen in IBM-systemen (IBM360, IBM370, Z-architectuurserver) is bijvoorbeeld onlosmakelijk verbonden met de pagingfase, omdat dit de vorige fase is vóór de paginaconversiefase, net als in INTEL systemen, wordt het alleen bestuurd door het bovenste deel van de adressen van het logische adres, het middelste deel van het adres en de onderste groep adressen nemen alleen deel aan paging. Zo wordt een onlosmakelijke logische verbinding tussen de fasen tot stand gebracht, waarbij eerst het virtuele geheugen wordt opgedeeld in segmenten - gebieden van grote omvang en vervolgens de segmenten in pagina's.

In Z-architectuurservers werd de virtuele adresgrootte vergroot tot 64 bits, waardoor het mogelijk werd om virtueel geheugen tot 16 exabyte aan te spreken. Wat betreft de multidimensionaliteit van logisch geheugen in deze servers, hun hardware maakt het mogelijk om tot 4 soorten virtuele onafhankelijke adresruimten te hebben met het aantal spaties in twee van hen 64K elk en in de overige twee 16 elk met hun eigen tabeltransformaties voor elk type, die worden gebruikt om virtuele logische formaties te bouwen - logische partities, die elk hun eigen besturingssysteem hebben. Elk type virtueel adres, geassocieerd met het type van zijn virtueel geheugen, is onderworpen aan hetzelfde conversiemechanisme met zijn tabellensets. Daarom, volgens de hierboven besproken concepten en terminologie, kan het geheugen in deze servers worden beschouwd als een set van 4 soorten eendimensionale virtuele geheugens met een vijftraps transformatie, met vijf soorten regio's: pagina, segment, regio1, regio2, regio3.

Vertaalschema voor virtuele adressen in Z-architectuurservers