Cosè la memoria associativa?

La maggior parte della memoria viene memorizzata e vi si accede allo stesso modo. Il contenuto viene salvato e quindi recuperato utilizzando un indirizzo di memoria. Questo è generalmente utile ed è quasi universalmente utilizzato. Sfortunatamente, c'è un piccolo problema con questo stile di archiviazione. È eccellente se sai dove sono archiviati i dati di cui hai bisogno. Non funziona bene se si desidera cercare una voce specifica.

Diciamo che vuoi trovare un file; ricordi il suo nome ma non quale cartella hai salvato. Il tuo computer può cercare il nome del file, ma a meno che tu non lo abbia utilizzato di recente, spesso è piuttosto lento nell'eseguire la ricerca. E questo tenendo conto del fatto che i file system sono archiviati come nomi e indirizzi di file.

La memoria associativa, nota anche come Content Addressable Memory, o CAM, è progettata per essere ricercata in base al suo contenuto. Sfortunatamente, l'implementazione della memoria associativa è molto costosa. Ciò significa che viene utilizzato solo in pochi casi, in genere in hardware di rete di fascia alta. La memoria del nome associativo deriva dal fatto che si tratta di un'implementazione hardware di un array software associativo.

Struttura cellulare

La memoria associativa viene utilizzata solo dove sono necessarie prestazioni estremamente elevate. In quanto tale, si basa su SRAM piuttosto che su DRAM. Come punto di partenza, questo da solo lo rende costoso. La DRAM utilizza un transistor e un condensatore per bit e la SRAM utilizza un totale di 6 transistor. Per cercare in modo efficiente il contenuto di una cella di memoria, ogni cella viene modificata per avere circuiti di confronto. Ciò aggiunge un totale di altri 4 transistor a ciascuna cella. Ciò significa che la memoria associativa è significativamente meno densa della SRAM, che è già una costosa forma di archiviazione.

Utilizzo

La memoria associativa è costosa e ottimizzata esclusivamente per la corrispondenza di ricerche basate sul contenuto. In quanto tale, è realmente utilizzato solo nei dispositivi che devono costantemente eseguire questo tipo di ricerca; anche allora, è tipicamente limitato ai modelli di fascia alta. Generalmente ci sono solo due luoghi principali in cui viene utilizzata la memoria associativa, switch di rete e router.

L'hardware di rete come switch e router deve offrire livelli di prestazioni elevate per mantenere costantemente il flusso di più gigabit di traffico di rete. All'interno di una rete, gli indirizzi MAC vengono utilizzati per instradare il traffico. Uno switch saprà a quale delle sue numerose porte di rete devono essere inviati i dati in modo che arrivi al dispositivo con l'indirizzo MAC corretto. Per garantire che ogni pacchetto venga inviato nel posto giusto, viene cercato il suo indirizzo MAC di destinazione. In un formato di memoria tradizionale, ciò richiederebbe del tempo, aggiungendosi alla latenza di ogni comunicazione di rete. Con la memoria associativa, quella ricerca può essere molto più veloce.

binario e ternario

La maggior parte della memoria associativa si basa sul binario, ma alcuni si basano sul ternario. Una cella di memoria associativa ternaria è simile a quella binaria sopra descritta. Invece di avere una cella SRAM, tuttavia, ne ha due. Entrambi poi insieme hanno i quattro transistor extra necessari per eseguire il confronto. Questo, ovviamente, rende la memoria associativa ternaria ancora più costosa della sua cugina binaria, quindi a cosa serve?

Il secondo bit della cella ternaria indica "cura" o "non importa". Ciò aggiunge un terzo stato alla cella e alla funzione di ricerca complessiva. Ora può memorizzare un 1, 0 o X per non importa. Ciò è particolarmente utile quando si ha a che fare con tabelle di instradamento di rete basate su subnet mask di lunghezza variabile e con liste di controllo degli accessi. Potresti avere più risposte positive a un singolo indirizzo di ricerca in entrambi. All'interno di entrambi, vuoi solo prendere nota delle istruzioni più precise.

Pertanto, una ricerca di 192.168.20.19 potrebbe corrispondere alle seguenti regole 192.168.20.16/28 e 192.168.0.0/16. Se stavi eseguendo una ricerca binaria standard, dovresti eseguire calcoli per verificare che l'indirizzo rientri negli intervalli di indirizzi specificati. Con la logica ternaria, tuttavia, puoi determinare se il tuo indirizzo di ricerca corrisponde a 192.168.xx in un'unica operazione. Puoi anche determinare che la corrispondenza /28 è molto più precisa della corrispondenza /16 perché ci sono meno bit "non importa". Ciò consente di applicare preferenzialmente le relative regole di controllo degli accessi.

Poiché la memoria associativa ternaria è ancora più costosa della forma binaria, è ancora meno comune. Generalmente si trova solo nei router di fascia alta e negli switch multistrato.

Conclusione

La memoria associativa è una forma di memoria che funziona in modo molto diverso dalla memoria standard. Anziché richiedere i dati memorizzati in un indirizzo specifico, cerca in un'unica volta in tutta la memoria le corrispondenze con un termine di ricerca. Per raggiungere questo obiettivo con livelli di prestazioni elevate, le celle di memoria si basano su una forma modificata di SRAM con una o due celle SRAM combinate con quattro transistor aggiuntivi utilizzati per eseguire la logica di confronto dei bit.

Le singole celle SRAM vengono utilizzate nella memoria associativa binaria, mentre due celle SRAM vengono utilizzate nella memoria associativa ternaria. La variante ternaria consente di memorizzare un terzo valore, tipicamente 1, 0 o "non importa". Ciò consente al contenuto di indicare che deve corrispondere anche se il termine di ricerca non è preciso.

Poiché le celle di memoria associativa si basano sulla costosa SRAM, sono costose, con il ternario che è il più costoso. A causa di ciò e della sua struttura ottimizzata esplicitamente per la ricerca per contenuto, la memoria associativa non viene utilizzata nella maggior parte dei dispositivi.

Solo i dispositivi che ne traggono particolare vantaggio e in cui le prestazioni superano il costo iniziale lo caratterizzano. In quanto tale, si trova in genere esclusivamente nell'hardware di rete di livello aziendale. All'interno di tale impostazione, viene spesso indicato come CAM e TCAM, rispettivamente per Content Addressable Memory e Ternary Content Addressable Memory.



Leave a Comment

Come clonare un disco rigido

Come clonare un disco rigido

Nell'era digitale moderna, in cui i dati sono una risorsa preziosa, la clonazione di un disco rigido su Windows può essere un processo cruciale per molti. Questa guida completa

Come risolvere il problema con il caricamento del driver WUDFRd su Windows 10?

Come risolvere il problema con il caricamento del driver WUDFRd su Windows 10?

Stai riscontrando il messaggio di errore durante l'avvio del computer che dice che il driver WUDFRd non è stato caricato sul tuo computer?

Come risolvere il codice di errore NVIDIA GeForce Experience 0x0003

Come risolvere il codice di errore NVIDIA GeForce Experience 0x0003

Hai riscontrato l'esperienza NVIDIA GeForce con il codice di errore 0x0003 sul tuo desktop? Se sì, leggi il blog per scoprire come correggere questo errore in modo semplice e veloce.

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

Come rimuovere una GPU da un PC Windows nel 2023

Come rimuovere una GPU da un PC Windows nel 2023

Devi rimuovere la GPU dal tuo PC? Unisciti a me mentre ti spiego come rimuovere una GPU dal tuo PC in questa guida dettagliata.

Come installare ununità SSD NVMe su desktop e laptop

Come installare ununità SSD NVMe su desktop e laptop

Hai acquistato un nuovo SSD NVMe M.2 ma non sai come installarlo? Continua a leggere per sapere come installare un'unità SSD NVMe su laptop o desktop.

Cosè una bomba logica?

Cosè una bomba logica?

Una bomba logica è un incidente di sicurezza in cui un utente malintenzionato organizza un'azione ritardata. Continua a leggere per scoprire di più.

Che cosè Stuxnet?

Che cosè Stuxnet?

Stuxnet era un worm autopropagante. È stato il primo utilizzo di un'arma informatica e la prima istanza di malware.

Cosè un hacker etico?

Cosè un hacker etico?

Un hacker etico è un hacker che agisce entro i limiti della legge. Continua a leggere per saperne di più sull'argomento.

Che cosè la crittografia simmetrica?

Che cosè la crittografia simmetrica?

Ci sono molte parti diverse della crittografia. Se vuoi crittografare alcuni dati, ci sono due tipi di algoritmi che puoi usare: symmetric