Що таке асоціативна память?

Більшість пам’яті зберігається та до неї звертаються однаково. Вміст зберігається, а потім витягується за допомогою адреси пам’яті. Це зазвичай корисно і використовується майже повсюдно. На жаль, у такому стилі зберігання є невелика проблема. Чудово, якщо ви знаєте, де зберігаються потрібні вам дані. Це не працює добре, якщо ви хочете шукати певний запис.

Припустимо, ви хочете знайти файл; ви пам'ятаєте його назву, але не теку, яку ви зберегли. Ваш комп’ютер може шукати назву файлу, але якщо ви не використовували його нещодавно, він часто виконує пошук досить повільно. І це з урахуванням того, що файлові системи зберігаються як імена та адреси файлів.

Асоціативна пам’ять, також відома як адресна пам’ять вмісту, або 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. Цей інструмент може заощадити ваш час і