Associativt minne

Associativt minne (AP) eller associativ lagringsenhet (AMU) är en speciell typ av datorminne som används i mycket snabba sökapplikationer. Även känt som innehållsadresserbart minne, associativ lagring, innehållsadresserbart minne eller associativ array , även om den senare termen är vanligare i programmering för att referera till en datastruktur (Hannum et al., 2004).

Hårdvaruassociativ array

Till skillnad från konventionellt maskinminne (Random Access Memory, eller RAM), där användaren anger en minnesadress och RAM returnerar dataordet som är lagrat på den adressen, är UA utformad så att användaren specificerar dataordet och UA söker efter det för att ta reda på om den finns lagrad någonstans i minnet. Om ett dataord hittas returnerar UA en lista med en eller flera lagringsadresser där ordet hittades (och, på vissa arkitekturer, returnerar även själva dataordet eller andra relaterade datastycken). Således är AP en hårdvaruimplementering av vad som i termer av programmering skulle kallas en associativ array.

Branschstandarder adresserbart minnesinnehåll

Definitionen av ett grundläggande gränssnitt för UA och andra nätverkssökningselement (NSE) specificerades i ett interoperabilitetsavtal kallat Look-Aside Interface ( LA-1 och LA-1B ), som utvecklades av Network Processing Forum, som var senare sammanslogs till Optical Internetworking Forum (OIF). Många enheter har tillverkats av Integrated Device Technology, Cypress Semiconductor, IBM, Netlogic Micro Systems och andra under dessa LA-avtal. Den 11 december 2007 publicerade OIF gränssnittsavtalet Serial Lookaside ( SLA ).

Implementering på halvledare

Eftersom AP är designad för att söka i hela minnet i en operation, är detta mycket snabbare än att söka efter RAM i praktiskt taget alla sökapplikationer. Det finns dock en nackdel med den högre kostnaden för AP. Till skillnad från RAM-chippet, som har enkla lagringar, måste varje enskild minnesbit i en helt parallell AP ha sin egen jämförelsekrets kopplad för att detektera en matchning mellan den lagrade biten och ingångsbiten. Dessutom måste utsignalerna från jämförelserna från varje cell i dataordet kombineras för att ge det fullständiga jämförelseresultatet för dataordet. Den extra kretsen ökar den fysiska storleken på AP-chippet, vilket ökar tillverkningskostnaden. Den extra kretsen ökar också effektförlusten, eftersom alla jämförelsekretsar är aktiva vid varje klockcykel. Som en följd av detta används AM endast i specialiserade applikationer där sökhastigheten inte kan uppnås med andra, mindre kostsamma, metoder.

Alternativa implementeringar

För att uppnå en annan balans mellan hastighet, minnesstorlek och kostnad emulerar vissa implementeringar AP-funktioner genom att använda standardträdsökning eller hårdvaruimplementerade hashalgoritmer, och även använda hårdvaruknep som replikering och pipelining för att påskynda effektiv drift. Dessa mönster används ofta i routrar.

Ternärt associativt minne

Binär AA är den enklaste typen av associativt minne som använder datauppslagsord som helt består av 1:or och 0:or. I ternärt innehållsadresserbart minne (TCAM [1] ) läggs ett tredje värde till för att jämföra "X" eller "bryr sig inte" för en eller flera bitar i det lagrade dataordet, vilket ger ytterligare sökflexibilitet.

Till exempel kan en ternär UA lagra ordet "10XX0", vilket skulle matcha något av de fyra sökorden "10000", "10010", "10100" eller "10110". Tillägget av flexibilitet till uppslagningen kommer på bekostnad av ökad minneskomplexitet, eftersom interna celler nu måste koda tre möjliga tillstånd istället för två. Detta ytterligare tillstånd implementeras vanligtvis genom att lägga till en "viktig" ("viktig"/"inte viktig") maskbit till varje minnesplats.

Applikationsexempel

Innehållsadresserbart minne används ofta i datornätverksenheter. Till exempel, när en nätverksswitch tar emot en dataram på en av sina portar, uppdaterar den en intern tabell med ursprunget för ramens MAC-adress och porten på vilken den togs emot. Den letar sedan upp destinationens MAC-adress i en tabell för att bestämma vilken port ramen ska skickas till och skickar den till den porten. MAC-adresstabellen är vanligtvis implementerad på en binär AP, så destinationsporten kan hittas mycket snabbt, vilket minskar switchens latens.

Ternära AP:er används ofta i de nätverksroutrar där varje adress har två delar: (1) nätverksadressen, som kan ändras i storlek beroende på subnätskonfigurationen, och (2) värdadressen, som upptar de återstående bitarna. Varje subnät har en nätmask som bestämmer vilka bitar som är nätverksadressen och vilka bitar som är värdadressen. Routing görs genom att kontrollera mot routingtabellen som underhålls av routern. Den innehåller alla kända destinationsnätverksadresser, deras tillhörande nätmask och information som behövs av paket som dirigeras till den destinationen. En router implementerad utan en UA jämför destinationsadressen för paketet som ska delas med varje post i routingtabellen, gör en logisk AND med nätmasken och jämför resultaten med nätadressen. Om de är lika, används motsvarande riktningsinformation för att skicka paketet. Användningen av en ternär UA för routingtabellen gör uppslagsprocessen mycket effektiv. Adresser lagras med hjälp av don't care-biten i värdadressdelen, så att leta upp destinationsadressen i UA hämtar omedelbart den korrekta posten i routingtabellen; båda operationerna - applicering av masken och jämförelse - utförs av AP:ns hårdvara.

Andra AP-applikationer inkluderar

Se även

Anteckningar

  1. CCNP BCMSN Exam Certification Guide: CCNP Självstudie - David Hucaby - Google Books . Hämtad 7 april 2015. Arkiverad från originalet 4 mars 2016.

Litteratur

På engelska

Länkar

På engelska: