Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арх.ЭВМ.лекции.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
11.25 Mб
Скачать

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

Устройство управления УУ непосредственно реализует последовательность команд программы и выполняет следующие функции:

  1. Выборка команд по текущему адресу, хранящемуся в УУ из оперативной памяти.

  2. Выполнение адресных преобразований в соответствии с указаниями, записанными в команде.

  3. Выборка из памяти операндов.

  4. Загрузка памяти результатами выполнения операций.

  5. Изменение текущего адреса команды для последующего обращения за другой командой .

  6. Управление переходом команд.

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

  8. Управление непосредственным обращением к памяти.

Таким образом, команда является основной управляющей информацией. Она разбита на микрокоманды: управляющие сигналы для микроопераций. Последовательность микрокоманд – микропрограмма хранится в специальной управляющей памяти. Схема микропрограммного управления представлена на рисунке 2.1.3.

Рис.2.1.3. Схема микропрограммного управления

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

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

Одновременно эта шина устанавливает адрес следующей микрокоманды. Таким образом задается набор микроопераций, выполняемых в данном цикле. Матрицы обычно строятся на ПЛМ.

Устройство управления с «жесткой логикой»

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

Рис.2.1.4. Структура УУ с жестким управлением

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

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

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

Регистры процессора делятся на следующие категории:

  • регистры общего назначения (РОН);

  • указатель команд (счетчик команд);

  • регистр флагов (признаков);

  • регистры сегментов;

Это те регистры, с которыми работают программисты, т.е. программно-видимые регистры.

РОН (AX, BX, CX, DX, BP, SI, DI, SP).

Для 16-разрядных процессоров это 16-разрядные регистры, но они могут использоваться как два 8-разрядных. Для 32-разрядных процессоров – это 32-разрядные регистры, но могут использоваться как два 16 разрядных. (Только для первых 4 регистров). Назначение этих регистров приведено в таблице

A

Аккумулятор

B

Регистр базы

C

Счетчик

D

Данные

BP

Указатель базы

SI

Индекс источника

DI

Индекс приемника

SP

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

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

Регистр А традиционно называется аккумулятором и предназначен для обмена данными с внешними устройствами, т.е. содержимое этого регистра может выводиться на выход процессора. Регистры В и ВР часто используются как базовые регистры, а SI, DI как индексные. Регистр SP обычно указывает на вершину стека, который в процессорах INTEL поддерживается аппаратно.

Четыре первых регистра РОН устроены так, что возможен независимый доступ к их старшей и младшей половинам

Указатель команд (счетчик команд) IP. Это 16 или 32 разрядный регистр, который в первых простых процессорах хранил адрес команды, в современных процессорах он хранит смещение команды (число) от начала той программы, которая должна быть выполнена следующей. Начало программы хранится в сегментном регистре. Содержимое IP можно изменить только командами перехода. По окончании выборки из памяти текущей команды в этом регистре образуется адрес следующей команды.

Регистр флагов F. Флаг – это бит, принимающий значение 1 (флаг установлен), если выполнено некоторое условие, или 0 (флаг сброшен), если это условие не выполнено. В процессорах семейства I 80*86 используется 9 флагов, каждому из которых присвоено определенное имя. Все флаги собраны в регистре флагов, каждый флаг – это один из разрядов регистра. Примеры флагов: флаг нуля, флаг переполнения, четности и т.д.

Некоторые флаги являются флагами условий, они автоматически меняются при выполнении команд. Другие флаги являются флагами состояний , они меняются из программы (например, блокируют прерывания).

Сегментные регистры. (CS,DS, SS, ES). Эти регистры используются только для адресации. Сегмент – это область виртуальной памяти , с независимой адресацией внутри сегмента. Он определяется как логическая группа информации, например, программа, массив данных. Для адресации начала сегмента и используются сегментные регистры. CS задает начало программного сегмента, который содержит программу. DS задает начало сегмента данных, т.е. сегмента , где хранятся данные для текущей программы. SS задает начало стека, а ES начало дополнительного сегмента данных. Никакие команды, кроме команд пересылки и стековые, не могут использовать сегментные регистры в качестве операндов.

Рассмотрим, как регистры процессора используются для адресации.

Применительно к памяти различают три адресных пространства: логическое, линейное , физическое.

Логический адрес (виртуальный, математический) состоит из адреса сегмента и эффективного адреса, называемого смещением. Адрес сегмента хранится в одном из сегментных регистров. Эффективный адрес (смещение) может либо указываться в команде, либо хранится в РОН (ВХ), либо вычисляется по формулам, определяющим вид адресации. Например, при базовой адресации ЕА=база+смещение. База хранится в базовом регистре ВР, смещение представляет число в команде.

Линейный адрес, используется редко и представляет преобразование логического адреса в линейный 32 битный адрес.

Физический адрес, это адрес конкретной ячейки памяти, выдаваемый на шину памяти.

Способы адресации.

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

  1. Безадресный способ. Здесь команда обращается к конкретным устройствам, например к аккумулятору. Операндом является содержимое регистра команд. С памятью этот способ не связан.

  2. Непосредственная адресация. В адресном поле команды указывается сам операнд. Адресные преобразования исключаются, с памятью не связан. Применяется в микроконтроллерах.

  3. Прямая адресация. Эффективный адрес (ЕА) равен смещению. Смещение указывается в виде числа в команде. Физический адрес равен ЕА. Адресных преобразований не производится. Такая адресация применяется в простых 8-16 разрядных микропроцессорах.

  4. Базовая адресация. ЕА=база+ смещение. База – это содержимое базового регистра, указывает на начало сегмента. Смещение, число, указываемое в команде. Физический адрес равен эффективному, т.е. определяется как адрес ячейки в сегменте, начало которого задается базой.

  5. Индексная адресация. ЕА=индекс+смещение. Индекс содержится в индексном регистре.

  6. Масштабированная адресация. ЕА=масштаб*индекс+смещение. Масштаб представляет собой число 1,2,4,8.

Таким образом, адрес, указываемый в команде в общем случае расположен в трех регистрах: сегментном, базовом, индексном. Преобразование адреса в физический адрес происходит в два этапа.

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

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

Пример команды: mov EAX, ES:(edx*4+129).