Автор работы: Пользователь скрыл имя, 29 Октября 2013 в 21:20, курсовая работа
Микропроцессор — процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы или комплекта из нескольких специализированных микросхем (в отличие от реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели).
Долгое время центральные процессоры создавались из отдельных микросхем малой и средней интеграции, содержащих от нескольких единиц до нескольких сотен транзисторов. Развитие микроэлектронных технологий позволило существенно повысить вместимость кристаллов электронных схем. В 1989 году появился микропроцессор Intel486.
СхНул – схема определения равенства нулю операнда представлена на рисунке 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.
Программа в ЭВМ реализуется по средствам последовательного выполнения команд. Она состоит из следующих основных этапов:
– выборка и дешифрация команд;
– выборка операндов;
– выполнение операции;
– запись результата;
– формирование адреса следующей команды.
1. Блоки 1-16: выборка команды.
2. Блоки 17-19, 21, 48, 176: дешифрация команды.
3. Блоки 22-47: реализация команды AND.
4. Блоки 48-175: реализация команды FADD:
6. Блоки 177 – 193: выполнение команды JCXZ:
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 |
Рис.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..а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 |
На основе закодированных состояний и взятых, в качестве запоминающих элементов, 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 |
S7 |
y101 | |
а13 |
00001110 |
x3x6 |
S2 |
y12 | ||
а32 |
00101110 |
S2S5 |
y34 | |||
а1 |
00000000 |
x3 |
R1R3 |
|||
|
||||||
а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 |
Информация о работе Проектирование процессора для заданной системы команд