Co to jest pamięć asocjacyjna?

Większość pamięci jest przechowywana i dostępna w ten sam sposób. Zawartość jest zapisywana, a następnie pobierana przy użyciu adresu pamięci. Jest to ogólnie przydatne i jest prawie powszechnie używane. Niestety, jest mały problem z tym stylem przechowywania. Świetnie, jeśli wiesz, gdzie są przechowywane potrzebne dane. Nie działa dobrze, jeśli chcesz wyszukać określony wpis.

Powiedzmy, że chcesz znaleźć plik; pamiętasz jego nazwę, ale nie pamiętasz, który folder zapisałeś. Twój komputer może wyszukać nazwę pliku, ale jeśli nie używałeś go ostatnio, wyszukiwanie jest często dość powolne. I to biorąc pod uwagę, że systemy plików są przechowywane jako nazwy plików i adresy.

Pamięć asocjacyjna, znana również jako pamięć adresowalna treści lub CAM, została zaprojektowana tak, aby można ją było przeszukiwać według jej zawartości. Niestety wdrożenie pamięci asocjacyjnej jest bardzo kosztowne. Oznacza to, że jest używany tylko w kilku przypadkach, zwykle w sprzęcie sieciowym wysokiej klasy. Pamięć nazw asocjacyjnych wynika z faktu, że jest to sprzętowa implementacja asocjacyjnej tablicy programowej.

Struktura komórkowa

Pamięć asocjacyjna jest używana tylko tam, gdzie wymagana jest bardzo wysoka wydajność. W związku z tym jest oparty na SRAM, a nie DRAM. Jako punkt wyjścia, samo to czyni go drogim. DRAM wykorzystuje jeden tranzystor i jeden kondensator na bit, a SRAM wykorzystuje łącznie 6 tranzystorów. Aby skutecznie przeszukiwać zawartość komórki pamięci, każda komórka jest modyfikowana tak, aby zawierała obwody porównujące. To dodaje łącznie 4 dodatkowe tranzystory do każdej komórki. Oznacza to, że pamięć asocjacyjna jest znacznie mniej gęsta niż SRAM, która już jest kosztowną formą przechowywania.

Stosowanie

Pamięć asocjacyjna jest kosztowna i zoptymalizowana wyłącznie do dopasowywania wyszukiwań opartych na zawartości. W związku z tym jest naprawdę używany tylko w urządzeniach, które stale muszą przeprowadzać tego typu wyszukiwanie; nawet wtedy jest zwykle ograniczony do modeli z wyższej półki. Zasadniczo istnieją tylko dwa główne miejsca, w których używana jest pamięć asocjacyjna, przełączniki sieciowe i routery.

Sprzęt sieciowy, taki jak przełączniki i routery, musi oferować wysoki poziom wydajności, aby zapewnić ciągły przepływ wielu gigabitów ruchu sieciowego. W sieci adresy MAC są używane do kierowania ruchu. Przełącznik będzie wiedział, do którego z wielu portów sieciowych należy przesłać dane, aby dotarły do ​​urządzenia z prawidłowym adresem MAC. Aby mieć pewność, że każdy pakiet zostanie wysłany we właściwe miejsce, wyszukiwany jest docelowy adres MAC. W tradycyjnym formacie pamięci zajęłoby to trochę czasu, zwiększając opóźnienie każdej komunikacji sieciowej. Dzięki pamięci asocjacyjnej wyszukiwanie to może być znacznie szybsze.

Binarne i trójskładnikowe

Większość pamięci asocjacyjnej jest oparta na systemie binarnym, ale niektóre są oparte na systemie trójskładnikowym. Trójskładnikowa komórka pamięci asocjacyjnej jest podobna do komórki binarnej opisanej powyżej. Jednak zamiast jednej komórki SRAM ma dwie. Oba razem mają cztery dodatkowe tranzystory potrzebne do przeprowadzenia porównania. To oczywiście sprawia, że ​​trójskładnikowa pamięć asocjacyjna jest jeszcze droższa niż jej binarna kuzynka, więc do czego jest używana?

Drugi bit trójskładnikowej komórki wskazuje „troszczę się” lub „nie przejmuj się”. To dodaje trzeci stan do komórki i ogólnej funkcji wyszukiwania. Może teraz przechowywać 1, 0 lub X dla „nie przejmuj się”. Jest to szczególnie przydatne w przypadku tabel routingu sieciowego opartych na maskach podsieci o zmiennej długości oraz list kontroli dostępu. Możesz mieć wiele pozytywnych odpowiedzi na jeden adres wyszukiwania w obu z nich. W obu przypadkach chcesz tylko zanotować najdokładniejsze instrukcje.

W związku z tym wyszukiwanie 192.168.20.19 może pasować do następujących reguł 192.168.20.16/28 i 192.168.0.0/16. Jeśli wykonywałeś standardowe wyszukiwanie binarne, musiałbyś wykonać obliczenia, aby sprawdzić, czy adres mieści się w określonych zakresach adresów. Jednak przy użyciu logiki trójskładnikowej możesz określić, czy adres wyszukiwania pasuje do 192.168.xx w ramach jednej operacji. Można również określić, że dopasowanie /28 jest znacznie dokładniejsze niż dopasowanie /16, ponieważ jest mniej bitów „nieważne”. Pozwala to preferencyjnie zastosować powiązane reguły kontroli dostępu.

Ponieważ trójskładnikowa pamięć asocjacyjna jest jeszcze droższa niż forma binarna, jest jeszcze mniej powszechna. Zasadniczo można go znaleźć tylko w topowych routerach i przełącznikach wielowarstwowych.

Wniosek

Pamięć asocjacyjna to forma pamięci, która działa zupełnie inaczej niż pamięć standardowa. Zamiast żądać danych przechowywanych pod określonym adresem, przeszukuje całą pamięć za jednym razem w celu dopasowania do wyszukiwanego hasła. Aby osiągnąć ten cel przy wysokich poziomach wydajności, komórki pamięci są oparte na zmodyfikowanej formie pamięci SRAM obejmującej jedną lub dwie komórki SRAM połączone z czterema dodatkowymi tranzystorami używanymi do przeprowadzania logiki porównywania bitów.

Pojedyncze komórki SRAM są używane w binarnej pamięci asocjacyjnej, podczas gdy dwie komórki SRAM są używane w potrójnej pamięci asocjacyjnej. Wariant trójskładnikowy umożliwia przechowywanie trzeciej wartości, zazwyczaj 1, 0 lub „nie obchodzi mnie to”. Dzięki temu treść może wskazywać, że powinna pasować, nawet jeśli wyszukiwane hasło nie jest precyzyjne.

Ponieważ komórki pamięci asocjacyjnej są oparte na drogiej pamięci SRAM, są kosztowne, przy czym trójskładnikowe są najbardziej kosztowne. Z tego powodu iz powodu jawnej optymalizacji jej struktury pod kątem wyszukiwania według treści pamięć asocjacyjna nie jest używana w większości urządzeń.

Dostępne są tylko urządzenia, które szczególnie na tym korzystają iw przypadku których wydajność przewyższa koszty początkowe. W związku z tym zwykle występuje wyłącznie w sprzęcie sieciowym klasy korporacyjnej. W ramach tego ustawienia jest często określany jako CAM i TCAM, odpowiednio dla pamięci adresowalnej treści i trójskładnikowej pamięci adresowalnej.



Leave a Comment

Jak sklonować dysk twardy

Jak sklonować dysk twardy

We współczesnej epoce cyfrowej, gdzie dane są cennym zasobem, klonowanie dysku twardego w systemie Windows może być dla wielu kluczowych procesów. Ten obszerny przewodnik

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Czy podczas uruchamiania komputera pojawia się komunikat o błędzie informujący, że nie udało się załadować sterownika WUDFRd na Twój komputer?

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Czy na pulpicie pojawia się błąd NVIDIA GeForce o kodzie 0x0003? Jeśli tak, przeczytaj blog, aby dowiedzieć się, jak szybko i łatwo naprawić ten błąd.

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

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Czy musisz usunąć GPU z komputera? Dołącz do mnie, gdy wyjaśnię, jak usunąć procesor graficzny z komputera w tym przewodniku krok po kroku.

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Kupiłeś nowy dysk SSD NVMe M.2, ale nie wiesz, jak go zainstalować? Czytaj dalej, aby dowiedzieć się, jak zainstalować dysk SSD NVMe na laptopie lub komputerze stacjonarnym.

Co to jest bomba logiczna?

Co to jest bomba logiczna?

Bomba logiczna to incydent związany z bezpieczeństwem, w którym osoba atakująca przeprowadza opóźnioną akcję. Czytaj dalej, aby dowiedzieć się więcej.

Co to jest SoC?

Co to jest SoC?

Jeśli kiedykolwiek zajrzałeś do wnętrza wieży PC, możesz zobaczyć, że jest tam wiele różnych komponentów. Twój przeciętny laptop zawiera większość tych samych komponentów

Co to jest szyfrowanie asymetryczne?

Co to jest szyfrowanie asymetryczne?

Algorytmy szyfrowania asymetrycznego wykorzystują dwa różne klucze. Jeden klucz służy do szyfrowania, a drugi do deszyfrowania.

Steam Deck: Jak sformatować kartę SD

Steam Deck: Jak sformatować kartę SD

Steam Deck jest dostępny w trzech opcjach przechowywania: 64 GB eMMC, 256 GB NVMe SSD i 512 GB NVMe SSD. W zależności od biblioteki gier i rozmiaru gier