《NVM

您所在的位置:网站首页 spd指令实例 《NVM

《NVM

2024-07-15 23:24:16| 来源: 网络整理| 查看: 265

4.12 Fused Operations 融合操作

融合操作通过“fusing”把两个简单的命令融合一起来支持一个更复杂的命令。协议规定这个特性是可选的;如果支持此特性,需要在Figure 247 Identity Controller数据结构的FUSES字段域中表明。

 

 另外在Identity Namespace数据结构中,也有Atomic Operations特性(第6.4章节)配合。

 

在一个融合操作中,要求如下:

这两个命令必须作为一个原子单元按顺序执行。对于controller的表现来说,应该是在这两个命令中间不能执行其他操作。 在任何一个命令遇到错误时,这个融合操作就结束了。如果这个序列中的第一个命令失败,那么第二个命令应该被中止掉。如果这个序列中的第二个命令失败,那么第一个命令的completion状态是序列特定的。 如果用到了LBA,两个命令操作的LBA范围必须是相同的。如果两个LBA范围不一致,命令应该被中止,返回 Invalid Field in Command 状态。 这两个命令必须相互挨着依次插入到同一个SQ中。如果第一个命令位于SQ中的最后一个slot槽,那么第二个命令必须位于这个SQ的作为环绕部分的第一个slot槽。对于PCIe链路来说,SQ尾门铃指针更新必须表明两个命令的门铃更新作为一个整体都更新。 中止融合操作,主机必须分别的为每个命令提交中止命令。 controller为每个命令都发送CQE。

具体某个命令是否归属于融合操作的一部分,它在命令 Dword 0 的融合操作(FUSE)域中表明,请参加Figure 104。这个FUSE域也表明每个命令在融合操作中是第一个命令还是第二个命令。如果FUSE域是一套非零值的集合,但controller不支持融合操作请求,那么controller应该中止命令,返回Invalid Field in Command状态。

 

6.2 Fused Operations

在下边Figure 349中定义了可用于NVM命令集的融合操作的命令序列。

 

6.2.1 比较和写

比较和写融合操作,比较Compare命令中指定逻辑块的内容与存储在指定LBA范围内数据。如果比较成功,那么使用Write命令中提供的数据更新这个LBA范围。如果Compare操作不成功,那么Write操作被中止,状态为Command Abort due to Failed Fused Command,并且这个LBA范围内的内容不被修改。如果Write操作不成功,Compare操作completion状态是unaffected(不受影响的)。

注意:在多主机环境中,为了确保Compare和Write是一个原子的,主机软件应该确保Compare和Write融合操作的操作大小不能大于ACWU/NACWU(参考6.4章节)并且Atomic Boundaries原子边界需要被重视(参考6.4.3章节)。当大于ACWU/NACWU或越过原子边界时,Controller可以中止Compare和Write融合操作,返回错误是Atomic Write Unit Exceeded。

6.3 命令顺序需求

对于所有不属于融合操作的命令,或写大小大于AWUN,每个命令的处理都是独立的实体而不参考其他命令,这里说的其他命令包括被提交到相同I/O SQ或被提交到不同I/O SQ种的命令。特别明确地,controller对检查Read或Write命令的LBA,保证命令之间的任何类型的排序,都是不负责的。例如,如果有个已提交的对LBA x的Read,也有一个已提交的对LBA x的Write,这些命令完成的先后顺序是没有保证的(或许读先完成或许写先完成)。如果这两个命令之间有顺序需求,主机软件或相关应用强制实施高于controller级别的排序。

 

7.2 命令提交和完成机制(参考性例子) 7.2.5 命令例子 7.2.5.2 执行一个融合操作【Executing a Fused Operation】

这个例子描述主机软件如何创建和执行一个融合命令,特别是对总共16KiB数据Compare和Write。在这个示例中,有两个命令被创建。第一个命令是Compare,作为CMD0提交,第二个命令是Write,作为CMD1提交。这个例子中,端到端保护未使能,每个逻辑块大小是4KiB。

为构建一个融合操作命令,主机软件利用适当的I/O SQ中接下来两个可用的相邻的命令位置。

Compare命令属性设置如下:

CMD0.CDW0.OPC 赋值为05h,对应Compare命令opcode。 CMD0.CDW0.FUSE 赋值为 01b ,表明这个命令是融合操作的第一个命令。 CMD0.CDW0.CID 赋值一个空闲的命令ID标识。 CMD0.NSID 赋值恰当的namespace ID。 如果元数据在另外的分开的buffer中,把buffer指定的位置赋值到CMD0.MPTR字段域中。 准备比较的数据的首页物理地址: 如果使用PRP,CMD0.PRP1赋值被比较数据的首页物理地址,CMD0.PRP2赋值PRP List的物理地址。PRP List展示在Figure 434中,PRP List有三项; 如果命令使用SGLs,CMD0.SGL1赋值恰当的SGL段描述符,取决于是否需要多个描述符。 CMD0.CDW10.SLBA 赋值与比较相对应的第一个LBA。注意,这个域跨Dword 11。 CMD0.CDW12.LR 赋值为0,表明controller应该运用所有可用的错误恢复手段来挽回用于比较的数据。 CMD0.CDW12.FUA 赋值为0,表明数据可以从NVM subsystem中的任意位置读,包括从易失性缓存中。 CMD0.CDW12.PRINFO 本示例不使能端到端数据保护,那么此字段赋值为0。 CMD0.CDW12.NLB 赋值为3h,表示将与4个逻辑块进行比较,每个逻辑块的大小为4KiB。 CMD0.CDW14 本示例不使能端到端数据保护,此字段赋值为0。 CMD0.CDW15 本示例不使能端到端数据保护,此字段赋值为0。

 

Write命令属性设置如下: 

CMD1.CDW0.OPC 赋值为01h,对应Write命令opcode。 CMD1.CDW0.FUSE 赋值为 10b ,表明这个命令是融合操作的第二个命令。 CMD1.CDW0.CID 赋值一个空闲的命令ID标识。 CMD1.NSID 赋值恰当的namespace ID。这个值必须与CMD0.NSID相同。 如果元数据在另外的分开的buffer中,把buffer指定的位置赋值到CMD1.MPTR字段域中。 准备要写的数据的首页物理地址: 如果使用PRP,CMD1.PRP1赋值被比较数据的首页物理地址,CMD1.PRP2赋值PRP List的物理地址,PRP List有三项; 如果命令使用SGLs,CMD1.SGL1赋值恰当的SGL段描述符,取决于是否需要多个描述符。 CMD1.CDW10.SLBA 赋值与比较相对应的第一个LBA。注意,这个域跨Dword 11。这个值必须与CMD0.CDW10.SLBA相同。 CMD1.CDW12.LR 赋值为0,表明controller应该运用所有可用的错误恢复手段来把数据写入到NVM。 CMD1.CDW12.FUA 赋值为0,表明数据可以写入到NVM subsystem中的任意位置,包括写入易失性缓存中。 CMD1.CDW12.PRINFO 本示例不使能端到端数据保护,那么此字段赋值为0。 CMD1.CDW12.NLB 赋值为3h,表示将与4个逻辑块进行比较,每个逻辑块的大小为4KiB。这个值必须与CMD0.CDW12.NLB相同。 CMD1.CDW14 本示例不使能端到端数据保护,此字段赋值为0。 CMD1.CDW15 本示例不使能端到端数据保护,此字段赋值为0。

构建完这两个命令后,主机软件(PCIe链路情况)通过写恰当的I/O SQ门铃来向controller表明这两个命令已被提交的方式,提交命令去执行。注意,写门铃必须表明这两个命令一次性都被提交。

 

附言:

如果想了解命令个字段的表达意思,请参考下边这个链接。

https://www.cnblogs.com/JamesLi/p/11446796.html 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭