Міністерство освіти Російської Федерації Саратовський державний технічний університет Синтез операційних автоматів лабораторна робота з курсу "Організація ЕОМ та систем"
Виконав: студент групи ***
***
Перевірив: викладач кафедри ***
***
Саратов
Побудуємо змістовні графи виконання трьох команд мови Асемблера:
1. Команда множення двійкових чисел без знаку mul:
SHAPE \ * MERGEFORMAT
B [1:32]: = B [0:31] + 000 ... 0
|
B [1:32]: = B [0:31] + A [0:31]
|
2. Команда
перетворення типів cwde:
SHAPE \ * MERGEFORMAT
3. Логічна команда xor:
SHAPE \ * MERGEFORMAT
A [0:31]: = A [1:31]. A [0]
|
B [0:31]: = B [1:31]. B [0]
|
Синтез канонічного автомата Вхідні і вихідні слова:
Тип слова
| Слово
| Коментар
|
Вхідна / вихідна
| 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]
|
Побудуємо логічну схему канонічного автомата:
SHAPE \ * MERGEFORMAT
Синтез М-автомата Розподіл регістрів по шинах 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
|
Структурна схема М-автомата:
SHAPE \ * MERGEFORMAT