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

做视频网站许可证没经验可以做电商运营吗

做视频网站许可证,没经验可以做电商运营吗,域名有关的网站,重生做网站的小说共分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/154820.html

相关文章:

  • 国外有做塑料粒子的网站吗seo网上培训多少钱
  • 17我们一起做网站人工智能培训课程
  • 网站做的好不好看什么关键词热度分析工具
  • 网站建设如何盈利网络推广教程
  • 秦皇岛建设网站seo优化平台
  • django做网站怎样网络推广工具有哪些
  • 福州做网站费用优化设计五年级下册数学答案
  • 广德做网站设计开发体验营销策划方案
  • 有哪些网站可以卖自己做的图片哪里有网站推广优化
  • 零成本搭建自己的网站石家庄邮电职业技术学院
  • 假山制作泰州seo
  • 做网站真的可以赚的钱吗游戏推广公司
  • 怎么给网站做优化今日头条热点新闻
  • 网站建设费与网络维护费区别湖南靠谱的关键词优化哪家好
  • 做网站代码第一不windows优化大师可以卸载吗
  • 购物网站开发教程100个关键词
  • 龙岩网站建设方案seo企业推广案例
  • 厦门市建设工程质量安全协会网站b站网站推广mmm
  • 浏览器正能量网站2021今日新闻头条10条
  • 制作网站哪家好网站快速排名优化
  • 服装网站建设策划书的基本结构友情链接查询
  • 关于公司网站怎么做推广形式
  • 建设网站 备案百度应用市场app下载
  • wordpress 筛选网站推广优化方式
  • 聚思博新网站建设网络服务器是指什么
  • 做网站需要备案吗海外网站cdn加速
  • wordpress清空数据库表如何优化seo技巧
  • 哪个做网站好免费友情链接网页
  • 北京市住房和建设委员会门户网站网站建设加推广优化
  • 钱包网站开发seo是如何做优化的