Синтез операционных автоматов
Синтез операционных автоматов
Министерство образования Российской Федерации
Саратовский государственный технический университет
Синтез операционных автоматов
лабораторная работа по курсу “Организация ЭВМ и систем”
Выполнил: студент группы ***
***
Проверил: преподаватель кафедры ***
***
Саратов
Построим содержательные графы выполнения трёх команд языка Ассемблера:
1. Команда умножения двоичных чисел без знака mul:
2. Команда преобразования типов cwde:
3. Логическая команда xor:
Синтез канонического автомата
Входные и выходные слова:
Тип слова
|
Слово
|
Комментарий
|
|
Входное/выходное
|
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]
|
|
|
Построим логическую схему канонического автомата:
Синтез М-автомата
Распределение регистров по шинам A1 и A2: A1 (C, B, ПП) и A2 (A).
Операторы, реализуемые М-автоматом:
Ym
|
Микрооперации
|
A1=Si
|
A2=Sj
|
Z=(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
|
m
|
Z=m(A1,A2)
|
dk
|
Sk=Z
|
|
a1
|
A1=C
|
b1
|
A2=A
|
1
|
Z [0:31]:=000…0
|
d1
|
C [0:31]:=Z [0:31]
|
|
a2
|
A1=B
|
|
|
2
|
Z [0:31]:=A1 [0:31] + 1
|
d2
|
B [33:63]:=Z[33:63]
|
|
a3
|
A1=ПП
|
|
|
3
|
Z [33:63]:=A1 [32:62]
|
d3
|
B [1:32]:=Z [1:32]
|
|
|
|
|
|
4
|
Z [1:32]:=A1 [0:31] + 000…0
|
d4
|
ПП [0]:=Z [0]
|
|
|
|
|
|
5
|
Z [1:32]:=A1 [0:31] + A2 [0:31]
|
d5
|
B [0:15]:=Z [0:15]
|
|
|
|
|
|
6
|
Z [0]:=1
|
d6
|
A [0]:=Z [0]
|
|
|
|
|
|
7
|
Z [0:15]:=111…1
|
d7
|
A [0:31]:= Z [0:31]
|
|
|
|
|
|
8
|
Z [0:15]:=000…0
|
d8
|
B [0:31]:= Z [0:31]
|
|
|
|
|
|
9
|
Z [0]:=0
|
|
|
|
|
|
|
|
10
|
Z [0:31]:=A2 [1:31].A2 [0]
|
|
|
|
|
|
|
|
11
|
Z [0:31]:=A1 [1:31].A1 [0]
|
|
|
|
|
Обобщённый оператор: Z = A3 + A4, где:
000…0; 1, 8
A1 [0:31]; 2, 4, 5
A1 [32:62]; 3
1[0]; 6
111…1; 7
0 [0]; 9
A2 [1:31].A2 [0]; 10
A1 [1:31].A1 [0]; 11
000…0; 1, 3, 4, 6, 7, 8, 9, 10, 11
1 [31]; 2
A2 [0:31]; 5
Кодирование микроопераций наборами управляющих сигналов:
Y1
|
a1
|
-
|
1
|
d1
|
|
Y2
|
a1
|
-
|
2
|
d1
|
|
Y3
|
a2
|
-
|
3
|
d2
|
|
Y4
|
a2
|
-
|
4
|
d3
|
|
Y5
|
a2
|
b1
|
5
|
d3
|
|
Y7
|
a3
|
-
|
6
|
d4
|
|
Y8
|
a2
|
-
|
7
|
d5
|
|
Y9
|
a2
|
-
|
8
|
d5
|
|
Y10
|
-
|
b1
|
6
|
d6
|
|
Y11
|
-
|
b1
|
9
|
d6
|
|
Y12
|
-
|
b1
|
10
|
d7
|
|
Y13
|
a2
|
-
|
11
|
d8
|
|
|
Структурная схема М-автомата:
|