DE2356078A1 - Digitaler multiplizierer - Google Patents

Digitaler multiplizierer

Info

Publication number
DE2356078A1
DE2356078A1 DE19732356078 DE2356078A DE2356078A1 DE 2356078 A1 DE2356078 A1 DE 2356078A1 DE 19732356078 DE19732356078 DE 19732356078 DE 2356078 A DE2356078 A DE 2356078A DE 2356078 A1 DE2356078 A1 DE 2356078A1
Authority
DE
Germany
Prior art keywords
input
adder
output
gate
multiplier
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE19732356078
Other languages
English (en)
Inventor
Tsukumo Dipl Ing Higeta
Hidehiko Dipl Ing Kurita
Tokutaka Dipl Ing Nakano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE2356078A1 publication Critical patent/DE2356078A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/5235Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

  • Digitaler Multiplizierer.
  • Die vorliegende Erfindung bezieht sich auf einen digitalen Multiplizierer zum Multiplizieren von Zahlen im binären Code mit hoher Geschwindigkeit in Anordnungen zur Informationsverarbeitung, Informationsumwandlung und ähnlichen.
  • Zur Multiplikation von Zahlen in binären Codes wird üblicherweise eine Einheit verwendet, wie sie in Fig. 1 gezeigt ist.
  • Dort wird ein Multiplikand, der über die Eingangsleitungen 1 zugeführt wird, in das Register 2 gesetzt und ein Multiplikator, der über die Eingangsleitungen 12 zugeführt wird in das Register 11 gesetzt und dabei das Register 8 gelöscht.
  • Nur im Falle, daß der Multiplizierer 13 des Registers II, der dem niedrigstwertigen Bit zugeordnet ist und auch als LSD-Ausgang bezeichnet wird zu logisch ll1fl wird, öffnet das Gatter 6 und der Inhalt des Addierers 4, der in diesem Falle mit dem Inhalt des Registers 2 übereinstimmt, wird in das Register 8 geschrieben. Danach wird der Inhalt der Register 8.
  • und 11 jeweils um ein Bit nach rechts verschoben. Das Register 8 gibt dabei das niedrigstwertige Bit ab, das über die Leitung 10 an die Stelle für das höchstwertige Bit, die auch als MSD bezeichnet wird, des Registers 11 übertragen wird und das zweite Bit des Multiplikators wird der Stelle für das niedrigstwertige Bit des Registers 11 zugeführt. Ist nun der logische Zustand gleich "1", wird über die Leitungen 5 das Additionsergebnis des über die Leitungen 5 zugeführten Multiplikanden und Qes ausgegebenen Wertes des Registers 8 über die Leitungen 9 in das Register 8 eingeschrieben. Älischließend wird der Inhalt der Register 8 und 11 um jeweils ein Bit nach rechts verschoben. Da die obige Operation entsprechend der Bitzahl des Multiplikators wiederholt wird, wird das Ergebnis der Multiplikation in den Registern 8 und 11 gespeichert. In dieser Anordnung ergibt sich die Notwendigkeit zur Wiederholung der Addition und Verschiebung entsprechend der Bitzahl des Multiplikators, so daß sich sehr lange Operationszeiten ergeben.
  • Aufgabe der Erfindung ist die Entwicklung eines Multiplizierers mit gegenüber diesem Stand der Technik beträchtlich verkürzten Operationszeiten bei kleinem Speicheraufwand.
  • Erfindungsgemäß wird die Aufgabe dadurch gelöst, daß ein Addierer, ein Inverter und Gatterschaltungen zum Erhalten der halben Werte der Summe und der Differenz von Multiplikator und Multiplikand vorgesehen sind, daß ein Festwertspeicher als Quadratumwandlungstabelle zur Speicherung der Quadratwerte und zur Abgabe der Quadratwerte der obenangeführten halben Werte der Summe und der Differenz und weiterhin eine Schaltung vorgesehen ist, die einen Pufferspeicher, einen Inverter und einen Addierer enthält, um die Differenz zwischen dem obenangegebenen Quadratwert der Summe und dem# Quadratwert der Differenz zu erhalten.
  • Die vorliegende Erfindung geht von der folgenden Formel aus, in der der Multiplikand mit x und der Multiplikator mit y bezeichnet wird: Statt einer direkten Multiplikation werden zunächst die halben Werte der Summe und der Differenz von x beziehungsweise y gebildet, unter Anwendung einer Umwandlungstabelle für A in A2 die quadratischen Werte der halben Werte der Summe und der Differenz erzeugt. Abschließend erhält man durch Bilden der Differenz der quadrierten Werte das Multiplikationsergebnis, ohne daß eine wirkliche Multiplikation durchgeführt wurde. Eine besonders vorteilhafte Variante der Erfindung ergibt sich dadurch. daß jeweils ein einziger Eingang für den Multiplikator x und den Multiplikand y vorgesehen ist, daß der Eingang für den Multiplikator mit dem einen Eingang eines Addierers direkt verbunden ist, daß der Eingang des Multiplikanden mit dem ersten Eingang eines ersten UND-Gatters direkt und mit dem ersten Eingang eines zweiten UND-Gatters über einen Inverter verbunden ist, daß jeweils die zweiten Eingänge der beiden UND-Gatter mit Zuleitungen für Steuersignale verbunden sind, daß der Ausgang des ersten UND-Gatters mit dem Eingang und der Ausgang des zweiten UND-Gatters mit dem zweiten Eingang eines' ODER-Gatters verbunden ist, daß der Ausgang des ODER-Gatters mit dem zweiten Eingang des Addierers verbunden ist, daß der Ausgang des Addierers über die Verbindungsleitung mit einem Codeumwandler verbunden ist, daß der Ausgang des Codeumwandlers über die Verbindungsleitung mit dem Eingang einer aus einem Festwertspeicher bestehenden Quadratumwandlungstabelle verbunden ist, daß der Ausgang der Quadratumwandlungstabelle über einen Pufferspeicher mit dem einen Eingang eines Addierers und über einen Inverter mit dem anderen Eingang des Addierers verbunden ist und daß am Ausgang des Addierers das Produkt entnehmbar ist.
  • Die Erfindung wird im folgenden anhand der Zeichnungen näher beschrieben. Dabei zeigt: Fig. 1 das Blockschaltbild eines Multiplizierers nach dem Stande der Technik, Fig. 2 das Blockschaltbild einer Anordnung nach der Erfindung und Fig. 3 ein Diagramm zur Erläuterung eines Beispiels für die Quadratumwandlungstabelle.
  • Fig. 1 wurde bei der Betrachtung des Standes der Technik näher erläutert.
  • Fig. 2 zeigt die Ausführungsform eines Multiplizierers nach der Erfindung.
  • Die Anordnung umfaßt die Anschlüsse 21 und 22 für die miteinander zu multiplizierenden Zahlen x und y, die Inverter 24, 40, die UND-Gatter 23, 26, das ODER-Gatter 29, die Addierer 33, 43, den Codeumwandler 35, die Quadratumwandlungstabelle 37 und den Pufferspeicher 39.
  • Für die Durchführung der Multiplikation wird zuerst das Gatter 23 durch ein Signal 31 geöffnet und ein eingegebener Wert x (Komplement) vom Anschluß 21 und ein eingegebener Wert y (Komplement) vom Anschluß 22 im Addierer 33 addiert, so daß man an dessen Ausgang 34 den Wert x + y (Komplement) erhält. Der Codeumwandler 35 wandelt den ausgegebenen Komplementwert in den gefalteten binären Code 36 um und gibt die sen an den Eingang der Quadratumwandlungstabelle 37. Durch eine Verschiebeoperation nach rechts um ein Bit wahlweise im Addierer 33 oder im Code-Umwandler 35 wird der ausgegebene Wert halbiert. Der ausgegebene Wert 38 der Quadratsumwandlungstabelle 37 ist also und wird im Pufferspeicher 39 gespeichert. Danach wird das Gatter 26 durch das Gattersteuersignal 32 geöffnet und der Eingabewert y im Inverter 24 in -y invertiert; x und -y (Komplement) werden anschließend im Addierer 33 addiert, so daß sich der Ausgabewert x - y (Komplement) ergibt. Der ausgegebene Wert 36 des Codeumwandlers 35 erscheint in einem gefalteten binären Code und wird dem Eingang der Quadratumwandlungstabelle 37 zugeführt. Am Ausgang 38 dieser Quadratumwandlungs- im Addierer 43 addiert wird. Der ausgegebene Wert 44 des Addierers 43 ist dann ment). (Komple-Da es sich bei allen diesen Prozessen um Vorwärtsprozesse handelt, ist die zeitlich geteilte Eingabe von x + y und x - y möglich. Die Breite' der Pulse der Steuersignale 31 und 32 für die Operationen x + y und x - y sind als größer angenommen, als die Operationszeiten der Elemente der logischen Schaltung. Entsprechend kann x - y dem Eingang mit einer Verzögerung um diese Pulsbreite gegenüber x + y zugeführt werden. Da die gesamte Operationszeit die Summe der Verzögerungszeiten der einzelnen Gatter, des Addierers 33, der -Codeumwandlerschaltung 35, der Quadratumwandlungstabelle 37 und des Addierers 43 sowie der Pulsbreite von x + y sind, kann man für die Operationszeit leicht einen sehr kleinen Wert durch Anwendung von TTL-Schaltungen oder ähnlicher Schaltungen für die Elemente der logischen Schaltung erreichen.
  • So ist zum Beispiel mit dem System nach dem Stande der Technik, das in Fig. 1 beschrieben ist, unter Anwendung eines ~Addierers und eines Binärakkumulators, falls der eingebene Wert 10 Bits und der ausgegebene Wert mehr als 10 Bits umfaßt, die Zahl der Einzeladditionszeiten gleich 10 und die gesamte Operationszeit etwa 2 /us. Für die Verkürzung der Operationszeit kann ein Multiplikationsverfahren angewendet werden, das als Blockteilungsmethode bezeichnet wird, und auf der Teilung von x ~ y in (2n x, X1 + X2) (2n ~ y1 + Y2) und der Anwendung eines Auch als Festwertspeicher bekannten ROM für das Produkt x1 yl usw. beruht. Auch bei diesem System ist beispielsweise die Zahl der Einzeladditionszeiten gleich 2, so daß etwa 200 ns als Operationszeit erforderlich sind, wobei aber in diesem Fall etwa 40 KByte an Speicherzellen erforderlich sind. Demgegenüber ergibt sich bei dem System nach der vorliegenden Erfindung durch Anwendung der Quadratumwandlungstabelle und durch zusätzliche, später beschriebene Maßnahmen bei 2 Einzeladditionszeiten eine Operationszeit von etwa 450 ns und eine notwendige Speicherzellenzahl von 4 KByte oder bei 5 Additionszeiten eine Operationszeit von 520 ns und eine Speicherzellenzahl von 18 KByte.
  • Bei der Verwendung des ROM für die Quadratumwandlungstabelle 37 ergibt sich die beschriebe starke Verringerung der Zahl der Speicherzellen des ROM. Sind die Zahlen x bzw. y durch n Bits ausgedrückt, dann ergeben sich für die Summe x + y und die Differenz x - y insgesamt n + 1 Bits als Maximum, damit sind für den Ausgabewert 2 (n + 1) Bits erforderlich, der ROM ist für eine Kapazität von 2n+1 2 (n + 1) Bits vorzusehen. Wird die Zahl n hier um ein Bit vergrößert, dann verdoppelt sich die erforderliche Speicherkapazität; werden die Bitzahlen von x und y weiter vergrößert, so ist schließlich ein riesiger Speicher erforderlich.
  • Durch Teilung von-x + y und x - y in verschiedene Blöcke und anschließendem Quadrieren wird der Speicherumfang erheblich verringert. Man kann in einem Beispiel annehmen, daß x und y jeweils 10 Bits umfassen und in drei Blöcke geteilt sind. Unter der Annahme, daß x + y oder x - y = Z ist und Z = 27 Z1 + 23 . Z2 + Z3 ist, dann ergibt sich dann wird Z2 durch dreimalige Addition erhalten. Die Kapazität des ROM ist in diesem Falle 1792 Bits.
  • In der Fig. 3 ist die obige Bitanordnung gezeigt. Es ist erkennbar, daß die quadrierten Unterblöcke sich in drei Blöcke zusammenfassen lassen, falls die Blöcke, die sich nicht gegenseitig überlagern, zusammengefaßt werden und Z2 durch doppelte Addition erhalten wird. In diesem Fall ist die Kapazität des ROM gleich 4144 Bits, das ist 1/10 des vor der Unterteilung erforderlichen. Jedoch ergibt sich bei dieser Verringerung der Speicherkapazität auf 1/10 eine Vergrößerung der Anzahl der Additionen auf 2.
  • Wird dagegen die bereits erwähnte Zahl Z in 4 Blöcke unterteilt, beispielsweise in Z = 28Z1 + 25Z + 22Z + Z4 Z 2) 1 2 3 4' z2= 216Z1 + 210Z2 + 24Z + Z2 3 4 +- 214Z1Z2 + 24Z1Z4 + 211Z1Z3 + 26Z2Z4 + 28Z2Z3 + 23Z3Z4 Allgemein ausgedrückt vergrößert'die Unterteilung in n Blöcke die Zahl der Addierer um (n - 1) und die Operationszeit um die Verzögerungszeit. Die Zahl der unterteilten Blöcke kann wahlweise im Hinblick auf die erforderliche Multiplikationszeit, die notwendige Kapazität des ROM, die Kosten oder andere Faktoren bestimmt werden.
  • Da diedie Addierüngspperation in den Addierern 33 und 43 sowohl in diesem Beispiel als auch im vorhergehenden Beispiel angewandt wurde, ergibt sich die Zahl der Additionszeiten in diesem Beispiel insgesamt zu 5 und im vorhergehenden Beispiel zu 4.
  • Falls dieses System im Zeitteilungsbetrieb angewendet wird, ist die wesentliche Operationszeit nur die Summe der entsprechenden Pulsbreiten von x + y und x - y mit der hier außer Frage stehenden Verzögerungszeit der Elemente der logischen Schaltungen, so daß das System hier besonders günstig anzuwenden ist. Entsprechend ergeben sich die meisten Vorteile des erfindungsgemäßen Multiplizierers bei der Anwendung mit Zeitteilung.
  • 2 Patentansprüche 3 Figuren

Claims (2)

  1. P a t e n t a n s p r ü c h e .
    g Digitaler Multiplizierer, d a d u r c h g e k e n n -z e iWcch n e t , daß ein Addierer, ein Inverter und Gattenschaltungen zum Erhalten der halben Werte der Summe und der Differenz von Multiplikator und Multiplikand vorgesehen sind, daß ein Festwertspeicher als Quadratumwandlungstabelle zur Speicherung der Quadratwerte und zur #Abgabe der Quadratwerte der obenangeführten halben Werte der summe und der Differenz und weiterhin eine Schaltung vorgesehen ist, die einen Pufferspeicher, einen Inverter und einen Addierer enthält, um die Differenz zwischen dem obenangegebenen Quadratwert der Summe und dem Quadratwert der Differenz zu erhalten.
  2. 2. Anordnung nach Anspruch 1, d a d u r c h g e k e n n -z e i c h n e t , daß jeweils ein einziger Eingang (21, 22) für den Multiplikator (x) und den Multiplikand (y) vorgesehen ist, daß der Eingang (21) für den Multiplikator mit dem einen Eingang eines Addierers (33) direkt verbunden ist, daß der Eingang (22) des Multiplikanden mit dem ersten Eingang eines ersten UND-Gatters (23) direkt und mit dem ersten Eingang eines zweiten UND-Gatters (26) über einen Inverter (24) verbunden ist, daß jeweils die zweiten Eingänge der beiden UND-Gatter mit Zuleitungen für Steuersignale verbunden sind, daß der Ausgang des ersten UND-Gatters (23) mit dem ersten Eingang (27) und der Ausgang des zweiten UND-Gatters (26) mit dem zweiten Eingang (28) eines ODER-Gatters (29) verbunden ist, daß der Ausgang des ODER-Gatters (29) mit dem zweiten Eingang (30) des Addierers (33) verbunden ist, daß der Ausgang des Addierers (33) über die Verbindungsleitung (34) mit einem Codeumwandler (35) verbunden ist, daß der Ausgang des Codeumwandlers (35) über die Verbindungsleitung (36) mit dem Eingang einer aus einem Festwertspeicher bestehenden Quadratumwandlungstabelle (37) verbunden ist, daß der Ausgang (38) der Quadratumwandlungstabelle (37) über einen Pufferspeicher (39) mit dem einen Eingang (41) eines Addierers (43) und über einen Inverter (40) mit dem anderen Eingang (42) des Addierers (43) verbunden ist und daß am Ausgang (44) des Addierers (43) das Produkt entnehmbar ist.
DE19732356078 1972-11-10 1973-11-09 Digitaler multiplizierer Pending DE2356078A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP47112065A JPS4970549A (de) 1972-11-10 1972-11-10

Publications (1)

Publication Number Publication Date
DE2356078A1 true DE2356078A1 (de) 1974-05-30

Family

ID=14577158

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19732356078 Pending DE2356078A1 (de) 1972-11-10 1973-11-09 Digitaler multiplizierer

Country Status (2)

Country Link
JP (1) JPS4970549A (de)
DE (1) DE2356078A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51109743A (de) * 1975-03-22 1976-09-28 Hitachi Ltd
JPS5270727A (en) * 1975-12-10 1977-06-13 Fujitsu Ltd Computation system
JPS5275945A (en) * 1975-12-20 1977-06-25 Nippon Telegr & Teleph Corp <Ntt> Computation system
JPS5347739A (en) * 1976-10-13 1978-04-28 Nippon Telegr & Teleph Corp <Ntt> Arithmetic system
JPS5381030A (en) * 1976-12-27 1978-07-18 Takeda Riken Ind Co Ltd Multiplication table memory

Also Published As

Publication number Publication date
JPS4970549A (de) 1974-07-08

Similar Documents

Publication Publication Date Title
DE2311220A1 (de) Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung
DE2523860C3 (de) Vorrichtung zur digitalen, linearen Interpolation einer fabulierten Funktion
DE3132225A1 (de) Einrichtung fuer eine schnelle hadamard-transformation
DE2150751A1 (de) Digitaler Sinus-Kosinus-Generator
DE2644506A1 (de) Rechner zur berechnung der diskreten fourier-transformierten
DE2918692A1 (de) Digitalfilter
DE2848096C3 (de) Digitale Addieranordnung
DE2038123C3 (de) Schaltungsanordnung zur logischen Verknüpfung
DE3644015C2 (de)
DE2356078A1 (de) Digitaler multiplizierer
DE3340362C2 (de)
DE3440680A1 (de) Verfahren und vorrichtung zur dezimaldivision
DE2039228A1 (de) Verfahren und Vorrichtung zum Konvertieren und Stellenwert-Verschieben von Zahlsignalen unterschiedlicher Codes in einer Datenverarbeitungsanlage
DE2451235A1 (de) Schaltungsanordnung fuer ein digitales filter
DE2450344A1 (de) Schaltungsanordnung zur digitalfrequenz-multiplikation
DE2017132A1 (de) Binarer Parallel Addierer
DE2426253C3 (de) Vorrichtung zunv ZAehen det Quadratwurzel aus einer binären Zahl
EP0090904B1 (de) Schaltungsanordnung für seriell arbeitende Digitalfilter
DE1774771A1 (de) Anordnung,um wechselweise eine Addition oder eine aus einer Anzahl logischer Funktionen zwischen den Inhalten einer Stelle zweier Binaerworte durchzufuehren
DE2712582A1 (de) Digital-differential-analysator
DE2233164B2 (de) Schaltungsanordnung zur uebertragung von aufeinanderfolgenden bitstellen zwischen zwei registern
DE2253746A1 (de) Modul-signalprozessrechner
DE2601379C3 (de) Schaltungsanordnung zum Umwandeln virtueller Adressen in reelle Adressen
DE1916377A1 (de) Verfahren und Anordnung zur Verschiebung von Datenfeldern
DE1946227C3 (de) Anordnung zur Errechnung von Prüfziffern und zur Kontrolle von Zifferngruppen mit angehängter Prüfziffer auf Fehler

Legal Events

Date Code Title Description
OHW Rejection