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)系列。
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的处理器,用它做出了一台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公司既不生产芯片也不销售芯片,它只出售芯片技术授权。
特点
ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式灵活简单,执行效率高;
6、指令长度固定。
体系结构
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位代码的所有优点。