Interested Article - Микрокод
- 2020-03-17
- 1
Микроко́д — программа , реализующая набор инструкций процессора . Так же, как одна инструкция языка высокого уровня преобразуется в серию машинных инструкций , в процессоре, использующем микрокод, каждая машинная инструкция реализуется в виде серии микроинструкций — микропрограммы, микрокода.
На большинстве компьютеров , использующих микрокод, он присутствует не в основной памяти , а в специальной быстродействующей памяти ( англ. control store ), как например, в наборе микросхем 588 серии с АЛУ КА588ВС2 и ПЗУ управляющей памяти КА588ВУ2. Эта память может допускать только чтение либо чтение-запись; в последнем случае микрокод может быть загружен из постоянной памяти в процессе запуска процессора. Возможность изменения микрокода позволяет исправлять найденные ошибки и добавлять реализацию новых инструкций. Микрокод также позволяет настроить микроархитектуру компьютера на эмуляцию другой (как правило, более сложной) архитектуры .
Микропрограммы состоят из серий микроинструкций, часто называемых элементарными операциями . Микроинструкции управляют процессором на самом низком уровне. Например, отдельная микроинструкция может содержать указание следующих действий:
- Подсоединить регистр 1 ко входу A АЛУ ;
- Подсоединить регистр 7 ко входу B АЛУ;
- Настроить АЛУ на выполнение операции сложения;
- Установить разряд переноса АЛУ в ноль;
- Сохранить результат операции в регистр 8;
- Обновить коды состояния из флагов АЛУ («Отрицательное», «Ноль», «Переполнение», «Перенос»);
- Установить указатель микрокоманд на микроинструкцию номер nnn.
Для того, чтобы одна микроинструкция могла описывать весь этот набор, микроинструкции часто делаются довольно «широкими», например, длиной в 56 битов или даже больше. Микроинструкции, или микрокоманды, в свою очередь, инициируют так называемые микрооперации. Микрооперации — это и есть элементарные преобразования над данными; в качестве примеров можно привести следующие:
- скопировать операнд в регистр;
- установить флаг в 1;
- выставить операнд на шину;
- увеличить содержимое верхушки стека на 1, и т. д.
Причины появления и использования
Подход микропрограммирования процессоров (микрокода) был предложен в 1953 году Вилксом и Стрингером .
Первоначально микрокод был использован в качестве более простого способа разработки управляющего устройства процессора. Прежде набор инструкций задавался жёстко, каждая машинная инструкция (сложение, сдвиг, копирование) реализовывалась непосредственно в схеме . Это давало высокую скорость, но по мере того, как набор инструкций рос, всё сложнее становилось реализовывать в виде схемы и отлаживать инструкции всё возрастающей сложности. Микрокод смягчил эту проблему тем, что позволил инженерам-проектировщикам при реализации сложной инструкции заменить создание сложной схемы на написание микропрограммы. Более того, микрокод можно было с лёгкостью изменить на поздних этапах проектирования, схему же изменить намного сложнее. Таким образом, микрокод облегчил проектирование процессоров, что привело к усложнению набора команд .
Использование микропрограмм также смягчило проблему пропускной способности памяти. В 1970-х рост скорости процессора намного обгонял рост скорости памяти. Некоторые способы ускорения, такие как многоуровневые кэши , несколько смягчали проблему, но не решали её. Использование микрокода здесь очень помогло, поскольку меньшее количество более сложных инструкций требовало меньшего обмена с памятью. Например, если вся операция над строкой символов выполняется одной машинной инструкцией, то во время её выполнения не требуется выбирать из памяти другие инструкции.
Список архитектур, использующих принцип микрокода, включал в себя IBM System/360 и DEC VAX , набор команд которых был реализован с помощью сложных микропрограмм. Подход, при котором используются всё более сложные микрокодные инструкции, был позже назван CISC .
Движение по созданию RISC иногда рассматривают как противников микрокодируемых архитектур, но лишь ранние RISC-процессоры не использовали микрокод, а в более поздних он мог применяться .
Примечания
- ↑ , S. B. Furber
Ссылки
Для улучшения этой статьи
желательно
:
|
- 2020-03-17
- 1