Connect public, paid and private patent data with Google Patents Public Datasets

Decimal multiplying assembly and multiply module

Download PDF

Info

Publication number
US5379245A
US5379245A US08001079 US107993A US5379245A US 5379245 A US5379245 A US 5379245A US 08001079 US08001079 US 08001079 US 107993 A US107993 A US 107993A US 5379245 A US5379245 A US 5379245A
Authority
US
Grant status
Grant
Patent type
Prior art keywords
module
decimal
digit
order
multiplication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US08001079
Inventor
Tsuguo Ueda
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.)
NEC Corp
Original Assignee
NEC 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
Grant date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/4915Multiplying; Dividing

Abstract

A modular multiplying assembly and a multiply module for use in the multiplying assembly implemented by hard-wired circuits are disclosed. Each module calculates multiplication for operands of a decimal single digit and can receive a carry or carries from adjacent module or modules. Each of the modules is implemented by a memory member or a set of logic gates such as a programmable logic array. In case of module implemented by a set of logic gates, an extremely high-speed calculation is obtained.

Description

FIELD OF THE INVENTION

The present invention relates to a decimal multiplying assembly and a multiply module for use in a multiplying assembly. More particularly, it relates to a decimal multiplying assembly and a multiply module for a high-speed multiplication of decimal multi-digit operands.

BACKGROUND OF THE INVENTION

An example of a conventional decimal multiplying device is shown in FIG. 1, in which each of a decimal N-digit multiplicand and a decimal M-digit multiplier is converted to a binary-coded decimal operands by a decimal-to-binary converter 11 or 12 before multiplication thereof. Multiplication is carried out by a software program for calculating a product of binary-coded decimal operands in a binary mutiplying member 13, the output of which is then converted again to a final decimal product by a binary-to-decimal converter 14.

With another conventional decimal multiplying device, a decimal multiplication table for decimal operands of limited digits in length is stored in a memory of the multiplying device. The table is retrieved as many times as necessary according to the numbers of digits of the multiplier and the multiplicand to be calculated. The resultant data of each retrieval is collected and combined together for obtaining the decimal product by a software program.

Each of the conventional multiplying devices as described above has a disadvantage in which the software program for calculating a product is complicated, hence requiring a large amount of time when the size of the multiplier and the multiplicand are large in length.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a multiply module and a multiply module group for use in a decimal multiplying assembly in which high-speed calculation of a product can be obtained.

Another object of the present invention is to provide a multiplying assembly in which a large amount of processing time is not required due to the modular structure of a multiplying assembly having high-speed multiply modules.

According to the present invention, there is provided a first type of multiply module for a multiplicand and a multiplier each of a binary-coded decimal number of a single decimal digit, for use in a decimal multi-digit multiplying assembly. The multiply module comprises: an input group receiving the multiplicand and multiplier: a hard-wired circuit responsive to the multiplicand and multiplier for generating a binary-coded decimal data representing a product of the multiplicand by the. multiplier; a first output member for outputting a decimal high-order digit of the decimal data; and a second output member for outputting a decimal low-order digit of the decimal data.

The "hard-wired circuit" as used in this text is meant by a wired circuit which is not operated by a software program.

A second type of multiply module according to an embodiment of the present invention can additionally receive a carry from another module. A third type of multiply module according to an embodiment of the present invention can receive two carries. These carries are added to the product of the operands of a single decimal digit. The first and second types of modules can be combined to a first module group operating multiplication of a decimal multi-digit number by a decimal single-digit number. The second and third types of modules can be combined to a second module group for multiplication of a decimal multi-digit number by a decimal single-digit number. The first and second types of module groups are combined to form a multiplying assembly. The multiplying assembly functions multiplication of decimal multi-digit operands in a high-speed.

The multiply module can be implemented by a memory such as a read-only memory or a set of logic gates such as a programmable logic array.

BRIEF DESCRIPTION OF THE DRAWINGS

Other and further objects, features and advantages of the present invention will be more apparent from the following description, referring to the accompanying drawings in which:

FIG. 1 is a block diagram showing an example of a conventional multiplying device;

FIG. 2 is a block diagram showing a decimal multiplying assembly according to an embodiment of the present invention;

FIG. 3 is a block diagram showing an embodiment of a multiply module according to the present invention, adapted for the first basic module in the multiplying assembly of FIG. 2;

FIGS. 4A to 4H are block diagrams showing another embodiment of a multiply module according to the present invention, adapted for the first basic module in the multiplying assembly of FIG. 2;

FIG. 5 is a block diagram showing still another embodiment of a multiply module according to the present invention, adapted for the second basic module in the mutiplying assembly of FIG. 2;

FIG. 6 is a block diagram showing still another embodiment of a multiply module according to the present invention, adapted for the third basic module in the multiplying assembly of FIG. 2;

FIG. 7 is a block diagram showing an embodiment of a multiply module group according to the present invention, adapted for the first, module group in the multiplying assembly of FIG. 2; and

FIG. 8 is a block diagram showing another embodiment of a multiply module group according to the present invention, adapted for the second module group in the multiplying assembly of FIG. 2.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 2 shows a decimal multiplying assembly according to an embodiment of the present invention. The multiplying assembly is designed for multiplication of a decimal multiplicand of 1 to N digits in length by a decimal multiplier of 1 to M digits in length. The decimal multiplying assembly comprises N×M multiply modules each operating multiplication of operands of a single decimal digit, and most of them additionally operate summation of the product and an input carry or carries from another module or other modules. Each column corresponding to each decimal digit Bo. . . ,BM-1 of the multiplier constitutes a module group 21, 22, . . . ,2M, which comprises N multiply modules and performs multiplication of a decimal multiplicand of N digits by a decimal multiplier of a single digit.

Each of the module groups 21, . . . ,2M is supplied with the multiplicand in such a way that each digit Ao, . . . ,AN-1 of the multiplicand is respectively supplied to a corresponding module disposed in each of the module groups 21, . . . ,2M. The modules are so cascaded to each other in each column that a carry component or a high-order digit of the product or data obtained by a module is transferred through the carry-out Co of the module to a carry-in Ci of the adjacent module for the adjacent higher order digit of the multiplicand.

Each of the module groups 21, . . . ,2M is supplied with a corresponding order digit of the digits Bo to BM-1 of the multiplier. Each of the module groups is shown as being shifted upward one point in the location from the adjacent module group for adjacent lower order digit of the multiplier shown at the left. Hence, module groups 21, . . . ,2M are cascaded to each other in such a way that a product component or low-order digit of the product or data is transferred from a product-out mo of a module in a column to a carry-in ci or a product-in mi of the other module for the adjacent higher order digit of the multiplicand disposed in the adjacent column for the adjacent higher order digit of the multiplier.

The decimal multiplying assembly as described above includes three types of multiply modules referred to as a first, second and third basic module, respectively. The first basic module is disposed for the low-order digit Ao of the multiplicand in the module group 21 of a first type referred to as a first module group corresponding to the low-order digit Bo of the multiplier. The first basic module has two inputs including a multiplicand input ai and a multiplier input bi and two outputs including a carry-out output co and a product-out output mo.

The second basic modules are provided as the remaining multiply modules in the module group 21 and as the modules corresponding to the low-order digit Ao of the multiplicand in the other module groups 22, . . . ,2M of a second type each referred to as a second module group. The second basic modules each has a carry-in input ci additionally to the two operand inputs ai, bi and two outputs co, mo. The third basic multiply modules are provided as the remaining multiply modules in the multiplying assembly of FIG. 2. The third basic module has two carry-in inputs ci, mi additionally to the two operand inputs ai, bi and two outputs co, mo.

FIG. 3 shows an embodiment of a multiply module according to the present invention applicable to the first basic multiply module in FIG. 2. The multiply module MPL1 of FIG. 3 is constituted by a memory such as a read-only memory comprising two address members ai and bi each supplied with a multiplicand An and a multiplier Bm each of a binary-coded decimal number of a single decimal digit, respectively, 10×10 memory elements which can be accessed by the multiplier An and the multiplicand Bm, and two output members co and mo. The data stored in each memory element has a two-digit decimal data, i.e. a 8-bit binary data.

The higher four bits of the data stored in a memory element represent the high-order decimal digit or carry component of the product of the two addresses accessing the memory element, while the lower four bits represent the low-order decimal digit or product component Mn,m of the product of the addresses. Hence, the two outputs Cn,m and Mn,m of the multiply module MPL1, when combined together, have a data representing a binary-coded decimal product of the two inputs or operands An and Bm.

The data Cn,m and Mn,m stored in the memory element accessed by the operands An and Bm is shown in a decimal representation in Tables 1 and 2, respectively, with all possible combinations of inputs An and Bm.

              (TABLE 1)______________________________________DATA TABLE of Cn,mBm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      0   0   0    0   0   0    0   02    0     0      0   0   0    1   1   1    1   13    0     0      0   0   1    1   1   2    2   24    0     0      0   1   1    2   2   2    3   35    0     0      1   1   2    2   3   3    4   46    0     0      1   1   2    3   3   4    4   57    0     0      1   2   2    3   4   4    5   68    0     0      1   2   3    4   4   5    6   79    0     0      1   2   3    4   5   6    7   8______________________________________

              (TABLE 2)______________________________________DATA TABLE of Mn,mBm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     1      2   3   4    5   6   7    8   92    0     2      4   6   8    0   2   4    6   83    0     3      6   9   2    5   8   1    4   74    0     4      8   2   6    0   4   8    2   65    0     5      0   5   0    5   0   5    0   56    0     6      2   8   4    0   6   2    8   47    0     7      4   1   8    5   2   9    6   38    0     8      6   4   2    0   8   6    4   29    0     9      8   7   6    5   4   3    2   1______________________________________

The basic module as described above has no software program within the module, so that a high-speed calculation can be obtained.

A decimal multiply module according to another embodiment of the present invention, applicable to a first basic module in the multiplying assembly of FIG. 2, may be implemented by a set of logic gates, for example, a programmable logic array (PLA) instead of a memory. The PLA module is supplied with binary-coded decimal operand An and Bm each of a single decimal digit as its term-for-products, and outputs two binary-coded decimal data Cn,m and Mn,m as its sum-of-products.

Sum-of-product group (Cn,m)3, (Cn,m)2 (Cn,m)1 and (Cn,m)o follows the truth tables listed in Tables 3-1 to 3-4 with all possible combinations of inputs An and Bm, while sum-of-product group (Mn,m)3, (Mn,m)2, (Mn,m)1 and (Mn,m)o follows the truth tables listed in Tables 4-1 to 4-4 with all possible combinations of inputs An and Bm.

              (TABLE 3-1)______________________________________(Cn,m).sub.3Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      0   0   0    0   0   0    0   02    0     0      0   0   0    0   0   0    0   03    0     0      0   0   0    0   0   0    0   04    0     0      0   0   0    0   0   0    0   05    0     0      0   0   0    0   0   0    0   06    0     0      0   0   0    0   0   0    0   07    0     0      0   0   0    0   0   0    0   08    0     0      0   0   0    0   0   0    0   09    0     0      0   0   0    0   0   0    0   1______________________________________

              (TABLE 3-2)______________________________________(Cn,m).sub.2Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      0   0   0    0   0   0    0   02    0     0      0   0   0    0   0   0    0   03    0     0      0   0   0    0   0   0    0   04    0     0      0   0   0    0   0   0    0   05    0     0      0   0   0    0   0   0    1   16    0     0      0   0   0    0   0   1    1   17    0     0      0   0   0    0   1   1    1   18    0     0      0   0   0    1   1   1    1   19    0     0      0   0   0    1   1   1    1   0______________________________________

              (TABLE 3-3)______________________________________(Cn,m).sub.1Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      0   0   0    0   0   0    0   02    0     0      0   0   0    0   0   0    0   03    0     0      0   0   0    0   0   1    1   14    0     0      0   0   0    1   1   1    1   15    0     0      0   0   1    1   1   1    0   06    0     0      0   0   1    1   1   0    0   07    0     0      0   1   1    1   0   0    0   18    0     0      0   1   1    0   0   0    1   19    0     0      0   1   0    0   0   1    1   0______________________________________

              (TABLE 3-4)______________________________________(Cn,m).sub.0Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      0   0   0    0   0   0    0   02    0     0      0   0   0    1   1   1    1   13    0     0      0   0   1    1   1   0    0   04    0     0      0   1   1    0   0   0    1   15    0     0      1   1   0    0   1   1    0   06    0     0      1   1   0    1   1   0    0   17    0     0      1   0   0    1   0   0    1   08    0     0      1   0   1    0   0   1    0   19    0     0      1   0   1    0   1   0    1   0______________________________________

              (TABLE 4-1)______________________________________(Mn,m).sub.3Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      0   0   0    0   0   0    1   12    0     0      0   0   1    0   0   0    0   13    0     0      0   1   0    0   1   0    0   04    0     0      1   0   0    0   0   1    0   05    0     0      0   0   0    0   0   0    0   06    0     0      0   1   0    0   0   0    1   07    0     0      0   0   1    0   0   1    0   08    0     1      0   0   0    0   1   0    0   09    0     1      1   0   0    0   0   0    0   0______________________________________

              (TABLE 4-2)______________________________________(Mn,m).sub.2Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      0   0   1    1   1   1    0   02    0     0      1   1   0    0   0   1    1   03    0     0      1   0   0    1   0   0    1   14    0     1      0   0   1    0   1   0    0   15    0     1      0   1   0    1   0   1    0   16    0     1      1   0   1    0   1   0    0   17    0     1      1   0   0    1   0   0    1   08    0     0      0   0   0    0   0   0    0   09    0     0      0   1   1    1   1   0    0   0______________________________________

              (TABLE 4-3)______________________________________(mn,m).sub.1Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     0      1   1   0    0   1   1    0   02    0     1      0   1   0    0   1   0    1   03    0     1      1   0   1    0   0   0    0   14    0     0      0   1   1    0   0   0    1   15    0     0      0   0   0    0   0   0    0   06    0     1      1   0   0    0   1   1    0   07    0     1      0   0   0    0   1   0    1   18    0     0      1   0   1    0   0   1    0   19    0     0      0   1   1    0   0   1    1   0______________________________________

              (TABLE 4-4)______________________________________Bm ↓0     1      2   3   4    5   6   7    8   9    ← An______________________________________0    0     0      0   0   0    0   0   0    0   01    0     1      0   1   0    1   0   1    0   12    0     0      0   0   0    0   0   0    0   03    0     1      0   1   0    1   0   1    0   14    0     0      0   0   0    0   0   0    0   05    0     1      0   1   0    1   0   1    0   16    0     0      0   0   0    0   0   0    0   07    0     1      0   1   0    1   0   1    0   18    0     0      0   0   0    0   0   0    0   09    0     1      0   1   0    1   0   1    0   1______________________________________

The PLA module implementing the first basic multiply module is shown separately in FIGS. 4A to 4H. FIGS. 4A to 4D correspond to Tables 3-1 to 3-4, respectively, while FIGS. 4E to 4H correspond to Tables 4-1 to 4-4, respectively. In each of FIGS. 4A to 4H, both input groups of the term-for-product group (An)3, (An)2, (An)1 and (An)o representing binary-coded decimal multiplicand and the term-for-product (Bm)3, (Bm)2, (Bm)1 and (Bm)o representing binary-coded decimal multiplier are inputted to the respective portions of the PLA module, through which both of the carry-out bit group (Cn)3, (Cn)2, (Cn)1 and (Cn)o and product-out bit group (Mn,m)3, (Mn,m)2, (Mn,m)1 and (Mn,m)o of the product of the multiplicand An by the multiplier Bm are separately outputted.

Now the construction of the PLA module will be described with reference to FIGS. 4A to 4H. Each of multiplicand input bit group (An)3, (An)2, (A1)1 and (An)o and multiplier input bit group (Bm)3, (Bm)2, (Bm)1 and (Bm)o as well as each of the compliments thereof is supplied to a respective input line of the AND-plain 41. Those dots marked at the intersections of the input lines and a particular output line perpendicular to the input lines and connected to a particular AND gate of the AND gate group, such as AND gates 4A0 to 4A19 in FIG. 4A and AND gates 4B0 to 4B19 in FIG. 4B, show that the input lines on which those dots are marked at the particular output lines are inputted to the particular AND gate.

The output of each of the AND gates, such as AND gates 4A0 to 4A19 in FIG. 4A and 4B0 to 4B19 in FIG. 4B, is inputted to an AND-OR plain 42. In FIG. 4A, for example, each of the outputs of AND gates 4A0 to 4A9 are ANDed with each of the outputs of the AND gates 4A10 to 4A19 on the AND-OR plain 42 on condition that a dot is marked at the intersection of the both output lines. These dots on the AND-OR plain 42 are marked in FIGS. 4A to 4H correspondingly to the 1s of the data marked in Tables 3-1 to 3-4 and 4-1 to 4-4. The ANDs thus obtained are supplied to the respective OR gates, for example, 4A20 to 4A29, the output of which are ORed in an OR gate, for example, 4A30 in FIG. 4A and then outputted as a bit of a carry component Cn,m or a product component Mn,m.

With the embodiment of FIGS. 4A to 4H, time interval between the occurrence of the input and the occurrence of the output is very small due to the logic gate construction, so that a further high-speed calculation is obtained as compared to the first embodiment implemented by a memory member.

FIG. 5 shows still another embodiment of a decimal multiply module according to the present invention, applicable to the second basic multiply module in FIG. 2. The multiply module MPL2 shown in FIG. 5 functions multiplication of operands of a single decimal digit and can receive an input carry from another multiply module such as the first basic multiply module or another second basic multiply module.

The multiply module MPL2 is constituted by a memory such as a read-only memory comprising an address group including three address members ai, bi and ci each supplied with a multiplicand An, a multiplier Bm and a carry input Cn-1, respectively. Each of the inputs An, Bm and Cn-1 has a binary-coded decimal data of a single decimal digit. When the multiply module MPL2 is used in the multiplying assembly of FIG. 2, the carry-in input ci is supplied with either a carry Cn-1,m from a carry-out co of an adjacent multiply module for a lower order digit in the same module group or a carry Mn+1,m-1 from a product-out mo of an adjacent multiply module for a lower order digit of the multiplicand disposed in a adjacent module group for a lower order digit of the multiplier.

Each of the memory elements accessed by the three inputs An, Bm and, for example, Cn-1,m has a 8-bit data, and the data S1 is expressed in a decimal representation by the following equation:

S1=A.sub.n ×B.sub.m +C.sub.n-1,m

The higher four bits of the data S1 is outputted from the carry-out Cn,m of the module outputs, while the lower four bits of the data S1 is outputted from the product-out Mn,m of the module outputs.

The second basic multiply module can be also implemented by a set of logic gates such as a PLA module instead of a memory. The PLA module is supplied with binary-coded decimal operands An, Bm and a carry Cn-1,m or Mn+1,m-1 as its term-for-products and outputts binary-coded decimal data S1' including a carry component Cn,m and a product component Mn,m as its sum-of-products. The PLA module is constructed in such a way that, when the PLA module is supplied with data An, Bm and, for example, Cn-1,m, the output data S1' is expressed in a decimal representation as follows:

S1'=A.sub.n ×B.sub.m C.sub.n-1,m

FIG. 6 shows still another embodiment of a decimal multiply module according to the present invention, applicable to the third basic multiply module in FIG. 2. The multiply module MPL3 shown in FIG. 6 functions multiplication of binary-coded decimal operands and can receive two carries from other modules. This module MPL3 is constituted by a memory such as a read-only memory and has four address members each supplied with a multiplicand An, a multiplier Bm, a first input carry Cn-1,m and a second input carry Mn+1,-1, respectively.

When the multiply module MPL3 is used in the multiplying assembly of FIG. 2, the first input carry Cn-1,m is supplied from a carry-out co of an adjacent module for a lower order digit in the same module group, while the second input carry Mn+1,m-1 is supplied from a product-out mo of an adjacent module for a lower-order digit Ao of the multiplicand disposed in a adjacent module group for a lower order digit of the multiplier.

Each of the memory elements accessed by the four inputs An, Bm, Cn-1,m and Mn+1,m-1 has a two-digit decimal data S2 including a high-order digit Cn,m and a low-order digit Mn,m the data S2 being expressed by the following equation:

S2=A.sub.n ×B.sub.m +C.sub.n-1,m +M.sub.n+1,m-1.

The third basic multiply module may be also implemented by a PLA instead of a memory. The PLA is supplied with inputs An, Bm, Cn-1,m and Mn+1,m-1 as its term-for-products and outputts binary-coded decimal data S2' including a high-order digit Cn,m and a low-order digit Mn,m as its sum-of-products. The PLA module is constructed in such a way that, when the PLA is supplied with data An, Bm, Cn-1,m and Mn+1,m-1 as its term-for-products, the output sum-of-products S2' is expressed in a decimal representation as follows:

S2'=A.sub.n ×B.sub.m +C.sub.n-1.m +M.sub.n+1.m-1

FIG. 7 shows an embodiment of a multiply module group according to the present invention, applicable to the first module group 21 of the multiplying assembly of FIG. 2. The module group of FIG. 7 comprises a multiply module MPL1 of FIG. 3 as its low-order module 71 for the low-order digit Ao of the multiplicand and a plurality of multiply modules MPL2 of FIG. 5 as its remaining modules 72 to 7M for the other digits of the multiplicand. Each of the modules 71 to 7N is supplied with a corresponding digit AO, . . . ,AN-1 of a multiplicand having decimal N digits (N>=1) and a common multiplier Bo having a single decimal digit.

A carry component outputted from the carry-out co of each of the multiply modules 71 to 7N-1 is supplied to the carry-in ci of each of the adjacent modules 72 to 7M of the higher order position, respectively, so that the output Mo.o to MN-1.0 of the decimal multiply module group of FIG. 7 is outputted through the product-out mo of each of the multiply modules 71 to 7N. The carry component CN-1.0 of the multiply module 7N is the high-order digit of the decimal output of the module group, which is supplied to another module for the high-order digit of the multiplicand in the adjacent higher order module group in FIG. 2.

FIG. 8 shows another embodiment of a multiply module group according to the present invention, applicable to the second module groups 21, . . ,2M in the multiplying assembly of FIG. 2. The module group of FIG. 8 comprises a multiply module MPL2 of FIG. 5 as its low-order module 81 for low-order digit Ao of the multiplicand and a plurality of multiply modules MPL3 of FIG. 6 as its remaining modules 82 to 8N. Each module 81 to 8N is supplied with a corresponding digit Ao,. . . ,An-1 of a multiplicand having decimal N digits (N>=1) and a common multiplier Bm having a single decimal digit.

A carry component outputted from the carry-out co of each of the multiply modules 81 to 8N-1 is supplied to the carry-in ci of the adjacent module 82 to 8N of the higher order position. The carry component CN-1,m from the carry-out co of the multiply module 8N is supplied to the module for the high-order digit An-1 of the multiplicand disposed in the adjacent higher order module group. Each of the product components from product-out mo is supplied to the adjacent module in the adjacent module group or outputted as a digit of a final product.

Turning now to FIG. 2, the operation of the multiplying assembly will be described.

When a multiplicand and a multiplier is inputted to the multiplying assembly, the multiply module 211 of the low-order position first operates with the low-order digits Ao and Bo of the inputted operands. The module 211 outputts from its product-out mo the low-order digit Mo of the final decimal product and from its carry-out co a carry component to the adjacent module 212 of the next low-order position in the same module group 21.

Next, the module 212 operates with the three data A1, Bo and the input carry supplied from the module 211, and outputts a carry and a product components. Then, the module 221 disposed adjacent to the module 212 in the next low-order module group 22 operates, and outputts a next low-order digit M1 of the final output product as well as a carry component. The calculation is operated likewise in sequence in the multiplying assembly without any software program or a controller, hence a high-speed calculation can be obtained. Additionally, the time required for calculation depends only on the numbers of the digits of the two operands to be calculated, so that the calculation time does not depends on the result to be obtained.

At least one of the first and the second basic modules in the multiplying assembly may be substituted by a third basic module. In this case, the carry-in input not necessary for the operation is fixed at zero. Employing this configuration provides ease of fabrication.

When the multiplying assembly of FIG. 2 is implemented by multiply modules of a set of logic gates, such as PLA modules, a further high-speed operation can be obtained, since the propagation delay of the logic gates is smaller than the access time of the memory.

Since above embodiments are described only for examples, the present invention is not limited to such embodiments and it will be obvious for those skilled in the art that various modifications or alterations can be easily made based on the above embodiments under the scope of the present invention.

Claims (15)

What is claimed is:
1. A multiplication module for multiplying a multiplicand and a multiplier each being a binary-coded decimal number of a single decimal digit, for use in a decimal multi-digit multiplying assembly, said multiplication module comprising: an input group for receiving a signal group including said multiplicand, said multiplier and a carry of a binary-coded decimal single digit; multiplication table means having decimal data representing a sum of a product resulting from a multiplication of said multiplicand by said multiplier and said carry for each possible digit of said multiplicand, multiplier and carry; retrieving means responsive to said signal group for retrieving said decimal data from said multiplication table means, first outputting means for outputting a high-order decimal digit of said decimal data retrieved by said retrieving means; and second output means for outputting a low-order decimal digit of said decimal data retrieved by said retrieving means.
2. A multiply module as defined in claim 1 wherein said multiplication table means is a memory device.
3. A multiply module as defined in claim 1 wherein said multiplication table means is means comprising a programmable logic array.
4. A multiplication module for multiplying a multiplicand and a multiplier each being a binary-coded decimal number of a single decimal digit, for use in a decimal multi-digit multiplying assembly, said multiplication module comprising: an input group for receiving a signal group including said multiplicand, said multiplier, first and second carries of a binary-coded decimal single digit; multiplication table means having decimal data representing a sum of a product resulting from a multiplication of said multiplicand by said multiplier and said first carry and said second carry for each of possible digits of said multiplier, multiplicand and first and second carries; retrieving means responsive to said signal group for retrieving said decimal data from said multiplication table means; a first output means for outputting a high-order decimal digit of said decimal data retrieved by said retrieving means; and a second output means for outputting a low-order decimal digit of said decimal data retrieved by said retrieving means.
5. A multiplication module as defined in claim 4 wherein said multiplication table means is a memory device.
6. A multiplication module as defined in claim 4 wherein said multiplication table means is means comprising a programmable logic array.
7. A multiplication module group for multiplying a first operand of a binary-coded decimal number of a plurality of decimal digits and a second operand of a binary-coded decimal number of a single decimal digit, for use in a decimal multi-digit multiplying assembly, said multiplication module group comprising:
a first multiplication module including a first multiplication table means having first decimal data representing a product of a low-order digit of said first operand by said second operand for each possible digit thereof, first retrieving means for retrieving said first decimal data from said first multiplication table means, first output means for separately outputting high-order and low-order decimal digits of said first decimal data retrieved by said first retrieving means as first carry and first product components, respectively; and
a plurality of second multiplication modules each being disposed correspondingly to a respective digit except said low-order digit of said first operand and each including second multiplication table means having second decimal data representing a sum of a product of said respective digit by said second operand and an input carry, second retrieving means for retrieving said second decimal data from said second multiplication table means, second output means for separately outputting high-order and low-order decimal digits of said second decimal data retrieved by said second retrieving means as second carry and second product components, respectively:
said basic modules being cascaded so that each of said second basic modules is supplied with said carry component as an input carry from another module of said first and second basic modules corresponding to an adjacent lower order digit of said first operand.
8. A multiply module group as defined in claim 7 wherein each of said first and second multiplication table means is a memory device.
9. A multiply module group as defined in claim 7 wherein said each of said first and second multiplication table means is a programmable logic array.
10. A multiplication module group for multiplying a first operand of a binary-coded decimal number of a plurality of decimal digits and a second operand of a binary-coded decimal number of a single decimal digit, for use in a decimal multi-digit multiplying assembly, said multiplication module group comprising:
a first multiplication module including a first multiplication table means having first decimal data representing a sum of a product of a low-order decimal digit by said second operand and a first input carry for each of possible digits thereof, first retrieving means for retrieving said first decimal data from said first multiplication table means, and first output means for separately outputting high-order and low-order decimal digits of said first decimal data which are retrieved by said first retrieving means as first carry and first product components, respectively; and
a plurality of second multiplication modules each being disposed correspondingly to a respective digit except said low-order digit of said first operand and each including second multiplication table means having second decimal data representing a sum of a product of said respective digit by said second operand and said second input carry and said third input carry for each possible digit thereof, second retrieving means for retrieving said second decimal data from said second multiplication table means, and second output means for separately outputting high-order and low-order decimal digits of said second decimal data retrieved by said second retrieving means as second carry and second product components, respectively:
said multiply modules being cascaded so that each of said second multiplication modules is supplied with said carry component as an input carry from another module of said first and second multiplication modules corresponding to an adjacent lower order digit of said first operand.
11. A multiply module group as defined in claim 10 wherein each of said first and second multiplication table means is a memory device.
12. A multiply module group as defined in claim 10 wherein each of said first and second multiplication table means is a programmable logic array.
13. A multiplying assembly for multiplying first and second operands, each of which is a binary-coded decimal multi-digit number comprising:
(a) a first multiplication module group disposed for a low-order digit Bo of said second operand comprising:
a first multiplication module including first multiplication table means having first decimal data representing a product of a low-order digit Ao of said first operand by a low-order digit Bo of said second operand for each possible digit thereof, first retrieving means for retrieving said first decimal data from said first multiplication table means, and first output means for separately outputting high-order and low-order decimal digits of said first decimal data retrieved by said first retrieving means as first carry and first product components, respectively; and
a plurality of second multiplication modules each being disposed correspondingly to a respective digit An except for said low-order digit Ao of said first operand and each of said modules including second multiplication table means having second decimal data representing a sum of a product of said respective digit An of said first operand by said low-order digit Bo of said second operand and a first input carry, second retrieving means for retrieving said second decimal data from said second multiplication table means and second output means for outputting separately high-order and low-order decimal digits of said second decimal data retrieved by said second retrieving means as second carry and second product components, respectively;
(b) a plurality of second multiplication module groups each being disposed for a respective digit Bm except for said low-order digit Bo of said second operand comprising;
a third multiplication module including third multiplication table means having third decimal data representing a sum of a product of said low-order digit Ao of said first operand by said respective digit Bm of said second operand and said second input carry for each possible digit thereof, third retrieving means for retrieving said third decimal data from said third multiplication table means, and third output means for separately outputting high-order and low-order decimal digits of said third decimal data retrieved by said third retrieving means as third carry and third product components, respectively; and
a plurality of fourth multiplication modules each being disposed for another respective digit Am except said low-order digit Ao of said first operand and each including fourth multiplication table means having fourth decimal data representing a sum of a product of said another respective digit An of said first operand by said respective digit Bm of said second operand and a third input carry and said fourth input carry for each possible digit thereof, fourth retrieving means for retrieving said fourth decimal data from said fourth multiplication table means, and fourth output means for separately outputting high-order and low-order decimal digits said fourth decimal data retrieved by said fourth retrieving means as fourth carry and fourth product components, respectively:
(c) said multiply modules being cascaded in each of said multiplication module groups so that said carry component is transferred between two modules corresponding to adjacent order digits of the first operand disposed in the same module group; and said multiplication module groups being cascaded to each other so that each of said product components except said product component from said first or third module and said carry component from said module of a high-order digit An-1 are transferred between two of said module groups corresponding to adjacent order digits of said second operands for generating a final output product of said first operand by said second operand.
14. A multiplying assembly as defined in claim 13 wherein each of said first through fourth multiplication table means is a memory device.
15. A multiplying assembly as defined in claim 13 wherein each of said first through fourth multiplication table means is a programmable logic array.
US08001079 1992-01-13 1993-01-06 Decimal multiplying assembly and multiply module Expired - Fee Related US5379245A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4-3444 1992-01-13
JP344492A JP2830566B2 (en) 1992-01-13 1992-01-13 Decimal multiplier

Publications (1)

Publication Number Publication Date
US5379245A true US5379245A (en) 1995-01-03

Family

ID=11557522

Family Applications (1)

Application Number Title Priority Date Filing Date
US08001079 Expired - Fee Related US5379245A (en) 1992-01-13 1993-01-06 Decimal multiplying assembly and multiply module

Country Status (2)

Country Link
US (1) US5379245A (en)
JP (1) JP2830566B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230631A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20050010631A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Decimal multiplication using digit recoding
US20050022322A1 (en) * 2003-05-12 2005-02-03 Eduardo Jimenez Powered toothbrush with curved neck and flexible shaft and single battery
US20060259530A1 (en) * 2003-05-12 2006-11-16 International Business Machines Corporation Decimal multiplication for superscaler processors
US20090234900A1 (en) * 2004-08-07 2009-09-17 Ternarylogic Llc Multi-Value Digital Calculating Circuits, Including Multipliers
US20100146031A1 (en) * 2008-12-08 2010-06-10 International Business Machines Corporation Direct Decimal Number Tripling in Binary Coded Adders

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4566075A (en) * 1982-12-21 1986-01-21 Texas Instruments Incorporated Table lookup multiplier employing compressed data read only memory
US5060183A (en) * 1987-11-19 1991-10-22 Mitsubishi Denki Kabushiki Kaisha Parallel multiplier circuit using matrices, including half and full adders
US5258945A (en) * 1991-12-23 1993-11-02 Amdahl Corporation Method and apparatus for generating multiples of BCD number

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS592935B2 (en) * 1976-10-07 1984-01-21 Nippon Telegraph & Telephone
JPS59174944A (en) * 1983-03-25 1984-10-03 Hitachi Ltd Multiplying device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4566075A (en) * 1982-12-21 1986-01-21 Texas Instruments Incorporated Table lookup multiplier employing compressed data read only memory
US5060183A (en) * 1987-11-19 1991-10-22 Mitsubishi Denki Kabushiki Kaisha Parallel multiplier circuit using matrices, including half and full adders
US5258945A (en) * 1991-12-23 1993-11-02 Amdahl Corporation Method and apparatus for generating multiples of BCD number

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Maholick, "Fast BCD Multiplication Logic", IBM Technical Disclosure Bulletin, vol. 20, No. 2, 1977.
Maholick, Fast BCD Multiplication Logic , IBM Technical Disclosure Bulletin, vol. 20, No. 2, 1977. *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412476B2 (en) 2003-05-12 2008-08-12 International Business Machines Corporation Decimal multiplication for superscaler processors
US7853635B2 (en) 2003-05-12 2010-12-14 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20050022322A1 (en) * 2003-05-12 2005-02-03 Eduardo Jimenez Powered toothbrush with curved neck and flexible shaft and single battery
US7490121B2 (en) 2003-05-12 2009-02-10 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20060259530A1 (en) * 2003-05-12 2006-11-16 International Business Machines Corporation Decimal multiplication for superscaler processors
US7167889B2 (en) 2003-05-12 2007-01-23 International Business Machines Corporation Decimal multiplication for superscaler processors
US7266580B2 (en) 2003-05-12 2007-09-04 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20070214205A1 (en) * 2003-05-12 2007-09-13 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20070233773A1 (en) * 2003-05-12 2007-10-04 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20040230631A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US7136893B2 (en) 2003-07-10 2006-11-14 International Business Machines Corporation Decimal multiplication using digit recoding
US20050010631A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Decimal multiplication using digit recoding
US20090234900A1 (en) * 2004-08-07 2009-09-17 Ternarylogic Llc Multi-Value Digital Calculating Circuits, Including Multipliers
US8209370B2 (en) * 2004-08-07 2012-06-26 Ternarylogic Llc Multi-value digital calculating circuits, including multipliers
US20100146031A1 (en) * 2008-12-08 2010-06-10 International Business Machines Corporation Direct Decimal Number Tripling in Binary Coded Adders
US8417761B2 (en) 2008-12-08 2013-04-09 International Business Machines Corporation Direct decimal number tripling in binary coded adders

Also Published As

Publication number Publication date Type
JP2830566B2 (en) 1998-12-02 grant
JPH076024A (en) 1995-01-10 application

Similar Documents

Publication Publication Date Title
US3636334A (en) Parallel adder with distributed control to add a plurality of binary numbers
Garner Number systems and arithmetic
US6041340A (en) Method for configuring an FPGA for large FFTs and other vector rotation computations
US5764558A (en) Method and system for efficiently multiplying signed and unsigned variable width operands
US4074351A (en) Variable function programmed calculator
US4607176A (en) Tally cell circuit
US4620188A (en) Multi-level logic circuit
US5095460A (en) Rotating priority encoder operating by selectively masking input signals to a fixed priority encoder
US7467175B2 (en) Programmable logic device with pipelined DSP slices
US5187679A (en) Generalized 7/3 counters
US4485455A (en) Single-chip semiconductor unit and key input for variable function programmed system
US20050125478A1 (en) Smaller and lower power static mux circuitry in generating multiplier partial product signals
US5956265A (en) Boolean digital multiplier
US6021423A (en) Method for parallel-efficient configuring an FPGA for large FFTS and other vector rotation computations
US5978827A (en) Arithmetic processing
Taylor A VLSI residue arithmetic multiplier
US4287566A (en) Array processor with parallel operations per instruction
US3711692A (en) Determination of number of ones in a data field by addition
US4626825A (en) Logarithmic conversion apparatus
US4682303A (en) Parallel binary adder
US5151875A (en) MOS array multiplier cell
US4354249A (en) Processing unit for multiplying two mathematical quantities including at least one complex multiplier
US4623982A (en) Conditional carry techniques for digital processors
US5465226A (en) High speed digital parallel multiplier
US3535502A (en) Multiple input binary adder

Legal Events

Date Code Title Description
AS Assignment

Owner name: NEC CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:UEDA, TSUGUO;REEL/FRAME:006395/0094

Effective date: 19921218

SULP Surcharge for late payment
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
FP Expired due to failure to pay maintenance fee

Effective date: 20070103