Claims
- 1. A method of performing a data expansion operation on a plurality of input data objects to generate expanded output data objects, the method comprising:
receiving and decoding a data manipulation instruction defining a data expansion operation, a portion of the data manipulation instruction indicating an expansion operation from a number of predetermined types of data manipulation operations; responsive to the indication of an expansion operation generating one or more expansion objects, said one or more expansion objects being for use in extending an input data object; and manipulating said input data objects and said expansion objects according to control information programmed to produce a set of expanded output data objects.
- 2. A method as in claim 1, 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 output data set and the value of each said control digit indicating a position of an input data object or an expansion object.
- 3. A method as in claim 2, wherein the control information is programmed such that a plurality of control digits specifies the same input object or expansion object.
- 4. A method as in claim 2, wherein the control information is programmed such that one or more of said input objects or expansion objects is not included in said set of output data objects.
- 5. A method as in claim 1, wherein the data manipulation instruction defines a sign expansion operation and the step of generating said one or more expansion objects involves generating at least one sign object associated with an input data object.
- 6. A method as in claim 5, wherein the control information is programmed such that consecutive control digits respectively specify an input data object position and an associated sign object position.
- 7. A method as in claim 1, wherein the data manipulation instruction defines a zero expansion operation and the step of generating said one or more expansion objects involves generating at least one zero object.
- 8. A method as in claim 7, wherein the control information is programmed such that consecutive control digits thereof respectively specify an input data object position and an associated zero object position.
- 9. A method as in any preceding claim, wherein the instruction comprises a field designating one of a plurality of devices for holding said control information and a field indicating where in the designated device the control information is held.
- 10. A method as in claim 9, wherein pre-programmed control information is held in one or more of said designated devices.
- 11. A method as in claim 8, wherein a plurality of pre-programmed control words are held in a table on the same chip as the or each device performing the data manipulation operation.
- 12. A method as in claim 9, wherein control information is held in one or more registers which is configurable by a user.
- 13. A data manipulation instruction comprising an opcode field defining an expansion operation from a number of predetermined data manipulations including data manipulations without expansion.
- 14. A method as in claim 1, wherein input and output data objects are transferred between register in a computer system comprising a plurality of execution channels, and wherein a portion of said data manipulation instructions limits the register access width such that remaining register access width is available for other operations running contemporaneously.
- 15. A method as in claim 1, wherein an input data object selected from one or more of a byte, half word, word or long is expanded into a larger output data object selected from one or more of a half word, word, long or double long.
- 16. A device for performing a data expansion operation on a plurality of input data objects to generate expanded output data objects, the device comprising:
a decoder for receiving and decoding a data manipulation instruction defining a data expansion operation, a portion of the data manipulation instruction indicating an expansion operation from a number of predetermined types of data manipulation operations; an expansion object generator operable to generate one or more expansion objects responsive to the indication of an expansion operation, each expansion object being available for use in extending an input data object; and a manipulation stage operable to manipulate said input data objects and said expansion objects according to control information programmed to produce a set of expanded output data objects.
- 17. 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 permute operation without data expansion, generating expansion objects in dependence on said determination indicating a data expansion operation is required, and controlling manipulation of said input data objects and said expansion objects to provide expanded output objects.
- 18. A method of manipulating a plurality of input data objects to generate an output data set comprising a plurality of output data objects according to control information, the control information controlling relative positions of respective ones of the output data objects in the output data set, the method comprising:
receiving and decoding a data manipulation instruction defining a data manipulation operation, the data manipulation instruction comprising a field designating one of a plurality of devices for holding said control information and a field specifying the location of the control information in the designated device; and manipulating data according to the control information from the specified location in the designated device to produce objects of an output data set; and outputting the output data set.
- 19. A data manipulation instruction comprising an opcode field defining a data manipulation operation and designating one of a plurality of devices holding said control information and a control field indicating where in the designated device the control information is held.
- 20. A method of manipulating a plurality of input data objects to generate an output data set comprising a plurality of output data objects according to control information, the control information controlling relative positions of respective ones of the output data objects in the output data set, the method comprising:
receiving and decoding a data manipulation instruction defining a data manipulation operation, the data manipulation instruction indicating the type of manipulation to be performed from a number of predetermined types of data manipulation operation; performing, in dependence on the type of data manipulation operation indicated in the instruction, a data preparation step to generate a set of prepared data objects including said input data objects; manipulating the prepared data objects according to control information to produce output data objects of an output data set; and outputting the output data set.
- 21. A method as in claim 20, wherein the data preparation step comprises generating new data objects for a data expansion operation.
- 22. A method as in claim 20, wherein the manipulation technique employing the control information to determine the position of objects in the output data object set is identical irrespective of whether the overall manipulation is permute without data expansion or data expansion operations.
- 23. A method as in claim 20, wherein the manipulation technique employing the control information to determine the position of objects in the output data object set is identical irrespective of whether the overall manipulation is a permute without data expansion, a sign expansion or a zero expansion operation.
Parent Case Info
[0001] This application claims priority to Provisional U.S. Patent Application No. 60/383,129, filed May 28, 2002, which is incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60383129 |
May 2002 |
US |