русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Алгоритмом Лемана


Дата додавання: 2015-01-08; переглядів: 1044.


Множення чисел iз молодших розрядів множника, тобто по варіантам “А” i “Б” за алгоритмом Лемана засновано на перетворенні у коді Бута сполучення виду 1 [(1×21)+(-1)×20] на рівнозначну комбінацію 01[(0×21)+(1×20)] i замiщення сполучення 1[(-1)×21+(1×20)] на комбінацію 0 [(0×21)+(-1)×20] (рис.2.12).

 

Десятковий еквівалент по-точної трипозиційної комбі-нації (Х1Х2Х3) групи цифр множника (МК)                
Поточна трипозиційна ком-бінація (Х1Х2Х3) групи цифр множника (МК) 00 0 00 1 01 0 01 1 10 0 10 1 11 0 11 1
Код Бута – код пари (Х1Х2) трипозиційної групи (Х1Х2Х3) МК 0+ +- +0   -0 -+ 0-
Код Лемана - код пари (Х1Х2) трипозиційної групи (Х1Х2Х3) МК 0+ 0+ +0 -0 0- 0-
Алгоритм множення у поточному циклі за ме-тодом Ле-мана Часткові до-бутки у по-точному цик-лі множення   (+0)   (+РА)   (+РА)   (+0)   (+0)   (-РА)   (-РА)   (+0)  
Зсув МК за парно-одини-чним спосо-бом згідно ал-горитма Лемана                  
                         

 

Рисунок 2.12 – Алгоритм множення чисел по варіантам “А” i “Б” за Леманом: РА – регістр множеного

Звідси випливає, що за алгоритмом Лемана кількість значущих цифр (1 і ) у кодi Бута зменшується до мінімальної кількості. Завдяки цьому, якщо доповняльний код множника визначити кодом Лемана, кількість операцій додавання і віднімання множеного зменшується до мінімального і, таким чином, у пристрої для множення чисел досягається прискорення арифметич-ної операції.

У разі, коли, наприклад, В = -1011 і = 1 0101 та ( )БУТ = 1 1 , то зображення за алгоритмом Лемана (рис.2.12) має вигляд:

( )ЛЕМАН = 0101.

Отже, кількість значущих цифр множника у коді Лемана порівня-но з аналогічним записом множника у коді Бута зменшилась з п’яти до трьох.

У пристрої множення чисел за алгоритмами Лемана_А та Лемана_Б застосовується блок одночасного контролю трьох молодших двійкових цифр регістра множника РВ, які утворюють молодша поточна пара множника [РВ(2)РВ(1)] і додатковий розряд регістра множника РВ(0), який до початку операції множення встановлюється у нульовий стан, що апаратно відображає відсутність у початковому станi значущих цифр за межами найменшого розряду множника (рис.2.13). В процесi множення по варіантам “А” i “Б” при зсуві регістра РВ у бік молодших розрядів на один розряд (1р) у додатковий розряд РВ(0) записується стан тригера РВ(1), а при зсуві РВ на два розряди (2р) – стан тригера РВ(2). Аналіз поточного трипозиційного двійкового коду множника у пристрої здійснюється за допомогою дешифра-тора 3*8 і надалі за вихідними сигналами дешифратора у керуючому автоматі запускаються відповідні процедури утворення часткових добутків за алгоритмом Лемана (рис. 2.14).

Рисунок 2.13 – Схема аналізатора поточного розряду РВ(1)

множника за алгоритмами Лемана_А та Лемана_Б

 

 

 

Рисунок 2.14 – Фрагмент мікропрограми пристрою для множення

чисел у доповняльних кодах за алгоритмами Лемана_А та Лемана_Б

 

АК РВ   РА
± 9 8765 4321 ± 4 3 2 1 0 ± 9 8765 4321
0 0 0000 0000,   1 1 1111 0011, 1 0 1 0 1 , 0
 
 


(+РА)

1 1 1 0 1 , 1


(+РА)

1 1 1 1 1 , 0

 
 


(-РА)DK

 

1 1 1111 0011,     2р 1 1 1100 1100,     2р 1 1 0011 0000,  
1 1 1111 0011, + 1 1 1100 0100,
1 1 1011 1111, + 0 0 1101 0000,
0 0 1000 1111,
           

 

Рисунок 2.15 – Приклад множення чисел у

доповняльних кодах за алгоритмом Лемана_Б

 

Приклад множення чисел у доповняльних кодах за алгоритмом Лемана_Б подано на рис.2.16.

 

Десятковий еквівалент по-точної трипозиційної комбі-нації (Х1Х2Х3) групи цифр множника (МК)                
Поточна трипозиційна ком-бінація (Х1Х2Х3) групи цифр множника (МК) 00 0 00 1 01 0 01 1 10 0 10 1 11 0 11 1
Код Бута пари (Х1Х2) три-позиційної групи (Х1Х2Х3) МК 0+ +-   +0 -0   -+   0-
Код Лемана пари (Х1Х2) трипозиційної групи (Х1Х2Х3) МК 0+ +- +0 -0 -+ 0-
Алгоритм множення у поточному циклі за ме-тодом Ле-мана Часткові до-бутки у по-точному цик-лі   (+0)   (+0)   (+РА)   (+РА)   (-РА)   (-РА)   (+0)   (+0)  
Зсув МК за парно-одинич ним спосо-бом за Лема-ном                  
                         

 

Рисунок 2.16 – Машинний алгоритм множення

по варіантам “В” i “Г” за Леманом

 

 

У пристроях множення чисел за алгоритмами Лемана_В і Лемана_Г ” (рис.2.16) у кожному циклі аналізуються три старших розряди регістра множника (РВ) – поточна пара множника [РВ(5) РВ(4)] і сусідній молодший розряд пари – РВ(3) (рис.2.17). Аналіз трипозиційного коду [РВ(5)РВ(4)РВ(3)] виконується дешифратором 3*8, за вихідними сигналами якого у керуючому автоматі запускаються відповідні мікрооперації за згаданими алгоритмами Лемана (рис.2.18).

 

 

Рисунок 2.17 – Схема аналізатора поточного розряду РВ(5)

множника за алгоритмами Лемана_В та Лемана­_Г

 

 

Рисунок 2.18 – Фрагмент мікропрограми пристрою для множення

чисел у доповняльних кодах за алгоритмами Лемана_В та Лемана_Г

Приклад цифрової діаграми множення чисел у доповняльних кодах за алгоритмом Лемана_В подано на рис.2.19.

 

АК РВ   РА
± 9 8765 4321 ± 4 3 2 1 ± 9 8765 4321
0 0 0000 0000,   0 0 0000 1011, 1 0 0 1 1 ,
 
 


= (- РA)

0 1 1, 0 0

= (+РА)

 

1 , 0 0 0 0


= (-РА)

1 1 1111 0101,
0 0 0000 1011, + 2р 0 0 0010 1100,
 
 


1 1 1111 0101,

0 0 0010 0001, + 2р 0 0 1000 0100, 0 0 0000 1011,
0 0 1000 1111,
           

 

Рисунок 2.19 – Приклад множення чисел в

доповняльних кодах за алгоритмом Лемана_B

 

2.2.5 Теоретичні засади та структура арифметичних пристроїв для


<== попередня лекція | наступна лекція ==>
Для множення чисел у доповняльних кодах за алгоритмом Бута | Множення чисел у доповняльних кодах за груповим алгоритмом Бута


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн