Блок выравнивания порядков
Введение.
Процесс, который привел к появлению современных компьютеров, был чрезвычайно быстрым. Одним из самых важных достижений, приведших к революции в персональных компьютерах, было изобретение полупроводника или транзистора в 1948 году.
В современных ЭВМ одним из основных элементов является блок АЛУ (арифметико-логическое устройство), которое осуществляет арифметические и логические операции над поступающими в ЭВМ машинными словами.
В ранних моделях компьютеров использовались только числа в форме с фиксированной запятой. В дальнейшем возникла необходимость использования чисел с плавающей запятой, для этого сначала применялись сопроцессоры. В настоящее время благодаря появлению новой технологии MMX позволяющей процессору обрабатывать числа и с фиксированной и с плавающей запятыми, резко возросла скорость работы компьютера со средствами мультимедиа: графикой звуком и т.д.
Алгоритм.
При сложении мантисс необходимо чтобы веса единиц одноимённых разрядов мантиссы чисел были одинаковыми. Для этого мантиссы сдвигаются относительно друг друга, так чтобы их порядки стали равными. Чтобы при выравнивании порядков не получить мантиссы больше 1, их сдвигают в сторону большего порядка.
В блок по двум шинам данных вводятся мантиссы и порядки чисел 1 и 2.
МА- Мантисса первого числа.
МВ- Мантисса второго числа.
РА- Порядок первого числа.
РВ- Порядок второго числа.
Затем из порядка первого числа вычитается порядок второго числа: получаем H-Разность порядков. Далее в зависимости от знака полученного результата:
1. при H>0 увеличиваем PA до PB, P=PA+H.
2. при H<0 увеличиваем PA до PB, P=PA+H.
3. при H=0 коррекция не нужна.
Рс- Порядок результата.
Затем производится проверка на возможность переполнения, которое возможно, если смещение превысит 10 позиций, т.е. разрядность мантиссы. Для этого |H| сравнивается с 10, если |H|>10, то выдаётся сигнал переполнения. Если |H|<10 , то переполнения нет.
Далее необходимо выполнить сдвиг мантиссы соответствующей меньшему порядку, влево на количество знаков равное H, т.е. Разность порядков.
Таким образом, мы имеем выровненный порядок и две мантиссы одна из которых, сдвинута в соответствии с изменившемся порядком. Эти три величины подаются на выход.
Блок-схема алгоритма.
.
Блок-схема алгоритма.
Описание блок-схемы алгоритма.
1.С 16 разрядной двунаправленной шины данных одновременно принимаются порядок и мантисса числа “А”.
2.Порядок и мантисса числа “А” преводятся в дополнительный код.
3.с шины данных одновременно принимаются порядок и мантисса числа “B”.
4.Порядок и мантисса числа “B” преводятся в дополнительный код.
5.Из порядка числа “А” вычитается порядок числа “В”.
6.Разность порядков сравнивается с 10.
7.Если разность ³10, то в зависимости от знака, выровненный порядок равен порядку числа “В” при отрицательной разности
и порядку числа числа “А” при положительной разности.
8.соответственно мантисса числа “А” и мантисса числа “В” =0.
9.Если разность порядков <10, то она сравнивается с 0 и если она =0, то порядки чисел равны и сдвиг не требуется.
10.Если разность ¹0, то она заносится в вычитающий счётчик.
11.В зависимости от знака сдвигается мантисса числа “А” при отрицательной разности и мантисса числа”В”.
12.Уменьшенная на счётчике разность сравнивается с 0 и если
она =0,цикл завершается, и в зависимости от знака порядок Рс=Ра
при М>0 и Рс=Рв при М<0. Если М¹0 цикл повторяется.
Схема структурная.
Описание блок-схемы структурной.
1.С шины данных в регистры RG1, RG3 принимаются:мантисса Ма и порядок Ра а прямом коде.
2.Далее в регистры RG2 и RG4 принимаются: мантисса Мв и порядок Рв
в прямом коде.
3.Ра и Рв переводятся в дополнительный код и записываются в регистры RG1 и RG2.
4.На сумматоре SM1 из [Ра]доп. Вычитается [Pв]доп. И результат [М]доп. записывается в регистр RG6.
5.[М]Доп. Из RG6 [М]доп. Подаётся на преобразователь кода CODE3
|
6.Из регистра RG6 [М]пр заносится в компаратор KOMPAR1 и сравнивается с 10.
7.Если компаратор выдаёт сигнал МÊ10, то в зависимости от знака при м>0 Pc(RG7) -выровненный порядок приравнивается либо к Pa RG1 и Мв(RG4)=0, При M<0 Pc=Pb (RG7=RG2) и Ма=0(RG2=0).
8.Если компаратор (KOMPAR1) выдаёт сигнал M<0, то на компараторе KOMPAR3 M сравнивается с 0,При М=0 Pc=Pa=Pb, (RG7=RG1), сдвиг не нужен.
Если М¹0, то М заносится в вычитающий счётчик S-1 и при каждом цикле уменьшается на единицу, в зависимости от знака сдвигая вправо на 1 разряд Ма при М<0 и Мв при М>0.
9.Затем [М]пр из счётчика подается в компаратор KOMPAR1 и сравнивается с 0.
Если М¹0, то цикл повторяется, если М=0, то RG2 и RG7; и
RG3 и RG7 выдаются на шину данных.
Описание управляющих сигналов.
Ус1- по этому сигналу с шины данных в регистры 1 и 3 одновременно принимаются порядок и мантисса числа “А”.
Ус2- по этому сигналу с шины данных одновременно в регистры 2 и 3 принимаются порядок и мантисса числа “В”.
Ус3- по этому сигналу порядки чисел А и В в обратном коле одновременно записываются из преобразователей кода в регистры 1 и 2 соответственно.
Ус4- по этому сигналу из сумматора SM1 разность порядков [М]пр.
Записывается в регистр RG6.
Ус5- по сигналу УС5 происходит запись выровненного порядка Pc в регистр RG7.
Список элементов
1 6-разрядных, тактируемых регистра (Рг1 Рг2 Рг5 Рг7)
2 10-разрядных, тактируемых регистра сдвиг вправо (Рг3 Рг4)
1 6-разрядный сумматор
1 6-разрядный вычитающий счётчик
3 6-разрядных компаратора = ¹