首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >内核启动前,GPU已完成九层初始化:揭秘英伟达GPU完整固件栈

内核启动前,GPU已完成九层初始化:揭秘英伟达GPU完整固件栈

作者头像
GPUS Lady
发布2026-06-24 11:45:41
发布2026-06-24 11:45:41
220
举报
文章被收录于专栏:GPUS开发者GPUS开发者

多数人对电脑启动的认知,局限于“开机BIOS→系统内核→驱动加载→硬件就绪”的流程。但很少有人知道,在操作系统内核启动、任何系统程序加载之前,你的NVIDIA GPU就已经自主完成了一整套复杂的启动、校验与初始化流程。

我们常笼统提及的“GPU固件”,从来不是单一文件、单一程序,而是一套层层递进、严格校验的九层分层固件栈。其中前四层完全独立于操作系统运行,在内核苏醒前就已完成硬件自检、安全校验、显存清理等核心操作。从Turing架构到最新的Blackwell架构,这套九层架构一脉相承,同时历代架构的迭代升级,也让固件栈的核心模块悄然蜕变。

从零到就绪:GPU九层固件栈全解析

这九层架构遵循“接力启动、层层校验”的核心逻辑,上一层代码负责验证下一层的合法性,校验通过后移交硬件控制权,全程闭环可控,筑牢GPU运行的安全与稳定基础。

第一层:Boot ROM(IFR)—— 固化硬件的信任根

Boot ROM也被称作IFR(初始化只读固件),是GPU最底层、最核心的启动基石,代码直接固化在GPU硅芯片硬件中,无法修改、无法擦除、不可篡改,是整个GPU启动链路的绝对信任根。

设备上电瞬间,CPU内核尚未启动,所有系统服务处于休眠状态,Boot ROM会率先运行。它的核心作用只有一个:初始化基础硬件链路,加载并校验下一层vBIOS固件,为整个启动链路拉开序幕,从硬件根源杜绝恶意固件注入风险。

第二层:vBIOS —— 显卡固件容器镜像

vBIOS是存储在显卡板载ROM中的固件程序,设备启动后会被自动映射到GPU的BAR0地址空间,供硬件底层读取调用。很多人误以为vBIOS是单一固件文件,实则它是一个复合型固件容器,内部封装了多个适配不同场景的镜像模块,核心包含PciAt、EFI GOP、FwSec三大组件,分别负责PCIe链路适配、UEFI图形输出、底层安全校验等基础功能。

作为衔接硬件固化代码与动态安全固件的中间层,vBIOS承担着承上启下的作用,是GPU脱离系统独立完成基础初始化的关键。

第三层:FWSEC —— 底层安全校验核心

FWSEC内嵌于vBIOS之中,是GPU安全启动的核心模块,运行在GSP的Falcon微控制器的高强度安全模式下,拥有最高硬件权限。这里需要厘清一个常见误区:FWSEC并不运行在SEC2核心上,二者相互独立、分工明确。

它的核心工作涵盖三大核心场景:一是严格校验后续所有微代码(ucodes)的数字签名,确保固件无篡改、无恶意植入;二是初始化WPR2硬件保护区域,锁定关键内存空间,防止数据被非法读写;三是全面清理显存(VRAM)残留数据,清空上电前的冗余信息,为后续硬件运行提供干净的环境。

第四层:Falcon微代码 —— 专用控制器指令集

这一层是运行在NVIDIA自研“快速逻辑控制器”核心上的签名微代码,涵盖PMU电源管理、SEC2安全加密等核心子模块。所有微代码均经过官方加密签名,属于闭源专有指令集。

其核心作用是精细化管控GPU底层硬件,包括电源功耗调节、硬件安全加密、时钟频率初始化等,是保障GPU硬件稳定、安全运行的底层指令基础,全程在系统内核加载前执行完毕。

第五层:GSP —— Turing架构新增的调度中枢

GSP是一颗基于RISC-V架构的专用核心,自Turing架构起正式上线,成为现代NVIDIA GPU的全局调度中枢,运行专属GSP-RM管理程序。

与前四层固化或板载固件不同,GSP固件不再写入硬件ROM,而是随显卡驱动发布,存放于系统磁盘的/lib/firmware目录中。它的核心职责是统筹调度GPU所有底层模块,接管硬件初始化、任务调度、异常处理等核心工作,让驱动无需直接操控硬件,大幅提升GPU运行效率与稳定性。

在Turing架构之前的Volta、Pascal架构中,尚无GSP核心,操作系统驱动需要直接对接GPU硬件,调度逻辑简单且效率较低,这也是新旧架构GPU底层运行逻辑的核心差异。

第六层:驱动加载微代码 —— 动态迭代的硬件指令

这一层的微代码运行在与第四层相同的微控制器上,是NVIDIA提供的第二条微代码更新通道。不同于出厂固化的底层微代码,该层微代码可随每一次显卡驱动更新迭代升级。

通过持续更新这部分指令集,官方无需修改硬件固件,就能优化GPU功耗控制、修复底层硬件漏洞、适配新的运算场景,是显卡“越更越稳、越更越强”的核心原因之一。

第七层:CUDA软件栈 —— 打通代码与硬件的桥梁

CUDA栈是衔接用户程序与GPU硬件的软件中间层,链路清晰且层级分明:libcudart(CUDA运行时库)→ libcuda.so(CUDA核心接口库)→ nvidia.ko(内核模块)。

值得关注的是该模块的开源特性差异:自2022年起,NVIDIA正式开源了nvidia.ko内核模块,让开发者可深度适配系统底层;但负责将上层API调用转化为GPU硬件指令的libcuda.so依旧闭源,保障核心硬件调度逻辑的安全性与专有性。

第八层:用户编译代码 —— 多层嵌套的指令封装

我们编写的CUDA程序,并不会直接在GPU上运行,需要经过三层编译转换:fatbin通用二进制文件→ cubin设备二进制文件→ SASS GPU原生指令

这是一套极致精巧的嵌套结构,实现了“ELF文件嵌套ELF文件”的封装形式,既保障了代码的跨平台兼容性,又能精准适配GPU硬件指令集。而在最新的Blackwell架构中,这一层迎来重大升级:SASS原生指令不再存放于传统的.text代码段中,而是通过全新的Capsule Mercury机制二次封装,在程序加载阶段完成最终固化,进一步提升代码执行安全性。

第九层:SM流多处理器 —— 指令最终执行载体

SM(流多处理器)是GPU的核心运算单元,也是整套九层栈的最终落脚点。经过层层校验、转换、封装生成的SASS原生指令,最终会在这里完成并行计算、图形渲染、AI运算等所有工作,是GPU算力输出的核心硬件载体。

三代架构核心迭代:固件栈的关键演变

从Turing到Ada、再到Hopper、Blackwell,九层固件栈的整体骨架始终不变,但三处核心迭代,彻底改变了GPU的底层运行逻辑,也是新架构性能、安全性跃升的关键。

首先是调度中枢的诞生。Turing架构新增GSP RISC-V核心,终结了驱动直接操控硬件的时代,实现了硬件调度与系统驱动的解耦,让GPU底层调度更智能、高效。

其次是安全信任根的升级。在Ada及之前的架构中,安全启动的核心是SEC2核心的Booter ucode,由其负责启动GSP-RM;而Hopper、Blackwell架构新增了专用FSP RISC-V安全处理器,搭载独立ROM,构建了更独立、更严密的硬件安全启动链路,抗篡改、抗攻击能力大幅提升。

最后是用户代码封装机制革新。Blackwell架构新增Capsule Mercury封装机制,对SASS指令进行二次加密封装,在加载时完成最终校验固化,大幅提升了GPU程序的安全性与稳定性。

小众却震撼:完整固件栈可公开溯源

这套看似封闭、精密的NVIDIA GPU底层固件体系,并非完全黑盒。目前通过公开技术文档、开源内核代码、固件解析工具,普通开发者和技术爱好者可完整还原整套九层固件栈的运行逻辑

九层架构中,有七层对应的二进制固件文件可被正常提取、哈希校验、反编译解析,这也让NVIDIA GPU的底层技术迭代更加透明,为开源适配、底层优化、安全漏洞排查提供了极大便利。

总结

GPU从来不是等待系统调度的被动硬件,而是一台拥有独立启动体系、安全机制、调度逻辑的微型计算机。在内核启动前的数秒内,它已完成从硬件信任根校验、安全加固、显存初始化,到底层微代码加载的全流程。九层固件层层把关、层层校验,兼顾安全性、稳定性与可迭代性,而历代架构的细微迭代,持续挖掘着GPU硬件的极致潜力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从零到就绪:GPU九层固件栈全解析
  • 第一层:Boot ROM(IFR)—— 固化硬件的信任根
  • 第二层:vBIOS —— 显卡固件容器镜像
  • 第三层:FWSEC —— 底层安全校验核心
  • 第四层:Falcon微代码 —— 专用控制器指令集
  • 第五层:GSP —— Turing架构新增的调度中枢
  • 第六层:驱动加载微代码 —— 动态迭代的硬件指令
  • 第七层:CUDA软件栈 —— 打通代码与硬件的桥梁
  • 第八层:用户编译代码 —— 多层嵌套的指令封装
  • 第九层:SM流多处理器 —— 指令最终执行载体
  • 三代架构核心迭代:固件栈的关键演变
  • 小众却震撼:完整固件栈可公开溯源
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档