
- •1. Представление информации в эвм
- •1.1. Общие положения
- •1.2. Цифровая форма представления информации
- •1.3. Системы счисления
- •1.3.1. Общие положения
- •1.3.2. Двоичная система счисления
- •1.3.3. Смешанные системы счисления
- •1.3.4. Таблицы сложения и умножения в двоичной системе счисления
- •1.3.5. Перевод чисел из одной системы счисления в другую
- •1.4. Способы представления чисел со знаком
- •1.4.1. Общие положения
- •1.4.2. Дополнительный код.
- •1.4.3. Обратный код
- •1.5. Формы представления числовых данных
- •1.5.1. Общие положения
- •1.5.2. Представление числовых данных с фиксированной запятой
- •1.5.3. Представление числовых данных с плавающей запятой
- •2. Представление символьной информации
- •3. Представление графической информация
- •4. Oсновы схемотехники
- •4.1. Основы математической логики
- •4.2. Логические элементы
- •4.3. Проектирование логических схем
- •4.3.1. Комбинационные схемы и конечные автоматы
- •4.3.2. Синтез комбинационных схем
- •4.4. Элементы памяти (триггеры)
- •С амыми универсальными и сложными являются jk-триггеры. Они могут строиться как со статическим, так и с динамическим управлением. Универсальный jk-триггер
- •4.5. Регистры
- •4.6. Счетчики
- •5. Арифметические основы эвм
- •5.1. Основные положения
- •5.2. Арифметические операции с плавающей запятой
- •5.3. Десятичная арифметика
- •5.4. Схемы выполнения основных операций над числами с фиксированной запятой в двоичной системе счисления
- •6. Теоретические основы проектирования устройств обработки информации
- •6.1. Микропрограммы выполнения арифметических операций
- •6.1.1. Структура арифметико-логического устройства (алу) эвм
- •6.2.1. Язык микроопераций для представления алгоритмов выполнения арифметических операций
- •7. Основы проектирования операционной части алу
- •7.1. Этапы проектирования
- •7. 2. Проектирование операционной части алу
- •7.2.1. Разработка структурной схемы операционной части алу
- •7.2.2. Разработка функциональной схемы операционной части алу
- •8. Проектирование управляющей части алу
- •8.1. Способы построения управляющей части алу
- •8.2. Проектирование управляющей части алу на основе конечных автоматов
- •8.2.1. Общие вопросы проектирования устройств управления на основе конечных автоматов
- •8.2.2. Основные этапы проектирования схем мпа
- •8.2.3. Проектирование мпа на основе автомата Мура
- •8.2.4. Проектирование мпа на основе автомата Мили
- •8.3. Проектирование микропрограммных устройств управления
- •8.3.1. Основные принципы работы микропрограммных устройств управления
- •8.3.2. Типы микропрограммных устройств управления
- •8.3.4. Кодирование поля микроопераций регистра микрокоманд
- •8.3.5. Кодирование поля адресов схемы формирования адресов микрокоманд
- •9. Глоссарий
7. Основы проектирования операционной части алу
7.1. Этапы проектирования
Проектирование операционной части АЛУ заключается в выборе схемы выполнения операции согласно техническому заданию, выборе основных функциональных элементов, составлении структурной схемы операционной части с указанием всех точек управления и определении всех микроопераций и микрокоманд, составлении графа микропрограммы. Структурная схема отображает общую компоновку основных функциональных компонент устройства и основные связи.
По структурной схеме строится функциональная схема ОЧ. Она отображает функционирование разрабатываемого устройства на уровне отдельных элементов.
На основе функциональной схемы проектируется принципиальная схема ОЧ.
Принципиальная схема отличается от функциональной тем, что для функциональной схемы выбирают элементы с нужными функциональными свойствами. В принципиальной схеме используются промышленно выпускаемые элементы, которые имеются на складе или в продаже. При выборе элементов принципиальной схемы учитываются их размеры, стоимость, надежность, технологические моменты факторы сборки, тестирования, условия эксплуатации, ремонтопригодность и т.д.
На принципиальной схеме обозначаются не только функции элементов, но и их конкретные промышленные марки. При проектировании принципиальной схемы возможно укрупнение или декомпозиция отдельных узлов функциональных схем.
Микропрограмма используется для проектирования управляющей части АЛУ.
7. 2. Проектирование операционной части алу
7.2.1. Разработка структурной схемы операционной части алу
Проектирование операционной части АЛУ рассмотрим на примере проектирования специализированного устройства алгебраического сложения/вычитания восьмиразрядных целых чисел со знаком, заданных в прямых кодах.
Алгоритм этой операции рассмотрен в разделе 5.4. (Схемы выполнения основных операций над числами с фиксированной запятой в двоичной системе счисления), а схема алгоритма представлена на рис. 5.1 (Блок-схема выполнения алгебраического сложения, вычитания в прямом коде).
Алгоритм операции использует как сложение, так и вычитание чисел. Для реализации вычитания в примере используется дополнительный код.
В минимальном варианте операционная часть должна иметь:
семиразрядный сумматор SM,
два восьмиразрядных регистра РегА и РегВ (для фиксации результата можно использовать регистр одного из операндов),
триггер кода операции/переполнения T&/v (код операции и переполнение используются в разных тактах),
коммутирующие узлы (точки управления) и линии связи.
Начальными действиями операции будем считать прием с 9-ти разрядной шины данных кода операции (КО: сложение/вычитание) и операндов(8-ми-разрядных чисел: 7 разрядов плюс знак) на входные регистры А и В, а концом – передачу результата операции на шину данных и формирование признака переполнения(Рис. 7.1 Структурная схема ОЧ специализированного устройства алгебраического сложения/вычитания 8-ми-разрядных целых чисел со знаком, заданных в прямом коде).
Структурная схема ОЧ специализированного устройства алгебраического сложения/вычитания приводится на рис. 7.1.
Выполнение операции начинается со следующих действий:
прием с 9-ти разрядной шины данных кода операции (КО: сложение/вычитание),
прием операндов(8-ми-разрядных чисел: 7 разрядов плюс знак) на входные регистры РегА и РегВ.
Операция завершается следующими действиями:
передача результата операции на шину данных ,
формирование признака переполнения.
Целью проектирования ОЧ АЛУ является оптимальный выбор компонент, точек управления и связей на основе анализа алгоритма выполнения операции. Критериями оптимальности проектирования могут быть стоимостные или временные (быстродействие) характеристики.
Проектирование структурной схемы это творческая работа, в которой важно не только знание теории, но и практический опыт разработчика.
Рис.7.1 Структурная схема ОЧ специализированного устройства алгебраического сложения/вычитания 8-ми-разрядных целых чисел со знаком, заданных в
прямом коде.
Выбор и распределение компонентов
При вычитании чисел с одинаковыми знаками вместо вычитания второго операнда производят его прибавление с инвертированием разрядов и прибавлением единицы в младший разряд. Эти операции можно выполнить одновременно в одном такте. Для этого разряды второго операнда при вычитании подают на входы сумматора с инверсных выходов регистра РегВ, а на вход переносов младшего разряда (SM(р7) на рис. 7.1) SM(р7) подается единичный сигнал у5.
При сложении чисел с одинаковыми знаками передача второго операнда происходит без смены знака, и разряды второго операнда подают на входы сумматора в прямом коде.
Для возможности подачи на вход сумматора второго операнда как в прямом, так и в дополнительном кодах в схеме используется мультиплексор MSA, управляемый сигналом у5. Подача на вход сумматора второго операнда как в прямом, так и в дополнительном коде осуществляется при помощи мультиплексора MSA, управляемого сигналом у5. Наличие сигнала у5 определяет подачу дополнительного кода, т.е. выполнение операции вычитания, отсутствие у5 – операцию суммирования.
Соответственно, регистр РегВ должен иметь как прямые разрядные выходы, так и инверсные.
Алгоритм предполагает возможную смену знака результата при вычитании большего операнда из меньшего. В этом случае производится коррекция результата – разряды результата инвертируются, и к младшему разряду прибавляется единица. В данном примере для фиксации результата используется регистр не первого, а второго операнда РегВ. Это сделано для того, чтобы не перегружать схему инверсными выходами и цепями передач с мультиплексорами.
Согласно алгоритму подача разрядов первого операнда с РегА (без знака) на сумматор производится только в прямом коде. Если не надо управлять способом передачи информации на комбинационный сумматор, и передаваемая информация используется во всех операциях, то нет необходимости использовать в цепи связи точки управления в виде вентилей. Вентили в цепях связи ставятся для блокировки передачи информации. В данной схеме вентили нужны для блокировки передачи первого операнда в такте коррекции результата с использованием сумматора. В данной схеме вентили нужны, чтобы заблокировать передачу первого операнда в сумматор в такте коррекции результата. Блокировка производится при отсутствии сигнала управления у4.
Для разделения цепей приема второго операнда с шины данных и фиксации результатов с выхода сумматора SM(вых) используется второй мультиплексор MSB. Прием второго операнда с шины данных через сумматор производится по сигналам y2 и y6(tз).
При подаче разрядных значений операндов на входы сумматора результат на выходах формируется с определенной задержкой на переходные процессы. По этой причине фиксацию результатов производят в конце такта, например по заднему фронту управляющего сигнала, с использованием синхронных триггеров, например D-триггеров. На структурной схеме (Рис.7.1) такая микрооперация отмечена пометкой tз –у6(tз).
При заданной элементной базе длительность такта выбирают не меньше максимальной задержки в используемых схемах. При заданном быстродействии (длительности такта) подбирают соответствующую элементную базу.
Для фиксации кода операции () и возможного переноса схема содержит D-триггер T/v (установка переноса производится по сигналу переноса с сумматора, сброс – по сигналу управления у7 ).
В целях упрощения цепей Чтобы упростить цепи коррекции знака результата, знак сохраняют в D-триггере с индивидуальным входом синхронизации. Инвертирование знака производится передачей значения сигнала с инверсного выхода триггера на его вход. Алгоритм предусматривает сброс переполнения и инвертирование знака результата в одинаковых ситуациях. Поэтому для сброса сигнала переноса и изменения знака результата используется один управляющий сигнал – у7.
Передача результата на магистральную шину данных выполняется по сигналу управления у3.
Схема содержит три контрольные точки, которые формируют оповещающие сигналы:
Х1 – знак первого операнда и результата,
Х2 – знак второго операнда,
Х3 – заданный код операции, после использования – перенос из старшего разряда сумматора.
Проектирование графа микропрограммы
Граф микропрограммы отличается от блок-схемы алгоритма конкретностью указания действий, учетом особенностей работы, используемых логических схем и требований технического задания.
Г
1
Граф микропрограммы логического сложения/вычитания целых чисел со знаком в прямом коде представлен на рис.7.2. Граф микропрограммы построен на основе блок схемы алгоритма и структурной схемы ОЧ представленных, соответственно на рис. 5.1 и рис.7.1.
Рис. 7.2. Граф микропрограммы логического сложения/вычитания целых чисел со знаком в прямом коде
Первая микрокоманда графа Y1 (?) по сигналу y1 передает первый операнд с шины данных в первый регистр с дублированием знака на триггере знака/переполнения (T/v):
Вторая микрокоманда Y2 по сигналу y2 переключает вход мультиплексора MSB на шину данных и заносит второй операнд с шины данных ШД с задержкой по заднему фронту сигнала y6(tз):
Y2 = y2, y6(tз)
Третья микрокоманда Y3 по сигналу y4 передает первый операнд на входы сумматора SM. Второй операнд при отсутствии сигнала y5 подается на входы сумматора в прямом коде. Фиксация суммы в регистре второго операнда РегВ производится по заднему фронту сигнала y6(tз).
Переполнение определяется по факту переноса из старшего разряда сумматора. Если единица переноса возникает при сложении, то – это переполнение. Перенос сохраняется как переполнение в триггере переполнения T/v.
Y3 = y4, y6(tз),
Четвертая микрокоманда Y4 выполняет следующие действия:
по сигналу y4 передает на входы сумматора первый операнд в прямом коде без знака,
по сигналу y5 передает на входы сумматора второй операнд в дополнительном коде без знака,
фиксирует сумму на регистре второго операнда по заднему фронту сигнала y6(tз)
фиксирует переполнение в триггере переноса T&/v,
Таким образом, микрокоманда Y4 производит вычитание без знаков второго оператора операнда из первого с сохранением результата в регистре второго операнда РегВ, а переноса — в триггере переполнения T/v:
Y4 = y4, y5, y6(tз),:
Пятая микрокоманда Y5 производит коррекцию знака результата.
При выполнении операции вычитания переполнение не возникает. Но перенос из старшего разряда возможен, если |А| |В|. Это случай, когда знак результата сформирован неверно. Для нахождения верного результата нужна его коррекция. Коррекция результата заключается в его инверсии (вычитании из нуля): перенос результат
Сигнал переполнения фиксируется в триггере переполнения T/v и проверяется после выполнения операции вычитания. При отсутствии переноса производится коррекция результата: триггер переполнения сбрасывается и производится инвертирование знака результата (y7):
Y5 = y7,
Это делается для упрощения сохранения знака результата. Априори результату присваивается знак первого операнда (А). Но на магистральную шину данных знак результата будет передаваться со знакового триггера второго операнда. Такая замена возможна, так как известно соотношение знаков.
Микрокоманда Y6 изменяет знак результата, формирует дополнительный код результата и сбрасывает сигнал переполнения (у7):
Y6 = y5, y6(tз), y7,
Микрокоманда Y7 сохраняет результат на шине данных:
Y7 = y3.
Граф микропрограмм имеет четыре вершины проверки условий:
равенства знаков операндов X1 = X2
переноса из старшего разряда сумматора X3.
Ниже приводится табл. 9 всех используемых в МП микрокоманд, с указанием всех составляющих микроопераций.
Таблица 9. Микрокоманды устройства алгебраического сложения/вычитания целых чисел со знаком в прямом коде.
МК |
Микрооперации |
Описание |
Y1 |
y1: РегА:= ШД[0÷7]; T/v := РегА [0]. |
Занесение первого операнда в регистр c дублированием знака в регистр знака/переполнения. |
Y2 |
у2:MSB:=ШД[0÷7]; y6(tз):РегВ[0÷7]:= SM(Вых) |
Переключение мультиплексора на шину данных; Занесение второго операнда в регистр с шины данных позднему фронту сигнала управления.. |
Y3 |
у4: SM(B):= РегВ[1÷7]; SM(А):= РегА[1÷7]; y6(tз):РегВ[1÷7]:= SM(Вых) T/v := SM(P1). |
Подача на вход сумматора SM(А) 2-го операнда. Подача на вход сумматора SM(В) 1-го операнда. Подача с выхода сумматора результата на регистр второго операнда и знака на триггер знака/переполнения. |
Y4 |
y4: SM(А):= РегА[1÷7]; y5,:
SM(B):=
SM(р7):= 1 y6(tз): РегВ[1÷7]:=SM(Вых) T/v := SM(P1). |
Подача на вход сумматора SM(В) 1-го операнда Подача на вход сумматора SM(А) 2-го операнда с отрицательным знаком. Подача с выхода сумматора результата на регистр второго операнда и знака на триггер знака/переполнения.. |
Y5 |
у7: T&v:= 0
у
: РегА[0]:=
|
Сброс триггера переполнения (T&v) и изменение знака результата |
Y6 |
y5,:
SM(B):=
SM(р7):= 1 y6tз : РегВ[1÷7]:= SM(Вых) у7 : РегА[0]:= 0 |
Коррекция результата (перевод результата в дополнительный код с изменением знака). Сброс триггера переполнения (T&v) |
Y7 |
у3 : ШД[0÷8]:= := РегА[0]|РегВ[0÷7]| T&v |
Помещение на шину данных результата операции со знаком и признака результата (переполнение). |