Синтез операционных автоматов

Министерство образования Российской Федерации

Саратовский государственный технический университет

































Синтез операционных автоматов

лабораторная работа по курсу “Организация ЭВМ и систем”





























 Выполнил: студент группы *** 	

   ***			             

Проверил: преподаватель кафедры ***

  ***









Саратов

Построим содержательные графы выполнения трёх команд языка Ассемблера:



Команда умножения двоичных чисел без знака mul:





Начало

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



Команда преобразования типов cwde:





Начало

A [0]

B [0:15]:=111…1

B [0:15]:=000…0

Конец

1

0

Логическая команда xor:



 

Начало

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]















Построим логическую схему канонического автомата:







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=(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



A3 =                           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          



A4 =                           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



Структурная схема М-автомата:





Z



A



1ый операнд

d6 [0]

x

x

d7 [0:31]





B

2ой операнд

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;            1,8

A1 [0:31];   2,4,5 

A1 [32:62];           3

A3 [0];                  6

x

x

x

x

111…1;                 7

A3 [0];                  9 

A2 [1:31].A2 [0]; 10

A1 [1:31].A1 [0]; 11



A4

x

x

x

000…0; 1,3,4,6, 7,8,9,10,11

A4 [31];                2

A2 [0:31];             5



1 

1 

0 

  П