Contradiction in handshake dependency rules
Created by: michael-platzer
Hi,
The section about handshake dependencies states that:
Transactions with an earlier issued id shall not depend on transactions with a later issued id (e.g. a coprocessor is not allowed to delay generating issue_ready = 1 because it first wants to see result_ready = 1 for an older instruction).
It seems to me that the example contradicts the rule. To my understanding, an earlier issued id would correspond to an older instruction, whereas a later issued id corresponds to a newer instruction. Hence, the rule states that older instructions (with earlier issued id) shall not depend on newer instructions (with later issued id), but the example claims the opposite, i.e., that a newer instruction must not depend on an older one.
I believe that the example's requirement that issue_ready
must not be delayed due to waiting for result_ready
of an older instruction cannot be met. As the coprocessor's pipeline fills up it will eventually need to delay accepting further instructions until earlier results are transmitted to the CPU.