For faster navigation, this Iframe is preloading the Wikiwand page for Микрокод.

Микрокод

Материал из Википедии — свободной энциклопедии

В статье не хватает ссылок на источники (см. рекомендации по поиску). Информация должна быть проверяема, иначе она может быть удалена. Вы можете отредактировать статью, добавив ссылки на авторитетные источники в виде сносок. (13 мая 2011)

Микроко́д — программа, реализующая набор инструкций процессора. Так же, как одна инструкция языка высокого уровня преобразуется в серию машинных инструкций, в процессоре, использующем микрокод, каждая машинная инструкция реализуется в виде серии микроинструкций — микропрограммы, микрокода.

На большинстве компьютеров, использующих микрокод, он присутствует не в основной памяти, а в специальной быстродействующей памяти (англ. control store), как например, в наборе микросхем 588 серии с АЛУ КА588ВС2 и ПЗУ управляющей памяти КА588ВУ2. Эта память может допускать только чтение либо чтение-запись; в последнем случае микрокод может быть загружен из постоянной памяти в процессе запуска процессора. Возможность изменения микрокода позволяет исправлять найденные ошибки и добавлять реализацию новых инструкций. Микрокод также позволяет настроить микроархитектуру компьютера на эмуляцию другой (как правило, более сложной) архитектуры.

Микропрограммы состоят из серий микроинструкций, часто называемых элементарными операциями. Микроинструкции управляют процессором на самом низком уровне. Например, отдельная микроинструкция может содержать указание следующих действий:

  • Подсоединить регистр 1 ко входу A АЛУ;
  • Подсоединить регистр 7 ко входу B АЛУ;
  • Настроить АЛУ на выполнение операции сложения;
  • Установить разряд переноса АЛУ в ноль;
  • Сохранить результат операции в регистр 8;
  • Обновить коды состояния из флагов АЛУ («Отрицательное», «Ноль», «Переполнение», «Перенос»);
  • Установить указатель микрокоманд на микроинструкцию номер nnn.

Для того, чтобы одна микроинструкция могла описывать весь этот набор, микроинструкции часто делаются довольно «широкими», например, длиной в 56 битов или даже больше. Микроинструкции, или микрокоманды, в свою очередь, инициируют так называемые микрооперации. Микрооперации — это и есть элементарные преобразования над данными; в качестве примеров можно привести следующие:

  1. скопировать операнд в регистр;
  2. установить флаг в 1;
  3. выставить операнд на шину;
  4. увеличить содержимое верхушки стека на 1, и т. д.

Причины появления и использования

[править | править код]

Подход микропрограммирования процессоров (микрокода) был предложен в 1953 году Вилксом и Стрингером[1].

Первоначально микрокод был использован в качестве более простого способа разработки управляющего устройства процессора. Прежде набор инструкций задавался жёстко, каждая машинная инструкция (сложение, сдвиг, копирование) реализовывалась непосредственно в схеме. Это давало высокую скорость, но по мере того, как набор инструкций рос, всё сложнее становилось реализовывать в виде схемы и отлаживать инструкции всё возрастающей сложности. Микрокод смягчил эту проблему тем, что позволил инженерам-проектировщикам при реализации сложной инструкции заменить создание сложной схемы на написание микропрограммы. Более того, микрокод можно было с лёгкостью изменить на поздних этапах проектирования, схему же изменить намного сложнее. Таким образом, микрокод облегчил проектирование процессоров, что привело к усложнению набора команд.

Использование микропрограмм также смягчило проблему пропускной способности памяти. В 1970-х рост скорости процессора намного обгонял рост скорости памяти. Некоторые способы ускорения, такие как многоуровневые кэши, несколько смягчали проблему, но не решали её. Использование микрокода здесь очень помогло, поскольку меньшее количество более сложных инструкций требовало меньшего обмена с памятью. Например, если вся операция над строкой символов выполняется одной машинной инструкцией, то во время её выполнения не требуется выбирать из памяти другие инструкции.

Список архитектур, использующих принцип микрокода, включал в себя IBM System/360 и DEC VAX, набор команд которых был реализован с помощью сложных микропрограмм. Подход, при котором используются всё более сложные микрокодные инструкции, был позже назван CISC.

Движение по созданию RISC иногда рассматривают как противников микрокодируемых архитектур, но лишь ранние RISC-процессоры не использовали микрокод, а в более поздних он мог применяться[1].

Примечания

[править | править код]
Для улучшения этой статьи желательно: Проставить сноски, внести более точные указания на источники.После исправления проблемы исключите её из списка. Удалите шаблон, если устранены все недостатки.
{{bottomLinkPreText}} {{bottomLinkText}}
Микрокод
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?