Interfolierat minne

Inom beräkningar är interfolierat minne en design som kompenserar för den relativt långsamma hastigheten hos dynamiskt slumpmässigt minne (DRAM) eller kärnminne , genom att sprida minnesadresser jämnt över minnesbanker . På så sätt använder angränsande minnesläsning och skrivning varje minnesbank i tur och ordning, vilket resulterar i högre minneskapacitet på grund av minskad väntetid på att minnesbanker ska bli redo för operationerna.

Det skiljer sig från flerkanalsminnesarkitekturer , främst eftersom interfolierat minne inte lägger till fler kanaler mellan huvudminnet och minneskontrollern . Men kanalinterleaving är också möjligt, till exempel i freescale i.MX 6-processorer, som gör att interleaving kan göras mellan två kanaler. [ citat behövs ]

Översikt

Med interfolierat minne tilldelas minnesadresser till varje minnesbank i tur och ordning. Till exempel, i ett interfolierat system med två minnesbanker (förutsatt ordadresserbart minne), om den logiska adressen 32 tillhör bank 0, så skulle den logiska adressen 33 tillhöra bank 1, den logiska adressen 34 skulle tillhöra bank 0, och så vidare . Ett interfolierat minne sägs vara n-vägs interfolierat när det finns n banker och minnesplatsen i finns i bank i modn .

Exempel på minnesinterfoliering med 4 banker. Röda banker är uppfriskande och kan inte användas.

Interfolierat minne resulterar i kontinuerliga läsningar (vilket är vanliga både i multimedia och körning av program) och sammanhängande skrivningar (som används ofta när man fyller på lagrings- eller kommunikationsbuffertar) som faktiskt använder varje minnesbank i sin tur, istället för att använda samma upprepade gånger. Detta resulterar i betydligt högre minneskapacitet eftersom varje bank har en minimal väntetid mellan läsning och skrivning.

Interfolierad DRAM

Huvudminne ( random-access memory, RAM) är vanligtvis sammansatt av en samling DRAM- minneschips, där ett antal chips kan grupperas tillsammans för att bilda en minnesbank. Det är då möjligt, med en minneskontroller som stöder interfoliering, att lägga ut dessa minnesbanker så att minnesbankerna kommer att interfolieras.

Data i DRAM lagras i enheter av sidor. Varje DRAM-bank har en radbuffert som fungerar som en cache för åtkomst till vilken sida som helst i banken. Innan en sida i DRAM-banken läses, läses den först in i radbufferten . Om sidan omedelbart läses från radbufferten (eller en radbuffertträff) har den den kortaste minnesåtkomstfördröjningen i en minnescykel. Om det är en radbuffertmiss, vilket också kallas en radbuffertkonflikt, är det långsammare eftersom den nya sidan måste laddas in i radbufferten innan den läses. Radbuffertmissar inträffar när åtkomstförfrågningar på olika minnessidor i samma bank betjänas. En rad-buffertkonflikt medför en betydande fördröjning för en minnesåtkomst. Däremot kan minnesåtkomster till olika banker fortgå parallellt med en hög genomströmning.

Frågan om radbuffertkonflikter har studerats väl med en effektiv lösning. Storleken på en radbuffert är normalt storleken på en minnessida som hanteras av operativsystemet. Radbuffertkonflikter eller missar kommer från en sekvens av åtkomster till olika sidor i samma minnesbank. Studien visar att en konventionell minnesinterfolieringsmetod skulle sprida adressavbildningskonflikter på cachenivå till minnesadressutrymmet, vilket orsakar radbuffertmissar i en minnesbank. Den permutationsbaserade interfolierade minnesmetoden löste problemet med en trivial mikroarkitekturkostnad. Sun Microsystems anammade denna permutationsinterfolieringsmetoden snabbt i sina produkter. Denna patentfria metod finns i många kommersiella mikroprocessorer, såsom AMD, Intel och NVIDIA , för inbyggda system, bärbara datorer, stationära datorer och företagsservrar.

I traditionella (platta) layouter kan minnesbanker tilldelas ett sammanhängande block av minnesadresser, vilket är mycket enkelt för minneskontrollern och ger lika prestanda i helt random access-scenarier, jämfört med prestandanivåer som uppnås genom interfoliering. Men i verkligheten är minnesläsningar sällan slumpmässiga på grund av referenslokalitet , och optimering för åtkomst nära varandra ger mycket bättre prestanda i interfolierade layouter.

Det sätt på vilket minne adresseras har ingen effekt på åtkomsttiden för minnesplatser som redan är cachade , och påverkar endast minnesplatser som behöver hämtas från DRAM.

Historia

Tidig forskning om interfolierat minne utfördes på IBM på 60- och 70-talen i förhållande till IBM 7030 Stretch- datorn, men utvecklingen pågick i decennier och förbättrade design, flexibilitet och prestanda för att producera moderna implementeringar.

Se även

externa länkar