Блок выравнивания порядков двоичных чисел с плавающей запятой

ведение

                                                                                                                                                                                                                                                                             

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

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

Точкой отсчета  можно считать начало 17 века (1623 год), когда ученый Вильгельм Шикард создал машину, умеющую складывать и вычитать числа.

В 1938 году Конрад Цузе создает машину, которая оперирует  уже двоичными числами.

В 1946 году в США  была создана первая универсальная  ЭВМ - ENIAC . В ней все еще использовались десятичные операции

В 1951 году создается  принципиально новая ЭВМ - EDVAC. В  этой машине уже применяется двоичная арифметика и используется оперативная  память.

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

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

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

 

Алгоритм работы блока выравнивания порядков двоичных чисел с плавающей  запятой.

 

 

В данном курсовом проекте должен быть разработан блок выравнивания порядков двоичных чисел  с плавающей запятой (ВПДЧ с ПЗ).

 

Разработан блок ВПДЧ с ПЗ на интегральных схемах 533 серии. Данный узел выполняет операции над двоичными числами с плавающей  запятой форматом n=14. Операнды с шины данных n=14 поступают в прямом коде. Внутри блока используется обратный код. Результат операции выдается на шину данных в прямом коде.

Все перечисленные  особенности блока ВПДЧ с ПЗ приведены  на рисунке 1.

 

 

 

 

 

 

 

 

 

 

Рисунок 1. Обобщенная структура  блока ВПДЧ м ПЗ.

 

 

 

    1. Описание формата данных и результата, диапазона и флагов, используемых в операции.

 

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

Рисунок 2. Формат чисел, поступающих  в блок.

 

D0 – D3 – порядок мантиссы

D4 – знак порядка

D5 – D14 – мантисса

D13 – знак мантиссы

 

 

Функцией данного блока  является выравнивание порядков. При  выравнивании мантисса Ма может обратиться в ноль, необходимо определение флага  Z.

Флаг Z это флаг признака нулевого результата.

Z=1 если результат равен 0.

Z=0 если результат не равен 0.

 

 

    1. Описание алгоритма работы блока ВПДЧ с ПЗ по блок-схеме алгоритма.

В соответствии с блок-схемой алгоритма, показанной на рисунке 5, операнды поступают с шины данных в формате с плавающей запятой, в прямом коде, формат n=14.

Сначала порядки [ра]пр и [рв]пр переводятся из прямого кода в обратный. Затем находится разность порядков [рс]обр=[ра]обр-[рв]обр. Полученная разность порядков [рс] переводится из обратного кода в прямой. Определяется не выйдет ли мантисса Ма за границы формата при коррекции, для этого модуль разности порядков |рс| сравнивается с разрядностью мантиссы, указанной на рисунке 2.

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

Если |рс| меньше разрядности мантиссы, то при коррекции мантисса Ма останется в границах формата. В таком случае порядок ра приравнивается к рв. Мантисса Ма сдвигается вправо на 1 разряд. Вычитается единица из модуля разности порядков |рс|. Затем модуль разности порядков |рс| сравнивается с нулем.

Если |рс|≠0, то опять происходит сдвиг мантиссы Ма вправо на 1 разряд, вычитание единицы из модуля разности порядков |рс| и сравнение его с нулем.

Когда |рс|=0, это означает что мантиссы Ма и Мв равны, коррекция не требуется. В таком случае происходит выбор и выдача результатов и флагов в прямом коде. [А]пр= [Ма]пр [ра]пр ; [В]пр= [Мв]прв]пр

 

 

Рисунок 5. Блок схема алгоритма  блока ВПДЧ с ПЗ.

Выбор и обоснование схемы электрической структурной блока ВПДЧ с ПЗ.

 

На основании работы блока  ВПДЧ с ПЗ, представленного на рисунке 5, выбирается схема электрическая  структурная. Для этого микрооперации  алгоритма заменяются узлами и логическими  элементами, способными выполнить данную микрооперацию. Определяется разрядность  узлов и устройств, в соответствии с форматом, принятом в разделе 1.1. Выбираются сигналы управления, определяющие последовательность работы узлов и  блоков.

Схема электрическая структурная  блока ВПДЧ с ПЗ представлена на рисунке 6.

 

 

 

2.1   Описание состава основных узлов, блоков и управляющих сигналов в блоке ВПДЧ с ПЗ.

 

 

Рг1, Рг2 – параллельные 14-ти разрядные регистры, служащие для приема и хранения операндов А и В, поступающих с шины данных.

Блок 1 – блок инверсии знака рв.

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

См1 – 5-ти разрядный сумматор, предназначенный для нахождения разности порядков рс.

ПрК3 – преобразователь кода, служащий для преобразования рс из обратного кода в прямой.

ЦК1 – 4-х разрядный цифровой компаратор, служащий для сравнения разности порядков [рс]обр с 8.

Рг5 – параллельный 8-ми разрядный регистр сдвига мантиссы [Ма]пр.

Сч1 – 4-х разрядный вычитающий счетчик, служащий для вычитания единицы из разности порядков |рс|.

Рг6 – регистр хранения флага Z.

ЦК2 – 4-х разрядный цифровой компаратор, служащий для сравнения модуля разности порядков |рс|, находящегося в Сч1 с 0.

MUX1 – 8-ми разрядный мультиплексор, служащий для выбора Ма.

Рг3, Рг4 – параллельные 14-ти разрядные регистры, служащие для выдачи А и В.

Блок 6 – блок определения флага Z.

Сч1 – 2-х разрядный суммирующий счетчик, служащий для подсчета количества сигналов Ус7.

Блок 5 – блок сравнения с 0 счетчика Сч2 имеет 2 входа, 1 выход. Ко входам подключаются выходы Сч2, выход подключается к Блоку 3.

Блок 2 – имеет 4 входа, 2 выхода. К первому входу подключается выход Цк2, ко второму выход Блока 5, на два остальных подаются импульсные сигналы УС6 и УС7. По УС6 число А записывается Рг3, флаг Z записывается в регистр Рг6. Запись происходит когда на выходе Цк2 уровень логической “1”, на выходе Блока 5 уровень логической “1”, и вырабатывается сигнал УС6. По УС7 к числу, находящемуся в счетчике Сч2, прибавляется 1. Прибавление происходит когда на выходе Цк2 уровень логической “1”, на выходе Блока 5 уровень логической “1”, и вырабатывается сигнал УС7.

Блок 3 – имеет 3 входа, 2 выхода. К одному входу подключен выход Цк2, на два других подаются импульсные сигналы УС4 и УС5. УС4 сдвигает вправо мантиссу Ма, находящуюся в регистре Рг5. Сдвиг происходит когда на выходе Цк2 уровень логического “0”, и вырабатывается сигнал УС4. УС5 вычитает 1 из разности порядков рс, находящейся в счетчике

Сч1. Вычитание происходит когда на выходе Цк2 уровень логического “0”,

и вырабатывается сигнал УС4.

УС1 – одиночный сигнал, который записывает число А в регистр Рг1. 

УС2 – одиночный сигнал, который записывает число В в регистр Рг2.

УС3 – Одиночный сигнал, который записывает мантиссу Ма в регистр Рг5 и разность порядков рс в счетчик Сч1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 6. Схема электрическая  структурная блока ВПДЧ с ПЗ.

2.2   Описание работы блока ВПДЧ с ПЗ по схеме электрической структурной.

 

В соответствии с Рисунком 6 операнды А и В поступают с 14 разрядной шины данных в прямом коде, в формате с плавающей  запятой.

Производится начальная  установка, по ходу которой сбрасывается в ноль счетчик Сч2.

По Ус1 число А записывается в регистр Рг1. По Ус2 число В  записывается в регистр Рг2. Порядок [ра]пр поступает в ПрК1, где преобразуется из прямого кода в обратный. Знаковый разряд [рв] поступает в Блок 1, где он инвертируется на  противоположный. После порядок [рв]пр и проинвертированный знаковый разряд поступают на ПрК2, где преобразуются из прямого кода в обратный.

Преобразованные [ра]обр и в]обр поступают на сумматор См1, где происходит их сложение. Получившаяся разность порядков [рс]обр поступает в ПрК3, где преобразуется из обратного кода в прямой.

Далее получившаяся разность порядков [рс]пр без знака поступает на цифровой компаратор ЦК1, где сравнивается с 8.

Если выполняется условие |рс| > 8, то Цк1 вырабатывает уровень логического ‘0’, который поступает на вход R счетчика Сч1 и регистра Рг5. Вырабатывается сигнал УС3, но записи чисел в регистр Рг5 и счетчик Сч1 не происходит, так как на их входах R активный уровень. Так как в счетчике Сч1 все разряды равны нулю, то при сравнении числа в ЦК2 с нулем, на его выходе будет уровень логической '1', который поступает на Блок 2 и Блок 3. Блок 3 срабатывает при уровне логического '0' на выходе ЦК2, поэтому сигналы УС4 и УС5 не проходят через блок. Блок 2 срабатывает при уровне логической '1' на выходе ЦК2, сигнал Ус6 проходит через блок, производится запись числа А в регистр Рг3, числа В в регистр Рг4, флага Z в регистр Рг6. Затем по сигналу УС7 в счетчик Сч2 прибавляется единица. Так как раньше в счетчик Сч2 был обнулен начальной установкой, то после сигнала УС7 в счетчике будет 1, состояние Блока 4 изменится, на его выходе будет уровень логического '0', который поступает в Блок 2, вследствие чего сигналы УС6 и УС7 больше не проходят через Блок 2, операция завершена.

Блок выравнивания порядков двоичных чисел с плавающей запятой