龙蜥白皮书精选:面向芯片研发和验证的操作系统 SiliconFastOS
文/RISC-V ARCH SIG
01 背景介绍
随着 Arm 和 RISC-V 芯片研发的大爆发,越来越多的芯片设计、制造厂商甚至是云厂商都开始参与到芯片领域中来。面对芯片使用者尤其是处理器芯片与日俱增的需求,且芯片研发研发和流片成本高,芯片制造厂商必须要提高芯片质量,并缩短芯片研发周期,迅速对市场作出反应,实现产品的快速迭代。借着 Arm 和 RISC-V 架构更加开放的生态,业界陆续提出了了芯片敏捷开发方案。
02 技术方案
芯片验证时,软件运行在 FPGA 平台上。具有运行速度慢、硬件变化快且没有 ROM 等特点。造成了在基于 OS 的芯片验证过程中 OS 启动速度慢、命令行工具不够丰富、缺少芯片验证环境、灵活性差和使用成本高等困难。为了解决这些问题,龙蜥社区开发了芯片验证操作系统 SiliconFastOS。SiliconFastOS 具有 OS 启动加速、丰富的命令行工具、原生验证环境、灵活的配置手段和开箱即用等特点,可以帮助提高芯片验证效率,缩短芯片研发周期。
-
最小化 rootfs,SiliconFastOS 尽可能去掉在开发过程中不会使用到的命令,从而减少内核解压 rootfs 和创建页表的时间。此外,SiliconFastOS 内建 build system,支持使用者选择单个软件包中的单个命令来构建最终的 rootfs,可以在尽可能减小 rootfs 大小的前提下,提供丰富的命令行工具,兼顾启动速度和 rootfs 镜像大小。
-
裁剪内核。SiliconFastOS 去掉了在芯片验证阶段不会使用的内核驱动,裁剪内核镜像的大小。SiliconFastOS 还使用了 PCIe delay 等方式进一步缩短 OS。
-
原生芯片验证环境。SiliconFastOS 内部提供了轻量级内核异步单元测试框架 Munit,帮助开发,管理、运行大量的内核单元测试用例。还提供了芯片验证测试框架 Bee,可以和 Munit 搭配使用,同时管理内核和用户态的测试用例。此外,还包含了丰富的芯片验证工具集,帮助开发者快速定位和修复软硬件bug。
-
一键编译,开箱即用。SiliconFastOS 内部使用 Kbuild 搭建,和 Linux 内核一脉相承,开发者可以快速上手,利用 Kbuild 灵活配置 rootfs 软件包和内核,一键生成最终 OS 镜像。
03 技术优势
基于 OS 的端到端芯片验证系统 传统的基于固件和硬件的芯片验证方案在芯片级仿真、调试、硬件固件交互方面有其特有的优势,但随着软硬件融合程度加深,需要更多的端到端验证方案来验证硬件设计对上层应用的影响。相比于固件和硬件方案,基于 OS 的芯片验证系统在灵活性、软硬件协同、对端到端真实场景的模拟、还有工具生态丰富度上面都有其得天独厚的优势。在此基础上,SiliconFastOS 还提供了 Bee + Munit 组成的原生芯片验证环境,帮助使用者开发,管理和运行大量的端到端测试用例。使用 SiliconFastOS + Bee + Munit 的组合方案,可以帮助芯片在流片前评估硬件设计对上层应用的影响,大大降低了各种软硬件协同设计、硬件加速器和异构硬件设计的流片风险。
04 应用场景
SliconFastOS(开源链接:alibaba/SiliconFastOS (github.com)),在倚天 710 上得到了很好的应用,作为端到端的验证系统与硬件验证协同配合,从而进一步提高了倚天 710 的研发效率。SliconFastOS 作为通用的芯片验证系统解决方案,可以有效帮助提高芯片验证的研发效率,目前也支持了 RISC-V 架构,可以在不同的平台和架构的芯片验证平台(如:仿真,FPGA )中使用。
更多龙蜥白皮书精选内容:
【4】龙蜥全面支持 Intel 第四代可扩展处理器 SPR 平台
相关链接:
RISC-V ARCH SIG 主页:https://openanolis.cn/sig/RISC-V
更多龙蜥技术特性解析可移步《龙蜥特性百科》:https://anolis.gitee.io/anolis_features/
2022 龙蜥社区全景白皮书(或公众号【OpenAnolis龙蜥】回复关键字“白皮书”获取)https://openanolis.cn/openanoliswhitepaper
—— 完 ——