本节来讲讲 ARM 的 AArch64 体系结构,扩展一下视野。
看看什么是 AArch64 体系,然后分析一下 AArch64 体系有什么特点,最后了解一下 AArch64 体系下运行程序的基础,包括 AArch64 体系下的寄存器、运行模式、异常与中断处理,以及 AArch64 体系的地址空间与内存模型。
什么是AArch64体系
ARM 架构在不断发展,现在它在各个领域都得到了非常广泛地应用。
自从 Acorn 公司于 1983 年开始发布第一个版本,到目前为止,有九个主要版本,版本号由 1 到 9 表示。2011 年,Acorn 公司发布了 ARMv8 版本。
ARMv8 是首款支持 64 位指令集的 ARM 处理器架构,它兼容了 ARMv7 与之前处理器的技术基础,同样它也兼容现有的 A32(ARM 32bit)指令集,还扩充了基于 64bit 的 AArch64 架构。
下面我们一起来看看 ARMv8 一共定义了哪几种架构,一共有三种。
1、ARMv8-A(Application)架构,支持基于内存管理的虚拟内存系统体系结构(VMSA),支持A64、A32和T32指令集,主打高性能,在我们的移动智能设备中广泛应用。
2、RMv8-R(Real-time)架构,支持基于内存保护的受保护内存系统架构(PMSA),支持 A32 和 T32 指令集,一般用于实时计算系统。
3、ARMv8-M(Microcontroller 架构),是一个压缩成本的嵌入式架构,而且需要极低延迟中断处理。它支持 T32 指令集的变体,主打低功耗,一般用于物联网设备。
今天我们要讨论的 AArch64,它只是 ARMv8-A 架构下的一种执行状态,“64”表示内存或者数据都保存在 64 位的寄存器中,并且它的基本指令集可以用 64 位寄存器进行数据运算处理。
AArch64 体系的寄存器
一款处理器要运行程序和处理数据,必须要有一定数量的寄存器。特别是基于 RISC(精简指令集)架构的 ARM 处理器,寄存器数量非常之多,因为大量的指令操作的就是寄存器。
ARMv8-AArch64 体系下的寄存器简单可以分为以下几类。
通用寄存器
特殊寄存器
系统寄存器
下面我们分别来看看这三类寄存器。
通用寄存器 R0-R30
首先来看通用寄存器(general-purpose registers),通用寄存器一共为 31 个,从 R0 到 R30,这个 31 个寄存器可以作为全 64 位使用,也可以只使用其中的低 32 位。
全 64 位的寄存器以 x0 到 x30 名称进行引用,用于 32 位或者 64 位的整数运算或者 64 位的寻址;低 32 位寄存器以 W0 到 W30 名称进行引用,只能用于 32 位的整数运算或者 32 位的寻址。为了帮你理解,我还在后面画了示意图。
register_common:

通用寄存器中还有 32 个向量寄存器(SIMD),编号从 V0 到 V31。因为向量计算依然是数据运算类的,所以要把它们归纳到通用寄存器中。每个向量寄存器都是 128 位的,但是它们可以单独使用其中的 8 位、16 位、32 位、64 位,它们的访问方式和索引名称如下所示。
Q0 到 Q31 为一个 128-bit 的向量寄存器 ;
D0 到 D31 为一个 64-bit 的向量寄存器;
S0 到 S31 为一个 32-bit 的向量寄存器;
H0 到 H31 为一个 16-bit 的向量寄存器;
B0 到 B31 为一个 8-bit 的向量寄存器;
register_simd:

特殊寄存器
特殊寄存器(spseical registers)比通用寄存器稍微复杂一些,它还可以细分,包括程序计数寄存器(PC),栈指针寄存器(SP),异常链接寄存器(ELR_ELx),程序状态寄存器(PSTATE、SPSR_ELx)等。
special_register
芯片的架构就好比建房子的框架结构,框架是设计房子的关键,造芯片也是类似的道理,设计前就要先选择好架构。目前除了ARM架构,还有X86、RISC-V和MIPS。
四大架构的基本介绍与特点
1、X86主要使用在PC端的CPU,1978年发明,目前是英特尔公司运营,主要应用在Inter、AMD的CPU,它的特点是性能高、速度快、兼容性好。
2、ARM架构是32位指令集,由英国Acorn公司1983年发明,它的特点是成本低、功耗低,被苹果、三星、华为、高通等客户广泛应用在移动通讯和嵌入式系统中。
3、RISC-V架构是开源的指令集,起步比较晚,由RISC-V基金会在2014年发明。它的特点是模块化、简化、可扩展,可以根据场景设计合适的指令集,使用者有三星、英伟达、西部数据等,用在工控,电器,服务器,传感器等产品的CPU。
4、MIPS架构是精简指令集,1971年MIPS公司发明,特点是简洁、优化方便、高扩展性,主要代表的产品是龙芯。
ARM架构在芯片市场占95%的份额,已经形成了完整的生态链
ARM公司在移动芯片市场有95%的份额,通过授权赚取专利费,去年的营收达到16亿美元。采用ARM架构必须授权才可以,目前全球设计的芯片都是按ARM公司的方案,开发的软件也是按照这个方案来设计,所以各种各样的手机都不会有兼容性的问题,经过好多年的积累,已经形成了一套完整的架构体系。
除了ARM架构,还在开发的RISC-V架构有望可以发起挑战,但有很大的难度
除了ARM架构,目前还在开发的RISC-V架构有望展开竞争。因为ARM授权费不断上涨,印度政府大力协助开发RISC-V,我国也在上海将其列入研究的对象,中科院在内的160多家企业加入到科研中。这个开源的指令集受到大家的关注,令ARM公司感到了很大压力。ARM是封闭的指令集,不能随意进行更改,架构不够灵活,而开源的RISC-V设计者可以根据不同的需求自由定制,更改指令集。RISC-V架构是后起之秀,目前还在开发阶段没有正式投入使用,无法建立完善的生态圈,缺乏大型公司的支持,要想与ARM竞争,还有很长的路要走。
目前,常用的处理器架构有ARM、x86、MIPS、RISC-V等,按照指令集分为CISC和RISC两种。不同的架构应用场合不同,下文具体说一说。
1、x86架构
我们使用的电脑以及公司的服务器,大部分采用了x86架构的处理器,以intel和AMD的处理器为主。
x86架构的处理器采用了CISC指令集 (复杂指令集计算机),x86架构的CPU分为x86和x86-64两类,目前主流的是x86-64,即64位的处理器。
2、ARM架构
我们的手机几乎全部使用了ARM架构,采用了RISC指令集(精简指令集) ,ARM的优势在于低功耗,因此非常适合手机等终端使用,x86架构的处理器无法解决低功耗的问题,所以移动终端很少使用x86架构的处理器。
华为麒麟处理器、苹果的A系列处理器、高通骁龙处理器无一例外的采用了ARM架构,此外大部分的工控系统、智能家居的控制系统、家庭的机顶盒等也采用了ARM架构。
随着美国“禁售令”的影响,ARM中断了与华为的业务往来,ARM这家公司走进了人们的视野,ARM公司成立于1991年,是一家英国的公司,后来被日本软银收购。ARM公司只出售IP(技术知识产权),不设计和制造自己的芯片,位于ARM架构的最顶端。 如果ARM不再给华为授权,那么华为的麒麟处理器、凌霄处理器等均会受到一定的影响,无法使用最新的架构。
3、MIPS架构
MIPS架构同样是一种RISC(精简指令集)的处理器架构,1981年由MIPS 科技 公司开发并授权,广泛用于电子产品、网络设备、个人 娱乐 设备等。比如家庭使用的无线路由器如果是MTK芯片,那么大部分是MIPS架构的处理器。
这里说一下我国自主的“龙芯”处理器,中科院计算所购买了MIPS的永久性结构授权,兼容MIPS架构的处理器,也就是可以贴上“兼容MIPS指令集”的商标,所有核心的架构都是自己研发的。
4、RISC-V架构
RISC-V架构是基于精简指令集(RISC)的开源架构,可以自由地用于任何目的,允许任何容人设计、制造和销售RISC-V芯片和软件,并不需要ARM、MIPS那样需要经过授权,受到各种使用的限制。
相比x86、arm架构,RISC-V比较“年轻”,RISC-V诞生于2010年,由加州大学伯克莱分校发布。
RISC-V架构可以说是解决国产民用处理器困局的终极方案。从长远利益来看,基于各种x86、arm等架构的处理器属于“假自主”,仍然受到intel、arm等授权的限制,比如最近由于“禁售令”影响,arm中断与华为的业务往来,停止相关授权服务,长远来看,对华为的麒麟处理器可能会造成比较大的影响。
目前,国内很多厂商参与了RISC-V生态系统,建立了RISC-V产业联盟,包括了原微电子、紫光展锐、安徽华米等,去年小米发布了基于RISC-V指令集的可穿戴芯片黄山1号。RISC-V是ARM架构最大的威胁,前景虽好,但是毕竟还在起步阶段,随着技术的迭代,相信一定会推动RISC-V建立强大的生态系统。
以上就是目前常见的CPU架构,x86是PC和服务器的主流,ARM是移动设备的主流,RISC-V可能是未来的主流。
每一种构架都有在自己的行业里有很大的优势,ARM主要就是在移动终端,最大的就是手机行业。
现在世界上芯片构架技术比较好的有四种,也是主流的构架技术,分别是X86、ARM、RiSC-V和MIPS,而手机行业主要的就是ARM公司。
ARM
ARM架构是一个32位精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计。它主要从事低费用、低功耗、高性能芯片研发,所以ARM处理器非常适用于移动通讯领域,所以全世界99%的智能手机和平板电脑都采用ARM架构。ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM主要是面向移动、低功耗领域,因此在设计上更偏重节能、能效方面。
在智能手机、智能电视、可穿戴设备、移动基站、企业服务器、医疗器械、智能驾驶以及物联网等其他 科技 领域基本上都适用ARM架构。从操作系统到上层应用软件都是基于arm架构开发的,所以它在移动设备上基本上形成了一个完整的产业链。现在很多的CPU都是基于ARM Cortex A5、A8、A9,A15微架构的。
在手机芯片设计领域,就拿华为来说。华为设计芯片通常先从ARM取得芯片设计构架然后再进行设计,设计完成之后再最终交给台积电进行代工,这才是一个完整芯品的设计流程。就像建造一栋房子,先有基本的构架,然后才有设计师的设计,制造。而且不止华为,例如苹果,三星,英特尔都是基于ARM构架的。
X85
X86主要面对的是计算机行业的。它是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。1978年6月8日,x86架构诞生。它的CPU基本上是1G以上、双核、四核大行其道,通常使用45nm甚至更高级制程的工艺进行生产。X86结构的电脑采用“桥”的方式与扩展设备进行连接,所以可以使电脑更容易进行性能拓展。
它在近三十年基本上垄断了个人电脑的操作系统行业,同时也拥有着大量的用户。它有着成熟用户应用、软件配套、软件开发工具的配套及兼容等工作,还有许多第三方软件和软件编程工具来帮助用户去使用。
RISC-V
RiSC-V架构是基于精简指令集计算原理建立的开放指令集架构,它在指令集不断发展和成熟的基础上建立的全新指令。这种指令集不会垄断或者盈利,它架构简单,完全开源,允许任何人设计、制造和销售RISC-V芯片和软件。它可以根据需要,来设计基于它的一些处理器,例如服务器CPU,家用电器cpu,工控cpu和总在传感器中的CPU。
MIPS
MIPS架构是一种采取精简指令集的处理器架构,1981年被开发出来。可以说它是RISC的一个小的分支,但是又不同于RISC。毕竟RISC是开源的,MIPS是在它的基础上发展的比较好,比较成功的。
基于MIPS的MCU的应用涉及了很多的行业之中,在工业、办公自动化、 汽车 、消费电子系统和先进技术中都有很大的应用。
在2007年8月16日,MIPS 科技 宣布,中科院计算机研究所的龙芯中央处理器获得其处理器IP的全部专利和总线、指令集授权。
如果有什么自己的想法和意见,请在下方评论中指出,谢谢观看。
真心说CPU架构及微指令集不是十分的难,但是难的是要搞出对应的开发工具性软件否则没用,国内没有公司开发过这类工具性软件,说大家不爱听的话,如果国外全面封锁工具性软件,不要说集成电路产业,就算是机械加工,都没法过日子了,所有的图纸设计软件都是用的国外的,国内没有一家公司在搞,全是拿别人的。
提问的还忘了alpha(已经作古多年的DEC留下的顶尖处理器遗产,当年远远优于x86),中国申威处理器。
16核用于桌面和服务器,260众核((64+1)4)用于超算,该架构不仅数值计算能力强大(太湖之光),还有着无与伦比的单位算力的低功耗。
IBM的PP和MIPS都具有嵌入式应用的强大优势,而手机AP就是典型的嵌入式应用。
兆易创新(GigaDevice)发布了据称是世界上首款基于RISC-V的通用微控制器(MCU), RISC-V是一款面向物联网(IoT)市场的设备。
兆易创新总部位于北京,是国内规模较大的非易失性存储器(NVM)制造商之一。兆易创新同样声称其新推出的GD32V RISC-V微控制器与基于Arm的经典GD32系列单片机“完全兼容”。
兆易创新高管强调,该公司仍是Arm的战略合作伙伴。添加RISC-V行就是为了提供选项。
几个月前,当特朗普开始对包括Arm知识产权在内的西方技术实施出口管制时,中国电子企业加强了对开源RISC-V的共同关注。然而,RISC-V是一种开源技术,不受类似的限制;对于中国制造商来说,它代表着一种易于获得的选择,可以控制自己的技术命运。
中国制造商使用RISC-V的其他例子包括华米 科技 的AI芯片黄山一号、C-Sky Microsystems的RISC-V第三代指令系统架构处理器CK902和RiVAI AI芯片Pygmy。有别人。
RISC-V为用户提供了非凡的空间。中国工程院院士倪广南在兆易创新的发布会上说:“RISC-V基于标准松散BSD (Berkeley Software Distribution)许可。用户可以自由使用design CPU,也可以开发和添加自己的CPU。他们可以扩展指令集,选择公开发布、商业化销售,或者用其他许可协议替换它,或者使用完全封闭的源代码。”
RISC-V提供了灵活性,但随之而来的不可避免的问题是缺乏一个支持生态系统。RISC-V的生态系统相当有限,特别是与基于广泛可用的Arm和X86架构的MCUs相比。这是否会阻碍RISC-V的进一步发展
中国认为,在解决物联网(本质上是一组新兴的嵌入式市场)问题时,缺乏RISC-V生态系统不是一个大问题。物联网市场仍处于发展阶段,碎片化,客户需求多样化。没有一家公司是固定的,所以生态系统支持不是一个问题。在物联网应用方面,与英特尔和Arm相比,RISC-V在移动、台式机和服务器等更成熟的市场上的劣势要小得多。
中国嵌入式软件协会副会长何晓青在会上表示:“在生态环境中,最难做的事情是移动市场,其次是台式机和服务器。物联网生态系统要简单得多。”
新莱 科技 首席执行官胡振波对此表示赞同。“服务器和台式机的软件生态系统是不可逾越的,但在嵌入式领域,软件生态系统并不像人们想象的那么糟糕,”他说。
兆易创新MCUs的第一行将被命名为GD32VF103。这一行的目标是“主流开发需求”。在介绍中,该公司列出了14款103配置。每一个都是建立在大黄蜂108MHz核心设计与原子核系统技术合作。
这14款机型的主要区别在于不同的闪存容量,以及4种不同的包选项。据该公司称,这些产品都已大规模生产和销售。
兆易创新相信它已经建立了“与RISC-V的桥梁”——为那些一直使用基于arm的MCUs进行设计的公司提供了一条快速切换到基于RISC-V的替代品的途径。该公司表示,两个产品系列之间的“完全兼容性”应确保代码的可重用性,“使跨核心MCU的选择和设计”非常方便。兆易创新表示:“这是我们非常领先的、史无前例的创新。”
兆易创新发布的数据显示,GD32VF103系列单片机在最高频率下的DMIPS为153,在CoreMark基准测试中得分为360分,该公司声称比基于GD32 arm的核心快15%,同时消耗了一半的功耗。
兆易创新相信,它在内存技术方面的专长是一个关键的区别。兆易创新EVP和MCU事业部总经理邓宇举了一个例子:“德州仪器从Arm收购了Luminary,但德州仪器的收购并不成功。Luminary没有Flash基因,所以有些产品会有程序问题。但我们有Flash的经验。我们可以确保此类问题不会发生。”
兆易创新保证,GD32VF103的产品开发速度相当快。市场营销总监金光义表示:“用户可以使用手头的开发工具来实现RISC-V。”
这些工具包括基本IDE(集成开发环境)、调试工具、嵌入式操作系统和云解决方案。当然,也有开发板,包括功能齐全的评估板,针对学习板、电机控制开发板、触摸屏开发板、RC电机驱动板等具体场景的入门级指导。
“我们正在与许多供应商合作,包括软件、中间件、集成开发环境、调试下载工具和终端解决方案的供应商。”金说:“仅仅依靠我们的芯片是不够的。它还需要上游和下游。此外,我们提供一个开放的平台,我们有更多的第三方合作伙伴。我们准备开发一个完整的生态系统。
“我们也是第一个。你可以使用RISC-V通用单片机从头开始解决任何问题。
兆易创新已经出货超过3亿MCU,而且出货速度正在加快;从2亿到3亿的时间比之前的1亿到2亿要短。这些数字包括早期基于arm的mcu。
该公司预计明年将达到4亿美元,并在中国市场占据10%的份额。“RISC-V将推动我们的货运。尽管我们仍需关注市场的实际表现,但我们认为这一出货量是可以预期的。”
通过增加RISC-V版本的Arm MCUs,同时保持与Arm的战略合作伙伴关系,并继续销售基于Arm的MCUs, 兆易创新相信它可以摆脱客户的一站式购物。
“终端客户可以实现不同的形式、不同的应用程序、不同的架构和不同的产品。我们已经有了Arm架构产品;RISC-V是分化的补充。“我们是业内第一家进入RISC-V轨道,为客户提供差异化产品的公司。”
该产品线的下一步是增加对无线的支持。“我们希望加入MCU的连接功能,eRF,将在明年发布第一个加入WiFi连接的产品,”Jin说。
GD32VF103系列已经有了实际应用。例如,在GEZ单片机的微热打印机解决方案中,单片机是GD32VF103C8。该方案可应用于销售点(POS)打印机、税控打印机、自动柜员机等嵌入式微型打印机设备。它在展览会上印刷钞票。
另一个例子是基于GD32VF103C8的USB多点触控设备。以下触摸屏采集触摸信息,通过I2C将其传输给主控芯片GD32VF103C8实现触摸操作,同时可识别1-5个触点。有许多特定的应用程序,包括大屏幕交互显示器、交互 游戏 、智能家居等等。
上面的示例是来自IC Superman的空气净化器解决方案,其中GD32VF103C8负责控制负离子、臭氧和电机等外围操作。
说到ARM指令集,毫无疑问,该指令集霸占了移动市场的全部份额,目前甚至盯上了X86的市场,包括电脑领域甚至是服务器领域,ARM的优势是低功耗性能,而且成本很低,这是X86无法做到的。
目前苹果已经着手开始了ARM芯片对于英特尔X86处理器的替代,但不同于其他ARM芯片,苹果的A系列处理器虽然也是ARM芯片,但是和ARM的关系很小,自研程度很高,不像安卓手机芯片商需要从ARM那里买核心架构授权,所以苹果根本不怕ARM断供。
安卓芯片商的主要几家,高通,华为,联发科,都是采用的ARM公版架构,就连一直采用自研猫鼬核心的三星也决定要放弃自研,用上公版架构,实际上高通之前也有自研核心,但最后发现还是公版最香,其实现在安卓芯片在CPU部分差别都已不大,主要还是GPU和基带方面。
为什么苹果可以不用买ARM的架构核心,而其他芯片商每年都需要从ARM那里购买最新版的架构,比如目前在使用的A77,那么到了明年就是A78了,首先肯定不是因为没有自研的实力,比如三星就是自研,而且跑分还特别高,但跑分没输过,体验没赢过。
其实根本还是生态问题,生态可以认为就是一个统一的标准,华为,高通,联发科,三星,等等其他芯片商都是安卓系统,安卓系统虽然开放的,但却是受限于谷歌的,为了生态的统一性,为了减少开发人员或者各类工程人员的任务量,那么就需要遵循安卓系统的规则。
如果都去搞自研核心的芯片,那么这样一来谷歌安卓就需要做大量的适配工作,针对不同的芯片进行各种优化,而且不光安卓系统,APP应用开发商也是如此,也必须进行各类适配工作,否则很有可能出现BUG,或者是应用兼容问题。
如此一来安卓的碎片化问题会更严重,系统也会越来越臃肿,这显然不利于后续发展,所以安卓系统直接找ARM合作,最新版本的安卓系统适配最新版本的ARM架构,这样一来安卓的适配工作大大降低,只需要针对ARM的官方架构做适配,其他芯片商也只需要用ARM的公版架构,既保证了安卓多元化的特性,同时省了很多不必要的麻烦。
所以苹果就非常好理解了,苹果自始至终是软硬件一体,拥有更多自主权,而且苹果的A系列处理器每年就一款,手机机型数量也很少,在自己的圈子里,自己想怎么优化怎么优化,而安卓芯片商必须看谷歌的态度,因此苹果的ARM处理器才可以不用受限于ARM,自成一派,包括Mac OS从X86迁移到ARM也会非常容易。
目前华为虽然购买了ARM V8指令集的永久授权,但是只要华为还在用安卓系统那么就必须要用ARM的最新的公版架构,否则就会出现很多各种各样的问题,理论上安卓是很开放的,但想要最好的体验,那么ARM公版架构是最好选择,想要不依赖于ARM的公版架构很简单,有了自己的操作系统就可以了。
有了自己的操作系统,并且形成完美的生态,这样一来也就可以反哺硬件,那么此时甚至可以不用依赖于ARM指令集都可以,甚至可以给别的指令集进行优化适配工作,而华为的鸿蒙其实就是这样的布局,当然肯定也有其他公司也在布局,不过对于国内来说,如果想建立这样的生态,操作系统只要一个就可以了,指令集也选定一个进行发展就可以了。
同样国内如果形成这样的生态也是非常有利的,毕竟我们国家有着13亿的人口,打造出一个软件生态,同时再指定一个硬件指令集,形成类似于Windows和X86这样的软硬件结盟,那么很多问题都可以迎刃而解,而这个过程的首要就是打造出有生态优势的操作系统,而未来的物联网就是一个难得的机会。
内容来源于网络!
以上就是关于aarch架构怎么看系统全部的内容,包括:aarch架构怎么看系统、除了ARM架构,还有其他的吗有没有可能开发出比ARM架构还好的、从兆易创新MCU,看Risc-V取代Arm的可能性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!