Що таке реєстр?

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

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

Що робить реєстр?

Регістр — це швидкодоступне місце зберігання для процесора. Доступ до реєстру є миттєвим із нульовою затримкою, тоді як навіть кеш L1 має затримку приблизно 4-5 циклів у сучасних ЦП. Ця безпосередність доступу натякає на варіант використання реєстрів. Регістри використовуються для зберігання інструкцій, які активно виконуються ЦП. Вони також зберігають точки даних, які потрібно обробити. Деякі регістри мають загальне призначення, тоді як інші мають дуже конкретне призначення. Прикладом регістра спеціального призначення може бути програмний лічильник, де процесор відстежує свою позицію в програмній послідовності.

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

Зареєструвати перейменування

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

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

Висновок

Регістри є найвищим рівнем в ієрархії пам'яті. Вони є єдиною частиною, яка безпосередньо адресується центральним процесором і не мають затримки. Регістри використовуються для зберігання даних, які активно виконуються ЦП. Вони також використовуються для зберігання інших точок даних, таких як лічильник програми, який відстежує, яка інструкція буде виконана наступною. Дуже обмежена кількість регістрів доступна в архітектурі x86-64, яка має 16 регістрів загального призначення та 16 або 32 регістри з плаваючою комою залежно від того, чи підтримується AVX-512.


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

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

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