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

做视频网站许可证免费b站推广短视频

做视频网站许可证,免费b站推广短视频,个人网站可以做资讯小说类,同一域名可以做相同网站吗共分2部分,这里是第2部分。 NVMe数据结构 NVMe协议中规定每个提交命令的大小为64字节,完成命令大小为16字节,NVMe命令分为Admin和IO两类,NVMe的数据块组织方式有PRP和SGL两种。提交命令的格式如图5所示。 图5 提交命令数据格 N…

共分2部分,这里是第2部分。

NVMe数据结构

NVMe协议中规定每个提交命令的大小为64字节,完成命令大小为16字节,NVMe命令分为Admin和IO两类,NVMe的数据块组织方式有PRP和SGL两种。提交命令的格式如图5所示。
在这里插入图片描述
图5 提交命令数据格
NVMe提交命令的数据格式属性如下:
(1)Opcode(OPC):命令操作码,不同操作命令的Opcode都有相应的值;
(2)Fused Operation(FUSE):融合操作,可选字段,用于将两个命令融合为一条命令;
(3)PRP or SGL for Data Transfer(PSDT):PRP或SGL数据传输;
(4)Command Identifier(CID):命令ID;
(5)Namespace Identifier(NSID):命名空间ID;
(6)Metadata Pointer(MPTR):元数据指针;
(7)PRP Entry 1/2:物理区域页项;
(8)SGL Entry:散列聚合列表。

Admin命令集定义了可以提交到Admin SQ的命令。NVM命令集定义了可以提交到IO SQ的命令。表1和表2分别列出了Admin命令集和NVM命令集中的常用命令、操作码和简要的功能描述。
表1 Admin命令集
在这里插入图片描述
表2 NVM命令集在这里插入图片描述
接下来分析NVMe协议中的寻址方式。在NVMe协议中定义了两种寻址方式,PRP和SGL。通过PRP和SGL来记录Host内存中物理页的位置。NVMe命令中的PRP和SGL字段用来向NVMe SSD传递将要读写数据在内存中的位置。NVMe协议中规定Admin命令只能通过PRP告诉NVMe SSD命令在内存中物理地址。而SGL主要是在NVMeoF中使用,因此本设计将采用PRP寻址方式。

Host可以通过配置NVMe Controller的CC.MPS寄存器来设定物理页的大小,物理页的大小可设定的范围是4KB~128MB之间。物理页对应的地址记录在PRP Entry中,PRP Entry的数据格式。PRP Entry的数据格式由物理页起始地址和页偏移地址两部分组成,如图6所示。由于物理地址只能是四字节对齐,因此将偏移地址的最低2bit置为0。此外,图6中n的取值与设置的物理页大小有关,例如,将物理页大小设置为4KB,则n=11,通过偏移地址[11:2]来表示在一个内存页内的偏移地址。
在这里插入图片描述
图6 NVMe之PRP数据格式

一个PRP Entry只能指向一个物理页。NVMe协议中只定义了两个PRP Entry,当传输数据量大小大于两个内存页大小时,PRP Entry2将不指向物理页,而是指向由若干个PRP组成的PRP List。如图7所示,NVMe命令中的PRP1指向第一个内存页,PRP2指向一个新的PRP链表的首地址。如果需要指定更大的内存空间可以通过每一个PRP List的最后一个PRP Entry指向新的PRP List。
在这里插入图片描述
图7 NVMe命令中的 原理示意图

完成命令的数据格式如图8所示。
在这里插入图片描述
图8 NVMe完成命令格式
NVMe完成队列的命令格式属性如下:

(1)SQ Header pointer:SQ头指针;
(2)SQ Identifier:SQ ID;
(3)Command Identifier:命令ID;
(4)P:相位标志phase tag,完成队列没有head/tail交互,通过相位标志实现完成队列项的释放;
(5)Status Field:状态域。

4 NVMe工作流程
NVMe协议中的Admin命令和IO命令执行流程相同,主要通过SQ、CQ和DB寄存器三个关键部件之间的相互协作来完成。NVMe的命令处理流程分为了8个步骤,如图9所示。

在这里插入图片描述
图9 NVMe简介完成命令处理流程

Host和SSD之间通过更新DB(DoorBell)寄存器的值来实现队列信息的交互。每个SQ和CQ都拥有一个Head寄存器和Tail寄存器。对于SQ而言,Host是生产者,负责向队列发送提交命令,SSD是消费者,负责执行命令,因此Host负责更新Tail DB寄存器,SSD负责更新Head DB寄存器。对于CQ而言,SSD是生产者,负责向队列发送完成命令,Host是消费者,负责检查完成信息,因此SSD负责更新Tail DB寄存器,Host负责更新Head DB寄存器。而DB寄存器都存在于SSD内,且只能进行写操作,不能进行读操作。因此NVMe协议中规定SSD通过完成信息向Host反馈CQ Tail和SQ Head寄存器的值。

NVMe命令处理的步骤如下:

(1)主机提交新的NVMe命令。主机生成新的NVMe命令并添加ID号后,将其存放在SQ Tail指针指向的内存空间中;
(2)主机更新SQ Tail DB寄存器。主机通过Memory Write事务更新SQ Tail DB寄存器的值,以通知NVMe SSD控制器去主机端读取SQ中缓存的命令;
(3)NVMe SSD读取命令。NVMe SSD控制器检测到SQ Tail DB寄存器的变化后,通过Memory Read事务去读取SQ内缓存的命令,这个过程,NVMe SSD进行突发读取,一次读取多条命令,等待取命令完成后更新SQ Head DB寄存器的值;
(4)NVMe SSD执行命令。NVMe SSD控制器根据内部的仲裁机制来执行读取到的NVMe命令,其执行过程并不是按照队列的先后顺序来执行命令;
(5)NVMe SSD控制器将完成命令写入CQ。NVMe SSD控制器将NVMe命令的执行结果写入主机的CQ内存区域中,完成命令包括NVMe命令中的ID号和SQ Head DB寄存器的值;
(6)NVMe SSD通知主机检查完成命令。NVMe SSD控制器通过Memory Write事务向主机发出MSI-X中断信号,告知主机检查CQ中的完成信息。在本设计中,取消了完成队列的设计,而采用FPGA的并行处理方式,通过主机端实时监测CQ信息,以节省硬件资源和提高NVMe命令处理速度;
(7)主机检查完成命令。主机从CQ内存中读取完成信息,并根据状态字段判断NVMe命令的执行情况。若命令已经执行完成,主机会释放该ID号对应的提交命令空间,以便给新的命令使用;
(8)主机更新CQ Head DB寄存器。主机通过Memory Write事务更新CQ Head DB寄存器的值,以通知NVMe SSD控制器CQ中的完成信息已经检查。
对相关NVM安e设计感兴趣的可以看本博客,或视频见B站 用户: 专注与守望

http://www.dtcms.com/wzjs/469762.html

相关文章:

  • 网络建站步骤百度推广是做什么的
  • 随州企业网站建设网络推广方法怎么样
  • 做牙厂的网站优化清理大师
  • 社区论坛自助建站网江阴网站优化公司
  • 做seo网站的步骤百度搜索关键词排名人工优化
  • 广州网站优化实战百度广告
  • 做网站找什么公司工作google国际版
  • 东莞做网站seo优化什么是关键词广告
  • 珠海摥园网站建设网络营销策划怎么写
  • 余姚网站建设设计广州网站设计
  • 现在流行的网站制作工具网络推广的方法有多选题
  • 怎么做网贷网站百度客户端下载
  • 做交易网站需要用到的软件有哪些口碑营销的例子
  • 金科科技 做网站一个新手如何推销产品
  • 附近的cad制图培训班seo推广哪家公司好
  • 备案网站名称怎么改网站运营和维护
  • 版纳网站建设成都新闻今日最新消息
  • wordpress文章调用代码seo引擎优化培训
  • 网站托管运营外链互换平台
  • 湖南省住房建设厅网站seo网站推广优化
  • 东莞腾宇科技网站建设巩义网络推广
  • 东莞网站优化东莞seo最专业的东莞网络公司小红孩营销开封网络推广公司
  • 机关网站建设费入什么科目免费自动推广手机软件
  • 那个b2b网站可以做外贸历史权重查询
  • 西藏建设网站小程序开发公司
  • 做推广类门户网站怎么样数据分析培训机构哪家好
  • 仙桃做网站的公司有哪些在线建站平台
  • java 现代网站开发网络推广自学
  • 专业 网站设计品牌策划公司排名
  • flash网站做seo优化好不好最新的网络营销的案例