Организация арифметико-логических устройств ЭВМ [Электронный ресурс]: метод. указания к лабораторным работам по дисциплине Б3.Б.2 «ЭВМ и периферийные устройства» направления 230100.62 «Информатика и вычислительная техника» / сост. О. А. Заякин, В. П. Павлов. – Самара: Изд-во Самар. гос. аэрокос. ун-та, 2014. – 90 с.: ил. – 1 электрон. опт. диск (CD ROM).
В методических указаниях изучается структурная организация основной составляющей процессора ЭВМ – его арифметико-логического устройства.
Для изучения использованы графический редактор и эмулятор из системы автоматизированного проектирования MAX+PLUS II фирмы «Altera», разработанной ею для программирования собственных ПЛИС.
Предназначены для студентов, обучающихся дисциплине Б3.Б.2 «ЭВМ и периферийные устройства» по направлению 230100.62 «Информатика и вычислительная техника», а также по специальности «Автоматизированные системы обработки данных и управления». Могут быть полезны студентам, обучающимся по другим специальностям, связанным с информационными технологиями.
Работа выполнена на кафедре информационных систем и технологий Самарского государственного аэрокосмического университета.
Функция УА определяется совокупностью закодированных графов микропрограмм Г1, …, ГG. Закодированный граф Гg получается из содержательного графа МПg путем замены микроопераций МО1, …, МОМ, указанных в операторных вершинах МПg, символами у1, …, уМ и замены логических условий ЛУ1, …, ЛУL, содержащихся в условных вершинах графа, символами x1, …, xL (кодированием микропрограммы МПg). На основе графов Г1, …, ГG можно синтезировать соответственно G управляющих автоматов УА1, …, УАG, которые обеспечат управление ОА. Однако такое решение получается неэффективным. Графы различных МП обычно содержат некоторое число одинаковых операторных и условных вершин, которые сольются, если по-строить граф Г, объединяющий в себе графы Г1, …, ГG. Уменьшение числа вершин в МП влечет уменьшение затрат оборудования в УА. Поэтому функ-цию УА принято представлять объединенным графом Г.
Метод объединения закодированных графов Г1, …, ГG в единый граф Г, содержащий минимальное число вершин, изложен в работе [5].
В объединенной микропрограмме пути развития процессов выполнения операций f1, …, fG задаются кодом g=g1 … gk операции fg (где g(1, …, G) - номер операции fg), длина которого klog2G. Переменные g1, …, gk кода g в объединенной МП играют роль логических условий (как и условия x1, …, xL).
Для формирования управляющих сигналов Y, вырабатываемых в зависимости от значений g1, …, gk и x1, …, xL, можно использовать последовательностную логическую схему – (конечный) автомат с памятью. При этом множество входных сигналов Х автомата определяется множеством осведомительных сигналов, поступающих из ОА, и битов g1, …, gk кода операции fg: Х=x1, …, xL, g1, …, gk = (x1, …, xl, xl+1, …, xL), L=l+k. Множество выходных сигналов определяется множеством управляющих сигналов Y=у1, …, уМ, возбуждающих микрооперации МО1, …, МОМ в ОА.
Закон функционирования конечного автомата задается объединенным графом Г и определяет порядок преобразования входной последовательности Х(0), Х(1), …, Х(t) в выходную Y(0), Y(1), …, Y(t), где t - время. Реализация УА на принципе интерпретации микропрограммы автоматом с памятью приводит к построению УА с жесткой логикой управления (УА с ЖЛ) [4].
УА можно построить и иначе – на основе принципа управления по хранимой (в памяти) микропрограмме (принципа Уилкса). Такой способ приводит к УА с программируемой логикой управления [4]. В соответствии с этим принципом для формирования управляющих сигналов используется микро-команда – это управляющее слово (разделенное на поля определенного на-значения и фиксированной длины), которое определяет порядок функциони-рования (операционного) устройства в течение одного такта. Микрокоманда (МК) содержит информацию о микрооперациях, которые должны выполняться в данном такте, а также информацию об адресе сле-дующей МК. Совокупность МК, описывающих объединенную МП, образует массив микрокоманд МК[1:Р], хранимый в памяти (в ПЗУ).
Простая структура управляющего слова, достаточная для представления (описания) МК, имеет вид:
|
1 Y m |
1 X h |
1 A1 p |
1 A2 p |
Поле Y определяет номера микроопераций, возбуждаемых микрокомандой в ОА (в текущем такте). Если поле Y=0 (пустое), то УА не возбуждает ни одной МО. Номера МО в списке y0, y1, …, yM, yM+1 можно кодировать m-разрядным позиционным кодом, m≥log2(M+2), где y0 - пустая МО, yM+1 - сигнал об окончании операции fg (конец микропрограммы МПg).
Для определения адреса следующей МК можно использовать принудительную адресацию МК (основанную на принципе связного списка). В этом случае в адресной части МК (в полях А1, А2) указываются адреса следующих МК. Адрес следующей МК можно задавать безусловно (независимо от значений ЛУ) или условно (в зависимости от условия, определяемого значениями осведомительных сигналов). В первом случае адрес следующей МК указывается в поле А1. Во втором случае адрес следующей МК выбирается из поля А1 или из поля А2 адресной части МК, в зависимости от заданного условия.
Примем, что в каждой условной МК можно проверять значения только одного ЛУ из множества X. В этом случае адресная часть МК состоит из по-лей Х, А1, А2. В поле X указывается номер l(1, …, L) осведомительного сигнала xl, значение которого анализируется МК условного перехода. Если поле X=l≠0, то адрес следующей МК определяется в зависимости от значения хl. Если значение хl=0, то адрес следующей МК АМК определяется полем А1, если хl=1 - полем А2. Если поле Х=0 (пустое), то адрес МК равен А1. В итоге получаем:
А1, если Х=0,
АМК:= А1, если Х0 и хХ=0 (Х=l), (4)
А2, если Х0 и хХ=1.
Длина p полей А1, А2 зависит от P - количества МК (емкости ПЗУ): p≥log2P. Длина поля Х: h≥log2(L+1).
УА, построенный на основе принципа Уилкса, называется УА с принудительной адресацией МК (рис. 14). Для хранения микрокоманд используется
ПЗУ емкостью P ячеек, в каждой из них размещается МК длиной n=m+h+2p разрядов. Работа УА показана на рис. 15. Перед началом работы ЦУУ посылает код операции g в УА АЛУ (на вход g преобразователя начального адреса ПНА микропрограммы МПg).

Р и с 1 4 . Структура УА с принудительной адресацией
Запуск автомата на выполнение операции fg производится сигналом «start» (из ЦУУ процессора). По нему триггер T устанавливается в 1, тем са-
мым разрешается выборка слова из ПЗУ по адресу, сформированному на выходе ПНА, и открывается путь для тактовых сигналов с выхода ГТИ в УА (на выход С). ПНА обеспечивает формирование адреса первой МК микропрограммы МПg. По нему она извлекается из ПЗУ и по первому сигналу С загружается в регистр микрокоманд РМК.
Адрес очередной МК формируется в соответствии с выражением (4). В последнем такте микропрограммы МПg триггер Т сбрасывается сигналом
yM+1 - конец операции fg.
Микрокоманда, выбранная из ПЗУ и загруженная в РМК, выполняется следующим образом. Поле Y расшифровывается (дешифратором DCY) и вы-
ходной сигнал ym с выхода DCY (импульс, сформированный по С, по С или не стробируемый совсем) поступает в ОА и возбуждает в нем соответствующую МО. Поскольку в каждом такте вырабатывается один сигнал ym, то в ОА будет выполняться одна МО.
Переход к следующей МК осуществляется в зависимости от значения поля X и значений ЛУ x1, …, xL в соответствии с (4). Если выполняется (в РМК загружена) МК условного перехода, то адрес МК выбирается (мультиплексором адреса MSA) из полей А1 или А2 в зависимости от значения условия xX одним из сигналов a1 (A:=A1) или a2 (A:=A2). Здесь считается, что x0≡0. То-гда адрес МК берется из поля А1. Выбор одного из условий x1, …, xL осуществляется мультиплексором MSХ, которым управляет дешифратор DCX. Та-ким образом, к середине такта на адресном входе А ПЗУ будет сформирован адрес следующей МК, а к концу такта микрокоманда появится на выходе ПЗУ) и по очередному сигналу С будет загружена в РМК.

Р и с. 15. Временная диаграмма работы УА с принудительной адресацией
Кодирование МО. Микрооперации из списка Y=y1, …, yM возбуждаются МК, в которой указываются наименования (коды) микроопераций, выпол-няемых совместно в ОА. Простой (очевидный) способ кодирования МО состоит в следующем: набору сигналов y1, y2, ..., yМ ставится в соответствие слово Y= y1, y2, ..., yМ, в котором каждой МО, если она должна выполнятся в данном такте, ставится в соответствие единица, если не должна – то ноль, т.е. производится унитарное кодирование МО. Пример: М=8, такт i+1, y2 = y5 = y6 =1, остальные биты равны нулю. Это слово используется для управления (элементами И): 1 – элемент И открыт для прохождения импульса с выхода ГТИ, 0 – закрыт (рис. 16). Чтобы в следующем такте можно было вырабатывать другие сигналы, достаточно сменить слово Y на входе этой схемы.

Р и с.16. Унитарное кодирование микроопераций
Недостаток унитарного кодирования - большая длина МК и, следоваельно, большая ѐмкость ПЗУ для хранения МП. В связи с этим встаѐт естественная задача сокращения длины МК.
Простой способ сокращения длины МК – позиционное кодирование МО: каждой МО ym € Y , которая должна выполняться в данном такте, ставится в соответствие m-разрядный позиционный код (m≥log2M). Пример: М=8, m=3, сигнал y5=1, остальные сигналы равны нулю, y5 кодируется кодом 5 Dec=101 Bin. Сигнал y5=1 на основе этого кода вырабатывается схемой, представленной на рис. 17. Дешифратор DCY стробируется сигналами С с выхода ГТИ, один из которых появляется на выходе y5. Недостаток позиционного кодирования - в каждом такте можно вырабатывать только один сигнал. Это нежелательно, так как вносит ограничения на совместимость МО и снижает производительность ОА.

Р и с. 17. Позиционное кодирование
Чтобы не вносить ограничений на совместимость МО и сократить длину МК (по сравнению с унитарным кодированием) используется смешанное кодирование МО. Для кодирования совместно выполняемых МО в МК вы-деляются поля Y1, Y2, …, Yl, количество которых определяет предельное количество совместно выполняемых МО. В общем случае поле Yi может возбуждать некоторое подмножество (несовместимых) МО Yi=(yα, yβ, …, yω) множества Y, для кодирования которых используется mi≥log2(Mi+1) разрядов, причем значение Yi=0 является признаком пустого поля (сигнал МО в этом такте не вырабатывается). Сумма MO=m1+m2+…+mI определяет длину операционной части МК. Она влияет на затраты оборудования в УА и на быстродействие ОУ. В частности, уменьшение длины MO уменьшает разрядность ячеек ПЗУ (т.е. сокращает затраты оборудования в нем). С целью экономии оборудования стремятся уменьшить длину операционной части МК. Существуют различные методы, которые позволяют это сделать.
Пример смешанного кодирования МО (рис. 18): три группы несовместимых МО - первая состоит из семи МО, вторая – из 9, третья – из 18. Разрядность полей: k=3 (log27), h=4 (log29), n=5 (log218). Всего: 3+4+5=12 разрядов вместо М=36 (7+9+18) при унитарном кодировании.

Р и с. 18. Смешанное кодирование
Количество операционных полей. Если ОА строится на основе принципа обобщения МО, то количество операционных полей равно числу групп несовместимых МО. Так, для управления М-автоматом (рис. 2) нужна МК с четырьмя операционными полями А, В, Y, C. В них указываются двоичные номера МО, принадлежащих наборам {ai}, {bj}, {ym}, {ck}, возбуждаемых в одном такте (совместно выполняемых).
Для управления IM-автоматом с последовательной комбинационной частью (рис. 3) необходима МК с шестью операционными полями A, B, F, G, H, C. В них указываются номера из наборов {ai},{bj},{fk},{gl},{hm},{cn}.
Для управления I-автоматом (построенным на основе принципа закрепления МО), который допускает совместное выполнение до H микроопераций, число полей в МК можно выбирать равным K=1, 2, …, H. В случае K=1 операционная часть МК имеет минимальную длину, но в каждом такте реализуется только одна МО. В результате чего функциональный оператор микропрограммы, состоящий из K совместимых МО, будет выполняться за K тактов. При K=H любой функциональный оператор (состоящий из K МО) будет выполняться за 1 такт, но операционное поле МК будет иметь суммарную длину, что увеличивает емкость ПЗУ. Таким образом, уменьшение количества операционных полей позволяет экономить оборудование в УА, но одновременно уменьшает быстродействие ОУ (увеличивает количество тактов).
Адресация микрокоманд. Для адресации МК используются два основных способа – принудительная и естественная адресация.
Принудительная адресация МК реализована в УА, структура которого приведена на рис. 14. Адрес следующей МК определяется либо полем А1, либо полем А2 в зависимости от кода в поле X и значения условия xX.
Недостаток принудительной адресации – длинная адресная часть МК (и большие затраты памяти). Сократить длину адресной части МК можно, если оставить одно адресное поля А. Сделать это можно следующим образом. Ес-ли поле X=0, то значение поля А (безусловно) определяет адрес следующей МК – АМК:=А. Если же поле X≠0, то АМК:=А+ xX, где xX – значение ЛУ с номером X, т.е. в этом случае реализуется условный переход: если xX=0, то АМК:=А, если xX=1, то АМК:=А+1 – на единицу больше А. Для увеличения адреса на 1 можно использовать комбинационный счетчик КСЧ (рис. 19).

Р и с. 19. Комбинационный счетчик
Однако введение счетчика КСЧ в схему УА снижает быстродействие автомата, поскольку длительность его такта в этом случае увеличивается на время выполнения операции счета в pразрядном счетчике.
Естественная адресация МК. При естественной адресации адрес сле-дующей МК формируется путем увеличения на 1 адреса предыдущей МК. В этом случае отпадает необходимость вводить адресное поле А в каждую МК. Если микрокоманды следуют в естественном порядке, то для формиро-вания адреса МК можно использовать (накопительный) счетчик микрокоманд – СМК, состояние которого увеличивается на 1 после чтения очередной МК и дешифрации поля X:
СМК+1, если X≠0, xX=0 (ЕП);
СМК:= А, если X=0 (БП); (5)
А, если X≠0, xX=1 (УП).
Как видно из (5), микрокоманды естественного перехода ЕП (по СМК+1) не используют поле А для формирования адреса МК и поэтому могут содер-жать только операционную часть, представленную полями Y1,…,YH.
При выполнении МК переходов (безусловного – БП, условного – УП) используются поля X, А. Однако их выполнение трудно (не всегда удается) совместить с выполнением МО в ОА (так как по результатам выполненных в текущем такте МО сформируются сигналы x1,…,xL, которые используются в качестве ЛУ, обычно, в следующем такте). Поэтому операционная часть в этих микрокомандах переходов не используется (поля Y – пустые, в ОА нет МО – NOP). В результате, при выполнении последовательности из двух функциональных операторов, не используется адресная часть по крайней мере в одной МК (т.е., проще говоря, не встречается последовательность из двух идущих подряд команд перехода), чтобы по ее результатам сформировались сигналы x1,…,xL (вторую МК можно совместить, например, с БП). При выполнении последовательности операторов перехода не используется (пустует) операционная часть большинства МК.
В этих условиях рационально использовать МК двух типов – операционные и управляющие.
Операционная МК содержит только поля Y1,…,YH и неявно полагает адрес следующей МК равным СМК+1.
Управляющая МК используется только для изменения естественного по-рядка выполнения МК (путем выполнения МК безусловного и условного переходов), поэтому содержат только поля X, А. Для определения (указания) типа МК вводится поле P типа МК:
|
P |
1 Y1 m1 |
… |
1 YH mH |
|
P |
1 X h |
1 A p |
Например, если P=0, то МК является операционной, если P=1, то – управляющей (или наоборот).
При использовании МК двух типов сокращается длина МК (экономится память), однако увеличивается количество тактов на реализацию операций (микропрограмм), поскольку такты отводятся либо только на выполнение МО в ОА, либо только на выполнение переходов в микропрограмме (пустые для ОА такты). Для уменьшения количества тактов можно не делить МК на два типа, а использовать один формат (как на рис. 19). Экономии памяти в этом случае не будет.
Итак, стремление повысить производительность УА приводит к неэффективному использованию емкости ПЗУ, а стремление к экономии оборудования – к увеличению количества тактов и снижению производительности.
Быстродействие УА. Быстродействие автомата характеризуется продолжительностью такта УА, т.е. временем, затрачиваемым на формирование одного набора управляющих сигналов. Оно складывается из 3 составляющих: 1) времени формирования адреса МК; 2) времени обращения к ПЗУ; 3) времени дешифрации МК.
Основная доля времени приходится на чтение из ПЗУ, поэтому ощутимо-го увеличения быстродействия УА с программируемой логикой можно достичь путем уменьшения времени обращения к ПЗУ (применяя ПЗУ с более высоким на данный период времени быстродействием) или за счет сокращения количества обращений к ПЗУ.
При фиксированном быстродействии ПЗУ быстродействие УА можно повысить за счет параллельной выборки (нескольких) МК. В этом случае за одно обращение из ПЗУ выбирается K микрокоманд, и время обращения к ПЗУ, приходящееся на одну МК, в пределе сокращается в K раз. Ясно, что не все из K выбранных МК будут исполнены (в виду возможных переходов). Таким образом, из K выбранных МК в среднем реализуется N микрокоманд (где 1<N<K), т.е. эффективное быстродействие увеличивается в N раз (N<K).
Укрупненная структура УА с ПЛ (рис. 20) состоит из трех частей: схемы формирования адреса следующей МК СФАМ (формирующая адрес, например, в соответствии с выражением (5)), ПЗУ и схемы формирования управляющих сигналов y1,…, yM, состоящей из дешифраторов DCY1,…, DCYM.

Р и с. 20. Схема УА с ПЛ
Временная диаграмма работу УА с ПЛ приведена на рис. 21.

Р и с. 21. Временная диаграмма работы УА с ПЛ
Продолжительность такта ТОУ=ТУА+ТОА работы ОУ определяется суммарным временем ТУА, затрачиваемым в УА на формирование адреса – τФА, на выборку МК из ПЗУ – τПЗУ и на дешифрацию МК – τДШ: ТУА=τФА+τПЗУ+τДШ, и суммарным временем TОА, затрачиваемым в ОА на выполнение МО – τОА, на формирование логических условий τЛУ и на запись результатов в регистры ОА – τРЕГ: ТОА=τОА+τЛУ+τРЕГ. При последовательной работе УА и ОА продолжительность такта ТОУ оказывается большой.
Для уменьшения длительности такта ТОУ можно использовать конвейерную организацию работы ОУ, которая предполагает совмещение во времени работы УА и ОА. С целью ния работа ОУ разделяется на этапы, например: 1) выборка МК из ПЗУ; 2) ее реализация. В этом случае УА, вы-брав i-ю МК, может (не дожидаясь завершения процесса ее выполнения в ОА) начать выборку следующей (i+1)-й МК.
Чтобы обеспечить возможность опережающей выборки МК, очевидно, в состав УА необходимо ввести специальный регистр МК (РМК), в который заносится выбранная МК. Надобность в РА (как на рис. 20) при конвейерной обработке отпадает. К моменту времени, когда выбранная МК будет реализована, в РМК заносится (i+1)-я МК, выбранная с опережением (рис. 22). Как видно из временной диаграммы на рис. 22, такт ТОУ равен такту работы конвейера ТК, продолжительность которого определяется:
ТК = max(ТР,ТВ), (6)
где ТР – время выполнения i-й МК, ТВ - время выборки (i+1)-й МК.

Р и с. 22. Опережающая выборка микрокоманд
Для реализации конвейерного режима работы процессы, протекающие в УА и в ОА, следует разделить на два этапа. В УА к первому этапу относят-ся: формирование адреса МК и обращение по этому адресу к ПЗУ (выборка МК), а ко второму – занесение МК в РМК и ее дешифрация. В ОА к первому этапу относятся: выборка операндов из памяти ОА и выполнение МО - τМО, формирование осведомительных сигналов τЛУ; ко второму – запись результа-тов в регистры ОА. Отсюда следует, что продолжительность такта конвейера ТК определяется:
TК =max[(τФА + τПЗУ), (τМО + τЛУ)] + max[(τЗАП + τДЕШ), (τРЕГ)] (7)
УА ОА УА ОА
Первое слагаемое определяет продолжительность первого полутакта τ1, а второе – второго полутакта τ2: ТК= τ1+τ2, задаваемого сигналами С с выхода ГТИ. В первом полутакте УА формирует адрес МК и выбирает ее из ПЗУ, а ОА в это время выбирает операнды, выполняет МО и формирует ЛУ. Во втором полутакте УА заносит выбранную МК в РМК и декодирует ее, а ОА – заносит результаты МО в регистры.
Итак, по фронту сигнала С запускаются первые этапы в УА и ОА, а по срезу – вторые этапы, а сигнал С заводится на РМК.
Следует отметить, что конвейерная организация увеличивает быстродействие ОУ почти вдвое, при условии, что продолжительности этапов в ОА и УА приблизительно одинаковые.
Время выполнения операций в ОУ, которое определяется величиной tопер=nTОУ, где n – среднее количество тактов, при конвейерной организации зависит от количества условных переходов в микропрограмме. Точнее, от количества «промахов» при выборке МК, условия перехода для которой еще не «созрели» в ОА. Если при условном переходе выбрана не та МК, то результаты ее выполнения аннулируются (пустой такт в ОА) и потребуется дополнительный такт для выборки МК по альтернативному адресу.
Уменьшить количество «промахов» при выполнении МК условных переходов можно путем предсказания переходов. Простейший способ предсказания – привязать выбор (одного из двух) адреса к типу МК перехода, например, если это обычный альтернативный переход, то вероятность перехода – пятьдесят на пятьдесят. В этом случае можно выбирать следующую МК по условию «нет». Если условный переход используется для организации цикла (МК стоит в конце цикла), то можно его выделить в специальный тип перехода – «конец цикла». В этом случае вероятность перехода в начало цикла выше, чем завершения цикла, поэтому опережающую выборку МК следует выполнять по адресу в начало цикла.
Следует отметить, что микропрограммы различных операций ОУ могут содержать общие по функциям участки, которые целесообразно оформлять как подпрограммы, вызываемые по (микро) команде Call, возврат из которых обеспечивается МК возврата - Ret. В этом случае в СФАМ встраивается регистр, в который по команде Call заносится адрес возврата из подпрограммы (т.е. i+1, где i – адрес МК Call), а по команде Ret адрес i+1 извлекается из регистра и выдается на выход СФАМ в качестве АМК. Если вызов подпрограммы осуществляется из цикла, при организации которого используется команда типа «конец цикла», и если условие истинно, то в этом случае одного регистра для сохранения адреса возврата недостаточно (нужно как минимум два). Их (регистры) в этом случае рационально организовать как стековое ЗУ.