Главная страница

Часть III. Описание архитектуры учебной эвм


Скачать 2.15 Mb.
НазваниеОписание архитектуры учебной эвм
Дата23.12.2022
Размер2.15 Mb.
Формат файлаdoc
Имя файлаЧасть III.doc
ТипПрактикум
#861303
страница1 из 6
  1   2   3   4   5   6

Лабораторный практикум построен в расчете на изучение взаимодействия устройств в структуре ЭВМ с помощью программной модели некоторой аб­страктной учебной ЭВМ, которая программируется на языке ассемблера.

Часто путь современного программиста начинается со знакомства с языком (языками) высокого уровня и все его общение с компьютером проходит с использованием таких языков.

Во многих случаях знание операторов языка высокого уровня, структуры данных и способов их обработки является достаточным для создания различ­ных полезных приложений. Однако по-настоящему решать проблемы, свя­занные с управлением различной, особенно нестандартной, аппаратурой (программирование "по железу") невозможно без знания ассемблера [14]. Не случайно практически все компиляторы языков высокого уровня содержат средства связи своих модулей с модулями на ассемблере либо поддерживают выход на ассемблерный уровень программирования.

Однако проводить начальное обучение программированию на низком уровне с рассмотрением механизмов взаимодействия устройств на реальном языке, например x86 на персональной ЭВМ, не всегда удобно. В этом случае между пользователем и аппаратурой ЭВМ присутствует операционная система (ОС), которая существенно ограничивает желания пользователя экспериментиро­вать с аппаратными средствами. Для преодоления этих ограничений необхо­димо обладать глубокими знаниями как ОС, так и аппаратных средств ЭВМ.

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


http://educomp.runnet.ru/model/

ГЛАВА 8

Описание архитектуры учебной ЭВМ

Современные процессоры и операционные системы — не слишком благопри­ятная среда для начального этапа изучения архитектуры ЭВМ.

Одним из решений этой проблемы может быть создание программных моде­лей учебных ЭВМ, которые, с одной стороны, достаточно просты, чтобы обучаемый мог освоить базовые понятия архитектуры (система команд, ко­мандный цикл, способы адресации, уровни памяти, способы взаимодействия процессора с памятью и внешними устройствами), с другой стороны — архи­тектурные особенности модели должны соответствовать тенденциям разви­тия современных ЭВМ.

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

Далее приводится описание программной модели учебной ЭВМ1, предназна­ченной для начальных этапов изучения архитектуры (в т. ч. на младших кур­сах вуза и даже в школе). Именно этим объясняется использование в модели десятичной системы счисления для кодирования команд и представления данных.

8.1. Структура ЭВМ

Моделируемая ЭВМ включает процессор, оперативную (ОЗУ) и сверхопера­тивную память, устройство ввода (УВв) и устройство вывода (УВыв). Процес­сор, в свою очередь, состоит из центрального устройства управления (УУ), арифметического устройства (АУ) и системных регистров (СК, РС, 5Р и др.). Структурная схема ЭВМ показана на рис. 8.1.

В ячейках ОЗУ хранятся команды и данные. Емкость ОЗУ составляет 1000 ячеек. По сигналу MWr выполняется запись содержимого регистра дан­ных (MDR) в ячейку памяти с адресом, указанным в регистре адреса (MAR). По сигналу MRd происходит считывание — содержимое ячейки памяти с адресом, содержащимся в MAR, передается в MDR.

Сверхоперативная память с прямой адресацией содержит десять регистров общего назначения R0—R9. Доступ к ним осуществляется (аналогично дос­тупу к ОЗУ) через регистры RAR и RDR.

АУ осуществляет выполнение одной из арифметических операций, опреде­ляемой кодом операции (СОР), над содержимым аккумулятора (Асc) и реги­стра операнда (DR). Результат операции всегда помещается в Асc. При завер­шении выполнения операции АУ вырабатывает сигналы признаков результа­та: Z (равен 1, если результат равен нулю); S (равен 1, если результат отрицателен); OV (равен 1, если при выполнении операции произошло пере­полнение разрядной сетки). В случаях, когда эти условия не выполняются, соответствующие сигналы имеют нулевое значение.

В модели ЭВМ предусмотрены внешние устройства двух типов. Во-первых, это регистры IR и OR, которые могут обмениваться с аккумулятором с помощью безадресных команд IN (Асc := IR) и OUT (OR := Асc). Во-вторых, это набор моделей внешних устройств, которые могут подключаться к системе и взаи­модействовать с ней в соответствии с заложенными в моделях алгоритма­ми. Каждое внешнее устройство имеет ряд программно-доступных регистров, может иметь собственный обозреватель (окно

1 Программная модель учебной ЭВМ находится на компакт-диске, прилагаемом к книге.

видимыхэлементов). Подробнее эти внешние устройства описаны в разд. 8.6.

УУ осуществляет выборку команд из ОЗУ в последовательности, определяемой естественным порядком выполнения команд (т. е. в порядке возрастания адресов команд в ОЗУ) или командами передачи управления; выборку из ОЗУ операндов, задаваемых адресами команды; инициирование выполнения операции, предписанной командой; останов или переход к выполнению следую­щей команды.

В качестве сверхоперативной памяти в модель включены регистры общего назначения (РОН), и может подключаться модель кэш-памяти.

В состав УУ ЭВМ входят:

  • РС — счетчик адреса команды, содержащий адрес текущей команды;

  • СК — регистр команды, содержащий код команды;

  • RВ — регистр базового адреса, содержащий базовый адрес;

  • SP — указатель стека, содержащий адрес верхушки стека;

  • RA — регистр адреса, содержащий исполнительный адрес при косвенной адресации.



Рис. 8.1. Общая структура учебной ЭВМ
Регистры Асc, DR, IR, OR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры РС, SP, RA и RB — 3 разряда.

8.2. Представление данных в модели

Данные в ЭВМ представляются в формате, показанном на рис. 8.2. Это целые десятичные числа, изменяющиеся в диапазоне "–99 999... +99 999", содержа­щие знак и 5 десятичных цифр.



Рис. 8.2. Формат десятичных данных учебной ЭВМ

Старший разряд слова данных используется для кодирования знака: плюс (+) изображается как 0, минус (–) — как 1. Если результат арифметической опе­рации выходит за пределы указанного диапазона, то говорят, что произошло переполнение разрядной сетки. АЛУ в этом случае вырабатывает сигнал пе­реполнения OV = 1. Результатом операции деления является целая часть частного. Деление на ноль вызывает переполнение.

8.3. Система команд

При рассмотрении системы команд ЭВМ обычно анализируют три аспекта: форматы, способы адресации и систему операций.

8.3.1. Форматы команд

Большинство команд учебной ЭВМ являются одноадресными или безадрес­ными, длиной в одно машинное слово (6 разрядов). Исключение составляют двухсловные команды с непосредственной адресацией и команда MOV, яв­ляющаяся двухадресной.

В форматах команд выделяется три поля:

  • два старших разряда [0:1] определяют код операции СОР;

  • разряд 2 может определять тип адресации (в одном случае (формат 5а) он определяет номер регистра);

  • разряды [3:5] могут определять прямой или косвенный адрес памяти, но­мер регистра (в команде MOV номера двух регистров), адрес перехода или короткий непосредственный операнд. В двухсловных командах непо­средственный операнд занимает поле [6:11].

Полный список форматов команд показан на рис. 8.3, где приняты следую­щие обозначения:

  • СОР — код операции;

  • ADR — адрес операнда в памяти;

  • ADC — адрес перехода;

  • I — непосредственный операнд;

  • R, R1, R2 — номер регистра;

  • ТА — тип адресации;

  • X — разряд не используется.



Рис. 8.3. Форматы команд учебной ЭВМ

8.3.2. Способы адресации

В ЭВМ принято различать пять основных способов адресации: прямая, косвенная, непосредственная, относительная, безадресная.

Каждый способ имеет разновидности. В модели учебной ЭВМ реализованы семь способов адресации, приведенные в табл. 8.1.

Таблица 8.1. Адресация в командах учебной ЭВМ


8.3.3. Система операций

Система команд учебной ЭВМ включает команды следующих классов:

арифметико-логические и специальные: сложение, вычитание, умножение, деление;

  • пересылки и загрузки: чтение, запись, пересылка (из регистра в регистр), помещение в стек, извлечение из стека, загрузка указателя стека, загрузка базового регистра;

ввода/вывода: ввод, вывод;

  • передачи управления: безусловный и шесть условных переходов, вызов подпрограммы, возврат из подпрограммы, цикл, программное прерыва­ние, возврат из прерывания;

системные: пустая операция, разрешить прерывание, запретить прерывание, стон.

Список команд учебной ЭВМ приведен в табл. 8.4 и 8.6.

8.4. Состояния и режимы работы ЭВМ

Ядром УУ ЭВМ является управляющий автомат (УА), вырабатывающий сигналы управления, которые инициируют работу АЛУ, РОН, ОЗУ и УВВ, передачу информации между регистрами устройств ЭВМ и действия над содержимым регистров УУ.

ЭВМ может находиться в одном из двух состояний: Останов и Работа.

В состояние Работа ЭВМ переходит по действию команд Пуск или Шаг. Команда Пуск запускает выполнение программы, представляющую собой последовательность команд, записанных в ОЗУ, в автоматическом режиме до команды HLT или точки останова. Программа выполняется по командам, начиная с ячейки ОЗУ, на которую указывает РС, причем изменение состояний объектов модели отображается в окнах обозревателей.

В состояние Останов ЭВМ переходит по действию команды Стоп или автоматически в зависимости от установленного режима работы.

Команда Шаг, в зависимости от установленного режима работы, запускает выполнение одной команды или одной микрокоманды (если установлен Режим микрокоманд), после чего переходит в состояние Останов.

В состоянии Останов допускается просмотр и модификация объектов модели: регистров процессора и РОН, ячеек ОЗУ, устройств ввода/вывода. В процессе модификации ячеек ОЗУ и РОН можно вводить данные для программы, в ячейки ОЗУ — программу в кодах. Кроме того, в режиме Останов можно менять параметры модели и режимы ее работы, вводить и/или редактировать программу в мнемокодах, ассемблировать мнемокоды, выполнять стандартные операции с файлами.

8.5. Интерфейс пользователя

В программной модели учебной ЭВМ использован стандартный интерфейс Windows, реализованный в нескольких окнах.

Основное окно модели Модель учебной ЭВМ содержит основное меню и кнопки на панели управления. В рабочее поле окна выводятся сообщения о функционировании системы в целом. Эти сообщения группируются в файле lоgfi1е.txt (по умолчанию), сохраняются на диске и могут быть проанализированы после завершения сеанса работы с моделью.

Меню содержит следующие пункты и команды:

Файл:

  • неактивные команды;

  • Выход.

Вид:

  • Показать все;

  • Скрыть все;

  • Процессор;

  • Микрокомандный уровень;

  • Память;

  • Кэш-память;

  • Программа;

  • Текст программы.

Внешние устройства:

  • Менеджер ВУ;

  • окна подключенных ВУ;

Работа:

  • Пуск;

  • Стон;

  • Шаг;

  • Режим микрокоманд;

  • Кэш-память;

  • Настройки.

Команды меню Вид открывают окна соответствующих обозревателей, описанные далее. Менеджер внешних устройств позволяет подключать/отключать внешние устройства, предусмотренные в системе. Команда вызова менеджера внешних устройств выполняется при нажатии кнопки на панели инструментов. Подробнее о внешних устройствах и их обозревателях смотрите в разд. 8.6.

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

Команда Режим микрокоманд включает/выключает микрокомандный ре­жим работы процессора, а команда Кэш-память подключает/отключает в системе модель этого устройства.

Команда Настройки открывает диалоговое окно Параметры системы, по­зволяющее установить задержку реализации командного цикла (при выпол­нении программы в автоматическом режиме), а так же установить параметры файла logfile.txt, формируемого системой и записываемого на диск.

8.5.1. Окна основных обозревателей системы

Окно Процессор

Окно Процессор (рис. 8.4) обеспечивает доступ ко всем регистрам и флагам процессора.



Рис. 8.4. Окно Процессор

□ Программно-доступные регистры и флаги:

  • Асc — аккумулятор;

  • РС — счетчик адреса команды, содержащий адрес текущей команды;

  • SР — указатель стека, содержащий адрес верхушки стека;

  • RВ — регистр базового адреса, содержащий базовый адрес;

  • RА — регистр адреса, содержащий исполнительный адрес при косвенной адресации;

  • IR — входной регистр;

  • OR — выходной регистр;

  • I — флаг разрешения прерываний.

□ Системные регистры и флаги:

  • DR — регистр данных АЛУ, содержащий второй операнд;

  • MDR — регистр данных ОЗУ;

  • MAR— регистр адреса ОЗУ;

  • RDR— регистр данных блока РОН;

  • RAR — регистр адреса блока РОН;

  • CR — регистр команд, содержащий поля:

  • СОР — код операции;

  • ТА — тип адресации;

  • ADR — адрес или непосредственный операнд;

  • Z — флаг нулевого значения Асc;

  • S — флаг отрицательного значения Асc;

  • OV— флаг переполнения.

Регистры Асc, DR, IR, OR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры РС, SР, RА и RВ — 3 разряда. В окне Процессор отражаются текущие значения регистров и флагов, причем в состоянии Останов все регистры, включая регистры блока РОН, и флаги (кроме флага I) доступны для непосредственного редактирования.

Элементы управления окна Процессор включают меню и кнопки, вызывающие команды:

  • Сохранить;

  • Загрузить;

  • Reset;

  • Reset R0-R9 (только команда меню Работа).

Команды Сохранить, Загрузить позволяют сохранить текущее значение ре­гистров и флагов процессора в файле и восстановить состояние процессора из файла. Команда Reset и кнопка R устанавливают все регистры (в т. ч. блок РОН) в начальное (нулевое) значение. Содержимое ячеек памяти при этом не меняется. Выполняемая лишь из меню Работа команда Reset R0-R9 очищает только регистры блока РОН.

Окно Память

Окно Память (рис. 8.5) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того, предусмотрена возможность выполнения (через меню или с помощью кнопок панели инструментов) пяти команд: Сохранить, Загрузить, Перейти к, Вставить, Убрать.

Команды Сохранить, Загрузить во всех окнах, где они предусмотрены, ра­ботают одинаково — сохраняют в файле текущее состояние объекта (в дан­ном случае памяти) и восстанавливают это состояние из выбранного файла, причем файл в каждом окне записывается по умолчанию с характерным для этого окна расширением.

Команда Перейти к открывает диалоговое окно, позволяющее перейти на заданную ячейку ОЗУ.

Команда Убрать открывает диалог, в котором указывается диапазон ячеек с т по п. Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек [(n +1): 999] перемещается в соседние ячейки с меньшими адресами. Осво­бодившиеся ячейки с адресами 999, 998, ... заполняются нулями.



Рис. 8.5. Окно Память

Команда Вставить, позволяющая задать номера ячеек, перемещает содержи­мое всех ячеек, начиная от m-й на п-т позиций в направлении больших адресов, ячейки заданного диапазона [т:п]заполняются нулями, а содержимое последних ячеек памяти теряется.

Окно Текст программы

Окно Текст программы (рис. 8.6) содержит стандартное поле текстового редактора, в котором можно редактировать тексты, загружать в него тексто­вые файлы и сохранять подготовленный текст в виде файла.

Команды меню Файл:

  • Новая — открывает новый сеанс редактирования;

  • Загрузить — открывает стандартный диалог загрузки файла в окно редак­тора;

  • Сохранить — сохраняет файл под текущим именем;

  • Сохранить как — открывает стандартный диалог сохранения файла;

  • Вставить — позволяет вставить выбранный файл в позицию курсора.

Все перечисленные команды, кроме последней, дублированы кнопками на панели инструментов окна. На той же панели присутствует еще одна кнопка— Компилировать, которая запускает процедуру ассемблирования текста в поле редактора.

Ту же процедуру можно запустить из меню Работа. Команда Адрес вставки позволяет задать адрес ячейки ОЗУ, начиная с которой программа будет размещаться в памяти. По умолчанию этот адрес принят равным 0.

Ниже области редактирования в строку состояния выводится позиция текущей строки редактора — номер строки, в которой находится курсор.



Рис. 8.6. Окно Текст программы
В случае обнаружения синтаксических ошибок в тексте программы диагно­стические сообщения процесса компиляции выводятся в окно сообщений и запись в память кодов (даже безошибочного начального фрагмента программы) не производится.

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

Набор текста программы производится по стандартным правилам языка ас­семблера. В каждой строке может содержаться метка, одна команда и ком­ментарий. Метка отделяется от команды двоеточием, символы после знака "точка с запятой" до конца строки игнорируются компилятором и могут рас­сматриваться как комментарии. Строка может начинаться с ; и, следовательно, содержать только комментарии.

Окно Программа

Окно Программа (рис. 8.7) отображает таблицу, имеющую 300 строк и 4 столбца. Каждая строка таблицы соответствует дизассемблированной ячейке ОЗУ. Второй столбец содержит адрес ячейки ОЗУ, третий — дизассемблированный мнемокод, четвертый— машинный код команды. В первом столбце может помещаться указатель --> на текущую команду (текущее значение РС) и точка останова — красная заливка ячейки.



Рис. 8.7. Окно Программа

Окно Программа позволяет наблюдать процесс прохождения программы. В этом окне ничего нельзя редактировать. Органы управления окна позволяют сохранить содержимое окна в виде текстового файла, выбрать начальный адрес области ОЗУ, которая будет дизассемблироваться (размер области постоянный — 300 ячеек), а также установить/снять точку останова. Последнее можно проделать тремя способами: командой Точка останова из меню Работа, кнопкой на панели инструментов или двойным щелчком мыши в первой ячейке соответствующей строки. Характерно, что прочитать в это окно ничего нельзя. Сохраненный текстовый asm-файл можно загрузить в окно Текст программы, ассемблировать его и тогда дизассемблированное значение заданной области памяти автоматически появится в окне Программа. Такую процедуру удобно использовать, если программа изначально пишется или редактируется непосредственно в памяти в машинных кодах.

Начальный адрес области дизассемблирования задается в диалоге командой Начальный адрес меню Работа.

Окно Микрокомандный уровень

Окно Микрокомандный уровень (рис. 8.8) используется только в режиме микрокоманд, который устанавливается командой Режим микрокоманд меню Работа. В это окно выводится мнемокод выполняемой команды, список микрокоманд, ее реализующих, и указатель на текущую выполняемую микрокоманду.

Шаговый режим выполнения программы или запуск программы в автомати­ческом режиме с задержкой командного цикла позволяет наблюдать процесс выполнения программы на уровне микрокоманд.

Если открыть окно Микрокомандный уровень, не установив режим микро­команд в меню Работа, то после начала выполнения программы в режиме Шаг (или в автоматическом режиме) в строке сообщений окна будет выдано сообщение "Режим микрокоманд неактивен".



Рис. 8.8. Окно Микрокомандный уровень

Окно Кэш-память

Окно Кэш-память используется в режиме с подключенной кэш-памятью. Подробнее смотрите об этом режиме в разд. 8.8.

8.6. Внешние устройства

Модели внешних устройств (ВУ), используемые в описываемой системе, реа­лизованы по единому принципу. С точки зрения процессора они представляют собой ряд программно-доступных регистров, лежащих в адресном пространстве ввода/вывода. Размер регистров ВУ совпадает с размером ячеек памяти и регистров данных процессора— шесть десятичных разрядов.

Доступ к регистрам ВУ осуществляется по командам IN аа, OUT аа, где аа— двухразрядный десятичный адрес регистра ВУ. Таким образом, общий объем адресного пространства ввода/вывода составляет 100 адресов. Следует помнить, что адресные пространства памяти и ввода/вывода в этой модели разделены.

Разные ВУ содержат различное число программно-доступных регистров, каждому из которых соответствует свой адрес, причем нумерация адресов всех ВУ начинается с 0. При создании ВУ ему ставится в соответствие базовый адрес в пространстве ввода/вывода, и все адреса его регистров становятся смещениями относительно этого базового адреса.

Если в системе создаются несколько ВУ, то их базовые адреса следует выбирать с учетом величины адресного пространства, занимаемого этими устройствами, исключая наложение адресов.

Если ВУ способно формировать запрос на прерывание, то при создании ему ставится в соответствие вектор прерывания — десятичное число. Разным ВУ должны назначаться различные векторы прерываний.

Программная модель учебной ЭВМ комплектуется набором внешних устройств, включающим:

  • контроллер клавиатуры;

  • дисплей;

  • блок таймеров;

  • тоногенератор,

которым по умолчанию присвоены параметры, перечисленные в табл. 8.2.

Таблица 8.2. Параметры внешних устройств


При создании устройств пользователь может изменить назначенные по умол­чанию базовый адрес и вектор прерывания.

В описываемой версии системы не предусмотрена возможность подключения в систему нескольких одинаковых устройств.

Большинство внешних устройств содержит регистры управления СК и состояния SR, причем обычно регистры CR доступны только по записи, а SR — по чтению.

Регистр CR содержит флаги и поля, определяющие режимы работы ВУ, а SR — флаги, отражающие текущее состояние ВУ. Флаги SR устанавливаются аппаратно, но сбрасываются программно (или по внешнему сигналу). Поля и флаги CR устанавливаются и сбрасываются программно при записи кода данных в регистр CR или специальными командами.

Контроллер ВУ интерпретирует код, записываемый по адресу CR как команду, если третий разряд этого кода равен 1, или как записываемые в CR данные, если третий разряд равен 0. В случае получения командного слова запись в регистр CR не производится, а пятый разряд слова рассматривается как код операции.

  1   2   3   4   5   6


написать администратору сайта