NVME_IDENTIFY_CONTROLLER_DATA 구조체(nvme.h)
컨트롤러 기능, 기능, 명령 집합 특성 및 전원 상태 설명자를 나타내는 값을 포함합니다.
구문
typedef struct {
USHORT VID;
USHORT SSVID;
UCHAR SN[20];
UCHAR MN[40];
UCHAR FR[8];
UCHAR RAB;
UCHAR IEEE[3];
struct {
UCHAR MultiPCIePorts : 1;
UCHAR MultiControllers : 1;
UCHAR SRIOV : 1;
UCHAR ANAR : 1;
UCHAR Reserved : 4;
} CMIC;
UCHAR MDTS;
USHORT CNTLID;
ULONG VER;
ULONG RTD3R;
ULONG RTD3E;
struct {
ULONG Reserved0 : 8;
ULONG NamespaceAttributeChanged : 1;
ULONG FirmwareActivation : 1;
ULONG Reserved1 : 1;
ULONG AsymmetricAccessChanged : 1;
ULONG PredictableLatencyAggregateLogChanged : 1;
ULONG LbaStatusChanged : 1;
ULONG EnduranceGroupAggregateLogChanged : 1;
ULONG Reserved2 : 12;
ULONG ZoneInformation : 1;
ULONG Reserved3 : 4;
} OAES;
struct {
ULONG HostIdentifier128Bit : 1;
ULONG NOPSPMode : 1;
ULONG NVMSets : 1;
ULONG ReadRecoveryLevels : 1;
ULONG EnduranceGroups : 1;
ULONG PredictableLatencyMode : 1;
ULONG TBKAS : 1;
ULONG NamespaceGranularity : 1;
ULONG SQAssociations : 1;
ULONG UUIDList : 1;
ULONG Reserved0 : 22;
} CTRATT;
struct {
USHORT ReadRecoveryLevel0 : 1;
USHORT ReadRecoveryLevel1 : 1;
USHORT ReadRecoveryLevel2 : 1;
USHORT ReadRecoveryLevel3 : 1;
USHORT ReadRecoveryLevel4 : 1;
USHORT ReadRecoveryLevel5 : 1;
USHORT ReadRecoveryLevel6 : 1;
USHORT ReadRecoveryLevel7 : 1;
USHORT ReadRecoveryLevel8 : 1;
USHORT ReadRecoveryLevel9 : 1;
USHORT ReadRecoveryLevel10 : 1;
USHORT ReadRecoveryLevel11 : 1;
USHORT ReadRecoveryLevel12 : 1;
USHORT ReadRecoveryLevel13 : 1;
USHORT ReadRecoveryLevel14 : 1;
USHORT ReadRecoveryLevel15 : 1;
} RRLS;
UCHAR Reserved0[9];
UCHAR CNTRLTYPE;
UCHAR FGUID[16];
USHORT CRDT1;
USHORT CRDT2;
USHORT CRDT3;
UCHAR Reserved0_1[106];
UCHAR ReservedForManagement[16];
struct {
USHORT SecurityCommands : 1;
USHORT FormatNVM : 1;
USHORT FirmwareCommands : 1;
USHORT NamespaceCommands : 1;
USHORT DeviceSelfTest : 1;
USHORT Directives : 1;
USHORT NVMeMICommands : 1;
USHORT VirtualizationMgmt : 1;
USHORT DoorBellBufferConfig : 1;
USHORT GetLBAStatus : 1;
USHORT Reserved : 6;
} OACS;
UCHAR ACL;
UCHAR AERL;
struct {
UCHAR Slot1ReadOnly : 1;
UCHAR SlotCount : 3;
UCHAR ActivationWithoutReset : 1;
UCHAR Reserved : 3;
} FRMW;
struct {
UCHAR SmartPagePerNamespace : 1;
UCHAR CommandEffectsLog : 1;
UCHAR LogPageExtendedData : 1;
UCHAR TelemetrySupport : 1;
UCHAR PersistentEventLog : 1;
UCHAR Reserved0 : 1;
UCHAR TelemetryDataArea4 : 1;
UCHAR Reserved1 : 1;
} LPA;
UCHAR ELPE;
UCHAR NPSS;
struct {
UCHAR CommandFormatInSpec : 1;
UCHAR Reserved : 7;
} AVSCC;
struct {
UCHAR Supported : 1;
UCHAR Reserved : 7;
} APSTA;
USHORT WCTEMP;
USHORT CCTEMP;
USHORT MTFA;
ULONG HMPRE;
ULONG HMMIN;
UCHAR TNVMCAP[16];
UCHAR UNVMCAP[16];
struct {
ULONG RPMBUnitCount : 3;
ULONG AuthenticationMethod : 3;
ULONG Reserved0 : 10;
ULONG TotalSize : 8;
ULONG AccessSize : 8;
} RPMBS;
USHORT EDSTT;
UCHAR DSTO;
UCHAR FWUG;
USHORT KAS;
struct {
USHORT Supported : 1;
USHORT Reserved : 15;
} HCTMA;
USHORT MNTMT;
USHORT MXTMT;
struct {
ULONG CryptoErase : 1;
ULONG BlockErase : 1;
ULONG Overwrite : 1;
ULONG Reserved : 26;
ULONG NDI : 1;
ULONG NODMMAS : 2;
} SANICAP;
ULONG HMMINDS;
USHORT HMMAXD;
USHORT NSETIDMAX;
USHORT ENDGIDMAX;
UCHAR ANATT;
struct {
UCHAR OptimizedState : 1;
UCHAR NonOptimizedState : 1;
UCHAR InaccessibleState : 1;
UCHAR PersistentLossState : 1;
UCHAR ChangeState : 1;
UCHAR Reserved : 1;
UCHAR StaticANAGRPID : 1;
UCHAR SupportNonZeroANAGRPID : 1;
} ANACAP;
ULONG ANAGRPMAX;
ULONG NANAGRPID;
ULONG PELS;
UCHAR Reserved1[156];
struct {
UCHAR RequiredEntrySize : 4;
UCHAR MaxEntrySize : 4;
} SQES;
struct {
UCHAR RequiredEntrySize : 4;
UCHAR MaxEntrySize : 4;
} CQES;
USHORT MAXCMD;
ULONG NN;
struct {
USHORT Compare : 1;
USHORT WriteUncorrectable : 1;
USHORT DatasetManagement : 1;
USHORT WriteZeroes : 1;
USHORT FeatureField : 1;
USHORT Reservations : 1;
USHORT Timestamp : 1;
USHORT Verify : 1;
USHORT Reserved : 8;
} ONCS;
struct {
USHORT CompareAndWrite : 1;
USHORT Reserved : 15;
} FUSES;
struct {
UCHAR FormatApplyToAll : 1;
UCHAR SecureEraseApplyToAll : 1;
UCHAR CryptographicEraseSupported : 1;
UCHAR FormatSupportNSIDAllF : 1;
UCHAR Reserved : 4;
} FNA;
struct {
UCHAR Present : 1;
UCHAR FlushBehavior : 2;
UCHAR Reserved : 5;
} VWC;
USHORT AWUN;
USHORT AWUPF;
struct {
UCHAR CommandFormatInSpec : 1;
UCHAR Reserved : 7;
} NVSCC;
struct {
UCHAR WriteProtect : 1;
UCHAR UntilPowerCycle : 1;
UCHAR Permanent : 1;
UCHAR Reserved : 5;
} NWPC;
USHORT ACWU;
UCHAR Reserved4[2];
struct {
ULONG SGLSupported : 2;
ULONG KeyedSGLData : 1;
ULONG Reserved0 : 13;
ULONG BitBucketDescrSupported : 1;
ULONG ByteAlignedContiguousPhysicalBuffer : 1;
ULONG SGLLengthLargerThanDataLength : 1;
ULONG MPTRSGLDescriptor : 1;
ULONG AddressFieldSGLDataBlock : 1;
ULONG TransportSGLData : 1;
ULONG Reserved1 : 10;
} SGLS;
ULONG MNAN;
UCHAR Reserved6[224];
UCHAR SUBNQN[256];
UCHAR Reserved7[768];
UCHAR Reserved8[256];
NVME_POWER_STATE_DESC PDS[32];
UCHAR VS[1024];
} NVME_IDENTIFY_CONTROLLER_DATA, *PNVME_IDENTIFY_CONTROLLER_DATA;
멤버
VID
주변 장치 구성 요소 상호 연결 - PCI-SIG(Special Interest Group)에서 할당한 회사 공급업체 식별자를 포함합니다.
SSVID
하위 시스템에 대해 PCI-SIG에서 할당한 회사 공급업체 식별자를 포함합니다.
SN[20]
공급업체에서 ASCII 문자열로 할당한 NVM 하위 시스템의 일련 번호를 포함합니다.
MN[40]
공급업체에서 ASCII 문자열로 할당한 NVM 하위 시스템의 모델 번호를 포함합니다.
FR[8]
NVM 하위 시스템에 대한 현재 활성 펌웨어 수정 버전을 포함합니다.
로그 페이지 가져오기 명령을 사용하여 검색할 수 있는 NVME_FIRMWARE_SLOT_INFO_LOG 동일한 펌웨어 수정 정보입니다.
RAB
권장 중재 버스트 크기를 포함합니다.
IEEE[3]
컨트롤러 공급업체에 대한 OUI(조직 고유 식별자)를 포함합니다.
OUI는 에서 http://standards.ieee.org/develop/regauth/oui/public.html등록할 수 있는 유효한 IEEE/RAC 할당 식별자입니다.
CMIC
컨트롤러 및 NVM 하위 시스템의 다중 경로 I/O 및 네임스페이스 공유 기능을 지정하는 컨트롤러 다중 경로 I/O 및 CMIC(네임스페이스 공유 기능) 구조입니다.
CMIC.MultiPCIePorts
CMIC 구조의 비트 0입니다.
이 값을 로 1
설정하면 NVM 하위 시스템에 두 개 이상의 물리적 PCI Express 포트가 포함될 수 있습니다. 값이 로 지워 0
지면 NVM 하위 시스템에는 단일 PCI Express 포트가 포함됩니다.
CMIC.MultiControllers
CMIC 구조의 비트 1입니다.
이 값을 로 1
설정하면 NVM 하위 시스템에 두 개 이상의 컨트롤러가 포함될 수 있습니다. 값이 로 지워 0
지면 NVM 하위 시스템에는 단일 컨트롤러가 포함됩니다.
CMIC.SRIOV
CMIC 구조의 비트 2입니다.
이 값을 로 1
설정하면 컨트롤러가 SR-IOV(단일 루트 I/O 가상화) 가상 함수와 연결됩니다. 값이 로 지워 0
지면 컨트롤러가 PCI 함수와 연결됩니다.
CMIC.ANAR
CMIC.Reserved
CMIC 구조의 비트 3:7은 예약되어 있습니다.
MDTS
호스트와 컨트롤러 간의 최대 데이터 전송 크기를 나타냅니다.
호스트는 이 전송 크기를 초과하는 명령을 제출해서는 안 됩니다. 전송 크기를 초과하는 명령이 제출되면 NVME_STATUS_INVALID_FIELD_IN_COMMAND 상태 명령이 중단됩니다.
이 필드의 값은 컨트롤러 기능 구조의 MPSMIN 필드에 지정된 최소 메모리 페이지 크기의 단위이며 2(2^n)의 전원으로 보고됩니다. 값은 0h
전송 크기에 대한 제한이 없음을 나타냅니다. 제한에는 논리 블록 데이터와 인터리브되는 경우 메타데이터가 포함됩니다.
SGL 비트 버킷 설명자가 지원되는 경우 해당 길이는 명령이 대상 데이터 버퍼의 최대 데이터 전송 크기를 초과하는지 확인하는 데 포함됩니다. 원본 데이터 버퍼의 길이는 최대 데이터 전송 크기 계산에 포함되지 않습니다.
CNTLID
컨트롤러와 연결된 NVM 하위 시스템 고유 컨트롤러 식별자를 포함합니다.
VER
NVME_CONTROLLER_REGISTERS 구조체의 VS 필드에 정의된 버전 레지스터에 보고된 값을 포함합니다.
NVMe 사양 버전 1.2 이상을 준수하는 구현은 이 필드에 0이 아닌 값을 보고합니다.
RTD3R
RTD3(런타임 D3)에서 다시 시작될 때의 일반적인 대기 시간(마이크로초)을 나타냅니다.
NVMe 사양 버전 1.2 이상을 준수하는 구현은 이 필드에 0이 아닌 값을 보고합니다.
RTD3E
RTD3(런타임 D3)을 입력하는 일반적인 대기 시간(마이크로초)을 나타냅니다.
NVMe 사양 버전 1.2 이상을 준수하는 구현은 이 필드에 0이 아닌 값을 보고합니다.
OAES
선택적 비동기 이벤트가 컨트롤러에서 지원되는지 여부를 나타내는 필드를 포함하는 OAES(선택적 비동기 이벤트 지원) 구조체입니다.
컨트롤러는 호스트 소프트웨어에서 사용하도록 설정하기 전에 선택적 비동기 이벤트를 보내지 않아야 합니다.
OAES.Reserved0
OAES 구조체의 비트 10:31이 예약되어 있습니다.
OAES.NamespaceAttributeChanged
OAES 구조체의 비트 8입니다.
이 값을 로 1
설정하면 컨트롤러는 네임스페이스 특성 변경 이벤트 전송을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 네임스페이스 특성 변경된 이벤트를 지원하지 않습니다.
OAES.FirmwareActivation
OAES 구조체의 비트 9입니다.
이 값을 로 1
설정하면 컨트롤러는 펌웨어 활성화 이벤트 전송을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 펌웨어 활성화 이벤트를 지원하지 않습니다.
OAES.Reserved1
OAES 구조체의 비트 0:7이 예약되어 있습니다.
OAES.AsymmetricAccessChanged
OAES.PredictableLatencyAggregateLogChanged
OAES.LbaStatusChanged
OAES.EnduranceGroupAggregateLogChanged
OAES.Reserved2
OAES.ZoneInformation
OAES.Reserved3
CTRATT
컨트롤러 특성 정보를 포함하는 CTRATT(컨트롤러 특성) 구조체입니다.
CTRATT.HostIdentifier128Bit
128비트 호스트 식별자를 포함하는 CTRATT 구조체의 비트 32입니다.
CTRATT.NOPSPMode
NOPS(비작동 전원 상태)에 대한 정보를 포함하는 CTRATT 구조체의 비트 31입니다.
CTRATT.NVMSets
NVM 명령 집합에 대한 정보를 포함하는 CTRATT 구조체의 비트 30입니다.
CTRATT.ReadRecoveryLevels
읽기 복구 수준에 대한 정보를 포함하는 CTRATT 구조체의 비트 29입니다.
CTRATT.EnduranceGroups
지구력 그룹 수준에 대한 정보를 포함하는 CTRATT 구조의 비트 28.
CTRATT.PredictableLatencyMode
CTRATT.TBKAS
CTRATT.NamespaceGranularity
CTRATT.SQAssociations
CTRATT.UUIDList
CTRATT.Reserved0
CTRATT 구조체의 비트 0:27이 예약되어 있습니다.
RRLS
RRLS.ReadRecoveryLevel0
RRLS.ReadRecoveryLevel1
RRLS.ReadRecoveryLevel2
RRLS.ReadRecoveryLevel3
RRLS.ReadRecoveryLevel4
RRLS.ReadRecoveryLevel5
RRLS.ReadRecoveryLevel6
RRLS.ReadRecoveryLevel7
RRLS.ReadRecoveryLevel8
RRLS.ReadRecoveryLevel9
RRLS.ReadRecoveryLevel10
RRLS.ReadRecoveryLevel11
RRLS.ReadRecoveryLevel12
RRLS.ReadRecoveryLevel13
RRLS.ReadRecoveryLevel14
RRLS.ReadRecoveryLevel15
Reserved0[9]
140바이트의 예약된 필드입니다.
CNTRLTYPE
FGUID[16]
CRDT1
CRDT2
CRDT3
Reserved0_1[106]
ReservedForManagement[16]
NVMe 관리용으로 예약되었습니다.
OACS
컨트롤러에서 지원하는 선택적 관리 명령을 나타내는 필드를 포함하는 OACS(선택적 관리 명령 지원) 구조체입니다.
OACS.SecurityCommands
OACS 구조의 비트 0은 컨트롤러가 보안 보내기 및 보안 수신 명령을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 보안 보내기 및 보안 수신 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 보안 보내기 및 보안 수신 명령을 지원하지 않습니다.
OACS.FormatNVM
OACS 구조의 비트 1은 컨트롤러가 NVM 형식 명령을 지원하는지 여부를 나타냅니다.
이 값이 로 1
설정되면 컨트롤러는 NVM 형식 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 NVM 형식 명령을 지원하지 않습니다.
OACS.FirmwareCommands
OACS 구조의 비트 2는 컨트롤러가 펌웨어 커밋 및 펌웨어 이미지 다운로드 명령을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 펌웨어 커밋 및 펌웨어 이미지 다운로드 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 펌웨어 커밋 및 펌웨어 이미지 다운로드 명령을 지원하지 않습니다.
OACS.NamespaceCommands
OACS 구조의 비트 3은 컨트롤러가 네임스페이스 관리 및 네임스페이스 첨부 파일 명령을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 네임스페이스 관리 및 네임스페이스 첨부 파일 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 네임스페이스 관리 및 네임스페이스 첨부 파일 명령을 지원하지 않습니다.
OACS.DeviceSelfTest
OACS 구조의 비트 4는 컨트롤러가 디바이스 자체 테스트 명령을 지원하는지 여부를 나타냅니다.
OACS.Directives
OACS 구조의 비트 5는 컨트롤러가 지시문 보내기 및 지시문 수신 명령을 지원하는지 여부를 나타냅니다.
OACS.NVMeMICommands
OACS.VirtualizationMgmt
OACS.DoorBellBufferConfig
OACS.GetLBAStatus
OACS.Reserved
비트 6:15: 예약되어 있습니다.
ACL
컨트롤러에서 지원하는 동시 미해결 중단 명령의 최대 수를 나타냅니다.
0의 기반 값입니다. 구현은 최소 4개의 미해결 중단 명령을 동시에 지원해야 합니다.
AERL
컨트롤러에서 지원하는 동시 미해결 비동기 이벤트 요청 명령의 최대 수를 나타냅니다.
0의 기반 값입니다. 구현은 최소 4개의 미해결 비동기 이벤트 요청 명령을 동시에 지원해야 합니다.
FRMW
펌웨어 업데이트와 관련된 기능을 나타내는 필드를 포함하는 FRMW(펌웨어 업데이트) 구조체입니다.
FRMW.Slot1ReadOnly
FRMW 구조의 비트 0은 첫 번째 펌웨어 슬롯(슬롯 1)이 읽기 전용인지 여부를 나타냅니다.
이 값을 로 1
설정하면 첫 번째 펌웨어 슬롯(슬롯 1)이 읽기 전용입니다. 이 값이 로 0
지워지면 첫 번째 펌웨어 슬롯(슬롯 1)이 읽기/쓰기가 됩니다. 구현은 기준 읽기 전용 펌웨어 이미지를 선택할 수 있습니다.
FRMW.SlotCount
FRMW 구조의 비트 1:3은 컨트롤러가 지원하는 펌웨어 슬롯 수를 나타냅니다.
이 필드는 하나 이상의 펌웨어 슬롯이 지원되고 최대 7개까지 지원됨을 나타내는 1에서 7 사이의 값을 지정합니다. 이는 펌웨어 슬롯 1~7에 해당합니다.
FRMW.ActivationWithoutReset
FRMW 구조의 비트 4는 컨트롤러가 재설정 없이 펌웨어 활성화를 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 다시 설정하지 않고 펌웨어 활성화를 지원합니다. 이 값이 로 0
지워지면 컨트롤러에서 펌웨어를 활성화하려면 다시 설정해야 합니다.
FRMW.Reserved
FRMW 구조체의 비트 5:7이 예약되어 있습니다.
LPA
로그 페이지 가져오기 명령을 사용하여 액세스하는 로그 페이지의 선택적 특성을 나타내는 필드를 포함하는 LPA( 로그 페이지 특성) 구조체입니다.
LPA.SmartPagePerNamespace
LPA 구조의 비트 0은 컨트롤러가 네임스페이스별로 SMART/Health 정보 로그 페이지를 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 네임스페이스별로 SMART/Health 정보 로그 페이지를 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 네임스페이스별로 SMART/Health 정보 로그 페이지를 지원하지 않습니다.
LPA.CommandEffectsLog
LPA 구조의 비트 1은 컨트롤러가 명령 효과 로그 페이지를 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 명령 효과 로그 페이지를 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 명령 효과 로그 페이지를 지원하지 않습니다.
LPA.LogPageExtendedData
LPA 구조의 비트 2는 컨트롤러가 로그 페이지 확장 데이터를 지원하는지 여부를 나타냅니다.
LPA.TelemetrySupport
LPA 구조의 비트 3은 컨트롤러가 원격 분석 지원을 지원하는지 여부를 나타냅니다.
LPA.PersistentEventLog
LPA.Reserved0
LPA.TelemetryDataArea4
LPA.Reserved1
ELPE
컨트롤러에 의해 저장되는 오류 정보 로그 항목의 수를 나타냅니다. 이 필드는 0의 기반 값입니다.
NPSS
컨트롤러에서 지원하는 NVM Express 전원 상태의 수를 나타냅니다. 0의 기반 값입니다.
전원 상태는 전원 상태 0부터 순차적으로 번호가 매겨집니다. 컨트롤러는 하나 이상의 전원 상태(예: 전원 상태 0)를 지원해야 하며 총 32개에 대해 최대 31개의 추가 전원 상태를 지원할 수 있습니다.
AVSCC
관리 공급업체별 명령 처리에 대한 구성 설정을 나타내는 필드를 포함하는 AVSCC(관리 공급업체별 명령 구성) 구조체입니다.
AVSCC.CommandFormatInSpec
AVSCC 구조의 비트 0은 모든 관리 공급업체별 명령이 NVME_COMMAND 구조에 정의된 명령 형식을 사용하는지 여부를 나타냅니다.
이 값이 로 0
지워지면 모든 관리 공급업체별 명령의 형식이 공급업체별임을 나타냅니다.
이 값을 로 1
설정하면 모든 관리 공급업체별 명령이 NVME_COMMAND 구조를 사용하게 됩니다.
AVSCC.Reserved
AVSCC 구조체의 비트 1:7은 예약되어 있습니다.
APSTA
자율 전원 상태 전환 기능의 특성을 나타내는 필드를 포함하는 APSTA( 자치 전원 상태 전환 특성) 구조체입니다.
APSTA.Supported
APSTA 구조의 비트 0은 컨트롤러가 자율 전원 상태 전환을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 자율 전원 상태 전환을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 자율 전원 상태 전환을 지원하지 않습니다.
APSTA.Reserved
APSTA 구조체의 비트 1:7은 예약되어 있습니다.
WCTEMP
컨트롤러 작업이 계속되는 동안 과열 상태를 나타내는 최소 복합 온도 필드 값( SMART/Health Information 로그에 보고됨)을 나타냅니다.
즉각적인 수정이 권장됩니다(예: 추가 냉각 또는 워크로드 감소). 플랫폼은 이 값보다 낮은 복합 온도를 유지하기 위해 노력해야 합니다.
이 필드의 0h
값은 컨트롤러가 경고 온도 임계값을 보고하지 않음을 나타냅니다. NVMe 사양 버전 1.2 이상을 준수하는 구현은 이 필드에 0이 아닌 값을 보고해야 합니다. 구현에서 이 필드의 0157h
값을 보고하는 것이 좋습니다.
CCTEMP
중요한 과열 상태를 나타내는 최소 복합 온도 필드 값([SMART /Health Information](ns-nvme-nvme_health_info_log.md 로그)에 보고됨)을 나타냅니다. 예를 들어 지속적인 정상 작동, 데이터 손실 가능성, 자동 디바이스 종료, 극단적인 성능 제한 또는 영구적 손상을 방지할 수 있는 조건입니다.
이 필드의 0h
값은 컨트롤러에서 중요한 온도 임계값을 보고하지 않음을 나타냅니다. NVMe 사양 버전 1.2 이상을 준수하는 구현은 이 필드에 0이 아닌 값을 보고해야 합니다.
MTFA
컨트롤러가 펌웨어 이미지를 활성화하기 위해 일시적으로 명령 처리를 중지하는 최대 시간을 나타냅니다.
컨트롤러가 재설정 없이 펌웨어 활성화를 지원하는 경우 이 필드는 유효합니다.
MFTA 값은 100밀리초 단위로 지정됩니다. 값은 0h
최대 시간이 정의되지 않음을 나타냅니다.
HMPRE
호스트 메모리 버퍼 기능에 호스트가 할당해야 하는 기본 크기를 4KB 단위로 나타냅니다.
이 값은 HMMIN(호스트 메모리 버퍼 최소 크기)보다 크거나 같아야 합니다.
이 필드가 0이 아닌 경우 호스트 메모리 버퍼 기능이 지원됩니다. 이 값을 로 0h
지우면 호스트 메모리 버퍼 기능이 지원되지 않습니다.
HMMIN
호스트 메모리 버퍼 기능에 호스트가 할당해야 하는 최소 크기를 4KB 단위로 나타냅니다.
이 값이 로 0
지워지면 호스트는 HMPRE 값까지 가능한 모든 양의 호스트 메모리를 할당하도록 요청됩니다.
TNVMCAP[16]
NVM 하위 시스템의 총 NVM 용량(바이트)을 나타냅니다.
이 필드는 네임스페이스 관리 및 네임스페이스 첨부 파일 명령이 지원되는 경우 지원됩니다.
UNVMCAP[16]
NVM 하위 시스템의 할당되지 않은 NVM 용량(바이트)을 나타냅니다.
이 필드는 네임스페이스 관리 및 네임스페이스 첨부 파일 명령이 지원되는 경우 지원됩니다.
RPMBS
컨트롤러가 하나 이상의 RPMB(재생 보호 메모리 블록) 및 관련 기능을 지원하는지 여부를 나타내는 필드를 포함하는 RPMBS(재생 보호 메모리 블록 지원) 구조체입니다.
RPMBS.RPMBUnitCount
컨트롤러가 지원하는 RPMB 대상 수를 나타냅니다.
지원되는 모든(보호된 메모리 블록) PMB 대상은 RPMBS 필드에 정의된 것과 동일한 기능을 갖습니다. 값은 0h
컨트롤러가 RPMB를 지원하지 않음을 나타냅니다. 이 값이 0이 아닌 경우 컨트롤러는 보안 보내기 및 보안 수신 명령을 지원합니다.
RPMBS.AuthenticationMethod
컨트롤러의 모든 RPMB(보호된 메모리 블록)에 액세스하는 데 사용되는 인증 방법을 나타냅니다. 이 필드의 값은 다음과 같습니다.
값 | 정의 |
---|---|
000b | HMAC SHA-256 |
001b-111b | 예약됨 |
RPMBS.Reserved0
예약된 필드입니다.
RPMBS.TotalSize
컨트롤러에서 지원되는 각 RPMB의 총 크기를 128KB 단위로 나타냅니다. 0의 기반 값입니다. 값은 0h
128KB의 크기를 나타냅니다.
RPMBS.AccessSize
512B 단위로 이 컨트롤러에 대한 보안 보내기 또는 보안 수신 명령으로 RPMB 액세스당 읽거나 쓸 수 있는 크기를 나타냅니다.
0의 기반 값입니다. 값은 0h
512B의 크기를 나타냅니다.
EDSTT
EDSTT(확장 디바이스 자체 테스트 시간)를 나타냅니다.
DSTO
디바이스 DSTO(자체 테스트 옵션)를 나타냅니다.
FWUG
FWUG(펌웨어 업데이트 세분성)를 나타냅니다.
KAS
KAS(Keep Alive Support)를 나타냅니다.
HCTMA
HCTMA(호스트 제어 열 관리 특성) 구조체입니다.
HCTMA.Supported
호스트 제어 열 관리 특성이 지원되는지 여부를 나타냅니다.
HCTMA.Reserved
이 HCTMA 구조체 필드는 예약되어 있습니다.
MNTMT
최소 열 관리 온도(MNTMT)
MXTMT
최대 열 관리 온도(MXTMT)
SANICAP
SANICAP(기능 삭제)
SANICAP.CryptoErase
컨트롤러에서 암호화 삭제 삭제를 지원합니다.
SANICAP.BlockErase
컨트롤러가 차단 삭제 삭제를 지원합니다.
SANICAP.Overwrite
컨트롤러에서 Santize 덮어쓰기를 지원합니다.
SANICAP.Reserved
SANICAP.NDI
SANICAP.NODMMAS
HMMINDS
HMMAXD
NSETIDMAX
NVM Set Identifier Maximum
ENDGIDMAX
ANATT
ANACAP
ANACAP.OptimizedState
ANACAP.NonOptimizedState
ANACAP.InaccessibleState
ANACAP.PersistentLossState
ANACAP.ChangeState
ANACAP.Reserved
ANACAP.StaticANAGRPID
ANACAP.SupportNonZeroANAGRPID
ANAGRPMAX
NANAGRPID
PELS
Reserved1[156]
예약된 필드입니다.
SQES
NVM 명령 집합을 사용할 때 필수 및 최대 제출 큐 항목 크기를 나타내는 필드를 포함하는 SQES(제출 큐 항목 크기) 구조체입니다.
SQES.RequiredEntrySize
SQES 구조의 비트 0:3은 NVM 명령 집합을 사용할 때 필요한 제출 큐 항목 크기를 나타냅니다.
사용할 수 있는 최소 항목 크기입니다. 값은 바이트 단위이며 2(2^n)의 전력으로 보고됩니다. 필요한 값은 6이며 64바이트에 해당합니다.
SQES.MaxEntrySize
SQES 구조의 비트 4:7은 NVM 명령 집합을 사용할 때 최대 제출 큐 항목 크기를 나타냅니다.
이 값은 SQES보다 크거나 같습니다 . RequiredEntrySize 값입니다. 값은 바이트 단위이며 2(2^n)의 전력으로 보고됩니다. 권장 값은 표준 NVM 명령 집합 SQ 항목 크기 64바이트에 해당하는 6입니다. 독점 확장을 구현하는 컨트롤러는 더 큰 값을 지원할 수 있습니다.
CQES
NVM 명령 집합을 사용할 때 필수 및 최대 완료 큐 항목 크기를 나타내는 필드를 포함하는 CQES(완료 큐 항목 크기) 구조체입니다.
CQES.RequiredEntrySize
CQES 구조의 비트 0:3은 NVM 명령 집합을 사용할 때 필요한 완료 큐 항목 크기를 나타냅니다.
사용할 수 있는 최소 항목 크기입니다. 값은 바이트 단위이며 2(2^n)의 전력으로 보고됩니다. 필요한 값은 4이며 16바이트에 해당합니다.
CQES.MaxEntrySize
CQES 구조의 비트 4:7은 NVM 명령 집합을 사용할 때 최대 완료 큐 항목 크기를 나타냅니다.
이 값은 필요한 CQ 항목 크기보다 크거나 같습니다. 값은 바이트 단위이며 2(2^n)의 전력으로 보고됩니다. 권장 값은 표준 NVM 명령 집합 CQ 항목 크기 16바이트에 해당하는 4입니다. 독점 확장을 구현하는 컨트롤러는 더 큰 값을 지원할 수 있습니다.
MAXCMD
NN
컨트롤러에 대해 유효한 네임스페이스의 수를 나타냅니다.
ONCS
컨트롤러에서 지원하는 선택적 NVM 명령 및 기능을 나타내는 필드를 포함하는 ONCS(선택적 NVM 명령 지원) 구조체입니다.
ONCS.Compare
ONCS 구조의 비트 0은 컨트롤러가 Compare 명령을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 Compare 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 Compare 명령을 지원하지 않습니다.
ONCS.WriteUncorrectable
ONCS 구조의 비트 1은 컨트롤러가 수정할 수 없는 쓰기 명령을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 수정할 수 없는 쓰기 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 수정할 수 없는 쓰기 명령을 지원하지 않습니다.
ONCS.DatasetManagement
ONCS 구조의 비트 2는 컨트롤러가 데이터 세트 관리 명령을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 데이터 세트 관리 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 데이터 세트 관리 명령을 지원하지 않습니다.
ONCS.WriteZeroes
ONCS 구조의 비트 3은 컨트롤러가 Write Zeroes 명령을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 Write Zeroes 명령을 지원합니다. 이 값이 로 0
지워지면 컨트롤러는 Write Zeroes 명령을 지원하지 않습니다.
ONCS.FeatureField
ONCS 구조의 비트 4는 컨트롤러가 기능 설정 명령의 저장 필드와 기능 가져오기 명령의 선택 필드를 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 기능 설정 명령의 저장 필드와 기능 가져오기 명령의 선택 필드를 지원합니다.
이 값을 로 0
지우면 컨트롤러는 기능 설정 명령의 저장 필드와 기능 가져오기 명령의 선택 필드를 지원하지 않습니다.
ONCS.Reservations
ONCS 구조의 비트 5는 컨트롤러가 예약을 지원하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 컨트롤러는 예약을 지원하고 예약과 연결된 다음 명령도 지원합니다.
- 예약 보고서
- 예약 등록
- 예약 획득
- 예약 릴리스
이 값이 로 0
지워지면 컨트롤러는 예약을 지원하지 않습니다.
ONCS.Timestamp
ONCS 구조의 비트 6은 컨트롤러가 타임스탬프(NVME_FEATURE_TIMESTAMP) 기능을 지원하는지 여부를 나타냅니다.
ONCS.Verify
ONCS.Reserved
ONCS 구조체의 비트 7:15가 예약되어 있습니다.
FUSES
컨트롤러가 지원하는 융합 작업을 나타내는 필드를 포함하는 FUSES(융합 작업 지원) 구조체입니다.
FUSES.CompareAndWrite
FUSES 구조의 비트 0은 컨트롤러가 융합 비교 및 쓰기 작업을 지원하는지 여부를 나타냅니다.
이 값이 로 0
지워지면 컨트롤러는 융합 비교 및 쓰기 작업을 지원하지 않습니다. 비교는 시퀀스의 첫 번째 명령이 됩니다.
FUSES.Reserved
FUSES 구조체의 비트 15:1이 예약되어 있습니다.
FNA
NVM 형식 명령의 특성을 나타내는 필드를 포함하는 FNA( Format NVM Attributes) 구조체입니다.
FNA.FormatApplyToAll
FNA 구조의 비트 0은 형식 작업이 모든 네임스페이스에 적용되는지 또는 특정 네임스페이스에만 적용되는지 여부를 나타냅니다.
이 값을 로 1
설정하면 모든 네임스페이스는 동일한 특성으로 구성되고 네임스페이스의 형식은 모든 네임스페이스의 형식이 됩니다.
이 값이 로 0
지워지면 컨트롤러는 네임스페이스별로 형식을 지원합니다.
FNA.SecureEraseApplyToAll
FNA 구조의 비트 1은 암호화 지우기 및 사용자 데이터 지우기 기능이 모든 네임스페이스에 적용되는지 또는 특정 네임스페이스에만 적용되는지 여부를 나타냅니다.
이 값을 로 설정 1
하면 특정 네임스페이스를 형식의 일부로 암호화 지우면 모든 네임스페이스의 암호화가 지워지고 형식의 일부로 특정 네임스페이스의 사용자 데이터가 지워지면 모든 네임스페이스의 사용자 데이터가 지워집니다.
이 값을 로 0
지우면 형식의 일부로 암호화 지우기 또는 사용자 데이터 지우기는 네임스페이스별로 수행됩니다.
FNA.CryptographicEraseSupported
FNA 구조의 비트 2는 암호화 지우기가 보안 지우기 기능의 일부로 지원되는지 여부를 나타냅니다.
이 값을 로 1
설정하면 암호화 지우기 가 지원됩니다. 이 값을 로 지우 0
면 암호화 지우기는 지원되지 않습니다.
FNA.FormatSupportNSIDAllF
FNA.Reserved
FNA 구조체의 비트 7:3이 예약되어 있습니다.
VWC
구현에서 휘발성 쓰기 캐시의 존재와 관련된 특성을 나타내는 필드를 포함하는 VWC(Volatile Write Cache) 구조체입니다.
VWC.Present
VWC 구조의 비트 0은 휘발성 쓰기 캐시가 있음을 나타냅니다.
이 값을 로 1
설정하면 휘발성 쓰기 캐시가 있고 호스트가 Flush 명령을 실행하고 NVME_FEATURE_VOLATILE_WRITE_CACHE 기능 식별자를 지정하는 기능 설정 명령을 사용하여 휘발성 쓰기 캐시를 사용할 수 있는지 여부를 제어할 수 있습니다.
이 값이 로 0
지워지면 휘발성 쓰기 캐시가 없습니다.
휘발성 쓰기 캐시가 없으면 Flush 명령이 성공적으로 완료되고 아무 효과가 없으며 NVME_FEATURE_VOLATILE_WRITE_CACHE 식별자 집합이 있는 기능 설정 명령은 NVME_STATUS_INVALID_FIELD_IN_COMMAND 상태 실패하고 NVME_FEATURE_VOLATILE_WRITE_CACHE 식별자 집합이 있는 기능 가져오기는 NVME_STATUS_INVALID_FIELD_IN_COMMAND 상태 함께 실패합니다.
VWC.FlushBehavior
VWC.Reserved
VWC 구조체의 비트 1:7이 예약되어 있습니다.
AWUN
일반 작업 중에 지원되는 네임스페이스 형식을 사용하여 모든 네임스페이스의 NVM에 원자성으로 기록되도록 보장되는 쓰기 작업의 크기를 나타냅니다. 이 필드는 논리 블록에 지정되며 0의 기반 값입니다.
특정 네임스페이스가 이 필드에 보고된 것보다 큰 크기를 보장하는 경우 이 네임스페이스 특정 크기는 네임스페이스 식별 데이터 구조의 NAWUN 필드에 보고됩니다.
쓰기 명령이 AWUN 값보다 작거나 같은 크기로 제출되는 경우 호스트는 다른 읽기 또는 쓰기 명령과 관련하여 쓰기 명령이 NVM에 원자성임을 보장합니다. 쓰기 명령이 AWUN 값보다 큰 크기로 제출되는 경우 명령 원자성이 보장되지 않습니다.
AWUN 값에는 정전으로 인한 오류를 작성할 수 있는 적용 가능성이 없습니다. 자세한 내용은 AWUPF(Atomic Write Unit Power Fail) 필드를 참조하세요.
값은 FFFFh
명령 크기가 가장 크기 때문에 모든 명령이 원자성임을 나타냅니다. 구현은 LBA(논리 블록 액세스) 크기에 따라 적절하게 조정된 최소 128KB를 지원해야 합니다.
AWUPF
전원 오류 또는 오류 조건 중에 지원되는 네임스페이스 형식으로 모든 네임스페이스에서 NVM에 원자성으로 기록되도록 보장되는 쓰기 작업의 크기를 나타냅니다. 이 필드는 논리 블록에 지정되며 0의 기반 값입니다.
특정 네임스페이스가 이 필드에 보고된 것보다 큰 크기를 보장하는 경우 이 네임스페이스 특정 크기는 네임스페이스 식별 데이터 구조의 NAWUPF 필드에 보고됩니다. AWUPF 값은 AWUN 값보다 작거나 같아야 합니다.
쓰기 명령이 AWUPF 값보다 작거나 같은 크기로 제출되는 경우 호스트는 다른 읽기 또는 쓰기 명령과 관련하여 쓰기가 NVM에 원자성임을 보장합니다. 이 크기보다 큰 쓰기 명령이 제출된 경우 명령 원자성이 보장되지 않습니다. 쓰기 크기가 AWUPF 값보다 작거나 같고 쓰기 명령이 실패하면 연결된 논리 블록에 대한 후속 읽기 명령은 이전에 성공한 쓰기 명령의 데이터를 반환합니다.
쓰기 명령이 AWUPF 값보다 큰 크기로 제출되는 경우 연결된 논리 블록의 후속 읽기에서 반환되는 데이터는 보장되지 않습니다.
NVSCC
NVM 공급업체별 명령 처리에 대한 구성 설정을 나타내는 필드를 포함하는 NVSCC(NVM 공급업체별 명령 구성) 구조체입니다.
NVSCC.CommandFormatInSpec
NVSCC 구조의 비트 0은 모든 NVM 공급업체별 명령이 그림 13에 정의된 형식을 사용하는지 여부를 나타냅니다.
이 값을 로 1
설정하면 모든 NVM 공급업체별 명령은 그림 13에 정의된 형식을 사용합니다. 이 값이 로 0
지워지면 모든 NVM 공급업체별 명령의 형식이 공급업체별임을 나타냅니다.
NVSCC.Reserved
NVSCC 구조체의 비트 1:7이 예약되어 있습니다.
NWPC
NWPC.WriteProtect
NWPC.UntilPowerCycle
NWPC.Permanent
NWPC.Reserved
ACWU
비교 및 쓰기 융합 작업에 대해 지원되는 네임스페이스 형식을 사용하여 모든 네임스페이스에서 NVM에 원자성으로 기록되도록 보장되는 쓰기 작업의 크기를 나타냅니다.
특정 네임스페이스가 이 필드에 보고된 것보다 큰 크기를 보장하는 경우 이 네임스페이스 특정 크기는 네임스페이스 식별 데이터 구조의 NACWU 필드에 보고됩니다.
이 필드는 비교 및 쓰기 융합 명령이 지원되는 경우 지원됩니다. 이 필드는 논리 블록에 지정되며 0의 기반 값입니다. 이 값보다 큰 전송 크기를 요청하는 비교 및 쓰기가 제출되면 컨트롤러는 NVME_STATUS_INVALID_FIELD_IN_COMMAND 상태 명령을 실패할 수 있습니다.
비교 및 쓰기가 지원되는 융합 명령이 아닌 경우 이 필드의 값은 입니다 0h
.
Reserved4[2]
예약된 필드입니다.
SGLS
NVM 명령 집합 및 지원되는 SGL 형식에 대해 SGL(분산 수집 Lists)이 지원되는지 여부를 지정하는 필드를 포함하는 SGLS(SGL 지원) 구조체입니다.
SGLS.SGLSupported
이 값을 로 1
설정하면 컨트롤러는 SGL 데이터 블록, SGL 세그먼트 및 SGL 마지막 세그먼트 설명자 형식을 포함하여 NVM 명령 집합에 대한 SGL을 지원합니다. 이 값을 로 0
지우면 컨트롤러는 NVM 명령 집합에 대한 SGL을 지원하지 않으며 이 필드의 다른 모든 비트는 로 지워 0
집니다.
SGLS.KeyedSGLData
SGLS.Reserved0
예약된 필드입니다.
SGLS.BitBucketDescrSupported
이 값을 로 1
설정하면 SGL 비트 버킷 설명자가 지원됩니다. 이 값을 로 0
지우면 SGL 비트 버킷 설명자가 지원되지 않습니다.
SGLS.ByteAlignedContiguousPhysicalBuffer
이 값을 로 1
설정하면 메타데이터의 바이트 정렬 연속 물리적 버퍼(그림 12의 메타데이터 포인터 필드)를 사용할 수 있습니다. 이 값이 로 0
지워지면 메타데이터의 바이트 정렬 연속 물리적 버퍼 사용이 지원되지 않습니다.
SGLS.SGLLengthLargerThanDataLength
이 값을 로 1
설정하면 컨트롤러는 전송할 데이터 양보다 큰 길이의 데이터 또는 메타데이터 SGL을 포함하는 명령을 지원합니다. 이 값이 로 0
지워지면 SGL 길이는 전송할 데이터의 양과 같습니다.
SGLS.MPTRSGLDescriptor
SGLS.AddressFieldSGLDataBlock
SGLS.TransportSGLData
SGLS.Reserved1
예약된 필드입니다.
MNAN
Reserved6[224]
바이트 704:2047은 I/O 명령 집합 특성용으로 예약되어 있습니다.
SUBNQN[256]
Reserved7[768]
Reserved8[256]
PDS[32]
32개의 전원 상태 설명자의 배열을 포함합니다. 배열의 각 멤버는 전원 상태 설명자의 특성을 나타내는 32비트 필드입니다. 이 필드의 형식은 NVME_POWER_STATE_DESC 구조체에 정의됩니다.
배열에서 구조체의 0부터 시작하는 위치는 Power State 0 설명자(PSD0)가 0 위치에 있고, PSD1(Power State 1 설명자)이 위치 1에 있고, 위치 31의 Power State 31 설명자(PSD31)까지의 전원 상태 설명자 이름에 해당합니다.
VS[1024]
바이트 3072:4095는 공급업체별 사용량에 할당됩니다.
설명
VID, SN 및 MN 필드의 값을 결합하여 NVM 하위 시스템을 식별하는 전역적으로 고유한 값을 형성할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
머리글 | nvme.h |