Научная статья на тему 'Исследование производительности микропроцессорной системы методом компьютерного моделирования'

Исследование производительности микропроцессорной системы методом компьютерного моделирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
179
23
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кривенко Сергей Викторович, Кривенко Ольга Викторовна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Исследование производительности микропроцессорной системы методом компьютерного моделирования»

В1СНИК ПРИАЗОВСЬКОГО ДЕРЖАВНОГО ТЕХН1ЧНОГО УН1ВЕРСИТЕТУ 2003р. Вип.№13

УДК 681.3

Кривенко C.B.1, Кривенко О.В.2

ИССЛЕДОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ МЕТОДОМ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ

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

Компьютер представляет собой интегрированный набор алгоритмов и структур данных. Для процессора Pentium IV имеется более 200 инструкций для работы с целыми числами, почти 100 инструкций для работы с числами с плавающей запятой, около 30 системных инструкций, около 60 SIMD-инструкций и около 60 ММХ-инструкций [1]. В процессе выполнения программы последовательно происходит смена содержимого оперативной памяти, регистров и внешней памяти. Современные процессоры обладают такими особенностями работы, как кэшпамять первого и второго уровня, многочисленные конвейеры, которые поддерживают параллельное выполнение задач, управление страницами памяти, прогнозирование ветвления, использование специальных регистров, динамический анализ потока данных, спекулятивное выполнение и др. Для полного понимания организации компьютера необходимо также ясно представлять себе динамику его работы во время выполнения программы.

Существуют способы контроля состояния процессора при выполнении программы с помощью отладчика, встроенного в среды программирования [2, 3]. В данном отладчике возможно просмотреть приложение на уровне машинного и ассемблируемого кода, состояние регистров и флагов процессора и модуля обработки чисел с плавающей точкой, регистров ММХ, стека компьютера, данные дампа оперативной памяти. Компилятор языка высокого уровня генерирует и оптимизирует машинный код, скрывая процесс от программиста. Несмотря на сложность процесса создания эффективного кода на языке программирования низкого уровня, с помощью такого языка можно использовать специфические особенности работы процессора и машинного кода для его оптимизации на самом низком уровне.

Существуют специальные микропроцессорные лаборатории, позволяющие взаимодействовать непосредственно с микропроцессором путем ввода машинного кода в ее оперативную память [4]. При этом необходимо вручную преобразовывать программу на ассемблере в машинный код. Кроме того, у таких лабораторий высокая стоимость. Обычной альтернативой исследования динамики состояний компьютера с помощью его аппаратной реализации является программно-аппаратный компьютер. Данный виртуальный компьютер моделирует структуру данных и алгоритмы программирования желаемого компьютера на другом хост-компьютере.

Целью исследований является разработка новой программной модели микропроцессорной системы (МПС), предназначенной для исследования динамики состояний МПС при выполнении программ. На основе полученных данных вырабатываются рекомендации по повышению производительности за счет улучшения аппаратного и программного обеспечений.

Разработана программная модель МПС, позволяющая исследовать динамику работы компьютеров Intel-архитектуры (рис.1). Данная модель реализована на языке программирования С++ Builder. В моделируемом компьютере встроены набор алгоритмов по обработке различных типов простейших элементов и структур данных и набор элементарных операций для работы с данными; обеспечено управление последовательностью выполнения элементарных операций; предоставлены механизмы управления данными, которые необходимы для выполне-

1 ПГТУ, канд. техн. наук, доцент

2 ПГТУ, канд. техн. наук, доцент

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

и

В С

в Е

н Ь

Указатель стека

31

Аккуму- Регистр

лятор флагов

Шина данных (ШД)

О

Арифметико-логическое устройство

Микропроцессор

V

Регистр кода операции

Программный счетчик

Дешифратор кода операции

I

Устройство управления и синхронизации

Шина управления

Блок памяти

ОЗУ

ПЗУ

=0

Л а и» 1 на И « о

^ «

а <\>

в N ++

Я <и а

а 03 а

В а и в

о а Я) а

С

ШД

Порт

шд > В

ШД

>

С

Рис. 1 - Структурная схема моделируемого компьютера

Средством управления всеми операциями системы является программа монитора. В основном объеме памяти монитору отводятся адреса с 0000 до 02РБ (табл.1). Но можно расширить эту область до ОЗБР, запрограммировав соответствующую область ПЗУ. Для записи создаваемых программ в ОЗУ зарезервированы адреса с 8000 до 83РР. Адреса с 83С7 до 83РР используются программой монитора и не могут быть использованы под программы.

Таблица 1 - Карта памяти виртуального компьютера

Адрес Емкость ПЗУ/ОЗУ Использование

памяти

РРРР - 8400 31Кб - Неиспользуемая область

83РР- 83С7 576 ОЗУ Рабочая область монитора

83С6 - 8000 9676 ОЗУ Область пользователя

7РРР - 0600 30,5Кб - Неиспользуемая область

05РР - 0400 5126 ПЗУ Область пользователя

03РР - 0300 2566 ПЗУ Дополнительная область монитора

02РР - 0000 7686 ПЗУ Область монитора

Микропроцессор (МП) содержит ряд внутренних регистров, часть из которых может использоваться для хранения и обработки данных: 83ЕВ - аккумулятор; 83Е9 - В регистр; 83Е8 -С регистр; 83Е7 - Б регистр; 83Е6 - Е регистр; 83Е5 - Н регистр; 83Е4 - Ь регистр; 83Е2-^83ЕЗ - указатель стека (младший и старший байты). Управление данными регистрами осуществляется непосредственно управляющей логикой внутри процессора.

В МП специальные функции выполняют следующие регистры: 83Е(К83Е 1 - программный счетчик (младший и старший байты); 83ЕА - регистр признаков (рис. 2). Адрес следующей выполняемой команды хранится в программном счетчике (1Р). В общем случае МП последовательно считывает одну ячейку памяти за другой, выполняя указанные операции. После считывания команды из памяти, содержимое 1Р увеличивается на единицу. При выполнении команд перехода, вызова или возврата, а также при прерывании выполняемой программы, начинается выполнение команд с другого адреса, указываемого в 1Р.

Б Ъ X АС X р X С

-Знак

-Нуль

Дополнительный перенос

Рис.2 - Регистр признаков

Интерфейс виртуального компьютера обеспечивает прямую связь с микропроцессорной системой и имеет клавиатуру, дисплей, три тумблера, связанных с МП посредством порта ввода/вывода, и переключатели режима работы (рис.3). Клавиатура обеспечивает ввод программ, данных для хранения и команд управления работой компьютера. Программа монитора производит опрос и обработку кодов клавиш. Данные с клавиатуры считываются программой монитора путем установки периферийного программируемого интерфейса в режим сканирования клавиатуры.

Выходным устройством, служащим для визуального наблюдения за внутренним состоя-

| _Модель микропроцессорной системы

Файл Эмулятор Помощь

Режим работы^

Авт. С Пошаговый С Отладочный

□ ЗЕ

Г Тумб. 1 Г Тумб. 2 Г Тумб. 3

В озер.

Уст. Ад.

АД+

Вывод

Пуск

зп

дд-

Ввод

Сброс

Breakpoints

2J

д[ТсГ в [осГ с[То~ d[og~ Е [00~ н[осГ L [осГ F [оо-

■ □ ■ В ■ □ ■ ■

С Р AC Z S

SP

83С5

PC 8025

Рис.З - Интерфейс виртуального компьютера

нием системы, является дисплей, состоящий из восьми семисегментных цифровых индикаторов. На них индицируются входные данные, адреса памяти, данные памяти, содержимое регистров центрального процессора и флагов состояний в соответствии с операциями клавиатуры. Информация отображается на индикаторах динамически в шестнадцатеричном коде. Данные на индикаторы передаются из восьми старших ячеек ОЗУ с адресами 83F8...83FF при помощи прямого доступа к памяти без участия МП. В каждой из этих ячеек ОЗУ находится семисег-ментный код, соответствующий своему индикатору. Программа монитор содержит подпрограмму SEGCG (адрес=01С0), которая преобразует шестнадцатеричные коды в семисегмент-ные и заносит их в соответствующие ячейки памяти. Исходные данные для этой программы должны находиться в ячейках 83F4...83F7. Каждый байт из этих ячеек соответствует паре индикаторов: содержимое ячейки 83F4 после преобразования высветится на двух левых индикаторах; содержимое ячейки 83F7 - на двух правых.

Программируемый периферийный интерфейс (ПЛИ) предназначен для сопряжения МП с различными периферийными устройствами посредством трех шин ввода/вывода, соответствующих трем портам: две 8-разрядные шины (порт А и В, адреса F8 и F9, соответственно) и две 4-разрядные шины (порт С, адрес FA). Каждый порт может быть запрограммирован либо на ввод, либо на вывод информации. То есть сначала на ППИ подается управляющее слово по адресу FB, которое его программирует, а потом с помощью шины адреса и управляющих сигналов происходит выбор того или иного порта данного интерфейса.

Старших четыре бита порта С и порт А используются клавиатурой. В случае, если ни одна из кнопок ряда, на который подан низкий уровень, не нажата, в порт А поступит код FF, если же нажата хотя бы одна кнопка, то в соответствующем разряде порта А появится логический

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

В виртуальном компьютере прерывания используются для организации шагового режима, что позволяет подробно проследить работу программ. При пошаговом выполнении программа останавливается между командами. Если тумблер режима находится в положении «Пошаговый» и нажимается кнопка ПУСК, то на МП поступает сигнал прерывания, который воспринимается им как RST 7. Подпрограмма обработки прерывания RST 7 является подпрограммой шагового режима.

При отладке программ удобно использовать точки прерывания с помощью команды RST

1, выводящей программу пользователя на монитор. Точка прерывания останавливает программу в нужном месте, поэтому не надо выполнять предыдущие команды по шагам. Если программа выполняется правильно, точка прерывания может быть заменена NOP.

В моделируемом компьютере встроено 244 простейших операций, которым сопоставлены

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

Программа пишется сначала на языке ассемблера в специальном редакторе, который удобен для программиста. Затем программа автоматически переводится на машинный язык для облегчения процесса разработки. Реализация языка программирования осуществляется путем создания транслятора, который транслирует программы, написанные на языке ассемблера, в программы на машинном коде, которые уже могут непосредственно выполняться на виртуальном компьютере [5]. МП затем считывает эти коды из памяти и выполняет указанные операции. Если данные будут неправильно истолкованы, то они не будут обработаны как код операции и трансляция программы не произойдет.

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

С помощью разработанной модели был осуществлен хронометраж машинного кода программ, сгенерированных автоматически, и улучшенных вручную. В результате осуществленных исследований было установлено, что можно добиться повышения производительности выполнения программ в МПС от 20 % до 150 %. Особенно повышение производительности существенно для программ, содержащих сложные циклы и ветвления, математические вычисления и действия с указателями. Для ускорения работы МПС для программного и аппаратного обеспечений необходимо упрощать структуру; исключать медленно работающие технологии; сокращать использование оперативной памяти; правильно использовать технологию прогнозирования переходов и распараллеливания инструкций и т.д. Разработанный на ассемблере код затем можно непосредственно вставлять в виде блоков в программу на языке высокого уровня.

Выводы

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

Перечень ссылок

1. Гук М. Процессоры Pentium IV, Athlon и другие / М. Гук, В. Юрое. - СПб: Питер, 2002. -520с.

2. C-Builder. Руководство разработчика.- Том 1. Основы / Холингвэрт Д., Баттерфилд Д., Свофт Б. и др. -М., 2001. - 880с.

3. Ирвин К. Язык ассемблера для процессоров Intel, 3-е издание.: Пер. с англ. / К. Ирвин - М.: Вильяме, 2002. - 616с.

4. Микропроцессорная лаборатория «Микролаб КР580ИК80». Техническое описание и инструкция по эксплуатации. 3.031.068 ТО. - М.: 127с.

5. Пратт Т. Языки программирования, разработка и реализация / Т. Пратт, М. Зелковиц. -СПб: Питер, 2002. - 688с.

Статья поступила 07.04.2003

i Надоели баннеры? Вы всегда можете отключить рекламу.