Микропроцессор В1801ВМ1. Его структура

Микропроцессор В1801ВМ1 его структура и система команд

Структура микропроцессора В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

Емкость нагрузки, пФ

До 100

Технология изготовления

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” - установка

Методы адресации



МЕТОД

 

 

R

 

 

 

 

 

 

 

Метод							мнемоника	

регистровая					R

косвенная регистровая			( R ) или	@R

автоинкрементная			( R )+

косв. автоинкрементная		@( R )+

автодекрементная			-( R )

косв. автодекрементная		@-( R )

индексная					X( R )

косв. индексная				@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 (Приложение к журналу “Информатика и образование” )