다음을 통해 공유


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, SNMN 필드의 값을 결합하여 NVM 하위 시스템을 식별하는 전역적으로 고유한 값을 형성할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
머리글 nvme.h