[转]ARM-cortex处理器简介

 

1.1 ARM处理器系列
每个ARM处理器都有一个特定的指令集架构(ISA),而一个ISA版本又可以有多种处理器实现。ISA随着嵌入式市场的需求而发展,至今已经有多个版本。ARM公司规划该发展过程,使得在较早的架构版本上编写的代码也可以在后继版本上执行(即代码的兼容性)。

1.1.1 命名规则
早期ARM使用如图1.1所示的命名规则来描述一个处理器。在“ARM”后的字母和数字表明了一个处理器的功能特性。随着更多特性的增加,字母和数字的组合可能会改变。注意:命名规则不包含体系结构(ISA)的版本信息。

ARM {x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}
x——系列
y——存储管理/保护单元
z——cache
T——Thumb 16位译码器
D——JTAG调试器
M——快速乘法器
I——嵌入式跟踪宏单元
E——增强指令(基于TDMI)
J——Jazelle
F——向量浮点单元
S——可综合版本
图1.1 早期ARM命名规则

关于ARM命名法则,还有一些附加的要点:
 ARM7TDMI之后的所有ARM内核,即使“ARM”标志后没有包含那些字符,也都包括了TDMI功能特性。
 处理器系列是共享相同硬件特性的一组处理器具体实现。例如,ARM7TDMI、ARM740T和ARM720T都共享相同的系列特性,都属于ARM7系列。
 JTAG是由IEEE1149.1标准测试访问端口(Standard Test Access
Port)和边界扫描结构来描述的。它是ARM用来发送和接收处理器内核与测试仪器之间调试信息的一系列协议。
 嵌入式ICE宏单元(EmbeddedICE macrocell)是建立在处理器内部用来设置断点和观察点的调试硬件。
 可综合的——意味着处理器内核是以源代码形式提供的,这种源代码形式又可以被编译成一种易于EDA工具使用的形式。

随着近年来ARM架构的产品爆炸性地涌入市场,以及对于维护架构一致性的高层次的要求,ARM重新组织了ARM架构的规范,定义了以ARM v7架构的Cortex系列。

1.1.2 ARM处理器系列
ARM公司设计了许多处理器,它们可以根据使用的不同内核划分到各个系列中。系列划分是基于ARM7、ARM9、ARM10、ARM11和Cortex内核。后缀数字7、9、10和11表示不同的内核设计。数字的升序说明性能和复杂度的提高。ARM8开发出来以后很快就被取代了。
在每个系列中,存储器管理、cache和TCM处理器扩展也有多种变化。ARM继续在可用的产品系列和每个系列内部的不同变种两方面做进一步开发。
表1.1总结了各种处理器的不同功能特性。值得注意的是,指令集架构(
ISA)是体现CPU核性能特点的重要因素,如采用v5TEJ架构的ARM926EJ-S与采用v4T架构的
ARM920T处理器,在相同的工作频率下,前者的处理能力要高得多。

表1.1 ARM处理器不同功能特性






a: E扩展提供了增强的乘法指令和饱和运算指令(DSP)

1.1.2.1 ARM7系列
ARM7内核是冯•诺伊曼体系结构,数据和指令使用同一条总线。内核有一条3级流水线,执行ARMv4指令集。
ARM7TDMI是ARM公司于1995年推出的新系列中的第一个处理器内核。是目前一个非常流行的内核,已被用在许多32位嵌入式处理器上。它提供了非常好的性能——功耗比。ARM7TDMI处理器内核已经许可给许多世界顶级半导体公司,它是第一个包括Thumb指令集、快速乘法指令和嵌入式ICE调试技术的内核。
ARM7系列中一个重要的变化是ARM7TDMI-S。ARM7TDMI-S与标准ARM7TDMI有相同的操作特性,但它是可综合的(见2.6.1小节)。
ARM720T是ARM7系列中最具灵活性的成员,因为它包含了一个MMU。MMU的存在意味着ARM720T能够处理Linux和Microsoft嵌入式操作系统(如WinCE)。这一处理器还包括了一个8KB的统一cache(指令/数据混合cache)。向量表可以通过设置一个协处理器15(CP15)寄存器来重定位到更高的地址。
另一个成员是ARM7EJ-S处理器,它也是可综合的。ARM7EJ-S与其他ARM7处理器有很大不同,因为它有一条5级流水线,并且执行ARMv5TEJ指令。这个版本是ARM7中唯一一个提供java加速和增强指令,而没有任何存储器保护的处理器。

1.1.2.2 ARM9系列
ARM9系列于1997年问世。由于采用了5级指令流水线,ARM9处理器能够运行在比ARM7更高的时钟频率上,提高了处理器的整体性能。存储器系统根据哈佛体系结构重新设计,区分了数据D和指令I总线。
ARM9系列的第一个处理器是ARM920T,它包含独立的D+I
cache和一个MMU。这个处理器能够被用在要求有虚拟存储器(虚存)支持的操作系统上。ARM922T是ARM920T的变种,只有一半大小的D+I cache。
ARM940T包括一个更小的D+I cache和一个MPU。它是针对不要求运行平台操作系统的应用而设计的。ARM920T和ARM940T都执行v4T架构指令。
ARM9系列的下一个处理器是基于ARM9E-S
内核的。这个内核是ARM9内核带有E扩展的一个可综合版本。它有二个变种:ARM946E-S和ARM966E-S。两者都执行v5TE架构指令。它们也支持可选的嵌入式跟踪宏单元(ETM),它允许开发者实时跟踪处理器上指令和数据的执行。当调试对时间敏感(time-critical)的程序段时,这种方法非常重要。
ARM946E-S包括TCM、cache和一个MPU。TCM和cache的大小可配置。该处理器是针对要求有确定的实时响应的嵌入式控制应用而设计的。而ARM966E有可配置的TCM,但没有MPU和cache扩展。
ARM9产品线的最新内核是ARM926EJ-S可综合的处理器内核,发布于2000年。它是针对小型便携式java设备,诸如3G手机和个人数字助理(PDA)应用而设计的。ARM926EJ-S是第一个包含Jazelle技术(可加速java字节码的执行)的ARM处理器内核。它还有一个MMU、可配置的TCM,以及具有零或非零等待存储器的D+I
cache。

1.1.2.3 ARM10系列
ARM10发布于1999年,主要是针对高性能的设计。它把ARM9的流水线扩展到6级,也支持可选的向量浮点单元(VFP),它对ARM10的流水线加入了第7段。VFP明显提高了浮点运算的性能,并与IEEE754.1985浮点标准兼容。
ARM1020E是第一个使用ARM10E内核的处理器。像ARM9E一样,它包括了增强的E指令。它有独立的32KB D+I
cache、可选向量浮点单元(VFP),以及MMU。ARM1020E还有一个双64位总线接口以提高性能。
ARM1026EJ-S非常类似于ARM926EJ-S,但同时具有MPU和MMU。这一处理器具有ARM10的性能和ARM926EJ-S的灵活性。

1.1.2.4 ARM11系列
ARM1136J-S发布于2003年,是针对高性能和高能效应用而设计的。ARM1136J-S是第一个执行ARMv6架构指令的处理器。它集成了一条具有独立的load-store和算术流水线的8级流水线。ARMv6指令包含了针对媒体处理的单指令流多数据流(SIMD)扩展,特殊的设计以提高视频处理性能。
ARM1136JF-S就是为了进行快速浮点运算,而在ARM1136J-S增加了向量浮点单元。

1.1.2.5 ARM Cortex系列
ARM Cortex发布于2005年,为各种不同性能需求的应用提供了一整套完整的优化解决方案,该系列的技术划分完全针对不同的市场应用和性能需求。目前ARM
Cortex定义了三个系列:

Cortex-A系列:针对复杂OS和应用程序(如多媒体)的应用处理器。支持ARM、Thumb和Thumb-2指令集,强调高性能与合理的功耗,存储器管理支持虚拟地址。

Cortex-R系列:针对实时系统的嵌入式处理器。支持ARM、Thumb和Thumb-2指令集,强调实时性,存储器管理只支持物理地址。

Cortex-M系列:针对价格敏感应用领域的嵌入式处理器,只支持Thumb-2指令集,强调操作的确定性,以及性能、功耗和价格的平衡。

这些系列曾在ARMv7发展过程中被正式介绍过,A系列和R系列就已经隐式地出现在早期的版本中了,以及虚拟存储系统架构(VMSA)和保护存储系统架构(PMSA)。
到目前为止,Cortex系列正式发布的版本为Cortex-A8、Cortex-R4和Cortex_M3,他们全部实现了Thumb-2指令集(或子集),可满足不同的性能、价格市场需求。

 

 

(转自  http://www.wikore.com/bbs/viewthread.php?tid=562)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值