В качестве операционного автомата для процессорных элементов микро ЭВМ выберем операционный автомат М-типа.
Автоматы данного типа меньшую аппаратную сложность, однако, производительность вычислений уменьшается до одной операции за такт. Логические условия в автомате М-типа могут формироваться как в АЛУ, так и в самих регистрах – путём соответствующих выводов к управляющему автомату.
Далее синтезирован операционный автомат М-типа, реализующий арифметическую операцию, заданную в условии ().
Блок-схема микроопераций, реализующая данную математическую операцию представлена ниже. (Рис. 4.)
Рис. 4.1 Блок схема микроопераций.
Рис. 4.2 Блок схема микроопераций.
Рис. 4.3 Блок схема микроопераций.
В структуре М-автомата использованы две шины данных ШД1 и ШД2. Они соединены с входами АЛУ А1 и А2 соответственно. Разделим множество операндов АЛУ на два подмножества исходя из условий.
1. Если регистры Ri и Rj операнды одной микрооперации, то они включаются в различные подмножества.
|
|
2. Каждое слово R должно принадлежать хотя бы одному из подмножеств.
3. Подмножества формируются таким образом, чтобы затраты на коммутацию были минимальные.
Для определения каждого из подмножеств построим таблицу выполняющихся микроопераций, и распределим регистры по шинам.
Результат произведенных действий поместим в таблицу.
Содержание микроопераций | ШД1 | ШД2 | |
Рг. I[3.0]:= 1 | - | 1 | |
Рг. Т[23.0]:= 0 | - | - | |
Рг. LN[23.0]:=0 | - | - | |
Рг. К[3.0]:= 10 | - | 10 | |
Рг. Х[23.0]:= Х | - | Х | |
Рг. Х[23.0]:= Рг. X[23.0] – 1 | - | Рг. Х | |
Рг. Р[23.0]:= Рг. Х[23.0] | - | Рг.Х | |
Рг. Чт.[23.0]:= 0 | - | - | |
Рг. Дт.:=Рг.I. | - | Рг.I | |
Рг.Дм.[23.0]:=Рг.Х[23.0] | - | Рг.Х | |
Рг.Сч.[23.0]:= 23 | - | 23 | |
Рг.Дм.[23.0]:= Рг.Дм.[23.0] + Рг.Дт + 1 | Рг.Дм. | Рг.Дт. | |
Т3:= 1 | - | - | |
Т3:= 0 | - | - | |
Рг.Дм.:= Рг.Дм.[23.0] + Рг. Дт. [23.0] | Рг.Дм. | Рг.Дт. | |
Рг.Дм.:= L1(Рг.Дм.[23.0].0) | Рг.Дм. | - | |
Рг.Чт.:= L1(Рг.Чт.[23.0].0) | - | Рг.Чт. | |
Рг.Чт.[23.0]:= Рг.Чт.[23.0] + 1 | - | Рг.Чт. | |
Рг.Сч.[23.0]:= Рг.Сч.[23.0] – 1 | - | Рг.Сч. | |
Рг.Т.:= Рг.Чт.[23.0] | - | Рг.Чт. | |
Рг.LN[23.0]:= Рг.LN[23.0] + Рг.Т.[23.0] | Рг.LN | Рг.Т | |
Рг.I[23.0]:= Рг.I[23.0] + 1 | - | Рг.I | |
Рг.См.[23.0]:= 0 | - | - | |
Рг.Мн.[23.0]:= Рг.Х[23.0] | - | Рг.Х | |
Рг.Мт.[23.0]:= Рг.Р[23.0] | - | Рг.Р | |
Рг.Сч.[23.0]:= 13 | - | 13 | |
Tд.:= 0 | - | - | |
Рг.См.[23.0]:= Рг.См.[23.0] + Рг.Мн.[23.0] | Рг.См. | Рг.Мн. | |
Рг.См.[23.0]:= Рг.См. + L1(Рг.Мн.[23.0].0) | Рг.См. | Рг.Мн. | |
Рг.См.[23.0]:= Рг.См. + Рг.Мн.[23.0] + 1 | Рг.См. | Рг.Мн. | |
Tд.:= 1 | - | - | |
Рг.Мт.[23.0]:= R2(00.Рг.Мт.[23.0]) | - | Рг.Мт. | |
Рг.Мн.[23.0]:= L2(Рг.Мн.[23.0].00) | - | Рг.Мн. | |
Рг.Х[23.0]:= Рг.См.[23.0] | Рг.См. | - | |
Рг.Х[23.0]:= Рг.Х.[23.0] + 1 | - | Рг.Х | |
Рг.К.:= Рг.К.[23.0] – 1 | - | Рг.К. |
Таким образом в первое подмножество попадают регистры:
- Рг.Дм;
- Рг.См;
- Рг.LN.
Во второе подмножество попадают регистры:
- Рг.Х;
- Рг.I;
- Рг.Дт;
- Рг.Чт;
- Рг.Т;
|
|
- Рг.Сч;
- Рг.Р;
- Рг.Мн.;
- Рг.Мт;
- Рг.К.
Поставим в соответствие каждой микрооперации выполняемой функции оператор присваивания АЛУ. Эти операторы характеризуют действия, выполняемые непосредственно в АЛУ.
Составим таблицу соответствующих микроопераций:
Содержание оператора D | Приемник результата | ||
D:= 000…01 | D->Рг.I | ||
D:= 000…0 | D->Рг.Т. | ||
D:= 000…0 | D->Рг.LN | ||
D:= 000…01010 | D->Рг.К | ||
D:= A2[23.0] | D->Рг.Х | ||
D:= A2[23.0] + 111…1 | D->Рг.Х | ||
D:= A2[23.0] | D->Рг.Р | ||
D:= 00..00 | D->Рг.Чт | ||
D:= A2[23.0] | D->Рг.Дт | ||
D:= A2[23.0] | D->Рг.Дм. | ||
D:= 000…010111 | D->Рг.Сч. | ||
D:= A1[23.0] + A2[23.0] + 1 | D->Рг.Дм. | ||
D:= 000…01 | D->Т3 | ||
D:= 000…0 | D->Т3 | ||
D:= A1[23.0] + A2[23.0] | D->Рг.Дм. | ||
D:= L1(A1[23.0].0) | D->Рг.Дм. | ||
D:= L1(A2[23.0].0) | D->Рг.Чт | ||
D:= A2[23.0] + 1 | D->Рг.Чт | ||
D:= A2[23.0] + 1111…11 | D->Рг.Сч. | ||
D:= A2[23.0] | D->Рг.Т. | ||
D:= A1[23.0] + A2[23.0] | D->Рг.LN | ||
D:= A2[23.0] + 1 | D->Рг.I | ||
D:= 000…00 | D->Рг.См. | ||
D:= A2[23.0] | D->Рг.Мн. | ||
D:= A2[23.0] | D->Рг.Мт. | ||
D:= 000…01101 | D->Рг.Сч. | ||
D:= 000…00 | D->Тд | ||
D:= A1[23.0] + A2[23.0] | D->Рг.См. | ||
D:= A2[23.0] + L1(A2[23.0].0) | D->Рг.См. | ||
D:= A1[23.0] + A2[23.0] + 1 | D->Рг.См. | ||
D:= 000…01 | D->Тд. | ||
D:= R2(00.A2[23.0]) | D->Рг.Мт | ||
D:= L2(A2[23.0].00) | D->Рг.Мн. | ||
D:= A1[23.0] | D->Рг.Х | ||
D:= A2[23.0] + 1 | D->Рг.Х | ||
D:= A2[23.0] + 111…11 | D->Рг.К. |
Построим таблицу выбора источников операндов для АЛУ и таблицу выбора приемников результатов.
Таблица источников.
Источники | Сигналы управления | ||
A1 | A2 | ai | bj |
- | I | - | b1 |
- | T | - | b2 |
LN | - | a3 | - |
- | К | - | b4 |
- | X | - | b5 |
- | P | - | b6 |
- | Чт | - | b7 |
- | Дт | a9 | b8 |
Дм | - | - | |
- | Сч | - | b10 |
- | Мн | - | b11 |
- | Мт | - | b12 |
См | - | a13 | - |
Таблица приемников.
Приемник | Сигнал управления |
D->Рг.k | Dк |
I | d1 |
T | d2 |
LN | d3 |
K | d4 |
X | d5 |
P | d6 |
Чт | d7 |
Дт | d8 |
Дм | d9 |
Сч | d10 |
Мн | d11 |
Мт | d12 |
См | d13 |
Тд | d14 |
Т3 | d15 |
Выполним кодирование микроопераций наборами управляющих сигналов:
- | - | |||
- | - | |||
- | - | |||
- | - | |||
- | - | |||
- | ||||
- | ||||
- | - | |||
- | ||||
- | ||||
- | - | |||
- | - | |||
- | - | |||
- | ||||
- | ||||
- | ||||
- | ||||
- | ||||
- | ||||
- | - | |||
- | ||||
- | ||||
- | - | |||
- | - | |||
- | - | |||
- | ||||
- | ||||
- | ||||
- | ||||
- |
На основании полученных данных составим подмножества эквивалентных операторов:
;
;
Построим обобщенные операторы.
1. Класс
Для установки регистров
2. Класс
D = B1 + B2 + B3
При этом
Объединим классы k3, k4, k5, k7 в класс k8. Для этого обобщенный оператор примет вид:
Класс :
D = B1 + B2
Класс :
D = B1
Построим структурные схемы узлов, реализующих обобщенные операторы:
Класс :
Класс :
Класс :
На основании полученных выше данных построим обобщенную схему операционного автомата. (Рис. 5).
Рис. 5. Обобщенная схема операционного автомата.