IP Library › Granted Patent US 8,700,688
Granted Patent B2
US 8,700,688 · App. 12/379,447 · Granted Apr 15, 2014

Polynomial data processing operation

Inventors: Dominic H Symes (Cambridge, GB); Daniel Kershaw (Cambridge, GB); Martinus C Wezelenburg (Leuven-Heverlee, BE)
Assignee: U-Blox AG
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,700,688
App. No.
12/379,447
Granted
Apr 15, 2014
Kind
B2
Abstract

A data processing system 2 includes an instruction decoder 22 responsive to polynomial divide instructions DIVL.P N to generate control signals that control processing circuitry 26 to perform a polynomial division operation. The denominator polynomial is represented by a denominator value stored within a register with an assumption that the highest degree term of the polynomial always has a coefficient of “1” such that this coefficient need not be stored within the register storing the denominator value and accordingly the denominator polynomial may have a degree one higher than would be possible with the bit space within the register storing the denominator value alone. The polynomial divide instruction returns a quotient value and a remainder value respectively representing the quotient polynomial and the remainder polynomial.

Claims (47)

1. Apparatus for processing data comprising:

an instruction decoder responsive to a program instruction to generate one or more control signals;

a register bank having a plurality of registers; and

processing circuitry coupled to said instruction decoder and said register bank and responsive to said one or more control signals to perform a data processing operation corresponding to said program instruction upon one or more data values stored within said register bank; wherein

said instruction decoder is responsive to a polynomial divide instruction as a single instruction to generate one or more control signals that control said processing circuitry to generate as an output stored in said plurality of registers at least a quotient value representing a quotient polynomial for a polynomial division over a field of two elements of a numerator polynomial by a denominator polynomial, said denominator polynomial being an N degree polynomial given by the sum of c i x i for N≧i≧0, where c (N-1) to c 0 are respective bits stored in a register of said register bank and c N =1 and is not stored within said register, and the degree N of the denominator polynomial is greater than one.

2. Apparatus for processing data comprising:

an instruction decoder responsive to a program instruction to generate one or more control signals;

a register bank having a plurality of registers; and

processing circuitry coupled to said instruction decoder and said register bank and responsive to said one or more control signals to perform a data processing operation corresponding to said program instruction upon one or more data values stored within said register bank; wherein

said instruction decoder is responsive to a polynomial divide instruction as a single instruction to generate one or more control signals that control said processing circuitry to generate as an output stored in said plurality of registers at least a quotient value representing a quotient polynomial for a polynomial division over a field of two elements of a numerator polynomial by a denominator polynomial, said denominator polynomial being an N degree polynomial given by the sum of c i x i for where N≧i≧0, where c (N-1) to c 0 are respective bits stored in a register of said register bank and c N =1 and is not stored within said register, and said register is an N-bit register.

3. Apparatus as claimed in claim 1 , wherein said register bank comprises a plurality of N-bit registers.

4. Apparatus as claimed in claim 1 , wherein a polynomial is represented by one of:

(i) a value within an M-bit register with a coefficient c k for term x k being bit k of said M-bit register, where (M−1)≧k≧0; and

(ii) a value within an M-bit register with a coefficient c k for term x k being bit (M−1)−k of said M-bit register, where (M−1)≧k≧0.

5. Apparatus as claimed in claim 3 , wherein said numerator polynomial is represented by a 2N-bit numerator value stored within two of said plurality of N-bit registers.

6. Apparatus as claimed in claim 1 , wherein said numerator polynomial is represented by a 2N-bit numerator value stored within a 2N-bit register of said plurality of registers.

7. Apparatus as claimed in claim 1 , wherein said processing circuitry is controlled by said control signals generated by said instruction decoder in response to said polynomial divide instruction to generate a remainder value representing a remainder polynomial resulting from polynomial division of said numerator polynomial by said denominator polynomial.

8. Apparatus as claimed in claim 7 , wherein said remainder value is an N-bit remainder value stored within an N-bit register of said plurality of registers.

9. Apparatus as claimed in claim 1 , wherein said quotient value is an N-bit quotient value stored within an N-bit register of said plurality of registers.

10. Apparatus as claimed in claim 1 , wherein said polynomial divide instruction is part of scrambler program code executed by said apparatus to scramble a signal to be transmitted using generated quotient values.

11. Apparatus as claimed in claim 1 , wherein said register bank comprises a plurality of general purpose scalar registers used by program instructions other than said polynomial divide instruction.

12. Apparatus as claimed in claim 1 , wherein said instruction decoder is responsive to a polynomial multiply instruction to generate one or more control signals that control said processing circuitry to generate at least a product value representing a product polynomial for a polynomial multiplication over a field of two elements of a first polynomial by a second polynomial.

13. Apparatus as claimed in claim 1 , wherein said polynomial divide instruction is a vector instruction with said denominator value being a scalar value and said quotient value and a numerator value representing said numerator polynomial being vector values.

14. A method of processing data comprising the steps of:

decoding a program instruction to generate one or more control signals;

in response to said one or more control signals, performing a data processing operation corresponding to said program instruction upon one or more data values stored within a register bank having a plurality of registers; wherein

said decoding is responsive to a polynomial divide instruction as a single instruction to generate one or more control signals that control generation as an output stored in said plurality of registers of at least a quotient value representing a quotient polynomial for a polynomial division over a field of two elements of a numerator polynomial by a denominator polynomial, said denominator polynomial being an N degree polynomial given by the sum of c i x i for N≧i≧0, where c (N-1) to c 0 are respective bits stored in a register of said register bank and c N =1 and is not stored within said register, and the degree N of the denominator polynomial is greater than one.

15. A method of processing data comprising the steps of:

decoding a program instruction to generate one or more control signals;

in response to said one or more control signals, performing a data processing operation corresponding to said program instruction u on one or more data values stored within a register bank having a plurality of registers; wherein

said decoding is responsive to a polynomial divide instruction as a single instruction to generate one or more control signals that control generation as an output stored in said plurality of registers of at least a quotient value representing a quotient polynomial for a polynomial division over a field of two elements of a numerator polynomial by a denominator polynomial, said denominator polynomial being an N degree polynomial given by the sum of c i x i for N≧i≧0, where c (N-1) to c 0 are respective bits stored in a register of said register bank and c N =1 and is not stored within said register, and said register is an N-bit register.

16. A method as claimed in claim 14 , wherein said register bank comprises a plurality of N-bit registers.

17. A method as claimed in claim 14 , wherein a polynomial is represented by one of:

(i) a value within an M-bit register with a coefficient c k for term x k being bit k of said M-bit register, where (M−1)≧k≧0; and

(ii) a value within an M-bit register with a coefficient c k for term x k being bit (M−1)−k of said M-bit register, where (M−1)≧k≧0.

18. A method as claimed in claim 16 , wherein said numerator polynomial is represented by a 2N-bit numerator value stored within two of said plurality of N-bit registers.

19. A method as claimed in claim 14 , wherein said numerator polynomial is represented by a 2N-bit numerator value stored within a 2N-bit register of said plurality of registers.

20. A method as claimed in claim 14 , wherein said control signals generated by decoding said polynomial divide instruction control generation of a remainder value representing a remainder polynomial resulting from polynomial division of said numerator polynomial by said denominator polynomial.

21. A method as claimed in claim 20 , wherein said remainder value is an N-bit remainder value stored within an N-bit register of said plurality of registers.

22. A method as claimed in claim 14 , wherein said quotient value is an N-bit quotient value stored within an N-bit register of said plurality of registers.

23. A method as claimed in claim 14 , wherein said polynomial divide instruction is part of scrambler program code executed to scramble a signal to be transmitted using generated quotient values.

24. A method as claimed in claim 14 , wherein said register bank comprises a plurality of general purpose scalar registers used by program instructions other than said polynomial divide instruction.

25. A method as claimed in claim 14 , wherein said decoding is responsive to a polynomial multiply instruction to generate one or more control signals that control generation of at least a product value representing a product polynomial for a polynomial multiplication over a field of two elements of a first polynomial by a second polynomial.

26. A method as claimed in claim 14 , wherein said polynomial divide instruction is a vector instruction with said denominator value being a scalar value and said quotient value and a numerator value representing said numerator polynomial being vector values.

27. A computer program product comprising a computer program storage medium storing a computer program for controlling an apparatus for processing data in accordance with a method as claimed in claim 14 .

28. Apparatus as claimed in claim 1 , wherein the degree N of the denominator polynomial is one of 8, 16, and 32.

29. A method as claimed in claim 14 , wherein the degree N of the denominator polynomial is one of 8, 16, and 32.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2013
From: ARM LIMITED
To: U-BLOX AG
Reel/Frame 031162/0919 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2009
From: SYMES, DOMINIC HUGO; KERSHAW, DANIEL; WEZELENBURG, MARTINUS CORNELIS
To: ARM LIMITED
Reel/Frame 022353/0921 →
Priority Claims (1)
GB 0805491.8 · Mar 26, 2008 · national
Continuity (1)
Related Publication 20090248780A1 · Oct 1, 2009