Claims
- 1. In an instruction set architecture, an instruction for performing partial bitwise permutations, the instruction being part of the instruction set architecture and including:
an opcode identifying the instruction as a partial permutation instruction; and a permutation operation specification including:
a destination specifier identifying a destination register; a partial value source specifier; a destination subset specifier identifying one or more destination bits of the destination register; and a control specifier identifying a source for each of the one or more destination bits identified by the destination subset specifier; wherein the instruction is processed by performing a partial bitwise permutation defined by the permutation operation specification.
- 2. The instruction of claim 1 wherein the destination specifier implicitly identifies the destination register.
- 3. The instruction of claim 2 wherein the destination register comprises a multiply unit accumulator.
- 4. The instruction of claim 1 wherein the destination specifier explicitly specifies a general-purpose register.
- 5. The instruction of claim 1 wherein the partial value source specifier implicitly identifies a partial value source register.
- 6. The instruction of claim 5 wherein the partial value source register comprises a multiply unit accumulator.
- 7. The instruction of claim 1 wherein the partial value source specifier explicitly specifies a general-purpose register.
- 8. The instruction of claim 1 wherein the destination specifier and the partial value source specifier each identify the same register.
- 9. The instruction of claim 8 wherein the identified register comprises a general-purpose register.
- 10. The instruction of claim 8 wherein the identified register comprises a multiply unit accumulator.
- 11. The instruction of claim 1 wherein the destination subset specifier identifies a contiguous block of bits within the destination register.
- 12. The instruction of claim 11 wherein the contiguous block of bits includes the least significant bit of the destination register.
- 13. The instruction of claim 12 wherein the contiguous block of bits includes 12 or fewer bits.
- 14. The instruction of claim 1 wherein the control subset specifier includes one or more source bit identifiers.
- 15. The instruction of claim 14 where the control subset specifier further includes:
a mask selecting bits to receive permutation data; and a default bit identifying a default value to be assigned to bits not selected by the mask to receive permutation data.
- 16. The instruction of claim 14 wherein each of the one or more source bit identifiers is a field within the instruction.
- 17. The instruction of claim 14 wherein each of the one or more source bit identifiers are stored in a control register, the control register identified by the control specifier.
- 18. The instruction of claim 1 wherein the instruction set comprises a RISC instruction set.
- 19. A method for performing partial bitwise permutations using an instruction, the instruction including:
fetching an instruction to perform an operation from a data store; reading one or more registers; performing the operation specified by the instruction, the instruction including:
an opcode identifying the instruction as a partial permutation instruction; and a permutation operation specification including:
a destination specifier identifying a destination register; a previous partial value source specifier; a destination subset specifier identifying one or more destination bits of the destination register; and a control specifier identifying a source for each of the one or more destination bits identified by the destination subset specifier; wherein the instruction is processed by performing a partial bitwise permutation defined by the permutation operation specification.
- 20. The method of claim 19 wherein the destination specifier implicitly identifies the destination register.
- 21. The method of claim 20 wherein the destination register comprises a multiply unit accumulator.
- 22. The method of claim 19 wherein the destination specifier explicitly specifies a general-purpose register.
- 23. The method of claim 19 wherein the previous partial value source specifier implicitly identifies a partial value source register.
- 24. The method of claim 23 wherein the partial value source register comprises a multiply unit accumulator.
- 25. The method of claim 19 wherein the previous partial value source specifier explicitly specifies a general-purpose register.
- 26. The method of claim 19 wherein the destination specifier and the previous partial value source specifier identify each identify the same register.
- 27. The method of claim 26 wherein the identified register comprises a general-purpose register.
- 28. The method of claim 26 wherein the identified register comprises a multiply unit accumulator.
- 29. The method of claim 19 wherein the destination subset specifier identifies a contiguous block of bits within the destination register.
- 30. The method of claim 29 wherein the contiguous block of bits includes the least significant bit of the destination register.
- 31. The method of claim 30 wherein the contiguous block of bits includes 12 or fewer bits.
- 32. The method of claim 19 wherein the control subset specifier includes one or more source bit identifiers.
- 33. The method of claim 32 where the control subset specifier further includes:
a mask selecting bits to receive permutation data; and a default bit identifying a default value to be assigned to bits not selected by the mask to receive permutation data.
- 34. The method of claim 32 wherein each of the one or more source bit identifiers is a field within the instruction.
- 35. The method of claim 32 wherein each of the one or more source bit identifiers are stored in a control register, the control register identified by the control specifier.
- 36. The method of claim 19 wherein the instruction is part of an instruction set, and the instruction set comprises a RISC instruction set.
- 37. A computer-readable medium comprising a microprocessor core embodied in software, the microprocessor core including an instruction for performing partial bitwise permutations, the instruction including:
an opcode identifying the instruction as a partial permutation instruction; and a permutation operation specification including:
a destination specifier identifying a destination register; a previous partial value source specifier; a destination subset specifier identifying one or more destination bits of the destination register; and a control specifier identifying a source for each of the one or more destination bits identified by the destination subset specifier; wherein the instruction is processed by performing a partial bitwise permutation defined by the permutation operation specification.
- 38. The computer-readable medium of claim 37 wherein the destination specifier implicitly identifies the destination register.
- 39. The computer-readable medium of claim 38 wherein the destination register comprises a multiply unit accumulator.
- 40. The computer-readable medium of claim 37 wherein the destination specifier explicitly specifies a general-purpose register.
- 41. The computer-readable medium of claim 37 wherein the previous partial value source specifier implicitly identifies a partial value source register.
- 42. The computer-readable medium of claim 41 wherein the partial value source register is a multiply unit accumulator.
- 43. The computer-readable medium of claim 37 wherein the previous partial value source specifier explicitly specifies a general-purpose register.
- 44. The computer-readable medium of claim 37 wherein the destination specifier and the previous partial value source specifier identify each identify the same register.
- 45. The computer-readable medium of claim 44 wherein the identified register comprises a general-purpose register.
- 46. The computer-readable medium of claim 44 wherein the identified register comprises a multiply unit accumulator.
- 47. The computer-readable medium of claim 37 wherein the destination subset specifier identifies a contiguous block of bits within the destination register.
- 48. The computer-readable medium of claim 47 wherein the contiguous block of bits includes the least significant bit of the destination register.
- 49. The computer-readable medium of claim 48 wherein the contiguous block of bits includes 12 or fewer bits.
- 50. The computer-readable medium of claim 37 wherein the control subset specifier includes one or more source bit identifiers.
- 51. The computer-readable medium of claim 50 where the control subset specifier further includes:
a mask selecting bits to receive permutation data; and a default bit identifying a default value to be assigned to bits not selected by the mask to receive permutation data.
- 52. The computer-readable medium of claim 50 wherein each of the one or more source bit identifiers is a field within the instruction.
- 53. The computer-readable medium of claim 50 wherein each of the one or more source bit identifiers are stored in a control register, the control register identified by the control specifier.
- 54. The computer-readable medium of claim 37 wherein the instruction is part of an instruction set, and the instruction set comprises a RISC instruction set.
- 55. In a microprocessor containing a first general purpose register, a second general purpose register and an extended-precision accumulator, a method for performing a partial permutation comprising:
shifting contents of the extended-precision accumulator to produce a predetermined number of open bit positions; selecting bits for filling the open bit positions with information contained in the first general purpose register; and filling the open bit positions with bits retrieved from the second general purpose register, wherein the shifting, selecting and filling occur in response to a single instruction.
- 56. The method of claim 55 wherein the single instruction specifies the first and second general purpose registers.
- 57. The method of claim 55 wherein the predetermined number of open bit positions are six least significant bits of the extended-precision accumulator.
- 58. In a microprocessor, an instruction for performing partial bitwise permutations, the instruction being part of the instruction set architecture and including:
an opcode identifying the instruction as a partial permutation instruction; and a permutation operation specification including:
a destination specifier identifying a destination register; a previous partial value source specifier; a destination subset specifier identifying one or more destination bits of the destination register; and a control specifier identifying a source for each of the one or more destination bits identified by the destination subset specifier; wherein the instruction is processed by performing a partial bitwise permutation defined by the permutation operation specification.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to the following co-pending applications, each of which is being filed concurrently with this application and is incorporated by reference: (1) U.S. application Ser. No. ______, titled “Configurable Instruction Sequence Generation”; (2) U.S. application Ser. No. ______, titled “Binary Polynomial Multiplier”; (3) U.S. application Ser. No. ______, titled “Polynomial Arithmetic Operations”; and (4) U.S. application Ser. No. ______, titled “Extended Precision Accumulator”.