Таблицы кода операций фактически не существуют (кроме некоторых архитектур, имеющих микрокод ... поясняется ниже). Способ, которым они работают, заключается в том, что коды операций для микропроцессора интерпретируются рядом цифровых схем, которые реализуют конечный автомат. Эти схемы называются блоком управления. Блок управления отвечает за включение памяти, запись, управление ALU и т. Д., Чтобы создать поведение, требуемое для конкретного кода операции.
Пример. Предположим, вы выдаете код операции для загрузки данных из непосредственной инструкции в регистр. Этот код операции заставит конечный автомат увеличивать счетчик программ на единицу и выдавать считывание памяти, позволяя внутренним шинам, чтобы показание появилось на входной строке защелок для конкретного реестре (все они управляются внутренними буферными линиями). Когда сигнал синхронизации достигнут, местоположение бара на инкрементированном программном счетчике находится на шине данных и считывается в регистр.Затем контроллер переходит к следующему состоянию, которое должно выбрать следующий код операции.
Как эти состояния закодированы в схему, это логические ворота, которые утверждают сигналы в правильное время на основе конкретных входов в регистр управления. Иногда это было реализовано как ПЗУ, в то время как логические схемы. На старых микропроцессорах, таких как 6502, это имело интересный побочный эффект. Было несколько неопределенных кодов операций, которые не были предназначены для каких-либо действий, однако при выдаче этих кодов операций они вызывали бы функциональность контроллера, которую проектировщики не планировали, поскольку эти неопределенные коды операций, по-видимому, являются частью определенного кода операции для одной части блока управления и другая часть кода операции будут интерпретироваться по-разному для еще одного аспекта блока управления. Это приводит к неопределенному поведению, некоторые из которых были полезны и фактически использовались в коде. Другие были бесполезны и остановили процессор или mbe нестабильно.
Архитектуры, которые используют микрокод, который относится ко всем современным архитектурам, читают код операции и имеют таблицу с определенным набором внутренних инструкций для реализации этого кода операции. Эти инструкции были бы сопоставимы с приведенным набором команд для микропроцессора, но не были бы непосредственно доступны программисту. На данный момент эти небольшие инструкции для микрокода ведут себя так же, как традиционные архитектуры, в том смысле, что они будут интерпретироваться маленькой государственной машиной для управления поведением микропроцессора.
Интересной особенностью микрокода является то, что инженеры ЦП могут обновлять функциональные возможности процессора с помощью обновлений таблицы микрокода. Intel часто делает это, если обнаружена ошибка или обнаружен лучший способ реализации кода операции.
Для получения дополнительной информации по этому вопросу см:
http://www.pagetable.com/?p=39
http://en.wikipedia.org/wiki/Control_unit#Hardwired_control_unit
https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Microcode.html