0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

协议测试Open Lab分析底层PCIe的问题

SSDFans 来源:SSDFans 2023-05-06 09:25 次阅读

最近某开发嵌入式平台的客户到我们的协议测试Open Lab分析底层PCIe的问题。问题症状看起来很简单,开发板上DSP芯片的RC(Root Complex)端通过PCIe链路直连M.2 NVMe SSD,读操作没有任何问题,但是写操作会失败。前后折腾了6个多月,最后找到我们实验室通过SerialTek公司的Kodiak系列PCIe协议分析仪通过协议抓包的方式快速解决了问题。

下面是分析的大致步骤和过程。

1.我们先抓取一个read操作,读取一个扇区512字节。

4be24fee-eb7c-11ed-90ce-dac502259ad0.png

从上图,我们看到,蓝色底色部分是NVMe SSD controller去主内存里面拿这个read command,成功完成。紧接着,SSD controller从NAND拿到数据后将这些数据通过4个128byte的memory write写到主内存。

2.我们再来抓取一个write操作,写一个扇区512字节。执行命令后,发现写失败。

4c1b8444-eb7c-11ed-90ce-dac502259ad0.png

从上图可以看出,SSD controller在时间戳16.353.876.194.000这一行取到write command后,在蓝色底色这一行报错,Unsupported Request。这一行是SSD controller发送Memory Read命令到内存读取512byte的数据,但是被RC端拒绝了。

在问题未仔细分析之前,我们开始觉得这是否可能和SSD的sector扇区的block size有关,因为一般都是512byte,也有1K, 2K, 4K block size的。所以,我们就用ChatGPT先问了一下业内是否有支持256byte sector大小的NVMe SSD。参看下图。

4c6bb662-eb7c-11ed-90ce-dac502259ad0.png

结果找到全球只有Micron 一个M.2 SSD支持。

4c7e5e16-eb7c-11ed-90ce-dac502259ad0.png

结果发现ChatGPT弄了一个大乌龙,整个Micron产品单页中确实出现好多256,但是要么是256GB,AES Key Size 256 Bits,SHA 256,甚至256 sector或者256 words。所以,看来使用ChatGPT来给出建议还不是很靠谱啊。

我们再次仔细来分析该错误,同时比对为什么read command可以成功,但是write command却失败了。直观的对比发现可能和Max Read Request Size 有关。我们查找RC的手册,发现它的规格Spec里面明确写明RC接受的远端device的Max Read Request Size为256byte,但是我们抓包发现SSD的PCIe memory read request size是512 byte,这个应该就是RC回复SSD的Unsupported Request的直接原因。

4caf8964-eb7c-11ed-90ce-dac502259ad0.png

为了验证这个想法,我们在RC端在初始化的时加入一行代码设置device端的Max Read Request Size为001 (该字段为3bit, 二进制001表示256byte)。然后重新开机运行写操作,这次写2048个字节,结果成功了。2048个字节分解成8次memory read,每次256字节,参见下图。

4cc9a8e4-eb7c-11ed-90ce-dac502259ad0.png

至此,问题得到有效解决。当然,平时有的时候也会发现你请求512byte,结果发送4次128 byte的情况,就像我们上面的read command一样,解释如下。

4d0e8a9a-eb7c-11ed-90ce-dac502259ad0.png






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7687

    浏览量

    344406
  • NAND
    +关注

    关注

    16

    文章

    1546

    浏览量

    134822
  • SSD
    SSD
    +关注

    关注

    20

    文章

    2696

    浏览量

    115527
  • PCIe接口
    +关注

    关注

    0

    文章

    111

    浏览量

    9529

原文标题:一个PCIe底层Max Read Request Size问题差点被ChatGPT忽悠了

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCIe引脚定义和PCIe协议层介绍

    本文我们将向大家介绍PCIe引脚定义以及PCIe协议层。
    发表于 09-26 11:39 7792次阅读
    <b class='flag-5'>PCIe</b>引脚定义和<b class='flag-5'>PCIe</b><b class='flag-5'>协议</b>层介绍

    PCIE 3.0的接收机物理层测试方案

    信号速率高于5Gbps 以上,规范均会规定要求产品必须通过接收机一致性测试。接收端测试的基本原理是测试仪器(通常使用误码分析仪或者信号源和能分析
    发表于 09-26 17:33

    体验紫光PCIE之使用WinDriver驱动紫光PCIE

    对BAR0写进去和读出来是一致的,但是这样并不知底层如何操作,可以在FPGA使用Inserter抓取相关信号结合PCIE协议分析。RX信号在axis_master,TX信号在axis
    发表于 11-17 14:35

    力科公司首家交付PCI Express 3.0协议分析

    力科公司首家交付PCI Express 3.0协议分析仪 力科公司,日前宣布第一个在协议测试设备领域交付PCIe Express 3.0
    发表于 01-14 08:31 792次阅读

    OPEN AI LAB联合Arm中国、瑞芯微发布EAIDK

    2018年9月14日,上海讯,OPEN AI LAB联合Arm中国、瑞芯微在首届“Arm人工智能开发者全球峰会”上,正式发布了面向教育及创客的嵌入式人工智能应用开发平台EAIDK (Embedded AI Development Kit)。
    的头像 发表于 09-14 18:23 5491次阅读

    PCIe Gen 4协议分析仪的竟然那么强大!

    分析革命性创新的领导者,SerialTek公司的PCIe Gen 4和Gen 5协议分析仪不仅颠覆了传统的PCIe
    的头像 发表于 09-21 14:26 1w次阅读

    广和通5G模组FM150-AE顺利完成华为Open Lab认证测试

    近日,广和通5G模组FM150-AE在华为Open Lab顺利完成认证测试,成为首批获得Huawei Compatible技术认证的模组产品。 华为Open
    的头像 发表于 01-18 11:08 3006次阅读

    最新PCIe Gen 5 switch芯片已内置SerialTek PCIe抓包分析功能

    等各环节可能遇到的各种疑难问题,工程师只需要免费下载SerialTek PCIe协议分析仪软件BusXpert即可直接配置PCIe Gen 5 switch进行抓包
    的头像 发表于 04-13 15:30 4907次阅读
    最新<b class='flag-5'>PCIe</b> Gen 5 switch芯片已内置SerialTek <b class='flag-5'>PCIe</b>抓包<b class='flag-5'>分析</b>功能

    浅析PCIe Gen 5 switch芯片内置的SerialTek PCIe抓包分析功能

    SerialTek是PCIe,NVMe和SAS/SATA协议测试解决方案的全球领先提供商,今天推出的PCIe测试
    的头像 发表于 04-13 15:34 5667次阅读
    浅析<b class='flag-5'>PCIe</b> Gen 5 switch芯片内置的SerialTek <b class='flag-5'>PCIe</b>抓包<b class='flag-5'>分析</b>功能

    力科将推出(PCIe)完整性新协议分析和流量生成解决方案

    2022年6月14日,Milpitas,串行数据测试解决方案的全球领导者力科,将在 PCI-SIG开发者大会2022上展示用于测试 PCI Express (PCIe) 完整性和数据加密 (IDE) 安全
    的头像 发表于 06-17 17:01 4590次阅读

    解决PCIe协议验证挑战

      在满足所有测试以建立稳定的通信通道后,下一步是验证PCIe 总线上的应用层(例如 NVMe)。对于 NVMe 协议测试,用户将需要一个工具来观察不同部分的交互方式。数据链路层、确认
    的头像 发表于 06-19 15:44 1938次阅读
    解决<b class='flag-5'>PCIe</b><b class='flag-5'>协议</b>验证挑战

    U4301A PCIE3.0协议分析仪:首款可在AXIe机箱中工作的测量模块

    PCIE3.0协议分析仪U4301A,它是一块采用了Agilent AXIe架构的插卡,可以插在AXIe的机箱里,通过探头来捕获高速的PCIE 3.0信号,并通过外部PC控制显示
    的头像 发表于 10-12 17:33 1232次阅读

    PCIe5.0, CXL, NVMe, NAND, DDR5, UFS4测试技术和工具白皮书Ver 8.0发布了!

    Chapter 1:Saniffer开放实验室Open Lab介绍,包括可提供的测试产品和服务,合作实验室提供的针对PCIe Gen5 物理层和协议
    的头像 发表于 02-24 10:28 1887次阅读

    差分探头在pcie测试上的应用

    差分探头是一种常用的测试仪器,在PCIE测试中也有广泛的应用。本文将介绍差分探头在PCIE测试上的应用及其优势。
    的头像 发表于 05-11 10:54 498次阅读

    协议分析仪逻辑分析仪的区别

    协议分析仪逻辑分析仪的区别 协议分析仪和逻辑分析仪是常用的
    的头像 发表于 09-19 16:33 1360次阅读