DE69030932T2 - Hochgeschwindiger digitaler Prozessor - Google Patents

Hochgeschwindiger digitaler Prozessor

Info

Publication number
DE69030932T2
DE69030932T2 DE69030932T DE69030932T DE69030932T2 DE 69030932 T2 DE69030932 T2 DE 69030932T2 DE 69030932 T DE69030932 T DE 69030932T DE 69030932 T DE69030932 T DE 69030932T DE 69030932 T2 DE69030932 T2 DE 69030932T2
Authority
DE
Germany
Prior art keywords
operand
multiplier
input
storage means
input terminal
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.)
Expired - Fee Related
Application number
DE69030932T
Other languages
English (en)
Other versions
DE69030932D1 (de
Inventor
Henry M Darley
Maria B Hipona
Donald E Steiss
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE69030932D1 publication Critical patent/DE69030932D1/de
Publication of DE69030932T2 publication Critical patent/DE69030932T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/535Dividing only
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt

Landscapes

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

Description

    TECHNISCHES GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf Informationsverarbeitungssysteme und insbesondere auf einen Prozessor zum Durchführen von Divisions- und Quadratwurzelberechnungen mit hoher Geschwindigkeit.
  • HINTERGRUND DER ERFINDUNG
  • Arithmetische Hochgeschwindigkeitsberechnungen sind ein kritischer Entwurfsfaktor bei vielen Informationsverarbeitungssystemen wie Computern, Signalprozessoren und Prozeßsteuereinheiten. Diese Systeme basieren in wachsendem Maße auf hochintegrierten Schaltungen, die in hohem Maße parallele Entwürfe verwenden, um Hochgeschwindigkeitsberechnungen zu liefern. Während Bauelemente, die die Multiplikation unter Verwendung paralleler Verfahren durchführen, in hohem Maße verfügbar sind, sind Bauelemente zum Durchführen der Divisions- und Quadratwurzelfunktionen im allgemeinen ihrem Wesen nach seriell und arbeiten daher bei geringeren Geschwindigkeiten.
  • Das Durchführen der Division und das Berechnen von Quadratwurzeln ist im Gegensatz zur Addition, Subtraktion oder Multiplikation ein iterativer Vorgang. Eine Vorrichtung oder Schaltung zur Durchführung der Divisions- oder Quadratwurzelfunktion braucht eine Reihe von Schritten oder Taktzyklen, um zu einem Quotienten oder einem Wurzelwert zu gelangen. Die Ausführungszeit und Genauigkeit eines Informationsverarbeitungssystems kann in hohem Maße durch das zur Durchführung der Divisions- und Quadratwurzelfunktion verwendete Verfahren betroffen werden. Ein bekanntes Verfahren bringt die Verwendung eines Konvergenzalgorithinus mit sich.
  • Bei der Division behandelt der Konvergenzalgorithmus den Dividenden und den Divisor als einen Bruch. Wenn die wiederholte Multiplikation des Divisors (d. h. des Nenners des Bruchs) durch eine Funktion des Divisors den Nenner im Grenzwert auf 1 bringt, dann wird die wiederholte Multiplikation des Dividenden durch die gleiche Funktion den Dividenden im Grenzwert auf den Quotienten bringen. Bei einer Quadratwurzelberechnung wird die Zahl, deren Wurzel bestimmt werden soll, als ein Bruch behandelt, wobei die Zahl für den Zähler und den Nenner die gleiche ist. Wiederholte Multiplikation des Bruches mit einer Funktion bringt den Nenner auf 1 und den Zähler im Grenzwert auf den Quadratwurzelwert.
  • Divisions- und Quadratwurzeln können bei Informationsverarbeitungssystemen durch Verwendung von Hochgeschwindigkeitsmultiplizierern in Verbindung mit weiteren Schaltungsanordnungen durchgeführt werden, die zusammen mit einem Konvergenzalgorithmus arbeiten. Ein typischer Konvergenzalgorithmus erfordert wiederholte Multiplikationsschritte, um zu einem Ergebnis zu gelangen. Als Folge davon erfordern bestehende Hochgeschwindigkeitsmultiplizierer wenigstens drei Taktzyklen für jeden Durchlauf des Konvergenzalgorithmus. Daher erfordern Divisions- und Quadratwurzelberechnungen im Vergleich zu anderen Berechnungen ein beträchtliches Ausmaß an Zeit.
  • Wegen des Wunsches nach noch schnelleren Informationsverarbeitungssystemen ist ein Bedürfnis entstanden, einen Prozessor zu schaffen, der Hochgeschwindigkeitsdivisionsund Quadratwurzelberechnungen durchführen kann.
  • Der Artikel "a suggestion for a fast multiplier" (IEEE Transactions on computers, Vol EC-13, Nr. 1, Februar 1964, Seiten 14 bis 17) offenbart als ein Mittel zur Durchführung der Division oder der Berechnung einer Quadratwurzel die Verwendung eines Multiplizierers, der in "linke" und "rechte" Teile geteilt ist, um den Reziprokwert eines Operanden zu erzeugen.
  • Die vorliegende Erfindung schafft einen arithmetischen Prozessor zum Durchführen mehrerer arithmetischer Funktionen enthaltend: ein erstes Multipliziererfeld mit einem ersten Eingangsanschluß und einem zweiten Eingangsanschluß, ein zweites Multipliziererfeld mit einem dritten Eingangsanschluß und einem vierten Eingangsanschluß, dadurch gekennzeichnet, daß der arithmetische Prozessor enthält: eine Logikschaltung, die das erste Multipliziererfeld und das zweite Multipliziererfeld zu einem kombinierten Multipliziererfeld kombinieren kann, eine Operandenleitungsschaltung zum Leiten der Operanden in Abhängigkeit der von dem arithmetischen Prozessor ausgeführten arithmetischen Funktion, wobei die Operandenleitungsschaltung Eingangsanschlüsse zum Empfangen der Eingabeoperanden und Ausgabeanschlüsse aufweist, die mit den Eingangsanschlüssen der beiden Multipliziererfelder verbunden sind, einen Starwertgenerator, dessen Ausgangsanschluß mit einem weiteren Eingangsanschluß der Operandenleitungsschaltung verbunden ist, Speichermittel, deren Eingangsanschlüsse mit einem Ausgangsanschluß des ersten Multipliziererfeldes und mit einem Ausgangsanschluß verbunden sind, der während des Betriebs das Ausgangssignal des arithmetischen Prozessors liefert, und deren Ausgangsanschluß mit einem ersten Rückführungseingangsanschluß der Operandenleitungsschaltung verbunden ist, Generator-Speichermittel, die mit einem Ausgangsanschluß des zweiten Multipliziererfelds und mit einem zweiten Rückführungseingangsanschluß der Operandenleitungsschaltung verbunden sind, und Schalt- und Addiererschaltungen, die zwischen die beiden Multipliziererfelder und den Ausgangsanschluß geschaltet sind, der während des Betriebs das Ausgangssignals des arithmetischen Prozessors liefert, wobei die Operandenleitungsschaltung, die Logikschaltung, der Startwertgenator und die Schalt- und Addiererschaltungen entsprechende Steuereingangsanschlüsse zum Empfangen spezifischer Steuerbefehle umfassen, auf welche die Operandenleitungsschaltung während des Betriebs reagiert, indem sie die Eingabeoperanden von den Operandeneingangsanschlüssen zusammen mit einem Startwert von dem Startwertgenerator einliest, der während des Betriebs den Startwert passend zu einem Eingabeoperanden auswählt, worauf die Operandenleitungsschaltung, die Logikschaltung und die Schalt- und Addiererschaltungen reagieren, indem sie die Operanden und den Startwert durch die Operandenleitungsschaltung, durch die beiden Multipliziererfelder, um zwei Multiplikationen unabhängig voneinander parallel durchzuführen, durch die Speichermittel und durch die Generator-Speichermittel zirkulieren lassen, und indem sie wiederholt weitere Operanden, die von dem zirkulierenden Startwert und den zirkulierenden Eingabeoperanden abgeleitet wurden, während des Betriebs der Logikschaltung als Reaktion auf die spezifischen Steuerbefehle zirkulieren lassen, um die beiden Multipliziererfelder während wenigstens einer Zirkulation zu kombinieren, wodurch Divisions- und Radizierungsoperationen durchgeführt werden. Vorzugsweise ant wortet die Operandenleitungsschaltung während des Betriebs auf einen ersten Steuerbefehl durch:
  • (a) Einlesen von Eingabeoperanden von den Operandeneingangsanschlüssen zusammen mit einem Startwert von dem Start wertgenerator, der den Startwert passend zu einem Eingabeoperanden auswählt,
  • (b) Weiterleiten eines ersten Eingabeoperanden zu dem ersten Eingangsanschluß des ersten Multipliziererfelds und Weiterleiten eines zweiten Eingabeoperanden zu dem dritten Eingangsanschluß des zweiten Multipliziererfelds,
  • (c) Weiterleiten des Startwerts zu dem zweiten Eingangsanschluß des ersten Multipliziererfelds und zu dem vierten Eingangsanschluß des zweiten Multipliziererfelds,
  • (d) Führen der Eingabeoperanden und des Startwerts durch das erste Multipliziererfeld und durch das zweite Multipliziererfeld und Speichern der Ausgabeoperanden des ersten Multipliziererfelds und des zweiten Multipliziererfelds in dem Speichermittel bzw. dem Generator-Speichermittel,
  • (e) Liefern eines ersten weiteren Eingabeoperanden und eines zweiten weiteren Eingabeoperanden durch Weiterleiten
  • des Inhalts des Speichermittels zum ersten Eingangsanschluß des ersten Multipliziererfelds und des Inhalts des Generator-Speichermittels zum dritten Eingangsanschluß des zweiten Multipliziererfelds,
  • (f) Erzeugen eines dritten weiteren Eingabeoperanden aus dem Inhalt des Generator-Speichermittels und Weiterleiten des dritten weiteren Eingabeoperanden zu dem zweiten Eingangsanschluß des ersten Multipliziererfelds und dem vierten Eingangsanschluß des zweiten Multipliziererfelds,
  • (g) Führen der weiteren Eingabeoperanden durch das erste Multipliziererfeld und das zweite Multipliziererfeld und Speichern der weiteren Ausgaben des ersten Multipliziererfelds und des zweiten Multipliziererfelds in dem Speichermittel bzw. in dem Generator-Speichermittel,
  • (h) Liefern eines vierten weiteren Eingabeoperanden aus dem Inhalt des Speichermittels und Erzeugen eines fünften weiteren Eingabeoperanden aus dem Inhalt des Generator- Speichermittels,
  • (i) Weiterleiten des vierten weiteren Eingabeoperanden zu dem ersten Eingangsanschluß des ersten Multipliziererfelds und des fünften weiteren Eingabeoperanden zu dem vierten Eingangsanschluß des zweiten Multipliziererfelds und Führen des vierten weiteren Eingabeoperanden durch das erste Multipliziererfeld und des fünften weiteren Eingabeoperanden durch das zweite Multipliziererfeld,
  • Reagieren der Logikschaltung auf den ersten Steuerbefehl durch Kombinieren der beiden Multipliziererfelder zu dem kombinierten Multipliziererfeld während des Hindurchführens des vierten Eingabeoperanden und des fünften Eingabeoperanden.
  • Vorzugsweise umfaßt das Generator-Speichermittel ein erstes Register, das während des Betriebs einen aktuellen Ausgabeoperanden speichert, ein zweites Register, das während des Betriebs einen vorherigen Ausgabeoperanden speichert, und einen Generator, der während des Betriebs weitere Eingabeoperanden aus dem Inhalt des ersten Registers erzeugt.
  • Vorzugsweise enthalten die Schalt- und Addiererschaltungen eine Schaltschaltung und eine Addiererschaltung, wobei ein erster Eingangsanschluß der Schaitschaltung mit einem Ausgangsanschluß des ersten Multipliziererfelds und einem ersten Eingangsanschluß des Speichermittels verbunden ist, während ein zweiter Eingangsanschluß der Schaltschal tung mit einem Ausgangsanschluß des zweiten Multipliziererfelds und mit einem Eingangsanschluß des Generator-Speichermittels verbunden ist, ein erster Ausgangsanschluß und ein zweiter Ausgangsanschluß der Schaltschaltung mit einem ersten Eingangsanschluß bzw. einem zweiten Eingangsanschluß der Addiererschaltung verbunden sind, und ein Ausgangsanschluß der Addiererschaltung mit einem zweiten Eingangsanschluß des Speichermittels verbunden ist und das Ausgangssignal des arithmetischen Prozessors liefert.
  • Vorzugsweise enthält der arithmetische Prozessor einen Decodierer, der einen Eingangsanschluß des arithmetischen Prozessors darstellenden Eingangsanschluß und einen Ausgangsanschluß umfaßt, der mit den Steuereingangsanschlüssen der Operandenleitungsschaltung, der Logikschaltung und der Schalt- und Addiererschaltungen verbunden ist, wobei der Decodierer während des Betriebs die in den arithmetischen Prozessor eingegebenen Befehle in interne Befehle umwandelt, die den arithmetischen Prozessor veranlassen, spezifische arithmetische Prozesse durchzuführen.
  • Vorzugsweise umfaßt der arithmetische Prozessor eine erste Rundungsschaltung, die mit dem Ausgangsanschluß verbunden ist, der während des Betriebs das Ausgangssignal des arithmetischen Prozessors liefert.
  • Vorzugsweise umfaßt der arithmetische Prozessor eine zweite Rundungsschaltung, die mit dem Speichermittel verbunden ist, um die in dem Speichermittel enthaltenen Werte zu runden. Vorzugsweise enthält der arithmetische Prozessor eine dritte Rundungsschaltung, die mit dem Generator-Speichermittel verbunden ist, um die in dem Generator-Speichermittel enthaltenen Werte zu runden.
  • Vorzugsweise beinhaltet der Startwertgenerator eine Nachschlagtabelle, in der Startwerte gespeichert sind, die während des Betriebs passend zu dem Operanden ausgewählt werden, der dem zweiten Multipliziererfeld zugeführt wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Zum noch besseren Verstehen der vorliegenden Erfindung und ihrer Vorteile wird nun auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen, in denen:
  • Fig. 1 die Architektur des Prozessors der vorliegenden Erfindung darstellt; und
  • Fig. 2 ein funktionales Blockdiagramm der Multipliziererschaltungsanordnung für die Verwendung bei der vorliegenden Erfindung darstellt.
  • GENAUE BESCHREIBUNG DER VORLIEGENDEN ERFINDUNG
  • Der Prozessor der vorliegenden Erfindung verwendet zwei Konvergenzalgorithmen: einen zum Durchführen einer Divisionsberechnung und einen anderen zum Durchführen von Quadratwurzelberechnungen. Bei der Division gilt X+Y=Q, wobei X der Dividend, Y der Divisor und Q der Quotient ist. Die Gleichung kann auch in der Form X/Y=Q geschrieben werden. Beim ersten Schritt des Divisionsalgorithmus werden sowohl X als auch Y mit einem Startwert S multipliziert, der ausgewählt wurde, um Y auf 1 zu treiben. Nach dem ersten Schritt ist X*S=Q und Y*S=G. Im nächsten Schritt werden Q und G mit einer Funktion F multipliziert, wobei F=2-G. Das Ergebnis von F*Q ersetzt den alten Wert von Q und das Ergebnis von F*G ersetzt den alten Wert von G. Der letzte Schritt wird in vorherbestimmter Anzahl wiederholt, so daß sich F*G 1 annähert und F*Q dem Quotienten von X/Y annähert.
  • Bei Quadratwurzeln erfüllt eine Quadratwurzel R einer Zahl A die Gleichung R*R=A. Bei einem Konvergenzalgorithmus zum Berechnen der Quadratwurzel R einer Zahl A wird eine Gleichung in der Form A/A geschrieben. Bei einem ersten Schritt des Konvergenzalgorithmus wird das A im Zähler mit einem Startwert 5 multipliziert und das A im Nenner zweimal mit dem gleichen Startwert 5 multipliziert, so daß gilt:
  • Funktion F multipliziert, wobei F=(3-G)12 und G wird zweimal mit der F-Funktion multipliziert. Das Ergebnis F*Q ersetzt den alten Q-Wert und das Ergebnis F*F*G ersetzt den alten G Wert. Der letzte Schritt wird in vorherbestimmter Anzahl wiederholt, so daß sich F*Q dem Wurzelwert und F*F*G 1 annähert.
  • In der Fig.1 empfängt der Decodierer 12 Befehle von einem (nicht dargestellten) Logikbaustein, der die durch den Prozessor durchgeführten numerischen Berechnungen, wie Multiplikation, Division oder Quadratwurzelberechnung bestimmt. Als Antwort auf die Befehle gibt der Decodierer 12 am Ausgang 14 ein Steuersignal CS ab, wobei für jede Art der verschiedenen durchzuführenden Berechnungen ein anderes Steuersignal existiert. Das Steuersignal CS wird zur Operan denleitungsschaltung 16, zur Logikschaltung 18, zur Schaltschaltung 20 und zum Startwertgenerator 28 übertragen. Das Steuersignal instruiert die Schaltungsanordnung, eine spezielle Berechnung wie Multiplikation, Division oder Quadratwurzelberechnung durchzuführen. Die Befehle werden typischerweise von einem Computer mit gespeichertem Programm oder anderen Vorrichtungen erzeugt, die Fachleuten wohlbekannt sind.
  • Die Operandenleitungsschaltung 16 empfängt die Operan den N und D von den Eingangsleitungen 22 und 24 und empfängt den Startwert 5 von dem Startwertgenerator 28 auf der Eingangsleitung 26 und leitet diese zu entsprechenden Ausgangsleitungen weiter, die mit dem Multiplizierer 38 verbunden sind. Die Operandenleitungsschaltung 16 übermittelt den Operanden N und den Startwert 5 auf den Ausgangsleitungen 30 und 32 und den Operanden D und den Startwert 5 auf den Ausgangsleitungen 34 und 36. Der Operand N stellt den Zähler des Bruchs und der Operand D den Nenner des Bruchs dar. Eine Zahl, an der eine Berechungung durchgeführt wird, wird ska liert und in die Bruchschreibweise der Form N/D gebracht, wie es Fachleuten wohlbekannt ist.
  • Die Logikschaltung 18 des Multiplizierers 38 empfängt das Steuersignal CS von dem Decodierer 12 und rekonfiguriert den Multiplizierer 38 in dem Fall, daß das Signal entweder eine Divisions- oder Quadratwurzelberechnung erfordert, in zwei Felder, die mit L und R bezeichnet sind. Die Operandenleitungsschaltung 16 leitet den Operanden N und den Startwert S zum L-Feld und den Operanden D und den Startwert S zum R-Feld. Die Ausgabe des Feldes L wird über die Leitung 40 zur Schaltschaltung 20 und die Ausgabe der Stufe R des Multiplizierers 38 über die Leitung 42 zur Schaltschaltung 20 übertragen.
  • Als Antwort auf ein Steuersignal CS von dem Decodierer 12 leitet die Schaitschaltung 20 die Ausgangssignale der Multipliziererfelder L und R entlang einem vorbestimmten Pfad entsprechend der durchzuführenden Berechnungsart. Nach einer vorherbestimmten Zahl von Durchläufen durch den Multiplizierer 38 lenkt die Schaltschaltung 20 die Ausgangssignale der Felder L und R des Multiplizierers 38 zum Addierer 44. Das Ausgangssignal des Addierers 44 wird zur Runderschaltung 46 übertragen, die in für Fachleute bekannter Weise eine Rundungsfunktion durchführt.
  • Mit der Schaltschaltung 20 sind ein Q-Register 48 und ein G-Register 50 verbunden. Die Q- und G-Register empfangen von dem Multiplizierer 38 durch die Schaltschaltung 20 Zwischenergebnisse und liefern diese Zwischenergebnisse zur Operandenleitungsschaltung 16 zurück. Es ist eine Rundungsschaltung vorgesehen, die mit jedem der Q- und G-Register verbunden ist, und die die Genauigkeit der Ergebnisse erhöht. Der Q-Runder 52 empfängt das Ausgangssignal von dem Q Register 48, führt eine Rundungsfunktion durch und überträgt das Ergebnis entlang der Leitung 54 zur operanden Leitungsschaltung 16. Das G-Rundungsregister 56 empfängt das Ausgangssignal von dem G-Register 50, führt die Rundungsfunktion durch und überträgt das Ausgangssignal entlang der Leitung 58 zur Operandenleitungsschaltung 16.
  • Mit dem G-Register 50 ist außerdem das F-Register 60 und der F-Generator 62 verbunden. Diese Register werden während bestimmter Schritte verwendet, die zu der Quadratwurzelfunktion gehören, und die im folgenden noch ausführlicher erklärt werden.
  • Mit Bezug auf die Fig. 2 wird die Multipliziererschaltungsanordnung für die Verwendung bei der vorliegenden Erfindung noch genauer erklärt. Wie den Fachleuten bekannt ist, kann die Multiplikation unter Verwendung eines Addiererbaums durchgeführt werden. Die Architektur für Addiererbäume ist hinreichend bekannt. Eine solche Vorrichtung ist in der Europäischen Patentanmeldung Nr. 0 326 414 beschrieben, die ebenfalls dem Inhaber dieser Anmeldung gehört. Diese Erfindung modifiziert den in der EP-A- 0 326 414 beschriebenen Multiplizierer durch Rekonfiguration des Multiplizierers in zwei getrennte Felder.
  • Die Operandenleitungsschaltung 100 leitet den Operanden N (nun als Multiplikant gekennzeichnet) zu einem Bus 102. Der Operand D (nun ein Multiplikant D) wird zu einem Bus 104 geleitet. Der Startwert S wird durch die Operandenleitungsschaltung 100 zu einem Bus 106 geleitet. Der Startwert S wird nun als Multiplizierer S bezeichnet. Der Bus 102 ist mit den Hochpräzisionsanschlüssen eines Teilproduktgenerators 108A-D und der Bus 104 mit den Hochpräzisionsanschlüssen eines zweiten Satzes von Teilproduktgeneratoren 110A-D verbunden. Der Bus 106 ist mit den Halbpräzisionsanschlüssen eines zweiten Satzes von Teilproduktgeneratoren 108A-D und 110A-D verbunden.
  • Die Teilproduktgeneratoren 108A und B sind mit einem Addierer 112 A einer ersten Stufe verbunden. Die Teilproduktgeneratoren 108C und D sind mit einem Addierer 112D ei ner ersten Stufe verbunden. Die Teilproduktgeneratoren 110A und B sind mit einem Addierer 114A einer ersten Stufe und die Teilproduktgeneratoren 110C und D sind mit einem Addierer 114B einer ersten Stufe verbunden. Die Ausgänge der Addierer der ersten Stufe sind gepaart und mit zwei Addierern 116A und B der zweiten Stufe verbunden. Die Ausgänge der Addierer 112A und B der ersten Stufe sind mit den Eingängen des Addierers 116A der zweiten Stufe und die Ausgänge der Addierer 114A und B der ersten Stufe sind mit dem Eingang des Addierers 116B der zweiten Stufe verbunden. Die Ausgangssignale der Addierer 116A und B der zweiten Stufe werden zur Schaltungsanordnung 118 gelenkt, um sie durch das System und zum Endaddierer 120 zu leiten.
  • Die Arbeitsweise einer gemäß der Erfindung gebildeten Vorrichtung wird nun beschrieben. Für jede Operation werden Steuersignale CS, die die Art der Berechnung anzeigen, von dem Decodierer 12 erzeugt. Bei der vorliegenden Ausführungsform gibt es drei Steuersignale, die das Multiplizieren, Dividieren und Quadratwurzelziehen anzeigen. Als Reaktion auf das empfangene Steuersignal bestimmen die Operandenleitungsschaltung 16, die Logikschaltung 18 und die Schaltschaltung 20 den Datenpfad und die Anzahl an Wiederholungen durch den Multiplizierer 38.
  • MULTIPLIKATION
  • Taktzyklus 0: Die Operanden N und D treten in den Mul tiplizierer 38 ein. Die Leitungen 30 bis 36 werden von der Operandenleitungsschaltung 16 verwendet, um die Multipliziereroperanden zu den 4 Anschlüssen an dem L-Feld und dem R-Feld des Multiplizierers 38 zu übertragen. Der Operand N wird zu dem Hochpräzisionsanschluß des L-Feldes des Multiplizierers 38 geleitet, und der Operand D wird zum Halbpräzisionsanschluß des R-Feldes des Multiplizierers 38 geleitet. Das Produkt aus N und D läuft durch die Schaltschaltung 20 zum Addierer 44.
  • Taktzyklus 1: Die Zahl im Addierer 44 läuft zum Runder 46 und wird auf für Fachleute bekannte Weise gerundet. Bei diesem Taktzyklus sind die Operandenleitungsschaltung 16 und der Multiplizierer 38 für eine weitere Operation frei.
  • DIVISION
  • Taktzyklus 0: Die Operanden N und D treten in die Operandenleitungsschaltung 16 des Prozessors ein. Der Startwert S wird aus dem Startwertgenerator 28 wiedergewonnen, der eine Nachschlagetabelle sein kann, wobei ein Teil von D als Index verwendet wird. Das Steuersignal CS von dem Decodierer 12 veranlaßt die Operandenleitungsschaltung 16 und den Multiplizierer 38 dazu, die Teilprodukte aus N und S und die Teilprodukte aus D und S zu bilden. Der Multiplizierer 38 wird in L- und R-Felder rekonf iguriert. N wird auf dem Bus 102 zum Hochpräzisionsanschluß des Feldes L und D auf dem Bus 104 zum Hochpräzisionsanschluß des Feldes R gelenkt. Der S-Wert wird zum Halbpräzisionsanschluß des Multiplizierers 38 auf dem Bus 106 geschickt. Das Produkt aus N und S wird im Q-Register 48 gespeichert und das Produkt aus D und S wird im G-Register 50 am Ende des Taktzyklus gespeichert.
  • Taktzyklus 1: Am Ende des Taktzyklus 0 wird F aus dem in dem G-Register 50 gespeicherten Wert berechnet. Der Multiplizierer 38 bleibt in der Zwei-Feld-Modus-Anordnung, um das Produkt aus Q und F und das Produkt aus G und F zu bilden, wobei bei beiden Multiplikationen F mit dem Halbpräzi sionsanschluß durch den Bus 106 verbunden ist. Das Produkt aus G und F wird zum G-Register 50 zurückgeleitet, und das Produkt aus groß Q und F wird zum Q-Register 48 zurückgeleitet.
  • Taktzyklus 2: F wird aus dem in dem G-Register 50 gespeicherten Wert am Ende des Taktzyklus 1 berechnet. Der Multiplizierer 38 ist in einer Ein-Feld-Modus-Anordnung, um das Produkt aus Q und F zu bilden. Das Produkt aus F und Q wird durch die Schaltschaltung 20 zum Addierer 44 geleitet. Das Ausgangssignal des Addierers 44 wird zum Runder 46 übertragen. Die in dem Runder 46 gespeicherte Zahl ist der Schätzwert des Quotienten, der im nächsten Taktzyklus gerundet wird.
  • Taktzyklus 3: Die Zahl in dem Runder 46 wird wie für Fachleute auf diesem Gebiet bekannt gerundet. In diesem Taktzyklus sind die Operandenleitungsschaltung 16 und der Multiplizierer 38 für eine weitere Operation frei.
  • QUADRATWURZEL
  • Taktzyklus 0: Die Operanden N und D treten in die Operandenleitungsschaltung 16 des Prozessors ein. Der Startwert S wird aus den Startwertgenerator 28 wiedergewonnen, der eine Nachschlagtabelle sein kann, wobei ein Teil von D als Index verwendet wird. Der Multiplizierer 38 ist in der Zwei-Feld-Anordnung, um die Teilprodukte aus N und S und die Teilprodukte aus D und S zu berechnen. N wird auf den Bus 102 zu den Hochpräzisionsanschlüssen des Feldes L und D auf dem Bus 104 zu den Hochpräzisionsanschlüssen des Feldes R gelenkt. Der S-Wert wird zu den Halbpräzisionsanschlüssen des Busses 106 geschickt. Die Ergebnisse werden durch die Schaltschaltung 20 geleitet, und das Produkt aus N und S wird im Q-Register 48 und das Produkt aus D und 5 im G-Register 50 am Ende des Taktzyklus gespeichert.
  • Taktzyklus 1: Der Wert im Q-Register 48 wird während dieses Taktzyklus nicht verändert. Der Multiplizierer 38 ist in einer Ein-Feld-Anordnung, um den G-Wert aus dem G-Register 50 und dem Startwert 5 zu bearbeiten. Das Produkt aus S und G wird in das G-Register 50 zurückgeleitet
  • Taktzyklus 2: F wird aus dem in dem G-Register 50 am Ende des Taktzyklus 1 gespeicherten Wert berechnet. Der Multiplizierer 38 wird in die Zwei-Feld-Anordnung gebracht, um das Teilprodukt aus Q und F und das Teilprodukt aus G und F zu berechnen. Das Produkt aus F und Q wird dann zum G-Register 50 zurückgeleitet Der F-Wert, der zu Beginn des Taktzyklus 2 berechnet wurde, wird in dem F-Register 60 gespeichert.
  • Taktzyklus 3: Der Wert im Q-Register 48 wird während dieses Taktzyklus nicht verändert. Der Multiplizierer 38 wird wieder in die Ein-Feld-Anordnung gebracht, um den Wert aus dem G-Register 50 und den in dem F-Register 60 gespeicherten Wert F zu bearbeiten. Das Produkt aus F und G wird in das G- Register 50 zurückgeleitet
  • Taktzyklus 4: F wird aus dem in dem G-Register 50 am Ende des Taktzyklus 1 gespeicherten Wert berechnet. Der Multiplizierer 38 bleibt in dem Ein-Feld-Modus, um das Produkt aus Q und F zu bilden. Das Produkt aus F und Q wird durch die Schaltschaltung 20 zum Addierer 44 geleitet. Das Ausgangssignal des Addierers 44 wird zum Runder 46 übermittelt.
  • Taktzyklus 5: Die Zahl in dem Runder 46 wird in für Fachleute bekannter Weise gerundet. In diesem Taktzyklus sind die Operandenleitungsschaltung 16 und der Multiplizierer 38 frei, eine weitere Operation zu beginnen.
  • Aus der vorhergehenden Beschreibung ist für Fachleute zu erkennen, daß bei der vorliegenden Erfindung ein numerischer Prozessor mit einem einzigen Multiplizierer geschaffen wird, der so konfiguriert werden kann, daß er in einem Ein- oder Doppelstufenmodus arbeitet. Die Verwendung eines Doppelfeldmultiplizierers führt zur Durchführung von Divisions- und Quadratwurzelberechnungen mit einem hohen Parallelitätsgrad und größeren Geschwindigkeiten als sie bisher möglich waren.

Claims (9)

1. Arithmetischer Prozessor zum Durchführen mehrerer arithmetischer Funktionen enthaltend: ein erstes Multipliziererfeld (38L) mit einem ersten Eingangsanschluß (30) und einem zweiten Eingangsanschluß (32), ein zweites Multipliziererfeld (38R) mit einem dritten Eingangsanschluß (34) und einem vierten Eingangsanschluß (36), dadurch gekennzeichnet, daß der arithmetische Prozessor enthglt: eine Logikschaltung (18), die das erste Multipliziererfeld (38L) und das zweite Multipliziererfeld (38R) zu einem kombinierten Multipliziererfeld (38) kombinieren kann, eine Operandenleitungsschaltung (16) zum Leiten der Operanden in Abhängigkeit der von dem arithmetischen Prozessor ausgeführten arithmetischen Funktion, wobei die Operandenleitungsschaltung Eingangsanschlüsse zum Empfangen der Eingabeoperanden und Ausgangsanschlüsse aufweist, die mit den Eingangsanschlüssen (30, 32, 34, 36) der beiden Multipliziererfelder (38L, 38R) verbunden sind, einen Startwertgenerator (28), dessen Ausgangsanschluß mit einem weiteren Eingangsanschluß der Operandenleitungsschaltung (16) verbunden ist, Speichermittel (48), deren Eingangsanschlüsse mit einem Ausgangsanschluß (40) des ersten Multipliziererfelds (38L) und mit einem Ausgangsanschluß verbunden sind, der während des Betriebs das Ausgangssignal des arithmetischen Prozessors liefert, und deren Ausgangsanschluß mit einem ersten Rückführungseingangsanschluß (54) der Operandenleitungsschaltung (16) verbunden ist, Generator-Speichermittel (50, 60, 62), die mit einem Ausgangsanschluß des zweiten Multipliziererfelds (38R) und mit einem zweiten Rückführungseingangsanschluß der Operandenleitungsschaltung (16) verbunden sind, und Schalt- und Addiererschaltungen (20, 44), die zwischen die beiden Multipliziererfelder (38L, 38R) und den Ausgangsanschluß geschaltet sind, der während des Betriebs das Ausgangssignal des arithmetischen Prozessors liefert,
wobei die Operandenleitungsschaltung (16), die Logikschaltung (18), der Startwertgenerator (28) und die Schaltund Addiererschaltungen (20, 44) entsprechende Steuereingangsanschlüsse zum Empfangen spezifischer Steuerbefehle umfassen, auf welche die Operandenleitungsschaltung (16) während des Betriebs reagiert, indem sie die Eingabeoperanden von den Operandeneingangsanschlüssen zusammen mit einem Startwert von dem Startwertgenerator (28) einliest, der während des Betriebs den Startwert passend zu einem Eingabeoperanden auswählt, worauf die Operandenleitungsschaltung (16), die Logikschaltung (18) und die Schalt- und Addiererschaltungen reagieren, indem sie die Operanden und den Startwert durch die Operandenleitungsschaltung (16), durch die beiden Multipliziererfelder (38L, 38R), um zwei Multiplikationen unabhängig voneinander parallel durchzuführen, durch die Speichermittel (48) und durch die Generator- Speichermittel (50, 60, 62) zirkulieren lassen, und indem sie wiederholt weitere Operanden, die von dem zirkulierenden Startwert und den zirkulierenden Eingabeoperanden abgeleitet wurden, während des Betriebs der Logikschaltung (18) als Reaktion auf die spezifischen Steuerbefehle zirkulieren lassen, um die beiden Multipliziererfelder (38L, 38R) während wenigstens einer Zirkulation zu kombinieren, wodurch Divisions- und Radizierungsoperationen durchgeführt werden.
2. Arithmetscher Prozessor nach Anspruch 1, bei dem die Operandenleitungsschaltung (16) während des Betriebs auf einen ersten Steuerbefehl antwortet durch
(a) Einlesen von Eingabeoperanden von den Operandeneingangsanschlüssen zusammen mit einem Startwert von dem Startwertgenerator (28), der den Startwert passend zu einem Eingabeoperanden auswählt,
(b) Weiterleiten eines ersten Eingabeoperanden zu dem ersten Eingangsanschluß (30) des ersten Multipliziererfelds (38L) und Weiterleiten eines zweiten Eingabeoperanden zu dem dritten Eingangsanschluß (34) des zweiten Multipliziererfelds (38R),
(c) Weiterleiten des Startwerts zu dem zweiten Eingangsanschluß (32) des ersten Multipliziererfelds (38L) und zu dem vierten Eingangsanschluß (36) des zweiten Multipliziererfelds (38R)
(d) Führen der Eingabeoperanden und des Startwerts durch das erste Multipliziererfeld (38L) und durch das zweite Multipliziererfeld (38R) und Speichern der Ausgabeoperanden des ersten Multipliziererfelds (38L) und des zweiten Multipliziererfelds (38R) in dem Speichermittel (48) beziehungsweise dem Generator-Speichermittel (50, 60, 62),
(e) Liefern eines ersten weiteren Eingabeoperanden und eines zweiten weiteren Eingabeoperanden durch Weiterleiten des Inhalts des Speichermittels (48) zum ersten Eingangsanschluß (30) des ersten Multipliziererfelds (38L) und des Inhalts des Generator-Speichermittels (50, 60, 62) zum dritten Eingangsanschluß (34) des zweiten Multipliziererfelds (38R),
(f) Erzeugen eines dritten weiteren Eingabeoperanden aus dem Inhalt des Generator-Speichermittels (50, 60, 62) und Weiterleiten des dritten weiteren Eingabeoperanden zu dem zweiten Eingangsanschluß (32) des ersten Multipliziererfelds (38L) und dem vierten Eingangsanschluß (36) des zweiten Multipliziererfelds (38R),
(g) Führen der weiteren Eingabeoperanden durch das erste Multipliziererfeld (38L) und das zweite Multipliziererfeld (38R) und Speichern der weiteren Ausgaben des ersten Multipliziererfelds (38L) und des zweiten Multipliziererfelds (38R) in dem Speichermittel (48) beziehungsweise in dem Generator-Speichermittel (50, 60, 62),
(h) Liefern eines vierten weiteren Eingabeoperanden aus dem Inhalt des Speichermittels (48) und Erzeugen eines fünften weiteren Eingabeoperanden aus dem Inhalt des Generator- Speichermittels (50, 60, 62),
(i) Weiterleiten des vierten weiteren Eingabeoperanden zu dem ersten Eingangsanschluß des ersten Multipliziererfelds (38L) und des fünften weiteren Eingabeoperanden zu dem vierten Eingangsanschluß des zweiten Multipliziererfelds (38R) und Führen des vierten weiteren Eingabeoperanden durch das erste Multipliziererfeld (38L) und des fünften weiteren Eingabeoperanden durch das zweite Multipliziererfeld (38R),
Reagieren der Logikschaltung (18) auf den ersten Steuerbefehl durch Kombinieren der beiden Multipliziererfelder (38L, 38R) zu dem kombinierten Multipliziererfeld (38) während des Hindurchführens des vierten Eingabeoperanden und des fünften Eingabeoperanden.
3. Arithmetischer Prozessor nach Anspruch 1 oder Anspruch 2, bei dem das Generator-Speichermittel (50, 60, 62) ein erstes Register (50), das während des Betriebs einen aktuellen Ausgabeoperanden speichert, ein zweites Register (60), das während des Betriebs einen vorherigen Ausgabeoperanden speichert, und einen Generator (62) umfaßt, der während des Betriebs weitere Eingabeoperanden aus dem Inhalt des ersten Registers (50) erzeugt.
4. Arithmetischer Prozessor nach einem der Ansprüche 1 bis 3, bei dem die Schalt- und Addiererschaltungen (20, 44) eine Schaltschaltung (20) und eine Addiererschaltung (44) enthalten, wobei ein erster Eingangsanschluß der Schaltschaltung (20) mit einem Ausgangsanschluß des ersten Multipliziererfelds (38L) und einem ersten Eingangsanschluß des Speichermittels (48) verbunden ist, während ein zweiter Eingangsanschluß der Schaltschaltung (20) mit einem Ausgangsanschluß des zweiten Multipliziererfelds (38R) und mit einem Eingangsanschluß des Generator-Speichermittels (50, 60, 62) verbunden ist, ein erster Ausgangsanschluß und ein zweiter Ausgangsanschluß der Schaltschaltung (20) mit einem ersten Eingangsanschluß bzw. einem zweiten Eingangsanschluß der Addiererschaltung (44) verbunden sind, und ein Ausgangsanschluß der Addiererschaltung (44) mit einem zweiten Eingangsanschluß des Speichermittels (48) verbunden ist und das Ausgangssignal des arithmetischen Prozessors liefert.
5. Arithmetischer Prozessor nach einem der Ansprüche 1 bis 4, der einen Dekodierer (12) enthält, der einen einen Eingangsanschluß des arithmetischen Prozessors darstellenden Eingangsanschluß und einen Ausgangsanschluß umfaßt, der mit den Steuereingangsanschlüssen der Operandenleitungsschaltung (16), der Logikschaltung (18) und der Schalt- und Addiererschaltungen (20, 44) verbunden ist, wobei der Dekodierer während des Betriebs die in den arithmetischen Prozessor eingegebenen Befehle in interne Befehle umwandelt, die den arithmetischen Prozessor veranlassen, spezifische arithmetische Prozesse durchzuführen.
6. Arithmetischer Prozessor nach einem der Ansprüche 1 bis 5, der eine erste Rundungsschaltung (46) umfaßt, die mit dem Ausgangsanschluß verbunden ist, der während des Betriebs das Ausgangssignal des arithmetischen Prozessors liefert.
7. Arithmetischer Prozessor nach einem der Ansprüche 1 bis 6, der eine zweite Rundungsschaltung (52) umfaßt, die mit dem Speichermittel (48) verbunden ist, um die in dem Speichermittel (48) enthaltenen Werte zu runden.
8. Arithmetischer Prozessor nach einem der Ansprüche 1 bis 7, der eine dritte Rundungsschaltung (56) enthält, die mit dem Generator-Speichermittel verbunden ist, um die in dem Generator-Speichermittel (50, 60, 62) enthaltenen Werte zu runden.
9. Arithmetischer Prozessor nach einem der Ansprüche 1 bis 8, bei dem der Startwertgenerator (28) eine Nachschlagtabelle beinhaltet, in der Startwerte gespeichert sind, die während des Betriebs passend zu dem Operanden ausgewählt werden, der dem zweiten Multipliziererfeld zugeführt wird.
DE69030932T 1989-04-26 1990-04-05 Hochgeschwindiger digitaler Prozessor Expired - Fee Related DE69030932T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/343,465 US5047973A (en) 1989-04-26 1989-04-26 High speed numerical processor for performing a plurality of numeric functions

Publications (2)

Publication Number Publication Date
DE69030932D1 DE69030932D1 (de) 1997-07-24
DE69030932T2 true DE69030932T2 (de) 1997-12-18

Family

ID=23346232

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69030932T Expired - Fee Related DE69030932T2 (de) 1989-04-26 1990-04-05 Hochgeschwindiger digitaler Prozessor

Country Status (6)

Country Link
US (1) US5047973A (de)
EP (1) EP0395240B1 (de)
JP (1) JP2902045B2 (de)
KR (1) KR100236250B1 (de)
CN (1) CN1020170C (de)
DE (1) DE69030932T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0394499B1 (de) * 1988-11-04 1997-10-08 Hitachi, Ltd. Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel
US5184318A (en) * 1989-09-05 1993-02-02 Cyrix Corporation Rectangular array signed digit multiplier
US5245564A (en) * 1991-05-10 1993-09-14 Weitek Corporation Apparatus for multiplying operands
EP0546977A3 (en) * 1991-12-13 1994-10-19 Ibm Method and apparatus for solving numerical problems that use a plurality of processing elements operating in parallel
US5341321A (en) * 1993-05-05 1994-08-23 Hewlett-Packard Company Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
JPH0721012A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 割り算器
DE69624578T2 (de) * 1995-08-31 2003-09-04 Intel Corp Multiplixier-addierungsvorrichtung für gepackte daten
WO1997008608A1 (en) * 1995-08-31 1997-03-06 Intel Corporation A set of instructions for operating on packed data
FR2758195B1 (fr) * 1997-01-09 1999-02-26 Sgs Thomson Microelectronics Coprocesseur d'arithmetique modulaire comprenant deux circuits de multiplication operant en parallele
US7028068B1 (en) * 2003-02-04 2006-04-11 Advanced Micro Devices, Inc. Alternate phase dual compression-tree multiplier
CN106484362B (zh) * 2015-10-08 2020-06-12 上海兆芯集成电路有限公司 利用使用者指定二维定点算术运算的装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535498A (en) * 1967-05-02 1970-10-20 Detrex Chem Ind Matrix of binary add-subtract arithmetic units with bypass control
US3828175A (en) * 1972-10-30 1974-08-06 Amdahl Corp Method and apparatus for division employing table-lookup and functional iteration
US4785393A (en) * 1984-07-09 1988-11-15 Advanced Micro Devices, Inc. 32-Bit extended function arithmetic-logic unit on a single chip
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
JPS62229440A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 配列乗算器

Also Published As

Publication number Publication date
EP0395240A3 (de) 1992-08-12
CN1047152A (zh) 1990-11-21
CN1020170C (zh) 1993-03-24
KR900016858A (ko) 1990-11-14
US5047973A (en) 1991-09-10
JPH0368021A (ja) 1991-03-25
EP0395240B1 (de) 1997-06-18
KR100236250B1 (ko) 1999-12-15
DE69030932D1 (de) 1997-07-24
EP0395240A2 (de) 1990-10-31
JP2902045B2 (ja) 1999-06-07

Similar Documents

Publication Publication Date Title
DE2724125C2 (de)
DE3854321T2 (de) Populationszählung in Rechnersystemen.
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE60116742T2 (de) Digitaler signalprozessor mit gekoppelten multiplizier-addier einheiten
DE3851858T2 (de) Digitaler Signalprozessor.
DE68927911T2 (de) Datenverarbeitungssystem
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE69030932T2 (de) Hochgeschwindiger digitaler Prozessor
DE1942005B2 (de) Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten
DE1549476B2 (de) Anordnung zur ausfuehrung von divisionen
DE19839627A1 (de) Digitaler Signalprozessor
CH644461A5 (de) Digitale multipliziereinrichtung.
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE4334294C1 (de) Prozessor für Zeichenketten variabler Länge
DE2658248A1 (de) Mit hoher geschwindigkeit arbeitendes multiplikationssystem sowie verfahren zur durchfuehrung einer multiplikationsoperation
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE3888230T2 (de) Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung.
DE3507584C2 (de)
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE69029608T2 (de) Digitale Signalprozessorvorrichtung
DE2221693B2 (de) Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen
DE19504089A1 (de) Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren
DE2830334C2 (de)
DE2746355A1 (de) Einrichtung und verfahren zur wahlweisen multiplikation oder division zweier als binaerzahlen vorliegender operanden
DE60008689T2 (de) Arithmetische einheit mit, und verfahren zur das nach wahl verspäten von einem multiplikationsresultat

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee