Cтраница 2
Например, при выполнении всех операций перехода после цикла действия 4, 6 и 7 не выполняются, при выполнении действия 8 на индекс-регистр посылается значение третьего исполнительного адреса, а при выполнении действия 9 ( которое фактически предшествует действию 8, поскольку в нем используется старое значение индекс-регистра) содержимое регистра адреса команды либо увеличивается на единицу, либо заменяется вторым исполнительным адресом. [16]
Внутренние регистры устройства MC68881. [17] |
В этом регистре находятся лишь признаки исключительных ситуаций, выработанные при выполнении последней операции, а в регистре кода условия размещаются результаты последней операции сравнения. В регистре адреса команды содержится адрес памяти, заданный основным процессором для последней команды, исполненной сопроцессором. Роль регистра адреса команды состоит в указании адреса команды, при выполнении которой имела место ошибка в ходе обработки аппаратного прерывания по, особой ситуации. [18]
В состав блока управления входят главный регистр Р и дешифратор Дш, описанные выше, а также комбинационный сумматор последовательного действия С, регистр адреса команды Рг, промежуточный регистр Р2 и ряд вентилей. В регистре адреса команды по окончании операции остается записанным адрес команды, использованной при выполнении только что законченной операции. [19]
Если выбранное по цепочке команд УСК содержит код операции перехода, то производится передача содержимого РСАД и РСБ в РСАК. Тем самым в регистре адреса команд устанавливается значение адреса, определяющего новую последовательность УСК. По новому адресу производится выборка УСК из ОП и размещение его по соответствующим регистрам канала. [20]
Схема для управления порядком выполнения команд. [21] |
При выполнении условия перехода осуществляется переход по указанному в команде адресу. В этом случае в регистр адреса команды переписывается адресная часть команды перехода. Обычно условие фиксируется триггером. Наиболее характерными примерами условий являются: если положительно, если отрицательно, если больше нуля и др. В современных ЦВМ, использующих индексные регистры, имеются также команды условного перехода, определяемые состоянием этих регистров. [22]
Команды программы загружаются одна за другой в одну из областей памяти. Один из этих регистров ( IAR - регистр адреса команды) постоянно содержит адрес той команды, которая будет выполняться. [23]
Рассмотрим общую функциональную схему микропрограммного управления операциями ( рис. 5.19), включающую в себя ЗУ микрокоманд ЗУМК, управление выборкой микрокоманд которого проводится по сигналам дешифратора адреса микрооперации ДШАМОп. В начале выполнения операции код команды поступает в регистр адреса команд PzAi, а операционная часть команды, находящаяся в регистре операций РгОп, как адрес первой микрокоманды передается в ДШАМОп. [24]
Этот блок предназначен для фиксации выданной из запоминающего устройства очередной команды и выдачи отдельных адресов этой команды ( первого, второго и третьего - в случае трехадресной команды) для обращений к запоминающему устройству по этим адресам. Основной частью блока фиксации команд является регистр команд, состоящий из регистров адресов команды и регистра кода операции. Регистр кода операции этого блока фиксирует код операции и выдает его для расшифровки в дешифратор кодов операций. [25]
Уже сейчас мы подготовлены к тому, чтобы внести в это описание некоторые уточнения. В состав устройства управления входят, в частности, два регистра - регистр адреса команды и регистр выполняемой команды. Содержимое ячейки с этим адресом считывается на регистр выполняемой команды. Код, поступивший на этот регистр, расчленяется на отдельные части, определяющие тип операции, адреса ( или непосредственно значения) оперантов, адрес результата и другие данные, необходимые для выполнения операции. Часто адреса, по которым при выполнении операции происходит обращение к ЗУ, не содержатся в команде в готовом виде, а должны быть вычислены. Для-этой цели устройство управления содержит так называемый сумматор адресов, фактически являющийся небольшим арифметическим устройством для выполнения простых действий над целыми числами. [26]
В течение первого такта определяется адрес следующей команды и вводится в главный регистр Р, точнее, в его правую часть. Так как принят естественный порядок следования команд, то дли определения адреса следующей команды достаточно прибавить единицу к адресу предыдущей команды, хранящемуся в регистре адреса команды Рг Эти действия совершаются следующим образом: первый тактовый импульс отпирает вентили Д8, fig и BIZ. В результате адрес предыдущей команды выдвигается из регистра Р1 и, проходя через сумматор, складывается с единицей младшего разряда, прошедшей через вентиль Z. [27]
Когда необходимо исполнить программу, в качестве команды набирается имя файла, который содержит программу на машинном языке. Операционная система PC-DOS воспринимает команду, считывает программу с диска, загружает ее в свободную, предусмотренную для этого зону памяти, загружает начальный адрес программы в регистр адресов команд и программа выполняется. [28]
В этом регистре находятся лишь признаки исключительных ситуаций, выработанные при выполнении последней операции, а в регистре кода условия размещаются результаты последней операции сравнения. В регистре адреса команды содержится адрес памяти, заданный основным процессором для последней команды, исполненной сопроцессором. Роль регистра адреса команды состоит в указании адреса команды, при выполнении которой имела место ошибка в ходе обработки аппаратного прерывания по, особой ситуации. [29]
В процессе работы микропроцессор производит обращение в память за командами и операндами. Микропроцессор КР1810ВМ86 обеспечивает адресацию до 1 Мбайт памяти. Формирование адреса команд и операндов осуществляется с помощью сумматора адреса, регистров адреса команды и операнда, сегментных регистров. Сумматор адреса производит вычисление 20-разрядного физического адреса команд и операндов путем сдвига базового адреса сегмента, хранящегося в соответствующем сегментном регистре, и сложения его с величиной смещения, находящейся в регистре адреса. При вычислении адреса команды используются содержимое регистра сегмента кода и регистра адреса команды, при вычислении адреса операнда - содержимое регистра сегмента данных ( или дополнительного сегмента) и регистра адреса операнда. [30]