Конвеєр команд

Конвеєр команд — апаратна структура в обчислювальних пристроях ЕОМ, призначена для прискорення виконання машинних команд шляхом суміщення певних стадій їх виконання в часі.

Елементарний конвеєр

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

Загальноприйнятим в теорії конвеєрних структур є така послідовність етапів:

  • Вибірка (instruction fetch, IF) — завантаження нової команди з пам'яті
  • Декодування (instruction decode, ID) — інтерпретація та відправка команди у відповідний операційний пристрій в залежності від різновиду операції
  • Виконання (execution, EX) — виконання команд та обчислення ефективної адреси пам'яті для результату або операндів, які необхідно завантажити
  • Звертання до пам'яті (memory, MEM) — виконання операцій з пам'яттю (для команд завантаження/збереження)
  • Збереження результату (writeback, WB) — збереження результату обчислень в регістрі

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

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

інші мови