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 PDF

Info

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
Application number
CS812378A
Other languages
English (en)
Inventor
Jan Obdrzalek
Original Assignee
Jan Obdrzalek
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jan Obdrzalek filed Critical Jan Obdrzalek
Priority to CS812378A priority Critical patent/CS214004B1/cs
Publication of CS214004B1 publication Critical patent/CS214004B1/cs

Links

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)

  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.
CS812378A 1978-12-07 1978-12-07 Digitální obvod k násobení užitím druhých mocnin CS214004B1 (cs)

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)

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