Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Турчин Д.Е. АЭВМиС. Практикум 2012 (ИТ).doc
Скачиваний:
92
Добавлен:
10.05.2015
Размер:
1.31 Mб
Скачать

2.10. Программная модель alu-1

2.10.1. Общие сведения о программной модели alu-1

Программная модель ALU-1 включает в себя две основные части: операционный автомат и управляющий автомат.

Операционный автомат предназначен для реализации арифметических операций над двоичными числами с фиксированной запятой в формате 1 байт без знака (от 0 до 255) или 1 байт со знаком (от – 127 до + 127), а также логических операций над двоичными векторами длиной 1 байт.

2.10.2. Операционный автомат

Операционный автомат позволяет реализовывать следующие арифметические операции:

• сложение без знака;

• вычитание без знака;

• сложение/вычитание в прямом, обратном или дополнительном кодах;

• умножение (без знака или со знаком);

• деление (без знака или со знаком) способами с восстановлением остатка или без его восстановления.

Также операционный автомат может выполнять поразрядные логические операции:

• конъюнкция;

• дизъюнкция;

• неравнозначность;

• инверсия.

Результатом всех арифметических и логических операций (кроме умножения) является байт в формате исходных данных. Произведение может быть представлено в 8- или 16-разрядном формате.

На рис. 2.18 показано главное окно операционного автомата.

Рис. 2.18. Операционный автомат ALU-1

Операционный автомат включает в себя следующие элементы:

• входные 8-разрядные регистры Ax и Bx, позволяющие загружать исходные операнды;

• 8-разрядные регистры операндов;

• 8-разрядный арифметико-логический блок (АЛБ) с триггерами входного P0 и выходного P8 переносов;

• два 8-разрядных двухвходовых мультплексора MUX, выбирающие для входов АЛБ прямые или инверсные значения регистров A и B;

• блок сдвигателя, который включает 8-разрядный реверсивный комбинационный сдвигатель Сдв и два триггера DL и DR, формирующие/принимающие данные слева и справа;

• два 8-разрядных регистра результата C и D;

• демультиплексор DMUX, передающий значение вектора F[7;0] с выхода блока;

• 8-разрядную шину, роль источников на которую могут играть регистры Ax, Bx, C, D, а приемников – A и/или B;

2.10.3. Регистры операционного автомата

Входные и выходные регистры операционного автомата Ax, Bx, C, D могут быть подключены к шине или отключены от нее. В данной модели шину можно рассматривать как набор из восьми переменных (по числу элементов памяти в регистрах), каждая из которых может принимать три значения: «неактивна», «0», «1».

2.10.4. Арифметико-логический блок

Арифметико-логический блок (АЛБ) включает комбинационную схему функционального преобразователя и два элемента памяти: триггеры P0 и P8.

Состояние триггера P0 может быть установлено с помощью микроопераций y14 и y15 и участвует в микрооперациях сложения (вычитания) в качестве значения переноса (заема) младшего разряда. Триггер P8 в арифметических операциях принимает значение переноса (заема), возникающего из старшего разряда, а в логических микрооперациях всегда устанавливается в «0». Остальные микрооперации сохраняют ранее установленное значение P8.

2.10.5. Блок сдвигателя

Блок сдвигателя включает в себя собственно реверсивный сдвигатель Сдв на один разряд и два триггера данных («слева» DL и «справа» DR). Каждый из этих триггеров может устанавливаться в произвольные значения микрооперациями (y28, y29, y30, y31) и принимать значение разрядов, теряемых при сдвиге вектора Q. Текущие значения триггеров могут рассматриваться как значения логических условий x2 и x3.