USRE46712EExpiredUtility
Data processing device and method of computing the cosine transform of a matrix
Est. expiryMar 18, 2018(expired)· nominal 20-yr term from priority
G06F 17/147G06F 9/30145G06F 9/30014G06F 9/30036G06F 17/14
64
PatentIndex Score
1
Cited by
110
References
10
Claims
Abstract
A data processing device provides for registers which can be formatted as segments containing numbers to which operations can be applied in SIMD fashion. In addition it is possible to perform operations which combine different segments of one register or segments at different positions in the different registers. By providing specially selected it is thus made possible to perform multidimensional separable transformations (like the 2-dimensional IDCT) without transposing the numbers in the registers.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A data processing device comprising
an operand storage circuit for storing operands, each subdivided into a plurality of segments at respective positions in the operand; an instruction execution unit for executing an instruction containing one or more operand references, each referring commonly to the segments of a respective source operand in the operand storage circuit, said instruction causing the instruction execution unit to execute a plurality of operations in parallel and independently of one another, each operation combining predetermined segments from one or more of the respective source operands, characterized in that at least one of the operations combines segments that have mutually different positions in the one or more respective source operands and/or that at least one of the operations differs from the other operations.
2. A data processing device according to claim 1 , wherein said instruction is referred to as a cross instruction, the instruction execution unit also being arranged for executing a parallel instruction containing two or more further operand references each referring commonly to the segments of a respective source operand in the operand storage circuit, said parallel instruction causing the instruction execution unit to execute a plurality of operations in parallel and independently of one another, each operation combining predetermined segments from the source operands having mutually corresponding positions in the two or more referenced further source operands.
3. A data processing device according to claim 2 , programmed with a program for computing a composition of a column transformation and a row transformation of a matrix having at least rows and columns,
the column transformation transforming columns each according to a one dimensional column transformation, to the column transformation being executed using the parallel instruction, the two or more operands each storing information items for different columns in respective segments according to the column; the row transformation transforming rows each according to a one dimensional row transformation, the row transformation being executed using the cross instruction, information items for the same row being stored in respective segments of the at least one operand.
4. A data processing device according to claim 3 , where the row and column transformation correspond to the same one-dimensional transformation.
5. A data processing device according to claim 1 , wherein the operations caused by the instruction comprise computing a sum and a difference of two segments in one of the one or more source operands.
6. A data processing device according to claim 1 , wherein the operations caused by the instruction result in the computation of a plurality of component coefficients of a vector transformation, such as an IDCT or DCT, of the numbers stored in the respective segments of the one or more source operands, the data processing device storing the component coefficients in segments at respective positions of a result operand commonly referred to by the instruction.
7. A data processing device according to claim 6 , wherein the numbers stored in the segments of two or more of the source operands make up an input vector, which is transformed, the component coefficients of the transformation of the input vector being stored in the segments of two or more result operands.
8. A method of transforming a matrix having at least rows and columns using a processor having segmented operand storage circuits, the method comprising:
computing a composition of a column transformation and a row transformation,
the column transformation transforming columns each according to a one dimensional column transformation, the column transformation being executed using at least one SIMD instruction which causes the processor to process different columns in parallel, using information items for the different columns stored in respective segments of an operand storage circuit referred to in the SIMD instruction;
the row transformation transforming rows each according to a one dimensional row transformation, the row transformation being executed using at least one cross instruction which causes the processor to perform several operations upon information items for the same row in parallel, the information items for the same row being stored in respective segments of an operand storage circuit referred to in the cross instruction, wherein the row and column transformation correspond to the same one-dimensional transformation.
9. A computer readable medium storing a computer program for executing the method according to claim 8 .
10. A data processing device comprising:
an operand storage circuit for storing operands, each operand subdivided into a plurality of segments at respective positions in the operand wherein each operand is subdivided into the same plurality of segments at the same respective positions; and an instruction execution unit including an instruction decoder and arithmetic circuits wired to execute an instruction containing an opcode and one or more operand references, each operand reference of the instruction referring commonly to the segments of a respective source operand in the operand storage circuit, said instruction causing the instruction decoder to decode the instruction and set the instruction execution unit to execute a plurality of operations consisting only of addition and subtraction operations in parallel and independently of one another to generate a result that is written to a result register subdivided into the same plurality of segments at the same respective positions as the operands, each operation of the plurality of operations combining, by specific wiring of the arithmetic circuits of the instruction execution unit, predetermined segments from one or more of the respective source operands and writing a result of the combining to a segment of the result register, wherein each of the operations of the plurality of operations caused to execute by the instruction combines segments that have mutually different positions in the one or more respective source operands and at least one of the operations caused to execute by the instruction differs from the other operations caused to execute by the instruction.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.