Що таке конвеєр інструкцій?

Що таке конвеєр інструкцій?

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

Історичні процесори замовлення

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

Що таке конвеєр інструкцій?

У субскалярному процесорі без конвеєра кожна частина кожної інструкції виконується по порядку.

Однак існує проблема, коли виконується повна інструкція по порядку, перш ніж ви зможете перейти до наступної інструкції. Проблема полягає в промаху кешу. Центральний процесор зберігає дані, які він активно обробляє, у реєстрі. Це можна отримати із затримкою в один цикл. Проблема в тому, що регістр крихітний, оскільки він вбудований у ядро ​​процесора. ЦП має перейти до більшого, але повільнішого кеша L1, якщо дані ще не завантажено. Якщо його немає, він повинен знову перейти до більшого та повільнішого кеша L2. Наступним кроком є ​​кеш L3; Останнім варіантом є системна оперативна пам'ять. Для перевірки кожного з цих параметрів потрібно все більше циклів ЦП.

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

Класичний конвеєр RISC

RISC означає комп’ютер зі скороченим набором інструкцій . Це стиль дизайну процесора, який оптимізує продуктивність, полегшуючи декодування кожної інструкції. Це порівняно з CISC або Complex Instruction Set Computer, який розробляє складніші набори інструкцій, що дозволяє використовувати менше інструкцій для виконання тих самих завдань.

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

Що таке конвеєр інструкцій?

У скалярному конвеєрному процесорі кожен етап виконання інструкцій може виконуватися один раз за такт. Це дозволяє отримати максимальну пропускну здатність однієї виконаної інструкції за цикл.

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

Все ще послідовний

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

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

Висновок

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


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

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

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