Claims
- 1. A trigonometric function arithmetic processor for use in computers for computing the values of trigonometric function sin .theta. and cos .theta., with a resolution of n bits (where n=2m and m is positive integer), comprising:
- a bus to which an input angular data of .theta. is supplied in the form of a binary floating-point number;
- an exponent processing means coupled to said bus for receiving an exponent i (where i=integer) of said angular data and for incrementing its output k in the order of i, i+1, i+2, . . . , m-1 and then decrementing its output k in the order of m, m-1, m-2, . . . , i+1;
- constant memory means coupled to said bus for storing a constant 1/K where ##EQU5## and a sequence of constants .GAMMA..sub.k =2.sup.k .times.arctan (2.sup.-k) where k=i, i+1, i+2, . . . , m-1;
- first register means coupled to said bus for receiving a mantissa V.sub.k of said angular data;
- stack means coupled to said first register means for receiving a sign data of said mantissa of said angular data stored in said first register means;
- first adder/subtracter means having a first input connected to said first register means and a second input coupled to said bus for receiving a constant .GAMMA..sub.k from said constant memory means, said first adder/subtracter means being controlled by an output of said stack means so that when said sign data indicates positive said first adder/subtracter means executes subtraction of said second input from said first input, and when said sign data indicates negative said first adder/subtracter means executes addition between said first and second inputs, this addition/subtraction of said first adder/subtracter means being repeatedly performed each time said output k of said exponent processing means is incremented in the order of i, i+1, i+2, . . . , m-1;
- first shifter means coupled to an output of said first adder/subtracter means for writing a doubled value of said output of said first adder/subtracter means to said first register means each time said output k of said exponent processing means is incremented, so that each time said output k of said exponent processing means is incremented, said first register means is written with V.sub.k+1 =2(V.sub.k -a.sub.k .times..GAMMA..sub.k) where a.sub.k is a sign data given by said stack means, a content Vm of said first register means obtained when said output k of said exponent processing means has been incremented to m-1 being used as an initial value X.sub.k ;
- multiplication means coupled to said bus for receiving said constant 1/K from said constant memory means and said content Vm of said first register means obtained when said output k of said exponent processing means has been incremented to m-1, for generating a product Vm/K;
- second register means coupled to said bus for receiving, as an initial value Y.sub.k, said product Vm/K generated by said multiplication means;
- second adder/subtracter means having a first input connected to said first register means and a second input coupled to said bus for receiving said initial value Y.sub.k from said second register means, said second adder/subtracter means being controlled by said output of said stack means so that when said sign data indicates positive said second adder/subtracter means executes addition between said first and second inputs and when said sign data indicates negative said second adder/subtracter means executes subtraction of said first input from said second input;
- second shifter means coupled to an output of said second adder/subtracter means for writing a halved value of said output of said second adder/subtracter means to said second register means each time said output k of said exponent processing means is decremented; and
- barrel shift means coupled to said second shift register means for outputting 2.sup.-2k times the value of the content of said second shift register means to said second input of said first adder/subtracter means;
- so that when said output k of said exponent processing means is decremented in the order of m, m-1, m-2, . . . , i+1, said first and second adder/subtracter means being controlled by said output of said stack means so as to respectively add/subtract each time said output k of said exponent processing means is decremented, whereby, each time said output k of said exponent processing means is decremented, said first register means holds X.sub.k-1 =X.sub.k -a.sub.k .times.2.sup.-2k .times.Y.sub.k and said second register means holds Y.sub.k-1 =(Y.sub.k +a.sub.k .times.X.sub.k)/2, and finally, said first register means holds a value corresponding to cos .theta. and said second register means holds a value corresponding to a mantissa of sin .theta..
- 2. A trigonometric function arithmetic processor for use in computers for computing the values of trigonometric function sin .theta. and cos .theta., with a resolution of n bits (where n=2m and m is positive integer), comprising:
- a bus to which an input angular data of .theta. is supplied in the form of a binary fixed-point number;
- an processing means for incrementing its output k in the order of 0, 1, 2, . . . , m-1 and then decrement its output k in the order of m, m-1, m-2, . . . , 1;
- constant memory means coupled to said bus for storing a constant 1/K where ##EQU6## and a sequence of constants .GAMMA..sub.k =2.sup.k .times.arctan (2.sup.-k) where k=0, 1, 2, . . . , m-1;
- first register means coupled to said bus for receiving said angular data as V.sub.k ;
- stack means coupled to said first register means for receiving a sign data of said angular data stored in said first register means;
- first adder/subtracter means having a first input connected to said first register means and a second input coupled to said bus for receiving a constant .GAMMA..sub.k from said constant memory means, said first adder/subtracter means being controlled by an output of said stack means so that when said sign data indicates positive said first adder/subtracter means executes subtraction of said second input from said first input, and when said sign data indicates negative said first adder/subtracter means executes addition between said first and second inputs, the addition/subtraction of said first adder/subtracter means being repeatedly performed each time said output k of said exponent processing means is incremented in the order of 0, 1, 2, . . . , m-1;
- first shifter means coupled to an output of said first adder/subtracter means for writing a doubled value of said output of said first adder/subtracter means to said first register means each time said output k of said processing means is incremented, so that each time said output k of said processing means is incremented, said first register means is written with V.sub.k+1 =2(V.sub.k -a.sub.k .times..GAMMA..sub.k) where a.sub.k is a sign data given by said stack means, a content Vm of said first register means obtained when said output k of said processing means has been incremented to m-1 being used as an initial value X.sub.k ;
- multiplication means coupled to said bus for receiving said constant 1/K from said constant memory means and said content Vm of said first register means obtained when said output k of said processing means has been incremented to m-1, for generating a product Vm/K;
- second register means coupled to said bus for receiving, as an initial value Y.sub.k, said product Vm/K generated by said multiplication means;
- second adder/subtracter means having a first input connected to said first register means and a second input coupled to said bus for receiving said initial value Y.sub.k from said second register means, said second adder/subtracter means being controlled by said output of said stack means so that when said sign data indicates positive said second adder/subtracter means executes addition between said first and second inputs, and when said sign data indicates negative said second adder/subtracter means executes subtraction of said first input from said second input;
- second shifter means coupled to an output of said second adder/subtracter means for writing a halved value of said output of said second adder/subtracter means to said second register means each time said output k of said processing means is decremented; and
- barrel shift means coupled to said second shift register means for outputting 2.sup.-2k times value of the content of said second shift register means to said second input of said first adder/subtracter means;
- so that when said output of said processing means is decremented in .theta.order of m, .theta.1, m-2, . . . , i+1, said first and second adder/subtracter means being controlled by said output of said stack means so as to respectively add/subtract each time said output k of said processing means is decremented, whereby, each time said output k of said processing means is decremented, said first register means holds X.sub.k-1 =X.sub.k -a.sub.k .times.2.sup.-2k .times.Y.sub.k and said second register means holds Y.sub.k-1 =(Y.sub.k +a.sub.k .times.X.sub.k)/2, and finally, said first register means holds a value corresponding to cos .theta. and said second register means holds a value corresponding to sin .THETA..
- 3. A trigonometric function arithmetic processor for computing the values of trigonometric function sin .THETA. and cos .THETA., with a resolution of n bits (where n=2m and m is positive integer) and in a pipelined manner, comprising:
- m stages of cascaded pseudo-division processing units having the same construction and assigned to variables k where k=0, 1, 2, . . . , m-1, each unit including:
- first register means coupled to receive a variable V.sub.k, the first register means of a first stage being connected to receive a mantissa of said angular data as variable V.sub.k, and the first register means of the other stages being connected to receive a variable V.sub.k output of a preceding stage as the variable V.sub.k ;
- a constant generator outputting a constant .GAMMA..sub.k =2.sup.k .times.arctan (2.sup.-k);
- second register means coupled to receive a sign data of said mantissa of said angular data stored in said first register means for outputting the sign data to the second register means of a succeeding stage;
- first adder/subtracter means having a first input connected to said first register means and a second input coupled to receive a constant .GAMMA..sub.k from said constant generator, said first adder/subtracter means being controlled by said sign data stored in said first register means so that when said sign data indicates positive said first adder/subtracter means executes subtraction of said second input from said first input, and when said sign data indicates negative said first adder/subtracter means executes addition between said first and second inputs;
- first shifter means coupled to an output of said first adder/subtracter means for writing a doubled value of said output of said first adder/subtracter means as the variable V.sub.k+1 to said first register means of the succeeding stage;
- an arithmetic operation unit having a first register coupled to receive the variable Vm from the last stage of pseudo-division processing unit as an initial value X.sub.k,
- a constant generator outputting a constant 1/K where ##EQU7## multiplication means coupled to receive said constant 1/K from said constant generator and said content Vm of said first register means for outputting a product Vm/K as an initial value Y.sub.k, and second register means receiving the content of the second register means of the last stage of pseudo-division processing unit; and
- m stages of cascaded pseudo-multiplication processing units having the same construction and assigned to variables k where k=0, 1, 2, . . . , m-1, each unit including:
- first register means coupled to receive a variable X.sub.k, the first register means of a first stage being connected to receive the variable X.sub.k of said an arithmetic operation unit, and the first register means of the other stages being connected to receive a variable X.sub.k output of a preceding stage;
- second register means coupled to receive a variable Y.sub.k, the first register means of a first stage being connected to receive the variable Y.sub.k of said an arithmetic operation unit, and the first register means of the other stages being connected to receive a variable Y.sub.k output of a preceding stage;
- third register means holding a sign data, the third register means of a first stage being coupled to said second register means of said pseudo-multiplication processing unit, and the third register means of the other stage being coupled to said third register means of a preceding stage;
- barrel shift means coupled to said second shift register means for outputting 2.sup.-2k times value of the content of said second shift register means;
- first adder/subtracter means having a first input connected to said first register means and a second input coupled to said barrel shifter means, said first adder/subtracter means being controlled by said sign data of said third register means so that when said sign data indicates positive said first adder/subtracter means executes subtraction of said second input from said first input, and when said sign data indicates negative said first adder/subtracter means executes addition between said first and second inputs so that said first adder/subtracter means outputs X.sub.k-1 =X.sub.k -a.sub.k .times.2.sup.-2k .times.Y.sub.k ;
- second adder/subtracter means having a first input connected to said first register means and a second input coupled to said second register means, said second adder/subtracter means being controlled by said sign data stored in said third register means so that when said sign data indicates positive said second adder/subtracter means executes addition between said first and second inputs, and when said sign data indicates negative said second adder/subtracter means executes subtraction of said first input from said second input; and
- second shifter means coupled to an output of said second adder/subtracter means for writing a halved value, Y.sub.k-1 =(Y.sub.k +a.sub.k .times.X.sub.k)/2, of said output of said second adder/subtracter means to said second register means of a succeeding stage;
- whereby said first adder/subtracter means of the last stage of pseudo-multiplication processing unit outputs a value corresponding to cos .theta. and said second adder/subtracter means of the last stage of pseudo-multiplication processing unit outputs a value corresponding to sin .theta..
- 4. A trigonometric function arithmetic processor claimed in claim 3, wherein said multiplication means is composed of a shifter coupled to receive said content Vm of said first register means for outputting a shifter value as said product Vm/K.
Priority Claims (2)
Number |
Date |
Country |
Kind |
62-164460 |
Jun 1987 |
JPX |
|
62-234195 |
Sep 1987 |
JPX |
|
Parent Case Info
This application is a continuation of application Ser. No. 213,869, filed June 30, 1988, now abandoned.
US Referenced Citations (1)
Number |
Name |
Date |
Kind |
4077063 |
Lind |
Feb 1978 |
|
Foreign Referenced Citations (2)
Number |
Date |
Country |
54-104249 |
Aug 1979 |
JPX |
1331410 |
Sep 1973 |
GBX |
Continuations (1)
|
Number |
Date |
Country |
Parent |
213869 |
Jun 1988 |
|