概述
针对不同的应用场景,系统性能的表现是完全不同的。对于计算密集型的场景,性能优化的目标是让CPU可以在单位时间内处理更多的数据;对于数据库访问较多的场景,性能优化的目标是提升IO操作的效率,减少IO wait,单位时间内可以读写更多的数据;对于网络流量较大的场景,性能优化的目标是提升网络的吞吐量和降低时延,也就是提升单位时间内发送/接收到的数据包的数量。虽然各种场景性能优化的目标不一样,但都是提升系统单位时间内的某项能力。对CPU来说,体现在CPU指令执行效率上,性能优化的本质是提升单位时间内CPU执行的指令数,即IPC(Instructions per Cycle)。
指令在CPU中执行时,经过了很多的CPU部件,每个部件各司其职,功能上相互独立,但是通常下游部件会对上游部件执行的结果有依赖,这样的结构很类似生产线上的流水线。因此,将指令执行的整个过程命名为指令流水线。不同架构的CPU流水线的级数(长度)存在很大差异,从几级到几十级不等,流水线级数越多,CPU结构就越复杂,功能也就越强大,同时功耗也会越大。相反地,流水线级数少,CPU结构简单,功耗就会降低很多。下表是一些典型的ARM流水线级别。
型号 |
指令集 |
流水线 |
---|---|---|
ARM7 |
ARMv4 |
3级 |
ARM9 |
ARMv5 |
5级 |
ARM11 |
ARMv6 |
8级 |
Cortex-A8 |
ARMv7-A |
13级 |
鲲鹏920/Cortex-A55 |
ARMv8 |
8级 |
父主题: 流水线