Ce este memoria asociativă?

Cea mai mare parte a memoriei este stocată și accesată în același mod. Conținutul este salvat și apoi preluat folosind o adresă de memorie. Acest lucru este în general util și este folosit aproape universal. Din păcate, există o mică problemă cu acest stil de stocare. Este excelent dacă știți unde sunt stocate datele de care aveți nevoie. Nu funcționează bine dacă doriți să căutați o anumită intrare.

Să presupunem că doriți să găsiți un fișier; vă amintiți numele, dar nu și ce folder ați salvat. Computerul dvs. poate căuta numele fișierului, dar dacă nu l-ați folosit recent, este adesea destul de lent la efectuarea căutării. Și asta ținând cont de faptul că sistemele de fișiere sunt stocate ca nume și adrese de fișiere.

Memoria asociativă, cunoscută și sub numele de Memorie Adresabilă de Conținut sau CAM, este concepută pentru a fi căutată după conținutul său. Din păcate, implementarea memoriei asociative este foarte costisitoare. Aceasta înseamnă că este utilizat doar în câteva cazuri, de obicei în hardware-ul de rețea de ultimă generație. Memoria de nume asociativă provine din faptul că este o implementare hardware a unui tablou software asociativ.

Structura celulară

Memoria asociativă este utilizată numai acolo unde este nevoie de performanțe extrem de ridicate. Ca atare, se bazează mai degrabă pe SRAM decât pe DRAM. Ca punct de plecare, numai acest lucru îl face scump. DRAM folosește un tranzistor și un condensator pe bit, iar SRAM utilizează un total de 6 tranzistori. Pentru a căuta eficient conținutul unei celule de memorie, fiecare celulă este modificată pentru a avea circuite de comparație. Acest lucru adaugă un total de încă 4 tranzistori la fiecare celulă. Aceasta înseamnă că memoria asociativă este semnificativ mai puțin densă decât SRAM, care este deja o formă costisitoare de stocare.

Utilizare

Memoria asociativă este costisitoare și optimizată exclusiv pentru potrivirea căutărilor bazate pe conținut. Ca atare, este folosit cu adevărat doar în dispozitivele care trebuie să efectueze în mod constant acest tip de căutare; chiar și atunci, este de obicei limitat la modelele de ultimă generație. În general, există doar două locuri principale în care se utilizează memoria asociativă, comutatoarele de rețea și routerele.

Hardware-ul de rețea, cum ar fi comutatoarele și routerele, trebuie să ofere niveluri de înaltă performanță pentru a menține mai mulți gigabiți de trafic de rețea în flux constant. În cadrul unei rețele, adresele MAC sunt folosite pentru a direcționa traficul. Un comutator va ști la care dintre multele sale porturi de rețea trebuie trimise datele, astfel încât să ajungă la dispozitivul cu adresa MAC corectă. Pentru a vă asigura că fiecare pachet este trimis în locul potrivit, se caută adresa MAC de destinație. Într-un format de memorie tradițional, asta ar dura ceva timp, adăugând latenței fiecărei comunicări în rețea. Cu memoria asociativă, această căutare poate fi mult mai rapidă.

Binar și Ternar

Majoritatea memoriei asociative se bazează pe binar, dar unele sunt bazate pe ternar. O celulă de memorie asociativă ternară este similară cu cea binară descrisă mai sus. Cu toate acestea, în loc să aibă o singură celulă SRAM, are două. Ambele au împreună cele patru tranzistoare suplimentare necesare pentru a efectua comparația. Acest lucru, desigur, face ca memoria asociativă ternară să fie și mai scumpă decât verișoara ei binară, deci pentru ce este folosită?

Al doilea bit al celulei ternare indică „păsă” sau „nu-mi pasă”. Aceasta adaugă o a treia stare la celulă și la funcția de căutare generală. Acum poate stoca un 1, 0 sau X pentru că nu-ți pasă. Acest lucru este deosebit de util atunci când aveți de-a face cu tabele de rutare a rețelei bazate pe măști de subrețea cu lungime variabilă și cu liste de control al accesului. Este posibil să aveți mai multe răspunsuri pozitive la o singură adresă de căutare în ambele. În ambele, doriți doar să luați notă de cele mai precise instrucțiuni.

Ca atare, o căutare pentru 192.168.20.19 poate corespunde următoarelor reguli 192.168.20.16/28 și 192.168.0.0/16. Dacă efectuați o căutare binară standard, ar trebui să efectuați calcule pentru a verifica dacă adresa se încadrează în intervalele de adrese specificate. Cu logica ternară, totuși, puteți determina dacă adresa dvs. de căutare se potrivește cu 192.168.xx într-o singură operațiune. De asemenea, puteți determina că potrivirea /28 este mult mai precisă decât potrivirea /16 deoarece există mai puține biți „nu-mi pasă”. Acest lucru vă permite să aplicați în mod preferențial regulile de control al accesului aferente.

Deoarece memoria asociativă ternară este chiar mai scumpă decât forma binară, este și mai puțin comună. În general, poate fi găsit doar în routerele de top și switch-urile cu mai multe straturi.

Concluzie

Memoria asociativă este o formă de memorie care funcționează foarte diferit de memoria standard. În loc să solicite datele stocate într-o anumită adresă, caută într-o singură mișcare întreaga memorie pentru potriviri cu un termen de căutare. Pentru a realiza acest lucru cu niveluri de înaltă performanță, celulele de memorie se bazează pe o formă modificată de SRAM cu una sau două celule SRAM combinate cu patru tranzistoare suplimentare utilizate pentru a efectua logica de comparare a biților.

Celulele SRAM simple sunt utilizate în memoria asociativă binară, în timp ce două celule SRAM sunt utilizate în memoria asociativă ternară. Varianta ternară permite stocarea unei a treia valori, de obicei 1, 0 sau „nu-mi pasă”. Acest lucru permite conținutului să indice că ar trebui să se potrivească chiar dacă termenul de căutare nu este precis.

Deoarece celulele de memorie asociative se bazează pe SRAM costisitoare, acestea sunt costisitoare, ternarul fiind cel mai costisitor. Din cauza acestui fapt și a structurii sale optimizate în mod explicit pentru căutarea după conținut, memoria asociativă nu este utilizată în majoritatea dispozitivelor.

Doar dispozitivele care beneficiază în mod deosebit de pe urma acestuia și unde performanța depășește costul inițial îl prezintă. Ca atare, se găsește de obicei exclusiv în hardware-ul de rețea de nivel enterprise. În această setare, este adesea denumit CAM și TCAM, pentru Memorie adresabilă conținutului și, respectiv, Memoria adresabilă conținut ternar.



Leave a Comment

Cum se clonează un hard disk

Cum se clonează un hard disk

În era digitală modernă, în care datele sunt un bun valoros, clonarea unui hard disk pe Windows poate fi un proces crucial pentru mulți. Acest ghid cuprinzător

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

În timpul pornirii computerului, vă confruntați cu mesajul de eroare care spune că driverul WUDFRd nu s-a încărcat pe computer?

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Aveți experiența NVIDIA GeForce cu codul de eroare 0x0003 pe desktop? Dacă da, citiți blogul pentru a afla cum să remediați această eroare rapid și ușor.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Cum să eliminați un GPU de pe un computer Windows în 2023

Cum să eliminați un GPU de pe un computer Windows în 2023

Trebuie să eliminați GPU-ul de pe computer? Alăturați-vă pentru a explica cum să eliminați un GPU de pe computer în acest ghid pas cu pas.

Cum se instalează un SSD NVMe pe un desktop și laptop

Cum se instalează un SSD NVMe pe un desktop și laptop

Ați cumpărat un nou SSD NVMe M.2, dar nu știți cum să îl instalez? Citiți mai departe pentru a afla cum să instalați un SSD NVMe pe laptop sau desktop.

Ce este o bombă logică?

Ce este o bombă logică?

O bombă logică este un incident de securitate în care un atacator stabilește o acțiune întârziată. Continuați să citiți pentru a afla mai multe.

Ce este un SoC?

Ce este un SoC?

Dacă v-ați uitat vreodată în interiorul unui turn de PC, puteți vedea că există o mulțime de componente diferite. Laptopul tău obișnuit conține majoritatea componentelor

Ce este criptarea asimetrică?

Ce este criptarea asimetrică?

Algoritmii de criptare asimetrică utilizează două chei distincte. O cheie este folosită pentru criptare, iar cealaltă pentru decriptare.

Steam Deck: Cum se formatează cardul SD

Steam Deck: Cum se formatează cardul SD

Steam Deck vine în trei opțiuni de stocare: eMMC de 64 GB, SSD NVMe de 256 GB și SSD NVMe de 512 GB. În funcție de biblioteca dvs. de jocuri și de dimensiunea jocurilor