Микросхема K1810ВМ86

Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 23:25, доклад

Краткое описание

Микросхема K1810ВМ86 представляет собой однокристальный 16-битовый МП, выполненный по высококачественной n-МОП-технологии. Кристалл микросхемы с геометрическими размерами 5,5x5,5 мм содержит около 29000 транзисторов и потребляет 1,7 Вт от источника питания 5B. Схема выпускается в 40-выводном корпусе. Синхронизируется однофазными импульсами с частотой повторения 25 МГц от внешнего тактового генератора. Основные операции обработки данных (сложение, вычитание, логические действия) типа регистр - регистр выполняются за три такта, что обеспечивает быстродействие 1,66·106 оп/с при периоде тактовых импульсов 200 нс. С максимальной быстротой (за два такта) выполняются регистровые пересылки, а также некоторые однооперандные команды (например, сдвиг на один бит, инкремент, декремент, управление флагами).

Содержимое работы - 1 файл

Микросхема K1810ВМ86-хорошее описание.doc

— 238.50 Кб (Скачать файл)

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

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

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

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

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

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

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

Рис. 1.4. Пример конвейерного выполнения команд

 

  

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

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

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

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

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

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

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

       

Адресное  пространство памяти и ввода — вывода

      Размещение байтов и слов в памяти. Память логически организована как одномерный массив байтов, каждый из которых имеет 20-битовый физический адрес в диапазоне 00000 — FFFFF. (Для записи адресов здесь и далее используется 16-ричная система счисления.) Любые два смежных байта в памяти могут рассматриваться как 16-битовое слово. Младший байт слова имеет меньший адрес, а старший — больший. Такое размещение байтов слова используется также в ВМ80 и в большинстве современных микроЭВМ. Адресом слова считается адрес его младшего байта. Таким образом, 20-битовый адрес памяти может рассматриваться и как адрес байта, и как адрес слова.

      Полная  информация, необходимая для определения  физического адреса, содержится в  адресном объекте «сегмент : смещение», который называется указателем адреса и содержит адрес сегмента и внутрисегментное смещение. Для запоминания указателя адреса требуется два слова памяти, причем слово с меньшим адресом всегда содержит смещение, а слово с большим адресом — базовый адрес сегмента (рис. 1.5). Каждое слово хранится обычным образом, т. е. по принципу «младший байт — по меньшему адресу».

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

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

       

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

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

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

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

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

      

      Рис. 1.6. Вычисление физического  адреса

      Источники логического  адреса для различных типов обращения  к памяти приведены в табл. 1.14.

    -       Команды всегда выбираются из текущего сегмента кода в соответствии с логическим адресом CS: IP.

    -       Стековые команды всегда обращаются к текущему сегменту стека по адресу SS:SP.

    -       Если при вычислении адреса ЕА используется регистр ВР, то обращение производится также к стековому сегменту. В последнем случае принцип стека «первый пришел — последний вышел» игнорируется и ячейки стекового сегмента рассматриваются как ОЗУ с произвольной выборкой, что обеспечивает большую гибкость в использовании этих ячеек.

      Таблица 1.14

Тип обращения  к памяти Сегмент

(по  умолчанию)

Вариант Смещение
Выборка команды  CS Нет IP
Стековая  операция SS Нет SP
Переменная DS CS.SS.ES ЕА
Цепочка-источник DS CS.SS.ES SI
Цепочка-приемник ES Нет DI
ВР  как базовый регистр ES CS.SS.DS ЕА

Информация о работе Микросхема K1810ВМ86