Основываясь на МТ можно получить некоторые технические средства, которые позволяют реализовать нам эти подходы.
Для того чтобы процессор мог реализовать любую обработку данных, необходимо обеспечить функциональную полноту операций выполняемых этим блоком. Арифметические многоразрядные операции {+,-,*} являются функционально-полными. Что касается других операций — это вопрос эффективности.
Есть 2 частных случая ОА:
1. Бинарная программа.
2. Операторная программа.
Как реализовать ОА, производящий вычисления в булевой алгебре и мог бы вычислять любую булевую функцию или систему функций (когда несколько разрядов результата).
Есть 2 подхода, основанные на представлении программ в бинарном или операторном виде.
1. Самая простая – бинарная. Структуру бинарной программы можно выявить из известной теоремы разложения булевой функции.
Если у нас есть произвольная булевая функция от n переменных, то для произвольной переменной функция может быть представлена ![]()
Мы можем из выражения всегда исключать произвольную переменную, причем в этом выражение эта переменная не будет использоваться кроме как в указанных местах а это уже функция от n-1 переменных, т.е.
,
,
.
Для реализации произвольной булевой функции нам необходимо реализовать всего лишь 2 команды:
· Операция присвоения результата:y=s, s?{0,1}
· Команда условного перехода: если
,то
, иначе h(x’).
Мы раскладываем каждую из этих функций пока не получим функцию от 1 переменной. Она будет простая.
Попробуем реализовать устройство реализующее произвольную булевую программу а булевую программу мы представим в виде таких графов Построение начинается с кодирования алфавита.
ОБ-выполняет обработку данных
УБ-следит за последовательностью выполнения команд и обеспечивает доступ к требуемым данным
Результат вычисления возвращается в ЗУД УБ опознавая команды извлекает операцию и передает в ОБ УБ руководит последовательным выполнением команд и последовать доступа к данным
В рамках такого подхода нам нужно закодировать алфавит Если мы будем использовать двоичное кодирование нам требуется знать сколько требуется разрядов для представления команд а сколько для данных Поэтому можно сказать что данные у нас одноразрядные а результат тоже одноразрядный
Представим формат команды:
|
2 |
4 |
8 |
|
КОП |
Адрес xi |
Адрес след. команды |
Потребуется 2 команды:
· Присвоить результату какое-то значение
· Переход
Каждая команда бинарной программы обращается к одной булевой переменной, которая находится в ЗУД Мы должны сообщить ЗУД какую переменную требуется взять или из какой ячейки памяти считать одноразрядное булевое значение Условная команда помимо извлечения переменной в зависимости от того чему равно это значение она должна выполнить другую команду
Мы будим кодировать адрес одной команды в случае удачи выполняется эта команда а в случае неудачи команда адрес которой на 1 больше текущей Максимальное количество команд в нашем устройстве Мы можем реализовать произвольную булевую функцию которая зависит не более чем от 16 переменных и реализующей программу содержащую не более 256 команд (это смысл ограничений при переходе от МТ к реальному алгоритмическому устройству)
Что мы сейчас сделали – выбрали структуру декомпозировали то что хотели и отчасти договорились о кодировании алфавита описали функцию каждой из частей и описали их взаимодействие
Как работает наше устройство?
По нажатию кнопки выставляется нулевой адрес и извлекается нулевая команда УБ производит интерпретацию этой команды и под действием этой команды извлекается первая переменная выставляя адрес этой команды и ОБ сообщаем что надо сделать
00-переход Xi=0
01-переход Xi=1
и две команды останова:
10-присвоить y=0
11-присвоить y=1
Функциональная схема:
Комбинационная схема реализует 23 функции от 25 переменных
D – элемент памяти синхронный 2 разряда которого используются для кодирования состояния ОА 8разрядов для адреса текущей исполняемой команды
00-останов
01-выборка команды
10-чтение данных
11-выполнение
Этот автомат получился в результате теоремы о структурном синтезе автомата, комбинационная часть отвечает за вызов и комбинационная часть отвечающая за смену состояния.
По приходу тактового сигнала автомат переходит из состояния останова в состояние работы. Это состояние – выборка команды. По этому состоянию то, что записано..
8 разрядов из КС поступают в ЗУК. Это устройство выставляет 14 разрядов кода нулевой команды, записанной по адресу 0 в ЗУК. После того, как этот код пришел, приходит следующий тактовый сигнал, который опять изменяет состояние. Следующее состояние — чтение данных.
