NL8502077A - DIGITAL MULTIPLICER. - Google Patents

DIGITAL MULTIPLICER. Download PDF

Info

Publication number
NL8502077A
NL8502077A NL8502077A NL8502077A NL8502077A NL 8502077 A NL8502077 A NL 8502077A NL 8502077 A NL8502077 A NL 8502077A NL 8502077 A NL8502077 A NL 8502077A NL 8502077 A NL8502077 A NL 8502077A
Authority
NL
Netherlands
Prior art keywords
cell
bit
numbers
multiplier
cells
Prior art date
Application number
NL8502077A
Other languages
Dutch (nl)
Inventor
R C J Hicks
Original Assignee
Ferranti Plc
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 Ferranti Plc filed Critical Ferranti Plc
Publication of NL8502077A publication Critical patent/NL8502077A/en

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/525Multiplying only in serial-serial fashion, i.e. both operands being entered serially
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • G06F2207/3892Systolic array

Landscapes

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

Description

N.0. 33.329 1 m *N.0. 33,329 1 m *

Digitale vermenigvuldiger.Digital multiplier.

De uitvinding heeft betrekking op digitale vermenigvuldigers en in 5 het bijzonder op vermenigvuldigers, die in het bijzonder geschikt zijn voor integratie op grote schaal in de vorm van geïntegreerde schakelingen.The invention relates to digital multipliers and in particular to multipliers which are particularly suitable for large-scale integration in the form of integrated circuits.

Vele bewerkingen die noodzakelijk zijn bij signaal- of beeldverwerking, zoals korrelatie, konvolutie en het filteren kunnen niet op de 10 beste wijze in een computer van konventionele bouw worden uitgevoerd. De basisvoorwaarde voor deze bewerkingen is de mogelijkheid van het met elkaar vermenigvuldigen van stromen of paren getallen en en het accumuleren van een totaal. In binaire uitdrukkingen bezitten getallen met een woordlengte van 32 bits voldoende nauwkeurigheid voor lopende en toekom-15 stige signaalbewerkingen, terwijl het gebruik van produkten van 64 bits afrondfouten in het accumuleerproces zullen minimaliseren.Many operations necessary for signal or image processing, such as correlation, convolution and filtering, cannot be best performed in a computer of conventional construction. The basic condition for these operations is the ability to multiply flows or pairs of numbers and accumulate a total. In binary expressions, 32-bit word lengths have sufficient accuracy for current and future signal operations, while the use of 64-bit products will minimize rounding errors in the accumulation process.

De reden voor het niet effecient uitvoeren van algorithmen voor signaalverwerkingsbewerkingen die hierboven zijn genoemd komt van het herhaald tussen een geheugen en een processor heen en weer voeren van 20 een enkel datagegeven. Een zeer aantrekkelijke benadering voor de verwerking van kontinue stromen data is de toe’passing van een systolisch stelsel van verwerkende elementen. Een dergelijk systolisch stelsel wordt gebruikt als een met een universele host-computer verbonden specifieke processor, waardoor de host-computer beschikbaar blijft voor het 25 uitvoeren van meer universele funkties.The reason for the ineffective execution of algorithms for signal processing operations mentioned above comes from repeating a single data item between a memory and a processor. A very attractive approach for the processing of continuous flows of data is the application of a systolic system of processing elements. Such a systolic system is used as a dedicated processor connected to a universal host computer, leaving the host computer available to perform more universal functions.

Een dergelijke specifieke processor moet geschikt zijn om de resultaten van zijn verwerkingsprocessen aan zijn host-computer te leveren met een snelheid, die kompatibel is met de inkomende datastroom. De benadering met een systolisch stelsel maakt het mogelijk door het maximum 30 gebruik van pijplijnmethoden en parallelbewerking en door volledig gebruik te maken van elk gegevensbestanddeel, terwijl dit een gegeven kon-figuratie passeert van relatief eenvoudige, plaatselijk met elkaar verbonden verwerkingselementen.Such a specific processor must be capable of delivering the results of its processing processes to its host computer at a rate compatible with the incoming data stream. The systolic system approach allows through the maximum utilization of pipeline methods and parallel processing and by making full use of each data item, while passing a given configuration of relatively simple locally interconnected processing elements.

In het geval van signaalverwerkingsoperaties, die hierboven zijn 35 genoemd, is de basisfunktie van elk identiek verwerkingselement het met elkaar vermenigvuldigen van paren getallen (waarvan de woordlengte voldoende groot is om een acceptabel niveau van nauwkeurigheid te bereiken) en het accumuleren van de som van de produkten.In the case of signal processing operations, mentioned above, the basic function of each identical processing element is to multiply pairs of numbers (whose word length is large enough to achieve an acceptable level of accuracy) and to accumulate the sum of the products.

Bekende systolische stelsels vereisen een stelsel van identieke 40 vermenigvuldigingscellen, die elk een bit van telkens met elkaar te ver— 8502077Known systolic systems require a system of identical 40 multiplication cells, each of which is one bit apart.

« * ‘ X«*" X

2 menigvuldigen getallen vermenigvuldigt. De Britse octrooiaanvrage 2.106.278A beschrijving bijvoorbeeld een inrichting, voorzien van een rechthoekig stelsel van cellen, elk verbonden met elke aangrenzende cel in het stelsel. In een dergelijk stelsel neemt echter het aantal cellen 5 in het stelsel toe met het kwadraat van het aantal bits in elk te vermenigvuldigen getal. Voor gebruikelijke woordlengten kan derhalve het aantal cellen zeer groot worden. Dit is in het bijzonder van belang omdat de snelste werking kan worden verkregen met een vermenigvuldiger aanwezig op een enkele siliciumchip, omdat de inter-chipverbindingen tijdver-10 tragingen introduceren.Multiplies 2 multiples of numbers. For example, British Patent Application 2,106,278A discloses a device comprising a rectangular array of cells, each connected to each adjacent cell in the array. In such a system, however, the number of cells 5 in the system increases by the square of the number of bits in each number to be multiplied. The number of cells can therefore become very large for usual word lengths. This is particularly important because the fastest operation can be obtained with a multiplier present on a single silicon chip, because the inter-chip connections introduce time delays.

Een van de doeleinden van de onderhavige uitvinding is derhalve het verschaffen van een digitale vermenigvuldiger van het "pijplijn"-type, waarin het aantal vermenigvuldigingscellen slechts lineair toeneemt met de grootte van de met elkaar te vermenigvuldigen gètallen.Thus, one of the objects of the present invention is to provide a "pipeline" type digital multiplier in which the number of multiplication cells increases only linearly with the magnitude of the numbers to be multiplied together.

15 Volgens de uitvinding wordt een digitale vermenigvuldiger verschaft voor het met elkaar vermenigvuldigen van twee binaire getallen, voorzien van een lineair stelsel van bitniveau-verwerkingscellen, elk voorzien van twee ingangsaansluitingen, aan respektievelijke cellen waarvan achtereenvolgens bits worden toegevoerd van elk van de twee binaire ge-v 20 tallen, twee uitgangsaansluitingen aangesloten op de volgende aangrenzende cel en waaraan de genoemde op elkaar volgende bits worden toegevoerd, vermenigvuldigingsmiddelen die werkzaam zijn voor het met elkaar vermenigvuldigen van een bit van elk van de genoemde getallen en optel-middelen die operatief zijn voor het bij elkaar optellen en opbergen van 25 de resultaten van de achtereenvolgens in de cellen uitgevoerde vermenigvuldiging.According to the invention, there is provided a digital multiplier for multiplying together two binary numbers, provided with a linear system of bit level processing cells, each provided with two input terminals, to respective cells of which bits are successively fed from each of the two binary numbers. -v 20 numbers, two output terminals connected to the next adjacent cell and to which the said successive bits are applied, multiplication means operative for multiplying one bit of each of said numbers and addition means operative for adding and storing the results of the multiplication successively performed in the cells.

Bij voorkeur is het aantal cellen in het lineaire stelsel gelijk aan de som van het getal van de bits in de twee met elkaar te vermenigvuldigen getallen.Preferably, the number of cells in the linear array is equal to the sum of the number of the bits in the two numbers to be multiplied together.

30 De uitvinding zal thans nader worden toegelicht aan de hand van de bijgaande tekeningen, waarin: fig. 1 een logisch schema is van een bitverwerkingscel volgens een eerste uitvoeringsvorm van de uitvinding; fig. 2 een schematisch diagram is dat de onderlinge verbindingen 35 toont van een eenvoudig stelsel van de bitverwerkingscellen van fig. 1 voor het vormen van een digitale vermenigvuldiger; fig. 3 de werking toont van de digitale vermenigvuldiger van fig.The invention will now be further elucidated with reference to the annexed drawings, in which: fig. 1 is a logic diagram of a bit processing cell according to a first embodiment of the invention; FIG. 2 is a schematic diagram showing interconnections 35 of a simple system of the bit processing cells of FIG. 1 to form a digital multiplier; FIG. 3 shows the operation of the digital multiplier of FIG.

2; fig. 4 een logisch schema is van een bitverwerkingscel volgens een 40 tweede uitvoeringsvorm van de uitvinding; 8502 07 7 3 I ...2; Fig. 4 is a logic diagram of a bit processing cell according to a second embodiment of the invention; 8502 07 7 3 I ...

fig. 5 de werking toont van een vermenigvuldiger voorzien van een stelsel van de bitverwerkingscellen volgens fig. 4; fig. 6 een voorbeeld toont van de werking van de vermenigvuldiger « in fig. 4; en 5 fig. 7 een blokdiagram toont van de signaalverwerkingsinrichting opgenomen in meerdere digitale vermenigvuldigers.FIG. 5 shows the operation of a multiplier provided with a system of the bit processing cells of FIG. 4; FIG. 6 shows an example of the operation of the multiplier "in FIG. 4; and Fig. 7 shows a block diagram of the signal processing device included in a plurality of digital multipliers.

Fig. 1 toont een uitvoeringsvorm van een bitverwerkingscel volgens de uitvinding. De weergegeven cel wordt gebruikt voor het met elkaar vermenigvuldigen van twee getallen "a" en "b" en de datastroom van de 10 twee getallen verloopt in tegengestelde richtingen. De weergegeven cel heeft drie gegevensingangen aangeduid met Ia, Ib en Ic, de laatste dient voor elke ,,overdracht,,-bit, opgewekt door de voorafgaande cel in het stelsel. Elk van deze ingangen is verbonden met een afzonderlijke rand-getrokken bistabiele grendel, weergegeven als Ll, L2 en L3. Aan elke 15 grendel wordt tevens een klokpulssignaal CK toegevoerd. De uitgang van de grendel Ll vormt de gegevensuitgang "a" naar de direkt volgende cel aan de rechter zijde door middel van de uitgangsverbinding Oa en is tevens verbonden met een ingang van de EN-poort 6 met twee ingangen. De uitgang van de grendel L2 is verbonden met de andere ingang van de poort 20 G en vormt tevens de gegevensuitgang "b" naar de direkt volgende cel aan de linker zijde door middel van de uitgangsaansluiting Ob.Fig. 1 shows an embodiment of a bit processing cell according to the invention. The displayed cell is used to multiply two numbers "a" and "b" together and the data flow of the two numbers proceeds in opposite directions. The displayed cell has three data inputs designated Ia, Ib and Ic, the latter serving for each transfer bit generated by the previous cell in the system. Each of these inputs is connected to a separate edge-drawn bistable latch, shown as L1, L2 and L3. A clock pulse signal CK is also applied to every 15 locks. The output of the latch L1 forms the data output "a" to the immediately following cell on the right by means of the output connection Oa and is also connected to an input of the AND gate 6 with two inputs. The output of the latch L2 is connected to the other input of the gate 20 G and also forms the data output "b" to the immediately following cell on the left by means of the output terminal Ob.

De uitgang van de EN-poort G is verbonden met een opteller AD samen met de uitgang van de grendel L3. Een ,,overdracht,,-uitgang van de opteller AD vormt de "overdrachtn-uitgang c' naar de volgende cel aan de 25 rechter zijde door middel van de uitgangsverbinding Oc. Een "lees"-sig-naal RD kan aan de opteller AD worden toegevoerd, zodat de opteller zijn inhoud toevoert aan een gegevensuitgang DO.The output of AND gate G is connected to an adder AD together with the output of latch L3. A "transfer" output from the adder AD forms the "transfer" output c "to the next cell on the right side by means of the output connection Oc. A" read "signal RD can be sent to the adder AD. so that the adder supplies its content to a data output DO.

Tijdens de werking wordt een bit van elk van de getallen "a" en "b" toegevoerd aan de EN-poort G als een klokpuls of "zweving" aan elk van 30 de grendels Ll en L2. De vermenigvuldiging van twee enkelbits binaire getallen is in feite eenvoudig het EN-nen, omdat als een of beide getallen nul is het produkt ook nul is. De uitgang van de EN-poort G wordt vastgehouden in de opteller AD. Elke "overdracht"-bit van de voorafgaande cel wordt ook aan de opteller toegevoerd en elke resulterende "over-35 dracht" wordt direkt aan de volgende cel toegevoerd.In operation, a bit of each of the numbers "a" and "b" is applied to the AND gate G as a clock pulse or "beat" to each of the latches L1 and L2. The multiplication of two single-bit binary numbers is in fact simply the AND's, because if one or both numbers is zero, the product is also zero. The output of the AND gate G is held in the adder AD. Each "transfer" bit from the previous cell is also applied to the adder, and each resulting "transfer" is directly applied to the next cell.

Als de gehele vermenigvuldigingsoperatie die door het stelsel moet worden uitgevoerd voltooid is, wordt achtereenvolgens het "lees"-signaal RD aan elke opteller in het stelsel toegevoerd, als gevolg waarvan op elkaar volgende bits van het resultaat van de vermenigvuldigingsoperatie 40 in een gegevenshoofdlijn moet worden uitgelezen. Verdere schakelingen 8502 077 4 t » * kelingen kunnen worden toegevoegd voor de verwerking van de tekenextrak-tie en de nulstelling van de geheugens voorafgaand aan de start van een verdere vermenigvuldigingsoperatie.When the entire multiplication operation to be performed by the system is completed, the "read" signal RD is successively applied to each adder in the system, whereby successive bits of the result of the multiplication operation 40 must be fed into a data trunk exquisite. Further circuits 8502 077 4t circuits can be added to process the character extraction and the zeroing of the memories prior to the start of a further multiplication operation.

Fig. 2 toont op welke wijze een getal van de beschreven bitverwer-5 kingscellen voor het vormen van een vermenigvuldiger met elkaar kunnen worden verbonden. Het aantal bitverwerkingscellen moet ten minste gelijk zijn aan de som van de getallen van de bits in elk van de twee getallen. De vermenigvuldiging van twee drie-bitsgetallen vereist bijvoorbeeld zes cellen, weergegeven in fig. 2 als Cl tot C6. De "lees"- en uitgangsver-10 bindingen zijn eveneens weergegeven en aangegeven met RD1 tot RD6 res-pektievelijk D01 tot D06.Fig. 2 shows how a number of the described bit processing cells can be interconnected to form a multiplier. The number of bit processing cells must be at least equal to the sum of the numbers of the bits in each of the two numbers. For example, the multiplication of two three-bit numbers requires six cells, shown in Figure 2 as C1 to C6. The "read" and output connections are also shown and denoted by RD1 to RD6 and D01 to D06, respectively.

Fig. 3 toont de werking van de vermenigvuldiger bij het met elkaar vermenigvuldigen van drie-bitsgetallen. De tekening toont de vermenig-vuldigingsbewerking voor elk van de negen op elkaar volgende bits, de 15 vermenigvuldiger is weergegeven voor elke bit met de posities van de bits van de twee getallen aangegeven als aj_, a2, a.% respektieve-lijk bj, b£ en b3, waarbij de bits a3 en b3 de meest signifi-kante bits van de respektievelijke getallen zijn. De vermenigvuldiging van de twee drie-bitsgetallen is hieronder weergegeven: 20 b3 b2 bi x_........a3_a2 st = i h_g f_e_d 25 waarbij d = a]bi e = aib2 + a2bi + elke overdracht van d f = ajb3 + a2b2 + a3bj + elke overdracht van e % g “ a2b3 + a3b2 + elke overdracht van f 30 h = a3b3 + elke overdracht van g i = elke overdracht van hFig. 3 shows the operation of the multiplier when multiplying three bit numbers together. The drawing shows the multiplication operation for each of the nine consecutive bits, the multiplier is shown for each bit with the positions of the bits of the two numbers indicated as aj_, a2, a.% Bj, b, respectively £ and b3, bits a3 and b3 being the most significant bits of the respective numbers. The multiplication of the two three-bit numbers is shown below: 20 b3 b2 bi x _........ a3_a2 st = i h_g f_e_d 25 where d = a] bi e = aib2 + a2bi + any transfer of df = ajb3 + a2b2 + a3bj + any transfer of e% g “a2b3 + a3b2 + any transfer of f 30 h = a3b3 + any transfer of gi = any transfer of h

Elke bit van een getal wordt dus beurtelings vermenigvuldigd door elke bit van het andere getal. De twee getallen zullen gewoonlijk tege-35 lijkertijd beschikbaar komen op afzonderlijke gegevenshoofdlijnen, terwijl het voor de bits van een getal, in dit geval "b", nodig is dat zij in de omgekeerde volgorde worden toegevoerd. Het blijkt dat de eerste weergegeven cel Cl een "dummy,,-cel is, waarin geen vermenigvuldiging plaats vindt.Thus, each bit of a number is multiplied in turn by each bit of the other number. The two numbers will usually become available at the same time on separate data lines, while the bits of a number, in this case "b", will need to be supplied in the reverse order. It turns out that the first cell C1 shown is a "dummy" cell in which no multiplication takes place.

4° In fig* 3 wordt de minst signifikante bit al van het getai »a" 8502077 ( 5 i i toegevoerd aan de ingang "a" van cel Cl. Bij de tweede zweving wordt verplaatst naar cel C2y maar daar is nog geen "b"-ingang. De meest signifikante bit b3 van het getal "b" wordt bij de tweede zweving toegevoerd aan cel C6. Bij de derde zweving beweegt b3 en a^ naar cel 5 C3, bit a.2 wordt toegevoerd aan cel Cl. Bij de vierde zweving beweegt a.\ naar cel C4 zoals b3, waardoor het produkt ajb3 in de optel-ler van cel C4 wordt opgeborgen. Bij de vierde zweving wordt b2 toegevoerd aan cel Cl en beweegt a£ naar cel C2.4 ° In fig. * 3 the least significant bit of the number 8502077 (5 ii) is already applied to the input "a" of cell C1. In the second beat it is moved to cell C2y but there is not yet "b" -input The most significant bit b3 of the number "b" is applied to cell C6 in the second beat. In the third beat b3 and a ^ moves to cell 5 C3, bit a.2 is supplied to cell C1. fourth beat moves a1 to cell C4 such as b3, thereby storing the product ajb3 in the adder of cell C4. In the fourth beat, b2 is fed to cell C1 and a1 moves to cell C2.

De bits van de getallen "a" en "b" blijven langs het stelsel van 10 cellen bewegen en telkens als een bit van elk getal in dezelfde cel verschijnt wordt een produkt gevormd zoals opgeborgen in de opteller van die cel. Tijdens elk van de opbergbewerkingen wordt, elke opgewekte "overdracht" gevoerd naar de volgende aangrenzende cel aan de rechter zijde. Het proces wordt gekontinueerd totdat elke bit van een getal is 15 vermenigvuldigd door elke bit van het andere getal. Het blijkt dat na zweving 8 de opteller van elk van de cellen een van de hierboven gegeven getallen d tot i bevat, met uitzondering van cel Cl.The bits of the numbers "a" and "b" continue to move along the array of 10 cells and each time a bit of each number appears in the same cell, a product is formed as stored in the adder of that cell. During each of the storage operations, each generated "transfer" is passed to the next adjacent cell on the right. The process is continued until each bit of a number is multiplied by each bit of the other number. It turns out that after beat 8 the adder of each of the cells contains one of the numbers d to i given above, with the exception of cell C1.

Het resultaat van de vermenigvuldigingsoperatie wordt verkregen door het achtereenvolgens uitlezen van de inhoud van de opteller van 20 elke cel, beginnende met .cel C6.The result of the multiplication operation is obtained by successively reading the contents of the adder of each cell, starting with cell C6.

In de hierboven beschreven uitvoeringsvorm bewegen de bits van de twee getallen in tegengestelde richtingen door het stelsel van bitver-werkingscellen, waarbij de bits bij afwisselende zwevingen worden toegevoerd. Dit vereist vanzelfsprekend dat beide getallen tegelijkertijd 25 aanwezig zijn en waarschijnlijk dat er een in een register is opgeborgen totdat de andere beschikbaar is.In the above-described embodiment, the bits of the two numbers move in opposite directions through the system of bit processing cells, the bits being applied at alternate beatings. Obviously, this requires both numbers to be present at the same time and probably one to be stored in a register until the other is available.

Een tweede uitvoeringsvorm beschrijft een inrichting die geschikt is voor het geval waarin de getallen telkens, een tegelijk op een hoofdlijn verschijnen. Fig. 4 toont de inrichting van de eenbitverwerkingscel 30 voor een dergelijke uitvoeringsvorm. Deze is gelijk aan de cel van fig.A second embodiment describes a device suitable for the case where the numbers appear one at a time on a main line. Fig. 4 shows the arrangement of the one-bit processing cell 30 for such an embodiment. This is equal to the cell of fig.

1, met uitzondering van de toevoeging van een extra grendel L4 tussen de uitgang van de grendel L2 en de uitgangsverbinding Ob van "b". Bovendien zijn beide getallen weergegeven alsof zij de cel vanuit dezelfde richting binnentreden. Het effekt van de grendel L4 is het vertragen van de 35 toevoer van elke cel van het getal "b" met een klokpuls of zweving ten opzichte van de bits van de getallen "a", zoals hierna nog zal worden beschreven.1, except for the addition of an additional latch L4 between the output of the latch L2 and the output connection Ob of "b". In addition, both numbers are shown as if they are entering the cell from the same direction. The effect of the latch L4 is to delay the supply of each cell of the number "b" with a clock pulse or beat to the bits of the numbers "a", as will be described below.

Fig. 5 toont de werking van een stelsel van cellen van fig. 4, voor het met elkaar vermenigvuldigen van twee driebitsgetallen. De extra ver-40 traging verschaft voor elke bit van het getal "b" wordt weergegeven door 8502077 6 1 # % een rechthoek in een hoek van het symbool dat de cel weergeeft.Fig. 5 illustrates the operation of a set of cells of FIG. 4 for multiplying two three-bit numbers together. The additional delay provided for each bit of the number "b" is represented by 8502077 6 1 #% a rectangle in a corner of the symbol representing the cell.

In fig. 5 wordt de meest signifikante bit b3 van het getal "b" toegevoerd aan die ingang van cel CD, waaraan de extra een-zwevingsver-traging wordt toegevoerd. Bij de tweede zweving wordt b3 door deze 5 vertragingseenheid vastgehouden terwijl bit b2 wordt toegevoerd aan cel CD. Bij de derde zweving passeert b3 cel Cl, wordt bit b2 met de vertragingseenheid van cel CD vastgehouden en wordt de minst signifikante bit bi toegevoerd aan cel CD. De bits van het getal "b" blijven langs het stelsel van cellen bewegen met de snelheid van een cel telkens 10 bij twee zwevingen. Bij de vierde zweving wordt de minst signifikante bit ai van het getal "a" toegevoerd aan cel CD, die beweegt naar cel Cl bij de volgende zweving als bit a2 wordt toegevoerd aan cel CD. Bit ai is in cel Cl aanwezig tegelijkertijd met bit bi, zodat het pro-dukt aibi wordt bepaald en in de opteller van cel Cl wordt opge-15 borgen.In FIG. 5, the most significant bit b3 of the number "b" is applied to that input of cell CD, to which the additional one beating delay is applied. In the second beat, b3 is held by this delay unit while bit b2 is applied to cell CD. In the third beat, b3 passes through cell C1, bit b2 is held with the delay unit of cell CD, and the least significant bit bi is applied to cell CD. The bits of the number "b" continue to move along the array of cells at the rate of one cell each at two beats. In the fourth beat, the least significant bit ai of the number "a" is applied to cell CD, which moves to cell C1 in the next beat when bit a2 is applied to cell CD. Bit ai is present in cell C1 at the same time as bit bi, so that the product aibi is determined and stored in the adder of cell Cl.

Bij de zesde zweving passeert bit ai de cel C2 tegelijkertijd met bit b2, zodat het produkt aib2 wordt bepaald en in cel C2 wordt opgeborgen. Bij de zevende zweving worden de bits ai en b3 in cel C3 met elkaar vermenigvuldigd, terwijl de bits a2 en b2 in cel C2 met 20 elkaar worden vermenigvuldigd, en het produkt wordt toegevoegd bij dat van bits ai en b2, dat reeds in de opteller aanwezig is. Elke resulterende "overdracht" wordt gevoerd naar cel C2.In the sixth beat, bit ai passes through cell C2 simultaneously with bit b2, so that the product aib2 is determined and stored in cell C2. In the seventh beat, the bits ai and b3 in cell C3 are multiplied together, while the bits a2 and b2 in cell C2 are multiplied by each other, and the product is added to that of bits ai and b2, which is already in the adder is present. Any resulting "transfer" is passed to cell C2.

Het proces gaat voort zoals in fig. 5 is weergegeven, totdat elke bit van een getal is vermenigvuldigd met elke bit van het andere getal. 25 Het blijkt dat na zweving 11 de opteller van elk van de cellen Cl tot C6 de sommen bevat van de produkten die hierboven zijn vermeld, met die uitzondering dat cel Cl alleen een produkt van cel C5 zal bevatten.The process continues as shown in Fig. 5 until every bit of one number is multiplied by every bit of the other number. It appears that after beat 11 the adder of each of cells C1 to C6 contains the sums of the products mentioned above, with the exception that cell C1 will only contain a product of cell C5.

Het resultaat van de vermenigvuldigingsoperatie wordt verkregen % door het achtereenvolgens uitlezen van de inhoud van de opteller van 30 elke cel beginnende met de meest signifikante bit in cel C6.The result of the multiplication operation is obtained% by successively reading the contents of the adder of each cell starting with the most significant bit in cell C6.

Fig. 6 toont een voorbeeld van de hiervoor beschreven operatie, met de vermenigvuldiging van de getallen 111 en 101. De werkelijke cijfers van elk getal zijn in de blokken geschreven en de resultaten van de vermenigvuldiging zijn onder de bijbehorende blokken geschreven. De eind-35 uitgang is weergegeven aan de onderzijde van het diagram als 100011, waarbij de pijlen een "overdracht" aangeven van de opteller van een cel naar die van de volgende cel.Fig. 6 shows an example of the above-described operation, with the multiplication of the numbers 111 and 101. The actual digits of each number are written in the blocks and the results of the multiplication are written among the associated blocks. The end-35 output is shown at the bottom of the diagram as 100011, where the arrows indicate a "transfer" from the adder of one cell to that of the next cell.

Zoals reeds is vermeld vereist de bovenbeschreven techniek slechts een aantal bitverwerkingscellen dat ten minste gelijk is aan de som van 40 het aantal bits in de twee getallen en de vermenigvuldigers van de twee 8502 07 7 * # * 7 beschreven uitvoeringsvormen zijn bedoeld voor het vermenigvuldigen van grote getallen.As already mentioned, the technique described above only requires a number of bit processing cells that is at least equal to the sum of 40 the number of bits in the two numbers and the multipliers of the two 8502 07 7 * # * 7 described embodiments are intended for multiplying large numbers.

Digitale vermenigvuldigers van het bovenbeschreven type kunnen voor meerdere doeleinden worden toegepast. Bijvoorbeeld is de vermenigvul-5 diging van twee matrices een gebruikelijke voorwaarde bij digitale signaalverwerking. Beschouwd wordt bijvoorbeeld de volgende matrixvermenig-vuldiging: 10 au ai2 ai3 *>11 b12 b13 C11 c12 c13 a21 a22 a23 x b21 b22 b23 “ C21 c22 c23 a31 a32 ^33 b31 b32 b33 C31 c32 c33 15 waarin elk getal zelf een meervoudig bitgetal is.Digital multipliers of the type described above can be used for multiple purposes. For example, the multiplication of two matrices is a common prerequisite in digital signal processing. Consider, for example, the following matrix multiplication: 10 au ai2 ai3 *> 11 b12 b13 C11 c12 c13 a21 a22 a23 x b21 b22 b23 “C21 c22 c23 a31 a32 ^ 33 b31 b32 b33 C31 c32 c33 15 in which each number itself has a multiple bit number is.

Dan geldt: C11 “ allbll + a12b21 + a13b31 c12 = allb12 + a12b22 + a13b32 enz.Then applies: C11 “allbll + a12b21 + a13b31 c12 = allb12 + a12b22 + a13b32 etc.

20 Een dergelijke berekening kan gemakkelijk worden uitgevoerd door . 1 toepassing van een stelsel van vermenigvuldigers van het reeds beschreven type. Voor de matrixvermenigvuldiging die hierboven is aangegeven is een stelsel van negen digitale vermenigvuldigers noodzakelijk, weergegeven in fig. 7. De negen digitale vermenigvuldigers DM1 tot DM9 bevat- 25 ten elk een lineair stelsel van bitverwerkingscellen, zoals reeds beschreven. De negen vermenigvuldigers zijn opgesteld volgens een stelsel van drie bij drie, zodat als elk getal een vermenigvuldiger passeert het bit na bit wordt doorgelaten naar de volgende vermenigvuldiger in dezelfde rij of kolom. De tekening toont ook de volgorde waarin de getal- 30 len worden toegevoerd aan de matrix van de vermenigvuldigers. In elke rechthoek die een vermenigvuldiger voorstelt is het resultaat weergegeven van de berekening bepaald door die vermenigvuldiger, bijvoorbeeld berekent de vermenigvuldiger DM3 het resultaat cj3 van de eind-matrix.Such a calculation can easily be performed by. 1 application of a system of multipliers of the type already described. The matrix multiplication indicated above requires a system of nine digital multipliers, shown in Fig. 7. The nine digital multipliers DM1 to DM9 each contain a linear system of bit processing cells, as already described. The nine multipliers are arranged on a three-by-three system, so that as each number passes a multiplier, it passes bit after bit to the next multiplier in the same row or column. The drawing also shows the order in which the numbers are applied to the matrix of the multipliers. Each rectangle representing a multiplier shows the result of the calculation determined by that multiplier, for example, the multiplier DM3 calculates the result cj3 of the final matrix.

35 Uit fig. 7 blijkt dat de getallen au en bu eerst worden toegevoerd aan de vermenigvuldiger DM1, die het produkt van deze twee getallen bepaalt. Als dit geschiedt is loopt het getal au naar vermenigvuldiger DM2, waar het wordt vermenigvuldigd met bj2, terwijl bu de vermenigvuldiger DM4 passeert, waar het wordt vermenigvuldigd 40 met a22* Tegelijkertijd worden aj.2 en b21 toegevoerd aan de 8502077 δ vermenigvuldiger DM1. Het produkt ai2^21 wordt bepaald in vermenigvuldiger DM1 en gevoegd bij het produkt ailbn, dat daar reeds is opgeborgen. De vermenigvuldiging schrijdt stap voor stap voort, totdat elk van de getallen "a" vermenigvuldigd is met elk van de getal-5 len "b". De eindresultaten worden in de gewenste volgorde uit de negen vermenigvuldigers gelezen.Fig. 7 shows that the numbers au and bu are first applied to the multiplier DM1, which determines the product of these two numbers. When this is done, the number au flows to multiplier DM2, where it is multiplied by bj2, while bu passes the multiplier DM4, where it is multiplied 40 by a22 * At the same time, aj.2 and b21 are supplied to the 8502077 δ multiplier DM1. The product ai2 ^ 21 is determined in multiplier DM1 and added to the product ailbn, which has already been stored there. The multiplication proceeds step by step until each of the numbers "a" has been multiplied by each of the numbers-5 "b". The final results are read from the nine multipliers in the desired order.

Omdat elke digitale vermenigvuldiger niet alleen twee n-bitsgetal-len met elkaar vermenigvuldigt , maar ook de resultaten van drie van dergelijke vermenigvuldigingen bij elkaar voegt, zal elke vermenigvuldiger 10 ten minste 2n-cellen moeten bevatten omdat er ,,overdracht"-bits kunnen zijn. Als er "m"-produkten bij elkaar moeten worden opgeteld, zal het aantal cellen N in feite in elke vermenigvuldiger worden gegeven door N = 2n+(m-l).Since each digital multiplier not only multiplies two n-bit numbers together but also adds the results of three such multiplications, each multiplier 10 must contain at least 2n cells because there may be "transfer" bits In fact, if "m" products are to be added together, the number of cells N in each multiplier will be given by N = 2n + (ml).

In het geval van de bovenvermelde matrixvermenigvuldiging waarin 15 elk resultaat de toevoeging van drie vermenigvuldigingen is (bijvoorbeeld m=3) en waarin elk getal een 32-bitsgetal is (i.e. n=32), zal voor elk van de negen digitale vermenigvuldigers gelden N = 66. Dit betekent, dat elke vermenigvuldiger een lineair stelsel van 66 cellen bevat en niet de 64, wat voldoende is voor het vermenigvuldigen van twee 32-bits-20 getallen.In the case of the above matrix multiplication in which each result is the addition of three multiplications (for example m = 3) and in which each number is a 32-bit number (ie n = 32), each of the nine digital multipliers will hold N = 66. This means that each multiplier contains a linear array of 66 cells and not 64, which is sufficient for multiplying two 32-bit-20 numbers.

De matrixvermenigvuldiging is slechts een voorbeeld van de vele toepassingen van een digitale vermenigvuldiger volgens de uitvinding.The matrix multiplication is just one example of the many applications of a digital multiplier according to the invention.

85020778502077

Claims (9)

1. Digitale vermenigvuldiger voor het met elkaar vermenigvuldigen van twee binaire getallen, gekenmerkt door een lineair 5 stelsel van bitniveau-verwerkingscellen, elk voorzien van twee ingangs-aansluitingen, aan respektievelijke cellen waarvan achtereenvolgens bits worden toegevoerd van elk van de twee binaire getallen, twee uitgangs-aansluitingen aangesloten op de volgende aangrenzende cel en waaraan de genoemde op elkaar volgende bits worden toegevoerd, vermenigvuldigings- 10 middelen die werkzaam zijn voor het met elkaar vermenigvuldigen van een bit van elk van de genoemde getallen en optelmiddelen die operatief zijn voor het bij elkaar optellen en opbergen van de resultaten van de achtereenvolgens in de cellen uitgevoerde vermenigvuldiging.1. Digital multiplier for multiplying two binary numbers together, characterized by a linear array of bit level processing cells, each provided with two input terminals, to respective cells, bits of which are successively fed from each of the two binary numbers, two output terminals connected to the next adjacent cell and to which said consecutive bits are applied, multiplication means operative for multiplying a bit of each of said numbers together and adding means operative for matching together adding and storing the results of the multiplication performed successively in the cells. 2. Vermenigvuldiger volgens conclusie l,met het ken merk, dat een van de eerste en tweede bistabiele grendelinrichtingen worden aangesloten tussen elk van de ingangsverbindingen en de bijbehorende uitgangsverbindingen.Multiplier according to claim 1, characterized in that one of the first and second bistable latches is connected between each of the input connections and the associated output connections. 3. Vermenigvuldiger volgens conclusie 2, met het ken merk, dat de vermenigvuldigingsmiddelen een EN-poort bevatten met twee ingangen waarvan er een is verbonden met de uitgang van elk van de eerste en de tweede grendelinrichtingen.Multiplier according to claim 2, characterized in that the multiplier comprises an AND gate with two inputs, one of which is connected to the output of each of the first and second latches. 4. Vermenigvuldiger volgens een van de conclusies 1 tot 3, met het kenmerk, dat de optelmiddelen van elke bitverwerkingscel behalve de eerste cel in het stelsel een overdrachtingangsverbinding be-. zit naar de voorafgaande cel door middel van een bistabiele grendel- inrichting. 30Multiplier according to any one of claims 1 to 3, characterized in that the adding means of each bit processing cell except the first cell in the system is a transfer input connection. sits to the previous cell by means of a bistable locking device. 30 5. Vermenigvuldiger volgens een van de conclusies 1 tot 4, m e t het kenmerk, dat de optellermiddelen voor elke bitverwerkingscel behalve de laatste cel in het stelsel een overdrachtuitgang bezit verbonden met de volgende cel. 35A multiplier according to any one of claims 1 to 4, characterized in that the adder means for each bit processing cell except the last cell in the system has a transfer output connected to the next cell. 35 6. Vermenigvuldiger volgens een van de voorgaande conclusies, g e-kenmerkt door vertragingsmiddelen die werkzaam zijn voor het vertragen van de toevoer van elke successievelijke bit van een van de genoemde getallen aan de bijbehorende uitgangsverbinding met een 40 voorafbepaald tijdinterval ten opzichte van elke successievelijke bit 8302077 k van het andere van de genoemde getallen.6. Multiplier according to any one of the preceding claims, characterized by delay means operable to delay the supply of each successive bit of one of said numbers to the associated output connection at a predetermined time interval with respect to each successive bit 8302077 k from the other of the numbers mentioned. 7. Vermenigvuldiger volgens conclusie 6,met het kenmerk, dat de vertragingsmiddelen een derde bistabiele grendelinrich- 5 ting bevatten, aangesloten tussen de uitgang van de genoemde tweede grendelinrichting en de bijbehorende uitgangsverbinding.Multiplier according to claim 6, characterized in that the delay means comprise a third bistable locking device connected between the output of said second locking device and the associated output connection. 8. Vermenigvuldiger volgens een van de voorgaande conclusies, met het kenmerk, dat het aantal cellen in het stelsel ten minste 10 gelijk is aan de som van het aantal bits in elk van de twee met elkaar te vermenigvuldigen binaire getallen.Multiplier according to any one of the preceding claims, characterized in that the number of cells in the system is at least 10 equal to the sum of the number of bits in each of the two binary numbers to be multiplied together. 9. Vermenigvuldiger volgens een van de conclusies 1 tot 8, gekenmerkt door leesmiddelen die werkzaam zijn voor het van 15 de opteller in elke bitverwerkingscel aftrekken van het getal dat daarin is opgeborgen als de vermenigvuldiging van de twee binaire getallen is voltooid. ***** 8502 077A multiplier according to any one of claims 1 to 8, characterized by reading means operable to subtract from the adder in each bit processing cell the number stored therein when the multiplication of the two binary numbers has been completed. ***** 8502 077
NL8502077A 1984-07-21 1985-07-18 DIGITAL MULTIPLICER. NL8502077A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8418673 1984-07-21
GB8418673A GB2162345B (en) 1984-07-21 1984-07-21 Digital multiplier

Publications (1)

Publication Number Publication Date
NL8502077A true NL8502077A (en) 1986-02-17

Family

ID=10564283

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8502077A NL8502077A (en) 1984-07-21 1985-07-18 DIGITAL MULTIPLICER.

Country Status (6)

Country Link
JP (1) JPS6136840A (en)
DE (1) DE3525558A1 (en)
FR (1) FR2568034A1 (en)
GB (1) GB2162345B (en)
NL (1) NL8502077A (en)
SE (1) SE8503528L (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986002474A1 (en) * 1984-10-16 1986-04-24 The Commonwealth Of Australia Care Of The Secretar A cellular floating-point serial-pipelined multiplier

Also Published As

Publication number Publication date
GB2162345A (en) 1986-01-29
SE8503528D0 (en) 1985-07-19
GB2162345B (en) 1987-07-01
GB8418673D0 (en) 1984-09-12
SE8503528L (en) 1986-01-22
FR2568034A1 (en) 1986-01-24
DE3525558A1 (en) 1986-01-30
JPS6136840A (en) 1986-02-21

Similar Documents

Publication Publication Date Title
US5500811A (en) Finite impulse response filter
US4839847A (en) N-clock, n-bit-serial multiplier
US8051124B2 (en) High speed and efficient matrix multiplication hardware module
JP3244506B2 (en) Small multiplier
US6269383B1 (en) Method and apparatus for integer arithmetic
JPH05508502A (en) Quasi-16 radix processor and method
US4965762A (en) Mixed size radix recoded multiplier
US6728744B2 (en) Wide word multiplier using booth encoding
US5010511A (en) Digit-serial linear combining apparatus useful in dividers
US4860240A (en) Low-latency two's complement bit-serial multiplier
US5867414A (en) Compact pipelined matrix multiplier utilizing encoding and shifting circuit configurations
EP0517241A2 (en) Interleaved multiplier accumulator
Mehendale et al. Area-delay tradeoff in distributed arithmetic based implementation of FIR filters
NL8502077A (en) DIGITAL MULTIPLICER.
US4545028A (en) Partial product accumulation in high performance multipliers
Wu A fast 1-D serial-parallel systolic multiplier
US5283755A (en) Multiplier employing carry select or carry look-ahead adders in hierarchical tree configuration
US4523210A (en) Fast error checked multibit multiplier
US10891991B2 (en) Massively parallel, associative multiplier accumulator
CA1311062C (en) Processor suitable for recursive computations
EP0112186B1 (en) Modular high-speed multipliers, and integrated circuit chip modules for such multipliers
Lin et al. Computing the inner product on reconfigurable buses with shift switching
RU1790785C (en) Device for matrix multiplication
SU1619256A1 (en) Division device
SU1007101A1 (en) Multiplying device

Legal Events

Date Code Title Description
A1A A request for search or an international-type search has been filed
BB A search report has been drawn up
BV The patent application has lapsed