Co je to asociativní paměť?

Většina paměti je uložena a je k ní přistupováno stejným způsobem. Obsah je uložen a poté načten pomocí adresy paměti. To je obecně užitečné a téměř univerzálně používané. Bohužel s tímto stylem ukládání je drobný problém. Je skvělé, pokud víte, kde jsou uložena potřebná data. Pokud chcete hledat konkrétní položku, nefunguje to dobře.

Řekněme, že chcete najít soubor; pamatujete si jeho název, ale ne, kterou složku jste uložili. Váš počítač může vyhledat název souboru, ale pokud jste jej v poslední době nepoužili, je při vyhledávání často velmi pomalý. A to s přihlédnutím k tomu, že systémy souborů jsou uloženy jako názvy souborů a adresy.

Asociativní paměť, známá také jako Content Addressable Memory nebo CAM, je navržena tak, aby byla prohledávána podle jejího obsahu. Bohužel implementace asociativní paměti je velmi drahá. To znamená, že se používá pouze v několika případech, obvykle u špičkového síťového hardwaru. Asociativní jmenná paměť pochází ze skutečnosti, že se jedná o hardwarovou implementaci asociativního softwarového pole.

Struktura buňky

Asociativní paměť se používá pouze tam, kde je potřeba extrémně vysoký výkon. Jako takový je založen spíše na SRAM než na DRAM. Jako výchozí bod je to samo o sobě drahé. DRAM používá jeden tranzistor a jeden kondenzátor na bit a SRAM používá celkem 6 tranzistorů. Pro efektivní vyhledávání obsahu paměťové buňky je každá buňka upravena tak, aby měla srovnávací obvody. To přidá celkem 4 další tranzistory do každého článku. To znamená, že asociativní paměť je výrazně méně hustá než SRAM, což je již drahá forma úložiště.

Používání

Asociativní paměť je drahá a optimalizovaná výhradně pro vyhledávání podle obsahu. Jako takový se skutečně používá pouze v zařízeních, která neustále potřebují provádět tento typ vyhledávání; i v tomto případě se obvykle omezuje na špičkové modely. Obecně existují pouze dvě hlavní místa, kde se používá asociativní paměť, síťové přepínače a směrovače.

Síťový hardware, jako jsou přepínače a směrovače, musí nabízet vysoce výkonné úrovně, aby neustále proudil několik gigabitů síťového provozu. V rámci sítě se ke směrování provozu používají adresy MAC. Přepínač bude vědět, do kterého z mnoha síťových portů je třeba odeslat data, aby se dostal do zařízení se správnou MAC adresou. Aby bylo zajištěno, že každý paket bude odeslán na správné místo, vyhledá se jeho cílová MAC adresa. V tradičním formátu paměti by to nějakou dobu zabralo a přidalo by to ke každé síťové komunikaci latenci. S asociativní pamětí může být vyhledávání mnohem rychlejší.

Binární a ternární

Většina asociativní paměti je založena na binárních, ale některé jsou založeny na ternárních. Ternární asociativní paměťová buňka je podobná té binární popsané výše. Místo jednoho článku SRAM má však dva. Oba pak mají dohromady čtyři další tranzistory potřebné k provedení srovnání. To samozřejmě činí ternární asociativní paměť ještě dražší než její binární bratranec, tak k čemu se používá?

Druhý bit ternární buňky označuje „starat se“ nebo „nestarat se“. To přidá třetí stav do buňky a celkové vyhledávací funkce. Nyní může uložit 1, 0 nebo X, protože je to jedno. To je užitečné zejména při práci se síťovými směrovacími tabulkami založenými na maskách podsítě s proměnnou délkou a se seznamy řízení přístupu. V obou těchto případech můžete mít více kladných odpovědí na jednu vyhledávací adresu. V obou si chcete vzít na vědomí pouze ten nejpřesnější pokyn.

Vyhledávání 192.168.20.19 jako takové může odpovídat následujícím pravidlům 192.168.20.16/28 a 192.168.0.0/16. Pokud byste prováděli standardní binární vyhledávání, museli byste provést výpočty, abyste ověřili, že adresa spadá do zadaného rozsahu adres. Pomocí ternární logiky však můžete určit, zda vaše vyhledávací adresa odpovídá 192.168.xx v jediné operaci. Můžete také určit, že shoda /28 je mnohem přesnější než shoda /16, protože je zde méně bitů „nezajímá mě to“. To vám umožní přednostně aplikovat související pravidla řízení přístupu.

Protože je ternární asociativní paměť ještě dražší než binární forma, je ještě méně běžná. Obecně jej lze nalézt pouze v špičkových směrovačích a vícevrstvých přepínačích.

Závěr

Asociativní paměť je forma paměti, která funguje velmi odlišně od standardní paměti. Namísto požadavku na data uložená na konkrétní adrese, prohledává celou paměť najednou a hledá shody s hledaným výrazem. Aby toho bylo dosaženo s vysokou úrovní výkonu, jsou paměťové buňky založeny na upravené formě SRAM obsahující jednu nebo dvě buňky SRAM kombinované se čtyřmi extra tranzistory používanými k provádění logiky porovnání bitů.

Jednotlivé buňky SRAM se používají v binární asociativní paměti, zatímco dvě buňky SRAM se používají v ternární asociativní paměti. Ternární varianta umožňuje uložit třetí hodnotu, obvykle 1, 0 nebo „je mi to jedno“. To umožňuje obsahu označit, že by se měl shodovat, i když hledaný výraz není přesný.

Protože jsou asociativní paměťové buňky založeny na drahé SRAM, jsou nákladné, přičemž ternární jsou nejdražší. Vzhledem k tomu a její struktuře, která je explicitně optimalizována pro vyhledávání podle obsahu, se asociativní paměť ve většině zařízení nepoužívá.

Používají se pouze zařízení, která z něj mají mimořádný prospěch a kde výkon převažuje nad počátečními náklady. Jako takový se obvykle vyskytuje výhradně v síťovém hardwaru podnikové třídy. V rámci tohoto nastavení se často označuje jako CAM a TCAM pro paměť adresovatelnou obsahu a paměť s adresou ternárního obsahu.


Jak klonovat pevný disk

Jak klonovat pevný disk

V moderním digitálním věku, kde jsou data cenným aktivem, může být klonování pevného disku v systému Windows pro mnohé zásadním procesem. Tento komplexní průvodce

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Setkáváte se při spouštění počítače s chybovou zprávou, která říká, že se nepodařilo načíst ovladač WUDFRd do vašeho počítače?

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Máte na ploše zkušenosti s chybovým kódem 0x0003 NVIDIA GeForce? Pokud ano, přečtěte si blog a zjistěte, jak tuto chybu rychle a snadno opravit.

Co je SMPS?

Co je SMPS?

Než si vyberete SMPS pro svůj počítač, zjistěte si, co je SMPS, a význam různých hodnocení účinnosti.

Proč se můj Chromebook nezapne

Proč se můj Chromebook nezapne

Získejte odpovědi na otázku Proč se můj Chromebook nezapíná? V této užitečné příručce pro uživatele Chromebooků.

Jak nahlásit phishingové podvody společnosti Google

Jak nahlásit phishingové podvody společnosti Google

V této příručce se dozvíte, jak nahlásit podvodníka společnosti Google a zabránit mu v podvádění ostatních.

Roomba se zastaví, přilepí a otočí – oprava

Roomba se zastaví, přilepí a otočí – oprava

Vyřešte problém, kdy se váš robotický vysavač Roomba zastaví, zasekne a stále se otáčí.

Jak změnit nastavení grafiky na Steam Deck

Jak změnit nastavení grafiky na Steam Deck

Steam Deck nabízí robustní a všestranný herní zážitek přímo na dosah ruky. Chcete-li však optimalizovat své hraní a zajistit to nejlepší možné

Co je zabezpečení založené na izolaci?

Co je zabezpečení založené na izolaci?

Chtěli jsme se ponořit do tématu, které je ve světě kybernetické bezpečnosti stále důležitější: zabezpečení založené na izolaci. Tento přístup k

Jak používat Auto Clicker pro Chromebook

Jak používat Auto Clicker pro Chromebook

Dnes jsme se chtěli ponořit do nástroje, který dokáže automatizovat opakované klikání na vašem Chromebooku: Auto Clicker. Tento nástroj vám může ušetřit čas a