Всего на сайте:
248 тыс. 773 статей

Главная | Информатика

Типовые циклы функционирования микроЭВМ  Просмотрен 295

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

В рассматриваемой микроЭВМ (рис. 40) разработчику доступен как микрокомандный, так и командный циклы. В микрокомандном цикле БМУ формирует на шине АМК адрес текущей микрокоманды, по которому из управляющей памяти выбирается микрокоманда (МК), отдельные поля которой (микроинструкции) поступают на функциональные устройства микроЭВМ. Эти устройства выполняют соответствующие действия цикла по обработке данных, формируют результат и логические условия. Условия поступают в БМУ и КС и влияют на формирование адреса следующего цикла.

В командном цикле по адресу, выставляемому на ША БМП, из ОП выбирается текущая команда, которая поступает в БМУ и в процессор. БМУ по ходу операции активизирует соответствующую микропрограмму, а процессор реализует формирование исполнительного адреса для выборки и размещения операндов (этот процесс может быть реализован в ходе микропрограммы). После запуска микропрограммы следует столько микрокомандных циклов, сколько имеется микрокоманд в активизированной ветви микропрограммы. В конце микропрограммы формируются логические условия командного цикла (либо в ходе исполнения микропрограммы) и адрес выборки следующей команды в программном счётчике или в рабочих регистрах БМП.

МикроЭВМ может функционировать в следующих системных режимах: режиме прерывания и режиме прямого доступа к памяти.

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

Внешние прерывания вызываются соответствующими запросами прерываний (ЗП), поступающими на входы блока приоритетных прерываний.

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

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

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

Обычно для организации ПДП используются специализированные контроллеры прямого доступа к памяти. В рассматриваемой микроЭВМ для этих целей может быть задействован второй блок магистрального приемо-передатчика адреса и управления, в котором внешняя магистраль М3 будет задействована для обмена адресной информацией и управлением с внешними устройствами (интерфейс внешней системы (ИВС)), внутренняя магистраль М1 - для ввода адресной информации и управления на МА и МУ, а М2 – для вывода через М3 адреса и управляющей информации в шины ИВС (рис. 41).

Процесс ПДП будет осуществляться следующим образом:

1. Внешнее устройство (ВУ) формирует на магистраль управления запрос ПДП, который для БМУ будет определенным логическим условием, по которому вызывается процедура блокировки (приостанова), позволяющая освободить магистраль от иных источников и разрешающая обмен от ВУ через БМПП адреса и упраления с МУ, МА. Параллельно разрешается обмен от ИВС через БМПП данных с магистралями входных (МВх) и выходных (МВ) данных микроЭВМ (рис. 40).

2.

ВУ в цикле обмена формирует на МА адрес памяти, на МВх или МВ – данные этого обмена, на МУ – микрооперации памяти (запись или чтение).

3. После завершения цикла обмена ВУ снимает сигнал запроса ПДП, и приостановленный процесс в системе продолжается.

 

Организация командного управления

Командный уровень управления является более высоким по отношению к микрокомандному. Управление реализуется по хранимой в памяти машины программе. Под командой понимается управляющее слово, определяющее функционирование ЦВМ в ходе выполнения машинной операции. К машинным операциям относятся: арифметические, логические операции, операции обмена с памятью, обмена с внешними устройствами (операции ввода/вывода), управления процессором, передачи управления в ходе исполнения программы (условные, безусловные переходы) и др. Перечисленные операции определяют соответствующие функциональные группы команд. Команда может быть представлена в виде машинного кода, который непосредственно принимается к управлению, либо в виде символьного кода, требующего дополнительных преобразований для получения машинного кода.

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

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

Описание основных процессов командного цикла дано в разделе истории развития ЭЦВМ при рассмотрении примера ЦВМ первого поколения (см. рис. 2).

 

Форматы и адресность команд

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

Наибольшее распространение получили следующие типы форматов.

1. Безадресные команды (рис. 42 а). Содержат в формате только код операции.

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

  
 

2. Одноадресные команды (рис. 42 б). Содержат в формате кроме кода операции одно адресное поле А1, которое определяет размещение одного из операндов, либо операнда и результата, либо адреса передачи управления. Недостающая информация содержится на аппаратном уровне. Эти форматы используются в основном в управляющих машинах. Как и безадресные, эти команды неудобны для программирования, но имеют малый размер формата и короткий цикл выборки команд.

3. Двухадресные команды (рис.42 в). Содержат код операции и два адресных поля А1 и А2, которые для двуместных операций могут задавать адреса двух операндов, либо одного из операндов и результата, либо двух операндов с размещением результата по одному из адресов. Для операций большей мерности недостаток адресной информации компенсируется на аппаратном уровне. Эти команды достаточно наглядны при программировании, требуют средних временных затрат на выборку и приемлемых объёмов памяти для размещения программ.

4. Трехадресные команды (рис. 42 г). Содержат полную информацию об источниках операндов и приемнике результата для двуместных операций, что позволяет наиболее быстро исполнить команду, но затратить больше времени на выборку команды из памяти и требуют существенных затрат памяти на хранение программы. Наиболее наглядны при программировании.

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

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

Недостаток данного подхода – снижение быстродействия при выборке длинных команд и длинных форматов данных.

Первыми подобный подход предложили специалисты компании IBM при разработке системы IBM 360. Они применили память с байтовой структурой и использовали пять типов форматов команд, кратных байту (рис. 43).

Самыми короткими командами, имеющими двухбайтовый формат, были команды типа RR (регистр – регистр). Первый байт закреплялся за кодом операции, второй байт отводился под адресные поля обращения к регистрам общего назначения R1, R2. Команда двухадресная, ориентирована на внутренние операции операционной части (регистровые операции), обеспечивает максимальное быстродействие как по выборке команды, так и по её исполнению. Внутренние операции не требуют внешнего обмена и выполняются быстрее. Недостатком является малая адресуемая оперативная область для размещения операндов и результатов. Обычно сверхоперативное запоминающее устройство в виде регистров общего назначения содержит от нескольких единиц до нескольких десятков регистров.

 

  
 

Команды типа RX (регистр – индексируемая ячейка памяти) занимают четыре байта и также являются двухадресными, но второй операнд или результат могли размещаться в любом месте основной памяти. Адрес обращения к ОП формировался по правилу (R(X2))+(R(B2))+D2, где X2 – указатель на индексный регистр R(X2), B2 – указатель на базовый регистр R(B2), D2 – непосредственное смещение, размещаемое в коде команды. Подобная адресация определяется как базово-индексная со смещением. Она обеспечивает обращение к любой ячейке основной памяти, но требует большего времени для её выборки и исполнения.

Третий тип команд RS (регистр – память) также имеет четырёхбайтовый формат, но использует трёхадресную систему. Адреса одного из операндов R1 и результата R3 указывают на регистровую память, второй операнд размещается в основной памяти, и для его выборки используется базовая адресация со смещением (R(B2))+D2. Трёхадресная система позволяет упростить процесс программирования и в то же время обеспечивает обращение к любой оперативной ячейке основной памяти, имея по сравнению с RX большее быстродействие по формированию второго адреса.

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

Самый длинный шестибайтовый формат имели команды типа SS (память–память). В формате кроме кода операции указывается адрес базового регистра В1 и непосредственное смещение D1 для формирования адреса начала первого операнда в адресном пространстве памяти, адрес базового регистра B2 и непосредственное смещение D2 для формирования адреса начала второго операнда, длины в байтах первого L1 и второго L2 операндов. Команда позволяет осуществлять пересылку операндов произвольного формата, каждый из которых может иметь длину до 16 байтов. Команды данного типа могли использоваться для пересылки операндов внутри основной памяти и при обмене с внешними устройствами.

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

Предыдущая статья:Организация микроЭВМ с микропрограммным управлением Следующая статья:Адресации в командном цикле
page speed (0.0213 sec, direct)