Associativ hukommelse

Associative memory (AP) eller associative storage device (AMU) er en speciel type computerhukommelse, der bruges i meget hurtige søgeapplikationer. Også kendt som indholdsadresserbar hukommelse, associativ lagring, indholdsadresserbar hukommelse eller associativ array , selvom sidstnævnte udtryk er mere almindeligt brugt i programmering for at referere til en datastruktur (Hannum et al., 2004).

Hardware associativ array

I modsætning til konventionel maskinhukommelse (Random Access Memory eller RAM), hvor brugeren specificerer en hukommelsesadresse, og RAM returnerer dataordet, der er gemt på den adresse, er UA designet således, at brugeren specificerer dataordet, og UA søger efter det for at finde ud af, om den er gemt nogen steder i hukommelsen. Hvis et dataord er fundet, returnerer UA en liste over en eller flere lageradresser, hvor ordet blev fundet (og, på nogle arkitekturer, returnerer også selve dataordet eller andre relaterede datastykker). AP er således en hardwareimplementering af det, som programmeringsmæssigt ville blive kaldt et associativt array.

Industristandarder adresserbart hukommelsesindhold

Definitionen af ​​en grundlæggende grænseflade for UA og andre Network Search Elements (NSE'er) blev specificeret i en interoperabilitetsaftale kaldet Look-Aside Interface ( LA-1 og LA-1B ), som blev udviklet af Network Processing Forum, som var senere fusioneret til Optical Internetworking Forum (OIF). Talrige enheder er blevet fremstillet af Integrated Device Technology, Cypress Semiconductor, IBM, Netlogic Micro Systems og andre under disse LA-aftaler. Den 11. december 2007 offentliggjorde OIF grænsefladeaftalen Serial Lookaside ( SLA ).

Implementering på halvledere

Fordi AP er designet til at søge i hele hukommelsen i én operation, er dette meget hurtigere end at søge i RAM i stort set alle søgeapplikationer. Der er dog en ulempe ved de højere omkostninger ved AP. I modsætning til RAM-chippen, som har simple lagre, skal hver enkelt hukommelsesbit i et fuldt parallelt AP have sit eget sammenligningskredsløb tilsluttet for at detektere et match mellem den lagrede bit og inputbitten. Derudover skal outputtet af sammenligningerne fra hver celle i dataordet kombineres for at give det fulde sammenligningsresultat af dataordet. Det ekstra kredsløb øger den fysiske størrelse af AP-chippen, hvilket øger produktionsomkostningerne. Det ekstra kredsløb øger også effekttabet, da alle sammenligningskredsløb er aktive på hver clock-cyklus. Som følge heraf bruges AM kun i specialiserede applikationer, hvor søgehastigheden ikke kan opnås ved hjælp af andre, mindre omkostningskrævende metoder.

Alternative implementeringer

For at opnå en anden balance mellem hastighed, hukommelsesstørrelse og omkostninger, emulerer nogle implementeringer AP-funktioner ved at bruge standard træsøgning eller hardware-implementerede hashing-algoritmer, også ved hjælp af hardwaretricks såsom replikering og pipelining for at fremskynde effektiv drift. Disse designs bruges ofte i routere.

Ternær associativ hukommelse

Binær AA er den enkleste type associativ hukommelse, der bruger dataopslagsord, der udelukkende består af 1'ere og 0'ere. I ternær indholdsadresserbar hukommelse (TCAM [1] ) tilføjes en tredje værdi for at sammenligne "X" eller "don't care" for en eller flere bits i det lagrede dataord, hvilket tilføjer yderligere søgefleksibilitet.

For eksempel kunne en ternær UA gemme ordet "10XX0", som ville matche ethvert af de fire søgeord "10000", "10010", "10100" eller "10110". Tilføjelsen af ​​fleksibilitet til opslag kommer på bekostning af øget hukommelseskompleksitet, da interne celler nu skal kode tre mulige tilstande i stedet for to. Denne yderligere tilstand implementeres normalt ved at tilføje en "vigtig" ("vigtig"/"ikke vigtig") maskebit til hver hukommelsesplacering.

Applikationseksempler

Indholdsadresserbar hukommelse bruges ofte i computernetværksenheder. For eksempel, når en netværksswitch modtager en dataramme på en af ​​dens porte, opdaterer den en intern tabel med oprindelsen af ​​rammens MAC-adresse og den port, den blev modtaget på. Den slår derefter destinations-MAC-adressen op i en tabel for at bestemme, hvilken port rammen skal sendes til, og sender den til den port. MAC-adressetabellen er normalt implementeret på en binær AP, så destinationsporten kan findes meget hurtigt, hvilket reducerer switchens latens.

Ternære AP'er bruges ofte i de netværksroutere, hvor hver adresse har to dele: (1) netværksadressen, som kan ændre sig i størrelse afhængigt af undernetkonfigurationen, og (2) værtsadressen, som optager de resterende bits. Hvert undernet har en netmaske, der bestemmer, hvilke bits der er netværksadressen, og hvilke bits der er værtsadressen. Routing udføres ved at kontrollere mod rutetabellen, der vedligeholdes af routeren. Den indeholder alle kendte destinationsnetværksadresser, deres tilknyttede netmaske og information, der kræves af pakker, der sendes til denne destination. En router implementeret uden en UA sammenligner destinationsadressen for den pakke, der skal opdeles, med hver indtastning i routingtabellen, laver en logisk OG med netmasken og sammenligner resultaterne med netadressen. Hvis de er ens, bruges den tilsvarende retningsinformation til at sende pakken. Brugen af ​​en ternær UA til routingtabellen gør opslagsprocessen meget effektiv. Adresser gemmes ved hjælp af ligeglad bit i værtsadressedelen, så at slå destinationsadressen op i UA'en henter straks den korrekte indtastning i routingtabellen; begge operationer - påføring af masken og sammenligning - udføres af AP'ens hardware.

Andre AP-applikationer inkluderer

Se også

Noter

  1. CCNP BCMSN-eksamencertificeringsvejledning: CCNP-selvstudie - David Hucaby - Google Books . Hentet 7. april 2015. Arkiveret fra originalen 4. marts 2016.

Litteratur

På engelsk

Links

På engelsk: