DE4242929A1 - Circuit arrangement for forming the sum of products - Google Patents

Circuit arrangement for forming the sum of products

Info

Publication number
DE4242929A1
DE4242929A1 DE4242929A DE4242929A DE4242929A1 DE 4242929 A1 DE4242929 A1 DE 4242929A1 DE 4242929 A DE4242929 A DE 4242929A DE 4242929 A DE4242929 A DE 4242929A DE 4242929 A1 DE4242929 A1 DE 4242929A1
Authority
DE
Germany
Prior art keywords
register
control
arrangement
output
data
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.)
Withdrawn
Application number
DE4242929A
Other languages
German (de)
Inventor
Alfred Dr Baier
Johannes Dr Schuck
Dirk Weinsziehr
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.)
Philips Intellectual Property and Standards GmbH
Original Assignee
Philips Patentverwaltung GmbH
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 Philips Patentverwaltung GmbH filed Critical Philips Patentverwaltung GmbH
Priority to DE4242929A priority Critical patent/DE4242929A1/en
Priority to PCT/NL1993/000267 priority patent/WO1994015278A1/en
Priority to SG1996009097A priority patent/SG55185A1/en
Priority to KR1019940702887A priority patent/KR100337716B1/en
Priority to JP6515035A priority patent/JPH08500690A/en
Priority to EP94903145A priority patent/EP0627099A1/en
Publication of DE4242929A1 publication Critical patent/DE4242929A1/en
Priority to US08/695,951 priority patent/US5650952A/en
Withdrawn 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
    • 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 Erfindung betrifft eine Schaltungsanordnung Zinn Bilden der Summe von Produkten einer Kette von Datenwortpaaren, mittels einer Addier/Subtrahieranordnung, deren Funktion insbesondere hinsichtlich Addition und Subtraktion über erste Steuereingänge umschaltbar ist, und mittels einer Steueranordnung zur Steuerung der aufeinanderfolgenden Verarbeitung der Produkte.The invention relates to a circuit arrangement forming tin the sum of products in a chain of data word pairs, by means of an add / subtract arrangement, the function of which especially regarding addition and subtraction over first control inputs can be switched, and by means of a Control arrangement for controlling the successive Processing the products.

Derartige Rechenoperationen kommen insbesondere bei digitalen Signalprozessoren vor und dienen beispielsweise dazu, Skalarprodukte sowie zeitdiskrete Korrelations-, Filter- und Faltungsoperationen zu realisieren. Um eine schnelle Durchführung solcher Operationen zu ermöglichen, ist üblicherweise eine Multiplizieranordnung vorgesehen, die nacheinander die beiden Datenwörter jedes Paares erhält und deren Ausgang mit einem Eingang der Addier/Sub­ trahieranordnung verbunden ist, wobei der andere Eingang dieser Anordnung über ein sogenanntes Akkumulatorregister mit dem Ausgang der Anordnung verbunden ist. Bei einem entsprechenden Aufbau ist es möglich, einen Multiplizier- Akkumulations-Schritt sowie die hierfür erforderlichen Übertragungen der Datenwörter in einem einzigen Befehls­ zyklus des Prozessors durchzuführen. Die Bildung der gesamten Summe erfordert dann lediglich eine Anzahl Befehlszyklen gleich der Anzahl Datenwortpaare zuzüglich einiger vorbereitender Befehle.Such arithmetic operations come in particular digital signal processors and serve for example addition, scalar products as well as discrete-time correlation, Realize filter and convolution operations. To one to enable such operations to be carried out quickly, a multiplier arrangement is usually provided, the two data words of each pair in succession receives and their output with an input of the add / sub trahieranordnung is connected, the other input this arrangement via a so-called accumulator register is connected to the output of the arrangement. At a corresponding structure, it is possible to use a multiplier Accumulation step and the necessary for this Data word transfers in a single command cycle of the processor. The formation of the total sum then only requires a number Command cycles equal to the number of data word pairs plus some preparatory commands.

In vielen Anwendungsbereichen der digitalen Signalver­ arbeitung tritt auch eine Summenbildung von Produkten einer Kette von Datenwortpaaren auf, wobei das eine Daten­ wort jedes Paares lediglich einen der beiden Werte +1 oder -1 annehmen kann. Beispiele für solche Anwendungsbereiche sind Skalarprodukte sowie zeitdiskrete Korrelations-, Filter- und Faltungsoperationen mit binären bipolaren Koeffizien­ ten, wie sie in der Signalverarbeitung immer dann auf­ treten, wenn mit binären Signalen operiert wird.In many areas of application of digital signal processing work also involves adding up products a chain of data word pairs, the one data word of each pair only one of the two values +1 or Can assume -1. Examples of such applications  are scalar products as well as time-discrete correlation, filter and Convolutional operations with binary bipolar coefficients as they always occur in signal processing occur when operating with binary signals.

Die Bildung einer solchen Summe mit Hilfe einer Multipli­ zieranordnung mit nachgeschalteter Addier/Subtrahieranord­ nung führt zu einer unwirtschaftlichen Ausnutzung des Multiplizierers, da dieser lediglich Multiplikationen mit den Faktoren +1 oder -1 an den jeweils anderen Datenworten der Paare durchführt, d. h. lediglich einen bedingten Vorzeichenwechsel dieser Datenwörter bewirkt.The formation of such a sum with the help of a multipli ornamental arrangement with downstream adding / subtracting arrangement leads to an inefficient use of the Multiplier, since this only multiplies with the factors +1 or -1 on the other data words the couple performs, d. H. just a conditional Sign change of these data words causes.

Aufgabe der Erfindung ist es daher, eine Schaltungsanord­ nung der eingangs genannten Art anzugeben, die für den genannten Sonderfall der Werte für die einen Datenwörter einfach aufgebaut ist und schnell arbeitet.The object of the invention is therefore a circuit arrangement of the type mentioned at the beginning, which for the mentioned special case of the values for the one data words is simple and works quickly.

Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß zum Verarbeiten von Datenwortpaaren, von denen das eine Datenwort jedes Paares lediglich einen der beiden Werte +1 oder -1 annehmen kann, ein Register vorgesehen ist, das parallel die Werte der einen Datenwörter wenigstens eines Teils der Kette von Datenwortpaaren speichert und von dem ein Ausgang mit wenigstens einem der ersten Steuereingänge der Addier/Subtrahieranordnung verbunden ist, wobei die Steueranordnung das Register so steuert, daß die einzelnen Werte der einen Datenwörter nacheinander am Ausgang auftreten, und die Steueranordnung parallel dazu das Zuführen der anderen Datenwörter jedes Paares zur Addier/Subtrahieranordnung bewirkt.This object is achieved in that for processing data word pairs, one of which Data word of each pair only one of the two values +1 or -1 can assume a register is provided which in parallel the values of the one data word of at least one Part of the chain of data word pairs stores and from that an output with at least one of the first control inputs the add / subtract arrangement is connected, the Control arrangement controls the register so that the individual Values of one data word in succession at the output occur, and the control arrangement parallel to that Feed the other data words of each pair to the Add / subtract arrangement.

Die Multiplikation mit den Werten +1 und -1 wird bei der Summenbildung erfindungsgemäß lediglich durch eine entsprechende Steuerung der Addier/Subtrahieranordnung ersetzt, indem die anderen Datenwörter parallel in ein Register eingeschrieben werden und über einen Register­ ausgang die Funktion der Addier/Subtrahieranordnung bezüglich Addition oder Subtraktion steuern. Damit wird also in jedem Befehlszyklus ein Multiplizier- Akkumulations-Schritt ausgeführt, ohne daß eine Multipli­ zieranordnung verwendet werden muß. Wenn eine solche dennoch vorhanden ist, um auch allgemeine Datenwortpaare zu verarbeiten, tritt bei der Verarbeitung der Datenwörter nach dem Sonderfall allgemein eine geringere Verlust­ leistung auf, da keine Signalwechsel in der Multiplizier­ anordnung auftreten.The multiplication with the values +1 and -1 is used for the Total formation according to the invention only by one appropriate control of the add / subtract arrangement  replaced by the other data words in parallel in one Registers are registered and via a register output the function of the add / subtract arrangement control regarding addition or subtraction. So that will a multiplication in each instruction cycle Accumulation step carried out without a Multipli decorative arrangement must be used. If such still exists to include general data word pairs to process occurs when processing the data words after the special case, generally a lower loss performance on since there are no signal changes in the multiplier arrangement occur.

Die Steuerung des Registers kann derart erfolgen, daß der Wert des einen Datenwortes des folgenden Paares darin eingespeichert wird, während der Addier/Subtrahieranord­ nung im wesentlichen gleichzeitig das andere Datenwort des folgenden Paares zugeführt wird. Dies erfordert jedoch stets zwei Transportvorgänge von Datenworten für jedes Paar. Um diesen Vorgang zu vereinfachen, ist eine Ausge­ staltung der Erfindung dadurch gekennzeichnet, daß das Register ein Schieberegister mit einer Anzahl Stufen ist, die parallel einschreibbar sind und von denen ein Ausgang einer der Stufen den Ausgang des Registers darstellt, wobei der Inhalt des Registers durch erste Steuersignale der Steueranordnung bitweise verschiebbar ist. Dadurch nimmt das Register die einen Datenwörter einer Anzahl aufeinanderfolgender Paare parallel auf und gibt diese seriell ab, und zwar unter Steuerung der Steueranordnung, die auch das Zuführen der anderen Datenwörter zur Addier/Subtrahieranordnung steuert. Damit ist für jeden Schritt nur ein Datenworttransport erforderlich. Eine noch allgemeinere Steuerung der Verarbeitung von Datenwörtern ist nach einer weiteren Ausgestaltung dadurch möglich, daß abhängig von den ersten Steuersignalen der Steueranordnung der Inhalt des Registers in wählbare Richtung verschiebbar ist und das Register als Schieberegister im Ring schließbar ist.The register can be controlled in such a way that the Value of one data word of the following pair in it is stored while adding / subtracting essentially the other data word of the following couple is fed. However, this requires always two transport processes of data words for each Pair. To simplify this process, a staltung of the invention, characterized in that the Register is a shift register with a number of levels, which can be written in parallel and of which an output one of the stages represents the output of the register, the content of the register being determined by first control signals the control arrangement can be shifted bit by bit. Thereby the register takes the one data word of a number successive pairs in parallel and gives them serial, under the control of the control arrangement, which also feeds the other data words to the Add / subtract arrangement controls. That is for everyone Only one data word transport required. One more more general control over the processing of data words is possible according to a further embodiment in that depending on the first control signals of the control arrangement  the content of the register can be moved in the selectable direction and the register as a shift register in the ring is closable.

Wenn der Ausgang des Registers unmittelbar mit einem Steuereingang der Addier/Subtrahieranordnung verbunden würde, wäre deren Funktion grundsätzlich abhängig vom Inhalt des Registers, wodurch die Möglichkeit der Verwendung der Additions/Subtraktionsanordnung einge­ schränkt sein könnte. Nach einer weiteren Ausgestaltung der Erfindung ist es daher zweckmäßig, daß die Funktion der Addier/Subtrahieranordnung über den mit dem Ausgang des Registers verbundenen Steuereingang nur abhängig von wenigstens einem zweiten Steuersignal der Steueranord­ nung steuerbar ist. Dadurch ist es dann möglich, den Einfluß des Registers auf die Funktion der Additions/Sub­ traktionsanordnung abzuschalten. Am einfachsten ist dies dadurch möglich, daß der Ausgang des Registers über eine logische Verknüpfungsschaltung, die auch das zweite Steuersignal erhält, mit einem Steuereingang der Addier/Subtrahieranordnung verbunden ist. Damit sind vorteilhafte Funktionen möglich, für die später ein Beispiel erläutert wird.If the output of the register is immediately connected to a Control input of the add / subtract arrangement connected their function would basically depend on Contents of the register, giving the possibility of Use of the addition / subtraction arrangement turned on could be limited. According to a further embodiment the invention it is therefore appropriate that the function the add / subtract arrangement over that with the output control input only dependent on at least a second control signal of the control arrangement is controllable. This makes it possible to Influence of the register on the function of the addition / sub switch off traction arrangement. This is easiest possible that the output of the register over a logical logic circuit, which is also the second Receives control signal with a control input Adding / subtracting arrangement is connected. With that advantageous functions possible for the later one Example is explained.

Eine vorteilhafte Anwendung der erfindungsgemäßen Schaltungsanordnung ist in einem Prozessor, insbesondere einem digitalen Signalprozessor, der mindestens einen Datenbus aufweist. Dabei ist es zweckmäßig, daß die Stufen des Registers mit dem Datenbus gekoppelt sind und durch ein drittes Steuersignal der Steueranordnung die auf den Datenbus vorhandenen Daten übernehmen. Damit wird die Übertragung der einen Datenwörter in das Register in gleicher Weise wie die anderen Datenwörter der Paare durch die Steueranordnung durchgeführt. Diese ist dabei zweck­ mäßig im wesentlichen der Befehlsdekodierer des Prozessors. Der Ausgang des Registers kann dann wie bei weiteren Registern in einem Prozessor mit dem Datenbus verbindbar sein, so daß dieses Register auch allgemein zum Zwischenspeichern eines beliebigen Wortes verwendet werden kann.An advantageous application of the invention Circuitry is in a processor, in particular a digital signal processor that has at least one Data bus has. It is useful that the stages of the register are coupled to the data bus and by a third control signal of the control arrangement on the Data bus take over existing data. With that the Transfer of one data word to the register in the same way as the other data words of the pairs the control arrangement performed. This is the purpose  moderately essentially the instruction decoder of the Processor. The output of the register can then be the same as for further registers in a processor with the data bus be connectable, so that this register also for general Caching any word can be used can.

Bei der Verwendung der erfindungsgemäßen Schaltungsanord­ nung in einem Prozessor ist es vorteilhaft, wenn die Steueranordnung als Befehlsdecodierer einen aktiven Wert des ersten und zweiten Steuersignals nur beim Auftreten vorgegebener Befehlscodes erzeugt. Durch diese direkt befehlsabhängige Steuerung des Registers und der Addier/Sub­ trahieranordnung ist es beispielsweise möglich, für zwei Datenwörter x und y die arithmetischen Funktionen x-y bzw. x+y abhängig vom Wert des ersten Steuersignals durch einen besonderen Befehl in einem Befehlstaktzyklus auszuführen.When using the circuit arrangement according to the invention tion in a processor, it is advantageous if the Control arrangement as an instruction decoder an active value of the first and second control signals only when they occur predefined command codes generated. Through this directly command-dependent control of the register and the add / sub trahieranordnung it is possible, for example two data words x and y the arithmetic functions x-y or x + y depending on the value of the first control signal a special instruction in one instruction clock cycle to execute.

Ausführungsbeispiele der Erfindung werden nachstehend anhand der Zeichnung näher erläutert. Es zeigen:Embodiments of the invention are as follows explained in more detail with reference to the drawing. Show it:

Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Anordnung, Fig. 1 is a block diagram of an arrangement according to the invention,

Fig. 2 ein Beispiel für eine logische Verknüpfung des Registerausgangs mit Steuersignalen. Fig. 2 shows an example of a logical combination of the register output with control signals.

Die Fig. 1 zeigt ein grobes Blockschaltbild eines Ausschnitts aus einem Prozessor, insbesondere einem Signalprozessor. Ein wesentliches Element darin ist eine Addier/Subtrahieranordnung 10, die allgemein als soge­ nannte arithmetisch-logische Einheit ausgeführt ist, mittels der außer einfacher Addition oder Subtraktion von zwei Datenwörtern noch weitere arithmetische und logische Funktionen mit diesen Datenwörtern durchgeführt werden können, was über eine Anzahl Steuereingänge 9 gesteuert werden kann, wobei diese weiteren Funktionen außer Addition und Subtraktion in diesem Zusammenhang nicht von Bedeutung sind. Das Ergebnis der Verarbeitungsfunktion erscheint an einem Ausgang Z, der hier über eine Verbindung 11 mit einer Anzahl Akkumulatorregister 26a bis 26n verbunden ist, wobei das am Ausgang Z erscheinende Ergebnis durch Steuersignale auf der Leitung 19 in eines dieser Register eingeschrieben werden kann. Die Verwendung einer Mehrzahl von Registern ist für manche Funktionen eines Prozessors zweckmäßig, für die nachfolgend zu beschreibende Funktion wäre jedoch auch nur ein Register ausreichend. Fig. 1 shows a rough block diagram of a portion of a processor, in particular a signal processor. An essential element therein is an adding / subtracting arrangement 10 , which is generally designed as a so-called arithmetic-logic unit, by means of which, in addition to simple addition or subtraction of two data words, further arithmetic and logical functions can be carried out with these data words, which in a number Control inputs 9 can be controlled, these additional functions apart from addition and subtraction being of no importance in this context. The result of the processing function appears at an output Z, which here is connected via a connection 11 to a number of accumulator registers 26 a to 26 n, the result appearing at output Z being able to be written into one of these registers by control signals on line 19 . The use of a plurality of registers is expedient for some functions of a processor, but only one register would be sufficient for the function to be described below.

Es sei bemerkt, daß die Verbindung 11 sowie die zu den Eingängen A und B führenden Verbindungen sowie weitere dargestellte Verbindungen und Leitungen, die mit einem Querstrich versehen sind, tatsächlich in üblicher Weise aus einer Anzahl paralleler Leitungen bestehen, über die Datenwörter parallel übertragen werden.It should be noted that the connection 11 and the connections leading to the inputs A and B, as well as further connections and lines shown, which are provided with a slash, actually consist in the usual way of a number of parallel lines via which data words are transmitted in parallel.

Durch Steuersignale über eine Leitung 21 kann der Inhalt eines der Register 26a bis 26n ausgelesen werden, und dieser Inhalt wird über die Verbindung 27 und über einen Multiplexer 18 dem Eingang B der Einheit 10 zugeführt. Der Multiplexer 18 wird ebenso wie der Multiplexer 16 über der Einfachheit halber nicht dargestellte Steuerleitungen gesteuert, und zwar von der Steueranordnung 12, die auch die Steuerleitungen 19 und 21 sowie weitere, noch zu beschreibende Steuerleitungen speist. Diese Steueranord­ nung stellt im wesentlichen den Befehlsdekodierer zum Dekodieren der aus einem nicht dargestellten Befehls­ speicher nacheinander ausgelesenen und über einen Daten­ bus 20a zugeführten Befehlswörter dar. Diesem Datenbus 20a kann auch der aus einem der Register 26a bis 26n ausge­ lesene Inhalt zugeführt werden. The content of one of the registers 26 a to 26 n can be read out by control signals via a line 21 , and this content is fed to the input B of the unit 10 via the connection 27 and a multiplexer 18 . The multiplexer 18 , like the multiplexer 16, is controlled via control lines (not shown) for the sake of simplicity, specifically by the control arrangement 12 , which also feeds the control lines 19 and 21 and further control lines to be described. This stick mode voltage is essentially the instruction decoder for decoding the memory from an unillustrated command sequentially read out and, via a data bus 20 a supplied command words represent. This data bus 20 a can also be of a fed from one of the registers 26-26 n being read content will.

Der Multiplexer 18 verbindet abhängig von seiner Ansteuerung entweder die Verbindung 27 oder den Ausgang eines Registers 24 mit dem Eingang B der Einheit 10. In gleicher Weise verbindet der Multiplexer 16 abhängig von seiner Ansteuerung den Ausgang eines Registers 22 oder eine von anderen, nicht dargestellten Elementen des Prozessors kommende Verbindung 25 mit dem Eingang A der Einheit 10. Die Register 22 und 24 werden, zweckmäßig ebenfalls durch nicht dargestellte Ansteuerung von der Steueranordnung 12, zum Einspeichern jeweils eines Daten­ wortes angesteuert, das über einen Datenbus 20 beispiels­ weise von einem Speicher 30 zugeführt wird. Der Daten­ bus 20 kann mit dem Datenbus 20a identisch sein, es können jedoch auch noch mehr als zwei Datenbusse verwendet werden, wobei die Register 22 und 24 an verschiedene Datenbusse angeschlossen sein können.Depending on its control, the multiplexer 18 connects either the connection 27 or the output of a register 24 to the input B of the unit 10 . In the same way, depending on its control, the multiplexer 16 connects the output of a register 22 or a connection 25 coming from other elements of the processor, not shown, to the input A of the unit 10 . The registers 22 and 24 are expediently controlled, likewise by activation (not shown) by the control arrangement 12 , for storing in each case one data word, which is supplied, for example, from a memory 30 via a data bus 20 . The data bus 20 can be identical to the data bus 20 a, but more than two data buses can also be used, wherein the registers 22 and 24 can be connected to different data buses.

Die bisher beschriebene Anordnung arbeitet als Akkumu­ lator, wenn der Multiplexer 18 derart geschaltet ist, daß die Verbindung 27 mit dem Eingang B verbunden ist. Jedes über das Register 22 und den Multiplexer 16 dem Eingang A neu zugeführte Datenwort wird dabei zum Inhalt eines der Register 26a bis 26n addiert und vorzugsweise in diesem Register wieder abgespeichert. Auf diese Weise wird eine Summe einer Anzahl aufeinanderfolgend zugeführter Daten­ wörter gebildet.The arrangement described so far works as an accumulator if the multiplexer 18 is connected such that the connection 27 is connected to the input B. Each newly entered data word via the register 22 and the multiplexer 16 to the input A is added to the content of one of the registers 26 a to 26 n and is preferably stored again in this register. In this way, a sum of a number of successively supplied data words is formed.

Häufig soll nun nicht nur die Summe einer Kette von Daten­ wörtern, sondern die Summe der Produkte einer Kette von Datenwortpaaren gebildet werden, von denen das eine Daten­ wort jedes Paares nur den Wert +1 oder -1 annehmen kann. Jedes dieser einen Datenwörter ist somit nur ein Bit lang und stellt beispielweise einen Koeffizienten dar. Um eine solche Kette von Produkten zu verarbeiten, ist ein Register 14 vorgesehen, das die Bits der einen Datenwörter einer Kette von Datenwortpaaren parallel über beispiels­ weise den Bus 20 erhält und mit einem Steuersignal auf der Leitung 23 von der Steueranordnung 12 einschreibt. Das Register 14 ist als Schieberegister mit einer Anzahl Stufen ausgebildet, von denen jede Stufe ein Bit des zugeführten Datenwortes speichert, und über ein Steuer­ signal über die Leitung 13 von der Steueranordnung 12 kann der Inhalt aller Stufen parallel verschoben werden, so daß nacheinander der Inhalt jeder Stufe an einem Ausgang 15 des Registers 14 erscheint. Dieser Ausgang 15 ist über eine Anordnung 28, die später erläutert wird, mit einem Steuereingang 9 der Addier/Subtrahiereinheit 10 verbunden, und abhängig vom Wert des am Ausgang 15 auftretenden Bits, d. h. des einen Datenwortes eines Datenwortpaares, wird die Addier/Subtrahiereinheit 10 auf Additions- oder Subtraktionsfunktion geschaltet.Frequently, not only should the sum of a chain of data words be formed, but the sum of the products of a chain of data word pairs should be formed, of which the data word of each pair can only have the value +1 or -1. Each of these one data words is thus only one bit long and represents, for example, a coefficient. In order to process such a chain of products, a register 14 is provided which receives the bits of the one data words of a chain of data word pairs in parallel via, for example, the bus 20 and writes with a control signal on line 23 from control arrangement 12 . The register 14 is designed as a shift register with a number of stages, each stage storing a bit of the supplied data word, and via a control signal via the line 13 from the control arrangement 12 , the content of all stages can be shifted in parallel, so that the content one after the other each stage appears at an output 15 of register 14 . This output 15 is connected via an arrangement 28 , which will be explained later, to a control input 9 of the adding / subtracting unit 10 , and depending on the value of the bit occurring at the output 15 , ie the one data word of a data word pair, the adding / subtracting unit 10 opens Addition or subtraction function switched.

Über die Steuersignale auf der Leitung 13 wird also gesteuert, welches eine Datenwort jedes Paares am Ausgang 15 des Registers 14 auftritt, und über eine Steuerleitung 31 wird der Speicher 30 so angesteuert, daß er das zu dem Datenwortpaar gehörige andere Datenwort ausliest und über den Datenbus 20 und das Register 22 dem Eingang A der Einheit 10 zuführt. Abhängig von dem Bitwert am Ausgang 15 wird dieses zugeführte Datenwort dann zu dem bisher akkumulierten Zwischenergebnis addiert oder davon subtrahiert.The control signals on line 13 thus control which one data word of each pair occurs at output 15 of register 14 , and control line 31 controls memory 30 in such a way that it reads the other data word belonging to the data word pair and via the data bus 20 and register 22 feeds input A of unit 10 . Depending on the bit value at output 15 , this supplied data word is then added to or subtracted from the previously accumulated intermediate result.

Unter Berücksichtigung von Laufzeiten und Verzögerungen in den einzelnen Elementen ist der genauere Zeitablauf derart, daß zunächst die Ein-Bit-Werte der einen Daten­ wörter in das Register 14 übernommen werden und dann das andere Datenwort eines Datenwortpaares aus dem Speicher ausgelesen und dem Register 22 zugeführt wird, und danach wird dieses Datenwort in das Register 22 übernommen und erscheint mit kurzer Verzögerung am Eingang A, während gleichzeitig das Register 14 ein Schiebesignal erhält, so daß das zugehörige eine Datenwort dieses Paares am Ausgang 15 und damit am Steuereingang 9 der Einheit 10 erscheint. Dieses Schiebesignal für das Register 14 kann jedoch auch kurz vor dem Einschreiben des neuen Datenwortes in das Register 22 oder noch günstiger kurz nach der Verarbeitung jedes der anderen Datenwörter erzeugt werden, damit die Addier/Subtrahiereinheit 10 bereits auf ihre neue Funktion eingestellt ist, wenn ein neues:anderes Datenwort am Eingang A erscheint.Taking into account the running times and delays in the individual elements, the more precise timing is such that first the one-bit values of one data word are transferred to the register 14 and then the other data word of a data word pair is read from the memory and fed to the register 22 is, and then this data word is transferred to register 22 and appears with a short delay at input A, while register 14 receives a shift signal at the same time, so that the associated one data word of this pair appears at output 15 and thus at control input 9 of unit 10 . This shift signal for the register 14 can, however, also be generated shortly before the new data word is written into the register 22 or, more advantageously, shortly after the processing of each of the other data words, so that the add / subtract unit 10 is already set to its new function when a new: another data word at input A appears.

Um zu verhindern, daß die Addier/Subtrahiereinheit 10 in ihrer Funktion von dem Signal am Ausgang 15 des Registers 14 gesteuert wird, wenn diese für einen anderen Rechenvorgang als für die Bildung der Summe einer Kette von Produkten verwendet wird, ist zwischen dem Ausgang 15 und dem Steuereingang 9 der Einheit 10 eine Verknüpfungs­ anordnung 28 geschaltet, die über eine Steuerleitung 17a von der Steueranordnung 12 gesteuert wird. Über diese Steuerleitung 17a kann also verhindert werden, daß die Funktion der Einheit 10 von dem Signal am Ausgang 15 beeinflußt wird, so daß dann die Funktion nur noch von den Signalen auf der Steuerleitung 17 von der Steueranord­ nung 12 gesteuert wird.In order to prevent that the addition / subtraction unit 10 is controlled in its function by the signal at the output 15 of the register 14 when it is used for a calculation process other than for forming the sum of a chain of products, there is between the output 15 and the control input 9 of the unit 10 a logic arrangement 28 is switched, which is controlled by a control line 17 a from the control arrangement 12 . About this control line 17 a can thus be prevented that the function of the unit 10 is influenced by the signal at the output 15 , so that the function is then controlled only by the signals on the control line 17 from the Steueranord voltage 12 .

Die Ausgänge aller Stufen des Registers 14 sind ferner parallel mit dem Datenbus 20a verbunden, und durch ein entsprechendes Steuersignal von der Steueranordnung 12 kann der Inhalt aller Stufen auf diesen Datenbus 20a über­ tragen werden. Dadurch kann das Register 14 auch wie ein beliebiges Speicherregister verwendet werden, wenn die besondere Funktion zur Steuerung der Addier/Subtrahier­ anordnung vorübergehend nicht benötigt wird. The outputs of all stages of the register 14 are also connected in parallel to the data bus 20 a, and the content of all stages can be transmitted to this data bus 20 a by means of a corresponding control signal from the control arrangement 12 . As a result, the register 14 can also be used like any memory register if the special function for controlling the add / subtract arrangement is temporarily not required.

In Fig. 2 ist ein Beispiel für den Aufbau der Verknüpfungsanordnung 28 sowie auch für den Aufbau der Addier/Subtrahieranordnung 10 dargestellt, die hier allerdings tatsächlich nur Additionen oder Subtraktionen durchführen kann. Die Subtraktion wird dabei im Zweier- Komplement durchgeführt, d. h. es wird das Komplement des zu subtrahierenden Wertes sowie eine zusätzliche Einheit der niedrigsten Stelle addiert. Die Addier/Subtrahierein­ heit 10 enthält dafür einen Addierer 40, dessen Eingänge a und b die an den Eingängen A und B der Einheit 10 angelegten Datenwörter über die Multiplexer 42 bzw. 44 entweder direkt oder über die Inverterstufen 46 und 48 im Komplement erhalten. Ferner weist der Addierer 40 noch einen Übertragseingang 41 auf. Der Ausgang z des Addierers 40 führt auf die Verbindung 11. FIG. 2 shows an example of the structure of the link arrangement 28 and also of the structure of the add / subtract arrangement 10 , which, however, can actually only carry out additions or subtractions here. The subtraction is carried out in two's complement, ie the complement of the value to be subtracted and an additional unit of the lowest digit are added. The adder / subtractor unit 10 contains an adder 40 , the inputs a and b of which receive the data words applied to the inputs A and B of the unit 10 via the multiplexers 42 and 44 either directly or via the inverter stages 46 and 48 in complement. The adder 40 also has a carry input 41 . The output z of the adder 40 leads to the connection 11 .

Mit dieser Anordnung ist es möglich, die beiden Funktionen A-BKi oder B-Aki durchzuführen, wobei ki ein Koeffizient mit dem Wert +1 oder -1 ist, abhängig von dem binären Wert am Ausgang 15 des Registers 14. Dafür sind zwei besondere Befehle vorgesehen, und für die erstere Funktion erzeugt die Steueranordnung 12 in Fig. 1 auf der Leitung i inner­ halb der Steuerleitung 17a eine logische "1", die dem einen Eingang eines ODER-Gatters 50 in der Anordnung 28 zugeführt wird, so daß die Leitung 51 ebenfalls ständig eine logische "1" führt und der Multiplexer das Datenwort am Eingang A unverändert durchläßt. Das Signal am anderen Eingang des ODER-Gatters 50 ist dann ohne Bedeutung. Die Leitung j führt eine logische "0", und wenn dann die Leitung 15 ebenfalls eine logische "0" entsprechend k=-1 führt, erzeugt der Inverter 54 über das ODER-Gatter 52 eine logische "1" auf der Leitung 53, so daß auch das Datenwort am Eingang B unverändert über den Multiplexer 44 weitergegeben wird und beide Datenwörter ohne Übertrag addiert werden. Wenn dagegen die Leitung 15 eine logische "1" führt entsprechend k=+1, führt die Leitung 53 eine logische "0", so daß der Multiplexer das Komplement des Datenwortes am Eingang B dem Addierer 40 zuführt, der außerdem am Übertragseingang 41 dann ein Übertragssignal erhält, so daß A-B am Ausgang erscheint. Für die zweit­ genannte Funktion führt die Leitung i eine logische "0" und die Leitung j eine logische "1", so daß bei einer logischen "0" auf der Leitung 15 wieder die Summe der beiden Datenwörter an den Eingängen A und B gebildet wird, während bei einer logischen "1" auf der Leitung 15 entsprechend k=+1 die Differenz B-A am Ausgang z des Addierers 40 gebildet wird. Damit bestimmt der am Ausgang 15 auftretende Inhalt des Registers 14, das als im Ring geschlossenes Schieberegister ausgebildet ist, ob die Addier/Subtrahiereinheit 10 die Summe oder die Differenz der beiden zugeführten Datenwörter bildet, wobei die abhängig von den besonderen Befehlen erzeugten Signale auf den Leitungen i und j das Vorzeichen dieser Differenz bestimmen, so daß jede dieser arithmetischen Funktionen in nur einem Befehlstaktzyklus gebildet werden können.With this arrangement, it is possible to perform the two functions A-BK i or B-Ak i , where k i is a coefficient with the value +1 or -1, depending on the binary value at the output 15 of the register 14 . For this purpose, two special commands are provided, and for the former function, the control arrangement 12 in FIG. 1 generates a logic “1” on the line i within the control line 17 a, which supplies the one input of an OR gate 50 in the arrangement 28 is, so that line 51 also constantly has a logical "1" and the multiplexer passes the data word at input A unchanged. The signal at the other input of the OR gate 50 is then irrelevant. Line j carries a logic "0", and if line 15 then also carries a logic "0" corresponding to k = -1, inverter 54 generates a logic "1" on line 53 via OR gate 52, see above that the data word at input B is passed on unchanged via the multiplexer 44 and both data words are added without carry. If, on the other hand, line 15 carries a logical "1" corresponding to k = + 1, line 53 carries a logical "0", so that the multiplexer supplies the complement of the data word at input B to adder 40 , which then also enters at carry input 41 Carry signal so that AB appears at the output. For the second function mentioned, the line i carries a logical "0" and the line j a logical "1", so that with a logical "0" on the line 15 the sum of the two data words at the inputs A and B is again formed , while with a logical "1" on line 15 corresponding to k = + 1, the difference BA is formed at the output z of the adder 40 . Thus, the appearing at the output 15 content determined of the register 14, which is configured as closed in the ring shift register, whether the adder / subtractor 10 forms the sum or difference of the two supplied data words, said signals depending produced by the special commands on lines i and j determine the sign of this difference so that each of these arithmetic functions can be formed in only one instruction clock cycle.

Wenn beide Leitungen i und j eine logische "0" führen, können weitere, nicht dargestellte Eingänge an den Multiplexern 42 und 44, die vorzugsweise von der Steuer­ anordnung 12 in Fig. 1 gesteuert werden, bestimmen, ob die Addier/Subtrahiereinheit 10 die Summe oder die Differenz der zugeführten Datenwörter bildet.If both lines i and j carry a logic "0", further inputs, not shown, at the multiplexers 42 and 44 , which are preferably controlled by the control arrangement 12 in FIG. 1, can determine whether the addition / subtraction unit 10 determines the sum or forms the difference between the supplied data words.

Mit der in Fig. 1 dargestellten Anordnung mit den Details gemäß der Fig. 2 ist es also auf einfache Weise möglich, die Summe von Produkten einer Kette von Datenwortpaaren zu bilden, wenn das eine Datenwort jedes Paares nur die Werte +1 und -1 annehmen kann, wobei mit jedem Befehlszyklus ein Datenwortpaar verarbeitet wird.With the arrangement shown in FIG. 1 with the details according to FIG. 2, it is therefore possible in a simple manner to form the sum of products of a chain of data word pairs if the one data word of each pair only assume the values +1 and -1 can, with a pair of data words being processed with each command cycle.

Claims (7)

1. Schaltungsanordnung zum Bilden dem Summe von Produkten einer Kette von Datenwortpaaren, mittels einer Addier/Subtrahieranordnung, deren Funktion insbesondere hinsichtlich Addition und Subtraktion über erste Steuer­ eingänge umschaltbar ist, und mittels einer Steuer­ anordnung zur Steuerung der aufeinanderfolgenden Verarbeitung der Produkte, dadurch gekennzeichnet, daß zum Verarbeiten von Datenwort­ paaren, von denen das eine Datenwort jedes Paares lediglich einen der beiden Werte +1 oder -1 annehmen kann, ein Register (14) vorgesehen ist, das parallel die Werte der einen Datenwörter wenigstens eines Teils der Kette von Datenwortpaaren speichert und von dem ein Ausgang (15) mit wenigstens einem der ersten Steuereingänge (9) der Addier/Subtrahieranordnung (10) verbunden ist, wobei die Steueranordnung (12) das Register (14) so steuert, daß die einzelnen Werte der einen Datenwörter nacheinander am Ausgang (15) auftreten, und die Steueranordnung (12) parallel dazu das Zuführen der anderen Datenwörter jedes Paares zur Addier/Subtrahieranordnung (10) bewirkt.1. Circuit arrangement for forming the sum of products of a chain of data word pairs, by means of an add / subtract arrangement, the function of which can be switched in particular with regard to addition and subtraction via first control inputs, and by means of a control arrangement for controlling the successive processing of the products, characterized in that that pairs for processing data words, of which the one data word of each pair can only assume one of the two values +1 or -1, a register ( 14 ) is provided which stores in parallel the values of the one data words of at least part of the chain of data word pairs and from which an output ( 15 ) is connected to at least one of the first control inputs ( 9 ) of the adder / subtractor arrangement ( 10 ), the control arrangement ( 12 ) controlling the register ( 14 ) in such a way that the individual values of the one data word successively on Output ( 15 ) occur, and the control arrangement ( 12 ) parallel to that Feeding the other data words of each pair to the add / subtract arrangement ( 10 ). 2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß das Register (14) ein Schiebe­ register mit einer Anzahl Stufen ist, die parallel ein­ schreibbar sind und von denen ein Ausgang einer der Stufen den Ausgang (15) des Registers (14) darstellt, wobei der Inhalt des Registers durch erste Steuersignale (13) der Steueranordnung (12) bitweise verschiebbar ist. 2. Circuit arrangement according to claim 1, characterized in that the register ( 14 ) is a shift register with a number of stages which can be written in parallel and of which an output of one of the stages represents the output ( 15 ) of the register ( 14 ), wherein the content of the register can be shifted bit by bit by first control signals ( 13 ) of the control arrangement ( 12 ). 3. Schaltungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß abhängig von den ersten Steuersignalen (13) der Steueranordnung (12) der Inhalt des Registers (14) in wählbare Richtung verschiebbar ist und das Register (14) als Schieberegister im Ring schließbar ist.3. Circuit arrangement according to claim 2, characterized in that depending on the first control signals ( 13 ) of the control arrangement ( 12 ), the content of the register ( 14 ) can be moved in a selectable direction and the register ( 14 ) can be closed as a shift register in the ring. 4. Schaltungsanordnung nach einem der Ansprüche 1, 2 oder 3, dadurch gekennzeichnet, daß die Funktion der Addier/Sub­ trahieranordnung (10) über den mit dem Ausgang 15 des Registers (14) verbundenen Steuereingang (9) nur abhängig von wenigstens einem zweiten Steuersignal (17) der Steuer­ anordnung (12) steuerbar ist.4. Circuit arrangement according to one of claims 1, 2 or 3, characterized in that the function of the add / sub trahieranordnung ( 10 ) via the control input ( 9 ) connected to the output 15 of the register ( 14 ) only as a function of at least one second control signal ( 17 ) the tax arrangement ( 12 ) is controllable. 5. Schaltungsanordnung nach Anspruch 4, dadurch gekennzeichnet, daß der Ausgang (15) des Registers (14) über eine logische Verknüpfungsschaltung (28), die auch das zweite Steuersignal (17) erhält, mit einem Steuereingang (9) der Addier/Subtrahieranordnung (10) verbunden ist.5. Circuit arrangement according to claim 4, characterized in that the output ( 15 ) of the register ( 14 ) via a logic logic circuit ( 28 ), which also receives the second control signal ( 17 ), with a control input ( 9 ) of the adding / subtracting arrangement ( 10 ) is connected. 6. Schaltungsanordnung nach einem der vorhergehenden Ansprüche in einem Prozessor, insbesondere einem digitalen Signalprozessor, mit mindestens einem Datenbus, dadurch gekennzeichnet, daß die Stufen des Registers (14) mit dem Datenbus (20) gekoppelt sind und durch ein drittes Steuersignal (23) der Steueranordnung (12) die auf dem Datenbus (20) vorhandenen Daten übernehmen.6. Circuit arrangement according to one of the preceding claims in a processor, in particular a digital signal processor, with at least one data bus, characterized in that the stages of the register ( 14 ) are coupled to the data bus ( 20 ) and by a third control signal ( 23 ) Control arrangement ( 12 ) take over the data present on the data bus ( 20 ). 7. Schaltungsanordnung nach Anspruch 6, dadurch gekennzeichnet, daß die Steueranordnung (12) als Befehlsdecodierer einen aktiven Wert des ersten und zweiten Steuersignals nur beim Auftreten vorgegebener Befehlscodes erzeugt.7. Circuit arrangement according to claim 6, characterized in that the control arrangement ( 12 ) as command decoder generates an active value of the first and second control signals only when predetermined command codes occur.
DE4242929A 1992-12-18 1992-12-18 Circuit arrangement for forming the sum of products Withdrawn DE4242929A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE4242929A DE4242929A1 (en) 1992-12-18 1992-12-18 Circuit arrangement for forming the sum of products
PCT/NL1993/000267 WO1994015278A1 (en) 1992-12-18 1993-12-17 Product summing circuitry
SG1996009097A SG55185A1 (en) 1992-12-18 1993-12-17 Circuit arrangement for forming the sum of products
KR1019940702887A KR100337716B1 (en) 1992-12-18 1993-12-17 A circuit forming the sum of products
JP6515035A JPH08500690A (en) 1992-12-18 1993-12-17 Circuit layout that forms the sum of products
EP94903145A EP0627099A1 (en) 1992-12-18 1993-12-17 Product summing circuitry
US08/695,951 US5650952A (en) 1992-12-18 1996-08-13 Circuit arrangement for forming the sum of products

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE4242929A DE4242929A1 (en) 1992-12-18 1992-12-18 Circuit arrangement for forming the sum of products

Publications (1)

Publication Number Publication Date
DE4242929A1 true DE4242929A1 (en) 1994-06-23

Family

ID=6475741

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4242929A Withdrawn DE4242929A1 (en) 1992-12-18 1992-12-18 Circuit arrangement for forming the sum of products

Country Status (6)

Country Link
EP (1) EP0627099A1 (en)
JP (1) JPH08500690A (en)
KR (1) KR100337716B1 (en)
DE (1) DE4242929A1 (en)
SG (1) SG55185A1 (en)
WO (1) WO1994015278A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19717970A1 (en) * 1997-04-28 1998-10-29 Univ Dresden Tech Circuit in digital assembly for multiplying and adding binary numbers

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711765B2 (en) 2006-02-17 2010-05-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus to perform multiply-and-accumulate operations

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7712367A (en) * 1977-11-10 1979-05-14 Philips Nv DIGITAL ADDITIONAL COMPUTER.
DE3066955D1 (en) * 1980-06-24 1984-04-19 Ibm Signal processor computing arrangement and method of operating said arrangement
US5128890A (en) * 1991-05-06 1992-07-07 Motorola, Inc. Apparatus for performing multiplications with reduced power and a method therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19717970A1 (en) * 1997-04-28 1998-10-29 Univ Dresden Tech Circuit in digital assembly for multiplying and adding binary numbers
DE19717970B4 (en) * 1997-04-28 2006-11-09 Systemonic Ag Circuit arrangement of a digital module for multiplication and addition of binary numbers

Also Published As

Publication number Publication date
EP0627099A1 (en) 1994-12-07
KR950700571A (en) 1995-01-16
KR100337716B1 (en) 2002-11-22
SG55185A1 (en) 1998-12-21
WO1994015278A1 (en) 1994-07-07
JPH08500690A (en) 1996-01-23

Similar Documents

Publication Publication Date Title
DE1549476C3 (en) Order to execute divisions
DE1549477B1 (en) DEVICE FOR THE QUICK ACCUMULATION OF A NUMBER OF MULTI-DIGIT BINARY OPERANDS
DE2814078A1 (en) ADDING CONNECTION WITH TEMPORARY INTERMEDIATE STORAGE OF THE TRANSFER
DE2758130C2 (en) High speed binary and decimal adder
DE2617485C3 (en) Circuit arrangement for data processing systems for processing micro instruction sequences
DE3447729C2 (en)
DE2245284A1 (en) DATA PROCESSING SYSTEM
EP0598112B1 (en) Process and configuration for establishing the sum of a chain of products
DE4242929A1 (en) Circuit arrangement for forming the sum of products
DE2000275A1 (en) Electronic roller switch
DE19637369C2 (en) Digital signal processor with multiplier and method
DE1499227C3 (en) Circuit arrangement for basic arithmetic and logical operations
DE2708637C3 (en) Circuit arrangement for forming a BCD sum or a pure binary sum from a first and a second operand
DE1181459B (en) Multiplication circuit for electronic number calculators
EP0051154A1 (en) Method and device for combining variable-length operands in data processing systems
DE1549465C (en) Multiplier
DE2737483C3 (en) Correction circuit arrangement for addition or subtraction operations with non-hexadecimal operands in hexadecimal arithmetic units
DE1234055B (en) Arrangement for addition or subtraction
EP0161335B1 (en) Preparation of sampled values of a time-variable signal in a data processing arrangement
DE19514739C2 (en) Multiplier
DE1303692C2 (en) BINARY CALCULATOR
DE1549465A1 (en) Multiplier
DE1549478C (en) Floating point arithmetic unit for quick addition or subtraction of binary operands
DE1524146C (en) Division facility
DE2929386A1 (en) DIGITAL PROCESSOR, IN PARTICULAR TO PROCESS ANALOG SIGNALS

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: PHILIPS CORPORATE INTELLECTUAL PROPERTY GMBH, 2233

8141 Disposal/no request for examination