ARMv6—决定性能的基础
ARMv6架构决定了可以达到高性能处理器的基础。总的来说,ARMv6架构通过以下几点来增强处理器的性能:
1.多媒体处理扩展 使MPEG4编码/解码加快一倍
音频处理加快一倍
2.增强的Cache结构
实地址Cache4
减少Cache的刷新和重载
减少上下文切换的开销
3.增强的异常和中断处理 使实时任务的处理更加迅速
4.支持Unaligned和Mixed-endian数据访问 使数据共享、软件移植更简单,也有利于节省存储器空间
对绝大多数应用来说,ARMv6保持了100%的二进制向下兼容,使用户过去开发的程序可以进一步继承下去。ARMv6保持了所有过去架构中的T(Thumb指令)和E(DSP指令)扩展,使代码压缩和DSP处理特点得到延续;为了加速Java代码执行速度的ARM Jazalle技术也继续在ARMv6架构中发挥重要作用。
编辑本段ARM11处理器的内核特点 ARM11处理器是为了有效的提供高性能处理能力而设计的。在这里需要强调的是,ARM并不是不能设计出运行在更高频率的处理器,而是,在处理器能提供超高性能的同时,还要保证功耗、面积的有效性。ARM11优秀的流水线设计是这些功能的重要保证。ARM11处理器的流水线和以前的ARM内核不同,它由8级流水线组成,比以前的ARM内核提高了至少40%的吞吐量。8级流水线可以使8条指令同时被执行。
从通常的角度说,过长的流水线往往会削弱指令的执行效率。一方面,如果随后的指令需要用到前面指令的执行结果作为输入,它就需要等到前面指令执行完。ARM11处理器通过forwarding来避免这种流水线中的数据冲突,它可以让指令执行的结果快速进入到后面指令的流水线中。另一方面,如果指令执行的正常顺序被打断(如出现跳转指令),普通流水线处理器往往要付出更大的代价,ARM11通过实现跳转预测技术来保持最佳的流水线效率。这些特殊技术的使用,使ARM11处理器优化到更高的流水线吞吐量的同时,还能保持和5级流水线(如ARM9处理器中的流水结构)一样的有效性。
跳转预测及管理 跳转指令通常都是条件执行的。问题在于那些决定是否跳转的条件要在跳转指令被译码的后3~4个周期才能就绪。如果不做特殊处理,跳转指令必须等待,这样使指令执行效率变得让人难以忍受。跳转预测就是用来帮助解决这种延迟的。ARM11处理器提供两种技术来对跳转作出预测—动态预测和静态预测。动态预测:在ARM11处理器中包含了64个4状态跳转地址缓存器(4-state branch target address cache)来保存最近发生的跳转指令的结果。通过对这些历史纪录的查找,处理器可以预测出当前的跳转指令是否会被执行。
静态预测:当在动态预测的缓存器中无法查到和当前指令匹配的记录,ARM11处理器就从跳转的方式来判断是否执行。如果是向回跳转,大多数情况是遇到一个循环,处理器会假设这条指令被执行。如果是向前跳转,处理器会假设这条指令不被执行。
动态预测和静态预测的组合使ARM11处理器能达到85%的预测正确性,对于每一个正确的预测,给指令执行带来的是减少5个时钟周期的等待时间。
增强的存储器访问 在ARM11处理器中,指令和数据可以更长时间的被保存在Cache中。一方面是由于物理地址Cache的实现,使上下文切换避免了反复重载Cache,另一方面是由于ARM11的Cache还有很多其它新颖的技术特点。如果数据的访问引起了CacheMiss,Cache将到存储器中读取需要的数据。但是ARM11处理器的流水线并不会停止下来。只要后面的指令没有用到Cache Miss将读回来的数据,ARM11处理器就会继续执行下去。即使下一条指令还是存储器访问指令,只要数据存放在Cache中,ARM11也会允许这条指令被执行。只有这条指令又引起一次CacheMiss,处理器才会停止下来。在大多数应用中,经过编译器调配后,这种情况并不多见。
流水线的并行机制 尽管ARM11是单指令发射处理器,但是在流水线的后半部分允许了极大程度的并行性。一旦指令被解码,将根据操作类型发射到不同的执行单元中。ARM11的数据通路中包含多个处理单元,允许ALU操作、乘法操作和存储器访问操作同时进行。考虑到不同的指令需要不同的执行时间,当三类指令先后被发射到流水线中,它们就可以同时被执行。而且ARM11处理器允许指令的乱续完成,如果在指令之间没有数据的相关性,所有指令都可以不必等待前面的指令完成而结束自己的执行。
64位的数据通道 在绝大多数的应用中,一个真正的64位处理器,在功耗面积的成本上还是不经济的。ARM11处理器展示了一种以32位处理器的成本,提供64位处理器性能的解决方案。ARM11处理中,内核和Cache,及协处理器之间的数据通路是64位的。这使处理器可以每周期读入两条指令或存放两个连续的数据,以大大提高数据访问和处理的速度。经过评测,这已经和64位处理器的性能相差无几。