Файл: Конспект лекций (дополнительный, обновленный).doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 28.12.2024

Просмотров: 1971

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Сигналы управления прерываниемобычно представлены двумя сигналами:

  • INT (interrupt, прерывание) – входной сигнал от периферийного модуля (контроллера прерывания), запрашивающего процесс ввода-вывода по прерыванию. В ответ на этот сигнал микропроцессор должен запустить обрабатывающую прерывание подпрограмму. Анализируется этот сигнал в последнем такте последнего машинного цикла, т.е. в конце выполнения текущей команды;

  • INTA (interrupt acknowledge, подтверждение прерывания) – выходной сигнал от микропроцессора, подтверждающий прерывание и сообщающий периферийному модулю (контроллеру прерывания) о готовности микропроцессора приступить к обслуживанию прерывания. По этому сигналу внешнее устройство (контроллер прерывания) должен выставить на шину данных код команды прерывания, в которой закодирован номер устройства, запрашивающего прерывание.

Сигналы управления режимом прямого доступа к памятиформируют группу из двух сигналов:

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

  • HLDA (hold acknowledge, подтверждение захвата) – выходной сигнал от микропроцессора, подтверждающий, что микропроцессор перевел свои буферные регистры в высокоимпедансное состояние и освободил шины.

Сигналы управления ожиданием служат для синхронизации микропроцессора с медленными устройствами ввода-вывода. Не всегда внешнее устройство может мгновенно отреагировать и подготовиться к режиму приема или записи по сигналам RDIO или WRIO (RD или WR). Если внешнее устройство медленное, то ему необходимо время для формирования данных или включения в соответствующий режим. Для синхронизации работы микропроцессора с медленными устройствами ввода-вывода используются следующие сигналы:

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

  • WAIT (wait, ожидание) – выходной сигнал, являющийся признаком того, что микропроцессор находится в тактах ожидания сигнала готовности.


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

  • SYNC (synchronization, синхронизация) – выходной сигнал, вырабатываемый микропроцессором в начале каждого машинного цикла. Он служит для записи в системный контроллер служебной информации, из которой системный контроллер формирует дополнительные сигналы управления (например, RDM, WRM, RDIO и WRIO);

  • ALE (address latch enable, фиксация адреса) – выходной сигнал микропроцессора, имеющего мультиплексированную шину данных/адреса. Мультиплесированная шина позволяет уменьшить количество выводов микросхемы микропроцессора, поскольку разряды шины данных и адреса реализуются в таких микропроцессорах на одних и тех же выводах. В начале машинного цикла всегда должен быть выставлен адрес внешнего устройства или ячейки памяти, а лишь затем произведен обмен информацией. Поэтому шину данных и адреса можно объединить в одну мультиплексированную шину. Но адрес должен удерживаться на время всего машинного цикла. Для этого сигналом ALE, который выставляется активным вместе с выставлением адреса на мультиплексированной шине, адрес записывается во внешний регистр (шинный формирователь) и там защелкивается до следующего машинного цикла. Затем мультиплексированная шина переключается в режим шины данных;

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

  • CLK (clock, тактирование) – вход (входы) сигналов тактового генератора. Эти сигналы синхронизируют работу микропроцессора. По этим сигналам часто оценивают производительность микропроцессора.


13.7. Структура типового микропроцессора.

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

Рис.13.11. Структурная схема типового микропроцессора Фон-Неймановского типа.

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

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


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

  • СF (carry flag) - перенос. Указанный разряд устанавливается в единицу, если в результате сложения двух двоичных чисел длиной в одно слово возникает перенос в старший разряд или в результате вычитания возникает заем из старшего разряда. В противном случае разряд признака переноса устанавливается в ноль. Этот признак используется, например, для организации выполнения арифметических операций с повышенной точностью, т.е. с числами длиной более одного слова;

  • АF (auxiliary flag) – вспомогательный перенос. Разряд этого признака устанавливается в единицу при наличии переноса из четвертого в пятый разряд результата или при заеме единицы из пятого разряда в четвертый. Этот признак позволяет реализовывать арифметику в двоично-десятичных кодах;

  • РF (parity flag) - четность. Разряд этого признака устанавливается в единицу, если в полученном коде результата общее число единиц является четным. В противном случае данный признак устанавливается в ноль. Этот признак используется при контроле данных на четность при формировании посылок по интерфейсам или при записи/чтении данных на внешние носители;

  • ZF (zero flag) – нулевой результат. При нулевом значении результата разряд этого признака устанавливается в единицу, при ненулевом - в ноль. Этот признак используется, например, для организации циклических структур;

  • SF (sign flag) – знак результата. Разряд этого признака дублирует содержимое старшего разряда результата. При выполнении арифметических операций в дополнительных кодах ноль в старшем знаковом разряде результата соответствует положительному числу, а единица – отрицательному;

  • OF (overflow flag) – переполнение. Разряд этого признака устанавливается в единицу при выходе знакового результата за границы диапазона.


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

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

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

Указатель стека (stak pointer SP) также как и счетчик команд представляет собой регистр, содержащий адрес, по которому осуществляется обращение к области памяти ОЗУ, называемой стеком. Стеком называется область оперативной памяти, ячейки которой заполняются последовательно друг за другом по принципу LIFO (Last Input First Output), т.е последний вошедший выходит первым. Стековые ячейки памяти имеют соседние адреса. Поэтому при обращении к стековым ячейкам памяти не нужно указывать адреса этих ячеек. Достаточно один раз в начале программы определить адрес первой ячейки стековой области. И в последствии отслеживать только последовательнойсть загрузки и выгрузки из стека. Адрес первой стековой ячейки заносится в указатель стека SP. Далее при записи или считывании каждого слова из стека указатель стека будет автоматически инкрементироваться или декрементироваться в зависимости от типа микропроцессора. Стековая адресация удобна тем, что команды обращения к стеку короткие и быстро извлекаются из памяти, а, следовательно, и быстро выполняются. В стек может отправляться на временное сохранение содержимое всех программно доступных регистров микропроцессора. Это может быть полезно при организации подпрограмм, когда содержимое этих регистров нужно временно сохранить в оперативной памяти, чтобы освободить сами регистры для выполнения подпрограммы. После того, как подпрограмма будет выполнена, все сохраненные в стеке данные на момент обращения к подпрограмме в обратном порядке будут извлечены из стека и восстановлены в своих первоначальных источниках.