Why does register renaming prevent write?after?write hazards (WAW) but not read?after?write (RAW) hazards?

What will be an ideal response?


Because a read?after?write hazard is a problem of data dependency that cannot be removed or resolved in any
other way than the correct ordering of instruction execution (unless speculation is used to guess a result before
it is generated). If you have A = B + C followed by E = A + F, you have to execute these instructions serially. A
must first be written and then A must be read. In pipelined processors you can avoid the hazard by forwarding
A from the first operation to the next. In a superscalar processor the instructions cannot be executed in parallel
(or reverse order).

However, a write?after?write dependency is a false dependency because it is apparent. If you have A = B + C, A =
G + H, the two values of A are different variables and therefore there is no dependency. Superscalars solve the
problem by renaming variables (registers) so that the code may become A = B + C, AA = G + H. Now both
instructions can be executed in parallel or reverse order.

Computer Science & Information Technology

You might also like to view...

You can include a literal value as the left operand of an assignment statement.

Answer the following statement true (T) or false (F)

Computer Science & Information Technology

The ____________________ is the Outlook folder that contains your personal schedule.

Fill in the blank(s) with the appropriate word(s).

Computer Science & Information Technology

What process represents the Windows kernel and system process on a running Windows 2016 Server installation?

A. lsass.exe B. NtKrnl C. kernel.exe D. System

Computer Science & Information Technology

Briefly discuss displaying the formulas version of a worksheet.

What will be an ideal response?

Computer Science & Information Technology