arm

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

ARM公司

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

 

  ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的

ARM公司(6张)

都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者

 

  目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括IntelIBM、LG半导体、NECSONY飞利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。

 

  1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。

 

  20世纪90年代,ARM公司的业绩平平,处理器的出货量徘徊不前。由于缺乏资金,ARM做出了一个意义深远的决定:自己不制造芯片,只将芯片的设计方案授权(licensing)给其他公司,由它们来生产。正是这个模式,最终使得ARM芯片遍地开花,将封闭设计的Intel公司置于"人民战争"的汪洋大海。

 

  。但是进入21世纪之后,由于手机的快速发展,出货量呈现爆炸式增长,ARM处理器占领了全球手机市场。2006年,全球ARM芯片出货量为20亿片,2010年预计将达到45亿片。

 

  ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

 

  ARM商品模式的强大之处在于它在世界范围有超过100个的合作伙伴(Partners)。ARM 是设计公司,本身不生产芯片。采用转让许可证制度,由合作伙伴生产芯片。

 

  2007年底,ARM的雇员总数为1728人,持有专利700项(另有900项正在申请批准中),全球分支机构31家,合作伙伴200家,年收入2.6亿英镑。

ARM 授权方

  ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家。ARM 提供了多样的授权条款,包括售价与散播性等项目。对于授权方来说,ARM 提供了 ARM 内核的整合硬件叙述,包含完整的软件开发工具(编译器、debugger、SDK),以及针对内含 ARM CPU 硅芯片的销售权。对于无晶圆厂的授权方来说,其希望能将 ARM 内核整合到他们自行研发的芯片设计中,,通常就仅针对取得一份生产就绪的智财核心技术(IP Core)认证。对这些客户来说,ARM 会释出所选的 ARM 核心的闸极电路图,连同抽象模拟模型和测试程式,以协助设计整合和验证。需求更多的客户,包括整合元件制造商(IDM)和晶圆厂家,就选择可合成的RTL(暂存器转移层级,如 Verilog)形式来取得处理器的智财权(IP)。藉著可整合的 RTL,客户就有能力能进行架构上的最佳化与加强。这个方式能让设计者完成额外的设计目标(如高震荡频率、低能量耗损、指令集延伸等)而不会受限于无法更动的电路图。虽然 ARM 并不授予受权方再次出售 ARM 架构本身,但受权方可以任意地出售制品(如芯片元件、评估板、完整系统等)。商用晶圆厂是特殊例子,因为他们不仅授予能出售包含 ARM 内核的硅晶成品,对其它客户来讲,他们通常也保留重制 ARM 内核的权利。

 

  就像大多数 IP 出售方,ARM 依照使用价值来决定 IP 的售价。在架构上而言,更低效能的 ARM 内核比更高效能的内核拥有较低的授权费。以硅芯片实作而言,一颗可整合的内核要比一颗硬件宏(黑箱)内核要来得贵。更复杂的价位问题来讲,持有 ARM 授权的商用晶圆厂(例如韩国三星和日本富士通)可以提供更低的授权价格给他们的晶圆厂客户。透过晶圆厂自有的设计技术,客户可以更低或是免费的ARM预付授权费来取得 ARM 内核。相较于不具备自有设计技术的专门半导体晶圆厂(如台积电联电),富士通/三星对每片晶圆多收取了两至三倍的费用。对中少量的应用而言,具备设计部门的晶圆厂提供较低的整体价格(透过授权费用的补助)。对于量产而言,由于长期的成本缩减可借由更低的晶圆价格,减少ARM的NRE成本,使得专门的晶圆厂也成了一个更好的选择。

 

  许多半导体公司持有 ARM 授权:AtmelBroadcomCirrus LogicFreescale(于2004从摩托罗拉公司独立出来)、富士通、英特尔(借由和Digital的控诉调停)、IBM,英飞凌科技任天堂,恩智浦半导体(于2006年从飞利浦独立出来)、OKI电气工业,三星电子Sharp,STMicroelectronics,德州仪器VLSI等许多这些公司均拥有各个不同形式的ARM授权。虽然ARM的授权项目由保密合约所涵盖,在智慧财产权工业,ARM是广为人知最昂贵的CPU内核之一。单一的客户产品包含一个基本的 ARM 内核可能就需索取一次高达美金20万的授权费用。而若是牵涉到大量架构上修改,则费用就可能超过千万美元。

 

  ARM(Asynchronous Resbonse Mode)异步响应方式异步响应方式ARM(Asynchronous Responses Mode)也是一种非平衡数据链路操作方式,与NRM不同的是,ARM下的传输过程由从站启动。从站主动发送给主站的一个或一组帧中可包含有信息,也可以是仅以控制为目的而发的帧。在这种操作方式下,由从站来控制超时和重发。该方式对采用轮询方式的多站链路来说是必不可少的。

ARM处理器

ARM(Advanced RISC Machines)处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作Acorn RISC Machine)。   ARM处理器本身是32位设计,但也配备16位指令集。一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。   ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。

体系结构扩充

  当前ARM体系结构的扩充包括:   ·Thumb 16位指令集,为了改善代码密度;   ·DSP DSP应用的算术运算指令集;   ·Jazeller 允许直接执行Java字节码。   ARM处理器系列提供的解决方案有:   ·无线、消费类电子和图像应用的开放平台;   ·存储、自动化、工业和网络应用的嵌入式实时系统;   ·智能卡和SIM卡的安全应用。

ARM处理器特点

  ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。   1、体积小、低功耗、低成本、高性能;   2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;   3、大量使用寄存器,指令执行速度更快;   4、大多数数据操作都在寄存器中完成;   5、寻址方式灵活简单,执行效率高;   6、指令长度固定。

ARM处理器的历史

  1978年12月5日,物理学家赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。   起初,Acorn公司打算使用摩托罗拉公司的16位芯片,但是发现这种芯片太慢也太贵。"一台售价500英镑的机器,不可能使用价格100英镑的CPU!"他们转而向Intel公司索要80286芯片的设计资料,但是遭到拒绝,于是被迫自行研发。   1985年,Roger Wilson和Steve Furber设计了他们自己的第一代32位、6M Hz的处理器,
  

Roger Wilson和Steve Furber

[1]
用它做出了一台RISC指令集的计算机,简称ARM(Acorn RISC Machine)。这就是ARM这个名字的由来。   RISC的全称是"精简指令集计算机"(reduced instruction set computer),它支持的指令比较简单,所以功耗小、价格便宜,特别合适移动设备。早期使用ARM芯片的典型设备,就是苹果公司的牛顿PDA。   20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。   1990年11月27日,Acorn公司正式改组为ARM计算机公司。苹果公司出资150万英镑,芯片厂商VLSI出资25万英镑,Acorn本身则以150万英镑的知识产权和12名工程师入股。公司的办公地点非常简陋,就是一个谷仓。 20世纪90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。

市场前景

  微软公司(2011年)宣布,下一版Windows将正式支持ARM处理器。这是计算机工业 发展历史上的一件大事,标识着x86处理器的主导地位发生动摇。目前在移动设备市场,ARM处理器的市场份额超过90%;在服务器市场,今年(2011年)就会有2.5GHz的服务器上市;在桌面电脑市场,现在又有了微软的支持。ARM成为主流,恐怕指日可待。难怪有人惊呼,Intel公司将被击败!   与这场轰轰烈烈的变革相比,它的主角ARM公司却没有受到太多的关注,显得不太起眼。这家远离硅谷、位于剑桥大学的英国公司,到底是怎么走到今天的,居然能将芯片巨人Intel拉下马?   展望未来,即使Intel成功地实施了Atom战略,将x86芯片的功耗和价格大大降低,它与ARM竞争也将非常吃力。因为ARM的商业模式是开放的,任何厂商都可以购买授权,所以未来并不是Intel vs. ARM,而是Intel vs. 世界上所有其他半导体公司。那样的话,Intel的胜算能有多少呢?

ARM处理器结构

  体系结构   1 CISC(Complex Instruction Set Computer,复杂指令集计算机)   在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。   2 RISC(Reduced Instruction Set Computer,精简指令集计算机)   RISC结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少;以控制逻辑为主,不用或少用微码控制等   RISC体系结构应具有如下特点:   1 采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。   2 使用单周期指令,便于流水线操作执行。   3 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。   除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:   4 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。   5 可用加载/存储指令批量传输数据,以提高数据的传输效率。   6 可在一条数据处理指令中同时完成逻辑处理和移位处理。   7 在循环处理中使用地址的自动增减来提高运行效率。   寄存器结构   ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:   1 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。   2 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。   指令结构   ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的   ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。

使用ARM处理器的手机

欧洲诺基亚

  诺基亚 N86 诺基亚 N97 诺基亚 N8 诺基亚 N96 诺基亚 N95 诺基亚 N78 诺基亚 N900 诺基亚 N81 诺基亚 N85 诺基亚 X6 诺基亚 E72 诺基亚 E71 诺基亚 E66 诺基亚 E63 诺基亚 E52 诺基亚 E51 诺基亚 E50 诺基亚 5530XM 诺基亚 5800XM 诺基亚 5320XM 诺基亚 5630XM 诺基亚 5730XM 诺基亚 5230等

美国摩托罗拉

  摩托罗拉 XT711 摩托罗拉 XT800 摩托罗拉 XT702 摩托罗拉 XT701 摩托罗拉 ME600 摩托罗拉 ME501 摩托罗拉ME500 摩托罗拉 Milestone 摩托罗拉 RAZR V8 摩托罗拉 VE66 摩托罗拉 A1200E 摩托罗拉 A1210 摩托罗拉 A1600 摩托罗拉 A1800 摩托罗拉 A1890 摩托罗拉 U9 摩托罗拉 A810 摩托罗拉 ROKR EM30 摩托罗拉 EM35 摩托罗拉 ROKR E6 摩托罗拉 ROKR E8

英国索爱

  索爱 X1 索爱 X2 索爱 M1i 索爱 X10 索爱 Satio 索爱 U8i等

韩国三星

  三星 i8910 三星 i8510等

美国奔迈

  palm pre palm pixi palm pre plus

ARM处理器系列

  ARM7系列 ARM9系列 ARM9E系列 ARM10E系列    SecurCore系列 Inter的Xscale Inter的StrongARM ARM11系列   其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。   ARM内核
家族架构内核特色高速缓存 (I/D)/MMU常规 MIPS 于 MHz应用
ARM1ARMv1ARM1


ARM2ARMv2ARM2Architecture 2 加入了MUL(乘法)指令4 MIPS @ 8MHzAcorn Archimedes,Chessmachine
ARMv2aARM250Integrated (完整的)MEMC (MMU),图像与IO处理器。Architecture 2a 加入了SWP和SWPB(置换)指令。无,MEMC1a7 MIPS @ 12MHzAcorn Archimedes
ARM3ARMv2aARM2a首次在ARM架构上使用处理器高速缓存均为4K12 MIPS @ 25MHzAcorn Archimedes
ARM6ARMv3ARM610v3 架构首创支援寻址32位的内存(针对26位)均为4K28 MIPS @ 33MHzAcorn Risc PC 600,Apple Newton
ARM7TDMIARMv4TARM7TDMI(-S)三级流水线15 MIPS @ 16.8 MHzGame Boy Advance,Nintendo DS,iPod


ARM710T
均为8KB, MMU36 MIPS @ 40 MHzAcorn Risc PC 700,Psion 5 series,Apple eMate 300


ARM720T
均为8KB, MMU60 MIPS @ 59.8 MHzZipit


ARM740T
MPU


ARMv5TEJARM7EJ-SJazelle DBX

ARM9TDMIARMv4TARM9TDMI五级流水线



ARM920T
16KB/16KB, MMU200 MIPS @ 180 MHzArmadilloGP32GP2X(第一颗内核), Tapwave Zodiac(Motorola i. MX1)


ARM922T
8KB/8KB, MMU



ARM940T
4KB/4KB, MPU
GP2X(第二颗内核)
ARM9EARMv5TEARM946E-S
可变动,tightly coupled memories, MPU
Nintendo DS,Nokia N-GageConexant 802.11 chips


ARM966E-S
无高速缓存,TCMs
ST Micro STR91xF,包含Ethernet [2]


ARM968E-S
无高速缓存,TCMs


ARMv5TEJARM926EJ-SJazelle DBX可变动,TCMs, MMU220 MIPS @ 200 MHz移动电话:Sony Ericsson(K, W系列),Siemens 和 Benq(x65 系列和新版的)

ARMv5TEARM996HS无振荡器处理器无高速缓存,TCMs, MPU

ARM10EARMv5TEARM1020E(VFP),六级流水线32KB/32KB, MMU



ARM1022E(VFP)16KB/16KB, MMU


ARMv5TEJARM1026EJ-SJazelle DBX可变动,MMU or MPU

XScaleARMv5TE80200/IOP310/IOP315I/O处理器




80219

400/600MHzThecus N2100


IOP321

600 BogoMips @ 600 MHzIyonix


IOP33x





IOP34x1-2核,RAID加速器32K/32K L1, 512K L2, MMU



PXA210/PXA250应用处理器,七级流水线

Zaurus SL-5600


PXA255
32KB/32KB, MMU400 BogoMips @ 400 MHzGumstix,Palm Tungsten E2


PXA26x

可达 400 MHzPalm Tungsten T3


PXA27x

800 MIPS @ 624 MHzHTC Universal, Zaurus SL-C1000,3000,3100,3200, Dell Axim x30, x50,和 x51 系列


PXA800(E)F





Monahans

1000 MIPS @ 1.25 GHz


PXA900


Blackberry 8700, Blackberry Pearl (8100)


IXC1100Control Plane Processor




IXP2400/IXP2800





IXP2850





IXP2325/IXP2350





IXP42x


NSLU2


IXP460/IXP465



ARM11ARMv6ARM1136J(F)-SSIMD, Jazelle DBX, (VFP),八级流水线可变动,MMU?? @ 532-665MHz (i.MX31 SoC)Nokia N93ZuneNokia N800
ARMv6T2ARM1156T2(F)-SSIMD, Thumb-2, (VFP),九级流水线可变动,MPU

ARMv6KZARM1176JZ(F)-SSIMD, Jazelle DBX, (VFP)可变动,MMU+TrustZone

ARMv6KARM11 MPCore1-4核对称多处理器,SIMD, Jazelle DBX, (VFP)可变动,MMU

CortexARMv7-ACortex-A8Application profile, VFP, NEON, Jazelle RCT, Thumb-2, 13-stage pipeline可变动 (L1+L2), MMU+TrustZoneup to 2000(2.0 DMIPS/MHz 从600 MHz到超过1 GHz的速度)Texas Instruments OMAP3

ARMv7-RCortex-R4(F)Embedded profile, (FPU)可变动高速缓存,MMU可选配600 DMIPSBroadcom is a user

ARMv7-MCortex-M3Microcontroller profile无高速缓存,(MPU)120 DMIPS @ 100MHzLuminary Micro[3] 微控制器家族

ARM内核的设计文件

  设计文件讲求精简又快速的设计方式,整体电路化却又不采用微码,就像早期使用在Acorn微电脑的8位6502处理器。   ARM架构包含了下述RISC特性:   读取/储存 架构不支援地址不对齐内存存取(ARMv6内核现已支援)正交指令集(任意存取指令可以任意的寻址方式存取数据Orthogonal instruction set)大量的16 × 32-bit 寄存器阵列(register file)固定的32 bits 操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。大多均为一个CPU周期执行。为了补强这种简单的设计方式,相较于同时期的处理器如Intel 80286和Motorola 68020,还多加了一些特殊设计:   大部分指令可以条件式地执行,降低在分支时产生的负重,弥补分支预测器(branch predictor)的不足。算数指令只会在要求时更改条件编码(condition code)32-bit筒型位移器(barrel shifter)可用来执行大部分的算数指令和寻址计算而不会损失效能强大的索引寻址模式(addressing mode)精简但快速的双优先级中断子系统,具有可切换的暂存器组有个附加在ARM设计中好玩的东西,就是使用一个4-bit 条件编码 在每个指令前头,表示每支指令的执行是否为有条件式的   这大大的减低了在内存存取指令时用到的编码位,换句话说,它避免在对小型叙述如if做分支指令。有个标准的范例引用欧几里德最大公因子算法:   在C编程语言中,循环为:   int gcd (int i, int j) { while (i != j) if (i > j) i -= j; else j -= i; return i;} 在ARM 汇编语言中,循环为:   loop CMP Ri, Rj ; 设定条件为 "NE"(不等於) if (i != j) ; "GT"(大於) if (i > j), ; or "LT"(小於) if (i < j) SUBGT Ri, Ri, Rj ; 若 "GT"(大於), i = i-j; SUBLT Rj, Rj, Ri ; 若 "LT"(小於), j = j-i; BNE loop ; 若 "NE"(不等於),则继续回圈这避开了then和else子句之间的分支。   另一项指令集的特色是,能将位移(shift)和回转(rotate)等功能并成"资料处理"型的指令(算数、逻辑、和暂存器之间的搬移),因此举例来说,一个C语言的叙述   a += (j << 2);在ARM之下,可简化成只需一个word和一个cycle即可完成的指令   ADD Ra, Ra, Rj, LSL #2这结果可让一般的ARM程式变得更加紧密,而不需经常使用内存存取,流水线也可以更有效地使用。即使在ARM以一般认定为慢速的速度下执行,与更复杂的CPU设计相比它仍能执行得不错。   ARM处理器还有一些在其他RISC的架构所不常见到的特色,例如PC-相对寻址(的确在ARM上PC为16个暂存器的其中一个)以及 前递加或后递加的寻址模式。   另外一些注意事项是 ARM 处理器会随着时间,不断地增加它的指令集。某些早期的 ARM 处理器(比ARM7TDMI更早),譬如可能并未具备指令可以读取两 Bytes 的数量,因此,严格来讲,对这些处理器产生程式码时,就不可能处理如 C 语言物件中使用 "volatile short" 的资料型态。   ARM7 和大多数较早的设计具备三阶段的流水线化(Pipeline):提取指令、解码,并执行。较高效能的设计,如 ARM9,则有五阶段的流水线化。提高效能的额外方式,包含一颗较快的加法器,和更广的分支预测逻辑线路。   这个架构使用“协处理器”提供一种非侵入式的方法来延伸指令集,可透过软件下 MCR、MRC、MRRC和MCRR 等指令来对协处理器寻址。协处理器空间逻辑上通常分成16个协处理器,编号分别从 0 至 15 ,而第15号协处理器(CP15)是保留用作某些常用的控制功能,像是使用高速缓存和记忆管理单元运算(若包含于处理器时)。   在 ARM 架构的机器中,周边装置连接处理器的方式,通常透过将装置的实体暂存器对应到 ARM 的内存空间、协处理器空间,或是连接到另外依序接上处理器的装置(如总线)。协处理器的存取延迟较低,所以有些周边装置(例如 XScale 中断控制器)会设计成可透过不同方式存取(透过内存和协处理器)。Thumb    较新的ARM处理器有一种16-bit指令模式,叫做Thumb,也许跟每个条件式执行指令均耗用4位的情形有关。在Thumb模式下,较小的opcode有更少的功能性。例如,只有分支可以是条件式的,且许多opcode无法存取所有CPU的暂存器。然而,较短的opcode提供整体更佳的编码密度(注:意指程式码在内存中占的空间),即使有些运算需要更多的指令。特别在内存埠或总线宽度限制在32 以下的情形时,更短的Thumb opcode能更有效地使用有限的内存带宽,因而提供比32位程式码更佳的效能。典型的嵌入式硬件仅具有较小的32-bit datapath寻址范围以及其他更窄的16 bits寻址(例如Game Boy Advance)。在这种情形下,通常可行的方案是编译成 Thumb 程式码,并自行最佳化一些使用(非Thumb)32位指令集的CPU相关程式区,因而能将它们置入受限的32-bit总线宽度的内存中。   首颗具备 Thumb 技术的处理器是 ARM7TDMI。所有 ARM9 和后来的家族,包括 XScale 都纳入了 Thumb 技术。   Jazelle    ARM 还开发出一项技术,Jazelle DBX (Direct Bytecode eXecution),允许它们在某些架构的硬件上加速执行Java bytecode,就如其他执行模式般,当呼叫一些无法支援bytecodes的特殊软件时,能提供某些bytecodes的加速执行。它能在现存的ARM与Thumb模式之间互相执行。   首颗具备Jazelle技术的处理器是ARM926EJ-S:Jazelle以一个英文字母'J'标示于CPU名称中。它用来让手机制造商能够加速执行Java ME的游戏和应用程式,也因此促使了这项技术不断地开发。   Thumb-2     Thumb-2 技术首见于 ARM1156 核心 ,并于2003年发表。Thumb-2 扩充了受限的 16-bit Thumb 指令集,以额外的 32-bit 指令让指令集的使用更广泛。因此 Thumb-2 的预期目标是要达到近乎 Thumb 的编码密度,但能表现出近乎 ARM 指令集在 32-bit 内存下的效能。   Thumb-2 至今也从 ARM 和 Thumb 指令集中派生出多种指令,包含位栏(bit-field)操作、分支建表(table branches),和条件执行等功能。   Thumb Execution Environment (ThumbEE)     ThumbEE,也就是所谓的Thumb-2EE,,业界称为Jazelle RCT技术,于2005年发表,首见于 Cortex-A8 处理器。ThumbEE 提供从 Thumb-2 而来的一些扩充性,在所处的执行环境(Execution Environment)下,使得指令集能特别适用于执行阶段(Runtime)的编码产生(例如即时编译)。Thumb-2EE 是专为一些语言如 LimboJavaC#PerlPython,并能让 即时编译器 能够输出更小的编译码却不会影响到效能。   ThumbEE 所提供的新功能,包括在每次存取指令时自动检查是否有无效指标,以及一种可以执行阵列范围检查的指令,并能够分支到分类器(handlers),其包含一小部份经常呼叫的编码,通常用于高阶语言功能的实作,例如对一个新物件做内存配置。   进阶 SIMD (NEON)    进阶 SIMD 延伸集,业界称为NEON技术,它是一个结合 64 和 128 bit 的 SIMD(Single Instruction Multiple Data 单指令多重数据)指令集,其针对多媒体和讯号处理程式具备标准化加速的能力。NEON 可以在 10 MHz 的 CPU 上执行 MP3 音效解码,且可以执行 13 MHz 频率以下的 GSM AMR (Adaptive Multi-Rate) 语音编码。NEON具有一组广泛的指令集、各自的寄存器阵列,以及独立执行的硬件。NEON 支援 8-, 16-, 32- 和 64-bit 的整数及单精度浮点数据,并以SIMD 的方式运算,执行图形和游戏处理中关于语音/视讯的部分。SIMD 在 向量超级处理机 中是个决定性的要素,它具备同时多项处理功能。在 NEON 技术中,SIMD 最高可支援到同时 16 个运算。   VFP     VFP 是在协同处理器针对ARM架构的衍生技术。它提供低成本的单精度和倍精度浮点运算能力,并完全相容于ANSI/IEEE Std 754-1985 二进制浮点算数标准。VFP 提供大多数适用于浮点运算的应用,例如PDA、智慧手机、语音压缩与解压、3D图像以及数位音效、打印机、机上盒,和汽车应用等。VFP 架构也支援 SIMD(单指令多重数据)平行化的短向量指令执行。这在图像和讯号处理等应用上,非常有助于降低编码大小并增加输出效率。   在ARM-based处理器中,其他可见的浮点、或 SIMD 的协同处理器还包括了 FPA, FPE, iwMMXt。他们提供类似 VFP 的功能但在opcode层面上来说并不具有相容性。   安全性扩充 (TrustZone)    TrustZone(TM) 技术出现在 ARMv6KZ 以及较晚期的应用核心架构中。它提供了一种低成本的方案,针对系统单芯片SoC)内加入专属的安全核心,由硬件建构的存取控制方式支援两颗虚拟的处理器。这个方式可使得应用程式核心能够在两个状态之间切换(通常改称为领域(worlds)以避免和其他功能领域的名称混淆),在此架构下可以避免资讯从较可信的核心领域泄漏至较不安全的领域。这种内核领域之间的切换通常是与处理器其他功能完全无关联性(orthogonal),因此各个领域可以各自独立运作但却仍能使用同一颗内核。内存和周边装置也可因此得知目前内核运作的领域为何,并能针对这个方式来提供对装置的机密和编码进行存取控制。典型的 TrustZone 技术应用是要能在一个缺乏安全性的环境下完整地执行操作系统,并在可信的环境下能有更少的安全性的编码。

ARM的开发教程

  总结起来最主要的有以下几个吧    1 ADS调试用   确切的说是ADS+AXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。 有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。编译成AXF以后再在ARM的RAM里调试。   2 FLASHPGM   FLASH烧写的软件。AXF在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。   同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的FLASHPGM使用了。   3 BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)   调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。   调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE)都是,BANYANT比较好。   需要注意的是,每种调试代理安装方法虽然都简单但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。   4 ARM-ELF-TOOLS工具链   里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。   另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。   5 U-BOOT   大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~)   生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载 烧写其他了   有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道:)   最新版本是1.1.4 具体使用方法看我另一篇笔记吧。   6 UCLINUX包   UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。   7 VMWARE   老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-TOOLS。   8 source insight 代码编辑工具 linux下使用kscope

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值