3
\$\begingroup\$

Wave pipelining (a technique of removing latch overheads by having two or more "waves" propagate through a multi-cycle pipeline stage) has been used in the past for pipelining cache access (HP PA-7000?). Although this design technique has issues similar to those of asynchronous design (immature design and validation tools, scarcity of experienced designers, device testing issues, increased process variation, complex timing variability based on voltage and temperature, and perhaps even increased quantization granularity of transistors [particularly FinFET?]), the variability is more constrained than a fully asynchronous design.

Using wave pipelining to group pairs of pipelines stages would not only remove latches but would also provide a simple way to halve pipeline depth when frequency is halved. (This could be done with latches by eliding the intermediate latches.)

While wave pipelining would be more problematic for a high frequency design where small variations in propagation delay would be a larger fraction of total delay, intermediate performance processors might have sufficient depth to benefit from reduced latch overhead while having sufficient tolerance for variation.

Are the modest potential benefits simply too small to overcome the above mentioned issues?

\$\endgroup\$
  • \$\begingroup\$ It is also possible that wave pipelining is being used but is not being publicized since it is a microarchitectural detail. [Please add any appropriate tags.] \$\endgroup\$ – Paul A. Clayton Jun 18 at 23:14
2
\$\begingroup\$

It's difficult to implement.

I made a FPGA on 14nm SOI which could be asynchronous. It had reservation stations and a significant amount of synchronous logic in actual implementations between clock zones. I used tools tried to match the paths, but when it was unsure, it used RAZOR techniques to be sure that things were not too far behind instead of completion trees. I got the idea for this from the PA-RISC, but implemented checks using RAZOR for basically the reasons that you described. I'm rather sure that it'll never be used in prime-time implementations because the complexity that you will burden in academia is not practical for most commercial products.

\$\endgroup\$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.