CS214004B1 - Digitální obvod k násobení užitím druhých mocnin - Google Patents
Digitální obvod k násobení užitím druhých mocnin Download PDFInfo
- Publication number
- CS214004B1 CS214004B1 CS812378A CS812378A CS214004B1 CS 214004 B1 CS214004 B1 CS 214004B1 CS 812378 A CS812378 A CS 812378A CS 812378 A CS812378 A CS 812378A CS 214004 B1 CS214004 B1 CS 214004B1
- Authority
- CS
- Czechoslovakia
- Prior art keywords
- block
- bits
- circuit
- multiplication
- memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Description
Vynález se týká digitálního obvodu k násobení celých čísel užitím druhých mocnin.. Násobení celých čísel je natolik často užívanou operací na počítačích, že příslušné instrukce bývá součástí pokud ne přímo základního souboru instrukcí, tedy již prvního rozšíření instrukčních kódů. Délka slova u starších mikroprocesorů je N = 4 bity, u moderních N = 8 bitů a u všech minipočítačů a většiny počítačů má celé číslo se znaménkem délku N = 16 bitů. Při nejužívanějším zobrazení záporných čísel užitím dvojkového doplňku, tedy (-A) vyjádřeno jako 2K-A; umožňuje délka N = 16 bitů zobrazit celá čísla v mezích -32 768 až 32 767. Zatímco sčítání je běžně realizováno kombinačním obvodem v jediném taktu činnosti stroje, bývá násobení jako složitější operace realizováno většinou sériově v několika taktech.
Dosavadní stav techniky násobení v počítačích je charakterizován hlavně sériovým zpracováním argumentů, tj. posuvy operandu A a jeho přičítáním k tvořenému výsledku, je-li na odpovídajícím bitu čísla B hodnota I. Posuv a přičítání je nutno v principu provést tolikrát, kolik bitů má číslo B, tedy většinou 16x, Jsou možné menší, nikoli však principiální úspory. Perspektivy prudkého rozvoje velkokapacitních pamětí realizovaných integrovanými obvody s vysokou hustotou integrace vedly různé autory k přímočarému paralelnímu řešení pomocí paměti, obsahující předem všechny možné součiny. Výsledek se pak dostane zadáním obou argumentů jako adres. Rychlost takového násobení je vysoká a je dána prakticky jen čtecí dobou z paměti, ovšem kapacita P takové paměti musí být obrovská, pokud má celé číslo N bitů, musí mít pamět
214 004
214 004 kapacitu P(H) = N.22lf+* bitů, organizovaných jako 221* χ 2H. Pro R = 8, tj. mikroprocesory, je P(8) ® 1 048 576, pro minipočítače nejzajímavější počet bitů N = 16 je P(I6) více než 137 miliard. Tyto požadavky lzerůzným způsobem snižovat. Van Holten, Microelectronica Ro. 1, 1978, str. 25 až 26, přináší řešení, snižující potřebu paměti o více než polovinu užitím symetrie vůči záměně operandů a identity OxK = K pro libovolné K. Pokud by ae navíc organizoval výpočet tak, že by byly násobeny jen absolutní hodnoty a znaménko výsledku bylo vytvořeno paralelně kombinační cestou místo úschovy v paměti, klesl by požadavek dále na čtvrtinu, tedy P(8) » 113 792, resp. P(16) = 16 105 635 840 bitů. I tak zůstávají zřejmě požadavky na paměť neúměrně vysoké.
Podstata vynálezu spočívá v digitálním obvodu k násobení užitím druhých mocnin s paralelním vstupem dat, který se skládá z bloku součtu, na který je připojen mocninový blok, a bloku rozdílu, na který je připojen druhý mocninový blok. Výstupy obou mocninových bloků jsou přivedeny do bloku odečítání, jehož výstup je výstupem žádaného součinu.
Podstata vynálezu je v dalším textu blíže popsána s odkazem na připojené výkresy, kde obr. 1 značí blokové schéma digitálního obvodu k násobení užitím druhých mocnin podle vynálezu, obr. 2 až 6 jsou příklady provedení a zapojení jednotlivých součástí bloků digitálního obvodu podle vynélezu.
Digitální obvod k násobení užitím druhých mocnin se skládá z bloku 2 součtu, na který je napojen mocninový blok 4, a bloku 3_rozdílu, na který je-napojen druhý mocninový blok_5, přičemž výstupy obou mocninových bloků 4, 5 jsou napojeny na blok_£ odečítání, jehož výstup je výstupem žádaného součinu.
Funkce obvodu podle vynálezu je zřejmá z obr. 1. Součin dvou čísel AJB je upraven podle vzorce
A . B » | A + B,2 / 4 -i A - Bf2 / 4.
Číala A, B jsou zadávána paralelně do bloků_2 a 3. Blok 2 součtu vytváří absolutní hodnotu součtu a přivádí ji jako argument; tj. jako adresu, do mocninového bloku 4, obsahujícího trvalou paměť čtvrtin druhých mocnin. Podobně blok 3 rozdílu vytváří absolutní hodnotu rozdílu a přivádí ji do mocninového bloku_5, obsahujícího trvalou paměť čtvrtin druhých mocnin. Výsledné hodnoty z mocninových bloků 4_a_5 jdou do bloku 6^ rozdílu. Výstup z tohoto bloku je výstupem z celého obvodu, neboť poskytuje právě požadovaný součin AB. Trvalé paměti v mocninových blocích 4 a 5 mohou být stejné, což je výhodné z hlediska výroby. Mění-li se čísla A, B v mezích od -2**“^ a© 2^“·^ -1, mění ae veličina |A + B| od 0 do 2^, zatímco |A - Bl se mění od m N da 2 - 1. Vzhledem k tomu, že argument 2 vzniká jediným možným způsobem, a to při násobení (-2 ) (-2 ), lze snadno právě tento výsledek 2 “ generovat přímo, a tím omezit argumenty
Μ—1 obou mocninových bloků 4, 5 na stejný obor 0 až 2 , popsatelný pomocí N bitů.
Vynález je blíže popsán na podkladě připojených výkresů, obr. 2 až 6, na kterých je znázorněn příklad provedení a zapojení jednotlivých součástí bloků 2 až 6, jejichž celkové zapojení je na obr. 1.
Všechny na obr. 2 až 6 znázorněné obvody mohou být sestaveny ze standardních integrovaných obvodů TTL, tj. logiky tranzistor-tranzistor. Příslušný typ obvodu na obrázcích je zjednodušeně označen jen dvojčíslím či trojčíslím s apostrofem, např. '04 značí typ 7 404.
214 004
Předpokládá se, Se záporné číslo je zobrazeno svým dvojkovým doplňkem. Dvě zobrazení stejného čísla, lišící se jen počtem bitů, jsou označena týmž písmenem a odlišena čárkou, např. A a A.* Invertování bitů je označeno pruhem nad písmenem, např. B.
Vnitřní sestava a zapojení bloku 2 součtu je na obr. 2. Skládá se ze dvou sumátorů *283, mezi nimiž je vložen obvod *86 nonekvivalence. Do bloku 2 vložená čísla A, Β o N bitech se rozšíří o 1 bit na A,* B*a sečtou v prvním sumátoru *283» Bity 1 až N součtu jsou přivedeny jako čísle c”na vstup obvodu 86 nonekvivalence a jsou jím invertovány či neinvertovány podle toho, zda nejvyšší bit součtu C byl roven I či 0. Vystupující signál D*je doplněn o Jeden bit a zaveden jako číslo D do dalšího sumátoru *283, který k D přičte 0 nebo 1 podle toho, zda nejvyšší bit u C je roven 0 nebo I. Na výstupu tohoto sumátoru je výsledek E =|A + B^,
Vnitřní sestava a zapojení blokuj^ rozdílu je na obr. 3. Skládá se ze sumátoru 283, na jehož jednom vstupu a jednom výstupu je invertor *04 a obvodu 86 nonekvivalence. Do bloku rozdílu vložená čísla A a B se rozšíří o jeden bit na A*a B*a číslo B*je po bitech invertováno v invertoru *04 na B*a přivedeno spolu s A*na vstup sumátoru *283, na jehož přenosový vstup Cl je přiveden v invertoru *04 invertovaný nejvyšší bit výsledného součtu G. Bity 1 až R součtu G jsou přivedeny jako číslo G*na vstup obvodu *86 nonekvivelence a jsou jím invertovány či neinvertovény podle toho, zda nejvyšší bit součtu G byl roven I či 0. Na výstupu tohoto obvodu je výsledek H =Ja - B(.
Vnitřní sestava a zapojení mocninového bloku 4 je na obr. 4. Skládá se z trvalé paměti *188. Bity čísla E jsou přivedeny jako E*na adresový vstup trvalé paměti *188, nejvyšší bit E je vyveden přímo jako nejvyšší bit výsledku F. Pamět obsahuje na každé adrese čtverec čísla adresy lomený čtyřmi a zaokrouhlený dolu na celé číslo. Výstup F*z paměti *188 dává po doplnění nejvyšším bitem výsledek F.
Vnitřní sestava a zapojení mocninového blokuj^ je na obr. 5· Funkce je stejná jako u bloku 4 s tím zjednodušením, že na adresní vstup trvalé paměti *188 je zavedeno celé Číslo H z bloku rozdílu a výstup této paměti dává přímo výsledek J.
Vnitřní sestava a zapojení bloku 6 odčítání je na obr. 6. Skládá se ze sumátoru *283, který je na jednom vstupu opatřen invertorem *04. Číslo J přivedené z mocninového bloku 5 je invertováno invertorem *04, doplněno nejvyššlmi bity rovnými I a přivedeno jako J*do sumátoru *283-spolu s číslem F z mocninového bloku 4, doplněného nejvyšším bitem rovným 0 na čísle F.*
Na vstup Cl přenosu z nižšího řádu je přivedena logická hodnota I, takže výsledek na výstupu sumátoru 283 je E = F*+ j'+ 1. Přitom E = AB podle obr. 1 a představuje tedy konečný výsledek.
Výhodou vynálezu proti sériovému zpracování dat je podstatně vyšší rychlost výpočtu, při použití mimo počítač pak skutečnost, že jde o kombinační digitální obvod, nevyžadující synchronizační signály. Výhodou vynálezu proti dosavadním návrhům na paralelní zpracování dat užitím tabulky součinů je mnohem menší nárok na kapacitu paměti, která je zde jediným limitujícím faktorem. Násobící obvod podle vynálezu pro K 16 bitů vyžaduje pamět stejného rozsahu jako pro K = 9 bitů podle výše citovaného článku* Taková pamět je na hranicích současných možností sériové výroby. Obvod podle vynálezu pro H — 8 bitů lze bez obtíží sestavit z existující součástkové základny, zatímco obvod pro tytéž veličiny podle citovaného článku vyžaduje nestandard· ní, speciálně navržený pamětový obvod a kapacitou více než 30x větší.
214 004
Vynález je použitelný při konstrukci především počítačů a procesorů, v nichž je třeba násobit celá čísla co nejrychleji. Jako kombinační obvod se dále může uplatnit ve vdech ostatních digitálních zařízeních, která potřebují generovat součin, např. digitální měřicí přístroje, generátory funkcí, speciální převodníky apod.
Claims (1)
- Digitální obvod k násobení užitím druhých mocnin, vyznačený tím, že se skládá z bloku (2) součtu, na který je napojen mocninový blok (4) a bloku (3) rozdílu, na který je napojen druhý mocninový blok (5), přičemž výstupy obou mocninových bloků (4, 5) jsou napojeny na blok (6) odečítání, jehož výstup je výstupem žádaného součinu.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CS812378A CS214004B1 (cs) | 1978-12-07 | 1978-12-07 | Digitální obvod k násobení užitím druhých mocnin |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CS812378A CS214004B1 (cs) | 1978-12-07 | 1978-12-07 | Digitální obvod k násobení užitím druhých mocnin |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CS214004B1 true CS214004B1 (cs) | 1982-04-09 |
Family
ID=5431399
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CS812378A CS214004B1 (cs) | 1978-12-07 | 1978-12-07 | Digitální obvod k násobení užitím druhých mocnin |
Country Status (1)
| Country | Link |
|---|---|
| CS (1) | CS214004B1 (cs) |
-
1978
- 1978-12-07 CS CS812378A patent/CS214004B1/cs unknown
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US3961750A (en) | Expandable parallel binary shifter/rotator | |
| US6728743B2 (en) | Modulo remainder generator | |
| US4296469A (en) | Execution unit for data processor using segmented bus structure | |
| TW428129B (en) | Data path clock skew management in a dynamic power management environment | |
| GB1470147A (en) | Circuit module incorporating a logic array | |
| JPS64811A (en) | Pseudo random binary sequence generator | |
| US4276607A (en) | Multiplier circuit which detects and skips over trailing zeros | |
| GB1129660A (en) | Data processors | |
| CH585436A5 (cs) | ||
| US5625582A (en) | Apparatus and method for optimizing address calculations | |
| CS214004B1 (cs) | Digitální obvod k násobení užitím druhých mocnin | |
| KR102832857B1 (ko) | 세분화된 희소 정수 및 부동 소수점 연산들을 위한 프로세서 | |
| US5115408A (en) | High speed multiplier | |
| JPS648717A (en) | Pseudo noise series code generating circuit | |
| KR910008566A (ko) | 동기 벡터 프로세서용 제2 인접 통신 네트워크, 시스템 및 방법 | |
| US3056550A (en) | Variable-exponent computers | |
| KR0140454B1 (ko) | 버스트 억세스에서 고속으로 어드레스를 증가시키기 위한 반도체 메모리 디바이스 | |
| KR970705066A (ko) | 비산술 원형 버퍼 셀 이용도 스테이터스 인디케이터 회로(Non-Arithmetical Circular Buffer Cell Availability Status Indicator Circuit) | |
| KR900702450A (ko) | 미니컴퓨터용 병렬 스트링 프로세서 및 방법 | |
| Burg | Multipole expansions for stationary fields in general relativity | |
| US3805042A (en) | Multiplication of a binary-coded number having an even radix with a factor equal to half the radix | |
| US20080177817A1 (en) | Inversion of alternate instruction and/or data bits in a computer | |
| Gaalswyk et al. | A Low-Power Recurrence-Based Radix 4 Divider Using Signed-Digit Addition | |
| KR950006351B1 (ko) | 바이너리 증가회로 | |
| Jaiswal et al. | Design of quadruple precision multiplier architectures with SIMD single and double precision support |