Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типовые структуры операционного блока микропроцессора

Поиск

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

Рис. 18.22 Трёхшинная структура операционного блока микропроцессора

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

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

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

Обычно при построении операционного блока микропроцессора один из регистров-источников и регистр-приемник информации объединяют. Это позволяет сократить количество адресных шин в управляющем коде микропроцессора. В результате минимальное количество регистров в сверхоперативном ОЗУ составляет два регистра, однако количество регистров в операционном блоке обычно делается равным шестнадцати. Этого количества регистров вполне достаточно для реализации достаточно сложных алгоритмов обработки данных и в то же время не приводит к необходимости значительного увеличения адресной части управляющей микрокоманды.

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

Для обеспечения возможности работы с числами, число разрядов в которых превышает разрядность АЛУ, в состав операционного блока включен дополнительный триггер, в котором хранится флаг переноса в следующий разряд "C". При этом для того, чтобы операционный блок мог выполнять операции суммирования или вычитания с одиночной разрядностью чисел, к входу переноса АЛУ можно подключать не только выход триггера хранения флага переноса C, но и подавать уровень логического нуля или единицы.

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

Рис. 18.23 Двухшинная структура операционного блока микропроцессора

На данном рисунке сигнал синхронизации не показан, однако этот сигнал подводится ко всем регистрам и триггеру хранения признака переноса C. В этой структуре операционного блока микропроцессора используется только две шины передачи данных, поэтому она получила название двухшинной. Для формирования двух источников данных для входов АЛУ в двухшинной схеме операционного блока микропроцессора используются два регистра временного хранения TMP1 и TMP2.

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

Наименьшую площадь на кристалле занимает одношинная структура операционного блока микропроцессора. Структурная схема подобного операционного блока микропроцессора приведена на рис. 18.24.

Рис. 18.24 Одношинная структура операционного блока микропроцессора

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

Наиболее простой структурой, как это тоже уже упоминалось ранее, обладают команды аккумуляторного микропроцессора. Давайте остановимся подробнее на принципах построения команд подобного процессора.

Команды микропроцессора

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

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

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

Многобайтные команды могут содержать адреса операндов, размещенных в ОЗУ (или ПЗУ) системной памяти микропроцессора или сами операнды (данные). Форматы командмикропроцессора очень сильно зависит от его архитектуры. Рассмотрим пример системы команд восьмиразрядного аккумуляторного процессора, построенного по архитектуре фон Неймана. Форматы команд подобного процессора приведены на рис. 18.25.

 

КОП Однобайтовая команда

 

КОП Двухбайтовая команда
data  

 

КОП Трехбайтовая команда
Адрес ст.  
Адрес мл.  

Рис. 18.25. Форматы различных команд микропроцессора

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

При разработке системы команд проектировщик микропроцессора может назначить любой операции любое число. Например, для операции сложения можно назначить код 1, для операции вычитания код 12 и т.д. Для выполнения одной и той же операции над разными регистрами процессора назначаются разные коды команд. Поэтому для операции суммирования может потребоваться 8 чисел (команд). Например, 1 — просуммировать аккумулятор с регистром R0, 2 — просуммировать аккумулятор с регистром R1, 3 — просуммировать аккумулятор с регистром R2 и т.д.

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

Следующая ситуация, которая приводит к увеличению длины команды — это обращение к конкретной ячейке процессора. Обычно это команда копирования содержимого ячейки памяти в один из регистров сверхоперативного запоминающего устройства. Для задания адреса в микропроцессоре с 64 килобайтами памяти требуется как минимум шестнадцатиразрядное число. Это число должно содержаться в составе команды микропроцессора. В результате длина команды с учетом кода операции увеличивается до трех байт, и она становится двадцатичетырехразрядной.

Все рассмотренные варианты форматы команд микропроцессора приведены на рис. 18.25. На этом рисунке все байты команд расположены друг под другом точно так же, как они располагаются в системной памяти микропроцессора.

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

Листинг 4.2. Фрагмент исполняемого кода микропроцессора

75D7001207E81200261216581216B9E4

FF121147BEFF05BFFF02800AE4FF1211

3079291201BA7F01121147BEFF05BFFF

02800A7F01121130792D1201BA1217CF

120005900003E493C0E0740193C0E074

01C0E0E4C0E07408C0E07B057A007936

12080074FB2581F581121074D2AFC298

 

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

Ну, как? Очень легко разобраться в последовательности чисел, приведенной в листинге? Я думаю, не слишком. Чтобы уменьшить объем запоминаемой информации и увеличить наглядность исходного текста программы, для каждой операции процессора используют ее мнемоническое обозначение.

В качестве мнемонического обозначения операции микропроцессора обычно используют сокращения английских слов, образующих название этой операции. Например, для операции копирования содержимого одной ячейки памяти в другую используется мнемоническое обозначение MOV; для операции суммирования — ADD; для операции вычитания — SUB; для операции умножения — MUL и т.д. Такие обозначения намного лучше запоминаются человеком. Более того! Количество запоминаемых команд значительно сокращается — ведь одному мнемоническому обозначению операции микропроцессора соответствует сразу несколько машинных команд. Обычно их количество соответствует количеству внутренних регистров микропроцессора.

Полная запись команды микропроцессора содержит мнемоническое обозначение операции и используемые этой операцией операнды, которые перечисляются через запятую. При этом обычно операнд-приемник результата записывается первым, а операнд-источник операнда — вторым. Например:

Листинг 18.3. Пример записи однобайтовых команд



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 466; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.167.229 (0.007 с.)