7.3.2 软件流水线 (Software Pipelining) 软件流水线,不是把代码倒进流水槽里任其顺流而下——它是一场精密的时空编排:在时间维度上拆解循环,在空间维度上重叠执行,在寄存器与功能单元的有限疆域里,为每一条指令预设好它的“登机口”与“滑行道”。当硬件流水线因分支预测失败、缓存未命中或RAW(Read-After-Write)依赖而频频停顿,软件流水线便以编译器之手,在生成机器码之前,就悄然重构了程序的时序骨架。它不靠芯片多加一级流水级,而靠人脑+算法+约束求解,在循环体内部完成一次静默却彻底的时空折叠。 我们不谈概念史,不列教科书定义。我们直奔核心:如何在一个真实循环中,亲手调度出一个合法、紧凑、高吞吐的软件流水线?