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