Що таке Scratchpad Memory?

Доступ до даних є важливою частиною дизайну ЦП. ЦП працюють на надзвичайно високих швидкостях, обробляючи кілька інструкцій за кожен такт, і тому потребують доступу до великої кількості даних. Переважна більшість цих даних зберігається на носії інформації. Однак пристрої зберігання даних неймовірно повільні порівняно з процесором. Пристрої зберігання даних також значно кращі при послідовному зчитуванні, ніж при довільному зчитуванні, хоча твердотільні накопичувачі пропонують помітне покращення в цьому відношенні (і багатьох інших) порівняно з жорсткими дисками.

Системна оперативна пам’ять призначена для завантаження всіх даних, які ЦП можуть знадобитися для запущеного програмного забезпечення. Оперативна пам’ять має значно нижчу затримку, ніж пам’ять, вона також спеціально розроблена для високої продуктивності випадкового читання. Проте, як би сучасна оперативна пам’ять не була швидкою, вона все одно ніщо в порівнянні з ЦП із затримкою порядку 400 тактів.

Щоб ще більше зменшити затримку, більшість сучасних ЦП містять рівні кеш-пам’яті. Як правило, вони називаються кешами L1, L2 і L3. L1 має справді високу швидкість, зазвичай для доступу потрібно близько 5 тактів. L2 трохи повільніший, приблизно 20 циклів. L3 ще повільніше, приблизно 200 циклів. Хоча L1 неймовірно швидкий, він також крихітний. Значна частина його швидкості пояснюється тим фактом, що менші кеші займають менше часу для пошуку. L2 більший за L1, але менший за L3, який ще менше системної оперативної пам’яті. Правильне збалансування розміру цих кеш-пам’ятей має вирішальне значення для отримання високопродуктивного ЦП. Коефіцієнти звернень до кешу важливі, але вам потрібно збалансувати кількість звернень із часом, який потрібен для отримання цього попадання, отже, рівнями.

Блокнотна пам'ять

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

Блокнотна пам'ять по суті заповнює ту саму прогалину, що й кеш L1. Він доступний якнайшвидше, часто за допомогою однозначної кількості циклів. Щоб керувати цим, він також відносно невеликий. Проте є дві ключові відмінності між пам’яттю L1 і блокнотною пам’яттю. По-перше, пам'ять блокнота адресується безпосередньо. По-друге, він ділиться між усіма ядрами та процесорами.

Відмінності між кешем і блокнотом

Кеш центрального процесора, по суті, прозорий для центрального процесора, він не може навмисно розмістити туди дані, а його вміст не можна запрограмувати. Натомість ЦП просто запитує дані з оперативної пам’яті та повертає їх швидше, іноді значно швидше, ніж очікувалося. Дозвол блокноту бути адресним означає, що код може точно вказати, які дані мають бути в блокноті. Це може бути корисним, хоча сучасні алгоритми кешування є чудовими з очікуваними частотами звернень 95-97% у стандартних робочих навантаженнях.

Кеш L1 завжди заблокований для окремого процесорного ядра. Жодне інше процесорне ядро ​​не може отримати до нього доступ. Це означає, що якщо кільком ядрам потрібні однакові дані, вони можуть дублювати їх у своїх відповідних кешах L1. У деяких архітектурах ЦП L2 призначено для кожного ядра, в інших він спільний для невеликої кількості або навіть для всіх ядер. L3, як правило, використовується всіма ядрами. Спільне використання кешу між ядрами дозволяє двом або більше ядрам отримувати доступ до тих самих даних без їх дублювання. Це також дозволяє одному ядру використовувати більше своєї справедливої ​​частки, коли воно потребує, а кеш-пам’ять має достатньо місця.

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

Одним із недоліків блокнотної пам’яті є те, що на неї можна покладатися занадто сильно. Маючи можливість прямого доступу до нього, програмне забезпечення може покладатися на його присутність у певних кількостях. У цьому випадку він не зможе працювати на ЦП без такої великої пам’яті блокнота. Рівні кешу просто не страждають від цієї проблеми, тому краще підходять для загального використання.

Випадки використання

Пам'ять Scratchpad найчастіше зустрічається в багатосокетних серверних системах, розроблених для HPC (високопродуктивних обчислень). Поєднання швидкості та спільного доступу робить його корисним для високопаралельних робочих навантажень.

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

Висновок

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


Як клонувати жорсткий диск

Як клонувати жорсткий диск

У сучасну цифрову епоху, коли дані є цінним активом, клонування жорсткого диска в 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. Цей інструмент може заощадити ваш час і