Микропроцессор В1801ВМ1 архитектура и система команд
Московский Институт Электроники и Математики
(технический университет)
Кафедра ИТАС
РЕФЕРАТ
по курсу : «ЭВМ и периферийные устройства»
на тему: Микропроцессор В1801ВМ1 его структура и система команд.
Выполнил: студент группы АП-41
Волков А. А.
МОСКВА 1998
Структура микропроцессора В1801ВМ1
Однокристальный 16-разрядный микропроцессор К1801ВМ1 предназначен для
выполнения следующих функций:
1. вычисление. адресов операндов и команд.
2. обмен информацией с другими устройствами; подключенными к
системной магистрали;
3. обработка операндов;
4. обработка прерываний от клавиатуры и устройств пользователя,
подключенных к разъему порта ввода-вывода.
Процессор является единственным активным устройством микроЭВМ,
управляющим циклами обращения к системной магистрали и обрабатывающим
прерывания от пассивных устройств, которые могут посылать или принимать
информацию только под управлением процессора.
Микропроцессор К1801ВМ1 работает в БК с тактовой частотой 3 МГц и
содержит следующие основные функциональные блоки :
5. 16-разрядный операционный блок, служащий для формирования адресов
команд и операндов, выполнения логических и арифметических
операций, хранения операндов и результатов;
6. блок микропрограммного управления, вырабатывающий
последовательность микрокоманд, Соответствующую коду принятой
машинной команды. Этот блок построен на базе программируемой
логической матрицы (ПЛМ). содержащей 250 логических произведений;
7. блок прерываний, организующий приоритетную систему прерываний
(прием и предварительная обработка внешних и внутренних запросов
на прерывание);
8. интерфейсный блок, обеспечивающий обмен информацией между
микропроцессором ром и прочими устройствами, подключенными к
системной магистрали. Этот же, блок осуществляет арбитраж при
операциях прямого доступа к памяти, формирует
9. последовательность. управляющих сигналов:
10. блок системной магистрали, связывающий внутреннюю магистраль
однокристального микропроцессора с внешней, управляющий
усилителями приема и передачи информации на совмещенные выводы
адресов и данных;
11. схема тактирования, обеспечивающая синхронизацию работы внутренних
блоков микропроцессора.
Система команд, реализованная в ПЛМ блока микропрограммного управления
микропроцессора К1801BM1, совпадает с системой команд наиболее
распространенных отечественных мини- и микро-ЭВМ типа «Электроника 60» (ДВК-
2. 3, 4 и т.п.) и практически аналогична принятой для компьютеров серии
DEC. Предусмотрен также ряд специальных команд, предназначенных для работы
с системным ПЗУ К1801РЕ1.
Сигналы AD0-AD15 представляют собой адреса и данные, передаваемые по
совмещенной системной магистрали. Передача адресов и данных по одним и тем
же линиям связи обеспечивается путем разделения этих операций во времени.
Группа сигналов SYNC, DIN, DOUT, WTBT, RPLY служит для управления
передачей информации по системной магистрали:
12. SYNC- вырабатывается процессором как указание, что адрес находится
на выводах системной магистрали, и сохраняет активный уровень до
окончания текущего цикла обмена информацией;
13. RPLY- вырабатывается пассивным устройством в ответ на сигналы DIN и
DOUT. При отсутствии сигнала RPLAY (т. е. когда выбранное
устройство- регистр или ячейка памяти - не отвечает) процессор
отсчитывает 64 такта синхрогенератора и затем отрабатывает
прерывание по зависанию (вектор 4);
14. DIN- предназначен для организации ввода данных (когда
микропроцессор во время действия сигнала SYNC готов принять данные
от пассивного устройства) и ввода адреса вектора прерывания (DIN
вырабатывается совместно с сигналом IAK0 при пассивном уровне
SYNC);
15. DOUT- означает, что данные, выдаваемые микропроцессором,
установлены на выводах системной магистрали;
16. WTBT- указывает на работу с отдельными байтами и вырабатывается при
обращении по нечетному адресу (операнд - старший байт) или при
отработке байтовых команд.
Сигнал VIRQ является запросом на прерывание от внешнего устройства,
информирующим микропроцессор о готовности устройства передавать адрес
вектора прерывания. Если прерывание разрешено, то в ответ на этот сигнал
процессор вырабатывает сигналы DIN и IAK0.
Сигнал IRQ1 обеспечивает управление режимом «СТОП-ПУСК» процессора с
внешнего переключателя. Низкий уровень сигнала (активный) соответствует
режиму «СТОП».
Сигналы IRQ2 и IRQ3 вызывают прерывания по фиксированным векторам 1008
и 2708 соответственно (при переходе из высокого уровня в низкий) .
Сигнал предоставления прерывания IAK0 процессор вырабатывает в ответ
на внешний сигнал VIRQ. Сигнал IAK0 передается по очереди, начиная с
устройства с максимальным приоритетом, ретранслируясь от одного устройства
к другому в порядке уменьшения приоритетов. Устройство с наибольшим
приоритетом из числа выставивших запрос на прерывание (сигнал VIRQ)
запрещает дальнейшее распространение сигнала IAK0, таким образом запрещая
на время обработки данного прерывания запросы от устройств с тем же или
более низким приоритетом. Однако устройства с более высоким приоритетом
могут прервать обработку повторным («вложенным») прерыванием.
Сигнал DMR вырабатывается внешним активным устройством, требующим
передачи ему системной магистрали (режим прямого доступа к памяти). В ответ
па него процессор устанавливает сигнал DMGO, предоставляющий системную
магистраль внешнему устройству с наивысшим приоритетом из числа запросивших
прямой доступ (механизм реализации приоритетов - тот же, что и для
прерываний). Это устройство прекращает дальнейшее распространение сигнала
DMGO и выставляет сигнал SACK, означающий, что устройство прямого доступа к
памяти (ПДП) может производить обмен данными, независимо от процессора
используя стандартные циклы обращения к системной магистрали.
Низкий уровень сигнала BSY означает, что микропроцессор начинает обмен
по магистрали (т.е. что она занята для других устройств). Переход сигнала
из низкого уровня в высокий указывает на окончание обмена.
Сигнал аварии источника питания DCLO вызывает установку
микропроцессора в исходное состояние и появление сигнала INIT. Сигнал
аварии сетевого питания ACLO вызывает переход микропроцессора на обработку
прерывания по сбою питании (высокий уровень свидетельствует о нормальном
сетевом напряжении).
Сигнал SEL1 инициализирует обращение к регистру управления системными
внешними устройствами, а сигнал SEL2 - к регистру порта ввода-вывода.
Направление обмена данными между микропроцессором и регистрами определяется
сигналами DIN или DOUT соответственно. Выставление сигнала RPLY от этих
регистров не требуется. Длительности сигналов SEL1 и SEL2 совпадают с
длительностью сигнала BSY.
Сигнал INIT является ответом микропроцессора на сигнал DCLO и
используется, как правило, для установки периферийной части системы в
исходное состояние.
Общие характеристики микропроцессора К1801ВМ1
|Представление чисел |В дополнительном коде с фиксированной|
| |запятой |
|Виды команд |Безадресные, одноадресные, |
| |двухадресные |
|Виды адресации |Регистровая, регистровая косвенная, |
| |автоинкрементная, автоинкрементная |
| |косвенная, автодекрементная, |
| |автодекрементная косвенная, |
| |индексная, индексная косвенная |
|Количество регистров общего значения |8 |
|Количество уровней прерывания |4 |
|Тип системной магистрали |Q-bus (МПИ, ОСТ 11.305.903-80) |
|Адресное пространство, Кб |64 |
|Тактовая частота, МГц |До 5 |
|Максимальное быстродействие при |До 500000 |
|выполнении регистровых операций, | |
|оп./с | |
|Потребляемая мощность, Вт |Не более 1 |
|Напряжение питания, В |+5 ( (5% ) |
|Уровни сигналов, В: «лог.0»(активный |Менее 0,5 |
|уровень) | |
|«лог.1» |Более 2,4 |
|Нагрузочная способность по току, мА |3,2 |
|Емкость нагрузки, пФ |До 100 |
|Технология изготовления |N-МОП |
|Конструкция |Плананарный металлокерамический |
| |корпус с 42 выводами |
Система команд микропроцессора К1801ВМ1
Данный процессор содержит 8 регистров общего назначения (РОН, обозначение в
описании команд RN, где N=0..7)один внутренний регистр состояния процессора
PSW в котором задействовано 5 битов, каждый из которых имеет свои имена:
17. C-бит переполнения
18. T-бит трассировки
19. V-бит арифметического переполнения
20. Z-бит равенства 0
21. N-бит отрицательного числа
Два регистра из РОН (R6 и R7) отвечают за следующие функции:
22. R6 (SP)-Указатель стека
23. R7 (PC)-Счетчик команд.
При описании команд, используются следующие обозначения:
24. «SS» - поле адресации операнда-источника
25. «DD» - поле адресации операнда-приемника
26. «XXX»- смещение (-128,...,+128; 8 бит)
27. «N» - число, 3 бита
28. «NN» - число, 6 бит
29. «(N)» -содержимое ячейки или регистра N
30. «s» - операнд -источник
31. «d» - операнд -приемник
32. «r» - содержимое регистра
33. «<=» - становится равным
34. «X» - относительный адрес
35. «%» - определение регистра
36. «/\» - логическое И
37. «\/» - логическое ИЛИ
38. «\\» - исключающее ИЛИ
39. «|» - НЕ
Операции над разрядами PSW
40. «*» - установка/сброс по результату
41. «-» - состояние разряда не меняется
42. «0» - сброс
43. «1» - установка
Методы адресации
| |МЕТОД | | |R | |
| | | | | | |
Метод мнемоника
0. регистровая R
0. косвенная регистровая ( R ) или @R
1. автоинкрементная ( R )+
2. косв. автоинкрементная @( R )+
3. автодекрементная -( R )
4. косв. автодекрементная @-( R )
5. индексная X( R )
6. косв. индексная @X( R )
Команды работы с программами
000000 HALT останов
000001 WAIT пауза - ожидания прерывания
000002 RTI возврат из прерывания ( PC <=(SP)+)
000003 BPT отладочное прерывание (-(SP) <=PSW <=(16) )
000004 IOT вызов системы ввода вывода ( -(SP) <=PC <= (22) )
000005 RESET сброс магистрали и процессора
000006 RTT возврат, с запретом прерывания по Т-разряду до
исполнения следующей команды ( PC<=(SP)+ PSW<=(SP)+ )
0001DD JMP безусловный переход ( PC <= d )
00020R RTS возврат из подпрограммы ( PC <= R <=(SP)+
000240 NOP нет операции
004RDD JSR вызов подпрограммы (-(SP) <= R <= PC <= d )
0064NN MARK восстановление стека ( -(SP)<=PC +(2 x NN) PC<=R5
<=(SP)+
077RNN SOB выч. 1 и ветвл., если (R#) не 0 ( R# <= R#-1
PC<=PC=( 2xNN) )
104000-104277 EMT вызов подпрограммы ПЗУ (-(SP)<= PSW <= (32)
-(SP)<= PC <= (30) )
1064SS MTPS запись PSW ( PSW <= s )
1064Dd MFPS чтение PSW ( d <= PSW )
Переходы по условию (ветвления)
|Базовый КОП |( |XXX |
|15 | | | | | | |8 |7 | | | | | | |0 |
Если условие выполняется, то (PC) <= (PC) + (2 x NN)
000400 + XXX BR безусловный переход
001000 + XXX BNE нет равенства ( нулю ) Z=0
001400 + XXX BEQ равенство ( нулю ) Z=1
102000 + XXX BVC арифм.переп. отсутствует V=0
102400 + XXX BVS произошло арифм.переп. V=1
103000 + XXX BCC перенос отсутствует C=0
103400 + XXX BCS произошел перенос С=1
Переход по знаку
100000 + XXX BPL знак плюс N=0
100400 + XXX BMI знак минус N=1
002000 + XXX BGE больше или равно (нулю) N\\V=0
002400 + XXX BLT меньше (нуля) N\\V=1
003000 + XXX BGT больше (нуля) Z\/(N\\V)=0
003400 + XXX BLE меньше или равно(нулю) Z\/(N\\V)=1
Переход без знака
101000 + XXX BHI больше C\/Z=0
101400 + XXX BLOS меньше или равно C\/Z=1
103000 + XXX BHIS больше или равно C=0
103400 + XXX BLO меньше C=1
Одно-операторные команды
|Код операции (КОП) |DD |
|15 | | | | | | | | |6 |5 | | | | |0 |
Условные обозначения: «*»=0 операции над словами
1 операции над байтами
N Z C V
0003DD SWAB перестановка байтов * * 0 0
*050DD CLR(B) очистка (d) <=0 0 1 0 0
*051DD COM(B) побитная инверсия (d) <= (|d) * * 0 0
*052DD INC(B) прибавление 1 (d) <=(d)+1 * * *-
*053DD DEC(B) вычитание 1 (d) <=(d)+1 * * *-
*054DD NEG(B) изменение знака (d) <=-(d) * * * *
*055DD ADC(B) прибавить перенос (d)<=(d)+C * * * *
*056DD SBC(B) вычесть перенос (d)<=(d)-C * * * *
*057DD TST(B) проверка (d)<=(d) * * 0 0
*060DD ROR(B) циклич. сдвиг вправо => C,d * * * *
*061DD ROL(B) циклич. сдвиг влево C,d <= * * * *
*062DD ASR(B) арифм. сдвиг вправо (d)<=(d)/2 * * * *
*063DD ASL(B) арифм. сдвиг влево (d)<=(d)*2 * * * *
*067DD SXT расширить знак N=0 (d)<=0 0 1 0-
N=1 (d)<=177777 1 0 0-
Двух операторные команды
|КОП |SS |DD |
|15 | | |12 |11 | | | | |6 |5 | | | | |0 |
N S V C
*1SSDD MOV(B) переслать (d)<=(s) * * 0-
*2SSDD CMP(B) сравнить (s)-(d) * * * *
*3SSDD BIT(B) проверить разряды (s)/\(d) * * 0 -
*4SSDD BIC(B) очистить разряды (d)<=(|s)/\(d) * * 0 -
*5SSDD BIS(B) установить разряды (d)<=(s)\/(d) * * 0 -
06SSDD ADD сложить (d)<=(s)+(d) * * * *
074RSS XOR исключающее или (s)<= (r )\\(s) * * 0 -
16SSDD SUB вычесть (d)<=(d)-(s) * * * *
Операции с разрядами PSW
|Базовый КОП =240 |0/1|N |Z |V |C |
|15 | | | | | | |6 |7 | | |4 |3 |2 |1 |0 |
|Очистить | | | | | |
|000241 CLC C | |- |- |- |0 |
|000242 CLV V | |- |- |0 |- |
|000244 CLZ Z | |- |0 |- |- |
|000250 CLN N | |0 |- |- |- |
|000257 CCC N Z V C | |0 |0 |0 |0 |
|Установить | | | | | |
|000261 SEC C | |- |- |- |1 |
|000262 SEV V | |- |- |1 |- |
|000264 SEZ Z | |- |1 |- |- |
|000270 SEN N | |1 |- |- |- |
|000277 SCC N Z V C | |1 |1 |1 |1 |
Список литературы
Персональный компьютер БК-0010 (Приложение к журналу «Информатика и
образование» )