ARM流水线 Figure 1 The ARM7TDMI core and ARM7TDMI-S core pipeline Instruction Thumb→ARM ARM decode Reg Shift ALU R的 Fetch decompress Reg Select Read Write FETCH DECODE EXECUTE 预取 译码 执行 ARM7 (Fetch) (Decode) (Execute) 预取 译码 执行 访存 写回 ARM9 (Fetch) (Decode) (Execute) (Memory) (Write) 预取 发射 译码 执行 访存 写回 ARM10 (Fetch) (Issue) Decode) (Execute) (Memory) (Write) 预取 预取 发射 译码 转换 执行 访存 写回 ARMII (Fetch) (Fetch) (Issue) (Decode) (Snny) (Execute) (Memory) (Write) llxx@ustc.edu.cn 11/111
ARM流水线 llxx@ustc.edu.cn 11/111 预取 (Fetch) 译码 (Decode) 执行 (Execute) 预取 (Fetch) 译码 (Decode) 执行 (Execute) 访存 (Memory) 写回 (Write) 预取 (Fetch) 译码 (Decode) 发射 (Issue) 预取 (Fetch) 预取 (Fetch) 执行 (Execute) 访存 (Memory) 写回 (Write) 译码 (Decode) 发射 (Issue) 执行 (Execute) 转换 (Snny) 访存 (Memory) 写回 (Write) ARM7 ARM9 ARM10 ARM11
ARM11流水线分支预测 ·分支预测 一动态预测 ·64个4状态跳转地址缓存器BTAC(4-state branch target address cache)保存最近发生的跳转地址。 StronglyTaken,WeaklyTaken,Strongly not Taken,Weakly not Taken -静态预测 ·如果BTAC中没有记录,从跳转的方向判断是否执行。 一如果是向回跳转,大多数情况是遇到一个循环,则假设这条指令被执行。 一如果是向前跳转,则假设这条指令不被执行。 -动态预测和静态预测的组合使ARM11能达到85%的预测正确性 ·每一个正确的预测,减少5个时钟周期的等待时间。 ·单发射,多执行部件(ALU、MAC、LS) -消除指令间等待,类VLIW体系 ·乱序执行 llxx@ustc.edu.cn 12/111
ARM11流水线分支预测 • 分支预测 – 动态预测 • 64个4状态跳转地址缓存器BTAC(4-state branch target address cache)保存最近发生的跳转地址。 – StronglyTaken,WeaklyTaken,Strongly not Taken,Weakly not Taken – 静态预测 • 如果BTAC中没有记录,从跳转的方向判断是否执行。 llxx@ustc.edu.cn 12/111 • BTAC – 如果是向回跳转,大多数情况是遇到一个循环,则假设这条指令被执行。 – 如果是向前跳转,则假设这条指令不被执行。 – 动态预测和静态预测的组合使ARM11能达到85%的预测正确性 • 每一个正确的预测,减少5个时钟周期的等待时间。 • 单发射,多执行部件(ALU、MAC、LS) – 消除指令间等待,类VLIW体系 • 乱序执行
ARM inside Barnes and Noble:Nookcolor -ARM Processor:ARM Cortex-A8 -Silicon Supplier:Texas Instruments TI OMAP3621 ·Amazon:Kindle Wi--Fi -ARM Processor Family:ARM11 Silicon Supplier Freescale i.MX353 ● Motorola:XOOM ARM Processor:Cortex-A9 Silicon Supplier:NVIDIA Tegra 2 Operating System:Android 3.0(Honeycomb) Hercules:eCAFETM Slim HD ARM Processor:Cortex-A8 Silicon Supplier:Freescale i.MX515 Operating System:Hercules eCafe Netbook OS(Linux)
ARM inside • Barnes and Noble:Nookcolor – ARM Processor: ARM Cortex-A8 – Silicon Supplier: Texas Instruments TI OMAP3621 • Amazon:Kindle Wi-Fi – ARM Processor Family: ARM11 – Silicon Supplier Freescale i.MX353 • Motorola:XOOM – ARM Processor: Cortex-A9 – Silicon Supplier: NVIDIA Tegra 2 – Operating System: Android 3.0 (Honeycomb) • Hercules:eCAFÉ™ Slim HD – ARM Processor: Cortex-A8 – Silicon Supplier: Freescale i.MX515 – Operating System: Hercules eCafe Netbook OS (Linux)
Thumb体系结构 ·Thumb指令集(T) ◆32位ARM指令集的子集,按16位指令重新编码 ARM instruction set Thumb instruction set Fetch Decode stage Execute 31 15 Stage Recoding ARM instruction Thumb instruction 32-bit data Mux ARM instruction Thumb instruction ARM instruction Thumb instruction Mux 16 ARM instruction Thumb instruction Thumb 16 Instruction ARM instruction Thumb instruction 16 Decompressor Mux ARM ARM instruction Thumb instruction instruction decode ARM instruction Thumb instruction A1] Thumb state ◆代码尺寸小(upto40%compression) ◆简化设计 llxx@ustc.edu.cn 14/111
Thumb体系结构 • Thumb指令集 ( ‘T’) 32位ARM指令集的子集,按16位指令重新编码 llxx@ustc.edu.cn 14/111 代码尺寸小 ( up to 40 % compression) 简化设计
Thumb的技术实现 ARM7 Pipeline FetchH Decode Execute ARM7T Decompress Thumb instruction Pipeline Fetch to ARM and decode ARM Execute llxx@ustc.edu.cn 15/111
Thumb的技术实现 llxx@ustc.edu.cn 15/111