Cortex-A9是ARM公司(ARM Holdings)于2007年10月发布的32位应用处理器内核,属于Cortex-A系列,是首个采用部分乱序执行流水线的ARM内核。它有单核的Cortex-A9和最多集成4个内核的Cortex-A9 MPCore两种形态,单核配置下性能比前代Cortex-A8提升50%以上。该内核在2010年前后大规模出货,被广泛用于智能手机、平板电脑、数字电视、车载信息娱乐和网络设备,是ARM历史上部署最广的应用处理器之一。
定义
Cortex-A9是ARM公司设计的32位应用处理器内核,采用ARMv7-A指令集架构,可用作单核处理器,也可组成最多4个内核的缓存一致集群[1][2]。它的设计定位是性能与功耗之间的平衡,面向需要运行完整操作系统的高性能嵌入式与移动设备[1]。
作为指令集架构为ARMv7-A的器件,Cortex-A9同时支持Thumb-2和传统的Thumb、ARM指令编码,并可选配NEON单指令多数据扩展和VFPv3浮点单元[1]。同一内核既提供单核版本,也提供以MPCore命名的多核版本,两者的处理器微架构相同,区别在于多核版本增加了硬件缓存一致性管理[3]。
原理
Cortex-A9采用动态长度、8级超标量多发射流水线,每周期最多取出并解码2条指令,在执行阶段可同时处理最多4条指令[4]。与前代Cortex-A8的完全顺序执行不同,它在ARM内核中首次引入了推测性乱序执行与乱序完成,在同等功耗下每周期指令数(IPC)比Cortex-A8提升约25%[3]。流水线长度可动态调整,简单指令只需经过5级就能完成[5]。
多核版本依靠窥探控制单元(SCU)维持各内核一级数据缓存之间的一致性:某个内核写入缓存中的位置时,若同一位置也存在于另一个内核的缓存中,SCU 会对其更新[6][7]。SCU 还负责在多个内核同时访问二级缓存时进行仲裁,并管理加速器一致性端口(ACP)的访问[8]。
ACP 是一个可选的64位AXI从端口,可以连接DMA引擎或不带缓存的外设,使这些单元能与非相干地参与缓存一致性操作[8]。ACP 针对缓存行长度的传输做了优化,四拍回环突发与四拍递增突发能达到最佳性能,不匹配这一格式的访问性能明显下降[9]。
每个内核的一级缓存容量可选16KB、32KB或64KB,四路组相联;二级缓存在片外,通过独立的L2缓存控制器配置,容量范围从128KB到8MB[10][2]。内核还包含通用中断控制器、TrustZone安全扩展、JTAG调试与CoreSight跟踪等部件[4]。
发展历程
2007年10月3日,ARM公司在美国加州圣克拉拉举行的ARM开发者大会上同时发布了两款产品:单核的Cortex-A9处理器和可扩展至4个内核的Cortex-A9 MPCore多核处理器[3]。同期的授权方包括日电电子、英伟达、三星、意法半导体和德州仪器。这一发布距离ARM公布ARMv7架构的多处理扩展版本仅数月,被视为ARM兑现多内核路线的重要一步[4]。
Cortex-A9最初以可综合的软核形式提供,2008年首发版本交付后很快进入量产状态,基于Cortex-A9 MPCore的芯片自2010年起在各类市场大规模出货[3]。2009年,ARM还联合台积电推出代号Osprey的40纳米硬宏实现,速度优化版本在2GHz下可提供约10000 DMIPS算力,功耗约1.9瓦;功耗优化版本在800MHz下提供约4000 DMIPS,功耗约0.5瓦[11]。
此后ARM对Cortex-A9进行了4个版本的修订,逐周期测量的性能累计提升超过40%,结合工艺节点演进,Cortex-A9 r4的性能达到最初40纳米r1版本的3倍以上[3]。ARM预计到2013年底,合作伙伴基于Cortex-A9的累计出货量将达到10亿片[3]。2013年6月,ARM推出面向中端市场的Cortex-A12作为其继任设计[12]。
应用
Cortex-A9的授权与实现覆盖手机、平板电脑、数字电视、消费电子、企业设备、网络设备、车载信息娱乐以及入门级服务器等多个领域[3]。采用该内核的片上系统包括英伟达的双核Tegra 2、意法半导体的SPEAr1300以及德州仪器的OMAP4平台等[10]。
在德州仪器的Sitara系列中,AM437x把Cortex-A9内核与可编程实时单元及工业通信子系统(PRU-ICSS)结合,支持EtherCAT、PROFINET、Profibus等实时工业协议,内核处理速度最高可达1000MHz[13]。在可编程逻辑器件领域,Altera(后被英特尔收购)的Cyclone V等片上系统也集成了Cortex-A9 MPCore,并借助ACP端口让FPGA逻辑中的硬件加速器与处理器保持数据一致[14]。
软件开发方面,Cortex-A9可运行通用Linux内核、QNX实时操作系统、Nucleus等操作系统,ARM的MPCore技术早在2005年就已获得多家公司授权并实现量产,为Cortex-A9提供了现成的操作系统与中间件生态[4]。在其生命周期内,多核版本还促成了设计思路的转变:多数合作伙伴最初选择频率适中的双核方案而非高频单核方案,随后又从双核扩展到四核[3]。
局限
Cortex-A9基于32位ARMv7-A架构,只能进行32位寻址,不支持64位操作系统或64位应用,64位支持要等到ARMv8-A架构的后续内核才出现[15]。它也不支持ARM后来提出的big.LITTLE大小核配置,无法与Cortex-A7等内核组成异构多核系统[16]。
从微架构上看,Cortex-A9只是部分乱序设计,全核共用一个发射队列,只能处理4个已解码指令;相比之下,后继的Cortex-A12设有整数、浮点与NEON、载入存储3个独立发射队列,流水线也更深[17]。它的二级缓存位于内核之外,需要操作系统单独支持,且NEON与浮点单元均为可选项,不是标准配置[17]。
ACP端口在功能上也有限制:它不支持对相干存储器的独占访问和锁定访问,因此无法通过ACP使用LDREX/STREX机制获取相干内存区域的排他访问权,该类机制只在非相干内存区域可用[9]。此外,ACP针对缓存行长度的特定突发格式做了优化,格式不匹配的访问无法享受SCU优化,性能会显著降低[9]。
随着基于ARMv8-A的64位内核普及,Cortex-A9在主流消费电子中已基本被取代,但在工业控制、医疗设备等看重成熟度、可靠性与成本的场合仍有使用[15]。
参见
参考资料
- Cortex-A9 Product Support [引用日期2026-10-14]
- ARM Cortex-A9 [引用日期2026-10-14]
- The Birth & Evolution of Cortex-A9, and What’s Coming Next [引用日期2026-10-14]
- ARM推出Cortex-A9,实现多内核承诺 [引用日期2026-10-14]
- electronicsweekly.com 上的网页 [引用日期2026-10-14]
- SCU 保持属于处理器的 L1 数据缓存之间的双向一致性 [引用日期2026-10-14]
- implementation-details-22753 [引用日期2026-10-14]
- Cortex-A9 Technical Reference Manual r4p0 [引用日期2026-10-14]
- arm.com 上的网页 [引用日期2026-10-14]
- ARM Cortex-A Series (Armv7-A) Programmer’s Guide [引用日期2026-10-14]
- ARM公司发布“Osprey”A9内核竞争Atom [引用日期2026-10-14]
- ARM世界之旅(二):Cortex-A12架构深入解析 [引用日期2026-10-14]
- AM4379BZDNA80 正在供货 - AM4379BZDNA80正在供货 [引用日期2026-10-14]
- ARM Cortex-A9 MPCore Processor Architecture [引用日期2026-10-14]
- The Kynix Blog - Kynix On 2025-07-30 251 [引用日期2026-10-14]
- Cortex-A9的接班人 ARM最新Cortex-A12架构解析_电脑报在线 [引用日期2026-10-14]
- ARM世界之旅(二):Cortex-A12架构深入解析 [引用日期2026-10-14]