Vad är associativt minne?

Det mesta minnet lagras och nås på samma sätt. Innehållet sparas och hämtas sedan med en minnesadress. Detta är generellt användbart och används nästan universellt. Tyvärr finns det ett litet problem med denna typ av förvaring. Det är utmärkt om du vet var den data du behöver lagras. Det fungerar inte bra om du vill söka efter en specifik post.

Låt oss säga att du vill hitta en fil; du kommer ihåg dess namn men inte vilken mapp du sparade. Din dator kan söka efter filnamnet, men om du inte har använt det nyligen är det ofta ganska långsamt att utföra sökningen. Och det är med hänsyn till att filsystem lagras som filnamn och adresser.

Associativt minne, även känt som Content Addressable Memory, eller CAM, är utformat för att söka efter dess innehåll. Tyvärr är det mycket dyrt att implementera associativt minne. Det betyder att den bara används i ett fåtal fall, vanligtvis i avancerad nätverkshårdvara. Det associativa namnminnet kommer från det faktum att det är en hårdvaruimplementering av en associativ mjukvaruuppsättning.

Cellstruktur

Associativt minne används endast där extremt hög prestanda behövs. Som sådan är den baserad på SRAM snarare än DRAM. Som utgångspunkt gör bara detta det dyrt. DRAM använder en transistor och en kondensator per bit, och SRAM använder totalt 6 transistorer. För att effektivt söka innehållet i en minnescell modifieras varje cell för att ha jämförelsekretsar. Detta lägger till totalt 4 transistorer till varje cell. Detta innebär att associativt minne är betydligt mindre tätt än SRAM, som redan är en dyr lagringsform.

Användande

Associativt minne är dyrt och optimerat uteslutande för att matcha innehållsbaserade sökningar. Som sådan används den egentligen bara i enheter som ständigt behöver utföra den här typen av sökning; även då är den vanligtvis begränsad till avancerade modeller. Det finns i allmänhet bara två huvudsakliga platser där associativt minne används, nätverksväxlar och routrar.

Nätverkshårdvara som switchar och routrar måste erbjuda högpresterande nivåer för att hålla flera gigabitar av nätverkstrafik flytande konstant. Inom ett nätverk används MAC-adresser för att dirigera trafik. En switch kommer att veta vilken av dess många nätverksportar data måste skickas till så att den kommer till enheten med rätt MAC-adress. För att säkerställa att varje paket skickas till rätt plats, söks dess destinations MAC-adress efter. I ett traditionellt minnesformat skulle det ta lite tid och lägga till fördröjningen för varje nätverkskommunikation. Med associativt minne kan den sökningen vara mycket snabbare.

Binär och ternär

Det mesta associativa minnet är baserat på binärt, men en del är baserat på ternärt. En ternär associativ minnescell liknar den binära som beskrivs ovan. Istället för att ha en SRAM-cell har den dock två. Båda har då tillsammans de fyra extra transistorer som behövs för att utföra jämförelsen. Detta gör naturligtvis det ternära associativa minnet ännu dyrare än sin binära kusin, så vad används det till?

Den ternära cellens andra bit indikerar "vård" eller "bryr sig inte." Detta lägger till ett tredje tillstånd till cellen och den övergripande sökfunktionen. Den kan nu lagra en 1, 0 eller X för bry dig inte. Detta är särskilt användbart när man hanterar nätverksroutningstabeller baserade på subnätmasker med variabel längd och med åtkomstkontrollistor. Du kan ha flera positiva svar på en enda sökadress i båda dessa. Inom båda vill du bara ta del av den mest exakta instruktionen.

Som sådan kan en sökning efter 192.168.20.19 matcha följande regler 192.168.20.16/28 och 192.168.0.0/16. Om du utförde en vanlig binär sökning, måste du utföra beräkningar för att verifiera att adressen faller inom de angivna adressintervallen. Med ternär logik kan du dock avgöra om din sökadress matchar 192.168.xx i en enda operation. Du kan också bestämma att /28-matchningen är mycket mer exakt än /16-matchningen eftersom det finns färre "bryr sig inte"-bitar. Detta låter dig tillämpa de relaterade reglerna för åtkomstkontroll med företräde.

Eftersom ternärt associativt minne är ännu dyrare än den binära formen är det ännu mindre vanligt. Det kan i allmänhet bara hittas i topproutrar och flerskiktsswitchar.

Slutsats

Associativt minne är en form av minne som fungerar väldigt annorlunda än standardminne. Istället för att begära data som lagras i en specifik adress, söker den i hela minnet på en gång efter matchningar med en sökterm. För att uppnå detta med högpresterande nivåer är minnesceller baserade på en modifierad form av SRAM med en eller två SRAM-celler kombinerade med fyra extra transistorer som används för att utföra bitjämförelselogiken.

Enstaka SRAM-celler används i binärt associativt minne, medan två SRAM-celler används i ternärt associativt minne. Den ternära varianten tillåter lagring av ett tredje värde, vanligtvis 1, 0 eller "bryr sig inte." Detta tillåter innehåll att indikera att det ska matcha även om söktermen inte är exakt.

Eftersom associativa minnesceller är baserade på det dyra SRAM, är de dyra, med ternära är den mest kostsamma. På grund av att detta och dess struktur är explicit optimerad för sökning efter innehåll, används inte associativt minne i de flesta enheter.

Endast enheter som drar nytta av det och där prestanda överväger initialkostnaden har den. Som sådan finns det vanligtvis uteslutande i nätverkshårdvara av företagsklass. Inom den inställningen kallas det ofta CAM och TCAM, för innehållsadresserbart minne respektive ternärt innehållsadresserbart minne.


Leave a Comment

Hur man använder AirPods med Samsung-telefoner

Hur man använder AirPods med Samsung-telefoner

Om du är osäker på om du ska köpa AirPods för din Samsung-telefon, kan denna guide verkligen hjälpa. Den mest uppenbara frågan är om de två är

Grunderna för 3D-utskrift: Underhållstips för din 3D-skrivare

Grunderna för 3D-utskrift: Underhållstips för din 3D-skrivare

Att hålla dina 3D-skrivare i gott skick är mycket viktigt för att få de bästa resultaten. Här är några viktiga tips att tänka på.

Canon Pixma MG5220: Skanna utan bläck

Canon Pixma MG5220: Skanna utan bläck

Hur man aktiverar scanning på Canon Pixma MG5220 när du har slut på bläck.

Hur man fixar GeForce Now felkod 0xC272008F

Hur man fixar GeForce Now felkod 0xC272008F

Du förbereder dig för en kväll av spelande, och det kommer att bli en stor sådan – du har precis köpt "Star Wars Outlaws" på GeForce Now streamingtjänsten. Upptäck den enda kända lösningen som visar dig hur man fixar GeForce Now felkod 0xC272008F så att du kan börja spela Ubisoft-spel igen.

10 Bästa NAS-lagringsenheter för hem- och yrkesbruk

10 Bästa NAS-lagringsenheter för hem- och yrkesbruk

Oavsett om du letar efter en NAS för ditt hem eller kontor, kolla in denna lista över de bästa NAS-lagringsenheterna.

5 Anledningar till varför din bärbara dator överhettas

5 Anledningar till varför din bärbara dator överhettas

Ta reda på några möjliga orsaker till varför din bärbara dator överhettas, tillsammans med tips och tricks för att undvika detta problem och hålla din enhet sval.

Grunderna i 3D-utskrift: En nödvändig underhållskontrollista

Grunderna i 3D-utskrift: En nödvändig underhållskontrollista

Att hålla din utrustning i gott skick är ett måste. Här är några användbara tips för att hålla din 3D-skrivare i toppskick.

Hur man ansluter en Windows 11-laptop till projektor/TV

Hur man ansluter en Windows 11-laptop till projektor/TV

Läs denna artikel för att lära dig den enkla steg-för-steg-processen för att ansluta en laptop till en projektor eller en TV på Windows 11 och Windows 10-operativsystem.

Hur man hittar IP-adressen till en skrivare

Hur man hittar IP-adressen till en skrivare

Har du problem med att ta reda på vilken IP-adress din skrivare använder? Vi visar dig hur du hittar den.

Vad du ska göra om Powerbeats Pro inte laddar i fodralet

Vad du ska göra om Powerbeats Pro inte laddar i fodralet

Om dina Powerbeats Pro inte laddar, använd en annan strömkälla och rengör dina hörsnäckor. Lämna fodralet öppet medan du laddar dina hörsnäckor.