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