Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 23
Текст из файла (страница 23)
Функции управления ходом вычислительного процесса возлагаются на устройство, или блок, управления. Оно предназначено для получения информации о ходе вычислительного процесса и выработки сигналов для его продолжения. Элементы управления присутствуют во всех узлах и устройствах компьютера, поэтому конструктивно БУ выполняется в виде центрального блока, призванного формировать управляющие сигналы, и отдельных схем, распределенных по всему компьютеру и служащих для исполыования этих сигналов.
Входной информацией для центрального БУ служит код операции текущей команды, который определяет конкретную выполняемую операцию. Он поступает в БУ из регистра команд и служит для выработки сигналов управления, передаваемых на все узлы и устройства компьютера. Помимо кода операции при работе БУ исполыуются флаги, т.е. признаки, характеризующие результаты выполнения предшествующей операции. Они необходимы для организации выполнения команд условного перехода. Блок управления вырабатывает сигналы при поступлении на него тактовых импульсов.
Кроме того, он получает сигналы от системной шины, например запросы прерывания, подтверждения приема информации и т.п. Блок управления формирует управляющие сигналы, направляемые в различные устройства и блоки компьютера„прежде всего в процессор. Эти сигналы служат для управления перемещением 126 Рнс. 5.8. Структура управляющего ав- томата с «жесткой» логикой данных между регистрами, работой устройств, инициирования тех или иных функций. Сигналы управления направляются также в шину для передачи в блоки памяти и на устройства ввода-вывода.
Действия в операционном блоке в течение одного такта назы- аются микрооперацилми, а любая операция или команда„выполняемая за несколько тактов, описывается некоторой микропрогроммой, определяющей последовательность действий при выполнении этой команды. Сигналы управления, формируемые БУ и поступающие на входы операционного устройства, вызывают в нем выполнение микрооперации.
Поскольку блоки управления формируют сигналы для выполнения микроопераций, их часто называют микропрограммными автоматами. В зависимости от способа формирования сигналов управления микрооперациями различают два типа микропрограммных автоматов: с «жесткой» и программируемой логикой. Устройства управления с «жесткой» логикой. Код операции и номер такта в управляющем автомате с «жесткой» логикой (рис. 5.8) поступают на дешифраторы 27С и затем на логические схемы формирования сигналов управления. На эти же схемы, представляющие собой наборы схем совпадения, поступают различные осведомительные сигналы, которые характеризуют результат выполнения предыдущей операции или микрооперации.
Сигналы для каждой микрооперации в автомате с «жесткой» логикой формируются своим собственным набором логических схем, который невозможно изменить, не меняя всю систему управления компьютером, что и обусловливает название автомата. В состав его схемы входят счетчик и дешифратор тактов, дешифратор кода операции и логические схемы формирования сигналов управления.
Время срабатывания этих логических схем мало, поэтому такие аппаратно реализованные микропрограммные автоматы обеспечивают наибольшее быстродействие. Однако их сложность возрастает с расширением системы команд, так как для каждой операции в них должен быть предусмотрен собственный набор схем. Эти особенности автоматов с «жесткой» логикой привели к тому, что они находят применение в В13С-процессорах, а в компьютерах с расширенной системой команд обычно ис- Сигналы управления пользуют иной подход — микропрограмму, хранимую в спе- циальной памяти. 127 РгАМ 128 Устройства управления с хранимой в памяти логикой. Второй тип управляющего автомата — автомат с хранимой в памяти ло гикой.
Управление каждой операцией, входящей в систему ко манд компьютера, осуществляется с помощью хранимых в па мяти слов. Эти управляющие слова, или макрокоманды, содер жат информацию о микрооперациях, выполняемых в течение одного машинного такта и осуществляющих элементарное преобразование над данными, и указание, где находится следующая микрокоманда. Такое управление получило название микропрограммного. Одна машинная команда С1БС-компьютера обычно выполняется в течение нескольких тактов, а управление осуществляется последовательностью микрокоманд, составляющих микропрограмму.
Микропрограммы для каждой команды компьютера можно разместить в специальной памяти микропрограмм. Таким образом, процесс командного управления становится двухступенчатым; сначала нужно извлечь из основной памяти компьютера команду, а затем для ее выполнения извлечь из памяти микропрограмм последовательность микрокоманд. Для реализации такого двухступенчатого процесса требуется быстрая постоянная память довольно большого объема, которая появилась в середине 19бО-х гг.
Начиная с этого времени устройства управления с хранимой в памяти логикой стали применяться в большинстве процессоров общего назначения малой и средней производительности, а также в управляющих процессо- ПМ рах, некоторых микропроцессорах и различных контроллерах периферийных устройств. Основное место в типичной структуре устройства управления с хранимой в памяти логикой (рис. 5.9) занимает память мик- РгМК МО А ропрограмм (ПМ), в которой находятся все выполняемые микрокоманды. Она является постоянной памятью; адрес оче- ПВ ф редной микрокоманды (РгАМ) определяется кодом текущей операции (КОп из регистра коРис. 5.9.
Структура устройства уп манд преобразуется шифратором равления с хранимой впамятило- Ш), флагами Ф, полученными гикой при выполнении предыдущей операции (из регистра флагов)„и адресной частью предыдущей микрокоманды (А). Очередная микрокоманда считывается из памяти и заносится в егистр (РгМК), откуда сигналы управления микрооперациями (МО) поступают в операционный блок (ОБ).
Все действия в микопрограммном блоке синхронизируются управляющими синхРосигналами, не показанными на рисунке. Управляющие сигналы в микрокомандах, хранящихся в ПМ, могут быть представлены различными способами: горизонтальным, вертикальным и смешанным. Способ кодирования микроопераций определяет сложность и параметры быстродействия блока управления. При горизонтальном способе каждый управляющий сигнал кодируется одним разрядом в микрооперационной части микрокоманды.
Этим достигается максимальный параллелизм формирования сигналов управления, а следовательно, и выполняемых действий. Однако при горизонтальном способе длина микрооперационной части может достигать сотен бит, причем большинство из них содержат нули. При вертикальном способе каждой микрооперации соответствует некоторый код, который и хранится в микрооперационной части микрокоманды.
Тогда микрокоманда имеет минимальную длину. Но теперь для формирования сигнала управления нужен дешифратор микрокоманд и, кроме того, в каждой микрокоманде можно «закодировать» лишь один сигнал управления. Таким образом, увеличиваются длина микропрограммы и время ее выполнения.
При смешанном кодировании все микрооперации разбиваются на группы. В каждую группу можно включить сигналы управления, которые никогда не встречаются вместе (это так называемый горизонтально-вертикальный способ). При этом способе используемые в одном такте сигналы формируются в разных группах. Сигналы управления внутри группы кодируются вертикальным способом, а сами группы — горизонтальным. Поскольку сигналы, входящие в одну группу, никогда не возникают одновременно, то для их формирования используют дешифраторы. При вертикально-горизонтальном способе все микрооперации делят на несколько групп. В одну группу включают те микрооперации, которые часто встречаются вместе в одном такте.
Эти микро- операции кодируются горизонтально. В каждой микрокоманде предусматривают поле, указывающее на принадлежность микроопеРации к определенной группе, формирующее управляющие сигналы на демультиплексоры. Сигналы управления формируются демультиплексорами и подаются на различные схемы процессора. Для уменьшения объемов управляющей памяти в некоторых компьютерах можно использовать двухуровневое кодирование мнкроопераций — вертикальным способом кодируется микрокоманда (она находится в памяти микрокоманд), содержащая адрес г«рн~« 129 памяти нанокоманд, где находится горизонтальная нанокоманла Сигналы управления формируются содержимым полей наноко манды. Однако из-за невысокого быстродействия (для формиро вания одного сигнала управления нужно два обращения в микро командную и нанокомандную память) использование такого двух уровневого кодирования микроопераций ограничено компьюте рами сравнительно невысокого быстродействия.
Последовательность выполнения микрокомаид. Текущая выпол няемая микрокоманда зависит как от предыдущей микрокоман ды, так и от осведомительных сигналов, поэтому микропрограм ма не может быть сугубо последовательной. В ней обязательно при сутствуют безусловные и условные переходы. Каждой команде компьютера соответствует своя микропрограмма, а следовательно, ее адрес в микропрограммной памяти должен определяться кодом операции. Преобразование кода операции в адрес микропрограммы производится шифратором (см. рис. 5.9), который обычно выполняют в виде специальной постоянной памяти.
Дальнейшая очередность выборки микрокоманл определяется принудительным заданием адреса следующей микрокоманды или автоматическим увеличением текущего адреса на единицу (естественная адресация). Принудительная адресация состоит в том, что в определенном поле каждой микрокоманды содержится информация об адресе следующей микрокоманды. Этот адрес может быть окончательным, не зависящим от значений осведомительных сигналов, или находиться из условия, определяемого в зависимости от таких осведомительных сигналов.