处理器的体系结构定义了指令集(isa)和基于这一体系结构下处理器的程序员模型。尽管每个处理器性能不同,所面向的应用不同,每个处理器的实现都要遵循这一体系结构。arm体系结构为嵌入系统发展商提供很高的系统性能,同时保持优异的功耗和面积效率。
arm体系结构的发展。
arm体系结构为满足arm合作者以及设计领域的一般需求正稳步发展。
每一次arm体系结构的重大修改,都会添加极为关键的技术。在体系结构作重大修改的期间,会添加新的性能作为体系结构的变体。下面的名字表明了系统结构上的提升,后面附加的关键字表明了体系结构的变体。
v3结构32位地址。
t?thumb状态:16位指令。
m?长乘法支持(32*32=>64或者32*32+64=>64)。这一性质已经变成v4结构的标准配置。
v4结构加入了半字存储操作。
d?对调试的支持(debug)
i?嵌入的ice(incircuitemulation)
属于v4体系结构的处理器(核)有arm7,arm7100(arm7核的处理器),arm7500(arm7核的处理器)。
属于v4t(支持thumb指令)体系结构的处理器(核)有arm7tdmi,arm7tdmi-s(arm7tdmi可综合版本),arm710t(arm7tdmi核的处理器),arm720t(arm7tdmi核的处理器),arm740t(arm7tdmi核的处理器),arm9tdmi,arm910t(arm9tdmi核的处理器),arm920t(arm9tdmi核的处理器),arm940t(arm9tdmi核的处理器),strongarm(intel公司的产品)。
v5结构提升了arm和thumb指令的交互工作能力。
e?dsp指令支持。
j?j**a指令支持。
属于v5t(支持thumb指令)体系结构的处理器(核)有arm10tdmi,arm1020t(arm10tdmi核处理器)。
属于v5te(支持thumb,dsp指令)体系结构的处理器(核)有arm9e,arm9e-s(arm9e可综合版本),arm946(arm9e核的处理器),arm966(arm9e核的处理器),arm10e,arm1020e(arm10e核处理器),arm1022e(arm10e核的处理器),xscale(intel公司产品)。
属于v5tej(支持thumb,dsp指令,j**a指令)体系结构的处理器(核)有arm9ej,arm9ej-s(arm9ej可综合版本),arm926ej(arm9ej核的处理器),arm10ej。
v6结构增加了**指令。
属于v6体系结构的处理器核有arm11。arm体系结构中有四种特殊指令集:thumb指令(t),dsp指令(e),j**a指令(j),media指令,v6体系结构包含全部四种特殊指令集。
为满足向后兼容,armv6也包括了armv5的存储器管理和例外处理。这将使众多的第三方发展商能够利用现有的成果,支持软件和设计的复用。
新的体系结构并不是想取代现存的体系结构,使它们变得多余。新的cpu核和衍生产品将建立在这些结构之上,同时不断与制造工艺保持同步。例如基于v4t体系结构的arm7tdmi核还在广泛被新产品所使用。
新体系结构的发展动力。
下一代体系结构的发展是由不断涌现的新产品和变化的市场来推动的。关键的设计约束是显而易见的,功能,性能,速度,功耗,面积和成本必须与每一种应用的需求相平衡。保证领先的性能/功耗(mips/watt)在过去是arm成功的基石,在将来的应用中它也是一个重要衡量标准。
随着计算和通讯持续覆盖许多消费领域,功能也变得愈来愈复杂,消费者期望有高级的用户界面,多**以及增强的产品性能。armv6将更有效的对这些新性质和技术进行有效的支持。
驱动rmv6体系结构发展的市场主要有无线,网络,自动化和消费娱乐市场。arm在过去与体系结构的受权者和主要合作者像intel,microsoft,symbian和ti共同定义了armv6体系。
结构的需求。
armv6体系结构的提升。
发展armv6体系结构的过程中,精力主要集中在五个方面:
存储器管理。
存储器管理方式严重影响系统设计和性能。存储器结构的提升将大大提高处理器的整体性能-尤其是对于面向平台的应用。armv6体系结构可以提高取指(数据)效能。
处理器将花费更少的时间在等待指令和缓存未命中数据重装载上面。存储器管理的提升将使系统性能提升30%。
而且,存储器管理的提升也会提高总线的使用效率。更少的总线活动意味着功耗方面的节省。
多处理器。应用覆盖驱动系统实现向多处理器方向发展。无线平台,尤其是2。5g和3g,都是典型的需要整合多个arm处理器或arm与dsp的应用。
多处理器材通过共享内存来有效的共享数据。新的armv6在数据共享和同步方面的能力将使它更容易实现多处理器,以及提高它们的性能。新的指令使能复杂的同步策略,更大的提升了系统效能。
多**支持。
单指令流多数据流(simd)能力使得软件更有效地完成高性能的**应用像声音和图像编码器。armv6指令集合中加入了超过60个simd指令。
加入simd指令将使性能提高2倍到4倍。simd能力使发展商可以完成高端的像图象编码,语音识别,3d图象,尤其是与下一代无线应用相关的。
数据处理。数据的大小端问题是指数据以何种方式在存储器中被存储和引用。
随着更多的soc集成,单芯片不仅包含小端的os环境和界面(像usb,pci),也包含大端的数据(tcp/ip包,mpeg流)。armv6体系结构,支持混合。结果,数据处理问题在armv6体系结构中更为有效。
未对齐数据是指数据未与自然边界对齐。例如,在dsp应用中有时需要将字数据半字对齐。处理器更有效处理这种情形需要能够装载字到任何半字边界。
当前版本的体系结构需要大量指令处理未对齐数据。armv6兼容结构处理未对齐数据更有效。对于严重依赖未对齐数据的dsp算法,armv6体系结构将有性能的提高以及**数量的缩减。
未对齐数据支持将使arm处理器在**其它处理器像motorola的68000系列方面更有效。
与armv5的实现像arm10和xscale,armv6是基于32位处理器。armv6可以实现64位或64位以上的总线宽度。这使得总线等于甚至超过64位处理器,但功耗和面积却比64位cpu要低。
例外(exception)与中断。
对于实时系统来说,对于中断的效率是要求严格的。像硬盘控制器,引擎管理应用,这些应用中如果中断没有及时得到响应,那后果将是严重的。更有效的处理中断与例外也能提高系统整体表现。
在降低系统时尤为重要。
在armv6体系结构中,新的指令被加入了指令集合来提升中断与例外的实现。这些将有效提升特权模式下例外处理。
arm11主要性能。
arm11是armv6体系结构的第一个实现,arm11微结构的设计目的是为了高性能,而实现这一目的流水线是关键。arm11微结构的流水线与以前的arm核不同,它包含8级流水,使贯通率比以前的核提高40%。
单指令发射。
arm11微结构的流水线是标量的(scalar),即每次只发射一条指令(单发射)。有些流水线结构可以同时发射多条指令,例如,可以同时向alu和mac流水线发射指令。
理论上,多发射微结构会有更高的效能,但实践上,多发射微结构无疑会增加前段指令译码级的复杂程度,因为需要更多的逻辑来处理指令相关(dependency),这将使处理器的面积和功耗变得更大。
分支**。分支指令通常是条件指令,它们在跳到新指令前需要进行一些条件的测试。由于条件指令译码需要的条件码要三四个周期后才可能有结果,分支有可能引起流水线的延迟。
但分支**将会有助于避免这种延迟。
arm11微结构使用两种技术来**分支。首先,动态的**器使用历史记录来判断分支是最频繁发生,还是最不频繁发生。动态**器是一个64个分录,4状态(stronglytaken,weaklytaken,stronglynottaken,weaklynottaken)的分支目标地址缓存(btac)。
**大小足够保持最近的分支情况,分支**就基于以前的结果。其次,如果动态的分支**器没有发现记录,就使用静态的分支算法。很简单,静态**检查分支是向前跳转还是向后跳转。
假如是向后跳转,就假定它是一个循环,**该分支发生,假如是向前跳转,就**该分支不发生。
通过使用动态和静态的分支**,arm11微结构中分支指令中的85%被正确**。
存储器访问。
arm11微结构存储器系统的提高之一就是非阻塞(non-blocking)和缺失命中(hit-under-miss)操作。当指令取的数据不在缓存中时,一般处理器的流水线会停止下来,但arm11则进行非阻塞操作,缓存开始读取缺失的数据,而流水线可以继续执行下一指令(non-blocking),并且允许该指令读取缓存中的数据(hit-under-miss)。
并行流水线。
尽管流水线是单发射的,在流水线的后端还是使用了三个并行部件结构,alu,mac(乘加),ls(存取)。
ls流水线是专门用于处理存取操作指令。把数据的存取操作与数据算术操作的藕合性分隔开来可以更有效的处理执行指令。在流水线中包含ls部件的arm11微结构中,alu或者mac指令不会由于ls指令的等待而停止下来。
这也使得编译工具有更大的自由度通过重新安排**来提高性能。为使并行流水线获得更大的效能,arm11微结构使用了乱序完成(out-of-ordercompletion)。
64位数据路径。
对于目前的许多应用来说,由于成本与功耗的问题,真64位处理器并不十分必要。arm11微结构在局部合理使用64位结构,通过32位的成本来实现64位的性能。
arm11微结构在处理器整数部件与缓存之间,整数部件与协处理器之间使用了64位数据总线。64位的路径可以在一个周期内从缓存中读取两条指令,允许每周期传送两个arm寄存器的数据。这使得许多数据移动操作与数据加工操作变得更为高性能。
浮点处理。arm11微结构支持浮点处理。arm11微结构产品线将浮点处理单元作为一个选项。这可以方便发展商根据需求需用合适的产品。
ARM体系结构
arm的体系结构。arm是随机存取存储器的意思。arm的英文是advanced risc machines,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。首先说一下arm微处理器的特点 1 体积小 低功耗 低成本 高性能 2 支持thumb 16位 arm...
ARM体系结构版本
arm体系结构的版本。前面一段时间我搞过一次 mcu编译与运行 的专题,详细介绍从 编译到 运行以及中断机制的流程,这里想在编译部分补充一些知识点。对于嵌入式开发人员,搭建开发环境是比较困难的一步,市面上针对arm开发的ide非常多,有的编译器诸如ads或者mdk等老编译器并不支持arm11或者co...
ARM体系结构复习
冯洛伊曼计算机结构特点 计算机由运算器,存储器,控制器,输入设备和输出设备五部分组成。指令与数据以同等地位存放在存储器中,并可按地址对它们进行访问。指令在存储器中顺序存放。机器以运算器为中心,数据的传输必须通过运算器。实现risc 精简指令系统计算机 的方法。1 减少指令种类 risc的指令系统只提...