Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура ЭВМ и систем. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
памятью микропрограмм (ПМК). Процесс формирования СУ можно реализовать, последовательно (с каждым тактовым импульсом) извле­кая микрокоманды микропрограммы из памяти и интерпретируя со­держащуюся в них информацию о сигналах управления.
Идея заинтересовала многих конструкторов ВМ, но была нереа­лизуема, поскольку требовала использования быстрой памяти относи­тельно большой емкости. Вновь вернулись к ней
в 1964 году в ходе соз­дания системы IBM 360. С тех пор устройства управления с программи­руемой логикой стали чрезвычайно популярными и были встроены во многие ВМ. В этой связи следует упомянуть запатентованный академи­ком В.М. Глушковым принцип ступенчатого микропрограммирования, который он впервые реализовал в машине «Проминь».
6.2.4. ПРИНЦИП УПРАВЛЕНИЯ ПО ХРАНИМОЙ В ПАМЯТИ МИКРОПРОГРАММЕ
Отличительной особенностью микропрограммного автомата с программируемой логикой является хранение микрокоманд в виде кодов в специализированном запоминающем устройстве – памяти микропрограмм. Каждой команде ВМ в этом ЗУ в явной форме соот­ветствует микропрограмма, поэтому часто устройства управления, в состав которых входит микропрограммный автомат с программируе­мой логикой, называют микропрограммными.
В составе узла присутствуют
: память микропрограмм (ПМП), ре­гистр адреса микрокоманды (РАМ), регистр микрокоманды (РМК), дешифратор микрокоманд (ДшМК), преобразователь кода операции, формирователь адреса следующей микрокоманды (ФАСМ), формиро­ватель синхроимпульсов (ФСИ).
Запуск микропрограммы выполнения операции осуществляется путем передачи кода операции из РК на вход преобразователя, в кото­ром код операции преобразуется в начальный (первый) адрес
микро­программы Ан. Этот адрес поступает через ФАСМ в регистр адреса микрокоманды. Выбранная по адресу Ан из ПМП микрокоманда зано­сится в РМК. Каждая микрокоманда в общем случае содержит микро­операционную (МО) и адресную (А) части. Микрооперационная часть микрокоманды поступает на дешифратор микрокоманды, на выходе которого образуются управляющие сигналы Сi, инициирующие
вы­полнение микроопераций в исполнительных устройствах и узлах ВМ. Адресная часть микрокоманды подается в ФАСМ, где формируется адрес следующей микрокоманды Амк. Этот адрес может зависеть от адреса на выходе преобразователя кода операции Ан адресной части текущей микрокоманды А и значений осведомительных сигналов (флагов) X, поступающих от исполнительных устройств. Сформиро­ванный адрес
микрокоманды снова записывается в РАМ, и процесс
повторяется до окончания микропрограммы.
131
6.2.5. КОДИРОВАНИЕ МИКРОКОМАНД
Информация о том, какие сигналы управления должны быть сформированы в процессе выполнения текущей МК, в закодированном виде содержится в микрооперационной части (МО) микрокоманды. Способ кодирования микроопераций во многом определяет сложность аппаратных средств устройства управления и его скоростные характе­ристики. Применяемые в микрокомандах варианты кодирования сиг­налов управления можно свести к трем
группам: минимальное кодиро­вание (горизонтальное микропрограммирование), максимальное коди­рование (вертикальное микропрограммирование) и групповое кодиро­вание (смешанное микропрограммирование).
При горизонтальном микропрограммировании под каждый сиг­нал управления в микрооперационной части микрокоманды выделен один разряд (RMO = Ncy). Это позволяет в рамках одной микрокоман­ды формировать любые сочетания СУ, чем обеспечивается макси­мальный параллелизм выполнения микроопераций.
Кроме того, отсут­ствует необходимость в декодировании МО и выходы регистра микро­команды могут быть непосредственно подключены к соответствую­щим управляемым точкам ВМ. Широкому распространению горизон­тального микропрограммирования тем не менее препятствуют боль­шие затраты на хранение микрооперационных частей микрокоманд (Емо = NMK × Ncy), причем эффективность использования ПМП по- лучается низкой, так
как при большом числе микроопераций в каждой отдельной МК реализуется лишь одна или несколько из них, т.е. по­давляющая часть разрядов МО содержит нули.
При максимальном (вертикальном) кодировании каждой микро­операции присваивается определенный код, например ее порядковый номер в полном списке возможных микроопераций. Этот код и зано­сится в МО
. Такой способ кодирования требует минимальных аппа­ратных затрат в ПМП на хранение микрокоманд, однако возникает необходимость в дешифраторе ДшМК, который должен преобразовать код микрооперации в соответствующий сигнал управления. При боль­шом количестве СУ дешифратор вносит значительную временную задержку, а главное – в каждой МК указывается лишь один сигнал управления, инициирующий только
одну микрооперацию, за счет чего
увеличиваются длина микропрограммы и время ее реализации.
Последний недостаток устраняется при подключении к выходам ДшМК шифратора (Ш), что приводит к увеличению количества СУ, формируемых одновременно. Естественно, что помимо кодов отдель­ных микроопераций должны быть предусмотрены коды, представ­ляющие и определенные комбинации микроопераций. Для повышения универсальности шифратор
целесообразно строить на базе запоми-
нающего устройства.
132
Верхний уровень управления образуют микропрограммы, храня­щиеся в памяти микропрограмм. В микрокомандах используется вер­тикальное кодирование микроопераций. Каждой микрокоманде соот­ветствует нанокоманда, хранящаяся в управляющей памяти нижнего уровня – памяти нанокоманд. В нанокомандах применено горизон­тальное кодирование микроопераций. Именно нанокоманды исполь­зуются для непосредственного формирования сигналов управления. Микрокоманды вместо закодированного номера СУ
содержат адрес-
ную ссылку на соответствующую нанокоманду.
Такой подход, сохраняя все достоинства горизонтального микро­программирования, позволяет значительно сократить суммарную ем­кость управляющей памяти. Дело в том, что число различных сочета­ний сигналов управления, а следовательно, количество «длинных» нанокоманд, обычно невелико. В то же время практически все микро­команды многократно повторяются
в различных микропрограммах, и замена в микрокомандах «длинного» горизонтального управляющего поля на короткую адресную ссылку дает ощутимый эффект.
6.2.6. ОБЕСПЕЧЕНИЕ ПОСЛЕДОВАТЕЛЬНОСТИ ВЫПОЛНЕНИЯ МИКРОКОМАНД
Содержимое ПМП определяет последовательность микроопера­ций, которые должны выполняться на каждом этапе цикла команды, а также последовательность этапов. Каждый этап представлен соответ­ствующей микропрограммой. Микропрограммы завершаются микро­командой перехода, определяющей последующие действия. В управ­ляющей памяти имеется также специальная микропрограмма­переключатель: в зависимости от текущего кода операции она указы­вает, этап
исполнения какой команды должен быть выполнен.
Большей частью микрокоманды в микропрограмме выполняются последовательно, однако в общем случае очередность микроопераций не является фиксированной. По этой причине в УУ необходимо преду­смотреть эффективную систему реализации переходов. Переходы как безусловные, так и условные, являются неотъемлемой частью любой микропрограммы.
При выполнении микропрограммы адрес очередной микрокоман­ды относится к одной из трех категорий:
определяется кодом операции команды;
является следующим по порядку адресом;
является адресом перехода.
6.2.7. АДРЕСАЦИЯ МИКРОКОМАНД
133
Первый случай имеет место только один раз в каждом цикле ко­манды, сразу же вслед за ее выборкой. Как уже отмечалось ранее, каж­дой команде из системы команд ВМ соответствует «своя» микропро­грамма в памяти микропрограмм, поэтому первое действие, которое нужно произвести после выборки команды, – преобразовать код опе­рации в адрес
первой МК соответствующей микропрограммы. Это может быть выполнено с помощью аппаратного преобразователя кода операции. Такой преобразователь обычно реализуется в виде специ­ального ЗУ, хранящего начальные адреса микропрограмм в ПМП. Для указания того, как должен вычисляться адрес следующей МК в микро­команде, может быть выделено специальное однобитовое поле. Еди­ница в
этом поле означает, что Амк должен быть сформирован на ос­новании кода операции. Подобная МК обычно располагается в конце микропрограммы этапа выборки или в микропрограмме анализа кода операции.
Дальнейшая очередность выполнения микрокоманд микропро­граммы может быть задана путем указания в каждой МК адреса сле­дующей микрокоманды (принудительная адресация) либо путем авто матического увеличения на единицу адреса текущей МК (естественная адресация).
В обоих случаях необходимо предусмотреть ситуацию, когда ад­рес следующей микрокоманды зависит от состояния осведомительных сигналов – ситуацию перехода. Для указания того, какое условие должно быть проверено, в МК вводится поле условия перехода (УП). Поле УП определяет номер i осведомительного сигнала хi, значение которого анализируется при формировании адреса следующей микро­команды. Если поле УП = 0, то никакие условия не проверяются и Амк либо берется из адресной части микрокоманды (при принудительной адресации), либо формируется путем прибавления единицы к адресу текущей микрокоманды. Если УП ≠ 0, то Амк = А + хi. В результате этого осуществляется условный переход: при х
i = 0 к микрокоманде с
адресом Амк = А, а при xi = 1 – к микрокоманде с адресом Амк = А + 1.
Рассмотренный способ позволяет в каждой команде учесть со­стояние только одного из осведомительных сигналов. Более гибкий подход реализован в ряде ВМ фирмы IBM. В нем адреса микрокоман­ды разбиваются на две составляющие. Старшие n разрядов обычно остаются неизменными.
В процессе выполнения микрокоманды эти разряды просто копируются из адресной части МК в аналогичные по­зиции РАМ, определяя блок из двух микрокоманд в памяти микропро­грамм. Остальные (младшие) k разрядов РАМ устанавливаются в 1 или 0 в зависимости от того, проверка каких осведомительных сигналов была задана в поле УП и в каком состоянии
эти сигналы находятся. Такой метод позволяет в одной микрокоманде сформировать 2k вари­антов перехода.
134
-
Теперь рассмотрим возможные способы реализации принуди­тельной и естественной адресации. Известные подходы сводятся к трем типовым вариантам:
два адресных поля;
одно адресное поле;
переменный формат.
Два первых метода представляют принудительную адресацию, а третий – естественную адресацию микрокоманд.
С помощью мультиплексора в регистр адреса микрокоманды (РАМ) может быть загружен либо адрес, определяемый кодом опера­ции выполняемой команды, либо содержимое одного из адресных по­лей микрокоманды. Выбор источника адреса осуществляется сигналом
«Выбор адреса», вырабатываемым логикой перехода
, на основании
состояния осведомительных сигналов и поля УП микрокоманды. Если УП = 0 или УП = i, но xi ≠ 0, то в РАМ заносится адрес А1 либо адрес, полученный из кода операции. В противном случае в РАМ переписы­вается адрес А2.
Более распространен вариант принудительной адресации с одним адресным полем. Здесь в адресной части МК
указан адрес следующей микрокоманды, который в случае условного перехода может быть мо­дифицирован. Возможен и иной подход, в чем-то близкий естествен­ной адресации, когда в адресной части МК задается лишь адрес воз­можного перехода. При естественном следовании микрокоманд адрес очередной МК формируется путем прибавления единицы к адресу те­кущей микрокоманды
.
Главное достоинство принудительной адресации – высокая уни­версальность и быстродействие. Здесь изменение участка микропро­граммы не затрагивает остальных микрокоманд, а совмещение в одной МК условного перехода с формированием сигналов управления уменьшает общее время выполнения микропрограммы.
Основной недостаток принудительной адресации – повышенные требования к емкости памяти для хранения адресов МК.
При естественной адресации
отпадает необходимость во введении адресной части в каждую МК. Подразумевается, что микрокоманды следуют в естественном порядке и процесс адресации реализуется счетчиком адреса микрокоманды (СЧAM). Значение СЧАМ увеличи­вается на единицу после чтения очередной МК.
Однако после выполнения МК с адресом А может потребоваться
переход к МК с адресом В ≠ А
+ 1. Переход может быть безусловным или зависеть от текущего значения xi (если хi = 1, то Aмк = А + 1; если xi = 0, то АMK = В). Для реализации условных и безусловных перехо­дов используются специальные управляющие микрокоманды, состоя-
135
щие только из двух полей: адресного поля В и поля УП, выделяющего номер условия перехода. Алгоритм выполнения управляющей МК:
если УП = 0, то СЧАМ := В; – если УП 0, то если xi = 1, то СЧАМ := В, иначе СЧАМ :=
=СЧАМ + 1.
Таким образом, при естественной адресации должны применяться
МК двух типов: управляющие и операционные. Операционная
микро­команда содержит только микрооперационную часть и не имеет адрес­ной части. Тип МК задается ее первым разрядом: если МК(1) = 1, то это управляющая микрокоманда.
Достоинство естественной адресации – экономия памяти микро­программ, а основной недостаток состоит в том, что для любого пере­хода требуется полный тактовый период, в то время как при
принуди­тельной адресации переход выполняется одновременно с формирова­нием управляющих сигналов без дополнительных обращений к управ­ляющей памяти. Кроме того, при сильно разветвленных микропро­граммах требуются большие дополнительные затраты памяти.
Таким образом, можно сделать вывод, что по своим возможно­стям базовые функции управления микрокоманд близки к командам переходов программного уровня
управления.
6.2.8. ОРГАНИЗАЦИЯ ПАМЯТИ МИКРОПРОГРАММ
Функциональные возможности и структура микропрограммных автоматов в значительной степени зависят от организации памяти для хранения микропрограмм. Основные способы организации памяти микропрограмм можно свести к следующим вариантам.
1. Каждое слово ПМП содержит одну микрокоманду. Это наибо­лее простая организация ПМП. Основной недостаток – в каждом такте работы МГЛА требуется обращение к памяти микропрограмм, приводит к снижению быстродействия МПА.
2. Одно слово ПМП содержит несколько микрокоманд. В ре­зультате осуществляется одновременное считывание из ПМП несколь­ких МК, что позволяет повысить быстродействие УУ.
3. Сегментация ПМП, при которой память разделяется на сег­менты, состоящие из 2q соседних слов, при этом адрес слова АМК разделяется на два поля
: 5 и A. Поле S определяет адрес сегмента, а поле А – адрес слова в сегменте. Адрес S устанавливается специальной микрокомандой. В последующих микрокомандах указывается только адрес слова А в сегменте. Таким образом, разрядность адресной части МК уменьшается.
А. Двухуровневая память. Первый уровень – микропамять, хра­нящая микрокоманды. Второй уровень – нанопамять, содержащая на­нокоманды.
136
что
МК выбирается из микропамяти и служит для адресации слова нанопамяти, которое включает в себя необходимые сигналы управле­ния. После выполнения микроопераций из микропамяти выбирается следующая МК. Иначе говоря, нанопамять реализует функцию шифра­тора управляющих сигналов. Двухуровневая память рассматривается как способ для уменьшения необходимой емкости ПМП, ее использо­вание целесообразно только при
многократном повторении микроко-
манд в микропрограмме.
6.3. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Охарактеризуйте основные функции устройства управления.
2.
Какие аргументы и результат имеет функция ЦФ-ВК?
3.
Какие аргументы и результат имеет функция ЦФ-ФАСК?
4.
Какие аргументы и результат имеет функция ЦФ-ФИА?
Сколько модификаций она поддерживает?
5.
Какие аргументы и результат имеет функция ЦФ-ВО?
6.
Какие аргументы и результат имеет функция ЦФ-ИО? Сколь-
ко модификаций она поддерживает?
7.
Какие этапы включаются в машинный цикл команды типа
«Сложение»?
8.
Какие этапы входят в машинный цикл команды типа «За-
пись»? Обоснуйте отсутствие одного из этапов.
9.
Какие этапы входят в машинный цикл команды типа «Услов-
ный переход»? Обоснуйте отсутствие двух этапов.
10.
Дайте характеристику входной и выходной информации мо-
дели УУ.
11.
На какие две части делится структура УУ? Что входит в со-
став каждой части? Какое назначение имеют элементы частей УУ?
12.
Обоснуйте название МПА с жесткой логикой.
13.
Перечислите достоинства и недостатки МПА с жесткой логикой.
14.
Обоснуйте название МПА с программируемой логикой.
Сформулируйте достоинства и недостатки таких МПА.
15.
Дайте характеристику элементов структуры МПА с програм-
мируемой логикой.
16.
Объясните принцип управления на основе МПА с програм-
мируемой логикой.
17.
Какие способы кодирования микрокоманд вы знаете? Пере-
числите их достоинства и недостатки.
18.
Чем отличается принцип прямого кодирования микрокоманд
от принципа косвенного кодирования?
19.
В чем заключается суть нанопрограммирования?
137
7. СИСТЕМЫ ВВОДА/ВЫВОДА
Помимо центрального процессора (ЦП) и памяти, третьим ключе­вым элементом архитектуры ВМ является система ввода/вывода (СВВ). Система ввода/вывода призвана обеспечить обмен информацией между ядром ВМ и разнообразными внешними устройствами (ВУ). Техниче­ские и программные средства СВВ несут ответственность за физическое и логическое сопряжение ядра вычислительной машины и ВУ.
В
процессе эволюции вычислительных машин системам вво­да/вывода по сравнению с прочими элементами архитектуры уделя­лось несколько меньшее внимание. Косвенным подтверждением этого можно считать, например, то, что многие программы контроля произ­водительности (бенчмарки) вообще не учитывают влияние операций ввода/вывода (В/ВЫВ) на эффективность ВМ. Следствием подобного отношения стал существенный сора и памяти, с одной стороны, и скоростью ввода/вывода – с другой.
Технически система ввода/вывода в рамках ВМ реализуется ком­плексом модулей ввода/вывода (МВБ). Модуль ввода/вывода выпол­няет сопряжение ВУ с ядром ВМ и различные коммуникационные операции между ними. Две основные функции МВВ:
обеспечение интерфейса с ЦП и памятьюбольшой» интер-
фейс);
обеспечение интерфейса с одним или несколькими перифе-
рийными устройствами («малый» интерфейс).
Анализируя архитектуру известных ВМ, можно выделить три ос­новных способа подключения СВВ к ядру процессора.
В варианте с раздельными шинами памяти и ввода/вывода обмен информацией между ЦП и памятью физически отделен от ввода/вывода, поскольку обеспечивается полностью независимыми шинами возможность осуществлять обращение к памяти одновременно с вы­полнением ввода/вывода. Кроме того, данный архитектурный вариант ВМ позволяет специализировать каждую из шин, учесть формат пере­сылаемых данных, особенности синхронизации обмена и т.п. В част­ности, шина ввода/вывода с учетом характеристик реальных ВУ мо­жет иметь меньшую
пропускную способность, что позволяет снизить затраты на ее реализацию. Недостатком решения можно считать боль­шое количество точек подключения к ЦП.
Второй вариант – с совместно используемыми линиями данных и адреса. Память и СВВ имеют общие для них линии адреса и линии данных, разделяя их во времени. В то же время управление памятью СВВ, а также синхронизация их взаимодействия с процессором осуще-
разрыв в производительности процес-
. Это дает
и
138
ствляются независимо по раздельным линиям управления. Это позво­ляет учесть особенности процедур обращения к памяти и к модулям ввода/вывода и добиться наибольшей эффективности доступа к ячей­кам памяти и внешним устройствам.
Последний тип архитектуры ВМ предполагает подключение СВВ к системной шине на общих правах с процессором и памятью. Пре­имущества
и недостатки такого подхода обсуждались при рассмотре­нии вопросов организации шин (глава А). Потенциально возможен также вариант подключения внешних устройств к системной шине напрямую, без использования МВВ, но против него можно выдвинуть сразу несколько аргументов. Во-первых, в этом случае ЦП пришлось бы оснащать универсальными схемами для управления любым ВУ. При большом разнообразии внешних устройств, имеющих к тому же различные принципы действия, такие схемы оказываются чересчур сложными и избыточными. Во-вторых, пересылка данных при вводе и выводе происходит значительно медленнее, чем при обмене между ЦП и памятью, и было бы невыгодно задействовать для обмена информа­цией с ВУ высокоскоростную системную шину
. И, наконец, в ВУ час­то используются иные форматы данных и длина слова, чем в ВМ, к которым они подключены.
7.1. АДРЕСНОЕ ПРОСТРАНСТВО
Как и обращение к памяти, операции ввода/вывода также предпо­лагают наличие некоторой системы адресации, позволяющей выбрать один из модулей СВВ, а также одно из подключенных к нему внешних устройств. Адрес модуля и ВУ является составной частью соответст­вующей команды, в то время как расположение данных на внешнем устройстве определяется пересылаемой
Адресное пространство ввода/вывода может быть совмещено с адресным пространством памяти или быть выделенным.
При совмещении адресного пространства для адресации модулей ввода/вывода отводится определенная область адресов. Обычно все операции с модулем ввода/вывода осуществляются с использованием входящих в него внутренних регистров: управления, состояния, дан­ных. Фактически ции в одни регистры МВВ и считыванию ее из других регистров. Это позволяет рассматривать регистры МВВ как ячейки основной памяти и работать с ними с помощью обычных команд обращения к памяти, при этом в системе команд ВМ вообще могут отсутствовать специальные команды ввода и производить непосредственно с помощью арифметических и логиче-
СИСТЕМЫ ВВОДА/ВЫВОДА
на ВУ информацией.
процедура ввода/вывода сводится к записи информа-
вывода. Так, модификацию регистров МВВ можно
139
ских команд. Адреса регистрам МВВ назначаются в области адресного пространства памяти, отведенной под систему ввода/вывода.
Такой подход представляется вполне оправданным, если учесть, что ввод/вывод обычно составляет малую часть всех операций, выпол­няемых вычислительной машиной, чаще всего не более 1% от общего числа команд в программе.
Реализация концепции совмещенного адресного пространства
в ВМ с кэш-памятью и виртуальной адресацией сопряжена с определен­ными проблемами. В частности, усложняется отображение виртуаль­ного адреса устройства ввода/вывода на физическое ВУ. Сложности также возникают и с кэшированием регистров МВВ.
Сформулируем преимущества и недостатки совмещенного адрес-
ного пространства.
Достоинства совмещенного адресного пространства:
расширение набора команд для обращения к внешним устрой-
ствам, что позволяет сократить длину программы и повысить быстро­действие;
значительное увеличение количества подключаемых внешних
устройств;
возможность внепроцессорного обмена данными между внеш-
ними устройствами, если в системе команд есть команды пересылки между ячейками памяти;
возможность обмена информацией не только с аккумулято-
ром, но и с любым регистром центрального процессора.
Недостатки совмещенного адресного пространства:
сокращение области адресного пространства памяти; усложнение декодирующих схем адресов в СВВ;
трудности распознавания операций передачи информации при
вводе/выводе среди других операций. Сложности в чтении и отладке программы, в которой простые команды вызывают выполнение слож­ных операций ввода/вывода;
трудности при построении СВВ на простых модулях вво-
да/вывода: сигналы управления не смогут координировать сложную процедуру ввода/вывода. Поэтому МВБ часто должны генерировать дополнительные сигналы под управлением программы.
Совмещенное адресное пространство используется в вычисли-
тельных машинах MIPS и SPARC.
В случае выделенного адресного пространства для обращения к
модулям ввода/вывода применяются специальные
команды и отдель­ная система адресов. Это позволяет разделить шины для работы с па­мятью и шины ввода/вывода, что дает возможность совмещать во вре­мени обмен с памятью и ввод/вывод. Кроме того, адресное простран-
140
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]