Проектирование процессора для заданной системы команд

Автор работы: Пользователь скрыл имя, 29 Октября 2013 в 21:20, курсовая работа

Описание работы

Микропроцессор — процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы или комплекта из нескольких специализированных микросхем (в отличие от реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели).
Долгое время центральные процессоры создавались из отдельных микросхем малой и средней интеграции, содержащих от нескольких единиц до нескольких сотен транзисторов. Развитие микроэлектронных технологий позволило существенно повысить вместимость кристаллов электронных схем. В 1989 году появился микропроцессор Intel486.

Файлы: 1 файл

записка.doc

— 1.58 Мб (Скачать файл)

СхНул – схема определения равенства нулю операнда представлена на рисунке 14.

d0-d15 – разряды проверяемого на чётность слова.

Z – результат. Z=1, если слово равно нулю. Z=0 при ненулевом значении слова.

 

Рис. 14. схема СхЧетн

СОЛО – схема однобайтовых логических операций (операция логическое ИЛИ) представлена на рисунке 15:

Рис. 15. Схема СОЛО

a0..a7 – разряды первого операнда;

b0..b7 – разряды второго операнда;

r0..r7 – результат операции логическое  ИЛИ.

СхЧетн – схема определения четности количества единиц результата представлена на рисунке 16.

Рис. 16. схема СхЧетн

r0-r7 – разряды проверяемого на чётность байта.

e – результат. e=1, если байт содержит чётное число единиц. e=0, если байт содержит нечётное число единиц.

ПР – схема определения признака переполнения представлена на рисунке 17.

Рис. 17. схема ПР

На входы схемы ПР из сумматора поступают сигналы переносов из знакового разряда s0 и в знаковый из старшего цифрового разряда s1. Признак переполнения  формируется следующей булевой функцией: .

Структурная схема микропроцессора представлена в Приложении 1.

2.3 Разработка микропрограммы

Программа в ЭВМ реализуется  по средствам последовательного  выполнения команд. Она состоит из следующих основных этапов:

– выборка и дешифрация команд;

– выборка операндов;

– выполнение операции;

– запись результата;

– формирование адреса следующей команды.

1. Блоки 1-16: выборка команды.

2. Блоки 17-19, 21, 48, 176: дешифрация команды.

3. Блоки 22-47: реализация команды AND.

    • Блоки 22-26: выборка первого операнда из РОН.
    • Блоки 27-28: выборка второго операнда из команды.
    • Блок 29: пересылка первого и второго операнда во входные регистры СОЛО.
    • Блок 30: выполнение операции логического И над операндами .
    • Блоки 31-43: установка флагов.
    • Блоки 44-46: запись результата в РОН.
    • Блок 47: инкремент счетчика команд.

4. Блоки 48-175: реализация команды FADD:

    • Блоки 49-50: выборка первого операнда из стека.
    • Блоки 51-56: пересылка первого операнда во входной регистр АЛУ.
    • Блоки 57-80: выборка и пересылка второго операнда из памяти во входной регистр АЛУ.
    • Блок 81: запись знаков операндов в триггеры знаков.
    • Блоки 83-85: приведение порядка второго операнда к порядку расширенного формата.
    • Блоки 86-99: проверка на знак и перевод мантисс в дополнительных код.
    • Блоки 100-102: вычитание порядков.
    • Блоки 103-134: сдвиг вправо мантиссы меньшего числа
    • Блок 38: сложение мантисс.
    • Блоки 138-142: установка флагов.
    • Блоки 143-156, 169-175: нормализация результата.
    • Блоки 157-168: формирование результата сложения чисел и запись результата в стек.
    • Блок 168: инкремент счетчика команд.

6. Блоки 177 – 193: выполнение команды JCXZ:

    • Блоки 177-181: проверка регистра CX на равенство нулю.
    • Блоки 182-183: выборка первого операнда из команды.
    • Блоки 183-185: выборка второго операнда из счетчика команд.
    • Блок 186: пересылка первого и второго операнда во входные регистры сумматора.
    • Блоки 187-189: приведение второго операнда.
    • Блок 190: выполнение сложения операндов.
    • Блоки 191-193: запись нового значения счетчика команд.

7. Блок 20: конец алгоритма.

В таблице 2 приведен список микроопераций, реализуемых в микропрограмме. В таблице 3 приведен список логических условий.

Таблица 2. Микрооперации, реализуемые в микропрограмме

y1

СчК:=НА

y18

РгA := Рг1  

y2

РгАОП[30-0]:=СчК[31-1]

y19

РгB := Рг2

y3

РгИОП:=Чт[РгАОП]

y20

РгСОЛО := РгA & РгB

y4

СчК := СчК+1

y21

FLAGS[11]:=0 

y5

РгБуф[31-16]:= РгИОП

y22

FLAGS[0]:=0

y6

РгБуф[15-0]:= РгИОП

y23

FLAGS[7]:=0

y7

M := РгБуф

y24

FLAGS[7]:=1

y8

РгК := M[23-8]  

y25

FLAGS[6]: =1

y9

РгБ := M[7-0]

y26

FLAGS[6]:=0

y10

РгК := M[31-16] 

y27

FLAGS[2]: =1

y11

РгБ := M[15-8]

y28

Рг3 := РгСОЛО

y12

M[2-0]:=РгК[2-0]

y29

СхЧетн:=Рг3

y13

РгАРОН:= M[2-0]

y30

FLAGS[2]:=0

y14

M := РгИРОН

y31

M[0-7]:=РгСОЛО

y15

Рг1 := M[7-0]

y32

РгИРОН[7-0]:=M[7-0]

y16

M[7-0] := РгБ

y74

СчТ:=СчТ-1

y33

Зап[РгАРОН]:= РгИРОН

y75

РгА1:=РгМ1

y34

РгAST := РгSW[13-11]

y76

РгM1:=РгСмМ

y35

РгИST:= ЧТ[РгАST]

y77

РгM1[64]:=1

y36

M:= РгИST[0-31]

y78

РгСмП:=¬СмП

y37

РгОп1[0-31]:= M

y79

СчП:=РгF

y38

M:= РгИST[32-63]

y80

СчП:=РгE

y39

РгОп1[32-63]:= M

y81

СмМ:=РгА1+РгВ1

y40

M[0-15]:= РгИST[64-79]

y82

РгSW[1]:=0

y41

РгОп1[64-79]:= M[0-15]

y83

РгSW[4]:=0

y42

РгИРОН :=ЧТ[РгАРОН]

y84

РгSW[5]:=0

y43

РгАОП := М

y85

РгSW[3]:=0

y44

РгАОП := РгАОП + 1

y86

РгSW[3]:=1

y45

РгОП2[63-32]:=M

y87

РгР[79]= ¬СмМ[64]

y46

РгОП2[31-0]:=M

y88

РгСмМ=¬СмМ

y47

Тз1 := РгОП1[79] 

y89

РгР[79]= СмМ[64]

y48

Тз2 := РгОП2[63]

y90

СчП:=СчП+1

y49

РгF:=0

y91

РгР[78-64] := СчП

y50

РгЕ =M[30-31].¬(M[26-29]).M[0-28]

0]:=РгОП2[52-62]

y92

РгР[63-0] := РгСмМ[63-0]

y51

РгF[0-10]:=РгОП2[52-62]

y93

М:=РгР[31-0]

y52

СмП := РгЕ + РгF

y94

РгИST[31-0]:= М

y53

РгСмП:= СмП

y95

М:=РгР[63-32]

y54

РгМ1:=0.РгОП1[0-63] 

y96

РгИST[63-32]:= М

y55

РгМ2:=0

y97

М:=РгР[79-64]

y56

РгМ2[11-63]:=1.РгОП2[0..51]

y98

РгИST[79-64]:= М

y57

РгА1:=1.(¬РгМ1[0..63])

y99

Зп[РгАST] := РгИST

y58

РгВ1:=0

y100

РгСмМ:=Л(1)СмМ

y59

СмМ:=РгА1+РгВ1+1

y101

РгАРОН:= 010b

y60

РгСмМ:=СмМ

y102

Рг6:= M[15-0]

y61

РгM1:=РгСмM

y103

M [7-0]:= РгК[7-0]

y62

РгВ1:=1.(¬РгМ2[0..63])

y104

Рг4 := M[7-0]

y63

РгА1:=0

y105

M := СчК

y64

РгM2:=РгСмM

y106

Рг5 := M

y65

РгЕ := РгОП1[64-78]

y107

РгС := Рг5

y66

РгF :=  ¬РгСмП

y108

РгD[7-0] := Рг4

y67

СмП:=РгE+РгF+1

y109

РгD[31-8] := FFFh

y68

СчТ:=64

y110

РгD[31-8] := 000h

y69

СчП:=РгСмП

y111

СМПер:=РгС+РгD

y70

РгВ1:=РгM2

y112

РгСМПер:=СМПер

y71

РгСмМ:=П(1)СмМ

y113

M:=РгСМПер

y72

РгM2[64]:=1

y114

СчК:=M

y73

СчП:=СчП-1

y115

М:=0

y17

Рг2 := M[7-0]

   

Таблица 3. Логические условия, реализуемые в микропрограмме

x1

ZОП=0

x12

Тз2=1

x2

СчК[0]=0

x13

СмП[14] = 1

x3

РгК[15-11] = 10000b

x14

СчТ=0

x4

РгК[15-11] = 11011b

x15

СчП = 0

x5

РгК[15-11] = 11100b

x16

ПР=1

x6

РгК[10-3] = 00011100b

x17

Тз1=Тз2

x7

РгСОЛО[7]=1

x18

СмМ[64]=1

x8

РгСОЛО = 0

x19

СмМ[63]=1

x9

Вых СхЧетн=0

x20

РгК[10-8] = 011

x10

РгК[10-3] = 10001100b

x21

СхНул=1

x11

Тз1=1

x22

РгD[7] = 0


3. Разработка управляющего автомата  с жесткой логикой

3.1 Синтез запоминающей части  управляющего автомата

Рис.17. Структура УА

x(t) – входные сигналы;          y(t) – выходные сигналы;        А(t) – состояния автомата.

Структура управляющего автомата с  жесткой логикой представляет собой  логическую схему с памятью, реализующую  преобразование входных сигналов х(t) в выходные сигналы у(t), в зависимости от состояния автомата A(t).Структурно каждый автомат состоит из блока формирования функции возбуждения, памяти микропрограмм и блока формирования функций выхода.

Рис.18. Структурная схема автомата Мили

Закон функционирования автомата Мили (рис. 18):     A(t+1) = fa(A(t),x(t))         y(t) = fy(A(t),x(t)), где

A(t) – состояние автомата, изменяющееся на каждом такте.  

fa – функция возбуждения        fy– функция выходов         x,y – множество входных и выходных сигналов.

Функционирование автомата достаточно полно определяется микропрограммой, которая должна удовлетворять следующим свойствам: [6]

    1. Содержать конечное число вершин
    2. Иметь одну начальную и одну конечную вершины
    3. Каждый выход должен быть соединен только с одним входом
    4. Для любой вершины должен существовать по крайней мере один путь из этой вершины в конечную
    5. Один из выходов условной вершины может соединяться с ее входом, что недопустимо для операторной вершины
    6. В каждую условную вершину записывается один из элементов множества Х.

Отметка состояний:

Выход из начальной вершины и вход в конечную отмечается одинаково – символом а1. Выходы операторных вершин отмечаются следующими состояниями: а2..а142. Входы операторных вершин, за исключением начальной и конечной, не могут отмечаться одинаково и могут отличаться только на один символ.

Количество состояний автомата:142

Количество запоминающих элементов:

k= ]log2 a[ = ]log2 142[ = 8

Состояния кодируются 8 битами.

Микропрограмма, помеченная состояниями автомата Мили, представлена в Приложении 2.

При кодировании состояний, могут возникнуть гонки. Для того, чтобы это избежать, воспользуемся методом соседнего кодирования.

Таблица переходов RS-триггера представлена в таблице 4. В таблице 5 указаны закодированные состояния автомата.

Таблица 4. Таблица переходов RS-триггера

R

S

Q(t)

Q(t+1)

0

0

не определено

0

1

0

1

1

0

1

0

1

1

не определено


Таблица 5. Коды состояний управляющего автомата

а1

00000000

а37

00100101

а73

01011000

а109

11110000

а2

00000001

а38

00100111

а74

01001000

а110

11110110

а3

00000011

а39

00100110

а75

01001001

а111

11110111

а4

00000010

а40

00100010

а76

01001101

а112

11110101

а5

00000110

а41

00100011

а77

01010101

а113

11110100

а6

00000111

а42

00100001

а78

01010100

а114

11111100

а7

00000101

а43

00100000

а79

01011100

а115

11111101

а8

00000100

а44

01100000

а80

01011101

а116

11111111

а9

00001100

а45

01100001

а81

01001100

а117

11111110

а10

00001101

а46

01100011

а82

01000100

а118

11111010

а11

00001111

а47

01100010

а83

01000101

а119

11111011

а12

00001010

а48

01100110

а84

01000111

а120

11111001

а13

00001110

а49

01100111

а85

01000110

а121

11101001

а14

00001011

а50

01100101

а86

01000010

а122

10001001

а15

00001001

а51

01100100

а87

01000011

а123

11101110

а16

00001000

а52

01101100

а88

01000001

а124

11101111

а17

00011000

а53

01101101

а89

01000000

а125

11101101

а18

00011001

а54

01101111

а90

11000110

а126

11101100

а19

00011011

а55

01101110

а91

11000101

а127

11100100

а20

00011010

а56

01101010

а92

11001101

а128

10001010

а21

00011110

а57

01101011

а93

11001111

а129

10001110

а22

00011111

а58

01101001

а94

11001110

а130

10001111

а23

00011101

а59

01101000

а95

11001010

а131

10000101

а24

00011100

а60

01111000

а96

11001011

а132

10001100

а25

00010100

а61

01111001

а97

11001001

а133

10000100

а26

00010101

а62

01111011

а98

11001000

а134

10000110

а27

00010111

а63

01111010

а99

11011000

а135

10000010

а28

00010110

а64

01111110

а100

11001100

а136

10011010

а29

00010010

а65

01111111

а101

11010100

а137

10011011

а30

00010011

а66

01111101

а102

11010101

а138

10011001

а31

00010001

а67

01111100

а103

11010111

a139

10001000

а32

00101110

а68

01110100

а104

11010110

a140

10000001

а33

00101111

а69

01110101

а105

11010010

a141

11011011

а34

00101101

а70

01110111

а106

11010011

a142

11011110

а35

00101100

а71

01110001

а107

11010001

   

а36

00100100

а72

01011001

а108

11010000

   

3.2 Синтез комбинационной части  управляющего автомата

На основе закодированных состояний  и взятых, в качестве запоминающих элементов, RS-триггеров, составим прямую таблицу переходов (Таблица 6).

Таблица 6. Таблица переходов.

Исходное состояние

Код исходного состояния

Состояние перехода

Код состояния перехода

Входные сигналы

Функции возбуждения 

Выходные сигналы

а1

00000000

а2

00000001

 

S0

y1

а2

00000001

а3

00000011

 

S1

y2

а3

00000011

а4

00000010

 

R0

y3

а4

00000010

а4

00000010

x1

   

00000010

а5

00000110

S2

y4

а5

00000110

а6

00000111

 

S0

y4

а6

00000111

а7

00000101

 

R1

y5

а7

00000101

а8

00000100

 

R0

y2

а8

00000100

а9

00001100

 

S3

y3

а9

00001100

а9

00001100

x1

   

а9

00001100

а10

00001101

S0

y6

а10

00001101

а11

00001111

 

S1

y7

а11

00001111

а12

00001010

x2

R0R2

y10 y11

y89

а12

00001010

а128

10001010

x5x20

S7

y101

а13

00001110

x3x6

S2

y12

а32

00101110

x4x10

S2S5

y34

а1

00000000

x3

R1R3

 

x4

x5

 

а13

00001110

а14

00001011

 

S0R2

y13

а14

00001011

а15

00001001

 

R1

y42

а15

00001001

а16

00001000

 

R0

y14

а16

00001000

а17

00011000

 

S4

y15

а17

00011000

а18

00011001

 

S0

<span class="dash041e_0

Информация о работе Проектирование процессора для заданной системы команд