Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) ( 15 ) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (15)

Таблица 3-1 Кодирование признаков в команде условного перехода МП КР580

признака, по которому требуется осуществить переход. На рис. 3-7 показан формат команды условного перехода МП КР580, а табл. 3-1 иллюстрирует кодирование признаков в 3-битном ноле команды ССС. Если значение признака истинно, то в ПС загружается адресная часть команды условного перехода, иначе сохраняется естественный порядок следования команд.

В некоторых МП, например в КР580, возможно сложение десятичных чисел, представленных в двоично-десятичном коде. Однако сложение выполняется не посредством одной команды десятичного сложения, а с использованием двух команд: команды двоичного сложения ADC г и команды десятичной коррекции аккумулятора DAA. Рассмотрим пример сложения двух чисел, одно из которых (-f-59) в исходном состоянии хранится в аккумуляторе А, а другое (-f-79) - в регистре В.

Исходное положение:

(А): 0 1 0 1 1 0 0 1 (+59); (В) : 0 111 1 0 0 1 (+79)

1. Выполняется команда сложения ADC В: +

Значение признаков

NZ, Z =

0, результат ф 0

Z, Z =

1, результат = 0

NC, С =

0, нет переноса

С, С =

1, есть перенос

РО, Р =

0, результат чет-

РЕ, Р =

1, результат нечет-

Р, S =

0, результат поло-

жительный

М, s =

1, результат отри-

цательный

0 10 1

10 0 1

0 111

10 0 1

110 1

0 0 10

При сложении младших тетрад сформировался перенос АС = 1 ИЗ младшей тетрады результата, являющийся признаком необходимости коррекции, т. е. прибавления кода 0110. Коррекция необходима также, если при сложении тетрад формируется код в диапазоне 1010-1111, т. е. промежуточный результат больше 9, но меньше 16.

2. Выполняется команда коррекции DAA:

110 1 0 0 10 (А) 0 110 0 110

1 0 0 11

10 0 0



Енутр&тяя шина -» данных МП

±

&1

ина данных

сс сс

Рис. 3-8. Двунаправленный буфер данных

Таким образом, в результате выполнения двух команд в аккумуляторе А сформировался двоично-десятичный код числа 38, а разряд сотен запоминается в регистре признаков результата (РПР) как признак переноса С из старшего разряда аккумулятора.

Обмен кодами между памятью команд, памятью данных, периферийными устройствами и микропроцессором осуществляется через двунаправленный буфер шины данных, который изолирует внешнюю шину данных от внутренней. Принцип организации двунаправленного буфера шины данных для передачи одного бита кода числа представлен на рис. 3-8. При передаче информации в МП с внешней шины данных на внутреннюю признак а, определяющий направление обмена, равен О и обмен осуществляется через логические схемы &з и &4. При а=1 обмен происходит в обратном направлении через &i и &2- В МП обычно используют выходные буферы с тремя устойчивыми состояниями: 0,1 и состоянием высокого выходного сопротивления (плавающее состояние), что позволяет упростить подключение к одной шине нескольких устройств. Доступ к шине в любой момент времени имеет только одно устройство, а остальные можно рассматривать практически не подключенными к шине, если они находятся в состоянии высо:кого выходного сопротивления.

Шина адреса используется для выдачи микропроцессором кода адреса программной памяти из ПС, адреса стековой памяти из УС, адреса памяти данных из регистра адреса (РА). Буфер адреса также имеет три состояния.

Формирование последовательностей внутренних и внешних управляющих сигналов, а также анализ сигналов из других устройств микро-ЭВМ выполняется устройством



управления, которое может быть реализовано на основе структуры с жесткой логикой или на основе программируемой логики, использующей память-; и программируемые логические матрицы. Остановимся более подробно на рассмотрении типичных входных и выходных управляющих сигналов, необходимых для функционирования микро-ЭВМ и называемых обычно системными управляющими сигналами.

Управляющие сигналы записи (Зп) и чтения (Чт) информации используются для управления обменом кодами между МП и памятью данных, программной памятью. Управляющие сигналы ввода (Вв) и вывода (Выв) разрешают обмен информацией с выбранным периферийным устройством. Пара сигналов «ожидание» (Ож) и «готовность» (Гт) выполняет функцию синхронизации МП с памятью и периферийными устройствами. Наличие сигнала Гт на входе МП указывает, что, например, данные из памяти готовы для передачи в МП. При отсутствии сигнала Гт МП переходит в состояние ожидания и формирует соответствующий выходной сигнал. На рис. 3-9, а показан фрагмент диаграммы переходов МП при реализации машинного цикла чтения информации из памяти. В состоянии Ti с шины адреса МП в намять передается код адреса. В состоянии Тг МП анализирует сигнал Гт: если сигнал готовности из памяти отсутствует (Гт = 0), то МП перейдет в состояние ожидания Тож, и только при Гт=1 перейдет в состояние Тз, в котором формируется управляющий сигнал Чт и выполняется прием кода но шине данных из памяти в МП. Такой протокол обмена обеспечивает сопряжение МП с памятью любого быстродействия. Формирование сигнала го-

а) @


Гт(ВМП)

Рис. 3-9. Фрагмент диаграммы переходов МП (а) и формирование сигнала готовности (б)



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) ( 15 ) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)