Čo je to asociatívna pamäť?

Väčšina pamäte je uložená a prístupná rovnakým spôsobom. Obsah sa uloží a potom načíta pomocou adresy pamäte. To je všeobecne užitočné a používa sa takmer všade. Bohužiaľ, s týmto štýlom ukladania je malý problém. Je vynikajúce, ak viete, kde sú uložené údaje, ktoré potrebujete. Nefunguje dobre, ak chcete vyhľadať konkrétny záznam.

Povedzme, že chcete nájsť súbor; pamätáte si jeho názov, ale nie to, ktorý priečinok ste uložili. Váš počítač dokáže vyhľadať názov súboru, ale pokiaľ ste ho nepoužili nedávno, vyhľadávanie je často dosť pomalé. A to berúc do úvahy, že súborové systémy sú uložené ako názvy súborov a adresy.

Asociačná pamäť, známa aj ako Content Addressable Memory alebo CAM, je navrhnutá tak, aby sa dala vyhľadávať podľa jej obsahu. Bohužiaľ, implementácia asociatívnej pamäte je veľmi drahá. To znamená, že sa používa iba v niekoľkých prípadoch, zvyčajne v špičkovom sieťovom hardvéri. Asociatívna pamäť názvov pochádza zo skutočnosti, že ide o hardvérovú implementáciu asociatívneho softvérového poľa.

Bunková štruktúra

Asociačná pamäť sa používa len tam, kde je potrebný extrémne vysoký výkon. Ako taký je založený skôr na SRAM ako na DRAM. Ako východiskový bod, už len toto ho robí drahým. DRAM používa jeden tranzistor a jeden kondenzátor na bit a SRAM používa celkovo 6 tranzistorov. Na efektívne vyhľadávanie obsahu pamäťovej bunky je každá bunka upravená tak, aby mala porovnávacie obvody. To pridá celkom 4 ďalšie tranzistory do každej bunky. To znamená, že asociatívna pamäť je výrazne menej hustá ako SRAM, čo je už drahá forma ukladania.

Použitie

Asociačná pamäť je drahá a optimalizovaná výhradne na vyhľadávanie podľa obsahu. Ako taký sa skutočne používa iba v zariadeniach, ktoré neustále potrebujú vykonávať tento typ vyhľadávania; aj vtedy sa zvyčajne obmedzuje na špičkové modely. Vo všeobecnosti existujú iba dve hlavné miesta, kde sa používa asociatívna pamäť, sieťové prepínače a smerovače.

Sieťový hardvér, ako sú prepínače a smerovače, musí ponúkať vysokú úroveň výkonu, aby neustále prúdil niekoľko gigabitov sieťovej prevádzky. V rámci siete sa na smerovanie prevádzky používajú adresy MAC. Prepínač bude vedieť, na ktorý z jeho mnohých sieťových portov je potrebné odoslať údaje, aby sa dostal do zariadenia so správnou MAC adresou. Aby sa zabezpečilo, že každý paket bude odoslaný na správne miesto, vyhľadá sa jeho cieľová MAC adresa. V tradičnom formáte pamäte by to nejaký čas trvalo, čím by sa zvýšila latencia každej sieťovej komunikácie. S asociatívnou pamäťou môže byť vyhľadávanie oveľa rýchlejšie.

Binárne a ternárne

Väčšina asociatívnej pamäte je založená na binárnej pamäti, ale niektoré sú založené na ternárnej pamäti. Ternárna asociatívna pamäťová bunka je podobná binárnej bunke opísanej vyššie. Namiesto jednej bunky SRAM však má dve. Oba potom majú spolu štyri ďalšie tranzistory potrebné na vykonanie porovnania. To, samozrejme, robí ternárnu asociatívnu pamäť ešte drahšou ako jej binárna príbuzná, tak na čo sa používa?

Druhý bit ternárnej bunky označuje „starostlivosť“ alebo „nestarám sa“. To pridá tretí stav do bunky a celkovej funkcie vyhľadávania. Teraz môže uložiť 1, 0 alebo X, pretože je vám to jedno. To je užitočné najmä pri práci so sieťovými smerovacími tabuľkami založenými na maskách podsiete s premenlivou dĺžkou a so zoznamami riadenia prístupu. V oboch môžete mať viacero pozitívnych odpovedí na jednu vyhľadávaciu adresu. V rámci oboch si chcete všimnúť len ten najpresnejší návod.

Vyhľadávanie 192.168.20.19 ako také môže zodpovedať nasledujúcim pravidlám 192.168.20.16/28 a 192.168.0.0/16. Ak by ste vykonávali štandardné binárne vyhľadávanie, museli by ste vykonať výpočty, aby ste overili, či adresa patrí do určených rozsahov adries. Pomocou ternárnej logiky však môžete v jedinej operácii určiť, či sa vaša vyhľadávacia adresa zhoduje s 192.168.xx. Môžete tiež určiť, že zhoda /28 je oveľa presnejšia ako zhoda /16, pretože existuje menej bitov „nezáleží mi na tom“. To vám umožňuje prednostne aplikovať súvisiace pravidlá riadenia prístupu.

Keďže ternárna asociatívna pamäť je ešte drahšia ako binárna forma, je ešte menej bežná. Vo všeobecnosti ho možno nájsť iba v špičkových smerovačoch a viacvrstvových prepínačoch.

Záver

Asociačná pamäť je forma pamäte, ktorá funguje veľmi odlišne od štandardnej pamäte. Namiesto vyžiadania údajov uložených na konkrétnej adrese, prehľadá naraz celú pamäť a nájde zhody s hľadaným výrazom. Aby sa to dosiahlo s vysokou úrovňou výkonu, sú pamäťové bunky založené na modifikovanej forme SRAM s jednou alebo dvoma bunkami SRAM v kombinácii so štyrmi dodatočnými tranzistormi používanými na vykonávanie logiky porovnávania bitov.

Jednotlivé bunky SRAM sa používajú v binárnej asociatívnej pamäti, zatiaľ čo dve bunky SRAM sa používajú v ternárnej asociatívnej pamäti. Ternárny variant umožňuje uložiť tretiu hodnotu, zvyčajne 1, 0 alebo „je mi to jedno“. To umožňuje obsahu označiť, že by sa mal zhodovať, aj keď hľadaný výraz nie je presný.

Pretože asociatívne pamäťové bunky sú založené na drahej SRAM, sú nákladné, pričom ternárne sú najdrahšie. Kvôli tomuto a jeho štruktúre, ktorá je explicitne optimalizovaná na vyhľadávanie podľa obsahu, sa asociatívna pamäť vo väčšine zariadení nepoužíva.

Disponujú len zariadeniami, ktoré z toho majú obzvlášť úžitok a kde výkon prevažuje nad počiatočnými nákladmi. Ako taký sa zvyčajne nachádza výlučne v sieťovom hardvéri podnikovej triedy. V rámci tohto nastavenia sa často označuje ako CAM a TCAM, pre pamäť s adresovateľnou obsahom a pamäť s adresou s ternárnym obsahom.


Ako klonovať pevný disk

Ako klonovať pevný disk

V modernom digitálnom veku, kde sú údaje cenným aktívom, môže byť klonovanie pevného disku v systéme Windows pre mnohých zásadným procesom. Tento komplexný sprievodca

Ako opraviť načítanie ovládača WUDFRd v systéme Windows 10?

Ako opraviť načítanie ovládača WUDFRd v systéme Windows 10?

Zobrazuje sa vám pri zavádzaní počítača chybové hlásenie, ktoré hovorí, že sa nepodarilo načítať ovládač WUDFRd do vášho počítača?

Ako opraviť kód chyby NVIDIA GeForce Experience 0x0003

Ako opraviť kód chyby NVIDIA GeForce Experience 0x0003

Máte na pracovnej ploche skúsenosti s kódom chyby 0x0003 NVIDIA GeForce? Ak áno, prečítajte si blog a zistite, ako rýchlo a jednoducho opraviť túto chybu.

čo je SMPS?

čo je SMPS?

Pred výberom SMPS pre váš počítač si prečítajte, čo je SMPS a čo znamenajú rôzne hodnotenia účinnosti.

Prečo sa môj Chromebook nezapne

Prečo sa môj Chromebook nezapne

Získajte odpovede na otázku Prečo sa môj Chromebook nezapne? V tejto užitočnej príručke pre používateľov Chromebookov.

Ako nahlásiť phishing spoločnosti Google

Ako nahlásiť phishing spoločnosti Google

V tejto príručke sa dozviete, ako nahlásiť podvodníka spoločnosti Google, aby ste mu zabránili v podvádzaní iných.

Roomba sa zastaví, prilepí a otočí – oprava

Roomba sa zastaví, prilepí a otočí – oprava

Vyriešte problém, kedy sa váš robotický vysávač Roomba zastaví, zasekne a stále sa otáča.

Ako zmeniť nastavenia grafiky na Steam Deck

Ako zmeniť nastavenia grafiky na Steam Deck

Steam Deck ponúka robustný a všestranný herný zážitok priamo na dosah ruky. Aby ste však optimalizovali svoje hranie a zabezpečili to najlepšie možné

Čo je bezpečnosť založená na izolácii?

Čo je bezpečnosť založená na izolácii?

Chceli sme sa ponoriť do témy, ktorá sa vo svete kybernetickej bezpečnosti stáva čoraz dôležitejšou: bezpečnosť založená na izolácii. Tento prístup k

Ako používať Auto Clicker pre Chromebook

Ako používať Auto Clicker pre Chromebook

Dnes sme sa chceli ponoriť do nástroja, ktorý dokáže automatizovať úlohy opakovaného klikania na Chromebooku: Auto Clicker. Tento nástroj vám môže ušetriť čas a