上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

21-Guo-Ren-64ILP32_v2.pdf

编号:155451 PDF 25页 8.43MB 下载积分:VIP专享
下载报告请您先登录!

21-Guo-Ren-64ILP32_v2.pdf

1、打破 64ILP32 的魔咒挣脱 32 位的桎梏Guo Renguorenkernel.org近期作:在算能128核平台上实现 qspinlock64ILP32(老)32位:32ILP32在 32位架构硬件上,运行 ILP32 数据类型软件64位:64LP64在 64位架构硬件上,运行 LP64 数据类型软件新32位:64ILP32 在 64位架构硬件上,运行 ILP32 数据类型软件 为什么叫新32位?如何衡量 32位 和 64位?剧本:新32位 取代 老32位,与 64位 分天下(Linux)什么是 64ILP32?新32位的魔咒(Linux)在 Linux 过去的年中,各架构都曾尝试新3

2、2位,x86 的 X32,MIPS 的 N32,和 ARM 的 64ilp32,但都没有成功。在去年RISC-V峰会上,我分享了 COMPAT 特性的贡献,其中就有关于新32位ABI的讨论:Linux 架构系统的维护者(Arnd Bergeman)公开表示,不持新32位ABI,且不会将 ARM64 的 新32位户态功能合内核主线RISC-V psABI 副主席 Jessica 直不讳:其他架构都不,凭啥RV?Every single attempt at ILP32 ABI for a 64-bit architecture has failed to take off in the past

3、,so I struggle to see why RV64 will be any different.以上位佬的论,代表的是主流观点:新32位不通但是,新32位有种魔,它吸引着代代架构不断尝试,却铩归,这就是我们要打破的魔咒,个经过年形成的观念。We had the same debate for Arm64,and ended up never merging the ILP32 patches despite them being well written and maintainable,to limit the number of supported user space ABIs

4、 as well as the possible attack vectors when there is an exploitable bug that is specific to an ABI.ARM64用户态支持新32位的内核补丁ARM64 的 ILP32 历时2年(2017-2019),6 个的努,共 22 个补丁,悬于 Catalin Marinas(ARM64 维护)的仓库中,不被合。如果不汲取前辈的经验教训,不改良,不创新,我们还会重蹈覆辙!相比前辈,我们做了哪些改良和创新?首次让 新32位内核 运行在 64位指令架构 之上持完整新32位:u64ilp32-新32位 户态s64

5、ilp32-新32位 内核态前辈只实现了新32位的户态内核户 前辈的方案,沿用 64位栈布局 我们的方案,改用 32位栈布局效果:栈的内存开销减少一半 入栈性能,提升 3%(减半无效数据,减轻了 CPU 写队列的负担)出栈性能,提升 1%(减半无效数据,减轻缓存预取的负担)简易测量:直接对比出入栈的 IPCTODO:砍掉一半数据,受限于测试方法,观测到的性能提升很小。只有找到 cache miss 的零界点,才能凸显性能优势。栈的优化 前辈方案:零扩展寻址缺点:需要插入额外指令对地址高位抹零,影响性能和代码密度。我们方案:符号扩展寻址用 OS 实现 MMU 的双重映射,使得符号扩展的地址,和零

6、扩展的地址,在取指和访存效果上相同。优势:减轻编译器工作 提升性能 提升代码密度符号扩展寻址方案GCC:廖仕华,陈嘉炜性能分析:王俊强,陈小欧FEDORA:张松松,傅炜QEMU:李威威LLVM:陆旭凡,廖春玉LINUX:李春强,郭任后勤保障:ISCAS 吴伟,T-HEAD 熊健新32位是一个大工程使用小数据类型(INT8/FP8)让 AI 推理获得了不菲的性能和成本收益,那么 ILP32 相比 LP64 能否达到一样的效果?第一层价值:比较数据类型(ILP32:LP64)新32位 v.s.64位SPEC CPU2006 最大提升 40%(32 位时代)测试平台:UNMATCHEDD1TODO:

7、解决编译器插符号扩展指令,导致指令数增加的问题SPEC CPU2017 最大提升 18%(64 位时代)因为 D1 内存限制,所以只测试 UNMATCHED 平台,感谢 SPEC 队的作。64位 内存开销比 新32位 多 28%基于 tinyconfig 16MB 内存,并尽量消除 64位和32位的 kconfig 差异,启动日志逐行对齐。计算公式:内存开销=TotalPages-FreePages64位=4096-3334=762新32位=4096-3503=593(762-593)/593=169/593=28.49%sizeof(xxx)ILP32LP64struct page3264l

8、ist_head816hlist_node816vm_area_struct68136新32位64位感谢泰晓社区提供的内核配置。更多内容,请参考泰晓社区为 RISC-V 架构研发的小型化系统项目:https:/tinylab.org/tinylinux(8MB 内存跑 Linux)新32位 普惠所有 RISC-V 64位硬件平台前市上在售的 RISC-V Linux 硬件都是纯 64位架构,这是新32位落地 RISC-V 的天时!第二层价值:比较指令架构(RV64:RV32)新32位 v.s.老32位因为用户态的扩展指令集稀释了 64位相对 32位的架构优势,所以我们实现了新32位内核,下面在

9、内核态比较它们。第一拳:新32位内核的访存优势基于 RV64 ISA 的新32位内核拥有双字访存指令 LD/SD,基于 RV32 ISA 的32位内核仅有单字访存指令 LW/SW,导致32位内核访存性能幅落后新32位。内核访存能直接决定络性能,系统性能,和驱动性能。Linux/arch/riscv/lib/memcpy.S eBPF JIT:eBPF 是当下的热门技术,其生态正在快速生长,它可以不改内核源码或加载内核模块的前提下,扩展内核功能。JIT 是即时编译加速技术,将 eBPF 码编译成原生指令再执行,而 eBPF 寄存器是64位宽,无法直接映射32位指令架构,很多64位算术操作也不能简

10、单映射到32位架构的指令上。所以,只有 64位指令架构才能使 eBPF JIT 真正达到原生内核的性能。ATOMIC64:原生 64 位原子指令,能够和 32位原子操作互斥。但 32位指令架构没有64位原子指令,只能通过软件模拟(GENERIC_ATOMIC64),无法和32位原子指令互斥,存在语义错误。第二拳:老32位缺失内核功能DCAS(双元比较交换)指令,是非常昂贵的硬件实现。在 32 位 Linux 中,只有x86 实现了这一功能,它可以开启 SLUB 加速的特性:mm/slub.c:if(s-flags&_CMPXCHG_DOUBLE)ret=_update_freelist_fas

11、t(slab,freelist_old,counters_old,freelist_new,counters_new);else ret=_update_freelist_slow(slab,freelist_old,counters_old,freelist_new,counters_new);新32位 Linux 内核通过双字 LR/SC 指令实现 DCAS,达成了相同效果。第三拳:新32位拓展内核能力应用处理器架构的发展趋势 ARMv9 只有 64位指令架构 RVA Profiles 也只有 64位指令架构RV-RISC-VA -application processors runnin

12、g rich operating systemsLPC 2023 RISC-V MC(把删除rv32 当作项议题)Likely Topics for Discussion Sections When can we start deprecating stuff?Likely-unused bits include:rv32,nommu,xip,old toolchains.32位指令架构的芯片面积小?“Compared to Cortex-A35,the Cortex-A32 offers same 32-bit performance but consumes 10%less power a

13、nd has a 13%smaller core.”https:/ 相比 A35,通用寄存器数量也从 32 个减至 16 个(RISC-V 32/64位 寄存器数量相同)A32 相比 A35,少了16个 128 位SIMD寄存器(同上)A35 作为 32位+64位的混合架构,额外包含了 A32 的所有控制,运算模块以上三点均不涉及位宽调整,那么 64 位到 32 位,在 13%中占多少呢?姑且对折:6.5%,再加上 L2 cache,和各种 IP 后,按 AP 类芯片 CPU 核占 10%面积算,32位架构带来的芯片面积收益约 0.65%新32位内核相对老32位的巨大优势,使得芯片厂愿意升级到

14、纯64位架构,这种潮流会给市场带来景气和繁荣。挣脱32位的桎梏(s 代表内核态,u 代表用户态)低端:s64ilp32+u64ilp32(新32位内核)中端:s64lp64+u64ilp32 高端:s64lp64+u64ilp32/u64lp64(用户态,32位与64位的混合部署)RV64 ISA+Linux 软件态,缝衔接 产品迭代,从容淡定 才培养,循序渐进单核8MB超级计算机单核64MB128核256GB即将推出全球首款新32位发行版s64ilp32+u64ilp32https:/fedoraproject.org/wiki/Architectures/RISC-V/64ILP32Find MoreXuantie GitHub挣脱32位的桎梏RV64 ISA鸿沟物理内存限制=1GB户空间寻址限制 2.5GBRV32 ISA

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(21-Guo-Ren-64ILP32_v2.pdf)为本站 (张5G) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部