历史上的今天
返回首页

历史上的今天

今天是:2024年12月26日(星期四)

正在发生

2019年12月26日 | ARM命名规则

2019-12-26 来源:eefocus

ARM==Advanced RISC Machines


    它开创了一种崭新的商业模式,实现了无厂房式工厂,依靠出售芯片技术知识产权的授权来盈利。

    其次,ARM是一种architecture,同MIPS、PowerPC、X86等并列。谈到架构,这实际上本身就是一个很复杂的概念。就现在的理解来看,架构是一种系统设计蓝图,规划了方方面面的技术规范。应该说,架构是理论,那么采用同样的架构,实现的形式可以不相同。这也就是为什么同一架构会有那么多衍生的处理器实现。

    ARM可以看作是一种技术,是RISC的代表。 应该说,ARM公司位于产业链的最上层,盈利也最多。中国国内的一些OEM厂商,只是处于下游的小鱼,盈利有限。中国的信息产业要想发展,就必须有自己的核心技术。写到这里,希望龙芯带给我们的,是梦想的接近,甚至是实现!(龙芯是兼容MIPS架构)

二、命名规则


这里提到的命名规则,应该分成两类。
一类是基于ARM Architecture的版本命名规则;
另一类是基于ARM Architecture版本的处理器系列命名规则。

Naming of ARM Architecture versions
| ARMv | n | variants | x(variants) | 
分成四个组成部分:
    ARMv -- 固定字符,即ARM Version
    n -- 指令集版本号。迄今为之,ARM架构版本发布了7个系列,所以n=[1:7]。其中最新的版本是第7版,具体看ARM官方网站。
    variants -- 变种。
    x(variants) -- 排除x后指定的变种
常见的变种有:
    T -- Thumb指令集
    M -- 长乘法指令
    E -- 增强型DSP指令
    J -- Java加速器Jazelle
    SIMD -- ARM媒体功能扩展

例如,ARMv5TxM表示ARM指令集版本为5,支持T变种,不支持M变种。

Naming of ARM Processor
    采用上述的架构,形成一系列的处理器。有时候还要区分处理器核和处理器系列。不过,在这里其实不用区分太细,毕竟这是功能的小部分的变化,核心是相同的。
    规则:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}
    x -- 处理器系列
    y -- 存储管理/保护单元
    z -- cache
    T -- 支持Thumb指令集
    D -- 支持片上调试
    M -- 支持快速乘法器
    I -- 支持Embedded ICE,支持嵌入式跟踪调试
    E -- 支持增强型DSP指令
    J -- 支持Jazelle
    F -- 具备向量浮点单元VFP
    -S -- 可综合版本

ARM体系结构处理器自诞生以来,不断发展与创新,ARM体系的指令集功能形成了多种版本,为了适合不同的应用场合,各个版本又增加了新的变种,这些变种为该版本的指令集增加了新的功能。不同版本的指令集应用于不同的处理器,这也就形成了ARM处理器系列,ARM系列处理器不同版本实现技术、性能、应用场合个不相同。


ARM体系结构的基本版本
1 版本1
    该版本的原型机是ARM1,没有用于商业产品。 包括下列指令:
除乘法指令之外的基本的数据处理指令。
基于字节、字和多字的存储器访问指令(Load/Store)。
包括子程序调用指令BL在内的跳转指令。
供操作系统使用的软件中断指令SWI。
本版本中地址空间是26位,目前已经不再使用。


2 版本2
    对V1版进行了扩展,包含了对32位结果的乘法指令和协处理器指令的支持。
版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。版本2a增加了合并Load和Store(SWP)指令。
与版本V1相比,增加了以下指令:
乘法指令和乘加指令。
支持协处理器操作指令。
对于FIQ模式,提供了额外的两个备份寄存器。
SWP指令和SWPB指令。
本版本中地址空间是26位,目前已经不再使用。


3 版本3
    ARM公司第一个微处理器ARM6核心是版本3的,它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。 


版本3的变种版本有版本3G和版本3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。 


版本3版较以前的版本有较大的改动,主要包括:
处理器的地址空间扩展到32位,但除了版本3G外的其他版本是向前兼容的,支持26位的地址空间。
当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register)。
增加了程序状态保存寄存器SPSR(Saved Program Status Register)。
增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。
增加了MRS/MSR指令,用于访问新增的CPSR/SPSR寄存器。
修改了原来的从异常中返回的指令。


4 版本4
版本4增加了下列指令:
有符号和无符号的半字读取和写入指令。
带符号的字节读取和写入指令。
增加了处理器的系统模式(特权模式)。在该模式下,使用的是用户模式下的寄存器。
为结构定义的操作预留一些SWI(软中断指令)空间。


版本4中明确定义了哪些指令会引起未定义指令异常,不再强制要求与以前的26位地址空间兼容。


ARMv4T在ARMv4的基础上增加了Thumb指令集:处理器有了Thumb状态,并且有了在ARM状态和Thumb状态切换的指令,处理器在ARM状态执行ARM指令集,在Thumb状态执行Thumb指令集。


ARMv4和ARMv4T结构的处理器得到了广泛的应用。SA-110、SA-1110等是基于ARMv4的;ARM7TDMI、ARM720T、ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。


5 版本5
版本5在版本4的基础上增加或修改以下指令:
提高了T变种中ARM/Thumb混合使用的效率。
对于T变种的指令和非T变种的指令使用相同的代码生成技术。
增加了前导零计数(CLZ)指令,该指令可以使整数除法和中断优先级排队操作更为有效。
增加了软件断点(BKPT)指令。
为协处理器设计提供了更多可选择的指令。
更加严格的定义了乘法指令对条件标志位的影响。
带状态切换的子程序调用(BLX)指令。


版本5包括v5TE和v5TEJ,v5TE在v5T的基础上增加了信号处理(DSP)指令集,v5TEJ除了具备v5T的功能外,还可以执行JAVA字节代码,是在ARM上执行JAVA指令的效率提高了5-10倍,并且降低了功耗。


ARM1020T 是ARMv5T的。
ARM9E-S、ARM966E-S、ARM1020E、ARM 1022E以及XScale是ARMv5TE的。
ARM9EJ-S、ARM926EJ-S、ARM7EJ-S、ARM1026EJ-S是基于ARMv5EJ的。


6 版本6
    ARM体系版本6是2001年发布的。其目标是在有效的芯片面积上为嵌入式系统提供更高的性能。ARMv6 包含了ARMv5TEJ的所有指令。为了使现有的软件,开发方法、设计技术可再利用,ARMv6兼容了ARMv5的内存管理和异常处理。ARMv6主要在多媒体处理、存储器管理、多处理器支持、数据处理、异常和中断响应等方面做了改进。


SIMD(单指令多数据)指令,可使音视频处理能力提高2-4倍。
Thumb-2新指令集,混合执行AMR和Thumb代码,可以提供ARM指令级别的性能和Thumb指令级别的代码密度。
混合大小端和非对齐存储访问支持
TrustZone安全技术,在硬件上提供可信区域和不可信区域,两个区域里运行的代码有不同的权限。让经过认证的代码运行在可信区域,未经过认证的代码运行在不可信区域,从而提高系统的安全性。


采用ARMv6核的处理器是ARM11系列。
ARM1136J(F)-S基于ARMv6主要特性有SIMD、Thumb、Jazelle、DBX、(VFP)、MMU。
ARM1156T2(F)-S基于ARMv6T2 主要特性有SIMD、Thumb-2、(VFP)、MPU。
ARM1176JZ(F)-S基于ARMv6KZ 在 ARM1136EJ(F)-S 基础上增加MMU、TrustZone。
ARM11 MPCore基于ARMv6K 在ARM1136EJ(F)-S基础上可以包括1-4 核SMP、MMU。


7 版本7
2004年发布了新的ARMv7体系结构。全新的ARMv7是基于ARMv6的,ARMv7采用了Thumb-2技术,体积比32位ARM代码减小31%,性能比16位Thumb代码高出38%。同时,ARMv7保持了对已有ARM代码的兼容性。此外,ARMv7还支持改良的运行环境,以迎合不断增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技术的使用。


ARMv7的增加的特性有:
改进的Thumb-2指令集。
NEON多媒体技术,将DSP和多媒体处理能力提高了近4倍。
VFPv3改良的浮点运算。
动态编译支持。
ARM体系结构的变种


1 Thumb指令集(T变种)
Thumb指令集是将ARM指令集中的一部分指令重新编码形成的一个子集, Thumb指令长度是16位的。使用Thumb指令可以得到比ARM指令更高的代码密度,这有助于减小系统的存储器容量,从而降低系统的成本。另外,对于数据线是8或16位的系统,使用Thumb指令集可以取得好于使用ARM指令集的性能。在ARM体系命名中通用“T”来表示该版本支持Thumb指令集。在ARMv4T中使用v1版Thumb指令集;ARMv5T使用v2版的Thumb指令集。和Thumb v1相比Thumb v2 具有如下特点:


通过对指令的修改,来提高ARM指令和Thumb指令混合使用是的效率。
增加软件断点指令。
严格定义了Thumb乘法指令对条件标志位的影响。


与ARM指令集相比,Thumb指令集具有以下局限性:
完成相同的操作,Thumb指令通常需要更多的指令。
humb指令集没有包含进行异常处理时需要的一些指令,异常返回时需要从ARM状态返回。    


2 长乘法指令(M变种)
M变种增加了两条用于进行长乘法的ARM指令。其中一条用于实现32位整数乘以32位整数,生成64位整数的长乘法操作;另一条指令用于实现32位整数乘以32位位整数,然后加上32位整数,生成64位整数的长乘加操作。


3 增强型DSP指令(E变种)
E变种包含了一些附加的指令,这些指令用于增强处理器对一些典型的DSP算法的处理性能。主要包括:
几条新的实现16位数据乘法和乘加操作的指令
实现饱和的带符号数的加减法操作的指令。所谓饱和的带符号数的加减法操作是在加减法操作溢出时,结果并不进行卷绕(Wrapping around),而是使用最大的整数或最小的负数来表示。

进行双字数据操作的指令,包括双字读取指令LDRD、双字写入指令STRD和协处理器的寄存器传输指令MCRR/MRRC。
Cache预取指令PLD


4 Java加速器Jazelle(J变种)
ARM的Jazelle技术将Java的优势和先进的32位RISC芯片完美地结合在一起。Jazelle技术提供了Java加速功能,可以得到比普通Java虚拟机高得多的性能。与普通的Java虚拟机相比,Jazelle使代码运行速度提高了8倍,而且功耗降低了80%,Jazelle技术使得程序员可以在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统、中间件以及其他的应用程序。与使用协处理器和双处理器相比,使用单独得处理器可以在提供高性能的同时,保证低功耗和低成本。ARM体系版本4TEJ最早包含了J变种,用字符J表示J变种。


5 SIMD变种(ARM媒体功能扩展)
  ARM媒体功能扩展SIMD技术极大地提高了嵌入式应用系统的音频和视频处理器能力,它可使微处理器的音频和视频性能提高4倍。新一代的Internet应用产品、移动电话和PDA等设备终端需要提供高性能的流式媒体,包括音频和视频等。而且这些设备需要提供更加人性化的界面,包括语言输入和手写输入等。这样,就对处理器的数字信号处理能力提出了很高的要求,同时还必须保证低功耗。ARM的SIMD媒体功能扩展为这些应用系统提供了解决方案,它为包括音频和视频处理在内的应用系统提供了优化功能,其主要特点如下:


●使处理器的音频和视频处理的性能提高了2~4倍。
●可同时进行2个16位操作数或者4个8位操作数的运算。
●用户可自定义饱和运算的模式。
●可进行2个16位操作数的乘加/乘减运算及32位乘以32位的小数乘加运算。

●同时8 /16位选择操作。


    ARM11是基于ARMv6架构建成的。基于ARMv6架构的处理器包括ARM1136J(F)‐S,ARM1156T2(F)‐S,以及ARM1176JZ(F)‐S。ARMv6是ARM进化史上的一个重要里程碑:从那时候起,许多突破性的新技术被引进,存储器系统加入了很多的崭新的特性,单指令流多数据流(SIMD)指令也是从v6开始首次引入的。而最前卫的新技术,就是经过优化的Thumb‐2指令集,它专为低成本的单片机及汽车组件市场。


基于从ARMv6开始的新设计理念,ARM进一步扩展了它的CPU设计,成果就是ARMv7架构的闪亮登场。在这个版本中,内核架构首次从单一款式变成3种款式。
1)款式A:设计用于高性能的"开放应用平台"--越来越接近电脑了。
2)款式R:用于高端的嵌入式系统,尤其是那些带有实时要求的--又要快又要实时。
3)款式M:用于深度嵌入的,单片机风格的系统中--本书的主角。


让我们再进距离地考察这3种款式:
1)款式A(ARMv7‐A):需要运行复杂应用程序的"应用处理器"。支持大型嵌入式操作系统,比如Symbian,Linux,以及微软的WindowsCE和智能手机操作系统WindowsMobile。这些应用需要劲爆的处理性能,并且需要硬件MMU实现的完整而强大的虚拟内存机制,还基本上会配有Java支持,有时还要求一个安全程序执行环境。典型的产品包括高端手机和手持仪器,电子钱包以及金融事务处理机。
2)款式R(ARMv7‐R):硬实时且高性能的处理器。标的是高端实时市场。那些高级的玩意,像高档轿车的组件,大型发电机控制器,机器手臂控制器等,它们使用的处理器不但要很好很强大,还要极其可靠,对事件的反应也要极其敏捷。
3)款式M(ARMv7‐M):认准了旧世代单片机的应用而量身定制。在这些应用中,尤其是对于实时控制系统,低成本、低功耗、极速中断反应以及高处理效率,都是至关重要的。
Cortex系列是v7架构的第一次亮相,其中Cortex‐M3就是按款式M设计的。


到目前为止,Cortex‐M3也是款式M中被抚养成人的独苗。其它Cortex家族的处理器包括款式A的Cortex‐A8(应用处理器),款式R的Cortex‐R4(实时处理器)。


处理器命名法
    以前,ARM使用一种基于数字的命名法。在早期(1990s),还在数字后面添加字母后缀,用来进一步明细该处理器支持的特性。就拿ARM7TDMI来说,T代表Thumb指令集,D是说支持JTAG调试(Debugging),M意指快速乘法器,I则对应一个嵌入式ICE模块。后来,这4项基本功能成了任何新产品的标配,于是就不再使用这4个后缀--相当于默许了。但是新的后缀不断加入,包括定义存储器接口的,定义高速缓存的,以及定义"紧耦合存储器(TCM)"的,于是形成了新一套命名法,这套命名法也是一直在使用的。 


表一:ARM处理器名字 
Jazelle是ARM处理器的硬件Java加速器。
MMU,存储器管理单元,用于实现虚拟内存和内存的分区保护,这是应用处理器与嵌入式处理器的分水岭。电脑和数码产品所使用的处理器几乎清一色地都带MMU。但是MMU也引入了不确定性,这有时是嵌入式领域--尤其是实时系统不可接受的。然而对于安全关键(safety‐critical)的嵌入式系统,还是不能没有内存的分区保护的。为解决矛盾,于是就有了MPU。可以把MPU认为是MMU的功能子集,它只支持分区保护,不支持具有"定位决定性"的虚拟内存机制。


到了架构7时代,ARM改革了一度使用的,冗长的、需要"解码"的数字命名法,转到另一种看起来比较整齐的命名法。比如,ARMv7的三个款式都以Cortex作为主名。这不仅更加澄清并且"精装"了所使用的ARM架构,也避免了新手对架构号和系列号的混淆。

推荐阅读

史海拾趣

Deutronic Elektronik GmbH公司的发展小趣事

为了进一步提升竞争力,Deutronic Elektronik GmbH开始实施全球化战略。公司在美国和中国设立了子公司,并通过并购等方式加强了在欧洲和亚洲市场的布局。这些举措不仅增强了公司的市场影响力,还为公司带来了更多的资源和优势。通过全球化战略的实施,Deutronic Elektronik GmbH逐渐成为一家具有全球影响力的电子科技企业。

Cypress Industries公司的发展小趣事

Cypress Semiconductor于1982年在美国加州的硅谷成立,这里是全球半导体行业的发源地之一。公司起初专注于高性能IC产品的研发和生产,为数据传输、远程通讯等领域提供解决方案。随着技术的不断发展和市场的扩大,Cypress逐渐将业务拓展至全球,并在多个国家和地区建立了生产基地和设计中心。

Hitachi Metals公司的发展小趣事

面对数字化浪潮的冲击,Hitachi Metals积极拥抱变革,致力于数字化转型。公司推出了全球级别的物联网平台Lumada,该平台能够为客户提供从企业扩建、价值核查到设备和系统管理的全方位解决方案。Lumada平台的成功应用不仅提升了日立金属自身的运营效率和管理水平,还为客户带来了显著的价值增长。通过Lumada平台,日立金属与全球范围内的合作伙伴建立了更加紧密的联系,共同推动电子行业的数字化转型进程。

BETA Transformer Technology Corp公司的发展小趣事

BETA Transformer Technology Corp公司在成立初期就凭借其创新性的变压器技术,在电子行业中崭露头角。公司研发团队不断突破传统变压器的设计局限,推出了一系列高效、稳定的变压器产品,赢得了客户的广泛认可。随着市场需求的不断增长,BETA公司逐渐扩大了生产规模,提高了产能,成为行业内的领军企业。

BNS Solutions公司的发展小趣事

随着电子行业的不断发展,新技术和新应用层出不穷。BNS Solutions公司紧跟时代步伐,不断加大研发投入,推动技术创新。公司团队不断探索新技术、新材料的应用,开发出了一系列具有创新性和前瞻性的电子产品。这些产品不仅提高了行业的整体技术水平,还引领了行业变革的潮流。通过持续创新,BNS Solutions公司在电子行业中保持了领先地位,成为了行业的佼佼者。

EDDING公司的发展小趣事

Eclipse的成功吸引了众多软件和硬件公司的注意。为了进一步扩大Eclipse的影响力和功能,ECLIPSE公司积极寻求与其他公司的合作伙伴关系。通过与IBM、Oracle、Red Hat等公司的合作,Eclipse得以集成更多的功能和工具,提高了其适应性和易用性。这些合作伙伴关系不仅为ECLIPSE公司带来了技术上的支持,也为其带来了更多的商业机会和市场份额。

问答坊 | AI 解惑

硅技术引领汽车设计时代

摘  要:随着科技的不断向前发展,汽车电子化程度也越来越高,半导体技术也随之崛起。本文详尽的描述了硅技术的进步,微控制器在汽车应用上的发展以及硅产品在汽车网络所发挥的巨大潜力。最后作者希望汽车制造商和半导体生产商能够密切合作为 ...…

查看全部问答>

FOCS在煤调自动化系统中的应用

湘潭钢铁集团公司(以下简称湘钢)煤气调度系统在改造前使用的都是 型淘汰仪表,截至改造前安装的 /0 块仪表因!电缆等原因已全部瘫痪。“六五”以来湘钢经过几次大的改造煤气用户大量增加,煤气测量点由原来的 12 多点已增至近/22 点,显然现有的煤 ...…

查看全部问答>

建议一点

建议把资料共享区和技术交流区分开,通常下资料的都只是灌水,和技术交流混在一起感觉不便于聚集人气!…

查看全部问答>

支持移动硬盘需要加什么组件

usb host已经ok,u盘可以识别并挂载,但移动硬盘插上去没反应。 请问要支持移动硬盘,系统需要添加什么组件吗?…

查看全部问答>

usb键盘老是要拔掉重插

最近买了个usb接口键盘,老是要重插才能用,按照网上所说把设备管理-》usb room hub-》电源管理-》允许计算机关闭设别以节约电源停掉了。好像也不是qq冲突问题,在qq目录中找不到网上所说的的那两个文件。如果我把液晶显示其关掉,让机器开着, ...…

查看全部问答>

vxworks辅助时钟定时问题,急急急急

sysAuxClkRateSet(int rate)函数中,rate只能设成(2,4,8,16,32,64,128,..,1024等等),我想精确定时到1ms或5ms、10ms该怎么办,或者有其它方法吗,请大家帮忙!…

查看全部问答>

关于UCOS移植C51上的RAM分配的问题。

大家好。本人对于UCOS还是新手。想找UCOS的系统移植到C51上,遇到一些问题。希望大家来帮忙解决一下。 (在网上下载了一个移植实例有些看不太明白) 问题一:实例代码如下          ;定义重定位段     ...…

查看全部问答>

MC3486/MC3487使用问题

近日小弟准备用两组MC3486/MC3487实现数据通讯,但不知道MC3486/3487该怎么使用,接口电路怎么画?是否需要进行阻抗匹配?是否需要光藕隔离? 还望各位大哥小弟们赐教.谢谢~~~~~…

查看全部问答>

期待9B96

支持论坛 提供9B96板子  做USB通讯    天地华杰科技有限公司 [ 本帖最后由 bjmonsoon 于 2011-10-31 11:41 编辑 ]…

查看全部问答>