Відкрити головне меню

Мікрокод (англ. Microcode; також мікропрограма) — програма на спеціалізованій, апаратно-залежній мові програмування, що реалізує управління процесором в системах з мікропрограмним керуванням.

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

Зміст

РеалізаціїРедагувати

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

Наявність в процесорі можливостей паралельного і одночасного виконання мікрооперацій призводить до того, що окрема мікрокоманда включає кілька полів і тому виявляється досить «широкою» (32 — 72 біти і більше). В окремих процесорах з відносно «вузькими» мікрокомандами також застосовується поділ мікрокоманд на типи, при якому, в залежності від типу мікрокоманди, забезпечується її різна інтерпретація. При цьому мікрокоманди виявляються функціонально-орієнтованими на управління арифметико-логічним пристроєм, управління пам'яттю тощо. Як наслідок, такі мікрокоманди також можуть змінювати і довжину такта процесора.

На більшості комп'ютерів з мікропрограмним управлінням мікрокод розміщується не в основній пам'яті, а в спеціальній швидкодіючій управляючій пам'яті (англ. control store). Ця пам'ять є відносно дорогою, тому обсяг мікрокоманд є обмеженим і звичайно становить кілька тисяч. В окремих системах в управляючу пам'ять мікрокод може бути записаний також програмно, що дозволяє забезпечити мікропрограмну підтримку реалізації тих чи інших механізмів Операційної системи. Наприклад, в системі VM компанії IBM та її радянському клоні СВМ в управляючу пам'ять записувався мікрокод, що реалізовував спеціальні інструкції підтримки операційної системи, наприклад — операцію переключення віртуальних машин. За відсутності мікропрограмної підтримки такі операції мали б бути реалізовані програмно і, відповідно, їх виконання потребувало б набагато більше часу.

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

Інше використання термінологіїРедагувати

Окремі виробники комп'ютерної техніки (апаратного забезпечення), особливо IBM, використовують термін «мікрокод» як синонім термінові «прошивка» (вбудована програма; англ. firmware)[1]. Навіть проста прошивка, наприклад та, що використовуються в жорсткому диску персонального комп'ютера, іноді описується як мікрокод[2].

Див. такожРедагувати

ПриміткиРедагувати

  1. http://www14.software.ibm.com/webapp/set2/firmware/gjsn IBM «Microcode downloads» (showing use of the term «microcode»)
  2. http://download.boulder.ibm.com/ibmdl/pub/software/server/firmware/73lzx.html «Microcode Update for SCSI Hard Disk»

ЛітератураРедагувати