IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0403152
(2003-03-31)
|
등록번호 |
US-7275147
(2007-09-25)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
13 인용 특허 :
10 |
초록
▼
Execution of a single stand-alone instruction manipulates two n bit strings of data to pack data or align the data. Decoding of the single instruction identifies two registers of n bits each and a shift value, preferably as parameters of the instruction. A first and a second subset of data of less t
Execution of a single stand-alone instruction manipulates two n bit strings of data to pack data or align the data. Decoding of the single instruction identifies two registers of n bits each and a shift value, preferably as parameters of the instruction. A first and a second subset of data of less than n bits are selected, by logical shifting, from the two registers, respectively, based solely upon the shift value. Then, the subsets are concatenated, preferably by a logical OR, to obtain an output of n bits. The output may be aligned data or packed data, particularly useful for performing a single operation on multiple sets of the data through parallel processing with a SIMD processor.
대표청구항
▼
What is claimed is: 1. A method of manipulating two n bit strings of data, said method being performed by a computer system executing a stand alone implementation of a single instruction that does not require the support of other instructions, comprising the steps of: decoding the single instructio
What is claimed is: 1. A method of manipulating two n bit strings of data, said method being performed by a computer system executing a stand alone implementation of a single instruction that does not require the support of other instructions, comprising the steps of: decoding the single instruction; identifying two registers of n bits each; identifying a shift value specified by a parameter of the single instruction; loading a first subset of data of less than n bits to one of the two registers specified by the single instruction; loading a second subset of data of less than n bits to the other of the two registers specified by the single instruction; selecting the first subset of data from the one of the two registers based solely upon the shift value; selecting the second subset of data from the other of the two registers based solely upon the shift value; and thereafter concatenating the first subset of data and the second subset of data to obtain an output of manipulated n bits of data; wherein: selecting the first subset comprises logically shifting the bits of data held in the one of the two registers; selecting the second subset comprises logically shifting the bits of data held in the other of the two registers; and, the step of logically shifting simultaneously transfers the content of the two registers into a left barrel shifter and a right barrel shifter, respectively. 2. The method of claim 1, wherein selecting the first subset comprises logically shifting the bits of data held in the one of the two registers by moving the corresponding subset of data toward one end of then bits a number of bit positions and adding an equal number of nulls at the other end of the n bits to obtain a first n bits of shifted data; and selecting the second subset comprises logically shifting the bits of data held in the other of the two registers by moving the corresponding subset of data toward an end of the n bits a number of bit positions and adding an equal number of nulls at the opposite end of the n bits to obtain a second n bits of shifted data. 3. The method of claim 1, wherein said step of concatenating performs a logical OR on the outputs of said steps of selecting. 4. A machine readable medium having stored thereon data representing a single instruction executable by said processor to perform the method of claim 1. 5. The method of claim 1, wherein said steps of identifying are parts of said step of decoding with the shift value and register identities being parameters of the single instruction. 6. The method of claim 1, wherein-said step of logically shifting includes supplying a shift coefficient to each of the left barrel shifter and the right barrel shifter as the shift value and n-the shift value, respectively. 7. The method of claim 6, wherein said supplying includes computing the n-shift value from the shift value by using a two's complement of the shift value. 8. The method of claim 1, wherein said combining provides aligned combined data; and further including performing a single operation on multiple sets of the aligned data through parallel processing with a SIMD processor. 9. The method of claim 1, wherein said computer system comprises a processing unit including a bus and a memory coupled to the processing unit via the bus, wherein the two registers are in the processing unit and coupled to the bus, and wherein the first and second subset of data are loaded to the two registers respectively from the memory by said steps of loading. 10. A computer system having SIMD processing architecture, comprising: a processor; two registers; and a machine readable medium having stored thereon data representing single instruction causing said processor to manipulate two n bit strings of data by performing the steps: decoding the single instruction; identifying two registers of n bits each; identifying a shift value specified by a parameter of the single instruction; loading a first subset of data of less than n bits to one of the two registers specified by the single instruction; loading a second subset of data of less than n bits to the other of the two registers specified by the single instruction; selecting the first subset of data from the one of the two registers based solely upon the shift value; selecting the second subset of data from the other of the two registers based solely upon the shift value; and thereafter concatenating the first subset of data and the second subset of data to obtain an output of manipulated n bits of data; wherein: selecting the first subset comprises logically shifting the bits of data held in the one of the two registers; selecting the second subset comprises logically shifting the bits of data held in the other of the two registers; and, the step of logically shifting simultaneously transfers the content of the two registers into a left barrel shifter and a right barrel shifter, respectively. 11. A method of manipulating two n bit strings of data, said method being performed by a computer system executing a stand alone implementation of a single instruction that does not require the support of other instructions, comprising the steps of: decoding the single instruction; loading a first subset of data of less than n bits to a first registers of n bits specified by the single instruction; loading a second subset of data of less than n bits to a second register of n bits specified by the single instruction; identifying a shift value specified by a parameter of the single instruction; identifying a first shift value of n bits minus the shift value for shifting data of the first registers to a first direction; identifying a second shift value of the shift value for shifting data of the second register to a second direction being an opposite direction of the first direction; shifting logically a first data in the first register based upon the first shift value by moving the first data toward the first direction and filling nulls into the blank bits caused by the shifting to obtain a first n bits of shifted data; shifting logically a second data in the second registers based upon the second shift value by moving the second data toward the second direction and filling nulls into the blank bits caused by the shifting to obtain a second n bits of shifted data; and thereafter concatenating the first n bits of shifted data and the second n bits of shifted data by a logical OR to obtain an output of manipulated n bits of data; and, wherein said steps of shifting logically the first and second data simultaneously transfers the contents of the two registers into a left barrel shifter and a right barrel shifter, respectively. 12. The method of claim 11, wherein the first direction is left and the second direction is right. 13. The method of claim 11, wherein said computer system comprises a processing unit including a bus and a memory coupled to the processing unit via the bus, wherein the first and second registers are in the processing unit and coupled to the bus, and wherein the first and second subset of data are loaded to the first and second registers respectively from the memory by said steps of loading. 14. A computer system having SIMD processing architecture, comprising: a processor; a first register; a second register; and a machine readable medium having stored thereon data representing a single instruction executable by said processor to manipulate two n bit strings of data by performing the steps: decoding the single instruction; loading a first subset of data of less than n bits to a first registers of n bits specified by the single instruction; loading a second subset of data of less than n bits to a second register of n bits specified by the single instruction; identifying a shift value specified by a parameter of the single instruction; identifying a first shift value of n bits minus the shift value for shifting data of the first registers to a first direction; identifying a second shift value of the shift value for shifting data of the second register to a second direction being an opposite direction of the first direction; shifting logically a first data in the first register based upon the first shift value by moving the first data toward the first direction and filling nulls into the blank bits caused by the shifting to obtain a first n bits of shifted data; shifting logically a second data in the second registers based upon the second shift value by moving the second data toward the second direction and filling nulls into the blank bits caused by the shifting to obtain a second n bits of shifted data; and thereafter concatenating the first n bits of shifted data and the second n bits of shifted data by a logical OR to obtain an output of manipulated n bits of data; and, wherein said steps of shifting logically the first and second data simultaneously transfers the contents of the two registers into a left barrel shifter and a right barrel shifter, respectively.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.