logo
  • 首页
  • 产品中心
  • 解决方案
  • 技术专栏
  • 关于我们
  • 首页
  • 产品中心
  • 解决方案
  • 技术专栏
  • 关于我们
  • 【高清视频】Gen6 SSD真实抓包:0.5米Cable跑64GT/s,FLIT里面到底抓到了什么?

    前面我们已经搭过一次 Gen6 SSD 测试环境。没有看过的可以点击下面的链接:【高清演示】国内首次拿到Gen6 E1.S SSD演示SerialTek PCIe 6.0协议分析仪抓包 这次桌面上的东西看起来差不多,不过有两个变化值得单独拿出来说。 一个是 Switch 换成了现在这块 B0 版本的 PCIe Gen6 Switch; 另一个是从 Switch 到 EDSFF 测试端,这次实际用的是一根 0.5 米 MCIO→EDSFF Gen6 Cable;上面的链接里面的视频使用0.3米Cable。 然后还是老办法: 把 Gen6 SSD 接进去,把 Interposer 串在中间,再用 SerialTek PCIe Gen6 Analyzer 把整个上电、建链以及后面的 FLIT、TLP 和 NVMe Traffic 抓下来。 视频一共 13 分钟左右。 这次我们不准备把 Analyzer 软件从头讲一遍,主要就看两件事情: 这条 0.5 米的实际 Gen6 测试链路能不能起来; 以及: PCIe 6.0 进入 FLIT Mode 以后,Analyzer 里面到底能看到什么。 为了方便工程师观看,我们针对本期视频并处理添加了中文字幕供大家参考。如果想看高清视频建议要在电脑上打开上面的视频链接进行观看!创作不易,欢迎分享到朋友圈或者与朋友讨论!如果想搬运我们的视频请告知我们。 下面的文字总结严格按照演示时间顺序,适合没有时间看高清视频的朋友快速阅读,内容和上述的视频演示一致。 00:00——先把这次桌上的环境重新过一遍 最左边还是被测 SSD。 视频里面这块盘是临时借用的一块某国际知名品牌 Gen6 SSD 样品,当时拿过来主要用于拍摄一些技术视频。 回到桌面。 SSD 这一边作为 EP,也就是 Endpoint。 Host 这一边则由两部分组成: 一台 Gen5 主板; 加上一块 Serial Cables 的 Gen6 B0 Switch Card。 这块 B0 版 Host Card 现在使用的是 Broadcom Atlas 3 Production B0 silicon,板上有 4 个 Gen6 x8 MCIO 接口以及一个 Gen6 x16 Straddle Mount 接口,下游一共可以提供 64 lanes 的 Gen6 连接能力。官方资料也直接给出了这种用法:用现有 Gen5 System,就可以在 Switch 下游开始 Gen6 Device 测试。 这正好就是我们桌面上现在干的事情。 00:53——这块 Gen6 SSD 其实有两种接法,这次选了 MCIO 从 Switch 往 SSD 走,至少有两种比较直接的办法。 一种: 从 MCIO 口出来,再转 EDSFF。 另外一种: 利用顶部 PCIe 插槽,再通过 AIC Adapter 转换成 EDSFF 环境。 这次没有走顶部插槽。 我们直接用了右侧 MCIO。 也就是: Gen6 Switch MCIO→ 0.5m MCIO 转 EDSFF Cable→ EDSFF Interposer→ Gen6 SSD 视频里自己说到“EDSFF 延长线”以后马上又改口了,这个改口其实是对的。 准确说,它不是一根简单 EDSFF Extension Cable。 它两端的接口不同: 一端是 MCIO; 另外一端是 EDSFF。 所以它应该叫: MCIO→EDSFF Cable Assembly。 01:08——0.3 米和 0.5 米版本,区别主要就是长度 镜头随后专门拿了一根 Cable 出来。 我们手里有 0.3 米,也有 0.5 米版本。 这次环境用的是 0.5 米。 从功能连接上看,两端接口形式相同,最直接的区别就是长度。 Serial Cables 现在也有正式的 500mm Gen6 MCIO x4→EDSFF Cable,产品定义就是用于 x4 Drive Testing,并且另外提供独立的 SI Report。 为什么到了 Gen6 我们会反复强调: 0.3 米; 0.5 米? 以前做低速接口,线长 20 厘米经常只是结构问题。 但是到了 PCIe 6.0: Cable Length 本身就是 Signal Integrity 条件的一部分。 因为现在面对的是 64 GT/s PAM4。 Cable 变长以后,Insertion Loss 增加; Connector、Via、转接也全部算进 Channel。 所以在 Gen6 测试报告里面,我觉得最好逐渐养成一个习惯: 不要只写: “用 MCIO Cable 连接。” 最好把: 长度; 料号; Adapter; 中间经过几个 Connector 都记录下来。 哪天 Link Margin 出了问题,这些信息都可能有用。 01:42——为什么 Cable 旁边还拖着一根电源线? 视频这里顺手提了一句: MCIO 这边不能直接满足 SSD 的设备供电,所以 EDSFF 端还要单独把 Power 引进来。 这个设计在实验室里很常见。 你真正需要通过 MCIO 传过去的主要是 PCIe 高速链路以及相关 Sideband 连接,而 EDSFF SSD 本身的供电还要按照设备要求单独解决。 所以我们这根 Cable 在 EDSFF 端旁边还能看到单独的 Power Connector。 这件事看似是个小细节,但第一次自己搭 EDSFF 测试环境的人经常会碰到: 信号接对了,盘为什么根本不上电? 因为“PCIe 链路接通”和“DUT 供电解决”本来就是两个问题。 02:00——从 SSD 到 Host,把整条路径重新顺一遍 如果从左向右看,这一套环境就是: Gen6 SSD ↓ EDSFF Interposer ↓ MCIO→EDSFF 0.5m Cable ↓ Gen6 B0 Switch ↓ Gen5 Host 这个顺序看明白以后,后面 Analyzer 为什么能抓到东西就比较容易理解了。 其中 Interposer 并不是另外一个 PCIe Endpoint。 它是串在原链路里面,让 Host/Switch 和 SSD 仍然正常通信,同时把需要分析的信号复制一份送给 Analyzer。 SerialTek 对 Gen6 SI-Fi Interposer 的官方描述也是这个思路:Interposer 位于 Host 与 Endpoint 之间,把高速信号和 Discrete/Sideband 信号实时复制给 Kodiak Analysis System,同时尽量保持原链路的 Signal Integrity。 02:40——Interposer 到底把哪些东西送给 Analyzer? 这里视频比上一版讲得更清楚。 主要是三路。 两路高速; 一路低速。 两根 QSFP-DD Cable 分别负责: Upstream 高速 Traffic; Downstream 高速 Traffic。 还有另外一根 MCIO Cable,用于把 Sideband 相关信号送回 Analyzer。 所以如果把 Interposer 想象成一个岔路口: 正常 PCIe 链路继续往 SSD 走; 另外复制出来的高速数据分成两个方向送给 Analyzer; PERST#、Power 相关状态以及其他 Sideband 信息则通过另外一路进 Analyzer。 Analyzer 内部再由 FPGA、处理器以及大容量 Trace Storage 负责: Capture; 保存; 解码; 分析。 这也解释了为什么 Protocol Analyzer 不是拿一根线插到 SSD 上就能工作。 真正困难的往往不是: “软件会不会解 TLP”。 而是: 64 GT/s 的真实链路到底怎么可靠地 Tap 出来。 03:46——这里要纠正视频里的一个说法:Switch 不是把“Gen5 信号处理一下变成 Gen6” 视频里为了方便理解,说: Gen5 Host 的信号进 Switch,Switch“处理转发以后把它变成 Gen6 再出来”。 工程师现场聊天这么讲很容易懂,但严格说不是这样。 PCIe Switch 的 Upstream Port 和 Downstream Port,本身是不同的 PCIe Link。 因此完全可以出现: Host ↔ Switch Upstream:Gen5 而: Switch Downstream ↔ SSD:Gen6 每一条 Link 分别完成自己的 Link Training 和 Speed Negotiation。 所以不是把一串已经存在的 Gen5 电信号“加工成 Gen6 信号”。 而是: Switch 终结上游 PCIe Link,再通过自己的下游 Port 与 Endpoint 重新建立另一条 PCIe Link。 Serial Cables 对这块 B0 板卡的官方描述也非常直接:可以利用现有 Gen5 System,在 Switch Downstream 取得完整 Gen6 Connectivity。 这个区别在做 Debug 时非常重要。 因为出了问题以后,你必须先问: 问题在: Host ↔ Switch? 还是: Switch ↔ SSD? 不能把整条拓扑看成一根连续的 SerDes 链路。 04:20——环境搭好以后,先不急着看 Trace,先配 Sideband 进入 Analyzer 界面以后,视频没有马上上电。 而是先看 Capture 窗口。 Upstream、Downstream 已经在。 Sideband 窗口开始时却基本是空的。 正常情况下大家经常会关注: PERST#; CLKREQ#; Power Rail; 以及其他与当前 Form Factor 相关的信号。 但这次环境里 Sideband Pin Definition 和前面某些测试环境并不完全一样,所以现场没有死磕“为什么 CLKREQ#没出来”。 而是直接把当前有意义的 PERST#、3.3V 等信号加进来。 我觉得这段现场操作挺真实。 实际搭实验环境就是这样。 不是每一套 Interposer 插进去,所有信号名字自动 100% 排得整整齐齐。 有时候要先确认: 当前 Adapter 到底把哪个 Sideband 映射到了哪里; 这个设备有没有用这个 Pin; 这个 Config 下是否有效。 所以这里不建议为了文章好看,硬写成: “系统自动识别出所有 Sideband。” 视频本身并没有做到这一点。 06:40 左右——Quarch PAM 也在同一个界面里 下面还能看到一个: QPAM。 也就是 Quarch Power Analysis Module 相关界面。 视频里说得比较随意: 中文翻译成“电源量测模块”听起来有点别扭。 实际上直接叫: Power Analysis Module,PAM 反而大家更容易懂。 它的作用是把 DUT 的 Voltage、Current、Power 等数据一起采下来。 SerialTek 当前 Kodiak Gen6 资料里也明确列出了 Quarch PAM Integration。 这个组合我一直觉得很适合 SSD。 因为有些掉盘问题,单纯看 PCIe 会觉得莫名其妙。 你看到: Recovery; Link Down; Reset。 但如果把同一个时刻的 Power 一起摆出来,可能马上发现: 就在前几十微秒或者几毫秒,Power Rail 已经发生异常。 这种时候,协议 Trace 和 Power Trace 放在一起比单独看任何一个都更有价值。 07:00 以后——真正开始抓:先点 Capture,再上电 Sideband 配置大致完成后,现场点击开始 Capture。 然后才给系统上电。 这一步和前一个视频一样,我还是建议大家记住: 如果要分析 Boot 和 Link Training: 一定尽量先开 Analyzer,再给 DUT 上电。 否则等操作系统都认到 NVMe 盘了,再去点 Capture: Detect; Polling; Configuration; 第一次 Speed Change 早就结束了。 这次一上电,可以看到 Sideband 马上发生变化。 随后 Upstream 和 Downstream 都开始出现 Traffic。 右侧 Link Buffer 也开始不断被填进去。 这就说明 Analyzer 已经真正进入工作状态。 08 分钟左右——这一次界面里多了一个特别值得聊的东西:Correctable FLIT 视频开始看右侧实时统计。 除了: DLLP; Error; Payload FLIT; TLP; Training 之外,这次特别指了一下: Correctable FLIT 和: Uncorrectable FLIT。 这里要稍微把 PCIe 6.0 背后的逻辑说准确一点。 PCIe 6.0 从 32 GT/s 提高到 64 GT/s,同时从 NRZ 改成 PAM4 以后,物理链路原始错误率环境和以前不同。 所以 PCIe 6.0 引入了: Lightweight FEC + Strong CRC + Link Level Replay。 一整个 PCIe 6.0 FLIT 固定为: 256 Bytes。 不是视频口述中后面提到的“256 bit”。 这一点一定要纠正。 PCI-SIG 给出的标准 FLIT 结构为: 236 Bytes 用于 TLP; 6 Bytes 用于 Data Link Layer Payload; 8 Bytes CRC; 6 Bytes FEC。 总计: 256 Bytes。 接收端首先通过 FEC 尝试修正错误,然后再由 CRC 检查修正后的 FLIT。 如果 CRC 仍然 Fail,就需要进入 Link Layer Retry/Replay 机制。 所以这里更准确的理解不是: “绿色的就是好包,紫色就是彻底坏掉的包。” 而应该理解成: Analyzer 正在帮助工程师看到链路里发生过的 FEC Correction 以及无法仅通过该次 FEC 修正、需要进一步错误处理/重传关注的情况。 对于 Gen6 SI Debug 来说,这类信息很有价值。 因为过去一条链路: 能跑; 没掉盘, 工程师可能就觉得没问题。 到了 Gen6: 它虽然能跑,但 FEC 到底在多努力地救这条链路? 这本身就值得看。 08:50——这次抓的是完整上电过程,Trace 总体比较干净 抓了一段以后停止 Capture。 现场第一感觉是: 这条 Link 还不错。 没有看到大量异常 FLIT 或者一堆 Error 把窗口铺满。 随后切换到录屏画面,开始真正看刚才这段 Trace。 最前面自然是 Sideband 变化。 然后是 PCIe 训练阶段: TS1; TS2; Ordered Set。 再往后才开始出现大量 FLIT Traffic。 这基本符合一个正常上电、训练、进入正常 Traffic 的过程。 09:40 以后——这里又有一句值得修正:“Gen6 一开始就拿 FLIT 沟通” 视频里看到 FLIT 以后,现场说: 因为这是 Gen6 Switch 和 Gen6 SSD,所以它们“一开始就会尝试用 Gen6 FLIT 模式沟通”。 这个意思大体能理解,但如果严格写文章,我会换一个说法。 PCIe 6.0 规定: 64 GT/s PAM4 必须使用 FLIT Mode。 同时 FLIT Mode 也支持在较低 Link Speed 使用;一旦 Link 已经训练进入 FLIT Mode,只要 Link 保持 LinkUp,就继续保持 FLIT Mode。 但 Link Training 本身仍然会看到: TS1; TS2; Electrical Idle 相关训练过程。 所以不能简单理解成: “机器刚加电第一包就是 256B FLIT”。 更准确地说: 这条支持 PCIe 6.0 的链路在完成相应能力协商并进入 FLIT Mode 之后,后续 Data Link/Transaction Traffic 按照 FLIT 机制传输;当链路运行到 64 GT/s 时,FLIT Mode 是必须的。 这样就比较严谨了。 10 分钟左右——为什么明明是 Gen6 FLIT Mode,Transaction 窗口里还是能看到熟悉的 TLP? 这一段我认为是整个视频最值得写进文章的地方。 因为第一次看 PCIe 6.0 Analyzer 的人真的很容易产生这个疑问: 不是说 Gen6 改成 FLIT 了吗? 为什么 Transaction 窗口里面还是: Configuration Read; Memory Read; Memory Write; Completion…… 看起来和 Gen4/Gen5 Analyzer 很像? 难道抓错了? 其实不是。 PCIe 6.0 真正在线上传输的是固定长度 FLIT。 但: FLIT 里面仍然承载 TLP。 而且一个 FLIT 里可以有多个 TLP; 反过来,一个较大的 TLP 也可以跨越多个 FLIT。 PCI-SIG 官方对此写得非常明确。 所以 Analyzer 完全可以提供两种视图。 一种: 按照 Wire 上真实 FLIT 结构显示。 让你研究: FLIT; FEC; CRC; DLP; ACK/NAK; Replay。 另一种: 把 FLIT 里面承载的 TLP 重新重组出来。 让工程师继续按照过去熟悉的: Request; Completion; Configuration; Memory Transaction 思路去 Debug。 这次软件显然两种都保留了。 我觉得这种处理方式其实很合理。 为什么不应该强迫所有工程师每天盯着 256-Byte FLIT 看? 假设软件只给你显示原始 FLIT。 协议上当然最“纯正”。 但是 Firmware 或者 NVMe 工程师真正想找的是: 这一个 Configuration Read 去哪了? 这个 Memory Write 什么时候完成? 某个 NVMe Command 对应哪些 Transaction? 如果 TLP 刚好跨了两个 FLIT,你还得自己盯着 FLIT 重新拼。 没有必要。 所以视频现场演示了一个同步查看方式。 点中 Transaction 里面的一个 TLP 以后,可以找到对应的 FLIT 位置; 两边时间戳能够对应起来。 也就是说: FLIT View 是真正在链路上传输的结构; TLP View 是 Analyzer 为了 Debug 重新还原出来的逻辑视图。 它们不是两套不同的数据。 而是: 同一份 Trace 的两个观察角度。 这个概念如果搞懂,第一次从 PCIe Gen5 Analyzer 切到 Gen6 Analyzer 时,就不会觉得那么陌生。 11 分钟以后——Event、Transaction、NVMe,实际 Debug 时就是一层一层往上看 后面操作没有再深入。 大致扫了一遍几个窗口。 Event 最底层、时间顺序最完整。 可以混在一起看到: Sideband; Training; FLIT; DLLP/DLP 相关事件; TLP; 各种状态变化。 它适合回答: 某个时间点前后,整条链路到底发生过什么? Transaction 这里重点把 TLP Transaction 重新整理出来。 当问题已经进入: Configuration; Memory Transaction; Request/Completion 层面以后,这个窗口明显比盯着原始 FLIT 舒服。 NVMe Transaction 再往上一层。 从 PCIe Transaction 继续关联出 NVMe Command、Completion 以及相关的数据访问。 所以真正查 SSD 的时候经常是反过来的: 先在 NVMe 层看到: 某个 Command 没有正常结束; 然后往 Transaction 下面追; 如果还不够,再回到 Event 看: 前面是不是刚好发生了 Recovery、Reset 或者 Link 变化。 这几个窗口不是为了让软件看起来功能很多。 而是因为: 一个 SSD Bug 经常跨好几个 Protocol Layer。 12 分钟左右——Filter 看起来不起眼,但大 Trace 里面它基本是必需品 NVMe 窗口里面仍然可以把 TLP 一起显示。 如果觉得太多,就 Filter。 保留: PCIe; 或者 NVMe; 或者只看指定 Packet Type。 现场这里没有继续展开。 实际上任何用过几十 GB Trace 的人都会知道: 没有 Filter 基本没法干活。 Gen6 的 Traffic 量更大。 真正遇到问题的时候,你通常不会从第 1 条 Packet 看到最后一条。 而是先把范围缩小: 只看某个方向; 某个 BDF; 某一种 TLP; 某种 Error; 某个 NVMe Command; 或者某一个时间窗口。 否则再快的 Analyzer,最后也变成人肉翻日志。 12:40——视频最后没有“总结升华”,就是确认这套环境能正常工作 最后软件扫了一眼 NVMe 信息和统计窗口。 没有再继续演示复杂 Trigger,也没有故意做 Error Injection。 然后视频结束。 其实我觉得这样刚好。 因为这次想验证的本来就不是: “我们能不能把 PCIe 6.0 协议每一章讲完。” 而是: 0.5 米 MCIO→EDSFF Cable 接上以后,这条 Gen6 链路能不能起来; B0 Gen6 Switch 下游能不能和 Gen6 SSD 正常工作; Interposer 插进去以后,Analyzer 能不能把完整上电和 Link Training 留下来; 以及: 进入 PCIe 6.0 以后,FLIT、TLP 和 NVMe 三个层次能不能真正对应起来。 这一轮都看到了。 这就够了。 我觉得这次 Demo 里最值得留下来的,其实是三个小细节 第一个是: 0.5 米 Cable 不是“随便一根线”。 到了 64 GT/s,它本身已经属于测试条件。 以后不同 Cable Length、Adapter、Connector 导致 Link 表现不同,不应该觉得奇怪。 第二个是: Gen5 Host + Gen6 Switch 并不等于 Host 变成了 Gen6。 真正发生的是 Switch 上游跑 Gen5,下游单独和 SSD 跑 Gen6。 这套环境适合提前做 Gen6 Endpoint 链路、协议和兼容性验证,但不要拿它冒充 Native Gen6 Host 做端到端极限性能结论。Serial Cables 自己对 B0 Host Card 的定位也正是利用现有 Gen5 系统取得 Gen6 Downstream Connectivity。 第三个可能也是最容易被第一次接触 PCIe 6.0 的人误解的: FLIT 并没有把 TLP“消灭”。 PCIe 6.0 把链路传输组织成固定 256-Byte FLIT,是为了配合 PAM4 环境下的 FEC、CRC 和 Replay 机制;但真正的 Transaction 语义仍然要靠 TLP 承载。一个 FLIT 可以放多个 TLP,一个 TLP 也可以跨多个 FLIT。 所以 Analyzer 里: 左边给你看 FLIT; 右边又帮你重组成熟悉的 TLP; 再往上继续解成 NVMe, 完全不矛盾。 反而这才是工程师真正容易使用的方式。 写在最后 Gen6 真正开始进实验室以后,会发现测试思路和 Gen5 并没有彻底推倒重来。 我们还是在看: Link Training; LTSSM; TLP; NVMe; PERST#; Power。 但是 64 GT/s PAM4、FLIT、FEC 这些东西加进来以后,很多以前不那么敏感的问题开始被放大。 线长一点; 多一个 Connector; 换一张 Adapter; 插一个 Interposer; 都有可能改变链路 Margin。 而协议层又多了一层 FLIT。 所以 Gen6 Debug 以后很可能会越来越常见这样一种工作方式: 先看: 能不能 Link 到 Gen6。 再看: Link 虽然起来了,FEC 是不是一直在帮你擦屁股。 然后再往上看: TLP 有没有异常。 最后才到: NVMe Command 到底出了什么问题。 这次 0.5 米 Cable 的演示还没有碰到真正难查的 Bug。 反而是一条比较干净的 Trace。 但我觉得先把这种正常 Trace 留一份下来很有价值。 以后真碰到: 0.3 米能跑,0.5 米不稳定; 冷启动 Gen6,热启动掉 Gen5; 换一块 SSD 就出现大量 Correctable FLIT; 某一次 Recovery 以后 NVMe 开始 Timeout…… 那时候拿异常 Trace 和今天这条“正常基线”放在一起比较,很多东西会清楚得多。 先把正常链路看懂。 哪天它不正常了, 我们才知道究竟是从哪一步开始变的。 免费下载Saniffer公司白皮书 希望获得更多关于PCIe5.0&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。 欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。  
    2026-08-27 15:34:38
  • 【高清演示】国内首次拿到Gen6 E1.S SSD演示SerialTek PCIe 6.0协议分析仪抓包

    Gen5 主板怎么测 Gen6 SSD?从环境搭建到 LTSSM 抓包,一次完整实测   随着 PCIe 6.0 SSD 逐渐进入研发和验证阶段,一个非常现实的问题开始摆在测试工程师面前: Gen6 SSD 已经拿到了,但手边没有原生 PCIe Gen6 服务器,怎么搭建测试环境? 即使把 Gen6 链路搭起来了,如果 SSD 在 Link Training 过程中出现不稳定、掉速、降级或者无法进入 L0,又该如何把问题真正抓出来? 这次演示,我们没有停留在拓扑图或者 PPT 层面,而是直接用一块 Gen6 SSD、PCIe Gen6 Switch、EDSFF 转接 Cable、Interposer 以及 SerialTek PCIe Gen6 Protocol Analyzer,搭建了一套完整的 Gen6 SSD 协议分析环境。 整个演示大约 12 分钟,基本涵盖了: Gen6 SSD 测试环境如何搭建; Gen5 Host 如何配合 Gen6 Switch 建立下游 Gen6 链路; EDSFF SSD 如何通过 MCIO 转接进入测试系统; Interposer 如何把高速 PCIe 信号和 Sideband 信号引到 Analyzer; 上电以后如何实时观察 Gen6 建链; 如何抓取 PCIe 6.0 FLIT、DLLP、TLP 和 Training 信息; 如何解码 LTSSM 状态变化; 如何进一步从 PCIe 层进入 NVMe 协议分析。 下面按照视频实际演示顺序,把整个过程完整梳理一遍,适用于没有时间看完整视频的朋友快速阅读。 一、00:00—00:35:先看测试对象和整套硬件环境 视频一开始首先介绍的是被测设备。 这是一块上周刚拿到的企业级PCIe Gen6 x4 E1.S SSD,临时借用用于拍摄该演示视频。 围绕这块 SSD,桌面上搭建了几部分硬件: 第一部分:PCIe Gen6 SSD 也就是整个测试环境里的 DUT——Device Under Test。 第二部分:SerialTek PCIe Gen6 Protocol Analyzer 它负责抓取 PCIe 链路上的数据,并完成 Trace 保存、协议解码以及后续分析。 第三部分:Gen6 EDSFF Interposer 它串接在 Host/Switch 和 SSD 之间,把原本在链路上运行的 PCIe 高速信号和低速 Sideband 信号复制出来送给 Analyzer。 第四部分:PCIe Gen6 Switch 用于在现有 Host 环境和 Gen6 SSD 之间建立 Gen6 下行链路。 第五部分:MCIO 与 EDSFF 转接连接 解决 Switch 输出接口和 SSD 物理 Form Factor 之间不匹配的问题。 从系统角度看,这其实已经不是简单的“插一块 SSD”。 而是在搭建一条完整的: Host → Switch → 转接 → Interposer → SSD PCIe 验证通道。 二、00:35—01:23:Interposer 到底在整个测试环境里干什么? 协议分析仪和示波器有一个共同点: 它们都必须先“看到”信号。 PCIe SSD 正常工作时,高速信号原本只是从 Root Complex 或者 Switch Port 直接进入 SSD。 如果要使用协议分析仪分析,就必须把这些信号从正常链路中复制一份出来。 所以这里使用了SerialTek PCIe 6.0 EDSFF Interposer。 视频中将需要观察的信号大致分成两部分,另外也要注意:SerialTek Gen6 interposer是全球唯一实现可以实时监控电压、电流和功耗的产品(通过和Quarch公司的PAM产品合作)。 第一部分:高速 PCIe 信号 主要包括: Upstream 以及: Downstream 也就是两个方向上的 PCIe 高速 Traffic。 第二部分:Sideband 信号 例如: PERST#; 以及与 Power 和设备控制相关的低速信号。 这些信号通过不同接口分别从 Interposer 引出,再进入 Protocol Analyzer。 Analyzer 主机内部则利用 FPGA、CPU 和存储资源完成: Trace Capture; Decode; Storage; Protocol Analysis。 所以 Interposer 和 Analyzer 之间的分工其实很明确。 Interposer 解决的是: “怎么把正在运行的链路信号拿出来?” Analyzer 解决的是: “拿出来以后怎么存、怎么解、怎么分析?” 三、01:29—02:22:为什么 Interposer 本身的 Signal Integrity 非常重要? 在 PCIe Gen6 这种 64 GT/s 高速链路上,把一个测试治具串进通道,并不是没有代价的。 任何: Connector; PCB; Via; Cable; Probe; Interposer 都会对 Channel 产生影响。 因此视频这里重点介绍了 SerialTek Interposer 内部使用的 SI-Fi 设计。 按照视频里的解释,它并不是传统 Retimer 或者 Redriver 的工作方式,而是通过专门用于 Signal Split 的器件,在每条对应 Lane 上把信号引出,用于 Analyzer Capture。 为什么协议分析特别强调这一点? 因为 Protocol Analyzer 最重要的要求之一就是: 不要因为插入测试设备,把原来的问题改变了。 例如原来的 SSD 和 Host 之间本来存在边缘性的 Signal Integrity 问题。 如果 Interposer 加入之后,把链路信号重新整形得很好,原来的问题反而消失了。 那么最终抓到的 Trace 就不能真实反映原始系统的问题。 相反,如果 Interposer 引入了新的问题,也会让工程师误以为 DUT 本身存在异常。 所以这里真正追求的是: 尽量少改变原链路,在保持测试通道正常工作的同时,把信号忠实地复制给 Analyzer。 对于高速协议 Debug 来说,这一点非常关键。 四、02:24—03:20:EDSFF SSD 怎么接到 Gen6 Switch? 随后视频把镜头转向右侧连接部分。 这里可以看到一根绿色的高速 Cable。 SSD 一侧使用 EDSFF 接口,另外一侧通过 MCIO 进入 PCIe Gen6 Switch。 从机械和接口形式看,这一段连接主要解决的是: Gen6 Switch 输出接口和 EDSFF SSD 之间的物理适配问题。 Switch 本身并不是一个带 E1.S 或者 E3.S Drive Bay 的服务器。 它可能提供的是: MCIO; CEM; 或者其他高速 PCIe Connector。 但 SSD 测试对象却可能是: E1.S; E3.S; U.2/U.3; M.2。 因此实际实验室环境中经常需要一系列 Adapter 或者 Cable 把不同 Form Factor 连接起来。 对于 PCIe Gen6 来说,这类 Adapter 已经不能简单理解为普通“转接头”。 因为 64 GT/s PAM4 对整个 Channel Loss、Return Loss、Crosstalk 以及 Connector 质量都提出了更高要求。 换句话说: 转接本身也是测试 Channel 的一部分。 五、03:17—04:23:最关键的问题来了——下面明明是一台 Gen5 Host,为什么 SSD 可以跑到 Gen6? 这个拓扑是整个演示中比较有意思的一点。 视频中的主机平台本身只有 PCIe Gen5 能力。 但是: 主机和 SSD 之间加入了一块 PCIe Gen6 Switch。 于是整个拓扑可以理解为: Gen5 Host → PCIe Gen6 Switch → Gen6 SSD Switch Upstream Port 面对 Host 时,可以工作在 Gen5。 而 Switch Downstream Port 面对 Gen6 SSD 时,则可以独立建立 PCIe Gen6 Link。 所以: Host → Switch 并不一定和: Switch → SSD 必须工作在完全相同的 PCIe Generation。 视频中就是利用这一点,在缺少原生 Gen6 Host 的情况下,先建立了一个可用于 Gen6 Endpoint 验证的环境。 这种方法对于 Gen6 早期研发特别有意义。 因为新一代 PCIe 技术刚出现时,经常会发生: Endpoint 先出来; Host 平台还比较少。 如果一定要等原生 Gen6 CPU、服务器、Backplane 和 EDSFF Cage 全部成熟以后才开始验证 SSD,整个研发周期会被明显推迟。 而借助 Gen6 Switch,可以提前开展很多工作。 例如: Gen6 Link Training; Interoperability; Protocol Debug; LTSSM 分析; FLIT 分析; SSD Firmware Debug。 当然,这种拓扑不能完全等价于真正的原生 Gen6 Host。 特别是做 End-to-End Performance 测试时,Gen5 Upstream 仍然可能成为系统瓶颈。 因此它更加适合: 协议和链路验证。 而不是简单把它理解成一台完整的 Gen6 性能服务器。 六、04:23—05:23:如果 SSD 和 Switch 之间建链不稳定,Analyzer 应该插在哪里? 假设正常测试环境是: Gen5 Host → Gen6 Switch → MCIO 转 EDSFF → Gen6 SSD 如果一切正常,其实没有必要一直串 Protocol Analyzer。 但如果出现: Gen6 偶发掉到 Gen5; 建链时间异常; 偶发 Link Failure; 不断进入 Recovery; 设备无法稳定进入 L0; 那么就需要真正开始 Debug。 视频中的方法是: 把原来 SSD 直接连接的位置替换成 Interposer。 最终链路变成: Gen5 Host→ Gen6 Switch→ MCIO / EDSFF 连接 → Gen6 Interposer→ Gen6 SSD Interposer 再把高速信号和 Sideband 送入 SerialTek PCIe 6.0 Analyzer。 这样就形成了一套完整的 Gen6 协议分析环境。 这里可以看到一个很重要的 Protocol Debug 思路: Protocol Analyzer 不是简单告诉工程师: “这块盘是 Gen6 x4。” 真正的价值是: 如果它不是 Gen6 x4, 为什么? 到底是: Detect 阶段; Polling 阶段; Configuration 阶段; Speed Change; Equalization; Recovery; 还是进入 L0 以后又发生异常? 只有把整个 Link Training 过程留下来,才有机会继续分析。 七、05:23—06:07:Gen5 和 Gen6 Analyzer 在软件使用上并没有完全换一套逻辑 物理环境介绍完成以后,演示进入 Analyzer 软件。 视频中特别提到: SerialTek Gen5 和 Gen6 Analyzer 在主要 Software GUI 和操作逻辑上基本保持一致。 对于已经熟悉 Gen5 平台的工程师来说,这意味着: 升级到 Gen6 以后,不需要重新学习一整套完全不同的软件。 最大的变化更多来自底层硬件能力: Gen5 Analyzer 只能 Capture 到 Gen5; 而 Gen6 Analyzer 硬件能够接收并处理 64 GT/s PCIe 6.0 信号。 对于企业研发团队来说,这种 Software Continuity 其实很重要。 因为真正的验证工作已经包含大量: Trigger; Filter; Trace; LTSSM; TLP; NVMe; Error Analysis。 如果每次 PCIe Generation 升级都连 GUI 和操作逻辑全部变化,工程师的学习成本会非常高。 八、06:08—07:14:开始 Capture 之前,先看几个很关键的实时状态 正式上电以前,界面中已经可以看到 Capture 窗口。 其中包括: Upstream; Downstream; PCIe Generation; Lane Width; Sideband; 以及 Capture Buffer 使用情况。 此时链路还没有真正起来。 所以相关 Traffic 仍然为空。 但 Sideband 部分已经可以显示逻辑状态。 例如: PERST#; Power Rail 相关信息。 这里还集成了 Quarch PAM 的测量界面,可以观察 SSD 对应 Power Rail 的 Voltage 和 Current。 这对于 Debug 特别有意义。 因为实际 SSD 问题并不一定全部来自 PCIe 协议本身。 例如: 突然掉盘; 异常 Reset; Link Down; 设备重新枚举 背后可能同时涉及: Power; PERST#; PCIe Training。 如果只看协议 Trace,看不到 Power 变化,就可能漏掉关键线索。 而如果能够把: Protocol; Sideband; Power 放在同一测试环境里看,就更容易还原问题发生前后的真实状态。 九、07:14—07:58:正式开始抓包——先 Capture,再给整个环境上电 接下来是演示真正开始的地方。 首先点击: Start Capture。 然后给整套测试环境上电。 这个顺序非常重要。 如果工程师希望观察完整的 PCIe 初始化和 Link Training 过程,就应该在 Power On 之前开始 Capture。 因为如果系统已经完成: Detect; Polling; Configuration; L0 以后才点击 Capture, 最关键的初始化 Trace 已经过去了。 上电以后,可以看到 PERST#状态发生变化。 紧接着 Upstream 和 Downstream 开始出现 Traffic。 随后 Analyzer 很快识别到: PCIe Gen6 Link。 同时实时界面上还可以看到: DLLP; FLIT; Training; Error 相关信息。 到这里,实际上已经完成了这次演示最重要的第一步验证: 这套 Gen5 Host + Gen6 Switch + Gen6 SSD + Interposer + Analyzer 环境,确实建立起了 Gen6 下行链路。 十、08:06—08:40:为什么“实时显示”对于协议分析非常实用? 随后视频专门演示了 Analyzer 的实时显示。 Capture 过程中,不需要等整段 Trace 停止以后才知道抓到了什么。 工程师可以实时看到当前链路状态和 Traffic。 这看起来只是一个 GUI 功能,但实际 Debug 时非常有价值。 假设工程师要抓一个偶发问题。 目标是: 第十次重启时可能出现一次 Gen6 掉到 Gen5。 如果每轮 Capture 都必须: 抓几十 GB; 停止; Decode; 等待; 打开 Trace; 最后才发现这一轮 Bug 没有复现, 会浪费大量时间。 实时状态能够让工程师很快判断: 这一轮是不是自己真正想要的 Trace。 如果不是: 直接停止; 重新 Capture。 对于偶发问题,这会明显提高 Debug 效率。 十一、08:40—09:27:这一轮抓了大约 7GB Trace,随后直接进行解码 这次实际 Capture 到的数据量大约是: 7 GB。 随后现场直接开始 Decode。 视频中的经验是: 对于相对正常、错误量不是特别大的 Trace,这样的数据量通常几分钟内可以完成基本解码。 但如果 Trace 里充满: Error; Repeated Training; Recovery; 异常 Ordered Set; 链路不断重建, 那么解码复杂度和处理时间都会增加。 因此 Decode 时间并不是简单只和 Trace 大小成正比。 它还与 Trace 里面到底发生了什么有关。 这一轮 Trace 比较干净,所以解码进行得比较顺利。 十二、09:27—09:46:PCIe 层解码完成以后,还要继续做 NVMe Post Process 完成 PCIe 基础 Trace 处理以后,软件继续进行: Post Process。 这里的作用之一,是进一步把 PCIe Transaction 关联到 NVMe 层。 因为 NVMe 不是独立于 PCIe 之外存在的一条物理链路。 NVMe Command 最终需要通过 PCIe 完成: Doorbell; Memory Transaction; DMA; Completion。 因此 Protocol Analyzer 可以先从底层看到: Ordered Set; DLLP; TLP; 然后进一步向上重建出: NVMe Command; Completion; Data Transfer。 这也是协议分析工具的一大价值。 如果只是用普通 NVMe Utility,可能看到: Command Timeout。 但有了 PCIe Protocol Trace,可以继续往下追: Command 有没有真正进入 PCIe 链路? 对应 TLP 有没有发送? Device 有没有返回 Completion? 中间是不是发生了 Reset? 链路是否先进入了 Recovery? 这样问题就从一个简单的: “NVMe 失败了” 变成了一条可以逐层向下分析的证据链。 十三、09:55—11:07:从 LTSSM 状态机里完整看一次 Gen6 链路是怎么起来的 接下来进入本次演示最典型的一段: LTSSM。 视频中从 Trace 里可以看到: Detect; Polling; Configuration; L0。 同时还能看到 TS1、TS2 等 Training Ordered Set。 链路并不是上电以后直接变成 Gen6。 而是先完成基础 Link Training 并进入 L0,然后继续进行 Speed Change 等过程,逐步提升到目标速率。 最终进入: PCIe Gen6。 随后软件还提供了 LTSSM Detail 视图。 相比直接在原始 Event 中寻找 TS1、TS2,这种状态机视图更加直观。 视频中这次 Capture 看到的是一段比较理想、比较干净的训练过程: Detect; Polling; Configuration; L0; Speed Change; 最后进入目标 Speed。 对于 Debug 来说,这个视图尤其有价值。 正常链路看起来很简单。 真正麻烦的是异常链路,例如: Detect 反复; Polling 超时; Configuration 之后又返回 Detect; 进入 Recovery; Speed Change 失败; Equalization 反复; 最终只能降级到 Gen5。 这种问题如果只从操作系统看到: Current Link Speed = Gen5 其实几乎得不到原因。 而 LTSSM Trace 能够告诉工程师: 它究竟在哪一步失败。 十四、11:08—12:20:Event、Transaction 和 NVMe 三个视图分别看什么? 后面视频快速浏览了几个比较常用的协议视图。 虽然没有展开培训,但从使用逻辑看,可以把它们理解成三个层次。 1. Event View Event 是最完整的时间轴。 包括: Sideband; TS1; TS2; EIOS; EIEOS; Electrical Idle; DLLP; TLP 等各种事件,都会按照时间顺序排列。 它回答的问题是: 这条链路从头到尾到底发生了什么? 如果工程师一开始还不知道问题在哪一层,Event 通常是比较好的入口。 2. Transaction View Transaction 进一步从大量底层 Event 中抽取 PCIe Transaction。 重点可以放在: TLP; Request; Completion; 以及上层访问关系。 因此它比原始 Event 更加简洁。 它更适合回答: Host 到底发了什么 Transaction,Device 又怎么回应? 3. NVMe View 再往上一层就是 NVMe。 软件进一步从 PCIe Transaction 中组织和关联 NVMe 操作。 因此工程师可以更加直接地查看: NVMe Command; Completion; 以及相关数据传输。 三个窗口其实对应着三个不同的问题: Event:发生了什么? Transaction:PCIe 层做了什么? NVMe:SSD 协议层在做什么? 实际 Debug 时,经常会在三个层次之间来回切换。 十五、11:55—12:20:数据太多怎么办?Filter 就是每天都会用到的功能 PCIe 协议分析最大的一个现实问题是: 数据量太大。 一条 Gen6 x4 链路如果长时间 Capture,产生的 Trace 非常庞大。 工程师不可能从第一条开始一行一行往后看。 所以 Filter 非常重要。 视频最后简单演示了过滤功能。 可以选择: 只显示某类 TLP; 排除某类 Traffic; 或者只保留工程师当前关注的内容。 实际问题分析时经常会这样操作。 例如只关心: Error; Recovery; 某一类 DLLP; 某个 NVMe Command; 某个 BDF; 某个时间窗口。 先把无关 Traffic 过滤掉,再深入分析。 否则面对几 GB 甚至几十 GBTrace,很容易被大量正常 Traffic 淹没。 十六、12:20—12:48:最后再看一眼 NVMe,确认整条分析链已经打通 视频最后切换到 NVMe 视图。 这里已经能够看到 NVMe 相关信息。 到这里,这次 Demo 实际上完成了一个比较完整的闭环: Gen6 SSD 连接完成; ↓ Switch 下游建立 Gen6 Link; ↓ Interposer 成功把高速和 Sideband 信号送入 Analyzer; ↓ Analyzer Capture 到完整 Gen6 Trace; ↓ 完成 PCIe 解码; ↓ 进一步完成 LTSSM 和 NVMe 分析。 视频没有继续深入某一条 NVMe Command。 因为这次 Demo 的重点不是教大家怎么使用 Protocol Analyzer 软件。 真正想证明的是: 这套物理环境确实能够把 Gen6 SSD 跑起来,而且能够把 Gen6 协议完整抓下来。 十七、从整个演示来看,这套环境真正解决了三个 Gen6 研发阶段经常碰到的问题 回过头看整个 12 分钟视频,其实核心就是三个问题。 问题一:没有原生 Gen6 Host 怎么办? 利用: Gen5 Host + Gen6 Switch 可以先在 Switch Downstream 建立 Gen6 Endpoint 链路。 这让 SSD 团队不用一直等待完整 Gen6 服务器生态全部成熟以后才开始验证。 问题二:SSD 接口和测试平台接口不一样怎么办? 通过: MCIO; EDSFF; Cable; Adapter 完成 Form Factor 和高速 Channel 之间的连接。 对于 Gen6 来说,这些连接部件本身也必须按照高速 Channel 来看待,而不能简单当作普通转接器。 问题三:链路起来不稳定怎么办? 加入: Interposer + Protocol Analyzer。 然后从: Power; PERST#; LTSSM; Training; DLLP; TLP; FLIT; NVMe 一层一层往下查。 这才是 Protocol Analyzer 真正发挥作用的时候。 十八、Gen6 和 Gen5 相比,Debug 方式其实没有彻底改变,难度主要来自链路 Margin 越来越小 这次演示还有一个比较直观的感受: 从软件 Debug 方法看,PCIe Gen6 并不是完全换了一套思路。 工程师仍然在看: LTSSM; Ordered Set; TLP; DLLP; NVMe; Sideband。 区别是: Gen6 速度更高; 使用 PAM4; 进入 FLIT 模式; 高速 Channel 更加敏感。 因此以前 Gen4、Gen5 上一个“不太漂亮但还能跑”的: Cable; Adapter; Connector; PCB 设计, 到了 Gen6 可能就开始暴露问题。 这也意味着: Gen6 验证越来越不能只看: “能不能 Link Up?” 更加应该关心: 能不能稳定 Gen6? 能不能长期保持? Reset 以后能不能回来? 不同 Host 是不是都能起来? 加 Interposer 以后还能不能起来? 换一根 Cable 以后结果为什么变化? 真正的 Gen6 Debug 工作,往往就是从这些细节开始。 写在最后 这次演示并没有制造一个复杂的 Bug。 恰恰相反,抓到的是一段比较干净的 Gen6 Trace。 但我觉得这一步非常有必要。 因为在真正 Debug 以前,必须先确认: 自己的测试环境是可信的。 Gen6 SSD 能正常工作; Gen6 Switch 能正常建链; Cable 和 Adapter 能承载 Gen6; Interposer 串进去以后链路仍然正常; Analyzer 能够稳定抓取、解码和显示。 只有把这些基本环境先验证干净,以后碰到: 掉速; 降级; Recovery; Link Training 失败; 偶发掉盘; NVMe Timeout 时,工程师才可以比较有底气地说: “好,现在我们开始查 DUT。” 这也是这次现场 Demo 最想说明的一件事。 PCIe Gen6 测试并不是单独买一台 Gen6 Analyzer 就结束了。 真正能工作的实验环境,是由: Host、Switch、Cable、Adapter、Interposer、Power Measurement 以及 Protocol Analyzer 共同组成的。 先把环境搭通。 再把正常 Trace 看明白。 最后等问题真正出现的时候,才有可能知道: 它到底从哪里开始不正常。 免费下载Saniffer公司白皮书 希望获得更多关于PCIe5.0&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。 欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。  
    2026-08-26 15:16:00
  • 【PCIe科普】PCIe与BIOS(三):介绍BIOS/UEFI常用的一些术语和历史来源

    接上一篇文章:【PCIe科普】PCIe与BIOS(二):开机自检流程与 Option ROM 加载机制,今天我们继续来探讨一下开机POST自检过程中一些基本的术语,例如:PE 格式是什么意思?Option ROM 是什么意思,一般该 ROM 位于 RAID, GPU 等卡的什么地方,是一个 EEPROM 吗?为什么叫 Option ROM? 实模式是什么? Option ROM 是用 standard C 写的吗?PEI/DXE 是啥缩写,啥意思?这些问题非常细致,涉及 BIOS/UEFI 启动架构、固件存储格式、编程模式等多个深层概念,我们今天将逐一详细讲解,并结合底层原理回答:1. 什么是 PE 格式?PE(Portable Executable)格式 是 Microsoft Windows 下的标准可执行文件格式,适用于 .exe、.dll、.efi 文件等。//* 感兴趣的可以参考本文底部的斜体关于为什么是微软的文件格式作为UEFI BOOT的文件格式的历史。在 UEFI 中,设备的 Option ROM(如果是 UEFI 驱动)就必须使用 PE 格式,这样主板固件可以在 UEFI 环境中加载它。PE 文件由多个段(如 .text, .data, .reloc)组成;适用于 32 位和 64 位;可被加载器识别、定位入口函数、分配内存执行;EFI 驱动就是 PE 文件,扩展名一般是 .efi。2. 什么是 Option ROM?Option ROM(可选只读存储器) 是嵌在一些扩展卡(如 RAID 卡、网卡、显卡)上的一小段固件代码,用来在 BIOS/UEFI 阶段完成设备初始化或引导。比如:RAID 卡上的 Option ROM 会在 POST 时加载,让 BIOS 能看到 RAID 虚拟磁盘;显卡的 Option ROM 会初始化 GPU 并提供显示功能。Option ROM 通常存在于:RAID 卡、HBA、GPU、NIC 等扩展卡;存储在该卡上的 SPI Flash / EEPROM / NOR Flash 芯片中;容量一般从几十 KB 到几百 KB 不等。为什么叫 “Option ROM”?“Option” 是因为:它是可选功能模块(不是必须的),取决于设备;“ROM” 是因为:它原本是只读存储,烧录在 EEPROM 上;这个名字最早来源于 IBM PC/AT 的 BIOS 规范(1981~1984 年),IBM 的技术文档中就使用了这个术语。3. 实模式(Real Mode) 是什么?实模式(Real Mode) 是 x86 架构 CPU 开机时默认的运行模式。英文:Real Mode;地址空间仅支持 1MB(20-bit 地址线),每个段最多 64KB;没有内存保护、没有虚拟地址、没有多任务支持;BIOS 代码(含 Option ROM)必须在实模式下运行。对应的高级模式:模式名英文名特点实模式Real Mode初始模式,BIOS 执行用保护模式Protected Mode支持 32 位内存访问、段保护(OS 使用)长模式(64 位)Long Mode支持 64 位寻址,现代系统常态4. Option ROM 用什么语言写的?可以用 Standard C 吗?Legacy Option ROM:通常使用 汇编语言(x86 ASM) 或 C 语言 + 编译器限制 编写;必须保证代码可在 实模式环境下运行;要求代码尽量小(不能依赖标准库),入口必须在特定偏移;编译器通常使用 -ffreestanding、-m16 或类似选项生成“裸代码”。UEFI Option ROM:写法接近现代驱动开发;可用 标准 C / C++(如使用 EDK II 开发框架);编译结果为 PE 格式的 EFI 驱动;与操作系统下写驱动类似,但运行在 UEFI 环境中(无 OS);有明确入口 efi_main()。5. 什么是 PEI / DXE 阶段结构?缩写和含义?这是 UEFI 启动流程中的两个关键阶段:阶段缩写英文全称作用PEIPre-EFI Initialization预初始化阶段初始化 CPU、内存、芯片组等核心硬件,准备执行更复杂任务DXEDriver Execution Environment驱动执行环境加载和运行各种 UEFI 驱动(如显卡、RAID 驱动、文件系统)UEFI 启动流程大致如下:Reset → SEC → PEI → DXE → BDS → Boot OSOption ROM 中的 UEFI 驱动会在 DXE 阶段被加载和执行,这取代了 Legacy BIOS 中的“跳进去再跳回来”的方式。 举例说明一个 RAID 控制卡上:EEPROM 中烧录了一个 UEFI Option ROM;启动时 UEFI 固件发现它,加载 PE 格式驱动;驱动运行,在 UEFI shell 或 BIOS 图形界面中暴露配置界面;如果是 Legacy BIOS 则跳到 C000:0003 执行 Option ROM 的入口;PE格式文件采用微软文件格式的历史由来UEFI 规范中采用的 PE(Portable Executable)文件格式,正是最初由微软为 Windows NT 操作系统设计并标准化的可执行文件格式(准确地说,是 PE32 / PE32+ 格式,衍生自 Unix 的 COFF 格式)。但这并不意味着 UEFI 固件依赖 Windows 系统,而是 UEFI 标准在制定时直接“借用”了微软这套成熟的文件结构规范。一、 为什么跨平台的 UEFI 会采用微软的 PE 格式?历史渊源(Intel 与 Microsoft 的合作):UEFI 的前身是 Intel 在 1990 年代末为安腾(Itanium, IA-64)架构开发的 EFI(Extensible Firmware Interface)。当时 Intel 与微软紧密合作,需要一种现代、支持 32/64 位平坦内存模型(Flat Memory Model)、可重定位且具备结构化元数据的二进制格式,用来取代老旧 BIOS 的 16 位实模式纯裸二进制扇区代码。微软的 PE/COFF 格式当时已经非常成熟稳定,具备完整的段结构(如 .text、.data、.reloc),因此 Intel 直接将其选定为 EFI 的官方二进制封装标准。UEFI 规范的硬性要求:UEFI 规范(UEFI Specification)中明确规定:所有的 UEFI 驱动程序(.efi)、Option ROM、UEFI 应用程序 以及 OS 引导加载程序(OS Boot Loader) 必须封装为标准 PE32(32 位)或 PE32+(64 位) 格式。二、 UEFI 中的 PE 格式与 Windows 下的 .exe / .dll 有何异同?相同之处(底层容器结构一致)头部结构相同都包含经典的 MZ 头部(MS-DOS Stub Header,用于兼容性识别)、PE 签名魔数(0x00004550)、COFF 文件头(File Header)和可选头(Optional Header)。段表结构相同都划分为 .text(代码段)、.data(已初始化数据)、.reloc(重定位表)等。数字签名机制相同UEFI Secure Boot(安全启动)验证的 Authenticode 签名结构,与 Windows 驱动和程序签名的格式完全相同(存放在 PE 的 Security Directory 中)。关键不同之处(运行时环境与子系统差异)子系统标识(Subsystem ID)不同IMAGE_SUBSYSTEM_EFI_APPLICATION(如 bootx64.efi、grubx64.efi)IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER(引导服务驱动)IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER(运行时驱动)Windows 应用程序的 Subsystem 字段通常标记为 IMAGE_SUBSYSTEM_WINDOWS_GUI(窗口程序)或 IMAGE_SUBSYSTEM_WINDOWS_CUI(控制台程序)。UEFI 文件的 Subsystem 字段必须显式标记为 UEFI 专属类型:依赖的运行环境不同Windows 下的 PE 文件依赖 Windows 内核(ntoskrnl.exe)或用户态 API(kernel32.dll 等)。UEFI 下的 PE 文件运行在没有操作系统的裸机固件环境,它不调用任何 Windows DLL,而是通过入口点传入的指针直接调用 UEFI 固件提供的 Boot Services 和 Runtime Services 系统表(System Table)。三、 Linux 的引导加载程序也是 PE 格式吗?是的。即使是 Linux 系统,在 UEFI 模式下引导时:Linux 的引导程序 GRUB 2(例如 grubx64.efi)和红帽/Fedora 使用的一级安全引导载荷 Shim(shimx64.efi),其底层文件结构全都是标准的 PE/COFF 格式。现代 Linux 内核本身还集成了 EFI Boot Stub 功能,编译出来的 Linux 内核映像(vmlinuz)本身就被封装成了伪装的 PE/COFF 格式,使得 UEFI 固件能够跳过 GRUB 直接将 Linux 内核当成一个 UEFI PE 应用程序执行加载。免费下载Saniffer公司白皮书希望获得更多关于PCIe5.0&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-26 14:53:44
  • 【PCIe科普】PCIe与BIOS(二):开机自检流程与 Option ROM 加载机制

    我们上个周写了一篇:【PCIe科普】PCIe与BIOS(一):LTSSM初始化是在BIOS POST自检之前吗?结果发现还有不少人感兴趣阅读,我们后面将继续就开机自检POST, BIOS等写点东西。电脑的 BIOS 在执行开机自检,即 POST(power on self test)过程中,扫描到一个 PCIe device,然后会将该 device 的 ROM 里面的自检执行代码装载到内存,然后交给它执行,执行完毕再跳回到 BIOS 进行下一个 device 自检吗?Legacy BIOS 和 UEFI BIOS 都是这么自检的吗?//* 这个问题对于工作很多年的有经验的工程师不是问题,但是对于大学期间学了 8086 微机原理的新从业工程师会造成一定的困扰,因为目前大学计算机系学习的很多计算机原理性的东西仍然是非常老旧的Intel 8086/80286/80386 CPU的内容。其实,上面这个问题涵盖了 BIOS/UEFI 的 POST 流程与 Option ROM 加载机制,以下我们区分 Legacy BIOS 与 UEFI BIOS 的差异来分析一下。一句话回答是的,Legacy BIOS 在 POST 过程中扫描设备时,如果发现设备包含 ROM(如显卡、RAID 控制器等的 Option ROM),会将其代码加载进内存(通常从地址 C0000h 开始的段)并执行。执行完该设备的自检或初始化代码后,会跳回 BIOS,继续扫描下一个设备。UEFI BIOS 也会初始化设备,但执行逻辑完全不同,它不再使用传统 Option ROM 映射到固定内存地址,而是以模块方式执行 EFI 驱动程序(UEFI Option ROM),不再依赖实模式 BIOS 跳转。更详细技术流程解析Legacy BIOS 自检流程(POST 阶段)加电后执行 BIOS 固件(实模式)。自检主板核心硬件(CPU、RAM、主桥、南桥等)。扫描 PCI/ISA 总线上的设备。如果检测到某设备的 ROM 映像(如显卡的 VBIOS):BIOS 将其映射到内存中(如 C0000h 到 DFFFFh 范围);跳转到该 ROM 的入口点执行(通常是 C000:0003);设备完成初始化后,通过 RET 或 IRET 跳回 BIOS 主逻辑;BIOS 继续扫描下一个设备。关键点:ROM 里的代码是用 16 位实模式编写的,并由主 BIOS 控制执行顺序。所有设备初始化完成后,BIOS 查找启动设备,加载操作系统引导扇区(MBR)并跳转执行。UEFI BIOS 自检流程(POST 阶段)系统加电,UEFI 固件初始化平台控制器集线器(PCH)、内存、CPU。UEFI 会枚举设备(通常基于 ACPI、PCIe)。对于含有 Option ROM 的设备:如果是 传统 Legacy Option ROM,UEFI 会模拟 Legacy BIOS 环境(CSM)来执行;如果是 UEFI Option ROM,则是 PE 格式的 EFI 驱动模块,UEFI 会在 DXE 阶段直接加载并执行;无需映射到固定内存地址,无需跳转回来,因为 EFI 是模块化驱动架构。所有驱动初始化后,进入启动管理器(Boot Manager)选择 OS loader 启动。注意:UEFI 环境中没有 “跳进去执行再跳回来” 这一 Legacy BIOS 样式的流程,而是更像操作系统内核加载驱动。总结对比特性Legacy BIOSUEFI BIOS自检方式顺序执行 Option ROM加载 EFI 驱动模块ROM 映射地址固定(如 C0000h)无需固定地址,PE 格式加载执行机制跳转到实模式代码,执行完跳回加载模块并在 EFI 环境运行并发与模块化不支持并发,线性处理支持模块化、链式依赖兼容性老设备兼容性好现代设备普遍支持补充如果你的设备使用的是 UEFI + Legacy CSM(兼容支持模块),它可能仍会采用传统 Option ROM 执行方式;某些设备(例如 RAID 卡、GPU)在 Legacy 模式下,其 BIOS 初始化阶段依赖 Option ROM,否则无法被系统识别。免费下载Saniffer公司白皮书希望获得更多关于PCIe5.0&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-25 14:44:24
  • 巨头产能已被锁死到 2027!SSD 与内存断崖式缺货,四类存储玩家生存法则

    巨头产能已被锁死到 2027!SSD 与内存断崖式缺货,四类存储玩家生存法则📌 导语2026 年 8 月,全球存储市场再次走到了历史性的分水岭。8月初刚结束的 FMS 2026(Future of Memory and Storage) 盛会上,AI 基础设施对超大容量 eSSD、HBM4 以及高性能 DDR5/LPDDR5X 的吞噬速度震撼了整个半导体业界。而回到现货市场,上游原厂 2026-2027 年的产能已被各大云厂商的长协(LTA)彻底锁死,消费类市场“被动上行”的拐点已然全面变现。从 2023 年底惨烈的“面粉比面包贵”倒挂横盘,到 2026 年“无货可供、一天一价”的极度缺货,这场持续近三年的存储狂潮究竟是如何演变的?背后只有 AI 推动吗?无资源的研发厂和新进玩家又该如何求生?一、 走过三年“冰与火之歌”:SSD 与 DRAM 历史趋势复盘为了让大家更清晰地看出这三年来存储市场的演进脉络,我们根据业内每周关于内存和闪存的资讯自 2023 年 9 月至今的每周现货行情,绘制了如下的存储市场供需与价格演变趋势图:1. 第一阶段:强行拉涨与“惨烈倒挂”(2023.09 - 2024.08)趋势特征: 2023 年下半年,存储原厂凭借极度减产强行推高 WAFER 与晶圆价格。但此时消费端(PC、手机、DIY)需求极其疲软,形成了长时间的“面粉贵过面包”现象。市场生态: 通路商与品牌商被迫“倒挂出货”以保现金流,行业经历了长达一年的挤压与去库存过程。2. 第二阶段:AI 结构性分化与情绪转折(2024.09 - 2025.08)趋势特征: 随着 AI 大模型快速迭代,原厂将大量 DRAM 产能转去生产 HBM,Flash 产能挤向高阶 Enterprise SSD(eSSD)。市场生态: 消费类 DDR4 被逐渐放弃,DDR5 快速普及;虽然消费端淡季依然难受,但通路库存已被逐步肃清,市场筑底完成。3. 第三阶段:全面失控与“资源为王”(2025.09 - 2026.08)趋势特征: AI 服务器与端侧 AI(AI PC/AI Phone)爆发,导致产能缺口彻底爆发。2025 年底内存与 Flash 现货市场价格“彻底失控”。最新现状(2026.08.10): 芯片原厂 2026-2027 年的大部分产能已被长效协议锁定,短期协议定价主导权极强。消费类市场库存见底,进入“Q3/Q4 资源为王”的被动上涨周期。二、 缺货为什么会走到今天?全是 AI 惹的祸吗?很多人简单地归咎于“AI 火了”,但实际上,今天的极度缺货是技术变革、原厂产能策略与供应链结构演变共同作用的结果。1. AI 是最大主推力,但作用方式是“产能挤占”AI(训练与推理)对存储的需求绝不仅仅是“用量大”,而是结构性的产能绞杀:HBM 对常规 DDR5 的产能挤占: 制造 1GB HBM 所需的 Wafer 晶圆面积远大于普通 DDR5,HBM4 的产能爆发直接蚕食了传统内存的生产线。推理侧对大容量 eSSD 的饥渴: FMS 2026 上最瞩目的焦点在于,AI 推理(Inference)和海量数据检索(RAG)对高吞吐、超大容量(如 64TB/128TB)Enterprise SSD 的需求爆发,原厂将绝大部分优质 NAND Wafer 倾斜给企业级客户,导致消费类 Flash 晶圆极度紧缺。2. 原厂的“防御性策略”升级为“垄断性控盘”经历过 2022-2023 年巨额亏损的上游原厂,吸取了教训。不再盲目扩产,而是通过“3-5 年长效供应协议(LTA)”优先绑定云服务巨头(CSP),只将极少数产能留给现货与消费类市场,彻底掌握了定价主动权。3. 供应链洗牌完成,低价库存荡然无存在 2024 至 2026 年上半年,资本借由“涨跌顿挫”反复收割、清除现货市场的洗牌与中小卖家,通路中原本沉淀的低价库存早已在数次砸盘与跳涨中被消耗殆尽。当需求稍有回暖,市场便无缓冲垫可用,瞬间引发抢货爆涨。三、 供需失衡何时缓解?结合 FMS 2026 上原厂(三星、SK 海力士、美光等)透露的投产节奏及业内产能建设周期:短期(2026 年底前):无解。 2026 年 Q3/Q4 将持续保持“资源为王”的强势上行态势,现货市场易涨难跌。中期(2027 上半年):高位盘整,结构性松动。 随着各大原厂新厂房(如平泽新线、龙仁基地等)的设备陆续到位并试产,普通 DDR5 和消费类 NAND 的产能紧张有望在 2027 年二季度得到一定程度的喘息,但价格很难重回历史低位。长期(2027 下半年以后): 取决于端侧 AI(AI PC/手机)的杀手级应用能否带来持续的换机潮,否则高阶与中低端产品的分化将进一步加剧。四、 破局之道:针对四类存储企业的生存与运作建议面对当下“原厂控盘、现货极度紧缺”的格局,不同生态位公司的生存策略绝不相同:1) 业内从事多年 SSD/DRAM 研发和生产的老牌公司核心痛点: 规模大,交期压力大,原厂配额争夺激烈。运作建议:拥抱企业级与工业级: 坚决减少低利润消费类(如廉价 SATA、普通 TF 卡/U 盘)的精力投入,利用多年的研发积累,全面转向高附加值的 Enterprise SSD、PCIe 5.0/6.0 服务器存储及工业车规级模块。锁定原厂长协(LTA): 趁当前利润空间充沛,主动与上游签订跨年度的绑定协议,用长尾订单换取原厂的配额保障。2) 只有研发、没有关键颗粒资源(NAND/DDR)的公司核心痛点: 巧妇难为无米之炊,易被上游原材料价格波动“两头挤压”。运作建议:从“卖硬件”转向“算法与控制器赋能”: 避开标准品硬碰硬,主打定制化固件(Firmware)开发、自研主控优化或特定场景的软硬件一体化解决方案(如针对 AI 边缘计算的定制存储模块)。与大模组厂深度绑定: “借船出海”,将自身的研发能力与手握颗粒资源的头部模组厂结合,以技术换资源,进行联合研发或代工合作。3) 今年(2026 年)火速想新进入该行业的公司核心痛点: 错过了低价建仓期,面临高位接盘与原厂零资源分配的极高风险。运作建议:切勿盲目入局标准消费类市场: 此时再去扎堆做常规消费级 SSD 或内存条,极易被高位现货行情“收割”。寻找极小众的细分赛道: 关注 AI 端侧嵌入式存储、特种行业加密存储、医疗/军工等对价格不敏感但对稳定性要求极高的细分缝隙市场,做小而美,严控现金流,绝不盲目放大杠杆追高。4) 小型没有 NAND/DRAM 资源的研发型公司核心痛点: 资金链薄弱、抗风险能力低,现货波动极其致命。运作建议:坚持“轻资产 + 快周转”原则: 放弃囤货和博弈行情的幻想,采取“对单生产/背靠背采购”模式,接到确定订单再去现货市场匹配资源,宁可少赚,绝不留高价库存。精细化服务定制客户: 发挥小公司响应速度快的优势,为中小企业客户提供快样、小批量、高定制度的技术服务,赚取高附加值的手工/设计费,而非赚取颗粒差价。(本文行情数据来源于业内周报汇总,观点及分析仅供参考,市场有风险,入市需谨慎。)免费下载Saniffer公司白皮书希望获得更多关于PCIe5.0&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-24 17:27:37
  • 【PCIe科普】PCIe与BIOS(一):LTSSM初始化是在BIOS POST自检之前吗?

    LTSSM(Link Training and Status State Machine)是PCI Express(PCIe)协议中的一部分,用于在设备之间建立可靠的高速链路。对于PCIe设备启动时的时序,简单来讲,LTSSM 初始化发生在 BIOS POST 自检之前,在主板一加电(上电)之后、但还没进入 BIOS 阶段时就开始。更具体地说,LTSSM 初始化的时序大致如下:系统加电(Power On) 主板和所有插在主板上的 PCIe 设备开始上电,电源稳定供电。复位阶段(PERST# 低电平) 主板通过 PERST#(PCIe Reset 信号)引脚对所有 PCIe 设备进行复位。这一阶段 PCIe 链路不会训练,LTSSM 处于初始状态(Disabled)。复位释放(PERST# 高电平) 主板释放复位信号,此时 PCIe 设备和主板端的 PCIe 控制器开始工作,LTSSM 状态机开始启动,进入 Detect 状态,尝试检测对端设备。LTSSM 开始链路训练(Link Training) 链路进入 Polling、 Configuration 等状态,最终达到 L0,即链路建立完成,准备传输数据。链路稳定后 BIOS 才开始 POST 阶段 BIOS POST 阶段会枚举各个 PCIe 设备(如网卡、显卡、RAID 控制器等),并对其进行配置。如果 LTSSM 没有训练成功,BIOS 就识别不到该设备。总结:LTSSM 是在 BIOS POST 之前开始的;PCIe 链路必须在 BIOS 扫描设备之前就建立好,否则设备会被认为“不存在”;所以,LTSSM 训练成功与否直接影响 BIOS 和后续系统是否能枚举到该设备。如你在调试 PCIe 设备链路训练失败、或想用类似于SerialTek这种PCIe协议分析仪观察 LTSSM 状态,抓信号的起始点至少是 PERST# 拉高之后。希望获得更多关于PCIe5&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-20 17:00:33
  • 今天我们不讨论“哪个 AI 更爱国”,也不讨论“哪个 AI 更好玩”。

    今天我们不讨论“哪个 AI 更爱国”,也不讨论“哪个 AI 更好玩”。我们讨论一个更现实的问题:如果一个工程师每天都用 AI 学习先进技术,尤其是计算、网络、存储、芯片、半导体这些领域,他每天使用不同 AI 工具,长期下来会不会产生明显差距?比如:一个人每天使用中国大陆的 AI 软件:千问、豆包、元宝、Kimi 等。 另一个人每天使用美国的 AI 软件:ChatGPT、Gemini、Claude 等。他们学习一个月、半年、一年、五年、十年以后,会不会在技术视野、资料来源、英文文献阅读、工程判断、前沿敏感度、产业理解上出现差别?我的判断是:会。但这个差别不是简单的哪边的AI好。真正的差别来自三件事:你接触的是一手资料还是二手资料; 你每天训练的是“搜索答案”,还是“建立技术判断”; 你用 AI 的方式,是让它替你总结,还是让它带你进入全球知识源头。尤其在 PCIe、CXL、NVMe、UCIe、HBM、DDR5/MRDIMM、GPU、DPU、AI Server、NAND Flash、先进封装、Chiplet、半导体设备这些领域,差别会被时间不断放大。一、先说一个容易被忽略的事实:今天中美顶级 AI 模型能力差距已经明显缩小如果放在 2023 年,很多人会很自然地认为美国 AI 模型明显领先。但到 2026 年,这句话已经不能粗暴地讲了。斯坦福 AI Index 2026 报告提到,中美 AI 模型能力差距已经“事实上接近闭合”。报告称,自 2025 年初以来,中美模型多次在榜单顶部交替领先;截至 2026 年 3 月,顶级美国模型相对顶级中国模型的领先幅度只有个位数百分比,报告中给出的数字是 2.7%。同一份报告还提到,Arena Leaderboard 上 Anthropic、xAI、Google、OpenAI、Alibaba、DeepSeek 等公司已经进入相对接近的顶级区间。这说明什么?说明今天讨论这个问题,已经不能停留在“谁会聊天、谁会写作文、谁会写代码”这个层面。中国模型确实进步非常快。 Qwen3 技术报告显示,Qwen3 系列覆盖 dense 和 MoE 架构,参数规模从 0.6B 到 235B,并把 thinking mode 和 non-thinking mode 做到统一框架中,强调代码、数学推理、多语言和 agent 任务能力;Qwen3 还把多语言支持从 29 种扩展到 119 种语言和方言。 Kimi K2、Kimi K2 Thinking、Kimi K2.7 Code 也公开强调长上下文、代码、agent、工具调用和长链路软件工程能力,其中 Kimi K2 Thinking 官方资料称其可执行 200–300 次连续工具调用,并在 HLE、BrowseComp、SWE-Bench Verified 等任务上取得较强结果;Kimi K2.7 Code 也专门面向长周期软件工程任务。现在Kimi3更强。所以,如果只是问“中文 AI 能不能解释 PCIe、NVMe、NAND、DDR5、HBM、CXL”,答案当然是能。而且很多时候解释得很好。但真正的问题不是“能不能解释”。真正的问题是:它带你走向哪里?是走向二手中文总结,还是走向英文规范、论文、白皮书、开源代码、原厂文档、国际会议资料、GitHub issue、标准组织更新、芯片厂 release note?这才是十年差距的根源。二、先进技术的源头,绝大多数仍然是英文计算、网络、存储、芯片、半导体这些领域,有一个很残酷但必须承认的事实:大量最早、最完整、最权威的一手资料,仍然是英文。比如:PCI-SIG 规范和 ECN; CXL Consortium 规范; NVMe Base Specification; OCP 服务器、存储、网卡、CXL、液冷资料; JEDEC DDR5、LPDDR、HBM、MRDIMM 资料; ONFI NAND Flash 规范; UCIe、OIF、Ethernet、InfiniBand、Ultra Ethernet Consortium 资料; Intel、AMD、NVIDIA、Broadcom、Marvell、Microchip、Cadence、Synopsys、Rambus 的技术文档; arXiv、IEEE、ACM、USENIX、Hot Chips、ISSCC、IEDM、FMS、OCP Summit、SC、DAC 等论文和会议资料。这些资料不一定都公开免费,但它们的技术语言、概念起点、标准演进、产品路线,基本都以英文为主。如果一个工程师每天只看中文 AI 给他的中文答案,很容易形成一种“我已经懂了”的错觉。但实际上,他可能只是懂了别人翻译、压缩、筛选、解释后的版本。技术越基础,中文总结越够用。 技术越前沿,越必须靠近源头。比如:PCIe Gen6 的 FLIT、FEC、IDE、DOE、SPDM、CXL.io、CXL.mem; DDR5 MRDIMM 的 RCD、MDB、MCR DIMM、CKD、PMIC; HBM4 的 PHY、stack、base die、interposer; QLC / PLC NAND 的 Vt distribution、read retry、LDPC margin; CXL Type-3 memory expander 的 coherency、HDM decoder、RAS; GPU fabric、NVLink、PCIe switch、retimer、redriver、MCIO、EDSFF。这些东西如果只靠中文互联网的二手总结,很容易学到“术语”,但不容易建立“判断”。三、每天用中国 AI,一个月后会怎样?如果一个工程师每天使用千问、豆包、元宝、Kimi 这类中国大陆 AI,一个月后最明显的提升通常是:中文资料整理效率大幅提高; 术语入门速度更快; 客户邮件写得更顺; 中文行业语境理解更好; 国产替代、国内厂商、中文案例、中文政策和本土客户表达更贴近。这对很多工程师和销售非常有价值。比如,一个刚接触 PCIe 6.0 测试工具的人,让国内 AI 解释:什么是 Analyzer; 什么是 Exerciser; 什么是 Retimer; 什么是 MCIO; 什么是 CEM x16; 什么是 U.2、U.3、E1.S、E3.S; 什么是 NVMe-MI; 什么是 PLP; 什么是 NAND P/E cycle。中国 AI 可以用很好的中文把这些东西讲明白。尤其对刚入门工程师,中文 AI 的优势很明显:表达顺; 比喻多; 符合中文阅读习惯; 能快速生成培训材料; 能把复杂术语变成公众号文章; 能把英文文档翻译成更容易讲给客户听的话。但一个月后也会出现一个隐患:如果这个人只看中文 AI 输出,而不追问“原始出处在哪里”,他会很快习惯“看总结”,而不是“查源头”。这时候,他的学习速度看起来很快,但知识根基还不够硬。四、每天用美国 AI,一个月后会怎样?如果另一个工程师每天使用 ChatGPT、Gemini、Claude,一个月后最明显的变化通常是:英文资料不再那么可怕; 能更快读懂原厂 datasheet、whitepaper、spec note; 能把英文标准、论文、GitHub issue、release note 拉进同一个问题里; 更容易形成“全球资料源”的阅读习惯; 在代码、脚本、自动化、英文邮件、国际供应商沟通上提升明显。OpenAI 的 ChatGPT Search 和 Deep Research 已经把“搜索、阅读、引用、综合报告”做成产品能力,官方说明中明确提到 Deep Research 可以搜索公共网络、上传文件和连接应用,并输出带引用的结构化报告。 Gemini Deep Research 也强调可以自动浏览大量网站,形成多页报告;Google 的帮助文档还说明,Gemini Deep Research 默认可以使用 Google Search,并可加入用户自己的 Gmail、Drive、上传文件或 NotebookLM 笔记本作为资料来源。 Claude Code 则更偏软件工程和代码库理解,Anthropic 官方文档称 Claude Code 可以读取代码库、编辑文件、运行命令,并与开发工具集成。这些能力对先进技术学习有一个很直接的影响:它们更容易把用户推到英文一手资料、代码库和长文档里。对于计算、网络、存储、芯片领域,这非常关键。因为这些领域不是靠“知道名词”就够了,而是要能读:spec; datasheet; errata; application note; whitepaper; benchmark methodology; driver patch; firmware release note; kernel mailing list; GitHub pull request; 标准组织 slide; 会议论文。一个月后,使用美国 AI 的人如果方法正确,会更快养成“从源头学”的习惯。但它也有缺点。它对中国本土行业语境、国内客户沟通、中文产业链、国产供应商信息、中文政策和国内市场表达,不一定天然更贴近。五、半年以后,差距开始体现在“资料结构”上一个月的差距,主要是效率差距。半年以后,差距就开始变成资料结构差距。每天只用中文 AI 的工程师,可能已经积累了很多中文笔记:PCIe Gen6 是什么; CXL 是什么; NVMe 是什么; NAND Flash 是什么; HBM 是什么; DDR5 是什么; AI Server 是什么; Chiplet 是什么。这些笔记很适合做培训、销售、客户科普。但如果他没有持续追原始英文资料,他对技术细节的掌握很可能停留在“解释层”。比如他能讲:PCIe Gen6 使用 PAM4; 引入 FLIT; 有 FEC; 带宽更高。但他未必能顺着规范去看:FLIT mode 什么时候进入; FEC latency 对链路有什么影响; IDE/DOE/SPDM 在设备初始化中如何配合; 不同 retimer 对 LTSSM 和 equalization 有什么影响; Gen6 analyzer 如何判断 correctable / uncorrectable FLIT; 实际平台中 MCIO、EDSFF、switch、interposer 如何影响链路。而每天使用 ChatGPT/Gemini/Claude 的工程师,如果持续用它们读英文资料,很可能半年后已经形成另一套资料结构:标准组织资料; 原厂白皮书; arXiv / USENIX / Hot Chips / OCP 论文; GitHub / Linux kernel / SPDK / DPDK / QEMU / fio 代码; 英文论坛和 issue; 供应商 datasheet; benchmark 原文; 错误案例和 workaround。这时候,他不是只知道“结论”,而是知道结论来自哪里。这就是第一层差距。六、一年以后,差距体现在“技术判断”上一年以后,两个工程师最大的差距不在于谁背了更多术语,而在于谁更会判断。先进技术领域里,最难的不是“知道”。最难的是判断:这是不是 marketing? 这个指标是不是有条件? 这个 benchmark 是否公平? 这个产品是不是适合客户? 这个问题是协议问题、信号问题、固件问题、供电问题,还是测试夹具问题? 这项新技术是真趋势,还是一阵风?AI Index 2026 报告提到,AI benchmark 本身也面临可靠性和“被刷榜”的问题,部分常用评测中无效问题比例很高,Arena 排名也可能受到平台适配影响。这句话放到工程学习里也一样。只看 AI 总结的人,很容易被“排行榜”“参数”“一句话结论”牵着走。 长期读原始资料的人,更容易看到限制条件。比如:某个 SSD 标称 28GB/s,是顺序读峰值,还是持续写? 某个 Gen6 retimer 标称支持 64GT/s,是短线实验室环境,还是系统级环境? 某个 QLC NAND 标称接近 TLC endurance,测试条件是什么? 某个 AI Server 标称多少 PFLOPS,是 FP4、FP8、BF16,还是实际推理吞吐? 某个国产替代产品“对标国际领先”,到底对标的是哪一代产品?一年以后,真正拉开差距的是:谁会问更好的问题。中文 AI 可以帮你把问题讲清楚。 美国 AI 更容易帮你顺着全球资料链条追下去。 但最强的人,应该两边都用。七、五年以后,差距变成“技术地图”差距五年以后,差距会进一步放大。每天只靠单一中文 AI 的人,如果没有主动阅读英文源头,很容易形成一个“中文技术地图”。这个地图并不是错的,但可能有几个问题:更新慢半拍; 资料经过多轮转述; 容易被中文市场热点牵引; 对国际标准组织动态不敏感; 对原厂路线图和英文细节不够熟; 对 GitHub、开源生态、Linux kernel、SPDK、DPDK、QEMU、fio、openBMC 等实践资料接触不足; 容易把公众号文章、媒体报道和标准原文放在同一个可信度等级。而长期使用 ChatGPT/Gemini/Claude 读全球资料的人,如果训练得当,五年后会形成一个更国际化的技术地图:知道标准从哪里来; 知道生态谁在推动; 知道哪些公司在做底层芯片; 知道哪些产品只是封装方案; 知道一个技术从论文、规范、IP、芯片、系统、客户验证到大规模部署大概怎么走; 知道同一个技术在美国、欧洲、日本、韩国、中国台湾、中国大陆的产业位置差异。但这个人也可能有盲点:不了解中国客户真正怎么采购; 不了解国内项目里的商务和交付现实; 不了解国产替代语境; 不了解中文工程师常见误解; 不了解中国厂商实际供应链和交付能力;所以五年后最强的人,不是“只用美国 AI 的人”,也不是“只用中国 AI 的人”。而是能够做到:用美国 AI 追全球源头; 用中国 AI 落地中文表达; 用自己的工程经验做最后判断。八、十年以后,差距不再是工具差距,而是认知系统差距十年时间足够长。如果两个人每天都用 AI,但用法不同,十年后差距可能非常大。一个人每天让 AI 替自己总结中文文章。 另一个人每天让 AI 帮自己读英文规范、比较厂商资料、复盘客户问题、写测试脚本、查论文、看 GitHub issue、建立知识库。十年后,他们看同一个技术问题,思维方式会完全不一样。比如客户问:“我们这个 PCIe Gen6 x4 eSSD 为什么在某台服务器上偶发掉盘?”第一个人可能会回答:可能是兼容性问题。 可以换线、换插槽、升级固件试试。第二个人可能会进一步拆:先看 LTSSM 有没有 retrain; 看 link speed / width 是否变化; 看 AER correctable / uncorrectable; 看 NVMe reset 还是 PCIe reset; 看 PERST#、CLKREQ#、3.3Vaux、12V 时序; 看 MCIO / EDSFF adapter 是否改变 channel loss; 看 host BIOS 是否配置 ASPM; 看 SSD 是否进入 L1.2 后唤醒失败; 看 FIO workload 是否触发 thermal throttling; 看协议分析仪 trace 里最后一个正常 completion 是什么; 看是否需要业内的一些工具,如Quarch PPM 做 power glitch 复现,SanBlaze 做 NVMe workload,SerialTek 抓协议,SerialCables 规范连接链路。这就是十年差距。不是因为一个人“会用 AI”,另一个人“不会用 AI”。而是一个人把 AI 当摘要器。 另一个人把 AI 当全球技术资料入口、实验室助手、英文老师、代码助手、研究助理和反方审稿人。九、国内 AI 的优势在哪里?讲到这里,不能把国内 AI 说成只是“中文总结工具”。这不公平。国内 AI 在很多场景下非常有优势。第一,中文表达更自然。 要写客户说明、培训稿、技术销售材料,国内 AI 往往更贴近中文读者。第二,对中文互联网和国内产业语境更熟。 比如国产服务器、国产 SSD controller、国产 PCIe switch、国内芯片公司、中文招聘、中文媒体报道、政策文件、客户习惯,这些内容国内 AI 更容易说到点上。第三,成本和可用性有优势。 很多企业内部使用国内 AI 更方便,合规、访问、部署、费用都更容易落地。第四,开源模型生态进步很快。 Qwen、Kimi、DeepSeek 等模型在代码、推理、agent、中文和开放生态上进步明显。斯坦福 AI Index 也提到,中美模型能力差距已经显著缩小。第五,适合把复杂技术“翻译成客户语言”。 比如把 PCIe Gen6、CXL、NAND、PLP、DDR5、HBM 讲给客户听,国内 AI 很容易帮你写成更顺的中文。所以,对于中国工程师和市场销售来说,国内 AI 不但应该用,而且应该每天用。但要记住:国内 AI 最适合做中文落地,不应该成为你唯一的全球知识入口。十、美国 AI 的优势在哪里?美国 AI 的优势,主要体现在四个方向。第一,更容易连接全球英文资料生态。 ChatGPT、Gemini、Claude 的产品设计更强调英文资料、开发者生态、国际论文、英文网页、源代码和工具链。OpenAI Deep Research 和 Gemini Deep Research 都明确把“多来源搜索、综合报告、引用来源”作为核心能力。第二,代码和工程 agent 更成熟。 Claude Code 官方定位就是读取代码库、编辑文件、运行命令并集成开发工具。围绕 Claude Code、Codex、Gemini CLI 等工具,学术界也已经开始研究这些 agentic coding tools 的工程结构、bug 类型、团队采用和效率影响。第三,更适合做英文技术写作和国际沟通。 写给国外原厂、客户、FAE、研发团队的邮件、技术问题、bug report、issue、RMA 说明、测试报告,美国 AI 往往更贴近英文工程表达。第四,更容易做跨学科研究。 Google 2026 年一篇关于 Gemini 加速科学研究的论文,展示了研究者如何把高级 AI 模型用于理论计算机科学、优化、经济学、物理等开放问题,强调迭代细化、问题分解、跨学科迁移等方法。这些能力对先进技术学习很重要。因为计算、网络、存储、芯片、半导体已经越来越跨学科:AI server 需要懂 GPU、网络、存储、散热、电源; CXL 需要懂 CPU、内存、PCIe、cache coherency; SSD 需要懂 NAND、controller、firmware、协议、功耗; 先进封装需要懂半导体工艺、信号完整性、电源完整性、热; 数据中心需要懂 server、network、storage、AI workload、rack-scale design。只靠中文摘要,很难长期跟住这个复杂系统。十一、最危险的不是用中国 AI,而是只用“舒服的 AI”真正危险的不是你用千问、豆包、元宝、Kimi。真正危险的是你只用那个让你最舒服的 AI。它说中文; 它解释得很顺; 它从来不逼你看英文; 它把复杂问题压成一页; 它不给你太多反方意见; 它不要求你查原文; 它不提醒你哪些内容只是推测; 它让你觉得自己已经懂了。这才是最危险的。同样,使用 ChatGPT、Gemini、Claude 也不自动代表更先进。如果你每天只是问:“帮我总结一下。” “帮我写得通俗一点。” “帮我起个标题。”那你用再强的 AI,也只是一个高级文案工具。真正会学习的人,会这样用 AI:请列出这个问题的一手资料来源; 请区分标准原文、厂商宣传、媒体报道、个人博客; 请找出这项技术的反对意见; 请指出这个 benchmark 的限制条件; 请把这个英文 datasheet 逐段解释; 请把这个 PCIe trace 里的事件按时间线分析; 请把这个 Linux driver patch 和硬件行为对应起来; 请把这个厂商说法和竞品资料放在一起比较; 请告诉我哪些结论是不确定的; 请给出我应该继续问原厂 FAE 的问题清单。这才是 AI 时代的学习方法。十二、最推荐的工作流:中美 AI 一起用如果目标是学习全球先进知识,尤其是计算、网络、存储、芯片、半导体,我最建议的不是二选一,而是组合使用。一个非常实用的流程是:第一步,用 ChatGPT / Gemini / Claude 找英文源头。 让它查标准、论文、白皮书、原厂文档、GitHub、release note、会议资料。第二步,用同一个 AI 做技术核对。 让它区分事实、推测、厂商宣传和未验证结论。第三步,用 Kimi / 千问 / 豆包 / 元宝 做中文表达。 把技术内容变成客户能看懂的中文文章、PPT、培训稿、销售话术。第四步,再让美国 AI 做反向审稿。 检查有没有英文技术概念误解、有没有不严谨推断、有没有明显过度表达。第五步,最后由人来判断。 因为 AI 可以帮你读资料,但不能替你承担工程责任。这套流程特别适合你这样的工作场景:面向中国客户; 但技术来自全球; 需要和国外原厂沟通; 需要理解 PCIe、CXL、NVMe、NAND、DDR、HBM、GPU、AI Server; 还要把复杂技术讲给销售、客户和初级工程师听。一句话:美国 AI 帮你连接全球源头,中国 AI 帮你落地中文表达,人的工程经验负责最终判断。十三、按时间看,真正的差距是这样形成的如果把时间拉长,可以这样看。使用一个月只用国内 AI:中文入门快,写文章快,适合建立基础概念。 只用美国 AI:英文资料阅读能力提升快,开始接触原厂文档和国际资料。 差距不大,主要是效率和语感差异。使用半年只用国内 AI:中文知识库很丰富,但可能以二手资料为主。 只用美国 AI:更容易形成英文源头资料链,开始习惯查论文、标准、datasheet。 差距开始出现在资料来源质量。使用一年只用国内 AI:能讲清很多技术概念,但可能对最新规范细节、国际会议、开源生态不够敏感。 只用美国 AI:更容易建立全球技术地图,技术判断更接近一手资料。 差距开始体现在判断能力。使用五年只用国内 AI:很适合中文市场、客户沟通和本土产业理解,但如果不补英文源头,前沿敏感度可能不足。 只用美国 AI:更熟悉全球资料、标准组织和技术路线,但可能不够接地气,不懂国内客户真实语境。 差距变成技术地图差异。使用十年只用舒服的 AI:无论中美,都会变成“总结型学习者”。 长期用多源 AI + 一手资料 + 工程验证:会变成“判断型工程师”。十年后真正拉开差距的,不是你用了哪个国家的 AI,而是你有没有用 AI 建立自己的全球技术判断系统。十四、最后一句话:AI 不是知识本身,而是通往知识的入口每天使用不同 AI,长期以后会不会产生差距?会。但最本质的差距,不是中国 AI 和美国 AI 的国别差距。 而是你离全球先进知识源头有多远。如果你每天只看中文二手总结,哪怕总结得再顺,你也会慢慢远离源头。 如果你每天借助 AI 直接阅读英文标准、论文、白皮书、代码、会议资料,你会越来越接近源头。 如果你还能把这些英文源头内容,用中文讲给客户和工程师听,那你就会形成真正的竞争力。在计算、网络、存储、芯片、半导体这些领域,未来十年最有价值的工程师,不是记住最多术语的人,而是能做到三件事的人:看得懂全球一手资料; 讲得清本土客户语言; 判断得出技术真假和商业价值。AI 会放大人的学习能力,也会放大人的懒惰。每天用 AI,并不必然让你更强。 每天用 AI 追源头、问证据、做比较、搭体系,才会让你十年后真正不同。一句话总结:用 AI 学先进技术,最怕的不是选错软件,而是永远停留在别人总结好的世界里。更多PCIe5&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试方面的问题想咨询,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-19 16:56:50
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 49
    • 电话:(021)5080-7071; 131-2785-6862

      在这里输入描述
    • www.saniffer.cn

      在这里输入描述
    • 邮箱:sales@saniffer.com

      在这里输入描述
    • 地址:上海市浦东新区张江路505号1号楼1605-1单元

      在这里输入描述

    关注微信公众号

    上海森弗信息技术有限公司 备案号:沪ICP备2024076352号-1

    版权所有 © 上海森弗信息技术有限公司 技术支持:竹子建站