ARM移动处理器的架构解析

2014-10-20 10:23黄宇锴
科技资讯 2014年3期

黄宇锴

摘要:由于电池和散热的限制,移动应用处理器不可能像台式处理器那样相对较少地考虑耗

电问题,对移动应用处理器来说,所有的一切都得围绕一个词进行:省电。。

关键词:ARM架构、ARM Cortex-A15、Krait

中图分类号: TP3 文献标识码:A 文章编号:1674-098X(2014)01(B)-0000-00

随着半导体工艺的日趋先进,智能手机(Smartphone 或者 Superphone)、平板电脑(Tablet 或者 Pad)已经成为许多网友最常使用、最多关注、更新最快的电子消费产品,高度便携性是这类产品的最关键成功原因。

所谓便携性自然是指产品必须足够轻便而且需要有足够的续航能力,因此这就要求产品的原件必须足够省电,只有这样才能减少散热和电池体积这两个最占体积和重量的问题。因此对于传统的 CPU 由于功耗问题不能完全适用于手机、平板。

按照 ISA(指令集架构)划分,因为目前的手机、平板等移动设备的 CPU 无非是 ARM、Intel/AMD 两大阵营,而就是应为功耗的原因。在移动设备中ARM几乎占了统治的地位。 下面就通过对现在市场中的最新的两款ARM架构进行解析。

1 ARM Cortex-A15 内核微架构特点

和 Cortex-A9 相比,Cortex-A15 有非常明显的变化:

(1)整数流水线最短工位数达到 15 级,管芯面积占用比 Cortex-A9 高一倍。

(2)采用三路超标量微架构,可以每个周期取指四条指令,解码器每个周期可以为发送单元提供 3 条指令,而指令发射单元可以乱序提供最高 8 个微操作供执行单元运行。

相比之下,A9 的解码器只能每周期跑两条指令,派发单元每周期派发 4 个微操作给执行单元。

(3)Cortex-A15 的动态分支预测技术和 Cortex-A8/A9 差不多,但是 A15 引入了一个 64 条目的 microBTB,而此前的 A8/A9 并不具备这样的分层结构。动态分支预测能力是影响现代风格处理器的关键因素之一,像 Pentium 4 的 BTB 是 4K 条目,SandyBridge 据说达到 8K~16K。

虽然 A15 的两级 BTB 条目总数较 A8/A9 少,但是 A15 的 Return Stack 条目数从 8 条增加到了 18 条,取指带宽从之前的 64-bit 提升到 128-bit,而且完全支持边界非对齐地址的拾取。

(4)Cortex-A15 支持 VFPv4,具备硬件 FMA 指令执行,可以在同频下提供两倍的峰值浮点性能。此外,A15 还具备硬件除法指令,在 A9 上这需要接近 50 个周期来执行。

(5)A15 的周边总线为 AMBA4,128-bit master 界面,A9 的 AMBA3 的 master 界面是 64-bit。

(6)虽然 ARMv7 是 32-bit ISA,但是现在 Cortex-A15 支持 40-bit 物理定址(类似于当年的 Pentium Pro 和 Atlhon),而且 L1/L2 Cache 具备 ECC,因此理论上适用于服务器级应用。

(7)A15 和 A9 都有一个类似的 small loop 缓存,用于存放小循环,让执行单元无需访问指令 cache 就能抓到指令。在 A9 上它可以存放大小为 64 字节的指令。

而在 A15 上则是 32 条目,可以存放两条前转分支和一条后转分支,而且 A15 的 small loop 缓存存放的是已经解码的微操作,这意味着连解码步骤也能节省掉。

Cortex A15 的整数性能为 3.5~4.01 DMIPS/MHz,相比起 A9 的 2.5 DMIPS/MHz 和 A8 的 2.0 DMIPS/MHz 有明显的改进,不过因为三路超标量而带来的各种资源增加,A15 需要更先进的制程(32 纳米或更先进)才能在手机、平板上变得比较适用。

2 高通 Krait 内核微架构特点

Krait 微架构是高通第四代 Snapdragon(骁龙)处理器所搭配的 CPU 内核微架构,是 ARMv7 架构的实现,属于高通的 ARM 架构级授权、自行研发的处理器内核微架构。

Krait 的前身是 Scorpion,在产品布局上它和 Scorpion 有些类似,例如 Scorpion 定位于 Cortex-A8 和 Cortex-A9,而 Krait 的定位也是类似,即 Cortex-A9 和 Cortex-A15 之间,具备一些 Cortex-A15 的特征。

例如 L0 cache(Cortex-A15 上有类似作用的 loop buffer,相当于 L0 I-cache,指令调度器无需经过解码器就能抓到小循环的微操作指令)、三路超标量、VFP4 浮点单元、128-bit SIMD 处理能力(高通称 SIMD 单元为 VeNum,ARM 自己则称之为 NEON)以及基于 A15 同级的半导体制程节点。至于有人说 Krait 是 A9 的改进版,这样的观点我很难认同,它和 Scorpion 都类似于当年 DEC 获得 ARMv4 ISA 授权而自行研发的微架构。

不过另一方面,Krait 的乱序执行要逊色于 Cortex-A15,后者具备八个指令发射端口和八个执行端口,每一个执行端口都对应一个(准)保留站(有些类似于 AMD K7-K10),而 Krait 只有四个指令发射端口和七个执行端口,并且采用的是类似 Cortex-A9 或者说 Pentitum Pro 方式的单个大规模指令发射队列单元。

3 总结

由于电池和散热的限制,移动应用处理器不可能像台式处理器那样相对较少地考虑耗电问题,对移动应用处理器来说,所有的一切都得围绕一个词进行:省电。省电不只光靠制程上的改进,还有芯片本身的设计也是极为重要的,

参考文献

[1] 吴春华. 基于ARM和uClinux的嵌入式系统的构建研究[D]. 浙江大学 2004

[2] 续蕾. RISC架构下的ARM微处理器应用研究[J]. 计算机与信息技术. 2008(07)

摘要:由于电池和散热的限制,移动应用处理器不可能像台式处理器那样相对较少地考虑耗

电问题,对移动应用处理器来说,所有的一切都得围绕一个词进行:省电。。

关键词:ARM架构、ARM Cortex-A15、Krait

中图分类号: TP3 文献标识码:A 文章编号:1674-098X(2014)01(B)-0000-00

随着半导体工艺的日趋先进,智能手机(Smartphone 或者 Superphone)、平板电脑(Tablet 或者 Pad)已经成为许多网友最常使用、最多关注、更新最快的电子消费产品,高度便携性是这类产品的最关键成功原因。

所谓便携性自然是指产品必须足够轻便而且需要有足够的续航能力,因此这就要求产品的原件必须足够省电,只有这样才能减少散热和电池体积这两个最占体积和重量的问题。因此对于传统的 CPU 由于功耗问题不能完全适用于手机、平板。

按照 ISA(指令集架构)划分,因为目前的手机、平板等移动设备的 CPU 无非是 ARM、Intel/AMD 两大阵营,而就是应为功耗的原因。在移动设备中ARM几乎占了统治的地位。 下面就通过对现在市场中的最新的两款ARM架构进行解析。

1 ARM Cortex-A15 内核微架构特点

和 Cortex-A9 相比,Cortex-A15 有非常明显的变化:

(1)整数流水线最短工位数达到 15 级,管芯面积占用比 Cortex-A9 高一倍。

(2)采用三路超标量微架构,可以每个周期取指四条指令,解码器每个周期可以为发送单元提供 3 条指令,而指令发射单元可以乱序提供最高 8 个微操作供执行单元运行。

相比之下,A9 的解码器只能每周期跑两条指令,派发单元每周期派发 4 个微操作给执行单元。

(3)Cortex-A15 的动态分支预测技术和 Cortex-A8/A9 差不多,但是 A15 引入了一个 64 条目的 microBTB,而此前的 A8/A9 并不具备这样的分层结构。动态分支预测能力是影响现代风格处理器的关键因素之一,像 Pentium 4 的 BTB 是 4K 条目,SandyBridge 据说达到 8K~16K。

虽然 A15 的两级 BTB 条目总数较 A8/A9 少,但是 A15 的 Return Stack 条目数从 8 条增加到了 18 条,取指带宽从之前的 64-bit 提升到 128-bit,而且完全支持边界非对齐地址的拾取。

(4)Cortex-A15 支持 VFPv4,具备硬件 FMA 指令执行,可以在同频下提供两倍的峰值浮点性能。此外,A15 还具备硬件除法指令,在 A9 上这需要接近 50 个周期来执行。

(5)A15 的周边总线为 AMBA4,128-bit master 界面,A9 的 AMBA3 的 master 界面是 64-bit。

(6)虽然 ARMv7 是 32-bit ISA,但是现在 Cortex-A15 支持 40-bit 物理定址(类似于当年的 Pentium Pro 和 Atlhon),而且 L1/L2 Cache 具备 ECC,因此理论上适用于服务器级应用。

(7)A15 和 A9 都有一个类似的 small loop 缓存,用于存放小循环,让执行单元无需访问指令 cache 就能抓到指令。在 A9 上它可以存放大小为 64 字节的指令。

而在 A15 上则是 32 条目,可以存放两条前转分支和一条后转分支,而且 A15 的 small loop 缓存存放的是已经解码的微操作,这意味着连解码步骤也能节省掉。

Cortex A15 的整数性能为 3.5~4.01 DMIPS/MHz,相比起 A9 的 2.5 DMIPS/MHz 和 A8 的 2.0 DMIPS/MHz 有明显的改进,不过因为三路超标量而带来的各种资源增加,A15 需要更先进的制程(32 纳米或更先进)才能在手机、平板上变得比较适用。

2 高通 Krait 内核微架构特点

Krait 微架构是高通第四代 Snapdragon(骁龙)处理器所搭配的 CPU 内核微架构,是 ARMv7 架构的实现,属于高通的 ARM 架构级授权、自行研发的处理器内核微架构。

Krait 的前身是 Scorpion,在产品布局上它和 Scorpion 有些类似,例如 Scorpion 定位于 Cortex-A8 和 Cortex-A9,而 Krait 的定位也是类似,即 Cortex-A9 和 Cortex-A15 之间,具备一些 Cortex-A15 的特征。

例如 L0 cache(Cortex-A15 上有类似作用的 loop buffer,相当于 L0 I-cache,指令调度器无需经过解码器就能抓到小循环的微操作指令)、三路超标量、VFP4 浮点单元、128-bit SIMD 处理能力(高通称 SIMD 单元为 VeNum,ARM 自己则称之为 NEON)以及基于 A15 同级的半导体制程节点。至于有人说 Krait 是 A9 的改进版,这样的观点我很难认同,它和 Scorpion 都类似于当年 DEC 获得 ARMv4 ISA 授权而自行研发的微架构。

不过另一方面,Krait 的乱序执行要逊色于 Cortex-A15,后者具备八个指令发射端口和八个执行端口,每一个执行端口都对应一个(准)保留站(有些类似于 AMD K7-K10),而 Krait 只有四个指令发射端口和七个执行端口,并且采用的是类似 Cortex-A9 或者说 Pentitum Pro 方式的单个大规模指令发射队列单元。

3 总结

由于电池和散热的限制,移动应用处理器不可能像台式处理器那样相对较少地考虑耗电问题,对移动应用处理器来说,所有的一切都得围绕一个词进行:省电。省电不只光靠制程上的改进,还有芯片本身的设计也是极为重要的,

参考文献

[1] 吴春华. 基于ARM和uClinux的嵌入式系统的构建研究[D]. 浙江大学 2004

[2] 续蕾. RISC架构下的ARM微处理器应用研究[J]. 计算机与信息技术. 2008(07)

摘要:由于电池和散热的限制,移动应用处理器不可能像台式处理器那样相对较少地考虑耗

电问题,对移动应用处理器来说,所有的一切都得围绕一个词进行:省电。。

关键词:ARM架构、ARM Cortex-A15、Krait

中图分类号: TP3 文献标识码:A 文章编号:1674-098X(2014)01(B)-0000-00

随着半导体工艺的日趋先进,智能手机(Smartphone 或者 Superphone)、平板电脑(Tablet 或者 Pad)已经成为许多网友最常使用、最多关注、更新最快的电子消费产品,高度便携性是这类产品的最关键成功原因。

所谓便携性自然是指产品必须足够轻便而且需要有足够的续航能力,因此这就要求产品的原件必须足够省电,只有这样才能减少散热和电池体积这两个最占体积和重量的问题。因此对于传统的 CPU 由于功耗问题不能完全适用于手机、平板。

按照 ISA(指令集架构)划分,因为目前的手机、平板等移动设备的 CPU 无非是 ARM、Intel/AMD 两大阵营,而就是应为功耗的原因。在移动设备中ARM几乎占了统治的地位。 下面就通过对现在市场中的最新的两款ARM架构进行解析。

1 ARM Cortex-A15 内核微架构特点

和 Cortex-A9 相比,Cortex-A15 有非常明显的变化:

(1)整数流水线最短工位数达到 15 级,管芯面积占用比 Cortex-A9 高一倍。

(2)采用三路超标量微架构,可以每个周期取指四条指令,解码器每个周期可以为发送单元提供 3 条指令,而指令发射单元可以乱序提供最高 8 个微操作供执行单元运行。

相比之下,A9 的解码器只能每周期跑两条指令,派发单元每周期派发 4 个微操作给执行单元。

(3)Cortex-A15 的动态分支预测技术和 Cortex-A8/A9 差不多,但是 A15 引入了一个 64 条目的 microBTB,而此前的 A8/A9 并不具备这样的分层结构。动态分支预测能力是影响现代风格处理器的关键因素之一,像 Pentium 4 的 BTB 是 4K 条目,SandyBridge 据说达到 8K~16K。

虽然 A15 的两级 BTB 条目总数较 A8/A9 少,但是 A15 的 Return Stack 条目数从 8 条增加到了 18 条,取指带宽从之前的 64-bit 提升到 128-bit,而且完全支持边界非对齐地址的拾取。

(4)Cortex-A15 支持 VFPv4,具备硬件 FMA 指令执行,可以在同频下提供两倍的峰值浮点性能。此外,A15 还具备硬件除法指令,在 A9 上这需要接近 50 个周期来执行。

(5)A15 的周边总线为 AMBA4,128-bit master 界面,A9 的 AMBA3 的 master 界面是 64-bit。

(6)虽然 ARMv7 是 32-bit ISA,但是现在 Cortex-A15 支持 40-bit 物理定址(类似于当年的 Pentium Pro 和 Atlhon),而且 L1/L2 Cache 具备 ECC,因此理论上适用于服务器级应用。

(7)A15 和 A9 都有一个类似的 small loop 缓存,用于存放小循环,让执行单元无需访问指令 cache 就能抓到指令。在 A9 上它可以存放大小为 64 字节的指令。

而在 A15 上则是 32 条目,可以存放两条前转分支和一条后转分支,而且 A15 的 small loop 缓存存放的是已经解码的微操作,这意味着连解码步骤也能节省掉。

Cortex A15 的整数性能为 3.5~4.01 DMIPS/MHz,相比起 A9 的 2.5 DMIPS/MHz 和 A8 的 2.0 DMIPS/MHz 有明显的改进,不过因为三路超标量而带来的各种资源增加,A15 需要更先进的制程(32 纳米或更先进)才能在手机、平板上变得比较适用。

2 高通 Krait 内核微架构特点

Krait 微架构是高通第四代 Snapdragon(骁龙)处理器所搭配的 CPU 内核微架构,是 ARMv7 架构的实现,属于高通的 ARM 架构级授权、自行研发的处理器内核微架构。

Krait 的前身是 Scorpion,在产品布局上它和 Scorpion 有些类似,例如 Scorpion 定位于 Cortex-A8 和 Cortex-A9,而 Krait 的定位也是类似,即 Cortex-A9 和 Cortex-A15 之间,具备一些 Cortex-A15 的特征。

例如 L0 cache(Cortex-A15 上有类似作用的 loop buffer,相当于 L0 I-cache,指令调度器无需经过解码器就能抓到小循环的微操作指令)、三路超标量、VFP4 浮点单元、128-bit SIMD 处理能力(高通称 SIMD 单元为 VeNum,ARM 自己则称之为 NEON)以及基于 A15 同级的半导体制程节点。至于有人说 Krait 是 A9 的改进版,这样的观点我很难认同,它和 Scorpion 都类似于当年 DEC 获得 ARMv4 ISA 授权而自行研发的微架构。

不过另一方面,Krait 的乱序执行要逊色于 Cortex-A15,后者具备八个指令发射端口和八个执行端口,每一个执行端口都对应一个(准)保留站(有些类似于 AMD K7-K10),而 Krait 只有四个指令发射端口和七个执行端口,并且采用的是类似 Cortex-A9 或者说 Pentitum Pro 方式的单个大规模指令发射队列单元。

3 总结

由于电池和散热的限制,移动应用处理器不可能像台式处理器那样相对较少地考虑耗电问题,对移动应用处理器来说,所有的一切都得围绕一个词进行:省电。省电不只光靠制程上的改进,还有芯片本身的设计也是极为重要的,

参考文献

[1] 吴春华. 基于ARM和uClinux的嵌入式系统的构建研究[D]. 浙江大学 2004

[2] 续蕾. RISC架构下的ARM微处理器应用研究[J]. 计算机与信息技术. 2008(07)