3.3. Назначение, классификация и организация ЦУУ

К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 
34 35 36 37 38 39 40 41 42 43 44 45 

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

управляющими сигналами.

В общем случае ЦУУ формирует управляющие сигналы для реализации

следующих функций:

- выборки из памяти кода очередной команды;

- расшифровки кода операции и признаков выбранной команды;

- выборки операндов и выполнения машинной операции;

- обеспечения прерываний при выполнении команд;

- формирования адреса следующей команды;

- учета состояний других устройств машины;

- инициализации работы контроллеров (каналов) ввода-вывода;

- организации контроля работоспособности ЭВМ.

Для дальнейшего рассмотрения характеристик и способов организации ЦУУ введем ряд определений.

Элементарное машинное действие, выполняемое по одному УС, назы­вают микрооперацией. Набор микроопераций, выполняемых параллельно в одном машинном такте, называют микрокомандой Последовательность микрокоманд, обеспечивающих выполнение некоторой операции, предпи­санной командой, называют микропрограммой.

К основным характеристикам ЦУУ следует отнести:

- принцип формирования и развертывания временной последователь­ности УС;

- способ построения цикла работы ЦУУ и ЭВМ в целом;

- общая организация управления ЭВМ;

- способ синхронизации узлов и блоков ЭВМ. По принципу формирования и развертывания временной последо­вательности УС различают ЦУУ:

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

- микропрограммного типа, в которых блок управления реализован как блок микропрограммного управления (БМУ).

По способу построения рабочего цикла различают ЦУУ:

- с прямым циклом, когда на первом этапе производится выборка из памяти команды, а затем следуют этапы выполнения машинной операции;

- с обращенным циклом, когда сначала выдаются УС микроопераций для выполнения машинной операции по коду команды, поступившей в ЦУУ на предыдущем цикле (предвыборка команд), а затем из памяти выбирается код команды, которая будет исполняться в следующем цикле;

- с совмещением во времени циклов выполнения нескольких команд (конвейером команд).

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

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

По принципу организации циклов различают ЦУУ:

- синхронного типа, в которых время цикла может быть постоянным

или переменным;

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

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

3.3.1. Центральное устройство управления микропрограммного типа

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

Микрокоманда (МК) имеет операционно-адресную структуру. В опера­ционной части МК размещается информация о микрооперациях (МО), одно­временно выполняемых в блоках ЭВМ под управлением данной МК. В ад­ресной части МК находится информация, необходимая для формирования адреса следующей микрокоманды.

Существуют различные способы организации операционной части МК:

- горизонтальное микропрограммирование;           

- вертикальное микропрограммирование;

- смешанное микропрограммирование.

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

По второму способу из всего множества М микроопераций выделяются подмножества, содержащие не более Н совместно выполняемых в каждом такте МО. Номера МО кодируются двоичным кодом, разрядность которого определяется по формуле m ³ log2М. Операционная часть МК должна со­держать Н полей, каждое из которых имеет разрядность m и определяет код номера микрооперации. В результате использования данного метода умень­шается длина МК, сокращаются затраты микропрограммной памяти, но воз­никает необходимость в дешифрировании полей операционной части МК, что приводит к увеличению затрат времени на выработку УС.

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

Адресная часть МК используется для определения адреса следующей МК.

Существуют два способа адресации микрокоманд:

- принудительная адресация;

- естественная адресация.

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

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

Обобщенная структура блока микропрограммного управления (ЕМУ) представлена на рис. 3.7. Узел ФАМ предназначен для формирования адреса очередной МК с учетом значений адресной части (АЧ) предыдущей МК и множества {х} осведомительных сигналов. Микропрограммная память (МПП) хранит микропрограммы операций и по сформированному адресу в каждом такте выдает значение очередной МК, которое записывается в ре­гистр микрокоманд (РМК). Поля операционной части (OЧ), выбранной МК, при необходимости дешифрируются для выработки управляющих сигна­лов {y}. Первоначальное обращение к какой-либо микропрограмме осущест­вляется по начальному адресу (НА), который соответствует коду операции выполняемой команды.

Рис.3.7. Обобщенная структура БМУ

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

Таким образом, использование в составе центрального устройства управления БМУ приводит к двухуровневому принципу управления процес­сом обработки данных. Первый уровень — это система команд ЭВМ (про­граммное управление), второй — микропрограммное управление. Возникает задача организации перехода от одного уровня к другому. На рис. 3.8 приве­дена упрощенная структура процессора, в котором решается эта задача. По содержимому счетчика адреса команд (СЧАК) из памяти программ (кэш­памяти) выбирается команда и записывается в регистр команд (РК). Код опе­рации из РКОП подается на дешифратор начального адреса (ДШНА), кото­рый на выходе формирует адрес первой микрокоманды микропрограммы, со­ответствующей данному коду операции. ДШНА реализуется на ПЗУ или ПЛМ (программируемой логической матрице). Под управлением микроко­манд выполняются все последующие действия. Адрес операнда из РА пере­дается в память данных, осуществляется выборка операнда и занесение его в регистр общего назначения (СОЗУ) или в АЛУ. В АЛУ выполняется опреде­ленная микропрограммой операция, результат записывается в РОН или па­мять данных.

Анализ аппаратурной (схемной) и микропрограммной реализации уст­ройства управления указывает на зависимость стоимости управления от величины набора команд и их сложности. Для сокращенного набора простых команд выгоднее использовать схемное управление, что и реализуется в RISC-процессорах. При расширенном составе сложных команд (как в CISC-процессорах) наиболее эффективно, с точки зрения затрат оборудования, микропрограммное управление. Однако оно приводит к увеличению затрат времени на выработку управляющих воздействий. Основным же преимуще­ством микропрограммного управления является его гибкость, которая позво­ляет повышать эффективность серийно выпускаемых и эксплуатируемых машин за счет введения новых средств математического обеспечения, ис­пользующих дополнительный набор команд и новые функции процессора. Модернизация алгоритмов или реализация дополнительных команд легко осуществляется путем изменения содержимого микропрограммной памяти. Наглядным примером использования данной возможности является техноло­гия ММХ, разработанная фирмой Intel. В серийно выпускаемый процессор Pentium были добавлены 57 новых команд для параллельной обработки ви­део- и аудиоинформации. Аппаратурные средства процессора остались прежними, изменению подверглась лишь микропрограммная память.

Рис.3.8. Процессор с микропрограммным управлением

33.2. Процедура выполнения команд

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

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

команды.

Выборка операнда (ВО) — вычисление адреса и обращение в основную память или к регистру локальной памяти. Операнд считывается и принимает­ся в регистр АЛУ.

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

На рис. 3.9 показаны временные диаграммы обработки команды с раз­биением на этапы (фазы) выполнения (а): последовательная обработка ко­манд (б); обработка команд в режиме совмещения — конвейер команд (в).

Рис. 3.9. Временные диаграммы обработки команд в процессоре:

а) этапы выполнения команды;

б) последовательное выполнение команд;

в) совмещенное выполнение команд (конвейеризация) »

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

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

Следует учитывать, что совмещение обработки увеличивает объем обо­рудования и усложняет схемы управления тем сильнее, чем больше число уровней совмещения.

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

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

В большинстве современных компьютеров используется конвейер ко­манд.

3.3.3. Принципы организации системы прерывания программ

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

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

Рассматриваемый процесс, называемый прерыванием программ, поясня­ется на рис. 3.10.

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

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

Программу, затребованную запросом прерывания, называют преры­вающей программой, противопоставляя ее прерываемой программе, вы­полнявшейся в ЭВМ до появления запроса.

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

Таким образом, запросы прерывания генерируются несколькими разви­вающимися параллельно во времени процессами, которые в некоторые мо­менты требуют вмешательства процессора.

К этим процессам, в частности, относится процесс выполнения самой программы, процесс контроля правильности работы ЭВМ, операции ввода -вывода, технологический процесс в управляемом машиной объекте и др.

Рис.3.10. Процесс прерывания программы

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

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

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

Основными функциями системы прерывания являются:

- запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе;

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

Характеристики системы прерывания

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

1. Общее число запросов прерывания (входов в систему прерывания).

2. Время реакции — время между появлением запроса прерывания и моментом прерывания текущей программы. На рис. 3.11 приведена упро­щенная временная диаграмма процесса прерывания.

Рис.3.11. Упрощенная временная диаграмма процесса прерывания

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

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

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

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

3. Затраты времени на переключение программ (издержки прерыва­ния) равны суммарному расходу времени на запоминание и восстановление состояния программы (рис. 3.11):

4. Глубина прерывания - максимальное число программ, которые мо­гут прерывать друг друга. Если после перехода к прерывающей программе и вплоть до ее окончания прием запросов прекращается, то говорят, что систе­ма имеет глубину прерывания, равную 1. Глубина равна n, если допускается последовательное прерывание до n программ. Глубина прерывания обычно совпадает с числом уровней приоритета в системе прерывания. На рис. 3.12 показаны процессы прерывания в системах с различной глубиной прерыва­ния (предполагается, что приоритет каждого последующего запроса выше предыдущего). Система с большим значением глубины прерывания обеспе­чивает более быструю реакцию на срочные запросы.

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

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

Рис.3.12. Процессы прерывания с различной глубиной прерывания и дисциплиной обслуживания

5. Число классов (уровней) прерывания. В ЭВМ число различных за­просов (причин) прерывания может достигать нескольких десятков или со­тен. В таких случаях часть запросов разделяют на отдельные классы или уровни.

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

Рис.3.13. Разделение запросов на классы прерывания

Запросы всех источников прерывания поступают на регистр запросов прерывания РгЗП, устанавливая соответствующие его разряды в состояние 1, указывающее на наличие запроса прерывания определенного источника. За­просы классов прерывания ЗПК1-ЗПКk формируются элементами ИЛИ, объ­единяющими разряды РгЗП, относящиеся к соответствующим классам (уров­ням). Еще одна схема ИЛИ формирует общий сигнал прерывания ОСП, по­ступающий в устройство управления процессора.

Информация о действительной причине прерывания, породившей запрос данного класса, содержится в коде прерывания, который отражает состояние разрядов РгЗП, относящихся к данному классу прерывания.

После принятия запроса прерывания на исполнение и передачу управле­ния прерывающей программе соответствующий триггер РгЗП сбрасывается. Объединение запросов в классы прерывания позволяет уменьшить объем ап­паратуры. но приводит к замедлению работы системы прерывания.

Программно-управляемый приоритет прерывающих программ

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

В ЭВМ широко применяются два способа программно-управляемого приоритета прерывающих программ:

- использование порога прерывания;

- использование маски прерывания.

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

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

Маска прерывания представляет собой двоичный код, разряды которо­го поставлены в соответствие запросам или классам (уровням) прерываний. Маска загружается командой программы в регистр маски (рис. 3.14).

Рис.3.14. Маскирование прерываний

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

С замаскированным запросом, в зависимости от причины прерывания, поступают двояким образом: или он игнорируется, или запоминается, с тем чтобы осуществить затребованные действия, когда запрет будет снят. На­пример, если прерывание вызвано окончанием операции в ПУ, то его следу­ет, как правило, запомнить, так как иначе ЭВМ останется неосведомленной о том, что ПУ освободилось.

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

Организация перехода к прерывающей программе

%,

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

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

Наиболее гибким и динамичным является векторное прерывание, при котором источник прерывания, выставляя запрос прерывания, посылает в процессор (выставляет на шины интерфейса) код адреса в памяти своего век­тора прерывания.

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

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

управляющими сигналами.

В общем случае ЦУУ формирует управляющие сигналы для реализации

следующих функций:

- выборки из памяти кода очередной команды;

- расшифровки кода операции и признаков выбранной команды;

- выборки операндов и выполнения машинной операции;

- обеспечения прерываний при выполнении команд;

- формирования адреса следующей команды;

- учета состояний других устройств машины;

- инициализации работы контроллеров (каналов) ввода-вывода;

- организации контроля работоспособности ЭВМ.

Для дальнейшего рассмотрения характеристик и способов организации ЦУУ введем ряд определений.

Элементарное машинное действие, выполняемое по одному УС, назы­вают микрооперацией. Набор микроопераций, выполняемых параллельно в одном машинном такте, называют микрокомандой Последовательность микрокоманд, обеспечивающих выполнение некоторой операции, предпи­санной командой, называют микропрограммой.

К основным характеристикам ЦУУ следует отнести:

- принцип формирования и развертывания временной последователь­ности УС;

- способ построения цикла работы ЦУУ и ЭВМ в целом;

- общая организация управления ЭВМ;

- способ синхронизации узлов и блоков ЭВМ. По принципу формирования и развертывания временной последо­вательности УС различают ЦУУ:

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

- микропрограммного типа, в которых блок управления реализован как блок микропрограммного управления (БМУ).

По способу построения рабочего цикла различают ЦУУ:

- с прямым циклом, когда на первом этапе производится выборка из памяти команды, а затем следуют этапы выполнения машинной операции;

- с обращенным циклом, когда сначала выдаются УС микроопераций для выполнения машинной операции по коду команды, поступившей в ЦУУ на предыдущем цикле (предвыборка команд), а затем из памяти выбирается код команды, которая будет исполняться в следующем цикле;

- с совмещением во времени циклов выполнения нескольких команд (конвейером команд).

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

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

По принципу организации циклов различают ЦУУ:

- синхронного типа, в которых время цикла может быть постоянным

или переменным;

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

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

3.3.1. Центральное устройство управления микропрограммного типа

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

Микрокоманда (МК) имеет операционно-адресную структуру. В опера­ционной части МК размещается информация о микрооперациях (МО), одно­временно выполняемых в блоках ЭВМ под управлением данной МК. В ад­ресной части МК находится информация, необходимая для формирования адреса следующей микрокоманды.

Существуют различные способы организации операционной части МК:

- горизонтальное микропрограммирование;           

- вертикальное микропрограммирование;

- смешанное микропрограммирование.

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

По второму способу из всего множества М микроопераций выделяются подмножества, содержащие не более Н совместно выполняемых в каждом такте МО. Номера МО кодируются двоичным кодом, разрядность которого определяется по формуле m ³ log2М. Операционная часть МК должна со­держать Н полей, каждое из которых имеет разрядность m и определяет код номера микрооперации. В результате использования данного метода умень­шается длина МК, сокращаются затраты микропрограммной памяти, но воз­никает необходимость в дешифрировании полей операционной части МК, что приводит к увеличению затрат времени на выработку УС.

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

Адресная часть МК используется для определения адреса следующей МК.

Существуют два способа адресации микрокоманд:

- принудительная адресация;

- естественная адресация.

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

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

Обобщенная структура блока микропрограммного управления (ЕМУ) представлена на рис. 3.7. Узел ФАМ предназначен для формирования адреса очередной МК с учетом значений адресной части (АЧ) предыдущей МК и множества {х} осведомительных сигналов. Микропрограммная память (МПП) хранит микропрограммы операций и по сформированному адресу в каждом такте выдает значение очередной МК, которое записывается в ре­гистр микрокоманд (РМК). Поля операционной части (OЧ), выбранной МК, при необходимости дешифрируются для выработки управляющих сигна­лов {y}. Первоначальное обращение к какой-либо микропрограмме осущест­вляется по начальному адресу (НА), который соответствует коду операции выполняемой команды.

Рис.3.7. Обобщенная структура БМУ

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

Таким образом, использование в составе центрального устройства управления БМУ приводит к двухуровневому принципу управления процес­сом обработки данных. Первый уровень — это система команд ЭВМ (про­граммное управление), второй — микропрограммное управление. Возникает задача организации перехода от одного уровня к другому. На рис. 3.8 приве­дена упрощенная структура процессора, в котором решается эта задача. По содержимому счетчика адреса команд (СЧАК) из памяти программ (кэш­памяти) выбирается команда и записывается в регистр команд (РК). Код опе­рации из РКОП подается на дешифратор начального адреса (ДШНА), кото­рый на выходе формирует адрес первой микрокоманды микропрограммы, со­ответствующей данному коду операции. ДШНА реализуется на ПЗУ или ПЛМ (программируемой логической матрице). Под управлением микроко­манд выполняются все последующие действия. Адрес операнда из РА пере­дается в память данных, осуществляется выборка операнда и занесение его в регистр общего назначения (СОЗУ) или в АЛУ. В АЛУ выполняется опреде­ленная микропрограммой операция, результат записывается в РОН или па­мять данных.

Анализ аппаратурной (схемной) и микропрограммной реализации уст­ройства управления указывает на зависимость стоимости управления от величины набора команд и их сложности. Для сокращенного набора простых команд выгоднее использовать схемное управление, что и реализуется в RISC-процессорах. При расширенном составе сложных команд (как в CISC-процессорах) наиболее эффективно, с точки зрения затрат оборудования, микропрограммное управление. Однако оно приводит к увеличению затрат времени на выработку управляющих воздействий. Основным же преимуще­ством микропрограммного управления является его гибкость, которая позво­ляет повышать эффективность серийно выпускаемых и эксплуатируемых машин за счет введения новых средств математического обеспечения, ис­пользующих дополнительный набор команд и новые функции процессора. Модернизация алгоритмов или реализация дополнительных команд легко осуществляется путем изменения содержимого микропрограммной памяти. Наглядным примером использования данной возможности является техноло­гия ММХ, разработанная фирмой Intel. В серийно выпускаемый процессор Pentium были добавлены 57 новых команд для параллельной обработки ви­део- и аудиоинформации. Аппаратурные средства процессора остались прежними, изменению подверглась лишь микропрограммная память.

Рис.3.8. Процессор с микропрограммным управлением

33.2. Процедура выполнения команд

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

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

команды.

Выборка операнда (ВО) — вычисление адреса и обращение в основную память или к регистру локальной памяти. Операнд считывается и принимает­ся в регистр АЛУ.

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

На рис. 3.9 показаны временные диаграммы обработки команды с раз­биением на этапы (фазы) выполнения (а): последовательная обработка ко­манд (б); обработка команд в режиме совмещения — конвейер команд (в).

Рис. 3.9. Временные диаграммы обработки команд в процессоре:

а) этапы выполнения команды;

б) последовательное выполнение команд;

в) совмещенное выполнение команд (конвейеризация) »

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

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

Следует учитывать, что совмещение обработки увеличивает объем обо­рудования и усложняет схемы управления тем сильнее, чем больше число уровней совмещения.

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

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

В большинстве современных компьютеров используется конвейер ко­манд.

3.3.3. Принципы организации системы прерывания программ

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

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

Рассматриваемый процесс, называемый прерыванием программ, поясня­ется на рис. 3.10.

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

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

Программу, затребованную запросом прерывания, называют преры­вающей программой, противопоставляя ее прерываемой программе, вы­полнявшейся в ЭВМ до появления запроса.

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

Таким образом, запросы прерывания генерируются несколькими разви­вающимися параллельно во времени процессами, которые в некоторые мо­менты требуют вмешательства процессора.

К этим процессам, в частности, относится процесс выполнения самой программы, процесс контроля правильности работы ЭВМ, операции ввода -вывода, технологический процесс в управляемом машиной объекте и др.

Рис.3.10. Процесс прерывания программы

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

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

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

Основными функциями системы прерывания являются:

- запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе;

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

Характеристики системы прерывания

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

1. Общее число запросов прерывания (входов в систему прерывания).

2. Время реакции — время между появлением запроса прерывания и моментом прерывания текущей программы. На рис. 3.11 приведена упро­щенная временная диаграмма процесса прерывания.

Рис.3.11. Упрощенная временная диаграмма процесса прерывания

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

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

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

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

3. Затраты времени на переключение программ (издержки прерыва­ния) равны суммарному расходу времени на запоминание и восстановление состояния программы (рис. 3.11):

4. Глубина прерывания - максимальное число программ, которые мо­гут прерывать друг друга. Если после перехода к прерывающей программе и вплоть до ее окончания прием запросов прекращается, то говорят, что систе­ма имеет глубину прерывания, равную 1. Глубина равна n, если допускается последовательное прерывание до n программ. Глубина прерывания обычно совпадает с числом уровней приоритета в системе прерывания. На рис. 3.12 показаны процессы прерывания в системах с различной глубиной прерыва­ния (предполагается, что приоритет каждого последующего запроса выше предыдущего). Система с большим значением глубины прерывания обеспе­чивает более быструю реакцию на срочные запросы.

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

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

Рис.3.12. Процессы прерывания с различной глубиной прерывания и дисциплиной обслуживания

5. Число классов (уровней) прерывания. В ЭВМ число различных за­просов (причин) прерывания может достигать нескольких десятков или со­тен. В таких случаях часть запросов разделяют на отдельные классы или уровни.

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

Рис.3.13. Разделение запросов на классы прерывания

Запросы всех источников прерывания поступают на регистр запросов прерывания РгЗП, устанавливая соответствующие его разряды в состояние 1, указывающее на наличие запроса прерывания определенного источника. За­просы классов прерывания ЗПК1-ЗПКk формируются элементами ИЛИ, объ­единяющими разряды РгЗП, относящиеся к соответствующим классам (уров­ням). Еще одна схема ИЛИ формирует общий сигнал прерывания ОСП, по­ступающий в устройство управления процессора.

Информация о действительной причине прерывания, породившей запрос данного класса, содержится в коде прерывания, который отражает состояние разрядов РгЗП, относящихся к данному классу прерывания.

После принятия запроса прерывания на исполнение и передачу управле­ния прерывающей программе соответствующий триггер РгЗП сбрасывается. Объединение запросов в классы прерывания позволяет уменьшить объем ап­паратуры. но приводит к замедлению работы системы прерывания.

Программно-управляемый приоритет прерывающих программ

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

В ЭВМ широко применяются два способа программно-управляемого приоритета прерывающих программ:

- использование порога прерывания;

- использование маски прерывания.

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

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

Маска прерывания представляет собой двоичный код, разряды которо­го поставлены в соответствие запросам или классам (уровням) прерываний. Маска загружается командой программы в регистр маски (рис. 3.14).

Рис.3.14. Маскирование прерываний

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

С замаскированным запросом, в зависимости от причины прерывания, поступают двояким образом: или он игнорируется, или запоминается, с тем чтобы осуществить затребованные действия, когда запрет будет снят. На­пример, если прерывание вызвано окончанием операции в ПУ, то его следу­ет, как правило, запомнить, так как иначе ЭВМ останется неосведомленной о том, что ПУ освободилось.

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

Организация перехода к прерывающей программе

%,

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

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

Наиболее гибким и динамичным является векторное прерывание, при котором источник прерывания, выставляя запрос прерывания, посылает в процессор (выставляет на шины интерфейса) код адреса в памяти своего век­тора прерывания.

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