DE19757891C2 - Arithmetic operating device for calculating a sum of two products - Google Patents

Arithmetic operating device for calculating a sum of two products

Info

Publication number
DE19757891C2
DE19757891C2 DE19757891A DE19757891A DE19757891C2 DE 19757891 C2 DE19757891 C2 DE 19757891C2 DE 19757891 A DE19757891 A DE 19757891A DE 19757891 A DE19757891 A DE 19757891A DE 19757891 C2 DE19757891 C2 DE 19757891C2
Authority
DE
Germany
Prior art keywords
bit
adder
bits
fdst
overlay
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
DE19757891A
Other languages
German (de)
Other versions
DE19757891A1 (en
Inventor
Mikio Hondou
Yi-Ming Tian
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE19757891A1 publication Critical patent/DE19757891A1/en
Application granted granted Critical
Publication of DE19757891C2 publication Critical patent/DE19757891C2/en
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
    • 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
    • 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/5443Sum of products

Description

Die vorlegende Erfindung betrifft eine arithmetische Betriebseinrichtung.The present invention relates to an arithmetic operating device.

Ein Bildpufferspeicher mit einer Funktion einer Verarbeitung von dreidimen­ sionalen Graphiken ist, um ein transparentes Objekt, das an der Vorderseite einer Bildebene angeordnet ist, darzustellen, mit einer Überlagerungseinheit zum Überlagern von Farbdaten des transparenten Objektes mit Farbdaten von anderen Objekten, die an einer tiefen Seite der Bildebene angeordnet sind, vorgesehen. In der offenen graphischen Bibliothek (offenen GL), die durch Silicon Graphics Inc. bereitgestellt ist, ist ein Überlagerungsdatenwert (Blend), der neu in einem Bildpuffer gespeichert ist, durch die folgende Gleichung (1) dargestellt, wobei SRC einen Ursprungsdatenwert darstellt (neuer Farbdaten­ wert, der extern angelegt ist, zum Anzeigen des transparenten Objektes, das an der Vorderseite der Bildebene angeordnet ist), FSRC einen Überlagerungs­ koeffizienten für den Ursprungsdatenwert darstellt, DST einen Bestimmungs­ datenwert darstellt (alter Farbdatenwert, der schon in dem Bildpufferspeicher gespeichert ist, zum Anzeigen des Objekts, das an der tiefen Seite der Bild­ ebene angeordnet ist) und FDST einen Überlagerungskoeffizienten für den Bestimmungsdatenwert darstellt.
An image buffer memory having a function of processing three-dimensional graphics is to display a transparent object which is arranged on the front side of an image plane, with an overlay unit for superimposing color data of the transparent object with color data of other objects which are on a deep side the image plane are provided. In the open graphic library (Open GL) provided by Silicon Graphics Inc., an overlay data value (blend) newly stored in an image buffer is represented by the following equation (1), where SRC represents an original data value (newer Color data value, which is applied externally, to display the transparent object which is arranged on the front side of the image plane), FSRC represents an overlay coefficient for the original data value, DST represents a determination data value (old color data value, which is already stored in the image buffer memory, to display the object located on the deep side of the image plane) and FDST represents an overlay coefficient for the determination data value.

BLEND = SRC × FSRC + DST × FDST ...(1)BLEND = SRC × FSRC + DST × FDST ... (1)

Zum Durchführen einer Berechnung, wie sie durch Gleichung (1) dargestellt ist, benötigt die Überlagerungseinheit allgemein zwei Multiplizierer und einen Addierer. Wenn ein Wallace-Baum beispielsweise verwendet wird, sind zwei Addiererbäume notwendig, wodurch die Größe der Überlagerungseinheit erhöht wird. Weiterhin ist es notwendig, zwei Multiplikationen und eine Endaddition durchzuführen, wodurch die Berechnungsgeschwindigkeit gering wird.To perform a calculation as represented by equation (1) , the overlay unit generally requires two multipliers and one Adder. For example, if a Wallace tree is used, there are two Adder trees necessary, which increases the size of the overlay unit becomes. It is also necessary to have two multiplications and a final addition to carry out, whereby the calculation speed is slow.

Schaltungen zum Berechnen von Produkten sind u. a. aus DE 39 01 995 C2 und DE 37 89 132 T2 bekannt.Circuits for calculating products are a. from DE 39 01 995 C2 and DE 37 89 132 T2 known.

Es ist Aufgabe der vorliegenden Erfindung, eine arithmetische Betriebseinrich­ tung zum Berechnen einer Summe von zwei Produkten vorzusehen, die in der Größe klein ist und einen schnellen arithmetischen Betrieb zuläßt.It is an object of the present invention to provide an arithmetic operating device device for calculating a sum of two products to be provided in the Size is small and allows fast arithmetic operation.

Die Aufgabe wird durch eine Einrichtung nach Anspruch 1 gelöst.The object is achieved by a device according to claim 1.

Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.Developments of the invention are specified in the subclaims.

Entsprechend einem Aspekt ist eine arithmetische Betriebseinrichtung zum Berechnen einer Summe eines Produktes eines ersten Multiplikators mit m Bits und eines ersten Multiplikanten mit n Bits und des Produktes eines zweiten Multiplikators mit m Bits und eines zweiten Multiplikanten mit n Bits vorge­ sehen, wobei die Einrichtung einen ersten Addierer, m Auswahlschaltungen und einen Addiererbaum aufweist. Der erste Addierer addiert den ersten und zwei­ ten Multiplikanten. Jede der m Auswahlschaltungen wählt von dem ersten Multiplikanten, dem zweiten Multiplikanten, einer Summe des ersten und zweiten Multiplikanten von dem ersten Addierer und 0 eines aus und erzeugt ein Teilprodukt entsprechend einem entsprechenden Bit des ersten und zweiten Multiplikators. Der Addiererbaum verschiebt die m Teilprodukte von den m Auswahlschaltungen um 1 Bit und berechnet die Summe der verschobenen Teilprodukte.According to one aspect, an arithmetic operating device for Compute a sum of a product of a first multiplier with m bits and a first multiplicant with n bits and the product of a second Multiplier with m bits and a second multiplicant with n bits  see, the device a first adder, m selection circuits and has an adder tree. The first adder adds the first and two multiplicants. Each of the m selection circuits selects from the first Multiplicants, the second multiplicant, a sum of the first and second multiplicants from the first adder and 0 one and generated a partial product corresponding to a corresponding bit of the first and second Multipliers. The adder tree shifts the m partial products from the m Selection circuits by 1 bit and calculates the sum of the shifted Partial products.

Bevorzugt weist jeder der m Auswahlschaltungen n Auswähler aus. Jeder der n Auswähler wählt ein entsprechendes Bit der Summe des ersten und zweiten Multiplikanten, wenn beide entsprechenden Bits des ersten und zweiten Mul­ tiplikators 1 betragen, wählt ein entsprechendes Bit des ersten Multiplikanten, wenn das entsprechende Bit des ersten Multiplikators 1 beträgt und das ent­ sprechende Bit des zweiten Multiplikators 0 beträgt, wählt das entsprechende Bit des zweiten Multiplikanten, wenn das entsprechende Bit des ersten Multi­ plikators 0 beträgt und das entsprechende Bit des zweiten Multiplikators 1 be­ trägt, und wählt 0, wenn beide entsprechenden Bits des ersten und zweiten Multiplikators 0 betragen.Each of the m selection circuits preferably has n selectors. Each of the n selectors selects a corresponding bit of the sum of the first and second multipliers if both corresponding bits of the first and second multipliers are 1 , selects a corresponding bit of the first multiplier if the corresponding bit of the first multiplier is 1 and the corresponding one Bit of the second multiplier is 0, selects the corresponding bit of the second multiplier if the corresponding bit of the first multiplier is 0 and the corresponding bit of the second multiplier is 1 , and selects 0 if both corresponding bits of the first and second multiplier 0 be.

Bevorzugt weist der Addiererbaum eine Mehrzahl von Addierern auf, die in einem Feld bzw. einer Matrix angeordnet sind. Jeder der Mehrzahl von Addie­ rer weist einen Übertrageingang, der mit einem Übertragausgang eines entspre­ chenden Addierers von n Addierern, die entsprechend dem ersten und zweiten Multiplikator um 1 Bit niedriger sind als er selbst, verbunden ist, einen ersten Dateneingang, der mit einem Ausgang eines entsprechenden der n Auswähler verbunden ist, einen zweiten Dateneingang, der mit einem Datenausgang eines Addierers, der 1 Bit höher ist als der entsprechende eine Addierer bezüglich der Bits des ersten und zweiten Multiplikanten, einen Datenausgang und einen Übertragungsausgang auf. The adder tree preferably has a plurality of adders, which in a field or a matrix are arranged. Any of the majority of Addie rer has a transfer input that corresponds to a carry output appropriate adder of n adders corresponding to the first and second Multiplier are 1 bit lower than it is connected, a first Data input associated with an output of a corresponding one of the n selectors is connected to a second data input which is connected to a data output of a Adder that is 1 bit higher than the corresponding one adder of the bits of the first and second multiplicants, a data output and one Transmission output on.  

Bevorzugt weist die arithmetische Betriebseinrichtung weiter einen Inverter und einen zweiten Addierer auf. Der Inverter invertiert die höchstwertigen Bits der m Teilprodukte. Der zweite Addierer addiert 1 zu jedem der höchstwer­ tigen Bits der Teilprodukte, die entsprechend dem niedrigstwertigen Bits der ersten und zweiten Multiplikatoren von den m Teilprodukten erzeugt sind, und zu Bits, die 1 Bit höher sind als die höchstwertigen Bits der Teilprodukte, die entsprechend den höchstwertigen Bits des ersten und zweiten Multiplikators erzeugt sind.The arithmetic operating device preferably also has an inverter and a second adder. The inverter inverts the most significant bits of the m partial products. The second adder adds 1 to each of the highest term bits of the partial products, which correspond to the least significant bits of the first and second multipliers are generated by the m subproducts, and to bits that are 1 bit higher than the most significant bits of the partial products that corresponding to the most significant bits of the first and second multipliers are generated.

Bevorzugt weist die arithmetische Betriebseinrichtung weiter eine Zurücksetz­ schaltung auf. Die Zurücksetzschaltung maskiert, d. h. setzt auf 0 zurück, die oberen Bits der Teilprodukte, die entsprechend den oberen Bits des ersten und zweiten Multiplikators erzeugt sind, und untere Bits der Teilprodukte, die ent­ sprechend den unteren Bits des ersten und zweiten Multiplikators erzeugt sind.The arithmetic operating device preferably also has a reset circuit on. The reset circuit masks, i.e. H. resets to 0 that upper bits of the partial products corresponding to the upper bits of the first and second multipliers are generated, and lower bits of the partial products, the ent speaking the lower bits of the first and second multiplier are generated.

Da die arithmetische Betriebseinrichtung den ersten Addierer zum Addieren des ersten und zweiten Multiplikanten und einen Auswähler zum Auswählen von einem von der Summe des Addierers, des ersten und zweiten Multiplikanten und 0 zum Erzeugen von Teilprodukten aufweist, kann die Größe des Addiererbaums, der die erzeugten Teilprodukte addiert, auf die Hälfte des Standes der Technik reduziert werden. Als Ergebnis kann die Größe der gesam­ ten arithmetischen Betriebseinrichtung reduziert werden und die Betriebsge­ schwindigkeit wird verbessert.Since the arithmetic operating means uses the first adder to add the first and second multiplicants and a selector for selecting one of the sum of the adder, the first and second multiplicants and 0 for producing partial products, the size of the Adder tree, which adds the partial products produced, to half of the State of the art can be reduced. As a result, the size of the total th arithmetic operating equipment can be reduced and the Betriebsge speed is improved.

Da jede der Auswahlschaltungen n Auswähler aufweist, ist die Struktur der arithmetischen Betriebseinheit vereinfacht.Since each of the selection circuits has n selectors, the structure is the arithmetic operating unit simplified.

Der Addierbaum weist eine Mehrzahl von Addierern auf, die in einem Feld an­ geordnet sind, und daher ist die Struktur der arithmetischen Betriebseinrich­ tung weiter vereinfacht.The adder tree has a plurality of adders that are in a field are ordered, and therefore the structure of the arithmetic facility tion further simplified.

Die arithmetische Betriebseinrichtung weist weiterhin einen Inverter zum In­ vertieren des höchstwertigen Bits der Teilprodukte und einen zweiten Addierer zum Addieren von 1 zu dem höchstwertigen Bit der Teilprodukte, die ent­ sprechend dem niedrigstwertigen Bit des Multiplikators erzeugt sind, und dem Bit, das 1 Bit höher ist als das höchstwertige Bit der Teilprodukte, die ent­ sprechend dem höchstwertigen Bit des Multiplikators erzeugt sind, auf, und daher kann die Summe der beiden Produkte korrekt berechnet werden, sogar wenn der erste und zweite Multiplikator negativ sind.The arithmetic operating device also has an inverter for the In vertieren the most significant bit of the partial products and a second adder  to add 1 to the most significant bit of the partial products that ent generated the least significant bit of the multiplier, and the Bit that is 1 bit higher than the most significant bit of the partial products that ent generated according to the most significant bit of the multiplier, and therefore the sum of the two products can be calculated correctly, even when the first and second multipliers are negative.

Die arithmetische Betriebseinrichtung weist eine Maskenschaltung zum Maskie­ ren der oberen Bits der Teilprodukte, die entsprechend den oberen Bits der Multiplikatoren erzeugt sind, und der unteren Bits der Teilprodukte, die ent­ sprechend der unteren Bits der Multiplikatoren erzeugt sind, auf und daher kann nicht nur die Multiplikation von n . m Bits durchgeführt werden, sondern auch die Multiplikation einer kleineren Anzahl von Bits kann gleichzeitig durchgeführt werden.The arithmetic operating device has a mask circuit for masking ren of the upper bits of the partial products, which correspond to the upper bits of the Multipliers are generated, and the lower bits of the partial products, which ent speaking of the lower bits of the multipliers are generated on and therefore cannot just multiply n. m bits are performed, but even multiplying a smaller number of bits can be done simultaneously be performed.

Weitere Vorteile und Zweckmäßigkeiten der Erfindung ergeben sich aus der folgenden Beschreibung von Ausführungsformen anhand der Figuren (entsprechende Abschnitte in den Figuren sind durch die gleichen Bezugs­ zeichen bezeichnet und eine Beschreibung davon wird nicht wiederholt). Von den Figuren zeigen:Further advantages and advantages of the invention result from the following description of embodiments with reference to the figures (Corresponding sections in the figures are given the same reference denotes characters and a description thereof is not repeated). From the figures show:

Fig. 1 eine schematische Darstellung, die ein Konzept einer typischen Ein­ richtung für den arithmetischen Überlagerungsvorgang, die zwei Multi­ plizierer verwendet, zeigt; Fig. 1 is a schematic diagram showing a concept of a typical arithmetic overlay operation using two multipliers;

Fig. 2 eine schematische Ansicht, die das Konzept des Verfahrens zeigt, bei dem zwei Teilprodukte, die für das gleiche Bit eines Überlagerungs­ koeffizienten erzeugt werden, zuerst berechnet werden; Fig. 2 is a schematic view showing the concept of the method in which two partial products generated for the same bit of an overlay coefficient are calculated first;

Fig. 3 ein schematisches Diagramm, das ein Konzept der Einrichtung für den arithmetischen Überlagerungsvorgang entsprechend der ersten Aus­ führungsform zeigt; Fig. 3 is a schematic diagram showing a concept of the device for the arithmetic overlay operation according to the first embodiment;

Fig. 4 ein Blockschaltbild, das eine spezielle Struktur der Einrichtung für den arithmetischen Überlagerungsvorgang, die in Fig. 3 gezeigt ist, zeigt; Fig. 4 is a block diagram showing a specific structure of the arithmetic overlay process device shown in Fig. 3;

Fig. 5 ein Schaltbild, das eine Struktur eines in Fig. 4 gezeigten Halbaddierers zeigt; Fig. 5 is a circuit diagram showing a structure of a half adder shown in Fig. 4;

Fig. 6 ein schematisches Schaltbild, das eine Struktur eines in Fig. 4 gezeigten Volladdierers zeigt; Fig. 6 is a schematic circuit diagram showing a structure of a full adder shown in Fig. 4;

Fig. 7 ein Schaltbild, das eine Struktur eines in Fig. 4 gezeigten anderen Voll­ addierers zeigt; Fig. 7 is a circuit diagram showing a structure of another full adder shown in Fig. 4;

Fig. 8 ein schematisches Schaltbild, das eine Struktur eines in Fig. 4 gezeigten anderen Halbaddierers zeigt; Fig. 8 is a schematic circuit diagram showing a structure of another half adder shown in Fig. 4;

Fig. 9 ein schematisches Schaltbild, das eine Struktur eines noch anderen Volladdierers, der in Fig. 4 gezeigt ist, zeigt; Fig. 9 is a schematic circuit diagram showing a structure of still another full adder shown in Fig. 4;

Fig. 10 ein schematisches Schaltbild, das eine Struktur eines noch anderen Volladdierers, der in Fig. 4 gezeigt ist, zeigt; Fig. 10 is a schematic circuit diagram showing a structure of still another full adder shown in Fig. 4;

Fig. 11 ein schematisches Schaltbild, das eine Struktur eines noch anderen Volladdierers, der in Fig. 4 gezeigt ist, zeigt; Fig. 11 is a schematic circuit diagram showing a structure of still another full adder shown in Fig. 4;

Fig. 12 ein schematisches Schaltbild, das eine Struktur eines in Fig. 5 ge­ zeigten XOR-Gatters zeigt; Fig. 12 is a schematic circuit diagram showing a structure of an XOR gate shown in Fig. 5;

Fig. 13 ein schematisches Schaltbild, das eine Struktur eines in Fig. 6 ge­ zeigten XNOR-Gatters zeigt; Fig. 13 is a schematic circuit diagram showing a structure of an XNOR gate shown in Fig. 6;

Fig. 14 ein schematisches Schaltbild, das eine Struktur eines in Fig. 5 ge­ zeigten Multiplexers zeigt; Fig. 14 is a schematic circuit diagram showing a structure of a multiplexer shown in Fig. 5;

Fig. 15 ein Konzept der Teilprodukte, wenn der Ursprungsdatenwert oder der Bestimmungsdatenwert negativ ist;A concept of the partial products when the originating data or destination data value is negative Fig. 15;

Fig. 16 ein Konzept der Teilprodukte, die in einer Überlagerungseinrichtung entsprechend einer zweiten Ausführungsform erzeugt sind; FIG. 16 is a concept of the partial products that are generated in a superimposing device according to a second embodiment;

Fig. 17 ein Blockschaltbild, das eine spezielle Struktur der in Fig. 16 gezeigten Einrichtung für den arithmetischen Überlagerungsvorgang zeigt; Fig. 17 is a block diagram showing a specific structure of the arithmetic overlay process shown in Fig. 16;

Fig. 18 ein schematisches Schaltbild, das eine Struktur eines in Fig. 17 ge­ zeigten Halbladdierers zeigt; Fig. 18 is a schematic circuit diagram showing a structure of a half adder shown in Fig. 17;

Fig. 19 ein schematisches Schaltbild, das eine Struktur eines in Fig. 17 ge­ zeigten anderen Halbaddierers zeigt; Fig. 19 is a schematic circuit diagram showing a structure of another half adder shown in Fig. 17;

Fig. 20 ein schematisches Schaltbild, das eine Struktur eines in Fig. 17 ge­ zeigten Halbaddierers zeigt; Fig. 20 is a schematic circuit diagram showing a structure of a half adder shown in Fig. 17;

Fig. 21 ein schematisches Schaltbild, das eine Struktur eines in Fig. 19 ge­ zeigten Multiplexers zeigt; Fig. 21 is a schematic circuit diagram showing a structure of a multiplexer shown in Fig. 19;

Fig. 22 eine Darstellung, die das Prinzip der Einrichtung für den arithmetischen Überlagerungsvorgang entsprechend der dritten Ausführungsform zeigt; Fig. 22 is an illustration showing the principle of the arithmetic overlay processing device according to the third embodiment;

Fig. 23 eine andere Darstellung, die das Prinzip der in Fig. 22 gezeigten Ein­ richtung für den arithmetischen Überlagerungsvorgang zeigt; Fig. 23 is another illustration showing the principle of the device shown in Fig. 22 for the arithmetic overlay process;

Fig. 24 ein Blockschaltbild, das eine spezielle Struktur der in Fig. 22 und 23 gezeigten Einrichtung für den arithmetischen Überlagerungsvorgang zeigt; und Fig. 24 is a block diagram showing a specific structure of the arithmetic overlay operation shown in Figs. 22 and 23; and

Fig. 25 ein schematisches Schaltbild, das eine Struktur eines Auswählers mit einer Maskierungsfunktion, der in Fig. 24 gezeigt ist, zeigt. FIG. 25 is a schematic circuit diagram showing a structure of a selector with a masking function shown in FIG. 24.

Wenn ein Überlagerungsvorgang, der durch die Gleichung (1) dargestellt ist, unter Verwendung von zwei Multiplizierern durchzuführen ist, werden im all­ gemeinen eine Mehrzahl von Teilprodukten 1 durch Multiplizieren des gesam­ ten Bestimmungsdatenwertes DST für jedes Bit mit seinem Überlagerungskoef­ fizient FDST erzeugt und werden separat einer Mehrzahl von Teilprodukten 2 durch Multiplizieren des gesamten Ursprungsdatenwertes SRC für jedes Bit mit seinem Überlagerungskoeffizient FSRC erzeugt, wie in Fig. 1 gezeigt ist. Durch Berechnen der Summe der Mehrzahl von Teilprodukten 1 wird das Pro­ dukt des Bestimmungsdatenwertes DST und des Überlagerungskoeffizientens FDST erhalten und durch Berechnen der Summe der Mehrzahl von Teilproduk­ ten 2 wird das Produkt des Ursprungsdatenwertes SRC und des Überlagerungs­ koeffizientens FSRC erhalten. Durch Addieren dieser beiden Produkte in einem Addierer 3 wird ein überlagerter Datenwert BLEND erhalten.Generally, when an overlay operation represented by the equation (1) is to be performed using two multipliers, a plurality of partial products 1 are generated by multiplying the total determination data value DST for each bit by its overlay coefficient FDST and are separated a plurality of partial products 2 by multiplying the total original data SRC for each bit by its overlay coefficient FSRC, as shown in FIG. 1. By calculating the sum of the plurality of partial products 1 , the product of the determination data DST and the overlay coefficient FDST is obtained, and by calculating the sum of the plurality of partial products 2 , the product of the original data value SRC and the overlay coefficient FSRC is obtained. By adding these two products in an adder 3, a superimposed data value BLEND is obtained.

Bei dem obigen Vorgang werden die Summe der Mehrzahl von Teilprodukten 1 und die Summe der Mehrzahl von Teilprodukten 2 getrennt voneinander be­ rechnet und die beiden resultierenden Summen werden addiert. Es kann jedoch die Summe von einem Teilprodukt 1 und einem Teilprodukt 2, die dem gleichen Bit der Überlagerungskoeffizienten FDST und FSRC entsprechen, berechnet werden und danach können die Mehrzahl der Summen addiert werden. Hier ist die Summe von einem Teilprodukt 1 und einem Teilprodukt 2 eine von DST + SRC, DST, SRC und 0.In the above process, the sum of the plurality of partial products 1 and the sum of the plurality of partial products 2 are calculated separately from each other, and the two resulting sums are added. However, the sum of a partial product 1 and a partial product 2 , which correspond to the same bit of the superimposition coefficients FDST and FSRC, can be calculated and then the majority of the sums can be added. Here the sum of a partial product 1 and a partial product 2 is one of DST + SRC, DST, SRC and 0.

Wenn der Ursprungsdatenwert SRC 01012 (510) beträgt und der Überlage­ rungskoeffizient FSRC 00112 (310) beträgt, dann wird das Produkt SRC × FSRC entsprechend dem folgenden Ausdruck (2) berechnet.If the original data value SRC 0101 is 2 (5 10 ) and the overlay coefficient FSRC 0011 is 2 (3 10 ), then the product SRC × FSRC is calculated according to the following expression (2).

Wie aus dem obigen Ausdruck ersichtlich ist, ist jedes Bit des Überlagerungs­ koeffizieten FSRC entweder 0 oder 1. Daher ist das Teilprodukt des Ur­ sprungsdatenwertes SRC und jedes Bits des Überlagerungskoeffizientens SFRC entweder 0 oder der Ursprungsdatenwert SRC selbst.As can be seen from the expression above, each bit is of the overlay Coefficients FSRC either 0 or 1. Therefore, the partial product of the original jump data value SRC and each bit of the overlay coefficient SFRC either 0 or the original data value SRC itself.

Wenn der Bestimmungsdatenwert DST 10012 (910) beträgt und der Überlage­ rungskoeffizient FDST 10102 (1010) beträgt, wird das Produkt DST × FDST entsprechend dem folgenden Ausdruck (3) berechnet.When the determination data is DST 1001 2 (9 10 ) and the overlay coefficient FDST 1010 is 2 (10 10 ), the product DST × FDST is calculated according to the following expression (3).

Wie von dem obigen Ausdruck ersichtlich ist, beträgt jedes Bit des Überlage­ rungskoeffizientens FDST entweder 0 oder 1. Daher ist das Teilprodukt des Bestimmungsdatenwertes DST und jedes Bits des Überlagerungskoeffizientens FDST entweder 0 oder der Bestimmungsdatenwert DST selbst.As can be seen from the above expression, each bit of the overlay is ration coefficient FDST is either 0 or 1. Therefore, the partial product of Determination data DST and each bit of the overlay coefficient FDST either 0 or the determination data value DST itself.

Folglich ist die Summe des Teilproduktes 1 und des Teilproduktes 2 eines von DST + SRC, DST, SRC oder 0, wie oben beschrieben wurde.Thus, the sum of sub-product 1 and sub-product 2 is one of DST + SRC, DST, SRC or 0, as described above.

Die Ausführungsformen sind dadurch gekennzeichnet, daß ein Voraddierer zum vorherigen Berechnen der Summe des Ursprungsdatenwertes und des Bestim­ mungsdatenwertes vorgesehen ist, der eine solche Natur des Überlagerungs­ vorganges berücksichtigt.The embodiments are characterized in that a pre-adder for previously calculating the sum of the original data value and the determ is provided such a nature of the overlay process taken into account.

1. Ausführungsform1st embodiment

Fig. 3 ist eine schematische Darstellung, die ein Konzept der Einrichtung für den arithmetischen Überlagerungsvorgang (arithmetische Betriebseinrichtung) entsprechend der ersten Ausführungsform zeigt. Wie in dieser Figur gezeigt ist, weist die Einrichtung für den arithmetischen Überlagerungsvorgang einen Voraddierer 11 zum Addieren des Ursprungsdatenwertes SRC und des Bestim­ mungsdatenwertes DST auf. Für jedes Bit der Überlagerungskoeffizienten FSRC und FDST wird von dem Ursprungsdatenwert SRC, dem Bestimmungsdatenwert DST, der Summe des Bestimmungsdatenwertes und des Ursprungsdatenwertes DST + SRC und 0 eins ausgewählt und somit werden die Teilprodukte 4 er­ zeugt. Wenn ein spezielles Bit des Überlagerungskoeffizientens FDST und das entsprechende Bit des Überlagerungskoeffizienten FSRC beide 1 betragen, wird die Summe DST + SRC ausgewählt. Wenn ein spezielles Bit des Überlage­ rungskoeffizientes FDST 1 beträgt und das entsprechende Bit des Überlage­ rungskoeffzientens FSRC 0 beträgt, wird der Bestimmungsdatenwert DST aus­ gewählt. Wenn ein spezielles Bit des Überlagerungskoeffizientens FDST 0 be­ trägt und das entsprechende Bit des Überlagerungskoeffizienten FSRC 1 be­ trägt, wird der Ursprungsdatenwert SRC ausgewählt. Wenn ein spezielles Bit des Überlagerungskoeffizientens FDST und das entsprechende Bit des Über­ lagerungskoeffizienten FSRC beide 0 betragen, wird 0 ausgewählt. FIG. 3 is a schematic diagram showing a concept of the arithmetic superposition process device (arithmetic operation device) according to the first embodiment. As shown in this figure, the arithmetic superposition process means has a pre-adder 11 for adding the original data SRC and the determination data DST. For each bit of the overlay coefficients FSRC and FDST, one is selected from the original data value SRC, the determination data value DST, the sum of the determination data value and the original data value DST + SRC and 0 and thus the partial products 4 are generated. If a specific bit of the overlay coefficient FDST and the corresponding bit of the overlay coefficient FSRC are both 1, the sum DST + SRC is selected. If a specific bit of the overlay coefficient FDST is 1 and the corresponding bit of the overlay coefficient FSRC is 0, the determination data DST is selected. When a particular bit of the overlay coefficient FDST is 0 and the corresponding bit of the overlay coefficient FSRC is 1, the original data value SRC is selected. If a specific bit of the overlay coefficient FDST and the corresponding bit of the overlay coefficient FSRC are both 0, 0 is selected.

Wenn der Bestimmungsdatenwert DST 10012 beträgt, der Überlagerungskoef­ fizient FDST 10102 beträgt, der Ursprungsdatenwert SRC 01012 beträgt und der Überlagerungskoeffizient FSRC 00112 beträgt, dann bereitet der Voraddie­ rer 11 vorher 11102 1310 als die Summe DST + SRC, wie oben beschrieben wurde.If the determination data DST 1001 is 2 , the overlay coefficient FDST 1010 is 2 , the original data SRC 0101 is 2 and the overlay coefficient FSRC 0011 is 2 , then the pre-adder 11 previously prepares 1110 2 13 10 as the sum DST + SRC as above has been described.

Das 0te Bit (niederwertigestes Bit) des Überlagerungskoeffizientens FDST be­ trägt 0 und das 0te des Überlagerungskoeffizientens FSRC beträgt 1. Daher wird das Teilprodukt, das für das 0te Bit erzeugt wird, 01012 (SRC) betragen, wie in dem folgenden Ausdruck (4) gezeigt ist. Da das erste Bit der Überlage­ rungskoeffizienten FDST und FSRC beide 1 betragen, beträgt das Teilprodukt, das für das erste Bit erzeugt ist, 11102 (DST + SRC). Da das zweite Bit der Überlagerungskoeffizienten FDST und FSRC beide 0 betragen, beträgt das für das zweite Bit erzeugte Teilprodukt 00002. Das dritte Bit (höchstwertiges Bit) des Überlagerungskoeffizientes FDST beträgt 1 und das dritte Bit des Über­ lagerungskoeffizientens FSRC beträgt 0. Daher beträgt das Teilprodukt, das für das dritte Bit erzeugt ist, 10012 (DST).The 0th bit (least significant bit) of the overlay coefficient FDST is 0 and the 0th of the overlay coefficient FSRC is 1. Therefore, the partial product generated for the 0th bit will be 0101 2 (SRC) as in the following expression (4) is shown. Since the first bit of the overlay coefficients FDST and FSRC are both 1, the partial product generated for the first bit is 1110 2 (DST + SRC). Since the second bit of the overlay coefficients FDST and FSRC are both 0, the partial product 0000 generated for the second bit is 2 . The third bit (most significant bit) of the overlay coefficient FDST is 1 and the third bit of the overlay coefficient FSRC is 0. Therefore, the partial product generated for the third bit is 1001 2 (DST).

Durch Verschieben der vier Teilprodukte um jeweils ein Bit und Berechnen der Summe der verschobenen Teilprodukte resultiert der überlagerte Datenwert BLEND 11010012 (10510).Shifting the four partial products by one bit each and calculating the sum of the shifted partial products results in the superimposed data value BLEND 1101001 2 (105 10 ).

Fig. 4 ist ein Blockschaltbild, das eine spezielle Struktur der in Fig. 3 gezeig­ ten Einrichtung für den arithmetischen Überlagerungsvorgang zeigt. Die Ein­ richtung für den arithmetischen Überlagerungsvorgang berechnet die Summe des Produktes des Ursprungsdatenwertes SRC [3:0] mit 4 Bits und des Über­ lagerungskoeffizientens FSRC [3:0] mit 4 Bits und des Produktes des Bestim­ mungsdatenwertes DST [3:0] mit 4 Bits und des Überlagerungskoeffizientens FDST [3:0] mit 4 Bits. FIG. 4 is a block diagram showing a specific structure of the arithmetic superimposing device shown in FIG. 3. The device for the arithmetic overlay process calculates the sum of the product of the original data value SRC [3: 0] with 4 bits and the overlay coefficient FSRC [3: 0] with 4 bits and the product of the determination data value DST [3: 0] with 4 Bits and the 4-bit overlay coefficient FDST [3: 0].

Wie in Fig. 4 gezeigt ist, weist die Einrichtung für den arithmetischen Über­ lagerungsvorgang einen Voraddierer 11 zum vorherigen Berechnen der Summe SRC + DST des Ursprungsdatenwertes SRC und des Bestimmungsdatenwertes DST, vier Auswahlschaltungen 12-15, die Teilprodukte erzeugen, und einen Addiererbaum (160-613, 170-173, 180-183, 190-193) zum Berechnen der Summen der Teilprodukte auf.As shown in Fig. 4, the arithmetic superposition process means includes a pre-adder 11 for previously calculating the sum SRC + DST of the original data SRC and the determination data DST, four selection circuits 12-15 which produce partial products, and an adder tree ( 160 -613 , 170-173 , 180-183 , 190-193 ) to calculate the sums of the partial products.

Der Voraddierer 11 ist ein sogenannter Schnellübertragaddierer (Ripple-carry- Addierer), der einen Halbaddierer 110 und Volladdierer 111-113 aufweist. Der Halbaddierer 110 weist einen Dateneingang A, einen Datenausgang S. einen Übertrageingang CI und einen Übertragausgang CO auf. Das 0te Bit DST [0] des Bestimmungsdatenwertes wird an den Übertrageingang CI des Halbaddie­ rers 110 angelegt. Das 0te Bit SRC [0] des Ursprungsdatenwertes wird an den Dateneingang A des Halbaddierers 110 angelegt. Jeder der Volladdierer 111113 weist Dateneingänge A und B, einen Datenausgang S. einen Übertrag­ eingang CI und einen Übertragausgang CO auf. Das erste Bit DST [1] des Bestimmungsdatenwertes wird an den Dateneingang B des Volladdierers 111 angelegt. Das erste Bit SRC [1] des Ursprungsdatenwertes wird an den Daten­ eingang A des Volladdierers 111 angelegt. Die Übertragausgabe CO des Volladdierers 110 wird an den Übertrageingang CI des Volladdierers 111 an­ gelegt. Das zweite Bit DST [2] des Bestimmungsdatenwertes wird an den Dateneingang des Volladdierers 112 angelegt. Das zweite Bit SRC [2] des Ur­ sprungsdatenwertes wird an den Dateneingang A des Volladdierers 112 ange­ legt. Der Übertragausgang CO des Volladdierers 111 ist mit dem Übertragsein­ gang CI des Volladdierers 112 verbunden. Das dritte Bit DST [3] des Bestim­ mungsdatenwertes wird an den Dateneingang B des Volladdierers 113 angelegt. Das dritte Bit SRC [3] des Ursprungsdatenwertes wird an den Dateneingang A des Volladdierers 113 angelegt. Der Übertragsausgang CO des Volladdierers 112 ist mit dem Übertragseingang CI des Volladdierers 113 verbunden.The pre-adder 11 is a so-called ripple-carry adder, which has a half adder 110 and full adder 111-113 . The half adder 110 has a data input A, a data output S. a transmission input CI and a carry output CO. The 0th bit DST [0] of the determination data value is applied to the transmission input CI of the half adder 110 . The 0th bit SRC [0] of the original data value is applied to the data input A of the half adder 110 . Each of the full adders 111-113 has data inputs A and B, a data output S, a carry input CI and a carry output CO to. The first bit DST [1] of the determination data value is applied to the data input B of the full adder 111 . The first bit SRC [1] of the original data value is applied to the data input A of the full adder 111 . The carry output CO of the full adder 110 is applied to the carry input CI of the full adder 111 . The second bit DST [2] of the determination data value is applied to the data input of the full adder 112 . The second bit SRC [2] of the original data value is applied to the data input A of the full adder 112 . The carry output CO of the full adder 111 is connected to the carry input CI of the full adder 112 . The third bit DST [3] of the determination data value is applied to the data input B of the full adder 113 . The third bit SRC [3] of the original data value is applied to the data input A of the full adder 113 . The carry output CO of the full adder 112 is connected to the carry input CI of the full adder 113 .

Die Auswahlschaltung 12 wählt einen von den vier Datenwerten, das sind der Sourcedatenwert SRC [3:0], der Bestimmungsdatenwert DST [3:0], die Summe SRC [3:0] + DST [3:0] des Ursprungsdatenwertes und des Bestimmungs­ datenwertes von dem Voraddierer 11 und 00002, entsprechend den 0ten Bits SFRC [0] und FDST [0] der Überlagerungskoeffizienten aus. Die Auswahl­ schaltung 13 wählt einen der oben aufgeführten vier Datenwerte entsprechend den ersten Bits FSRC [1] und FDST [1] der Überlagerungskoeffizienten aus. Die Auswahlschaltung 14 wählt einen der oben aufgeführten vier Datenwerte entsprechend den zweiten Bits SFRC [2] und FDST [2] der Übertragungskoef­ fizienten aus. Die Auswahlschaltung 15 wählt einen der oben aufgeführten vier Datenwerte entsprechend den dritten Bits SFRC [3] und FDST [3] der Über­ lagerungskoeffizienten aus. The selection circuit 12 selects one of the four data values, that is, the source data SRC [3: 0], the determination data DST [3: 0], the sum SRC [3: 0] + DST [3: 0] of the original data and the determination data from the pre-adder 11 and 0000 2 , corresponding to the 0th bits SFRC [0] and FDST [0] of the overlay coefficients. The selection circuit 13 selects one of the four data values listed above corresponding to the first bits FSRC [1] and FDST [1] of the overlay coefficients. The selection circuit 14 selects one of the four data values listed above corresponding to the second bits SFRC [2] and FDST [2] of the transmission coefficients. The selection circuit 15 selects one of the four data values listed above corresponding to the third bits SFRC [3] and FDST [3] of the overlay coefficients.

Der Addiererbaum (160-163, 170-173, 180-183 und 190-193) verschiebt die vier Teilprodukte der Auswahlschaltungen 12-15 um 1 Bit und berechnet die Summe der verschobenen Teilprodukte.The adder tree ( 160-163 , 170-173 , 180-183 and 190-193 ) shifts the four partial products of the selection circuits 12-15 by 1 bit and calculates the sum of the shifted partial products.

Genauer weist die Auswahlschaltung 12 vier Auswähler 120-123 entsprechend den Bits des Ursprungsdatenwertes SRC [3:0]und des Bestimmungsdatenwertes DST [3:0] auf. Wenn beide 0te Bits SFRC [0] und FDST [0] der Überlage­ rungskoeffizienten 1 betragen, wählen die Auswähler 120-123 jeweils die Datenausgänge S der Addierer 110-113. Wenn das 0te Bit FSRC [0] des Über­ lagerungskoeffizientens 1 beträgt und das 0te Bit FDST [0] des Überlage­ rungskoeffizientes 0 beträgt, wählen die Auswähler 120-123 das 0te bis 3te Bit SRC [0] bis SRC [3] des Ursprungsdatenwertes aus. Wenn das 0te Bit FSRC [0] des Überlagerungskoeffizientens 0 beträgt und das 0te Bit FDST [0] des Überlagerungskoeffizientens 1 beträgt, wählen die Auswähler 120-123 das 0te bis 3te Bit DST [0]-DST [3] des Ursprungsdatenwertes aus. Wenn die 0ten Bits FSRC [0] und FDST [0] der Überlagerungskoeffizienten beide 0 betragen, wählen die Auswähler 120-123 0 aus. Die Auswahlschaltung 12 weist weiterhin einen Auswähler 124 auf, der die Übertragsausgabe CO des Voraddierers 113 auswählt, wenn sowohl das 0te Bit FSRC [0] als auch das 0te Bit FDST [0] der Überlagerungskoeffizienten 1 betragen.More specifically, the selection circuit 12 has four selectors 120-123 corresponding to the bits of the original data SRC [3: 0] and the determination data DST [3: 0]. If both 0th bits SFRC [0] and FDST [0] of the superimposition coefficient are 1, the selectors 120-123 each select the data outputs S of the adders 110-113 . When the 0th bit FSRC [0] of the overlay coefficient is 1 and the 0th bit FDST [0] of the overlay coefficient is 0, the selectors 120-123 select the 0th to 3rd bits SRC [0] to SRC [3] of the original data value . When the 0th bit FSRC [0] of the overlay coefficient is 0 and the 0th bit FDST [0] of the overlay coefficient is 1, the selectors 120-123 select the 0th to 3rd bit DST [0] -DST [3] of the original data value. If the 0th bits FSRC [0] and FDST [0] of the overlay coefficients are both 0, the selectors 120-123 select 0. The selection circuit 12 also has a selector 124 , which selects the carry output CO of the pre-adder 113 if both the 0th bit FSRC [0] and the 0th bit FDST [0] of the superimposition coefficients are 1.

Die Auswahlschaltung 13 weist ebenfalls vier Auswähler 130-133 auf. Die Auswähler 130-133 sind ungefähr in der gleichen Art wie die Auswähler 120123 strukturiert. Im Gegensatz zu den Auswählern 120-123 wählen die Aus­ wähler entsprechend den ersten Bits FSRC [1] und FDST [1] der Überlage­ rungskoeffizienten aus. Die Auswahlschaltung 14 weist ebenfalls vier Auswäh­ ler 140-143 auf. Die Auswähler 140-143 sind ungefähr in der gleichen Art wie die Auswähler 120-123 strukturiert. Im Unterschied zu den Auswählern 120123 wählen die Auswähler entsprechend den zweiten Bits FSRC [2] und FDST [2] der Überlagerungskoeffizienten aus. Die Auswahlschaltung 15 weist eben­ falls vier Auswähler 150-153 auf. Die Auswähler 150-153 sind ungefähr in der gleichen Art wie die Auswähler 120-123 strukturiert. Im Unterschied zu den Auswählern 120-123 wählen jedoch die Auswähler entsprechend den dritten Bits SFRC [3] und FDST [3] der Überlagerungskoeffizienten aus.The selection circuit 13 also has four selectors 130-133 . The selectors 130-133 are approximately in the same way as the selectors 120 - structured 123rd In contrast to the selectors 120-123 , the selectors select according to the first bits FSRC [1] and FDST [1] of the overlay coefficients. The selection circuit 14 also has four selectors 140-143 . The selectors 140-143 are structured in approximately the same way as the selectors 120-123 . In contrast to the selectors 120 to 123, the selectors [2] and FDST [2] of the superposition coefficients corresponding to the second bit FSRC. The selection circuit 15 also has four selectors 150-153 . The selectors 150-153 are structured in approximately the same way as the selectors 120-123 . In contrast to the selectors 120-123 , however, the selectors select according to the third bits SFRC [3] and FDST [3] of the overlay coefficients.

Die Auswahlschaltung 13 weist weiterhin einen Auswähler 134 auf, der ähnlich zu dem Auswähler 124 ist. Die Auswahlschaltung 14 weist weiterhin einen Auswähler 144 auf, der ähnlich zu dem Auswähler 124 ist. Die Auswahlschal­ tung 15 weist weiterhin einen Auswähler 154 auf, der ähnlich zu dem Auswäh­ ler 124 ist.The selection circuit 13 also has a selector 134 , which is similar to the selector 124 . The selection circuit 14 also has a selector 144 , which is similar to the selector 124 . The selection circuit 15 also has a selector 154 , which is similar to the selector 124 .

Der Addiererbaum ist als Übertragssicherungsaddierer bekannt, der sechzehn Addierer 160-163, 170-173, 180-183 und 190-193 aufweist, die in einem Feld von 4 × 4 angeordnet sind. Eine Addiererschaltung 16, die die Halbaddierer 160-163 aufweist, addiert bitweise die durch die Auswahlschaltung 13 erzeug­ ten Teilprodukte mit den durch die Auswahlschaltung 12 erzeugten Teilpro­ dukte. Eine Addiererschaltung 17, die die Volladdierer 170-173 aufweist, addiert bitweise die durch die Auswahlschaltung 14 erzeugten Teilprodukte mit der Summe der Teilprodukte, die durch die Addiererschaltung 16 erzeugt sind. Eine Addiererschaltung 18, die die Volladdierer 180-183 aufweist, addiert bit­ weise die durch die Auswahlschaltung 15 erzeugten Teilprodukte mit der Summe der Teilprodukte, die durch die Addiererschaltung 17 erzeugt sind. Eine Addiererschaltung 19, die den Halbaddierer 190 und die Volladdierer 191193 aufweist, berechnet den Übertrag der Addiererschaltung 18.The adder tree is known as a carry save adder, which has sixteen adders 160-163 , 170-173 , 180-183 and 190-193 arranged in a 4 × 4 array. , An adder circuit 16 having the half-adders 160-163 bitwise adds the erzeug by the selection circuit 13 th partial products generated by the selection circuit 12 Teilpro-products. An adder circuit 17 , which has the full adders 170-173 , bit by bit adds the partial products generated by the selection circuit 14 to the sum of the partial products generated by the adder circuit 16 . An adder circuit 18 , which has the full adders 180-183 , bit by bit adds the partial products generated by the selection circuit 15 to the sum of the partial products generated by the adder circuit 17 . An adder circuit 19, which the half adder 190, and the full adders 191 - 193 has calculated the carry of the adder circuit 18th

Genauer weist der Halbaddierer 160 einen Übertrageingang CI, der mit einem Ausgang des Auswählers 121 verbunden ist, einen Dateneingang A, der mit einem Ausgang des Auswählers 130 verbunden ist, einen Datenausgang S und einen Übertragausgang CO auf. Die Halbaddierer 161-163 sind ungefähr ähn­ lich zu dem Halbaddierer 160 strukturiert. Der Volladdierer 170 weist einen Übertrageingang CI, der mit einem Übertragausgang des entsprechenden einen Halbaddierers 160 der vier Halbaddierer 160-163, die 1 Bit niedriger als der Addierer 170 bezüglich den Bits FSRC [0]-FSRC [3] und FDST [0]-FDST [3] der Überlagerungskoeffizienten sind, verbunden ist, einen Dateneingang A, der mit einem Ausgang des entsprechenden einen Auswählers 140 von den vier Auswählern 140 bis 143 verbunden ist, einen Dateneingang B, der mit einem Datenausgang S des Halbaddierers 161, der bezüglich des oben erwähnten ent­ sprechenden einen Halbaddierers 160 in Bezug zu den Bits SRC [0]-SRC [3] und DST [0]-DST [3] des Ursprungs- und Bestimmungsdatenwertes ein Bit höher ist, verbunden ist, einen Datenausgang S und einen Übertragausgang CO auf. Die Volladdierer 171-173 sind ungefähr ähnlich zu dem Volladdierer 170 strukturiert. Der Volladdierer 180 weist einen Übertrageingang CI, der mit dem Übertragausgang CO des Volladdierers 170 verbunden ist, einen Datenein­ gang A, der mit einem Ausgang des Auswählers 150 verbunden ist, einen Dateneingang B, der mit einem Datenausgang S des Volladdierers 171 verbun­ den ist, einen Datenausgang S und einen Übertragausgang CO auf. Die Volladdierer 181-183 sind ähnlich zu dem Volladdierer 180 strukturiert. Der Halbaddierer 190 weist einen Übertrageingang CI, der mit dem Übertragaus­ gang CO des Volladdierers 180 verbunden ist, einen Dateneingang A, der mit dem Datenausgang S des Volladdierers 181 verbunden ist, einen Datenausgang S und einen Übertragausgang CO auf. Der Volladdierer 191 weist einen Über­ trageingang CI, der mit dem Übertragausgang CO des Halbaddierers 190 ver­ bunden ist, einen Dateneingang B, der mit dem Übertragausgang CO des Volladdierers 181 verbunden ist, einen Dateneingang A, der mit dem Datenaus­ gang S des Volladdierers 182 verbunden ist, einen Datenausgang S und einen Übertragausgang CO auf. Der Volladdierer 192 ist ebenfalls ungefähr ähnlich zu dem Volladdierer 191 strukturiert. Der Volladdierer 193 weist einen Über­ trageingang CI, der mit dem Übertragausgang CO des Volladdierers 192 ver­ bunden ist, einen Dateneingang B, der mit dem Übertragausgang CO des Volladdierers 183 verbunden ist, einen Dateneingang A, der mit einem Ausgang des Auswählers 154 verbunden ist, einen Datenausgang S und einen Übertrag­ ausgang CO auf.More specifically, the half adder 160 has a transmission input CI, which is connected to an output of the selector 121 , a data input A, which is connected to an output of the selector 130 , a data output S and a carry output CO. The half adders 161-163 are structured approximately similarly to the half adder 160 . The full adder 170 has a carry input CI, which is connected to a carry output of the corresponding one half adder 160 of the four half adders 160-163 , which is 1 bit lower than the adder 170 with respect to the bits FSRC [0] -FSRC [3] and FDST [0] - FDST [3] of the superimposition coefficients are connected, a data input A which is connected to an output of the corresponding one selector 140 from the four selectors 140 to 143 , a data input B which is connected to a data output S of the half adder 161 which is related to the a half adder 160 mentioned above is connected to the SRC [0] -SRC [3] and DST [0] -DST [3] bits of the origin and destination data one bit higher, a data output S and a carry output CO on. The full adders 171-173 are structured approximately similar to the full adder 170 . The full adder 180 has a transmission input CI, which is connected to the carry output CO of the full adder 170 , a data input A, which is connected to an output of the selector 150 , a data input B, which is connected to a data output S of the full adder 171 , a data output S and a carry output CO. The full adders 181-183 are structured similarly to the full adder 180 . The half adder 190 has a transmission input CI, which is connected to the carry output CO of the full adder 180 , a data input A, which is connected to the data output S of the full adder 181 , a data output S and a carry output CO. The full adder 191 has a transmission input CI, which is connected to the carry output CO of the half adder 190 , a data input B, which is connected to the carry output CO of the full adder 181 , a data input A, which is connected to the data output S of the full adder 182 is, a data output S and a carry output CO. The full adder 192 is also structured approximately similarly to the full adder 191 . The full adder 193 has a transmission input CI, which is connected to the carry output CO of the full adder 192 , a data input B, which is connected to the carry output CO of the full adder 183 , a data input A, which is connected to an output of the selector 154 , a data output S and a carry output CO.

Daher berechnet die Einrichtung für den arithmetischen Überlagerungsvorgang einen Überlagerungsdatenwert BLEND [8:0] mit 9 Bits. Das 0te Bit BLEND [0] des Überlagerungsdatenwertes ist an dem Ausgang des Auswählers 120 vorgesehen. Das erste Bit BLEND [1] des Überlagerungsdatenwertes BLEND ist an dem Datenausgang S des Halbaddierers 160 vorgesehen. Das zweite Bit BLEND [2] des Überlagerungsdatenwertes ist an dem Ausgang S des Voll­ addierers 170 vorgesehen. Das dritte Bit BLEND [3] des Überlagerungs­ datenwertes ist an dem Datenausgang S des Volladdierers 180 vorgesehen. Das vierte Bit BLEND [4] des Überlagerungsdatenwertes ist an dem Datenausgang S des Halbaddierers 190 vorgesehen. Das fünfte Bit BLEND [5] des Überlage­ rungsdatenwertes ist an dem Datenausgang S des Volladdierers 191 vorge­ sehen. Das sechste Bit BLEND [6] des Überlagerungsdatenwertes ist an dem Datenausgang S des Volladdierers 192 vorgesehen. Das siebte Bit BLEND [7] des Überlagerungsdatenwertes ist an dem Datenausgang S des Volladdierers 193 vorgesehen. Das achte Bit BLEND [8] des Überlagerungsdatenwertes ist an dem Datenausgang CO des Volladdierers 193 vorgesehen.Therefore, the facility calculates an overlay data value BLEND [8: 0] with 9 bits for the arithmetic overlay operation. The 0th bit BLEND [0] of the overlay data value is provided at the output of the selector 120 . The first bit BLEND [1] of the overlay data value BLEND is provided at the data output S of the half adder 160 . The second bit BLEND [2] of the overlay data value is provided at the output S of the full adder 170 . The third bit BLEND [3] of the overlay data value is provided at the data output S of the full adder 180 . The fourth bit BLEND [4] of the overlay data value is provided at the data output S of the half adder 190 . The fifth bit BLEND [5] of the superimposition data value is provided on the data output S of the full adder 191 . The sixth bit BLEND [6] of the overlay data value is provided at the data output S of the full adder 192 . The seventh bit BLEND [7] of the overlay data value is provided at the data output S of the full adder 193 . The eighth bit BLEND [8] of the overlay data value is provided at the data output CO of the full adder 193 .

Wenn SRC [3:0] 0101 beträgt, der Überlagerungskoeffizienten FSRC [3:0] 0011 beträgt, der Bestimmungsdatenwert DST [3:0] 1001 beträgt und der Überlagerungskoeffizient FDST [3:0] 1010 beträgt, wie in dem oben beschrie­ benen Beispiel, wird 0101 (Ursprungsdatenwert SRC [3:0]) von den Auswäh­ lern 123-120 erhalten, wird 1110 (Summe des Ursprungsdatenwertes SRC [3:0] und Bestimmungsdatenwertes DST [3:0]) von den Auswählern 133-130 erhal­ ten, wird 0000 von den Auswählern 143-140 erhalten und wird 1001 (Bestimmungsdatenwert DST [3:0]) von den Auswählern 153-150 erhalten. Als Ergebnis wird ein Überlagerungsdatenwert BLEND [8:0] von 1101001 von dem Addiererbaum (160-163, 170-173, 180-183, 190-193) erhalten.When SRC is [3: 0] 0101, the overlay coefficient is FSRC [3: 0] 0011, the determination data value DST is [3: 0] 1001 and the overlay coefficient FDST is [3: 0] 1010 as in the example described above , 0101 (original data value SRC [3: 0]) is obtained from the selectors 123-120 , 1110 (sum of the original data value SRC [3: 0] and determination data value DST [3: 0]) is obtained from the selectors 133-130 , 0000 is obtained from the selectors 143-140 and 1001 (determination data DST [3: 0]) is obtained from the selectors 153-150 . As a result, an overlay data value BLEND [8: 0] of 1101001 is obtained from the adder tree ( 160-163 , 170-173 , 180-183 , 190-193 ).

Der Halbaddierer 110 weist beispielsweise ein XOR-Gatter (Exklusiv-ODER- Gatter) 1100, einen Multiplexer 1101 und einen Inverter 1102, wie in Fig. 5 gezeigt ist, auf. Die Halbaddierer 160-163 sind ähnlich zu dem Halbaddierer 110 strukturiert. Der Volladdierer 111 weist beispielsweise ein XOR-Gatter 1110, ein XNOR-Gatter 1111 (Exklusiv-WEDER-NOCH-Gatter), einen Inver­ ter 1112, einen Multiplexer 1113 und einen Inverter 1114, wie in Fig. 6 gezeigt ist, auf. Die Volladdierer 113 und 170 bis 173 sind ähnlich zu dem Volladdierer 111 strukturiert. Der Volladdierer 112 weist beispielsweise XOR-Gatter 1120 und 1121, einen Multiplexer 1122 und einen Inverter 1123, wie in Fig. 7 ge­ zeigt ist, auf. Die Volladdierer 180-183 sind ähnlich zu dem Volladdierer 112 strukturiert. Der Halbaddierer 190 weist beispielsweise ein XOR-Gatter 1900, einen Multiplexer 1901 und einen Inverter 1902, wie in Fig. 8 gezeigt ist, auf. Der Volladdierer 191 weist beispielsweise ein XNOR-Gatter 1911, ein XOR- Gatter 1912, einen Multiplexer 1913 und einen Inverter 1914, wie in Fig. 9 ge­ zeigt ist, auf. Der Volladdierer 192 weist beispielsweise XNOR-Gatter 1920 und 1921, einen Inverter 1922, einen Multiplexer 1923 und einen Inverter 1924, wie in Fig. 10 gezeigt ist, auf. Der Volladdierer 193 weist beispielsweise ein XNOR-Gatter 1930, ein XOR-Gatter 1931 und einen Multiplexer 1932, wie in Fig. 11 gezeigt ist, auf.The half adder 110 has, for example, an XOR gate (exclusive OR gate) 1100 , a multiplexer 1101 and an inverter 1102 , as shown in FIG. 5. The half adders 160-163 are structured similarly to the half adder 110 . The full adder 111 has, for example, an XOR gate 1110 , an XNOR gate 1111 (exclusive-NOR-GATE gate), an inverter 1112 , a multiplexer 1113 and an inverter 1114 , as shown in FIG. 6. The full adders 113 and 170 to 173 are structured similarly to the full adder 111 . The full adder 112 has, for example, XOR gates 1120 and 1121 , a multiplexer 1122 and an inverter 1123 , as shown in FIG. 7. The full adders 180-183 are structured similarly to the full adder 112 . The half adder 190 has, for example, an XOR gate 1900 , a multiplexer 1901 and an inverter 1902 , as shown in FIG. 8. The full adder 191 has, for example, an XNOR gate 1911 , an XOR gate 1912 , a multiplexer 1913 and an inverter 1914 , as shown in FIG. 9. The full adder 192 has, for example, XNOR gates 1920 and 1921 , an inverter 1922 , a multiplexer 1923 and an inverter 1924 , as shown in FIG. 10. The full adder 193 has, for example, an XNOR gate 1930 , an XOR gate 1931 and a multiplexer 1932 , as shown in FIG. 11.

Das XOR-Gatter 1100 weist beispielsweise einen Inverter 11000, einen Multi­ plexer 11001 und einen Inverter 11002, wie in Fig. 12 gezeigt ist, auf. Der Multiplexer 11001 wählt als Reaktion auf ein Eingangssignal I1 entweder ein Ausgabesignal des Inverters 11000 oder das andere Eingangssignal I2 aus. Das XOR-Gatter 1110, das in Fig. 6 gezeigt ist, das XOR-Gatter 1120, das in Fig. 7 gezeigt ist, das XOR-Gatter 1900, das in Fig. 8 gezeigt ist, das XOR-Gatter 1912, das in Fig. 9 gezeigt ist, und das in Fig. 11 gezeigte XOR-Gatter 1931 sind ähnlich zu dem XOR-Gatter 1100 strukturiert.The XOR gate 1100 has, for example, an inverter 11000 , a multiplexer 11001 and an inverter 11002 , as shown in FIG. 12. The multiplexer 11001 selects either an output signal of the inverter 11000 or the other input signal I2 in response to an input signal I1. The XOR gate 1110 shown in FIG. 6, the XOR gate 1120 shown in FIG. 7, the XOR gate 1900 shown in FIG. 8, the XOR gate 1912 shown in FIG FIG. 9 is shown, and the XOR gate 1931 shown in FIG. 11 is structured similarly to the XOR gate 1100 .

Das in Fig. 6 gezeigte XNOR-Gatter 1111 weist beispielsweise einen Inverter 11110, einen Multiplexer 11111 und einen Inverter 11112, wie in Fig. 13 ge­ zeigt ist, auf. Der Multiplexer 11111 wählt als Reaktion auf das eine Eingangs­ signal I1 entweder das andere Eingangssignal I2 oder ein Ausgabesignal des Inverters 11110 auf. Das in Fig. 9 gezeigte XNOR-Gatter 1911, die in Fig. 10 gezeigten XNOR-Gatter 1920 und 1921 und das in Fig. 11 gezeigte XNOR- Gatter 1930 sind ähnlich zu dem XNOR-Gatter 1111 strukturiert.The XNOR gate 1111 shown in FIG. 6 has, for example, an inverter 11110 , a multiplexer 11111 and an inverter 11112 , as shown in FIG. 13. The multiplexer 11111 selects either the other input signal I2 or an output signal of the inverter 11110 in response to the one input signal I1. The XNOR gate 1911 shown in FIG. 9, the XNOR gates 1920 and 1921 shown in FIG. 10, and the XNOR gate 1930 shown in FIG. 11 are structured similarly to the XNOR gate 1111 .

Der in Fig. 5 gezeigte Multiplexer 1101 weist beispielsweise Übertragungs­ gatter 11010 und 11011 und einen Inverter 11012 auf, wie in Fig. 14 gezeigt ist, auf. Als Reaktion auf ein Steuersignal SB auf einem L-Pegel wird das Übertragungsgatter 11010 eingeschaltet und das Übertragungsgatter 11011 ausgeschaltet und daher wird ein Eingangssignal I1 ausgegeben. Als Reaktion auf das Steuersignal SB auf einem H-Pegel wird das Übertragungsgatter 11010 ausgeschaltet und das Übertragungsgatter 11011 eingeschaltet und daher wird das andere Eingabesignal I2 ausgegeben. Der in Fig. 6 gezeigte Multiplexer 1113, der in Fig. 7 gezeigte Multiplexer 1122, der in Fig. 8 gezeigte Multi­ plexer 1901, der in Fig. 9 gezeigten Multiplexer 1913, der in Fig. 10 gezeigte Multiplexer 1923, der in Fig. 11 gezeigte Multiplexer 1932, der in Fig. 12 ge­ zeigte Multiplexer 11001 und der in Fig. 13 gezeigte Multiplexer 11111 sind ähnlich zu dem Multiplexer 1101 strukturiert.The multiplexer 1101 shown in FIG. 5 has, for example, transmission gates 11010 and 11011 and an inverter 11012 , as shown in FIG. 14. In response to a control signal SB at an L level, the transmission gate 11010 is turned on and the transmission gate 11011 is turned off, and therefore an input signal I1 is output. In response to the control signal SB at an H level, the transmission gate 11010 is turned off and the transmission gate 11011 is turned on, and therefore the other input signal I2 is output. The multiplexer 1113 shown in FIG. 6, the multiplexer 1122 shown in FIG. 7, the multiplexer 1901 shown in FIG. 8, the multiplexer 1913 shown in FIG. 9, the multiplexer 1923 shown in FIG. 10, the one shown in FIG. The multiplexer 1932 shown in FIG. 11, the multiplexer 11001 shown in FIG. 12 and the multiplexer 11111 shown in FIG. 13 are structured similarly to the multiplexer 1101 .

Wie oben beschrieben wurde, weist die Einrichtung für den arithmetischen Überlagerungsvorgang entsprechend der ersten Ausführungsform einen Addie­ rer 11 zum vorherigen Berechnen der Summe des Ursprungsdatenwertes und des Bestimmungsdatenwertes, d. h. SRC [3:0] + DST [3:0], und weiter Aus­ wahlschaltungen 12-15 zum Auswählen eines von vier Datenwerten, die die Summe SRC [3:0] + DST [3:0], den Ursprungsdatenwert SRC [3:0], den Be­ stimmungsdatenwert DST [3:0] und 0 enthalten, auf und daher kann die Größe des Addiererbaumes (160-163, 170-173, 180-183 und 190-193) zum Berechnen der Summe der Teilprodukte auf eine Hälfte der des Standes der Technik re­ duziert werden. Da die Größe des Addiererbaumes, der die meiste Zeit für den Vorgang beansprucht, auf eine Hälfte reduziert ist, kann die Geschwindigkeit des Vorgangs der Einrichtung für den arithmetischen Überlagerungsvorgang verglichen mit dem Stand der Technik verbessert werden. Weiterhin ist der Endaddierer 3, der in Fig. 1 gezeigt ist, nicht notwendig und daher wird die Geschwindigkeit des Vorgangs verglichen mit dem Stand der Technik verbes­ sert.As described above, the arithmetic superimposing device according to the first embodiment has an adder 11 for previously calculating the sum of the original data value and the determination data value, ie SRC [3: 0] + DST [3: 0], and further selection circuits 12-15 for selecting one of four data values containing the sum SRC [3: 0] + DST [3: 0], the original data value SRC [3: 0], the determination data value DST [3: 0] and 0 and therefore the size of the adder tree ( 160-163 , 170-173 , 180-183 and 190-193 ) for calculating the sum of the partial products can be reduced to half that of the prior art. Since the size of the adder tree, which takes up most of the time for the operation, is reduced to half, the speed of the operation of the arithmetic overlay operation device can be improved compared to the prior art. Furthermore, the final adder 3 shown in Fig. 1 is not necessary, and therefore the speed of the operation is improved compared to the prior art.

2. Ausführungsform2nd embodiment

In der oben beschriebenen ersten Ausführungsform sind sowohl der Source­ datenwert als auch der Bestimmungsdatenwert positiv. In einer erweiterten offenen Graphikbibliothek (erweiterte offene GL) wird jedoch ein Substrak­ tionsüberlagerungsvorgang, der durch die folgenden Gleichungen (5) und (6) dargestellt ist, benötigt.
In the first embodiment described above, both the source data and the determination data are positive. However, in an extended open graphics library (extended open GL), a subtraction overlay process represented by the following equations (5) and (6) is required.

BLEND = SRC × FSRC - DST × FDST ...(5)
BLEND = SRC × FSRC - DST × FDST ... (5)

BLEND = -SRC × FSRC + DST × FDST ...(6)BLEND = -SRC × FSRC + DST × FDST ... (6)

In dem Ausdruck (5) ist der Bestimmungsdatenwert negativ (-DST) in dem Ausdruck (6) ist der Ursprungsdatenwert negativ (-SRC). Daher müssen der Ursprungsdatenwert und der Bestimmungsdatenwert auf numerische Zeichen mit einem Vorzeichenbit entsprechend der 2-Komplement-Darstellung erweitert werden. In dem Ausdruck (5) beträgt das höchstwertige Bit des Bestimmungs­ datenwertes (-DST) 1. In der Gleichung (6) beträgt das höchstwertige Bit des Ursprungsdatenwertes (-SRC) 1.In expression (5), the determination data is negative (-DST) in the Expression (6) is the original data value negative (-SRC). Therefore, the Original data value and the determination data value in numeric characters expanded with a sign bit according to the 2-complement representation become. In expression (5), the most significant bit of the determination is data value (-DST) 1. In equation (6), the most significant bit of the Original data value (-SRC) 1.

Im allgemeinen ist der Wert des Wertes der binären Zahl A [n:0] (das Vor­ zeichenbit ist A[n]) bei der 2-Komplement-Darstellung durch die folgende Gleichung (7) gegeben.
In general, the value of the value of the binary number A [n: 0] (the sign bit is A [n]) in the 2-complement representation is given by the following equation (7).

Wert = -2n × A[n] + 2(n-1) × A[n-1] + ... + 21 × A[1] + 20 × A[0] ...(7)Value = -2 n × A [n] + 2 (n-1) × A [n-1] + ... + 2 1 × A [1] + 2 0 × A [0] ... (7)

Wenn die binäre Zahl mit einem Vorzeichenbit, die aus n Bits besteht, durch eine binäre Zahl mit m Bits multipliziert wird, resultiert folglich ein Teilpro­ dukt, wie in Fig. 15 gezeigt ist. Es wird z. B. {p0 [n], p0 [n-1], p0 [n-2], ..., p0 [2], p0 [1], p0 [0]} durch Multiplizieren der binären Zahl A [n:0] mit dem nie­ derwertigsten Bit einer binären Zahl mit n Bits erhalten. Andere Teilprodukte werden in der ähnlichen Art erhalten. Diese Teilprodukte werden jeweils um 1 Bit verschoben addiert und daher werden die Vorzeichenbit p0 [n], p1 [n], p2 [n].., pm [n] der Teilprodukte ebenfalls jeweils um 1 Bit verschoben. Zum Berechnen der korrekten Summe der Teilprodukte mit Vorzeichenbits ist es im allgemeinen notwendig, eine Vorzeichenerweiterung zum Entwickeln des gleichen Wertes als das Vorzeichenbit zu der oberen Bitseite durchzuführen. Eine Vorzeichenerweiterung enthält jedoch eine Vergrößerung des Addierer­ baums. Der Vorgang sollte entsprechend dem folgenden Verfahren durchge­ führt werden, damit die korrekte Summe der Teilprodukte ohne Vor­ zeichenerweiterung berechnet wird. Consequently, when the binary number with a sign bit consisting of n bits is multiplied by a binary number with m bits, a partial product results, as shown in FIG. 15. It is e.g. B. {p 0 [n], p 0 [n-1], p 0 [n-2], ..., p 0 [2], p 0 [1], p 0 [0]} by multiplying the binary number A [n: 0] with the least significant bit of a binary number with n bits. Other sub-products are obtained in a similar manner. These partial products are each shifted by 1 bit and therefore the sign bits p 0 [n], p 1 [n], p 2 [n] .., p m [n] of the partial products are also each shifted by 1 bit. To calculate the correct sum of the partial products with sign bits, it is generally necessary to carry out a sign extension to develop the same value as the sign bit to the upper bit side. However, a sign extension contains an enlargement of the adder tree. The process should be carried out according to the following procedure so that the correct sum of the partial products is calculated without the sign extension.

Zuerst wird der Wert Vorzeichen durch die folgende Gleichung (8) unter Ver­ wendung der Vorzeichenbits der Teilprodukte definiert.
First, the sign value is defined by the following equation (8) using the sign bits of the partial products.

Vorzeichen = -(2m × pm [n] + ... + 22 × p2 [n] + 21 × p1 [n] + 20 × p0 [n]) × 2n ...(8)Sign = - (2 m × p m [n] + ... + 2 2 × p 2 [n] + 2 1 × p 1 [n] + 2 0 × p 0 [n]) × 2 n ... (8th)

Der Wert Vorzeichen, der entsprechend der Gleichung (8) dargestellt ist, sollte in 2-Komplement dargestellt sein und zu der Summe der Teilprodukte ohne die Vorzeichenbits addiert sein. Das 2-Komplement des Wertes Vor­ zeichen wird durch die folgende Gleichung (9) dargestellt. Hier ist jedoch das Vorzeichenbit an einer höheren Stelle als das höchstwertige Vorzeichenbit pm [n] addiert und /pm [n], ..., /p2 [n], /p1 [n], /p0 [n] stellen die Umkehrung von pm [n], ..., p2 [n], p1 [n] bzw. p0 [n] dar.
The sign value, which is represented in accordance with equation (8), should be represented in 2's complement and added to the sum of the partial products without the sign bits. The 2's complement of the sign value is represented by the following equation (9). Here, however, the sign bit is added at a higher position than the most significant sign bit p m [n] and / p m [n], ..., / p 2 [n], / p 1 [n], / p 0 [n ] represent the inverse of p m [n], ..., p 2 [n], p 1 [n] and p 0 [n].

Vorzeichen = (-2(m+1) × 1 + 2m × /pm [n] + ... + 22 × /p2 [n] + 21 × /p1 [n] + 20 × /p0 [n] + 1) × 2n ...(9)Sign = (-2 (m + 1) × 1 + 2 m × / p m [n] + ... + 2 2 × / p 2 [n] + 2 1 × / p 1 [n] + 2 0 × / p 0 [n] + 1) × 2 n ... (9)

Genauer sind, wie in Fig. 16 gezeigt ist, die Teilprodukte in unterschiedlichen Darstellungen gegeben, wobei die Vorzeichenerweiterung der Teilprodukte {/pm [n], pm [n-1], pm [n-2], ...., pm [2], pm [1], pm [0]} entsprechend der Glei­ chung (9) durchgeführt wird und 1 zu dem Bit, das höher ist als das Vor­ zeichenbit, addiert wird. Weiterhin wird 1 zu dem Vorzeichenbit /p0 [n] der Teilprodukte {/p0 [n], p0 [n-1], p0 [n-2], ..., p0 [2], p0 [1], p0 [0]} addiert.More precisely, as shown in FIG. 16, the partial products are given in different representations, the sign extension of the partial products {/ p m [n], p m [n-1], p m [n-2], ... ., p m [2], p m [1], p m [0]} is performed in accordance with equation (9) and 1 is added to the bit that is higher than the sign bit. Furthermore, 1 becomes the sign bit / p 0 [n] of the partial products {/ p 0 [n], p 0 [n-1], p 0 [n-2], ..., p 0 [2], p 0 [1], p 0 [0]} added.

Wenn z. B. in der Gleichung (5) der Ursprungsdatenwert [2:0] 01112 (710) be­ trägt, der Überlagerungskoeffizient FSRC [3:0] 01102 (610) beträgt, der Be­ stimmungsdatenwert -DST [2:0] 11002 (-410) und der Überlagerungskoeffizient FDST [3:0] 00112 (310) beträgt, muß als der Überlagerungsdatenwert BLEND [8:0] 000111102 (3010) erhalten werden. In diesem Fall ist das Teilprodukt eines von 0111 (SRC), 1100 (-DST), 0011 (SRC - DST) oder 0000. Da das 0te Bit des Überlagerungskoeffizienten FSRC 0 beträgt und das 0te Bit des Überlagerungskoeffizienten FDST 1 beträgt, wie in dem folgenden Ausdruck (10) gesehen werden kann, beträgt das Teilprodukt entsprechend dem 0ten Bit 1100 (-DST). Da das erste Bit des Überlagerungskoeffizienten FSRC und des Überlagerungskoeffizienten FDST beide 1 betragen, beträgt das Teilprodukt für das erste Bit 0011(SRC - DST). Da das zweite Bit des Überlagerungskoeffi­ zienten FSRC 1 beträgt und das zweite Bit des Überlagerungskoeffizienten FDST 0 beträgt, beträgt das Teilprodukt für das zweite Bit 0111 (SRC). Da das dritte Bit des Überlagerungskoeffizienten FSRC und des Überlagerungs­ koeffizienten FDST beide 0 betragen, betragen die Teilprodukte für das dritte Bit 0000. Durch Berechnen der Summe dieser Teilprodukte mit Vorzeichener­ weiterung, wird 111102 (3010) sicher erhalten, wie von dem folgenden Aus­ druck (10) ersichtlich ist.If e.g. B. in equation (5) the original data value [2: 0] 0111 2 (7 10 ) be, the overlay coefficient FSRC [3: 0] 0110 2 (6 10 ), the determination data value -DST [2: 0] 1100 2 (-4 10 ) and the overlay coefficient FDST [3: 0] 0011 2 (3 10 ) must be obtained as the overlay data value BLEND [8: 0] 00011110 2 (30 10 ). In this case, the partial product is one of 0111 (SRC), 1100 (-DST), 0011 (SRC - DST) or 0000. Since the 0th bit of the overlay coefficient FSRC is 0 and the 0th bit of the overlay coefficient FDST is 1, as in that The following expression (10) can be seen, the partial product corresponds to the 0th bit 1100 (-DST). Since the first bit of the overlay coefficient FSRC and the overlay coefficient FDST are both 1, the partial product for the first bit is 0011 (SRC - DST). Since the second bit of the overlay coefficient FSRC is 1 and the second bit of the overlay coefficient FDST is 0, the partial product for the second bit is 0111 (SRC). Since the third bit of the overlay coefficient FSRC and the overlay coefficient FDST are both 0, the partial products for the third bit are 0000. By calculating the sum of these partial products with signed extension, 11110 2 (30 10 ) is surely obtained as from the following pressure (10) can be seen.

Zum Berechnen der korrekten Summe der Teilprodukte ohne Vorzeichenerwei­ terung werden zuerst die Vorzeichenbits der Teilprodukte invertiert, wie in dem folgenden Ausdruck (11) gezeigt ist. Danach wird das Teilprodukt ent­ sprechend den höchstwertigen Bits der Überlagerungskoeffizienten FSRC und FDST um 1 Bit erweitert, 1 wird zu einem Bit addiert, das höher ist als das Vorzeichenbit, und 1 wird zu dem Vorzeichenbit (höchstwertiges Bit) des Teilproduktes entsprechend den niederwertigsten Bits der Überlagerungskoef­ fizienten FSRC und FDST addiert. Als Ergebnis wird 000111102 (3010), das das gleiche ist, das entsprechend dem obigen Ausdruck (10) erhalten ist, als der Überlagerungsdatenwert BLEND erhalten.In order to calculate the correct sum of the partial products without sign extension, the sign bits of the partial products are first inverted, as shown in the following expression (11). Then the partial product is expanded by 1 bit corresponding to the most significant bits of the overlay coefficients FSRC and FDST, 1 is added to a bit that is higher than the sign bit, and 1 becomes the sign bit (most significant bit) of the partial product corresponding to the least significant bits of the Overlay coefficients FSRC and FDST added. As a result, 00011110 2 (30 10 ), which is the same as that obtained in the above expression (10), is obtained as the overlay data BLEND.

Fig. 17 ist ein Blockschaltbild, das eine spezielle Struktur der Einrichtung für den arithmetischen Überlagerungsvorgang entsprechend der zweiten Ausfüh­ rungsform zeigt. Um das Verfahren des Berechnens, das durch den obigen Ausdruck (11) gezeigt ist, zu verwirklichen, werden die Aufgaben der Auswäh­ ler 124, 134, 144, 154, in anderen Worten die Übertrageingabe CI des Halbaddierers 263, die Dateneingabe B des Volladierers 273, die Dateneingabe B des Volladdierers 283 und die Dateneingabe A des Volladdierers 293, inver­ tiert. Fig. 17 is a block diagram showing a specific structure of the arithmetic overlay processing device according to the second embodiment. In order to realize the method of calculation shown by the above expression (11), the tasks of the selectors 124 , 134 , 144 , 154 , in other words, the transfer input CI of the half adder 263 , the data input B of the full adder 273 , the data input B of the full adder 283 and the data input A of the full adder 293 , inverted.

Anstatt der in Fig. 4 gezeigten Addierer 163, 173, 183 und 193 werden Addie­ rer 263, 273, 283 und 293 verwendet. Anstatt des in Fig. 4 gezeigten Addierers 190 wird ein Addierer 290 zum Addieren von 1 zu der Datenausgabe S des Addierers 181 verwendet. Folglich bilden die Addierer 160-162 und 263 eine Addiererschaltung 126. Die Addierer 170-172 und 273 bilden eine Addierer­ schaltung 27. Die Addierer 180-182 und 283 bilden eine Addiererschaltung 28. Die Addierer 290, 191, 192 und 293 bilden eine Addiererschaltung 29. Es wird ein Voraddierer 21 verwendet, der zusätzlich einen Volladdierer 214 für das Vorzeichenbit aufweist.Instead of the adders 163 , 173 , 183 and 193 shown in FIG. 4, adders 263 , 273 , 283 and 293 are used. Instead of the adder 190 shown in FIG. 4, an adder 290 is used to add 1 to the data output S of the adder 181 . Thus adders 160-162 and 263 form adder circuit 126 . The adders 170-172 and 273 form an adder circuit 27 . Adders 180-182 and 283 form an adder circuit 28 . Adders 290 , 191 , 192 and 293 form an adder circuit 29 . A pre-adder 21 is used, which additionally has a full adder 214 for the sign bit.

Die Einrichtung für den arithmetischen Überlagerungsvorgang führt die durch die folgende Gleichung (12) oder (13) dargestellte Berechnung durch.
The arithmetic superposition process means performs the calculation represented by the following equation (12) or (13).

BLEND [8:0] = SRC [2:0] × FSRC [3:0] - DST [2:0] × FDST [3:0] ...(12)
BLEND [8: 0] = SRC [2: 0] × FSRC [3: 0] - DST [2: 0] × FDST [3: 0] ... (12)

BLEND [8:0] = -SRC [2:0] × FSRC [3:0] + DST [2:0] × FDST [3:0] ...(13)BLEND [8: 0] = -SRC [2: 0] × FSRC [3: 0] + DST [2: 0] × FDST [3: 0] ... (13)

Wenn die Berechnung der Gleichung (12) durchzuführen ist, werden der Ur­ sprungsdatenwert SRC [3:0] und das 2-Komplement NDST [3:0] des Bestim­ mungsdatenwertes DST [3:0] an den Voraddierer 21 angelegt. Wenn die Be­ rechnung der Gleichung (13) durchzuführen ist, werden das 2-Komplement NSRC [3:0] der Ursprungsdatenwert SRC [3:0] und des Bestimmungsdaten­ wertes DST [3:0] an den Voraddierer 21 angelegt. Hier stellen SRC [3], NSRC [3], DST [3] und NDST [3] Vorzeichenbits dar.When the calculation of the equation (12) is to be performed, the original data SRC [3: 0] and the 2's complement NDST [3: 0] of the determination data DST [3: 0] are applied to the pre-adder 21 . When the calculation of the equation (13) is to be performed, the 2's complement NSRC [3: 0], the original data value SRC [3: 0] and the determination data value DST [3: 0] are applied to the pre-adder 21 . Here SRC [3], NSRC [3], DST [3] and NDST [3] represent sign bits.

Der Ursprungsdatenwert SRC [3:0] wird durch die folgende Gleichung (14) definiert.
The original data value SRC [3: 0] is defined by the following equation (14).

SRC [3:0] = {0, SRC [2:0]} ...(14)SRC [3: 0] = {0, SRC [2: 0]} ... (14)

Der Bestimmungsdatenwert DST [3:0] wird durch die folgende Gleichung (15) definiert.
The determination data DST [3: 0] is defined by the following equation (15).

DST [3:0] = {0, DST [2:0]} ...(15)DST [3: 0] = {0, DST [2: 0]} ... (15)

Der Halbaddierer 263 weist ein XNOR-Gatter 2630, einen Multiplexer 2631 und einen Inverter 2632, wie in Fig. 18 gezeigt ist, auf. Der Volladdierer 273 ist ähnlich zu dem Volladdierer 192, der in Fig. 10 gezeigt ist, strukturiert. Der Volladdierer 293 ist ähnlich zu dem in Fig. 9 gezeigten Volladdierer 191 strukturiert. Der Volladdierer 290 weist ein XOR-Gatter 2900, einen Multi­ plexer 2901 und einen Inverter 2902, wie in Fig. 19 gezeigt ist, auf. Der Volladdierer 293 weist XOR-Gatter 2930 und 2931, einen Inverter 2932, einen Multiplexer 2933 und einen Inverter 2934, wie in Fig. 20 gezeigt ist, auf. Der Multiplexer 2901 weist Übertragungsgatter 29010 und 29011 und einen Inver­ ter 29012, wie in Fig. 21 gezeigt ist, auf. Als Reaktion auf das Steuersignal SB auf dem L-Pegel wird das Übertragungsgatter 29011 eingeschaltet und das Übertragungsgatter 29010 ausgeschaltet und daher wird das eine Eingangs­ signal I2 ausgegeben. Im Gegensatz dazu wird als Reaktion auf das Steuer­ signal SB auf dem H-Pegel das Übertragungsgatter 29011 ausgeschaltet und das Übertragungsgatter 29010 eingeschaltet und daher wird das andere Ein­ gangssignal I1 ausgegeben.The half adder 263 has an XNOR gate 2630 , a multiplexer 2631 and an inverter 2632 as shown in FIG. 18. The full adder 273 is structured similarly to the full adder 192 shown in FIG. 10. The full adder 293 is structured similarly to the full adder 191 shown in FIG. 9. The full adder 290 has an XOR gate 2900 , a multiplexer 2901 and an inverter 2902 as shown in FIG. 19. The full adder 293 has XOR gates 2930 and 2931 , an inverter 2932 , a multiplexer 2933 and an inverter 2934 as shown in FIG. 20. The multiplexer 2901 has transmission gates 29010 and 29011 and an inverter 29012 as shown in FIG. 21. In response to the control signal SB at the L level, the transmission gate 29011 is turned on and the transmission gate 29010 is turned off, and therefore the one input signal I2 is output. In contrast, in response to the control signal SB at the H level, the transmission gate 29011 is turned off and the transmission gate 29010 is turned on, and therefore the other input signal I1 is output.

Wie oben beschrieben wurde, weist die Einrichtung für den arithmetischen Überlagerungsvorgang entsprechend der zweiten Ausführungsform Addierer 263, 273, 283 und 293 mit einer Funktion des Invertierens der Ausgaben der Auswähler 124-154 entsprechend dem höchstwertigen Bit (Vorzeichenbit) der Teilprodukte und den Halbaddierer 290 mit einer Funktion des Addierens von 1 zu dem höchstwertigen Bit des entsprechend der niederwertigsten Bits FSRC [0] und FDST [0] der Überlagerungskoeffizienten erzeugten Teilproduktes auf. Weiterhin weist der Volladdierer 293 eine Funktion des Addierens von 1 zu einem Bit, das höher ist als das Vorzeichenbit des Teilproduktes, das ent­ sprechend den höchstwertigen Bits FSRC [3] und FDST [3] der Überlage­ rungskoeffizienten erzeugt ist, auf. Daher kann sogar wenn der Bestimmungs­ datenwert und/oder der Ursprungsdatenwert negativ ist, der Überlagerungs­ datenwert BLEND [8:0] korrekt berechnet werden.As described above, the arithmetic overlay operation means according to the second embodiment includes adders 263 , 273 , 283 and 293 with a function of inverting the outputs of the selectors 124-154 according to the most significant bit (sign bit) of the partial products and the half adder 290 a function of adding 1 to the most significant bit of the partial product generated corresponding to the least significant bits FSRC [0] and FDST [0] of the overlay coefficients. Furthermore, the full adder 293 has a function of adding 1 to a bit which is higher than the sign bit of the partial product, which is generated in accordance with the most significant bits FSRC [3] and FDST [3] of the superimposition coefficients. Therefore, even if the determination data value and / or the original data value is negative, the overlay data value BLEND [8: 0] can be calculated correctly.

Weiterhin sind nur der Übertrageingang des Halbaddierers 263, die Datenein­ gänge der Volladdierer 273 und 283 und der Dateneingang des Volladdierers 293 modifiziert und daher ist die Betriebsgeschwindigkeit nicht stark ver­ schlechtert. Weiterhin ist nur der Steuereingang des Multiplexers 2901 in dem Halbaddierer 290 modifiziert und ein Inverter 2934 ist zu dem Volladdierer 293 hinzugefügt, wodurch die Betriebsgeschwindigkeit nicht stark verlangsamt ist. Weiterhin sind diese Modifikationen gering und resultieren nicht in einem deutlichen Anstieg der Größe.Furthermore, only the transmission input of the half adder 263 , the data inputs of the full adders 273 and 283 and the data input of the full adder 293 are modified and therefore the operating speed is not greatly deteriorated. Furthermore, only the control input of the multiplexer 2901 in the half adder 290 is modified and an inverter 2934 is added to the full adder 293 , whereby the operating speed is not slowed down significantly. Furthermore, these modifications are minor and do not result in a significant increase in size.

3. Ausführungsform3rd embodiment

In der ersten und zweiten Ausführungsform wird der arithmetische Überlage­ rungsvorgang Pixel für Pixel durchgeführt. Bei der Einrichtung für den arith­ metischen Überlagerungsvorgang entsprechend der dritten Ausführungsform wird die Anzahl der Bits der Farbdaten zum Anzeigen eines Pixels reduziert und der arithmetische Überlagerungsvorgang wird gleichzeitig an zwei Pixeln durchgeführt.In the first and second embodiments, the arithmetic overlay pixel by pixel. When setting up for the arith metallic overlay operation according to the third embodiment the number of bits of color data for displaying a pixel is reduced and the arithmetic overlay process is performed on two pixels simultaneously carried out.

Es wird angenommen, daß dort wo die Eingabe des Ursprungsdatenwertes SRC [2n-1:0] mit 2n Bits, des Überlagerungskoeffizienten FSRC [2m-1:0] mit 2m Bits, des Bestimmungsdatenwertes DST [2n-1:0] mit 2n Bits und des Über­ lagerungskoeffizienten FDST [2m-1:0] mit 2m Bits möglich ist, die Farbdaten­ werte von 2 Pixeln aufgeteilt in obere Bits (SRC [2n-1:n] FSRC [2m-1:m], DST [2n-1:n] und FDST [2m-1:m]) und untere Bits (SRC [n-1:0], FSRC [m- 1:0], DST [n-1:0], FDST [m-1:0]) aufgeteilt eingegeben werden.It is assumed that where the entry of the original data value SRC [2n-1: 0] with 2n bits, the overlay coefficient FSRC [2m-1: 0] with 2m Bits, the determination data value DST [2n-1: 0] with 2n bits and the over storage coefficient FDST [2m-1: 0] with 2m bits is possible, the color data  values of 2 pixels divided into upper bits (SRC [2n-1: n] FSRC [2m-1: m], DST [2n-1: n] and FDST [2m-1: m]) and lower bits (SRC [n-1: 0], FSRC [m- 1: 0], DST [n-1: 0], FDST [m-1: 0]) divided.

Zu dieser Zeit sind der Überlagerungsdatenwert der oberen Überlagerung und der unteren Überlagerung, die zu berechnen sind, durch die folgende Gleichung (16) bzw. (17) gegeben.
At this time, the overlay data of the upper overlay and the lower overlay to be calculated are given by the following equations (16) and (17), respectively.

Obere Überlagerung = DST [2n-1:n] × FDST [2m-1:m] + SRC [2n- 1:n] × FSRC [2m-1:m] ...(16)
Top overlay = DST [2n-1: n] × FDST [2m-1: m] + SRC [2n- 1: n] × FSRC [2m-1: m] ... (16)

Untere Überlagerung = DST [n-1:n] × FDST [m-1:0] + SRC [n-1: 0] × FSRC [m-1:0] ...(17)Bottom overlay = DST [n-1: n] × FDST [m-1: 0] + SRC [n-1: 0] × FSRC [m-1: 0] ... (17)

Die Teilprodukte, die für die Berechnung dieser Überlagerungsdatenwerte der oberen Überlagerung und der unteren Überlagerung notwendig sind, sind teil­ weise inhärent in dem in Fig. 22 gezeigten Addiererbaum vorhanden (der Ab­ schnitt, der durch ein Parallelogramm in der Figur umgeben ist). Daher können durch zwangsweises Maskieren oder Zurücksetzen auf 0 der Bits der Teilpro­ dukte, die außerhalb des in Fig. 23 gezeigten Parallelogramms sind, die Über­ lagerungsdatenwerte der oberen Überlagerung und der unteren Überlagerung von 2 Pixeln erhalten werden.The partial products that are necessary for the calculation of these overlay data values of the upper overlay and the lower overlay are partially inherent in the adder tree shown in FIG. 22 (the section which is surrounded by a parallelogram in the figure). Therefore, by forcibly masking or resetting to 0 of the bits of the sub-products that are outside the parallelogram shown in Fig. 23, the overlay data values of the upper overlay and the lower overlay of 2 pixels can be obtained.

Zu dieser Zeit ist es nicht notwendig einen Übertrag von dem Datenwert der unteren Übertragung zu dem Datenwert der oberen Übertragung zu berück­ sichtigen. Der Grund dafür ist wie folgt: Der Eingabedatenwert zu dem Addiererbaum an dem höchstwertigen Bit ((m+n-2)-tes Bit) des Überlage­ rungsdatenwerts der unteren Überlagerung beträgt ursprünglich 0 und sogar wenn dem (m+n-3)-ten Bit folgende Bits addiert werden, wird der Übertrag an dem höchstwertigen ausgelöscht, d. h. dem (m+n-2)-ten Bit. Daher können der Überlagerungsdatenwert der oberen Überlagerung und der Überlagerungs­ datenwert der unteren Überlagerung direkt an der Ausgabe des Addiererbaums erhalten werden. At this time, it is not necessary to carry over the data value of the lower transfer to the data value of the upper transfer sight. The reason for this is as follows: The input data value for the Adder tree at the most significant bit ((m + n-2) th bit) of the overlay Lower overlay data is originally 0 and even if bits following the (m + n-3) th bit are added, the carry will be on the most significant, d. H. the (m + n-2) th bit. Therefore, the Overlay data value of the upper overlay and the overlay data value of the lower overlay directly at the output of the adder tree be preserved.  

Fig. 24 ist ein Blockschaltbild, das eine spezielle Einrichtung für den arithme­ tischen Überlagerungsvorgang entsprechend der dritten Ausführungsform zeigt. Anstatt der in Fig. 4 gezeigten Auswähler 122, 123, 132, 133, 140, 141, 150 und 151 sind Auswähler 322, 323, 332, 333, 340, 341, 350 und 351 mit der Maskierungsfunktion verwendet. Der Auswähler 322 weist einen Auswähler 3220, auf, wobei dies das gleich ist wie der Auswähler 122 und ein AND-Gat­ ter 3221, wie in Fig. 25 gezeigt ist. Fig. 24 is a block diagram showing a special device for the arithmetic overlay process according to the third embodiment. Instead of the selectors 122 , 123 , 132 , 133 , 140 , 141 , 150 and 151 shown in Fig. 4, selectors 322 , 323 , 332 , 333 , 340 , 341 , 350 and 351 are used with the masking function. The selector 322 has a selector 3220 , which is the same as the selector 122 and an AND gate 3221 , as shown in FIG. 25.

In dem normalen Modus, in dem der arithmetische Überlagerungsvorgang Pixel für Pixel durchgeführt wird, wird 1 als ein Modussignal MODE angelegt. Daher arbeitet die Einrichtung für den arithmetischen Überlagerungsvorgang in der ähnlichen Art wie in der oben beschriebenen ersten Ausführungsform. In dem reduzierten Farbmodus, in dem der arithmetische Überlagerungsvorgang für 2 Pixel gleichzeitig durchgeführt wird, wird im Gegensatz dazu 0 als das Modussignal MODE angelegt. Folglich werden Überlagerungsdatenwerte BLEND [3:0] und BLEND [7:4], die durch die folgenden Gleichungen (18) und (19) dargestellt sind, erhalten.
In the normal mode in which the arithmetic overlay is performed pixel by pixel, 1 is applied as a mode signal MODE. Therefore, the arithmetic overlay operation means operates in a similar manner to that in the first embodiment described above. In contrast, in the reduced color mode, in which the arithmetic superimposition process for 2 pixels is performed simultaneously, 0 is applied as the mode signal MODE. As a result, overlay data values BLEND [3: 0] and BLEND [7: 4] represented by the following equations (18) and (19) are obtained.

BLEND [3:0] = SRC [0] × FSRC [1:0] + DST [0] × FDST [1:0] ...(18)
BLEND [3: 0] = SRC [0] × FSRC [1: 0] + DST [0] × FDST [1: 0] ... (18)

BLEND [7:4] = SRC [2] × FSRC [3:2] + DST [2] × FDST [3:2] ...(19)BLEND [7: 4] = SRC [2] × FSRC [3: 2] + DST [2] × FDST [3: 2] ... (19)

Wie oben beschrieben wurde, weist die Einrichtung für den arithmetischen Überlagerungsvorgang entsprechend der dritten Ausführungsform Auswähler 322, 323, 332, 333, 340, 341, 350 und 351 mit der Maskierungsfunktion auf. Daher wird in dem normalen Modus die Multiplikation von 4 × 4 Bits durchge­ führt und in dem reduzierten Farbmodus können zwei Multiplikationen von 2 × 2 Bits gleichzeitig durchgeführt werden. Da weiterhin nur das AND-Gatter 3221 zu dem Auswähler 3220 hinzugefügt ist, ist die Größe nicht deutlich er­ höht. As described above, the arithmetic overlay operation device according to the third embodiment has selectors 322 , 323 , 332 , 333 , 340 , 341 , 350 and 351 with the masking function. Therefore, the multiplication of 4 × 4 bits is carried out in the normal mode and two multiplications of 2 × 2 bits can be carried out simultaneously in the reduced color mode. Furthermore, since only the AND gate 3221 is added to the selector 3220 , the size is not significantly increased.

Andere AusführungsformAnother embodiment

Obwohl ein Übertragssicherungsaddierer in der obigen ersten bis dritten Aus­ führungsform verwendet wird, können ein Wallace-Baum, der in IEEE Trans. Electron. Comput., EC-13: S. 14-17 (1964), beschrieben ist, ein Dadda-Baum, der in Alta Freq. 34: S. 349-356 (1965), beschrieben ist, oder ein Adder-Baum, der in IEEE Trans. On Comut. Vol. 45, Nr. 3, S. 294-305 (1996) beschrieben ist, verwendet werden.Although a carry save adder in the above first to third out form of management, a Wallace tree that is in IEEE Trans. Electron. Comput., EC-13: pp. 14-17 (1964), a Dadda tree, the one in Alta Freq. 34: pp. 349-356 (1965), or an adder tree, the one in IEEE Trans. On Comut. Vol. 45, No. 3, pp. 294-305 (1996) is used.

Claims (5)

1. Arithmetische Betriebseinrichtung zum Berechnen einer Summe eines Produktes eines ersten Multiplikators (FSRC) mit m Bits und eines ersten Multiplikanten (SRC) mit n Bits und eines Produktes eines zweiten Multiplika­ tors (FDST) mit m Bits und eines zweiten Multiplikanten (DST) mit n Bits, mit einem ersten Addierermittel (11) zum Addieren des ersten und zweiten Multi­ plikanten (SRC, DST), m Auswahlmitteln (12-15), die jeweils auf ein entsprechendes Bit des ersten und zweiten Multiplikators (FSRC, FDST) reagieren, zum Auswählen von einem von dem ersten Multiplikanten (SRC), dem zweiten Multiplikanten (DST), der Summe des ersten und zweiten Multiplikanten (SRC, DST) des ersten Addierermittels (11) und 0 zum Erzeugen eines Teilproduktes und einem Addiererbaum (160-163, 170-173, 180-183, 190-193), der jedes der m Teilprodukte der m Auswahlmittel (12-15) um 1 Bit verschiebt, zum Berechnen der Summe der verschobenen Teilprodukte.1. Arithmetic operating device for calculating a sum of a product of a first multiplier (FSRC) with m bits and a first multiplier (SRC) with n bits and a product of a second multiplier (FDST) with m bits and a second multiplicant (DST) n bits, with a first adder means ( 11 ) for adding the first and second multiplicants (SRC, DST), m selection means ( 12-15 ), each of which responds to a corresponding bit of the first and second multipliers (FSRC, FDST), for selecting one of the first multiplicant (SRC), the second multiplicant (DST), the sum of the first and second multiplicants (SRC, DST) of the first adder means ( 11 ) and 0 for generating a partial product and an adder tree ( 160-163 , 170-173 , 180-183 , 190-193 ), which shifts each of the m partial products of the m selection means ( 12-15 ) by 1 bit, for calculating the sum of the shifted partial products. 2. Arithmetische Betriebseinrichtung nach Anspruch 1, bei der jedes der m Auswahlmittel (12-15) n Auswähler (120-123, 130-133, 140-143, 150-153) aufweist,
wobei jeder Auswähler ein entsprechendes Bit der Summe des ersten und zweiten Multiplikanten (SRC, DST) auswählt, wenn beide entsprechende Bits des ersten und zweiten Multiplikators (FSRC, FDST) 1 betragen,
das entsprechende Bit des ersten Multiplikanten (SRC) auswählt, wenn das ent­ sprechende Bit des ersten Multiplikators (FSRC) 1 beträgt und das ent­ sprechende Bit des zweiten Multiplikators (FDST) 0 beträgt,
das entsprechende Bit des zweiten Multiplikanten (DST) auswählt, wenn das entsprechende Bit des ersten Multiplikators (FSRC) 0 beträgt und das ent­ sprechende Bit des zweiten Multiplikators (FDST) 1 beträgt, und 0 auswählt, wenn beide entsprechende Bits des ersten und zweiten Multiplikators (FSRC, FDST) 0 betragen.
2. Arithmetic operating device according to claim 1, in which each of the m selection means ( 12-15 ) has n selectors ( 120-123 , 130-133 , 140-143 , 150-153 ),
wherein each selector selects a corresponding bit of the sum of the first and second multiplicants (SRC, DST) if both corresponding bits of the first and second multipliers (FSRC, FDST) are 1,
selects the corresponding bit of the first multiplier (SRC) if the corresponding bit of the first multiplier (FSRC) is 1 and the corresponding bit of the second multiplier (FDST) is 0,
selects the corresponding bit of the second multiplier (DST) if the corresponding bit of the first multiplier (FSRC) is 0 and the corresponding bit of the second multiplier (FDST) is 1, and selects 0 if both corresponding bits of the first and second multiplier (FSRC, FDST) be 0.
3. Arithmetische Betriebseinrichtung nach Anspruch 2, bei der der Addiererbaum eine Mehrzahl von Addierern (170-173, 180-183), die in einem Feld angeordnet sind, aufweist,
wobei jeder der Mehrzahl von Addierern (170-173, 180-183)
einen Übertrageingang (CI), der mit einem Übertragausgang (CO) eines ent­ sprechenden Addierers (160) von n Addierern (160-163), die mit Bezug zu den Bits des ersten und zweiten Multiplikators (FSRC, FDST) um 1 Bit niedriger sind als er selbst, verbunden ist,
einen ersten Dateneingang (A), der mit einem Ausgang eines entsprechenden der n Auswählern (140-143, 150-153) verbunden ist,
einen zweiten Dateneingang (B), der mit einem Datenausgang (S) eines Addie­ rers (161), der um 1 Bit mit Bezug zu den Bits des ersten und zweiten Multi­ plikanten (SRC, DST) höher ist als der entsprechende eine Addierer (160), ver­ bunden ist,
einen Datenausgang (S) und einen Übertragausgang (CO) aufweist.
3. The arithmetic operating device according to claim 2, wherein the adder tree has a plurality of adders ( 170-173 , 180-183 ) arranged in a field,
each of the plurality of adders ( 170-173 , 180-183 )
a carry input (CI) connected to a carry output (CO) of a corresponding adder ( 160 ) of n adders ( 160-163 ) which are 1 bit lower with respect to the bits of the first and second multipliers (FSRC, FDST) as himself, connected,
a first data input (A) which is connected to an output of a corresponding one of the n selectors ( 140-143 , 150-153 ),
a second data input (B) having a data output (S) of an adder ( 161 ) which is 1 bit higher with respect to the bits of the first and second multiplicant (SRC, DST) than the corresponding adder ( 160 ), connected is,
has a data output (S) and a carry output (CO).
4. Arithmetische Betriebseinrichtung nach einem der Ansprüche 1 bis 3, weiter mit
einem Invertiermittel zum Invertieren des höchstwertigen Bits der m Teil­ produkte und
einem zweiten Addierermittel (290) zum Addieren von 1 zu dem höchstwerti­ gen Bit des Teilproduktes, das entsprechend dem niedrigstwertigen Bit des ersten und zweiten Multiplikators (FSRC, FDST) erzeugt ist, der m Teil­ produkte und zum Addieren von 1 zu einem Bit, das um 1 Bit höher ist als das höchstwertige Bit des Teilproduktes, das entsprechend den höchstwertigen Bits des ersten und zweiten Multiplikators (FSRC, FDST) erzeugt ist.
4. Arithmetic operating device according to one of claims 1 to 3, further with
an inverting means for inverting the most significant bit of the m partial products and
a second adder means ( 290 ) for adding 1 to the most significant bit of the partial product generated in accordance with the least significant bit of the first and second multiplier (FSRC, FDST), the m partial products and adding 1 to a bit which is 1 bit higher than the most significant bit of the partial product, which is generated in accordance with the most significant bits of the first and second multipliers (FSRC, FDST).
5. Arithmetische Betriebseinrichtung nach einem der Ansprüche 1 bis 4, weiter mit einem Maskierungsmittel (3221) zum Maskieren von oberen Bits der Teilpro­ dukte, die entsprechend den oberen Bits des ersten und zweiten Multiplikators (FSRC, FDST) erzeugt sind, und der unteren Bits der Teilprodukte, die ent­ sprechend den unteren Bits des ersten und zweiten Multiplikators (FSRC, FDST) erzeugt sind.5. Arithmetic operating device according to one of claims 1 to 4, further comprising a masking means ( 3221 ) for masking upper bits of the sub-products which are generated corresponding to the upper bits of the first and second multipliers (FSRC, FDST) and the lower bits of the partial products, which are generated accordingly to the lower bits of the first and second multipliers (FSRC, FDST).
DE19757891A 1997-05-19 1997-12-24 Arithmetic operating device for calculating a sum of two products Expired - Fee Related DE19757891C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9128685A JPH10320378A (en) 1997-05-19 1997-05-19 Arithmetic device

Publications (2)

Publication Number Publication Date
DE19757891A1 DE19757891A1 (en) 1998-12-03
DE19757891C2 true DE19757891C2 (en) 1999-12-02

Family

ID=14990903

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19757891A Expired - Fee Related DE19757891C2 (en) 1997-05-19 1997-12-24 Arithmetic operating device for calculating a sum of two products

Country Status (5)

Country Link
JP (1) JPH10320378A (en)
KR (1) KR19980086459A (en)
CN (1) CN1199891A (en)
DE (1) DE19757891C2 (en)
TW (1) TW346597B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2794258B1 (en) * 1999-05-26 2001-09-14 St Microelectronics Sa MULTIPLICATION CIRCUIT
DE19983997B4 (en) * 1999-12-24 2009-07-09 Kabushiki Kaisha Fujikin fluid control

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3901995C2 (en) * 1988-01-25 1993-05-27 Oki Electric Industry Co., Ltd., Tokio/Tokyo, Jp

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3901995C2 (en) * 1988-01-25 1993-05-27 Oki Electric Industry Co., Ltd., Tokio/Tokyo, Jp

Also Published As

Publication number Publication date
TW346597B (en) 1998-12-01
DE19757891A1 (en) 1998-12-03
JPH10320378A (en) 1998-12-04
KR19980086459A (en) 1998-12-05
CN1199891A (en) 1998-11-25

Similar Documents

Publication Publication Date Title
DE4302898C2 (en) Arithmetic arithmetic unit with accumulation function
DE69435047T2 (en) Circuit and method for parallel addition and averaging
DE69821408T2 (en) Multiplication method and device
DE19782086B4 (en) Multiplier for performing 3D graphics interpolations
EP0150060A2 (en) Multifunctional image processor
DE10105945B4 (en) Multiplier with linear summation array for both signed and unsigned multiplication
CH657713A5 (en) CIRCUIT ARRANGEMENT FOR CREATING A SUM OF PRODUCTS.
DE1956209C3 (en) Multiplier
DE19758079A1 (en) Computer system for determining product of two Galois field elements
DE69722859T2 (en) Format conversion of data words of graphic images
DE69434806T2 (en) A method, system and apparatus for automatically designing a multiplier circuit and multiplier circuit designed by performing this method
DE2246968A1 (en) DEVICE FOR COMBINATION, IN PARTICULAR MULTIPLICATION, TWO FLOATING COMMA NUMBERS
DE2018452A1 (en) Arithmetic facility
DE102020105536A1 (en) Machine learning training architecture for programmable devices
DE10013068C2 (en) Potenzierungsoperationsvorrichtung
EP0418412B1 (en) Circuitry for sum-of-products calculation
DE4215094C2 (en) Image processing method and device
DE19757891C2 (en) Arithmetic operating device for calculating a sum of two products
DE4019646C2 (en) Device and method for multiplying data words in two's complement representation
DE3434777A1 (en) METHOD AND DEVICE FOR SIGN SIGNALING FOR A TRANSMISSION SECURITY ADDER
DE10204647A1 (en) Matrix calculator for matrix multiplication e.g. in image signal processing, sequentially calculates each element from multiplication result matrix by sequential addition
DE19545900B4 (en) A multiplier for selectively performing the multiplication of unsigned quantities or the multiplication of signed quantities
DE3909713C2 (en)
DE19644688B4 (en) Circuit arrangement of a digital multiplier module for processing binary numbers and elements made of GF (2m)
DE10142155C1 (en) Processor modular multiplication method uses determination of multiplication shift values and reduction shift values and successive actualisation of intermediate result

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee