Hilton, Andrew DNagarakatte, SantoshRoth, Amir2023-05-222023-05-222009-02-142009-06-08https://repository.upenn.edu/handle/20.500.14332/6459Growing concerns about power have revived interest in in-order pipelines. In-order pipelines sacrifice single-thread performance. Specifically, they do not allow execution to flow freely around data cache misses. As a result, they have difficulties overlapping independent misses with one another. Previously proposed techniques like Runahead execution and Multipass pipelining have attacked this problem. In this paper, we go a step further and introduce iCFP (in-order Continual Flow Pipeline), an adaptation of the CFP concept to an in-order processor. When iCFP encounters a primary data cache or 12 miss, it checkpoints the register file and transitions into an "advance " execution mode. Miss-independent instructions execute as usual and even update register state. Miss- dependent instructions are diverted into a slice buffer, un-blocking the pipeline latches. When the miss returns, iCFP "rallies" and executes the contents of the slice buffer, merging miss-dependent state with miss- independent state along the way. An enhanced register dependence tracking scheme and a novel store buffer design facilitate the merging process. Cycle-level simulations show that iCFP out-performs Runahead, Multipass, and SLTP, another non-blocking in-order pipeline design.multiprocessing systemspipeline processingRunahead executionall-level cachein-order continual flow pipelinein-order pipelinesin-order processorsmiss-independent instructionsmultipass pipeliningregister dependence tracking schemeregister fileiCFP: Tolerating all-level cache misses in in-order processorsPresentation