ARM架构的关键能力

作者简介
十四年it基础设施研发经验,其中包括六年linux kernel一线研发经验,在suse,华为,星际比特(技术合伙人)等公司工作。
作为团队核心成员参与了大陆第一个cortex-a8 soc芯片研发,负责cpu软件验证,操作系统移植等工作。
作为华为派驻到linaro的技术专家,主导/参与多个linux与arm架构相关特性研发(ilp32,continuous bit hint,kernel selftest等)
在拉斯维加斯,柏林,布达佩斯和北京多次发表技术演讲
2022年6月6日,wwdc 2022,苹果推出了新的macbook air和macbook pro,最大支持24g内存和2t存储,支持8k视频,支持18-20小时的续航,价格分别是1199美元和1299美元起。二者都适用了苹果最新自研的m2芯片。
作为底软的吃瓜群众,迫不及待的想把air拆开,一探究竟,无奈囊中羞涩。只好隔着屏幕一探m2的究竟。健哥整理了m1和m2的部分特性(表格横屏查看):
soc m1 m2
architecture arm v8.5 arm v8.5
cpu 4xfirestorm 4xicestorm 4xavalanche 4xblizzard
memory 8g/16g lpddr4 8/16/24g lpddr5
transister 16 billion 20 billion
product macbook air/pro 2020 macbok air/pro 2022
release date 2020 2022
资料来源:apple公司官网,整理人:健哥。原始表格:https://fvot4kwt4n.feishu.cn/sheets/shtcn69s9nbcvyxx0bandgxiaub
m2使用了和a15一样的两个cpu ip avalanche,blizzard,分别作为性能核心和能效核心。二者组成大小核,会根据系统需要,选择合适的cpu,平衡性能和功耗。arm公司官方的最新大小核技术称为dynamiq。很遗憾,健哥暂时没有查到苹果大小核技术的更多信息,希望以后有机会向大家分享。
可以看到m2支持了更大的内存和更好的带宽。资料显示,m2使用了lpddr5 6400,带宽可以到达100g。btw,很多手机使用了lpddr5,例如华为mate p40,小米10,带宽大约在30-40g。
健哥查到的第一个使用lpddr5的笔记本是华为的擎云l420,这个笔记本使用了华为麒麟9006c soc。该芯片也采用了5nm工艺,最高频率3.13ghz。某东8+256的版本是7999元。
想了解一个arm cpu,最为核心的是知道这个cpu的架构,根据网上的资料,m2的cpu是支持armv8.5扩展的。arm从v8开始,除了v8,v9的大版本,还有若干小版本。目前最新的是v8.8和v9.3。虽然v8.5不是最新的arm架构,但是v9.0除了sve2,cca,其余和v8.5是一样的。很多很多年之后,即使没有armv8a处理器了,今天学习的v8.5特性,也是未来继续跟踪arm架构发展的很好的切入点。
从上图可以看到v8.5的主要增强有:
mte: memory tagging extension;
bti: branch target identification;
随机数生成器;
增强对pmem的支持。
memory tagging extension,顾名思义,是一个tag相关的特性。它使用了虚拟地址是不使用的位作为tag,可以用于use-after-free和buffer overrrun两个内存安全特性。
branch target identification:从名字上可以看出,这是一个和跳转相关的特性,作用是在页表,pstate和bti指令的配合下,检查是否发生了预期之外的跳转。如果是预期之外的跳转,会触发异常。
随机数生成器是引入了rndr,rndrrs两条指令。
对pmem的支持:增加了podp,podp可以保证即使硬件故障导致了断电,persistent memory的数据不会出错。
除了第三个特性,其它三个看起来都有点复杂,其实用健哥上次直播介绍的arm架构三大基石(汇编,异常和内存)和三步学习方法(理解原理,阅读代码,实验验证),咱们都能化繁为简。
比如bti特性,由三部分组成
页表中的gp位,用于设置是否是guarded page。这背后是对页表的基本理解;
bti指令用于指定检查的规则。例如是否可以跳转的动态链接库。这背后是汇编语言的基本语法和过程调用标准(apcs64);
pstate.btype位用于在guarded区域(上面所说guarded page的区域)的指令是否产生异常。
可以看到,理解bti特性需要从汇编,异常和内存三方面配合理解。有了上面的初步了解,再结合原本plt的代码代码(下图),我们可以想象在打开bti特性的情况下,如果是guarded区域,br指令如果访问了x16, x17之外的寄存器,会产生异常。
编译器使能bti后,我们的确能看到0x790行插入了bti c指令。
对于mte也是一样的,学习mte特性是对三大基石的巩固和提高,然后我们可以借助对于mte的了解,更多的理解软硬件如何配合,近可以看看操作系统下为内存安全还做了哪些事情,远可以更多学习操作系统的内存管理知识,从而更深理解操作系统。
在课程中,我们会和今天一样,先从软硬件系统的整体出发到arm cpu,然后聚焦在汇编,异常和内存三部分,每一部分都有三个学习要点,每个要点都通过原理,代码和实验三部分打通。打通之后,我们通过对于更深入特性的拆解,验证前面的学习效果。欢迎大家报名我的arm工作坊,我带大家一起打通和爆破arm架构的关键能力。
原文标题:apple m2和armv8.5特性
文章出处:【微信公众号:linux阅码场】欢迎添加关注!文章转载请注明出处。


英飞凌推新LTE低噪声放大器及LNA Bank 大幅改善用户体验
远程修改STM32 TIMER占空比的方案
酷比H9正式发布:无边框、双摄与Hi-Fi
小米将在国庆前加速推进线下渠道建设,以促进手机等产品的销售
悉尼科技大学成立了一个新的人工智能研究所
ARM架构的关键能力
新技术:盘点支持Type-C快充手机
数字人最强通告 百度智能云曦灵数字人平台发力
荣耀畅玩7X采用5.93英寸显示屏4GB运行内+32GB存储空间存被称为“科技潮品”
“新基建”不再是时髦的概念,而是实在的商机
斯柯达自动空调空气护理系统保证车内的空气清洁
!销售/回收HP8922S/HP8922S/HP8922S现
采用无监督学习的方法,用深度摘要网络总结视频
DEVICENET转ETHERNET/IP网关devicenet通讯模块
富士康内部人士称iPhone 5将量产:配4英寸屏
基于能量收集技术建立替代能源动力系统
盘点:2016年LED显示屏行业并购大事件
人工智能火热,但AI科技巨头难以从中获利
WindRiver携手Cavium推出多核软件解决方案
IT8800高速高精度可编程直流负载经典应用案例分享