Введение

MIC 1 – это архитектура процессора, разработанная Эндрю С. Таненбаумом в качестве простого, но полноценного примера для своей учебной книги «Структурированная организация компьютера». Она состоит из очень простого устройства управления, выполняющего микрокод из памяти объемом 512 слов. Язык микроассемблера (MAL) создан для облегчения написания интерпретатора IJVM, а исходный код такого интерпретатора можно найти в книге.

Путь данных

Путь данных — это ядро MIC 1. Он содержит 32-битные регистры, шины, арифметико-логическое устройство и сдвигающий регистр.

Реестры

Регистры выбираются двумя линиями управления: одна для включения шины B, другая – для включения шины C. Шина B может быть включена только одним регистром за раз, так как передача данных из двух регистров одновременно приведет к несогласованности данных. В отличие от этого, шина C может быть включена более чем одним регистром одновременно; фактически, текущее значение, присутствующее в шине C, может быть записано в более чем один регистр без каких-либо проблем. Операции чтения и записи выполняются за один тактовый цикл. Регистр MBR является регистром только для чтения и содержит две управляющие линии. Поскольку это 8-битный регистр, его выход подключен к младшим 8 битам шины B. Его можно настроить для выдачи выходного значения двумя способами:

Дополнительный код (MBR): все оставшиеся 24 бита шины B устанавливаются в 1, если это отрицательное число, или в 0, если это положительное число (расширение знака). Без дополнительного кода (MBRU): оставшиеся 24 бита (из общего числа 32) устанавливаются в 0.

Сдвигатель

Сдвигающий регистр содержит 32-битный вход и выход. Выход подключен непосредственно к шине C. Сдвигающий регистр используется для выполнения логических и арифметических операций сдвига путем установки сигналов управления SLL8 (Shift Left Logical) и SRA1 (Shift Right Arithmetic) соответственно.