Среднее Заочное отделение / 4 семестр / Цифровые и микропроцессорные устройства / Электронный конспект лекций (ЦиМПУ)
.pdfКонтроллер прямого доступа к памяти (КПД) обслуживает процесс прямо-
го обмена данными между ВУ и памятью. При обычном обмене данными между ВУ и памятью сначала слово читается МП из устройства-источника данных, потом оно записывается МП в устройство-приемник, что требует двух машинных циклов. При прямом доступе к памяти (ПДП) МП отключается от шин системы и передает управление шинами предварительно запрограммированному КПД, который реализует более быструю (за один машинный цикл) передачу данных непосредственно между источником и приемником.
Программируемые интервальные таймеры (ПИТ) выполняют операции над временными интервалами (часы реального времени, генерация временных меток, формирование широтно-модулированных импульсов и т. д. На рисунке 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