Мікрокод
Мікропрограма (також мікрокод англ. microcode) — програма на спеціалізованій, апаратно-залежній мові програмування, що реалізує керування процесором в системах з мікропрограмним керуванням.
Розробники процесорів надають програмістам набір програмно доступних операцій, кожній з яких відповідає окрема інструкція мови асемблера. З точки зору програміста ці інструкції є атомарними — у програміста відсутні можливості відслідкувати деталі виконання кожної з таких інструкцій. З точки ж зору роботи процесора — у випадку мікропрограмної архітектури — кожна з таких інструкцій виконує декілька більш примітивних операцій — мікрооперацій, — таких як завантаження і обробка команди та операндів, запис результату, встановлення признаку результату (коду завершення) тощо.
У Енциклопедії кібернетики схема, що реалізує мікропрограмне керування, називається мікропрограмним автоматом.[1]
Реалізації[ред. | ред. код]
Цей розділ не містить посилань на джерела. (лютий 2020) |
Декілька мікрооперацій, що можуть бути виконані паралельно і одночасно, вміщують в окрему мікрокоманду, поля якої і визначають такі мікрооперації. Окрема мікрокоманда звичайно (але не обов'язково) виконується в продовж одного такта процесора. Різні інструкції потребують виконання різних мікрооперацій та різних мікрокоманд, так само операції вимагають різної кількості мікрокоманд і тому виконуються за різне число тактів.
Наявність в процесорі можливостей паралельного і одночасного виконання мікрооперацій призводить до того, що окрема мікрокоманда включає кілька полів і тому виявляється досить «широкою» (32 — 72 біти і більше). В окремих процесорах з відносно «вузькими» мікрокомандами також застосовується поділ мікрокоманд на типи, при якому, в залежності від типу мікрокоманди, забезпечується її різна інтерпретація. При цьому мікрокоманди виявляються функціонально-орієнтованими на керування арифметико-логічним пристроєм, керування пам'яттю тощо. Як наслідок, такі мікрокоманди також можуть змінювати і довжину такта процесора.
У більшості процесорів з мікрокодом він розміщується не в оперативній, а у спеціальній пам'яті мікрокоду з високою швидкодією (англ. control store). У деяких процесорах мікрокод можна оновити програмно, інколи навіть з додаванням функціональності, що використовується операційною системою. Наприклад, в системі VM компанії IBM та її радянському клоні СВМ мікрокод реалізовував спеціальні системні інструкції (такі, як перемикання віртуальних машин). За відсутності мікропрограмної підтримки такі операції мали б бути реалізовані програмно і, відповідно, їх виконання потребувало би набагато більше часу.
В більш загальному випадку можливість дозавантаження або зміни мікрокоду дозволяє виправляти знайдені помилки і додавати реалізацію нових інструкцій. Мікрокод також дозволяє налаштувати мікроархітектуру комп'ютера на емуляцію іншої (як правило, більш складної) архітектури.
Інше використання термінології[ред. | ред. код]
Окремі виробники комп'ютерної техніки (апаратного забезпечення), особливо IBM, використовують термін «мікрокод» як синонім термінові «прошивка» (вбудована програма; англ. firmware)[2]. Навіть проста прошивка, наприклад та, що використовуються в жорсткому диску персонального комп'ютера, іноді описується як мікрокод[3].
Див. також[ред. | ред. код]
Примітки[ред. | ред. код]
- ↑ Енциклопедія кібернетики : у 2 т. / за ред. В. М. Глушкова. — Київ : Гол. ред. Української радянської енциклопедії, 1973. — Т. 1. — С. 23.
- ↑ http://www14.software.ibm.com/webapp/set2/firmware/gjsn [Архівовано 18 квітня 2006 у Wayback Machine.] IBM «Microcode downloads» (showing use of the term «microcode»)
- ↑ http://download.boulder.ibm.com/ibmdl/pub/software/server/firmware/73lzx.html [Архівовано 19 квітня 2019 у Wayback Machine.] «Microcode Update for SCSI Hard Disk»
Література[ред. | ред. код]
- Мікрокод // Великий тлумачний словник сучасної української мови (з дод. і допов.) / уклад. і гол. ред. В. Т. Бусел. — 5-те вид. — К. ; Ірпінь : Перун, 2005. — ISBN 966-569-013-2.
![]() |
Це незавершена стаття про апаратне забезпечення. Ви можете допомогти проєкту, виправивши або дописавши її. |