技术概述:ARMv8体系结构

本文探讨了ARMv7体系结构的发展历程,重点介绍了Cortex-A系列处理器,特别是Cortex-A7和A15在扩展内存和虚拟化方面的创新。ARMv8体系结构引入了A64指令集,支持64位计算,强调了生态系统的迁移和支持策略。文章指出,尽管64位计算是趋势,但对于大多数应用,现有的4GB地址空间已足够,但ARM仍在为长期发展做准备,确保软件兼容性和生态系统稳定性。

John Goodacre, Director Program Management

ARM Processor Division, November 2011

背景:ARM体系结构

从ARM精简指令集体系结构提出到现在已经有20多年了;ARMv7系列处理器是在ARMv4基础上设计的,随着ARMv7系列处理器大量应用,ARM精简指令集体系结构才获得业界广泛认可。ARM一直致力于低功耗设计;最初的ARM处理器没有浮点部件,没有复杂的数学指令,没有SIMD,甚至都不支持两个整数类型的除法指令。到了2011年,ARM Cortex系列处理器都是基于ARMv7体系结构。

随着ARM处理器应用到移动设备之外的领域,ARMv7体系结构自身虽然具有一致性,依然分成三大类型:应用型A、实时型R和微控制器型M。

Cortex处理器迅速成为业界主流处理器。Cortex-A9处理器在Cortex-A8基础上研制的、支持SMP架构的、A型大处理器;而内部互连了嵌入式处理器ARM926的Cortex-A5处理器是低成本低功耗处理器方案。这些Cortex处理器拓展了ARM的很多新业务。2011年10月,Cortex-A7支持大小核提升能效管理,从而增强了电池使用寿命,已经成为智能手机入门级配置要求。

自从ARM引入ARMv7体系结构之后,随着软件生态和应用商店的发展,ARM体系结构的发展必须完全向后兼容。首先,新体系结构必须比先前体系结构有更大的优势;新体系结构还要支持先前体系结构上可运行的软件,即使该软件不使用任何新特性,也能正确运行在新体系结构之上。

一般说来,新体系结构都是在先前体系结构上增加新功能;然而,为了解决旧体系结构上的历史遗留错误,就会提出一个新的体系结构。这也是提出ARMv8体系结构的主要因素。

在最近几年,PC市场上已经有很多ARM处理器设备了。很多平板类设备都采用了Cortex-A9处理器,为各种主流PC用户提供低功耗方案;很多主流企业的设备和服务器为了提升单位功耗上的性能,也采用ARM处理器。

随着SoC集成度越来越高,亚纳米制造技术允许在一颗芯片封装内部集成很多功能模块。ARM设备性能越来越高,需要支持更多更复杂的应用软件,这些应用软件对内存的需求也越来越多;32位体系结构上的内存容量很可能不能满足这样的应用需求。

Cortex-A15处理器是遵循ARMv7体系结构,并引入了两个可选扩展功能来满足关键市场需求:大物理内存寻址扩展LPAE和虚拟化。为了在单一内存空间上集成更多设备,设备和设备之间的通信(共享内存)必须具有相同的地址映射。PC市场上的CPU和GPU具有不同的地址空间,与此不同的是,低功耗和低成本要求它们能共享内存空间。因此,LPAE就是一种解决方案;Cortex-A15支持一种新的页表格式,允许用4KB的页长度将多个32位虚拟地址空间映射最多到一个40位物理地址空间上。这种方案不仅解决了SoC高集成度与地址映射限制之间的矛盾,当前很多SoC设备都遇到地址映射限制;这种方案还解决了多个应用同时访问同一个设备的问题,与此同时针对最大访问4GB内存的应用,还不需要诸如硬盘的设备用于内存换出。绝大多数手机用户都不喜欢基于硬盘的内存换出方案。

Cortex-A15还引入了完整的虚拟化的硬件加速功能。虚拟化可以满足两个日益增长的需求:软件定义设备机制;分区机制,即将软件部署到可管理、独立的实体上。

既然ARMv7+LPAE可以突破4GB的限制,ARMv8又会带来什么优势呢?ARMv8是否需要支持全64位指令集体系结构和更大的虚拟地址空间呢?以当前ARM的市场来看,对大部分的应用而言4GB地址空间足够了。在定义新的体系结构时,ARM主要看重趋势。从商业发展来看,我们需要更长远的规划。ARMv8是ARM公司历史上经历的最大项目。创新和改变世界的能力是由软件来实现的。站在ARM角度,底层硬件平台就是赋能;ARM更重要的角色,就是赋能软件将体验和价值传递给消费者。

ARMv8体系结构的基础

此时,ARMv8体系结构还是围绕Cortex-A型处理器市场需求来定义的。ARMv7体系结构依然能够满足实时和微控制器市场上好几代的需求。事实上,Cortex-A15在扩展LPAE功能后,已经满足了A型处理器市场对“超32位”地址空间的需求。LPAE定义了一种页表格式,虚地址(这里仍然是32位的虚地址吗?)可以映射到40位物理地址空间上。我们也可以用一个更大虚拟和物理地址空间来满足上述应用需求。ARMv8定义了虚地址长度最大支持48位符号位扩展,物理地址长度最大支持48位;这样一来,ARMv8体系结构就能够最大地兼容Cortex-A15上运行的老软件。

ARMv8还定义了一个新的指令集A64;指令编码的设计目标之一就是,应用程序能够充分利用64位机。ARM引入了全新的指令集,没有通过扩展老指令集,从而支持64位体系结构;这主要基于几个方面的考虑。第一个显而易见的原因就是相比扩展老指令集,开发全新指令集可以实现更低的功耗设计。当然, ARMv8体系结构为了向前兼容而支持ARMv7机器上的老软件,但在运行全新的64位软件时,兼容ARMv7机器的硬件部件并没有被激活;这一点,与扩展老指令方式(在32位模式上简单扩展64位模式)实现的体系结构不同。新指令集借鉴了多年来不同微架构的开发经验,所以新处理器更容易实现低功耗操作的优化——从ARMv4机器(经典的低功耗ARMv7处理器就是在ARMv4

# 学习对象在全民造车、造芯的大时代,在努力去解决卡脖子的时代,ASIC硬件、SOC底层软件、Linux Kernel等操作系统软件(内核/驱动)、软硬件方面的系统架构师等的岗位需求也越来越明显,社会一直都是非常缺人的,缺的是核心的那一小撮、领头的那一小撮,社会所缺的更是能够软硬件融合的那一小撮人……总之,要想在这个时代,站稳自己的脚跟,能够在大公司或行业上拥有一席之地,就必需深入学习底层技术原理,核心技术才是您的看家本领。本课程设计之初,主要针对SOC底层软件开发的者、系统开发者,或者励志成为这样的人。既适合资深/高级工程师来查缺补漏,又适合初级工程师入门。(理论上该课程ASIC硬件电路设计无关,该课程偏软件,但事实购买该课程的做ASIC的同学已然超过了15%)适用人群1、芯片开发者(包括底层软件、或做ASIC硬件的)。不限行业,例如车、云、物联网、移动端等领域;2、汽车行业开发者(主机厂、tier1、SOC厂家、各级供应商);3、嵌入式开发者、kernel开发者、驱动、软件工程师;4、学生。既适合学生从入门到精通,也适合资深工程师查缺补漏;您的收益:1、全体系的掌握ARMv8/ARMv9的核心知识点(ARM基础、异常中断GIC、MMU/Cache、architecture...);2、掌握ARM架构、掌握SOC架构、掌握常规IP(gic、smmu、timer、AXI/ACE/CHI、TZC400...);3、快速熟悉常规系统软件(bootrom、spl、ATF、TEE、bootloader、kernel...), Secureboot安全启动...4、技术水平提升N个level, 掌握快速的学习方法;# 学习什么在ARM蓬勃发展的年代,不仅仅涉及到物联网IOT、移动领域(如手机)、汽车电子领域,现在还涉及到PC、服务器的,简直就是各行各业。ARMv8出来已经有10年了,ARMv9也2年时间了。在技术不断更新迭代的背景下,此时再去学习十五年前的ARMv7、二十年前的ARMv5/v6显然不是明智的选择。本课程主要基于当前最新的架构ARMv8的aarch64ARMv9,如涉及具体的ARM Core IP主要还是以最新的ARM Core IP为主,软件架构也是以当前最主流的/未来所趋势的架构来讲解。以下也给大家列举初了一个ARM产品的timeline的总结(在本课程中有着大量的这种总结),从这张图中,您是可以清晰的看到本课程拥有独具一格的风格、拥有全网最新(且唯一)的资料总结或学习路线。# 本课程大纲规划(课程持续更新中,课程总量统计:2022/10/02  当前是 61节课, 22小时)第一章:主要是快速学习: ARM简介、指令集、寄存器总结等。第二章:本系列视频的一大亮点,系统全面地讲解了arm异常中断gic等相关的软硬件知识,本人一直在倡导“学arm安全其实就是学arm架构,学arm架构其实就是学习arm的异常中断”,异常中断是领着你进入架构的入门,是让你变成系统软硬件架构师的必走之路。第三章:安全专题,这也是本视频最核心的东西。因为你无论买书还是看博客等,你都很难找到讲解安全的教程,这里就是有无的区别。本人系统的整理的安全的知识,带领你快速入门。第四章:mmu专题,透过事务看本质的讲解,白话式的演讲。在所有模块中,mmu也算是相对较简单模块。相信人人听得懂,人人学得会。第五章:cache专题,一切追求实事求是,不人云亦云,一切知识点都有迹可循,推翻了网络的很多观念。在众多模块中,cache算是一个比较难的模块。了解了cache后,才能算真正了解系统的软硬件架构。第六章:虚拟化,本人不擅长,会啥就随便讲点啥。(以后学会了再来补)第七章:architecture,就是零散零碎的系统架构知识,如exclusive、arch timer、reset、系统启动、SOC设计、AMBA/AXI/ACE、DSU、WFE/WFI这样的。第八章: 新增的ARMv9 CCA/RME安全架构专题第九章:主要放置一些直播课。# 课程收益1、知道我学习什么,我要怎么去学习,从此之后有了一个明确的学习路线。2、认识一些共同目标的人,相互讨论问题,共同进步。勤学、共学、助学。3、ARM不再神秘,SOC不在神秘,让您短期内就能cover住全局4、熟悉ARM Architecture架构知识5、熟悉SOC架构知识6、熟悉主流的系统软件框架7、熟悉各项硬件原理机制,如异常中断、MMU、cache、TLB、VMSA、Trustzone6、深入了解当前的系统架构、软硬件架构,能够看懂这些大家,将来也能够自己设计。7、熟悉系统的启动流程、Secureboot等8、熟悉各类标准规范9、能够进入芯片厂商干活、能够在非芯片产生成为技术担当。10、学习资料的获取方法,会看11500多页的ARM手册,会看数以百计的ARM各项参考手册。 本课程会持续更新。也希望通过本课程的学习,能够让大家的ARMv8/ARMv9开发技术能有质的飞越,能找到自己心仪的工作。在购买之前,也建议大家看一看第一章第一节的课程介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值