Що таке барєр памяті?

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

Зривається в порядку

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

Вплив зупинки конвеєра на продуктивність може бути не таким поганим, але він також може бути відносно серйозним. Наприклад, кеш-пам’ять L1 зазвичай може повертати результат порядку величини 5 циклів ЦП. Кеш L2 може зайняти 20 циклів, L3 близько 200 циклів, а оперативна пам'ять системи близько 400 циклів. Враховуючи, що ЦП може працювати на частоті близько 5 ГГц, тобто 5 мільярдів тактів на секунду, навіть 400 тактів не так вже й погано (0,000008%). Але якщо у вас є багато інструкцій, які потребують посилань на дані на нижчих рівнях кешу, кумулятивний ефект може спричинити помітне уповільнення.

Виконання поза порядком і перейменування реєстру

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

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

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

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

Бар'єри пам'яті

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

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

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

Висновок

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

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


Leave a Comment

Все про iOS 26

Все про iOS 26

Apple представила iOS 26 – велике оновлення з абсолютно новим дизайном з матового скла, розумнішими можливостями та покращеннями звичних програм.

Найкращі ноутбуки для студентів у 2025 році

Найкращі ноутбуки для студентів у 2025 році

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

Як відновити доступ до жорсткого диска, виправити помилку неможливості відкрити жорсткий диск

Як відновити доступ до жорсткого диска, виправити помилку неможливості відкрити жорсткий диск

У цій статті ми розповімо вам, як відновити доступ до жорсткого диска, якщо він вийшов з ладу. Давайте продовжимо!

Як використовувати функції «Усвідомлення розмов» та «Прослуховування в реальному часі» на AirPods

Як використовувати функції «Усвідомлення розмов» та «Прослуховування в реальному часі» на AirPods

На перший погляд, AirPods виглядають як будь-які інші справжні бездротові навушники. Але все змінилося, коли було виявлено кілька маловідомих функцій.

Як додати принтер до Windows 10

Як додати принтер до Windows 10

Додавання принтера до Windows 10 просте, хоча процес для дротових пристроїв відрізнятиметься від процесу для бездротових пристроїв.

Як перевірити оперативну память та перевірити помилки оперативної памяті на вашому компютері з найвищим рівнем точності

Як перевірити оперативну память та перевірити помилки оперативної памяті на вашому компютері з найвищим рівнем точності

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

Виправте, що AirPods не працюють із Zoom на Mac

Виправте, що AirPods не працюють із Zoom на Mac

Дізнайтеся, як виправити проблему підключення AirPods до Zoom на Mac за допомогою простих рішення.

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

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

У сучасну цифрову епоху, коли дані є цінним активом, клонування жорсткого диска в Windows може бути вирішальним процесом для багатьох. Цей вичерпний посібник

Як виправити помилку завантаження драйвера WUDFRd у Windows 10?

Як виправити помилку завантаження драйвера WUDFRd у Windows 10?

Ви стикаєтеся з повідомленням про помилку під час завантаження комп’ютера, у якому йдеться про те, що драйвер WUDFRd не вдалося завантажити на ваш комп’ютер?

Як виправити код помилки NVIDIA GeForce Experience 0x0003

Як виправити код помилки NVIDIA GeForce Experience 0x0003

Ви відчуваєте код помилки NVIDIA GeForce 0x0003 на робочому столі? Якщо так, прочитайте блог, щоб дізнатися, як швидко та легко виправити цю помилку.