2.2Принцип работы
В регистр RM2 загружается
mB, в сумматор SMM загружается mA.
Регистр RM1 обнуляется, счётчик CT
инициализируется числом n, где n = 8.
В триггер T загружается
.
Это необходимо для последующей коррекции.
Бит
записывается в CI, который является
младшим битом RM1.
В регистр RP2 загружается pB, в регистр RP1 загружается pA. Сумматор SMP обнуляется.
Перед началом работы цикла проверяется значение RM2. Если RM2=0, то генерируется исключение «деление на 0» и работа устройства прекращается. Далее производится работа с порядками. Искомый порядок является разностью порядков RP1 и RP2. Если при вычитании порядков с разными знаками, то есть, сложения чисел с одинаковыми знаками, произошла смена знака (сложили два положительных – получили отрицательное, и наоборот), то генерируется исключение «переполнение». Поскольку может произойти как смена знака с «+» на «–», так и с «–» на «+», то существует два различных исключения – «переполнение +» и «переполнение –».
После этого проверяется
условие
.
Для этого, если знаки равны, производится
вычитание
,
иначе
.
Если в результате знак не изменился,
что соответствует нарушению этого
условия, производится сдвиг SMM в сторону
младших разрядов, иначе – переходим к
циклу. Естественно, после проверки
необходимо восстановить значение
сумматора.
В цикле сначала
проверяется значение счётчика CT.
Если счётчик CT стал равен нулю, выходим
из цикла. Для начала проверяем
,
затем двигаем сумматор в сторону старших
разрядов. Если
,
то выполняем
,
иначе –
.
Затем в CI записываем
и сдвигаем RM1 в сторону старших разрядов.
Затем уменьшаем CT на 1 и возвращаемся к
началу цикла.
После цикла происходит коррекция. Если T=0 и RM2[1]=1, то к младшему разряду RM1 прибавляется 1 (то есть, RM1 += 0,00…01). Если T=1 и RM2[1]=0, то RM1 += 1,00…01, если же T=1 и RM2[1]=1, то RM1 += 1,00…00.
Структурная схема показана на рисунке 1. Схема алгоритма разбита на несколько частей и показана на рисунках 2, 3, 4, 5, 6.
Рисунок 1 — Структурная схема устройства
Рисунок 2 — Схема алгоритма работы устройства, инициализация
Рисунок 3 — Схема алгоритма работы устройства, работа с порядками
Рисунок 4 — Схема алгоритма работы устройства, проверка и денормализация делимого
Рисунок 5 — Схема алгоритма работы устройства, деление как таковое
Рисунок 6 — Схема алгоритма работы устройства, коррекция и вывод
3Пример работы устройства
3.1A и b – положительные
|
mA = 0,11101010 |
pA = 00000101 |
|
|
mB = 0,10010000 |
pB = 00000001 |
|
|
|
|
|
|
SMM = 0,11101010 |
RM1 = 0,00000000 |
|
|
RM2 = 0,10010000 |
CT = 8 |
|
|
-RM2 = 1,01110000 |
T = 0 |
|
|
|
|
|
|
RP1 = 00000101 |
SMP = 00000000 |
|
|
RP2 = 00000001 |
|
|
|
|
|
|
SMP= |
00000101 |
|
|
-RP2= |
11111110 |
|
|
SMP= |
00000011 |
|
|
|
|
|
|
SMM= |
0,11101010 |
|
|
-RM2= |
1,01110000 |
|
|
|
0,01011010 |
|mA| > |mB| |
|
RM2= |
0,10010000 |
|
|
SMM= |
0,11101010 |
|
|
SMM= |
0,01110101 |
|
|
SMP= |
00000100 |
|
|
|
|
|
|
1) |
SMM=0,01110101 |
|
|
|
SMM=0,11101010 |
|
|
|
-RM2=1,01110000 |
|
|
|
0,01011010 |
CI=1 RM1=0,00000001 CT=7 |
|
2) |
SMM=0,01011010 |
|
|
|
SMM=0,10110100 |
|
|
|
-RM2=1,01110000 |
|
|
|
0,00100100 |
CI=1 RM1=0,00000011 CT=6 |
|
3) |
SMM=0,00100100 SMM=0,01001000 |
|
|
|
-RM2=1,01110000 |
|
|
|
1,10111000 |
CI=0 RM1=0,00000110 CT=5 |
|
4) |
SMM=1,10111000 SMM=1,01110000 |
|
|
|
-RM2=1,01110000 |
|
|
|
0,00000000 |
CI=1 RM1=0,00001101 CT=4
|
|
5) |
SMM=0,00000000 SMM=0,00000000 |
|
|
|
-RM2=1,01110000 |
|
|
|
1,01110000 |
CI=0 RM1=0,00011010 CT=3 |
|
6) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
RM2=0,10010000 |
|
|
|
1,01110000 |
CI=0 RM1=0,00110100 CT=2 |
|
7) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
RM2=0,10010000 |
|
|
|
1,01110000 |
CI=0 RM1=0,01101000 CT=1 |
|
8) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
RM2=0,10010000 |
|
|
|
1,01110000 |
CI=0 RM1=0,11010000 CT=0 |
|
mC= |
RM1=0,11010000 |
|
|
pC= |
SMP=00000100 |
|
|
3.2 А – положительное, B – отрицательное
|
mA = 0,11101010 |
pA = 00000101 |
|
|
mB = 1,01110000 |
pB = 00000001 |
|
|
|
|
|
|
SMM = 0,11101010 |
RM1 = 0,00000000 |
|
|
RM2 = 1,01110000 |
CT = 8 |
|
|
-RM2 = 0,10010000 |
T = 1 |
|
|
|
|
|
|
RP1 = 00000101 |
SMP = 00000000 |
|
|
RP2 = 00000001 |
|
|
|
|
|
|
SMP= |
00000101 |
|
|
-RP2= |
11111110 |
|
|
SMP= |
00000011 |
|
|
|
|
|
|
SMM= |
0,11101010 |
|
|
RM2= |
1,01110000 |
|
|
|
0,01011010 |
|mA| > |mB| |
|
-RM2= |
0,10010000 |
|
|
SMM= |
0,11101010 |
|
|
SMM= |
0,01110101 |
|
|
SMP= |
00000100 |
|
|
|
|
|
|
1) |
SMM=0,01110101 SMM=0,11101010 |
|
|
|
RM2=1,01110000 |
|
|
|
0,01011010 |
CI=0 RM1=0,00000000 CT=7 |
|
2) |
SMM=0,01011010 SMM=0,10110100 |
|
|
|
RM2=1,01110000 |
|
|
|
0,00100100 |
CI=0 RM1=0,00000000 CT=6 |
|
3) |
SMM=0,00100100 SMM=0,01001000 |
|
|
|
RM2=1,01110000 |
|
|
|
1,10111000 |
CI=1 RM1=0,00000001 CT=5 |
|
4) |
SMM=1,10111000 SMM=1,01110000 |
|
|
|
-RM2=0,10010000 |
|
|
|
0,00000000 |
CI=0 RM1=0,00000010 CT=4 |
|
5) |
SMM=0,00000000 SMM=0,00000000 |
|
|
|
RM2=1,01110000 |
|
|
|
1,01110000 |
CI=1 RM1=0,00000101 CT=3 |
|
6) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
-RM2=0,10010000 |
|
|
|
1,01110000 |
CI=1 RM1=0,00001011 CT=2 |
|
7) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
-RM2=0,10010000 |
|
|
|
1,01110000 |
CI=1 RM1=0,00010111 CT=1 |
|
8) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
-RM2=0,10010000 |
|
|
|
1,01110000 |
CI=1 RM1=0,00101111 CT=0 |
|
T=1
|
RM1=0,00101111 1,00000001 |
|
|
|
RM1=1,00110000 |
|
|
mC= |
RM1=0,11010000 |
|
|
pC= |
SMP=00000100 |
|
|
3.3A – отрицательное, B – положительное
|
mA = 1,00010110 |
pA = 00000101 |
|
|
mB = 0,10010000 |
pB = 00000001 |
|
|
|
|
|
|
SMM = 1,00010110 |
RM1 = 0,00000000 |
|
|
RM2 = 0,10010000 |
CT = 8 |
|
|
-RM2 = 1,01110000 |
T = 1 |
|
|
|
|
|
|
RP1 = 00000101 |
SMP = 00000000 |
|
|
RP2 = 00000001 |
|
|
|
|
|
|
SMP= |
00000101 |
|
|
-RP2= |
11111110 |
|
|
SMP= |
00000011 |
|
|
|
|
|
|
SMM= |
1,00010110 |
|
|
RM2= |
0,10010000 |
|
|
|
1,10100110 |
|mA| > |mB| |
|
-RM2= |
1,01110000 |
|
|
SMM= |
1,00010110 |
|
|
SMM= |
1,10001011 |
|
|
SMP= |
00000100 |
|
|
|
|
|
|
1) |
SMM=1,10001011 SMM=1,00010110 |
|
|
|
RM2=0,10010000 |
|
|
|
1,10100110 |
CI=0 RM1=0,00000000 CT=7 |
|
2) |
SMM=1,10100110 SMM=1,01001100 |
|
|
|
RM2=0,10010000 |
|
|
|
1,11011100 |
CI=0 RM1=0,00000000 CT=6 |
|
3) |
SMM=1,11011100 SMM=1,10111000 |
|
|
|
RM2=0,10010000 |
|
|
|
0,01001000 |
CI=1 RM1=0,00000001 CT=5 |
|
4) |
SMM=0,01001000 SMM=0,10010000 |
|
|
|
-RM2=1,01110000 |
|
|
|
0,00000000 |
CI=1 RM1=0,00000011 CT=4 |
|
5) |
SMM=0,00000000 SMM=0,00000000 |
|
|
|
-RM2=1,01110000 |
|
|
|
1,01110000 |
CI=0 RM1=0,00000110 CT=3 |
|
6) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
RM2=0,10010000 |
|
|
|
1,01110000 |
CI=0 RM1=0,00001100 CT=2 |
|
7) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
RM2=0,10010000 |
|
|
|
1,01110000 |
CI=0 RM1=0,00011000 CT=1 |
|
8) |
SMM=1,01110000 SMM=0,11100000 |
|
|
|
RM2=0,10010000 |
|
|
|
1,01110000 |
CI=0 RM1=0,00110000 CT=0 |
|
T=1 |
RM1=0,00110000 1,00000000 |
|
|
|
1,00110000 |
|
|
mC= |
RM1=1,00110000 |
|
|
pC= |
SMP=00000100 |
|
|
