轻松读懂“应用处理器”微架构2013版10—18

上传人:自*** 文档编号:81013155 上传时间:2019-02-20 格式:DOC 页数:21 大小:723.51KB
返回 下载 相关 举报
轻松读懂“应用处理器”微架构2013版10—18_第1页
第1页 / 共21页
轻松读懂“应用处理器”微架构2013版10—18_第2页
第2页 / 共21页
轻松读懂“应用处理器”微架构2013版10—18_第3页
第3页 / 共21页
轻松读懂“应用处理器”微架构2013版10—18_第4页
第4页 / 共21页
轻松读懂“应用处理器”微架构2013版10—18_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《轻松读懂“应用处理器”微架构2013版10—18》由会员分享,可在线阅读,更多相关《轻松读懂“应用处理器”微架构2013版10—18(21页珍藏版)》请在金锄头文库上搜索。

1、第10页:ARM Cortex-A9 内核微架构特点 Cortex-A9 的代号为 Falcon,是在 ARM 公司在 2007 年 10 月 3 日发布的 IP core,距今大约有五个年头。 Cortex-Ax 这个名字中后缀 A 表示属于 Application(应用处理器),Cortex 另有 M 系列(即单片机或者微控制器)、R 系列(实时应用),这里显然是 A 系列的规格最高,具备 MMU(内存管理单元)。 基于 Cortex-A9 的芯片实现有前面提到的 NVIDIA Tegra 2/Tegra3、Apple A5/A5X 以及 TI OMAP4430/4440、ST-爱立信 N

2、ovaThor U8500/U9500/LT9540、STM SPEAr1310、三星 Orion/Exynos 4210、华为 K3V2、ZiiLabs ZMS-20/ZMS-40、Sony CXD5315GG(PSV)、联发科 MT6577、华为海思 K3V2 等等,是目前 Google Android 操作系统高端手机、智能平板阵营中最主流的 CPU 内核。 Cortex-A8 微架构 Cortex-A9 微架构 Cortex-A9 的前身是 Cortex-A8,它们同属于 ARMv7 ISA 的实现,和 Cortex-A8 相比,Cortex-A9 除了流水线更短、增加了专门的多核方案

3、等大家熟知的变化外,还具备多项改进。 1、Cortex-A9 拥有众多 RISC CPU 的先进特性,例如推测数据存取、动态分支预测、多指令发射、硬件 Cache 一致性、乱序执行、寄存器重命名,号称史上第一枚乱序执行移动处理器。 除了双指令发射和分支预测外,Cortex-A8 都并不具备,因此在 Cortex-A9 上汇编码优化、NEON SIMD 的重要性相对来说要低很多(经过调优的汇编码在 A8 上可以做到 10-30 倍性能,而 A9 一般只会有 2-5 倍,如果是 A9 使用 NEON C Intrinsics 的话性能基本上和汇编一样)。 2、Cortex-A9 的每条 L1 Ca

4、che Line 是 32 字节,Corte-A8 是 64 字节。Cache Line 又称作 data block(数据块)或者 Cache Block,Cache 每次更新都以固定大小的 Cache Line 为单位。 Cache Line 的大小主要影响命中率、内存存取效率、发生 Cache 命中缺失时候的性能惩罚时间。 3、Cortex-A9 的 L2 Cache 位于“核外”( ARM 对应的方案是 PL310 或者更新一点的 L2C-310),而 Cortex-A8 则是速度更快的核内 L2 Cache。 从对 Cortex-A8 1GHz(三星 Samsung Hummingb

5、ird,即 Exynos 3110)和 CortexA-A9 1.2GHz(三星 Exynos 4210)实测来看,A8/A9 的 L1 cache 延迟分别为 3 周期和 4 周期,L2 Cache 延迟(含 L1 Cache 延迟但是不含 L1/L2 TLB 命中缺失惩罚的情况下)分别为 13 周期和 23 周期。 4、Cortex-A9MPCore 的各内核 L1 Cache 采用了数据、代码分离式设计,L1 数据 Cache 具备硬件 Cache 一致性。各个内核共享外部 L2 Cache。 5、Cortex-A9 具备完整的 VFPv3 FPU,而 Cortex-A8 则只有缩水版的

6、 VFPlite,主要区别是 Cortex-A9 的大多数浮点操作都只需要 1 个周期,而 Cortex-A8 需要 10 个周期,因此 Cortex-A8 的浮点性能相当烂。 6、Cortex-A9 支持半精度(fp16),而 Cortex-A8 只支持 32-bit 单精度(FP32)和双精度(FP64),不过半精度在 CPU 级别的应用并不是很多见。 7、Cortex-A9 不能同时发射两条 NEON 指令,而 Cortex-A8 却能够实现 1 条 NEON L/S 指令搭配一条非 L/S NEON 指令。 8、Cortex-A8 的 NEON 单元位于 ARM 单元下游,所以 NEO

7、N 单元访问寄存器和内存更快,而且数据可以很快从 ARM 寄存器搬到 NEON/VFP 单元寄存器,但是将 NEON/VFP 寄存器数据搬到 ARM 寄存器的话就非常慢,会导致 Cortex-A8 的流水线停摆 20 个周期。 9、Cortex-A8 的 NEON 和 ARM 各有一个分离的 L/S 单元,如果一起对同一块 Cache Line 进行 Load 或者 Store 操作的话,会导致额外的 20 个周期延迟。 10、Cortex-A9 对多线程化同步采用 LDREX/STREX,不会杜塞所有的内核,而 Cortex-A8 对互斥使用简单的断禁制。 11、所有的 Cortex-A8

8、都集成了 NEON SIMD 单元,但是 Cortex-A9 则未必,例如 NVIDIA Tegra 2 就没有集成 NEON,不过 Tegra 3 则具备 NEON。 如果使用 7-zip(不包含任何浮点)实测来看,Cortex-A8 1GHz 的压缩(受内存时延、数据 Cache 大小和速度以及 TLB 影响较大)/解压缩(受 CPU 整数性能影响较大)性能相当于 Core i7 920 2.67GHz 的 3.5% 和 5.5%;而 Cortex-A9 双核则是 Core i7 920 的 8.8% 和 12.7%。 第11页:ARM Cortex-A15 内核微架构特点 代号 Eagl

9、e 的 Cortex-A15 是在 2012 年 9 月发布的 ARMv7 架构实现,是 ARM 首次引入三路指令解码的微架构 IP core,目前三星的 Exynos 5 5250(双核,32nm HKMG,1.7GHz)是市场上能看到的第一波 Cortex-A15 产品,Chromebook、Nexus 10(均在 2012 年 10 月发布)都采用了这枚芯片。 和 Cortex-A9 相比,Cortex-A15 有非常明显的变化: 1、整数流水线最短工位数达到 15 级,管芯面积占用比 Cortex-A9 高一倍。 2、采用三路超标量微架构,可以每个周期取指四条指令,解码器每个周期可以为

10、发送单元提供 3 条指令,而指令发射单元可以乱序提供最高 8 个微操作供执行单元运行。 相比之下,A9 的解码器只能每周期跑两条指令,派发单元每周期派发 4 个微操作给执行单元。 3、Cortex-A15 的动态分支预测技术和 Cortex-A8/A9 差不多,但是 A15 引入了一个 64 条目的 microBTB,而此前的 A8/A9 并不具备这样的分层结构。动态分支预测能力是影响现代风格处理器的关键因素之一,像 Pentium 4 的 BTB 是 4K 条目,SandyBridge 据说达到 8K16K。 虽然 A15 的两级 BTB 条目总数较 A8/A9 少,但是 A15 的 Ret

11、urn 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 物理定址(类似于当年的 P

12、entium Pro 和 Atlhon),而且 L1/L2 Cache 具备 ECC,因此理论上适用于服务器级应用。 7、A15 和 A9 都有一个类似的 small loop 缓存,用于存放小循环,让执行单元无需访问指令 cache 就能抓到指令。在 A9 上它可以存放大小为 64 字节的指令。 而在 A15 上则是 32 条目,可以存放两条前转分支和一条后转分支,而且 A15 的 small loop 缓存存放的是已经解码的微操作,这意味着连解码步骤也能节省掉。 这类似于 Intel 的做法:先在 Conroe 上引入 loop buffer,然后在 Nehalem 引入 uop loop

13、 buffer(28 条目),到了 SandyBridge 则彻底改成了 uop cache(1500 个 uop),逐步改进。 Cortex A15 的整数性能为 3.54.01 DMIPS/MHz,相比起 A9 的 2.5 DMIPS/MHz 和 A8 的 2.0 DMIPS/MHz 有明显的改进,不过因为三路超标量而带来的各种资源增加,A15 需要更先进的制程(32 纳米或更先进)才能在手机、平板上变得比较适用。 第12页:高通 Krait 内核微架构特点 上图是高通 2012 年 11 月于分析者日会议上公布的 AP 产品路线图 虽然 2012 年年初的时候 NVIDIA Tegra

14、3 大放异彩,但是到了临近年末的时候,高通的 Snapdragon 4 Pro APQ8064 却已经是成为了几乎所有性能导向新 Android 手机的主角,其中一个重要原因就是它采用的 Krait 微架构能提供对手不具备的特性。 Krait 微架构是高通第四代 Snapdragon(骁龙)处理器所搭配的 CPU 内核微架构,是 ARMv7 架构的实现,属于高通的 ARM 架构级授权、自行研发的处理器内核微架构。 Krait 的前身是 Scorpion,在产品布局上它和 Scorpion 有些类似,例如 Scorpion 定位于 Cortex-A8 和 Cortex-A9,而 Krait 的定

15、位也是类似,即 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 授权

16、而自行研发的微架构。 不过另一方面,Krait 的乱序执行要逊色于 Cortex-A15,后者具备八个指令发射端口和八个执行端口,每一个执行端口都对应一个(准)保留站(有些类似于 AMD K7-K10),而 Krait 只有四个指令发射端口和七个执行端口,并且采用的是类似 Cortex-A9 或者说 Pentitum Pro 方式的单个大规模指令发射队列单元。 微架构对比 ARM vs 高通 ARM11 ARM Cortex A8 ARM Cortex A9 ARM Cortex A15 Qualcomm Scorpion Qualcomm Krait 解码能力 单路 双路 双路 三路 双路 三路 整数流水线 8 级 13 级 8 级 15 级 10 级 11 级 乱序执行 否 否 是 是 部分 是 浮点单元 VFP11 (流水线式) VFPv3 (非流水线式) 可选 VFPv3 (流水线式) VFPv4 (流水线式) VFPv3 (流水线式) VFPv4 (流水线式) SIMD(NEON) 不具备 具备 (64-bit) 可选 MPE (64-bit) 具备 (128-bit)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号