АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Назначение выводов БИС К1810ВМ87

Читайте также:
  1. I. Назначение и область применения
  2. I. Назначение, классификация, устройство и принцип действия машины.
  3. Wadmerger: назначение звуков wad-файлам и объектам
  4. Активы организации, их назначение и использование.
  5. Антивирусные программы, классификация и назначение
  6. АТТЕСТАЦИЯ РАБОТНИКОВ: СУЩНОСТЬ, ЦЕЛИ, ЗАДАЧИ, НАЗНАЧЕНИЕ, МЕТОДИКА ПРОВЕДЕНИЯ.
  7. Багажная ведомость – назначение и порядок заполнения
  8. Багажная ведомость – назначение и порядок заполнения
  9. Багажная ведомость – назначение и порядок заполнения
  10. Баланс. Понятие «бухгалтерский баланс». Назначение и строение.
  11. Блочные кустовые насосные станции. Состав блоков, их назначение, принцип работы.
  12. Виды и типы схем, их назначение

Структура МП ВМ86

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

Операционное устройство МП содержит группу общих регистров арифметико-логическое устройство (АЛУ) регистр флагов F и блок управления.

Восемь 16 битовых регистров общего назначения участвуют во многих командах. В этих случаях регистры общего назначения кодируются трехбитовым кодом, который размещается в соответствующем поле (или полях) формата команды.

В соответствии с основным назначением рассматриваемых регистров выделяют регистры АХ, ВХ, СХ, DX используемые прежде всего для хранения данных, и регистры SP, BP, SI, DI, которые хранят главным образом адресную информацию. Особенностью регистров АХ, ВХ, СХ, DX является то, что они допускают раздельное использование их младших байтов AL, BL, CL, DL и старших байтов АН, ВН, СН, DH. Тем самым обеспечивается возможность обработки как слов, так и байтов и создаются необходимые условия для программной совместимости ВМ86 и ВМ80. Соответствие регистров этих двух микропроцессоров указано в табл 1, где FL - младший байт регистра F.

Рисунок 1 - Структурная схема МП ВМ86

Все остальные регистры являются неделимыми и оперируют 16 битовыми словами даже в случае использования только старшего или младшего байтов. Указательные регистры SP и ВР хранят смещение адреса в пределах текущего стекового сегмента памяти, а индексные регистры SI и DI хранят смещение адреса соответственно в текущем сегменте данных и в текущем дополнительном сегменте. Однако при использовании этих регистров для адресации операндов возможна смена сегментов памяти (см. в табл. 3).

 

Таблица 1

Регистр ВМ80 A B C D E H L SP PC F
Регистр ВМ86 AL CH CL DH DL BH BL SP IP FL

 

Кроме основных функции соответствующих названию регистров общие регистры выполняют специальные функции указанные в табл 2

Арифметическо-логическое устройство (АЛУ) содержит 16 битовый комбинационный сумматор, с помощью которого выполняются арифметические операции, наборы комбинационных схем для выполнения логических операций, схемы для операции сдвигов и десятичной коррекции, а также регистры для временного хранения операндов и результатов.

 

Таблица 2

Регистр Название Специальная Функция регистра
АХ Аккумулятор Умножение, деление и ввод - вывод слов
AL Аккумулятор (младший байт)   Умножение, деление и ввод - вывод байтов, преобразование байтов; десятичная арифметика
АН Аккумулятор (старший байт) Умножение и деление слов  
ВХ Базовый регистр Адресация по базе; преобразование адресов
СХ Счетчик Подсчет циклов; подсчет элементов цепочек
CL Счетчик (младший байт) Реализация параметрических сдвигов
DX Регистр данных   Умножение и деление слов; косвенный ввод - вывод
SP Указатель стека Операции с использованием стека
ВР Указатель базы Базовый регистр
SI Индекс источника   Указатель цепочки-источника, индексный регистр
DI Индекс приемника   Указатель цепочки-приемника, индексный регистр

 

К АЛУ примыкает регистр флагов F (рис. 2, где X обозначает неопреде­ленное состояние бита). Его младший байт FL полностью соответствует регистру флагов К580ВМ80, а старший байт FH содержит четыре флага, отсутствующие в К580ВМ80. Шесть арифметических флагов фиксируют определенные признаки результата выполнения операции (арифметической, логической, сдвига или загрузки регистра флагов). Значения этих флагов (кроме флага AF) используются для реализации условных переходов, изменяющих ход выполнения про­граммы. Различные команды влияют на флаги по-разному.

Рисунок 2 - Формат регистра флагов F

 

Назначение арифметических флагов

CF - флаг переноса, фиксирует значение переноса (заема), возникающего при сложении (вычитании) байтов или слов, а также значение выдвигаемого бита при сдвиге операнда.

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

AF - флаг вспомогательного переноса, фиксирует перенос (заем) из млад­шей тетрады, т. е из бита a3, в старшую при сложении (вычитании), использу­ется только для двоично-десятичной арифметики, которая оперирует исключи­тельно младшими байтами.

2F - флаг пуля, сигнализирует о получении пулевого результата операции.

SF - флаг знака, дублирует значение старшего бита результата, который при использовании дополнительного кода соответствует знаку числа.

OF - флаг переполнения, сигнализирует о потере старшего бита результа­та сложения или вычитания в связи с переполнением разрядной сетки при работе со знаковыми числами. При сложении этот флаг устанавливается в единицу, если происходит перенос в старший бит и нет переноса из старшего бита или имеется перенос из старшего бита, но отсутствует перенос в него; в про­тивном случае флаг OF устанавливается в нуль. При вычитании он устанавли­вается в единицу, когда возникает заем из старшего бита, но заем в старший бит отсутствует либо имеется заем в старший бит, но отсутствует заем из него. Имеется специальная команда прерывания при переполнении, которая в ука­занных случаях генерирует программное прерывание.

Для управления некоторыми действиями МП предназначены три допол­нительных флага.

DF - флаг направления, управляемый командами CLD и STD; определяет порядок обработки цепочек в соответствующих командах: от меньших адресов (DF = 0) или от больших (DF = 1).

IF - флаг разрешения прерываний, управляемый с помощью команд CLI и STI; при IF = 1 микропроцессор воспринимает (распознает) и соответственно реагирует на запрос прерывания по входу INTR; при IF = 0 прерывания по этому входу запрещаются (маскируются) и МП игнорирует поступающие запросы прерываний. Значение флага IF не влияет на восприятие внешних немаскируемых прерываний по входу NMI, а также внутренних (програм­мных) прерываний, выполняемых по команде INT.

TF - флаг трассировки (прослеживания). При TF = 1 MП переходит в покомандный (пошаговый) режим работы, применяемый при отладке про­грамм, когда автоматически генерируется сигнал внутреннего прерывания типа 1 после выполнения каждой команды с целью перехода к соответствующей подпрограмме, которая обычно обеспечивает индикацию содержимого внутренних регистров МП. Команды установки или сброса флага TF отсутствуют, так что управление этим флагом осуществляется опосредован­но, путем пересылки содержимого регистра флагов F через стек в общий ре­гистр, установки требуемого значения восьмого бита и обратной пересылки сформированного слова в регистр F.

Управляющее устройство (УУ) дешифрует команды, а также воспринима­ет и вырабатывает необходимые управляющие сигналы. В его состав входит блок микропрограммного управления, в котором реализовано программирова­ние МП на микрокомандном уровне.

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

Очередь команд представляет собой набор байтовых регистров и выпол­няет роль регистра команд, в котором хранятся коды, выбранные из програм­мной памяти. Длина очереди составляет 6 байт, что соответствует максимально длинному формату команд. Наличие очереди команд, а также способность операционного устройства и шинного интерфейса работать параллельно по­зволяют совместить во времени фазы выборки команды и выполнения заданной операции: пока одна команда исполняется в операционном устройстве, шинный интерфейс осуществляет выборку следующей команды. Таким образом до­стигаются высокая плотность загрузки шины и повышение скорости выполнения программы. Пример, иллюстрирующий реализацию описанного конвей­ерного принципа, дан на рис. 3, где TI обозначает холостые такты работы шины, когда очередь команд заполнена, а операционное устройство занято выполнением текущей команды и не запрашивает выполнения цикла шины.

Шинный интерфейс инициирует выборку следующего командного слова автоматически, как только в очереди освободятся два байта. Как правило, в очереди находится минимум один байт потока команд, так что операционное устройство не ожидает выборки команды. Ясно, что опережающая выборка команд позволяет экономить время только при естественном порядке выпол­нения команд. Когда операционное устройство выполняет команду передачи управления (перехода) в программе, шинный интерфейс сбрасывает очередь, выбирает команду по новому адресу, передает ее в операционное устройство, а затем начинает заполнение (реинициализацию) очереди из следующих ячеек памяти. Эти действия предпринимаются в условных и безусловных переходах, вызовах подпрограмм, возвратах из подпрограмм и при обработке прерываний.

 

Рисунок 3 - Пример конвейерного выполнения команд

 

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

Буфер шины адреса/данных (БАД) содержит 16 двунаправленных управ­ляемых усилителей с тремя выходными состояниями и обеспечивает номи­нальную нагрузочную способность линий AD15 - AD0.

Буфер шины адреса/состояния (БАС) содержит четыре однонаправленных усилителя с тремя выходными состояниями и обеспечивает номинальную на­грузочную способность линий A19/S6 - A16/S3.

Сегментные регистры хранят базовые (начальные) адреса сегментов памя­ти: кодового сегмента CS, в котором содержится программа; стекового сегмен­та SS; сегмента данных DS; дополнительного сегмента ES, в котором обычно содержатся данные. Наличие сегментных регистров обусловлено разделением памяти на сегменты и используемым способом формирования адресов памяти. Хотя МП имеет 20-битовую шину физического адреса памяти, он оперирует 16-битовыми логическими адресами, состоящими из базового адреса сегмента и внутрисегментного смешения. Внутрисегментное смещение может быть вы­числено в соответствии с указанным в команде способом адресации, может находиться в формате команды или содержаться в общем регистре. Физический адрес формируется путем суммирования смещения и содержимого соответству­ющего сегментного регистра, которое дополняется четырьмя нулевыми младши­ми разрядами.

Сумматор адресов осуществляет вычисление 20-битовых физических адресов.

Указатель команд IP хранит смещение следующей команды в текущем кодовом сегменте, т е. указывает на следующую по порядку команду. Он явля­ется аналогом стандартного программного счетчика с той лишь разницей, что его содержимое определяет адрес команды лишь в совокупности с содержимым регистра CS; если же CS заполнен нулями, аналогия становится полной. Моди­фикация IP осуществляется шинным интерфейсом так, что при обычной работе IP содержит смещение того командного слова, которое шинный интерфейс будет выбирать из памяти Оно не совпадает со смещением очередной команды (находящейся в этот момент на выходе очереди команд), которую будет выпол­нять операционное устройство. Поэтому при запоминании содержимого IP в стеке, например при вызове подпрограмм, оно автоматически корректируется, чтобы адресовать следующую команду, которая будет выполняться Эта осо­бенность является следствием опережающей выборки команд, реализованной в ВМ86. Непосредственный доступ к IP имеют команды передачи управления.

Сегментация памяти и вычисление адресов

Пространство памяти ем­костью 1 Мбайт представляется как набор сегментов, определяемых програм­мным путем. Сегмент состоит из смежных ячеек памяти и является независимой и отдельно адресуемой единицей памяти емкостью 64 Кбайт. Каждому сегмен­ту программой назначается начальный (базовый) адрес, являющийся адресом первого байта сегмента в пространстве памяти. Начальные адреса четырех ceгментов, выбранных в качестве текущих, записываются в сегментные регист­ры CS, DS, SS и ES, тем самым фиксируются текущие сегменты кода (про­граммы), данных, стека и дополнительных данных. Для обращения к командам и данным, находящимся в других сегментах, необходимо изменять содержимое ceгментных регистров, что позволяет использовать все пространство памяти емкостью 1 Мбайт. Сегментные регистры инициализируются в начале про­граммы путем засылки в них соответствующих констант. Частный случай за­грузки всех сегментных регистров нулями приводит к организации памяти, характерной для ВМ80, т.е. фактически к отказу от сегментации памяти.

В сегментном регистре хранится 16 старших битов 20-битового начального адреса сегмента. Четыре младших бита адреса принимаются равными нулю и дописываются справа к содержимому сегментного регистра при вычислении физических адресов ячеек памяти. Поэтому начальные адреса сегментов всегда кратны 16. Поскольку других ограничений на размещение сегментов в памяти нет, сегменты могут быть соседними (смежными), неперекрывающимися, частично или полностью перекрывающимися. Физическая ячейка памяти может принадлежать одному или нескольким сегментам.

Физический адрес ячейки памяти представляет 20-битовое число в диапа­зоне 0 - FFFFF, которое однозначно определяет положение каждого байта в пространстве памяти емкостью 1 Мбайт. В начале каждого цикла шины, связанного с обращением к памяти, физический адрес выдается на шину адреса и сопровождается сигналом ALE. Так как МП ВМ86 является 16-битовым, то все операции при вычислении физического адреса производятся с 16-битовыми адресными объектами.

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

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

Рисунок 4 - Вычисление физического адреса

 

Источники логического адреса для различных типов обращения к памяти приведены в табл. 3. Команды всегда выбираются из текущего сегмента кода в соответствии с логическим адресом CS: IP. Стековые команды всегда обра­щаются к текущему сегменту стека по адресу SS:SP. Если при вычислении адреса ЕА используется регистр ВР, то обращение производится также к стеко­вому сегменту. В последнем случае принцип стека»первый пришел - послед­ний вышел» игнорируется и ячейки стекового сегмента рассматриваются как ОЗУ с произвольной выборкой, что обеспечивает большую гибкость в использо­вании этих ячеек.

 

Таблица 3

Тип обращения к памяти Сегмент (по умолчанию) Вариант Смещение
Выборка команд CS Нет IP
Стековая операция SS Нет SP
Переменная DS CS, SS, ES EA
Цепочка-источник DS CS, SS, ES SI
Цепочка-приемник ES Нет DI
ВР как базовый регистр ES CS, SS, DS EA

 

Операнды, как правило, размещаются в текущем сегменте данных, и обра­щение к ним организуется по адресу DS:EA. Однако программист может за­ставить МП обратиться к переменной, находящейся в другом текущем сегмен­те. Считается, что цепочка-источник находится в текущем сегменте данных, а ее смешение задается регистром SI. Цепочка-получатель обязательно располага­ется в текущем дополнительном сегменте, а смещение берется из регистра D1. Команды обработки цепочек автоматически модифицируют содержимое индек­сных регистров SI и DI по мере продвижения по цепочке в направлении, со­ответствующем флагу DF.

Смена сегментного регистра в соответствии с вариантами, указанными в табл. 3, осуществляется с помощью однобайтового префикса замены сег­мента 001SR110, который ставится перед первым байтом команды. Двухбито­вое поле SR содержит код сегментного регистра, используемого для вычисления физического адреса в данной команде: 00 - регистр ES, 01 - CS, 10 - SS; 11 - DS. В мнемонических обозначениях команд смена сегмента отражается следующим образом: MOV AX, CS: [ВХ] - пересылка в АХ слова из кодового сегмента со смещением из ВХ; ADD ES:ROW[DI], BL - сложение байта из дополнительного сегмента (со смещением +ROW) с содержимым регистра BL и размещение результата в ОЗУ на место первого слагаемого.

Сегментная структура памяти обеспечивает возможность создания позиционно независимых или динамически перемещаемых программ, что необхо­димо в мультипрограммной среде для эффективного использования оператив­ной памяти. Чтобы обеспечить позиционную независимость, все смешения в программе должны задаваться относительно фиксированных значений, со­держащихся в сегментных регистрах. Это позволяет произвольно перемещать программу в адресном пространстве памяти, изменяя только содержимое сег­ментных регистров.

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

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

 

 

Организация ввода – вывода

Ввод и вывод данных может осуществлять­ся двумя способами: с использованием адресного пространства ввода - вывода, и с использованием общего с памятью адресного пространства, т.е. с отображением на память.

При первом способе применяются специальные команды IN (ввод) и OUT (вывод), которые обеспечивают передачу данных между аккумуляторами AL или АХ и адресуемыми портами. При выполнении этих команд вырабатывается сигнал = 0, который идентифицирует выбор пространства ввода - выво­да и в совокупности с сигналами и позволяет сформировать системные сигналы IOW и IOR для управления операциями записи данных в порт и чтения из порта.

Команды IN и OUT могут использовать прямую адресацию (по аналогии с одноименными командами ВМ80), когда адрес порта содержится в виде константы во втором байте команды, и косвенную адресацию, когда адрес располагается в регистре DX. В первом случае можно адресовать по 256 портов для ввода и вывода данных. Во втором обеспечивается адресное пространство до 64К 8-битовых портов или до 32К 16-битовых портов. Косвенная адресация позволяет вычислять адреса портов при выполнении программы и удобна при организации вычислительных циклов для обслуживания нескольких портов с помощью одной процедуры.

Восемь ячеек F8 - FF в пространстве ввода - вывода зарезервированы для системных целей, и использовать их в прикладных программах не реко­мендуется

При втором способе адреса портов размещаются в общем адресном про­странстве, и обращение к ним не отличается от обращения к ячейкам памяти. Это повышает гибкость программирования, так как для ввода - вывода можно использовать любую команду с обращением к памяти при любом способе адре­сации. Так, команда MOV позволяет передавать данные между любым общим регистром или ячейкой памяти и портом ввода - вывода, а логические коман­ды AND, OR, XOR и TEST позволяют манипулировать битами в регистре по­рта. При этом, однако, следует учитывать, что команды с обращением к памяти имеют больший формат и выполняются дольше, чем простые команды IN и OUT. Кроме того, несколько усложняется дешифрирование 20-битового физического адреса порта и сокращается число адресов, которые могут исполь­зоваться для ячеек памяти. Микропроцессор может передавать по шине байт или слово в/из ВУ. Что­бы слово передавалось за один цикл шины, адрес ВУ должен быть четным Адрес байтового ВУ может быть четным или нечетным, и соответственно порты этих внешних устройств подключаются к линиям младшего и старшего байта шины данных. Для раздельного обращения к этим портам дешифрирование адресов осуществляется с учетом сигналов на линиях и А0.

 

 

2 Минимальный и максимальный режимы функционирования

Минимальный режим (вывод MN/MX под­ключен к шине питания) ориентирован на при­менение микропроцессора в однопроцессорных системах, содержащих небольшое число уст­ройств. В этом режиме микропроцессор непо­средственно вырабатывает сигналы управле­ния циклами канала DT/ , , ALE, M/ , , , в соответствующей временной последовательности, а также обеспечивает простой доступ к системному каналу по зап­росу от контроллера прямого доступа к памя­ти типа КР580ВТ57, используя сигналы HLD/HLDA.

Система минимальной сложности, как по­казано на рис. 5, состоит из КМ1810ВМ86, генератора тактовых импульсов КР1810ГФ84, двух (трех) буферных регистров КР580ИР82, обеспечивающих фиксацию 16-разрядного (20-разрядного) адреса. Подключение шины дан­ных системы к выходам канала данных микропроцессора выполняется специальными схе­мами двунаправленных шинных формировате­лей КР580ВА86. Если нагрузка по току и ем­костная нагрузка не превышают нагрузочной способности выходных каскадов микропроцес­сора, то возможно непосредственное подклю­чение его канала данных на шину данных сис­темы.

Рисунок 5 - Структурная схема системы на базе микропроцессора КМ1810ВМ86 в ре­жиме минимального включения микросхемы

 

Для пользователя действия, выполняемые микропроцессором, представляют собой после­довательность циклов канала по обмену ин­формацией с памятью или периферийными устройствами. Каждый цикл канала микропро­цессора состоит, как минимум, из четырех ма­шинных тактов Т1 - Т4. В такте Т1 на канал адрес данных всегда выдается адресная ин­формация. В этом же такте вырабатывается сигнал ALE, который позволяет идентифици­ровать начало цикла канала и используется как стробирующий для занесения адресной ин­формации во внешний регистр адреса.

В такте Т2 производится переключение на­правления работы канала адреса/данных. Пе­редача данных по каналу происходит в так­тах Т3 и Т4. Длительность цикла канала мо­жет быть удлинена использованием управляю­щего сигнала RDY. Этот сигнал позволяет раз­работчику синхронизировать скорость работы внешней памяти со скоростью работы микро­процессора введением в цикл канала между тактами Т3 и Т4 дополнительных тактов ожи­дания. В течение тактов ожидания дан­ные на канале остаются неизменными. Между тактом Т4 текущего цикла и тактом Т1 следу­ющего цикла канала процессор может вво­дить дополнительные»холостые» такты, пред­назначенные для выполнения внутренних дей­ствий. Моменты введения этих тактов и их число зависят от состояния очереди команд и выполняемой команды в УО.

Все типы циклов канала могут быть объе­динены в два базовых цикла: цикл чтения и цикл записи. Пример базового цикла канала для минимального режима приведен на рис. 6.

Цикл чтения начинается с выработки сиг­нала ALE. Этот сигнал используется для за­несения адресной информации на внешний ре­гистр адреса. В такте Т2 канал A/D переклю­чается в высокоомное состояние, вырабатыва­ется сигнал , который используется для чтения адресуемого устройства. Для управле­ния шинными формирователями, обеспечива­ющими развязку канала адреса/данных микро­процессора от системного канала данных, ис­пользуются сигналы DT/ и .

Цикл записи (как и цикл чтения) начина­ется с выдачи сигнала ALE и адреса на канал адреса. В такте Т2 непосредственно за выда­чей адреса на канал A/D выдаются данные для записи в адресуемое устройство. Эта ин­формация остается истинной на канале дан­ных до окончания такта Т4. Сигнал выра­батывается в начале такта Т2 и остается в этом состоянии до начала такта Т4.

Использование четырехтактового цикла об­мена информацией позволяет микропроцессо­ру при тактовой частоте 5 МГц работать без введения тактов ожидания со схемами памяти с длительностью цикла обращения от 500 до 800 нс и временем выборки от 300 до 400 нс.

Начальная установка и запуск микропро­цессора осуществляются по сигналу SR. Для правильной установки в начальное состояние микропроцессора сигнал SR должен подавать­ся на вход SR высоким уровнем - не менее четырех периодов тактовой частоты. По сиг­налу SR работа микропроцессора приостанав­ливается, и производится начальная установка регистра признаков F, регистра адреса (указа­теля) команд IP, сегментных регистров в соот­ветствии с табл. 4, выходы канала адреса/ данных переводятся в высокоомное состояние, выходы канала управления - в высокоомное или пассивное состояние.

По окончании сигнала SR пошаговые и маскируемые прерывания запрещены, и пер­вая команда начинает выбираться из ячейки памяти с физическим адресом FFFFOH. Обыч­но первой командой является команда межсегментного прямого перехода IMP, которая из­меняет содержимое регистров IP и CS и та­ким образом определяет начальный адрес вы­полняемой программы.

 

Рисунок 6. - Цикл канала для режима мини­мального включения микропроцессора

 

Таблица 4

Назначение регистра Содержимое регистра
Регистр признаков F Регистр адреса команды IP Регистр сегмента команд CS Регистр сегмента данных DS Регистр сегмента стека SS Регистр дополнительного сегмента ES F00216 000016 FFFF16 000016 000016 000016

 

Максимальный режим (вывод MN/неMX под­ключен к шине»Общий») ориентирован на применение микропроцессора в сложных одно- и многопроцессорных системах. В системах максимальной конфигурации (рис. 7) функ­ции управления каналом берет на себя сис­темный контроллер КР1810ВГ88, который де­кодирует три сигнала состояния - , по­ступающие из микропроцессора, и выдает рас ширенный набор сигналов управления для ос­тальной части системы. Пять выходных сигна­лов используются для координации совмест­ной работы с другими процессорами в мульти­процессорной системе.

Рисунок 7 - Структурная схема системы на базе микропроцессора КМ1810ВМ86 в ре­жиме максимального включения микросхемы

 

3 Организация прерываний

Общие сведения о системе прерываний. Микропроцессор BM86 имеет эффективную систему прерываний, в которой каждому прерыванию поставлен в соответствие код (от 0 до 255), который идентифицирует тип прерывания. Прерывания могут инициироваться внешними устройствами (внешние пре­рывания) или командами программных прерываний, а в некоторых ситуаци­ях - автоматически самим МП (внутренние прерывания). Возможные источ­ники прерываний показаны на рис. 8

Рисунок 8 - Источники прерываний

 

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

Для этого в стеке запоминается адрес возврата (CS и IP) и содержимое ре­гистра флагов F, а также содержимое тех регистров, которые потребуются для выполнения подпрограммы обработки прерывания Содержимое регистров CS, IP и F запоминается и восстанавливается автоматически, а для запоминания и последующего восстановления содержимого других регистров МП должны быть предусмотрены соответствующие команды в начале и конце подпрограм­мы обработки прерываний Следует отмстить, что в стек включается скорректи­рованное содержимое указателя команд IP, соответствующее адресу команды, перед которой МП начал обслуживать прерывание. Необходимость коррекции вызвана тем, что IP адресует команды с опережением из-за существования внутренней очереди команд.

Внешние прерывания. Запросы на внешние прерывания поступают в МП по двум входам: INTR и NMI, и сами прерывания делится соответственно на маскируемые и немаскируемые. Запросы на маскируемые прерывания от ВУ обычно поступают на входы программируемого контроллера прерываний (ПКП) К1810ВН59А, который формирует сигнал, подаваемый на вход, INTR. Отметим, что этот ПКП может использоваться как с МП ВМ86, так и с ВМ80, причем его работа существенно зависит от типа МП. При работе с ВМ80 контроллер в ответ на первый сигнал подтверждения прерывания INTA1 выставля­ет на тину данных код команды CALL. В МП этот код инициирует еще два сигнала: и , по которым ПКП выдает два байта адреса подпрог­раммы. При работе с BM86 в ответ па сигнал ПКП не выдаст данных в микропроцессор и буфер данных ПКП остается в высокоомном состоянии. По сигналу ПКП посылает в микропроцессор байт, определяющий тип (вектор) прерывания.

Koгда устанавливается сигнал INTR = 1, действия МП зависят от состоя­ния флагa IF разрешения прерываний. Однако до завершения текущей коман­ды МП, как правило, не предпринимает никаких действий.

Имеется несколько случаев, когда сигнал INTR распознается только при завершении следующей команды. Префиксы повторения, блокировки шины и замены сегмента считаются частью команды, поэтому прерывание между префиксом и командой не воспринимается. Команды пересылки в сегментный регистр MOV sr, src и извлечения из стека в сегментный регистр POP sr рас­сматриваются аналогично, прерывание не распознается до завершения следую­щей за ними команды. Это необходимо для правильной смены сегмента, когда осуществляется перезагрузка сегментного регистра и регистра, определяющего смещение в сегменте (например, регистров SS и SP).

Имеются два особых случая, когда запрос прерывания распознается во время выполнения команды, относящихся к цепочечной команде с повторением и к команде WAIT, которые могут выполняться в течение значительного време­ни. В этих случаях прерывания воспринимаются после любой законченной цепочечной операции (т.е. после очередной операции с элементом цепочки) или после цикла проверки сигнала на входе (каждый цикл проверки зани­мает время 5Т).

Если 1F = 0, т. с. прерывания по входу INTR запрещены (замаскированы), МП игнорирует запрос прерывания и переходит к следующей команде. Микро­процессор не запоминает состояние сигнала INTR, поэтому этот сигнал должен оставаться активным, пока прерывающее ВУ не получит сигнала подтверждения или само не снимет запрос. Если IF = 1, то МП распознает запрос прерывания и обрабатывает его. Состоянием флага IF программист может управлять с помощью команд STI (установка) и CLI (сброс). Эти команды эквивалентны командам EI (разрешение прерывания) и DI (запрет прерыва­ния) МП ВМ80. Кроме того, ПКП может осуществлять селективное маскирова­ние запросов прерывания от отдельных устройств, если в контроллер послан соответствующий приказ.

Микропроцессор ВМ86 подтверждает запрос прерывания, выполняя два последовательных цикла . Если в этих циклах появляется запрос шины но линии HOLD (в минимальном режиме) или = (в максимальном режи­ме), то он не воспринимается до завершения обоих циклов . В максималь­ном режиме МП генерирует в этих циклах сигнал блокировки шины , чтобы другие процессоры не пытались запрашивать шину.

Запросы на немаскируемое прерывание поступают по входу NMI и обычно используются для прерывания работы МП при»катастрофических» событиях, требующих немедленной реакции, таких, как аварийное пропадание питания, обнаружение ошибки памяти и т.д. Вход NMI воспринимает переход сигнала от низкого уровня к высокому (положительный фронт), чтобы текущая про­грамма не прерывалась от одного сигнала NMI = 1 несколько раз. Запросы NMI запоминаются в МП и имеют более высокий приоритет, чем прерывания по входу INTR. Обработка немаскируемого прерывания не зависит от состояния флага IF. Немаскируемому прерыванию присваивается фиксированный код типа 2, который автоматически формируется внутри МП. Поэтому в ответ на NMI циклы типы подтверждения прерывании INTA не формируются, что ускоряет реакцию МП на запросы немаскируемых прерываний.

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

Таблица 5

Вид прерывания Тип пре­рывания Прио­ритет Бремя вызова подпрограммы прерывания
По ошибке деления      
По команде INT n 5-31    
По команде INT0      
По команде INT 3      
По входу NMI      
По входу INTR 32 - 255    
По флагу TF      

 

При анализе приоритетов необходимо учитывать маскируемость внешних прерываний по входу INTR, что может привести к перераспределению приори­тетов. Если, например, одновременно возникают немаскируемое и маскируемое прерывания, МП начинает выполнение немаскируемого прерывания как имею­щего высший приоритет и маскирует внешние прерывания сбросом флага IF. В этом случае запрос по входу INTR принимается лишь по окончании обслужи­вания немаскируемого прерывания. Однако обслуживание запроса маскируе­мого прерывания может быть разрешено при выполнении подпрограммы обслу­живания любого прерывания путем установки флага IF.

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

Прерывание по ошибке деления (тип 0) генерируется микропроцессором сразу после выполнения команд деления DIV и IDIV, если формат частного превышает формат получателя или в случае деления на нуль. Время реакции МП на прерывание типа 0 и выполнения соответствующей подпрограммы сле­дует учитывать при оценке продолжительности команды деления в наихудшем случае.

Прерывание по переполнению (тип 4) генерируется по однобайтовой ко­манде INT0, если установлен флаг OF.

Пошаговое прерывание (тип 1) вырабатывается автоматически при TF = 1 после выполнения каждой команды или пары команд, если первая команда изменяет содержимое сегментного регистра. Обычно это прерывание использу­ется в программах отладки для реализации покомандного выполнения про­граммы. При обработке прерывания МП включает в стек регистры F, CS и IP, а затем сбрасывает флаги IF и TF. Поэтому после вызова подпрограммы МП работает обычным образом, а не в пошаговом режиме. Подпрограмма обра­ботки пошагового прерывания обычно осуществляет индикацию внутренних регистров МП и содержимого некоторых ячеек памяти. Когда подпрограмма завершается, из стека извлекаются прежние состояния флагов и МП снова переводится в пошаговый режим работы.

Как уже отмечалось, МП ВМ86 не имеет команд установки и сброса флага TF. Отсутствуют также команды, которые позволили бы организовать пере­сылки между старшим байтом регистра F и общим регистром МП Состояние флага TF можно изменять, воздействуя на него после включения регистра F в стек. Для включения регистра F в стек и извлечения его из стека предусмот­рены соответственно команды PUSHF и POPF. Значение TF = 1 устанавлива­ется путем объединения по ИЛИ содержимого регистра с константой 0100, a TF = 0 - путем объединения по И с константой FEFF. Если установлено TF = 1, то первое пошаговое прерывание произойдет после выполнения коман­ды, следующей за командой возврата из подпрограммы обработки пошагового прерывания.

В пошаговом режиме МП реагирует на внешние и внутренние прерывания. Обычным путем (с включением в стек регистров CS, IP и F) осуществляется переход на подпрограмму обработки возникшего прерывания. Однако до вы­полнения первой команды этой подпрограммы распознается пошаговое пре­рывание и управление передается подпрограмме обработки пошагового пре­рывания типа 1, после завершения которой МП возвращается к выполнению подпрограммы принятого ранее прерывания.

Прерывание, определяемое пользователем при составлении программы, осуществляется по двухбайтовой команде INTn, в которой тип прерывания указывается во втором байте команды. Команда INTn вызывает требуемую подпрограмму, как и команда CALL, однако при переходе на подпрограмму команда INTn осуществляет запоминание не только адреса возврата (CS и IP), но и регистра флагов F. При этом выполняется межсегментный переход, причем адрес подпрограммы располагается не в формате команды или в произвольной ячейке памяти, а в специально сформированной таблице.

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

Однобайтовая команда INT3 вызывает прерывание типа 3, которое опреде­лено как прерывание контрольной точки (точки разрыва). Контрольной точкой может быть любое место в программе, где нормальное ее выполнение прерыва­ется и производятся некоторые специальные действия. Контрольные точки обычно вводятся при отладке как средство индикации содержимого регистров, ячеек памяти и портов ввода в критических местах программы. Эту команду можно также использовать, чтобы вставить дополнительный фрагмент про­граммы без ее повторной трансляции.

Процедура обслуживания прерываний. Связь между кодом, определяю­щим тип прерывания, и подпрограммой (процедурой) обслуживания прерыва­ния устанавливается с помощью таблицы указателей векторов прерываний (рис. 9). Полная таблица занимает 1 Кбайт памяти и содержит 256 эле­ментов, расположенных по адресам 0 - 3FF. Каждый элемент таблицы со­держит два слова, определяющие начальный логический адрес подпрограммы. Слово с большим адресом содержит базовый адрес сегмента, а слово с мень­шим адресом - смещение подпрограммы от на­чала кодового сегмента. При переходе на под­программу смещение загружается и регистр IP, а адрес сегмента загружается в регистр CS. Так как размер каждого элемента таблицы составляет 4 Байт, МП вычисляет адрес (смещение) тре­буемого элемента путем умножения типа преры­вания на 4.

Необходимо отметить, что при обращении к таблице указателей сегментные регистры не ис­пользуются. При формировании физического ад­реса вычисленное смещение складывается с нулем и ни один сегментный регистр не используется, на что указывают сигналы состояния S4 = S5 = 10. После установления нового содержимого регист­ров IP и CS микропроцессор выбирает код опера­ции первой команды подпрограммы и затем вы­полняет обычные действия по заполнению очереди команд, выполнению команд и обмену данными.

Когда осуществляется переход на подпрог­рамму обслуживания прерывания, содержимое регистра F (вместе с содержимым регистров CS и IP) запоминается в стеке, флаг IF (а также флаг TF) сбрасывается. Тем самым автоматически запре­щаются внешние прерывания по входу INT, что нужно, например, для зашиты начального участка подпрограммы, в течение которого осуществляется включе­ние в стек внутренних регистров МП. Затем подпрограмма может разрешить внешние прерывания командой STI. Кроме того, она может быть прервана за­просом на входе NMI и внутренними прерываниями. Необходимо следить, чтобы в подпрограмме не возникало прерывание того типа, которое она обслуживает. Например, попытка деления на нуль в процедуре прерывания из-за ошибки деления приведет к бесконечным вызовам этой процедуры.

Рисунок 9 - Таблица указателей векторов прерываний

 

В конце подпрограммы восстанавливают содержимое регистров МП, кото­рые были включены в стек в начале подпрограммы с целью сохранения данных, относящихся к прерванной программе. Этот участок подпрограммы следует защитить с помощью команды CLI от прерываний по входу INTR. Подпрограм­ма обработки прерывания должна заканчиваться командой возврата из пре­рывания IRET, которой предшествует команда разрешения прерываний STI. Перед выполнением команды IRFT стек должен быть в том состоянии, в котором он был сразу после вызова подпрограммы. Тогда эта команда извлекает три верхние слова из стека в регистры IP, CS и F, что обеспечивает возврат к команде, которая выполнялась бы в случае отсутствия прерывания.

4 МП ВМ 88

Архитектура МП ВМ88 тождественна архитектуре ВМ86. Программное обеспечение одного МП может быть использовано другим без изменения. Отличия в их организации наблюдаются только на структурном уровне.

Рисунок 10 - Схема микроЭВМ на базе ВМ88

 

Схема микроЭВМ, по­строенной на основе МП ВМ88, приведена на рис. 10. Она содержит 20-раз­рядную шину физического адреса ADR, шину данных DAT и шину управления СВ. В системе используется физическая память емкос­тью до 1 М байта и изоли­рованная система ВВ с пространством портов до 64 К байт. Однако обмен с памятью и внешними приборами ВВ выполняется через 8-разрядную шину данных DAT по байтам. По этой причине в магистрали отсутствует линия ВНЕ, которая предназначена для управления передачей данных через старшую часть шины данных DAT15 - DATO.

С другой стороны, системная шина на рис. 10 полностью эквивалентна шине микроЭВМ, построенной на базе МП ВМ80. Это означает совместимость внешних по отношению к ЦП аппаратных модулей как одной, так и другой МС.

Представленная на рис. 11 структурная схема МП ВМ88 аналогична схеме МП ВМ86, за исключением того, что внешний обмен данными выполняется по 8 бит. Шестнадцати­разрядные операнды считываются или записываются при помощи двух последовательных циклов обращения к магистрали. Поэтому производительность ВМ88 несколько хуже, чем у ВМ86, а в остальном с точки зрения программиста оба процессора не различимы.

В процессоре ВМ88 длина очереди уменьшена до 4 байт, тогда как в ВМ86 она составляет 6 байт или 3 слова. Длина очереди была сокращена для уменьшения времени занятия системной магистрали блоком сопряжения, необходимого для заполнения очереди. Вместе с этим был оптимизирован алгоритм предвари­тельной выборки. Так, если в ВМ86 новое слово программного кода считывается из памяти и вводится в буфер всякий раз, когда в очереди освобождается два байта, то в ВМ88 новый байт программного кода пересылается в буфер при наличии в нем хотя бы одного места. Алгоритм такого типа сглаживает возможные колебания длины очереди, обеспечивая практически постоянное ее заполнение.

Блоки обработки обоих процессоров совершенно идентичны и работают с одинаковыми скоростями. Поэтому скорость работы ЦП на базе ВМ88 ограничивается производительностью его блока сопряжения. Поддержка всегда заполненной очереди команд заставляет ЦП работать с максимальной для него скоростью, Определяемой скоростью работы блока обработки. Однако в случае следующих друг за другом ряда простых команд очередь может быстро опустеть и производительность ЦП будет опреде­ляться скоростью выборки команд из памяти.

Микропроцессор ВМ88, подобно ВМ86, может работать как в минимальном, так и в максимальном режиме, в соответствии с этим меняется состав и функциональное назначение его аппарат-нога интерфейса. Программирование режима выполняется с помощью входа MN/ . Внесенные в структуру ВМ88 изменения повлияли и на его интерфейс, который несколько отличается от интерфейса ВМ86.

Во-первых, двунаправленные линии AD15 - AD8 заменены на однонаправленную шину А15 - А8, служащую только для выдачи адресной информации. Сигналы А15 - А8 запоминаются внутри ЦП и выдаются на одноименные линии в продолжении всего машинного цикла работы с шиной аналогично старшим адресным линиям ЦП ВМ85ТА.

Во-вторых, отсутствует необходимость в сигнале . В максимальном режиме освободившаяся линия не используется. На ней всегда поддерживается напряжение высокого уровня. В минимальном режиме через данную линию выводится сигнал , функционально эквивалентный сигналу максимального режима, но с другими временными параметрами. Его временные параметры совпадают с параметрами сигнала IO/ . Сигнал совместно с сигналами DT/ и IO/ обеспечивает полную инфор­мацию о типе текущего машинного цикла в соответствии с табл. 6. Отметим, что сигнал IO/ инвертирован по отношению к однотипному сигналу МП ВМ86. Это сделано для обеспечения совместимости с интерфейсом ВМ85А. Существует еще одно отличие ВМ88 в минимальном режиме. При входе в состояние останова сигнал ALE задерживается на один такт, чтобы позволить внешним схемам запомнить информацию о состоянии.

 

Рисунок 11 - Схема микропроцессора ВМ88

 

Процессор ВМ88 размещается в стандартном 40-выводном корпусе с двурядным расположением выводов. Условное графи­ческое обозначение микросхемы приведено на рис. 12. Функцио­нальное назначение выводов микросхемы совпадает с функцио­нальным назначением тех же выводов для ВМ86. Это упрощает проектирование МС на их основе, дает возмож­ность ввести процедуры автоматического распознавания типа МП. Такого рода распознавания важны для компонентов внешнего расширения процессоров, работающих в максимальном режиме.

Процедура распознавания и настройки на конкретный МП выполняется при включении напряжения питания или нажатии клавиши RESET, когда управление передается на стартовый адрес МП. В качестве стартового входа в обеих микросхемах исполь­зуется логический адрес 0FFFFH:0000H. Однако в первом цикле обращения к магистрали МП ВМ86 считывает первое слово программной последовательности ( = 0), тогда как в ВМ88 эта линия всегда находится в состоянии HIGH ( = 1). Состояние линии в первом машинном цикле после сброса однозначно связывается с типом МП.

Рисунок 12 - Условное графическое обозна­чение микропроцессора ВМ88

а -минимальный режим, б - максимальный режим

 

Конфигурация локальной шины ВМ88 полностью совпадает с мультиплексированным интерфейсом ПУ семейства ВМ85А, что позволяет разработчику создавать системы с минимальным числом корпусов. Подобная конфигурация дала возможность использовать всю вычислительную мощность процессоров ВМ88 совместно с высокоинтегрированными периферийными кристал­лами семейства ВМ85А.

 

Таблица 6

Состояние Тип цикла Состояние Тип цикла
   
      Подтверждение прерываний       Выборка команды
      Чтение порта ВВ       Чтение памяти
      Запись в порт ВВ       Запись в память
      Останов       Пассивное состояние

 

5 Арифметический сопроцессор ВМ 87

Назначение выводов БИС К1810ВМ87

AD15 - AD0 - входы/выходы для формирования адресов и передачи данных. В течение первой части цикла шины (Т1) они содержат адрес, а в остальной части цикла (Т2, Т3, TW, T4) по ним вводятся или выводятся данные. Когда шиной управляет ЦП, выводы AD15 - AD0 являются входами.

A19/S6 - A16/S3 - выходы для фор­мирования четырех старших разрядов адреса в течение первой части цикла шины (Т1), в остальной части цикла (Т2, Т3, TW, T4) име­ют постоянные значения S3 = S4 = S6 = 1, S5 = 0. Когда шиной управляет ЦП, эти вы­воды являются входами (рис. 13).

/S7 выходной сигнал разрешения старшего байта шины данных. Значение = 0 устанавливается в такте Т1 при чте­нии или записи данных с использованием стар­ших разрядов шины данных D15 - D8. Если разряды D15 - D8 при передаче данных не используются, то = 1. В остальной части цикла шины (Т2, Т3, TW, T4) действует вы­ходной сигнал S7 = 0. Когда сопроцессор не управляет шиной, данный вывод использует­ся как вход.

- - выходные сигналы кода со­стояния сопроцессора; = 101 - чтение из памяти; = 110 - запись в память; = 111 - пассивное со­стояние сопроцессора; остальные комбинации значений не используются. Код состояния выставляется в такте Т4 и сохраняет свое значение в тактах Т1 и Т2, тактах Т3 и TW, когда входной сигнал READY = 1, выставляется код пассивного состояния = 111. Код состояния используется системным контроллером К1810ВГ88 для формирования соответствующих сигналов управления при обращениях к памяти. Определенные изменения сигналов , или такте Т4 служат для индикации начала цикла шины, а пассивное состояние в такте Т3 или TW - для индикации конца цикла шины. Когда управление шиной осуществляет ЦП, эти выводы являются входами.

- вход/выход используется для запроса/предоставления доступ к локальной шине ЦП, когда сопроцессору требуется переслать операнд. Этот вывод может быть использован для запроса/предоставления доступа другому процессору, который связан с АСП по линии . Последовательность взаимодействия АСП с ЦП по линии состоит в следующем: 1) сопро­цессор посылает запрос центральному процессору в форме отрицательно­го импульса длительностью, равной одному периоду CLK, когда ему необходима локальная шина либо когда он получает запрос по линии от друго­го процессора; 2) сопроцессор ожидает сигнала (отрицательного импульса) предоставления шины от ЦП и, получив его, в следующем такте начинает пере­сылку операнда по шине либо в этом же такте передает этот сигнал по линии другому процессору, запросившему доступ; 3) сопроцессор формиру­ет ответный отрицательный импульс центральному процессору длительностью, равной одному периоду CLK после завершения пересылки операнда либо по получению ответного импульса по линии от другого процессора.

Рисунок 13 - Условное графическое обозначение АСП ВМ87

 

- вход - выход, сигнал запроса/предоставления шины для свя­зи сопроцессора с другим процессором, использующим локальную шину. Если сопроцессор не управляет локальной шиной в момент прихода запроса по линии от другого процессора, то этот запрос передается с запаздыва­нием на один такт CLK- Сигнал предоставления шины от ЦП и ответный сигнал о завершении доступа другим процессором также передаются сопроцессором с задержкой на один такт CLK.

Если сопроцессор управляет локальной шиной, то последовательность его взаимодействия с другим процессором по линии состоит в следующем:

1) процессор посылает запрос о предоставлении шины сопроцессору в форме отрицательного импульса длительностью, равной одному периоду CLK;

2) во время ближайшего такта Т4 или Т1 сопроцессор посылает сигнал подтверждения (в форме отрицательного импульса длительно­стью, равной одному периоду CLK.) запросившему процессору, что свидетель­ствует об освобождении локальной шины сопроцессором и переходе его в со­стояние ожидания сигнала завершения использования шины от запросившего процессора;

3) после завершения использования шины запросивший процессор посылает отрицательный импульс длительностью, равной одному периоду CLK, сопроцессору, который в следующем такте возобновляет работу с локальной шиной.

QS1, QS0 - входные сигналы кода состояния очереди команд. Они по­зволяют сопроцессору следить за состоянием очереди команд ЦП с тем, чтобы синхронизировать начало выполнения очередной команды. Состояние очереди кодируется следующим образом:

QS1 QS0 = 00 - очередь не изменилась;

QS1 QS0 = 01 - первый байт команды взят из очереди;

QS1 QS0 = 10 - очередь реинициализировалась (пуста);

QS1 QS0 = 11 - очередной байт команды взят из очереди.

INT - выходной сигнал запроса прерывания, указывающий на возникно­вение незамаскированной исключительной ситуации. Обычно этот вывод под­ключается ко входу контроллера прерываний К580ВН59А.

BUSY - выходной сигнал занятости; сигнал BUSY = 1 указывает на то, что сопроцессор выполняет команду. Этот вывод соединяется с выводом ЦП, обеспечивая тем самым синхронизацию его работы и сопроцессора. В слу­чае возникновения незамаскированной исключительной ситуации сигнал BUSY остается активным (BUSY = 1) до тех пор, пока флаг исключительной ситуации не будет сброшен.

READY - входной сигнал готовности от внешних устройств. Сигнал RDY подтверждения готовности от памяти или ВУ синхронизируется тактовым генератором К1810ГФ84, который формирует сигнал READY для АСП и ЦП.

RESET - входной сигнал сброса (начальной установки), устанавливаю­щий сопроцессор в начальное состояние. Длительность сигнала RESET = 1 должна составлять не менее четырех периодов CLK.

CLK - входной сигнал тактовой частоты от генератора тактовых импуль­сов К1810ГФ84, осуществляющий временную синхронизацию работы сопро­цессора. Допустимый диапазон частот 2 - 5 МГц.

GND - выводы для заземления.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.041 сек.)