0_МПиИСТС_Все главы. Микропроцессоры и интерфейсные средства транспортных средств
Скачать 10.01 Mb.
|
6.11 Контрольные вопросы и задания
а) защищенном режиме, б) реальном режиме.
Глава 7. Микропроцессор К1801ВМ1, магистраль Q-bus7.1 Микропроцессор К1801ВМ1Микропроцессор К1801ВМ1 - универсальный микропроцессор. Он предназначен для работы в микропроцессорных системах, использующих системную магистраль “ Q-bus “ или “ МПИ “ - магистраль передачи информации. Эта магистраль является мультиплексированной и содержит 2 основные шины : 16-ти разрядную шину “ адрес-данные “ и “ шину управления “. Микропроцессор является оригинальной отечественной разработкой, хотя прототипом для него послужил модуль центрального процессора миниЭВМ PDP-11 и аналогичный ему модуль центрального процессора микроЭВМ LSI-11 (отечественный аналог – микроЭВМ «Электроника-60М). 7.1.1 Структурная схема микропроцессора К1801ВМ1
INIT - инициализация ВУ, СБРОС (триггер запросов прерываний) ACLQ - авария сетевого питания DCLQ - авария источника питания VIRQ - запрос прерывания от ВУ IRQ 1 - сигнал перехода в пультовый режим IRQ 2 - сигнал прерывания с вектором 1008 IRQ 3 - сигнал прерывания с вектором 2708 IAKO - предоставление прерываний SP - резерв RPLY - ответ ведомого устройства SYNC - синхронизация обмена (подтверждение выдачи адреса) DOUT - вывод (запись) DIN - ввод (чтение) WTBT - вывод; вывод байта DMR - запрос прямого доступа к памяти SACK - подтверждение предоставления прямого доступа к памяти DMQO - предоставление прямого доступа к памяти SEL 1, SEL 2 - выборка регистров ввода-вывода BSY - сигнал занятости системного интерфейса 7.1.2 Основные технические характеристикиРазрядность - 16 бит (шина адрес/данные); Представление чисел - дополнительный код с фиксированной запятой; Дополнительная форма представления чисел – код с плавающей запятой; Система счисления, используемая для записи адресов, операндов, кодов команд – 8-ричная; Количество РОН - восемь; Наличие особого регистра типа аккумулятора – нет; Адресное пространство - 64 КБайта или 32 Килослова; Минимально-адресуемая единица информации - 1 байт; Адресные пространства ячеек памяти и внешних устройств – объединены; Область адресов внешних устройств – с 177600 по 177777; Количество линий запросов на прерывание - четыре; Тактовая частота - от 100 КГц до 5 МГц; Количество методов адресации - 8 ( 16 ); Максимальное быстродействие выполнения команд сложения при регистровом методе адресации - до 500 тыс. операций/сек.; Мощность - 1,2 Вт; Напряжение питания - +5 В; Технология изготовления - n-МОП; Планарный корпус с 42 выводами. 7.1.3 Регистровая модель микропроцессора
DPU - устройство обработки информации R0 - R7 - регистры общего назначения R6 - указатель стека (SP) R7 - счетчик команд (PC) RS - регистр состояния, включающий 6 триггеров В числе РОН нет регистра типа “ аккумулятор “, но определенная специализация в использовании РОН есть, а именно R6 всегда используется как указатель стека, а R7 - как счетчик команд. ССП (слово состояния процессора) - содержит 6 бит, включая 4 флага. Слово состояния процессора содержит информацию о текущем состоянии процессора. Это информация о текущем приоритете процессора, значении кодов условий ветвления, зависящем от результата выполнения команды, и состоянии Т-разряда, используемого при отладке программы и вызывающего прерывание программы. На рис.7.3 показан формат ССП. Разряд приоритета процессора (7-разряд ССП) может находиться в состоянии "0" или "1". В последнем случае внешние устройства не могут вызывать прерывание текущей программы. Для удовлетворения требований прерывания программы разряд 7 ССП должен быть равен 0. Коды условий ветвления содержат информацию о результате последней выполненной процессором команды. Процедуру установки их в соответствующее состояние выполняют все арифметические и логические одноадресные и двухадресные команды. Установка отдельных разрядов этих кодов выполняется в следующих случаях: Z=1, если результат равен 0; N=1, если результат отрицателен; С=1, если в результате выполнения команды произошел перенос из самого старшего разряда, или, если при сдвиге вправо или влево из самого младшего или самого старшего разряда была выдвинута единица; V=1, если в результате выполнения команды произошло арифметическое переполнение. При выборке из стека нового слова состояния процессора и занесении его в регистр состояния процессора (РСП) может устанавливаться или очищаться Т-разряд ССП. Если он установлен, то по завершении выполнения текущей команды будет вызвано прерывание программы с вектором 14 и из ячейки 16 будет занесено в регистр состояния новое слово состояния процессора. Использование Т-разряда особенно эффективно в отладочных программах для организации такого режима выполнения отлаживаемой программы, когда исполнение интересующих пользователя команд вызывает прерывание программы и переход на программу работы с оператором. Это дает возможность пользователю предпринять необходимые действия.
7.1.4 Адресное пространствоШестнадцатиразрядный код адреса позволяет обращаться к 32К 16-разрядных ячеек. Нижние 4К адресов (1600008÷1777778) отведены под регистры внешних устройств. Однако пользователь не обязан использовать все адреса этого пространства исключительно для этой цели и может руководствоваться соображениями необходимости. Как показано на рис.7.4, слово делится на старший и младший байты. Ячейки, содержащие полные слова, всегда имеют четные адреса. Адреса байтов могут быть как четными, так и нечетными. Адрес младшего байта слова является четным и совпадет с адресом самого слова, адрес старшего байта слова является нечетным и на 1 больше адреса соответствующего слова (рис. 7.4). Адреса и данные принято записывать в 8-ричной системе исчисления (от 000000 до 177777). Организация памяти микропроцессора по словам и байтам для первых 4К адресов приведена на рис. 7.5.
Рис.7.5 Организация памяти микропроцессора по словам и байтам для первых 4К адресов Часть адресов зарезервирована для использования при обработке внутренних и внешних прерываний программы (адреса 0÷3768) Пример: 7.1.5 Формат командВ микропроцессоре используются три типа команд: безадресные, одноадресные и двухадресные. В безадресных командах код команды содержит только код операции. В кодах одноадресных и двухадресных команд обычно содержится информация, которая определяет: - выполняемую функцию (код операции); - регистры общего назначения, используемые при выборке операндов; - метод адресации (способ использования выбранного РОН). Так как большая часть информации, обрабатываемой вычислительной машиной, представляет собой данные, сформированные в массивы, списки, строки символов и т.д., микропроцессор разработан с учетом возможности эффективной обработки сформированных структур данных. Регистры общего назначения могут быть использованы: - как накопители (обрабатываемые данные хранятся в регистрах); - как указатели адреса (регистр общего назначения содержит адрес операнда, а не сам операнд); - как указатели адреса, содержимое которых изменяется автоматически с заданным шагом, что позволяет обращаться к последовательно расположенным ячейкам памяти. Автоматическое увеличение содержимого указателя при обращении к последовательно расположенным ячейкам памяти носит название автоинкрементной адресации. Автоматическое уменьшение содержимого указателя при обращении к последовательно расположенным ячейкам памяти носит название автодекрементной адресации. Эти методы могут быть использованы при обработке табулированных данных; - как индексные регистры, содержимое которых прибавляется к индексному слову для вычисления адреса операнда. Это позволяет легко обращаться к различным элементам списка. Использование автоинкрементного и автодекрементного методов адресации дает возможность организации стековой памяти. В качестве указателя стека программно может быть выбран любой РОН, однако определенные команды (используемые при обслуживании прерываний, обращении и возврате из подпрограмм) автоматически используют РОН R6 как аппаратный указатель стека. Формат одноадресных команд (таких как очистка, инкрементирование) имеет следующий вид:
Рис. 7.6 Формат одноадресных команд Разряды 15÷06 содержат код операции, который определяет выполняемую команду. Разряды 05÷00 образуют шестиразрядное поле, именуемое полем адресации операнда приемника, которое в свою очередь состоит из двух подполей: а) разряды 02÷00 определяют один из восьми РОН, который использует данная команда; б) разряды 05÷03 определяют способ использования выбранного регистра (метод адресации). Причем разряд 03 определяет прямую или косвенную адресации. Операции над двумя операндами (такие, как сложение, пересылка, сравнение) выполняются с помощью команд, в которых имеются два адреса. Задание разрядов в поле адресации первого и второго операндов определяет различные методы и различные регистры общего назначения. Формат двухадресной команды имеет следующий вид:
Рис. 7.7 Формат двухадресной команды Поле адресации операнда источника используется для выборки операнда источника. Поле адресации операнда приемника используется для выборки операнда приемника и занесения результата. Например, по команде АDD А,В складывается содержимое ячейки А (операнд источника) с содержимым ячейки В (операнд приемника). После выполнения операции сложения в ячейке В будет находится результат операции, а содержимое ячейки А не изменится. Команда может занимать от одного до трех слов, причем первое слово команды, содержащее код операции, называется командным словом. 7.1.6 Методы адресацииВ микропроцессоре 1801 ВМ1 используется 4 метода прямой адресации, номера которых четные, и 4 метода косвенной адресации с нечетными номерами. Дополнительно, в качестве регистра общего назначения можно использовать регистр R7, но эффективно он работает лишь с 4-мя методами. Здесь каждый метод имеет особое название и собственную мнемонику. Рассмотрим небольшой набор команд, необходимый для пояснения работы методов адресации. Здесь S - источник ; D – приемник. Таблица 7.1 Примеры команд
Как видно из табл. 7.1, команды могут оперировать как словами, так и байтами, что находит отражение в мнемонике и в крайнем левом бите кода операции. На рис.7.6 показаны последовательности операций выполнения команды с каждым из четырех методов прямой адресации. При регистровом методе адресации любой из восьми регистров общего назначения может быть использован как накопитель. Следовательно, операнд будет находиться в выбранном регистре. Так как РОНы аппаратно реализованы в БИС МП, они обладают более высоким быстродействием, чем любая память, работающая под управлением процессора. Это преимущество особенно проявляется при операциях с переменными, к которым необходимо обращаться.
Прямая регистровая адресация (№0). Правило: содержимое регистра, указанного в команде, используется как операнд. Байтовые команды всегда оперируют содержимым младшего байта регистра. При пересылке байта в регистр происходит расширение знака, при котором старший бит пересылаемого байта восемь раз копируется в старшем байте регистра-приемника. Примеры регистровой адресации:
Прямая автоинкрементная адресация (№2) Правило: содержимое регистра, указанного в команде, используется как адрес операнда. Операнд извлекается, обрабатывается и возвращается по старому адресу. После извлечения операнда содержимое регистра увеличивается на 2 для словных команд и на 1 для байтных команд. Но если байтовая команда работает с R6 или с R7, то их содержимое всегда увеличивается на 2. Автоинкрементный метод адресации используется при автоматическом обращении с заданным шагом к последовательным элементам таблицы операндов. Содержимое выбранного регистра автоматически увеличивается для возможности обращения в дальнейшем к последующей ячейке. При байтовых операциях увеличение происходит на единицу, при операциях с полными словами – на 2, а содержимое R6, R7 всегда увеличивается на 2. Автоинкрементный метод адресации особенно удобен при операциях с массивами и стеками. С помощью этого метода можно выбрать элемент таблицы, а затем увеличить указатель для обращения к следующему операнду в таблице. Хотя этот метод наиболее удобен при работе с таблицами, он может быть использован как общий метод для различных целей. Примеры автоинкрементной адресации:
Прямая автодекрементная адресация (№4) Правило: содержимое регистра, указанного в команде, вначале уменьшается на 2 для словных команд и на 1 для байтных команд и затем используется как адрес операнда. Операнд извлекается, обрабатывается и возвращается по старому адресу. Но если байтовая (байтная) команда работает с R6 или с R7, то их содержимое всегда уменьшается на 2. Автодекрементный метод адресации также используется для обработки табулированных данных. Однако, в отличие от автоинкрементного метода, адресация к ячейкам массива идет в противоположном направлении. При этом методе адресации содержимое выбранного РОН уменьшается (для байтовых команд на единицу, для команд с полными словами на 2), а затем используется как исполнительный адрес. Сочетание автоинкрементного и автодекрементного методов адресации может быть эффективно использовано для обработки стека. Примеры автодекрементной адресации:
Прямая индексная адресация (№6) Правило: содержимое регистра, указанного в команде, вначале складывается с индексным словом, которое, как правило, записывается в ячейке памяти, непосредственно следующей за командным словом, и полученная сумма используется как адрес операнда (исполнительный адрес). Индексный метод адресации, при котором исполнительный адрес определяется как сумма содержимого выбранного РОН с индексным словом, позволяет осуществлять произвольный доступ к элементам структуры данных. При индексном методе адресации содержимое выбранного регистра может быть использовано в качестве базы для вычисления серии адресов. Примеры индексной адресации:
Адрес операнда был вычислен прибавлением к содержимому R1 кода 200, в результате чего команда COMB произвела свое действие над старшим байтом ячейки с адресом 20176.
Косвенные методы адресации Четыре основных метода могут быть использованы с косвенной адресацией. Если в регистровом методе операндом является содержимое выбранного регистра, в косвенно-регистровом методе содержимое выбранного регистра является адресом операнда. В трех других косвенных методах содержимое регистра позволяет выбрать адрес операнда, а не сам операнд. Эти методы используются, когда таблица состоит из адресов, а не из операндов. На рис. 7.7 показаны последовательности операции выполнения команды с каждым из четырех методов косвенной адресации.
Косвенно - регистровая адресация (№1) Правило: содержимое регистра, указанного в команде, используется как адрес операнда. Пример косвенно-регистрового метода адресации:
Косвенно - автоинкрементная адресация (№3) Правило: содержимое регистра, указанного в команде, используется как адрес адреса операнда. Операнд извлекается, обрабатывается и возвращается по старому адресу. После извлечения операнда содержимое регистра всегда увеличивается на 2. Исходное содержимое регистра обязательно должно быть четным. Пример косвенно-автоинкрементного метода адресации:
Косвенно - автодекрементная адресация (№5) Правило: содержимое регистра, указанного в команде, вначале всегда уменьшается на 2 и затем используется как адрес адреса операнда. Операнд извлекается, обрабатывается и возвращается по старому адресу. Исходное содержимое регистра обязательно должно быть четным. Пример косвенно-автодекрементной адресации:
Косвенно - индексная адресация (№7) Правило: содержимое регистра, указанного в команде, вначале складывается с индексным словом, которое, как правило, записывается в ячейке памяти, непосредственно следующей за командным словом, и полученная сумма используется как адрес адреса операнда. Пример косвенно-индексной адресации
Методы адресации, использующие в качестве РОН R7 R7 можно использовать в любом методе адресации из рассмотренных 8, но эффективно это только в 4 из них. Непосредственный метод адресации (№ 2) Частный случай прямой автоинкрементной адресации с R7, когда операнд находится непосредственно в команде, а именно в ячейке памяти, следующей за командным словом. Пример: 100) INC (R7)+ = INC #0.
Абсолютный метод адресации (№ 3) Частный случай косвенно – автоинкрементной адресации с R7, когда в самой команде содержится адрес операнда. Пример: 100) CLR @ (R7)+ = CLR @ #700 до после 100) 005037 005037 102) 700 700 700) 16 0 R7) 100 104 В ячейке, следующей за командным словом, находится адрес операнда. Относительный метод адресации (№ 6) Частный случай прямой индексной адресации с R7, когда в мнемонике команды сразу указывается исполнительный адрес. Пример: 100) COM 600(R7) = COM 704 до после ( разновидность индексного метода ) 100) 005167 005167 102) 600 600 R7) 100 104 704) 120603 057174 206) COM 1000 до после 206) 005167 005167 210) 566 566 ( 566 + 212 = 1000 ) R7) 206 212 ( 206 + 4 = 212 ) 1000) 16 177761 206) COM 100 до после ( 100 - 212 = -112 ) 206) 005167 005167 0 0 0 1 1 2 210) 177666 177666 0.000.000.001.001.010 R7) 206 212 1.111. 111.110 .110.101 100) 16 177761 + 1 1.111.111.110.110.110 1 7 7 6 6 6 Косвенно-относительный метод адресации (№ 7) Частный случай косвенно – индексной адресации с R7, когда в мнемонике команды вслед за знаком «@» указывается исполнительный адрес, например, 2100) COM @600(R7) = COM @2704. Сумма содержимого ячейки, следующей за командным словом (индексное слово), и содержимого R7 после извлечения индексного слова является адресом адреса операнда. |