如何查找ARM官方最新准确的流水线架构相关说明文档?
你在通用ARM架构参考手册里找不到流水线相关内容是正常的——架构参考手册只定义指令集、编程模型这类跨内核统一的架构规范,流水线设计属于厂商可自定义的微架构实现细节,不同内核型号的设计差异极大,从设计之初就不会放在通用架构手册中。
你可以根据你做汇编优化的目标内核,对应查找以下ARM官方公开文档获取准确、最新的信息:
- 面向Cortex-M系列低功耗内核:查找对应具体内核型号的官方技术参考手册(TRM),文档内会明确标注该内核的流水线级数、各流水段功能、流水线互锁触发规则,多数型号会附带简化的流水线结构示意图;同内核配套的官方编程指南里还会给出汇编层面规避流水线气泡、优化指令排布的可落地规则。
- 面向Cortex-A/R系列高性能应用/实时内核:这类内核普遍采用多发射乱序执行设计,流水线结构复杂度远高于M系列,除对应内核的技术参考手册外,还需要查找该内核的官方软件优化指南,文档内会详细披露流水线发射宽度、各类型指令的执行延迟、重排序缓冲区深度、缓存访问的流水段周期等优化必需的细节,配套的流水线示意图会标注不同指令在流水段中的流转路径,是做汇编级优化最权威的参考依据。
- 如果你需要的是经典ARM内核的基础流水线原理示意(类似你提到的取指-译码-执行三级流水线示意图):可以查找ARM官方发布的架构入门概述文档,这类文档中会保留ARMv4/ARMv5时代经典三级、五级流水线的通用原理示意图,这类基础原理不随新内核的微架构迭代变化。
重要提醒:绝对不要套用其他内核的流水线规则做目标内核的汇编优化,从Cortex-M0的3级静态流水线,到Cortex-M7的6级双发射流水线,再到近年新款Cortex-A系列10级以上的深度乱序流水线,指令执行的时序差异极大,错误套用规则反而会导致代码性能劣化。
内容的提问来源于stack exchange,提问作者ALPHA
相关产品推荐
相关产品推荐

