Слово состояния процессора
Слово-состояние процессора PSW содержит информацию о состоянии процессора. В связи с ограниченным набором команд используются не все разряды. Разряды 16-31 содержат код ошибки, вызвавшей программное прерывание. В данном случае используют
разряды 28-31. Разряды 32-33 хранят информацию о длине последней выполнившейся команды. В разряды 34-35 записывается признак результата. Разряды 36-39 хранят маску прерываний. Разряды 40-63 используются для хранения адреса команды. ФК1 используется для формирования кода длины ошибки. ФК2 - кода длины команды, ФК3 - признака результата, ФК4 - адреса памяти, ФК5 и ФК6 - для формирования некоторого кода при выполнении унарных операций.
Схемы сравнения используются для генерации логических условий.
При написании микропрограмм надо учитывать набор имеющегося оборудования. Для облегчения определения необходимого оборудования вначале пишем микропрограмму для самой большей по затратам оборудования команды. Ей является команда с плавающей запятой. Команда сравнения двух операндов с плавающей запятой. числа представляются в коротком формате.
±
| Характеристика
| Мантисса
|
0 1 7 8 31
Отрицательные числа изображаются в прямом коде. Характеристика Х равна порядку числа, увеличенному на 64, и представляет значения порядка в диапазоне от -64 до +63. Набор символов (_=) обозначает присвоение переменной в начале машинного такта, а набор символов (: =) обозначает присвоение переменной в конце такта.
Структурная схема процессора (операционная часть) приведена в приложении 2.
Микрооперации и логические условия
Перечень всех микроопераций показан в таблице 2.
Перечень всех логических условий показан в таблице 3.
Перечень микроопераций таблица 2
Y
| ОПЕРАЦИЯ
| Y
| ОПЕРАЦИЯ
|
Y1
| PSW (28: 31): =01012
| Y45
| MA. DOPA: =1110. MA
|
Y2
| PSW (28: 31): =01102
| Y46
| A (0): =1
|
Y3
| AOП: =СЧАК+1
| Y47
| MA. DOPA: =A (11: 31)
|
Y4
| ЧТОП
| Y48
| SA. MA: =SA. MA+DOPA (0)
|
Y5
| PK (0: 15): =БР
| Y49
| PSW (28: 31): =11002
|
Y6
| СЧАК: =СЧАК+1
| Y50
| MA: =0001. A (8: 27)
|
Y7
| M_=РОП
| Y51
| PSW (34: 35): =nA (0). A (0)
|
Y8
| Z: =M
| Y52
| PA: =6410
|
Y9
| PK (0: 15): =Z (0: 15)
| Y53
| PSW (28: 31): =11102
|
Y10
| БР: =M (16: 31)
| Y54
| Z: =A
|
Y11
| PK (16: 31): =M (0: 15)
| Y55
| РРП: =M
|
Y12
| ТП: =0
| Y56
| M_=Z
|
Y13
| ТП: =1
| Y57
| PSW (32: 33): =112
|
Y14
| БР: =M (16: 31)
| Y58
| A: =0..0. D2
|
Y15
| РК: =Z
| Y59
| АРП: =0. B2
|
Y16
| PSW (32: 33): =012
| Y60
| PSW (32: 33): =102
|
Y17
| APП: =0. R2
| Y61
| A: =A+Z
|
Y18
| ЧТРП
| Y62
| ОАП: =A (12: 29)
|
Y19
| M_=РРП
| Y63
| A (12: 29): =A (12: 29) +1
|
Y20
| ЗПРП
| Y64
| PSW (0: 31): =B
|
Y21
| АРП: =0. R1
| Y65
| PSW (32: 63): =B
|
Y22
| A: =Z
| Y66
| PSW (28: 31): =00012
|
Y23
| PSW (34: 35): =102
| Y67
| A: =0..0. D1
|
Y24
| PSW (34: 35): =002
| Y68
| АРП: =0. B1
|
Y25
| PSW (34: 35): =012
| Y69
| B (0: 7): =I2
|
Y26
| АРП: =1. R1
| Y70
| B: =B (0: 7) &Z (0: 7). Z (8: 31)
|
Y27
| DOPA: =0
| Y71
| A (0: 7): =B (0: 7) &Z (0: 7)
|
Y28
| DOPB: =0
| Y72
| B: =Z (0: 7). B (0: 7) &Z (8: 15). Z (15: 31)
|
Y29
| APП: =1. R2
| Y73
| A (0: 7): =B (0: 7) &Z (8: 15)
|
Y30
| SA: =Z (0)
| Y74
| B: =Z (0: 15). B (0: 7) &Z (16: 23). Z (24: 31)
|
Y31
| DS: =0
| Y75
| A (0: 7): =B (0: 7) &Z (16: 23)
|
Y32
| B: =Z
| Y76
| B: =Z (0: 23) B (0: 7) &Z (24: 31)
|
Y33
| SB: =Z (0)
| Y77
| A (0: 7): =B (0: 7) &Z (24: 31)
|
Y34
| B: =A
| Y78
| Z: =B
|
Y35
| SB: =SA
| Y79
| РОП: =M
|
Y36
| PA: =PA+1
| Y80
| ЗПОП
|
Y37
| MA. DOPA: =0000. MA
| Y81
| АОП: =4016
|
Y38
| MA. DOPA: =nMA. nDOPA+1
| Y82
| Z: =PSW (0: 31)
|
Y39
| MB. DOPB: =nMB. nDOPB+1
| Y83
| Z: =PSW (32: 63)
|
Y40
| DS. SA. A (0). MA. DOPA: =
| Y84
| АОП: =4116
|
| : =SA. A (0). MA. DOPA+
| Y85
| АОП: =10416
|
| SB. B (0). MB. DOPB
| Y86
| PSW (32: 63): =Z
|
Y41
| SA. A (0). MA. DOPA: =
| Y87
| АОП: =10510
|
| : =SA. A (0). MA. DOPA+1
| Y88
| PSW (0: 31): =M
|
Y42
| SA: =0
|
|
|
Y43
| A (0): =0
|
|
|
Y44
| MA. DOPA: =0001. MA
|
|
|
Перечень логических условий таблица 3
X
| Логическое условие
| x
| Логическое условие
|
X1
| PSW (63)
| X19
| SB
|
X2
| СЧАК (0: 5) =0
| X20
| DS
|
X3
| ТП
| X21
| SA+A (0)
|
X4
| СЧАК (22)
| X22
| PA=0
|
X5
| Z (16: 17)
| X23
| A (8: 11) =0
|
X6
| Z (0:
1) =0
| X24
| MA=0
|
X7
| ZOП
| X25
| PSW (39)
|
X8
| КОП=1216
| X26
| КОП=8216
|
X9
| R1 (0) +R1 (3)
| X27
| B2=0
|
X10
| R2 (0) +R2 (3)
| X28
| B2 (3)
|
X11
| A (1: 31)
| X29
| A (29: 30) =0
|
X12
| A (0)
| X30
| A (0: 5)
|
X13
| A (0: 7)
| X31
| КОП=9416
|
X14
| БР (0:
1) =0
| X32
| B1=0
|
X15
| КОП=0A16
| X33
| B1 (30
|
X16
| Z (1: 7) >PA
| X34
| A (30)
|
X17
| PB - PA=0
| X35
| A (31)
|
X18
| SA
|
|
|
Синтез управляющего автомата
Для синтеза управляющего автомата было получено следующее задание: управляющий автомат должен иметь одно поле Логических условий - Х, один укороченный адрес - А и поля Yi для микроопераций.
Разметка граф схемы
Разметка осуществляется следующим образом: операционный блок и логическое условие представляются одним состоянием - Pi, где i изменяется от 0 до 50 (по заданию). Если между операционным блоком и логическим условием есть разветвления, то операционный блок и логическое условие размечаются как два различных состояния - Рi и Pi+1 соответственно.
Разметка ограничена количеством состояний (по заданию) - их должно быть 50. На размеченной ГСА все микрокоманды заменены на yi, а логические условия на xi. полученная ГСА изображена в приложении 1.
Разбиение микроопераций по полям и кодирование логических условий
Принцип разбиения заключается в следующем: yi расположенные в одном операционном блоке записываются в разные поля. Поэтому количество полей в данном примере равно 5. В каждом поле включается микрооперация y0 (отсутствие микроопераций в состоянии). В таблице 4 показано разбиение по полям и кодировка yi.
Разбиение по полям таблица 4
| Y1
|
|
| Y2
|
|
| Y3
|
|
| Y4
|
|
| Y5
|
|
| Операция
| Код
|
| Операция
| Код
|
| Операция
| Код
|
| Операция
| Код
|
| Операция
| Код
|
| Y0
| 0000
|
| Y0
| 0000
|
| Y0
| 000
|
| Y0
| 000
|
| Y0
| 000
|
| Y7
| 0001
|
| Y6
| 0001
|
| Y10
| 001
|
| Y11
| 001
|
| Y12
| 001
|
| Y1
| 0010
|
| Y4
| 0010
|
| Y8
| 010
|
| Y15
| 010
|
| Y21
| 010
|
| Y2
| 0011
|
| Y9
| 0011
|
| Y13
| 011
|
| Y14
| 011
|
| Y31
| 011
|
| Y3
| 0100
|
| Y18
| 0100
|
| Y26
| 100
|
| Y17
| 100
|
| Y29
| 100
|
| Y5
| 0101
|
| Y22
| 0101
|
| Y36
| 101
|
| Y20
| 101
|
| Y43
| 101
|
| Y19
| 0110
|
| Y38
| 0110
|
| Y32
| 110
|
| Y27
| 110
|
| Y46
| 110
|
| Y28
| 0111
|
| Y47
| 0111
|
|
|
|
| Y30
| 111
|
|
|
|
| Y24
| 1000
|
| Y41
| 1000
|
|
|
|
|
|
|
|
|
|
| Y25
| 1001
|
| Y44
| 1001
|
|
|
|
|
|
|
|
|
|
| Y35
| 1010
|
| Y23
| 1010
|
|
|
|
|
|
|
|
|
|
| Y37
| 1011
|
| Y40
| 1011
|
|
|
|
|
|
|
|
|
|
| Y39
| 1100
|
| Y45
| 1100
|
|
|
|
|
|
|
|
|
|
| Y33
| 1101
|
| Y16
| 1101
|
|
|
|
|
|
|
|
|
|
| Y43
| 1110
|
|
|
|
|
|
|
|
|
|
|
|
|
В выбранном нами участке схемы применяются лишь 20-ть логических условий. В таблице 5 представлена их кодировка, где добавлены сигналы "1" и "0".
Логические условия таблица5
X
| Код
| X
| Код
| x
| Код
|
“0”
| 00000
| X8
| 01000
| X16
| 10000
|
X1
| 00001
| X9
| 01001
| X17
| 10001
|
X2
| 00010
| X10
| 01010
| X18
| 10010
|
X3
| 00011
| X11
| 01011
| X19
| 10011
|
X4
| 00100
| X12
| 01100
| X20
| 10100
|
X5
| 00101
| X13
| 01101
| “1”
| 11111
|
X6
| 00110
| X14
| 01110
|
|
|
X7
| 00111
| X15
| 01111
|
|
|
Прошивка МПЗУ
Для прошивки МПЗУ необходимо подсчитать, сколько разрядов надо выделить для РАМК. У нас 50 состояний и возможно появится пару БП, поэтому n =] ln2 (60) [=6. В поле команды адрес укорочен на один бит: А (0: 4). После того как мы разбили микрооперации на поля и закодировали логические условия, команда имеет следующий вид:
0 3 7 10 13 16 21 26
Прошивка МПЗУ производится по следующим правилам.
1) Если в состоянии Рi есть операционный блок и (или) логическое условие, то их коды вписываются в соответствующие поля.
2) Поле А - это укороченное значение РАМК на 1 бит. В нем указывается адрес перехода по "0", укороченный на единицу, на следующее состояние.
3) Последний бит адреса равен значению Xi, поэтому за состоянием, куда мы переходим по "0", должно следовать состояние, куда мы переходим по "1". Если
такие состояния уже описаны, то записываем безусловный переход.
4) При отсутствии в состоянии логического условия, последний бит адреса кодируется "0" либо "1", в зависимости от того где мы разместили следующее состояние.
5) Алгоритм вычисления РАМК представлен на рисунке 1.
Рис.1. Алгоритм вычисления РАМК.
Следуя вышеизложенным правилам проведем прошивку ПЗУ (таблица 6).
Прошивка МПЗУ таблица 6
РАМК
| Y1
| Y2
| Y3
| Y4
| Y5
| X
| A
| P (t)
| P (t+1)
|
000000
| 0000
| 0000
| 000
| 000
| 000
| 00001
| 00001
| P0
| P3
|
000001
| 0110
| 0101
| 010
| 111
| 011
| 10000
| 10101
| P29
| P31
|
000010
| 0000
| 0000
| 000
| 000
| 000
| 00010
| 00010
| P3
| P1
|
000011
| 0011
| 0000
| 000
| 000
| 000
| 00000
| 00000
| P2
| P0
|
000100
| 0010
| 0000
| 000
| 000
| 000
| 00000
| 00000
| P1
| P0
|
000101
| 0000
| 0000
| 000
| 000
| 000
| 00011
| 00011
| P4
| P7
|
000110
| 0000
| 0000
| 000
| 000
| 000
| 00100
| 00100
| P7
| P5
|
000111
| 0110
| 0000
| 010
| 101
| 010
| 00000
| 10010
| P33
| P34
|
001000
| 0100
| 0010
| 000
| 000
| 000
| 11111
| 00101
| P5
| P6
|
001001
| 0101
| 0001
| 000
| 000
| 000
| 01101
| 00110
| P8
| P10
|
001010
| 0001
| 0001
| 010
| 000
| 000
| 00100
| 00111
| P9
| P14
|
001011
| 0000
| 0000
| 000
| 000
| 000
| 00111
| 00101
| P6
| P9
|
001100
| 0000
| 0000
| 000
| 000
| 000
| 00010
| 01000
| P10
| БП1
|
001101
| 0000
| 0000
| 000
| 000
| 000
| 00111
| 01100
| P20
| P24
|
001110
| 0000
| 0000
| 000
| 000
| 000
| 00101
| 01010
| P14
| P9
|
001111
| 0000
| 0000
| 000
| 000
| 000
| 00110
| 01011
| P17
| P19
|
010000
| 0000
| 0000
| 000
| 000
| 000
| 00000
| 00010
| БП1
| P1
|
010001
| 0100
| 0010
| 000
| 000
| 000
| 11111
| 01001
| P11
| P12
|
010010
| 0001
| 0001
| 0001
| 001
| 001
| 11111
| 00110
| P13
| P20
|
010011
| 0000
| 0000
| 000
| 000
| 000
| 00111
| 01001
| P12
| P13
|
010100
| 0000
| 0011
| 000
| 000
| 000
| 00000
| 00110
| P15
| P10
|
010101
| 0000
| 0011
| 011
| 000
| 000
| 11111
| 00110
| P16
| P20
|
010110
| 0000
| 0011
| 000
| 011
| 001
| 11111
| 00110
| P19
| P20
|
010111
| 0000
| 0001
| 011
| 010
| 000
| 11111
| 00110
| P18
| P20
|
011000
| 0000
| 0000
| 000
| 000
| 000
| 01000
| 01101
| P24
| БП2
|
011001
| 0000
| 0000
| 000
| 000
| 000
| 01110
| 10000
| P21
| P22
|
011010
| 0000
| 0000
| 000
| 000
| 000
| 00000
| 00000
| БП2
| P0
|
011011
| 0000
| 0000
| 000
| 000
| 000
| 00000
| 01110
| P25
| P28
|
011100
| 0111
| 0100
| 100
| 110
| 101
| 01001
| 01111
| P27
| P28
|
011101
| 0011
| 1101
| 000
| 000
| 000
| 00000
| 00000
| P26
| P0
|
011110
| 0110
| 0100
| 010
| 000
| 101
| 11111
| 00000
| P28
| P29
|
011111
| 0000
| 0000
| 000
| 000
| 000
| 11111
| 01110
| БП3
| P26
|
100000
| 0000
| 0000
| 000
| 000
| 000
| 01001
| 10001
| P22
| P32
|
100001
| 0011
| 1101
| 000
| 000
| 000
| 00000
| 00000
| P23
| P0
|
100010
| 1111
| 1101
| 000
| 100
| 000
| 11111
| 00011
| P32
| P33
|
100011
| 0000
| 0000
| 000
| 000
| 000
| 11111
| 10000
| БП4
| P23
|
100100
| 0000
| 0101
| 000
| 000
| 000
| 01011
| 10011
| P34
| P35
|
100101
| 0000
| 0000
| 000
| 000
| 000
| 10000
| 10110
| P39
| P40
|
100110
| 0000
| 0000
| 000
| 000
| 000
| 01010
| 10100
| P35
| P36
|
100111
| 1001
| 0000
| 000
| 000
| 000
| 00000
| 00000
| P38
| P0
|
101000
| 0000
| 1010
| 000
| 000
| 000
| 00000
| 00000
| P36
| P0
|
101001
| 1000
| 0000
| 000
| 000
| 000
| 00000
| 00000
| P37
| P0
|
101010
| 1001
| 0101
| 101
| 000
| 100
| 11111
| 10010
| P31
| P39
|
101011
| 1110
| 0000
| 110
| 000
| 000
| 11111
| 10010
| P30
| P39
|
101100
| 1001
| 0000
| 101
| 000
| 000
| 11111
| 10010
| P40
| P39
|
101101
| 0000
| 0000
| 000
| 000
| 000
| 10001
| 10111
| P41
| P43
|
101110
| 0000
| 0000
| 000
| 000
| 000
| 10010
| 11000
| P43
| P45
|
101111
| 1100
| 0000
| 000
| 000
| 000
| 00000
| 10111
| P42
| 43
|
110000
| 0000
| 1011
| 000
| 000
| 000
| 10011
| 11001
| P45
| P47
|
110001
| 1100
| 0000
| 000
| 000
| 000
| 00000
| 11000
| P44
| P45
|
110010
| 0000
| 0000
| 000
| 000
| 000
| 10100
| 11010
| P47
| P48
|
110011
| 0000
| 0000
| 000
| 101
| 000
| 00000
| 11001
| P46
| P47
|
110100
| 0000
| 0000
| 000
| 000
| 000
| 00000
| 00000
| P48
| P0
|
110101
| 0000
| 0000
| 000
| 000
| 000
| 10001
| 11011
| P49
| P50
|
110110
| 0000
| 1001
| 101
| 000
| 110
| 00000
| 00000
| P50
| P0
|
110111
| 1110
| 1100
| 101
| 000
| 111
| 00000
| 00000
| P52
| P0
|
| | | | | | | | | | |
Воспользуйтесь поиском по сайту: