Лабораторная работа №1
Цель работы: Изучить структуру и получить практические навыки работы с программой эмулятора микропроцессорной системы на базе мп КР580ВМ80 (Intel i8080).
- Основные характеристики микропроцессора КР580ВМ80А.
Простейшую 8-разрядную микропроцессорную систему (МПС) можно построить на основе микропроцессорного комплекта (МПК) серии КР580 (табл. 1.1), выполненного по n-МДП и ТТЛШ- технологиям. МПК серии КР580 характеризуется архитектурным единством и обеспечивает автономность и функциональную законченность отдельных интегральных микросхем (ИМС), унификацию их интерфейса, программируемость, логическую и электрическую совместимость. Характеристика МПК серии КР580: – 8-разрядная организация; – фиксированный набор команд; – большой выбор периферийных интегральных схем большой степени интеграции (БИС) различного назначения; – относительно высокое быстродействие; – умеренное потребление мощности. Кристалл МП помещен в 40-контактный корпус с двухрядным расположением выводов с шагом 2,5 мм между ними (рис. 1.1). Допустимый диапазон температур для КР580ВМ80А: от -10 до +79°C; необходимое питание – три источника: — 5 В (ток потребления менее 1 мА), + 5 В (ток потребления менее 70 мА), +12 В (ток потребления менее 50 мА). Для синхронизации МП требуется наличие двухфазного внешнего генератора с амплитудой тактовых импульсов 12 В и частотой следования до 2,5 МГц.
- Архитектура микропроцессора КР580ВМ80А: арифметико-логическое устройство (АЛУ), назначение аккумулятораA, блок регистров общего назначения (РОН), возможности регистровой парыHL;
Арифметико-логическое устройство АЛУ – восьмиразрядная комбинационная схема, выполняющая логические и арифметические операции с 8-разрядными числами в двоичной и десятичной системе счисления, а также операции с двойной точностью (с 16-разрядными числами). АЛУ выполняет следующие операции: арифметические операции – сложение, вычитание; логические операции – логическое умножение, логическое сложение; операции сдвигов – сдвиг содержимого аккумулятора влево или вправо на один разряд; операцию двоично-десятичной коррекции. Схема АЛУ всегда подключена к аккумулятору A и к регистру флагов F. В состав АЛУ входит регистр временного хранения, который используется в тех случаях, когда регистр операнда команды также является регистром результата операции. Также в составе АЛУ находится комбинационная схема десятичного корректора DA, используемого для выполнения операции двоично-десятичной коррекции. Восьмиразрядный аккумулятор А используется в подавляющем большинстве команд логической и арифметической отработки. Обычно он адресуется неявно и служит как источником операнда, так и приемником результата. Благодаря этому в командах МП явно указывается только один операнд. 8-разрядные регистры F и A, вместе с 16-разрядными регистрами HL, SP и PC образуют стандартный регистровый набор микропроцессора с аккумулятором. Этот набор расширен четырьмя 8-разрядными регистрами общего назначения (РОН): B, C, D, E, которые в некоторых командах объединяются в 16-разрядные парные регистры BC и DE. Регистры C и E являются младшими регистрами пары, B и D – старшими. Обращение к парам регистров происходит по первому, старшему регистру пары (B, D, H). Рисунок 1.3 – Набор регистров микропроцессора КР580ВМ80А В командах ссылки на регистр выполняются как явно, когда регистр кодируется трехразрядным полем, так и неявно (с помощью кода операции), когда код операции подразумевает и способ использования регистров по умолчанию. 16-разрядный регистр HL, как правило, служит адресным регистром. При косвенной регистровой адресации он хранит 16-разрядный адрес основной памяти. В этом случае к нему ссылаются с помощью мнемоники М (Memory), например: MOV A, M; содержимое ячейки, адрес которой находиться в паре HL (H — HighByte и L — LowByte) заносится в аккумулятор. В некоторых командах старший и младший байты 16-разрядного регистра HL могут адресоваться независимо и использоваться как отдельные 8-разрядные регистры данных H и L соответственно.
- Назначение регистров специальных функций: регистр указателя стекаSP, регистр программного счетчикаPC, регистр признаков (флагов)F.
РегистрSP(StackPointer) выполняют функцию указателя стека. Стек – специальным образом выделенная область памяти для временного хранения данных – в стеке хранятся слова (двухбайтные данные). Стек оперирует связанными списками данных, а также данными с многоуровневыми вложениями и имеет определенную дисциплину доступа – LIFO (Last—in—first—out – последним вошел – первым вышел), характеризуется глубиной, т.е. количеством информации, сохраняемой в стеке. Содержимое SP указывает на верхний элемент списка – адрес ячейки памяти, из которой информация будет извлекаться в МП при выполнении процедуры чтения стека. Стек называют предекрементным / постинкрементным, если при занесении в стек слова содержимое SP декрементируется, а при извлечении слова – инкрементируется. В МП КР580ВМ80А реализован кольцевой стек – после адреса вершины 0000h устанавливается адрес FFFFh. РегистрPC(ProgrammCounter) выполняет функцию счетчика команд. PC содержит адрес ячейки памяти, из которой выбирается следующая команда. При естественном ходе выборки команд, последовательно размещенных в памяти, содержимое счетчика увеличивается от команды к команде на число, равное количеству ячеек, занимаемых в памяти выполненной командой. Регистр признаков (флагов)F Порядок выполнения команд программы зависит от особенностей (признаков) текущих результатов. Для индикации складывающейся ситуации МП формирует двоичные признаки (флаги), отражающие признаки результатов выполнения команд во флажковом регистре F (Flags). Содержимое аккумулятора и регистра флагов называют словом состояния программы PSW (Program Status Word). Регистр признаков имеет следующий формат (рис. 1.4):
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
M | Z | 0 | АC | 0 | P | 1 | C |
- Назначение устройства управления.
- Организация стека в МП КР580ВМ80А.
- Организация работы с портами в МП КР580ВМ80А.
Лабораторная работа №1
СТРУКТУРА И ОСНОВНЫЕ ПРИНЦИПЫ РАБОТЫ С ПРОГРАММОЙ ЭМУЛЯТОРА МИКРОПРОЦЕСCОРНОЙ СИСТЕМЫ НА БАЗЕ МП КР580ВМ80 (Intel i8080). Цель работы: Изучить структуру и получить практические навыки работы с программой эмулятора микропроцессорной системы на базе мп КР580ВМ80 (Intel i8080).
1.1 Основные характеристики микропроцессора кр580вм80а
Простейшую 8-разрядную микропроцессорную систему (МПС) можно построить на основе микропроцессорного комплекта (МПК) серии КР580 (табл. 1.1), выполненного по n-МДП и ТТЛШ- технологиям. МПК серии КР580 характеризуется архитектурным единством и обеспечивает автономность и функциональную законченность отдельных интегральных микросхем (ИМС), унификацию их интерфейса, программируемость, логическую и электрическую совместимость. Характеристика МПК серии КР580: – 8-разрядная организация; – фиксированный набор команд; – большой выбор периферийных интегральных схем большой степени интеграции (БИС) различного назначения; – относительно высокое быстродействие; – умеренное потребление мощности. Кристалл МП помещен в 40-контактный корпус с двухрядным расположением выводов с шагом 2,5 мм между ними (рис. 1.1). Допустимый диапазон температур для КР580ВМ80А: от -10 до +79°C; необходимое питание – три источника: — 5 В (ток потребления менее 1 мА), + 5 В (ток потребления менее 70 мА), +12 В (ток потребления менее 50 мА). Для синхронизации МП требуется наличие двухфазного внешнего генератора с амплитудой тактовых импульсов 12 В и частотой следования до 2,5 МГц.
1.2 Организация микропроцессора кр580вм80а
Микросхема КР580ВМ80А – функционально законченный однокристальный параллельный 8-разрядный микропроцессор (МП) с фиксированной системой команд, применяемый в качестве центрального процессора в устройствах обработки данных и управления. В составе МП КР580ВМ80А можно выделить четыре логически разделенные части: блок регистров, арифметико-логическое устройство, устройство управления и буфер данных (рис.1.2) Таблица 1.1 – Микросхемы серии КР580
ИМС | Назначение |
БИС общего назначения | |
КР580ВМ80А | Микропроцессор (МП) |
КР580ГФ24 | Тактовый генератор |
КР580ВК28 | Системный контроллер |
КР580ВК38 | Системный контроллер |
КР580ИР82 | Стробируемый неинвертирующий регистр |
КР580ИР83 | Стробируемый инвертирующий регистр |
КР580ВА86 | Неинвертирующий шинный формирователь |
КР580ВА87 | Инвертирующий шинный формирователь |
КР580ВГ18 | Контроллер магистрали И41 |
Универсальные интерфейсные БИС | |
КР580ВВ51А | Универсальный синхронно-асинхронный приемопередатчик (УСАП) |
КР580ВВ55А | Программируемый параллельный интерфейс |
КР580ВИ53 | Программируемый таймер временных интервалов |
КР580ВН57 | Программируемый контроллер прямого доступа к памяти (ПДП) |
КР580ВН59 | Программируемый контроллер приоритетных прерываний |
БИС контроллеров устройств | |
КР580ВГ75 | Контроллер дисплея на основе электронно-лучевой трубки |
КР580ВВ79 | Контроллер клавиатуры и матричного дисплея |
КР580ВК91/91А | Интерфейс системы МПИ (магистральный параллельный интерфейс) – КОП канал общего пользования) |
КР580ВГ92 | Контроллер канала общего пользования |
КР580ВА93 | Приемопередатчик КОП |
КР580ВТ42 | Контроллер динамического ОЗУ |
КР580ВР43 | Расширитель ввода-вывода |
Данная логическая организация процессора – архитектура – была определена в 1946 г. американским ученым Дж. Фон Нейманом. Обмен информацией между этими частями осуществляется с помощью 8-разрядной внутренней шины. По шине передаются команды, адреса, данные, а также информация SW (Status Word) о состоянии процессора в текущем машинном цикле. В состав интерфейса МП входят три магистрали (канала или шины): трехстабильная 16-разрядная шина адреса A15–A0 (Address Bus, AB), трехстабильная двунаправленная 8-разрядная шина состояния/данных D7–D0 (Data Bus,DB), две линии двухфазной синхронизации Ф1, Ф2 и десять линий управления (Control Bus, CB) – четыре входных и шесть выходных. Рисунок 1.1 – Условное графическое обозначение (а) и набор регистров (б) микропроцессора КР580ВМ80А Функциональное назначение входных линий управления: RESET – Начальная установка. READY – Сигнал готовности периферийных модулей к обмену. INT – Запрос векторного прерывания. HOLD – Запрос доступа к магистрали. Функциональное назначение выходных линий управления: SYNC – Сигнал синхронизации по машинным циклам. WAIT – Сигнал ожидания готовности. DBIN – Строб ввода данных. WR – Строб вывода данных. INTE – Разрешение прерывания. HLDA – Подтверждение доступа к магистрали Все действия МП синхронизированы вложенными друг в друга циклами трех уровней: командными, машинными и микротактами. Командный цикл состоит из нескольких (от 1 до 5) машинных циклов. Каждый машинный цикл представляет собой цикл обращения к системной магистрали: выборку очередного байта команды или данных из памяти, запись в память, ввод или вывод данных. Исключение составляет команда DAD (сложить HL с парой регистров). Она содержит три машинных цикла, однако только в первом цикле происходит обращение к памяти, а два других служат для выполнения команды без обращения к магистралям. Фазу выборки команды всегда реализует первый цикл. Машинные циклы выполняются по микротактам, определяемым как интервал времени между соседними фронтами импульсов. При частоте импульсов 2 МГц длительность микротакта составляет 500 нс. Один машинный цикл включает 3 – 5 микротактов, при этом первый машинный цикл длится 4 – 5 микротактов, а последующие – 3 микротакта. В течение одного микротакта исполняется один микроприказ. Сигнал SYNC выдается в первом микротакте каждого машинного цикла. Блок регистров МП Блок программно доступных регистров МП КР580ВМ80А отличается большой функциональной неоднородностью (рис. 1.3), практически каждый регистр МП выполняет присущую только ему функцию. Такая реализация была выбрана с целью более короткого кодирования системы команд микропроцессора, однако привела к усложнению программирования МП. Регистры обшего назначения (РОН) 8-разрядные регистры F и A, вместе с 16-разрядными регистрами HL, SP и PC образуют стандартный регистровый набор микропроцессора с аккумулятором. Этот набор расширен четырьмя 8-разрядными регистрами общего назначения (РОН): B, C, D, E, которые в некоторых командах объединяются в 16-разрядные парные регистры BC и DE. Регистры C и E являются младшими регистрами пары, B и D – старшими. Обращение к парам регистров происходит по первому, старшему регистру пары (B, D, H). Рисунок 1.3 – Набор регистров микропроцессора КР580ВМ80А В командах ссылки на регистр выполняются как явно, когда регистр кодируется трехразрядным полем, так и неявно (с помощью кода операции), когда код операции подразумевает и способ использования регистров по умолчанию. Регистр флагов Порядок выполнения команд программы зависит от особенностей (признаков) текущих результатов. Для индикации складывающейся ситуации МП формирует двоичные признаки (флаги), отражающие признаки результатов выполнения команд во флажковом регистре F (Flags). Содержимое аккумулятора и регистра флагов называют словом состояния программы PSW (Program Status Word). Регистр признаков имеет следующий формат (рис. 1.4):
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
M | Z | 0 | АC | 0 | P | 1 | C |
Рисунок 1.4 – Формат регистра флагов F В МП КР580ВМ80А имеется 5 флагов: AC (Auxiliary Carry) – признак половинного переноса; C или CY (Carry) – признак переноса; M (Minus) или S (Sign)– признак отрицательного результата; Z (Zero) – признак нуля; P (Parity) – признак паритета/четности. Установка флагов (т. е. флаг получает значение «1») производится при выполнении следующих условий: флаг знака M устанавливается, если знаковый бит результата операции (седьмой разряд аккумулятора) равен «1», иначе сбрасывается; флаг нуля Z устанавливается, если результат операции в аккумуляторе равен нулю, иначе сбрасывается; флаг дополнительного переноса AC устанавливается при наличии переноса из третьего разряда аккумулятора в четвертый, иначе сбрасывается; флаг четности P устанавливается, если результат операции в аккумуляторе содержит четное число единиц, иначе сбрасывается; флаг переноса C устанавливается при наличии переноса из старшего разряда (или переполнения байта) при сложении или заема при вычитании из старшего разряда аккумулятора, иначе сбрасывается. Важнейшими флагами являются: флаг С, позволяющий реализовать на 8-разрядном МП обработку данных длиной в произвольное число байт; флаг Z, используемый для организации циклов и ветвлений; флаг M, используемый для организации ветвлений по знаку результата. Для организации ветвлений в составе команд микропроцессора предусмотрен обширный набор команд условной передачи управления, осуществляющих выбор одного из двух направлений перехода в зависимости от состояния проверяемого флага. Аккумулятор Восьмиразрядный аккумулятор А используется в подавляющем большинстве команд логической и арифметической отработки. Обычно он адресуется неявно и служит как источником операнда, так и приемником результата. Благодаря этому в командах МП явно указывается только один операнд. Регистр HL 16-разрядный регистр HL, как правило, служит адресным регистром. При косвенной регистровой адресации он хранит 16-разрядный адрес основной памяти. В этом случае к нему ссылаются с помощью мнемоники М (Memory), например: MOV A, M; содержимое ячейки, адрес которой находиться в паре HL (H — High Byte и L — Low Byte) заносится в аккумулятор. В некоторых командах старший и младший байты 16-разрядного регистра HL могут адресоваться независимо и использоваться как отдельные 8-разрядные регистры данных H и L соответственно. Регистр SP Регистр SP (Stack Pointer) выполняют функцию указателя стека. Стек – специальным образом выделенная область памяти для временного хранения данных – в стеке хранятся слова (двухбайтные данные). Стек оперирует связанными списками данных, а также данными с многоуровневыми вложениями и имеет определенную дисциплину доступа – LIFO (Last—in—first—out – последним вошел – первым вышел), характеризуется глубиной, т.е. количеством информации, сохраняемой в стеке. Содержимое SP указывает на верхний элемент списка – адрес ячейки памяти, из которой информация будет извлекаться в МП при выполнении процедуры чтения стека. Стек называют предекрементным / постинкрементным, если при занесении в стек слова содержимое SP декрементируется, а при извлечении слова – инкрементируется. В МП КР580ВМ80А реализован кольцевой стек – после адреса вершины 0000h устанавливается адрес FFFFh. Регистр PC Регистр PC (Programm Counter) выполняет функцию счетчика команд. PC содержит адрес ячейки памяти, из которой выбирается следующая команда. При естественном ходе выборки команд, последовательно размещенных в памяти, содержимое счетчика увеличивается от команды к команде на число, равное количеству ячеек, занимаемых в памяти выполненной командой. Арифметико-логическое устройство Арифметико-логическое устройство АЛУ – восьмиразрядная комбинационная схема, выполняющая логические и арифметические операции с 8-разрядными числами в двоичной и десятичной системе счисления, а также операции с двойной точностью (с 16-разрядными числами). АЛУ выполняет следующие операции: арифметические операции – сложение, вычитание; логические операции – логическое умножение, логическое сложение; операции сдвигов – сдвиг содержимого аккумулятора влево или вправо на один разряд; операцию двоично-десятичной коррекции. Схема АЛУ всегда подключена к аккумулятору A и к регистру флагов F. В состав АЛУ входит регистр временного хранения, который используется в тех случаях, когда регистр операнда команды также является регистром результата операции. Также в составе АЛУ находится комбинационная схема десятичного корректора DA, используемого для выполнения операции двоично-десятичной коррекции.
Использование эмуляторов вычислительных устройств в образовательном процессе и их особенности Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Иванов М.А., Чикалов А.Н.
Описаны способы эмулирования цифровых систем и особенности эмуляторов для учебных целей. Проанализированы особенности эмулятора микропроцессора КР580ВМ80А .
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Иванов М.А., Чикалов А.Н.
UniICE — аппаратно-программная система внутрисхемной эмуляции микропроцессоров различных типов
Концептуальные основы и компонентный состав IEESD-2000 — интегрированной среды сквозной совместной разработки аппаратного и программного обеспечения встроенных цифровых систем
Об особенностях детерминированного воспроизведения при минимальном наборе устройств
Эмулятор PCI Express для HDL-моделирования
Применение программных эмуляторов в задачах анализа бинарного кода
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Текст научной работы на тему «Использование эмуляторов вычислительных устройств в образовательном процессе и их особенности»
В E S E A R >: II
ТЕХНОЛОГИИ ИНФОРМАЦИОННОГО ОБЩЕСТВА
Использование эмуляторов вычислительных устройств в образовательном процессе
и их особенности
Описаны способы эмулирования цифровых систем и особенности эмуляторов для учебных целей. Проанализированы особенности эмулятора микропроцессора КР580ВМ80А.
Ключевые слова: микропроцессор, эмулятор, КР580ВМ80А, ассемблер, учебный процесс.
Иванов М.А., Чикалов А.Н.,
Северо-Кавказский филиал Московского технического университета связи и информатики
В настоящее время самые разнообразные компьютерные и информационные технологии находят применение в области образования. Без компьютерных систем невозможно представить себе процесс подготовки современного специалиста в любой области. Использование компьютерных технологий в образовательном процессе в условиях профессионального учебного заведения предоставляет обучающимся современные средства, которые позволяют ускорить процессы интеллектуального развития, а также способствуют формированию профессиональных навыков.
Эмуляторы вычислительных устройств являются незаменимым инструментом в образовательном процессе. Эмуля?ция (англ. emulation) воспроизведение программными или аппаратными средствами либо их комбинацией работы других программ или устройств. Эмуляция позволяет выполнять компьютерную программу на платформе (компьютерной архитектуре и/или операционной системе), отличной, или в некоторых случаях идентичной той, для которой она была написана в оригинале. Эмуляцией также называют сам процесс этого выполнения. В отличие от симуляции, которая лишь воспроизводит поведение программы, при эмуляции ставится цель точного моделирования состояния имитируемой системы, для выполнения оригинального машинного кода.
Эмуляторы используются достаточно часто в самьх различных целях. Например, при разработке новых вычислительных систем, сначала создается эмулятор, выполняющий программы, разрабатываемые для еще несуществующих компьютеров. Это позволяет оценить систему команд и наработать базовое программ-
ное обеспечение еще до того, как будет создано соответствующее оборудование. Так же использование эмулятора позволяет исследовать различные ситуации, которые трудно воспроизвести на реальной аппаратуре.
В свое время была доказана принципиальная эквивалентность определения понятия вычислимости функции или алгоритма, реализуемого для абстрактных вычислительных машин (например, машин Тьюринга, Маркова, Поста и т.д.). Таким образом, было открыто широкое поле для реализации программных эмуляторов, которые, на основе системы команд и архитектуры одной вычислительной машины, позволяли имитировать работу другого вычислителя. Таким образом, стало возможным изучать вопросы эффективности реализации алгоритмов на машинах разной архитектуры.
Важное преимущество эмуляторов возможность многократного воспроизведения рабочих ситуаций. Если надо понять, почему участок программы работает некорректно, можно повторять этот участок снова и снова до тех пор, пока ошибка не будет обнаружена.
Также, загрузка программы в эмулятор чаще происходит быстрее, чем в реальное «железо», что очень удобно при написании программного обеспечения, при отладке.
В тоже время, эмуляция очень ресурсоёмкая задача, и может требовать от компьютера намного большей производительности (скорости процессора, объёма памяти), чем производительность эмулируемой системы. Чем сложнее система и выше точность эмуляции — тем большая производительность для неё требуется.
Создание эмулятора — очень сложная задача, требующая большого опыта программи-
Use of emulators of computing devices in educational process and their feature
Ivanov M.A., Chikalov A.N.,
North-Caucasian branch of the Moscow technical university relationship and informatics
The ways of emulation of digital systems and features of emulators for the educational purposes are described. The features of the emulator of the microprocessor KP580BM80A are analyzed.
Keywords: microprocessor, emulator, КР580ВМ80А, assembler, educational process.
Наукоёмкие технологии в космических исследованиях Земли № 2-2012
INFORMATION SOCIETY TECHNOLOGIES
рования, теоретических знаний, точной информации об устройстве эмулируемой системы. Поэтому эмуляторы одной и той же системы могут различаться как в достоверности эмуляции, так и в требованиях к компьютеру.
Существует по крайней мере два основных подхода к эмуляции.
Первый является полностью программным, то есть весь эмулируемый код разбирается и выполняется процедурами эмулятора.
Данный подход самый безопасный, т.к. в независимости от того, какой вредоносный код загрузят в эмулятор, он всё равно не сможет воздействовать на настоящий процессор. Также этим методом можно эмулировать произвольные архитектуры процессоров. Так, например, на персональном компьютере с 32-битным процессором можно эмулировать 64-битный процессор или вообще процессор мобильного телефона или игровой приставки. Однако этот подход также самый трудоёмкий и медленный по скорости исполнения эмулируемого кода. Трудоёмкость заключается в необходимости реализовывать в процедурах каждую инструкцию процессора. Медленный же он потому, что исполнить инструкцию на настоящем процессоре намного быстрее чем исполнить подпрограмму, эмулирующую эту инструкцию и состоящую из множества команд.
Учитывая эти основные минусы, самым большим из которых является скорость исполнения, был разработан метод частичного исполнения эмулируемого кода на настоящем процессоре. Суть его том, что в эмулируемом коде выбирается блок безопасного кода и передаётся на исполнение реальному процессору, после чего управление снова переходит на программу эмулятора. Безопасен код в том смысле, что он не сможет навсегда перехватить управление или обрушить программу, например, попытавшись записать данные из недоступной для записи области памяти.
Этот подход, несмотря на заметно более высокую скорость исполнения, также имеет свои минусы. Первый из них сложность реализации. Эмулируемый код нужно выбирать или модифицировать таким образом, чтобы после передачи его реальному процессору не возникало ошибок и после исполнения можно было вернуться обратно в эмулятор. Второй — по причине частичного исполнения на реальном процессоре эмулируемый код должен быть напи-
сан под ту же архитектуру, что и эмулятор.
Эмуляторы редко используют прямой доступ к оборудованию. Достаточно обеспечить некоторый уровень совместимости, обеспечивающий трансляцию системных вызовов эмулируемой системы в вызовы работающей системы.
Обычно, эмулятор состоит из нескольких модулей, отвечающих за различные подсистемы эмулируемого компьютера. Чаще всего, эмулятор состоит из:
— эмулятора или симулятора центрального процессора;
— модуля подсистемы памяти, эмулирующего ОЗУ и ПЗУ;
— модуля или модулей эмуляции различных устройств ввода/вывода.
Системная шина обычно не эмулируется, по причинам упрощения или повышения производительности, и виртуальная периферия обращается непосредственно к модулю ЦП и модулю памяти.
Для решения учебных задач требования к эмулятору могут быть изменены. Бесспорно, они зависят от конкретных изучаемых вопросов, но на этапе первичного изучения вычислительной техники основными требованиями являются наглядность, доступность для понимания, наличие регулируемой детализации рассматриваемых процессов, но вместе с тем, и
В Е S Е A R С II
возможность демонстрации работы устройства в условиях решения задач реальной практической сложности. Эти требования противоречивы, часто не удается найти золотую середину, и принимаются решения, корни которых лежат в желании максимально продемонстрировать все преимущества устройства. При этом значительный урон наносится методическим возможностям эмулятора, что для учебного процесса недопустимо и часто сопровождается просто отказом от его использования.
В этом смысле значительный интерес представляет эмулятор микропроцессорной системы КР580 (разработка МИРЭА http://www.zic-homepage.narod.ru). Его нельзя в настоящее время назвать современным, но его структура и система команд является классической, в значительной степени повторяет апробированные технические решения больших ЭВМ, достаточно логически мощная и гибкая. Это делает понятными основные группы команд, обеспечивая при этом достаточно широкие возможности для демонстрации типовых приемов программирования и адресации операндов. Поэтому для начального обучения микропроцессорной технике отказываться от этого эмулятора было бы неправильно.
Данный эмулятор предполагает: написание программ на языке ассемблера, используя си-
High technologies in Earth space research № 2-2012
В E S E A R >: II
ТЕХНОЛОГИИ ИНФОРМАЦИОННОГО ОБЩЕСТВА
стему команд МП КР580ВМ80А, их отладку и выполнение в тактовом, командном и сквозном режимах. На нем можно изучать принципы и порядок выполнения команд; приобрести навыки работы с внешними устройствами МП-системы; получить представления об организации внешней и внутренней (регистровой) памяти и стековой области.
Программа обладает дружественным и лаконичным интерфейсом (см. рис) удобна в использовании и имеет функции сохранения, экспорта и печати данных. В ней предусмотрена контекстная справка по командам, реализованы типовые приемы работы, к которым обучаемые уже приучены благодаря офисным пакетам (работа с меню, приемы перетаскивания команд в окно выполнения, работа со справкой, экспорт данных и т.д.). Всё это позволяет легко и быстро освоить приемы работы с эмулятором, получить необходимые навыки управления микропроцессором и работы с внешними устройствами.
Также, эмулятор может быть полезен и для опытных пользователей, к примеру, в качестве визуализированного помощника в программировании разрабатываемой ими МП-системы на базе КР580ВМ80 (¡8080).
В возможности эмулятора входит: работа с 5-ю внешними устройствами, такими, как монитор, НГМД, НЖМД, сетевой адаптер и принтер; отладка и выполнение программ в тактовом, командном и сквозном режимах; работа со всем спектром системы команд данного МП; сохранение, загрузка и печать данных и результатов; ручной ввод и редактирование дан-
ных в ОЗУ и регистры общего назначения.
В этом эмуляторе удачно сочетаются демонстрация аппаратных особенностей работы процессора и широкие возможности по изучению технологии выполнения программных продуктов. Способ визуализации содержимого ОЗУ позволяет, с одной стороны, увидеть содержимое каждой ячейки памяти, а с другой -требует понимания смысла того кода, который наблюдает обучаемый. В этом можно найти даже некоторый скрытый смысл, который можно использовать в учебных целях. В частности, такие особенности требуют глубокого понимания принципов организации различных типов команд, механизмов работы трансляторов и т.д.
Вместе с тем понятно, что такое отображение ОЗУ диктуется сложными техническими причинами. Гораздо проще дешифрировать каждый байт (как будто он является кодом операции команды), отобразив его мнемоникой и алгоритмически обработать последующие байты, соответствующие длине команды.
Альтернативой такому решению должно было стать написание программы для эмулятора в реальных мнемокодах ассемблера и размещение данных в ОЗУ для выполнения. Однако такое решение связано с написанием реального компилятора, а это задача на несколько порядков более сложная. Для эмулятора, который используется при изучении аппаратной части микропроцессора и принципов его программирования решать ее нецелесообразно. Следует отдать должное авторам программы, которые сумели принять такое удачное решение. Они упростили задачу, но при этом сохра-
нили все необходимые свойства эмулятора для образовательного процесса.
К сожалению, эмулятор не свободен от ряда ошибок. Например, нарушена динамика работы с указателем стека, не устанавливается признак переноса при выполнении команд CMP и CPI, команда JNC не проверяет на равенство. При изучении отдельных команд из этого можно даже извлечь пользу, но при отладке сложных программ ведет к большим потерям времени.
Этот эмулятор использовался для разработки и отладки многих программ, применяющихся в реальных программных системах. Показал свою высокую эффективность и как средство отладки и как инструмент повышения эффективности образовательного процесса.
1. Легков К.Е. Процедуры и временные характеристики оперативного управления трафиком в транспортной сети специального назначения пакетной коммутации // T-Comm: Телекоммуникации и транспорт, 2012. — №6. — С. 22-26.
2. Бабошин ВА, Сиротенко Ф.Ф., Легков К.Е. Предложения по построению аппаратно-программного комплекса резервирования информации телекоммуникационной сети специального назначения // Труды Северо-Кавказского филиала Московского технического университета связи и информатики. — Ростов-на-Дону: СКФ МТУСИ, 2011. -С. 175-178.
Наукоёмкие технологии в космических исследованиях Земли
Методические указания по выполнению лабораторной работы для студентов специальностей 210400. 62, 210402. 65, 210403. 65, 210406. 65
Исследование команд микропроцессора КР580, составление программ на языке ассемблера.
2 Краткая характеристика исследуемого процессора
Для облегчения изучения принципов программирования МП-систем на низком уровне на языке ассемблера, а также приобретения базовых понятий в области организации ЭВМ и МПС, была разработана программная модель-эмулятор МПС, построенная на базе особенностей рассматриваемого микропроцессора (рисунок 1) .
Рисунок 1 – Программа-эмулятор микропроцессорной системы КР580.
Данный эмулятор позволяет: написание программ на языке ассемблера, используя систему команд МП КР580ВМ80А, их отладку и выполнение в тактовом, командном и сквозном режимах; изучить принципы и порядок выполнения команд; приобрести навыки работы с внешними устройствами МП-системы; получить представления об организации внешней и внутренней (регистровой) памяти и стековой области.
Программа обладает дружественным и приятным интерфейсом, удобна в использовании и имеет функции сохранения, экспорта и печати данных. Всё это позволяет легко и удобно освоиться в ней, а также, получить все необходимые вышерассмотренные навыки.
Также, эмулятор может быть полезен и для опытных людей, к примеру, в качестве визуализированного помощника в программировании разрабатываемой ими МП-системы на базе КР580ВМ80 (i8080).
В возможности эмулятора входит: работа с 5-ю внешними устройствами, такими, как монитор, НГМД, НЖМД, сетевой адаптер и принтер; отладка и выполнение программ в тактовом, командном и сквозном режимах; работа со всем спектром системы команд данного МП; сохранение, загрузка и печать данных и результатов; ручной ввод данных в ОЗУ и РОН. Также, в состав дистрибутива включено подробное руководство пользователя, описание системы команд и файлы-образы ОЗУ эмулятора для примера.
2.1 Архитектура микропроцессора КР580ВМ80
Структурная схема МП КР580ВМ80А приведена на рисунке 2.
Рисунок 2 – Структура МП КР580ВМ80.
В состав микропроцессора входят:
- 8-разрядное арифметико-логическое устройство АЛУ (ALU);
- регистр признаков RS, фиксирующий признаки, вырабатываемые АЛУ в процессе выполнения команды;
- аккумулятор (А);
- регистр аккумулятора (RGa);
- регистр временного хранения операндов (RGb);
- десятичный корректор (DAA), выполняющий перевод информации из двоичной в двоично-десятичную форму;
- регистр команд (IR), предназначенный для хранения первого байта команды, содержащего код операции;
- дешифратор команд (DCU);
- блок регистров для приема, выдачи и временного хранения информации в процессе выполнения программ;
- схема управления и синхронизации (CU), формирующая последовательности управляющих сигналов для работы ALU и регистров;
- однонаправленный 16-разрядный буферный регистр адреса (ВА);
- двунаправленный 8-разрядный буферный регистр данных (BD);
- двунаправленный мультиплексор (MUX) для обмена информацией между ALU и блоком регистров по внутренней шине данных (Internal Data Bus.
- программный счетчик (РС), предназначенный для хранения адреса очередной команды (при выполнении линейных программ этот адрес автоматически увеличивается на 1, 2, 3 в зависимости от длины выполняемой команды — 1, 2 или 3 байта соответственно);
- указатель стека (SP);
- регистр адреса (RGA);
- шесть 8-разрядных регистров общего назначения B, C, D, E, H, L, которые могут объединяться в парные 16-разрядные регистры BC, DE, HL;
- вспомогательные разрядные регистры W, Z.
- обеспечивает выборку команд и операндов;
- организует правильное функционирование АЛУ;
- обеспечивает доступ ко всем регистрам МП;
- синхронизирует УВВ и управляет их работой;
- приостанавливает работу МП в режиме ожидания и отключает МП от системной магистрали в режиме ПДП.
- Перед выполнением очередной команды МП содержит ее адрес в программном счетчике РС;
- МП обращается к памяти по адресу, содержащемуся в РС, и считывает из памяти первый байт очередной команды в регистр команд IR;
- Дешифратор команд DCU декодирует содержащийся в IR код команды и в результате его декодирования, в частности, “узнает”:
- какова длина этой команды (1, 2 или 3 байта);
- где хранятся ее операнды;
- какие действия нужно выполнить над операндами;
- извлекает операнды из регистров и памяти;
- выполняет над ними предписанные кодом команды арифметические, логические или другие операции;
- в зависимости от длины команды модифицирует содержимое РС на 1, 2 или 3 (при линейном алгоритме);
- передает управление очередной команде, адрес которой снова находится в программном счетчике РС.
- содержимое аккумулятора копируется в RGa;
- содержимое регистра В копируется RGb;
- производится суммирование RGa+RGb и результат сложения помещается в аккумулятор А;
- в зависимости от результата операции модифицируется содержимое регистра флагов RS;