Реализация автомата с операторной программой.


Постановка задачи:

Пусть имеется функционально полная система W={fi, gj, hl}, i=1,2,..,k1; j=1,2,..,k2; l=1,2,..,k3;

Построим автомат реализующий функции представленные в базисе W.

Архитектурные решения

1. Программы и данные хранятся в различных запоминающих устройствах.

2. Используется запоминающее устройство с произвольным доступом.

3. Кодируем систему команд

Данные кодируются в двоичной системе счисления. Разбиваем на clip_image002 частей, clip_image004 разрядов отводим под данные. Команда кодируется тоже; одна ячейка должна содержать код операции (КОП).

clip_image006, clip_image008 – номера, показывающие номера ячеек, где хранятся данные.

Кодирование команд и данных

Рис. 2.2. Кодирование команд и данных

clip_image012 – бинарные операции clip_image014: clip_image016

Извлекается из памяти по адресу clip_image006[1] первый операнд, по адресу clip_image008[1] – второй, выполняется операция clip_image014[1] и результат помещается в аккумулятор clip_image020.

clip_image022 – унарные операции clip_image024: clip_image026

Операнд по адресу clip_image006[2] преобразуется унарной операцией clip_image029, результат записывается в ячейку памяти по адресу clip_image008[2].

clip_image032 – тернарные операции clip_image034: clip_image036

В зависимости от значения аккумулятора значение из clip_image006[3] или clip_image008[3] заносится в аккумулятор.

clip_image008[4] может быть константой (0-местная операция). При реализации констант или же непосредственных кодируемых в коде команды данных, можно отказаться от унарных операций, т.к. clip_image038

2) Определяем объемы запоминающих устройств.

clip_image040 – разрядность адреса запоминающего устройства (число разрядов для X и Y)

clip_image042 – число разрядов на команду: clip_image044

clip_image046– наименьшее целое, превосходящее число 2n+1

Кодирование команд и данных с указанием разрядности

Рис.2.3. Кодирование команд и данных с указанием разрядности

Рассмотрим состояния автоматов

1. Выборка команд

2. Выборка операндов

3. Выполнение операции

4. Вычисление адреса следующей команды. Сохранить результат.