Типовые циклы функционирования микроЭВМ
В ЦВМ различают микрокомандный и командный циклы управления. Микрокомандный цикл обеспечивает выборку и исполнение текущей микрокоманды. Командный цикл обеспечивает выборку и исполнение текущей команды. Командный цикл соответствует по времени выполнению микропрограммы текущей операции. Микрокомандный цикл в синхронных машинах обычно имеет постоянную длительность. В асинхронных машинах длительность микрокомандного цикла может быть переменной. Командный цикл в основном имеет переменную длительность в зависимости от типа машинной операции (длинная или короткая операция), практически для каждой команды командный цикл может иметь различные временные характеристики.
В рассматриваемой микроЭВМ (рис. 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 байтов. Команды данного типа могли использоваться для пересылки операндов внутри основной памяти и при обмене с внешними устройствами.
В современных системах используется подобный подход. Программист по своему усмотрению выбирает наиболее приемлемые способы адресации и типы форматов.
Адресации в командном цикле
Адресации разных типов используются как при выборке команд, так и при выборке данных и размещении результата.
В системах фон Неймановского типа адресация к командам обычно осуществляется по естественному принципу (естественная адресация). На линейных участках программы команды размещаются по смежным адресам (очередной адрес на единицу больше предыдущего), а в точках ветвления один из адресов при отрицательном результате анализа также следует в естественном порядке, а второй определяется по одному из других способов (автоинкрементная, принудительная, относительная и пр.).
Наибольшая гамма адресаций наблюдается при обращении к операндам. Особенно часто используются следующие адресации: прямая, относительная, базовая, косвенная, индексная, непосредственная, регистровая, автоинкрементная (декрементная), явная, неявная, комбинированная.
Прямая адресация предусматривает размещение в коде команды исполнительных адресов А (рис. 44 а) соответствующих операндов или результатов (исполнительные адреса).Достоинством адресации является наглядное представление адреса и максимальное быстродействие по выборке, так как адрес не требует преобразования, недостатком – большая размерность адресного поля, существенно увеличивающая длину команды.
Относительная адресация (рис. 44 б) предполагает формирование адреса по правилу (РС)+ΔА, где РС – содержимое программного счётчика, ΔА – число со знаком в том или ином коде (обычно в дополнительном) и обеспечивает адресацию в некоторой зоне относительно адреса текущей команды.
Текущее значение программного счётчика указывает на исполняемую команду, а величина ΔА в команде обычно невелика, и подобная адресация к данным используется в том случае, если эти данные размещаются в тексте программы либо в близлежащих областях.
Подобная адресация не обеспечивает большого оперативного диапазона, но при малом объёме данных позволяет существенно сократить длину команды. Кроме адресации к данным относительная адресация часто используется при организации условных и безусловных переходов, то есть при адресации к командам. Например, при отрицательном результате анализа будет осуществляться переход к адресу А+1 (команда 1), при положительном – к команде 2. Использование относительной адресации эффективно при достаточно высокой квалификации программиста.
Базовая адресация напоминает относительную, но вместо РС используется специальный базовый регистр BR, содержимое которого является указателем на определённый адрес памяти (указывает на начало той или иной страницы памяти). Исполнительный адрес формируется по правилу (BR)+ ΔАB, где ΔАB – непосред–ственное смещение, размещаемое в коде команды (рис. 45 а). В ряде случаев BR адресуется неявно (в коде команды на него нет ссылки), в других случаях указывается в команде в явном виде (IBM 360).
В отличие от относительной адресации, где текущий адрес определён однозначно, содержимое базового регистра можно изменять оперативно, что позволяет перемещаться по всему пространству памяти и при малых ΔАВ обеспечивать доступ к любой ячейке. Быстродействие адресации зависит от частоты перезагрузок BR, поэтому более эффективное программирование должно сопровождаться малым числом перезагрузок BR.
Косвенная адресация (рис. 45 б) предполагает использование промежуточных преобразований косвенного адреса (КА) в табличной памяти либо в блоке регистров. В качестве табличной памяти может быть выделена зона основной памяти либо специальной косвенной памяти (КП). Косвенное преобразование в КП используется для формирования исполнительного адреса обращения к ОП. Цели этого преобразования:
- снижение разрядности адресного поля m<<n;
- выполнение некоторых функциональных преобразований над содержимым поля КА (в этом случае разрядность может не сокращаться).
Приведённый пример характеризуется как одноуровневое косвенное преобразование. На практике может использоваться многоуровневое косвенное преобразование, когда выполняется каскадное преобразование КА в блоках КП и исполнительный адрес выбирается из последнего блока каскада.
Косвенная адресация сокращает разрядность поля КА по отношению к исполнительному адресу, если число ссылок в программе с передачей управления 2m << 2n – объёма памяти. Недостатком адресации является потеря быстродействия из-за промежуточных преобразований.
Индексная адресация является подвидом косвенной адресации, когда исполнительные адреса формируются в блоке индексных регистров. Адресация применяется при организации циклических процессов, связанных с обработкой массивов данных. В адресуемом по полю АИР кода команды (рис. 46 а) индексном регистре исполнительный адрес модифицируется как функция цикла на ±Δ при каждом проходе (в частном случае +1). Количество индексных регистров определяет мерность обрабатываемых массивов.
Непосредственная адресация предусматривает размещение операнда в адресном поле команды. Обычно используется для начальной загрузки регистров или ячеек памяти, но может применяться и в командах работы с непосредственным операндом, например, ANI A, #32h ~ A:= (A) & 32h.
При регистровой адресации в адресных полях кода команды указываются адреса регистров общего назначения либо оперативных регистров операционной части (базовых, индексных и др.), но обычно использование данной адресации подразумевает работу с регистрами как с источниками операндов и приёмниками результатов, когда объём данных невелик и они могут быть размещены в пределах операционной части.
Явная адресация подразумевает наличие в коде команды адресных полей с тем или иным типом адресации. При неявной адресации адресные поля отсутствуют, например, в безадресных командах, и все объекты адресуются на аппаратном уровне, то есть микропрограммно.
При автоинкрементной адресации (рис. 46 б) текущий адрес формируется в виде модификации предыдущего адреса с использованием 2-х и более констант по принципу: A(i+1) = Ai + const. Например, при адресации к командам одна из констант соответствует естественному переходу, либо переходу по отрицательному результату анализа, а другие константы используются при иных результатах анализа. При логическом анализе константы могут быть +1 и +2. Адресация позволяет не использовать адресные поля и сократить длину кодов большинства команд. Для разрешения возможных конфликтных ситуаций, из-за малой величины констант, вводится команда безусловной передачи управления по определенному адресу.
Автоинкрементная адресация может использоваться как при адресации к командам, так и при адресации к данным. Во втором случае она напоминает индексную адресацию: адрес используемого операнда при очередном проходе (цикле) модифицируется на определенную константу. Небольшая величина констант (в пределах ±1, ±2, ±4) выбирается исходя из условий простоты аппаратной модификации содержимого источника адреса путём прямого подключения логических условий к счётным входам триггеров его младших разрядов.
Если константы используются со знаком «–», то адресация называется автодекрементной.
Сочетание нескольких адресаций из вышерассмотренных классифицируется как комбинированная адресация. Например, принудительно-автоинкрементная адресация, косвенно-регистровая адресация, базово-индексная адресация и т.п. В современных процессорах Intel x86 используется базово-индексная адресация со смещением и с шагом, когда исполнительный адрес формируется в виде суммы базового адреса, индексного адреса, непосредственного смещения и константы шага. Базовый адрес выбирается из базового регистра, индексный – из индексного, непосредственное смещение и признак размера шага – из кода команды. Дополнительно может быть задействовано содержимое РОН как смещение. Обычно в системе команд задействовано несколько адресаций, что создает определенное удобство как для разработчиков, так и для пользователей, позволяет повысить эффективность программирования и организации вычислительного процесса.
Библиографический список
1. Каган Б. М. Электронные вычислительные машины и системы: Учеб. пособие по специальностям «Автоматизир. системы управления», «Прикладная математика», «Электронные вычислительные машины». – 2-е изд., перераб. и доп. – М.: Энергоатомиздат, 1985. – 552 с.
2. Электронные цифровые вычислительные машины: Учеб. для вузов по специальности «ЭВМ» / К. Г. Самофалов, В. И. Корнейчук, В. П. Тарасенко; Под ред. К. Г. Самофалова. – Киев: Вища шк., 1976. – 480 с.
3. Принципы организации цифровых машин / С. А. Майоров, Г. И. Новиков. – Л.: Машиностроение, 1974. – 431 с.
4. Микропроцессоры и микроЭВМ в системах автоматического управления: Справ. / С. Т. Хвощ, Н. Н. Варлинский, Е. А. Попов; Под общ. ред. С. Т. Хвоща. – Л.: Машиностроение. Ленингр. отд-ние, 1987. – 640 с.
5. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справ. / Б. Б. Абрайтис, Н. Н. Аверьянов, А. И. Белоус и др.; Под ред. В. А. Шахнова. – М.: Радио и связь, 1988. – Т. 1. – 368 с.
6. Нестерук В. Ф. Проектирование микропроцессорных систем: Учеб. пособие. – Омск: Изд-во ОмГТУ, 1996. – 64 с.
7. Нестерук В. Ф. Цифровые модели для компьютерных технологий обучения основам организации ЭВМ: Учеб. пособие. – Омск: Изд-во ОмГТУ, 2001. – 76 с.
8. Смирнов А. Д. Архитектура вычислительных систем. – М.: Энергия, 1973. – 386 с.
Содержание
Стр.
Назначение и классификация ЭВМ………………………………………………... 3
История развития электронных цифровых вычислительных машин……………. 8
Организация операционных устройств…………………………………………….15
Организация операционной части………………………………………………….16
Пример структурной организации ОЧ для выполнения логических операций…17
Пример реализации ОЧ для суммирования чисел с фиксированной
запятой в прямых кодах …………………………………………………………….19
Организация интегральной операционной части …………………………………22
Примеры реализации операций в интегральной ОЧ………………………………25
Аппаратное наращивание интегральной ОЧ………………………………………27
Организация управляющей части…………………………………………………. 29
Типовая структура управляющей части……………………………………………35
Пример структурной реализации БМУ серии К584 ВУ1…………………………36
Интерфейсные средства микроЭВМ………………………………………………. 41
Организация системы синхронизации……………………………………………...44
Организация микроЭВМ с микропрограммным управлением…………………...48
Типовые циклы функционирования микроЭВМ…………………………………..50
Организация командного управления……………………………………………...52
Форматы и адресность команд……………………………………………………...53
Адресации в командном цикле……………………………………………………...56
Библиографический список…………………………………………………………59