一种适合万兆以太网存储传输系统设计(3)

NVMe Host控制器

NVMe Host控制器的设计主要是为了解决嵌入式操作系统中NVMe软件执行效率低的问题。该控制器使用纯硬件逻辑的方式来实现NVMe命令在Host端的控制流程,如图所示。这种实现方式可以有效的提升命令执行效率,并能够减少软硬件的握手开销时间,从而使得在对NVMe SSD进行读写操作时表现出非常高的性能。控制器主要完成了队列管理、完成信息解析功能。
在这里插入图片描述

NVMe Host控制器具有两个主要功能:第一,NVMe队列的管理,其中包括对NVMe命令的缓存、队列状态信息的记录、多队列之间的仲裁判决以及更新门铃寄存器等功能。第二,对NVMe SSD返回的完成信息的解析。下面先对各个功能说明。
(1)队列管理
队列管理主要负责对NVMe命令的缓存、队列状态信息的记录、多队列之间的仲裁判决以及更新NVMe SSD门铃寄存器的工作。当NVMe Host控制器接收到NVMe命令后,需要将命令缓存在队列中,并将队列的首尾指针信息通过更新门铃寄存器的方式来告知NVMe SSD取走待执行的命令。NVMe SSD取走命令,并执行完成后,会向NVMe Host控制器返回完成信息。
由于NVMe Host控制器内存在多个队列,因此会出现多个队列同时发起更新NVMe SSD门铃寄存器的情况,所以需要对其进行仲裁判决。本设计中采用轮询仲裁设计,其设计思路为当第一个队列获得仲裁授权后,在下一次进行仲裁授权的时候,该队列的优先级会变成最低,而其下一个队列的优先级会被置为最高。
(2)完成信息解析
完成信息解析功能主要负责对NVMe SSD返回的完成信息进行解析,将完成信息中的Status Field字段和ID号字段提取出来。通过检查Status Field字段,判断NVMe命令是否执行成功。若命令执行成功,则释放对应ID号的SQ中的缓存空间,以便新的NVMe提交命令使用。若命令执行失败,需要将该ID号对应的提交命令进行重新发送。
相关资源见本栏其他文章或B站 搜 NVMe IP 或作者 逸云一生

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值