6.2 Матрицалы көбейткіштер
Матрицалы көбейткіштердің құрылымы көбейту операцияларын сипаттайтын математикалық өрнектердің құрылымымен тығыз байланысты. Екі таңбасыз екілік жүйе сандары болсын Am = am-1...ao және Bn=bn-1...bo. оларды еселеу "бағаналарды көбейту" схемасы бойынша орындалады. Егер сандар төрт разрядты болса m = n = 4, онда
aibj мүшелері, мұндағы i = 0... (m - 1) және j = 0... (n - 1), конъюктор уақытымен паралельді түрде өңделеді. Оларды бағана бойынша әртүрлі жолмен
орындауға болатын көбейту көбейткіштер үшін негізгі операцияларды құрайды.
Матрицалы қайта көбейткіштер қарапайым көбейткіш блоктары (КБ) немесе көбейтіп-қосқыш блоктары (КҚБ) болуы мүмкін, соңғысы көбейткіштердің көлемінің өсуіне жағдай жасайды.
КҚБ МСБ Р = Аm х Вn + Сm + Dn операциясын жүзеге асырады, ол туындыға екі буын қосады: біреуі көбейетін разрядтылыққа сәйкес келетін разряды, ал екіншісі m т. е. Көбейткішке екі қосылғыш қосады: біреуі m разрядты, көбейтінді разрядымен сәйкес келетін, екіншісі n разрядты, көбейткіш разрядымен сәйкес келетін.
6.2.1 Көбейткішті-қосындылы блоктар.
Көбейткішті-қосындылы блоктар конъюнкторлар жинағынсыз төртразрядты операндтар үшін, өңделген аibj түріндегі мүшелері 6.3, а суретте көрсетілген ( мұндағы бірразрядты сумматор үшін қолданылған белгілеу 6.3, б суретті қара).
6.3 сурет – Төртразрядты көбейткіштерге арналған КҚБ сызбасы (а) және осы сызба үшін бірразрядты сумматордың белгіленуі (б)
Теңразрядты сандардың КҚБ құру үшін n2 конъюкторлар және n2 бірразрядты сумматорлар керек.
6.2.2 Жедел көбейту сызбалары.
Модифицирленген алгоритм бойынша көбейту процесін қарастыралық. Бұнда көбейту бірден екі разрядқа артады. Жеке көбейткіштердің қосындысын азайту функциясы көбейту уақытын едәуір қысқартады. Осыған төмендегі талдауларға негізделген алгоритм алып келеді.
Мына көбейтіндіні есептеу керек болсын
. (6.1)
Тікелей (6.1) қатынасын қайта көбейту мына түрдегі жеке көбейтулерді орындаумен тікелей байланысты
Abi2i (i = 0...n - 1). (6.2)
Мұндай көбейтулер саны n көбейткішінің санына тең.
Мына қатынас көмегімен (6.1) өрнегінің түрін өзгертуге болады
. (6.3)
Бұл қатынас жеке көбейткіштер қосындысындағы дәрежелердің тізбектілігін сиретуге мүмкіндік тудырады. Мысалы, 6.4 суретте көрсетілгендей жұп дәрежелерді шығарып тастауға болады.
6.4 сурет – Жұп дәрежелерді шығарып тастау
Жұп (тақ) дәрежелерді шығарып тастау қалған жеке көбейтінділердің мәнін ғана өзгертіп қоймай , сонымен қатар олардың санын жуық шамамен екі есеге азайтып, көбейту нәтижесін тездетеді. (6.3) формуласы бойынша разрядтық торды кеңейту үшін (6.1) өрнегіндегі В көбейткіші үшін b222,bo2o,b-22-2 жұп дәрежелі мүшелерді «көршілерге таратады».
Осыдан соң кез-келген i-ші разряд үшін мына түрге келтіріледі
. (6.4)
Егер (6.1) және (6.4) өрнектерін салыстырсақ, онда жеке көбейтінділер екі есе азайды. Осы алгоритмді қолданған кезде бірден екі разрядқа көбейту туралы (i жұп разрядтан бастап коэффициенттері солдан i+1 және оңнан i-1 ).
(6.4) барлық мүмкін bi+1, bi, bi-1 үшін қолданып, жеке көбейтінділер үшін 6.2 кестесін құруға болады.
6.2 кесте
bi+1
|
bi
|
bi-1
|
Жақша мәні
|
Ri/2i
|
Алу операциясы Ri/2i
|
0
|
0
|
0
|
0
|
0
|
А нөлмен ауыстыру
|
0
|
0
|
1
|
1
|
А
|
А көшіру
|
0
|
1
|
0
|
1
|
А
|
А көшіру
|
0
|
1
|
1
|
2
|
2А
|
А солға жылжыту
|
1
|
0
|
0
|
-2
|
-2А
|
А солға жылжыту және А қос. кодқа ауыстыру
|
1
|
0
|
1
|
-1
|
-А
|
А қос. кодқа ауыстыру
|
1
|
1
|
0
|
-1
|
-А
|
А қос. кодқа ауыстыру
|
1
|
1
|
1
|
0
|
0
|
А нөлмен ауыстыру
|
Мысал.
1010-ды 0111-ге көбейту керек болсын, яғни 10∙7 = 70. Жеке көбейтінділерді сиреткен кезде тек тақтарын ғана қалдырамыз (6.4 суретті қара).
Енді (6.4) формуласы бойынша мынаны аламыз .
Алынған өрнектен көрініп тұрғандай В көбейткішінің разрядтық торын солдан 1 разрядқа және оңнан 2 разрядқа кеңейту керек, яғни
В = b4b3b2b1bob-1b-2 = 0011100.
Бірінші жеке көбейтіндіге bob-1b-2 = 100 үштігі сәйкес келеді. 6.2 кестеден осы үштікке мына жеке көбейтінді сәйкес екенін аламыз
R-1 = -2А∙2-1 = -А,
оны алу үшін қосымша А кодқа көшіру керек. А шамасының өзі разрядтық көбейту тор шегінде 0001010 сияқты болып жазылуы керек, оның кері коды 1110101 және қосымша коды 1110110 болады.
Екінші жеке көбейтіндіге b2b1bo = 111 үштігі сәйкес келеді, осыдан екінші жеке көбейтінді R1 = 0 тең болады ( 6.2 кестені қара).
Үшінші жеке көбейтіндіге b4b3b2 = 001 үштігі сәйкес келеді, осыдан оның түрі R3 = А∙23 = 1010000 ( А-ны 3 разрядқа солға жылжыту ) келтіріледі.
Берілген көбейту нәтижесін алу үшін жеке көбейтінділерді қосу қажет болады:
1110110
1010000
-----------
1000110 = 26 + 22 + 21 = 64 + 4 + 2 =70.
6.5 суретте тез көбейту алгоритмін іске асыру сызбасы көрсетілген
6.5 сурет – Тез көбейту сызбасы
А көбейгіші (-2А, -А, 2А), сызбалық тарату қажет етпейтін А-ның өзінен және нөлден басқа жеке көбейтінділердің барлық мүмкін варианттарын дайындайтын бірнеше түзеткіштер қатарына келіп түседі. В көбейгіші ЛТ логикалық түрлендіргіш ретінде түсіп, разрядтар үштіктерін сараптайды, оларды кодтайды және оларды мультиплексорларға (MUX) жеке көбейтінділердің сол немесе басқа варианттарының сигналдары түрінде береді
( 6.2 кестесін қара). Қорытынды нәтиже олардың разрядтық тордағы өзара ығысуын ескере отырып, жеке көбейтінділерді қосу арқылы алынады. Көбейткіш өлшемділігі «4х4».
Достарыңызбен бөлісу: |