当前位置: 首页 > news >正文

NVMe高速传输之摆脱XDMA设计17:队列管理控制设计(下)

续上,队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。

图1 队列管理结构

由于提交队列管理单元使用表单管理队列信息,所以使队列具有了可动态配置的属性,通过修改表单的信息便可以修改队列数量和深度。在实际应用中,当出现大量随机数据读写请求时,可以通过修改表单增加队列数量和深度,增强随机读写性能;在顺序读写数据时,可以清除表单减少队列数量和深度,降低资源占用和功耗。

对于完成队列,设置一个完成队列管理单元、一个完成条目解析单元和一块异常完成条目缓存。完成管理单元中同样包含了完成队列表单,与提交队列表单不同的是完成队列表单中只包含了门铃地址、队列深度和门铃头、尾指针,并且只设置了一个admin完成队列和一个I/O完成队列。

这样的结构设计基于两个方面的考量:首先,当完成条目状态为正常完成时,只需将完成条目中的指令ID释放到ID池,将对应提交队列ID的门铃头指针更新到提交队列条目,当完成条目状态为异常时,将其写入异常完成条目缓存等待处理,这些过程由完成条目解析单元在短时间内并行处理,不会出现完成队列写请求的阻塞,因此不需要设置多个I/O完成队列和完成条目的存储空间。其次,由于ID池的存在,所有的NVMe指令都具有一个唯一的ID,完成条目中的提交队列ID不再作为指令的标识,因此仅使用一个I/O完成队列对应多个I/O提交队列是可行的,并且异常的I/O完成条目和异常的admin完成条目存放在同一个缓存中也不会影响ID的辨识作用。

在有新的提交条目写入提交队列和新的完成队列写请求时,提交队列管理单元和完成队列管理单元向对应的队列发起门铃写请求,这些请求经过Round Robin仲裁器的仲裁后被发送给SSD。实际上,随着仲裁输入数量的增加,仲裁的效率和时序也会变差[[i]]。假设采用完成队列和提交队列一一对应的结构,仲裁的输入数量将是提交队列数量的2倍,要保证仲裁效率和良好的时序,只能降低提交队列数量,导致性能下降。而完成队列管理单元所实现的结构只占用两个仲裁请求输入,基于此可以增加更多的I/O提交队列,充分发挥SSD性能。

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

http://www.lryc.cn/news/601770.html

相关文章:

  • 金字塔降低采样
  • 企业IT管理——突发病毒事件应急处理预案模板
  • 【Python系列】使用 memory_profiler 诊断 Flask 应用内存问题
  • 【NLP实践】三、LLM搭建中文知识库:提供RestfulAPI服务
  • 《计算机组成原理与汇编语言程序设计》实验报告四 Debug及指令测试
  • 基于黑马教程——微服务架构解析(一)
  • C/C++核心知识点详解
  • lombok插件@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor的区别
  • 金融科技中的跨境支付、Open API、数字产品服务开发、变革管理
  • 2025C卷 - 华为OD机试七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD
  • SpringSecurity实战:核心配置技巧
  • 由于主库切换归档路径导致的 Oracle DG 无法同步问题的解决过程
  • Python堆栈实现:从基础到高并发系统的核心技术
  • 模拟实现python的sklearn库中的Bunch类以及 load_iris 功能
  • 20250727让飞凌OK3576-C开发板在Rockchip的原厂Android14下通过耳机播音
  • 两个函数的卷积
  • Node.js特训专栏-配置与环境部署:20.PM2进程守护与负载均衡
  • 以使命为帆,结业是重新出发的号角
  • 电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
  • 从0开始学linux韦东山教程Linux驱动入门实验班(6)
  • c# everthing.exe 通信
  • Android基础(一) 运行HelloWorld
  • 【java】 IntelliJ IDEA高效编程设置指南
  • 大模型算法面试笔记——常用优化器SGD,Momentum,Adagrad,RMSProp,Adam
  • Java 代理机制详解:从静态代理到动态代理,彻底掌握代理模式的原理与实战
  • 雪花算法原理深度解析
  • 【0基础PS】PS工具详解--选择工具--快速选择工具
  • 【n8n教程笔记——工作流Workflow】文本课程(第一阶段)——5.4 计算预订订单数量和总金额 (Calculating booked orders)
  • 使用Python,OpenCV,K-Means聚类查找图像中最主要的颜色
  • Unity Catalog与Apache Iceberg如何重塑Data+AI时代的企业数据架构