Мікрокод

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

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