IP Library Granted Patent US 9,134,953
Granted Patent B2
US 9,134,953 · App. 13/647,861 · Granted Sep 15, 2015

Microprocessor Shifter Circuits Utilizing Butterfly and Inverse Butterfly Routing Circuits, and Control Circuits Therefor

Inventors: Ruby B. Lee (Princeton, NJ); Yedidya Hilewitz (Sharon, MA)
Assignee: Teleputers, LLC
G06F5/01G06F7/762
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 9,134,953
App. No.
13/647,861
Granted
Sep 15, 2015
Kind
B2
Abstract

Microprocessor shifter circuits utilizing butterfly and inverse butterfly circuits, and control circuits therefor, are provided. The same shifter circuits can also perform complex bit manipulations at high speeds, including butterfly and inverse butterfly operations, parallel extract and deposit operations, group operations, mix operations, permutation operations, as well as instructions executed by existing microprocessors, including shift right, shift left, rotate, extract, deposit and multimedia mix operations. The shifter circuits can be provided in various combinations to provide microprocessor functional units which perform a plurality of bit manipulation operations.

Claims (53)

1. A shifter circuit for a processor, comprising:

means for obtaining a word in a processor;

an inverse butterfly circuit connected to said means for obtaining the word, the inverse butterfly circuit including a plurality of circuit stages, each of the circuit stages including a plurality of multiplexers;

a control circuit in communication with the inverse butterfly circuit for selectively controlling the plurality of multiplexers of the inverse butterfly circuit to perform a bit manipulation operation on the word to produce a processed word, the control circuit configured to cause the plurality of multiplexers of the inverse butterfly circuit to perform at least one of a shift operation or a rotate operation on bits of the word; and

means for supplying the processed word to the processor.

2. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform a logical shift right, a signed shift right, or a shift left instruction.

3. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform a rotate left or a rotate right instruction.

4. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform at least one of an extract operation or a deposit operation.

5. The shifter circuit of claim 4 , wherein the control circuit causes the inverse butterfly circuit to perform a multimedia mix operation.

6. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform a multimedia mix operation.

7. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform a parallel extract operation.

8. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform a group operation on bits of the word.

9. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform a permutation operation on bits of the word.

10. The shifter circuit of claim 1 , wherein the control circuit causes the inverse butterfly circuit to perform an inverse butterfly operation.

11. The shifter circuit of claim 1 , wherein the control circuit further comprises a decoder.

12. The shifter circuit of claim 11 , wherein the decoder further comprises a parallel prefix counter and a plurality of left rotate and complement modules.

13. The shifter circuit of claim 1 , wherein the plurality of stages of the inverse butterfly circuit comprises a first stage having first pairs of bits which are spaced 1 bit apart from each other, each of the first pairs being provided as inputs to a switch.

14. The shifter circuit of claim 13 , wherein the plurality of stages of the inverse butterfly circuit comprises a second stage having second pairs of bits which are spaced 2 bits apart from each other, each of which second pairs being provided as inputs to a switch.

15. The shifter circuit of claim 13 , wherein the plurality of stages of the inverse butterfly circuit comprises a log(n) stage having third pairs of bits which are spaced n/2 bits apart from each other.

16. The shifter circuit of claim 1 , wherein the control circuit generates control bits for the inverse butterfly circuit using a recursive algorithm.

17. The shifter circuit of claim 1 , further comprising a masked merge unit in communication with the control circuit for generating merge bits.

18. The shifter circuit of claim 1 , wherein the control unit obtains control bits for controlling the shifter from one or more registers of the processor.

19. The shifter circuit of claim 1 , further comprising a butterfly circuit in communication with the control circuit.

20. The shifter circuit of claim 1 , further comprising a second inverse butterfly circuit in communication with the control circuit for performing a group operation.

21. The shifter circuit of claim 1 , wherein the plurality of stages of the inverse butterfly circuit comprises a first stage having first pairs of inputs which are spaced 1 unit apart from each other.

22. The shifter circuit of claim 21 , wherein the plurality of stages of the inverse butterfly circuit comprises a second stage having second pairs of inputs which are spaced 2 units apart from each other.

23. The shifter circuit of claim 22 , wherein the plurality of stages of the inverse butterfly circuit comprises a log(n) stage having third pairs of inputs which are spaced n/2 units apart from each other.

24. A shifter circuit for a processor, comprising:

means for obtaining a word in a processor;

a butterfly circuit connected to said means for obtaining the word, the butterfly circuit including a plurality of circuit stages, each of the circuit stages including a plurality of multiplexers;

a control circuit in communication with the butterfly circuit for selectively controlling the plurality of multiplexers of the butterfly circuit to perform a bit manipulation operation on the word to produce a processed word, the control circuit configured to cause the plurality of multiplexers of the butterfly circuit to perform at least one of a shift operation or a rotate operation on bits of the word; and

means for supplying the processed word to the processor.

25. The shifter circuit of claim 24 , wherein the control circuit causes the butterfly circuit to perform a logical shift right, a signed shift right, or a shift left instruction.

26. The shifter circuit of claim 24 , wherein the control circuit causes the butterfly circuit to perform at least one of a rotate left or a rotate right instruction.

27. The shifter circuit of claim 24 , wherein the control circuit causes the butterfly circuit to perform an extract or a deposit operation.

28. The shifter circuit of claim 27 , wherein the control circuit causes the butterfly circuit to perform a multimedia mix operation.

29. The shifter circuit of claim 24 , wherein the control circuit causes the butterfly circuit to perform a multimedia mix operation.

30. The shifter circuit of claim 24 , wherein the control circuit causes the butterfly circuit to perform a parallel deposit operation.

31. The shifter circuit of claim 24 , wherein the control circuit causes the butterfly circuit to perform a permutation operation on bits of the word.

32. The shifter circuit of claim 24 , wherein the control circuit causes the butterfly circuit to perform a butterfly operation.

33. The shifter circuit of claim 24 , wherein the control circuit further comprises a decoder.

34. The shifter circuit of claim 33 , wherein the decoder further comprises a parallel prefix counter and a plurality of left rotate and complement modules.

35. The shifter circuit of claim 24 , wherein the plurality of stages of the butterfly circuit comprises a first stage having first pairs of bits which are spaced n/2 bits apart from each other, each of the first pairs being provided as inputs to a switch.

36. The shifter circuit of claim 35 , wherein the plurality of stages of the butterfly circuit comprises a second stage having second pairs of bits which are spaced n/4 bits apart from each other, each of which second pairs being provided as inputs to a switch.

37. The shifter circuit of claim 36 , wherein the plurality of stages of the butterfly circuit comprises a log(n) stage having third pairs of bits which are spaced 1 bit apart from each other.

38. The shifter circuit of claim 24 , wherein the control circuit generates control bits for the butterfly circuit using a recursive algorithm.

39. The shifter circuit of claim 24 , further comprising a masked merge unit in communication with the control circuit for generating merge bits.

40. The shifter circuit of claim 24 , wherein the control circuit obtains control bits for controlling the shifter from one or more registers of the processor.

41. The shifter circuit of claim 24 , further comprising an inverse butterfly circuit in communication with the control circuit.

42. The shifter circuit of claim 41 , further comprising a second inverse butterfly circuit in communication with the control circuit for performing a group operation.

43. The shifter circuit of claim 24 , wherein the plurality of stages of the butterfly circuit comprises a first stage having first pairs of inputs which are spaced 1 unit apart from each other.

44. The shifter circuit of claim 43 , wherein the plurality of stages of the butterfly circuit comprises a second stage having second pairs of inputs which are spaced 2 units apart from each other.

45. The shifter circuit of claim 44 , wherein the plurality of stages of the butterfly circuit comprises a log(n) stage having third pairs of inputs which are spaced n/2 units apart from each other.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 054738 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 31, 2020
From: TELEPUTERS, LLC
To: CORESECURE TECHNOLOGIES, LLC
Reel/Frame 054883/0340 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2020
From: TELEPUTERS, LLC
To: CORESECURE TECHNOLOGIES, INC.
Reel/Frame 054738/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2015
From: HILEWITZ, YEDIDYA
To: TELEPUTERS, LLC
Reel/Frame 036274/0855 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2015
From: LEE, RUBY B.
To: TELEPUTERS, LLC
Reel/Frame 036214/0353 →
RELEASE TO INVENTORS Recorded Jul 15, 2015
From: PRINCETON UNIVERSITY
To: LEE, RUBY B.; HILEWITZ, YEDIDYA
Reel/Frame 036105/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2015
From: LEE, RUBY B.; HILEWITZ, YEDIDYA
To: THE TRUSTEES OF PRINCETON UNIVERSITY
Reel/Frame 035477/0734 →
Continuity (3)
Continuation 12126616 · May 23, 2008
Provisional Application 60931493 · May 23, 2007
Related Publication 20130103730A1 · Apr 25, 2013