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

东莞网站建设 餐饮惠州人才网招聘网官网

东莞网站建设 餐饮,惠州人才网招聘网官网,零基础学广告设计,wordpress 获取缩略图路径它分为两部分,这里是第一部分。 NVM Express(NVMe)是一种高性能、可扩展的接口协议,用于通过PCI express(PCIe)总线,实现主机软件与NVM设备之间的通信。目前,由于NVMe SSD相比于SATA…

它分为两部分,这里是第一部分。
NVM Express(NVMe)是一种高性能、可扩展的接口协议,用于通过PCI express(PCIe)总线,实现主机软件与NVM设备之间的通信。目前,由于NVMe SSD相比于SATA SSD具有更高的吞吐量、更快的访问速度和更低的功耗,已经被广泛应用于各种计算领域和存储系统。

NVMe队列

NVMe协议采用成对的提交队列(Submission Queue,SQ)和完成队列(Completion Queue,CQ)机制。SQ用于存放提交命令,而CQ则用于存放完成信息。队列状态信息通过门铃寄存器(Door Bell,DB)来检测。这两个队列采用了环形队列结构,队列可以映射到任何PCIe可访问的内存中,通常放在主机侧内存。对于提交队列,主机端是生产者,NVMe SSD是消费者。完成队列的情况刚好相反。因此SQ Tail指针和CQ Head指针由主机更新,而其他两个指针由NVMe控制器更新。NVMe的队列结构如图1所示。
在这里插入图片描述
图1 队列示意图
NVMe队列的深度是固定的,通过Tail和Head来分别指向队列的首尾位置,队列实际可用的大小是队列大小减1,当Head条目指针等于Tail条目指针时,队列为空。当Head条目指针比Tail条目指针多一个时,队列为满。
NVMe协议中根据命令类型将队列分为了Admin队列和I/O队列,Admin队列用来缓存管理Admin命令,如获取SSD属性、创建I/O队列等。而I/O队列用来缓存管理I/O命令,如读、写、识别等。在一个系统中只能有一对Admin SQ/CQ,但可以存在多对IO SQ/CQ。Admin SQ/CQ仅用来进行Admin命令的交互,I/O SQ/CQ仅用来进行I/O命令的交互。对于多核系统来说,每个核内虽然只有1个I/O CQ,但是可以存在多个I/O SQ,如图2所示。
在这里插入图片描述
图2 NVME 多队列示意图
由于Host端可能存在多个流水线,多队列的设计可以让系统的性能最大化。同时,可以通过对不同的队列设置不同的优先级,来保证高优先级队列的命令更快完成。NVMe协议中规定Admin SQ/CQ的队列深度最大可以支持4096(4K),I/O SQ/CQ的队列深度最大可以支持65536(64K)。在一个实际设计中,SQ的个数和深度的设置可以根据项目需求和硬件资源进行配置。队列深度的设置主要和系统中队列消费者和生产者之间的速率有关。

NVMe分层结构

NVMe协议栈结构分为应用层和传输层两个层次。在应用层中实现NVMe命令生成、队列管理和流程控制,而传输层则借助PCIe协议进行实现。PCIe协议分为三层,即事务层、数据链路层和物理层。事务层负责将数据传输请求和响应打包成事务进行传输,数据链路层则负责数据传输的可靠性和流控制,通过链路层控制器(Link Layer Controller, LLC)实现。物理层则负责物理传输,包括电信号的发射和接收、时序控制和线路管理等。其分层结构图如图3所示。首先,在应用层生成NVMe命令传输至事务层。其次,在事务层会对上层传输的数据添加首部和校验,封装成TLP(Transaction Level Packet)传输至数据链路层。然后,在数据链路层会对TLP添加序列号和校验,封装成DLLP。最后,在物理层对数据包进行编码和并转串处理后,通过SerDes(Serializer/Deserializer)将数据发送至PCIe链路中。
在这里插入图片描述
图3 NVMe 分层结构示意图
由于NVMe协议是基于PCIe协议实现的,下面通过在PCIe拓扑结构中介绍NVMe协议中的SQ、CQ和DB的位置,以及数据在Host和NVMe SSD之间的传输流程。NVMe SSD在PCIe拓扑结构中的位置如图4所示。
在这里插入图片描述
图4 PCIe拓扑结构图
PCIe的拓扑结构由三部分组成,根联合体(Root Complex, RC)、PCIe交换器(PCIe Switch)和端点(Endpoint, EP)。根联合体位于拓扑结构的根部,最靠近CPU。端点设备位于PCIe的端末。交换机位于根联合体和端点设备之间。PCIe使用串行链路连接,一个链路的两端只能有两个设备。因此PCIe需要通过PCIe Switch扩展PCIe链路后,才能连接多个EP设备。在NVMe存储结构中,NVMe SSD也作为PCIe的一个EP端挂载在RC上。
NVMe协议中的SQ和CQ位于Host内存中,主机在初始化时根据队列的个数和深度在主机内存开辟出相应的内存空间,来存放SQ、CQ命令。DB寄存器位于NVMe SSD中,且被映射到BAR(Base Address Register)空间中,Host可以通过访问BAR空间来更新DB寄存器的值。
当Host需要向NVMe SSD发送命令时,首先将命令存放在主机内存开辟的SQ区域中,其次通过访问BAR空间的DB寄存器来告诉NVMe SSD到主机端内存区域取走待执行的命令。待命令执行完成后,NVMe SSD向主机内存的CQ区域写入完成命令。

http://www.dtcms.com/a/534444.html

相关文章:

  • 网站发布和管理系统工作室主题网站
  • 电子商务网站设计总结建设部网站白蚁文件
  • 九江网站设计国内知名设计网站
  • 网站建设误区凡科轻站
  • 哪些网站可以做设计方案潍坊网站定制 优帮云
  • 如何创办一家自己的公司关键词排名优化系统
  • 响应式网络网站源码php大型网站开发视频
  • ps做网站效果图app软件开发公司员工守则
  • 网站专用app网站软件推荐
  • 绍兴柯桥建设局网站律师个人网站有用吗
  • 聊城建网站哪家好抖音代运营是什么意思
  • 哪里有培训网页设计福州短视频seo网站
  • 商家建设网站的好处wordpress菜单保存不
  • 深圳企业贷款中介seo网站设计招聘
  • 怎么用html做百度首页网站wordpress 无响应
  • 网站后台无法设置在网上做软件挣钱的网站
  • 网站建设流程机构用html5做网站的优点
  • 高端网站建设创新e福州下载app
  • 网站建设生意怎么样wordpress space
  • 网站制作动态转静态怎么做可以做围棋题的网站
  • 建设产品网站课程如何做介绍一门课程的网站
  • 在360网站做公告怎么弄企业网站开发注册
  • 中英文网站用同域名WordPress留言板插件使用
  • 基于asp的医疗网站开发想做网络推广如何去做
  • 搜狗网站网页编辑实训报告
  • 王者荣耀网站建设的步骤如何安装wordpress ftp
  • 定制企业网站有哪些聊城公司网站建设
  • 个人可以做哪些有意思的网站wordpress主题模板视频网站模板
  • 公司营销型网站公司wordpress 访问不了
  • 做非法网站怎么盈利泊头哪里有做网站的