CA1143848A - Trailing zero and zero operand detector - Google Patents

Trailing zero and zero operand detector

Info

Publication number
CA1143848A
CA1143848A CA000357320A CA357320A CA1143848A CA 1143848 A CA1143848 A CA 1143848A CA 000357320 A CA000357320 A CA 000357320A CA 357320 A CA357320 A CA 357320A CA 1143848 A CA1143848 A CA 1143848A
Authority
CA
Canada
Prior art keywords
register
multiplier circuit
bits
word
circuit recited
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000357320A
Other languages
French (fr)
Inventor
Wilson T. Wong
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.)
Sperry Corp
Original Assignee
Sperry Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sperry Corp filed Critical Sperry Corp
Priority to CA000357320A priority Critical patent/CA1143848A/en
Application granted granted Critical
Publication of CA1143848A publication Critical patent/CA1143848A/en
Expired legal-status Critical Current

Links

Abstract

ABSTRACT OF THE DISCLOSURE

This invention is directed at an apparatus and method for detecting zero operand information and which also serves to detect trailing zeros. This circuit has application in computer circuitry, systems or the like wherein elongated information trains represented by multiple words of multiple bits are multiplied by equally long information trains. In many cases, the trains comprise a plurality of trailing zeros which, in accordance with the operation of this circuit, can be detected whereby the multiplication operation can be significantly speeded by avoiding unnecessary multiplication by zeros without loss of accuracy.

Description

~ 3~48 i ' BACI~GROUND OF Tl-lE INVENTION

1~ 1. Field o-~ the inven-tion.
"' This invention is directed to computing apparatus ¦¦circuitry, in general, and to a minicomputer circuit with relativ-l31 ely high speed multiplication in floating point numbers, in particular.
~ l3! 2. Prior art.
There are many known computing systems available in the art. ~lany oE these computing systems utilize multiple bit o 1l information trains made up o:F multiple words to store or represent¦
a number. In many cases, it is desirabl.e (or necessary) -to I¦ multiply two or more of these numbers. In many cases, the infor- 3 ¦¦ mation trains representing the numbers may contain a number of 3 trailing zeros. This is most common in floating point ari-thmetic when an integer is represented in the floating point number format If a step-wise multiplication operation of known configuration is utilized, a long string of trailing zeros in the respective words ~ill require an extended number of system operations wherein the multiplication operation is extremely slow and, consequently, i limitative of the system operating speed. In the past, some . techniques have been utilized to speed up this multiplication process; however, many of the known techniques require extensive adjustments in the computing system and wholesale revisions to the existing circuitry. That is, the speed of the multiplication operation is provided at the expense o-E an increase in the size of the circuit apparatus and complexity of the existing circuitry.
However, all o r the known techniques are either cumbersome, . expensive or otherwise undesirable and inconvenient for use in existing computing circuitry.
-2 i! l ¦~ PRIOR ART STATE~!E~N'[' To date, no search of the prior art has been conducted l by applicant but applicant is aware of no circuitry which fulfills : ! the purposes of this invention as readily and as easily as the ¦¦circuitry described herein.

SU~ARY ~F Tl-IE INSTANT INVENTION
1~
~¦ In this invention, a number, which is represented by an elongated information train made up of multiple words, is provided : ~ to the circuit. Each word represents a portion of an input number ; /O to be operated upon. ~ach of the words is investigated by a detector as to non-zero content thereof. A register is enablecl by the detector and stores a one, if any word is detected to include non-zero portions. The register wil`l also store a code which corresponds to the last non-zero word sent to the circuit.
The code produced by the regis-ter controls a shift counter and a ~ `
multiplexer circuit which automatically registers a circuit operation to essentially avoid trailing-words which have only zero-content and to maintain accuracy.
In operation, the words are applied in a sequence ~O starting from the high order word to the low order word. The most significant bits (MSB) are first detected. A code (word number) is made to accompany each word. The code accompanying a non-zero word is stored. Consequently, the code (word number) stored in the register after all words are received always represents the lowest order, non-zero word. This word number is
3~34~3 appli~d to the shift counter and the multiplexer. The multiplexer skips over the trailing zeros of the multiplier and therefore, performs the multiplication operation only beginning with that word which is the lowest order word having a non-zero content. The shift counter which also receives the code (word number) reduces the number of iterative multiplication steps accordingly.
Thus the invention can be defined in broad terms as a multiplier circuit comprising, register means for storing the bits of a number to be multiplied, decoder means connected to receive bits from said register means to produce an output signal representative of said number to be multiplied, detector means for operating on said number to be multiplied to detect the presence of a non-zero bit in said number, control register means connected to said decoder means for indicating the presence of a non-zero bit in said number to be multiplied when said control register means is enabled by a signal from said detector means as the result of detecting a non-zero bit, and shift counter means connected to said control register means for controlling the number of shifts to be performed during the multiplication process as a function of a signal from said control register means.

DESCRIPTION OF THE DRAWINGS
Figure 1 is a schematic representation of an information train representing a floating point number used in the instant invention.
Figure 2 is a schematic representation of the information train as shown in Figure l rearranged to 3a illustrate the words used in the instant invention.

~p;.
. ~ .

~14389~i~

Figure 3 is a schematic block diagram of a circuit that forms an embodiment of the instant invention.
Figure 4 is a more detailed representation of a portion of the circuit shown in Figure 3, especially the detector and register portions.
Figure 5 is a more detailed representation of a portion of the circuit shown in Figure 3, especially the shift counter portion.

Figure 6 is a more detailed illustration of a portion of the circuit shown in Figure 3, especially the multiplexer portion.

, - 4a -ll~'3~

li T)ES(~RIPT~ON 011 Tl-IF. F'REI~ER~ED E~IBODIMENT
" ~

¦1l ReferriTIg now to FIGURE 1, there is shown a reprcsenta- I
tion of an infor~ation -train representing a floating point number ¦
used in a particular computer application. In -this illustration, ¦
¦ the floating point number comprises 64 bits (0-63), with bit j number 63 being the most significant bit (MSB) and bit number 0 I ~ being the least signification bit (LSB). In the format shown in this illustration, bit 63 is the sign bit which indicates the I positive or negative value o~ the word. The next eight bits are IO ¦ designated the ex~ponent which define the value of the exponen-tial fea-ture of the word. The subsequent bits, in this case bits ¦
I 0 through 55, are designated the fraction portion of the -word.
I ¦ The word can be expressed by the formula W = F x 2E where 1~
¦ word, F = fraction and E = exponent. The value of these expres-sions is determined by the content of the respective portions o~
the word. A zero is represented by having every bit in the whole information train set -to zero.
I It is well known in the art, that the fraction portion of the word may comprise a long string of zeros, especially at ~O the trailing end thereof if the word represents an integer. If two words of similar length are multiplied by each other multiplicand by multiplier, and the fraction portion of the multiplier comprises a plurality of trailing zeros, (e.g. sixteen or more zeros) a large number of multiplication steps would be utilized to multip:Ly the respective zero portions. This operation would have the effect of seriously slowing the operation of the machine. Moreover, the operation has no purpose other than to maintain alignment of the multiplication iteration step.

~ 38~

In a min:icomputer, the word length oE the minicomputer ~is usually shorter than the elongated in:formation trains which ¦represent floating point numbers. Therefore, a :Eloating point ¦number is represented by concatenat:ing several words together.
I¦This fact is made use of to speed up multiplica-tion in the instant~
¦¦invention. In the particular illustration, the floating point l number is 64 bits long. It is representcd by concatenating four I~ words, each 16 bits long.
As shown in FIGURF 2, the words are labeled Cl, C2, C3, /0 ¦ and C4. I~ord Cl comprises 16 bits as do each of the other words.
¦ However, word Cl includes the sign bit, the exponent portion of the number and perhaps, a portion of the fraction part (depending ¦upon the length of the respective words). The content of words :C2, C3, and C4 represent other portions of the fraction part of the number involved. Clearly, if the exponent portion of the ¦ number has fewer or greater number of bits, the length of the fraction part in word Cl can vary. In a floating point multipli-cation, the exponent parts of the two operands are added, only the fraction parts are multiplied. However, the operation of the device remains the same although the format of the word structure may be dif-ferent.
It should also be understood that in cases where less precision is required, it is possible that fewer words, such as only l~ords Cl and C2 need be utilized, and, if more precision is preferred, then more words are utilized in the process. In point of fact, the description of the word formats shown in FIGURES 1 and 2 is illustrative only and is provided to assist in the understanding of the operation of the device.

3~

Referring now to L:IGURE 3 there is shown a schematic block diagram of the circuit of the instant lnvention. The circuit includes an MQ register where the multiplier, that is, ¦the fraction part of -the second operand, is stored. The MQ
¦register comprises a plurality of registers arranged in parallel.
That is, each of the registers MQ-A, MQ-B, MQ-C and MQ-D comprise ¦registers arrangecl with bits essent:ially in parallel. For example, bits Bl and B2 are consecutive bits in the word portion (see register MQ-D) but are arranged to be shifted out from the register at the same time, albeit on dif-ferent lines ~e.g., at terminals 1 and 0, respectively). Thus, the register has the effect of producing parallel output signals during any particu-lar clock pulse time. The outputs of the respective register portions of the MQ register are connected to multiplex (MU~) circuit 11. In partcular, the upper portion (odd bits) of each of the respective register portions is connected via terminal MQ
49, 33, 17 and 1, respectively, to inputs 0, 1, 2 and 3 o-f MUX 11.
Likewise, the lower portion (even bits) of each register portion is connected via terminals MQ ~8, 32, 16 and 0, respectively to other terminals of ~fUX 11 although these connections are omitted -from the drawing for simplicity. (For greater detail, reference is made to FIGIJRE 6.) The multiplier in the multiplication operation is stored in the MQ register as inclicated. That is, bits BO, Bl...
BlS are stored in register portion MQ-D. Likewise, bits B16, B17...B31 are stored in register portioll MQ-C. In like manner, register portions MQ-B and MQ-A store bits B32-B~7 and B~8-B55, respectively. With the parallel register arrangement as shown, ii I

¦the odd bits are storcd in the upper part of thc register portions and the even bits are stored in the lower part of the register portions. OE course, it is not required to use parallel register ¦structllres although this ;s a pre:~erred embodiment which provides additional operating speed.
¦j Non-Zero detector 12 includes a plurality ~16) of input ~terminals which monitor the 16 bit words coming :Erom a data ~! source which also supplies the input signals to the respective ¦!portions of register 10. Therefore, the words are monitored ~O¦¦at the same time they are trans-Eerred to the MQ register.
The output termina]. of non-zero detector circuit 12 is connected to the enable input terminal of Zero-and-Word-Number register 13. In addition, register 13 receives a clear signal which is generated by other portions of the overall control cir-cuitry to clear the contents of register 13 at the end of a floating point operation. A clock signal is also applied to register 13 from the overall control circuitry to synchronize the operation of register 13. The word number input signals are : supplied to inputs lD and 2D of register 13. The word number ~0 signals comprise a code which specifies the register portions o:E
MQ register 10. The word numbers are 0, 1, 2 or 3 as indicated in the parenthetical nomenclature in the respective register portions. A steady state logical high input signal is applied to ¦input terminal 3D of register 13 from the external control circuitry (not shown). The 3Q output signal from register 13 is generated in response to the logical high inpu-t signal at terminal 3D when -register 13 is enabled by detector 12.

i~ ~
il I
~'1 The output signals at terminals IQ and 2Q are rcprescn-'l tative of the ;nput signals on the word number lines. Ihese output tcrminals are connected to the C and D input terminals of ~, multiplexer circuit ll and to the input terminals A' and B' of ¦I shift counter 13. In essence, the output signals at terminals ¦¦ 2Q and lQ indicate which register portion of MQ register 10 is !i to be operated upon by multiplex circuit ll. Likewise, these !¦ word signals indicate the extent of the shifting process to be ¦ performed by MQ which is moni-tored by shi-ft counter 14.
In operation, the appropriate word bits which comprise ¦~ the second operand (i.e., multiplier) are supplied to MQ register ¦ 10 in 16 bit words in the order of Cl, C2, C3, C4 as illustrated in FIGURE 1 and 2. The multiplicand is previously stored elsewhere in the system. That is, the word format is arranged il to be supplied to register portions MQ-A, MQ-B, MQ-C and MQ-D.
In the particular instance shown, register portion MQ-A stores the highest order bits except the sign and the exponent and i register portion MQ-D stores the lowest order bits, with MQ-B
and MQ-C storing the high and low intermediate order bits. In O ¦ reference to FIGURE 2, the fraction part of word chunk is stored in register portion MQ-A. Words C2~ C3 and C4 are stored in register portions MQ-B, MQ-C and MQ-D, respectively.
Concurrently, the word are also supplied to the input terminals of non-zero detector 12 along path 91. Non-zero detector 12 operates so as to produce an output signal only in the presence of a non-zero bit being applied to an input terminal li ~
tl-ereof. rlhat is, il- any one or more of the bits from a particu ¦lar wor~ is a binary l, non-zero detector 12 produces a high jlevel output signal which is supplied to the enable terminal of ~¦Zero-and-Word Nilmber register 13 and activates it. Otherwise, ¦the register is not activated.
Concurrently, the word number signals are supplied to input terminals lD and 2D of register 13 which has previously i been cleared by the clear signal to indicate which word is applied to detector 12. This word number is representative of ¦the word being transferred to a particular MQ register portion ~ I and being monitored by the non-zero detector 12. If a word is 1~ non-zero, the zero and word number register 13 is activated and ; ~ the l~ord number signals are transmitted through register 13 in response to the application of a clock signal. Thus, the signals at terminals lD and 2D are transmitted to terminals lQ
and 2Q. In addition, the logical high input signal at terminal 3D is transmitted to terminal 3Q to indicate that a non-zero condition has been detected. After all four words have been transferred to MQ, all 64 bits of the floating-point number have ~O been monitored by the non-zero detector 12, at certain points of time. If some of the words are non-zero, this condition will be registered by the zero and word number register 13. Moreover, the word number corresponding to the last non-zero word trans-ferred to MQ is also registered in the zero and word number register 13. The word number signal is applied to multiplex circuit 11. These signals then indicate to multiplex circuit 11 which of the word protions from MQ register 10 have a non-zero content. In point of fact, the circuit operates to quickly ~3~

, . .
detect the content of the overall word whereby the lowest order ~ord l~hich contains a non-zero content is determined. r[hat is, ord Cl Erom register portion MQ-A is observed first. Ihereafter, ,I the contents o register portions MQ-B, MQ-C and MQ-D are ¦¦sequentially detected. The last which is known to have a non-zero content, therefore, controls the operation of multiplex lcircuit 11. For example~ if the contents o-f MQ-D is Eound to be all zeros, while the contents of MQ-C are found to include a 1, ¦ the word number 2 is generated at output terminals lQ and 2Q of /0 ~Iregister 13 and supplied to multiplex circuit 11.
l Multiplex circuit 11 will select input two which is i ¦ connected to the shift output o:E MQ-C~ to thereby transmit the I ¦ contents oE portions of MQ-C, MQ-B and MQ-A (by shifting out from ; I MQ-C) therethrough into the multiplier decoding circuit 93 for operation thereon. The contents of register portion MQ-D will not be transferred to the multiplier decode circuit inasmuch as it has been determined that these bits are all zeros.
However, in order to maintain the integrity of the operation, the word number signal is also supplied to shift D counter 14. Shift counter 14 recognizes that the contents of one (or more) register portions have been effectively skipped and must be accounted or when shifting the content of MQ out for multiplier decoding. Thus, shift counter 14 causes fewer bits to be shifted out from MQ, therefore compensating for the zeros being skipped over. This also means that fewer multipli-cation iteration steps need to be performed. Thus, it can be seen tl t the multiplication operation can be ef~ectively speeded ll
4~

by noting that the contents of the trailing words are all zeros Iland multiplication operations regarcling these zeros can be ¦¦eliminated. These zeros are, practically, ignored and no operation is perEormed ~or them.
Re~err:ing now to FIGURE 4, there is shown in greater detail one circuit arrangement for use in the instant invention.
One proposed configuration o-f non-zero detector 12 is shown enclosed within the dashed block outline. Detector 12 comprises, in this embodiment, three TTL integrated circuits of the NOR gate l~ ¦ configuration. ~ach of these gates has multiple, in this case ¦ five, input terminals and a single output terminal. The input ¦ terminals o~ gates 20, 21, and 22 are connected to receive the i word bits one through 15, inclusive, for each 16 bit word.
Inverter 23 is connected to receive bit CB00. Thus, all sixteen bits from a word are supplied to the input terminals of logic circuits at the input of detector 12. The output terminals of gates 20 through 23 are connected to respective inverter inputs of NAND gates 26. In the particular instance shown, four gates are utilized to receive, in the proper logic arrangement, the input signals from the first logic level gating arrangement. For example~ input terminals of gate 24 (2 terminals) and gate 27 (1 terminal) are connected to receive a signal which is clamped at the positive level (in this case +V). These signals are applied, of course, to obtain the logic input control properly.
In addition, the clock signal MCLK is applied to one input of gate 24. This clock signal has the effect of synchronizing the output and operation of gates 24 through 27. That is, while clock MCLK is low, the output signal produced by gate 2~ is ~4B
I . ~

I maintained high. Likewise, gate 25 receives input signals from !~ enable source 32 which essentially permits gates 24 to 27 to operate only after all input signals have settled. 'Ihus, ~jspurious signals are avoided. Also gate 27 receives the il signal produced by inverter gates 28 and 29 which are connected ¦¦in series to double invert a signal CBD02 from the controller of ¦~the CPU which also controls timing of gates 24-27.
ll The outputs of gates 24 through 27 are connected as ¦1 inputs to AND gate 30. The output signal produced at the ~O ¦ output terminal o:E gate 30 is connected to the enable terminal I Sl of Zero-and-Word-Number register 13 as described supra. This signal has the effect of enabling register 13 when any one of the input signals CBD0-CB16 is a binary 1. In the absence of a binary 1 at an input terminal of gates 20-22, register 13 is not enabled.
¦ The word number inputs to register 13 are provided to ¦ terminals 2D and lD, respectively. Terminal 2D receives the ¦ input signal CBDOl from the controlling CPU. Likewise, CBD00 is supplied from the CPU to the lD terminal of register 13 via inverter circuit 31. In addition the signal CBD00, from inverter 31, and CBD01 are applied to the A and B input terminals, respectively, of demultiplexer 35. The CBD02 signal which has passed through the double inverters 28 and 29 is also supplied to the G input terminal of demultiplexer 35. The output signals ¦ from demultiplexer 35 are produced at terminals Y0, Yl, Y2, Y3.
¦ These output signals are used to control the loading of data bits into the respective portions of MQ register 10.

' ' ~ .

L~3 ii !

Dcmu]t:iplexer 35 receives the word numbez signals CBDOO, CBDOl, and CBD02 Erom the CP~. These signals are ¦provided by the CPU to iclentify the word being supplied to detector 12 and MQ register 10. Therefore, after decoding by j demultiplexer 35, the output signals at terminals YO through Y3 selectively permit the loading o-E information into MQ
l register portions A, B, C and D, respectively. With the ¦ utilization of the input signals from the CPU to demultiplexer 35, the loading of the MQ register is controlled. In addition, ~ I word signals CBDOO and DBDOl are applied to register 13 to indicate the word number, i.e. word portion or chunk being loaded into the MQ register. This information is supplied to ¦Iregister 13 which produces output signals 2Q and lQ as noted ¦~.above to control shift counter 14 and multiplexer 11 as described hereinafter.
In addition, as is noted supra, input terminal A of register 13 receives the constant level input signal. This signal, in the embodiment described, comprises a high level signal. Hence, when decoder 12 detects any non-zero condition O ¦ presented by the input word, register 13 is enabled by the output signal from AND gate 30. When register 13 is enabled, the high level signal at terminal 3D is transmitted therethrough to output terminal 3Q which indicates that a non-zero condition has been detected. In addition, the word signal status at terminals 2D
and lD is trans~itted to output terminals 3Q and lQ and provides information to shift counter 14 and multiplexer 11 as described.

ii II The enable signals -from cnable source 32 are supplied ¦¦by the remainder o:~ the circuit such as the CPU or other timing !icontrol arrangemellt to provide syncllroni.sm with the remainder l~of the circuit ancl also to provide enabling signals which enable j¦or permit operation of gates 24 through 27 at a prescribed time.
This permits a settling o-f the operation o-E the ci.rcuit and assures that the data supplied to the input terminals of gates 20 through 22 is settled and is valid. O:E course, any suitable : enabling structure can be utilized including any arrangement of /0 logic gates or input conductors as may be desired.
ReEerring now to FIG. 5, there is shown a block diagram of one embodiment o-E shift counter 14. In this embodiment, shift counter 14 comprises demultiplexer 50 and registers 51 and 52.
The word number signals MQAl and MQA0 are supplied to terminals :: 3A and ~A of demultiplexer 50, respectively. Demultiplexer 50 operates on the word number signals to provide information to shift counter registers 51 and 52. The signals applied to registers 51 and 52 by demultiplexer 50 have the e-ffect of altering the count status of counters 51 and 52. I:E 48 traili.ng zeros are skipped over, -4 will be applied to registers 51 and 52. If 32 trailing zeros, -12, if 16 trailing zeros, -20, i:E no trailing zero, -28. Thus, upon application of the ].oad and the clock signal thereto, the shift counters 51 and 52 will store a negative number which represents a total count which is indica-tive of the shifts requ~red by the MQ register after the trailing zeros are skipped over. During the multiplication iteration~
shift counters 51, 52 are incremented as the multiplier bits are shifted out from the MQ register. When the shift counters 51, 52 l~ l ~3~

ilgo to zero, counter 5L produces an output signal at terminal ¦¦QD which is supplied to NOR gate 53.
This signal, in con]unction with control signal MFP
¦which is supplied to the other terminal of NOR gate 53~ produces the NMULT signal. Signa] NMULT indicates that the end of the multiplication cycle has been reached. This signal is supplied ~ to the end of shift multiplexer 54. Multiplexer 54 then ¦ produces an Olltput signal to the control circuit and indicates the end of the multiply iteration. Shift counters 51, 52 are also used to count the division iteration steps which is not pertinent I to the inventive concept herein described. In acldition, it should be noted that multiplexer 54 receives other input signals which are not pertinent to this discussion.
Referring now to FIG. 6, there is shown, a more detailed ¦ representation of multiplexer 11. Input terminals A and B are ~ connected to receive the MQAl and MQA0 word number signals which I ~ are produced by register 13 ~see FIGURL 4). In addition, multi-plexer 11 receives input signals from the various MQ register portions. As is noted above, MQ register 10 comprises register portions arranged in parallel wherein two bits are produced at a time by the respective register portions. Thus, input signal terminals 2CO through 2C3 receive even numbered bit signals (e.g. 0, 16, 32 and 48). Likewise, input terminals lC0 through lC3 receive odd numbered input bit signals ~e.g. 1, 17, 33 and 49). These bit signals are provided at the MQ register portions as suggested in FIGURE 3. The signals provided at the input terminals of multiplexer 11 are transferred therethrough i, l ~ 3~

'~to output terminals lY and 2Y in accordance with the status o~
lthe wor(l number signals suppLied to terminals A and B.
The output signals at terminals lY and 2Y are supplied to decode circuit 93 which operates upon the signals supplied thereto to decode these signals and, thus, determine what multiplication operation should be carried out. That is, the portions which are all zeros are not included in the multiplica-tion operation wherein the tr~iling zeros are, effectively, skipped over and the time required for performing the multipli-cation operation is greatly reduced. OE course, the NMULT and the MFP signal are also supplied to decode circuit 93 along with clock signals and the like to control the operation thereof and to indicate, especially in the case of the NMULT signal (from NOR gate 53), the end of multiplication.
Thus, it is seen that there is provided a circuit means for substantially increasing the speed of multiplication of multi-bit words. The circuit makes use of the fact that in mini-computers floating point numbers, which consist of many bits, are made up of multiple words of shorter length. There-fore, the shorter words may be detected for zero or non-zero content sequentially. Moreover, if the words are applied to the circuit in sequence, the highest order bits are applied and detected first. The system keeps track of the words, and effectively operates on the lowest order word which displays a non-zero con-tent. Any lower o-rder words are, therefore, known to contain only zeros. These zeros are then skipped over during the multiplication process which uses only the lowest order word which has a non-zero configuration. In addition, a word number .

.1 .
or identifier is used to control the number of shifts required to complete the multiplication process to compensate for the zeros skipped over.
The instant invention is shown and described in substantial detail in terms of logic circuits and components.
It must be understood by those skilled in the art that modifi-cations or rearrangements o-f the specific logic circuits and components can be accomplished. In addition, it may be possible to avoid the utilization o-f some of the specific components in the event that the multiplication word is made shorter or if the klQ register is not arranged in parallel as is described in the preferred embodiment. Ilowever, the detail shown is provided to establish one preferred embodiment of the invention which presents the best mode of implementation related to certain design requirements. Those skilled in the art may be able to provide alternative detailed circuit arrangements which fall within the purview of the invention as shown and described herein.
Any such modifications are, of course, intended to be included herein as well. The scope of this invention is limited only by the claims appended hereto.

, :

Claims (16)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A multiplier circuit comprising, register means for storing the bits of a number to be multiplied, decoder means connected to receive bits from said register means to produce an output signal representative of said number to be multiplied, detector means for operating on said number to be multiplied to detect the presence of a non-zero bit in said number, control register means connected to said decoder means for indicating the presence of a non-zero bit in said number to be multiplied when said control register means is enabled by a signal from said detector means as the result of detecting a non-zero bit, and shift counter means connected to said control register means for controlling the number of shifts to be performed during the multiplication process as a function of a signal from said control register means.
2. The multiplier circuit recited in Claim 1 wherein, said register means comprises a plurality of register sections connected together such that portions of said number are respectively stored in said register sections.
3. The multiplier circuit recited in Claim 2 wherein, said register sections are parallel connected so that two bits are produced substantially simultaneously by a section.
4. The multiplier circuit recited in Claim 2 wherein, said detector means is connected to receive bits concurrently with one of said register sections thereby to identify a non-zero bit in terms of the portion of the number stored in a register section.
5. The multiplier circuit recited in Claim 1 including, word number means for identifying a portion of said number, said word number means connected to said control register means to identify the portion of the number which includes a non-zero bit.
6. The multiplier circuit recited in Claim 1 wherein, said decoder means includes multiplexer means connected to receive bits from said register means and to produce an output signal representative of the received bits as a function of the signal supplied thereto by said control register.
7. The multiplier circuit recited in Claim 6 wherein, said shift counter means and said multiplexer means are connected to be controlled by the same signals from said control register means.
8. The multiplier circuit recited in Claim 5 including, second multiplexer means connected to said register means for controlling the application and storage of bits in said register means.
9. The multiplier circuit recited in Claim 1 including an end of shift multiplexer connected to said shift counter means for indicating that the appropriate number of bit shifts have occurred so that all previously skipped trailing zeros are accounted for.
10. The multiplier circuit recited in Claim 1 wherein said control register means produces an output signal representative of the lowest order portion of the number to be multiplied which contains a non-zero bit.
11. The multiplier circuit recited in claim 2 wherein said register means is connected to receive the least significant bits first, and said detector means operates on said least significant bits first.
12. The multiplier circuit recited in Claim 1, including, data source means connected to said detector means and said register means such that the bits of said number are applied thereto substantially concurrently.
13. The multiplier circuit recited in Claim 6 wherein, said multiplexer means is connected to receive at least one odd bit from said register means and to receive at least one even bit from said register means.
14. The multiplier circuit recited in claim 8 wherein, said second multiplexer means is connected to receive signals from said word number means.
15. The multiplier circuit recited in Claim 1 wherein, said detector means includes a first plurality of logic gate devices for receiving and operating upon the individual bits of said number to be multiplied, and a second plurality of logic gate devices for receiving and operating upon the signal produced by said first plurality of logic gate devices in conjunction with specified control signals in order to produce an output signal from said detector means representative of a non-zero condition in said word to be multiplied.
16. The multiplier circuit recited in claim 13 wherein, said odd bit and said even bit are produced by said register means at substantially the same time.
CA000357320A 1980-07-30 1980-07-30 Trailing zero and zero operand detector Expired CA1143848A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA000357320A CA1143848A (en) 1980-07-30 1980-07-30 Trailing zero and zero operand detector

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA000357320A CA1143848A (en) 1980-07-30 1980-07-30 Trailing zero and zero operand detector

Publications (1)

Publication Number Publication Date
CA1143848A true CA1143848A (en) 1983-03-29

Family

ID=4117542

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000357320A Expired CA1143848A (en) 1980-07-30 1980-07-30 Trailing zero and zero operand detector

Country Status (1)

Country Link
CA (1) CA1143848A (en)

Similar Documents

Publication Publication Date Title
US5268855A (en) Common format for encoding both single and double precision floating point numbers
US4276607A (en) Multiplier circuit which detects and skips over trailing zeros
JP3729881B2 (en) Circuit and method for performing parallel addition and averaging
US5053631A (en) Pipelined floating point processing unit
US6209017B1 (en) High speed digital signal processor
US4941120A (en) Floating point normalization and rounding prediction circuit
US4156922A (en) Digital system for computation of the values of composite arithmetic expressions
EP0018519B1 (en) Multiplier apparatus having a carry-save/propagate adder
JPS58158739A (en) Floating point addition method and apparatus
US4866652A (en) Floating point unit using combined multiply and ALU functions
JPH02138620A (en) Calculation of numerical quantity and numerical data processor
US4320464A (en) Binary divider with carry-save adders
US5253195A (en) High speed multiplier
JPH07295790A (en) 0/1 two state precedence expectation mechanism (lza)
US3591787A (en) Division system and method
US4769780A (en) High speed multiplier
US3997771A (en) Apparatus and method for performing an arithmetic operation and multibit shift
EP0540175B1 (en) Digital signal processing apparatus
CA1143848A (en) Trailing zero and zero operand detector
JPH02294731A (en) Floating point arithmetic processor
EP0109137A2 (en) Partial product accumulation in high performance multipliers
US6546409B1 (en) Digital processing
US3937941A (en) Method and apparatus for packed BCD sign arithmetic employing a two's complement binary adder
US5117384A (en) Method and apparatus for exponent adder
EP0534760A2 (en) High speed multiplier device

Legal Events

Date Code Title Description
MKEX Expiry