Mis on assotsiatiivne mälu?

Enamik mälu salvestatakse ja sellele pääseb juurde samal viisil. Sisu salvestatakse ja seejärel tuuakse mäluaadressi abil alla. See on üldiselt kasulik ja seda kasutatakse peaaegu kõikjal. Kahjuks on selle salvestusstiiliga väike probleem. See on suurepärane, kui teate, kuhu vajalikud andmed salvestatakse. See ei toimi hästi, kui soovite otsida konkreetset kirjet.

Oletame, et soovite leida faili; mäletate selle nime, kuid mitte salvestatud kausta. Teie arvuti võib failinime otsida, kuid kui te pole seda hiljuti kasutanud, on see sageli otsingu tegemisel üsna aeglane. Ja see võtab arvesse, et failisüsteemid salvestatakse failinimede ja aadressidena.

Assotsiatiivne mälu, tuntud ka kui Content Addressable Memory ehk CAM, on loodud otsimiseks selle sisu järgi. Kahjuks on assotsiatiivse mälu rakendamine väga kallis. See tähendab, et seda kasutatakse ainult mõnel juhul, tavaliselt tipptasemel võrguriistvaras. Assotsiatiivne nimemälu tuleneb asjaolust, et see on assotsiatiivse tarkvara massiivi riistvaraline teostus.

Raku struktuur

Assotsiatiivset mälu kasutatakse ainult siis, kui on vaja väga suurt jõudlust. Sellisena põhineb see pigem SRAM-il kui DRAM-il. Alustuseks teeb see ainuüksi selle kulukaks. DRAM kasutab ühte transistori ja ühte kondensaatorit biti kohta ning SRAM kasutab kokku 6 transistorit. Mäluelemendi sisu tõhusaks otsimiseks muudetakse iga rakku võrdlusahelaga. See lisab igasse lahtrisse kokku veel 4 transistorit. See tähendab, et assotsiatiivne mälu on oluliselt väiksem kui SRAM, mis on juba kallis salvestusvorm.

Kasutamine

Assotsiatiivne mälu on kallis ja optimeeritud ainult sisupõhiste otsingute sobitamiseks. Sellisena kasutatakse seda ainult seadmetes, mis vajavad pidevalt seda tüüpi otsinguid; isegi siis piirdub see tavaliselt tippmudelitega. Üldiselt kasutatakse assotsiatiivset mälu ainult kahes peamises kohas: võrgulülitid ja ruuterid.

Võrguriistvara, nagu lülitid ja ruuterid, peab pakkuma suure jõudlusega taset, et mitu gigabitist võrguliiklust pidevalt voolata. Võrgusiseselt kasutatakse liikluse suunamiseks MAC-aadresse. Lüliti teab, millisesse paljudest võrguportidest andmed tuleb saata, et see jõuaks õige MAC-aadressiga seadmesse. Iga paketi õigesse kohta saatmise tagamiseks otsitakse selle sihtkoha MAC-aadressi. Traditsioonilises mäluvormingus võtaks see veidi aega, suurendades iga võrgusuhtluse latentsust. Assotsiatiivse mälu abil võib see otsing olla palju kiirem.

Binaarne ja kolmeosaline

Enamik assotsiatiivset mälu põhineb binaarsel, kuid mõned põhinevad kolmendmäludel. Kolmekomponentne assotsiatiivne mälurakk on sarnane ülalkirjeldatud binaarsele. Ühe SRAM-i raku asemel on sellel aga kaks. Mõlemal koos on neli lisatransistorit, mida on võrdluse tegemiseks vaja. See muudab kolmekomponendilise assotsiatiivse mälu muidugi veelgi kallimaks kui tema binaarne sugulane, milleks seda siis kasutatakse?

Kolmiklahtri teine ​​bitt näitab "hoolitsus" või "ei hooli". See lisab lahtrile ja üldisele otsingufunktsioonile kolmanda oleku. Nüüd saab see salvestada 1, 0 või X, et pole vahet. See on eriti kasulik muudetava pikkusega alamvõrgumaskidel põhinevate võrgu marsruutimistabelite ja juurdepääsukontrolli loendite puhul. Mõlemal juhul võib ühele otsinguaadressile olla mitu positiivset vastust. Mõlema puhul tahate arvestada ainult kõige täpsema juhisega.

Sellisena võib otsing 192.168.20.19 vastata järgmistele reeglitele 192.168.20.16/28 ja 192.168.0.0/16. Kui tegite standardset kahendotsingut, peate tegema arvutusi, et kontrollida, kas aadress jääb määratud aadressivahemikesse. Kolmekomponendilise loogika abil saate aga ühe toiminguga kindlaks teha, kas teie otsinguaadress vastab 192.168.xx-le. Samuti saate määrata, et vaste /28 on palju täpsem kui vaste /16, kuna „ei hooli” bitte on vähem. See võimaldab teil eelistatult rakendada seotud juurdepääsukontrolli reegleid.

Kuna kolmekomponentne assotsiatiivne mälu on isegi kallim kui binaarne vorm, on see veelgi vähem levinud. Seda võib üldiselt leida ainult tipptasemel ruuterites ja mitmekihilistes lülitites.

Järeldus

Assotsiatiivne mälu on mälu vorm, mis töötab tavalisest mälust väga erinevalt. Selle asemel, et taotleda kindlale aadressile salvestatud andmeid, otsib see ühe korraga kogu mälust vasteid otsinguterminile. Selle saavutamiseks suure jõudlusega tasemetega põhinevad mäluelemendid SRAM-i modifitseeritud vormil, mis sisaldab ühte või kahte SRAM-i rakku, mis on kombineeritud nelja lisatransistoriga, mida kasutatakse bittide võrdlusloogika teostamiseks.

Binaarses assotsiatiivses mälus kasutatakse üksikuid SRAM-i rakke, kolmepoolses assotsiatiivses mälus aga kahte SRAM-i rakku. Kolmikvariant võimaldab salvestada kolmanda väärtuse, tavaliselt 1, 0 või "ei hooli". See võimaldab sisul näidata, et see peaks ühtima, isegi kui otsingutermin pole täpne.

Kuna assotsiatiivsed mälurakud põhinevad kallil SRAM-il, on need kulukad, kusjuures kolmekomponentsed on kõige kulukamad. Selle ja selle struktuuri tõttu, mis on otseselt sisu järgi otsimiseks optimeeritud, assotsiatiivset mälu enamikus seadmetes ei kasutata.

Seda pakuvad ainult need seadmed, mis sellest eriti kasu saavad ja mille jõudlus kaalub üles esialgsed kulud. Sellisena leidub seda tavaliselt eranditult ettevõtte tasemel võrguriistvaras. Selle seadistuse piires nimetatakse seda sageli CAM-iks ja TCAM-iks, vastavalt sisu aadressiga mälu ja kolmepoolse sisu aadressiga mälu jaoks.


Mis on SMPS?

Mis on SMPS?

Enne oma arvutile SMPS-i valimist uurige, mis on SMPS ja mida tähendab erinevate tõhususe reiting.

Mis on isolatsioonipõhine turvalisus?

Mis on isolatsioonipõhine turvalisus?

Kavatsesin süveneda teemasse, mis muutub küberturvalisuse maailmas üha olulisemaks: isolatsioonipõhine turvalisus. See lähenemine

Kuidas kasutada automaatset klikkerit Chromebooki jaoks

Kuidas kasutada automaatset klikkerit Chromebooki jaoks

Täna kavatsesime süveneda tööriista, mis suudab teie Chromebookis korduvaid klõpsamisi automatiseerida: automaatset klõpsurit. See tööriist võib säästa teie aega ja

Roomba peatub, jääb kinni ja pöörab ümber – paranda

Roomba peatub, jääb kinni ja pöörab ümber – paranda

Lahendage probleem, kus teie Roomba robottolmuimeja peatub, kinni jääb ja pöörleb pidevalt ümber.

Miks minu Chromebook ei lülitu sisse?

Miks minu Chromebook ei lülitu sisse?

Hankige vastused küsimusele, miks minu Chromebook ei lülitu sisse? Selles kasulikus juhendis Chromebooki kasutajatele.

Kuidas muuta Steam Decki graafikaseadeid

Kuidas muuta Steam Decki graafikaseadeid

Steam Deck pakub jõulist ja mitmekülgset mängukogemust otse teie käeulatuses. Kuid selleks, et optimeerida oma mängimist ja tagada parim võimalik

Kuidas muuta Fitbit Versa 4 kella numbrit

Kuidas muuta Fitbit Versa 4 kella numbrit

Muutke oma Fitbit Versa 4 kella sihverplaati, et anda oma kellale iga päev tasuta uus välimus. Vaadake, kui kiire ja lihtne see on.

Kuidas Googleile andmepüügipettustest teatada

Kuidas Googleile andmepüügipettustest teatada

Sellest juhendist leiate teavet selle kohta, kuidas petturist Google'ile teatada, et vältida teiste petmist.

Kuidas eemaldada GPU Windowsi arvutist 2023. aastal

Kuidas eemaldada GPU Windowsi arvutist 2023. aastal

Kas peate GPU arvutist eemaldama? Liituge minuga ja selgitan selles samm-sammulises juhendis, kuidas GPU arvutist eemaldada.

Mis on õlasurf?

Mis on õlasurf?

Õlas surfamine on sotsiaalse manipuleerimise rünnak. See hõlmab ründajat, kes kogub teavet teie ekraani vaadates.