2021-07-29 NVMe控制器纯硬件逻辑设计(1)

NVMe控制器硬件逻辑部分设计

  1. NVMe控制器架构设计
    NVMe控制器硬件逻辑部分主要模块的设计思路及功能定义如下:
    首先将实现指令处理模块,该模块主要包含寄存器组定义和指令组装两个部分。CPU能够通过AXI-Lite总线访问并配置模块内部寄存器组,配置完成后,便将寄存器中的相关配置信息传输至后续指令组装部分,并根据NVMe 1.3d协议中所规范的提交指令格式完成指令组装流程;
    数据流处理模块将输入的无地址映射形式写数据流转换为带地址映射形式,并缓存至DDR存储器件中来等待后续控制流程提取。或是将读取到的数据转换为数据流形式进行输出;
    队列管理模块主要实现提交指令和完成信息的存储、多队列间的调度管理、实时监控队列状态等功能。同时,为了减少不同模块间的组合逻辑信号交互,选择将Round-Robin循环仲裁器置于队列管理模块内部,实现对多队列请求进行轮询仲裁,而非将其作为独立模块,从而改善时序,降低亚稳态发送概率,;
    门铃管理控制模块则将获得仲裁许可的队列对应门铃信息发送至SSD端,更新SSD内部对应门铃寄存器,以通知SSD端控制器有待执行的新提交指令或是已检查完成的完成信息;
    当门铃寄存器更新完成后,SSD控制器将根据其调度管理选择合适的时机读取NVMe控制器提交队列中的指令,或是在指令执行完成后向NVMe控制器中写入完成信息;
    指令执行完成后,不同于NVMe协议中标准工作流程规范所采用的中断机制,在本课题NVMe控制器设计方案中,将直接通过硬件逻辑实现的错误检测模块对完成信息进行检查,而不再发送中断掩膜信号至CPU,大幅降低处理延时,提高工作效率。

  2. NVMe控制器整体架构
    整体架构如图1所示。
    在这里插入图片描述
    NVMe控制器IP的外部接口信号主要包括与Zynq处理器系统部分、XDMA以及用户逻辑相连接的必要端口。其中包括配置NVMe寄存器所需的AXI4 Lite接口、数据流的输入输出接口S/M_AXIS_DATA、DDR中缓存数据的输入输出接口M_AXI_DDR以及与SSD控制器相连接的门铃信息控制、指令发送和完成信息接收端口S/M_AXI_SSD。除此之外,还包括指令执行完成后的完成信号done和指令执行出现错误的error信号等。接口信号说明如表1所示。
    在这里插入图片描述

NVMe host IP 效果见 视频demo (B站 搜 NVMe IP):
https://search.bilibili.com/all?keyword=nvme%20ip&from_source=nav_search_new
qq:1943086312
wx : zzbxidian

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值