Datorassociativt minne. Virtuellt minne. Arkitektoniska medel för att stödja virtuellt minne. Allmän information och klassificering av minnesenheter

Associativt minne

Parameternamn Menande
Artikelns ämne: Associativt minne
Rubrik (tematisk kategori) Datorer

Sidtabell

Organisering av sidtabeller är ett av nyckelelementen i omvandlingsmekanismerna från sida och segment till sida. Låt oss titta på strukturen för sidtabellen mer detaljerat.

Så, en virtuell adress består av ett virtuellt sidnummer (bitar av hög ordning) och en offset (bitar av låg ordning). Det virtuella sidnumret används som ett index i sidtabellen för att hitta posten för den virtuella sidan. Från denna post i sidtabellen hittas sidramsnumret, sedan läggs offset till och den fysiska adressen bildas. Dessutom innehåller sidtabellposten information om sidattribut, i synnerhet säkerhetsbitar.

Huvudproblemet för effektiv implementering av sidtabeller är den stora storleken på virtuella adressutrymmen på moderna datorer, som vanligtvis bestäms av bitstorleken på processorarkitekturen. De vanligaste idag är 32-bitarsprocessorer, som låter dig skapa virtuella adressutrymmen på 4 GB (för 64-bitars datorer är detta värde 2**64b).

Låt oss beräkna den ungefärliga storleken på sidtabellen. I ett 32-bitars adressutrymme med en sidstorlek på 4K (Intel) får vi 1M sidor, och i ett 64-bitars ännu fler. Den där. tabellen måste ha 1M rader (entry), och en post i en rad består av flera byte. Observera att varje process behöver sin egen sidtabell (och i fallet med ett segment-sideschema, en för varje segment). Så i det här fallet måste sidtabellen vara för stor.

Samtidigt måste displayen vara snabb. Mappningen måste vara snabb, eftersom den görs vid varje minnesåtkomst och förekommer i nästan varje maskininstruktion. Detta problem löses huvudsakligen genom implementering av associativt minne.

För att undvika det kritiska behovet av att ha en enorm tabell i minnet hela tiden och bara lagra några fragment av den (detta är möjligt, återigen baserat på lokalitetsegenskapen), använder många datorer en sidtabell på flera nivåer.

Låt oss betrakta ett modellexempel (Fig. 10.4). Antag att en 32-bitars adress är uppdelad i ett 10-bitars Ptr1-fält, ett 10-bitars Ptr2-fält och en 12-bitars Offset. 12 offsetbitar tillåter oss att lokalisera en byte inuti en 4K-sida (2**12), och totalt har vi 2**20 sidor. Som framgår av fig. 9.4 De 1024 raderna i toppnivåtabellen refereras av Ptr1-fältet till 1024 andranivåtabeller, som var och en innehåller 1024 rader. Med hjälp av Ptr2-fältet pekar varje rad i tabellen på andra nivån till en specifik sida. Poängen med en sådan organisation är att undvika att behålla alla tabeller på andra nivån (och det finns 1024 av dem) i minnet konstant. Låt oss titta på ett exempel med runda tal. Låt oss säga att en process behöver 12M minne: 4M längst ner för kod, 4M längst ner för data och 4M längst upp för stackminne. Mellan botten av stacken och toppen av datan används inte ett gigantiskt utrymme på 4Gb-12Mb. För det här fallet behövs endast 1 toppnivåbord och 3 andranivåbord. Detta tillvägagångssätt generaliserar naturligtvis till tre eller flera tabellnivåer.

Låt oss titta på en av posterna i sidtabellen. Dess storlek varierar från system till system, men 32 bitar är det vanligaste fallet. Det viktigaste fältet är ramnumret. Syftet med personsökning är att lokalisera denna kvantitet. Nästa är närvarobiten, skyddsbitar (till exempel 0 - läs/skriv, 1 - skrivskyddad ...), modifieringsbitar (om det skrevs till) och länkbitar, som hjälper till att markera lite använda sidor, bitar som tillåt cachning. Observera att sidadresser på disken inte är en del av sidtabellen.

Figur 10.4 - Exempel på en sidtabell på två nivåer.

Hur påverkar en minneshanterares prestanda att ha flera nivåer? Om vi ​​antar att varje nivå är en separat tabell i minnet, kan adressöversättning kräva flera minnesåtkomster.

Antalet nivåer i sidtabellen beror på den specifika arkitekturen. Du kan ge exempel på implementering av en-nivå (DEC PDP-11), två-nivå (Intel, DEC VAX), tre-nivå (Sun SPARC, DEC Alpha) personsökning, såväl som personsökning med ett specificerat antal nivåer ( Motorola). MIPS R2000 RISC-processorn fungerar utan sidtabell alls. Här måste sökningen efter den önskade sidan, om denna sida inte finns i det associativa minnet, tas över av OS (så kallad nollnivåsökning).

Att hitta den önskade sidan i en sidtabell på flera nivåer, vilket kräver flera åtkomster till huvudminnet längs vägen för att konvertera en virtuell adress till en fysisk, tar mycket tid. Under vissa omständigheter är en sådan försening oacceptabel. Detta problem hittar också en lösning på datorarkitekturnivå.

På grund av lokalitetsegenskapen refererar de flesta program till ett litet antal sidor under en tidsperiod, så bara en liten del av sidtabellen arbetar hårt.

Den naturliga lösningen är att utrusta datorn med en hårdvaruenhet för att mappa virtuella sidor till fysiska sidor utan att komma åt sidtabellen, det vill säga att ha ett litet snabbt cacheminne som lagrar den del av sidtabellen som behövs för tillfället . Denna enhet kallas vanligtvis associativt minne ibland används också termen associativa register (ibland translation lookaside buffer (TLB)).

En tabellpost i det associativa minnet innehåller information om en virtuell sida, dess attribut och den ram i vilken den finns. Dessa fält motsvarar exakt fälten i sidtabellen.

Att kartlägga virtuella sidor lagrade i associativt minne går snabbt, men cacheminnet är dyrt och har en begränsad storlek.
Upplagt på ref.rf
Antal TLB-poster från 8 till 2048

Minne brukar kallas associativt eftersom, till skillnad från sidtabellen, som indexeras av virtuella sidnummer, här jämförs det virtuella sidnumret samtidigt med motsvarande fält i alla rader i denna lilla tabell. Av denna anledning är detta minne dyrt. Raden vars virtuella sidfält matchar det önskade värdet innehåller sidramsnumret.

Låt oss överväga hur minneshanteraren fungerar i närvaro av associativt minne. Den letar först efter en virtuell sida i associativt minne. Om sidan hittas är allt bra utom i fall av privilegieöverträdelser, då begäran om åtkomst till minne avvisas.

Om en sida inte finns i associativt minne, söks den genom sidtabellen. En av sidorna i det associativa minnet ersätts med den hittade sidan. I tabellen är en sådan laddad sida markerad med en modifieringsbit, som kommer att beaktas nästa gång det associativa minnet laddas från sidtabellen.

Procentandelen gånger sidnumret finns i det associativa minnet brukar kallas hit (match) ratio (proportion, ratio). Med andra ord är träffförhållandet den del av länkarna som måste göras med associativt minne. Att komma åt samma sidor ökar träffförhållandet.

Anta till exempel att sidtabellåtkomst kräver 100 ns kritisk tid och minnesassociativ minnesåtkomst kräver 20 ns. Med en träffkvot på 90 % är den genomsnittliga åtkomsttiden 0,9*20+0,1*100 = 28 ns.

Den ganska acceptabla prestandan hos moderna operativsystem bevisar effektiviteten av att använda associativt minne. Den höga sannolikheten att hitta data i associativt minne är associerad med närvaron av objektiva egenskaper hos datan: rumslig och tidsmässig lokalitet.

Det är nödvändigt att uppmärksamma följande faktum. När du byter processer måste du se till att den nya processen inte ser information relaterad till den tidigare processen i det associativa minnet, till exempel rensa den. Användningen av associativt minne ökar dock tiden för kontextväxling.

Associativt minne - koncept och typer. Klassificering och funktioner i kategorin "Associativt minne" 2017, 2018.

Associativt minne

De säger att minnet vilar på tre pelare: associationer, prägling, upprepning. Men är det nödvändigt att följa denna modell? Smarta läsare kommer lätt att se en analogi med uråldriga idéer om världsordningen och om att jorden har en plan yta. Men är det nödvändigt att följa denna modell? Men så länge den gamla modellen passar dig kan du framgångsrikt använda den i vardagen.

Associationer är osynliga ledtrådar som förbinder det vi redan minns väl med det vi behöver konsolidera i minnet.

Associativt minne Burk Och behöver utveckla och träna. När man gör medvetna ansträngningar kommer sökandet efter associationer att ske mycket snabbare, och med tiden kan färdigheten flyttas till en omedveten nivå, associationer kommer att dyka upp av sig själva och det blir lättare och lättare att komma ihåg information.

Men nog med teori, det är dags att gå direkt vidare till enkla och helt lätta övningar!

Så du har läst 50 ord och föreställt dig motsvarande bilder så ljust som möjligt, i färg och rörelse. Försök nu att koppla ihop alla orden till en lång berättelse eller flera korta: katt, hus, bil, äpple...

Nyckel

En vit och röd KATT gick in i ett rött tegelhus, gick in i ett inbyggt garage, satte sig i en röd BIL, körde in på motorvägen och började, styra ratten med sin vänstra tass, gnaga på ett grönt ÄPPLE, hålla det med hennes högra tass.

Det finns inget behov av att komma ihåg ord i detta skede av minnesutveckling. Det kommer du att göra lite senare, enkelt och lekfullt. Nu rekommenderar jag inte att överbelasta dig själv med komplexa övningar. Vill du uppnå mycket höga minnesnivåer? För de flesta är det mer effektivt att röra på sig genom att öka svårighetsgraden lite i taget, men regelbundet.

Denna text är ett inledande fragment. Från boken Psychology of Intelligence and Giftedness författare Ushakov Dmitry Viktorovich

Metoder för kreativt tänkande, associativt nätverk och distribuerad uppmärksamhet Idéer om mekanismer som kan jämföras med den intuitiva tänkandets pol i modern psykologi går tillbaka till S. Medniks verk. I början av 1960-talet föreslog han den personen

författare Muller Stanislav

Del I. Så fördubblar du ditt minne på fyrtiofem minuter, eller Introduktion till holografiskt minne Var allt började... För flera år sedan, efter att ha avslutat den sista lektionen om minnesutveckling, gör en av eleverna påståenden angående resultaten

Från boken Unlock Your Memory: Remember Everything! författare Muller Stanislav

Associativt minne De säger att minnet bygger på tre pelare: association, prägling, upprepning. Men är det nödvändigt att hålla sig till denna modell Smarta läsare kommer lätt att se en analogi med uråldriga idéer om världsordningen och om att jorden har en lägenhet

Från boken Unlock Your Memory: Remember Everything! författare Muller Stanislav

Associativt minne Samma lek (eller övning, som du vill) för associativ länkning av ord, men endast med deltagande av beröringsförnimmelser. Du kommer på en berättelse som innehåller alla femtio ord, eller flera korta, som till en början till och med

Från boken Unlock Your Memory: Remember Everything! författare Muller Stanislav

Associativt minne Samma lek (eller övning) för att associativt länka samman ord, men med ljud och beröring. Du kommer på en eller flera berättelser som innehåller femtio ord. Vi hoppar över svåra ord på samma sätt. Även om det finns en önskan och

Från boken Unlock Your Memory: Remember Everything! författare Muller Stanislav

Associativt minne Kom på en berättelse som innehåller alla femtio orden, eller flera korta. Nu hoppar vi inte över svåra ord. Att komponera en berättelse borde inte längre vara svårt för dig Att komma ihåg ord eller berättelser i detta skede av associativ utveckling

författare Muller Stanislav

Del I Hur du fördubblar ditt minne på 45 minuter, eller en introduktion till holografiskt minne "I början av härliga gärningar..." För flera år sedan, efter att ha avslutat den sista lektionen om minnesutveckling, gjorde en av eleverna ett klagomål till mig : "Stanislav, folk kommer till dig."

Från boken Remember Everything [Secrets of Super Memory. Träningsbok] författare Muller Stanislav

Associativt minne De säger att minnet bygger på tre pelare: associationer, prägling, upprepning. Men är det nödvändigt att följa denna modell? Smarta läsare kommer lätt att se en analogi med gamla idéer om världsordningen och om att jorden har en lägenhet

Från boken Låt oss börja om, eller How to see your Tomorrow författare Kozlov Nikolay Ivanovich

Minne av det förflutna och minnet av framtiden Mina psykologkollegor, minnesforskare, menar att reserverna i vårt minne är praktiskt taget outtömliga. Vårt huvud räcker för att vi ska komma ihåg allt och alltid: det där slumpmässiga samtalet på gatan och svajandet av varje gren av det

Från boken Psychology of Adulthood författare Ilyin Evgeniy Pavlovich

Associativ metod för att diagnostisera personlig mognad Författare: E. V. Kalyaeva, T. V. Prokofieva Instruktioner. Ett antal ord erbjuds din uppmärksamhet. Tänk på vilka associationer vart och ett av dessa ord väcker, skriv ner dem 35 egenskaper som avslöjar konceptet

Från boken Developmental Psychology [Research Methods] av Miller Scott

"Vardagsminne" och långtidsminne Låt oss överväga ytterligare två frågor relaterade till ämnet "Minne". Fram till nu har den huvudsakliga uppmärksamheten ägnats åt standardlaboratoriemetoder, som ofta används i studien av minne i alla åldrar. Sista två

Från boken Allmän psykologi författaren Dmitrieva N Yu

8. Associativ psykologi I processen med att bilda psykologi började det associationistiska förhållningssättet till perception att råda. Associativ psykologi är en av huvudinriktningarna inom psykologi på 1600-1800-talen. Den huvudsakliga förklaringsprincipen för det mentala livet var konceptet

Från boken Allt det bästa som man inte kan köpa för pengar. En värld utan politik, fattigdom och krig av Fresco Jacques

av Andrew Newberg

Från boken The Mystery of God and the Science of the Brain [Neurobiology of Faith and Religious Experience] av Andrew Newberg

Från boken The Mystery of God and the Science of the Brain [Neurobiology of Faith and Religious Experience] av Andrew Newberg

Sätt att organisera minnet

Parameternamn Menande
Artikelns ämne: Sätt att organisera minnet
Rubrik (tematisk kategori) Datorer

Funktionellt sett består minnen av alla slag alltid av en lagringsmatris som lagrar information, och extra, mycket komplexa block som tjänar till att söka i matrisen, skriva och läsa (och, om så krävs, för regenerering).

En lagringsmatris (SM) består av många identiska lagringselement (SE). Alla elektroniska enheter är organiserade i celler, som var och en är utformad för att lagra en informationsenhet i form av en binär kod, vars antal bitar bestäms av provets bredd. Metoden för att organisera minnet beror på metoderna för att placera och söka information i minnet. Baserat på denna funktion skiljer de mellan adress, associativt och stackminne.

ADRESSMINNE

I minnet med en adressorganisation baseras placeringen och sökningen av information i minnet på användningen av lagringsadressen för en informationsenhet, som vi i framtiden för korthets skull kommer att kalla i ett ord. Adressen är numret på ZM-cellen i vilken detta ord finns. När du skriver (läser) ett ord till ett minne, måste kommandot som initierar denna operation ange adressen (numret) för den cell till vilken skrivningen (läs) ska göras.

I fig. Figur 5.2 visar adressminnets allmänna struktur.

Minnesåtkomstcykeln initieras av "Access"-signalen som anländer till TCU:n. Den allmänna delen av åtkomstcykeln inkluderar mottagning av åtkomstadressen från adressbussen (ABA) och mottagning av styrsignalen "Operation" i BUP, som indikerar typen av begärd operation (läsning eller skrivning).

Läsning. BAS dekrypterar adressen och skickar en signal som väljer 3M-cellen som anges av adressen. I det allmänna fallet kan BAS också skicka signaler till en vald minnescell som konfigurerar de elektroniska cellerna att skriva eller läsa. Efter detta läses ordet inskrivet i cellen av BUS-förstärkarna och sänds till RgI. Därefter, i minnet med destruktiv läsning, återskapas information genom att skriva ett ord från RgI genom BUZ i samma cell i ZM. Läsoperationen fullbordas genom att avge ett ord från RgI till utgångsinformationsbussen SHI ut.

Spela in. Förutom ovanstående allmänna del av åtkomstcykeln mottas det skrivna ordet från ingångsbussen SHI in i Rgl. Själva inspelningen består i allmänhet av två operationer – rensa cellen och själva inspelningen. För att göra detta väljer och rensar BAS först den cell som anges av adressen i RgA. Rengöring av CM-cellen (återföra den till sitt ursprungliga tillstånd) kan göras på olika sätt. I synnerhet, i minne med destruktiv läsning, kan rensning göras av en ordlässignal i cellen när BUS är blockerad (så att information inte kommer in i RgI). Därefter skrivs ett nytt ord in i den valda cellen.

Behovet av att tömma en cell före skrivning, såväl som driften av att regenerera information vid läsning, bestäms av typen av elektroniska anordningar som används, kontrollmetoder och egenskaper hos LSI-minnets elektroniska struktur operationer kan vara frånvarande i halvledarminnen.

PCB:n genererar de nödvändiga sekvenserna av styrsignaler som initierar driften av individuella minnesnoder. Man bör komma ihåg att kretskortet måste vara en mycket komplex enhet (en sorts kontrollkontroller med eget cacheminne), vilket ger minnet LSI som helhet speciella konsumentegenskaper, såsom multiportabilitet, pipelined informationsutmatning, etc. .

ASSOCIATIVT MINNE

I denna typ av minne söks information inte efter adress, utan efter dess innehåll. I det här fallet förstås innehållet i informationen vanligtvis inte som den semantiska belastningen av ett ord som är lagrat i en minnescell, utan som innehållet i minnescellens EE, ᴛ.ᴇ. bitvis sammansättning av det skrivna binära ordet. I detta fall är den associativa begäran (tecknet) också en binär kod med en viss bitsammansättning. Sökning med associativ funktion sker parallellt i tiden för alla 3M-celler och är en operation för att jämföra innehållet i bitarna i attributregistret med innehållet i motsvarande bitar i minnesceller. För att organisera en sådan sökning är alla elektroniska enheter utrustade med enbitsprocessorer, i vissa fall betraktas minne av denna typ som ett multiprocessorsystem.

Fullt associativt minne med stor kapacitet är en mycket dyr enhet, därför reduceras antalet enbitsprocessorer till en per minnescell. I detta fall sker jämförelsen av den associativa begäran med innehållet i minnesceller sekventiellt för individuella siffror, parallellt i tiden för alla minnesceller.

Med mycket stora mängder minne för vissa typer av problem, snabbar associativ sökning avsevärt upp databehandlingen och minskar sannolikheten för datorfel. Samtidigt gör associativa minnen med block av motsvarande kombinationskretsar det möjligt att utföra ganska komplexa logiska operationer i minnet: sökning efter det maximala eller minsta antalet i en array, sökning efter ord inneslutna inom vissa gränser, sortering av en array, etc.

Det bör noteras att associativ sökning också kan implementeras i en dator med vanligt adressminne, genom att sekventiellt anropa ord inspelade i minnesceller till processorn och jämföra dem med någon associativ egenskap (mall). Men med stora mängder minne kommer detta att ta mycket tid. Vid användning av associativt minne är det möjligt, utan att läsa ord från OP in i processorn, att i ett samtal bestämma antalet ord som svarar på en viss associativ begäran. Detta gör det möjligt att mycket snabbt implementera en fråga som: hur många invånare i regionen som inte har lämnat in en inkomstdeklaration etc. i stora databaser.

I vissa specialiserade datorer är OP eller en del av den konstruerad på ett sådant sätt att den möjliggör både associativ och adresssökning av information.

Ett förenklat blockschema över associativt minne, där alla elektroniska minnesenheter är utrustade med enbitsprocessorer, visas i fig. 5.3.

Låt oss först överväga operationen som kallas föreningskontroll. Denna operation är gemensam för läs- och skrivoperationen och har också sin egen innebörd.

En n-bit associativ begäran, ᴛ.ᴇ, tas emot via ingångsinformationsbussen till RGAP. bitar från 0 till n-1 fylls. Samtidigt tas sökmaskkoden emot i PrM, och den n:te biten av PrM sätts till 0. Den associativa sökningen utförs endast för uppsättningen PrgAP-bitar, som motsvarar 1 i PrgM (omaskerade PrgAP-bitar). Det är viktigt att notera att för ord där siffrorna i siffrorna sammanfaller med de omaskerade siffrorna i RgAP, sätter CS 1 i motsvarande siffror i RgSV och 0 i de återstående siffrorna.

Kombinationsschemat för att generera resultatet av associativ reversering FS bildar minst tre signaler från ordet som bildas i RgSV:

A 0 – avsaknad av ord i ZM som uppfyller det associativa kriteriet;

A 1 – närvaron av ett sådant ord;

A 2 – närvaro av mer än ett ord.

Andra operationer på innehållet i RgSV är också möjliga, till exempel att räkna antalet enheter, ᴛ.ᴇ. räkna ord i minnet som uppfyller en associativ fråga, etc.

Bildandet av innehållet i RgSV och a 0 , a 1 , a 2 enligt innehållet i RgAP, RgM, ZM kallas vanligtvis associationskontrolloperationen.

Läsning. Först utförs associationskontroll baserat på egenskapen i RgAP.

A 0 = 1 – avläsningen avbryts på grund av brist på nödvändig information;

A 1 = 1 – det hittade ordet läses i RgI, varefter det matas ut på SHI-utgången;

A 2 = 1 – ett ord läses som har till exempel det lägsta numret bland cellerna markerade 1 i RgSV, och matas sedan ut till SHI-utgången.

Spela in. Först hittas en fri cell (vi antar att beläggningsbiten för den fria cellen innehåller 0). För att göra detta utförs associationskontroll vid PrgAP = 111...10 och PrgM = 000...01, ᴛ.ᴇ. Den n:te siffran i PrgAP sätts till 0 och den n:te siffran i PrgM sätts till 1. I detta fall är den fria cellen markerad med 1 i PrgV. För inspelning, välj en ledig cell, till exempel med det lägsta numret. Ordet som tas emot från SHI-inmatningen till RgI registreras i det.

Det bör noteras att detta diagram inte visar blocken BUP, BUS, BUS, som finns i verkliga enheter. Samtidigt, för att bygga associativt minne, krävs lagringselement som kan läsas utan att förstöras.

STACK MINNE (BUTIK)

Stackminne, liksom associativt minne, är adresslöst. Stackminne måste organiseras både i hårdvara och på en vanlig adresserbar minnesarray.

I fallet med hårdvaruimplementering bildar stackminnesceller en endimensionell array i vilken angränsande celler är anslutna till varandra genom ordöverföringsbitkretsar (fig. 5.4). I det här fallet är två typer av enheter möjliga (a, b), vars funktionsprinciper är olika. Låt oss först betrakta strukturen i fig. 5.4, ​​a.

Ett nytt ord som tas emot från SHI-inmatningen skrivs till den övre (noll) cellen, medan alla tidigare skrivna ord (inklusive ordet i cell 0) flyttas ner till intilliggande celler, vars nummer är en högre. Läsning är endast möjlig från den översta (noll) minnescellen. Huvudläget är att läsa med radering. Samtidigt flyttas alla andra ord i minnet uppåt, till intilliggande celler med lägre siffror. I sådant minne implementeras regeln: sista in, första ut. Stackar av denna typ brukar kallas LIFO (Last In – First Out) stackar.

I vissa fall tillhandahåller stackminnesenheter också operationen att helt enkelt läsa ett ord från cell 0 utan att ta bort det och flytta de återstående orden. När du använder en stack för att lagra initieringsparametrarna för styrenheter för alla datorenheter, är det vanligtvis möjligt att läsa innehållet i valfri stackcell utan att radera den, ᴛ.ᴇ. läsa innehållet i inte bara cell 0.

Det första ordet som trycks på stapeln sägs vara placerat på botten av högen. Det sista ordet som skickas (i tid) till stacken sägs vara in toppen av högen. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, cell N-1 är botten av stacken och cell 0 är toppen.

Vanligtvis är hårdvarustacken utrustad med en stackräknare SchSt, som visar det totala antalet ord lagrade i minnet (SchSt = 0 - stacken är tom). När stacken är full inaktiverar den ytterligare skrivningar.

Stackprincipen för minnesorganisation kan implementeras inte bara i enheter speciellt utformade för detta. Stackbaserad dataorganisation är också möjlig på vanligt adresserbart minne med slumpmässig åtkomst (mjukvarustack). För att organisera en LIFO-stack i detta fall behövs ytterligare en minnescell (register), som alltid lagrar adressen till toppen av stacken och som brukar kallas stackpekare. Vanligtvis används ett av processorns interna register som en stackpekare. Dessutom krävs lämplig programvara. Principerna för stackdataorganisation på konventionellt adressminne illustreras av diagrammet i fig. 5.5.

Till skillnad från hårdvarustacken flyttas inte data som placeras på mjukvarustacken när ett nytt nummer skrivs eller läses. Varje nytt ord skrivs till minnescellen härnäst för att den vars adress finns i stackpekaren. Efter att ha skrivit ett nytt ord, ökas innehållet i stackpekaren med ett (se figur 6.5). Det är dock inte data som rör sig på mjukvarustacken, utan toppen av stacken. När ett ord läses från stapeln sker den omvända processen. Ordet läses från cellen vars adress finns i stackpekaren, varefter stackpekarens innehåll minskas med ett.

Om ord som nyligen laddats i stacken placeras i minnesceller med sekventiellt ökande adresser, anropas stacken direkt. Om adresserna minskar sekventiellt, då – upp och ner. I de flesta fall används en inverterad stack, vilket beror på särdragen i hårdvaruimplementeringen av räknare inuti processorn.

Varför är denna form av minnesorganisation bekväm? När vi ser framåt kan vi notera att alla kommandon som körs i processorn, i det allmänna fallet, måste innehålla en operationskod (OPC), adresserna för den första och andra operanden och adressen för att lagra resultatet. För att spara minne och minska tiden det tar för processorn att utföra en maskininstruktion är det önskvärt att minska instruktionslängden. Gränsen för denna minskning är längden på det adresslösa kommandot, ᴛ.ᴇ. bara COP. Det är just sådana instruktioner som är möjliga med en stackminnesorganisation, eftersom om operanderna är korrekt placerade på stacken räcker det att sekventiellt hämta dem och utföra lämpliga operationer på dem.

Förutom stackminnet av LIFO-typ som diskuterats ovan, använder datorer stackminnen av en annan typ som implementerar regeln: först in först ut. Stackar av denna typ brukar kallas FIFO-stackar (First In – First Out). Detta stackminne används ofta för att organisera olika typer av köer (kommandon, data, förfrågningar, etc.). Den generaliserade strukturen för en hårdvarustack av FIFO-typ visas i fig. 5.4, ​​b.

Liksom i det föregående fallet bildar stackminnesceller en endimensionell grupp i vilken angränsande celler är anslutna till varandra genom bitordöverföringskretsar. Ett nytt ord som tas emot från SHI-inmatningen skrivs till den översta (noll) cellen, varefter det omedelbart flyttas ner och skrivs till den sista ofyllda cellen. Om stapeln var tom innan du skrev, hamnar ordet omedelbart i cellnummer N-1, ᴛ.ᴇ. till botten av högen. Avläsning är endast möjlig från den nedre cellen numrerad N-1 (nederst i stapeln). Huvudläget är att läsa med radering. I det här fallet flyttas alla efterföljande (inspelade) ord ner till intilliggande celler vars nummer är ett högre. När stacken är full, förbjuder räknaren (SchSt) ytterligare skrivningar till stacken.

Men till skillnad från LIFO-stacken är det i FIFO-stacken inte botten som rör sig, utan toppen. Ord som skrivs till FIFO-stacken flyttas gradvis från toppen till botten, varifrån de läses eftersom de är extremt viktiga, och hastigheten för skrivning och läsning bestäms av externa styrsignaler och är inte relaterade till varandra.

Mjukvaruimplementeringen av FIFO-stacken diskuteras inte i detta avsnitt, eftersom den används ganska sällan i praktiken.

Metoder för att organisera minne - koncept och typer. Klassificering och funktioner i kategorin "Metoder för att organisera minne" 2017, 2018.

Att hitta det ramnummer som motsvarar den önskade sidan i sidtabellen på flera nivåer kräver flera åtkomster till huvudminnet, så det tar mycket tid. I vissa fall är en sådan försening oacceptabel. Problemet med att söka acceleration löses på datorarkitekturnivå.

På grund av lokalitetsegenskapen kommer de flesta program åt ett litet antal sidor under en tidsperiod, så endast en liten del av sidtabellen används aktivt.

En naturlig lösning på accelerationsproblemet är att utrusta datorn med en hårdvaruenhet för att mappa virtuella sidor till fysiska sidor utan att komma åt sidtabellen, det vill säga att ha ett litet, snabbt cacheminne som lagrar den del av sidtabellen som är behövs för tillfället. Denna enhet kallas associativt minne, ibland även kallad translation lookaside buffer (TLB).

En tabellpost i det associativa minnet (en ingång) innehåller information om en virtuell sida: dess attribut och den ram i vilken den finns. Dessa fält motsvarar exakt fälten i sidtabellen.

Eftersom det associativa minnet endast innehåller några av sidtabellposterna måste varje TLB-post inkludera ett virtuellt sidnummerfält. Minnet kallas associativt eftersom det samtidigt jämför numret på den visade virtuella sidan med motsvarande fält i alla rader i denna lilla tabell. Därför är denna typ av minne ganska dyrt. Raden vars virtuella sidfält matchar det önskade värdet innehåller sidramsnumret. Det typiska antalet TLB-poster är från 8 till 4096. En ökning av antalet associativa minnesposter måste ta hänsyn till faktorer såsom storleken på huvudminnescachen och antalet minnesåtkomster per instruktion.

Låt oss överväga hur minneshanteraren fungerar i närvaro av associativt minne.

Först finns information om kartläggningen av en virtuell sida till en fysisk sida i associativt minne. Om den nödvändiga posten hittas är allt bra, utom i fall av kränkning av privilegier, när begäran om åtkomst till minnet avvisas.

Om den önskade posten inte finns i det associativa minnet, görs mappningen genom sidtabellen. En av posterna i det associativa minnet ersätts av en hittad post från sidtabellen. Här står vi inför det traditionella ersättningsproblemet för vilken cache som helst (nämligen vilken av posterna i cachen som behöver ändras). En associativ minnesdesign måste organisera poster på ett sådant sätt att man kan besluta om vilken av de gamla posterna som ska raderas när nya läggs till.

Antalet lyckade sökningar efter ett sidnummer i associativt minne i förhållande till det totala antalet sökningar kallas hit (match) ratio (proportion, ratio). Termen "cacheträfffrekvens" används också ibland. Således är träffförhållandet den del av länkarna som kan göras med hjälp av associativt minne. Att komma åt samma sidor ökar träffförhållandet. Ju högre träffförhållande, desto lägre är den genomsnittliga åtkomsttiden till data som finns i RAM.

Antag till exempel att det tar 100 ns att bestämma adressen i fallet med en cachemiss genom sidtabellen och 20 ns för att bestämma adressen i fallet med en cacheträff genom associativt minne. Med ett träffförhållande på 90 % är den genomsnittliga tiden för att fastställa adressen 0,9x20 + 0,1x100 = 28 sekunder.

Den ganska acceptabla prestandan hos moderna operativsystem bevisar effektiviteten av att använda associativt minne. Den höga sannolikheten att hitta data i associativt minne är associerad med närvaron av objektiva egenskaper hos datan: rumslig och tidsmässig lokalitet.

Det är nödvändigt att uppmärksamma följande faktum. När du byter processkontext är det nödvändigt att se till att den nya processen "inte ser" information relaterad till den tidigare processen i associativt minne, till exempel för att rensa den. Användningen av associativt minne ökar således kontextväxlingstiden.

Det övervägda två-nivå-adresskonverteringsschemat (associativt minne + sidtabell) är ett slående exempel på en minneshierarki baserad på användningen av lokalitetsprincipen, som diskuterades i inledningen till föregående föreläsning.

I associativa experiment bör en punkt särskilt betonas, nämligen att en nödvändig förutsättning för att identifiera en pålitlig associativ process är subjektets fullständiga passivitet, den maximala frånkopplingen av hans vilja och tänkande från det spontana flödet av idéer. Annars får vi istället för en associativ process en aktivt bestämd process. Denna omständighet bör särskilt betonas av det skälet att den verkliga associativa processen i själva verket är en spontan process som sker utanför mänsklig aktivitet; Det är i denna egenskap som det representerar ett av stadierna av minnesutveckling och en av formerna för dess manifestation. När det gäller associativt minne har vi att göra med spontant minne, en spontan mnemonisk process som inte har något gemensamt med frivilligt minne. I denna mening är det associativa minnet naturligtvis närmare de primitiva former av minnesmanifestation som beskrivs ovan än dess specifikt mänskliga former.

Spontanitet kännetecknar lika mycket associativt minne för tillfället memorering, det är fixering eller bibehållande, så är minnen det vill säga reproduktioner.

Ämnet är alltid under inflytande av olika intryck, och ofta uppstår eller försvinner dessa intryck oavsett hans avsikt. De försvinner dock oftast inte spårlöst. Visserligen finns dessa intryck inte kvar i psyket som medvetna upplevelser länge, men de orsakar vissa personliga förändringar i ämnet själv. Och så, på grundval av dessa förändringar, när de lämpliga förutsättningarna uppstår, när till exempel ett av dessa intryck igen börjar agera på ämnet, reagerar den senare i enlighet med de förändringar som har inträffat hos honom, det vill säga, upplevelser som motsvarar denna förändring uppstår igen i hans medvetande. Så uppstår reproduktionen av idéer, upplevd av subjektet som en produkt av inverkan av spontana intryck. Som vi ser sker reproduktionen av dessa senare också utanför subjektets aktiva, avsiktliga ingripande.

Det faktum att det associativa minnet alltid tydligt bör skiljas från det frivilliga minnet stöds också av att reproduktionen av associativa idéer alltid uppstår endast under påverkan av någon andra erfarenhet - en perceptuell idé. För att en associativ representation ska uppstå krävs en stimulerande representation eller perception. Denna omständighet karakteriserar associativt minne ganska väl som en fortfarande låg, beroende form av minneshandling. I denna mening är det ganska nära att bli erkännande.

Igenkänningsprocessen, som vi redan vet, sker enligt följande: uppfattningen av N. åtföljs alltid av en känsla av förtrogenhet. Jag kände igen N., jag såg honom. Men om någon annan idé läggs till detta, till exempel såg jag N. där och där (bild av en plats) eller han bar en sådan och en hatt (bild av en hatt), då har vi redan att göra med associativ minne , det vill säga uppfattningen av N. orsakar reproduktion av idéer. I denna mening är skillnaden mellan igenkänning och associativt minne endast att i fallet med igenkänning, kommer det förflutna till liv i själva uppfattningen, utan att gå över dess gränser, medan i det associativa minnet detta förflutna inte ges i form av någon tidigare uppfattning, men det visas en bild som ges igen, men i form av en representation. Nedan kommer vi att se att på ett högre utvecklingsstadium behövs inte alltid en stimulans för att reproducera minnesrepresentationer. Det finns inte bara ofrivillig memorering, utan också frivillig återkallelse.