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

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

3天内不再提示

NVMe高速传输之摆脱XDMA设计19:PCIe请求模块设计(下)

高速传输与存储 ? 来源:高速传输与存储 ? 作者:高速传输与存储 ? 2025-08-11 15:21 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在接收到请求总线接口的请求事务后,当请求类型的值为0时,表示通过PCIE硬核的配置管理接口发送请求,由于请求接口的接口和时序与配置管理接口基本一致,因此此时直接将请求接口信号驱动到配置管理接口完成请求的发送,请求读数据和响应也通过选通器连接到配置管理接口。当请求类型值不为0时,则需要将请求转换为TLP以axis接口形式发送,这一过程通过请求状态机实现,请求状态机的状态转移图如图1所示。各状态说明如下:

wKgZPGgxkFaAbkXyAACO845bvXI893.png

PCIe请求状态转移图

IDLE:空闲状态,复位后的初始状态。当请求写有效或请求读有效,且请求类型值不为0时,如果请求写有效跳转到WR_HEAD状态,如果请求读有效或读写同时有效跳转到RD_HEAD状态,否则保持IDLE状态。实际的上层设计中读写请求不会同时发生,这里的状态跳转条件增加了读优先设计,从而避免异常情况的出现。

WR_HEAD:请求写TLP头发送状态。该状态下根据请求类型、请求地址组装写请求的TLP报头,并将报头通过axis_rq接口发送。当axis_rq接口握手时跳转到WR_DATA状态。

WR_DATA:请求写TLP数据发送状态。该状态下将请求写的数据通过axis_rq接口发送,当axis_rq接口握手时跳转到DONE状态。

RD_HEAD:请求读TLP头发送状态。该状态下组装读请求TLP报头通过axis_rq接口发送,当接口握手时跳转到RD_DATA状态。

RD_DATA:请求读CPLD接收状态。该状态下监测axis_rc接口信号,当出现数据传输有效时,启动握手并接受数据,然后跳转到DONE状态。

DONE:请求完成状态。该状态下使能req_ack请求响应信号,如果是读请求同时将RD_DATA状态下接收的数据发送到req_rdata请求读数据接口。一个时钟周期后回到IDLE状态。

B站已给出相关性能的视频,如想进一步了解,请搜索B站用户:专注与守望
链接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click

审核编辑 黄宇

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

    关注

    16

    文章

    1365

    浏览量

    85758
  • nvme
    +关注

    关注

    0

    文章

    271

    浏览量

    23329
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVMe高速传输摆脱XDMA设计20: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe
    的头像 发表于 08-13 10:43 ?107次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计20: <b class='flag-5'>PCIe</b>应答<b class='flag-5'>模块</b>设计

    NVMe高速传输摆脱XDMA设计20: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe
    发表于 08-12 16:04

    NVMe高速传输摆脱XDMA设计19PCIe请求模块设计(

    请求读CPLD接收状态。该状态监测axis_rc接口信号,当出现数据传输有效时,启动握手并接受数据,然后跳转到DONE状态。DONE:请求完成状态。该状态
    发表于 08-11 15:24

    NVMe高速传输摆脱XDMA设计18:PCIe请求模块设计(上)

    请求模块的具体任务是将系统的请求转换成为axis接口形式的TLP或配置管理接口信号。这些请求主要包含初始化配置请求和门铃写
    的头像 发表于 08-09 14:52 ?891次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计18:<b class='flag-5'>PCIe</b><b class='flag-5'>请求</b><b class='flag-5'>模块</b>设计(上)

    NVMe高速传输摆脱XDMA设计17:PCIe加速模块设计

    PCIe加速模块负责实现PCIe传输层任务的处理,同时与NVMe层进行任务交互。PCIe加速
    的头像 发表于 08-09 14:38 ?779次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计17:<b class='flag-5'>PCIe</b>加速<b class='flag-5'>模块</b>设计

    NVMe高速传输摆脱XDMA设计18:PCIe请求模块设计(上)

    发送给下游设备,下游设备的反馈通过axis_rc接口以CPL或CPLD的形式传回。门铃写请求NVMe控制模块发起,请求PCIe存储器写
    发表于 08-09 14:37

    NVMe高速传输摆脱XDMA设计17:PCIe加速模块设计

    PCIe加速模块负责实现PCIe传输层任务的处理,同时与NVMe层进行任务交互。如图1所示,PCIe
    发表于 08-07 18:57

    NVMe高速传输摆脱XDMA设计14: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe
    的头像 发表于 08-04 16:47 ?215次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计14: <b class='flag-5'>PCIe</b>应答<b class='flag-5'>模块</b>设计

    NVMe高速传输摆脱XDMA设计14: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe
    发表于 08-04 16:44

    NVMe高速传输摆脱XDMA设计13:PCIe请求模块设计(

    PCIe接口替代XDMA,可以灵活使用IP接口,便于调试等功能。 续上:在接收到请求总线接口的请求事务后,当请求类型的值为0时,表示通过
    发表于 08-04 16:39

    NVMe高速传输摆脱XDMA设计13:PCIe请求模块设计(

    在接收到请求总线接口的请求事务后,当请求类型的值为0时,表示通过PCIE硬核的配置管理接口发送请求,由于
    的头像 发表于 08-04 16:35 ?163次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计13:<b class='flag-5'>PCIe</b><b class='flag-5'>请求</b><b class='flag-5'>模块</b>设计(<b class='flag-5'>下</b>)

    NVMe高速传输摆脱XDMA设计12:PCIe请求模块设计(上)

    请求模块负责将系统请求转换为AXIS接口的TLP信号或配置管理接口信号,处理初始化配置请求和门铃写请求。初始化
    的头像 发表于 08-04 09:52 ?158次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计<b class='flag-5'>之</b>12:<b class='flag-5'>PCIe</b><b class='flag-5'>请求</b><b class='flag-5'>模块</b>设计(上)

    NVMe高速传输摆脱XDMA设计12:PCIe请求模块设计(上)

    发送给下游设备,下游设备的反馈通过axis_rc接口以CPL或CPLD的形式传回。门铃写请求NVMe控制模块发起,请求PCIe存储器写
    发表于 08-03 22:00

    NVMe高速传输摆脱XDMA设计九:队列管理模块设计(上)

    本帖最后由 xianuser2012 于 2025-7-30 15:57 编辑 注:这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接
    发表于 07-27 17:41

    NVMe IP高速传输却不依赖XDMA设计八:系统初始化

    采用XDMA是许多人常用xilinx库实现NVMe或其他传输的方法。但是,XDMA介绍较少,在高速存储设计时,尤其是
    的头像 发表于 07-26 15:14 ?359次阅读
    <b class='flag-5'>NVMe</b> IP<b class='flag-5'>高速</b><b class='flag-5'>传输</b>却不依赖<b class='flag-5'>XDMA</b>设计<b class='flag-5'>之</b>八:系统初始化