Министерство образования Российской Федерации
Саратовский государственный технический университет
Синтез операционных автоматов
лабораторная работа по курсу “Организация ЭВМ и систем”
Выполнил: студент группы ***
***
Проверил: преподаватель кафедры ***
***
Саратов
Построим содержательные графы выполнения трёх команд языка Ассемблера:
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=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 | jm | Z=jm(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, j8A1 [0:31]; j2, j4, j5
A1 [32:62]; j3
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 |
Структурная схема М-автомата: