To keep througput close to 1/cycle when there is a multi-cycle stage that sends a command to a far module then gets answer(10 clocks per send or receive), could separating it in two(send + receive) and putting idle stages(18x1 clocks) between them solve the problem?

For example, with just a single stage that takes 20 clocks, it has throughput of 0.05 instructions per cycle. When idle stages are added, incoming instructions should randezvous with incoming answers from distant module at last stage and it should keep throughput at 1 instruction per cycle. So answer is received from bottom stage instead of same stage of sending. Is there a more elegant way than this? I'm writing a cpu-design and simulation game that drag-n-dropped-connected modules communicate and pass instructions from fetch to retire, but they all have multiple layers of communications that slow throughput and I need to keep a high throughput without giving simplicity away(for gamers) and doing it right (idle stages are right or not?)

If a pipeline stage is a combinatorial logic, than it could have communication with other circuits than its own(not just flowing data to next stage)(fetch wired to memory controller/cache, decode wired to decoder instead of accepting decoder module as a whole pipeline stage)

  • $\begingroup$ You can offload long latency operations (for example divisions) to a separate block and the CPU will stall only if the result from that long latency operation is used. The issue is how much out-of-order execution you allow, as the CPU must be able to resume execution when an exception occurs. $\endgroup$ – TEMLIB Dec 25 '16 at 21:01
  • $\begingroup$ it will have an instruction window which will get nstructions in groups, separate independent ones into another group, dependents to another then it will stream independents ooo and dependents serially so bubbles may be deleted from independent group at least $\endgroup$ – huseyin tugrul buyukisik Dec 26 '16 at 13:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.