Микропроцессор В1801ВМ1 архитектура и система комманд
Московский
Институт Электроники и Математики
(технический университет)
Кафедра ИТАС
РЕФЕРАТ
по курсу : «ЭВМ и периферийные устройства»
на тему: Микропроцессор В1801ВМ1 его структура и
система команд.
Выполнил: студент группы
АП-41
Волков
А. А.
МОСКВА 1998
Структура микропроцессора В1801ВМ1
Однокристальный 16-разрядный
микропроцессор К1801ВМ1 предназначен для выполнения следующих функций:
· вычисление. адресов операндов и
команд.
· обмен информацией с другими
устройствами; подключенными к системной магистрали;
· обработка операндов;
· обработка
прерываний от
клавиатуры и устройств пользователя, подключенных к разъему порта
ввода-вывода.
Процессор
является единственным активным устройством микроЭВМ, управляющим циклами обращения
к системной магистрали и обрабатывающим прерывания
от пассивных устройств, которые могут посылать или принимать информацию только
под управлением процессора.
Микропроцессор
К1801ВМ1 работает в БК
с тактовой частотой 3 МГц и содержит следующие основные функциональные блоки :
· 16-разрядный операционный блок,
служащий для формирования адресов команд и операндов, выполнения логических и арифметических операций,
хранения операндов и результатов;
· блок микропрограммного управления, вырабатывающий
последовательность микрокоманд, Соответствующую коду принятой
машинной команды. Этот блок построен на базе
программируемой логической матрицы (ПЛМ). содержащей 250 логических произведений;
· блок прерываний, организующий
приоритетную систему прерываний (прием и предварительная обработка внешних и внутренних запросов
на прерывание);
· интерфейсный блок, обеспечивающий обмен информацией между микропроцессором
ром и прочими устройствами, подключенными к системной магистрали.
Этот же, блок осуществляет арбитраж при операциях
прямого доступа к памяти,
формирует
· последовательность. управляющих
сигналов:
· блок системной магистрали, связывающий внутреннюю магистраль
однокристального микропроцессора с внешней,
управляющий усилителями приема и передачи информации
на совмещенные выводы адресов и данных;
· схема тактирования, обеспечивающая
синхронизацию работы внутренних блоков микропроцессора.
Система команд, реализованная в ПЛМ
блока микропрограммного управления микропроцессора К1801BM1, совпадает с системой команд наиболее распространенных
отечественных мини- и микро-ЭВМ типа «Электроника 60» (ДВК-2. 3, 4 и т.п.) и
практически аналогична принятой для компьютеров серии DEC. Предусмотрен также ряд специальных команд,
предназначенных для работы с системным ПЗУ К1801РЕ1.
Сигналы AD0-AD15 представляют собой адреса и данные,
передаваемые по совмещенной системной магистрали. Передача адресов и данных по
одним и тем же линиям связи обеспечивается путем разделения этих операций во
времени.
Группа сигналов SYNC, DIN, DOUT,
WTBT, RPLY служит для управления передачей
информации по системной магистрали:
·
SYNC- вырабатывается процессором
как указание, что адрес находится на выводах системной магистрали, и сохраняет
активный уровень до окончания текущего цикла обмена информацией;
·
RPLY- вырабатывается пассивным устройством в ответ на сигналы DIN и DOUT. При отсутствии сигнала RPLAY
(т. е. когда выбранное устройство- регистр
или ячейка памяти - не отвечает) процессор отсчитывает 64 такта синхрогенератора и затем
îòðàáàòûâàåò
прерывание по зависанию
(вектор 4);
·
DIN- предназначен для организации ввода данных (когда микропроцессор
во время действия сигнала
SYNC готов принять данные от пассивного устройства) и ввода
адреса вектора прерывания (DIN вырабатывается совместно с сигналом IAK0 при пассивном уровне SYNC);
·
DOUT- означает, что данные, выдаваемые
микропроцессором, установлены на выводах системной магистрали;
·
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
|
Емкость нагрузки, пФ
|
Технология изготовления
|
N-МОП
|
Конструкция
|
Плананарный
металлокерамический корпус с 42 выводами
|
Система команд микропроцессора К1801ВМ1
Данный процессор содержит 8 регистров общего назначения (РОН, обозначение
в описании команд RN, ãäå N=0..7)один внутренний регистр состояния процессора PSW в котором задействовано 5 битов,
каждый из которых имеет свои имена:
· C-бит переполнения
· T-бит трассировки
· V-бит арифметического переполнения
· Z-бит равенства 0
· N-бит отрицательного числа
Два регистра из РОН (R6 и R7) отвечают за следующие функции:
· R6 (SP)-Указатель стека
· R7 (PC)-Счетчик команд.
При описании команд, используются следующие обозначения:
· «SS» - поле адресации операнда-источника
· «DD» - поле адресации операнда-приемника
· «XXX»- смещение (-128,...,+128; 8 бит)
· «N» - число, 3 бита
· «NN» - число,
6 бит
· «(N)» -содержимое ячейки или регистра N
· «s» - операнд -источник
· «d» - операнд -приемник
· «r» - содержимое регистра
· «<=» - становится равным
· «X» - относительный адрес
· «%» - определение регистра
· «/\» - логическое И
· «\/» - логическое ИЛИ
· «\\» - исключающее ИЛИ
· «|» - НЕ
Операции над разрядами PSW
· «*» - установка/сброс по результату
· «-» - состояние разряда не меняется
· «0» - сброс
· «1» - установка
Методы адресации
Метод мнемоника
0.
регистровая R
1.
косвенная
регистровая (
R ) или @R
2.
автоинкрементная ( R
)+
3.
косв.
автоинкрементная @( R )+
4.
автодекрементная -( R
)
5.
косв. автодекрементная @-( R )
6.
индексная X(
R )
7.
косв. индексная @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 )
Переходы по условию (ветвления)
Если условие
выполняется, то (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-
Двух
операторные команды
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
|
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 (Приложение к журналу «Информатика и образование» )