Of course these two methods are extreme cases, and one could duplicate some units and not
others. But if all the functional units are not duplicated, then potential class conflicts will be
created. A class conflict occurs when some instruction is followed by another instruction for the
same functional unit. If the busy functional unit has not been duplicated, the superscalar
machine must stop issuing instructions and wait until the next cycle to issue the second
instruction. Thus class conflicts can substantially reduce the parallelism exploitable by a
superscalar machine. (We will not consider superscalar machines or any other machines that
issue instructions out of order. Techniques to reorder instructions at compile time instead of at
run time are almost as good [2, 3, 10], and are dramatically simpler than doing it in hardware.)
Of course these two methods are extreme cases, and one could duplicate some units and notothers. But if all the functional units are not duplicated, then potential class conflicts will becreated. A class conflict occurs when some instruction is followed by another instruction for thesame functional unit. If the busy functional unit has not been duplicated, the superscalarmachine must stop issuing instructions and wait until the next cycle to issue the secondinstruction. Thus class conflicts can substantially reduce the parallelism exploitable by asuperscalar machine. (We will not consider superscalar machines or any other machines thatissue instructions out of order. Techniques to reorder instructions at compile time instead of atrun time are almost as good [2, 3, 10], and are dramatically simpler than doing it in hardware.)
การแปล กรุณารอสักครู่..
