Что представляют собой микрокод и архитектура набора команд (ISA)?

В книге Inside the Machine я прочитал раздел о ISA, RISC и CISC. Я понял различия между RISC и CISC, но у меня возникли вопросы относительно разницы между ISA и микрокодом. По моему пониманию, ISA - это набор инструкций машины, который может изменять программист, а микрокод - это также набор инструкций, но программист не может изменять этот набор. Это соответствует действительности?
  • 17 января 2024 г. 6:08
Ответы на вопрос 2
Да, ваше понимание верно, но позвольте мне дать более подробное объяснение.

Архитектура набора команд (Instruction Set Architecture, ISA) представляет собой абстрактный интерфейс между аппаратурой и программным обеспечением. Фактически, это спецификация, определяющая разные аспекты процессора, включая типы данных, инструкции, регистры, режимы адресации и многое другое. ISA описывает то, как программное обеспечение управляет аппаратными ресурсами, и очерчивает инструкции, которые может исполнить процессор.

Микрокод — это нижний уровень, на котором процессор реализует инструкции ISA. Когда дело доходит до CISC (Complex Instruction Set Computing) архитектур, таких как x86, многие из высокоуровневых инструкций, видимых программисту, на самом деле представляют собой последовательности более простых операций на микроуровне. Микрокод управляет внутренними элементами процессора, такими как арифметико-логическое устройство (АЛУ), регистры и тд., чтобы реализовать эти инструкции.

Отличие между ними заключается в уровне доступа и абстракции:

1. ISA - это интерфейс, который показывает программистам. Он позволяет программам управлять аппаратными ресурсами через определенный набор доступных инструкций.

2. Микрокод - это внутренняя реализация, скрытая от программиста. Он определяет, как конкретный процессор исполняет инструкции ISA на аппаратном уровне.

Иными словами, инструкцию ISA можно рассматривать как "команду" высокого уровня, которую понимает и выполняет процессор, тогда как микрокод - это последовательность "шагов" или операций на микроуровне, необходимых для выполнения данной команды.

В процессорах на основе RISC (Reduced Instruction Set Computing) обычно отсутствует слой микрокода, поскольку их инструкции просты и обычно могут быть выполнены напрямую аппаратной реализацией без дополнительной микро-интерпретации. Однако в CISC процессорах, таких как x86, микрокод играет ключевую роль в обеспечении совместимости и выполнении сложных инструкций.

В современных процессорах микрокод обновляем, что позволяет производителям исправлять ошибки или улучшать производительность после выпуска продукта. Тем не менее, это все равно остается задачей производителя, а не конечного програмиста.
- ISA (Instruction set architecture) - часть архитектуры ЭВМ, описание предопределённого набора машинных команд и видимой программисту части архитектуры процессора, необходимой ему для написания программы, – абстрагирует для программиста интерфейс между аппаратурой компьютера и нижним уровнем программного обеспечения. Этот уровень архитектуры компьютера называют также уровнем машинного языка. Если проще, то - это как список команд, которые Ваш компьютер понимает и может выполнить. Эти команды используются программистами при написании программ. 

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