Set Features

5.21 Set Features command

The Set Features command specifies the attributes of the Feature indicated.

The Set Features command uses the Data Pointer, Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14, and Command Dword 15 fields. All other command specific fields are reserved.

Figure 268: Set Features – Data Pointer

Bits

描述

127:00

Data pointer(DPTR): 该字段指定数据缓冲区的开始。 有关此字段的定义,请参见图105。 如果使用PRP,则此字段不得是指向PRP列表的指针,因为数据缓冲区的跨度不能超过一个页面边界。 如果没有数据结构用作该功能的一部分,则不使用此字段。

Figure 269: Set Features – Command Dword 10

Bits

描述

31

Save(SV): 该位指定控制器应保存属性,使该属性在所有power state和reset期间均保持不变。

控制器在图247中“Identify Controller ”数据结构的“Optional NVM Command Support ”字段的第4位中指示是否支持该位。

如果控制器无法保存“Set Feature”命令中指定的功能标识符,并且控制器接收到Save位为-1的Set Feature命令,则该命令将被中止并返回状态Feature Identifier Not Saveable

30:08

Reserved

07:00

Feature Identifier(FID):其指定属性Feature的标识符。

如果控制器支持通过Set Features命令选择UUID(请参阅图271和第8.24节),并且控制器支持为指定供应商特定的功能标识符选择UUID(请参见图271),则使用Command Dword 14 以指定UUID Index值(请参阅图270)。 如果控制器不支持通过Set Features命令选择UUID,或者控制器不支持为特定供应商的特定Feature标识符选择UUID,则command dword 14不指定UUID Index值。

Figure 270 Set Features – Command Dword 14

Bits

Description

31:07

Reserved

06:00

UUID Index: 如果此字段设置为非零值,则此字段的值是该命令使用的UUID List(请参阅图257)中UUID的索引。 如果将此字段清除为0h,则不会指定UUID index。

5.21.1 Feature Specific Information

图271定义了可以使用Set Features命令进行配置并可以通过Get Features命令进行检索的功能。图272定义了特定NVM Command Set的Features。有关各种控制器类型的强制,可选和禁止的features,请参阅第7.1节。一些Features使用一个memory buffer来配置或返回Feature的属性,而其他Features仅在command或completion queue entry中使用Dword。作为control reset操作的一部分,在power cycle和reset过程中不持久的Features值将恢复为默认值。有关Features的更多信息,包括默认值定义,可保存的值定义和当前值定义,请参阅第7.8节。

更改Features时,可能正在执行命令。更改Features后,新设置可能会,当然也可能不会应用于已经提交执行的命令。Set Features成功后提交给Submission Queue的任何命令均应使用和该Feature相关的新设置。为确保将Feature值应用于所有后续命令,主机在发出Set Features命令之前需要等待正在处理的命令完成。

如果控制器不支持某个Feature的可变值(例如,该Feature不可更改),并且处理了该Feature的Set Feature命令,则如果该命令指定的Feature值如下:

•与该Feature的现有值不同,则控制器应以Feature Not Changeable 的状态代码中止该命令;

•与该Feature的现有值相同,则控制器可以:

o成功完成该命令;要么

o使用Feature Not Changeable的状态代码中止该命令。

5.21.1.1 Arbitration(Feature Identifier 01h)

这个Feature控制命令的仲裁,可以参考第4.13章对命令仲裁的详细描述。该属性在Command Dword 11中表示。

如果一个Get Features命令是为这个Feature而提交,273中指定的属性将在该命令的completion queue entryDword 0中返回。

Figure 273: Arbitration & Command Processing – Command Dword 11

Bits

描述

31:24

High Priority Weight (HPW): 该字段定义在每个仲裁回合中可以从高优先级服务类执行的命令数。 这是一个基于0的值。

23:16

Medium Priority Weight (MPW): 该字段定义在每个仲裁回合中可以从中优先级服务类执行的命令数。 这是一个基于0的值。

15:08

Low Priority Weight (LPW) : 该字段定义在每个仲裁回合中可以从低优先级服务类执行的命令数。 这是一个基于0的值。

07:03

Reserved

02:00

Arbitration Burst(AB): 表示控制器一次可以从特定的提交队列中启动的最大命令数。 该值表示为2的幂(例如000b表示1011b表示8)。 111b表示没有限制。

5.21.1.2 Power Management (Feature Identifier 02h)

这个Feature允许主机配置功耗状态。这个属性在Command Dword 11中指定(参考图274)。

成功完成此功能的Set Features命令后,控制器应处于指定的功耗状态。 为了过渡到不可操作的功耗状态,设备可能会超出第8.4.1节中定义的针对该不可操作的功耗状态指示的功率(例如,在完成此命令时)。 如果启用,则自动功耗状态转换将从新状态继续发生。

如果为此功能提交Get Features命令,则会在该命令的completion queue entryDword 0中返回图275中描述的属性。

Figure 274: Power Management – Command Dword 11

Bits

描述

31:08

保留

07:05

Workload Hint(WH): 此字段指示期望的工作负载类型。NVM子系统可能会使用这个提示来优化性能。更多细节请参见8.4.3节。

04:00

Power State(PS): 该字段指示请求控制器转换为新power state Identify Controller数据结构中支持的power state数(NPSS)字段中所示,此power state应为控制器支持的状态。 如果不支持指定的power state,则控制器应中止命令,并应在命令中返回Invalid Field错误

Figure 275: Power Management – Completion Queue Entry Dword 0

Bits

描述

31:08

保留

07:05

Workload Hint(WH): 此字段指示期望的工作负载类型。NVM子系统可能会使用这个提示来优化性能。更多细节请参见8.4.3节。

04:00

Power State(PS):这个字段表示controller当前的power state,或者控制器正在向某个power state转变。

5.21.1.3 LBA Range Type(Feature Identifier 03h),(Optional)

此功能表示指定namespaceLBA range的类型和属性。 如果处理了多个此Set Features命令,则仅保留来自最近成功命令的信息(即,后续命令替换先前命令提供的信息)。

Feature Identifier设置为03hNSID字段设置为FFFFFFFFhSet Features命令应中止,并返回命令状态Invalid Field

 LBA Range Type feature使用Command Dword 11,并在图278中指示的数据结构中指定类型和属性信息。该数据结构大小为4,096字节,并且在物理上应是连续的。 如果为此功能提交了Get Features命令,则在完成队列条目的Dword 0中返回图277中指定的属性,并在该命令的数据缓冲区中返回图278中指定的LBA Range Type数据结构。

Figure 276:LBA Range Type – Command Dword 11

Bits

描述

31:06

保留

05:00

Number of LBA Ranges (NUM): 该字段指定此命令中指定的LBA范围数。 这是一个基于0的值。 该字段仅用于Set Features命令,而对于该Feature的Get Features命令将被忽略。

Figure 277:LBA Range Type – Completion Queue Entry Dword 0

Bits

描述

31:06

保留

05:00

Number of LBA Ranges(NUM): 该字段指示在数据缓冲区中为该命令返回的有效LBA范围的数量(请参见图278)。 这是一个基于0的值。

278中定义了LBA Range Type数据结构中的每个条目。条目的数目表示为命令参数,条目的最大数目为64。不需要控制器对此数据结构中的字段执行验证检查。 LBA范围不应重叠,并且可以按任何顺序列出(例如,不需要按LBA进行排序)。如果控制器检查LBA范围重叠,并且控制器检测到LBA范围重叠,则控制器应返回Overlapping错误。

对于Get Features命令,控制器可以将LBA Range Type数据结构中所有未使用的条目清零。对于Set Features命令,控制器应忽略LBA Range Type数据结构中所有未使用的条目。

如果namespace的大小或namespaceLBA格式更改,则指定的LBA范围可能不代表NVM中的预期位置。进行此类更改后,主机应确保指定了预期的LBA

此功能的默认值应将Number of LBA Ranges字段清除为0h(即存在一个LBA Range),并初始化LBA Range Type数据结构以包含单个条目,其中包含:

•Type字段清除为0h

•Attributes字段设置为1h

•Starting LBA字段清除为0h

•Number of Logical Blocks字段设置为指示namespaceLBA的数量;

•GUID字段清除为0h,或设置为一个全局唯一标识符。

Figure 278: LBA Range Type – Data Structure Entry

Bytes

描述

00

Type(Type):表示LBA range的类型。列出如下:

Value

Description

0h

General Purpose

1h

Filesystem

2h

RAID

3h

Cache

4h

Page/swap file

5h to 7Fh

Reserved

70h to FFh

Vendor Specific

01

Attributes:表示LBA range的属性,每个bit表示一个属性。

Bits

Description

0

如果设为1,指定LBA range会被覆写;如果清为0,该区域则不能被覆写

1

如果设为1,指定LBA range需要在OS/EFI/BIOS中被隐藏;如果清为0,该区域需要在OS/EFI/BIOS中可见。

2 to 7

保留

15:02

保留

23:16

Starting LBA(SLBA):该字段指定属于此LBA range的第一个逻辑块的64-bit逻辑块地址。

31:24

Number of Logical Block(NLB):该字段指定属于此LBA range的逻辑块数目。这个基于0值(例:某block的值为0h)

47:32

Unique Identifier(GUID):该字段包含供主机使用的全局唯一标识符,该标识符唯一地指定此LBA范围的类型。 可以定义众所周知的类型并将其发布在NVM Express网站上。

63:48

保留

5.21.1.4 Temperature Threshold (Feature Identifier 04h)

控制器可以在SMART /Health信息日志中报告多达9个温度值(即,Composite TemperatureTemperature Sensor1Temperature Sensor8;请参见图194)。与每个实施的Temperature Sensor相关联的是温度超过阈值和温度低于阈值。当温度大于或等于其相应的高温阈值或小于或等于其相应的低温阈值时,SMART /Health Information Log中的“Critical Warning”字段的第一位(请参阅第5.14.1.2节)为设置为1。这可能会触发异步事件。

应当为Composite Temperature实现超温阈值功能。如果在Identify Controller数据结构中报告了非零的Warning Composite Temperature阈值(WCTEMP)字段值,则应为“Composite Temperature”实施低温阈值功能(请参见图247)。对于所有已实现的Temperature Sensor(即,报告Temperature Sensor字段的所有非零值),均应实施超温阈值低温阈值功能。

如果WCTEMP非零,则“Composite Temperature”的超温阈值功能的默认值是Identify Controller数据结构中Warning Composite Temperature阈值(WCTEMP)字段中的值;否则,默认值为特定实现。Composite Temperature的低温阈值功能的默认值是特定实现的。所有已实现的Temperature Sensor的超温阈值的默认值为FFFFh。所有已实现的Temperature Sensor的低温阈值的默认值为0h

如果为此功能提交了Get Features命令,则命令Dword 11选择的温度阈值将在该命令的完成队列条目的Dword 0中返回。

Figure 279: Temperature Threshold – Command Dword 11

Bits

描述

31:22

Reserved

21:20

Threshold Type Select(THSEL): 此字段选择由Set Features命令修改的阈值类型,并由Get Features命令返回其阈值。

Value

Description

00b

Over Temperature Threshold

01b

Under Temperature Threshold

10b to 11b

Reserved

19:16

Threshold Temperature Select(TMPSEL):此字段选择被Set Features命令修改阈值的温度,并由Get Features命令返回其阈值。

Value

Description

0h

Composite Temperature

1h

Temperature Sensor 1

2h

Temperature Sensor 2

3h

Temperature Sensor 3

4h

Temperature Sensor 4

5h

Temperature Sensor 5

6h

Temperature Sensor 6

7h

Temperature Sensor 7

8h

Temperature Sensor 8

9h to Eh

Reserved

Fh

所有在Set Feature命令中实现的temperature sensors,Get Features命令保留

15:00

Temperature Threshold(TMTH):表示temperature senor和指定阈值类型的阈值

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值