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

NVMe IP现状扫盲

SSD优势

与机械硬盘(Hard Disk Driver, HDD)相比,基于Flash的SSD具有更快的数据随机访问速度、更快的传输速率和更低的功耗优势,已经被广泛应用于各种计算领域和存储系统。SSD最初遵循为HDD设计的现有主机接口协议,例如串行高级技术附件(Serial Advanced Technology Attachment, SATA)和串行附加SCSI(SAS)协议,随着SSD的不断发展,这些接口协议已成为关键的性能瓶颈。为了解决这一问题,存储供应商制定了一种新的接口规范,即NVMe协议。

NVMe协议必要性

NVMe协议是专为PCIe接口的SSD而设计的,旨在充分利用SSD内部的并行性实现可扩展性、高吞吐量和低延迟的目标。相较于SATA协议,NVMe协议具有以下几点优势:管理更高效、功能性更强、I/O效率更高、读写延迟和功耗更低。由于NVMe SSD与HDD和SATA/SAS SSD相比具有卓越的性能优势,云平台和数据中心已经开始为大量I/O密集型应用程序提供NVMe SSD。随着NVMe协议的不断完善,推出了NVMe-oF(NVMe over Fabrics)协议。NVMe-oF协议进一步扩展了NVMe协议在网络传输中的应用,该协议定义了使用多种通用的传输层协议来进行数据的传输,包括FC、InfiniBand、RoCE V2、iWARP和TCP。随着协议的不断完善,越来越多的系统和应用采用NVMe存储接口的SSD,这种技术将成为未来存储领域的主流。

NVMe研究进展

目前,一些国内外学者将NVMe SSD应用于嵌入式存储设备。例如Opsero公司的Jeff Johnson在Zynq上挂载NVMe SSD,借助Linux系统中的NVMe驱动程序实现了对NVMe SSD的控制,并在Zynq-7z030芯片上进行了测试,写速度为84.7 MB/s。西安电子科技大学的王琳琳基于Zynq完成了NVMe SSD的读写控制,通过在的PS端运行Linux系统,在PL端通过PCIe硬核IP连接NVMe SSD,实现了135 MB/s的写入速度和143 MB/s的读取速度。
将NVMe SSD应用于嵌入式存储设备相较于SATA SSD可以有效的提高系统的传输性能,但在嵌入式操作系统中,通过NVMe驱动程序来控制NVMe SSD,其性能与嵌入式CPU的主频以及软件协议栈的执行流程密切相关。NVMe Host端的命令需要经过文件系统层、块设备层、驱动层等多个层次的处理,同时NVMe协议栈中的队列设计、乱序执行、完成信息检查等流程也十分复杂,加之嵌入式处理器主频较低,使得其响应速度较慢,无法充分发挥NVMe SSD的速度优势。若想要在嵌入式系统中充分发挥NVMe协议的高速读写性能,一方面可以通过优化软件执行流程,来提高传输性能,但嵌入式处理器的性能较低,性能提升空间有限。另一方面可以通过硬件逻辑的方式来实现软件驱动程序。相较于软件的顺序执行,硬件电路可以通过并行执行来大幅度提高系统性能,这种方式更能充分发挥出NVMe协议高度并行的特点。
相关视频感兴趣者,请搜B站用户名: 专注与守望
或链接:
https://space.bilibili.com/585132944/upload/video

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

相关文章:

  • 5G-A时代与p2p
  • 基于FPGA的DES加解密系统verilog实现,包含testbench和开发板硬件测试
  • 基于生产-消费模式,使用Channel进行文件传输(Tcp方式)
  • tortoisegit 使用rebase修改历史提交
  • Python----目标检测(《用于精确目标检测和语义分割的丰富特征层次结构》和R-CNN)
  • Ansible 进阶 - Roles 与 Inventory 的高效组织
  • 极简以太彩光网络解决方案4.0正式发布,“彩光”重构园区网络极简之道
  • 国芯思辰| 霍尔电流传感器AH811为蓄电池负载检测系统安全护航
  • TortoiseSVN账号切换
  • 2025年05月28日Github流行趋势
  • 精益数据分析(91/126):商业模式与阶段匹配的指标体系构建
  • 篇章五 数据结构——链表(一)
  • 一文清晰理解目标检测指标计算
  • 【MySQL】索引下推减少回表次数
  • Artificial Analysis2025年Q1人工智能发展六大趋势总结
  • DeepSeek模型高级应用:提示工程与Few-shot学习实战指南
  • Android高级开发第三篇 - JNI异常处理与线程安全编程
  • 企业级应用狂潮:从Spotify到LinkedIn的Llama实战手册
  • 高效管理 Python 项目的 UV 工具指南
  • QT中子线程触发主线程弹窗并阻塞等待用户响应
  • 初识vue3(vue简介,环境配置,setup语法糖)
  • HarmonyOS NEXT~鸿蒙开发工具CodeGenie:AI驱动的开发效率革命
  • LeetCode-链表操作题目
  • 【ARM】MDK浏览信息的生成对于构建时间的影响
  • Python模块中__all__变量失效问题深度解析
  • py爬虫的话,selenium是不是能完全取代requests?
  • docker B站学习
  • SpringBoot高校宿舍信息管理系统小程序
  • 深度解析 Dockerfile 配置:构建高效轻量的FastAPI 应用镜像
  • ICASSP2025丨融合语音停顿信息与语言模型的阿尔兹海默病检测