Помощь - Поиск - Пользователи - Календарь
Полная версия: КР1801ВМ1
MAXIOL > Техника > DEC hardware / software > БК 0010 / 11 / 11M
SuperMax
Код



                 Микропроцессор  К1801 ВМ1.

              Микропроцессор К1801 ВМ1 представляет собой одно
    кристальный 16-разрядный модуль. Этот конструктивно и функ
    ционально законченный модуль реализует систму команд микро
    ЭВМ  "Электроника 60", обспечивает управление системным ин
    терфейсом , аналогичным по составу управляющих сигналов и
    алгоритмам обмена системному интерфесу микроЭВМ.
          16-разрядный операционный блок включает в себя арифме
    тическо-логическое устройство , секцию из 8 регистров обще
    го назначения, регистр состояния процессора. Операционный
    блок осуществляет формирование адресов команд и операндов,
    прием данных с внутренней магистрали , выполнение арифмети
    ческих и логических оперций, хранение операндов и результа
    та , выдачу в канал , формирование состояний процессора и
    адресов векторов прерывания.
          Секция регистров общего назначения содержит восемь
    16-разрядных регистров , которые могут выполнять функции
    регистров хранения данных и адресов, индексных регистров,
    регистров автодекрементной и автоинрементной адресации,
    указателей стека . Регистры R6 и R7 являются специализиро
    ванными . Регистр R6 используется как указатель стека SP,
    а R7-только как счетчик команд РС.
            Кроме восьми программо-доступных регистров общего
    назначения операционный блок включает в себя , буферные ре
    гистры адресов данных , через которые осуществляется связь
    с внутренней магистралью процессора. Арифметическо-логичес
    кое устройство операционного блока формирует ряд признаков
    записываемых в регистр состояния процессора. Признак I/O
    определяет приоритет выполняемой программы по прерыванию
    внешних устройсв . Прерывание программы со стороны внешних
    устройств запрешено, если значение разряда 7 регистра состо
    яния процессора равно 1. С целью упрощения отладки програм
    мы в любой ее точке командой записи слова состояния процес
    сора в Т-разряд может быть записана 1. Это превидет к пре
    рыванию программы с адресом вектора прерывания 14(переход
    на программу связи с оператором). Остальные разряды регист
    ра состояния процессора хранят признаки результата операци
    и в арифметическо-логическом устройстве , используемые в
    командах ветвления программы. Установка признаков произво
    дится в следующих случаях :N=1, если результат отрицателен;
    Z=1, если результата равен 0;V=1 , если при выполнении ари
    фметической операции произошло переполнение;C=1 ,если про
    изошел перенос из старшего разряда арифметическо-логическо
    го устройства , сдвиг единицы из старшего разряда влево
    или из младшего разряда вправо. Слово состояния процессора
    может быть считано и вновь записано в регист состояния про
    цессора с помощью спциальных команд. При выполнении команд
    передачи управления содержимое регистра состояния сохрани
    ется в стеке.




              Структурная схема .


         |-------------|    |---------------|
   Шина  |    Блок     |    |  Операционный |
    -----| системный   |--|-|      блок     |
   AD0-  | магистрали  |  | |--------|------|
   AD15  |-------------|  |          |          |----------|
                  |-------|          |----------| Интер-   |
                  |                  |          | фейсный  |
         ---------|--------|    |----|------|   |  блок    |
         |  Блок           |    | Блок      |   |----------|
INIT    |                 |    | прерываний|
  -------| микропрограм    |    |-|-|-|-|-|-|
         | ного управления |      | | | | | |
         |-------|---------|      | | | | | |
                 |                | | | | | |
        |--------|-------|        | | | | | |
   SLC  |--Схема         |        | | | | | |
-------|  тактирования  |        | | | | | |
        |----------------|        | | | | | |
                                  | | | | | |
                      ACLO        | | | | | |
                      ------------| | | | | |
                DCLO  --------------| | | | |
                VIRQ  ----------------| | | |
                IRQ1  ------------------| | |
                  IRQ2   -----------------| |
                      IRQ3  ----------------|


    Обозначения на структурной схеме:

    AD0-AD15 -шина "Адрес/Данные"
    INIT- Инициализация вычислительного устройства, сброс
    тригеров(устроййства с двумя устойчивыми состояниями)
    запросов прерываний.
    CLC-Сигналы тактовой частоты.

    ACLO-Авария сетевого питания
    DCLO-Авария источника питания
    IRQ1 -Сигнал перехода в пультовый  режим
    IRQ2 -Сигнал прерывания с вектором (100) -восьмеричное.
    IRQ3- Сигнал прерывания с вектором (270)-восьмеричное.
    VIRQ- Запрос прерывания от вычисоительного устройства.

      В большой интегральной схеме К1801 ВМ1 можно выделеить
    следующие фукционаоьные блоки, которые изображены на струк
    турной схеме выше:
    -16-разрядный операционный блок обеспечивает формирование
    адресов команд и операндов , выполнение арифметических и
    логических операций, временное хранение операндов и резуль
    татов вычеслений.
    -Блок микропрограмого управления предназначен для выработ
    ки последовательности микрокоманд, соответствующий выполня
    емой команде.
          Расмотрим устройство микропрограмного управления с ис
    пользованием комутирующих схем в виде программых матриц. В
    данном случае последовательность выполнения этапов каждой
    команды задается при помощи программной матрицы. Кроме сиг
    нала операции , матрица формирует импульсы, управляющие при
    еммом , суммированием, сдвигом, выдачей и другими этапами,
    из которых складывается выполнение арифмитических и логиче
    ских операций. Таким образом , матрица совмещает функции
    комутатора операций и схем управления отдельными устройства
    ми электроной вичислительной машины.
             Устройство макропрограмного управления более уни
    версально, чем микропрограмное , и позволяет вычислять ад
    реса слов в процессе решения задачи и модифицировать струк
    туру команды вычислительной машины. Генератор импульсов
    пульта управления задает темп работы устройств машины. Ко
    мутатор сигналов программного управления , управляемый де
    шифратором операций и генератором импульсов , обеспечиваеи
    временную диаграмму работы  машины. Регистр команд принима
    ет , хранит и выдает код команды: признак, операция,адрес.
    Модификатор структуры команды управляет соответствующими
    командами и обеспечивает требуемое расперделение команды
    между схемами устройства управления. Для паралельного вы
    полнения команд используется несколько регистров команд.
    Регистр команд связан с магистралью слов, пультом управле
    ния, дешифратором операций, регистром индекса, счетчиком
    адресов команд и сумматором исполняемого адреса. Счетчик
    адресов команд увеличивает текущий адрес , выбираемой из
    памяти машины, на 1 или фиксирует новый исходный адрес при
    условных переходах , счечик связан по входу с комутатором
    переходов , который управляет дешифратором опрераций и ре
    гистром признаков переходов:знак, нуль, переполнение, абсо
    лютная величина. По выходу счетчик связан с суматором испо
    лняемого адреса , который осуществляет сложение исходного
    адреса с модифицируеющим кодом, получаемым отрегистра индек
    са . Последний связан по входу с суматором и магитсралью
    слов; регист управляется модификатором структуры и дешиф
    ратором операций.
             Устройство макропрограмого управления работает по
    циклам , определяемым выполняемями командами. Цикл начинает
    ся  подготовительными сигалами , приводячими схемы вычисли
    тельной машины в исходное состояние. После этого  из памяти
    выбирается команда по адресу, сформированному счетчиком ад
    ресов команд и модифицированному сумматором исполняемого
    адреса. Команда, выбранная из памяти , фиксируется на реги
    стре команд. Дешифратор операций  вырабатывает серию сигна
    лов , обеспечивающих выполнение операции, которая задана
    кодом операции команды. Дешифратор адреса устройства памяти
    преобразовывает исполняемый адрес в сигналы, осуществляющие
    обращение к заданной ячейке памяти.
    - Блок прерываний обеспечивает работу приоритетной системы
    прерыванний, производя прием и предварительную обработку
    внутренних и внешних запроосов прерываний.




                    Цикл выполнения команды.

                   |----------------|
                   |   Считывание   |
                   |-------|--------|
------------------|       |        |----------------|
|   выполнение    |       |        |   увеличение   |
------------------|       |        |----------------|
                   |-------|--------|
                   |  Дешифратор    |
                   |----------------|



        Система прерываний опрашивает состояние клавиатуры, эк
    рана, дисковода. Выполняется приоритет выполнения операций

- Интерфейсный блок обеспечивает обмен информацией между мик
    ропроцессором и устройствами , подлюченными к системному
    интерфейсу.

  -Блок системной магистрали связывает внутреннюю магистраль
   микропроцессора с шиной "Адрес/Данные" системного интерфей
   са.
  - Схема тактирования обеспечивает сиснхронизацию всех функ
    ционнальных блоков микропроцессора.

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














            |-----------|
            |           |----- IAKO
            |           |----- SP
            |           |----- SP
            |   Интер   |----- RPLY
            |   фейсный |----- SYNC
            |   блок    |----- DOUT
            |           |----- DIN
            |           |----- WTBT
            |           |----- DMR
            |           |----- SACH
            |           |----- DMGO
            |           |----- SP
            |           |----- SEL1
            |           |------ SEL2
            |           |------ BSY
            |           |
            |-----------|


    Обозначения в схеме интерфейсного блока следующие:

  IAKO-Предоставление прерываний
  SP-Резерв
  RPLY-ОTвет ведомого устройства
  SYNC-Синхронизация обмена (подтверждение выдачи адреса)
  DOUT-Вывод( запись)
  DIN-Ввод (Чтение)
  DMR-Запрос прямого доступа к памяти.
  SACK -Подтверждение предоставления прямого доступа к памяти
  DMGO-Предоставление прямого доступа к памяти
  SEL1, SEL2-Выворка регистров ввода-вывлда.
  BSY-Сигнал занятости системного интерфейса.


                Работа процессора.

           Работу процессора можно уяснить , рассматривая авто
    матизацию  решения матиматических задач. Общими случаями
    автоматического решения математических задач являются алго
    ритмы умножения и деления. Первый основан на сложении и сд
    вига , а второй -на итерационном вычитании. Ограничемся
    подробным расмотрением процесса автоматического умножения.
    Схемный алгоритм , описывающий работу вычислительного усро
    йства , дает исчерпывающий ответ на вопросы синтезе электр
    онных цифровых машин, так как точно отбражает процесс авто
    матизации вычислений.
          Процесс вычисления распадается :при умножении на цик
    лы умножения на одну цифру множителя , а при делении -на
    циклы для определения одной цифры частного. Каждый цикл, в
    свою очередь , распадается на повторяющиеся этапы , состоя
    щие их отдельных сложений(или вычитаний);при этом в случа
    е деления число этапов заранее неизвестно.
        Формальныйй характер вычислительного процесса  показан
    на схеме автоматичнского умножения.

                    |---------------------|
                    |  Команда умножения  |
                    |----------|----------|
                               |
           |-------------------|---------------------|
           |  Прием операндов множимого и множителя  |
           |-------------------|---------------------|
                               |
                               |
        -----------------------|------------------------|
        |    Если данная цифра множителя не нуль , то   |
        |    начать умножение, или , если нуль , то     |
        |              сдвинуть множимое                |
        |----------------------|------------------------|--|
                               |                           |
           |-------------------|----------------|          |
           |         Сложение множимого         |          |
     |-----|     (с нулем или множимым )        |          |
     |     |-------------------|----------------|          |
     |                         |                           |
     |                         |                           |
т    |     --------------------|----------------|          |
     |     |     Вычитание единицы (из цифры    |          |
     |     |    множителя или остатка его)      |          |
     |     |-------------------|----------------|          |
     |                         |                           |
     |       |-----------------|----------------|          |
     |       |    Сравнение остатка с нулем     |          |
     |       |-----------------|----------------|          |
     |                         |                           |
     |                         |                           |
     |       |----------------------------------|          |
     |       |     Если с>0, то ИЛИ если с=0    |          |
     |       |------|----------------------|----|          |
     |              |                      |               |
     |              |                      |               |
     |              |                      |               |
  ---|--------------|-----|                |               |
  |   Повторение          |                |               |
  |  процесса умножения   |                |               |
  |  на данную цифру      |                |               |
  |-----------------------|                |               |
                                           |               |
                                           |               |
                              |------------|-------|       |
                              |  Сдвиг множимого   |       |
                              |-----------------|--|       |
                                                |          |
                                                |          |
                                   |------------|----------|-|
                                   |     Переход к умножению |
                                   |   на следующую цифру    |
                                   |   множителя             |
                                   |-------------------------|


      Таким образом , автоматическая вычислительная машина, ре
    ализующая алгоритм умножения , должна содержать : два при
    емных регистра , сумматор со сдвигом , регистр результата
    , счетчик и комутатор упрваления (схема сравнения , перек
    лючатель).
            Для реализации алгоритма деления необходимы те же
    цифровые схемы , что и для умножения , а именно :два прием
    ных ренистра, сумматор со сдвигом , регистр результата ,
    счетчики и схема сравнения( управления).
             Из алгоритма видно , что процессор для выполнения
   уможения должен реагировать на цифры множителя в зависимост
   и от величины остатка и перехходить к тому или иному продол
   жению хода операции . Если остаток положительный , вычисле
   ние продолжается , если остаток отрицательный , то произво
   дится  сложение и сдвиг , после чего осуществляется переход
   к следующему циклу вычитаний.
        В прктических задачах алгоритм оычно распадается на
   циклы повторяющих серий элементарных операций , которые мо
   гут быть разбиты на более мелкие циклы.
         Таким образом , программа автоматического решения за
   дачи методом интерации должна предусматривать : проведение
   последовввтельности вычисления этапов А ли В и в завимости
   от знака величины а ( критерий точности) вохможны два даль
   нейших хода процесса. В одном случае вычисления прекращают
   ся, а в другом -производится  переход к этапу С (замена ис
   ходных данных ), после чего происходит возврат к повторению
   процесса с новыми исходными данными .
               Для того чтобы иметь возможность осуществить та
   кую программу вычислений, процессор должен реагировать на
   знак числа а, определяя то или иное продолжение прооцесса
   ( появление того или иного знака должно вызывать ту или иную
   комутацию). Далее должно быть предусмотрено возвращение от
   определенного этапа программы к более раннему.

       Это дает возможность реализовать решение задач ,распада
   ющихся на циклы.
           Эфективность работы процессора зависит от ряда факто
  ров , и на оценку ее влияют:
    1. Технические параметры :быстодействие логических схем,
    время обращение к памяти, емкость памяти , совмещенность
    времни работы отдельных логических устройств во време.
    2. Тип обработки информции: последовательное выполнении
    программы .
    3. Использование стандартных языков програмирования.
    4. Класс решаемых задач.
    5. Участие оператора в работе процессора.

           Схема проведения интерации.

                 Начало решения задачи
                    |
                    |
                    |
                |-----------------------------|
                |    Этап А:вычисление f(x)   |--------|
                |--------------|--------------|        |
                               |                       |
                |--------------|--------------|        |
                |   Этап В: расчет а          |        |
                |--------------|--------------|        |
                               |                       |
                |--------------|--------------|        |
                |        Сравнение:           |        |
                |     а< 0 или а>0            |        |
                |-|---------------|-----------|        |
                  |               |                    |
                  |       |-------|-------|            |
       |----------|-|     |   Переход     |            |
       |   Конец    |     |-------|-------|            |
       |------------|             |                    |
                                  |                    |
                          |---------------------|      |
                          |    Этап С:          |      |
                          |   замена х на f(x)  |      |
                          |----------|----------|      |
                                     |                 |
                                     |-----------------|


           Приближенную оценку роизводительности процессора мо
    жно получить по времени выполнения отдельных операций:
    сложение, сравнение и т. д.
              Несколько лучьшую оценку дает использование сме-
   шанного критерия, учитывающего относительное число операций
   различчного типа для задая того или иного класса. Качество
   процессора при этом оценивается параметром:

               P=n*t

    где t-время выполнения команды типа данной машины.
        n-относительное число команд типа в программе данной
         задачи.

     Время выполнения команды является характеристикой машины,
    а относительное число их- характеристикой класса задач.
            Таким образом , параметр Р характеризиет время вы
    полнения средней операции для данного типа задач. При этом
    емкость памяти, длина слова , структура команд, кналы вво
    да-вывода и внешние утройства не принимаются во внимание.
    По этой причине данная оценка характеризует только быстро
    действие  вычислительного устройства с програмным управле
    нием , и отчасти - время обращения к памяти и систему ко
    манд. В этой связи можно сказать, что частота процессора
    БК модели 11м, составляет 6.3 Мгц . Получена на программе
    частотная характеристика радиоэлементов в 1993 г. Вообще
    говоря частота процессора  зависит от объема , загруженой
    программы. С увеличнием , уменьшется частота достигая мини
    мальной величины 4 Мгц,  а при уменьшении увеличивается
    чистота до 8 Мгц. ( Смотри справочник по интегральным микро
    схемам ).
                 Иногда оценка производительности  вычислитель
    ной машины производится по времени решения некоторых типо
    вых задач :формирование и сортировка массивов, обращение
    матриц, вычисление функций. Здесь трудности возникают из-
    за приближенного учета программых средсв.


                 Класификация и элементная база
                     микропроцессоров.

            Микропроцессором называется програмно-управляемое
    устройство для обработки информации и данных, реализованное
    в виде одной или нескольких больших интегральных схем. Про
    грамирование микропроцессора осуществляется подачей внешних
    электроических сигналов , комбинация которых образует опре
    деленную микрокоманду , обеспечивающую выполнение той или
    иной операции или микрооперации. Микропроцессоры делятся
    на несколько классов в зависоммости от особенностей их стру
    ктуры и значений основных параметров.
               Способы програмирования и организация управления
    В завимости от способа програмирования различают микропро-
    цессоры , выполняющие определенный набор команд и микропро-
    цессоры выполняющие набор микрокоманд.
           Микоропроцессоры первого типа выполняют набор из не
    скольких десятков (обычно 40-80) относительно простых кома
    нд. Для сравнения отметим , что современные мини-ЭВМ выпол
    няют около 355 команд, а БК-11 только 64 команды. Реализа
    ция поступившей в микропрцессор команды обеспечивается с
    помощью блока управления, который вырабатывает необходимую
    последовательность управляющих сигналов-микроприказов, оп
    ределяющих работу каждого функционального блока микропроце
    ссора. В каждом такте машинного времени блок управления
    формирует определенную совокупность микроприказов-микроко
    манду,  всоответствии с которой различные узлы и блоки мик
    ропроцессора выполнябт необходимые операции по поступающей
    информации. За несколько тактов выполняется ряд команд ,
    необходимых для реализации поступившей команды . Отоситель
    но простые команды реализуются за 2-5 тактов, более слож
    ные требуют 10 и болле тактов.
                В микропроцессоре этого типа обячно использует
    ся так называемое апаратное управление, при котором необхо
    димая последовательность команд формируется с помощью спе
    циальных последователлльных схем -управляеых генераторов
    чисел. При этом структура  блока управления имеет вид, изо
    браженной на схеме ниже.
                    Двоничный код команды , поступающий на вхо
    ды микропроцессора , записывается в регистр команд и хра
    нится там в течении времени  ее  выполнения . В соответст
    вии с кодом с дешифратором команд, вырабатывается ряд упра
    вляющих сигналов . Часть сигналов дешифратора поступает в
    схему управления генератором чисел . Эта комбинационная сх
    ема задает последовательность чисел , вырабатываемых гене
    ратором , каждое из которых является кодом одной команды.
    В зависимости от кода поступившей команды схема управления
    определяет длину и  состав последовательности чисел форми
    руемой генератором , т. е. число и виды команд , требуемых
    для выполнения данной команды . Вырабатываемые команды по
    ступают на соответствуюшие узлы имкропроцессора , произво
    дящие необходимые операции над поступающими данными.
         Сигнал поступающий от дешифратора в счетчике тактов,
    определяет число тактов для реализации команды. После про
    хождения требуемого числп тактов  счетчик вырабатывает
    сигнал окончания выполнения команды S , разрешающих переход
    к следующей команде программы, код которой хранится в
    одной из ячеек запоминающего устройства. Адрес этой ячейки
    определяется числом, содержащимсяя в счечике команд. При
    естественном ходе выполнения программы следующая команда
    содержит ся в ячейке памяти , адрес которой на единицу бол
    ьше адреса хранения предыдущей команды . В этом случае
    адрес следуещей команды образуют , прибалением 1 к содержимо
    му счетчика команд.

               Схема аппаратного блока управления.


          КОМАНДА                          АДРЕС
    |---------|---------|              |-------------|
    |   Регист команд   |              |   Регистр   |
    |---------|---------|              |   адреса    |
              |                        |----------|--|
              |              |-------------|   |--|-------|
     |--------|---------|    |  Управление |   | Счетчик  |
     |    Дешифратор    -----|  счетчиком  |---|  команд  |
     |--|-------------|-|    |  команд     |   |----------|
        |             |      |---------|---|
        |             |                |
        |             |                |
        |         |---|-----------|    |
        |         |  Управление   |    |
        |         |  генератором  |    |
        |         |   чисел       |    |
        |         |-------|-------|    |
    |---|----------|      |            |
    |  Счетчик     |      |------------|
    |              |
    |  тактов      |
    |--------------|


                 При выполнении комаонд условных и безусловных
    переходов естественный ход программы нарушается. В этих ус
    ловиях схема управления счетчиком команд устанавливает его
    содержимое (адрес следующей команды ) в зависимости о кода
    предыдущей команды (сигналов дешифратора) и результата его
    выполнения ( сигналов от арифимитическо-логического устрой
    ства и других функциональных узлов ). Сигналы , поступающие
    от микропроцессора во внешние устройства, могут потребовать
    пркрывания , выполнения одной программы и перехода к выпол
    нению другой . Таким образом , сигналы также влияют на фор
    мирование команд и выбора следующей команды.
                 В микропроцессоре первого типа блок програмно
    го управления и операционные блоки, выполняющие операции
    над поступающими данными , содержатся на одном кристале.
    Такой микропроцессор представляет собой фукционально и кон
    струкктивно законченный блок обработки информации .
             Микропроцессоры второго типа выполняют набор из
    нескольких десятков или сотен команд (обычно 64-256). Так
    ие микропроцессоры можно использовать только в том случае
    если программа работы задана в микропромном виде , т. е.
    в виде последовательности команд. Так как для реализации
    ооной команды в среднем требуется выполенение 5-10 микро
    команд, то объем программ приблизительно на порядок
    превышает объем соответсвующих программ. Поэтому составле
    ние и отладка програм требует больших затрат времени. Обыч
    но при использовани микропроцессора второго типа программа
    преобразунтся к микропропрограмному виду автоматически с
    помощью специального микропрограмного управления,  которое
    реализуется в виде отдельной специализированной большой ин
    тегральной схемы или стоится их нескольких комбинационных
    и последовательных микросхем.

                    Структура микропрограмого блока
                            управления.



                            Команда
                       |---------|----------|
                       |  Регистр команд    |
                       |----------|---------|
                                  |
                                  |
                         |--------|----------|
           X, Y----------|    Схема формиро  |
                         |    вания адреса   |------------|
                         |---------|---------|            |
                                   |                      |
                                   |                      |
                                   |                      |
                         |---------|---------|            |
                         |   Регист адреса   |            |
                         |   команд          |            |
                         |-------|-----------|            |
                                 |                        |
                  |--------------|---------|              |
                  |                        |              |
         |--------|------|       |---------|---------|    |
         |  ПЗУ команд   |       |   ПЗУ управления  |    |
         |--------|------|       |    адресом        |    |
                  |              |---------|---------|    |
         |--------|-----|                  |              |
         |    Регист    |                  |--------------|
         |    команд    |
         |--------|-----|
                  |
             Команда






            Общая структура програмных управляющих устройств
    показана на схеме выше. Коды всех команд хранятся в ПЗУ
    микрокоманд. Выбор требемой команды определяется ее адресом
    который образуется с помощью схемы формирования адреса ко
    манд функции которой в миропроцессоре обычно выполняются
    микросхемами. В соотвествии с кодом поступившей команды ,
    хранащемся в регистре команд, схема формирует адрес первой
    из последовательности команд, обеспечивающий реализацию по
    ступившей команды. Выбранная их ПЗУ  команда заносится в
    регистр команд и затем поступает в соотвествующие операци
    онные блоки . Одновременно из ПЗУ управления адресом выби
    рается комбинация двойничных управляющих сигналов (код уп
    равления), который поступает в схему формирования адреса,
    вызывает обращение на ее выходе адреса следующей команды.
    Этот адрес и соответствует последовательности команд могут
    изменятся под воздейтсвием внешних сигналов  устройсв и
    результатов предыдущей команды . Для выбора следующей ко
    манды также формируются необходимые команды, в соотвествии
    с которыим оперционные блоки образуют новый адрес.


                                       Интерфейсны  блок
          Блок
       прерываний                                  |--|--RPLY
          |---|------------------------------------|  |--SYNC
  ACLD ---|-- |   |------------------------------| |  |--DOUT
  DCLD ---|   |   |  РОН         РСП             | |  |--DIN
  IRQ1 ---|   |   | |R0 |   |-----------------|  | |  |--WTBT
  IRQ2 ---|   |   | |R1 |   | |I/O| |T |N|Z|VC|  |-|  |--DMR
  IRQ3 ---|   |   | |R2 |   |-----------------|  | |  |--SACK
  VIRQ ---|   |   | |R3 |                        | |  |--DMGO
          |-|-|   | |R4 |     |---------------|  | |  |--SEL1
            |     | |R5 |     |    АЛУ        |  | |  |--SEL2
            |     | |R6 |     |---------------|  | |-||--BSY
            |     | |R7 |      Операционный      |   |
            |     | |---|         блок           |   |
            |     |---|--------|---|-------------|   |
U          |         |        |   |                 |
----|      |----|----|        |   |                 |
GND -|-          |     |-------|   |                 |
----|           |     |           |                 |
    -|           |     |       |---| |---------------|----|
|---------------|-----|-|     |     |   Блок системной   |
|   Блок микропрограм-  |     |     |      магистрали    |
|   много управления    |     |     |--------------------|
|-----|--------|--------|     |
       |        |              |
INIT   |        |              |
  -----|        |     |--------|-----|
                |-----|    Регист    |
                      |    команд    |
                      |--------------|


                 Выполнение любой команды микропроцессора свя
    зано с обним или несколькими обращениями к магистрали , вы
    полняемими по одному из трех циклов :ввод (чтение), вывод
    (запись), ввод-пауза-вывод (чтение-модификация-запись).
    Любой цикл начинается выставлением сигнала BSY - занятия
    на системной магистрали. Этот сигнал используется также
    для управленим схемами магистрали. Одновременно с сигнала
    ми WSY на магистрали выставляется адрес , а при обработке
    цикла "Зпись"- также и сигнал WTBT. С задержной на такт вы
    ставляется сигнал SYNC ( синхронизайия обмена ), свидеьель
    ствующая о том,  что на выводах ADO-AD15  установлен код
    адреса. Для любой магистрали первое обращение к магистрали
    связано с выставлением на магистрали адреса из счтчика ко
    манд РС.
         Во время действия сигнала SYNC микропроцессор выраба
    тывет сигнал DIN , свидельствующих о готовности микропро
    цессора принять данные от пассивных устройств. Сигнал DIN
    вырабатывается также совмемтно с сигналом IAKO , сопровож
    дая ввод адреса вектором прерывания. если микропроцессор
    выводит данные , то вместо DIN вырабатывается сигнал DOUT
    , свидетельствующий о том , что выводимые данные установле
    ны на выводах блока  системной магистрали. При выводах

    слова , сиганл WIBT снимается вместе с адресом , а при вы
    даче байта сохраняется до окончания сиганала BSY.
           Сигнал RPLY вырабатывается внешним устройством в от
    вет ан сигнал DIN или DOUT и обозначает в первом случае,
    что данные установлены на магистрали , а втором случае -
    что данные приняты с магистали.
                  Если сигнал RPLY от внешего устройства не
    поступил в течении 64 тактов, то микропроцессор переходит
    к обслуживанию внутреннего прерывания по ошибке обращения
    к системной магистрали. После поступления сиганла RPLY от
    внешего устройства микропроцессор считывает данные с магис
    трали  и сбрасывает сигнал DIN. Если выполняется цикл "За
    пись" , то сигнал DOUT снтмается через 300 нс и через 100
    нс считываются данные с магистрали.
           Внешнее устройство после сброса сигнала DIN или DOUT
    снимает сиганал RPLY , после чего микропроцессор снимает
    сиганлы BSY и SYNC и может выполнять следующий цикл обраще
    ния к каналу.
           Для увеличения общей производительности  микропроцессора
    сора    может отрабатываться совмещенный цикл "Чтение-моди
    фикация -запись", в котором после снятия внешним устройст
    вом сигнала RPLY сигналы SYNC и BSY не снимаются, а отраба
    тывется временная диаграмма, соотвествующая циклу "Запись"
    .           В микропроцессоре имется спецефический режим
    обращения с внешними устройствами расширения ввода-вывода
    , задаваемый сигналами SEL1, SEL2. Сигналу SEL1 соответсву
    ющий адрес 177716 , а сигналу SEL2- адрес 177714. Обмен с
    этими регистрами осуществляется обычным образом по сигналам
    DIN и DOUT , однако выдачи от регистров ответного сигнала
    RPLY не требуется. По длительности сигналы SEL1 и SEL2 сов
    падают с сигналами BSY.
                   Для организации многопроцессорных систем и
    прямого доступа к памяти (ПДП) в интерфейстном блоке выра
    батывабтся специальные сигналы DMR, DMGO, SACK. В основе
    этих функий лежит алгоритм захвата шины аддрес/данные глав
    ным и подчиненным устройством. Неглавное устройство формиру
    ет  сигнал DMR ("Запрос прямого доступа"), в на который гл
    авное устройство вырабатывает сиганал разрешения DMGO. Все
    подчиненные усиройства в многопроцессорой системе соединены
    последовательно по шине захвата , так что выход DMGO
    предыдушего , соединяется со входом DMG1 последуещего .
    При этом сигнал DMGO транслируется со входа DMG1 на выход
    DMGO0 на всех микросхемах, кроме выставившей запрос  DMK,
    которая блокирует дальнейшее  прохождение сигнала DMGO и
    выставляет сигнал SACK (Подтверждение запроса магистрали").
                     Далее этого микропроцессор, захвативший
    магистраль , снимает сигнал DMR, выставляет адрес и сигнал
    BSY , после чего отрабатывает один из сигналов обмена.
    Сигнал SACK снимает обновременно с сигналом DIN или DOUT,
    если в данном микропроцессоре снова не выставлен запрос
    DMR . В этом случае запрос обращения к магистрали может бы
    ть повторен.
           Главный микропроцессор может захватить магисталь то
    лько в том случае , если отсутствуют запросы от других ус-

    тройств и не идет цикл обмена по магистрали. Цикл обмена
    начатый гравным микропроцессором , при появлении других за
    просов будет завершон, но переход к новому циклу приостана
    вливается , а магистраль предоставляется подчиненому микро
    процессору, выствившему запрос. Таким  наивысшим приобрите
    том в системе будет обладать устройство, соединенное своим
    входом DMG1 с выходом DMG0  главногного микропроцессора.
    Назначение микропроцессора в системе главным или подчинены
    м осуществляется заданием кода на входе PA1, PA0. Код 11
    соотвествует  главному микропроцессору. другие коды -подчи
    неному.
              Важной функцей при организации управленя в реаль
    ном режиме времени и построении микропроцессорных систем
    является прерывание. В качестве источников прерывания могу
    т выступать следующие процессы и сигналы : ошибка обращени
    я к магистрали; незадействованный код в регистре команд;
    Т-бит в реггистре слова состояния процессора; сиганл ава-
    рии сетевого питания ACLO;сигналы радиальных прерываний
    IRQ1, IRQ2, IRQ3; сигнал векторного прерывания VIRQ.
                   Kaк указывалось выше , прерывание от внешнго
    устойства IQR1, IRQ2, IRQ3, VIRQ могут быть заблокированы
    установкой в 1 седьмого разряда слова состояния процессора
    . Как правило прерывание текущего процесса производится по
    сле выполнения очередной косанды. Исключение сотавлет ошиб
    ка обращения к магистрали , вызывающий прерывание програмы
    на любой фазе выполнения команды.
            Процедура внешего прерывания начинает с подачи
    внешним устройством запроса VIRQ на соотвествующий вход ми
    кропроцессора. Если прерывание не замискировано (разряд 7
    РСП равен 0), то микропроцессор по указателю стека R6, с
    предварительным декриментом адреса записывает содержимое
    РСП , а затем счтчика команд РС. Кроме того , микропроцес
    сор последовательно устанавливает сигналы DIN ( управление
    вводов данных) и IAKO (разрешение прерывания). Сочетание
    этих сигналов при пассивном уровне сигнала SYNC обеспечива
    ет отработку цикла ввода адреса вектора прерывания. Устрой
    ство выставившее запрос , принимает сигнал , IAKO и запре
    щает его распросиранение к другим устройствам , выставляет
    адрес вектора прерывания на системную магисталь , вырабаты
    вает сигнал RRPLY и снимает сигнал VIRQ, микропроцессор
    приняв адрес вектора прерывания , снимает сигналы DIN и
    IAKO , и устройство заканчивает цикл снятием сиганала RPLY.
               Далее микропроцессор считывает новое содержание
    РС и РСП из двух ячее памяти (адпес первой есть адрес век
    тора прерывания ) и перходот к выполнению команды с адресо
    м из РС , входящим в программу обработки прерывания. При
    выпоооолнени команды также может быть реализовано прерыва
    ние, и снова состояние выполняемой программы будет зафикси
    рованно в очередной ячей стека.
             Всякая программа обработки прерывания должна зака
    нчиватся командой возврата из прерывания RTI, по которой
    из стека выбирался вектор прерванного процесса , записывае
    мый в РС и РСП. Сигнал IRQ1 блока прерывания переводит мик
    ропроцессор в состояние аналогичное состоянию команды HALT


    и используется для контроля за положением переключателя "
    Программа/пульт". Сигналы IRQ1, IRQ2 , IRQ3 используются
    также для организации систем радиальных прерываний , имеют
    прериотет выше , чем VIRQ, и вызывают прерывание по фиксиро
    ванным адресам 000100 и 000270 соотвественно.
              В блоке прерывания имеются два входа: ACLO -сиг
    нал аврии источника питания переменного напряжения, DCLO
    -сигнал аварии источника питания постоянного напряжения .
    Этот сигнал вместе с сигналом INIT блока микропрограммого
    управления используется для осуществления процедуры инициа
    лизация микропроцессора. В первый момент после включения
    питания микропроцессора поступают сигналы DCLO и ALSO. Сиг
    нал DCLO должен выдерживаться не менее 5 мс, в течении кото
    рых микропроцессор вырабатывает сигнал INIT , используемый
    для устаноыки в исходное состояние внешних устройств (сиг-
    нал INIT может также поступать в микропроцессор извне, осу
    ществляется сброс тригеров запроса радиальных прерываний и
    блокировку сигналв DMR). Через 5 мс. после подачи питания
    на микропроцессор должен быть сныт сигнал DCLO ( микропро-
    цессор при этом снимает сигнал INIT ); через 70 мс должен
    быть снят сигнал ACLO. С этого момента начинается собствен
    но инициализация ( обнуление ) работы микропроцессора :по
    адресу 1777716 (для главного микропроцессора ) считывается
    стартовый адрес SEL1 и заносится в старший байт счтчика ко
    манд РС; в РСП загружается константа 340; микропроцессор
    переходит к выполнению команды по адресу из счетчика кома
    нд.
              Одной из функйий описанных выше сигналов интер
    фейсного блока является управление блоком систкмной магис
    трали , связывающий внутренную магистраль микропроцессора
    с внешней. В этом блоке осуществляется управление усилите
    лями приема и выдачи информации по совмещенным выводам ад
    ресов и данных  AD0-AD15.


                   Используемые в БК типы данных.

           Бейсик позволяет работать с данными арифмитичекого
    и текстового (строкового) типов, причем аррфмитические дан
    ные могут быть целого и вещественого (одинарной и двойной
    точности). Конечно процессор БК не имеет таких возможносте
    й . Например обработка вещественных чисел может быть органи
    зована только програмно, причем различные системы програми
    рования , могут использовать даже различные способы предст
    авления этих чисел.
             Основными данными, с которыми может работать
    процессор БК , является байт и слово. Соответственно , в
    слове  может быть размещено целое число, а в байте -один
    символ текста.
                В одном слове 16 бит-двойничных разрядов,поэто
    му из них можно составить  2^16=65536 различных комбинаций.
    Если учесть , что машинные слова команды работы с целыми
    числами считают старший разряд (15-й бит) слова знаковым
    (0-число положительное, 1-число отричательное), то диапазон
    чисел в БК будет -32767. Если в результате вычислений в
    Бейсике получится больший результат, он выдаст ошибку  6.
    Если то же самое произойдет в вашей программе в кодах, ни
    кто этого не заметит , если не принять специальные меры.
    Тогда, прибавив единицу к цислу 32767, вы полцчите -32768.
           Для того чтобы предсиавит символы в памяти машины,
    их кодируют. В одном байте -8 бит, что позволяет закодиро
    вать 2^8=256 различных символов. Это вполне достаточно,
    чтобы разместить строчные и заглавные буквы двух алфавитов
    цифры и другие спецзнаки. Именно для удобства кодировки
    символов и был выбран такой размер памяти машины.
              Следует отметить , что для кодирования символов
    в БК используется советский стандарт KOI-8 =8 бит , базрую
    щий ся на международном стандарте ASCII (American Standard
    Code Information Intershange).
            Процессор -это сложная электронная схема . Однако
    знать все его особенности при програмировании в машинных
    кодах незачем. То что нужно знать програмисту о каком -ли
    бо устройстве машины, назывется его програмной моделью.
    Сюда относиться програмно-доступные ячейки памяти устройст
    ва (их называют регистрами). а также алгоритм функциониро
    вания устройства.
           Регистры общего назначения предназначены для проме
    жуточных результатов вычислений . Операции пересылки данных
    в ОЗУ . Оптимальное импользование регистров общего назначе
    ния в чисто выполняемых чиклах программы позволяет иногда
    ускорить ее на порядок. Регистр R5 использется для связи с
    подпрограммами , а регист R6 обозначается SP и использует
    ся как при вызове подрпрограм , так и при обработке преры
    ваний. Регистр R7 обозначается РС -счетчик команд , всегда
    содержит адрес следующей команды , которую должен выполни
    ть процессор . Расмотрим подробнее алгоритм работы процес
    сора , то есть опишем как он выполняет программу.
           Программа должна начинать работу с определенного
    адреса памяти (с опреденной команды) . Для этого двойнич
    ный код адреса, с которого начинается программа , должен

    быть предварительно записан в регистр РС процессором(
    счетчик команд) так как регистр РС всегда хранит адрес
    очередной команды , подлежащей выполнению.
           Допустим в регистре РС записали восъмеричное число
    7000  (все коды и адреса будем писать в восьмеричном виде.
    ). Это значит , что следующей командой выполняемой процес
    сором , будет команда , исполняемой процессором , будет ко
    манда хранящаяся по адресу 7000. Произойдет это так: из па
    мяти с адреса 7000 в процессоре перепишется    слово-двойн
    ичный код команды для выполнения. Например пусть по адресу
    7000 была записана команда 600001.
              По этой команде процессор должен сложить содержи
    мое R0 с содержимым R1. Причем результат сложения  (сумма)
    запишется в R1. После выполнения процессором этой команды
    содержимое регистра РС автоматически увеличивается на 2
    ( стане равным 7002),  теперь уже в процессор будет переда
    на команда из ОЗУ  с адреса 7002, и так далее.
           Действие команд перехода заключается в записи в реги
    ст РС нового значения ,  итогда процессор продолжит выпол
    нять программу с указанного адреса.
              А что будет , если процессор в результате ошибки
    програмиста прочитает непонятную ему команду ? Ничего стра
    шног не произойдет , просто в этом случае выполнение прог
    раммы будет прервано и процессор начнет выполнять программу из
    из системного ПЗУ (как говорят программа вылетит в монитор)
    , либо управление возмет на себя используемый отладчик.
           Аналогичная ситуация возникает , если в РС записать
    нечетное число ( вы помните ючто длина команды кратна маши
    нному слову, т. е. двум байтам, и ее адрес должен быть чет
    ным ), либо такого адреса в мшине не существует.
              Остается только добавить, что после выполнения
   каждой команды программы меняется содержимое регистра состо
    яния процессора. Этот регистр предназначен для хранения
    PSW-слово состояния процессора. В слове состояния процессор
    а имеют значения следующие биты (разряды)-
    бит 0(С) устанавливается в 1, если при выполнении команды
    произошел перенос единицы из старшего разряда результата;
    бит 1(V)устанавливаетсч в 1если при выполнении  арифмитичес
    кой  команды ( например сложения) произошло арифмитичсекое
    переполнение;
    бит 2(Z) устанавливается в 1 , если результат равен нулю;
    бит 3(N) устанвливается в 1, если результат отрицателен.
    Эти биты слова состояния процессора используют команды ус
    ловного перехода . Остальные биты слова состояния процессо
    ра устанвливаются програмистом для задания режимов работы
    процессора;
    бит 4(T) , устанавливается в 1, вызывает после выполнения
    очередной команды прерывания по вектору 14. Это использует
    ся программами -отладчиками для трссировки программы;
    бит 7(Р) установленный в 1 , запрещает прерывание от внеш
    них устройств. Таким образом , командой установки слова
    состояния процессора  MTPS #200 можно запретить прерывание
    от клавиатуры до тех пор , пока не выполнится команда
    MTPS#0.

                Управление памятью.
         Обычная интерпетационная машина слова , как адреса по
    зволяет нам адресовать к байтам в диапазоне от 0 до 17777
    т. е.  всего к 2^16=65536 байтам. При описании различных
    объемов памяти принято пользоваться обозначением К, которое
    соответствует числу 2^10=1024 (=O 2000). Поэтому можно ска
    зать, что одно слово машины позволяет вам адресовать к по
    лю памяти 64 Кбайт  или 32К слов.
               В стандартном оборудовании  каждого процессора
    предесмотрен определенный объем памяти , который в случае
    необходимости можно расширить с помощью имеющихся в апара
    туре возможностей. Было истетвенно считатать , что масима
    льный объем памяти для машины равен 32 К слов, просто пото
    му , что для большего не хватает адресного пространства.
    Так как 4 К слов общей шины зарезервированы под регистры
    ввода-вывода и различные управляющие символы , то, казало
    сь бы , система предоставляет в распоряжение не более чем
    28 К слов  оперативной памяти. Для самых малых машин дан
    ного семейства  это именно так.
                 Однако в боее крупных системах внутренние ре
    гистры процесссора  имеют 8 разрядов. , так же как и адреса
    общей шины. Поэтому процессор может адресовать , а общая
    шина обепечивать доступ к пространству в 2^18=256 K байт
    или 128 К слов. Учитывая 4 К слов , отводимых под регистры
    ввода-вывода и аналогичные срества , потенчиально получаем
    124 К слов оперативной памяти. Казалось это огромный объем
    но некорые пользователи ( с непомерными запросами), работаю
    щие  в системах с разделенным временем, умудряются его пол
    ностью исчерпать.
            Указанная память , однако составлена из уже имеющи
    хся нам шестнадцатиразрядных слов машины, и казалось бы
    проблема остается неразрешимой , поэтому одно слово из
    шестнадцати битов не может вместить восемьнадцатиразрядный
    адрес. Если пользователи не принтмают мер, то так оно и бу
    дет :только 32 К адресов общей шины будут доступны его про
    грамме. Из них 28 К-ячейки опративной памяти. Так как 56 К
    =О 160000 ( в байтах), то обычным способом можно програмо
    послать на ячейки от 0 до 157776. Ссылка интерпритируется
    процессором обчным образом :как обозначение ячейки общей
    шины с указанием номера. К примеру, команда CLR@#100000
    очищает ячейку общей шины с номером 100000 . Эта ячейка
    является одним из слов опративной памяти. В данном случае
    мы будем использовать абсолютную адресацию, поскольку
    значение  адреса представляется  при таком способе в явном
    виде.
          Регистры устройства ввода-вывода , однако, всегда
    находятся в верхних адресах обще йшины и занимают 4 К слов
    т. е. в случае восемнадцатиразрядных адреслв  это ячейки с
    760000  по 777776  . Например , буфер печатаюшего устройст
    ва занимает ячейку с адресом 777566. Такое число не помеща
    ется в одно слово машины, изъза чего команду типа MOV@#
    102, 777566 закодировать без изменения знака нельзя. Тем
    не менее мы уже видели, что запись MOVB#102, @177566 позво
    ляет адресовааться к требуемому буферу . Происходит так по
    тому , что процессор автоматически смещет значения всех
    адресов в диапазон от 160000 до 177776 , интерпритируя их
    как шестнадцать младших битов истиного адреса, в котором
    17-й и 18-й биты равны нулю.
             Очень важно не путать подобное смещение адресов с
    тем, которое производит компоновщик. Задача последнего сос
    тоит в том , чтобы вне зависомости от места размещения про
    грпммы в памяти исполнительный адрес , вычисляемый процесо
    ром , соответствовал требуемой ячей памяти. К примеру, ес
    ли мы пишем MOVB#102, 177566, то от компоновщика требуется
    определенная работа, в результате которой он убедится, что
    здесь имеется ссылка на ту ячейку памяти , что и при запи
    си MOVB#102, @#177566. В обоих вариантах ссылаются на ячей
    ку 177566. В функции смещения , о которой идет речь в дан
    ном разделе входит привязка адреса (виртуального адреса)
    к соответсвующей ячейке общей шине ( физическому адресу).
    Обратите внимание также на то, чио преобразование виртуаль
    ного адреса в физичсесский выполняется аппаратно.
                  Ясно , что в диапазоне от 0 до 157776 никако
    го смещения не требуется :виртуальный адрес совпадает с фи
    зичеким . Однако для вирутуальных адресов с 160000 по            177
    177776 физически адрес получается расширением виртуального
    адреса двумя единичными битами :разрядами 17 и 18.
                  Машины с памятью более чем 28 К слов имеют

    специальный блок проверки величины смещения . При соотвест
    вующем подборе виртуального адреса и значения смещения лю
    бой физический адре с становится доступным. Апаратура , пр
    и помощи которой осуществляется контроль смещения , называ
    ется блоком управления памятью.


             Страничная организация памяти.

                  На  машине пространство виртуальных адресов
    разбито на восемь страниц, каждая из которых расматривает
    ся блоком управления памятью, как единре целое . Имеется
    32 К слов виртуальных или програмных адресов , а длина ка
    ждой страницы равна 4 К сллов. Привязка виртуальных адресов
    к страницам определена заранее и не может быть изменена.
    Конкретно она выглядит так:

           Номер                    Диапазон
         страницы                виртуальных
                                  адресов
            0               000000-017776
            1               020000-037776
            2               040000-057776
            3               060000-077776
            4               100000-117776
            5               120000-137776
            6               140000-157776
            7               160000-177776

                 С каждой страницей связаны две специальные
    ячейки общей шины: регистр адрес страницы и регистр описа
    ния страницы.
                Включение управления памятью.
          При введении в действие процессора или при перзапуске


    его после команды  HALT  блок управления памятью не работае
    т. Он активизируется установкой бита включения управления
    памятью  , а именно нулевого бита регистра состояния управ
    ления памятью номер 0; заметьте, что пока управление памя
    тью выключено, автоматическое подлючение седьмой страницы
    позволяет нам обращаться к регистру R0 , как к виртуально
    му адресу 177572. Поэтому включение блока управления памя
    тью достигается так:
                R0=177572
                . . . .
                BIS #1, @#RO
      Рассмотрим теперь такую последовательность команд:
                R0=177572
                R7=172356
                . . . . .
                CLS  R7
                BIS #1, @#R0
                BIC #1, @#RO
                Если машина только , что включена , то нет не
    обходимости сбрасывать регистр R7 , так как он заведомо со
    держит 0. Но если процессор остановлен после  фукционирован
    ия операционной системы , то несмотря на отключение блока
    управления памятью , регистры продолжают сожранять установ
    ленные в них системой значения. При нормальной работе блок
    управления памятью запомнит содержимое регистра R7, так
    что седьмая страница будет, как обычно , отведена под
    регистры  устроцств ввода-вывода. Для этого требуется спе
    циальным образом настроить упомянутый регистр , содержимое
    которого было вытеснено нашей командой.
           Нужно помнить обнако,  что сбрасывание битов регистр
    а  производилось при отключенном блоке управления памятью.
    Поэтому ссылка в следующей проверке на регистр R0 , как на
    виртуальный адрес 177572 аппратно приводит к физической
    ячейке с адресом 77572 . Следовательно , эфект от выполнени
    я команды BIS сохраняется.
           Следуещей командой BIC мы попытались отключить блок
    управления . Именно к такому результату привело бы сбрасы
    вание первого бита ячейки 77572 общей шины. Но в нашей ко
    манде мы адресуем к 177572. Предфдущая команда привела к от
    ключению автоматичсекой привязки вирутуального адреса
    177572 к физической ячейке 77572. Поэтому , аппаратура
    заметив   , что 177572 есть виртуальный адрес в седьмой ст
    ранице, обратится к регистру R7 , чтобы определить , как
    его надо преобразовать. Мы  намеренно воздержались от запис
    и в регистр R7 необходимо смещения . В итоге команда BIC
    обратится не к регистру состояния , а кнекоторой другой
    физической ячейке памяти и не выполнит возложенную на нее
    фукцию.
                Не сцществует иного способа програмно иправить
    сложтвшуюся ситуацию . Поскольку невозможно обратиться к
    регистру R7 , нельзя задать и правильное смещение. По ана
    логичной причине все регистры устройстыва ввода-вывода
    оказывют программо не достижимы . Единственый способ отклю
    чить блок управления памятью состоит в останове процессора.

                    Формирование физического адреса.

                При включенном блоке управления паматью каждая
    ячейка, к которой адресуется из программы , расматривается
    аппаратурой как состоящая из двух полей . Биты с 13-го по
    15-й определяют номер страницы виртуального адреса. Это так
    называемого поле текущей страницы. Пусть виртуальный адрес
    равен 177566 . Биты с 13-го по 15-й в нем равны 1, что соо
    твествует двойничной записи числа 7, т. е. данный адрес за
    дает седьмую страницу . Поэтому аппаратура обращается к
    регистру  R7 за базовым адресом страницы 7. Он кодируется
    битами ц 0-го по 11-й регистра адреса страницы (остальные
    биты не используются ) . Для получения действительного зна
    чения смещения это двенвцатиразрядное поле сдвигается на 6
    битов влево.
           Оставшиеся 13 битов виртуального адреса (ц 0-го по
    12-й) предсиавляют собой поле смещения внутри данной страни
    цы. Значение этого поля складывается с базовым адресом , и
    в результате формируется физический адрес,  соотвествующий
    данному виртуальному.
           Обратите внимание на то, что все действия выполняютс
    я аппаратно . Програмисту только необходимо только настро
    ить регистры. Обычно операуионная система заносит регистр
   R7  число 7600 . Пусть опять вртуальный (програмный) адрес
   равен 177566. Он рападется на два поля:



             1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0
           |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
           |-----|---------|---------------|
                 |
        Страница|-------- Смещение------


    которые определяют  седьмую страницу и мещение 17566 . От
    метим что смещение всегда задается (в байтах ) между 0 и
    17777, так как длина страницы составляет 8 К (=О 2000) бай
    тов или 4 К СЛОВ . Смещая содержимое регистра R7 (т. е.
    7600) на 6 битов влевл, получим базовый адрес данной страни
    цы , равный 76000 . Следовательно , физическим адресом ,
    соотвествеующим данному виртуальному , будет:

        +  Базовый адрес        76000
           Смещение              1756
    -------------------------------------
          Физический адрес      87756

                 Размер страницы и доступ к ней.

           Страница виртуальной памяти всегда содержит 200 ква
    нтов. Порция в 100 байтов есть наименьшая величина смещени
    я , и поэтому в блоке управления памятью она служит кван
    том. Блок управления памтью распределит первый квант стра
    ницы , вычислив базовый адрес по описанной выше схеме. Но
    он не будет выпонять ту же опирацию с остальными квантами
    до особой команды. В результате адресация к ячейкам 000100
    по 017776 не достигнет цели , поэтому что им не будут
    поставлены  в соответсвии реальные ячейки памяти. Ссылка
    же на адреса с 0200000 по 020076 будут реализованы.
           Чтобы задать количество кватов данной страницы  вир
    туальных адресов , которое должно приведено к физическим
    ячейкам памяти , необходимо обратится к регистру описания
    страницы. В его старший байт програмист заносит требуемое
    число квантов( помимо первого ) . По команде:
                 BIS #77400, @#R7
    блок управления  памятью узнает о том , что все 200 кванто
    в седьмой страницы должны образовываться в физический адрес
    .Команда задает размер страницы в 200 квантов.
         Первый и второй байты регистра данных каждой страницы
    должны усианавливаться програмистом , чтобы определить пра
    ва доступа процессора кней. Если они оба равны 1., то раз
    решаются любые обращения из прогарммы к соответствующей
    виртуальной памяти; это резидетная , открытая на чтение-
    запись страница. Если в первом бите 1, а во втором 0, то
    ссылки разрешены только в командах , которые не изменяют
    содержимаое ячеек памяти;это резидентная , открытая только
    на чтение  страница. Если наконей оба бита нулевые, програ
    мная адресация к данной странице запрещена;это не резиден
    тная странийа.
                Таким образрм , последовательность команд:


                MOV #7600, @#R7
                BIC #6, R7
                BIS "1, @R0

    позволяет эффективно прервать связь процессора с устройства
    ми  ввода-вывода ( если только к ним уже не адресовались
    из  другой страницы ). Дествительно, хотя в регистр R7 ус
    тановлено правильное смещение для седьмой страницы, сбрасы
    вание битов командой BIC делает страницу не резидентной .
    Поскольку все регистры управления памятью расположены в од
    ной и той же области общей шины , теперь невозможно выдели
    ть под нее другую страницу. Снова единсивенный выход -оста
    новить и перезапустить процессор.
                 Заметьте, что замена #6 на #77400 в команде
    BIC дает тот же эфект. Только один квант седьмой страницы
    будет привязан к физицеской памяти , а все адреса выше
    76076 окажутся недоступными.
               Понятно, что ппод регистры ввода-вывода можно
    приспособитть произвольно выбранную страницу. Для этого до
    статочно настроить все регистры. Так как они находятся в
    одном и том же месте памяти , то предварительно придется
    либо отключить управление памятью , либо получить к ним до
    ступ через другую страницу.
          Напишем программу вывода на терминал буквы В , на
    этот раз адресуясь к буферу печати , как ячейке памяти с
    виртуальным адресом 34566. Виртуальный адрес рападается на
    поле с номером 1 и на поле смещения 1456. Следлвательно,
    чтобы виртуальный адрес 34566 соответствовал физическому
    адресу 77566 , необходимо в R1 задать базовый адрес , кото
    рый определяется так:

             Физический адрес          77566
            - Смещение                - 1456
        --------------------------------------
             Базовый адрес             76110

    И следовательно , в R7 нужно занести значение 76110. Вся
    программа , момоент входа в которую предполагается , что
    блок управления памятью отключен, такова:

                    R1=17232
                    R0=17572
    START:          MOV #76110, @#R1
                    MOV #1456, @#R1
                    BIS #1, @#R0
                    MOVB #102, @#34566
                    HALT
                    . END

                      Защита памяти.

               Ограничесния на размеры страницы и права доступа
    к ней , которые можно установить в регистре описания,
    используются в системах с разделением времени для того, что
    бы предохранить выделенные различным пользователям простран
    ва  памяти от пересечения и чтобы защитить опервционную си
    стему от всех непривилигированных програмистов.
            Если вкоманде нарушается какое -либо их этих  огра
    ничений , она выполняться не будет :блок управления память
    ю игнорирует ее. Он вызовет програмное прерывание ( не взи
    рая на приоритет процессора) с вектором прерывания в ячей
    ке 250. В связи сэтим надо учесть, что для всех векторов
    внешних и програмных прерываний используются виртуальные
    адреса. Поэтому команда

                   MOV #SERV, @#250
    всегда установит адрес ячейки SERV равным адресу обработки
    прерываний от блока управления памятью. Когда произойдет
    прерывание , в счетчике команд неокажется содержимого ячей
    ки 250 общей шины. Дейсивительно, привключенном блоке упра
    вления памятьб виртуальный адрес 250, будет смещен , и в
    счетчик команд поступит содкржимое ячейки, соотвествующей
    преобразованному адресу.
               Адрес который передается програмой в качестве
    входной точки процедуры обработки прерываний,  является ви
    ртуальным , так, что он имеет отношение к блоку управления
    памятью. Предполодим , что программа объявляет третьб стра
    ницу нерезидентной, включается блок управлением памятью и
    затем выполняется команды:

               MOV #60000, @#250
               TST @#60000
    Пепвая из них корректна. Хотя в ней фигурирует значение
    600000 , никаких ссылок на содержание ячейки с иаким вирту
    альным адресом не делается и защита памяти не нужна. Поэто
    му еоманда благополучно установит 60000 в качестве входно
    го адреса программы обработки прерываний.
                Вторая же команда пытается обратиться к нерезид
    ентной третьей странице. В результате блок управлением па
    мятью игнорирует ее и передает управление  по виртуальному
    адресу 250. Процессор загрузит содержимое виртуального ад
    реса 600000 в счетчик команд для того,  чтобы передать уп
    равление программе обработки прерываний. Это однако,  вно
    вь приведет к срабатыванию механизма зашиты памяти; снова
    проийдет прерывание и т. д. В итого программа зациклится.

                       Режим работы процессора.
           Привилигированных и непривелигированных пользовате
    лей в системе с разделенным временем различают по режимам,
    в которых они могут работать с процессором . В системе име
    ется два режима :опреативнй и обычный(польховательский).
    Сразу после включения процессор перейдет в оперативный ре
    жим и останется в нем до тех пор , пока будет выполняться
    системная программа или программа привелигированного поль
    зователя . Для непричелигированного пользователя операцион
    ная система изменит режим работы процессора , предваритель
    но предприняв шаги к тому., чтобы пользователь не смог са
    мовольно еог изменить.

             Наиболее характерное отличие заключается в ом,
   что  команда HALT является некорректной в режиме пользовате
    ля. Вместо останова процессора она приведет к прерыванию в
    ячейке 4 или 10. (В какой именно , зависит от процессора).
               Режим задается 14-м и 15-м битами слова
    состояния процессора  PS. Слово состояния имет на общей ши
    не адрес 77776. Если оба бита равны 0, то процессор работа
    ет в опреративном режиме. Если же это единицы, то режим об
    ычный.  На процессоре не допускается , чтобы значение би
    тов было различным.
                    Когда блок управления памятью получает вир
    туальный адрес , то он прежде всего анализурует слово сос-
    тояния , чтобы определить в каком режиме находится процес
    сор. В зависимости от режима в описанном ранее алгортме вы
    числения смещения используется тот или иной набор регистр-
    ов . Содержимое этих наборов в целом не зависит одно от др
    угого. Твким образом , допустимо (это практикуется) , что
    в пользовательском режиме програмам будет закрыт доступ к
    регистрам ввода-вывода .
                Тем не менее выполняющейся в обячном режиме пр
    ограмме должны бытьпредоытавлены возможности для осуществ
    ления ввода-вывода. Мы уже знаем, что это достигается при
    помощи системных подпрограм, и сейчас можно более детально
    ознакомится с тем, что происходит. Давайте в последний раз
    напишем программу печати на терминале буквы В. Мы достигнем
    цели командой TRAP в обчном режиме. Считая, что перед вхо
    дом в программу процессор находится в опретивном режиме,
    установим програмное прерывание:

                   MOV #TRP, @#34
                   MOV #340, @#36
           Метку TRP мы выбрали в качестве входной метки проце
    дуры обработки программных прерываний и установили приори
    тет последней равным 7, так что можно небеспокоится по по
    воду прерываний от внешних устройств. Заметьте, что значе
    ния адресов программных и внешний препываний определены в
    виртуальном адресном пространстве оперативного режима.
    Они будут доступны в другом режиме, если только какая то
    страница виртуального адресного пространства обячного режи
    ма соотвествует тем же самым физическим ячейкам . Обычно
    же блок управления памяитю накладывает запрет на доступ к
    этим  векторам в пользовательском режиме.
          В ячейке с меткой TRP имеем:

                  TRP: MOVB#102, @#TRB
                       RTI

   Естественно , что индефикатор TRB должен быть где-то описан.
    Предполагая, что регистр R7 настраивается , как обычно  ,
    полагая TRB=177566.
           Метка TRP загрузчик поставит в соответствие некий
    виртуальный адрес. При помоши блока управления  памятью мо
    жно убедится в том, что соотвествующая ему ячейка общей ши
    ны недоступна прогарммам в обычном режиме В крайнем случае

    ее можно установить только на чтение. Тогда программа обыч
    ного режима могла бы выполнить команду JMP TRP, не вызвав
    обращения к блоку защиты памяти. Все же , поскольку  регист
    ры устройства ввода-вывода недоступны программам обячных
    пользовательских , команда с меткой TRP, по видимому, не
    выполняется.

                   Связь между адресными пространствами.
           Системная программа EMT            , может выбрать
    парметр из младшего байта команды EMT . Предположим теперь
    , что обрещение к комаанде EMT происходит , когда процессор
    находится в обячном режиме. Программа ЕМТ сохраняет значе
    ние регистров R0 до R5 в стеке , и поэтому адресом возврата
    оказывается 14(SP). Он загружается в R0:

                        MOV 14(SP), R0
    Tеперь сама команда ЕМТ расположена по виртуальному адресу
    -2(R0) , но в виртуальном просстранстве обчного режима.
    Прогрпмма ЕМТ , однако будет функционировать в оперативном
    режиме. Допустим, что она была загружена с виртуального ад
    реса 2000 обчного пространства. Если она заканчивается
    командой
                 MOV -(R0), -(SP)
    то в стек запишется содержимое виртуального адреса 2000 пр
    остранства опретивного режима. Это будет та же самая физич
    еская ячейка памяти , если, только нулевая стрвница в обо
    их режимах одинрково распределена.
            Вместо предыдущего способа в системном вызове нуж
    но использовать команду пересылки из пространства предыду
    щей команды MFPI (Move From Istruction space). Это одноад
    ресная команда . Ее операнд интерпритируется , как резуль
    тат вычисления исполнительного адреса, соотвествующий вир
    туальному адресу предшествующего пространства ( в нашем сл
    учае пользовательского ) . Команда заносит содержимое это
    го адреса в системный стек. Поэтому программа ЕМТ должна
    заканчиваться так:
            MFRI -(R0)
    Обратная связь -от стека к адресу предшествующего пространс
    тва -достигается аналогггичным способом при помощи команды
    записи в пространство предшествующей команды MTPI (Move
    To previous Istrustion spase ).
         Предшествующий режим определяется каак режим , в кото
    ром процессор находится перед последним программным или вн
    ешним прерыванием . Причем , когда одно из них происходит
    , в словл состояния процессора зановятся значения битов
    второго  слова вектора прерывания , за исключением битов
    12 и13: их состояние определяется предшествкющими значееия
    ми битов 14 и 15 в PS. В командах MFPI и МТРI  осуществляет
    ся  проверка 12-го и 13-го битоа PS , позволяющих определи
    ть , о каком виртуальном промтранстве идет речь.

                       Системные стеки.
             В каждой из  режимов процессор заводит особый
   указатель стека. Указатели представляют собой совершенно
   различные регистры процессора , которые устанавливаются
   независимо один от другого . В то же время сама посебе не
   можеет прочесть один стек другому: выбор предопределен режи
    мом, в котором находится процессор .
           Поэтому , если впрограмме определено выражение SP=
    6%, то любая ссылка на индефикатор SP будет интерпретирова
    ться как обращение кстеку опреративного режима , если проце
    ссор  находится в оперативном режиме, и как обращение к
    стеку  обчного режима , если процессор находится в этом ре
    жиме.



                 Система команд процессора БК.

             Команды процессора  К 1801 ВМ1 условно можно разде
    лить на 4 группы :однооперадные команды, двухоперандные ко
    манды, команды передачи управления и беоперандные команды.
            Двойничный код безоперанной команды содержит толь-
    ко код операции- информацию для процессора о том, что нужно
    делать по этой команде.
             Двойнничный код однооперандной команды содержит
    код операции и информацию для процессора о местонахождении
    обрабатываемого числа (операнда) , надкоторым нужно произве
    сти опрацию.
            Двухоперандные команды , помимо кода операции, со
    держат иформацию для процессора о метонахождении 2-х чисел
    (операндов). Напимер, для сложения двух чисел команда долж
    на содержать код операции сложения и информацию о том ,
    откуда взять слагаемые .
              Далее коды команд процессора , а также коды опе-
    рандов будем писать в восьмеричной системе счисления (как
    и коды адресов ). Однако полезно помнить, что команды и
    операнды  хранятся в памяти в двойничном коде , восьмерич
    ный код мы будем использовать только для удобства.



              0  101 000 110 001 111  -двойничный код
             L-  L-  L-  L-  L-  L-   -восьмеричный код

        На рисунке показано, как переводить двойничный код
    числа в восьмеричный. Число 050617 в восьмеричной системе
    счисления получено из 16-разрядного двойничного кода
    0101000110001111 таким образом. Начиная с младшего разряда
    (справа) двойничное число делится на триады (группы по 3
    цифры). Правда старший разряд  16-разрядного числа при это
    м осается без "соседей". Затем для каждой триады  записывае
    тся ее представление в восьмеричной системе счисления. В
    результате вместо 16-разрядного кода числа получаем 6-раз
    рядный восьмеричный код . Разумется при написании программ
    удобнее работать с 6-разрядными кодами команд и чисел, чем
    с 16-разрядными -благо , все имеющиеся программы, обепечи
    вающие програмирование в кодах , включая пультовый отлад
    чик,  понимают восьмеричную систему счисления.

                    Способы адресации операндов.
             В однооперндных командах процессора первые 4 вось
    меричные чифры определяют код операции. Оставшиеся 2 цифры
   в коде команды процессор использует для определения    место
    нахождения операнда, над которым нужно произвести  операцию
    .  Напимер , команда 005004 обнуляет регистр R4. Здесь пер
    вые 4 цифры кода команды "0050" являются кодом операции и
    указывают на то, что процессор должен произвести обнуление
    . Оставшиеся 2 цифры "04"указывают , что происходит обнуле
    ние регистра R4. Нетрудно догадаться, что  последняя цифра
    является номером того регистра , содержимое которого испо
    льзуется процессором при определении местонахождения опера

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

                  INC R3

               Косвенный режим адресации.
    В косвееном режиме ячейкой является  восьмибиитовый байт
    или слово , адрес которого находится в указанном регистре.

                   CLR @R5

             Режим автоувеличения.
    Сразу после доступа к регистру для получения адреса, авто
    матически увеличивается на 1 , если операция байтовая, и
    на 2 если операция -  словесная .

                 CMP (R3)+, R3
             Косвенный режим автоувеличения .
    Число в указанном регистре используется , как адрес некото
    рой ячейки памяти; содержимое этой ячеки берется затем как
    адрес ячейки. Хотя содержимое указанного регистра увеличи
    вается сразу же после его использования для получения адре
    са , это увеличение происходит на 2 и никогда на 1. , даже
    если инструкция байтового типа.

                 @(R1)+
               Режим автоуменьшения.
    Уменьшение содержимого регистра происходит прежде его испо
    льзования в качестве адреса. Для батовых операций происхо
    дит уменьшение на 1, для словесный инструкций -на 2.

                        -(R0)

                    Индексный режим.
    Получив содержмиое регистра , процессор прибавляет к нему
    число , называемое индексом. Но содержимое регимтра при
    таком  сложении не изменяется . Полученное в результате
    сложения число используется как адрес ячейки памяти.

                    X (R1)

                  Косвенный индексный режим.
    @-указывает , что используется косвенный режми. Адрес ячей
    ки выяисляется так:берется содержимое регистра , к нему пр
    ибавляется индекс , и результат использунтся как адрес яч
    ейки памяти, содержимое которой явлется адресом , над
    которым  выполняется операция. Где Х -некоторое число.



                       @X(R0)

                  Однооперандные команды.
    Каждая команда , помимо своего числового кода , имеет свою
    мнемонику -обозначение в виде последовательности латинских
    букв, что используется для програмирования на языке ассем
    лера. В случае обработки байтовой операцией обозначется-
    "В".
    CLR -очиска регистра
    SOM-по этой команде образуется инверсный код.
    INC-инкремент, увеличение содержимого на 1.
    DEC-декркмент, уменьшение содержимого на 1.
    ADC-увеличивает значение операнда на содержимое разряда
    SBC-уменьшает значение операнда на содежмое разряда
    TST-тестирование значения операнда.
    ROR-циклический сдвиг значений разрядов вправо.
    ASL-тоже самое, но влево
    SWAP-меняет месиами старший и младгий байты.
    MFPS-пересылает слово состояния процессора в место , опреде
    ляемое полем адресации операнда.

                     Двухоперандые команды.
    Код двухоперндной команды , кроме кода операции , должен
    содержать 2 поля адресации команды. Певое поле адресации
    операнда, обозначаемое в коде команды двумя буквами "SS",
    определяет метонахождение 1-го операнда  команды и называ
    ется полем адресации операнда источника. Второе поле адре
    сации опренда, обозначается в коде команды буквами "DD",
    определяет метонахождение 2-го операнда команды и называет
    ся полем адресации операнда приемника. Первый операнд кома
    нды называется оперндом источника, второй операнд-операндом
    приемника.

    MOV-пересылка по адресу , определяемый полем адресации
    SMP-данная команда вычитает из операнда источника операнд
    приемника. Но при этом значения опрерандов не измениется.
    BIT-значение каждого разряда результата логичеким умножени
    ем значений соотвествующего разряда операнда источника и
    операнда приемника.
    BIC-по этой команде сбрасываются в "0" разряды операнда.
    ADD-команда суммирует операнд источника с операндом прием
    ника.

                   Переходы.

    BR-переход .
    BNE-переход , если разряд Z, слова состояния процессора
    сброшен в"0".
    BNQ-переход в этой команде произойдет, если разряд Z слова
    состояния процессора установлен в"1".
    BPL-переход произойдет, если разояд N слова состояния про-
    цессора сброшен в"0".
    BMI-переход произойдет, если к моменту исполнения команды

    разряд N слова состояния процессора установлен в"1".
    BVC-переход произойдет , если разряд V слова состояния про
    цессора установлен в "1".
    BGE-по команде произойдет переход , если содержимое
    регистра R1 оказалось больше или равно содержимому R2.

                  MOV R1, R2
                  CMP R1, R2
                  BGE M1
                  MOV R2, R3
        M1:        . . . . .

    BLT-если вместо команды BGE поставить команду BLT , то пе
    реход по команде BLT произойдет , если содержимое R1 ока
    жется меньше содержимого R2, в результате программа полу
    чит в R3 минимальное значение.

                 MOV R2, R2
                 SMP R1, R2
                 BLT M1
                 MOV R2, R3
      M1:        . . . . .

    BLE-если команда BLE следует за командой сравнения двух
    операндов , то переход произойдет , если операнд источни
    ка меньше или равен операнду приемника.
    SOB-вычесть единицу и сделать переход , если не 0 .
    Значение смещения занимает 6 младших разрядов кода команды
    и расматривается как число без знака -так как переход по
    этой команде происходит только в обратном направлении ( в
    сторону уменьшения адресов ). Для получения кода команды
    со смещением , отличным от "0" , к коду команды прибавляет
    ся значение смещения , равное значению выражения:

                адрес команды + 2 - адрес перехода/2

             Текст программы на ассемблере:

               MOV #1777, RO      ; длительность звука
               MOV #400, R1        ; длительность полупериода
        M3:    MOV #100, @#177716    ; первый полупериод
               MOV R1, R2
        M1:    NOP
               MOV #0, @#177716    ; второй полупериод
               MOV R1, R2

        M2:    NOP
               SOB R2, M2
               SOB R0, M3

    JMP-команду можно использовать для перехода на любой ад
    рес программы. Поле адресации в коде команды задает не
    адрес операнда, а адрес с которого будет продолжено выполне
    ние программы после исполнения команды JMP. Поэтому в ко
    манде JMP недопустимо использование прямого регистрового
    способа адресации, так как передача управления на регистр
    процессора не имеет смысла.
    JSR-по команде адрес возврата запоминается в регистре  ,
    номер которого указывается в коде команды вместо буквы R
    , а содержимое самого регистра процессора до этого  запомин
    ается в стеке. Если в коде команды указан номер регистра
    R7 , то адрес возврата запоминается в стеке.

    RTS-команда возвразает управление на адрес возврата , котор
    ый по команде JSR был записан в регистр процессора. Номер
    этого регистра должен быть указан в коде данной команды
    вместо буквы "R".
                Пример на языке ассемблера:

          JSR PC , @#7500
          . . . . .
          MOV #14, R0
          EMT 16         ; вывод на эран
          RTS PC



                 ЦИФРОВЫЕ БАЗОВЫЕ МАТРИЧНЫЕ
                 кристалы типа   К 1801 ВП1.

          Повышение степени интеграции прежде всего связано с
    применением метал-окисел-полупроводник транзисторов. Одним
    из первых больших микросхем нп основе n-каналальных струк
    тур был создан тип К 1801 ВП1, с проектными нормами длинны
    канала 3 мкм. Его кристал, размером 4,2 * 4,2 мм условно
    разделен на внутреннюю и переферийную  части с 43 контакны
    ми пролащадками.
                 Внутренняя часть большой интегральной микросхе
    мы  представляет собой матрицу 13*40* из 520 кристалов ти
    па А. Эта матрица имеет дополнительно два ряда по 40 матри
    чных базовых ячеек типа В для реализации усилительных функ
    ций внутри матрицы. Наборы элементов , входящих в матричную
    базовую ячейку типа А, и усилительных типа В.
               Каджая матричная базовая ячейка содержат 10 тра
    нзисторов и обеспечивают разветвление по выходу ячейки ,ра
    вное 3. Усилительная матричная базовая ячейка содержит че
    тыре транзистора , позволяющие расширить нагрузочную спосо
    бность матричных базовых ячеек , и обспечивают кожфийиент
    разветвления по выходу  , равный 10. Периферийная  часть
    большой интегральной микросхемы представляет собой ячейку
    , каждая из которых содержит 20 транзисторов , и котактную
    площадку , что позволяет осуществить 40 входов-выходов .
    Между контактными площадками питания и площадкой смещения
    размещен генератор смещения подложки. Шина земли выведена
    на контактную  площадку . Библиотека фукциональных ячеек
    содержит 69 вариантов матричных фукциональных ячеек и 11
    вариантов площадок функциональных ячеек .

           ЭЛЕКТРИЧЕСКИЕ ПАРАМЕТРЫ К 1801 ВП1.
                                  Не более      Не менее
    Напряжение питания Ucc, B.       4, 75       5, 25
    Выходное напряжение низкого
    уровня Uol B, при Iol=4 ма.      -            0,4
    Выходное напряжение высокого
    уровня Uoh, B, Ioh=1 ма.         2,7         -
    Входное напряжение низкого
    уровня Ull, B.                    -          0,6
    Входное напряжение высокого
    уровня Uih, B                     2,4         -
    Ток потребления Icc, ма.           -         180
    Ток утечки яо входу I, мкА.       -           1
    Среднее время задержки на
    линейном элементе, нс, при
    нагрузке на два входа U=5 B.       -          5
    Максимальная входная частота
    fclc, Mгц.                         -           8
    Емкость входа-выхода Si/o, пФ.      -         15
    Корпус микросхемы- поликристалический         П

           Шины питания и земли включены в переменные слои мета
    лизации и подлежат разводке. Разводка линий связи на криста
    ле двухслойная , причем слой поликремния изменяемый ,
    алюминия  -пременный. Межслойные соединения осуществляются
    с помощью переменного слоя коньактов. Основным критерием
    отимальности разводки линий связи можно считать их наимень
    шую длину ипроведение их преимуществеено в слое алюминия.
    Поликремневые слои в рабочей зоне для удобства развобки
    линий  связи через каждые две ячейки имеют разрыв. Если
    необходимо провести более длинную поликрремневую линию
    связи , то вместах разрыва ставят алюминиевые соединения.
                  Динамические параметры и ток потребления каж
    дой конкретной большой интегральной схемы определяется в
    процессе разработки . Время задержки основных функциональ-
    ных ячеек без учета топологических связей (для собсвенной
    емкости ) указано в таблице выше.
                Для обспечения заданного быстродействия боль-
    шой интегральной схемы  реобходимо расчитать динамические
    параметры основных цепей схемы с учетом реадьных физичес-
    ких процессов в кристале и реальной  трассировки . Оринте-
    ровочно расчет проводится с учетом максимальных значений
    RC-линий связи между логическими элементами. Сопротивление
    и емкость линии связи расчитывают по формулам:


                   C=Cэ*(N+Csi+Sal)

                   R=сумма (Ro+Rт)
    Csi-емкость поликремневой линии связи .
    Cal-емкость алюминевой линии связи
    Cэ-емкость затвора линейного элемента
    Rт- 10 кОм -сопротивление ключевого транзистора
    Ro-50 кОм сопротивление нагрузки транзистора.

                При расчете необходимо учитывать топологические
    обсбенности  компоновки , так как задержка , вносимая поли
    кркмнеевым слоем , млжет быть сравнима с задержкой линейно
    го злемента.
              В зависимости от вида апаратуры  и ее  конкретно
    го примения на основе большой интегральной микросхемы ти
    па К 1801 ВП1 позволяет заменить до 60 микросхем малой и
    средней степени интеграции. . Это обеспечивает уменьшение
    линейных размеров апаратуры в 4-16 раз.



SuperMax
вырезка по 1801ВМ1

Код
  

         PDP11 - СОВМЕСТИМЫХ МИКРОПРОЦЕССОРОВ

       <Last correction : Date 20/12/89  Time 06:01:14>


    Описание процессоров серии 1801/1806.

Внимание! Обе  серии  имеют  большой  набор  БИС  обвязки,  реализованных  на
универсальных вентильных матрицах 1801ВП1  и  1806ВП1,  среди  которых  есть:
контроллеры клавиатуры, контроллеры графики, схемы управления памятью, в  том
числе со встроенным контролем по  Хэммингу,  контроллеры  последовательных  и
параллельных  интерфейсов,  контроллеры  дисководов,   таймеры    и    другие
устройства.  Набор  ПЗУ  1801РЕ2  содержит  программы  пультового  терминала,
поддержки реализации дополнительных команд, другие программы. Специально  под
шину QBUS разработано ППЗУ 573РФ3.  Информация  о  прошивках  ПЗУ  имеется  в
файле  1801RE.DOC,  о  прошивках  матричных  БИС  -  в   файле    1801VP.DOC.
Имеются  ППЗУ  с  электрической  сменой  информации  и   интерфейсом    QBUS.
Как  дополнение  серии  1801  разработана  серия  1809.  В  ней   отсутствует
процессор,  но  есть  многоканальные  коммутаторы,  контроллеры   клавиатуры,
видеоконтроллеры,  контроллер  накопителя   на    магнитофоне,    контроллеры
последовательных каналов, байтовый программируемый интерфейс, статическое ОЗУ
1кХ16 с циклом 400 нс, интерфейсом QBUS и программируемыми старшими разрядами
адреса, масочные ПЗУ.  Указанные  серии  совместимы  и  могут  использоваться
совместно с сериями 588,1811,1802,1804.

1801ВМ1

16-разрядный микропроцессор
технология n-MOS, быстродействие до 500-600 тыс. регистровых сложений/с
тактовая частота 100 кГц - 6 МГц
напряжение питания +5В+-10%
потребляемая мошность до 1.2 Вт
входное напряжене 0..Uип
емкость нагрузки <100 пФ
электростатический потенциал <100В
корпус металлокерамический 42-выводный 429.42-5
системная магистраль МПИ (QBUS)
69 команд: базовый набор +XOR+SOB(+MUL для 1801ВМ1Г)
8 регистров обшего назначения
4 уровня запросов прерываний
адресное пространство 64 Кбайт
имеются аппаратные средства построения многопроцессорных систем с числом
процессоров до 4.


    Цоколевка:

1    CLCI    вх    вход тактовой частоты
2    SACK    вх/вых    подтверждение захвата ПДП
3    DMGI    вх    вход предоставления ПДП
4    DMGO    вых    выход предоставления ПДП
5    DMR    вх/вых    требование ПДП
6    ?    вх    назначение неизвестно. Соединить с +5
7    SEL1    вых    выборка первого внешнего регистра
8    SEL2    вых    -"- второго
9    AD0    вх/вых    разряд шины адреса-данных
10    AD1    вх/вых    разряд шины адреса-данных
11    AD2    вх/вых    разряд шины адреса-данных
12    AD3    вх/вых    разряд шины адреса-данных
13    AD4    вх/вых    разряд шины адреса-данных
14    AD5    вх/вых    разряд шины адреса-данных
15    AD6    вх/вых    разряд шины адреса-данных
16    AD7    вх/вых    разряд шины адреса-данных
17    AD8    вх/вых    разряд шины адреса-данных
18    AD9    вх/вых    разряд шины адреса-данных
19    AD10    вх/вых    разряд шины адреса-данных
20    AD11    вх/вых    разряд шины адреса-данных
21    GND        обший
22    AD12    вх/вых    разряд шины адреса-данных
23    AD13    вх/вых    разряд шины адреса-данных
24    AD14    вх/вых    разряд шины адреса-данных
25    AD15    вх/вых    разряд шины адреса-данных
26    PA1    вх    адрес процессора в системе
27    PA0    вх    адрес процессора в системе
28    BSY    вых    занятость шины
29    DCLO    вх    авария источника питания
30    ACLO    вх    авария питаюшей сети
31    IRQ1    вх    запрос радиального прерывания "пульт"
32    IRQ2    вх    запрос прерывания от таймера, задний фронт, вект.100
33    IRQ3    вх    запрос радиального прерывания,задний фронт, вект.270
34    INIT    вх/вых    сброс устройств на магистрали/сброс процессора
35    VIRQ    вх    требование векторного прерывания
36    IAKO    вых    предоставление прерывания
37    DOUT    вых    сопровождение записи
38    DIN    вых    сопровождение чтения
39    RPLY    вх    ответ пассивного устройства
40    WTBT    вых    запись/байт
41    SYNC    вых    синхронизация активного устройства
42    Ucc        +5В


В состав процессора входят:
операционный блок ОБ, блок микропрограммного управления БМУ, блок  прерываний
БПР, интерфейсный блок ИБ, блок согласования БС, буферный регистр команд БРК.
ОБ предназначен для вычисления и хранения адреса, приема и  хранения  данных,
выполнение арифметических и логических операций, выдача данных  на  системную
шину, формирование состояний. Основу ОБ составляют четырнадцать  16-разрядных
регистров, 16-разрядное АЛУ,  регистр  состояния  процессора  (PSW),  регистр
адреса  и  данных.  Восемь  из  четырнадцати  регистров  операционного  блока
и PSW программно доступны.Остальные регистры доступны только микропрограммно.

    В  АЛУ  выплняются  арифметические   и    логические    операции    и
вырабатываются признаки. После этого, если необходимо, выполняется  сдвиг  на
один разряд. Связь ОБ с внутренней шиной микропроцессора осуществляется через
регистры  адреса  и  данных.  БМУ  предназначен  для  преобразования  команды
микропроцессора в последовательность микрокоманд. Основу БМУ составляет  ПЛМ,
имеющая 250 логических произведений.
    Блок прерываний  предназначен  для  организации  логики  приоритетных
прерываний микропроцессора. Информация с БПР поступает  в  БМУ.  Интерфейсный
блок  обеспечивает  обмен  между  внешней  шиной  и  внутренней   магистралью
микропроцессора.
    В  интерфейсном  блоке  осуществляется  анализ    положеня    данного
микропроцессора в многопроцессорной системе. В зависимости от этого  меняются
характеристики отдельных выводов: DMR, SACK, DMGI, DMGO. Первые два  сигнала,
в зависимости от того, является ли данный кристалл главным  или  не  главным,
будут входами или  выходами.  Интерфейсный  блок  управляет  также  системной
магистралью и осуществляет арбитраж запросов на  обмен  по  принципу  "первым
пришел - первым обслужился".
    Блок синхронизации управляет приемопередатчиками шины адрес - данные.
Буферный регистр команд служит для  приема  и  хранения  текущей  команды.  В
микропроцессоре  осуществляется  совмещение  процессов  выполнения    текущей
команды и приема следующей. Текущая команда хранится в  БМУ,  а  новая  может
приниматься в БРК.
    Величина тайм - аута зависания шины составляет 64  такта  процессора.
В случае отсутствия сигнала SYNC  в  течение  указанного  промежутка  времени
после установки сигналов DIN или DOUT, произойдет  прерывание  по  4  ячейке.
    Микропроцессор может работать в многопроцессорных системах в качестве
главного процессора или подчиненного.  Не  главное  устройство  сигналом  DMR
запрашивает разрешение на захват шины у главного,  который  формирует  сигнал
DMGO.  Этот  сигнал  проходит  через  каждый  неглавный  процессор  по   цепи
обслуживания прямого доступа  последовательно.  Если  DMR  не  был  выставлен
данной микросхемой, происходит транслирование  сигнала  на  вывод  DMGO  этой
микросхемы. Если данный неглавный процессор,  выставив  сигнал  DMR,  получил
сигнал на  выводе  DMGI,  он  блокирует  дальнейшее  распространение  сигнала
подтверждения прямого доступа  и  выставляет  SACK.  После  этого  процессор,
захвативший шину, выставляет адрес и сигнал  BSY,  снимая  DMR;  сигнал  SACK
снимется одновременно с сигналом DIN или DOUT в зависимости от  вида  обмена.
    Блокирование  прохождения  сигнала  разрешения  захвата  прекращается
после снятия сигнала RPLY пассивным устройством.  Выставив  следующий  запрос
DMR, микропроцессор может выполнять еще один цикл обмена, не сбрасывая  SACK.
Если главному процессору нужно захватить системную шину, он блокирует  выдачу
DMGO на не главные  устройства  до  окончания  собственного  цикла  обмена  и
микропроцессор может выйти на шину лишь в случае отсутствия  запросов  DMR  и
SACK от не главных устройств. Если эти сигналы выставляются  во  время  цикла
захвата шины главным процессором, сигналы запросов  приостановят  новый  цикл
захвата. Шина будет предоставлена  не  главному  процессору,  сформировавшему
запрос.  Наивысшим  приоритетом  в  системе   будет    обладать    процессор,
непосредственно соединенный с главным процессором по цепи DMGO - DMGI.

    Микропроцессор имеет два сигнала для обращения  к  внешним  регистрам
SEL1 и SEL2.

Адреса внешних регистров:
номер МП    адреса регистров
        SEL1    SEL2
00        177716    177714
01        177736    177734
10        177756    177754
11        177776    177774


Тип обмена с внешним регистром можно определить  по  сигналу  DIN  или  DOUT.
Сигнал RPLY не требуется.
    Для инициирования  процессора  необходимо  подать  на  него  питающее
напряжение, при этом произойдет начальная установка управляющих  элементов  и
будет выставлен сигнал INIT. На начальные установки требуется не менее 4  мс.
Далее необходимо подать DCLO, после чего INIT перейдет в высокий  уровень,  и
не менее, чем через 70 мс снять DCLO. После этого процессор начнет  работать.
Сначала будет считан SEL1 по адресу 177716. В PC будет занесен  старший  байт
SEL1 в старший, и нули - в младший. В PSW  будет  загружена  константа  340Q.
Назначение битов слова состояния соответствует стандартному.

Времена выполнения команд:

     одноадресных                 двухадресных
метод        время        метод адресации        время
адресации    выполнения    источн.    приемн.        выполнения
    0        8T+tn        0    0        8T+tn
    1        21T+3tn        1    0        18T+2tn
    2        20T+3tn        2    0        18T+2tn
    3        27T+3tn        3    0        25T+3tn
    4        21T+3tn        4    0        20T+2tn
    5        28T+4tn        5    0        26T+3tn
    6        27T+4tn        6    0        25T+3tn
    7        34T+5tn        7    0        32T+3tn
                0    1        26T+2tn
Время выполнения команд        0    2        28T+2tn
управления HALT=54T+7tn        0    3        31T+3tn
команд IOT,BPT,EMT,TRAP        0    4        28T+2tn
42T+5tn; команд устано-        0    5        32T+3tn
вки и очистки признаков        0    6        31T+3tn
8T+tn;     максимальное        0    7        40T+4tn
время ожидания ПДП  8T+        1    1        28T+3tn
+2tn для цикла ввод-па-        2    2        30T+3tn
уза-вывод; максимальное        3    3        40T+5tn
время от момента запро-        4    4        31T+3tn
са прерывания до выбор-        5    5        42T+5tn
ки первой команды ново-        6    6        40T+5tn
го  процесса   98T+12tn        7    7        56T+7tn
(время выполнения самой
длинной команды  + IOT)

В  таблицах  приведены   времена    иполнения    для    одноадреных    команд
COM, INC, DEC, ADC,  SBC,  ASR,  ASL,  ROL,  ROR,  CLR,  и  для  двухадресных
ADD, SUB, BIC, BIS, XOR. За T обозначен период тактовой  частоты  процессора,
tn-время между выдачей DIN/DOUT и приходом RPLY.

SuperMax
Что происходит в БК-0010 при нажатии клавиши СТОП

Участники событий:
  • 1801ВМ1
  • Системный регистр 177716, он же безадресный регистр SEL1
    • Старшие 8 разрядов определяют адрес перезапуска: в БК-0010 это адрес 100000
    • Бит 3, согласно внутренним канонам 1801ВМ1, служит для подключения системного ПЗУ с эмулятором пультового отладчика. В БК физически отсуствуют как системное ПЗУ, так и этот бит.
    • Бит 2 в БК-0010 устанавливается при любой записи в регистр SEL1 (177716) и сбрасывается при чтении регистра SEL1 (177716). Реализован на триггере D9.1
  • Прерывание пультового режима IRQ1
  • Регистры вектора текущего процесса 177674 (PC) и 177676 (PS) -- эти регистры не реализованы в БК-0010 и попытка записи в них порождает прерывание по ошибке шины (вектор 4)
Адреса, следующие непосредственно за адресом перезапуска, имеют для 1801ВМ1 особый смысл:
  • +0 -- сюда передается управление при старте
  • +2 -- вектор обработчика прерывания IRQ1, или команды HALT
  • +6 -- вектор обработчика прерывания по ошибке шины при переходе на обработчик прерывания
  • +12 -- вектор обработчика прерывания по ошибке шины при передаче вектора прерывания
Но для БК-0010 все эти адреса, кроме самого первого, смысла не имеют, и вот почему. При нажатии клавиши СТОП процессор получает сигнал прерывания пульта и выполняет следующую микропрограмму:


Код


BIS  #10,@#177716                 ; для отключения пользовательского ПЗУ и подключения ПЗУ с отладчиком, которого в БК нет.
MFPS @#177676                     ; сохранение вектора текущего процесса
MOV  PC,@#177674                  ; --//--
MOV  @#(SEL1[разряды 8-15]+C), PC ; переход к обработчику
MTPS @#(SEL1[разряды 8-15]+C+2)   ; исключительных ситуаций




Поскольку регистры 177674,177676 в БК не реализованы, при записи в них возникают ошибка шины и прерывание по вектору 4. Но благодаря тому, что процессор успел попытаться выставить бит 3 в регистре SEL1, при следующем прочтении SEL1 бит признака записи в системный регистр 2 в нем будет установлен в "1". Этим можно воспользоваться для того, чтобы отличить прерывание по нажатию СТОП от ошибок шины.

Переход по векторам обработчиков исключительных ситуаций, лежащих за адресом перезапуска, в БК-0010 невозможен, поэтому эти адреса памяти использованы в БК-0010 иначе.

Ниже - выбранные цитаты из книги "Микро-ЭВМ "Электроника МС 1201" Техническое описание и инструкция по эксплуатации" Т.е. это описание, как подключение 1801ВМ1 сделано в ДВК (выборка информации только для ВМ1, у ВМ2 всё совершенно по другому)

Устройство управления ОЗУ (УОЗУ) выполнено на основе микросхемы К1801ВП1-030.
У ДВК-1 - фактически 64КБ ОЗУ (32 шт. 565РУ6). Но ВП1-030 "вырезает" из ОЗУ старшие 8К и размещает там: кусочки памяти, кусочки системного ПЗУ и оставляет место для регистров ввода/вывода.

Область СОЗУ (177600...177767) предназначена для хранения информации программ пультового режима работы и режима начального пуска.


Регистр режима начального пуска (РНП) предназначен для указания адреса программы начального пуска, а также для хранения "флажков" Ф1 (бит 2) и Ф2 (бит 3) управления скрытыми областями СПЗУ. Разряды Ф1 и Ф2 доступны по чтению и по записи.
Если Ф1=1, то открывается по доступу в адресном пространстве скрытая область СПЗУ по адресам от 160000 до 163776 и закрывается соответствующая область а вдресном пространстве регистров внешних устройств.
При Ф2=1 скрытая область СПЗУ расширяется до адреса 172766.
Разряды 0 и 1 РНП доступны только по чтению и определяют режим начального пуска микро-ЭВМ.


"00" - пуск через вектор по адресу 24 (сбой по питанию)
"01" - безусловный выход на программу связи с пультом
"10" - переход на программу начального загрузчика 173000
"11" - переход по адресу 140000 (ПЗУ пользователя)


Область СПЗУ от 173000 до 173776 (область загрузчика) всегда открыта для пользователя и не зависит от состояния разрядов Ф1 и Ф2.
Разряды 8...15 РНП определяют адрес програмы начального пуска (160000) микро-ЭВМ (младший байт адреса принимается равным 0).
Адреса РНП - 177716, СОЗУ - 177600...177676 и резервных регистров - 177700...177714 являются адресами системных (служебных) ячеек, используемых для организации микро-ЭВМ, которые не рекомендуется использовать в программах пользователя.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2018 Invision Power Services, Inc.