Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы / Мышев А.В. (ч.2)

.pdf
Скачиваний:
29
Добавлен:
11.06.2015
Размер:
580.8 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ОБНИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ АТОМНОЙ ЭНЕРГЕТИКИ

Факультет кибернетики

А.В. МЫШЕВ

АЛГОРИТМЫ И ПРОГРАММИРОВАНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

ВПРОЦЕССОРНЫХ СИСТЕМАХ

СФОННЕЙМАНОВСКОЙ АРХИТЕКТУРОЙ

Часть 2

Учебное пособие по курсу «Процессоры и запоминающие устройства»

Обнинск 2004

УДК 681.31

Мышев А.В. Алгоритмы и программирование арифметических операций в процессорных системах с фоннеймановской архитектурой. Часть 2. Учебное пособие по курсу «Процессоры и запоминающие устройства» для студентов специальности 22.01. – Об-

нинск: ИАТЭ, 2004, – 60 с.

В пособии на примере архитектуры процессорной системы, реализованной на базе чипа КР580ИК80, излагаются технология и техника разработки алгоритмов и программ арифметических операций. Описаны программная модель процессорной системы и система команд, основные принципы и методы разработки алгоритмов арифметических операций и отладки программ в виртуальной среде взаимодействия процессора и ЗУ.

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

Илл. 13, табл. 6, библиограф. 7 наим.

Рецензенты: к.т.н., А.А.Абакумов (мл) к.т.н., Е.Г. Типикин

Темплан 2004, поз.9

©А.В. Мышев, 2004 г.

©Обнинский государственный технический университет атомной энергетики, 2004 г.

2

ПРЕДИСЛОВИЕ

При разработке алгоритмов арифметических операций и создании прикладных программ важным “атрибутом” являются ресурсы процессорной системы и ее архитектура, система команд и модель системы, принципы и логика взаимодействия процессора и ЗУ.

Процессорная система на базе чипа КР580ИК80 и ее программная модель позволяют в наиболее доступной форме использовать ее для изучения основных принципов техники и технологии программирования арифметических операций, разобраться в логической организации связи и архитектуре основных номенклатурных элементов процессорной системы – процессора и запоминающих устройств.

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

Система команд арифметических и логических операций и команды управления процессорной системой показывает её вычислительные и функциональные возможности.

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

Рассматриваемые примеры алгоритмов и программ арифметических операций над операндами разных форматов способствуют хорошему пониманию излагаемого материала.

3

ГЛАВА 4. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ В ПРОЦЕССОРНОЙ СИСТЕМЕ НА БАЗЕ ЧИПА КР580ИК80

4.1.Общая характеристика чипа КР580ИК80

Микросхема КР580ИК80 (далее сокращенно К580) представляет собой однокристалльный центральный процессор с фиксированными длиной машинного слова (8 битов) и системой команд. Характеристика ее как центрального процессора предполагает, что для разработки функционально законченного изделия – специализированной микропроцессорной системы (микросистемы) или микрокомпьютера широкого назначения – к микропроцессору (МП) необходимо подключить память и средства ввода-вывода (ВВ). МП К580 рассчитан на разнообразные применения в качестве ядра системы, выполняющего обработку цифровых данных. Он изготовляется по NМОП – технологии и выпускается в 40-контактном корпусе с двусторонним расположением выводов (типа DIP). На кристалле МП располагается около 5000 транзисторов. Напряжения питания равны +12В±5%, +5В±5% и −5B±5%, потребляемая мощность не превышает 1 Вт, рабочий диапазон температур составляет от −10 до +70°С. МП синхронизируется двухфазными сигналами с частотой до 2МГц от микросхемы генератора КР580ГФ24.

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

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

4

При обращении к памяти МП выдает на внешнюю шину адреса А15–А0 16-битный адрес и отдельный управляющий сигнал, идентифицирующий тип операции. Старшие 8 битов адреса А15–А8 часто называются адресом страницы, а младшие 8 битов А7-А0 –

адресом в странице (или строкой). Следовательно, адресное про-

странство, или поле памяти, состоит из 64К ячеек (байт); оно показано на рис. 4.1. Можно также считать, что адресное пространство состоит из 256 страниц по 256 строк в каждой. Два любых соседних байта образуют слово; адресом слова считается меньший из двух адресов байта, причем по этому адресу хранится младший байт слова. В системах на базе МП К580 понятия логического и физического адресов совпадают, а в других микропроцессорах они могут различаться.

Различные области адресного пространства группируются в блоки из последовательных ячеек, образующих так назы-

ваемую карту памяти.

Блоки относятся к аппаратным устройствам (блоки ПЗУ и ЗУПВ) или к программным элементам, например, к основной программе, процедуре обработки прерываний или драйве-

рам (подпрограммам)

ввода-вывода. Рис 4.1. Адресное пространство памяти микропроцессора КР580ИК80

Подсистема ВВ представлена входными портами (портами ввода) и выходными (портами вывода). Данные от устройств ввода подаются во входные порты и считываются микропроцессором по шине данных D7-D0. Передача данных в МП называется вводом или считыванием (загрузкой). Выходные порты воспринимают

5

Рис 4.2. Адресное пространство вводавыводв микропроцессора КР580ИК80.

данные от МП (с шины данных) и передают их в устройства вывода. Передача данных из МП называется выводом или записью. В простейшем случае входные и выходные порты представляют собой буферные регистры с конкретными номерами (адресами) и осуществляют взаимодействие с периферийными устройствами. Многие микросхемы программируемых контроллеров периферийных устройств для программиста выглядят как набор входных/выходных портов.

В системах на базе МП К580 можно организовать один из двух основных способов ВВ.

Первый способ, называемый изолированным ВВ, предполагает наличие специальных команд IN-ввода и OUTвывода. Эти команды содержат прямой адрес входного или выходного порта, к которому производится обращение. Длина адреса составляет один байт, поэтому пространство ВВ, показанное на рис.4.2, состоит из 256 входных и 256 выходных портов. Оно изолировано от пространства памяти в

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

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

6

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

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

4.2.Программная модель процессорной системы

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

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

7

МП К580 показана на рис. 4.3. Часто при разработке программ привлекаются регистры данных или регистры общего назначения (РОН), находящиеся в полном распоряжении программиста. В эту группу входит семь регистров с мнемоническими обозначениями А, В, С, D, Е, Н, L; эти обозначения применяются для идентификации регистров в командах при программировании на языке Ассемблер. Если говорить об «идеальных» РОН, все эти регистры должны обладать одинаковыми функциональными возможностями. Однако в МП К580 этого нет, и РОН оказываются довольно специализированными, что приходится учитывать при программировании.

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

Функциональные возможности регистров В, С, D, Е примерно одинаковы, но регистры D и Е обладают большей гибкостью благодаря команде XCHG, осуществляющей обмен содержимого регистров HL и DE. Об особой роли регистров Н и L, считающихся основным указателем памяти в МП, говорится ниже.

Особенность МП К580 заключается в том, что РОН допускается программно объединять в так называемые регистровые пары (register pair), что показано на рис. 4.3 пунктиром. При таком объединении (его называют также сцеплением и конкатенацией) из 8- битных регистров образуются 16-битные регистры, которые можно привлекать для адресации памяти, а также хранения 16-битных данных. Таким образом, содержимое регистровой пары допускает двойную интерпретацию: адрес памяти и 16-битные данные, формат которых определяет программист. Если регистр или, как в данном случае, регистровая пара применяются для адресации памяти,

их называют указателями памяти.

Наиболее гибкой из всех регистровых пар является Н-пара. Объясняется это тем, что адресуемый ею байт в памяти считается

8

«регистром» М микропроцессора (от Меmогу – память). «Регистр»

Мимеет трехбитный номер (адрес) 110, и все команды (в которых фигурируют явные регистры МП) допускают и указание «регистра» М. Например, его содержимое можно передать в любой другой регистр МП, прибавить к аккумулятору или загрузить в «регистр»

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

Рис 4.3. Программная модель микропроцессора КР580ИК80

Как видно из программной модели, в МП есть еще три специализированных регистра. Два из них – программный счетчик РС и

9

указатель стека SP – имеют длину 16 битов и функционируют только как указатели памяти, а 8-битный регистр флажков (F- регистр) предназначен для регистрации некоторых особенностей или признаков результатов операций. Остановимся вкратце на функциях этих регистров.

При выполнении программы необходимо «следить» за ее отдельными командами так, чтобы к моменту окончания текущей команды в специальном регистре МП был образован адрес следующей команды. Такую функцию «слежения» за командами и выполняет программный счетчик РС, называемый также счет-

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

РС образуется адрес следующей по порядку команды.

 

 

Если МП после оконча-

 

ния

текущей команды

 

обращается за очередной

 

командой именно по

Рис 4.4. Формат регистра флажков мик-

этому адресу, то говорят,

что

реализуется

естест-

ропроцессора КР580ИК80

венный

порядок

выпол-

 

 

нения

команд.

Однако

время от времени по логике программы необходимо нарушать естественный порядок. Такую функцию выполняют специальные команды передачи управления (их иногда образно называют командами управления программой), которые сами задают адрес очередной команды, называемый адресом перехода. Все команды передачи управления в МП К580 определяют полный 16-битный адрес перехода. Очевидно, для передачи управления команда должна просто загрузить адрес перехода в РС, и МП обратится за следующей командой по этому адресу.

Регистр флажков, формат которого показан на рис. 4.4, имеет длину 8 битов, но используются в нем только 5 битов. Команды

10