Мано машина
Машина Мано — компьютер , теоретически описанный М. Моррисом Мано . Он содержит центральный процессор , оперативную память и шину ввода-вывода . Его ограниченный набор команд и небольшое адресное пространство ограничивают его использование в качестве микроконтроллера , но его можно легко расширить за счет 32-битного аккумуляторного регистра и 28-битной адресации с использованием языка описания оборудования, такого как Verilog или VHDL ; и в то же время освободить место для новых инструкций.
Характеристики
[ редактировать ]Машина Мано во многих отношениях похожа на PDP-8 , например, то же адресное пространство, только один аккумуляторный регистр и множество подобных инструкций. Машина Mano имеет общий сегмент памяти данных/программ размером 4096x16, требующий 12-битной адресной шины. Шина данных имеет разрядность 16 бит. Имеются 8-битные шины ввода/вывода для внешней связи и соответствующие прерываний флаги .
Имеется один 16-битный аккумуляторный регистр и однобитные регистры ( защелки ) для суммирования переноса и остановки системы.
Набор инструкций
[ редактировать ]Существует 25 инструкций, которые делятся на 3 категории: операции прямого/косвенного обращения к памяти, операции обращения к регистру и операции ввода/вывода/прерывания.
Каждая инструкция имеет длину 16 бит [4 полубайта или 1 слово]. Это означает, что инструкции обращения к памяти содержат 4 бита данных кода операции и 12 бит, предназначенных для адреса.
Бит 15 | Биты 14-12 | Биты 11-0 | Мнемоника | Описание |
---|---|---|---|---|
0 | 0 | (Прямой адрес) | И | И направить память в аккумулятор |
0 | 1 | (Прямой адрес) | ДОБАВЛЯТЬ | Добавить прямую память в аккумулятор (влияет на бит переноса) |
0 | 2 | (Прямой адрес) | LDA | Загрузить прямую память в аккумулятор |
0 | 3 | (Прямой адрес) | СТА | Сохранить аккумулятор в прямую память |
0 | 4 | (Прямой адрес) | ХОРОШИЙ | Безоговорочный переход к прямой памяти |
0 | 5 | (Прямой адрес) | БСА | Сохраните счетчик текущей программы в прямой памяти и перейдите по следующему адресу. |
0 | 6 | (Прямой адрес) | ИСЗ | Увеличить значение в прямой памяти и пропустить следующую инструкцию, если сумма равна нулю. |
1 | 0-6 | (Косвенный адрес) | Версии приведенных выше инструкций с косвенной адресацией | |
0 | 7 | 800 | CLA | Очистить аккумулятор |
0 | 7 | 400 | КЛЕ | Очистить бит переноса |
0 | 7 | 200 | СМА | Дополните аккумулятор |
0 | 7 | 100 | СМЕ | Дополните бит переноса |
0 | 7 | 080 | ЦИР | Циркуляция аккумулятора справа (через переносной бит) |
0 | 7 | 040 | КИЛ | Циркуляционный аккумулятор слева (через переносной бит) |
0 | 7 | 020 | ИНК | Аккумулятор приращения (не влияет на бит переноса) |
0 | 7 | 010 | СПА | Пропустить следующую инструкцию, если аккумулятор положителен. |
0 | 7 | 008 | СНС | Пропустить следующую инструкцию, если аккумулятор отрицательный. |
0 | 7 | 004 | СЗА | Пропустить следующую инструкцию, если аккумулятор равен нулю. |
0 | 7 | 002 | ОБВЕНЧАЛИСЬ | Пропустить следующую инструкцию, если бит переноса равен нулю. |
0 | 7 | 001 | HLT | Остановите компьютер, очистив защелку бита остановки. |
1 | 7 | 800 | ИЯФ | Ввод от символьной шины к аккумулятору |
1 | 7 | 400 | ВНЕ | Вывод из аккумулятора на символьную шину |
1 | 7 | 200 | ЛЫЖИ | Пропустить следующую инструкцию, если установлен входной флаг. |
1 | 7 | 100 | ОБУВЬ | Пропустить следующую инструкцию, если установлен выходной флаг. |
1 | 7 | 080 | ИОН | Включить прерывания |
1 | 7 | 040 | ИОФ | Отключить прерывания |
Приложения к теории компьютерной оптимизации
[ редактировать ]Спецификации машины включают конечный автомат , который определяет микрооперации процессора. Каноническая реализация конечного автомата является отличным кандидатом на сокращение, а также может быть повторно реализована в виде конвейерного процессора.
Внешние ссылки
[ редактировать ]- Сборщик/симулятор машин Mano Марка Рота
- Двоичные файлы MANOSIM и MANOASM и страница руководства
- Реализация VHDL машины Мано Н. Нарасимхамурти.
- Реализация Verilog машины Mano от Грега Тумбса.
- Браузерный симулятор Mano Machine (Java-апплет)
Ссылки
[ редактировать ]Мано, М. Моррис (октябрь 1992 г.). Архитектура компьютерных систем (3-е изд.). Прентис-Холл. ISBN 0-13-175563-3 .