Микропроцессор В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 (Приложение к журналу «Информатика и
образование» )