Intel 六位专家对 Simics 助力 Shift-Left 的讨论(2018)

2018年,Intel VP Michael Greene 、Intel Simics 虚拟平台系统总监 Ryan Averill、Intel principal eng Robert Jones、Intel 软件就绪赋能总监 Vinoo Srinivasan、Intel Core Linux kernel 项目经理 Alexandra Oliveros-Villalba、Intel Pre-Silicon 客户加速总监 Chris Lawless 等专家讨论了 Simics 仿真技术对 Shift-Left (左移)助力的讨论。内容涵盖...等方面。更多内容,可参考Shifting-Left

Intel 的芯片制造过去往往涉及大量按顺序进行的工作,但如今的硅产品需要更多的步骤。它们的设计、开发、测试和制造耗时更长,且需要更多的软件来实现其全部价值。

如果发生计划外的修改,可能会导致数月的延误,并给公司底线带来数百万美元的损失。这一挑战催生了一种新方法,旨在首次就正确完成 Intel 芯片和关键软件栈的开发:压缩任务,并行处理更多工作。业界称之为Shifting Left,这意味着在产品生命周期的早期完成更多工作,这在很大程度上要归功于使用了诸如 Simics 虚拟平台等创新的仿真和建模技术。

我们的 Shift-Left 始于协调平台硬件与软件共同开发的努力,其中一个效果是将软件开发从产品开发的末端移到了最前端和中心的位置。

如今,我的团队确保在产品最终上市时,交付给客户并使其对他们的客户具有可用性的所有关键代码都已准备就绪。这项工作被称为硅前软件就绪(Pre-Silicon Software Readiness)。

这是一种范式转变。在这个过程中,我们需要与客户建立更紧密的合作伙伴关系,并且要早得多。

Shift-Left 对从设计到测试的影响

Intel 负责左移工作的 Senior Principal 工程师 Robert Jones 告诉我,这对硬件方面影响巨大。他说,在过去,当在新芯片上进行测试和软件开发是在流片后(Post-silicon)进行时,"你对硬件的功能有一个相对固定的定义,即我们流片的内容。"

但是,为了让团队能够更早地开始构建测试和关键软件,他们需要提前知道新芯片将要做什么以及如何去做。Jones证实:"对设计和架构的要求非常高。团队正在为更多的客户构建更多的产品,而现在我们需要更早地获得这部分工作成果。"

在Intel内部及外部,从事固件、BIOS、驱动程序、编译器和软件开发工具包(SDK)工作的软件团队不再被视为下游用户,他们是合作伙伴。在过去,硬件团队有权随意更改设计。

在软件已经开始开发后进行的更改可能会带来巨大的痛苦。持续集成的挑战在于每次集成的变化量有多大。一个简单的寄存器名称更改都可能成为一个巨大的问题。

虚拟平台为芯片提供严苛测试

更广泛地使用 Simics 虚拟平台软件使开发者能够在新芯片的仿真环境中构建和运行代码。这有助于将任务反串行化,并压缩到关键的硅前(Pre-silicon)窗口期。Intel 的主要仿真环境运行在 Simics 虚拟平台上,这也由我的团队提供支持。

在 Simics 虚拟平台上构建和测试软件后,某OEM厂商仅用一天多一点的时间就启动了一款新芯片,而以前这需要两周时间。

Intel 团队正在这些 Simics 虚拟平台上构建高级测试,甚至在一款尚需数年才能面世的客户端芯片设计上运行虚拟现实(VR)演示。我们还将 Simics 虚拟平台交到客户和生态系统合作伙伴手中,让他们对自己的设计和软件栈有一个抢先起步的机会。

通过这些举措,Intel 将 Simics 虚拟平台的覆盖范围扩展到了不仅包括BIOS 和操作系统(OS),还包括工具、SDK、中间件、工作负载和应用程序。

深入了解虚拟平台

Simics 虚拟平台系统总监 Ryan Averill 分享了更多关于仿真在我们的上市前软件就绪计划中所扮演角色的细节。他解释说:"这一切都是为了减少我们从构思产品到实际发货之间的时间。"

"我们在 Simics 虚拟平台上测试真实的软件,因此我们可以像在真实物理平台上一样调试代码。当不同的测试用例失败时,我们可以进行调试,找出哪个软件组件有问题,修复它,再次测试并继续推进。

虽然 Simics 虚拟平台本身主要通过执行软件指令来进行功能测试,但 Intel CoFluent 技术和 Intel Docea 解决方案提供了额外的仿真能力,用于处理功耗、性能和热特性。

Averill 补充道:"随着这些技术的集成,我们获得了用于端到端仿真的极其稳健的解决方案,即上市前仿真。这个整体仿真套件对于我们加速内部以及与客户整个软件栈的上市前就绪能力至关重要。"

大部分用于测试的固件、BIOS代码和开发工具来自Intel,也有一些来自第三方,如操作系统(OS)、Java、数据库管理系统甚至应用程序。Intel与软件合作伙伴合作,在硬件推出前向他们提供错误报告和软件修复。

使用 Simics 虚拟平台进行软件验证对 Intel 来说并不新鲜。Averill 指出:"这是我们在2010年收购 Simics 的创建公司 Virtutech 时就开始的工作。我们从 Skylake 一代之前就开始了,因此我们已经经历了几代产品的持续改进。每一代我们都能做得更多。"

软件就绪资格认证(SRQ, software readiness qualification)

软件就绪赋能总监 Vinoo Srinivasan 这样描述SRQ:"我们确保MCSW(mission-critical 软件)在上市前就在 Simics 虚拟平台上获得资格认证。SRQ的任务是将完整软件体验的资格认证 Shift-Left。"

他补充道:"我们确保在硅芯片发布前软件栈就能正常工作。如今,软件资格认证是Intel全公司的团队协作努力。"

MCSW在四个关键领域得到应用:

  • 针对传统和新硅芯片特性的驱动程序和固件组件
  • 针对新硅芯片特性的操作系统(OS)和虚拟机管理程序(VMM)更改
  • 应用程序和中间件特性
  • 软件工具和SDK

我们使用平台组件、开发中和新的OS特性、关键工作负载功能、硅芯片产品的新特性以及产品相关的工具和SDK。Srinivasan 解释说:"SRQ使用 Simics 虚拟平台来实现最大的软件覆盖率,以验证真实的用户体验。"

SRQ团队在流程早期介入,以建立上市前执行计划。为了识别该计划的MCSW,必须充分理解产品的软件落地范围,因此SRQ团队与软件规划团队合作。他们共同构建MCSW,并与利益相关者合作,推动所有上市前开发和验证的MCSW覆盖率。

Linux 作为案例

Intel开源技术中心(OTC)通过在广泛的项目中进行上游贡献来支持新的Intel硅芯片特性。作为Linux内核最大的上游贡献者,OTC投入了大量资源,为Linux社区提供新功能支持和价值。

Intel OTC 的Core Linux内核项目经理 Alexandra Oliveros-Villalba指出:"Linux内核可以被视为一组服务,用于在平台上实现调度、线程管理、I/O设备兼容性、CPU优化、内存管理和其他系统功能。"

Oliveros-Villalba 的团队通过 kernel.org 向 Linux 社区提交代码补丁。这些代码补丁反过来使下游操作系统发行版受益,例如Redhat Enterprise Linux、Ubuntu、Android、Chrome OS、Clear Linux等。仅仅通过启用内核,你就可以启用所有的Linux操作系统。

Oliveros-Villalba 补充道:"一些 Intel 客户关心特定的 Linux 发行版和用例,因此需要针对每个下游内核和操作系统进行验证。作为SRQ的一部分,你需要查看每个特定的操作系统以满足那些特定要求。我们正在Shift-Left,以支持上市前的客户和下游操作系统发行版,协调一个首先从Linux 内核开始,然后进入那些 Linux 发行版模型的环境。"

"对我们来说,关键是到平台发布时,为每个硬件平台提供代码,以便平台功能得到支持并与操作系统供应商保持一致,"她解释道。"我们开始得越早,就越能更好地处理变更,并在发布前为客户提供上游代码。"

硅前客户加速

硅前客户加速(PCA)总监 Chris Lawless 描述了他的团队的主要使命:"使Intel的客户能够左移其软件开发,并更快地将其基于 Intel 的产品推向市场。"

"我们与Intel业务部门紧密合作,帮助推动每个客户的软件开发过程与Intel的产品开发并行化,从而使双方都能更快地交付产品。"

为了实现产品发布,Intel硅芯片中的新功能和复杂功能需要一个"软件开发跑道",Lawless说。"我们还寻求与客户的紧密合作和反馈,以改进 Intel 自己的软件。"

PCA旨在实现一种最终状态,即在客户平台开机时,每个软件栈都能启动并运行,从而显著减少客户上市所需的时间。

PCA支持数十家原始设备制造商(OEM)和原始设计制造商(ODM),以及独立固件供应商(IFV)、操作系统供应商(OSV)和独立软件供应商(ISV)。PCA还与电子设计自动化(EDA)公司合作,在客户现场支持更复杂的解决方案。

软件生态系统是复杂且相互关联的。通过支持向我们的客户交付产品的IFV、OSV等,我们帮助完成了整个软件栈的早期就绪。Lawless 补充道:"我们主要专注于确保每个客户的系统软件都已准备就绪。"

相关推荐
anscos2 天前
设计仿真 | Marc 2025调用前分析状态铆接实例解读
仿真·软件
Wishell20153 天前
FPGA教程系列-流水线思想初识
仿真
Wishell20154 天前
FPGA教程系列-Vivado AXI串口仿真测试
仿真
Wishell20154 天前
FPGA教程系列-乒乓操作
仿真
Terasic友晶科技4 天前
6-DE10-Nano的HDMI方块移动案例——使用Modelsim仿真I2C控制器
fpga开发·仿真·modelsim·hdmi·i2c_controller
Wishell20156 天前
FPGA教程系列-Vivado AXI串口程序解析
仿真
云雾J视界10 天前
SPICE仿真进阶:AI芯片低功耗设计中的瞬态/AC分析实战
低功耗·仿真·spice·ai芯片·ac·均值估算
fdtsaid10 天前
Simics 设备建模语言 DML 简介(2022)
simulator·仿真器·simics·intel simics