Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 23:25, доклад
Микросхема K1810ВМ86 представляет собой однокристальный 16-битовый МП, выполненный по высококачественной n-МОП-технологии. Кристалл микросхемы с геометрическими размерами 5,5x5,5 мм содержит около 29000 транзисторов и потребляет 1,7 Вт от источника питания 5B. Схема выпускается в 40-выводном корпусе. Синхронизируется однофазными импульсами с частотой повторения 25 МГц от внешнего тактового генератора. Основные операции обработки данных (сложение, вычитание, логические действия) типа регистр - регистр выполняются за три такта, что обеспечивает быстродействие 1,66·106 оп/с при периоде тактовых импульсов 200 нс. С максимальной быстротой (за два такта) выполняются регистровые пересылки, а также некоторые однооперандные команды (например, сдвиг на один бит, инкремент, декремент, управление флагами).
Операнды, как правило, размещаются в текущем сегменте данных, и обращение к ним организуется по адресу DS:EA. Однако программист может заставить МП обратиться к переменной, находящейся в другом текущем сегменте. Считается, что цепочка-источник находится в текущем сегменте данных, а ее смещение задается регистром SI. Цепочка-получатель обязательно располагается в текущем дополнительном сегменте, а смещение берется из регистра DI. Команды обработки цепочек автоматически модифицируют содержимое индексных регистров SI и DI по мере продвижения по цепочке в направлении, соответствующем флагу DF.
Смена сегментного регистра в соответствии с вариантами, указанными в табл. 1.14, осуществляется с помощью однобайтового префикса замены сегмента 001SR110, который ставится перед первым байтом команды. Двухбитовое поле SR содержит код сегментного регистра, используемого для вычисления физического адреса в данной команде: 00 — регистр ES; 01 — CS, 10 — SS; 11 — DS. В мнемонических обозначениях команд смена сегмента отражается следующим образом:
MOV AX, CS: [BX] — пересылка в АХ слова из кодового сегмента со смещением из BX;
ADD ES:ROW[DI], BL —сложение байта из дополнительного сегмента (со смещением+ROW) с содержимым регистра BL и размещение результата в ОЗУ на место первого слагаемого.
Сегментная структура памяти обеспечивает возможность создания по-зиционно независимых или динамически перемещаемых программ, что необходимо в мультипрограммной среде для эффективного использования оперативной памяти. Чтобы обеспечить позиционную независимость, все смещения в программе должны задаваться относительно фиксированных значений, содержащихся в сегментных регистрах. Это позволяет произвольно перемещать программу в адресном пространстве памяти, изменяя только содержимое сегментных регистров.
Стек, как обычно, организуется в ОЗУ, и его положение определяется содержимым регистров SS и SP. Регистр SS хранит базовый адрес текущего сегмента стека, а регистр SP указывает на вершину стека, т. е. содержит смещение вершины стека в стековом сегменте. При каждом обращении к стеку пересылается одно слово, причем содержимое SP модифицируется автоматически: при записи (включении) в стек оно уменьшается на два, при чтении (извлечении) из стека — увеличивается на два.
При
всех достоинствах принятой в ВМ86 организации
памяти она имеет некоторый недостаток
Организация ввода — вывода. Ввод и вывод данных может осуществляться двумя способами: с использованием адресного пространства ввода — вывода, и с использованием общего с памятью адресного пространства, т. е. с отображением на память.
При
первом способе применяются
Команды IN и OUT могут использовать прямую адресацию (по аналогии с одноименными командами ВМ80), когда адрес порта содержится в виде константы во втором байте команды, и косвенную адресацию, когда адрес располагается в регистре DX. В первом случае можно адресовать по 256 портов для ввода и вывода данных. Во втором обеспечивается адресное пространство до 64К 8-битовых портов или до 32К 16-битовых портов. Косвенная адресация позволяет вычислять адреса портов при выполнении программы и удобна при организации вычислительных циклов для обслуживания нескольких портов с помощью одной процедуры.
Восемь ячеек F8 — FF в пространстве ввода — вывода зарезервированы для системных целей, и использовать их в прикладных программах не рекомендуется.
При втором способе адреса портов размещаются в общем адресном пространстве, и обращение к ним не отличается от обращения к ячейкам памяти. Это повышает гибкость программирования, так как для ввода — вывода можно использовать любую команду с обращением к памяти при любом способе адресации. Так, команда MOV позволяет передавать данные между любым общим регистром или ячейкой памяти и портом ввода — вывода, а логические команды AND, OR, XOR и TEST позволяют манипулировать битами в регистре порта. При этом, однако, следует учитывать, что команды с обращением к памяти имеют больший формат и выполняются дольше, чем простые команды IN и OUT. Кроме того, несколько усложняется дешифрирование 20-битового физического адреса порта и сокращается число адресов, которые могут использоваться для ячеек памяти.
Микропроцессор может передавать по шине байт или слово в/из ВУ. Чтобы слово передавалось за один цикл шины, адрес ВУ должен быть четным. Адрес байтового ВУ может быть четным или нечетным, и соответственно порты этих внешних устройств подключаются к линиям младшего и старшего байта шины данных. Для раздельного обращения к этим портам дешифрирование адресов осуществляется с учетом сигналов на линиях ВНЕ и А0.
Таблица 1.6
|
Таблица 1.7
S2,S1,SO Линии состояния, характеризуют тип выполняемого цикла; Выход (г)
(ST2-STO) необходимы для выработки управляющего сигнала
RQ/GTO Запрос/предоставление, используется для обмена сигналами между процессорами в многопроцессорной системе Вход/выход
RQ/GT1 для управления процедурой использования шин -
(RQ/EOJ
LOCK Блокировка (занятость) шины, информирует другие процессоры и устройства о том, что они не должны запрашивать шину - Выход
QS1,QS0 Состояние очереди, указывает состояние внутренней 6-байтовой очереди команд МП - Выход