CS209707B1 - Zapojení aritmetických obvodů pro dvojkové násobení a dělení - Google Patents
Zapojení aritmetických obvodů pro dvojkové násobení a dělení Download PDFInfo
- Publication number
- CS209707B1 CS209707B1 CS760579A CS760579A CS209707B1 CS 209707 B1 CS209707 B1 CS 209707B1 CS 760579 A CS760579 A CS 760579A CS 760579 A CS760579 A CS 760579A CS 209707 B1 CS209707 B1 CS 209707B1
- Authority
- CS
- Czechoslovakia
- Prior art keywords
- input
- output
- shift register
- circuit
- memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims description 50
- 230000006870 function Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000006073 displacement reaction Methods 0.000 claims 1
- 238000011156 evaluation Methods 0.000 claims 1
- AJGJROVYVKUHID-UHFFFAOYSA-N OPNP Chemical compound OPNP AJGJROVYVKUHID-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Description
Vyn-ález řeší zapojení aritmetických obvodů pro dvojkové násobení a dělení.
Dosavadní zapojení aritmetíckých obvodů pro násobení a dělení sestávají zpravidla ze střadače, který má možnost posuvu nastřádaného čísla. Jsou známy algoritmy, které zmenšují počet akcí střadače při násobení a dělení tím, že se skupiny souvislých jedniček a nul v násobitelí nebo zbytku - v dvojkové soustavě - ošetří jen pomocí dvou akcí střadače, tj. odečtení a přičtení a delšího posuvu.
Dosud známá zapojení mají poměrně pomalý průběh operací násobení a dělení, takže je nutné zabudovávat do aritmetické jednotky nákladné kombinační posouvací obvody.
Uvedené nevýhody odstraňuje zapojení aritmetických obvodů pro dvojkové násobení a dělení, které sestává z aritmetického obvodu, pracovního posouvacího registru, pamětí operandu, výstupního registru aritmetického obvodu, ovladače aritmetického obvodu, ovladače a čítače posuvů v pracovním registru, obvodu znaménka výsledku operace v aritmetickém obvodu, obvodu přenosu, prvního až čtvrtého obvodu nonekvivalence, paměti funkce, paměti násobivého přenosu, obvodu výběru sekce pracovního registru a obvodu výběru sekce paměti operandu, podle vynálezu, jehož podstatou je, že na první vstup aritmetického obvodu je připojen vstup z obvodu výběru sekce pracovního registru, na jehož vstup je připojen datový výstup z pracovního posouvacího registru, přičemž na druhý vstup aritmetického obvodu je připojen výstup z obvodu výběru sekce pamětí operandu.
Na jeho vstup je připojen datový výstup pamětí operandu, přičemž datový výstup aritmetické· ho obvodu je připojen na vstup výstupního registru aritmetického obvodu, jehož výstup je propojen s datovým vstupem pracovního posouvacího registru, jehož výstupy z nejvyšších řádů jsou připojeny na oba vstupy druhého obvodu nonekvivalence, jehož výstup je připojen na prvý vstup ovládače aritmetického obvodu a na druhý vstup ovladače a čítače posuvů v pracovním posouvacím registru, zatímco přenosový výstup aritmetického obvodu je připojen na vstup obvodu přenosu, jehož výstup je připojen na druhý vstup ovladače aritmetického obvodu. Jeho výstup je spojen s ovládacím vstupem aritmetického obvodu as druhým vstupem paměti funkce, přičemž výstup z řádově nejnižšího bitu pracovního posouvacího registru je připojen na druhý vstup prvého obvodu nonekvivalence a na druhý vstup paměti násobícího přenosu a výstup z druhého řádově nejnižšího bitu pracovního posouvacího registru je připojen na první vstup paměti násobícího přenosu, na jehož třetí vstup je připojen výstup ovladače a čítače posuvů v pracovním posouvacím registru, při čemž výstup paměti násobícího přenosu je spojen s prvním vstupem prvního obvodu nonekvivalence a s druhým vstupem ovladače aritmetického obvodu, jehož třetí vstup je spojen s výstupem třetího obvodu nonekvivalence, přičemž výstup z prvního obvodu nonekvivalence je připojen na první vstup ovladače a čítače posuvů v pracovním posouvacím registru, jehož výstup je spojen s ovládacím vstupem pracovního posouvacího registru a na první vstup paměti funkce. Vstup pracovního posouvacího registru určený pro doplňování zleva je připojen na výstup obvodu znaménka výsledku operace v aritmetickém obvodu, na jehož vstup je připojen znaménkový výstup aritmetického obvodu, podobně vstup pracovního posouvacího registru určený pro doplňování zprava je připojen na výstup Čtvrtého obvodu nonekvivalence, na jehož první vstup je připojen výstup paměti funkce a na druhý vstup je připojen výstup třetího obvodu nonekvivalence, jehož první vstup je spojen s výstupem z řádově nejvyššího bitu pracovního posouvacího registru, zatímco druhý vstup je spojen s výstupem z řádově nejvyššího bit-u paměti operandu, přičemž pracovní posouvací registr má první vstup vstupních dat a paměť operandu má druhý vstup vstupních dat, dále pracovní posouvací registr má výstup výsledku, přičemž ovládač aritmetického obvodu má první vstup pro informaci o typu operace a obdobně ovládač a čítač posuvů v pracovním posouvacím registru má druhý vstup pro informaci o typu operace, přičemž oba vstupy jsou spojeny se vstupním vedením pro informací o typu operace,
Proti známým zapojením se tímto způsobem podstatně zrychlí průběh operací násobení a dělení, aniž by bylo nutné zabudovávat do aritmetické jednotky nákladné kombinační posouvací obvody. Zrychlení se dosahuje tím, že pracovní registr aritmetické jednotky je vytvořen jako posouvací registr připadne se zkrácenou periodou posouvacích impulsů proti periodě hodinových impulsů při aritmetických operacích. Řadič je doplněn tak, aby bylo možné v jedné mikroinstrukci o proměnné délce posouvat o proměnný počet bitů , v závislosti na tvaru násobitele nebo zbytku. Zrychlení operací násobení a dělení je zvláště významné při menších šířkách toku dat v aritmetických obvodech, než je šířka operandů, kdy například přičtení násobence trvá dva nebo více cyklů, neboť se zapojením podle vynálezu zmenšuje podstatně počet akcí ári trne t ický ch obvodů.
Zapojení podle vynálezu pracuje symetricky pro kladná i záporná čísla vyjádřená v doplňku a vhodným způsobem využívá kombinace aritmetických obvodů s poměrně úzkým tokem dat s pracovním registrem, který má možnost posuvů a několikanásobně větší počet bitů, tj. šířku dat, než aritmetické obvody. Zapojení podle vynálezu umožňuje jednoduchým a levným způsobem aplikovat algoritmus násobení a dělení, kdy při násobení se aritmetická akce provádí jen na rozhraní skupiny nul a jedníček v násobíteli, nebo při osamělé je.dníčce uvnitř skupiny nul a při osamělé nule uvnitř skupiny jedniček v násobiteli. Při dělení se provádí aritmetická akce pouze na rozhraní nul a jedniček zbytku .
Proti známým obvodům pro násobení je řešení podle vynálezu výhodnější při zpracování násobitele, v kterém se vyskytuje osamělá jednička /......0 1 0....../ nebo osamělá nula /...1 0 1.../. Tyto případy se zpracovávají jen pomocí jedné aritmetické akce na rozdíl od dvou akcí v obvyklých řešeních.
Zapojení podle vynálezu je schematicky znázorněno na připojeném výkrese. Sestává z aritmetického obvodu _1_, pracovního posouvacího registru paměti _3 operandu, výstupního registru £ aritmetického obvodu, ovladače 5 aritmetického obvodu, ovládače a Čítače _6 posuvů v pracovním registru, obvodu 7_ znaménka výsledku operace v aritmetickém obvodu, obvodu přenosu, prvního až čtvrtého obvodu j?, 10, 1 1 , 12 nonekvivalence, pamětí 13 funkce, paměti 14 násobícího přenosu, obvodu .15 výběru sekce pracovního registru a obvodu 16 výběru sekce paměti operandu. Na prvý vstup 110 aritmetického obvodu j_ je připojen výstup 152 z obvodu 15 výběru je připojen výstup 4 5 2 z obvodu 15 výběru sekce pracovního regi.3tru, na jehož vstup 151 je přiveden datový výstup 25 z pracovního posouvacího registru 2. Na druhý vstup 120 aritmetického obvodu 1 je připojen výstup 162 z obvodu 16 výběru sekce paměti operandu, na jehož vstup 161 je přiveden datový výstup 32 pamětí 2 operandu. Datový výstup 140 aritraetického~obvodu 1 je přiveden na vstup 41 výstupního registru 4, jf»hož výstup 42 je přiveden na datový vstup 22* pracovního posouvacího registru i.
Výstupy 26 a 27 z řádově nejvyšších míst pracovního posouvacího registru 2 jsou přivedeny na vstupy 101 a 102 čtvrtého obvodu 10 nonekvivalence, jehož výstup 103 je přiveden jednak na vstup 51 ovladače 5_ aritmetického obvodu _£, jednak na vstup 51 ovladače 5_ aritmetického obvodu jednak na druhý vstup 61 ovladače a čítače posuvů v pracovním registru. Přenosový vystup 150 aritmetického obvodu 1 je připojen na vstup 81 obvodu 8. přenosu, jehož výstup 82 je přiveden na druhý vstup 54 ovladače 5_ aritmetického obvodu _£, jehož výstup 55 je jednak spojen s ovládacím vstupem 130, řídicím sčítání a odčítání v aritmetickém obvodu jednak se vstupem 132, kterým je při dělení nastaven stav jedna” paměti 13 funkce vyjadřující, že proběhla činnost aritmetického obvodu 1. Výstup 29 z řádově nejnižšího bitu pracovního posouvacího registru £ je připojen na vstup 92 prvního obvodu £ nonekvivalence a na vstup 142 paměti 14 násobícího přenosu.
Výstup 28 z bitu o jeden řád vyššího pracovního posouvacího registru 2 je připojen na vstup 141 paměti 14 násobícího přenosu, na jehož další vstup 143 je připojen výstup 64 ovladače a čítače 6 posuvů v pracovním registru, přičemž podmínky nastavení paměti 14 násobícího přenosu jsou uvedeny v následující tabulce:
| 28 | 29 | OPNP | 64 | OBSAH c CITACE POSUVU = V | IPNP |
| 0 | 0 | 0 | 0 | ||
| 1 | 0 | 0 | |||
| 0 | 1 | 1 | 0 | 0 | |
| 1 | 0 | 1 | 0 | . 1 | |
| 1 | 0 | 1 | 1 | ||
| 0 | 0 | 1 | 0 |
kde:
PNP s paměť násobícího přenosu
IPNP = vstup PNP
OPNP = stav PNP
Výstup 144 paměti 14 násobícího přenosu je spojen jednak se vstupem 91 prvního obvodu 9_ nonekvivalence, jednak se vstupem 5 2 ovladače £ aritmetického obvodu J_. Výstup 113 z třetího obvodu 11 nonekvivalence je spojen se vstupem 5 3 ovladače 5_ aritmetického obvodu Výstup 93 z prvního obvodu 9. nonekvivalence je připojen na první vstup 61 ovladače a čítače 6 posuvů v pracovním registru, jehož výstup 63 je spojen jednak s ovládacím vstupem 21 řídicím posuvy v pracovním posouvacím registru 2, jednak se vstupem 131, kterým je nastaven při dělení stav nula v paměti 13 funkce, vyjadřující byl posuv. Doplňování zleva při násobení’· je provedeno na vstupu 23 pracovního posou vacího registru 2 2 výstupu 7 2 obvodu T_ znaménka výsledku operace v aritmetickém obvodu 1, na jehož vstup 71 je připojen znaménkový výstup 160 aritmetického obvodu 2* Doplňování zprava při dělení je provedeno na vstup 24 pracovního posouvacího registru 2_ z výstupu 123 čtvrtého obvodu 12 nonekviva1ence, na jehož první vstup 121 je připojen výstup'133 paměti 13 funkce a na druhý vstup 122 je připoj en výstup 113 třetího obvodu 11 nonekvivalence, jehož první vstup 111 je spojen s výstupem 25 pracovního posouvacího registru 2» zatímco druhý vstup 112 je spojen s výstupem 33 z řádově nejvyššího bitu paměti 2 operandu. Vstupní data jsou přivedena na vstup 200 pracovního posouvacího registru 2 a na vstup 31 paměti 2 °Pe randu. Výsledek je určen na výstupu 210 pracovního posouvacího registru 2· Informace o typu operace násobení, dělení je přivedena vstupním vedením 01 na vstup 50 ovladače 5_ aritmetického obvodu £ a na vstup 60 ovladače a čítače 2 posuvů v pracovním registru.
Násobení probíhá takto:
Na počátku násobení je násobenec umístěn v paměti 3 operandu, násobítel v řádově dolní polovině pracovního posouvacího registru 2 a řádově horní polovina pracovního posouvacího registru obsahuje nuly. Čítač posuvů v ovladače 6_ posuvu v pracovním registru je nastaven na řádový rozsah zpracovávané informace, pamět 14 násobícího přenosu je vynulována. Posuv doprava se provádí v pracovním posouvacím registru 2» pokud je splena podmínka nonekvivalence výstupu paměti 14 násobícího přenosu a výstupu 2 8 z řádového bídu 2^ pracovního posouvacího registru 2 zjištěná prvním obvodem 2 no” nekvívalence při současné nenulovosti čítače posuvů. Zleva je doplňována informace z obvodu 2 znaménka výsledku operace v aritmetickém obvodu 2· Pokud není splněna podmínka pro posuv, provádí se v aritmetickém obvodu 1 přičtení násobence, tj. obsah pamětí 2 operandu, k řádově horní polovině násobitele, tj. obsah řádově horní poloviny pracovního posouvacího registru,2> na počátku násobení nuly, jestliže je výstup pamětí 14 násobícího přenosu roven nule, nebo odečtení násobence, tj. obsah paměti 3 operandu, od řádově horní poloviny násobitele, jestliže výstup paměti 14 násobícího přenosu je roven jedničce,
Claims (1)
- PŘEDMĚTZapojení aritmetických obvodů pro dvojkové násobení a dělení sestávající z aritmetického obvodu, pracovního posouvacího registru, paměti operandu, výstupního registru aritmetického obvodu, ovladače aritmetického obvodu, ovladače a čítače posuvů v pracovním posouvacím registru, obvodu znaménka výsledku operace v aritmetickém obvodu, obvodu přenosu, prvního aŽ čtvrtého obvodu nonekvivalence, paměti funkce, pamětí násobícího přenosu, obvodu výběru sekce pracovního posouvacího registru a obvodu výběru sekce pamětí operandu, vyznačené tím, že na první vstup /110/ aritmetického obvodu /1/ je připojen . výstup /152/ z obvodu /15/ výběru sekce pracovního posouvacího registru /2/, na jehož vstup /151/ je připojen datový výstup /25/ z pracovního posouvacího registru /2/, přičemž na druhý vstup /120/ aritmetického obvodu /1/ je připojen výstup /162/ z obvodu /16/ výběru sekce paměti operandu, na jehož vstup /161/ j.e připojen datový výstup /32/ paměti /3/ operandu, přičemž datový výstup /140/ aritmetickéhoPo činnosti aritmetického obvodu 1 následuje posuv o jedno místo doprava, nastavení paměti 14 násobícího přenosu podle výše uvedené tabulky. Algoritmus pokračuje dále hodnocením podmínek pro posuv doprava - viz výše. Konec násobení je určen nulovým stavem čítače posuvů. Součin je uložen v celém rozsahu pracovního posouvacího registru 2.Dělení probíhá takto:Na počátku dělení je dělitel v normalizovaném tvaru umístěn v paměti 2 operandu, dělenec v celém rozsahu pracovního posouvacího registru 2> přičemž jeho absolutní velikost musí být pouze taková, aby dva řádově nejvyšší bity 26 a 27 pracovního posouvacího registru 2 byly ekvivalentní. V opačném případě by došlo k přetečení výsledku. Čítač posuvů v ovladači 2 posuvů je nastaven na řádový rozsah zpracovávané informace, nejvýše však na hodnotu polovičního rozsahu pracovního posouvacího registru 2. Posuv doleva probíhá, pokud jsou oba řádově nejvysší bity 26 a 2 7 pracovního posouvacího registru 2 ekvivalentní, což zjištuje druhý obvod 2θ nonekvivalence. Doplňování číslice zprava určují třetí a čtvrtý obvod 21 a 12 nonekvivalence a pamět 13 funkce, jejíž hodnota po posuvu je rovna nule, po činnosti aritmetického obvodu 1 rovna jedničce.V případě nonekvivalence dvou řádově nejvyšších bitů 26 a 27 pracovního posouvacího registru 2 probíhá sečtení - při nonekvivalenci řádově nejvyšších bitů z pracovního posouvacího registru 2 a paměti 3 operandu - dělitele s okamžitým zbytkem, nebo odečtení - při ekvivalenci řádově nejvyšších bitů z pracovního posouvacího registru 2 a paměti 2 operandu - dělitele od okamžitého zbytku. Konec dělení, je určen dosažením nulového stavu čítače posuvů v ovladači a čítači 2 posuvů v pracovním registru. Výsledek dělení je umístěn v celém rozsahu pracovního posouvacího registru 2· Přitom v řádově vyšší části pracovního posouvacího registru 2_ je uložen zbytek, v řádově nižší části pracovního posouvacího registru 2 podíl. Jeden bit na rozhraní je bezvýznamný.Zapojení podle vynálezu lze s výhodou použiti v aritmetických jednotkách číslicových počítačů.VYNÁLEZU obvodu /1/ je připojen na vstup /41/ výstupního registru /4/ aritmetického obvodu /1/, jehož výstup /42/ je propojen s datovým vstupem 22/ pracovního posouvacího registru /2/, jehož výstupy /26, 27/ z nejvyšších řádů jsou připojeny na oba vstupy /101,102/ druhého obvodu /10/ nonekvivalence, jehož výstup /103/ je připojen na prvý vstup /51/ ovladače /5/ aritmetického obvodu /1/ a na druhý vstup /62/ ovladače a čítače /6/ posuvů v pracovním posouvacím registru /2/, zatímco přenosový výstup /150/ aritmetického obvodu /1/ je připojen na vstup /81/ obvodu /8/ přenosu, jehož výstup /82/ je připojen na druhý vstup /54/ ovladače /5/ aritmetického obvodu /1/, jehož výstup /55/ ja spojen s ovládacím vstupem /130/ aritmetického obvodu /1/ a s druhým vstupem /132/ paměti /13/ funkce, přičemž výstup /29/ z řádově nejnižšího bitu 2θ pracovního posouvacího registru /2/ je připojen na dr-uhý vstup /92/ prvného obvodu /9/ nonekvivalence a na druhý vstup /142/ paměti /1.4/ násobícího přenosu a výstup /28/ z druhého řádově nejnižšího bi209707 tu pracovního posouvacího registru /2/ je připojen na první vstup /141/ paměti /14/ násobícího přenosu, na jehož třetí vstup /143/ je připojen výstup /64/ ovladače a čítače /6/ posuvu v pracovním registru, přičemž výstup /144/ paměti /14/ násobícího přenosu je spojen s prvním vstupem /91/ prvního obvodu /9/ nonekvivalence a s druhým vstupem /52/ ovladače /5/ aritmetického obvodu /1/, jehož třetí vstup /53/ je spojen s výstupem /113/ třetího obvodu /11/ nonekvívalence, přičemž výstup /83/ z prvního obvodu /9/ nonekvivalence je připojen na první vstup /61/ ovladače a Čítače /6/ posuvů v pracovním posouvacím registru, jehož výstup /63/ je spojen s ovládacím vstupem /21/ pracovního posouvacího registru /2/ a na první vstup /131/ pamětí /13/ funkce, přičemž vstup /23/ pracovního posouvacího registru /2/, určený pro doplňování zleva je připojen na výstup /72/ obvodu /7/ znaménka výsledku operace v aritmetickém obvodu /1/, na jehož vstup ΠΜ je připojen znaménkový výstup /160/ aritmetického obvodu /1/, podobně vstup /24/ pracovního posouvacího registru /2/ určený pro doplňování zprava je připojen na výstup /123/ Čtvrtého obvodu /12/ nonekvivalence, na jehož první vstup /121/ je připojen výstup /133/ paměti /13/ funkce na druhý vstup /122/ je při pojen výstup /113/ třetího obvodu /11/ nonekvivalence, jehož první vstup /111/ je spojen s výstupem /26/ z řádově nejvyššího bitu pracovního posouvacího registru /2/, zatímco druhý vstup /112/ je spojen s výstupem /33/ z řádově nejvyššího bitu paměti /3/ operandu, přičemž pracovní posouvací registr /2/ má první vstup /200/ vstupních dat a pamět /3/ operandu má druhý vstup /31/ vstupních dat, dále pracovní posouvací registr /2/ má výstup výsledku, přičemž ovladač /5/ aritmetického obvodu /1/ má první vstup /50/ pro informaci o typu operace a obdobně ovladač a čítač /6/ posuvů v pracovním posouvacím registru /2/ má druhý vstup /60/ pro informaci o typu operace, přičemž oba vstupy /50, 60/ jsou spojeny se vstupním vedením /01/ pro informaci o typu operace .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CS760579A CS209707B1 (cs) | 1979-11-08 | 1979-11-08 | Zapojení aritmetických obvodů pro dvojkové násobení a dělení |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CS760579A CS209707B1 (cs) | 1979-11-08 | 1979-11-08 | Zapojení aritmetických obvodů pro dvojkové násobení a dělení |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CS209707B1 true CS209707B1 (cs) | 1981-12-31 |
Family
ID=5425526
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CS760579A CS209707B1 (cs) | 1979-11-08 | 1979-11-08 | Zapojení aritmetických obvodů pro dvojkové násobení a dělení |
Country Status (1)
| Country | Link |
|---|---|
| CS (1) | CS209707B1 (cs) |
-
1979
- 1979-11-08 CS CS760579A patent/CS209707B1/cs unknown
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US2719670A (en) | Electrical and electronic digital computers | |
| US4488252A (en) | Floating point addition architecture | |
| US4021655A (en) | Oversized data detection hardware for data processors which store data at variable length destinations | |
| US3610906A (en) | Binary multiplication utilizing squaring techniques | |
| KR910000787B1 (ko) | 데이타 처리 가속기 | |
| GB1020940A (en) | Multi-input arithmetic unit | |
| KR960002061A (ko) | 부동소수점수를 위한 산술연산장치 | |
| US4228518A (en) | Microprocessor having multiply/divide circuitry | |
| US3678259A (en) | Asynchronous logic for determining number of leading zeros in a digital word | |
| US4760550A (en) | Saving cycles in floating point division | |
| US4065666A (en) | Multiply-divide unit | |
| US5337265A (en) | Apparatus for executing add/sub operations between IEEE standard floating-point numbers | |
| US3210737A (en) | Electronic data processing | |
| US4692891A (en) | Coded decimal non-restoring divider | |
| JPH10500513A (ja) | ディジタル除算実行装置 | |
| CS209707B1 (cs) | Zapojení aritmetických obvodů pro dvojkové násobení a dělení | |
| US4173789A (en) | Multiplication control system | |
| JPH0346024A (ja) | 浮動小数点演算器 | |
| US5317531A (en) | Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division | |
| US8219604B2 (en) | System and method for providing a double adder for decimal floating point operations | |
| GB991734A (en) | Improvements in digital calculating devices | |
| US3244864A (en) | Subtraction unit for a digital computer | |
| GB1388593A (en) | Output format control for electronic computers | |
| US3757097A (en) | Ediate arithmetic results extra bit for floating decimal control and correction of false interm | |
| SU434408A1 (ru) | Арифметическое двоично-десятичное устройство с динамической циркуляционнойпамятью |