IP Library Granted Patent US 8,407,456
Granted Patent B2
US 8,407,456 · App. 12/375,203 · Granted Mar 26, 2013

Method and instruction set including register shifts and rotates for data processing

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,407,456
App. No.
12/375,203
Granted
Mar 26, 2013
Kind
B2
Abstract

A method includes identifying a first register with M bits and a second register with N bits. The process also includes shifting K bits, where K<=N, from the second register into the first register. The shifting operation executes a left shift operation including reading bits K . . . N−1 from the first register, writing bits K . . . N−1 into bit positions O . . . N−K−1 of the first register, reading K bits from the second register, and writing K bits from second register into bit positions N−K . . . N−1 of first register, or a right shift operation including reading bits O . . . N−K−1 from the first register, writing bits O . . . N−K−1 into bit position K . . . N−1 of the first register, reading the K bits from the second register, and writing K bits from second register into bit positions O . . . K−1 of first register.

Claims (65)

1. A processing method for rotating elements of a pair of registers, comprising:

identifying at least one first register with M bits, the first register being a vector register;

identifying at least one second register with N bits, the second register being a scalar register;

shifting K bits, where K is less than N, from the second register into the first register, wherein the K bits are shifted according to at least one of:

(1) executing a left shift comprising:

reading N−K bits starting at bit position K of the first register, comprising selected contents of the first register,

writing the bits read into bit positions of the first register starting at bit position 0 ,

reading the K bits from the second register, and

writing the K bits read from the second register into bit positions of the first register starting at bit position N−K, or

(2) executing a right shift comprising:

reading N−K bits starting at bit position 0 of the first register, comprising selected contents of the first register,

writing the bits read into bit positions of the first register starting at bit position K,

reading the K bits from the second register, and

writing the K bits read from the second register into bit positions of the first register starting at bit position 0 .

2. The method of claim 1 , wherein the shifting further comprises:

setting the contents of the second register to 0 after writing the K bits from the second register into the first register.

3. The method of claim 1 , wherein the K bits comprise 2 b bits.

4. The method of claim 3 , wherein b is 3, 4, 5, or 6.

5. The method of claim 4 , wherein the K bits are read from different positions in the second register according to a predetermined function.

6. The method of claim 5 , wherein a value of K also is determined by the predetermined function.

7. The method of claim 1 , wherein only one of the left shift or the right shift is executed.

8. The method of claim 1 , wherein the second register is a scalar accumulator register.

9. A processing apparatus, comprising:

a first register with M bits, the first register being a vector register;

a second register with N bits, the second register being a scalar register, wherein the processing apparatus is configured to shift K bits, where K is less than N, from the second register into the first register, wherein the K bits are shifted according to at least one of:

(1) executing a left shift comprising:

reading N−K bits starting at bit position K of the first register, comprising selected contents of the first register,

writing the bits read into bit positions of the first register starting at bit position 0 ,

reading the K bits from the second register, and

writing the K bits read from the second register into bit positions of the first register starting at bit position N−K, or

(2) executing a right shift comprising:

reading N−K bits starting at bit position 0 of the first register, comprising selected contents of the first register,

writing the bits read into bit positions of the first register starting at bit position K,

reading the K bits from the second register, and

writing the K bits read from the second register into bit positions of the first register starting at bit position 0 .

10. The apparatus of claim 9 , wherein the shifting further comprises:

setting the contents of the second register to 0 after writing the K bits from the second register into the first register.

11. The apparatus of claim 9 , wherein the K bits comprise 2 b bits.

12. The apparatus of claim 11 , wherein b is 3, 4, 5, or 6.

13. The apparatus of claim 12 , wherein the K bits are read from different positions in the second register according to a predetermined function.

14. The apparatus of claim 13 , wherein a value of K also is determined by the predetermined function.

15. The apparatus of claim 9 , wherein only one of the left shift or the right shift is executed.

16. The apparatus of claim 9 , wherein the second register is a scalar accumulator register.

17. A processing apparatus, comprising:

means for identifying at least one first register with M bits, the first register being a vector register;

means for identifying at least one second register with N bits, the second register being a scalar register; and

means for shifting K bits, where K is less than N, from the second register into the first register, wherein the K bits are shifted according to at least one of:

(1) executing a left shift comprising:

reading N−K bits starting at bit position K of the first register, comprising selected contents of the first register,

writing the bits read into bit positions of the first register starting at bit position 0 ,

reading the K bits from the second register, and

writing the K bits read from the second register into bit positions of the first register starting at bit position N−K, or

(2) executing a right shift comprising:

reading N−K bits starting at bit position 0 of the first register, comprising selected contents of the first register,

writing the bits read into bit positions of the first register starting at bit position K,

reading the K bits from the second register, and

writing the K bits read from the second register into bit positions of the first register starting at bit position 0 .

18. The apparatus of claim 17 , wherein the means for shifting further comprises:

setting the contents of the second register to 0 after writing the K bits from the second register into the first register.

19. The apparatus of claim 17 , wherein the K bits comprise 2 b bits.

20. The apparatus of claim 19 , wherein b is 3, 4, 5, or 6.

21. The apparatus of claim 20 , wherein the K bits are read from different positions in the second register according to a predetermined function.

22. The apparatus of claim 21 , wherein a value of K also is determined by the predetermined function.

23. The apparatus of claim 22 , wherein only one of the left shift or the right shift is executed.

24. The apparatus of claim 17 , wherein the second register is a scalar accumulator register.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2012
From: ASPEN ACQUISITION CORPORATION
To: QUALCOMM INCORPORATED
Reel/Frame 029388/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2010
From: SANDBRIDGE TECHNOLOGIES, INC.
To: ASPEN ACQUISITION CORPORATION
Reel/Frame 025094/0793 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2009
From: MOUDGILL, MAYAN
To: SANDBRIDGE TECHNOLOGIES INC.
Reel/Frame 022527/0067 →