Какво е асоциативна памет?

Повечето памети се съхраняват и достъпват по същия начин. Съдържанието се записва и след това се извлича с помощта на адрес от паметта. Това е общо взето полезно и се използва почти навсякъде. За съжаление има малък проблем с този стил на съхранение. Отлично е, ако знаете къде се съхраняват данните, от които се нуждаете. Не се представя добре, ако искате да търсите конкретен запис.

Да приемем, че искате да намерите файл; помните името му, но не и коя папка сте запазили. Компютърът ви може да търси името на файла, но освен ако не сте го използвали наскоро, често извършването на търсенето е доста бавно. И това се взема предвид, че файловите системи се съхраняват като имена на файлове и адреси.

Асоциативната памет, известна още като адресируема памет на съдържанието или CAM, е проектирана да се търси по нейното съдържание. За съжаление внедряването на асоциативна памет е много скъпо. Това означава, че се използва само в няколко случая, обикновено в мрежов хардуер от висок клас. Асоциативната памет за имена идва от факта, че това е хардуерна реализация на асоциативен софтуерен масив.

Клетъчна структура

Асоциативната памет се използва само когато е необходима изключително висока производителност. Като такъв, той е базиран на SRAM, а не на DRAM. Като отправна точка само това го прави скъп. DRAM използва един транзистор и един кондензатор на бит, а SRAM използва общо 6 транзистора. За ефективно търсене в съдържанието на клетка от паметта, всяка клетка е модифицирана, за да има схема за сравнение. Това добавя общо още 4 транзистора към всяка клетка. Това означава, че асоциативната памет е значително по-малко плътна от SRAM, която вече е скъпа форма на съхранение.

Използване

Асоциативната памет е скъпа и е оптимизирана изключително за съпоставяне на търсения, базирани на съдържание. Като такъв, той наистина се използва само в устройства, които постоянно трябва да извършват този тип търсене; дори тогава той обикновено е ограничен до модели от висок клас. Обикновено има само две основни места, където се използва асоциативната памет, мрежови комутатори и рутери.

Мрежовият хардуер, като комутатори и рутери, трябва да предлага нива на висока производителност, за да поддържа постоянен поток от множество гигабита мрежов трафик. В рамките на една мрежа MAC адресите се използват за маршрутизиране на трафика. Комутаторът ще знае към кой от многото му мрежови портове трябва да бъдат изпратени данни, за да стигне до устройството с правилния MAC адрес. За да се гарантира, че всеки пакет е изпратен на правилното място, се търси целевият му MAC адрес. В традиционен формат на паметта това би отнело известно време, добавяйки към латентността на всяка мрежова комуникация. С асоциативната памет това търсене може да бъде много по-бързо.

Двоичен и троичен

Повечето асоциативни памети са базирани на двоична памет, но някои са базирани на троична. Тройната асоциативна клетка на паметта е подобна на двоичната, описана по-горе. Вместо да има една SRAM клетка, обаче, има две. След това и двете заедно имат четирите допълнителни транзистора, необходими за извършване на сравнението. Това, разбира се, прави троичната асоциативна памет дори по-скъпа от двоичния си братовчед, така че за какво се използва?

Вторият бит на тройната клетка показва „грижа“ или „не ме интересува“. Това добавя трето състояние към клетката и цялостната функция за търсене. Вече може да съхранява 1, 0 или X за „не ме интересува“. Това е особено полезно, когато работите с таблици за мрежово маршрутизиране, базирани на подмрежови маски с променлива дължина и със списъци за контрол на достъпа. Може да имате няколко положителни отговора на един адрес за търсене и в двете. И в двете, вие искате да вземете под внимание само най-точната инструкция.

Като такова, търсенето на 192.168.20.19 може да съответства на следните правила 192.168.20.16/28 и 192.168.0.0/16. Ако извършвате стандартно двоично търсене, ще трябва да извършите изчисления, за да проверите дали адресът попада в посочените адресни диапазони. С троичната логика обаче можете да определите дали адресът ви за търсене съвпада с 192.168.xx в една операция. Можете също така да определите, че съвпадението /28 е много по-прецизно от съвпадението /16, защото има по-малко битове „не ме интересува“. Това ви позволява да прилагате преференциално свързаните правила за контрол на достъпа.

Тъй като тройната асоциативна памет е дори по-скъпа от двоичната форма, тя е дори по-рядко срещана. По принцип може да се намери само в рутери от най-висок клас и многослойни комутатори.

Заключение

Асоциативната памет е форма на памет, която работи много по-различно от стандартната памет. Вместо да изисква данните, съхранени на конкретен адрес, той претърсва цялата памет наведнъж за съвпадения с термин за търсене. За да се постигне това с високи нива на производителност, клетките с памет са базирани на модифицирана форма на SRAM, включваща една или две SRAM клетки, комбинирани с четири допълнителни транзистора, използвани за изпълнение на логиката за сравнение на битове.

Единични SRAM клетки се използват в бинарна асоциативна памет, докато две SRAM клетки се използват в троична асоциативна памет. Троичният вариант позволява съхраняване на трета стойност, обикновено 1, 0 или „не ме интересува“. Това позволява на съдържанието да показва, че трябва да съвпада, дори ако думата за търсене не е точна.

Тъй като клетките на асоциативната памет са базирани на скъпата SRAM, те са скъпи, като тройната е най-скъпата. Поради това и структурата й е оптимизирана изрично за търсене по съдържание, асоциативната памет не се използва в повечето устройства.

Само устройства, които се възползват особено от него и където производителността надвишава първоначалната цена, го включват. Като такъв, той обикновено се намира изключително в мрежов хардуер от корпоративен клас. В рамките на тази настройка тя често се нарича CAM и TCAM, съответно за адресируема памет за съдържание и тройна адресируема памет за съдържание.


Как да клонирате твърд диск

Как да клонирате твърд диск

В съвременната цифрова ера, където данните са ценен актив, клонирането на твърд диск в Windows може да бъде решаващ процес за мнозина. Това изчерпателно ръководство

Как да коригирам неуспешно зареждане на драйвер WUDFRd на Windows 10?

Как да коригирам неуспешно зареждане на драйвер WUDFRd на Windows 10?

Изправени ли сте пред съобщението за грешка при зареждане на компютъра, което казва, че драйверът WUDFRd не успя да се зареди на вашия компютър?

Как да коригирате код за грешка на NVIDIA GeForce Experience 0x0003

Как да коригирате код за грешка на NVIDIA GeForce Experience 0x0003

Срещате ли NVIDIA GeForce код за грешка 0x0003 на вашия работен плот? Ако да, прочетете блога, за да разберете как да поправите тази грешка бързо и лесно.

Какво е SMPS?

Какво е SMPS?

Научете какво е SMPS и значението на различните рейтинги на ефективност, преди да изберете SMPS за вашия компютър.

Защо моят Chromebook не се включва

Защо моят Chromebook не се включва

Получете отговори на въпроса Защо моят Chromebook не се включва? В това полезно ръководство за потребителите на Chromebook.

Как да докладвате на Google за фишинг измами

Как да докладвате на Google за фишинг измами

Научете как да докладвате измамник на Google, за да му попречите да мами други с това ръководство.

Roomba спира, залепва и се обръща – Коригирайте

Roomba спира, залепва и се обръща – Коригирайте

Коригирайте проблем, при който прахосмукачката робот Roomba спира, залепва и продължава да се върти.

Как да промените графичните настройки на Steam Deck

Как да промените графичните настройки на Steam Deck

Steam Deck предлага стабилно и многостранно игрово изживяване на една ръка разстояние. Въпреки това, за да оптимизирате играта си и да осигурите възможно най-доброто

Какво представлява сигурността, базирана на изолация?

Какво представлява сигурността, базирана на изолация?

Щях да се задълбоча в тема, която става все по-важна в света на киберсигурността: сигурност, базирана на изолация. Този подход към

Как да използвате Auto Clicker за Chromebook

Как да използвате Auto Clicker за Chromebook

Днес щях да разгледам инструмент, който може да автоматизира повтарящи се задачи за щракване на вашия Chromebook: Auto Clicker. Този инструмент може да ви спести време и