Пример выполнения работы
Пусть дана следующая последовательность команд, которые требуется выполнить на уровне микрокоманд: RD #20 WR 30 ADD #5 WR @30 JNZ 2 Выполняя заданную последовательность команд в режиме Шаг при включенном Режиме микрокоманд и открытом окне Микрокомандный уровень, зафиксируем изменения в регистрах процессора и ячейках оперативной памяти в форме табл. 3.2.
Таблица 3.2 Состояние программной модели на уровне микрокоманд
Контрольные вопросы
1. Какие команды связаны с изменением состояния аккумулятора? 2. Какие действия выполняются в модели по микрокомандам MRd и RWr? 3. Как будет выглядеть микропрограмма для несуществующей команды «умножение модулей чисел»? 4. Что изменится в работе микропроцессора, если в каждой микропрограмме микрокоманду увеличения программного счетчика PC: = PC + 1 переместить в самый конец микропрограммы?
3.5. Лабораторная работа № 5. Разработка микропрограммы арифметической операции
3.5.1. Цель работы
Цель работы – приобрести умение разрабатывать микропрограммы для выполнения простейших арифметических операций.
3.5.2. Общие положения
Реализация программы в ЭВМ сводится к последовательному выполнению команд. Каждая команда, в свою очередь выполняется как последовательность микрокоманд, реализующих элементарные действия над операционными элементами процессора. …
3.5.3. Последовательность выполнения работы
Данная лабораторная работа предполагает выполнение следующих этапов: 1). Разработать граф-схему или текстовое описание алгоритма заданной операции. 2). Разработать микропрограмму, реализующую разработанный алгоритм для операционного автомата моделей АЛУ (ALU-1 или ALU-R). 3). Проверить выполнение разработанной микропрограммы на нескольких тестовых примерах. 4). Предложить структуру операционного автомата оптимальную для реализации разработанного алгоритма. 5). Выяснить является ли разбиение микроопераций, предлагаемое по умолчанию стандартной таблицей кодирования, приемлемым для реализации разработанной микропрограммы. 6). Если стандартное разбиение неприемлемо, то разбить множество использованных в программе микроопераций (МО) на подмножества несовместимых МО, закодировать микрооперации в подмножествах, доработать таблицу кодировки и сохранить ее в отдельном файле. 7). Записать микропрограмму на языке микроассемблера, описанного в разделе 2.Х.Х и скомпилировать ее. 8). Отладить микропрограмму в автономном режиме, задавая вручную различные значения логических условий. 9). В режиме Управление от управляющего автомата проверить функционирование АЛУ под управлением отлаженной микропрограммы на нескольких примерах.
3.5.4 Варианты заданий
В качестве заданий использованы арифметические операции сложения и вычитания, которые не требуют реализации циклов в микропрограммах. В этом случае достаточно использовать лишь переходы в зависимости от принятого способа кодирования операндов и сочетания знаков. В таблице 3.11 приведены варианты заданий. Их особенность состоит в том, что операнды и результат могут быть представлены в различных кодах. В реальных АЛУ такого разброса в кодировках не существует поскольку это может значительно усложнить алгоритм при отсутствии преимуществ в реализации. Однако в учебных заданиях такой подход приемлем, поскольку это позволяет в рамках одного задания вспомнить особенности выполнения операций в различных кодах.
Таблица 3.11 Варианты заданий
В таблице 3.11 использованы следующие обозначения: • ПК – прямой код; • ОК – обратный код; • ДК – дополнительный код.
3.5.5 Пример выполнения работы
Пусть необходимо построить микропрограмму управления процессом сложения двух восьмиразрядных двоичных чисел…
3.5.6. Содержание отчета
Отчет по лабораторной работе должен содержать следующие разделы: 1). Формулировка варианта задания 2). Граф-схема алгоритма операции 3). Микропрограмма, соответствующая разработанному алгоритму и структуре операционного автомата 4). Результаты тестирования микропрограммы на нескольких примерах в форме таблицы 5). Структуру операционного автомата, оптимизированную для выполнения одной заданной операции (функциональная схема, список микроопераций и логических условий) 6). Анализ пригодности исходного множества микроопераций для реализации микропрограммы 7). Собственный вариант разбиения и кодировки множества микроопераций (в случае непригодности исходного множества) 8). Текст микропрограммы на языке микроассемблера 9). Содержимое памяти микропрограмм (после компиляции текста микропрограммы), а также изменения, внесенные в память при отладке микропрограммы. 10). Тестовые примеры, выполненные в процессе проверки работы АЛУ под управлением УАПЛ.
3.5.7. Задания повышенной сложности
3.5.8. Контрольные вопросы
1. Как обнаружить факт переполнения разрядной сетки при выполнении операции алгебраического сложения в прямом коде? В обратном коде? В дополнительном коде? 2. По какому признаку можно завершить цикл умножения? 3. Как определить знак произведения при умножении дробных чисел, представленных в прямом коде? 4. Как формируется очередная цифра частного при выполнении операции деления методом «с восстановлением остатка»? 5. В чем отличие и преимущество метода деления «без восстановления остатка» по сравнению с методом «с восстановлением остатка»? 6. Каким образом можно определить в АЛУ вес двоичного вектора?
3.6. Лабораторная работа №6. Программирование внешних устройств
3.6.1. Цель работы
Цель работы – изучение способов организации взаимодействия процессора и внешних устройств (ВУ) в составе ЭВМ.
3.6.2. Общие положения
Связь процессора и ВУ может осуществляться в синхронном или асинхронном режиме. Синхронный режим используется для ВУ всегда готовых к обмену. В рассматриваемой модели таким ВУ являются дисплей и тоногенератор – процессор может обращаться с этим ВУ, не анализируя их состояние (правда дисплей блокирует прием данных после ввода 128 символов, формируя флаг ошибки). Асинхронный обмен предполагает анализ процессором состояния ВУ, которое определяет готовность ВУ выдать или принять данные или факт осуществления некоторого события, контролируемого системой. К таким устройствам в данной модели можно отнести клавиатуру и блок таймеров. Анализ состояния ВУ может осуществляться процессором двумя способами: • в программно-управляемом режиме; • в режиме прерывания. В первом случае предполагается программное обращение процессора к регистру состояния ВУ с последующим анализом значения соответствующего разряда слова состояния. Такое обращение следует предусмотреть в программе с некоторой периодичностью, независимо от фактического наступления контролируемого события (например, нажатие клавиши). Во втором случае при возникновении контролируемого события ВУ формирует процессору запрос на прерывание программы, по которому процессор и осуществляет связь с ВУ.
3.6.3. Последовательность выполнения работы
Данная лабораторная работа предполагает выполнение следующих этапов: 1. Запустить программную модель учебной ЭВМ и подключить к ней определенные в задании внешние устройства (меню Внешние устройства │ Менеджер ВУ). 2. Написать и отладить программу, предусмотренную заданием, с использованием программного анализа флагов готовности ВУ. 3. Изменить отлаженную в п. 2 программу таким образом, чтобы процессор реагировал на готовность ВУ с помощью подсистемы прерывания. 4. Продемонстрировать работающую программу преподавателю. 5. Оформить и защитить отчет по лабораторной работе
3.6.4. Содержание отчета
Текст программы с программным анализом флагов готовности ВУ.
3.6.5. Варианты заданий
Свой вариант задания (табл. 3.13) требуется выполнить в режиме программного контроля и с помощью механизма векторных прерываний.
Таблица 3.13 Задания к лабораторной работе №6
3.6.6. Пример выполнения работы
Пусть требуется составить программу, которая позволяет отображать на дисплее символы, набранные на клавиатуре, и производить очистку буфера клавиатуры и экрана дисплея при их заполнении. Кроме того, пусть при переполнении буфера клавиатуры или экрана дисплея тоногенератор издает разные звуковые сигналы. Текст программы для анализа состояния ВУ в режиме программного контроля представлен в табл. 3.14. Таблица 3.14 Текст программы с анализом флагов готовности ВУ
Таблица 3.14 Текст программы …
Пусть требуется получить программу, которая последовательно выводит на дисплей заглавные английские буквы в алфавитном порядке от A до Z. При этом каждая новая буква выводится с интервалом 3 сек. Таким образом, для выполнения программы потребуется использовать дисплей и таймер. Текст программы представлен в табл. 3.15.
Таблица 3.15 Текст программы с анализом флагов готовности ВУ
3.6.7. Задания повышенной сложности
Приведенные задания являются необязательными и выполняются по желанию: 1. Разработать программу тест на скорость ввода символов с клавиатуры. По звуковому сигналу включается клавиатура и таймер на T секунд. С данного момента можно начинать ввод символов, причем каждый символ отображается на дисплее. ведется подсчет количества введенных символов (после каждых 50 дается команда на очистку буфера клавиатуры, после 128 – очищается дисплей). Переполнение таймера выключает клавиатуру и выключает сигнал завершения ввода (тон этого сигнала можно сопоставить с количеством введенных символов). Параметр Т вводится из IR. Результат S (символ/с) – средняя скорость ввода символов выдается на OR. Поскольку модель учебной ЭВМ оперирует только целыми числами, то результат можно выдавать в формате S × 60 (символ/мин). 2. Разработать программу-тест на степень запоминания текста. Три различных варианта текста выводятся последовательно на дисплей на T 1 секунд с промежутками T 2. Далее эти тексты (то, что запомнилось) вводятся с клавиатуры (в режиме ввода строки) и программно сравниваются с исходными текстами. Выдается количество (процент) ошибок. 3. Разработать программу-калькулятор. Из буфера клавиатуры вводится последовательность цифр, которая преобразуется в десятичное число. Задаются разделители – знаки бинарных арифметических операций («+», «–», «*», «/») и знак «=». Результат переводится в ASCII-коды и выводится на дисплей.
3.6.8. Контрольные вопросы
1. При каких условиях устанавливается и сбрасывается флаг готовности клавиатуры Rd? 2. Возможно ли в блоке таймеров организовать работу всех трех таймеров с разной тактовой частотой? 3. 4. 5.
3.7. Лабораторная работа №7. Принципы работы кэш-памяти
3.7.1. Цель работы
Цель работы – изучение параметров кэш-памяти и выбранного алгоритма замещения на эффективность работы системы.
3.7.2. Общие положения
Эффективность кэш-памяти оценивается числом кэш-попаданий по отношению к общему числу обращений к памяти. Учитывая разницу в алгоритмах в режимах сквознойи обратнойзаписи, эффективность использования кэш-памяти вычисляется выражениям (2.2) и (2.3) соответственно для сквозной и обратной записи. Очевидно, эффективность работы системы с кэш-памятью будет зависеть не только от параметров кэш-памяти и выбранного алгоритма замещения, но и от класса решаемой задачи. Так, линейные программы должны хорошо работать с алгоритмами замещения типа очередь, а программы с большим числом условных переходов, зависящих от случайных входных данных, могут давать неплохие результаты с алгоритмами случайного замещения. Можно предположить, что программы, имеющие большое число повторяющихся участков (часто вызываемых подпрограмм и/или циклов) при прочих равных условиях обеспечат более высокую эффективность применения кэш-памяти, чем линейные программы. И, разумеется, на эффективность напрямую должен влиять размер кэш-памяти.
3.7.3. Последовательность выполнения работы
1. Ввести в модель учебной ЭВМ текст своего варианта программы (см. табл. 3.16) и ассемблировать его. 2. В меню Работа установить режим Кэш-память. 3. Открыть окно Кэш-память, в нем открыть диалоговое окно Параметры кэш-памяти и установить размер кэш-памяти – 4 ячейки, выбрать режим записи и алгоритм замещения в соответствии с первой строкой своего варианта из табл. 3.15. 4. В шаговом режиме выполнить программу, фиксируя после каждого шага состояние кэш-памяти. 5. Для одной из команд записи (WR) перейти в режим микрокоманд и отметить, в каких микрокомандах происходит изменение кэш-памяти. 6. Для кэш-памяти размером 8 ячеек установить параметры в соответствии со второй строкой своего варианта из табл. 3.15 и выполнить программу в шаговом режиме еще раз, фиксируя последовательность номеров замещаемых ячеек кэш-памяти. 7. Загрузить в модель учебной ЭВМ отлаженную программу из лабораторной работы № 2. 8. Установить следующие параметры кэш-памяти: размер – 4, режим записи – сквозная, алгоритм замещения – случайное, без учета бита записи (W). 9. Запустить программу в автоматическом режиме; по окончании работы просмотреть результаты работы кэш-памяти в окне Кэш-память, вычислить значение коэффициента эффективности K и записать в ячейку табл. 3.17, помеченную звездочкой. 10. Выключить кэш-память модели (Работа | Кэш-память) и изменить один из ее параметров – установить флаг с учетом бита записи (в окне Параметры кэш-памяти). 11. Повторить п. 8, поместив значение полученного коэффициента эффективности в следующую справа ячейку табл. 3.17. 12. Последовательно меняя параметры кэш-памяти, повторить пункты 8 – 10, заполняя все ячейки табл. 3.17. 13. Повторить все действия, описанные в пп. 7 – 12 для программы из лабораторной работы № 4, заполняя вторую таблицу по форме табл. 3.17.
3.7.4. Содержание отчета
1. Вариант задания – текст программы и режимы кэш-памяти. 2. Последовательность состояний кэш-памяти размером 4 ячейки при однократном выполнении программы (команды 1 – 7). 3. Последовательность микрокоманд при выполнении команды WR с отметкой тех микрокоманд, в которых возможна модификация кэш-памяти. 4. Для варианта кэш-памяти размером 8 ячеек – последовательность номеров замещаемых ячеек кэш-памяти для второго варианта параметров кэш-памяти при двукратном, выполнении программы (команды 1 – 7). 5. Две таблицы по форме табл. 3.8 с результатами моделирования программ из лабораторных работ № 2 и 4 при разных режимах работы кэш-памяти. 6. Выводы, объясняющие полученные результаты.
3.7.5. Варианты заданий
В качестве задания предлагается некоторая короткая «программа» (табл. 3.16), которую необходимо выполнить с подключенной кэш-памятью (размером 4 и 8 ячеек) в шаговом режиме для следующих двух вариантов алгоритмов замещения (табл. 3.15). Не следует рассматривать заданную последовательность команд как фрагмент программы, поскольку программа определяется как последовательность команд, выполнение которых позволит получить некий результат. Некоторые конструкции, например, последовательность команд PUSH R6, RET в общем случае не возвращает программу в точку вызова подпрограммы. Такие группы команд введены в задание для того, чтобы обратить внимание студентов на особенности функционирования стека. Во второй части лабораторной работы все варианты задания одинаковы: исследовать эффективность работы кэш-памяти при выполнении двух разнотипных программ, написанных и отлаженных при выполнении лабораторных работ № 2 и 4.
Таблица 3.15. Пояснения к вариантам задания 7
Таблица 3.16 Варианты задания 7
Таблица 3.17 Результаты исследования работы кэш-памяти
3.7.6. Контрольные вопросы
1. В чем смысл включения кэш-памяти в состав ЭВМ? 2. Как работает кэш-память в режимах обратной и сквозной записи? 3. Как зависит эффективность работы ЭВМ от размера кэш-памяти? 4. В какую ячейку кэш-памяти будет помещаться очередное слово, если свободные ячейки отсутствуют? 5. Как работает алгоритм замещения очередь при установленном флажке «с учетом бита записи»в диалоговом окне Параметры кэш-памяти? 6. Какой алгоритм замещения будет наиболее эффективным в случае применения кэш-памяти большого объема (в кэш-память целиком помещается программа)? 7. Как скажется на эффективности алгоритмов замещения учет значения бита записи W при работе кэш-памяти в режимах обратной и сквозной записи? 8. Для каких целей в структуру ячейки кэш-памяти включен бит использования? Как устанавливается и сбрасывается этот бит?
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
1. Жмакин А.П. Архитектура ЭВМ.– СПб.: БХВ-Петербург, 2010. – 352 с. 2. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. – СПб.: Питер, 2007. – 668 с. 3. Организация ЭВМ. – 5-е изд. / Хамахер К., Вранешич З., Заки С. – СПб.: Питер. – 2003. 4. Пильщиков В.Н. Программирование на языке ассемблера IBM PC. – М.: «ДИАЛОГ-МИФИ», 2005. – 288 с. 5. Юров В.И. Assembler. Учебник для вуза. 2-е изд. – СПб.: Питер, 2007 – 637 с. 6. Древс Ю.Г. Организация вычислительных систем: Учебник для вузов. – М.: Высш. шк., 2006. – 501 с. 7. Ирвин К. Язык ассемблера для процессоров Intel, 4-е издание: Пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 912 с.
Составитель
Денис Евгеньевич Турчин
|