Complex arithmetic unit
First Claim
1. A digital device for performing at least one type of mathematical operation on complex numbers by digitally manipulating digital input data which represent such numbers, comprising:
- (a) data input means for receiving digital input data representative of complex numbers for digital manipulation and for transmitting said data over an input bus;
(b) data output means for transmitting digital output data, which represent the results of said mathematical operations, from an output bus to a destination device, said output data resulting from said digital manipulation of said input data;
(c) first data storage means for storing said input data, said output data, and intermediate digital data resulting from said digital manipulation, said first storage means being connected to said inut bus and to said output bus;
(d) data buffer means connected to said output bus for transferring digital data from said output bus to a multiplier I/O bus;
(e) arithmetic means for performing multiplication, addition of products, and subtraction of products, on digital data, having a first input means for receiving digital data from said input bus and a second input means for receiving digital data from said buffer means, and having output means for transferring digital output data resulting from said multiplication, addition, and subtraction;
(f) address multiplexer means connected to said output means of said arithmetic means for extracting a first portion of said output data of said arithmetic means;
(g) data scaling multiplexer means connected to said output means of said arithmetic means and to said input bus for extracting a second portion of said output data of said arithmetic means and transferring said second portion to said input bus, said second portion constituting output data or intermediate digital data;
(h) second data storage means addressable with the first portion of output data extracted by said address multiplexer means for storing digital data which represent approximate results of mathematical operations and for transferring said stored data that is addressed to said data buffer means; and
(i) control means responsive to said output data of said arithmetic means extracted by said data scaling multiplexer means and said address multiplexer means, for generating digital control signals to control said data input means, said first data storage means, said data buffer means, said arithmetic means, said data scaling multiplexer means, said address multiplexer means, and said second data storage means to perform said mathematical operations.
0 Assignments
0 Petitions
Accused Products
Abstract
A complex arithmetic unit (CAU) for manipulating digital data representative of complex numbers. The CAU receives control signals and digital data representative of the real and imaginary parts of the complex operands from a host computer, and performs division, magnitude, and multiplication operations. The CAU has an input port for receiving input data and control signals; an output port for transferring output data and control signals; a RAM for storing input data, output data, and the results of intermediate calculations, the RAM having an input bus connected to the input port and an output bus connected to the output port; a data buffer for transferring digital data from the output bus; a controllable multiplier which also performs addition and subtraction of products, with an input connected to the input bus and the buffer, and an output for transferring digital output data; a parallel scaling multiplexer which receives the multiplier output data and extracts a selected contiguous subset of digital bits to scale the multiplier output data according to a predetermined scaling factor; an address multiplexer for extracting predetermined aspects of the multiplier output data; a lookup PROM addressable in response to the address multiplexer for storing approximate results of mathematical operations and transferring the results to the data buffer means and the multiplier input; a control device responsive to predetermined aspects of the multiplier output data extracted by the data scaling multiplexer control device and the address multiplexer, for controlling the other components.
-
Citations
19 Claims
-
1. A digital device for performing at least one type of mathematical operation on complex numbers by digitally manipulating digital input data which represent such numbers, comprising:
-
(a) data input means for receiving digital input data representative of complex numbers for digital manipulation and for transmitting said data over an input bus; (b) data output means for transmitting digital output data, which represent the results of said mathematical operations, from an output bus to a destination device, said output data resulting from said digital manipulation of said input data; (c) first data storage means for storing said input data, said output data, and intermediate digital data resulting from said digital manipulation, said first storage means being connected to said inut bus and to said output bus; (d) data buffer means connected to said output bus for transferring digital data from said output bus to a multiplier I/O bus; (e) arithmetic means for performing multiplication, addition of products, and subtraction of products, on digital data, having a first input means for receiving digital data from said input bus and a second input means for receiving digital data from said buffer means, and having output means for transferring digital output data resulting from said multiplication, addition, and subtraction; (f) address multiplexer means connected to said output means of said arithmetic means for extracting a first portion of said output data of said arithmetic means; (g) data scaling multiplexer means connected to said output means of said arithmetic means and to said input bus for extracting a second portion of said output data of said arithmetic means and transferring said second portion to said input bus, said second portion constituting output data or intermediate digital data; (h) second data storage means addressable with the first portion of output data extracted by said address multiplexer means for storing digital data which represent approximate results of mathematical operations and for transferring said stored data that is addressed to said data buffer means; and (i) control means responsive to said output data of said arithmetic means extracted by said data scaling multiplexer means and said address multiplexer means, for generating digital control signals to control said data input means, said first data storage means, said data buffer means, said arithmetic means, said data scaling multiplexer means, said address multiplexer means, and said second data storage means to perform said mathematical operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15)
-
- 12. A device as in claim 12, wherein such timing of said control means by such internal timing signals has a greater rate than the rate of such timing by such external timing signals.
-
16. A digital device for performing at least one type of mathematical operaton on complex numbers by digitally manipulating digital input data which represent such numbers comprising:
-
(a) first data storage means for storing said digital input data, output data which represents the results of said mathematical operations, and intermediate data resulting from said digital manipulation, (b) data input means connected to said first data storage means for transferring said input data from a source device to said first data storage means, (c) data output means connected to said first data storage means for transferring said output data from said digital device to a destination device, (d) an arithmetic unit comprising; input means for receiving digital data for manipulation, multiplier means for performing multiplication on digital data received by said input means, subtraction means for performing subtraction of products output by said multiplier means, addition means for performing addition of products output by said multiplier means, and output means for transferring digital output data resulting from said multiplication, subtraction, and addition, (e) an address multiplexer means connected to said output means of said arithmetic means for extracting a first portion of said arithmetic unit output data, (f) data scaling means connected to said output means and said input means of said arithmetic unit and to said first data storage means for extracting a second portion of said output data of said arithmetic unit and for transferring said second portion to said arithmetic unit input means and to said first data storage means, said second portion constituting said output data and said intermediate data, (g) a second data storage means addressable with the first portion of output data extracted by to said address multiplexer means, for storing digital data which represent approximate results of mathematical operations and for transferring said stored data that is addressed to said arithmetic unit input means, and (h) control means responsive to said arithmetic unit output data for generating digital control signals to control said data nput means, said first data storage means, said arithmetic unit, said data scaling multiplexer means, said address multiplexer means, and said second data storage means to perform said mathematical operations.
-
-
17. ln a device comprising an arithmetic means, a read/write memory for storing input data and intermediate calculations, a scaling means and a second memory for storing data, a method of performing complex division in which a numerator Nr+jNi is provided by a denominator Dr+jDi to produce a quotient Qr+jQi comprising the steps of:
-
providing in said second memory a lookup table that provides starting approximations LU of the reciprocal of a denominator D, providing to said arithmetic means the values Nr, Ni, Dr, Di, calculating in said arithmetic means a value NrQ=Nr*Dr+Ni*Di, scaling the value NrQ in said scaling means by an amount that varies with the magnitude of NrQ and storing the scaled value in said read/write memory, calculating in said arithmetic means a denominator D=Dr*Dr+Di*Di, and scaling the value D by an amount which varies with the magnitude of D, using the scaled value of D to obtain from said lookup table a starting approximation LU of the reciprocal of the denominator D, calculating a value 1/D2 =(LU*K1-LU2 *D*K2) where K1 and K2 are scaling factors, calculating a value 1/D3 =1/D2 *K1-(1/D2)2 *DK2) and storing the value 1/D3 in said read/write memory, multiplying in said arithmetic means the scaled value of NrQ and 1/D3 and scaling the value to produce Qr, calculating in said arithmetic means NiQ=Ni*Dr-Nr*Qi and scaling the value NiQ by an amount that varies with the magnitude of NiQ, and multiplying the scaled value of NiQ and 1/D3 and scaling the value to produce Qi.
-
-
18. In a device comprising an arithmetic means, a read/write memory for storing input data and intermediate calculations, and a second memory for storing data, a method of calculating the magnitude of a complex quantity L+jS or S+jL where L is the larger value and S the smaller value comprising the steps of
providing in said second memory a lookup table that provides estimates of the quantity M/L=(1+S2 /L2)1/2 for discrete values of S/L where 0≦ - S/L≦
1,storing in said read/write memory at least the value L, providing to said arithmetic means the values L and S of the complex quantity whose magnitude is to be determined, calculating in said arithmetic means the value of the ratio S/L, using the value of S/L to obtain from said lookup table a value of the expression M/L=(1+S2 /L2)1/2, and multiplying L and the value M/L to produce the value M=(L2 +S2)1/2.
- S/L≦
-
19. In a device comprising an arithmetic means, a read/write memory for storing input data and intermediate calculations, and a second memory for storing data, a method of pe5rforming complex division in which a numerator Nr+jNi is divided by a denominator Dr+jDi to produce a quotient Qr+jQi comprising the steps of:
-
providing in said second memory a lookup table that provides starting approximations LU of the reciprocal of a denominator D, providing to said arithmetic means the values Nr, Ni, Dr, Di, calculating in said arithmetic means a value NrQ=Nr*Dr+Ni*Di, and storing the value in said read/write memory, calculating in said arithmetic means a denominator D=Dr*Dr+Di*Di, using the value of D to obtain from said lookup table a starting approximation LU of trhe reciprocal of the denominator D, calculating a value 1/D2 =(LU*K1-LU2 *DK2) where K1 and K2 are scaling factors, calculating a value 1/D3 =1/D2 *K1-(1/D2)2 *D*K2) and storing the value 1/D3 in said read/write memory, multiplying in said arithmetic means the value of NrQ and 1/D3 to produce Qr, calculting in said arithmetic means NiQ=Ni*Dr-Nr*Qi, and multiplying the value of NiQ and 1/D3 to produce Qi.
-
Specification