МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Чувашский государственный университет имени И.Н. Ульянова» Факультет дизайна и компьютерных технологий Кафедра компьютерных технологий МЕТОДИЧЕСКОЕ ПОСОБИЕ ДЛЯ ВЫПОЛНЕНИЯ КОНТРОЛЬНОЙ РАБОТЫ по дисциплине «Основы ЭВМ» Тема: МИКРОПРОЦЕССОР Чебоксары 2011 Составитель: Захаров В.Г. СОДЕРЖАНИЕ ВВЕДЕНИЕ ………………….………….……………………………………3 1. СТРУКТУРА И ФУНКЦИОНИРОВАНИЕ МИКРОПРОЦЕССОРА К1821ВМ85А……………………………………..4 2. БЛОК РЕГИСТРОВ…………………………………………………………….7 3. БЛОК СИНХРОНИЗАЦИИ И УПРАВЛЕНИЯ…………………………..8 4. ФУНКЦИИ ВЫВОДОВ И СИГНАЛОВ МИКРОПРОЦЕССОРА………… 10 5. СИНХРОНИЗАЦИЯ И ПОСЛЕДОВАТЕЛЬНОСТЬ ДЕЙСТВИЙ МИКРОПРОЦЕССОРА……………………………………….13 6. СИСТЕМА ПРЕРЫВАНИЙ…………………………………………………..16 7. ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД……………………………….19 8. СИСТЕМА КОМАНД МИКРОПРОЦЕССОРА…………………………… 20 8.1 Команды пересылки…………………………………………..………….21 8.2 Команды арифметических и логических операций………… .………….22 8.3 Команды управления………………………………………………..……23 8.4 Специальные команды……………………………………………………23 9. ПРИМЕР ВЫПОЛНЕНИЯ ПРОГРАММЫ………………………………26 10. ОРГАНИЗАЦИЯ МИКРОСХЕМ ПАМЯТИ……………………………28 11. ВАРИАНТЫ ЗАДАНИЙ ДЛЯ КОНТРОЛЬНОЙ РАБОТЫ…………..29 СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ……..…………………….31 Приложение 1 ……………………………………………….……………….31 Приложение 2…………………………………………………………………32 Приложение 3…………………………………………………………………33 2 ВВЕДЕНИЕ Компьютер состоит из системного блока, клавиатуры и монитора. Дополнительными устройствами являются мнипулятор (мышь), принтер, сканер, плоттер, звуковая карта с акустическими колонками и др. Системный блок содержит микропроцессор, постоянную память (ПЗУ), оперативную память (ОЗУ), видеокарту, накопитель на жестком диске (винчестер), дисководы (3,5 дюйма, CD-ROM, DVD-ROM), шины управления, шины данных и адресов, блок питания. Во всем мире широко применяются микропроцессоры фирмы Intel и их аналоги. Эта фирма разработала первый МП, затем целый ряд их семейств и в настоящее время по разным оценкам производит 80—90% от общего мирового объема выпуска микропроцессоров. При изучении МП целесообразно ориентироваться на конкретные образцы. В данном случае выбран МП K1821BM85A — аналог микропроцессора Intel 8085А. Это простой для изучения объект, на котором легко проследить основные принципы работы МП. Несмотря на свой многолетний возраст, этот МП до сих пор встречается в каталогах фирм. Естественно, что областью применения подобных микропроцессоров не являются компьютеры, в которых сейчас применяют гораздо более мощные и производительные МП. Простые МП используются в тех системах управления различной аппаратурой, где их возможностей хватает для решения поставленных задач. В методическом пособии рассматриваются: – структурная схема МП во взаимодействии с внешними устройствами; – назначение блоков регистров; – функционирование блока синхронизации и управления; – последовательный ввод/выводов; – система прерываний; – система команд; Приводится пример выполнения программы пересылки информации. 3 1. СТРУКТУРА И ФУНКЦИОНИРОВАНИЕ МИКРОПРОЦЕССОРА К1821ВМ85А В микропроцессор К1821ВМ85А входят [1]: - арифмитическо-логическое устройство (ALU); - система управления и синхронизации; - дешифратор команд и формирователь машинных циклов; - 6 регистров общего назначения B, C, D, E, H, L (8-миразрядные), которые можно объединять в 16-ти разрядные пары; - регистр – аккумулятор АС (основной операционной регистр АЛУ); - флаговый регистр RF (Z – флаг нуля, C – флаг переноса, S – флаг знака, P – флаг четности, AC – флаг дополнительного переноса); - регистр TR для временного хранения данных; - 16-ти разрядный регистр PC (счетчик команд); - 16-ти разрядный регистр SP (указатель стека); - схема приращения и уменьшения адреса на единицу (+1 -1); - программно-недоступные регистры W, Z для временного хранения данных: - регистр команд IR (в него заносится код выполняемой команды); - управление прерываниями; - управление последовательным вводов/выводом; - 8-ми разрядная двунаправленная шина данных (ШД); -16-ми разрядная однонаправленная шина адресов (ША); -буфер БШД шины данных с z-состоянием (может иметь отключенное состояние); - буфер БША шины адресов с z-состоянием. Структура микропроцессора К1821ВМ85А показана на рис. 1. 4 Рис.1. Структура МП К1821ВМ85А 5 Микропроцессор имеет восьмиразрядную шину данных (внутреннюю), через которую его блоки обмениваются информацией. На схеме приняты следующие обозначения [1]: □ AC (Accumulator) — регистр-аккумулятор, выполненный на двухступенчатых триггерах и способный хранить одновременно два слова (один из операндов и результат операции); □ TR (Temporary Register) — регистр временного хранения одного из операндов; □ ALU (Arithmetic-Logic Unit) — арифметико-логическое устройство (АЛУ), выполняющее действия над двумя словами-операндами, подаваемыми на его входы. Аккумулятор служит источником и приемником данных, TR – источником слова данных, хранимым на время выполнения операции. АЛУ функционирует согласно соотношению А:= А * В, где В хранится в TR, второй операнд поступает от аккумулятора, в него же поступает результат операции (звездочкой обозначен обобщенный символ операции); АЛУ непосредственно выполняет лишь операции сложения, вычитания, сдвига, сравнения слов, поразрядные логические операции (конъюнкцию, дизъюнкцию, сложение по модулю 2). Более сложные операции (умножение, деление и др.) выполняются по подпрограммам. В АЛУ имеется схема перевода двоичных чисел в двоично-десятичные (DA, Decimal Adjust); □ RF (Register Flags) – регистр флажков, т. е. битов, указывающих признаки результатов арифметических или логических операций, выполненных в АЛУ. Указываются пять признаков: Z (Zero) — нулевой результат, С (Carry) — перенос, AC (Auxiliary Carry) — вспомогательный перенос, S (Sign) — знак, Р (Parity) — четность веса слова. Признак вспомогательного переноса (переноса между младшей и старшей тетрадами восьмиразрядного слова) нужен при выполнении операций в двоично-десятичном коде. Смысл остальных признаков ясен из их наименований. Признаки служат для управления ходом процесса обработки информации. 6 2. БЛОК РЕГИСТРОВ С внутренней шиной данных через мультиплексор связан блок регистров, часть которых специализирована, другая часть (регистры общего назначения, РОН) программно доступна и может быть использована по усмотрению программиста [1]. Регистры обозначены через W, Z, В, С, D, Е, Н, L, SP и PC. Регистры W и Z предназначены только для временного хранения данных при выборке команды из памяти и недоступны для программиста. Регистры В, С, D, Е, Н, L относятся к регистрам общего назначения, т. к. могут быть использованы по усмотрению программиста. Эти восьмиразрядные регистры могут применяться либо по отдельности, либо в виде пар В-С, D-E, H-L, играющих роль 16-разрядных регистров. Пары регистров именуются по первым регистрам пары как пары В, D, Н. Пара H-L, как правило, используется для размещения в ней адресов при косвенной адресации. В блоке регистров имеются также 16-разрядные регистры SP и PC. Регистр SP (Stack Pointer) — указатель стека. Стек (магазинная память) удобен для запоминания массива слов, т. к. при этом не требуется адресовать каждое слово отдельно. Слова загружаются в стек в определенном порядке, при считывании также заранее известен порядок их следования. В частности, стек удобен при запоминании состояний регистров в момент прерывания программы. Порядок ввода слов в стек и их считывания предопределены его устройством. При организации типа LIFO (Last In — First Out) последнее записанное в стек слово при считывании появляется первым. Стек LIFO по порядку записи-считывания подобен стопке тарелок – для использования снимается верхняя, т. е. последняя положенная, затем вторая и т. д. Интересно отменить, что сам термин "стек" (stack) произошел именно от обозначения такой стопки. Стек имеет дно и верхушку, направление возрастания номеров ячеек в нем может быть различным (обычный и перевернутый стеки). Операции со стеком — PUSH (запись слова) и POP (считывание слова). Аппаратно стек реализуется в ОЗУ, где для него выделяется определенная область. Указатель стека SP содержит адрес последней занятой ячейки. При 7 выполнении операций PUSH и POP значение SP уменьшается или увеличивается. Задавая в SP начальное значение, можно размещать стек в той или иной области ОЗУ, следя при этом за тем, чтобы эта область не использовалась для других целей. При байтовой организации памяти и занесении в стек содержимого регистровой пары старший байт запоминается по адресу SP – 1, а младший — по адресу SP – 2, содержимое SP уменьшается на 2. При выборке содержимое двух верхних ячеек стека помещается в соответствующие регистры, а содержимое SP увеличивается на 2. Основное назначение стека – обслуживание прерываний программы и выполнения подпрограмм. Программный счетчик PC (Program Counter) дает адрес команды и может обращаться в любую из 64К ячеек адреса памяти (АП). При выполнении операции сброса микропроцессора PC принимает нулевое состояние, которое, таким образом, является адресом первой исполняемой команды, иначе говоря, выполнение программы начинается с нулевой ячейки. Длина команды составляет 1–3 байта. Содержимое программного счетчика после выборки очередного байта из памяти автоматически инкрементируется, так что в PC появляется адрес следующей команды, если текущая команда была однобайтовой, или следующего байта текущей команды в противном случае. Второй и третий байты команды поступают в регистры W и Z, которые не адресуются программой и используются только блоком внутреннего управления. Схема INC/DEC (Increment/Decrement) изменяет передаваемые через нее слова на +1 или -1. Регистр команд IR (Instruction Register) принимает из памяти первый байт команды, который после дешифрации порождает сигналы, необходимые для реализации машинных циклов, предписанных кодом операции. 3. БЛОК СИНХРОНИЗАЦИИ И УПРАВЛЕНИЯ Этот блок использует выход дешифратора команд и шифратора машинных циклов для синхронизации циклов, генерации сигналов состояния и управления шиной (внешними устройствами микропроцессорной системы) [1]. 8 При обмене между МП и памятью или ВУ адрес соответствующей ячейки памяти или ВУ от выбранной команды или одной из регистровых пар передается в регистр адреса RA (Register Address) (см. рис. 1). Буфер адреса ВА с тремя состояниями выхода выдает сигналы старших разрядов адреса на линии адресной шины A15–8. Буфер шины адресов/данных BA/D с тремя состояниями выхода передает с разделением во времени на шину AD младший байт адреса или байт данных. Внутренняя восьмиразрядная шина данных передает байты между различными внутренними регистрами или обменивается с другими модулями МПС через мультиплексируемую шину адресов/данных. Назначение блоков управления прерыванием и последовательным вводом/ выводом ясно из их названий. Режимы прерывания и последовательного ввода/вывода подробнее рассмотрены далее. При естественном следовании команд МП, начав работу, выбирает из памяти и выполняет одну команду за другой, пока не дойдет до команды "Останов" (HLT). Выборка и выполнение одной команды образуют командный цикл. Командный цикл состоит из одного или нескольких машинных циклов МЦ. Каждое обращение к памяти или ВУ требует машинного цикла, который связан с передачей байта в МП или из него. В свою очередь маслинный цикл делится на то или иное число тактов Т, число которых зависит от типа машинного цикла. Микропроцессор К1821ВМ85А имеет следующие типы машинных циклов: □ Выборки команды (OF, Opcode Fetch). □ Чтения из памяти (MR, Memory Read). □ Записи в память (MW, Memory Write). □ Чтения из ВУ (IOR, Input-Output Read). □ Записи в ВУ (IOW, Input-Output Write). □ Подтверждения прерывания (INA, Interrupt Acknowledge). □ Освобождения шин (BI, Bus Idle). □ Останов (HALT). 9 В начале каждого машинного цикла генерируются сигналы состояния, идентифицирующие тип цикла и действующие в течение всего цикла. 4. ФУНКЦИИ ВЫВОДОВ И СИГНАЛОВ МИКРОПРОЦЕССОРА В этом разделе представлены функции выводов и сигналов микропроцессора Л1821ВМ85А [1]. □ AD15–8 — выходные линии с тремя состояниями для выдачи старшего байта адреса памяти или полного адреса внешнего устройства (ВУ). Переходят в третье состояние в режимах HOLD, HALT и RESET. □ AD7–0 двунаправленные мультиплексированные линии с тремя состояниями для выдачи младшего байта адреса памяти или полного адреса ВУ в первом такте машинного цикла, после чего используются как шина данных. Как видно из сказанного, при адресации ВУ адресная информация обеих полушин (А15–8 и А7–0) дублируется. □ ALE (Address Latch Enable) — строб разрешения загрузки младшего байта адреса памяти во внешний регистр для его хранения в течение машинного цикла. Появляется в первом такте машинного цикла. Регистр загружается задним фронтом сигнала ALE. □ RD, WR – микропроцессорные сигналы строба чтения и строба записи. Низкий уровень соответствующего сигнала свидетельствует о том, что адресованная ячейка памяти или внешнее устройство должны выполнить операцию чтения или записи. Выводы переходят в третье состояние в режимах HOLD, HALT и RESET. □ READY — входной сигнал, показывающий, что память или ВУ готовы к обмену с МП. Если готовности памяти или ВУ нет, МП входит в состояние ожидания, которое может длиться любое число тактов вплоть до появления единичного уровня сигнала READY (рис.9). 10 □ S1, S0 — сигналы состояния МП, сообщаемые внешней среде. Формируются в начале и сохраняются во время всего машинного цикла. □ IO/M —- сигнал выбора памяти или внешнего устройства. При высоком уровне происходит обращение к ВУ, при низком – к памяти. Совместно с сигналами S1 S0 сигнал IO/M идентифицирует тип машинного цикла. Сигналы состояния и управляющие сигналы RD, WR WR и I NTA для различных машинных циклов имеют значения, представленные в табл. 1. Таблица 1 Тип МЦ Сигналы состояния IO/M S1 Сигналы управления S00 RD WR INTA JF 0 1 1 0 1 1 MR 0 1 0 0 1 1 MW 0 0 1 1 0 1 IOR 1 1 0 0 1 1 IOW 1 0 1 1 0 1 INA 1 1 1 1 1` 0 BI TC X X 1 1 1 HALT TC 0 0 TC T 1 C Примечание: ТС – третье состояние. □ х1, х2 – эти выводы присоединяются к кварцевому резонатору или другим частотно-задающим цепям для обеспечения работы внутреннего генератора синхроимпульсов МП. Частота на выводах х1, х2 в 2 раза выше рабочей частоты. □ RESIN ( RESET IN )– вход сигнала сброса МП в начальное состояние. Сигнал может поступить в любое время по команде оператора. Автоматически формируется при включении питания. Под его воздействием сбрасываются регистры PC и IR, триггеры разрешения прерывания, подтверждения захвата и др. □ CLK (Clock) — выход синхроимпульсов для микропроцессорной системы. Частота этих импульсов в два раза ниже частоты на выводах x1 и х2. 11 □ RESET — выходной сигнал сброса для внешних модулей системы, привязанный к тактовым импульсам CLK, т. е. отличающийся от сигнала RESIN по фазе. □ INTR (Interrupt Request) — вход запроса векторного прерывания, вызы- вающий генерацию строба INTA , если прерывание разрешено программой. Адрес подпрограммы, вызываемой этим входом, выдается внешним устройством. При сбросе прием сигнала запрещается (прерывания запрещены). □ INTA (Interrupt Acknowledge) — микропроцессорный сигнал INTA выход строба подтверждения векторного прерывания после завершения текущего командного цикла. Используется для чтения вектора прерывания. □ RST 5,5. RST 6,5. RST 7,5 (Restart) — входы запросов радиального прерывания типа RSTn (n = 5,5; 6,5; 7,5). Начальные адреса подпрограмм обслуживания равны 8n. Приоритеты фиксированы, высший приоритет у входа RST 7,5. Приоритеты всей группы запросов выше приоритета запроса INTR. Запросы маскируемые, причем независимо друг от друга. □ TRAP – вход запроса немаскируемого прерывания, имеющий максимальный приоритет. □ SID, SOD (Serial Input Data, Serial Output Data) – вход и выход последовательной передачи данных. По команде RIM входной бит загружается в старший разряд аккумулятора, по команде SIM выводится из этого разряда. □ HOLD — сигнал запроса захвата шин. Формируется внешним устройством. □ HLDA (Hold Acknowledge) – сигнал подтверждения захвата. Является ответом на сигнал HOLD, формируемым в конце текущего машинного цикла. Свидетельствует об отключении МП от системных шин. При этом шины и линии управляющих сигналов RD , WR , IO/M и ALE переводятся в третье состояние. Выводы x1 и х2, предназначенные для создания совместно с внутренними элементами МП генератора тактовых импульсов, могут быть использованы различными способами. Кварц может быть подключен непосредственно к выводам x1 и х2 как единственный частотно-задающий элемент. Если частота генератора 12 составляет 4 МГц рекомендованной или емкостью более, 20 могут пФ для понадобиться надежного конденсаторы запуска с генератора. Параллельный LC-контур также может быть подключен непосредственно к выводам x1 и х2. При невысоких требованиях к стабильности частоты можно использовать частотно-задающую RC-цепочку. Возможна синхронизация от внешнего генератора ГТИ. При этом рекомендуется включать внешние логические элементы с открытым коллектором, причем при частоте генерации более 6 МГц включаются два логических элемента. Параметры R = 10 кОм, С = 20 пФ соответствуют частоте генерации 3 МГц. Для образования сигналов синхронизации CLK выход генератора подается на вход счетного триггера. Триггер формирует две последовательности противофазных импульсов Ф1 и Ф2 для тактирования внутренних схем МП. Сигнал синхронизации системы CLK синфазен импульсам Ф2. Сигнал ALE формируется как один импульс последовательности Ф1, выделяемый из нее в первом такте (Т1) каждого машинного цикла. Буфер выдачи сигнала ALE во внешние цепи имеет вход разрешения EN. Частота синхросигналов МП в два раза ниже частоты генератора. 5. СИНХРОНИЗАЦИЯ И ПОСЛЕДОВАТЕЛЬНОСТЬ ДЕЙСТВИЙ МИКРОПРОЦЕССОРА Командный цикл КЦ (табл. 2) начинается с выборки команды (Opcode Fetch, OF). Первый машинный цикл Ml всегда OF, в нем МП получает первый байт команды. После этого могут быть еще один или два машинных цикла типа MR (Memory Read), поскольку команда может быть однобайтной, двухбайтной или трехбайтной [1]. Таблица 2 Командный цикл (КЦ) М1 Т1 Т2 Т3 М2 Т4 Т1 Т2 М3 Т3 Т1 Т2 Т3 13 Если команда трехбайтная, то она хранится в трех регистрах памяти. Первый байт содержит код операции КОП, сведения о способе адресации, а если команда однобайтная, то и адрес операнда. Наличие адреса возможно для операций типа "регистр—регистр" с короткими адресами. Для адресации 8 регистров общего назначения достаточны трехразрядные адреса, а для адресации регистровых пар даже двухразрядные. Второй байт содержит младший полуадрес операнда, если команда трехбайтная, или непосредственный операнд либо адрес ВУ, если команда двухбайтная. Третий байт содержит старший полуадрес операнда или байт. непосредственных данных при загрузке пары регистров. Адреса регистров и регистровых пар даны в табл. 3. Таблица 3 Регистры Пары регистров B C D E H L A B D H SP 000 001 010 011 100 101 111 00 01 10 11 После выборки и декодирования команды могут понадобиться дополнительные машинные циклы для ее выполнения. Всего в командном цикле может быть от одного до пяти машинных циклов. Машинный цикл состоит из тактов, в которых выполняются типовые действия, рассмотренные далее. Число тактов в различных машинных циклах от 3 до 6. Большинство машинных циклов содержат три такта. В командном цикле может содержаться от 4 до 18 тактов: Сигналы, реализующие тот или иной МЦ, генерируются блоком управления МП на основании информации, содержащейся в первом байте команды. Проиллюстрируем сказанное примером выполнения команды STA b3 b2 (Store Accumulator Direct), передающей содержимое аккумулятора в ячейку памяти при прямой адресации, т. е. указании адреса ячейки в самой команде. Команда трехбайтная, для ее получения МП требуются три машинных цикла, в первом из которых байт b1 передается в регистр команд IR, в последующих байты b2 и b3 14 передаются в регистры временного хранения W и Z. После получения всей команды МП выполняет ее, передавая байт из аккумулятора в ячейку памяти, адрес которой поступил в МП. Таким образом, цикл команды составится из четырех машинных циклов в следующем порядке OF–MR–MR–MW. Каждый машинный цикл делится на такты (состояния) – интервалы между одноименными фронтами тактовых импульсов. Типовые действия, выполняемые в тактах машинного цикла: Т1 Адрес памяти или ВУ выставляется на AD7–0 и A15–8, генерируется сигнал ALE для фиксации битов AD7–0. На линиях IO/М, S1 и S0 выставляется информация, определяющая тип цикла. Проверяется флаг HALT. Т2 Проверяются входы Ready и Hold. Программный счетчик инкрементируется, если данный машинный цикл есть часть выборки команды. Во всех машинных циклах кроме цикла BI (освобождения шин) один из управляющих стробов RD, WR или I NTA переходит из единичного состояния в активное нулевое. ТW Появляется при неготовности памяти или ВУ к обмену (на линии READY низкий уровень напряжения). Состояния линий адресов, данных и управления остаются теми же, что и в конце такта. Сигнал READY проверяется в каждом такте ожидания. Т3 Байт команды или данных передается в микропроцессор или из него. Уровень активного управляющего строба изменяется с нулевого на единичный. Т4 Декодируется содержимое регистра команд. Т5, Т6 Используются при необходимости для завершения некоторых команд. Системные шины не используются. Машинный цикл всегда содержит такты Т1–ТЗ, иногда имеет большее, число тактов, но для чтения или записи требуется только три такта. Временные диаграммы цикла чтения с тактом ожидания Tw приведены на рис. 2. 15 Рис.2. Диаграммы цикла «Чтение» 6. СИСТЕМА ПРЕРЫВАНИЙ При работе микропроцессорной системы в ней или вне ее могут произойти события, требующие немедленной реакции. Такая реакция обеспечивается прерыванием программы и переходом к обслуживанию источников запросов на прерывание. Внутри процессора запросы возникают при сбоях в работе, переполнении разрядной сетки, попытке деления на нуль и т. д [1]. Ситуации подобного типа, связанные с ошибками в работе процессора, называются исключениями. Штатные ситуации, в которых запросы формируются внешними сигналами, называют аппаратными прерываниями. Если же запрос формируется командами программы, то говорят о программных прерываниях. Аппаратные прерывания возникают, в частности, при требованиях обслуживания от внешних устройств. Извне могут поступать также сигналы аварийных ситуаций в управляемых объектах, неисправности источников питания и др. Прерывания по запросам от медленно действующих внешних устройств увеличивают производительность системы, позволяя ВУ занимать время процессора только при их готовности к обмену. Когда ВУ нуждается в обслуживании, оно устанавливает триггер запроса прерывания, и сигнал запроса сохраняется, пока не будет воспринят и обработан процессором. В ответ на принятый запрос прерывания в микропроцессорной системе завершается выполнение текущей 16 команды, запоминается состояние МП, выполняется подпрограмма обслуживания прерывания, восстанавливается состояние МП и затем возвращается управление очередной команде основной программы. Микропроцессор К1821ВМ85А имеет пять входов прерывания и один выход управления им ( INTA ). Прерывание должно ввести в действие команду CALL, согласно которой состояние программного счетчика PC передается в стек, а в PC загружается адрес подпрограммы, подлежащей выполнению. Инициатива ввода команды CALL принадлежит аппаратным средствам микропроцессорной системы. Если прерывания разрешены, то они осуществляются процессором в конце выполнения текущей команды. Входы МП, связанные с прерываниями, называются TRAP; RST 5,5; RST 6,5; RST 7,5; INTR. При организации прерываний решаются задачи маскирования запросов и определяются их уровни приоритета при конфликтах из-за одновременного поступления нескольких запросов. Маскирование состоит в запрещении действия соответствующего входа. Входы запросов прерывания могут быть маскируемыми или не маскируемыми, т. е. принимаемыми всегда. Вход TRAP является немаскируемым и имеет наивысший приоритет. Он не может быть запрещен командами программы. К этому входу подключают сигналы, оповещающие о наиболее важных событиях в микропроцессорной системе, появление которых требует безусловной реакции (например, сигнал, оповещающий об аварии питания, требующей принятия немедленных мер). Начальный адрес подпрограммы обслуживания прерывания TRAP размещен в фиксированной ячейке памяти с адресом 24Н. Таким образом, появление запроса прерывания по входу TRAP независимо ни от чего вызовет соответствующее прерывание после завершения выполнения текущей команды. Обозначение входов RSTn (n = 5,5; 6,5; 7,5) происходит от слова Restart. Прерывания по этим входам маскируемые, т. е. могут быть разрешены или запрещены командами EI (Enable Interrupt) и DI (Disable Interrupt), действующими на все три входа одновременно. Начальный сброс микропроцессора запрещает 17 обслуживание этих запросов, для их последующего разрешения следует подать команду EI. Имеется также возможность раздельного маскирования запросов RSTn с помощью специальной команды SIM (Set Interrupt Mask), по которой маски устанавливаются в соответствии со значениями битов А0–А2 содержимого аккумулятора. Загрузив предварительно 1 в соответствующий бит, можно запретить (замаскировать) тот или иной вход. Приоритеты входов RSTn фиксированы, они снижаются в порядке RST 7,5; RST 6,5; RST 5,5. Начальные адреса подпрограмм обслуживания прерываний типа RSTn известны. Команды RSTn заканчиваются загрузкой в программный счетчик числа 8n. Цифры 5,5; 6,5 и 7,5 определяют начальные адреса 002СН, 0034Н и 003СН. Иными словами, для входов этого типа векторы прерывания определяются автоматически и их не требуется передавать в МП из внешних устройств. Напомним, что вектором прерываний называют информацию, необходимую для перехода к соответствующей подпрограмме обслуживания, в простейшем случае это просто начальный адрес прерывающей подпрограммы. Вход RST 7,5 является динамическим, реагирует на положительный фронт сигнала, а входы RST 6,5 и RST 5,5 — статические, реагируют на уровень сигнала и, следовательно, автоматически снимаются при исчезновении запросов по этим входам. Запрос RST 7,5, принимаемый триггером с динамическим входом, после снятия сигнала запроса не снимается и сохраняется, пока не будет обработано прерывание или до появления команд SIM или RESET. При поступлении запроса по входу INTR (Interrupt) вектор прерывания должен быть передан в МП извне. К этому входу, в частности, подключают контроллер прерываний – блок, который воспринимает несколько запросов от внешних устройств, решает задачу приоритетности и маскирований и вырабатывает для МП единственный сигнал INTR, с пересылкой в МП соответствующего вектора прерывания. В данном случае также выполняется команда RSTn, но n зависит от источника прерываний. Аппаратный ввод байта в ответ на запрос INTR при разрешенных прерываниях ведет к ответу микропроцессора сигналом INTA , во 18 время действия которого на шине AD появляется вводимый байт. Сигнал INTA при этом поступает на входы разрешения выхода буферных усилителей OE . Вo время обработки прерываний, пока не выполнится команда EI, запрещаются другие прерывания кроме TRAP. Немаскируемое же прерывание TRAP блокирует другие прерывания, но сохраняет состояние разрешения поступившего уже сигнала прерывания. 7. ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД Микропроцессор имеет два вывода для передач последовательных данных: SOD и SID (Serial Output Data и Serial Input Data) [1]. Вывод SOD управляется командой SIM, а сигнал с вывода SID считывается командой RIM. Эти команды упоминались ранее как команды установки и сброса масок для входов прерываний RSTn, они же используются и для управления последовательным вводом/выводом. До выполнения команды SIM в аккумуляторе формируется слово, биты которого интерпретируются следующим образом (табл.3): Таблица 3 7 SOD 6 SOE 5 X 4 R7,5 3 MSE 2 М 7,5 1 М 6,5 0 М 5,5 где SOD — последовательный выход данных, SOE (Serial Input Enable) – сигнал, единичное значение которого передает последовательные данные SOD на соответствующий выход микропроцессора, бит 5 не используется, R7,5 сбрасывает вход RST 7,5 (напомним, что сигнал по этому входу принимается триггером с динамическим управлением), MSE (Mask Set Enable) – сигнал, активное состояние которого разрешает действие битов 2—0, биты М 7,5–М 5,5 маскируют запросы RST7,5–RST5,5, если соответствующий бит имеет единичное значение. Например, установка SOD = 1, разрешение RST6,5, сброс триггера RST7,5 и маскирование RST7,5 и RST5,5 будут выполнены двумя командами по программе: 19 MVI А, b2 ; установка битов аккумулятора ; изменение масок и бита SOD SIM Команда MVI А, b2 передает в аккумулятор байт b2, т. е. выполняет действие (А) ← (b2) пересылки в аккумулятор данных при непосредственной адресации. Байт b2 в данном случае имеет вид: 1 1 X 1 1 1 0 1 . Для ввода последовательных данных через контакт SID используется команда RIM, обеспечивающая ввод последовательных данных и чтение масок прерывания. После выполнения команды RIM в аккумуляторе фиксируется слово со следующим значением битов (табл.4): Таблица 4 7 6 5 4 3 2 1 0 SID I 7,5 I 6,5 I 5,5 IE М 7,5 М 6,5 М 5,5 где SID— последовательные данные ввода через контакт SID; I 7,5; I 6,5; I 5,5 – логические уровни на выводах RST7.5; RST6.5 и RST5.5 соответственно, IE – сигнал разрешения прерывания, М 7,5...М 5,5 — логические уровни масок. Биты I 7,5...1 5,5 индицируют уровни во время команды RIM. Бит IE показывает, какая из команд EI и DI выполнялась последней, на него влияет также наличие в данное время режима прерывания, поскольку он сопровождается сбросом триггера IE, запрещая другие прерывания. Биты М 7,5...М 5,5 индицируют текущие состояния масок прерывания. 8. СИСТЕМА КОМАНД МИКРОПРОЦЕССОРА Команды МП приведены в табл.5 – 8 (60 команд). В первой графе таблицы даны мнемокоды команд с обозначениями регистров через г, пар регистров через г р, ячеек памяти через М, третьего и второго байтов команды через b3 b2, адресов ВУ через port [1]. 20 Ссылки на ячейки памяти М подразумевают косвенную адресацию — адреса этих ячеек берутся из регистровой пары Н (регистров Н и L) и, следовательно, не нуждаются в указании в самой команде. При описании команд, кроме приведенных в табл. 5 – 8, обычно указываются также машинные коды команд, длины команд в байтах, число тактов, необходимых для выполнения команды, и число составляющих команду машинных циклов. Здесь эти данные не приводятся. 8.1 Команды пересылки Команды пересылки приведены в табл.5. Таблица 5 МНЕМО ОПЕРАЦИЯ КОД КОМАНДЫ ПЕРЕСЫЛКИ 1. MOV г1, г2 Пересылка из регистра г2 в регистр r1 2. MOV М, г Пересылка из регистра в память 3. MOV r, М Пересылка из памяти в регистр 4. MVI г, b2 Пересылка непосредственных данных в регистр Пересылка непосредственных данных в память 5. MVI М, b2 6. LXI rp b3b2 Загрузка непосредственных данных в пару регистров 7. LDA b3b2 Прямая загрузка аккумулятора 8. STA b3b2 Прямая запись аккумулятора в память 9. LHLD b3b2 Прямая загрузка пары регистров Н 10. SHLD b3b2 Прямая запись пары регистров Н в память 11. LDAX rp Косвенная загрузка аккумулятора посредством пары регистров В или D 12. STAX rp Косвенная запись аккумулятора в память посредством пары регистров В или D 13. XCHG Обмен между парами регистров Н и D 21 8.2. Команды арифметических и логических операций Команды арифметических и логических операций приведены в табл.6 . Таблица 6 КОМАНДЫ АРИФМЕТИЧЕСКИХ И ЛОГИЧЕСКИХ ОПЕРАЦИЙ 14. ADD г Сложение регистра и аккумулятора 15. ADD М 16. AD1 b2 Сложение памяти и аккумулятора Сложение непосредственных данных и аккумулятора 17. ADC г Сложение регистра и аккумулятора с переносом 18. ADC M Сложение памяти и аккумулятора с переносом 19. ACI b2 Сложение непосредственных данных и аккумулятора с переносом 20. SUB г Вычитание регистра из аккумулятора 21. SUB М Вычитание памяти из аккумулятора 22. SUI b2 23. SBB г Вычитание непосредственных данных из аккумулятора Вычитание регистра из аккумулятора с заемом 24. SBB М Вычитание памяти из аккумулятора с заемом 25. SBI b2 Вычитание непосредственных данных из аккумулятора с заемом 26. INR г Инкремент регистра 27. INR М Инкремент памяти 28. DCR г Декремент регистра 29. DCR М Декремент памяти 30. INX гр Инкремент пары регистров 31. DCX rp Декремент пары регистров 32. DAD rp Сложение регистровой пары Н с регистровой парой 33. DAA Преобразование аккумулятора в двоично-десятичный код 34. ANA г Логическое И регистра и аккумулятора 35. ANA М 36. ANI b2 37. XR A г 38.XR AM 39. XRI b2 40. ORА г 41. ORА М 42. ORI b2 43. СМР г 44. СМР М 45. CPI b2 46. СМА 47. STC 48. CMC 49. RLC Логическое И памяти и аккумулятора Логическое И непосредственных данных и аккумулятора Исключающее ИЛИ регистра и аккумулятора Исключающее ИЛИ памяти и аккумулятора Исключающее ИЛИ непосредственных данных и аккумулятора Логическое ИЛИ регистра и аккумулятора Логическое ИЛИ памяти и аккумулятора Логическое ИЛИ непосредственных данных и аккумулятора Сравнение регистра и аккумулятора Сравнение памяти и аккумулятора Сравнение непосредственных данных и аккумулятора Инвертирование аккумулятора Установка флажка переноса Инвертирование флажка переноса Циклический сдвиг аккумулятора влево 22 Продолжение таблицы 6 Циклический сдвиг аккумулятора вправо Циклический сдвиг аккумулятора влево через разряд переноса Циклический сдвиг аккумулятора вправо через разряд переноса 50. RRC 51. RAL 52. RAR 8.3. Команды управления Команды управления приведены в табл.7. Таблица 7 53. JMP b3b2 54. Jусл b1b2 55. CALL b3b2 56. Сусл b3b2 57. RET 58. Rуcл 59.RST n 60. SPHL КОМАНДЫ УПРАВЛЕНИЯ Безусловный переход Условный переход Безусловный вызов подпрограммы Условный вызов подпрограммы Возврат Возврат при условии Повторный запуск Пересылка пары регистров Н в SP 8.4. Специальные команды Специальные команды приведены в табл.8. Таблица 8 СПЕЦИАЛЬНЫЕ КОМАНДЫ Пересылка пары регистров в стек Пересылка аккумулятора и регистра флажков в стек Загрузка регистровой пары из стека Загрузка аккумулятора и регистра флажков из стека Обмен между регистровой парой Н и стеком Пересылка регистровой пары Н в PC Ввод Вывод Разрешение прерывания Запрещение прерывания Останов Нет операции Чтение маски прерывания Запись маски прерывания 61. PUSH rp 62. PUSH PSW 63. POP rp 64. POP PSW 65. XTHL 66. PCHL 67. IN port 68. OUT port 69. EI 70. DI 71. HLT 72. NOP 73. RIM 74. SIM Представленные в таблицах команды с буквенными обозначениями источников и приемников данных являются обобщенными. Подставляя вместо буквенных символов определенные адреса, получим конкретные варианты команды (например, из обобщенной формы "пересылка из регистра в регистр" конкретный 23 вариант "пересылка из регистра В в регистр D"). В некоторых командах управления содержатся индексы "усл". В этих случаях переход от обобщенной команды к конкретному варианту осуществляется введением в двоичный машинный код команды соответствующих условию значений трех специально выделенных разрядов. Например, команда условного перехода из обобщенной формы Jycл b3b2 введением в указанные разряды комбинации 000 переводится в вариант JNZ b3b2, определяющий переход к команде с адресом b3 b2, если признак результата говорит о том, что результат не равен нулю. Введение в те же разряды кода 001 определит команду JZ b3b2 условного перехода при нулевом результате и т. д. Признаки результатов операции формируются в регистре флажков RF, формат которого представлен в табл.9: Таблица 9 7 S 6 Z 5 0 4 АС 3 0 2 Р 1 1 0 С причем S = 0 означает "плюс", S = 1 – "минус", Z = 0– неравенство нулю, Z = 1 – равенство нулю, С или АС = 1 – наличие переноса, С или АС = 0 – его отсутствие, Р = 0 – нечетность, Р = 1 – четность. Разряды 5, 3, 1 содержат константы и для признаков не используются. В коде команды рестарта RST три разряда, отмеченные буквами nnn, формируются системой прерываний или указываются программистом. При выполнении команды текущее содержимое программного счетчика PC загружается в стек, а в PC формируется код с нулевым старшим байтом и младшим байтом вида 00nnn000. Операция сравнения производится вычитанием операндов с установкой признака результата (Z = 1 – равные операнды, S = 0 – содержимое аккумулятора больше второго операнда, S = 1 – меньше). Признаки результатов фиксируются в регистре флажков при выполнении арифметических и логических операций, причем в виде полного либо частичного набора (например, без флага переноса либо только для флага переноса). При 24 выполнении команд пересылки, команд управления и специальных команд флажки в регистре RF не устанавливаются. Команды RLC, RRC, RAL и RAR реализуют циклические (кольцевые) сдвиги содержимого аккумулятора на один разряд в ту или иную сторону без включения (RLC и RRC) или с включением (RAL и RAR) в кольцо разряда С регистра флажков (рис.3) Рис.3. Типы сдвигов содержимого аккумулятора Два возможных значения чисел тактов и циклов приведены для команд, выполнение которых зависит от состояния признаков – флажков. В табл. 10 на примере микропроцессоров фирмы Intel приведены сравнительные параметры двух микропроцессоров, "возраст" одного (8085) составит около 25 лет, а второй (Pentium 4) выпущен сравнительно недавно. Для микропроцессора семейства 8085 указан год выпуска базовой модели, параметры же указаны для модифицированного варианта 8085АН согласно каталогу продукции фирмы 2002 года. Параметр Год выпуска Разрядность Адресное пространство Частота тактовых импульсов, МГц Среднее число тактов на операцию Число выводов корпуса Число транзисторов, млн 8085АН 1977 8 64К 6 -10 40 0,0062 Таблица 10 Pentium 4 2000 32 64Г 1500 0,5 420 42 Обращаясь к перспективным планам ведущих фирм по выпуску новых микропроцессоров, можно считать приведенные для процессора Pentium 4 цифры 25 достаточно скромными. В частности, фирма Intel заявляет: "На наших заводах уже возможно производство кристаллов с 1 млрд. транзисторов". По мере развития микропроцессорной техники происходит естественный процесс специализации МП соответственно областям их применения. Наряду с микропроцессорами общего назначения стал интенсивно развиваться класс проблемно ориентированных МП – процессоры цифровой обработки сигналов, которые находят применение в современных системах связи, обработки графических изображений, медицине и многих других областях. Особое место среди микропроцессоров занимают микроконтроллеры, рассматриваемые в главе 7 [1]. Микроконтроллеры также специализируются, так, например, среди них выделился класс коммуникационных контроллеров [2, 3, 4]. 9. ПРИМЕР ВЫПОЛНЕНИЯ ПРОГРАММЫ Управление модулями реализуется в микропроцессорных системах (МПС) посредством ее шин. Процессор расшифровывает команду и задает на шинах такие последовательности потенциалов, которые заставляют управляемые им блоки выполнять требуемые действия [1]. Для иллюстрации рассмотрим выполнение короткого фрагмента программы передачи байта из одной ячейки памяти в другую. Пусть численное значение байта будет 10H, а его передача производится из ячейки 0100H в ячейку 0101H. Пусть также фрагмент программы размещается в памяти, начиная с ячейки 2000H. Для выполнения фрагмента сначала нужно переслать байт в аккумулятор, а затем из аккумулятора в память. Так как обращение к памяти подразумевает косвенную адресацию, вначале требуется загрузка пары регистров Н адресом ячейки, к которой идет обращение. С учетом сказанного фрагмент программы в мнемокодах (на ассемблере МП) примет вид, показанный в левом столбце Мнемокод Ячейка LXН, 0100 MOV А, М 2000 2003 Код 21 00 01 7Е 26 INX Н MOV М, А 2004 2005 23 77 Команда загрузки непосредственных данных в пару регистров LXI rpb3b2 имеет код 00ПР0001, где ПР – адрес пары регистров. Пара регистров Н имеет адрес ПР = 10. Подставив это значение в код команды, получаем код 21. В правом столбце записана команда в кодах. Она имеет вид: 21 00 01, т. к. после кода операции из памяти извлекаются сначала младший (00), а затем старший (01) байты. Команда трехбайтная и занимает 2000—2002 ячейки памяти. Однобайтная команда MOV А, М пересылки из памяти в аккумулятор является вариантом команды MOV г, М с кодом 01ППП110, где ППП — адрес аккумулятора. Подставив в этот код адрес регистра А = 111, получаем код команды 7Е. Команда INX Н прибавляет единицу к содержимому регистровой пары и является вариантом, код которого получается из кода 00ПР0011 при подстановке адреса пары регистров 10, что дает код 23. Последняя команда фрагмента программы (пересылка из аккумулятора в память) MOV М, А, имеющая код 77, передает в ячейку памяти, адрес который находится в регистровой паре Н, содержимое аккумулятора. Эта команда завершает выполнение фрагмента программы. Последовательность четырех рассмотренных команд сгенерирует временные диаграммы, посредством которых программа будет выполнена (рис. 4). Рис. 4.Диаграммы передачи байта из ячейки в ячейку 27 10. ОРГАНИЗАЦИЯ МИКРОСХЕМ ПАМЯТИ Адрес ячейки ОЗУ (оперативного запоминающего устройства памяти) выставляется на шине адресов ША, при этом четыре старших разряда А15-А12 поступают на дешифраторы выбора банка модуля ОЗУ (рис.5). Рис. 5. Адресация банков, модулей и ячеек памяти Мультиплексоры MX при помощи остальных разрядов А11-А0 адресной шиной дешифрируют по строкам и столбцам ячейки модулей ОЗУ с данными. Сигнал выборки микросхемы памяти CS (Cryistal Select) активизирует модули 0-7 ОЗУ при помощи дешифратора модулей. Данные защелкиваются в регистре входных/выходных данных и выставляются на шину данных ШД. 28 Команды WR/ RD (Запись/Чтение) поступают от системы управления на регистр входных/выходных данных, который подключается к шине данных ШД. 11. ВАРИАНТЫ ЗАДАНИЙ КОНТРОЛЬНОЙ РАБОТЫ ПО ДИСЦИПЛИНЕ «ОСНОВЫ ЭВМ» Перечень вариантов задания соответствует порядковому номеру студента в списке группы. Задание 1 Привести структурную схему микропроцессора К1821ВМ85А (рис.1) и дать развернутый ответ на свой вариант задания: 1. Функции регистра-аккумулятора и регистра временного хранения операндов. 2. Функции флагового регистра и регистра команд. 3. Функции арифметическо-логического устройства. 4. Функции счетчика команд и указателя стека. 5. Функции регистров B, C, D, E, H, L. 6. Функции регистра адреса памяти. 7. Функции блока синхронизации и управления. 8. Функции выводов и сигналов микропроцессора. 9. Система прерываний. 10. Последовательный ввод/вывод информации. 11. Система команд пересылки. 12. Система арифметических команд. 13. Система логических команд. 14. Команды управления. 15. Специальные команды. 16. Циклические сдвиги аккумулятора. 17. Организация микросхем памяти. 18. Пример выполнения программы передачи числа из регистра в регистр. 29 Задание 2. Написать программу и объяснить последовательность ее выполнения. Номер задания соответствует порядковому номеру студента в списке группы. Числа и регистры – произвольные. Числа пишутся в шестнадцатиричном коде (прил.1). 1. Пересылка числа из регистра в регистр. 2. Пересылка числа из регистра в память. 3. Пересылка числа из памяти в регистр. 4. Пересылка числа в регистр. 5. Прямая загрузка числа в аккумулятор. 6. Прямая загрузка числа в пару регистров H – L. 7. Сложение числа в регистре с числом в аккумуляторе. 8. Прямая загрузка числа в регистр. 9. Сложение двух чисел, записанных в регистрах B, Е. 10. Вычитание двух чисел, записанных в регистрах B, C 11. Косвенная загрузка числа в аккумулятор из регистра, адрес которого записан в паре регистров B-C. 12. Косвенная загрузка числа в аккумулятор из регистра, адрес которого записан в паре регистров D-E. 13. Ввод в аккумулятор числа из порта 00. 14. Вывод числа из аккумулятора в порт 01. 15. Вычитание числа в аккумуляторе из числа в регистре. 16. Вычитание числа в регистре из числа в аккумуляторе. 17. Логическое «И» числа в регистре с числом в аккумуляторе. 18. Логическое «ИЛИ» числа в регистре с числом в аккумуляторе СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 1. Угрюмов Е.П. Цифровая схемотехника. Учеб.пособие для вузов. – 2-е изд., – СПб.: БХВ-Петербург, 2004. – 800 с. 2. Гилмор Ч. Введение в микропроцессорную технику: Пер. с англ.–Мир, 1984.–334 с. 30 Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем: Учебник для вузов. – СПб.: 3. Питер.2007. – 668 с. Микропроцессорные системы : Учеб. пособие для вузов/ Под общ.ред. Д.В. 4. Пузанкова. –СПб.: Политехника, 2002. 935 с. 5. Гук М.Ю, Аппаратные средства IBM PC: Энциклопедия. СПб.: Питер, 2003. 928 с. 6. Бродин В. Б. Калинин А В. Микроконтроллеры: Справочник. – М.: ЭКОМ, 1999. – 395 с. Файл «Основы-ЭВМ-контр-раб» на сайте кафедры компьютерных технологий. 7. Контрольную работу можно выслать на кафедру по адресу:asoiu23@mail.ru ПРИЛОЖЕНИЕ 1. Десятичные числа (10-е) и их двоичные (2-е) и шестнадцатеричные (16-е) эквиваленты 10-e 2-e 16-e 10-e 0 0000 0 10 1 0001 1 2 0010 3 2-e 16-e 10-e 2-e 16-e 1010 A 20 1 0100 14 11 1011 B 21 1 0101 15 2 12 1100 C 22 1 0110 16 0011 3 13 1101 D 23 1 0111 17 4 0100 4 14 1110 E 24 1 1000 18 5 0101 5 15 1111 F 25 1 1001 19 6 0110 6 16 1 0000 10 26 1 1010 1A 7 0111 7 17 1 0001 11 27 1 1011 1B 8 1000 8 18 1 0010 12 28 1 1100 1C 9 1001 9 19 1 0011 13 29 1 1101 1D ПРИЛОЖЕНИЕ 2. Цоколевка микропрцессора 8085 «Intel» 31 ПРИЛОЖЕНИЕ 3. Титульный лист контрольной работы МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Чувашский государственный университет имени И.Н. Ульянова» Факультет дизайна и компьютерных технологий Кафедра компьютерных технологий КОНТРОЛЬНАЯ РАБОТА по дисциплине «Основы ЭВМ» Тема: МИКРОПРОЦЕССОР Вариант № ….. Выполнил: студент группы ЗДиКТ - 21-11 Гузняев П.В. Проверил: доц. Захаров В. Г. Чебоксары 2011 32