NVMe管理命令为何不用SGL?-2

在IO数据传输中,是否选择SGL可以根据自身场景的需要。SGL提供的是一种高效且灵活的方式来描述非连续的内存区域,这对于现代高性能存储系统至关重要,尤其是在处理大数据块或者随机小I/O操作时具有明显优势:

  1. 高效的数据传输:SGL允许在一个I/O操作中传输多个不连续的数据段,避免了对单一连续内存区域的严格要求。这意味着即使数据分布在内存的不同位置,也能一次性发送或接收,减少了总线事务次数,从而提升了数据吞吐量和降低了延迟。

  2. 内存利用率:在许多应用场合,数据可能分布在不同的内存碎片中,SGL可以直接指向这些碎片,无需额外的数据复制和重组,提高了内存使用的灵活性和效率。

  3. 大型文件处理:对于处理大型文件、数据库或虚拟机环境中的I/O请求,SGL允许一次I/O操作覆盖多个页,大大简化了操作系统层面的管理和调度工作。

  4. 减少CPU开销:通过在硬件级别支持SGL,CPU不必逐一处理每个独立的小型I/O请求,进一步减轻了系统的CPU负担,有利于提高整体性能。

  5. 适应多核架构和并行化:在多核心和并行处理环境中,SGL使得数据可以从不同内存区域并发传输,更好地利用现代处理器和总线架构的特性。

总的来说,SGL在任何需要传输非连续内存数据,或者需要优化处理多个小I/O请求合并为单个大I/O操作以减少总线和控制器开销的场景下都有其必要性。尤其在高性能计算、云计算、大数据分析等领域,SGL能够提升NVMe SSD的I/O效率和系统整体性能。

但是,在IO数据传输中表现这么优秀的SGL,为啥不能用于admin command?

对于SGL,它允许在单个I/O操作中传输多个非连续内存区域的数据,提供了极大的灵活性。然而,对于管理命令(Admin Commands),它们的目的通常是为了配置和控制NVMe设备的内部行为,而非传输大量的数据块。管理命令涉及的信息主要包括设备状态查询、模式设置、固件升级等操作,所需的数据量通常较小且往往是连续的。

图片

根据小编的理解,SGL不常用于NVMe Admin Commands,大致有这些原因:

  1. 数据量较小:大部分管理命令所携带的数据很有限,完全可以使用单个或少量连续的PRP条目来描述,而无需使用更为复杂的SGL结构。

  2. 硬件限制:NVMe标准起初并未规定在Admin Commands中必须支持SGL,某些NVMe控制器可能在硬件层面只支持PRP而不支持SGL用于Admin Commands,以简化硬件设计和实现。

  3. 复杂性增加:引入SGL到Admin Commands的处理逻辑会增加驱动和固件的复杂性,因为原本这部分逻辑并不需要处理复杂的内存地址列表,而只需简单地将少量连续的物理地址传递给控制器。

  4. 性能影响不大:由于管理命令执行频率相对较低,即使使用SGL带来的潜在性能提升也不会显著影响整体系统的性能表现。

综上所述,对于NVMe管理命令,使用SGL并不会带来明显的性能优势,反而可能增加不必要的复杂性和实现成本,因此在NVMe规范和实践中,通常选择使用更为简单和直接的PRP来描述所需的内存地址。不过,随着NVMe标准的不断发展,未来可能会出现针对特定高级场景而支持SGL在Admin Commands中使用的扩展。

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 存储系统如何规避数据静默错误?

  • PCIe P2P DMA全景解读

  • 深度解读NVMe计算存储协议

  • 对于超低延迟SSD,IO调度器已经过时了吗?

  • 浅析CXL P2P DMA加速数据传输的原理

  • HDD回暖于2024,与SSD决战于2028

  • SSD固态硬盘的黄金原则:抱最高的希望,做最坏的打算

  • PCIe 6.0生态业内进展分析总结

  • 详细解读QLC SSD无效编程问题

  • NVMe SSD IO压力导致宕机案例解读

  • 浅析PCIe 6.0功能更新与实现的挑战

  • 过度加大SSD内部并发何尝不是一种伤害

  • FIO测试参数与linux内核IO栈的关联分析

  • PCIe surprise down异常与DPC功能分析

  • 过度加大SSD内部并发何尝不是一种伤害

  • NVMe over CXL技术如何加速Host与SSD数据传输?

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • SSD在AI发展中的关键作用:从高速缓存到数据湖

  • 浅析不同NAND架构的差异与影响

  • SSD基础架构与NAND IO并发问题探讨

  • 字节跳动ZNS SSD应用案例解析

  • SSD数据在写入NAND之前为何要随机化?

  • 深度剖析:DMA对PCIe数据传输性能的影响

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 如何通过优化Read-Retry机制降低SSD读延迟?

  • 关于硬盘质量大数据分析的思考

  • 存储系统性能优化中IOMMU的作用是什么?

  • 全景解析SSD IO QoS性能优化

  • NVMe IO数据传输如何选择PRP or SGL?

  • 浅析nvme原子写的应用场景

  • 多维度深入剖析QLC SSD硬件延迟的来源

  • 浅析PCIe链路LTSSM状态机

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

课题学习(二十)----阅读《近钻头井斜动态测量重力加速度信号提取方法研究》论文

摘要:利用加速度计进行近钻头井斜动态测量时, 钻具的高速旋转、 井下强振动、强冲击环境给重力加速度测量带来极大干扰,如何从干扰噪声中有效提取重力加速度信号对于提高井斜角和工具面角的测量精度至关重要。 根据重力加速度径向和切向分量为…

Altium Designer 22 性能优化

目录 AD22 使用起来很卡,完全受不了,卡到我的快捷鼠标宏都无法使用,来试着优化一下它。 每点完一步,都需要点击应用,否则不下心关掉了会很难受 打开右上角齿轮进入设置,取消勾选这几个勾: 接…

java spring 03 启动细节

spring启动类ClassPathXmlApplicationContext,读取xml文件并且创建bean public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, Nullable ApplicationContext parent)throws BeansException {super(parent);setConfigLocations(confi…

android开发框架mvp,Android面试心得必备技能储备详解

面试复习路线图 我之前复习,大多都在20点以后,因为晚上比较能集中注意力,制定一个学习计划,切勿零散的复习,最好是系统的复习,才能胜却在握 主要内容如下: BAT的面试题目相关性能优化相关相关…

算法设计.

文章目录 1. 贪心算法:只看当前1.1 零钱兑换问题:力扣322 2. 活动选择问题3. 动态规划3.1 不同路径:3.2 0-1背包问题3.3 完全背包问题3.4 零钱兑换-动态规划 4. 最长公共字串--动态规划5. 最长公共子序列6. 最长递增子序列7. 打家劫舍8. 全排…

04. Nginx入门-Nginx WEB模块

测试环境 此处使用的yum安装的Nginx路径。 此处域名均在本地配置hosts。 主配置文件 路径:/etc/nginx/nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connection…

如何使用宝塔面板部署MySQL数据库,并结合内网穿透实现固定公网地址远程连接

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.1 开放局域网端口3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几…

Mybatis-Plus——04,自动填充时间(新注解)

自动填充(新注解) 一、数据库添加两个字段二、实体类字段属性上增加注解三、编写填充器四、查看结果4.1 插入结果4.2 修改结果 五、同步修改5.1实体类属性改成 INSERT_UPDATE5.2 在填充器的方法这里加上 updateTime5.3 查看结果————————创作不易…

视频号爆爽短剧推广,一键搬运,傻瓜式操作,日入2000+

首先,我想问下有没有人尝试过短剧推广,是否感觉最近短剧推广变得困难,或者收益甚微。这可能是因为许多人都在抖音、快手等大型平台上进行短剧推广,竞争非常激烈,就像在争夺一块有限的蛋糕,自然难以获得满意…

一键生成超好用的简历设计模板

对于缺乏工作经验和职业规划的应届生而言,使用简历设计平台,辅助我们完成简历分区、排版和美化流程,早就成为简历设计环节的 “潜规则”。这里我们挑选了 5 个能够实现免费下载、一键生成的简历设计平台,供大家参考借鉴。 即时设…

洛谷P1888 三角函数

输入一组勾股数 a,b,c(abc),用分数格式输出其较小锐角的正弦值。(要求约分。) 输入格式 一行,包含三个正整数,即勾股数a,b,c(无大小顺序)。 输出格式 一行&#xff0…

H5双人五子棋小游戏

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html> <html> <…

Android开发者必看,我的移动开发春季历程

热修复介绍 1.开发流程 当项目出现紧急bug时&#xff0c;传统的开发流程是发布新版本&#xff0c;引导用户覆盖安装。抛开平台审核上线的时间不说&#xff0c;一天重复下载安装至少两次的用户体验是很差的。而热修复的出现完美解决了这个问题&#xff0c;用户在收到服务器推送…

安装完NGINX 已经正常启动,用IP访问显示的是Welcome to CentOS?

下头Nginx 以前配置服务器难道配置完nginx默认访问80端口进入不应该是欢迎来到nginx吗&#xff0c;nono变了 nginx变了 现在默认访问就是Welcome to CentOS 你的配置没有问题 只要你能访问 就行 直接改成你的项目地址就ok了

设计模式——2_3 迭代器(Iterator)

生活就像一颗巧克力&#xff0c;你永远不知道下一颗是什么味道 ——《阿甘正传》 文章目录 定义图纸一个例子&#xff1a;假如你的供应商提供了不同类型的返回值单独的遍历流程实现 碎碎念如果读写同时进行会发生啥&#xff1f;外部迭代和内部迭代迭代器和其他模式迭代器和组合…

vue 之 Quill编辑器封装

安装 npm install vue-quill-editor --save <template><div><el-upload:action"uploadUrl":before-upload"handleBeforeUpload":on-success"handleUploadSuccess":on-error"handleUploadError"name"file":sh…

字节同事问我:我的Postman为什么连不了数据库?

postman本身没有数据库连接功能&#xff0c;所以用到了node.js中的xmysql实现Rest API的生成&#xff0c;利用postman进行请求&#xff0c;获取需要的数据&#xff0c;来做数据准备或断言。 1 安装 安装node.js&#xff1a;要求版本大于等于7.6 首先保证你的环境上有node.js…

JavaScript观察者模式:实现对象间的事件通信!

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Minio容器化部署并整合SpringBoot

1、启动minio容器 docker run -p 9000:9000 -p 9090:9090 --name minio -d --restartalways -e MINIO_ACCESS_KEYminio -e MINIO_SECRET_KEYminio -v /usr/local/minio/data:/data -v /usr/local/minio/config:/root/.minio minio/minio server /data --console-addr…

循环队列:一道使数据结构萌新知道什么是“愁滋味“的题目

这破题目肝了我一天半才搞明白,也正是因为这道题目,我才豁然明白了李煜所说的"剪不断,理还乱...别是一般滋味在心头"到底是什么"滋味".在完全搞明白之前,真的是放有放不下,理也理不清... 但是理解之后你会发现,嘛い---,也就那么个回事嘛O(∩_∩)O 目录 1…