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

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

У Енциклопедії кібернетики схема, що реалізує мікропрограмне керування, називається мікропрограмним автоматом.[1]

Реалізації ред.

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

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

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

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

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

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

Див. також ред.

Примітки ред.

  1. Енциклопедія кібернетики : у 2 т. / за ред. В. М. Глушкова. — Київ : Гол. ред. Української радянської енциклопедії, 1973. — Т. 1. — С. 23.
  2. http://www14.software.ibm.com/webapp/set2/firmware/gjsn [Архівовано 18 квітня 2006 у Wayback Machine.] IBM «Microcode downloads» (showing use of the term «microcode»)
  3. http://download.boulder.ibm.com/ibmdl/pub/software/server/firmware/73lzx.html [Архівовано 19 квітня 2019 у Wayback Machine.] «Microcode Update for SCSI Hard Disk»

Література ред.