My teacher tends to gave us a problem every year on the finals and seems that nobody gave him the expected result.Personally I don't have any clue how to solve it. Here is the problem
Let's consider an array of constants A[a0 a1 a2 a3 a4 a5 a6 a7]
, in which each element is a natural number on 16 bit and an array U of elements procured in real time U=[u0 u1 u2 u3 u4 u5 u6 u7]
in which each element is left aligned and is represented on 12 bits.The dot product of the two vectors is Y=A*U^
where ^
is the transpose operator.
a) Write the sequence of instruction for calculating the dot product Y considering all the numeric values available at consecutive addresses.Considering for each instruction a cycle machine like execution time, evaluate the time of execution of the Y.The final result will be stored in the general registers.
b) Explain the components of the hardware block of a DSP microprocessor which permit the lowering execution time for the Y.
From the scale of correction I could find :
a)
The memory management of the list of coefficients and circular buffers for sampling) 1p
The administration of the addressing pointers 0.5p
The multiply and addition operations ( size operands and dimension of result) 1p The cyclic execution for obtaining the result 0.5 p.
b)
- Different management oof memory, parallel hardware management of the pointers 1p
- Instruction of type Multiply and Add 0.5 p
- Multiple instruction for parallel execution 0.5 p
- Instruction cyclic of type
zero overhead
1p - Interruption request from a timer for the generation of sampling period 1p
- The procure of the current sample 1p
- The evaluation of the subroutine of interruption. 0.5p
- The relation between the sampling period and the execution time of the interruption routine. 0.5p
For the first task I have some ideas.He gave us an hint telling us that even if the U values are on 12 bits the 8086 processor will fetch 16 bits, and this seems to be the thing that all the others students doesn't seem to observe.For the second item I have no clue.