DSP data type matching for operation using multiple functional units
AssigneeIntel Corporation
InventorsKumar Ganapathy, Ruban Kanapathipillai
Life of this patent
Estimating the term…
Abstract
An instruction set architecture (ISA) for application specific signal processor (ASSP) is tailored to digital signal processing applications. The ISA implemented with the ASSP, is adapted to DSP algorithmic structures. The ISA of the present invention includes flexible data typing, permutation, and type matching of operands. The flexible data typing, permutation and type matching of operands provides programming flexibility to support different filtering and DSP algorithms having different types of filter coefficients or data samples. A data typer and aligner within each signal processing unit within the ASSP supports flexible data typing, permutation and type matching of operands of the instruction set architecture.
Claims32
A method of performing digital signal processing (DSP) operations using flexible data type operands, the method comprising:
- fetching first and second operands for a DSP instruction;
- decoding settings of a pair of data type fields to determine the data types of the first and second operands;
- determining if the data types of the first and second operands match, the type matches being performed in response to an operation of the DSP instruction, a number of functional units to perform the operation, a bit width of the functional, units, a first bit width of the first operand, and a second bit width of the second operand, and
- in response to the first and second operands having matching data types, executing the DSP instruct on using the first and second operands.
A method of performing digital signal processing (DSP) operations using flexible data type operands, the method comprising:
- fetching in parallel first and second operands for a DSP instruction;
- decoding in parallel settings of a pair of data type fields to determine the data type of the first and second operands;
- determining if the data types of the first and second operands match;
- in response to the first and second operands having matching data types, executing the DSP instruction using the first and second operands;
- in response to the first and second operands not having matching data types, performing a type matching to find a matched data type for the first and second operands;
- responsive to finding a matched data type for the first and second operands, executing the DSP instruction using the matched data type and the first and second operands;
- and
- wherein the first operand has a data type of N1×S1 where N1 is a first number of vectors and S1 is a first bit width,
- the second operand has a data type of N2×S2 where N2 is a second number of vectors and S2 is a second bit width, and
- the matched data type is found by selecting the maximum of N1 or N2 and the maximum of S1 or S2 as the matched data type.
A method or performing digital signal processing (DSP) operations using flexible data type operands, the method comprising:
- fetching a first operand and a second operand for a DSP instruction;
- decoding settings of at least two data type fields to determine a first data type of the first operand and a second data type of the second operand;
- comparing the first data type of the first operand with the second data type of the second operand, the comparing being performed in response to an operation of the DSP instruction, a number of functional units to perform the operation, a bit width of the functional units, a first bit width of the first operand, and a second bit width of the second operand;
- if the comparing determines that the first data type of the first operand matches the second data type of the second operand, then executing the DSP instruction using the first operand and the second operand;
- otherwise, if the comparing determines that the first data type of the first operand and the second data type of the second operand do not match then
- performing a type matching to find a matched data type for the first operand and the second operand, and,
- responsive to finding the matched data type for the first operand and the second operand, executing the DSP instruction using the matched data type and the first and second operands.
A method of performing digital signal processing (DSP) operations using flexible data type operands, the method comprising:
- fetching in parallel a first operand and a second operand for a DSP instruction;
- decoding in parallel settings of at least two data type fields to determine a first data type of the first operand and a second data type of the second operand;
- comparing the first data type of the first operand with the second data type of the second operand;
- if the comparing determines that the first data type of the first operand matches the second data type of the second operand, then executing the DSP instruction using the first operand and the second operand;
- otherwise, if the comparing determines that the first data type of the first operand and the second data type of the second operand do not match then
- performing a type matching to find a matched data type for the first operand and the second operand,
- responsive to finding the matched data type for the first operand and the second operand, executing the DSP instruction using the matched data type and the first and second operands;
- and,
- wherein the first operand has a data type of N1×S1 where N1 is a first number of vectors and S1 is a first bit width,
- the second operand has a data type of N2×S2 where N2 is a second number of vectors and S2 is a second bit width, and
- the matched data type is found by selecting the maximum of N1 or N2 and the maximum of S1 or S2 as the matched data type.
- 16.A method of performing digital signal processing (DSP) operations using flexible data type operands, the method comprising:
- fetching in parallel a first operand and a second operand for a DSP instruction;
- decoding in parallel settings of at least two data type fields to determine a first data type of the first operand and a second data type of the second operand;
- comparing the first data type of the first operand with the second data type of the second operand;
- if the comparing determines that the first data type of the first operand matches the second data type of the second operand, then executing the DSP instruction using the first operand and the second operand;
- otherwise, if the comparing determines that the first data type of the first operand and the second data type of the second operand do not match then
- performing a type matching to find a matched data type for the first operand and the second operand,
- responsive to finding the matched data type for the first operand and the second operand, executing the DSP instruction using the matched data type and the first and second operands;
- and,
- wherein the first operand has a data type of N1×S1 where N1 is a first number of vectors and S1 is a first bit width,
- the second operand has a data type of N2×S2 where N2 is a second number of vectors and S2 is a second bit width, and
- the matched data type is found by selecting and discarding the minimum of N1 or N2 and the minimum of S1 or S2 so that the matched data type remains.
A method of performing digital signal processing (DSP) operations using flexible data type operands, the method comprising:
- receiving a first operand and second operand for a DSP instruction;
- decoding at least two data type fields to determine a first data type of the first operand and a second data type of the second operand;
- determining if the first data type and the second data type match, the type matching being performed in response to an operation of the DSP instruction, a number of functional units to perform the operation, a bit width of the functional units, a first bit width of the first operand, and a second bit width of the second operand;
- if the first data type matches the second data type, then executing the DSP instruction using the first operand and the second operand;
- otherwise if the first data type does not match the second data type, then
- performing a type matching to find a matched data type for the first operand and the second operand, and,
- responsive to finding the matched data type for the first operand and the second operand, aligning the first and second operands together in accordance with the matched data type and executing the DSP instruction using the aligned first and second operands.
A method of performing digital signal processing (DSP) operations using flexible data type operands, the method comprising:
- fetching in parallel a first operand and a second operand for a DSP instruction;
- decoding in parallel settings of at least two data type fields to determine a first data type of the first operand and a second data type of the second operand;
- comparing the first data type of the first operand with the second data type of the second operand;
- if the comparing determines that the first data type of the first operand matches the second data type of the second operand, then executing the DSP instruction using the first operand and the second operand;
- otherwise, if the comparing determines that the first data type of the first operand and the second data type of the second operand do not match then
- performing a type matching to find a matched data type for the first operand and the second operand,
- responsive to finding the matched data type for the first operand and the second operand, executing the DSP instruction using the matched data type and the first and second operands;
- and,
- wherein the type matching is performed in response to an operation of the DSP instruction, a number of functional units to perform the operation, a bit width of the functional units, a first bit width of the first operand, and a second bit width of the second operand.
A method in an integrated circuit using flexible data type operands, the method comprising:
- receiving a first operand and a second operand for an instruction;
- decoding at least one data type field to determine a first data type of the first operand and a second data type of the second operand,
- the first data type of the first operand designating a first number of operations to be performed in parallel together by a plurality of processing units and a first bit width of the first operand, and
- the second data type of the second operand designating a second number of operations to be performed in parallel together by the plurality of processing units and a second bit width of the second operand;
- determining if the first data type and the second data type match;
- if the first data type matches the second data type, then executing the instruction using the first operand and the second operand;
- otherwise if the first data type does not match the second data type, then
- performing a type matching to find a matched data type for the first operand and the second operand, and,
- responsive to finding the matched data type for the first operand and the second operand, aligning the first and second operands together in a accordance with the matched data type and executing the instruction using the aligned first and second operands.
Dependencies are inferred from the claim text.