Kaj je asociativni spomin?

Večina pomnilnika je shranjena in dostopna na enak način. Vsebina se shrani in nato pridobi z uporabo pomnilniškega naslova. To je na splošno uporabno in se skoraj povsod uporablja. Na žalost obstaja majhna težava s tem slogom shranjevanja. Odlično je, če veste, kje so shranjeni podatki, ki jih potrebujete. Ne deluje dobro, če želite iskati določen vnos.

Recimo, da želite najti datoteko; spomnite se njegovega imena, ne pa tudi mape, ki ste jo shranili. Vaš računalnik lahko išče po imenu datoteke, vendar je pogosto zelo počasen pri izvajanju iskanja, razen če ga uporabljate pred kratkim. In to ob upoštevanju, da so datotečni sistemi shranjeni kot imena datotek in naslovi.

Asociativni pomnilnik, znan tudi kot Content Addressable Memory ali CAM, je zasnovan za iskanje po vsebini. Na žalost je implementacija asociativnega pomnilnika zelo draga. To pomeni, da se uporablja le v nekaj primerih, običajno v vrhunski omrežni opremi. Asociativni pomnilnik imen izhaja iz dejstva, da je strojna izvedba asociativnega programskega polja.

Struktura celice

Asociativni pomnilnik se uporablja samo tam, kjer je potrebna izjemno visoka zmogljivost. Kot tak temelji na SRAM-u in ne na DRAM-u. Kot izhodišče je samo to drago. DRAM uporablja en tranzistor in en kondenzator na bit, SRAM pa uporablja skupno 6 tranzistorjev. Za učinkovito iskanje vsebine pomnilniške celice je vsaka celica spremenjena tako, da ima primerjalno vezje. To doda skupaj še 4 tranzistorje vsaki celici. To pomeni, da je asociativni pomnilnik bistveno manj gost kot SRAM, ki je že tako draga oblika shranjevanja.

Uporaba

Asociativni pomnilnik je drag in optimiziran izključno za iskanje po vsebini. Kot tak se resnično uporablja le v napravah, ki morajo nenehno izvajati to vrsto iskanja; tudi takrat je običajno omejen na vrhunske modele. Na splošno obstajata samo dve glavni mesti, kjer se uporablja asociativni pomnilnik, omrežna stikala in usmerjevalniki.

Omrežna strojna oprema, kot so stikala in usmerjevalniki, mora nuditi visoko zmogljive ravni, da neprekinjeno pretaka več gigabitov omrežnega prometa. Znotraj omrežja se naslovi MAC uporabljajo za usmerjanje prometa. Stikalo bo vedelo, na katera od številnih omrežnih vrat je treba poslati podatke, da bo prišlo do naprave s pravilnim naslovom MAC. Za zagotovitev, da je vsak paket poslan na pravo mesto, se poišče njegov ciljni naslov MAC. V tradicionalni pomnilniški obliki bi to trajalo nekaj časa, kar bi povečalo zakasnitev vsake omrežne komunikacije. Z asociativnim spominom je lahko to iskanje veliko hitrejše.

Binarno in trojno

Večina asociativnega pomnilnika temelji na binarnem, nekateri pa na trojnem. Ternarna asociativna spominska celica je podobna binarni, opisani zgoraj. Namesto ene celice SRAM pa ima dve. Oba skupaj imata štiri dodatne tranzistorje, potrebne za izvedbo primerjave. Zaradi tega je ternarni asociativni pomnilnik seveda še dražji od njegovega binarnega bratranca, za kaj se torej uporablja?

Drugi bit trojne celice označuje »skrb« ali »ne skrbi«. To celici in splošni funkciji iskanja doda tretje stanje. Zdaj lahko shrani 1, 0 ali X za »ne skrbi«. To je še posebej uporabno pri delu z omrežnimi usmerjevalnimi tabelami, ki temeljijo na podomrežnih maskah spremenljive dolžine, in s seznami za nadzor dostopa. Morda imate več pozitivnih odgovorov na en iskalni naslov v obeh. Znotraj obeh si želite upoštevati le najbolj natančna navodila.

Kot tako se lahko iskanje 192.168.20.19 ujema z naslednjima praviloma 192.168.20.16/28 in 192.168.0.0/16. Če bi izvajali standardno binarno iskanje, bi morali opraviti izračune, da bi preverili, ali naslov spada v navedena obsega naslovov. Vendar pa lahko s ternarno logiko ugotovite, ali se vaš iskalni naslov ujema z 192.168.xx v eni sami operaciji. Ugotovite lahko tudi, da je ujemanje /28 veliko natančnejše od ujemanja /16, ker je manj bitov »ne zanima me«. To vam omogoča prednostno uporabo povezanih pravil za nadzor dostopa.

Ker je ternarni asociativni pomnilnik še dražji od binarne oblike, je še manj pogost. Na splošno ga je mogoče najti le v vrhunskih usmerjevalnikih in večplastnih stikalih.

Zaključek

Asociativni spomin je oblika spomina, ki deluje zelo drugače od standardnega spomina. Namesto da bi zahteval podatke, shranjene na določenem naslovu, naenkrat preišče celoten pomnilnik za ujemanja z iskalnim izrazom. Da bi to dosegli z visoko zmogljivostjo, pomnilniške celice temeljijo na modificirani obliki SRAM, ki vsebuje eno ali dve celici SRAM v kombinaciji s štirimi dodatnimi tranzistorji, ki se uporabljajo za izvajanje bitne primerjalne logike.

Posamezne celice SRAM se uporabljajo v binarnem asociativnem pomnilniku, medtem ko se dve celici SRAM uporabljata v ternarnem asociativnem pomnilniku. Trojna različica omogoča shranjevanje tretje vrednosti, običajno 1, 0 ali »ne skrbi«. To omogoča vsebini, da pokaže, da bi se morala ujemati, tudi če iskalni izraz ni natančen.

Ker asociativne pomnilniške celice temeljijo na dragem SRAM-u, so drage, pri čemer je ternarni najdražji. Zaradi tega in njegove strukture, ki je izrecno optimizirana za iskanje po vsebini, se asociativni pomnilnik v večini naprav ne uporablja.

Imajo ga samo naprave, ki jim to še posebej koristi in kjer zmogljivost odtehta vnaprejšnje stroške. Kot takega se običajno nahaja izključno v omrežni strojni opremi poslovnega razreda. Znotraj te nastavitve se pogosto imenuje CAM in TCAM za Content Addressable Memory oziroma Ternary Content Addressable Memory.


Kako klonirati trdi disk

Kako klonirati trdi disk

V sodobni digitalni dobi, kjer so podatki dragocena dobrina, je lahko kloniranje trdega diska v sistemu Windows za mnoge ključen postopek. Ta obsežen vodnik

Kako popraviti, da se gonilnik WUDFRd ni uspel naložiti v sistemu Windows 10?

Kako popraviti, da se gonilnik WUDFRd ni uspel naložiti v sistemu Windows 10?

Ali se med zagonom računalnika soočate s sporočilom o napaki, ki pravi, da se gonilnik WUDFRd ni uspel naložiti v vaš računalnik?

Kako popraviti kodo napake NVIDIA GeForce Experience 0x0003

Kako popraviti kodo napake NVIDIA GeForce Experience 0x0003

Ali imate na namizju izkušnje s kodo napake NVIDIA GeForce 0x0003? Če je odgovor pritrdilen, preberite blog in poiščite, kako hitro in enostavno odpraviti to napako.

Kaj je SMPS?

Kaj je SMPS?

Preberite, kaj je SMPS in pomen različnih ocen učinkovitosti, preden izberete SMPS za svoj računalnik.

Kaj je varnost na podlagi izolacije?

Kaj je varnost na podlagi izolacije?

Poglobili se bomo v temo, ki postaja vse bolj pomembna v svetu kibernetske varnosti: varnost, ki temelji na izolaciji. Ta pristop k

Kako uporabljati Auto Clicker za Chromebook

Kako uporabljati Auto Clicker za Chromebook

Danes sem se nameraval poglobiti v orodje, ki lahko avtomatizira ponavljajoča se opravila klikanja na vašem Chromebooku: Auto Clicker. To orodje vam lahko prihrani čas in

Roomba se ustavi, zatakne in obrne – popravi

Roomba se ustavi, zatakne in obrne – popravi

Odpravite težavo, ko se vaš robotski sesalnik Roomba ustavi, zatakne in se nenehno obrača.

Zakaj se moj Chromebook ne vklopi

Zakaj se moj Chromebook ne vklopi

Pridobite odgovore na vprašanje Zakaj se moj Chromebook ne vklopi? V tem koristnem vodniku za uporabnike Chromebooka.

Kako spremeniti grafične nastavitve na Steam Deck

Kako spremeniti grafične nastavitve na Steam Deck

Steam Deck ponuja robustno in vsestransko igralno izkušnjo na dosegu roke. Vendar, da optimizirate svoje igranje in zagotovite najboljše možno

Kako spremeniti številčnico ure na Fitbit Versa 4

Kako spremeniti številčnico ure na Fitbit Versa 4

Brezplačno spremenite številčnico ure svojega Fitbit Versa 4, da bo vaša ura vsak dan drugačna. Poglejte, kako hitro in enostavno je.