Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции - Организация ЭВМ и систем - файл Глава_3_Часть1.doc


Загрузка...
Лекции - Организация ЭВМ и систем
скачать (989.6 kb.)

Доступные файлы (10):

ВВЕДЕНИЕ-12.03.doc25kb.19.05.2004 10:51скачать
ГЛАВА 1,2-12.03.doc286kb.19.05.2004 10:51скачать
Глава_3_Часть1.doc232kb.19.05.2004 10:51скачать
Глава_3_Часть2-1.doc237kb.19.05.2004 10:51скачать
ГЛАВА 4.-12.03.Отч.doc852kb.19.05.2004 10:51скачать
ГЛАВА 5.-12.03.doc184kb.19.05.2004 10:51скачать
ГЛАВА 6.-241203_Отч.doc2397kb.19.05.2004 10:51скачать
ГЛАВА 7.-12.03.doc313kb.19.05.2004 10:51скачать
ЛИТЕРАТУРА.doc23kb.19.05.2004 10:51скачать
ОГЛАВЛЕНИЕ.doc52kb.19.05.2004 10:51скачать

Глава_3_Часть1.doc

Реклама MarketGid:
Загрузка...
РАЗДЕЛ II. ПРИНЦИП ОРГАНИЗАЦИИ И ФУНКЦИОНИРОВАНИЯ ОСНОВНЫХ УСТРОЙСТВ ЭВМ
ГЛАВА 3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ

ОРГАНИЗАЦИЯ ПРОЦЕССОРОВ ЭВМ

3.1. Архитектура процессора ЭВМ

3.1.1. Назначение и общая структура процессора

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

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

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

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

Упрощенная структурная схема процессора представлена на рис. 3.1.

На схеме изображены только его основные части: арифметическо-логическое устройство (АЛУ), управляющее устройство (УУ), блок управляющих регистров (БУР), блок регистровой памяти (местная память) и блок связи с основной оперативной памятью (ОП) и некоторым другим, в том числе внешним по отношению к ЭВМ, оборудованием. В состав процессора могут также входить и некоторые другие блоки, участвующие в организации вычислительного процесса (блок прерывания, блок защиты памяти, блок контроля правильности работы и диагностики процессора и др.).

^ Арифметическо-логическое устройство процессора выполняет логические и арифметические операции над данными. В общем случае в АЛУ выполняются логические преобразования над логическими кодами


Рис. 3.1. Упрощенная структурная схема процессора

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

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

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

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

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

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

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

^ 3.1.2. Адресные структуры основных типов памяти

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

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

Адресная структура основной памяти в современных ЭВМ представлена на рис. 3.2.

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




4


Рис. 3.2. Адресная структура основной (оперативной) памяти в микропроцессорах

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

В ЭВМ могут использоваться следующие форматы информации фиксированной длины: байт; полуслово (два последовательно расположенных в памяти байта); слово (4 байта); двойное слово (8 байт); учетверенное слово (16 байт). Кроме того, используются слова (или поля) переменной длины для представления десятичных чисел логических кодов и алфавитно-цифровых данных. Адрес слова переменной длины (адрес его левого байта) может быть любым в пределах адресной сетки машины, что обеспечивает размещение в памяти полей переменной длины без просветов. Для упрощения и убыстрения процедур выполнения команд в ряде ЭВМ на адресацию единиц информации фиксированной длины накладываются определенные ограничения (так называемые целочисленные границы). Например, в некоторых ЭВМ адреса полуслов, слов, двойных и учетверенных слов рекомендуется назначать кратными соответственно 2, 4, 8 и 16, при этом двоичные адреса указанных единиц информации содержит 0 соответственно в одном, двух, трех и четырех младших разрядах. Адрес команды может быть только четным.
^ 3.1.3. Структура и формат команд

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

ЭВМ, являющаяся универсальным преобразователем дискретной информации, выполняет все указанные виды преобразований.

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

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

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

В команде, как правило, содержатся не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся.

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



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

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

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

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

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

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




Рис. 3.4. Cтруктуры команд: а – четырехадресная; б – трехадресная; в – двухадресная; г – одноадресная; д – безадресная
В трехадресной команде первый и второй адреса указывают ячейки памяти, в которых расположены операнды, а третий определяет ячейку, в которую помещается результат операции (рис. 3.4,б). Операция, описываемая трехадресной командой, может быть символически представлена в виде

ОП [А3]:=ОП [А1]*ОП [А2]

где знак * заменяет символ операции ( +, - и т.п.).

Можно условиться, что результат операции всегда помещается на месте одного из операндов, например первого. Получим двухадресную команду (рис. 3.4,в)

ОП [А1]:=ОП [А1]*ОП [А2],

т.е. для результата используется подразумеваемый адрес.

В одноадресной команде подразумеваемые адреса имеют и результат операций, и один из операндов (рис. 3.4,г). Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата, или аккумулятором (Акк).

Результат операции записывается в тот же регистр:

Акк:=Акк*ОП[А].

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

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

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

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

3.2.1. Формирование исполнительного адреса

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

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

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

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

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

^ Прямая адресация. Исполнительный адрес совпадает с адресной частью команды (применяется в настоящее время в комбинации с другими способами).

Относительная адресация или базирование. Исполнительный адрес определяется суммой адресного кода команды Ак и некоторого числа Аб, называемого базовым адресом:

Аибк.

Для хранения базовых адресов в машине могут быть предусмотрены регистры или специально выделенные для этой цели ячейки памяти (базовые регистры). В команде выделяется поле В для указания номера базового регистра. Относительная адресация позволяет при меньшей длине адресного кода команды обеспечить доступ к любой ячейке памяти. Для этого число разрядов в базовом адресе выбирают таким, чтобы можно было адресовать любую ячейку ОП, а адресный код Ак самой команды используют для представления лишь сравнительно короткого «смещения» (обозначают буквой D). Смещение D определяет положение операнда относительно начала массива, задаваемого базовым адресом Аб (рис. 3.5).

Большей частью исполнительный адрес при базировании образуется с помощью сумматора (СМ) согласно выражению

Аи =

где В и D - коды (числа), стоящие в соответствующих полях команды: (В) - содержимое регистра с номером В. При В=0 относительная адресация блокируется.

Суммирование при образовании Аи связано с потерей времени. Поэтому применяют также формирование исполнительного адреса методом


Базовый адрес



Сме-щение D


Ячейки

а) б) в)

Рис. 3.5. Базирование (относительная адресация):

а – образование адреса элемента одномерного массива; б – формирование исполнительного адреса суммированием; в – формирование исполнительного адреса совмещением
совмещения (рис. 3.5,в). В этом случае базовый адрес содержит старшие, а смещение - младшие разряды исполнительного адреса, которые объединяются в РгАОП согласно операции конкатенации слова.

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

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

^ Укороченная адресация. Для уменьшения длины кода команды часто применяется так называемая укороченная адресация. Суть ее сводится к тому, что в команде задаются только младшие разряды адресов, старшие разряды при этом подразумеваются нулевыми. Такая адресация позволяет использовать только небольшую группу фиксированных ячеек с начальными (короткими) адресами и поэтому может применяться лишь совместно с другими способами адресации,

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

^ Косвенная адресация. Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Таким образом, косвенная адресация может быть иначе определена как «адресация адреса».

На косвенную адресацию указывает код операции команды, а в некоторых ЭВМ в команде отводится специальный разряд-указатель адресации (УА), при этом цифра 0 или 1 в нем указывает, является адресная часть команды прямым адресом или косвенным.

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

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

Широко применяется в микропроцессорах, малых и микроЭВМ совместное использование укороченной (регистровой) и косвенной адресаций (рис. 3.6). Пусть необходимо передать число 4527 из Рг5 в ячейку ОП 1765. Длина адресных полей команды достаточна лишь для указания коротких номеров регистров, она не позволяет задать в команде полный адрес ячейки памяти. Поэтому операнд 4527 указывается регистровой прямой адресацией (УА=0), а для задания адреса 1765 пользуются регистровой косвенной адресацией (УА=1), при которой в команде указывается номер регистра (в рассматриваемом примере РгЗ), предварительно загруженного полным адресом ячейки, в которую производится передача.




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

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

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

^ 3.2.2. Стековая адресация

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

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

Указанное правило при обращении к стеку реализуется автоматически, и поэтому при операциях со стеком возможно безадресное задание операнда - команда не содержит адреса ячейки стека, но содержит адрес (или он подразумевается) ячейки памяти или регистра, откуда слово передается в стек или куда помещается из стека. Механизм стековой адресации изображен на рис. 3.7.

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

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




а) б) в) г)

Рис. 3.7. Cтековая адресация в «перевернутом стеке»:

а – исходное состояние стека; б – стек после выполнения команды «Заслать в стек из Рг3»; в – стек после выполнения команды «Сложить»; г – стек после выполнения команды «Загрузить из стека в Рг4»

^ 3.3. Устройства управления ЭВМ

3.3.1. Общие сведения

Любое цифровое устройство можно рассматривать состоящим из двух блоков - операционного (ОБ) и управляющего (УБ).

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

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

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

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

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

Формально УУ можно рассматривать как конечный автомат, определяемый:

а) множеством двоичных выходных сигналов

V={vi, v2, ..., vm},

соответствующих множеству микроопераций операционного блока. При vi = 1 возбуждается i-я микрооперация;

б) множествами входных сигналов

Z и U:

Z={zi, z2,. ..,zp};

U={u1, u2, ...,un},

соответствующих двоичному коду операции (Z) и двоичным оповещающим сигналом (U);

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

S={Qo, Q1, ..., Qr},

мощность которого (объем памяти устройства управления) в процессе проектирования стараются минимизировать.

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

Q(t+1)=A[Q(t),z1(t),...,zp(t), u1(t), ..., un(t)];

v1(t)=B1[Q(t)];

………………

vm(t)=Bm[Q(t)];

или как автомат Мили:

Q (t+1)=A [Q(t), z1(t),...,zp(t), u1(t),..., un(t)];

v1(t)=B1[Q(t),z1(t),..., zp(t), u1(t),..., un(t)];

vm(t)=Bm[Q(t),z1(t),..., zp(t), u1(t),..., un(t)],

где функция переходов A и функции выходов Bi определяются заданной микропрограммой.

Существуют два основных типа управляющих автоматов и соответствующих устройств управления.

^ 1. Устройство управления с жесткой или схемной логикой.

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

q={q1, q2,..., qk},

где k=]log2 (r+1)[ при S={Qo, Q1, ..., Qr}, а функции переходов и выходов А и Bi реализуются с помощью комбинационных схем.

^ 2. Устройство управления с хранимой в памяти логикой (с запоминаемой или программируемой логикой).

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

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

В данных устройствах управления микропрограммы используются в явной форме, они программируются в кодах микрокоманд и в таком виде заносятся в память. Поэтому такой метод управления цифровым устройством называется микропрограммированием, а использующие этот метод управляющие блоки - микропрограммными управляющими устройствами.
^ 3.3.2. Принцип микропрограммного управления

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

Хранимая в памяти микропрограмма должна содержать информацию о функциях переходов и выходов микропрограммного устройства управления. Аргументами функций переходов и выходов устройства управления являются входные переменные Z(t) и U(t) и переменные q(t), задающие своими значениями состояние устройства Q(t). Набор значений аргументов удобно отождествить с адресом микрокоманды. Этот адрес заносится в регистр адреса микрокоманды во время такта. В управляющей памяти (УП) по данному адресу хранится код, задающий набор значений выходных сигналов устройства управления V(t+1) (операционная часть микрокоманды) - и набор значений переменных q(t+1), представляющий состояние Q(t+1). Значения V(t+1) и q(t+1) определяются функциями переходов и выходов.

Упрощенная структурная схема устройства управления с хранимой в памяти программой представлена на рис.3.8. Оно работает следующим образом.



Рис. 3.8. Структурная схема простейшего варианта устройства управления с хранимой в памяти логикой

Серия синхросигналов СС определяет такты работы устройства, при этом значение СС=1 выделяет такт, а значение СС=0 - паузу между тактами. Значения входных и выходных сигналов и состояние устройства должны быть неизменными во время такта и могут меняться только в паузах. Состояние автомата Q(t) представляется набором значений переменных q(t).

Пусть в такте t в РгАМк занесены U(t), Z(t) и q(t), а в РгМк находится V(t). Тогда в паузе перед тактом (t+1) при СС=0 на РгАМк эти значения сохраняются и из УП можно выбрать V(t+1), которые у рассматриваемого автомата, как и q(t+1) зависят от q(t), Z(t) и U(t). Эти значения при СС=0 заносятся в РгМк (одновременно происходит изменение значений входных сигналов). После возникновения СС=1, задающего такт (t+1), в РгМк хранятся сформированные ранее V(t+1) и q(t+1), при этом сигналы V(t+1) используются для инициирования микроопераций, a q(t+1) переносится в РгАМк, после чего цикл работы повторяется.

Воздействие управляющих сигналов V(t) на ОБ синхронизируется сигналом СС=1, обеспечивающим восприятие V(t) строго в такте t из РгМк, находящегося в режиме хранения.

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

если учесть, что для каждого q(t) существенными являются значения не
всех, а лишь некоторых переменных из Z(t) и U(t), задающих различные переходы из состояния Q(t) в состояние Q(t+1). Для каждого Q(t) можно выделить группу адресов УП, хранящих коды различных состояний перехода Q(t+1). Емкость УП при этом во много раз сократится, так как в УП не будут храниться многократно повторяющиеся коды, описывающие одинаковые переходы автомата.

Адрес микрокоманды при таком подходе формируется специальной комбинационной схемой формирования адреса микрокоманд ^ СхФАМк по значениям q(t), U(t) и Z(t). Схема СхФАМк подключается к входам РгАМк.

Адрес очередной микрокоманды можно назначить без учета значений Z(t) и U(t), если эта микрокоманда задает функцию перехода устройства в состоянии, имеющем единственный переход, не зависящий от значения входных сигналов. В этом случае адрес очередной микрокоманды можно указать значением отдельной группы разрядов исполняемой микрокоманды. Если очередная микрокоманда должна задавать функцию перехода устройства в состоянии, имеющем различные переходы, зависящие от значений входных сигналов, то ее адрес должен зависеть от входных сигналов.

Наиболее выгодно использование УУ с хранимой в памяти логикой для операционных блоков процессоров, в которых реализуются алгоритмы с относительно небольшим числом условий ветвления. Реализация в этих устройствах алгоритмов с большим числом условий ветвления ведет к значительному усложнению СхФАМк и, следовательно, к увеличению времени формирования адреса микрокоманды, а в конечном счете к уменьшению быстродействия УУ с хранимой в памяти логикой. В этом случае используются УУ с «жесткой» логикой, обладающие большим быстродействием. В некоторых случаях в ЭВМ используются одновременно УУ с хранимой в памяти логикой и УУ с «жесткой» логикой.
^ 3.3.3. Устройства управления с «жесткой» логикой

Устройства управления с «жесткой» логикой (рис. 3.9.) представляют собой логические схемы, вырабатывающие распределенные во времени управляющие функциональные сигналы.



Формирователи функциональных сигналов


V


Логические схемы образования функциональных сигналов

U

Блок синхросиг-налов




Вы-чита-ние



Сложе-ние

Такт 1

Такт 2

Такт n


Дешифратор кода операции

Дешифратор тактов



Регистр кода операции

Счетчик тактов






Z


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

На счетчик тактов поступают сигналы от блока синхросигналов, и счетчик с каждым сигналом меняет свое состояние. Состояния счетчика представляют собой номера тактов, изменяющиеся от 1 до n. Дешифратор тактов формирует

на i-м выходе единичный сигнал при i-м состоянии счетчика тактов, т.е. во время i-го такта.

Дешифратор кода операции вырабатывает единичный сигнал на j-м выходе, если исполняется j-я команда.

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

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


Рис. 3.10. Схема образования функциональных сигналов

(ДшКОП – дешифратор кода операции; ДшТ – дешифратор тактов)
обеспечивающей выработку управляющего сигнала k в i-м и n-м тактах выполнения j-й команды.

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

Серьезным недостатком рассмотренных схем является одинаковое число тактов для всех команд. Это требует выравнивания числа тактов исполнения команд по наиболее «длинной» команде, что ведет к непроизводительным затратам времени. Чтобы устранить этот недостаток, схемы строят с использованием нескольких счетчиков тактов.
^ 3.4. Принципы организации АЛУ

3.4.1. Общие сведения

Арифметическо-логическое устройство (АЛУ) служит для выполнения арифметических и логических преобразований над словами, называемыми в этом случае операндами.

Выполняемые в АЛУ операции можно разделить на следующие группы:операции двоичной арифметики для чисел с фиксированной точкой; операции двоичной (или шестнадцатиричной) арифметики для чисел с плавающей точкой; операции десятичной арифметики; операции индексной арифметики (при модификации адресов команд); операции специальной арифметики; операции над логическими кодами (логические операции); операции над алфавитно-цифровыми полями.

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

К арифметическим операциям относятся сложение и вычитание, («короткие операции»), умножение и деление («длинные операции»). Группу логических операций составляют операции - дизъюнкция (логическое ИЛИ) и конъюнкция (логическое И) над многоразрядными двоичными словами, сравнение кодов на равенство. Специальные арифметические операции включают в себя нормализацию, арифметический сдвиг (сдвигаются только цифровые разряды, знаковый разряд остается на месте), логический сдвиг (знаковый разряд сдвигается вместе с цифровыми разрядами). Обширна группа операций редактирования алфавитно-цифровой информации.

АЛУ можно классифицировать по следующим признакам:

^ По способу действия над операндами АЛУ делятся на последовательные и параллельные. В последовательных АЛУ операнды представляются в последовательном коде, а операции производятся последовательно во времени над их отдельными разрядами. В параллельных АЛУ операнды представляются параллельным кодом и операции совершаются параллельно во времени над всеми разрядами операндов.

^ По способу представления чисел различают АЛУ: для чисел с фиксированной точкой; для чисел с плавающей точкой; для десятичных чисел. По характеру использования элементов и узлов АЛУ делятся на блочные и многофункциональные. В блочном АЛУ операции над числами с фиксированной и плавающей точкой, десятичными числами и алфавитно-цифровыми полями выполняются в отдельных блоках, при этом повышается скорость работы, так как блоки могут параллельно выполнять соответствующие операции, но значительно возрастают затраты оборудования. В многофункциональных АЛУ операции для всех форм представления чисел выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы.

По своим функциям АЛУ является операционным блоком, выполняющим микрооперации, обеспечивающие прием из других устройств (например, памяти) операндов, их преобразование и выдачу результатов преобразования в другие устройства. Арифметическо-логическое устройство управляется управляющим блоком, генерирующим управляющие сигналы, инициирующие выполнение в АЛУ определенных микроопераций. Генерируемая управляющим блоком последовательность сигналов определяется кодом операции команды и оповещающими сигналами.
^ 3.4.2. Структура и микропрограммы АЛУ при выполнении арифметических операций

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

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

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


Скачать файл (989.6 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru