Міністерство освіти Російської Федерації
Саратовський державний технічний університет
Синтез операційних автоматів
лабораторна робота з курсу "Організація ЕОМ та систем"
Виконав: студент групи ***
***
Перевірив: викладач кафедри ***
***
Саратов
Побудуємо змістовні графи виконання трьох команд мови Асемблера:
1. Команда множення двійкових чисел без знаку mul:
SHAPE \ * MERGEFORMAT
2. Команда перетворення типів cwde:
SHAPE \ * MERGEFORMAT
3. Логічна команда xor:
SHAPE \ * MERGEFORMAT
Синтез канонічного автомата
Вхідні і вихідні слова:
Логічні умови:
Мікрооперації:
Побудуємо логічну схему канонічного автомата:
SHAPE \ * MERGEFORMAT
Синтез М-автомата
Розподіл регістрів по шинах A1 і A2: A1 (C, B, ПП) і A2 (A).
Оператори, що реалізуються М-автоматом:
Керуючі сигнали і мікрооперації:
Узагальнений оператор: 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
Кодування мікрооперацій наборами керуючих сигналів:
Структурна схема М-автомата:
SHAPE \ * MERGEFORMAT
Саратовський державний технічний університет
Синтез операційних автоматів
лабораторна робота з курсу "Організація ЕОМ та систем"
Виконав: студент групи ***
***
Перевірив: викладач кафедри ***
***
Саратов
Побудуємо змістовні графи виконання трьох команд мови Асемблера:
1. Команда множення двійкових чисел без знаку mul:
SHAPE \ * MERGEFORMAT
Початок |
C [0:31]: = 000 ... 0 |
C [26] |
C [0:31]: = C [0:31] + 1 |
B [63] |
B [33:63]: = B [32:62] |
B [33:63]: = B [32:62] |
B [1:32]: = B [0:31] + 000 ... 0 |
B [1:32]: = B [0:31] + A [0:31] |
П |
ПП: = 1 |
Кінець |
1 |
0 |
1 |
0 |
1 |
0 |
2. Команда перетворення типів cwde:
SHAPE \ * MERGEFORMAT
Початок |
A [0] |
B [0:15]: = 111 ... 1 |
B [0:15]: = 000 ... 0 |
Кінець |
1 |
0 |
3. Логічна команда xor:
SHAPE \ * MERGEFORMAT
Початок |
C [0:31]: = 000 ... 0 |
C [26] |
C [0:31]: = C [0:31] + 1 |
A [0] |
B [0] |
B [0] |
A [0]: = 0 |
A [0]: = 1 |
Кінець |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
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
A |
B |
0 |
0 |
31 |
0 |
63 |
1 операнд |
2 операнд |
1 |
0 |
A [1:31]. A [0] |
Y10 |
Y11 |
Y12 |
B [32:62] |
B [0:31] |
000 ... 0 |
A [0:31] |
B [0:31] |
111 ... 1 |
000 ... 0 |
B [1:31]. B [0] |
Y3 |
Y4 |
Y5 |
Y8 |
Y9 |
Y13 |
З |
0 |
31 |
000 ... 0 |
Y1 |
C [0:31] |
1 |
Y2 |
П |
ПП |
1 |
Y6 |
Y7 |
S |
S |
1 |
111 ... 1 |
B [0:63] |
B [63] |
П [0] |
ПП [0] |
A [0] |
B [0] |
A [0:31] |
Синтез М-автомата
Розподіл регістрів по шинах 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] |
A1 [0:31]; j2, j4, j5
A1 [32:62]; j3
|
111 ... 1; j7
0 [0]; j9
A2 [1:31]. A2 [0]; j10
A1 [1:31]. A1 [0]; j11
|
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 |
|
A |
Першого операнд |
d6 [0] |
x |
x |
d7 [0:31] |
B |
Другий операнд |
x |
x |
x |
x |
d2 [33:63] |
d3 [1:32] |
d5 [0:15] |
d8 [0:31] |
C |
x |
d1 [0:31] |
ПП |
x |
d4 |
A1 |
x |
a2 |
x |
a1 |
A2 |
x |
b1 |
A3 |
x |
x |
x |
x |
000 ... 0; j1, j8 |
A1 [0:31]; j2, j4, j5 |
A1 [32:62]; j3 |
A3 [0]; j6 |
x |
x |
x |
x |
111 ... 1; j7 |
A3 [0]; j9 |
A2 [1:31]. A2 [0]; j10 |
A1 [1:31]. A1 [0]; j11 |
A4 |
x |
x |
x |
000 ... 0; j1, j3, j4, j6, j7, j8, j9, j10, j11 |
A4 [31]; j2 |
A2 [0:31]; j5 |
1 |
1 |
0 |
П |