Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ЭВМ и периферийные устройства



ЭВМ и периферийные устройства

Лектор: доц. Осмоналиев А.Б.

Лекция 11. (2 часа)

Тема. Функциональная организация фон-неймановской ВМ. Микрооперации и микропрограммы. Цикл команды.

 

Функциональная схема фон-неймановской вычислительной машины

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

Одноадресные команды. Адресная часть команды содержит только один адрес. При выполнении операций с двумя операндами предполагается, что другой операнд находится в специальном регистре АЛУ — аккумуляторе, а результат также остается в аккумуляторе.

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

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

 

Устройство управления

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

 

Рис. 11.1.Функциональная схема гипотетической фон-неймановской ЭВМ

 

 

Счетчик команд

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

Хотя термин счетчик команд» считается общепринятым, его нельзя признать вполне удачным из-за того, что он создает неверное впечатление о задачах данного узла. По этой причине разработчики ВМ используют иные названия, в частности, программный счетчик (PC, Program Counter) или указатель команды (IP, Instruction Pointer). Последнее определение представляется наиболее удачным, поскольку точнее отражает назначение рассматриваемого узла УУ.

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

 

Регистр команды

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

Если команда занимает несколько последовательных ячеек, то код операции всегда находится в том слове команды, которое извлекается из памяти первым. Это позволяет по коду операции определить, требуются ли считывание из памяти и загрузка в РК остальных слов команды. Собственно выполнение команды начинается только после занесения в РК ее полного кода.

 

Указатель стека

Указатель стека (УС) - это регистр, где хранится адрес вершины стека. В реальных вычислительных машинах стек реализуется в виде участка основной памяти, обычно расположенного в области наибольших адресов. Заполнение стека происходит в сторону уменьшения адресов, при этом вершина стека — это ячейка, куда была произведена последняя по времени запись. Для хранения адреса такой ячейки и предназначен УС. При выполнении операции push (занесение в стек) содержимое УС с помощью сигнала -1УС сначала уменьшается на единицу, после чего используется в качестве адреса, по которому производится запись. Соответствующая ячейка становится новой вершиной стека. Считывание из стека (операция pop ) происходит из ячейки, на которую указывает текущий адрес в УС, после чего содержимое указателя стека сигналом +1УС увеличивается на единицу. Таким образом, вершина стека опускается, а считанное слово считается удаленным из стека. Хотя физически считанное слово и осталось в ячейке памяти, при следующей записи в стек оно будет заменено новой информацией.

 

Регистр адреса памяти

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

 

Регистр данных памяти

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

 

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

Дешифратор кода операции (ДКОп) преобразует код операции в форму, требуемую для работы микропрограммного автомата (МПА). Информация после декодирования определяет последующие действия МПА, а ее вид зависит от организации МПА. В рассматриваемой ВМ - это унитарный код УнитК. Часто код операции преобразуется в адрес первой команды микропрограммы, реализующей указанную в команде операцию. С этих позиций ДКОп правильнее было бы назвать не дешифратором, а преобразователем кодов.

 

Микропрограммный автомат

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

 

Операционный блок

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

 

Регистры операндов

Регистры РХ и PY обеспечивают сохранение операндов на входе операционного блока вплоть до получения результата операции и его записи (в нашем случае в аккумулятор).

 

Регистр признаков

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

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

 

Аккумулятор

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

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

 

Основная память

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

 

Модуль ввода/вывода

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

 

Порты ввода и порты вывода

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

 

Граф-схемы алгоритмов

 

Граф-схема алгоритма (ГСА) имеет вид ориентированного графа. При построении графа оперируют пятью типами вершин (рис. 3.3).

Начальная вершина (см.рис. 11.3, а) определяет начало микропрограммы и не имеет входов. Конечная вершина (см. рис. 11.3 б), указывает конец микропрограммы, поэтому имеет только вход.

 

 

Рис. 11.3, Разновидности вершин граф-схемы алгоритма: а — начальная; б-конечная; в — операторная; г — условная; д - ждущая

 

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

Граф-схемы алгоритмов составляются в соответствии со следующими правилами:

1. ГСА должна содержать одну начальную, одну конечную и конечное множество операторных и условных вершин.

2. Каждый выход вершины ГСА соединяется только с одним входом.

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

4. Для любой вершины ГСА существует, по крайней мере, один путь из этой вершины к конечной вершине, проходящий через операторные и условные вершины в направлении соединяющих их дуг.

5. В каждой операторной вершине записываются микрооперации y соответствующие одной микрокоманде У.

6. В каждой условной вершине записывается один из элементов множества логических условий х.

7. Начальной вершине ставится в соответствие фиктивный оператор у0 а конечной — фиктивный оператор yk На рис. 11.4 показан пример микропрограммы, записанной на языке ГСА.

Рис. 11.4. Примерг граф-схемы микропрограммы

 

В примере микрокоманда Y1 инициирует микрооперации y1 и y6 микрокоманда Y2 микрооперацию y2, а Y3 микрооперации y3, y4 y5 и y7

 

Языки микропрограммирования

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

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

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

В последующих разделах для описания функционирования ВМ будет использоваться именно язык микропрограммирования, а конкретно вариант ЯМП, предложенный в [25. Орлов С. А. Организация и проектирование цифровых управляющих микроЭВМ и микроВС. М.: Изд-во МО, 1985.475 с.]. Ниже рассматриваются основные средства языка.

 

Примеры.

Описания модулей ОЗУ, содержащих по 1 Кбайт (1024 байта):

03У1 [0000: 1023](7-0); 03У2[1024: 2047](7-0).

Описания модулей ПЗУ, содержащих по 8192 32-разрядных слова:

ПЗУ1[000016: 0FFF16](0-31), ПЗУ2[100016: lFFFl6](0-31).

Здесь адреса слов указаны в шестнадцатеричном коде, в каждом слове старший разряд имеет номер 0, а младший - 31.

Описание слова памяти поделено на две части: идентификатор области памяти и адресный указатель слова (в квадратных скобках). Допускается символическая запись адреса, а также косвенное указание адреса слова.

Примеры описаний слов памяти: 03У1[211], или 03У1 [Аисп], или 03У1[(РАП)], где Аисп - символический адрес, (РАП) - косвенный адрес, значение которого содержится в регистре РАП.

 

Описание микроопераций

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

Описание микрооперации складывается из двух частей, разделяемых двоеточием

 

МЕТКА: МИКРООПЕРАТОР.

Метка — это обозначение сигнала управления, вызывающего выполнение микрооперации. Метка принимает два значения: 1 - микрооперация выполняется, 0 - не выполняется.

Микрооператор определяет содержимое производимого элементарного действия (микрооперации).

Например, микрооператор записи в регистр С результата сложения слов из регистров А и В имеет вид:

 

РгС(15-О): =РгА(15-0) + РгВ(15-0),

 

а полное описание микрооперации принимает форму

 

у15: РгС(15-0): РгА(15-0) + РгВ(15-0).

 

Здесь указано, что микрооперация инициируется сигналом управления у15.

Для повышения наглядности записей желательно, чтобы метка сигнала управления несла смысловую нагрузку. Например, для микроопераций выдачи информации идентификатор метки сигнала можно начинать с буквы « В », а для приема — с буквы « П » метку для микрооперации пересылки из регистра РА в регистр РВ можно записать в виде РАРВ.

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

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

Микрооперация установки - присваивание слову значения константы.

Например, ПРгХ РгХ(s • m): 0; ПРгС: с(7-0): = 3110.

Микрооперации передачи — присваивание слову значения другого слова, в том числе с инверсией передаваемого слова.

Примером простого присваивания может служить микрооперация БпУп СК: = РА. Здесь микрооператор описывает занесение в счетчик команд содержимого регистра адреса (адресного поля регистра команды), то есть реализацию перехода в командах безусловного и условного перехода, что и отражает идентификатор сигнала управления.

Другие примеры микроопераций пересылки:

 

Первый микрооператор описывает пересылку 16-разрядного слова из регистра РгХ в регистр РгУ с сохранением расположения разрядов, а второй — с «разворотом» исходного слова.

Микрооперации передачи числа с плавающей запятой, имеющего поля знака s, порядка р и мантиссы m, а также передачи знака с инвертированием, имеют вид:

 

 

Если регистры связаны между собой не непосредственно, а через шину, которая используется многими источниками и приемниками данных, то передача слова между ними возможна при одновременном выполнении двух микроопераций и описание принимает вид:

ВРгВ: ША: =РгВ; ПРгА: РгА: = ША

или

ПРгА, ВРгВ: РгА: =ША: РгВ.

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

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

Пусть в 16-разрядный регистр А нужно передать слово, старшие разряды которого содержатся в 8-разрядном регистре В, а младшие - в 8-разрядном регистре С. Соответствующую микрооперацию можно описать так:

ПРгА: РгА(15-0): = РгВ(7-0) • РгС (7-0),

где точка (•) - знак присоединения.

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

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

Микрооперации сдвига слова в аккумуляторе, например, могут быть описаны в следующих формах:

• R 2 A K: АК(15-0): = РС(1-0) • АК(15-2) — сдвиг на два разряда вправо с введением в два старших освобождающихся разряда содержимого двух младших разрядов регистра PC;

L 1AK АК(15-0): = АК(14-0) • 0 — сдвиг на один разряд влево с занесением в освобождающийся разряд нуля;

R2AK(15-0): РС(15-0): = АК(15) • АК(15) • АК(15-2) - арифметический сдвиг слова вправо на два разряда с загрузкой в старшие освобождающиеся разряды знака.

Для сокращения записи микрооперации сдвига используются две процедуры:

Rn(A) — удаление п младших правых разрядов из слова А, то есть сдвиг значения на п разрядов вправо;

Ln(A) — удаление п старших левых разрядов из слова А, то есть сдвиг значения на п разрядов влево.

Использование этих процедур приводит к представлению ранее рассмотренных микрооператоров в форме:

Микрооперация счета — обеспечивает изменение значения слова на единицу:

+1СК: СК: =СК+1.

Микрооперация сложения — служит для присваивания слову суммы слагаемых:

СлАд: РАП: =ИР + РА

Логические микрооперации — присваивают слову значение, полученное поразрядным применением функций И (^), ИЛИ (v), исключающее ИЛИ к парам соответствующих разрядов операндов:

Микрооперация двоичного декодирования — состоит в преобразовании n-разрядного двоичного позиционного кода А в 2-разрядный унитарный код В. В унитарном коде только один разряд принимает единичное значение, а все остальные равны нулю. Номер разряда К, который принимает значение 1, определяется значением кода А= аn-1, аn-2, …, а0 ,

.

Принято следующее условное обозначение: В: = decod (A).

 

Комментарии к микрооперациям

Микрооперации могут снабжаться произвольными комментариями. Комментарии записываются справа от микрооперации и заключаются в угловые скобки. Например,

+1СК: =СК: = СК+1 < Увеличение содержимого СК на единицу>

Совместимость микроопераций

Совместимостью называется свойство совокупности микроопераций, гарантирующее возможность их параллельного выполнения Различают функциональную и структурную совместимости. Пусть S1 S2, S3 S4 — подмножества слов из множества 5. Тогда микрооперации и: = называются функционально совместимыми, если Ш, то есть если микрооперации присваивают значения разным словам. В функциональных микропрограммах, описывающих алгоритмы выполнения операций без учета структуры вычислительной машины, одновременно могут выполняться только функционально совместимые микрооперации.

 

 

ЭВМ и периферийные устройства


Поделиться:



Последнее изменение этой страницы: 2017-05-11; Просмотров: 646; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.091 с.)
Главная | Случайная страница | Обратная связь