Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
MIC 1 – это архитектура процессора, разработанная Эндрю С. Таненбаумом в качестве простого, но полноценного примера для своей учебной книги «Структурированная организация компьютера». Она состоит из очень простого устройства управления, выполняющего микрокод из памяти объемом 512 слов. Язык микроассемблера (MAL) создан для облегчения написания интерпретатора IJVM, а исходный код такого интерпретатора можно найти в книге.
The MIC 1 is a processor architecture invented by Andrew S. Tanenbaum to use as a simple but complete example in his teaching book Structured Computer Organization. It consists of a very simple control unit that runs microcode from a 512 words store. The Micro Assembly Language (MAL) is engineered to allow simple writing of an IJVM interpreter, and the source code for such an interpreter can be found in the book.
Путь данных
Путь данных — это ядро MIC 1. Он содержит 32-битные регистры, шины, арифметико-логическое устройство и сдвигающий регистр.
The data path is the core of the MIC 1. It contains 32 bit registers, buses, an ALU and a shifter.
Реестры
Регистры выбираются двумя линиями управления: одна для включения шины B, другая – для включения шины C. Шина B может быть включена только одним регистром за раз, так как передача данных из двух регистров одновременно приведет к несогласованности данных. В отличие от этого, шина C может быть включена более чем одним регистром одновременно; фактически, текущее значение, присутствующее в шине C, может быть записано в более чем один регистр без каких-либо проблем. Операции чтения и записи выполняются за один тактовый цикл. Регистр MBR является регистром только для чтения и содержит две управляющие линии. Поскольку это 8-битный регистр, его выход подключен к младшим 8 битам шины B. Его можно настроить для выдачи выходного значения двумя способами:
Registers are selected by 2 control lines: one to enable the B bus and the other to enable the C bus. The B bus can be enabled by just one register at a time, since the transfer of data from 2 registers at the same time, would make this data inconsistent. In contrast, the C bus can be enabled by more than 1 register at the same time; as a matter of fact, the current value present in the C bus can be written to more than 1 register without problems. The reading and writing operations are carried out in 1 clock cycle. The MBR register is a readonly register, and it contains 2 control lines. Since it is an 8 bit register, its output is connected to the least significant 8 bits of the B bus. It can be set to provide its output in 2 ways:
Дополнительный код (MBR): все оставшиеся 24 бита шины B устанавливаются в 1, если это отрицательное число, или в 0, если это положительное число (расширение знака). Без дополнительного кода (MBRU): оставшиеся 24 бита (из общего числа 32) устанавливаются в 0.
2's complement (MBR): all the remaining 24 bits of the B bus are set to 1, if it's a negative number, or they are set to 0, if it's a positive number (sign extension). Without complement (MBRU): the remaining 24 bits (of 32 total) are set to 0.
Сдвигатель
Сдвигающий регистр содержит 32-битный вход и выход. Выход подключен непосредственно к шине C. Сдвигающий регистр используется для выполнения логических и арифметических операций сдвига путем установки сигналов управления SLL8 (Shift Left Logical) и SRA1 (Shift Right Arithmetic) соответственно.
The shifter contains a 32 bit input and output. The output is connected directly to the C bus. The shifter is used to perform logical and arithmetic shift operations, by simply setting respectively the control signal SLL8 (Shift Left Logical) and SRA1 (Shift Right Arithmetic).