Claims
- 1. A method of performing a data expansion operation on a data object, the method comprising:
decoding an instruction indicating a data expansion operation; responsive to the indication of the data expansion operations generating an expansion object for use in extending an input data object; and combining an input data object and the expansion object based on control information in the instruction to produce an expanded output data object.
- 2. The method of claim 1, wherein the expanded output data object comprises a set of output data objects,
wherein the control information comprises a sequence of control digits, the position of each control digit in the sequence corresponding to a position in the set of output data objects, and wherein the value of each control digit indicates a position of an input data object or an expansion objection in the set of output data objects.
- 3. The method of claim 2, wherein a plurality of control digits in the control information specifies the same input object or expansion object.
- 4. The method of claim 2, wherein, based on the control information, at least one of the input objects and the expansion objects is not included in the set of output data objects.
- 5. The method of claim 1, wherein the data manipulation instruction defines a sign expansion operation, and the step of generating the one or more expansion object comprises generating at least one sign object associated with the input data object.
- 6. The method of claim 5, wherein consecutive control digits specify an input data object position and an associated sign object position, respectively.
- 7. The method of claim 1, wherein the data manipulation instruction defines a zero expansion operation, and the step of generating the expansion object comprises generating at least one zero object.
- 8. The method of claim 7, wherein the control digits specify an input data object position and an associated zero object position, respectively.
- 9. The method of claim 1, wherein the instruction comprises a field designating one of a plurality of devices for holding the control information and a field indicating where in the designated device the control information is held.
- 10. The method of claim 9, wherein pre-programmed control information is held in at least one of the designated devices.
- 11. The method of claim 8, wherein a plurality of pre-programmed control words are held in a table on the same chip as a device performing the data manipulation operation.
- 12. The method of claim 9, wherein the control information is held in one or more registers configurable by a user.
- 13. The method of claim 1, wherein the input and output data objects are transferred between registers in a computer system comprising a plurality of execution channels, and wherein a portion of the data manipulation instructions limits the register access width such that remaining register access width is available for other contemporaneous operations.
- 14. The method of claim 1, wherein an input data object selected from one or more of a byte, half word, word or long word is expanded into a larger output data object selected from one or more of a half word, word, long or double long word.
- 15. A data manipulation instruction comprising:
an opcode field defining a data manipulation operation without expansion, a source address for input bytes; and a destination code for output bytes, wherein the opcode includes a command to discard some of the input bytes.
- 16. A data manipulation instruction comprising:
an opcode field defining a data manipulation operation without expansion, a source address for input bytes; a destination address for output bytes; and control information for rearranging the input bytes to produce the output bytes in a different sequence.
- 17. A device for performing a data expansion operation on an input data object to generate an expanded output data object, the device comprising:
a decoder for decoding an instruction defining a data expansion operation; an expansion object generator for generating an expansion object based on the instruction for extending the input data object; and a combining stage for producing an expanded output data object from the input data object and the expansion object based on control information in the instruction.
- 18. A method of performing a data expansion operation on a plurality of input data objects, the method comprising:
determining from an instruction whether a data expansion operation is required from a plurality of predetermined data manipulation operations including a permute operation without data expansion; generating an expansion object based on the determination; and combining the input data object and the expansion object to form an expanded output object.
- 19. The method of claim 18, wherein the expanded output data object comprises a set of output data objects,
wherein the control information comprises a sequence of control digits, the position of each control digit in the sequence corresponding to a position in the set of output data objects, and wherein the value of each control digit indicates a position of an input data object or an expansion object in the set of output data objects.
- 20. The method of claim 19, wherein a plurality of control digits in the control information specifies the same input object or expansion object.
- 21. The method of claim 20, wherein, based on the control information, at least one of the input objects and the expansion objects is not included in the set of output data objects.
- 22. The method of claim 18, wherein the data manipulation instruction defines a sign expansion operation, and the step of generating the one or more expansion object comprises generating at least one sign object associated with the input data object.
- 23. The method of claim 22, wherein consecutive control digits specify an input data object position and an associated sign object position, respectively.
- 24. The method of claim 18, wherein the data manipulation instruction defines a zero expansion operation, and the step of generating the expansion object comprises generating at least one zero object.
- 25. The method of claim 24, wherein the control digits specify an input data object position and an associated zero object position, respectively.
- 26. The method of claim 18, wherein the instruction comprises a field designating one of a plurality of devices for holding the control information and a field indicating where in the designated device the control information is held.
- 27. The method of claim 26, wherein control information is held in at least one of the designated devices.
- 28. The method of claim 26, wherein a plurality of pre-programmed control words are held in a table on the same chip as a device performing the data manipulation operation.
- 29. The method of claim 26, wherein the control information is held in one or more registers configurable by a user.
- 30. The method of claim 18, wherein the input and output data objects are transferred between registers in a computer system comprising a plurality of execution channels, and wherein a portion of the data manipulation instructions limits the register access width such that remaining register access width is available for other contemporaneous operations.
- 31. The method of claim 18, wherein one of the input data objects is selected from one or more of a byte, half word, word or long word and is expanded into a larger output data object selected from one or more of a half word, word, long or double long word.
- 32. A method of manipulating an input data object to generate an output data set comprising a plurality of output data objects based on control information, the control information controlling relative positions of the output data objects in the output data set, the method comprising:
decoding an instruction defining a data manipulation operation that identifies a type of manipulation to be performed; generating, based on the instruction, an intermediate data object; combining the intermediate data object and the input data object based on control information to produce output data objects of the output data set; and outputting the output data set.
- 33. The method of claim 32, wherein the data preparation step comprises generating new data objects for a data expansion operation.
- 34. The method of claim 32, wherein the manipulation used to determine the position of objects in the output data object set is identical for both a permute without data expansion and for data expansion operations.
- 35. The method of claim 32, wherein the manipulation used to determine the position of objects in the output data object set is identical for each of a permute without data expansion, a sign expansion and a zero expansion operation.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent application Ser. No. 10/288,592, filed on Nov. 6, 2002, which in turn claims priority to Provisional U.S. patent application No. 60/383,129, filed May 28, 2002, which are both incorporated herein by reference in their entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60383129 |
May 2002 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
10288592 |
Nov 2002 |
US |
Child |
10862463 |
Jun 2004 |
US |