dependencies - How long (time slots) does a functional unit take to fetch an operand? -
In computer architecture, functional units take time slots to execute the instructions.
For functional units to execute more than 1 time slots, do they need to be read from the registers for the entire period of execution or do they need to read them during the slot for the first time? For example, if we have something like
3 < - F (1,2),
Where there are 1,2, and 3 denoted registers and F is a functional unit takes 2 time slots to execute.
Is F1 capturing registers 1 and 2 for reading in all 2 time slots, or can it capture only for the first time slot? This is important due to possible war related dependencies, which are in line with it.
It depends on how you implement it; Both types are possible but common method is reading once.
In the first cycle, there is a high probability of functional unit to waste the input value. Note 1: A working unit may require operands for only one cycle, even if the operation takes more. It is also dependent on functional unit type and its implementation. Even if the functional unit needs basic operands for more than one cycle, then it can trash opandes. Note 2: In the current processor, the functional units can read their operators only once (they can read from the register file or other units), but an out-of-order processor between different units Can take.
Note 3: "The notion of a functional unit capturing registers" is not technically correct. A functional unit can read or write the registers, but can not capture the registers (one instruction can occupy a functional unit or reservation station, but it is beyond the scope of this question).
Comments
Post a Comment