ARM服务器相对于现有的x86服务器有什么优缺点,发展前景如何
其实处理器的性能以及功耗归根结底只看工艺和规模,指令集其实没啥关系。arm 的优势就是专注于低功耗的小核心,其授权方式构成生态圈(仅限硬件),硬件开发成本低选择多。但是啊arm没有服务器端的软件基础。
X86正相反,Intel不允许其他企业插手(除了amd,但amd 对做超低功耗x86不热心),但是软件方面却有完整的生态圈。
虽然现在软件多数能跨平台,但是与arm 良好匹配还需要时间证明。所以arm 的关键优势是可以摆脱intel 的垄断,可以实现芯片级的硬件定制。arm 的功耗还有性能功耗比优势什么的完全是唬人的。intel 完全做得到相当的功耗或者性能功耗比,而且它确实正在这个方向发力
概述
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处理器的三大特点是:耗电少功能强、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位代码的所有优点。
编辑本段
ARM处理器模式
处理器模式 说明
用户模式(usr) ARM处理器正常的程序执行状态
系统模式(sys) 运行具有特权的操作系统任务
快中断模式(fiq) 支持高速数据传输或通道处理
管理模式(svc) 操作系统保护模式
数据访问终止模式(abt) 用于虚拟存储器及存储器保护
中断模式(irq) 用于通用的中断处理
未定义指令终止模式(und) 支持硬件协处理器的软件仿真
除用户模式外,其余6种模式称为非用户模式或特权模式;用户模式和系统模式之外的5种模式称为异常模式。ARM处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
编辑本段
体系结构扩充
当前ARM体系结构的扩充包括:
·Thumb 16位指令集,为了改善代码密度;
·DSP DSP应用的算术运算指令集;
·Jazeller 允许直接执行Java字节码。
ARM处理器系列提供的解决方案有:
·无线、消费类电子和图像应用的开放平台;
·存储、自动化、工业和网络应用的嵌入式实时系统;
·智能卡和SIM卡的安全应用。
编辑本段
历史
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处理器。这是计算机工业 arm处理器[2]发展历史上的一件大事,标识着x86处理器的主导地位发生动摇。目前在移动设备市场,ARM处理器的市场份额超过90%;在服务器市场,今年(2011年)就会有25GHz的服务器上市;在桌面电脑市场,现在又有了微软的支持。ARM成为主流,恐怕指日可待。难怪有人惊呼,Intel公司将被击败!
与这场轰轰烈烈的变革相比,它的主角ARM公司却没有受到太多的关注,显得不太起眼。这家远离硅谷、位于剑桥大学的英国公司,到底是怎么走到今天的,居然能将芯片巨人Intel拉下马?
展望未来,即使Intel成功地实施了Atom战略,将x86芯片的功耗和价格大大降低,它与ARM竞争也将非常吃力。因为ARM的商业模式是开放的,任何厂商都可以购买授权,所以未来并不是Intel vs ARM,而是Intel vs 世界上所有其他半导体公司。那样的话,Intel的胜算能有多少呢?
从ARM V8到ARM V92,ARM指令集的演进历史以及ARM最重要的Cortex-A系列处理器(CPU Core)的演进过程如下:
ARM V8/V9架构演进
ARMv8架构在2011年10月份推出,至今已经有12年的时间,目前ARM架构已经演进到了v92,今年6月份ARM 官方release了ARMv92指令集对应的移动端(手机/笔记本)CPU核,分别是超大核Cortex-X4,大核A720,以及小核A520。从V8推出到今天,ARM架构的演进过程如下:
ARMv8
发布于2010年10月,主要升级包括:ARMv8引入了全新的架构AArch64以及对应的指令集A64。A64指令集采用32bit定长指令,31个64bit通用寄存器。
相对V7,AArch64架构和A64指令集的引入一方面提升了计算性能,另一方面扩展了寻址能力,支持原生的64bit寻址。当然在实际的使用中,64bit的寻址能力存在浪费,为了减少地址管理的硬件开销,ARM定义了多种虚拟地址位宽,包括36/39/42/47/48/49/52bit。
为了兼容之前的V7架构,除了新引入的AArch64架构以及A64指令集,V8中还把V7兼容架构被定义为AArch32,对应的指令集称为A32和T32,其中T32是对V7时代的Thumb指令的简称,关于Thumb指令请参考ARM官网:ARM7TDMI Technical Reference Manual r4p1
从今天回看历史,ARMv8架构具有划时代的意义,在引入64位架构后,ARM架构具备进入高性能计算领域的基础。伴随着智能手机的快速发展,ARMv8架构不断演进,产生了多个小版本(v81~v85),每个小版本都引入了一些重要的feature,不断完善着ARM架构,随着近些年来云计算的高速发展,ARM的应用领域也从移动端延伸到服务器领域,让ARM变得无处不在(ARM is Everywhere)。
ARMv81
发布于2015年,v81架构引入的主要更新如下:
ISA的更新,包括:
引入了新的原子指令(atomic instruction),增强多核共享数据的操作性能;
引入了新的SIMD指令,即SIMD Instructions for Rounding Double Multiply Add/Substract;
引入LOR(Limited Ordering Regions)特性和新的load、store指令,这些指令基于LOR特性可以减小在大系统中维护Memory Ordering的代价;
改进了MRS,MSR指令,增加PSTATEPAN state bit;
规定CRC32指令是v81必须实现的指令;
Memory Model更新,包括:
支持disable translation table中的APTable,PXNTable,UXNTable属性位;
支持硬件维护 translation table中的Access flag和 Dirty bit;
PSTATE引入了新的state bit,即PAN(Privileged Access Never);
支持LOR(Limited Ordering Region),新引入的Load-Acquire,Store-Release指令在维护memory ordering时可以限定observer,不需要所有的observers都可见,降低维护的开销;
虚拟化更新,包括:
支持16bit-VMID,增加系统虚拟化的扩展能力;
虚拟化主机相关扩展,支持运行在Non-Secure State的Type 2 Hypervisor;
PMU(Performance Monitor Extension)更新,包括:
新增STALL_FRONTEND and STALL_BACKEND events ;
Event number位宽扩展到16 bits;
在MDCR_EL2寄存器中新增HPMD bit,用于disable PMU event counting in EL2;
ARMv82
发布于2017年4月,v82重点针对企业级市场引入了较多的特性更新,一方面改善CPU机器学习和数据处理的性能,另一方面提升大型系统的可靠性和可分析性,v82引入的主要更新如下:
引入对RAS(Reliability, Availability and Serviceability)和SPE(Statistical Profiling Extension)的支持;
增强了memory model,例如:对于64KB页面支持以及最大支持52bit地址位宽,更多详情请参考:Armv8-A Architecture Evolution
支持半精度浮点(half precision floating,float16),提升机器学习性能;
引入SVE(Scalable Vector Extension),提升机器学习性能;
ARMv83
发布于2017年7月,皆在改善安全性,完善虚拟化,增加对不同数据类型的支持,增强memory model等等,v83引入的主要更新如下:
引入Pointer Authentication,防范JOP(Jump-Orientated-Programming)和ROP(Return-Orientated-Programming)攻击;
引入了Nested Virtualization,让Guest Hypervisor可以透明的运行在Non-Secure EL1状态,改善用户基于租赁的云虚拟机(IaaS)运行用户虚拟机(Guest Hypervisor)的性能;
引入新的指令支持浮点复数乘累加;
引入新的指令支持双精度浮点到32bit有符号整型的转换,提升Javascript 性能;
改善memory model,提升原子操作性能;
增大表征cache sets和ways的ID的位宽,支持更大的cache;
ARMv84
发布于2017年底,ARM v84是ARM v8架构以来的重要一次更新,新引入的特性包括:
支持Secure Virtualization;
增强了Nested Virtualization;
支持small translation table;
放松对对齐的限制;
支持memory partition and monitoring(MPAM),实现共享缓存(L3、LLC)QoS管理;
额外的加解密支持;
支持generic counter scaling,通过设置scaling的倍数N,实现1个clock tick计数增加N,以降低功耗;
增加指令加速SHA运算;
ARMv85~v87
ARM官方并没有正式发布过ARMv85及之后的v8版本,ARM将从v85~88引入的更新合并到ARMv9。对应关系为:v85对应v9 v86对应v91 v87对应v92,具体参考:Armv8-x-and-Armv9-x-extensions-and-features
ARMv9
在2021年3月,ARM发布了最新一代的ARMv9架构和对应的CPU IP(X2,A715,A510),标志着ARM架构进了V9时代。实际上V9相对V8的更新并不像V8之于V7那么大,因为从V8第一个版本开始到V9正式发布的10年间ARM通过小版本演进的方式不断完善ARM架构的性能,安全,虚拟化和可靠性。不过有一点需要注意,从ARM V9开始,ARM A系列逐渐抛弃了对32位架构支持,这是一个比较显著的变化。
ARMv9架构的更新主要概括为以下几点:
改进安全性,包括:支持MTE(Memory Tagging Extension),支持CCA(Confidential Computing Architecture)并引入了realm概念;
改进机器学习性能,重点引入了SVE2(Scalable Vector Extensions);
v9引入的具体更新包括:
支持MTE(Memory Tagging Extension),改善关键数据在内存中的存取安全性;
支持Branch Target Identification;
支持Random Number Generator指令;
支持新的CMO(Cache Maintenance Operation)指令即Cache Clean to Point of Deep Persistence;
ARMv91
v91引入的具体更新包括:
General Matrix Multiply (GEMM) instructions
Fine grained traps for virtualization
High precision Generic Timer
Data Gathering Hint
ARMv92
v92引入的具体更新包括:
Enhanced support for PCIe hot plug
Atomic 64-byte load and stores to accelerators
Wait For Instruction (WFI) and Wait For Event (WFE) with timeout
Branch-Record recording
ARM移动端CPU演进
ARM架构演进的载体是ARM几乎每年一代的Cortex-A系列CPU IP,下面列出了ARM发布过的Cortex-A系列处理器。注:ARM后续又开辟了X系列,这里一并列出。
bigLITTLE是ARM经典的核心组织架构,可以有效平衡功耗、面积、性能3个因素,曾应用于主流的手机芯片,而在2017年,ARM再一次升级了bigLITTLE架构,推出了DynamIQ架构,其差异主要在于:原先的bigLITTLE架构典型是两个cluster,每个cluster里面典型配置4个CPU核,这4个CPU核心必须运行在同一时钟源下,也就是说这4个CPU核必须工作在相同的电压和频率下。
而DynamIQ架构将每个CPU核都独立出来,可以运行在独立的电压和频率下,给芯片设计提供最大灵活度。不过实际系统设计上,考虑到芯片供电的复杂度和成本,一般不会给每个CPU核独立供电,而是根据任务等级划分成2~3个group。
每个group工作在相同的电压和频率下,例如:2big+2big+4little架构,1ultra+3big+4little架构,以及最新的高通骁龙8Gen2采用的1ultra(X3)+4big(A715)+3little(A510)的组合。下表展示了ARM的bigLITTLE以及DynamIQ bigLITTLE架构的经典CPU组合。
ARM数据中心CPU演进
得益于最近10年移动计算领域对于PPA的需求不断提升,ARM不断推出新的CPU核,同时不断演进核心的组织架构,从Cortex-A73到X4/A720,从A53到A520,从bigLITTLE到DynamIQ等等一系列的新产品,不断推动着移动计算设备性能快速增长。
移动计算的快速增长不断拓展ARM的性能边界,不断完善ARM架构,近些年,ARM携移动计算时代的累累硕果强势进军数据中心领域,希望能为数据中心提供更高能效比和更高性价比的通用算力,以此扩大ARM架构的市场占有率。
ARM从2019年开始正式发布面向数据中心的Neoverse系列CPU核,实际上Neoverse系列CPU核和移动端的CPU核是高度相似的,只是针对服务器端做了少量更新。
AMBA总线标准演进
ARM能成为移动计算领域的霸主,除了得益于ARM架构和ARM CPU核的不断演进外,另一个重要的推手就是ARM总线标准的不断演进,即AMBA总线标准。
总线标准是SoC的神经系统,所有模块之间的数据交互都需要通过总线来完成。ARM推出的AMBA总线标准充满活力,从AMBA到AMBA5已经演进到了第5代,ARM构建了ARM架构+ARM CPU核+AMBA总线为核心的ARM芯片生态系统。
所有的IP vendor以及SoC芯片设计者都以AMBA总线标准为规范,来构建自己的IP或SoC芯片,这使得AMBA总线成了最成功的总线标准。
ARM互联IP演进
如果说ARM架构落地的载体是CPU核,那么AMBA总线标准落地的载体就是ARM推出的一些列互联IP,即ARM的CoreLink Interconnect。ARM的Corelink Interconnect分为两大系列,即coherent和non-Coherent Interconnect。
Coherent Interconnect实现ARM CPU cluster之间的互联,实现cluster之间的fully-coherency,此外还可以支持IO Device和CPU cluster之间的IO Coherency;non-Coherent实现DMA/Ethernet/Multimedia/CPU等Master到DRAM以及模块配置寄存器等Slave的访问。
arm只是在手机处理器上面击败intel,不被看好的主要是四方面原因吧
商用领域没有大的作为,arm主要侧重于娱乐性便携设备,商业上主要是一些单片机,而intel在市面上的商用服务器占据99%的市场,arm虽然也有心想做服务器cpu,但是arm架构的东西就是一个全新的平台,os要重新写,应用程序也要重新写,完全不兼容现有的程序,想换arm服务器这在目前来说是任何一个公司都不敢做也不肯做的事情。而另一个目前正在发展的商用领域就是物联网,现阶段尚无一家胜出,但arm也不被看好。
移动设备正在饱和,今年无论对安卓也好,苹果也好,是一个很重大的年份,安卓大部分新机的cpu和ram已经不再是瓶颈,而苹果也用上了4核,arm设备基本上用10年时间走完了电脑30年的路,而一旦对多数人而言性能够用之后,自然就会出现类似pc行业的情景。
被日本软银收购,至少对中国而言,日后再使用arm作为某些便携设备的处理器就存在安全风险。
arm自身并无制造能力,arm实际上只做架构研制和授权,并没有自行进行生产的能力,而intel既可以研发,也可以生产,还有自己的硅片工厂。
0条评论