Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 302

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

откладывается до окончания текущей. В этом случае ветвление может осуществляться по результату выпол­ няемой микрокоманды.

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

Косвенное кодирование сокращает объем микропро­ граммного ПЗУ, так как позволяет уменьшить длину мик­ рокоманды. Однако оно в некоторой степени нарушает стройность системы микропрограммного управления и приводит к снижению скорости работы процессора из-за потерь времени на дешифрирование полей микроко­

манды.

Микропрограммирование облегчает построение про­ цессоров с широким набором команд, так как реализация дополнительных команд требует только увеличения объе­ ма ПЗУ. В процессорах же с «жесткой» логикой добав­ ление команд, особенно для сложных операций, сущест­ венно увеличивает затраты оборудования на их реали­ зацию.

Микропрограммирование позволяет вводить в универ­ сальные процессоры дополнительные команды, ориенти­

рованные на

специализированное использование ЦВМ

у заказчика.

программного доступа к состоянию процессо­

Наличие

ра после выполнения каждой микрокоманды позволяет создавать на основе микропрограммного управления эф­ фективные и экономичные по объему оборудования сис­ темы автоматической диагностики неисправностей ЦВМ. Наконец, важным с современной точки зрения достоин­ ством микропрограммных систем является возможность реализации на их основе систем эмуляции, обеспечиваю­ щих выполнение на данной машине программы, состав­ ленной в коде команд другой машины. Такие свойства могут быть получены путем введения дополнительного набора микропрограмм, соответствующих командам эму­ лируемой машины [Л. 37]. Благодаря указанным досто­ инствам микропрограммирование широко применяется в современных вычислительных системах малого и сред­ него класса. При этом следует отметить, что микропрог­

372


раммное управление используется не только в процессо­ рах, но и в каналах и других устройствах.

5-13. СОВМЕЩЕНИЕ ОПЕРАЦИЙ. ОПЕРЕЖАЮЩИЕ УСТРОЙСТВА

В большинстве ранних вычислительных машин и во многих малых современных машинах команды выполня­ ются последовательно (рис. 5-25, а). Сначала по адресу, указываемому счетчиком команд, из памяти извлекается очередная команда и формируется исполнительный ад­ рес операнда с использованием, если это необходимо, индексации, косвенной адресации или других методов образования исполнительного адреса. Эта фаза выполне­ ния команды может быть названа подготовительной. Затем процессор переходит к фазе исполнения операции, во время которой из памяти извлекается операнд и про­ изводятся преобразования информации в соответствии с кодом операции команды. Последовательный характер работы процессора способствует простоте его логической организации. Достаточно для всей памяти системы иметь один узел управления циклом памяти. Так как арифме­ тическое устройство во время поиска команды не занято, оно может быть использовано для осуществления индекс­ ных операций над адресами; такое совмещение функций арифметического устройства, естественно, приносит су­ щественную выгоду с точки зрения затрат оборудования.

Однако стремление повысить быстродействие вычис­ лительных систем, особенно крупных систем, привело к появлению процессоров с совмещением операций, не­ смотря на связанное с этим определенное удорожание оборудования.

Одна из возможностей совмещения операций заклю­ чается в модульной организации памяти, при которой память собирается из нескольких автономных модулей, имеющих собственные узлы управления и буферные ре­ гистры и, следовательно, способных работать одновре­ менно. Обычно данные и команды извлекаются из ячеек с последовательными адресами. Поэтому возможна ор­ ганизация чередования адресов, при котором последова­ тельно возрастающие адреса соответствуют разным мо­ дулям памяти. Например, в системе IBM 7030 имеются две группы модулей памяти с чередующимися в каждой группе адресами. Одна группа может использоваться

373


47 3

ь4Ч

Рис. 5-25. Последовательное выполнение (а) и совмещение операции (б, в).

главным образом для хранения команд, а другая—для хранения операндов. Используя указанные свойства в сочетании с соответствующим программированием зада­ чи, можно достичь гораздо более высокой скорости по­ ступления данных из памяти, чем та, которая обеспечи­ вается физическим циклом памяти.

Другая важная предпосылка совмещения операций состоит во введении в состав процессора специального индексного арифметического устройства, которое по­ зволяет осуществлять преобразование адресных частей команд независимо от основного арифметического уст­ ройства.

Простейший пример совмещения операций при одно­ адресной структуре команд иллюстрируется на рис. 5-25, б. Если команды и операнды расположены в разных модулях памяти, то логика процессора может быть пост­ роена таким образом, чтобы одновременно с чтением опе­ ранда во второй фазе г-й команды начинался цикл вы­ борки из памяти (і+1)-й команды; к моменту окончания выполнения і-й команды следующая команда будет го­ това к исполнению. Как видно из рисунка, в такой сис­ теме частично совмещается во времени выполнение двух команд.

Еще большая степень совмещения показана на рис. 5-25, в. Процесс выполнения команды здесь разбит на более мелкие фазы, и благодаря модульному построению памяти и наличию отдельного индексного арифметиче­ ского устройства одновременно четыре команды, кото­ рые находятся в различных фазах своего выполнения, обрабатываются процессором. В литературе по вычисли­ тельной технике методы выполнения операций, подобные только что указанным, получили название опережения, поскольку процессор, осуществив чтение очередной ко­ манды, выбирает из памяти и готовит к исполнению сле­ дующие команды, не дожидаясь окончания выполнения текущей команды.

Опережающие устройства

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

375


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

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

1) какой уровень опережения свободен в данный мо­ мент и может принять команду, подлежащую выполне­ нию в будущем, и ее операнд;

2)какой уровень опережения готов к выдаче своего содержимого в арифметическое устройство для выполне­ ния операции;

3)какой уровень опережения содержит результат опе­ рации, который должен быть послан в память для запо­ минания, и др.

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

Устройство управления процессора непрерывно вы­ бирает из памяти команды, производит индексацию ад­

376


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

Арифметическое устройство, окончив очередную опе­ рацию, обращается к одному из ранее заполненных уров­ ней опережения, указываемому соответствующим счетчи­ ком. Результаты арифметических операций, если это не­ обходимо, записываются в память также через свободный уровень опережающего устройства. При этом арифметическому устройству не надо ждать освобожде­ ния памяти от предыдущего цикла. Аналогично этому, если арифметическое устройство занято длинной опера­ цией, другие устройства вычислительной системы не про­ стаивают в ожидании его освобождения, а продолжают заполнять уровни опережающего устройства будущими командами. Таким образом, опережающее устройство позволяет сгладить различие в скоростях работы различ­ ных элементов вычислительной системы и тем самым поднять ее общую производительность.

5-14. П Р О Ц Е С С О Р Ы С М А ГА З И Н Н О Й П А М Я ТЬЮ . М Н О Г О А К К У М У Л Я Т О Р Н Ы Е П Р О Ц Е С С О Р Ы

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

X _ аі + 62

Ь +■с

Программа решения данной задачи может быть представлена в условной форме следующим образом:

1. Вызов в аккумулятор из памяти операнда с.

377