Министерство образования Российской Федерации
Саратовский государственный технический университет
Синтез операционных автоматов
лабораторная работа по курсу “Организация ЭВМ и систем”
Выполнил:
студент группы ***
***
Проверил:
преподаватель кафедры ***
***
Саратов
Построим содержательные графы выполнения трёх команд языка Ассемблера:
1. Команда умножения двоичных чисел без знака mul:
![](images/08/8350823.png)
2. Команда преобразования типовcwde:
![](images/08/8350824.png)
3. Логическая команда xor:
![](images/08/8350825.png)
Синтез канонического автомата
Входные и выходные слова:
Тип слова
|
Слово
|
Комментарий
|
Входное/выходное |
A [0:31] |
Первый операнд\результат операции |
Входное/выходное |
B [0:63] |
Второй операнд\результат операции |
Выходное |
С [26] |
Ограничение счётчика числом 32 |
Выходное |
B [63] |
Разряд, анализируемый мультиплексором |
Выходное |
П [0] |
Перенос из старшего разряда младшего слова |
Выходное |
ПП [0] |
Признак переполнения младшего слова |
Выходное |
A [0] |
Старший разряд первого операнда |
Выходное |
B [0] |
Старший разряд второго операнда |
Логические условия:
Обозначение
|
Условие
|
Комментарий
|
X1 |
C [26] |
Ограничение счётчика числом 32 |
X2 |
B [63] |
Разряд, анализируемый мультиплексором |
X3 |
П [0] |
Перенос из старшего разряда младшего слова |
X4 |
ПП [0] |
Признак переполнения младшего слова |
X5 |
A [0] |
Анализ старшего разряда первого операнда |
X6 |
B [0] |
Анализ старшего разряда второго операнда |
Микрооперации:
Обозначение
|
Микрооперация
|
Y1 |
C [0:31]:=000…0 |
Y2 |
C [0:31]:=C [0:31] + 1 |
Y3 |
B [33:63]:=B [32:62] |
Y4 |
B [1:32]:=B [0:31] + 000…0 |
Y5 |
B [1:32]:=B [0:31] + A [0:31] |
Y6 |
П [0]:=1 |
Y7 |
ПП [0]:=1 |
Y8 |
B [0:15]:=111…1 |
Y9 |
B [0:15]:=000…0 |
Y10 |
A [0]:=1 |
Y11 |
A [0]:=0 |
Y12 |
A [0:31]:=A [1:31].A [0] |
Y13 |
B [0:31]:=B [1:31].B [0] |
Построим логическую схему канонического автомата:
![](images/08/8350826.png)
Синтез М-автомата
Распределение регистров по шинам A1 и A2: A1 (C, B, ПП) и A2 (A).
Операторы, реализуемые М-автоматом:
Ym
|
Микрооперации
|
A1=Si
|
A2=Sj
|
Z=
j
(A1,A2)
|
Sk=Z
|
Y1 |
C [0:31]:=000…0 |
A1=C |
Z [0:31]:=000…0 |
C [0:31]:=Z [0:31] |
Y2 |
C [0:31]:=C [0:31] + 1 |
A1=C |
Z [0:31]:=A1 [0:31] + 1 |
C [0:31]:=Z [0:31] |
Y3 |
B [33:63]:=B [32:62] |
A1=B |
Z [33:63]:=A1 [32:62] |
B [33:63]:=Z [33:63] |
Y4 |
B [1:32]:=B [0:31] + 000…0 |
A1=B |
Z [1:32]:=A1 [0:31] + 000…0 |
B [1:32]:=Z [1:32] |
Y5 |
B [1:32]:=B [0:31] + A [0:31] |
A1=B |
A2=A |
Z [1:32]:=A1 [0:31] + A2 [0:31] |
B [1:32]:=Z [1:32] |
Y7 |
ПП [0]:=1 |
A1=ПП |
Z [0]:=1 |
ПП [0]:=Z [0] |
Y8 |
B [0:15]:=111…1 |
A1=B |
Z [0:15]:=111…1 |
B [0:15]:=Z [0:15] |
Y9 |
B [0:15]:=000…0 |
A1=B |
Z [0:15]:=000…0 |
B [0:15]:=Z [0:15] |
Y10 |
A [0]:=1 |
A2=A |
Z [0]:=1 |
A [0]:=Z [0] |
Y11 |
A [0]:=0 |
A2=A |
Z [0]:=0 |
A [0]:= Z [0] |
Y12 |
A [0:31]:=A [1:31].A [0] |
A2=A |
Z [0:31]:=A2 [1:31].A2 [0] |
A [0:31]:= Z [0:31] |
Y13 |
B [0:31]:=B [1:31].B [0] |
A1=B |
Z [0:31]:=A1 [1:31].A1 [0] |
B [0:31]:= Z [0:31] |
Управляющие сигналы и микрооперации:
Выборка операндов
|
Преобразование слов
|
Загрузка результата
|
ai
|
A1=Si
|
bj
|
A2=Sj
|
j
m
|
Z=
j
m
(A1,A2)
|
dk
|
Sk=Z
|
a1 |
A1=C |
b1 |
A2=A |
j1 |
Z [0:31]:=000…0 |
d1 |
C [0:31]:=Z [0:31] |
a2 |
A1=B |
j2 |
Z [0:31]:=A1 [0:31] + 1 |
d2 |
B [33:63]:=Z[33:63] |
a3 |
A1=ПП |
j3 |
Z [33:63]:=A1 [32:62] |
d3 |
B [1:32]:=Z [1:32] |
j4 |
Z [1:32]:=A1 [0:31] + 000…0 |
d4 |
ПП [0]:=Z [0] |
j5 |
Z [1:32]:=A1 [0:31] + A2 [0:31] |
d5 |
B [0:15]:=Z [0:15] |
j6 |
Z [0]:=1 |
d6 |
A [0]:=Z [0] |
j7 |
Z [0:15]:=111…1 |
d7 |
A [0:31]:= Z [0:31] |
j8 |
Z [0:15]:=000…0 |
d8 |
B [0:31]:= Z [0:31] |
j9 |
Z [0]:=0 |
j10 |
Z [0:31]:=A2 [1:31].A2 [0] |
j11 |
Z [0:31]:=A1 [1:31].A1 [0] |
Обобщённый оператор: Z = A3 + A4, где:
000…0; j1, j8
A1 [0:31]; j2, j4, j5
A1 [32:62]; j3
1[0]; j6 111…1; j7
0 [0]; j9
A2 [1:31].A2 [0]; j10
A1 [1:31].A1 [0]; j11
000…0; j1, j3, j4, j6, j7, j8, j9, j10, j11
1 [31]; j2 A2 [0:31]; j5
Кодирование микроопераций наборами управляющих сигналов:
Y1 |
a1 |
- |
j1 |
d1 |
Y2 |
a1 |
- |
j2 |
d1 |
Y3 |
a2 |
- |
j3 |
d2 |
Y4 |
a2 |
- |
j4 |
d3 |
Y5 |
a2 |
b1 |
j5 |
d3 |
Y7 |
a3 |
- |
j6 |
d4 |
Y8 |
a2 |
- |
j7 |
d5 |
Y9 |
a2 |
- |
j8 |
d5 |
Y10 |
- |
b1 |
j6 |
d6 |
Y11 |
- |
b1 |
j9 |
d6 |
Y12 |
- |
b1 |
j10 |
d7 |
Y13 |
a2 |
- |
j11 |
d8 |
Структурная схема М-автомата:
![](images/08/8350829.png) ![](images/08/8350830.png) |