ARM流水线Figure1:The ARM7TDMI core and ARM7TDMI-S core pipelineThumb--ARMARMdecodeRegInstructionRegALUShiftdecompressFetchReadWriteReg SelectFETCHDECODEEXECUTE预取译码执行ARM7(Fetch)(Decode)(Execute)预取译码执行访存写回ARM9(Fetch)(Decode)(Execute)(Memory)(Write)预取发射译码执行访存写回ARM10(Fetch)(Issue)(Decode)(Write)(Execute)(Memory)发射转换预取预取执行访存写回译码ARM11(Fetch)(Fetch)(Issue)(Decode)(Snny)(Write)(Execute)(Memory)11/111Ilxx@ustc.edu.cn
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-statebranchtargetaddresscache)保存最近发生的跳转地址。StronglyTaken,WeaklyTaken,StronglynotTaken,WeaklynotTaken一静态预测·如果BTAC中没有记录,从跳转的方向判断是否执行。如果是向回跳转,大多数情况是遇到一个循环,则假设这条指令被执行。如果是向前跳转,则假设这条指令不被执行。一动态预测和静态预测的组合使ARM11能达到85%的预测正确性·每一个正确的预测,减少5个时钟周期的等待时间。单发射,多执行部件(ALU、MAC、LS)一消除指令间等待,类VLIW体系乱序执行12/111llxx@ustc.edu.cn
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 insideBarnesandNoble:Nookcolor-ARMProcessor:ARMCortex-A8量面-SiliconSupplier:TexasInstrumentsTIOMAP3621Amazon:KindleWi-FiARMProcessorFamily:ARM11SiliconSupplierFreescalei.MX353.Motorola:XOOM-ARMProcessor:Cortex-Ag-SiliconSupplier:NVIDIATegra2- Operating System:Android 3.0 (Honeycomb)·Hercules:eCAFETMSlimHDARMProcessor:Cortex-A8SiliconSupplier:Freescalei.MX515-Operating System:Hercules eCafeNetbook 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位指令重新编码ARMinstructionsetThumbinstructionsetExecuteFetchDecode stage15Stage31RecodingMux32-bit dataARMinstruetiorThumb instructionARMinstruetionThumb instructionThttmructlorThumbThumuetionInstructionMuxDecompressoARMinstructionTdecodeThumbA[1]Thumbstate代码尺寸小(upto40%compression)简化设计llxx@ustc.edu.cn14/111
Thumb体系结构 • Thumb指令集 ( ‘T’) 32位ARM指令集的子集,按16位指令重新编码 llxx@ustc.edu.cn 14/111 代码尺寸小 ( up to 40 % compression) 简化设计
Thumb的技术实现ARM7FetchExecuteDecodePipelineDecompress Thumb instructionARM7TFetchExecutetoARManddecodeARMPipelinellxx@ustc.edu.cn15/111
Thumb的技术实现 llxx@ustc.edu.cn 15/111