Микропроцессор К1801 ВМ1
1
3
-24
                 Микропроцессор  К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 раз.

Микропроцессор К1801 ВМ1 представляет собой одно кристальный 16-разрядный модуль. Этот конструктивно и функ ционально законченный модуль реализует систму команд микро ЭВМ "Электроника 60", обспечивает управление системным ин терфейсом , аналогичным по составу управляющих сигналов и алгоритмам обмена системному интерфесу микроЭВМ.



html-cсылка на публикацию
BB-cсылка на публикацию
Прямая ссылка на публикацию
Комментариев: 0
Комментариев пока нет, Вы можете стать первым!
Гость, оставишь комментарий?
Последние Комментарии
Взломанная версия - указан 1992 год в конце, я прошел её. Скорее всего оригинал был в том же году, а версия от Чистяков 1994 года - переделка, там
Гость Lexx
https://fastpic.org/view/123/2024/0407/_42b25567fa0895b2fd5838395b55dc4e.jpg.ht ml набросок карты ко второму уровню. Сначала рисовал ключи и зелёных
Первый эпизод прошел, видос запилил, игра реально хардкор и без карты играть туговато. На счёт зеленых врагов есть лучше фича, в конце показываю.
Шестипалов
В версии эмулятора GID'а от 2024-02-25 исправлена ошибка, из-за которой не работал Star Sheriff. Теперь работает. Скачивайте новую версию:
F9 - "умри на месте"
Помощь сайту
Посещения
Cегодня: Saturday، 20 April 2024
Всего IP: 445
Всего посещенных страниц: 1123
Количество IP на сегодня: 445
Количество IP за вчера: 0
Посещения сегодня: 1123
Количество просмотров вчера: 0
Количество гостевых пользователей: 29
Всего онлайн-пользователей: 29
Интересное