Мікрокод

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Мікропрограма (також мікрокод англ. 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»

Література[ред. | ред. код]