Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
231
Добавлен:
04.01.2020
Размер:
5.37 Mб
Скачать

Контроллер прямого доступа к памяти (КПД) обслуживает процесс прямо-

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

Программируемые интервальные таймеры (ПИТ) выполняют операции над временными интервалами (часы реального времени, генерация временных меток, формирование широтно-модулированных импульсов и т. д. На рисунке 3.4 показан таймер с тремя выходными каналами.

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

Передачи данных в МПС осуществляются по системной шине данных DB, разрядность которой определяет разрядность МП. Эти передачи двунаправлены,

направление задается двунаправленным шинным формирователем (ДШФ) или BD

(от англ. Bus Driver) в зависимости от сигнала Т (от англ. Transmit). При активном

низком уровне формируемого МП сигнала чтения

RD

(от англ. Read) данные пе-

 

редаются через ДШФ справа налево, при пассивном – в обратном направлении. К системной шине данных подключены информационные выводы всех модулей МПС.

Выводы Х1 и Х2 служат для подключения кварцевого резонатора или иных контуров, задающих частоту тактовому генератору, расположенному в МП.

Вход

RESIN

(от англ. Reset Input) является инверсным входом асинхронного

 

сброса МП. Сброс может быть осуществлен замыканием ключа К и автомати-

чески с помощью RC-цепи при включении питания Uп. В этом случае благодаря

RC-цепи напряжение на входе RESIN после включения питания нарастает постепенно, и в течение некоторого времени остается низким, что равноценно подаче

на этом интервале времени сигнала RESIN.

181

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

щие сигналы на основе сигналов управления МП. К ним относятся: MEMR ,

MEMW

,

IOR

,

IOW

.

 

 

 

ПЗУ (ROM, от англ. Read-Only Memory) предназначено для хранения фиксированных программ и данных, оно является энергонезависимым и при выключении питания информацию не теряет. ОЗУ (RAM, от англ. Random Access Memory) хранит оперативные данные (изменяемые программы, промежуточные результаты вычислений и др.), является энергозависимым и теряет информацию при выключении питания (если не применяются специальные методы, например, автоматическое подключение резервного питания на время отсутствия основного). Для приведения системы в работоспособное состояние после включения питания ОЗУ необходимо загрузить необходимой информацией.

Устройства ввода-вывода (УВВ) или внешние устройства (ВУ) – техниче-

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

Это и выполняется адаптерами и другими интерфейсными блоками.

3.2.3 Мультиплексирование шины адресов/данных

Многие микропроцессоры имеют мультиплексируемую шину адресов/данных (рисунок 3.5). Применение мультиплексируемых шин позволяет уменьшить число внешних выводов кристалла, но приводит к снижению производительности МПС. В этом случае разрядность адресной шины сокращается вдвое, а по ней в систему передается только старший полуадрес. Младший полуадрес в начале машинного цикла выдается МП по мультиплексируемой шине адресов/данных AD7-0. Управляющим сигналом ALE (от англ. Address Latch Enable) младший полуадрес загружается в специальный внешний регистр (ре-

182

гистр-защелку адреса), где и сохраняется на все время машинного цикла. Выход регистра совместно с выходом ШФ образуют полный адрес А15-0. После передачи младшего полуадреса в регистр шина AD7-0 отдается для передачи данных, при этом сигнал ALE = 0. Направление передач задается ДШФ сигналом на его входе Т.

8

ШФ

8

 

А15-8

16

Шина адреса

ALE

РГ

8

 

 

8

МП

 

8

 

AD

 

 

7-0

 

 

 

ДШФ

Шина данных

 

8

RD

Т

 

Рисунок 3.5 – Мультиплексирование шины адреса/данных

3.3.4 Архитектура микропроцессоров и микропроцессорных систем

До сих пор мы рассматривали только один тип архитектуры МПС – архитектуру с общей шиной для данных и команд (одношинную, или принстонскую,

фон-неймановскую архитектуру).

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

183

что ограничивает производительность МПС. Однако в силу своих достоинств принстонская архитектура сохранила свое место до настоящего времени.

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

По другому архитектурному признаку, связанному с характером системы команд, микропроцессоры делятся на:

-МП CISC – архитектуры;

-МП RISC – архитектуры;

-МП VLIW – архитектуры.

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

МП RISC – архитектуры (от англ. Reduced Instruction Set Computer) имеют сокращенную систему команд, из которой исключены редко применяемые команды. Форматы команд, как правило, идентичны (например, все команды содержат по 4 байта), резко уменьшено число используемых способов адресации. Данные, как правило, обрабатываются только с регистровой или непосредственной адресацией. Значительно увеличено число регистров МП, т. е. его емкая внутренняя память позволяет редко обращаться по системным шинам к модулю памяти, а это повышает быстродействие системы. Идентичность временных циклов выполнения команд отвечает потребностям конвейерных схем. В результате может быть достигнуто упрощение схемы МП при увеличении его быстродействия.

184

Последними по времени появления стали МП VLIW – архитектуры (от англ. Very Long Instruction Word), особенность которых состоит в использовании очень длинных команд (16 и более байт). Отдельные поля длинной команды определяют несколько подлежащих реализации операций, которые могут выполняться параллельно во времени в нескольких операционных устройствах МП. Таким образом, одна длинная команда определяет сразу группу операций. МП VLIW – архитектуры считаются перспективными для высокопроизводительных МП.

3.2.5 Структура простого микропроцессора

Во всем мире широко применяются МП фирмы Intel и их аналоги. Эта фирма разработала первый МП, затем целый ряд их семейств и в настоящее время производит 80…90 % от общего мирового объема выпуска МП.

Рассмотрим структуру МП близкую к структуре простых МП Intel, (например, Intel 8085A), с которых начиналось развитие микропроцессорной техники. Модель МП имеет принстонскую архитектуру и мультиплексируемую шину адресов/данных (рисунок 3.6). МП имеет восьмиразрядную внутреннюю шину данных, через которую его блоки обмениваются информацией. Эта шина передает байты между внутренними регистрами МП или обменивается с модулями МПС через мультиплексируемую шину адресов/данных AD7-0. При таком обмене адрес ячейки памяти или ВУ поступает в регистр адреса RA. Буфер адреса BA с тремя состояниями выдает старший байт адреса на адресную шину А15-8. Буфер шины адресов/данных BA/ D с тремя состояниями передает на шину AD7-0 младший байт адреса для его фиксации во внешнем регистре. Из двух байтов формируется 16-разрядный адрес памяти. Адреса ВУ являются восьмиразрядными. При адресации ВУ адресная информация на линиях А15-8 и AD7-

0дублируется. Затем через шину AD7-0 передается байт данных.

Воперационный блок МП входят:

- АС (от англ. Accumulator) – регистр-аккумулятор (рисунок 3.6), выполненный на двухступенчатых триггерах и способный хранить одновременно два слова (один из операндов и результат операции);

185

INTA

 

TRAP

 

 

 

 

 

INTR RST n1

 

RST n2

 

 

 

 

 

Управление прерываниями

 

 

 

 

 

 

 

 

8

 

Внутренняя ШД

 

 

 

 

 

 

 

8

8

 

8

 

 

8

 

 

 

 

 

 

 

 

AC

TR

 

IR

 

 

 

 

 

 

 

 

 

MUX/ DMUX

8

8

 

8

 

 

W

Z

 

 

 

 

 

 

ALU

DA

RF

Дешифратор

 

B

C

команд и

 

 

 

 

 

 

 

D

E

 

 

 

формирователь

 

 

 

 

 

 

 

8

 

 

машинных циклов

 

H

L

 

 

 

 

 

 

SP

 

 

 

 

 

 

 

PC

 

Синхронизация и управление

 

 

 

 

Синхро-

 

 

 

 

 

INC/ DEC

Управление шиной

ПДП

Сброс

 

 

 

низация

 

 

 

 

 

 

 

 

RA

 

 

 

 

 

 

 

 

x1 x2 CLK RD WR S1 S0 IO/M ALE

HLDA RESET

16

8

 

 

 

 

READY

HOLD

RESIN

 

8

8

 

 

 

 

 

 

BA

BA/D

 

 

 

 

 

 

8

8

 

 

 

 

 

 

AA

ADAD

 

 

 

 

 

 

1515...-818

77...-0

Рисунок 3.6 – Структура простого микропроцессора

-TR (от англ. Temporary Register) – регистр временного хранения одного из операндов;

-ALU (от англ. Arithmetic-Logic Unit) – арифметико-логическое устройство (АЛУ), выполняющее действия над двумя словами -операндами. Аккумулятор служит источником операнда А и приемником результата, TR – источником второго операнда. АЛУ функционирует согласно соотношению А :=А*В, где звездочкой обозначен обобщенный символ опер а- ции. Непосредственно выполняются операции сложения, вычитания, циклического сдвига, сравнения слов, поразрядные логические операции (конъюнкция, дизъюнкция, сложение по модулю 2). Более сложные операции (умножение,

186

деление и др.) выполняются по подпрограммам. В АЛУ имеется схема перевода двоичных чисел в двоично-десятичные DA (от англ. Decimal Adjust);

-RF (от англ. Register Flags) – регистр флажков, т. е. битов, указывающих признаки результатов операций, выполненных в АЛУ. Указываются пять признаков: Z (от англ. Zero) – нулевой результат, С (от англ. Carry) – перенос, АС (от англ. Auxiliary Carry) – вспомогательный перенос, S (от англ. Sign) – знак, Р (от англ. Parity) – четность веса результата. Признак вспомогательного переноса AC (переноса между младшей и старшей тетрадами восьмиразрядного слова) нужен для выполнения операций в двоично-десятичном коде. Смысл остальных признаков ясен из их наименований. Признаки служат для управления ходом процесса обработки информации.

3.2.6Блок регистров

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

-Регистры W и Z. Эти регистры предназначены для хранения адресной части команды при ее выборке из памяти. Они недоступны для программиста и используются только блоком внутреннего управления. Второй и третий байты команды, если они имеются, автоматически поступают в регистры W и Z.

-Регистры B, C, D, E, H, L. Эти восьмиразрядные регистры относятся к регистрам общего назначения (РОН), так как адресуются программой и могут быть использованы по усмотрению программиста. Они могут применяться либо по отдельности, либо в виде пар B-C, D-E, H-L, играющих роль 16разрядных регистров и именуемых как пары B, D и H. Регистры H, L (от англ. High и Low) могут использоваться произвольно, т. е. играть роль РОН, как правило они используются для размещения адресов при косвенной адресации.

-Регистр SP. 16-разрядный регистр SP (от англ. Stack Pointer) – указатель стека. Стек (память с последовательным доступом), удобен для запоминания массива слов, так как не требуется адресовать каждое слово отдельно. Слова загружаются в стек в определенном порядке, при считывании также заранее известен порядок их следования. В частности, стек удобен при запоминании состояний регистров в момент прерывания программы. Стек имеет дно и верхушку, направление возрастания номеров ячеек в нем может быть различным (обыч-

187

ный и перевернутый стеки). При организации типа LIFO (от англ. Last In – First Out) последнее записанное в стек слово считываются первым. Аппаратно стек реализуется в ОЗУ, где для него выделяется определенная область. Указатель стека SP содержит адрес последней занятой ячейки. Задавая в SP начальное значение (нижняя граница стека), можно размещать стек в той или иной области ОЗУ, следя при этом за тем, чтобы эта область не использовалась для других целей.

При байтовой организации памяти и записи в стек содержимого регистровой пары (команда PUSH rp) старший байт запоминается по адресу (SP) – 1, а младший - по адресу (SP) – 2, содержимое SP уменьшается на 2. При чтении из стека (команда POP rp) содержимое двух верхних ячеек стека помещается в соответствующие регистры, а содержимое SP увеличивается на 2.

-Регистр PC. 16-разрядный программный счетчик PC (от англ. Program Counter) содержит адрес команды, посредством которого МП может обращаться в любую ячейку памяти. При сбросе МП регистр РС принимает нулевое состояние, которое является адресом первой исполняемой команды, иначе говоря, выполнение программы начинается с нулевой ячейки. Длина команды составляет 1…3 байта. Содержимое PC после выборки очередного байта из памяти автоматически инкрементируется, в результате в PC появляется адрес следующей команды, если текущая команда была однобайтовой, или адрес следующего байта текущей команды в противном случае.

-Схема INC/ DEC (от англ. Increment/ Decrement). Эта схема изменяет передаваемые через нее слова на +1 или –1.

-Адресный регистр RA. Через этот регистр адреса выдаются на буферы адресов ВА и адресов/данных BA/ D и далее на системные шины МПС. Шина адресов/данных AD7-0 мультиплексируется.

-Регистр команд IR (от англ. Instruction Register). Этот регистр принимает первый байт b1 выбираемой из памяти команды, содержащий код операции.

3.2.7 Дешифрация команд

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

188

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

Существуют различные способы дешифрации команд. Примером может служить схема, показанная на рисунке 3.7.

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

От ГТИ

 

РТ

 

 

КОп

 

1

2

. . .

m

1

2

. . .

k

 

 

 

 

 

 

 

Дешифратор команд и формирователь

 

 

 

машинных циклов

 

 

 

 

 

. . .

 

 

 

. . .

 

Управляющие

Осведомительные

 

сигналы

 

сигналы

 

Рисунок 3.7 – Структурная схема блока дешифрации команд и формирования машинных циклов

189

3.2.8 Блок синхронизации и управления

Блок служит для синхронизации процессов, генерации сигналов состояния и управления шиной (ВУ МПС). Рассмотрим функции выводов и сигналов блока синхронизации и управления (рисунок 3.6):

-Х1, Х2 – к этим выводам подключается кварцевый резонатор или другие цепи, задающие частоту внутреннего синхрогенератора МП. Возможна также синхронизация через эти выводы от внешнего генератора ГТИ;

-CLK – выход синхроимпульсов для модулей МПС;

-RD, WR – стробы чтения и записи. Низкий активный уровень соответствующего сигнала свидетельствует о том, что адресованная ячейка памяти или внешнее устройство должны выполнить операцию чтения или записи. Выводы переходят в третье состояние в режимах захвата HOLD, останова HALT и сброса RESET;

-S1, S0 – сигналы состояния МП, сообщаемые внешней среде. Формируются

вначале и сохраняются во время всего машинного цикла;

-IO/ M – сигнал выбора внешнего устройства или памяти. При высоком уровне происходит обращение к ВУ, при низком – к памяти. Сигналы S1, S0 и

IO/ M

совместно идентифицируют тип машинного цикла;

-READY – входной сигнал, показывающий, что память или ВУ готовы к обмену с МП. Если готовности памяти или ВУ нет (READY = 0), то МП входит

всостояние ожидания, которое может длиться любое целое число тактов вплоть до появления единичного уровня сигнала READY;

-ALE – строб разрешения загрузки младшего байта адреса памяти во внешний регистр для его хранения в течение машинного цикла (рисунок 3.5). Появляется в первом такте машинного цикла. Регистр загружается отрицательным фронтом сигнала ALE;

-HOLD – сигнал запроса захвата шин. Формируется ВУ, которое нуждается

вобмене данными с памятью в режиме прямого доступа (ПДП);

-HLDA – сигнал подтверждения захвата шин (от англ. Hold Acknowledge). Является ответом МП на сигнал HOLD, формируемым в конце текущего машинного цикла. Свидетельствует об отключении МП от системных шин. При

этом шины и линии управляющих сигналов RD, WR , IO/ M и ALE переводятся в третье состояние;

190