Group8 测试 Power State Transitions
Test 8.1 – Autonomous Power State Transitions Enable
测试步骤
- 通过将Identify Controller Data Structure的Byte 256的Bit 0设为1,检查SSD是否支持Autonomous Power State Transitions, 如果该bit设置为0,本测试无效;
- 下发Set Feature command,enable Feature Identifier 0Ch (Autonomous Power State Transitions);
- 下发Get Feature command,检查Autonomous Power State Transitions被enabled, 同时SSD返回Autonomous Power State Transition data structure;
期望结果
- SSD返回正确的Autonomous Power State Transition data structure;
Test 8.2 – Return from Non-Operational State
Case 1: Basic Operation
测试步骤
- 通过将Identify Controller Data Structure的Byte 256的Bit 0设为1,检查SSD是否支持Autonomous Power State Transitions, 如果该bit设置为0,本测试无效;
- 下发Set Feature command,enable Feature Identifier 0Ch (Autonomous Power State Transitions);
- 下发Get Feature command,检查Autonomous Power State Transitions被enabled, 同时SSD返回Autonomous Power State Transition data structure;
- 如果SSD支持进入一个non-operational state,允许SSD在进入non-operational state前的ITPT(Idle Time Prior to Transition)时间内,保持在Idle状态时间;
- 执行Identify Power State Descriptor Data Structure, 检查NOPS(Non-Operational Power States)字段;
- 下发一个NVMe IO command(例如NVMe write)给SSD;
- 执行Identify Power State Descriptor Data Structure, 检查NOPS(Non-Operational Power States)字段;
期望结果
- SSD返回正确的Autonomous Power State Transition data structure;
- 从Host write IOSQ Tail Doorbell到write command执行完毕,SSD返回到之前的Operational power state
Case 2: Non-Operation State Admin Commands
测试步骤
- 通过将Identify Controller Data Structure的Byte 256的Bit 0设为1,检查SSD是否支持Autonomous Power State Transitions, 如果该bit设置为0,本测试无效;
- 下发Set Feature command,enable Feature Identifier 0Ch (Autonomous Power State Transitions);
- 下发Get Feature command,检查Autonomous Power State Transitions被enabled, 同时SSD返回Autonomous Power State Transition data structure;
- 如果SSD支持进入一个non-operational state,允许SSD在进入non-operational state前的ITPT(Idle Time Prior to Transition)时间内,保持在Idle状态时间;
- 针对所有该SSD支持的Admin command,下发该命令给SSD,然后执行Identify Power State Descriptor Data Structure, 检查NOPS字段;
期望结果
- SSD返回正确的Autonomous Power State Transition data structure;
- 各Admin command下发后,SSD仍然停留在non-operational state;
Test 8.3 – Autonomous Power State Transition
Case 1: Proper Structure
测试步骤
- Host发送Set Feature command,要求SSD切换到一个不支持的Power state;
- Host发送Get Feature command,将Feature ID设为 0Ch (Autonomous Power State Transitions);
期望结果
- SSD正常返回CQ;
- SSD返回的Autonomous Power State Transition data structure以及内部的各个Entry,长度正确;
- Autonomous Power State Transition data structure内部的各个Entry,内容全部为0;
Case 2 : Controller and Power State Basis
测试步骤
- Host发送Set Feature command,将Autonomous Power State Transition data structure Enable (APSTE) bit设为0;
- Host发送Get Feature command,将Feature ID设为 0Ch (Autonomous Power State Transitions);
- Host发送Set Feature command,将Autonomous Power State Transition data structure Enable (APSTE) bit设为1;
- Host发送Get Feature command,将Feature ID设为 0Ch (Autonomous Power State Transitions);
- 针对SSD支持的每一个Power state
- Host发送Set Feature command,将Autonomous Power State Transition data structure Enable (APSTE) bit设为1, 在Autonomous Power State Transition data structure该power state对应的entry中,将Idle Transition Power State (ITPS)字段设为“non-operational power state”,将Idle Time Prior to Transition (ITPT)字段设为100ms;
- 让SSD保持Idle足够长时间,使其进入该power state,Host发送Get Feature command (Power Management Feature)获取当前的power state;
- Host发送Set Feature command,将Autonomous Power State Transition data structure Enable (APSTE) bit设为1, 在Autonomous Power State Transition data structure该power state对应的entry中,将Idle Transition Power State (ITPS)字段设为“non-operational power state”,将Idle Time Prior to Transition (ITPT)字段设为0ms;
- 等待10s,Host发送Get Feature command (Power Management Feature);
期望结果
- SSD正常返回CQ;
- 当某个Power State的Autonomous Power State Transition disable时,SSD不会进行自动进行power state切换;
- 当某个Power State的Autonomous Power State Transition enable时,SSD在Idle相应时间后自动切换到对应的power state;
Case 3: Configuration
测试步骤
- 针对每个支持的non-operational power state,Host发送Set Feature command (Autonomous Power State Feature), 将Idle Transition Power State (ITPS)字段设为“non-operational power state”,将Idle Time Prior to Transition (ITPT)字段设为100ms, 并确保APSTE字段为1;
- Host发送Set Feature command (Autonomous Power State Feature), 将Idle Transition Power State (ITPS)字段设为一个”operational power state”;
期望结果
- SSD正常返回CQ;
- SSD成功进入各non-operational power state;
- 针对步骤2发送的Set Feature命令,SSD回复CQ状态为Invalid Field in command;
注:官方目前还没有确定本项目可靠的测试方法,本测试不会被包括在任何conformance测试中
Test 8.4 – Power State Entrance Latency
测试步骤
- 针对Power State Descriptor table中每一个Entry Latency (ENLAT)不为0h的power state;
- 记录所选power state的Entry Latency (ENLAT)值,和当前power state的Exit Latency (EXLAT)值;
- Host发送Set Feature command (Feature ID 02h)- power management,指定一个新的power state;
- 使SSD保持idle时间达到前一个power state的Exit Latency与所选power state Entry Latency之和;
- Host发送Get Feature command (Feature ID 02h)- power management
期望结果
- 检查步骤5返回的power state信息;
Test 8.5 – Power State Exit Latency
测试步骤
- 针对Power State Descriptor table中每一个Exit Latency (EXLAT)不为0h的power state;
- 记录所选power state的Entry Latency (ENLAT)值,和当前power state的Exit Latency (EXLAT)值;
- Host发送Set Feature command (Feature ID 02h)- power management,指定一个新的power state;
- 使SSD保持idle时间达到前一个power state的Exit Latency与所选power state Entry Latency之和;
- Host发送Get Feature command (Feature ID 02h)- power management
期望结果
- 检查步骤5返回的power state信息;
Test 8.6 – Relative Read Throughput (RRT)
测试步骤
- 记录每一个支持的power state的Relative Read Throughput;
- 针对每个power state,记录其完成100个read command的时间;
期望结果
- RRT越高的Power State,完成这100个read command时间越短;
Test 8.7 – Relative Write Throughput (RWT)
测试步骤
- 记录每一个支持的power state的Relative Write Throughput;
- 针对每个power state,记录其完成100个write command的时间;
期望结果
- RWT越高的Power State,完成这100个write command时间越短;
Test 8.8 – Host Controlled Thermal Management
Case 1: Basic Operation
测试步骤
- 记录SSD的Current Temperature;
- 设置SSD进入highest active power state;
- 发送Set Feature (Feature ID 10h, Host controlled Thermal Management),Thermal Management Temperature 1低于步骤1里记录的Current Temperature,Thermal Management Temperature 2高于步骤1里记录的Current Temperature;
- 记录SSD的Current Temperature;
- 设置SSD进入highest active power state;
- 发送Set Feature (Feature ID 10h, Host controlled Thermal Management),Thermal Management Temperature 1低于步骤4里记录的Current Temperature,Thermal Management Temperature 2高于前一个温度但低于步骤4里记录的Current Temperature;
- 记录SSD的Current Temperature;
期望结果
- 各个Set Feature command成功完成;
- 显示各个Set Feature command后的Power State
Case 2 Invalid Field
测试步骤
- 记录SSD的Current Temperature;
- 发送Set Feature (Feature ID 10h, Host controlled Thermal Management),Thermal Management Temperature 1比规定的最高温度高1度,Thermal Management Temperature 2为0xFFFF;
- 记录SSD的Current Temperature;
- 发送Set Feature (Feature ID 10h, Host controlled Thermal Management),Thermal Management Temperature 1为0xFFFF;Thermal Management Temperature 2比Minimum Thermal Management Temperature 高1度;
- 记录SSD的Current Temperature;
- 发送Set Feature (Feature ID 10h, Host controlled Thermal Management),Thermal Management Temperature 1比规定的最高温度高1度,Thermal Management Temperature 2为0x1;
- 记录SSD的Current Temperature;
- 发送Set Feature (Feature ID 10h, Host controlled Thermal Management),Thermal Management Temperature 1为0x1,Thermal Management Temperature 2比Minimum Thermal Management Temperature 高1度;
- 记录SSD的Current Temperature;
期望结果
各个Set Feature command, 均返回Invalid Field,同时Power state没有变化。