struktur NVME_IDENTIFY_CONTROLLER_DATA (nvme.h)

Berisi nilai yang menunjukkan kemampuan pengontrol, fitur, atribut set perintah, dan deskriptor status daya.

Sintaks

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;

Anggota

VID

Berisi pengidentifikasi vendor perusahaan yang ditetapkan oleh Interkoneksi Komponen Periferal - Grup Minat Khusus (PCI-SIG).

SSVID

Berisi pengidentifikasi vendor perusahaan yang ditetapkan oleh PCI-SIG untuk subsistem.

SN[20]

Berisi nomor seri untuk subsistem NVM yang ditetapkan oleh vendor sebagai string ASCII.

MN[40]

Berisi nomor model untuk subsistem NVM yang ditetapkan oleh vendor sebagai string ASCII.

FR[8]

Berisi revisi firmware yang saat ini aktif untuk subsistem NVM.

Ini adalah informasi revisi firmware yang sama di NVME_FIRMWARE_SLOT_INFO_LOG yang dapat diambil dengan perintah Dapatkan Halaman Log.

RAB

Berisi ukuran Burst Arbitrase yang direkomendasikan.

IEEE[3]

Berisi Pengidentifikasi Unik Organisasi (OUI) untuk vendor pengontrol.

OUI adalah pengidentifikasi yang ditetapkan IEEE/RAC yang valid yang dapat didaftarkan di http://standards.ieee.org/develop/regauth/oui/public.html.

CMIC

Struktur Controller Multi-Path I/O dan Namespace Sharing Capabilities (CMIC) yang menentukan kemampuan berbagi I/O multi-jalur dan namespace pengontrol dan subsistem NVM.

CMIC.MultiPCIePorts

Bit 0 dari struktur CMIC .

Ketika nilai ini diatur ke 1, subsistem NVM mungkin berisi dua atau beberapa port PCI Express fisik. Ketika nilai dibersihkan ke 0, subsistem NVM berisi satu port PCI Express.

CMIC.MultiControllers

Bit 1 dari struktur CMIC .

Ketika nilai ini diatur ke 1, subsistem NVM mungkin berisi dua pengontrol atau lebih. Ketika nilai dibersihkan ke 0, subsistem NVM berisi satu pengontrol.

CMIC.SRIOV

Bit 2 dari struktur CMIC .

Ketika nilai ini diatur ke 1, pengontrol dikaitkan dengan Fungsi Virtualisasi I/O root tunggal (SR-IOV). Ketika nilai dibersihkan ke 0, pengontrol dikaitkan dengan Fungsi PCI.

CMIC.ANAR

CMIC.Reserved

Bit 3:7 dari struktur CMIC dicadangkan.

MDTS

Menunjukkan ukuran transfer data maksimum antara host dan pengontrol.

Host tidak boleh mengirimkan perintah yang melebihi ukuran transfer ini. Jika perintah dikirimkan yang melebihi ukuran transfer, perintah dibatalkan dengan status NVME_STATUS_INVALID_FIELD_IN_COMMAND.

Nilai bidang ini berada dalam satuan ukuran halaman memori minimum yang ditentukan dalam bidang MPSMIN dari struktur Kemampuan Pengontrol , dan dilaporkan sebagai kekuatan dua (2^n). Nilai 0h menunjukkan tidak ada batasan pada ukuran transfer. Pembatasan mencakup metadata jika diselingi dengan data blok logis.

Jika deskriptor Bucket SGL Bit didukung, panjangnya disertakan dalam menentukan apakah perintah melebihi Ukuran Transfer Data Maksimum untuk buffer data tujuan. Panjangnya dalam buffer data sumber tidak disertakan untuk perhitungan Ukuran Transfer Data Maksimum.

CNTLID

Berisi pengidentifikasi unik subsistem NVM yang terkait dengan pengontrol.

VER

Berisi nilai yang dilaporkan dalam daftar Versi, yang ditentukan di bidang VS dari struktur NVME_CONTROLLER_REGISTERS .

Implementasi yang sesuai dengan spesifikasi NVMe versi 1.2 atau yang lebih baru, akan melaporkan nilai bukan nol di bidang ini.

RTD3R

Menunjukkan latensi khas dalam mikrosekon saat melanjutkan dari Runtime D3 (RTD3).

Implementasi yang sesuai dengan spesifikasi NVMe versi 1.2 atau yang lebih baru, akan melaporkan nilai bukan nol di bidang ini.

RTD3E

Menunjukkan latensi khas dalam mikrosekon untuk memasuki Runtime D3 (RTD3).

Implementasi yang sesuai dengan spesifikasi NVMe versi 1.2 atau yang lebih baru, akan melaporkan nilai bukan nol di bidang ini.

OAES

Struktur Peristiwa Asinkron Opsional yang Didukung (OAES) yang berisi bidang yang menunjukkan apakah peristiwa asinkron opsional didukung oleh pengontrol.

Pengontrol tidak boleh mengirim peristiwa asinkron opsional sebelum diaktifkan oleh perangkat lunak host.

OAES.Reserved0

Bit 10:31 dari struktur OAES dicadangkan.

OAES.NamespaceAttributeChanged

Bit 8 dari struktur OAES .

Ketika nilai ini diatur ke 1, pengontrol mendukung pengiriman peristiwa Atribut Namespace Yang Diubah. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung peristiwa Atribut Namespace Yang Diubah.

OAES.FirmwareActivation

Bit 9 dari struktur OAES .

Ketika nilai ini diatur ke 1, pengontrol mendukung pengiriman peristiwa Aktivasi Firmware. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung peristiwa Aktivasi Firmware.

OAES.Reserved1

Bit 0:7 dari struktur OAES dicadangkan.

OAES.AsymmetricAccessChanged

OAES.PredictableLatencyAggregateLogChanged

OAES.LbaStatusChanged

OAES.EnduranceGroupAggregateLogChanged

OAES.Reserved2

OAES.ZoneInformation

OAES.Reserved3

CTRATT

Struktur Controller Attributes (CTRATT) yang berisi informasi atribut pengontrol.

CTRATT.HostIdentifier128Bit

Bit 32 dari struktur CTRATT yang berisi pengidentifikasi host 128bit.

CTRATT.NOPSPMode

Bit 31 dari struktur CTRATT yang berisi informasi tentang Status Daya Non-Operasional (NOPS).

CTRATT.NVMSets

Bit 30 dari struktur CTRATT yang berisi informasi tentang set perintah NVM.

CTRATT.ReadRecoveryLevels

Bit 29 dari struktur CTRATT yang berisi informasi tentang tingkat pemulihan Baca.

CTRATT.EnduranceGroups

Bit 28 dari struktur CTRATT yang berisi informasi tentang tingkat grup ketahanan.

CTRATT.PredictableLatencyMode

CTRATT.TBKAS

CTRATT.NamespaceGranularity

CTRATT.SQAssociations

CTRATT.UUIDList

CTRATT.Reserved0

Bit 0:27 dari struktur CTRATT dicadangkan.

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]

Bidang cadangan 140 byte.

CNTRLTYPE

FGUID[16]

CRDT1

CRDT2

CRDT3

Reserved0_1[106]

ReservedForManagement[16]

Dicadangkan untuk NVMe Management.

OACS

Struktur Dukungan Perintah Admin Opsional (OACS) yang berisi bidang yang menunjukkan perintah Admin opsional yang didukung oleh pengontrol.

OACS.SecurityCommands

Bit 0 dari struktur OACS menunjukkan apakah pengontrol mendukung perintah Kirim Keamanan dan Terima Keamanan.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Kirim Keamanan dan Terima Keamanan. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Kirim Keamanan dan Penerimaan Keamanan.

OACS.FormatNVM

Bit 1 dari struktur OACS menunjukkan apakah pengontrol mendukung perintah Format NVM.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Format NVM. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Format NVM.

OACS.FirmwareCommands

Bit 2 dari struktur OACS menunjukkan apakah pengontrol mendukung perintah Firmware Commit dan Unduhan Gambar Firmware.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Firmware Commit dan Unduh Gambar Firmware. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Firmware Commit dan Unduh Gambar Firmware.

OACS.NamespaceCommands

Bit 3 dari struktur OACS menunjukkan apakah pengontrol mendukung perintah Manajemen Namespace dan Lampiran Namespace.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Manajemen Namespace dan Lampiran Namespace. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Manajemen Namespace dan Lampiran Namespace.

OACS.DeviceSelfTest

Bit 4 dari struktur OACS menunjukkan apakah pengontrol mendukung perintah Device Self Test.

OACS.Directives

Bit 5 dari struktur OACS menunjukkan apakah pengontrol mendukung perintah Directive Send dan Directive Receive.

OACS.NVMeMICommands

OACS.VirtualizationMgmt

OACS.DoorBellBufferConfig

OACS.GetLBAStatus

OACS.Reserved

Bit 6:15: dicadangkan.

ACL

Menunjukkan jumlah maksimum perintah Abort yang secara bersamaan luar biasa yang didukung oleh pengontrol.

Ini adalah nilai berbasis 0. Implementasi harus mendukung minimal empat perintah Abort yang luar biasa secara bersamaan.

AERL

Menunjukkan jumlah maksimum perintah Permintaan Peristiwa Asinkron yang luar biasa yang didukung oleh pengontrol.

Ini adalah nilai berbasis 0. Implementasi harus mendukung minimal empat perintah Permintaan Peristiwa Asinkron yang luar biasa secara bersamaan.

FRMW

Struktur Firmware Updates (FRMW) yang berisi bidang yang menunjukkan kemampuan mengenai pembaruan firmware.

FRMW.Slot1ReadOnly

Bit 0 dari struktur FRMW menunjukkan apakah slot firmware pertama (slot 1) hanya dibaca.

Ketika nilai ini diatur ke 1, slot firmware pertama (slot 1) hanya dibaca. Ketika nilai ini dibersihkan ke 0, slot firmware pertama (slot 1) adalah baca/tulis. Implementasi dapat memilih untuk memiliki gambar firmware baca saja garis besar.

FRMW.SlotCount

Bit 1:3 dari struktur FRMW menunjukkan jumlah slot firmware yang didukung pengontrol.

Bidang ini menentukan nilai antara satu dan tujuh, menunjukkan bahwa setidaknya satu slot firmware didukung dan hingga tujuh maksimum. Ini sesuai dengan slot firmware 1 hingga 7.

FRMW.ActivationWithoutReset

Bit 4 dari struktur FRMW menunjukkan apakah pengontrol mendukung aktivasi firmware tanpa reset.

Ketika nilai ini diatur ke 1, pengontrol mendukung aktivasi firmware tanpa reset. Ketika nilai ini dibersihkan ke 0, pengontrol memerlukan reset agar firmware diaktifkan.

FRMW.Reserved

Bit 5:7 dari struktur FRMW dicadangkan.

LPA

Struktur Log Page Attributes (LPA) yang berisi bidang yang menunjukkan atribut opsional untuk halaman log yang diakses dengan menggunakan perintah Dapatkan Halaman Log .

LPA.SmartPagePerNamespace

Bit 0 dari struktur LPA menunjukkan apakah pengontrol mendukung halaman log informasi SMART / Health berdasarkan per namespace.

Ketika nilai ini diatur ke 1, pengontrol mendukung halaman log informasi SMART / Health berdasarkan per namespace. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung halaman log informasi SMART / Health berdasarkan per namespace.

LPA.CommandEffectsLog

Bit 1 dari struktur LPA menunjukkan apakah pengontrol mendukung halaman log Efek Perintah.

Ketika nilai ini diatur ke 1, pengontrol mendukung halaman log Efek Perintah. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung halaman log Efek Perintah.

LPA.LogPageExtendedData

Bit 2 dari struktur LPA menunjukkan apakah pengontrol mendukung Log Page Extended Data.

LPA.TelemetrySupport

Bit 3 dari struktur LPA menunjukkan apakah pengontrol mendukung Dukungan Telemetri.

LPA.PersistentEventLog

LPA.Reserved0

LPA.TelemetryDataArea4

LPA.Reserved1

ELPE

Menunjukkan jumlah entri log Informasi Kesalahan yang disimpan oleh pengontrol. Bidang ini adalah nilai berbasis 0.

NPSS

Menunjukkan jumlah status daya NVM Express yang didukung oleh pengontrol. Ini adalah nilai berbasis 0.

Status daya diberi nomor berurutan mulai dari status daya 0. Pengontrol harus mendukung setidaknya satu status daya (misalnya, status daya 0), dan dapat mendukung hingga 31 status daya tambahan, dengan total 32.

AVSCC

Struktur Admin Vendor Specific Command Configuration (AVSCC) yang berisi bidang yang menunjukkan pengaturan konfigurasi untuk penanganan perintah Khusus Vendor Admin.

AVSCC.CommandFormatInSpec

Bit 0 dari struktur AVSCC menunjukkan apakah semua Perintah Spesifik Vendor Admin menggunakan format perintah yang ditentukan dalam struktur NVME_COMMAND.

Ketika nilai ini dibersihkan ke 0, itu menunjukkan bahwa format semua perintah spesifik vendor Admin spesifik vendor. Ketika nilai ini diatur ke 1, ini menunjukkan bahwa semua Perintah Spesifik Vendor Admin akan menggunakan struktur NVME_COMMAND.

AVSCC.Reserved

Bit 1:7 dari struktur AVSCC dicadangkan.

APSTA

Struktur Atribut Transisi Status Daya Otonom (APSTA) yang berisi bidang yang menunjukkan atribut fitur transisi status daya otonom.

APSTA.Supported

Bit 0 dari struktur APSTA menunjukkan apakah pengontrol mendukung transisi status daya otonom.

Ketika nilai ini diatur ke 1, pengontrol mendukung transisi status daya otonom. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung transisi status daya otonom.

APSTA.Reserved

Bit 1:7 dari struktur APSTA dicadangkan.

WCTEMP

Menunjukkan nilai bidang Suhu Komposit minimum (dilaporkan dalam log Informasi SMART/ Kesehatan yang menunjukkan kondisi yang terlalu panas saat operasi pengontrol berlanjut.

Remediasi langsung direkomendasikan (misalnya, pendinginan tambahan atau pengurangan beban kerja). Platform harus berusaha untuk mempertahankan suhu komposit di bawah nilai ini.

Nilai 0h dalam bidang ini menunjukkan bahwa tidak ada nilai ambang batas suhu peringatan yang dilaporkan oleh pengontrol. Implementasi yang sesuai dengan Spesifikasi NVMe versi 1.2 atau yang lebih baru harus melaporkan nilai bukan nol di bidang ini. Disarankan agar implementasi melaporkan nilai 0157h dalam bidang ini.

CCTEMP

Menunjukkan nilai bidang Suhu Komposit minimum (dilaporkan dalam log [SMART / Health Information](ns-nvme-nvme_health_info_log.md) yang menunjukkan kondisi overheating kritis. Misalnya, kondisi yang dapat mencegah operasi normal berkelanjutan, kemungkinan kehilangan data, pematian perangkat otomatis, pembatasan performa ekstrem, atau kerusakan permanen.

Nilai 0h dalam bidang ini menunjukkan bahwa tidak ada nilai ambang suhu kritis yang dilaporkan oleh pengontrol. Implementasi yang sesuai dengan Spesifikasi NVMe versi 1.2 atau yang lebih baru harus melaporkan nilai bukan nol di bidang ini.

MTFA

Menunjukkan waktu maksimum pengontrol untuk sementara menghentikan perintah pemrosesan untuk mengaktifkan gambar firmware.

Bidang ini valid jika pengontrol mendukung aktivasi firmware tanpa reset. Nilai MFTA ditentukan dalam 100 unit milidetik. Nilai 0h menunjukkan bahwa waktu maksimum tidak terdefinisi.

HMPRE

Menunjukkan ukuran pilihan yang harus dialokasikan host untuk fitur Buffer Memori Host dalam unit 4KB.

Nilai ini harus lebih besar dari atau sama dengan Ukuran Minimum Buffer Memori Host (HMMIN).

Jika bidang ini bukan nol, maka fitur Buffer Memori Host didukung. Ketika nilai ini dibersihkan ke 0h, fitur Buffer Memori Host tidak didukung.

HMMIN

Menunjukkan ukuran minimum yang harus dialokasikan host untuk fitur Buffer Memori Host dalam unit 4KB.

Ketika nilai ini dibersihkan ke 0, host diminta untuk mengalokasikan sejumlah memori host yang mungkin hingga nilai HMPRE .

TNVMCAP[16]

Menunjukkan total kapasitas NVM, dalam byte, subsistem NVM.

Bidang ini didukung jika perintah Manajemen Namespace dan Lampiran Namespace didukung.

UNVMCAP[16]

Menunjukkan kapasitas NVM yang tidak dialokasikan, dalam byte, dari subsistem NVM.

Bidang ini didukung jika perintah Manajemen Namespace dan Lampiran Namespace didukung.

RPMBS

Struktur Replay Protected Memory Block Support (RPMBS) yang berisi bidang yang menunjukkan apakah pengontrol mendukung satu atau beberapa Replay Protected Memory Blocks (RPMB) dan kemampuan terkait.

RPMBS.RPMBUnitCount

Menunjukkan jumlah TARGET RPMB yang didukung pengontrol.

Semua target PMB yang didukung (Blok Memori Terproteksi) memiliki kemampuan yang sama seperti yang didefinisikan dalam bidang RPMBS . Nilai 0h menunjukkan pengontrol tidak mendukung RPMB. Jika nilai ini bukan nol, maka pengontrol mendukung perintah Kirim Keamanan dan Terima Keamanan.

RPMBS.AuthenticationMethod

Menunjukkan metode autentikasi yang digunakan untuk mengakses semua Replay Protected Memory Blocks (RPMB) di pengontrol. Nilai untuk bidang ini adalah:

Nilai Definisi
000b HMAC SHA-256
001b-111b Dicadangkan

RPMBS.Reserved0

Bidang khusus.

RPMBS.TotalSize

Menunjukkan ukuran total setiap RPMB yang didukung di pengontrol dalam unit 128KB. Ini adalah nilai berbasis 0. Nilai 0h menunjukkan ukuran 128KB.

RPMBS.AccessSize

Menunjukkan ukuran yang mungkin dibaca atau ditulis per akses RPMB oleh perintah Kirim Keamanan atau Terima Keamanan untuk pengontrol ini dalam unit 512B.

Ini adalah nilai berbasis 0. Nilai 0h menunjukkan ukuran 512B.

EDSTT

Menunjukkan Waktu Uji Mandiri Perangkat yang Diperpanjang (EDSTT).

DSTO

Menunjukkan Opsi Uji Mandiri Perangkat (DSTO).

FWUG

Menunjukkan Granularitas Pembaruan Firmware (FWUG).

KAS

Menunjukkan Dukungan Keep Alive (KAS).

HCTMA

Struktur Atribut Manajemen Termal Terkontrol Host (HCTMA).

HCTMA.Supported

Menunjukkan apakah atribut Manajemen Termal Yang Dikontrol Host didukung.

HCTMA.Reserved

Bidang struktur HCTMA ini dicadangkan.

MNTMT

Suhu Manajemen Termal Minimum (MNTMT)

MXTMT

Suhu Manajemen Termal Maksimum (MXTMT)

SANICAP

Kemampuan Sanitasi (SANICAP)

SANICAP.CryptoErase

Pengontrol mendukung Crypto Erase Sanitize

SANICAP.BlockErase

Pengontrol mendukung Block Erase Sanitize

SANICAP.Overwrite

Pengontrol mendukung Overwrite Santize

SANICAP.Reserved

SANICAP.NDI

SANICAP.NODMMAS

HMMINDS

HMMAXD

NSETIDMAX

Pengidentifikasi Set NVM Maksimum

ENDGIDMAX

ANATT

ANACAP

ANACAP.OptimizedState

ANACAP.NonOptimizedState

ANACAP.InaccessibleState

ANACAP.PersistentLossState

ANACAP.ChangeState

ANACAP.Reserved

ANACAP.StaticANAGRPID

ANACAP.SupportNonZeroANAGRPID

ANAGRPMAX

NANAGRPID

PELS

Reserved1[156]

Bidang khusus.

SQES

Struktur Ukuran Entri Antrean Pengiriman (SQES) yang berisi bidang yang menunjukkan ukuran entri Antrean Pengiriman yang diperlukan dan maksimum saat menggunakan Set Perintah NVM.

SQES.RequiredEntrySize

Bit 0:3 dari struktur SQES menunjukkan ukuran Entri Antrean Pengiriman yang diperlukan saat menggunakan Set Perintah NVM.

Ini adalah ukuran entri minimum yang dapat digunakan. Nilainya dalam byte dan dilaporkan sebagai kekuatan dua (2^n). Nilai yang diperlukan adalah 6, yang sesuai dengan 64 byte.

SQES.MaxEntrySize

Bit 4:7 dari struktur SQES menunjukkan ukuran entri Antrean Pengiriman maksimum saat menggunakan Set Perintah NVM.

Nilai ini lebih besar dari atau sama dengan SQES. Nilai RequiredEntrySize . Nilainya dalam byte dan dilaporkan sebagai kekuatan dua (2^n). Nilai yang disarankan adalah 6, sesuai dengan ukuran entri NVM Command Set SQ standar 64 byte. Pengontrol yang menerapkan ekstensi kepemilikan dapat mendukung nilai yang lebih besar.

CQES

Struktur Completion Queue Entry Size (CQES) yang berisi bidang yang menunjukkan ukuran entri Antrean Penyelesaian yang diperlukan dan maksimum saat menggunakan Set Perintah NVM.

CQES.RequiredEntrySize

Bit 0:3 dari struktur CQES menunjukkan ukuran entri Antrean Penyelesaian yang diperlukan saat menggunakan Set Perintah NVM.

Ini adalah ukuran entri minimum yang dapat digunakan. Nilainya dalam byte dan dilaporkan sebagai kekuatan dua (2^n). Nilai yang diperlukan adalah 4, yang sesuai dengan 16 byte.

CQES.MaxEntrySize

Bit 4:7 dari struktur CQES menunjukkan ukuran entri Antrean Penyelesaian maksimum saat menggunakan Set Perintah NVM.

Nilai ini lebih besar dari atau sama dengan ukuran entri CQ yang diperlukan. Nilainya dalam byte dan dilaporkan sebagai kekuatan dua (2^n). Nilai yang disarankan adalah 4, sesuai dengan ukuran entri CQ Set Perintah NVM standar 16 byte. Pengontrol yang menerapkan ekstensi kepemilikan dapat mendukung nilai yang lebih besar.

MAXCMD

NN

Menunjukkan jumlah namespace yang valid yang ada untuk pengontrol.

ONCS

Struktur Dukungan Perintah NVM Opsional (ONCS) yang berisi bidang yang menunjukkan perintah dan fitur NVM opsional yang didukung oleh pengontrol.

ONCS.Compare

Bit 0 dari struktur ONCS menunjukkan apakah pengontrol mendukung perintah Bandingkan.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Bandingkan. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Bandingkan.

ONCS.WriteUncorrectable

Bit 1 dari struktur ONCS menunjukkan apakah pengontrol mendukung perintah Tulis Tidak Dapat Dikoreksi.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Tulis Tidak Dapat Dikoreksi. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Tulis Tidak Dapat Dikoreksi.

ONCS.DatasetManagement

Bit 2 dari struktur ONCS menunjukkan apakah pengontrol mendukung perintah Manajemen Himpunan Data.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Manajemen Himpunan Data. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Manajemen Himpunan Data.

ONCS.WriteZeroes

Bit 3 dari struktur ONCS menunjukkan apakah pengontrol mendukung perintah Write Zeroes.

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah Write Zeroes. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung perintah Write Zeroes.

ONCS.FeatureField

Bit 4 dari struktur ONCS menunjukkan apakah pengontrol mendukung bidang Simpan di perintah Atur Fitur dan bidang Pilih di perintah Dapatkan Fitur.

Saat nilai ini diatur ke 1, pengontrol mendukung bidang Simpan di perintah Atur Fitur dan bidang Pilih di perintah Dapatkan Fitur. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung bidang Simpan di perintah Atur Fitur dan bidang Pilih di perintah Dapatkan Fitur.

ONCS.Reservations

Bit 5 dari struktur ONCS menunjukkan apakah pengontrol mendukung reservasi.

Ketika nilai ini diatur ke 1, pengontrol mendukung reservasi dan juga mendukung perintah berikut yang terkait dengan reservasi:

  • Laporan Reservasi
  • Daftar Reservasi
  • Peroleh Reservasi
  • Rilis Reservasi

Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung reservasi.

ONCS.Timestamp

Bit 6 dari struktur ONCS menunjukkan apakah pengontrol mendukung fitur Tanda Waktu (NVME_FEATURE_TIMESTAMP).

ONCS.Verify

ONCS.Reserved

Bit 7:15 dari struktur ONCS dicadangkan.

FUSES

Struktur Fused Operation Support (FUSES) yang berisi bidang yang menunjukkan operasi menyatu yang didukung pengontrol.

FUSES.CompareAndWrite

Bit 0 dari struktur FUSES menunjukkan apakah pengontrol mendukung operasi Bandingkan dan Tulis menyatu.

Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung operasi Bandingkan dan Tulis menyatu. Bandingkan akan menjadi perintah pertama dalam urutan.

FUSES.Reserved

Bit 15:1 dari struktur FUSES dicadangkan.

FNA

Struktur Format Atribut NVM (FNA) yang berisi bidang yang menunjukkan atribut untuk perintah Format NVM .

FNA.FormatApplyToAll

Bit 0 dari struktur FNA menunjukkan apakah operasi format berlaku untuk semua namespace atau khusus untuk namespace tertentu.

Ketika nilai ini diatur ke 1, semua namespace dikonfigurasi dengan atribut yang sama dan format namespace layanan apa pun menghasilkan format semua namespace. Ketika nilai ini dibersihkan ke 0, pengontrol mendukung format berdasarkan per namespace.

FNA.SecureEraseApplyToAll

Bit 1 dari struktur FNA menunjukkan apakah fungsionalitas penghapusan kriptografi dan penghapusan data pengguna berlaku untuk semua namespace layanan atau khusus untuk namespace tertentu.

Ketika nilai ini diatur ke 1, penghapusan kriptografi namespace tertentu sebagai bagian dari format menghasilkan penghapusan kriptografi semua namespace layanan, dan penghapusan data pengguna dari namespace tertentu sebagai bagian dari format menghasilkan penghapusan data pengguna dari semua namespace layanan. Ketika nilai ini dibersihkan ke 0, penghapusan kriptografi atau penghapusan data pengguna sebagai bagian dari format dilakukan berdasarkan per namespace.

FNA.CryptographicEraseSupported

Bit 2 dari struktur FNA menunjukkan apakah penghapusan kriptografi didukung sebagai bagian dari fungsionalitas penghapusan aman.

Ketika nilai ini diatur ke 1, penghapusan kriptografi didukung. Ketika nilai ini dibersihkan ke 0, penghapusan kriptografi tidak didukung.

FNA.FormatSupportNSIDAllF

FNA.Reserved

Bit 7:3 dari struktur FNA dicadangkan.

VWC

Struktur Volatile Write Cache (VWC) yang berisi bidang yang menunjukkan atribut yang terkait dengan keberadaan cache tulis volatil dalam implementasi.

VWC.Present

Bit 0 dari struktur VWC menunjukkan bahwa cache tulis volatil ada.

Ketika nilai ini diatur ke 1, cache tulis volatil ada dan host dapat mengeluarkan perintah Flush, dan mengontrol apakah cache tulis volatil diaktifkan dengan perintah Atur Fitur yang menentukan pengidentifikasi fitur NVME_FEATURE_VOLATILE_WRITE_CACHE .

Ketika nilai ini dibersihkan ke 0, cache tulis volatil tidak ada.

Ketika cache tulis volatil tidak ada, perintah Flush berhasil diselesaikan dan tidak berpengaruh, dan perintah Atur Fitur dengan set pengidentifikasi NVME_FEATURE_VOLATILE_WRITE_CACHE akan gagal dengan status NVME_STATUS_INVALID_FIELD_IN_COMMAND, dan Dapatkan Fitur dengan set pengidentifikasi NVME_FEATURE_VOLATILE_WRITE_CACHE akan gagal dengan status NVME_STATUS_INVALID_FIELD_IN_COMMAND.

VWC.FlushBehavior

VWC.Reserved

Bit 1:7 dari struktur VWC dicadangkan.

AWUN

Menunjukkan ukuran operasi tulis yang dijamin ditulis secara atomik ke NVM di semua namespace layanan dengan format namespace yang didukung selama operasi normal. Bidang ini ditentukan dalam blok logis dan merupakan nilai berbasis 0.

Jika namespace layanan tertentu menjamin ukuran yang lebih besar dari yang dilaporkan di bidang ini, maka ukuran spesifik namespace ini dilaporkan di bidang NAWUN dari struktur data Identifi Namespace .

Jika perintah tulis dikirimkan dengan ukuran kurang dari atau sama dengan nilai AWUN , host dijamin bahwa perintah tulis bersifat atomik ke NVM sehubungan dengan perintah baca atau tulis lainnya. Jika perintah tulis dikirimkan dengan ukuran yang lebih besar dari nilai AWUN , maka tidak ada jaminan atomitas perintah.

Nilai AWUN tidak memiliki penerapan untuk menulis kesalahan yang disebabkan oleh kegagalan daya. Untuk informasi selengkapnya, lihat bidang Atomic Write Unit Power Fail (AWUPF).

Nilai FFFFh menunjukkan semua perintah bersifat atomik karena ini adalah ukuran perintah terbesar. Implementasi harus mendukung minimal 128KB, diskalakan dengan tepat berdasarkan ukuran Akses Blok Logis (LBA).

AWUPF

Menunjukkan ukuran operasi tulis yang dijamin ditulis secara atomik ke NVM di semua namespace layanan dengan format namespace yang didukung selama kondisi daya gagal atau kesalahan. Bidang ini ditentukan dalam blok logis dan merupakan nilai berbasis 0.

Jika namespace layanan tertentu menjamin ukuran yang lebih besar dari yang dilaporkan di bidang ini, maka ukuran spesifik namespace ini dilaporkan di bidang NAWUPF dalam struktur data Identifi Namespace . Nilai AWUPF harus kurang dari atau sama dengan nilai AWUN .

Jika perintah tulis dikirimkan dengan ukuran kurang dari atau sama dengan nilai AWUPF , host dijamin bahwa tulisan bersifat atomik ke NVM sehubungan dengan perintah baca atau tulis lainnya. Jika perintah tulis dikirimkan yang lebih besar dari ukuran ini, tidak ada jaminan atomitas perintah. Jika ukuran tulis kurang dari atau sama dengan nilai AWUPF dan perintah tulis gagal, maka perintah baca berikutnya untuk blok logis terkait akan mengembalikan data dari perintah tulis yang berhasil sebelumnya.

Jika perintah tulis dikirimkan dengan ukuran yang lebih besar dari nilai AWUPF , maka tidak ada jaminan data yang dikembalikan pada bacaan berikutnya dari blok logis terkait.

NVSCC

Struktur NVM Vendor Specific Command Configuration (NVSCC) yang berisi bidang yang menunjukkan pengaturan konfigurasi untuk penanganan perintah Spesifik Vendor NVM.

NVSCC.CommandFormatInSpec

Bit 0 dari struktur NVSCC menunjukkan apakah semua Perintah Spesifik Vendor NVM menggunakan format yang ditentukan dalam Gambar 13.

Ketika nilai ini diatur ke 1, semua Perintah Spesifik Vendor NVM menggunakan format yang ditentukan dalam Gambar 13. Ketika nilai ini dibersihkan ke 0, itu menunjukkan bahwa format semua Perintah Spesifik Vendor NVM spesifik vendor.

NVSCC.Reserved

Bit 1:7 dari struktur NVSCC dicadangkan.

NWPC

NWPC.WriteProtect

NWPC.UntilPowerCycle

NWPC.Permanent

NWPC.Reserved

ACWU

Menunjukkan ukuran operasi tulis yang dijamin ditulis secara atomik ke NVM di semua namespace layanan dengan format namespace yang didukung untuk operasi Bandingkan dan Tulis menyatu.

Jika namespace layanan tertentu menjamin ukuran yang lebih besar dari yang dilaporkan di bidang ini, maka ukuran spesifik namespace ini dilaporkan di bidang NACWU dalam struktur data Identifikasi Namespace layanan.

Bidang ini akan didukung jika perintah Bandingkan dan Tulis menyatu didukung. Bidang ini ditentukan dalam blok logis dan merupakan nilai berbasis 0. Jika Bandingkan dan Tulis dikirimkan yang meminta ukuran transfer yang lebih besar dari nilai ini, pengontrol mungkin gagal perintah dengan status NVME_STATUS_INVALID_FIELD_IN_COMMAND.

Jika Bandingkan dan Tulis bukan perintah menyatu yang didukung, nilai bidang ini akan menjadi 0h.

Reserved4[2]

Bidang khusus.

SGLS

Struktur Dukungan SGL (SGLS) yang berisi bidang yang menentukan apakah Scatter Gather Lists (SGL) didukung untuk Set Perintah NVM dan jenis SGL yang didukung.

SGLS.SGLSupported

Ketika nilai ini diatur ke 1, pengontrol mendukung SGL untuk Set Perintah NVM termasuk jenis deskriptor Blok Data SGL, Segmen SGL, dan Segmen Terakhir SGL. Ketika nilai ini dibersihkan ke 0, pengontrol tidak mendukung SGL untuk Set Perintah NVM dan semua bit lain di bidang ini akan dihapus ke 0.

SGLS.KeyedSGLData

SGLS.Reserved0

Bidang khusus.

SGLS.BitBucketDescrSupported

Ketika nilai ini diatur ke 1, deskriptor Bucket SGL Bit didukung. Ketika nilai ini dibersihkan ke 0, deskriptor Bucket SGL Bit tidak didukung.

SGLS.ByteAlignedContiguousPhysicalBuffer

Ketika nilai ini diatur ke 1, penggunaan buffer fisik metadata yang berdekatan yang selaras dengan byte (bidang Penunjuk Metadata di Gambar 12) didukung. Ketika nilai ini dibersihkan ke 0, penggunaan byte yang selaras dengan buffer fisik metadata yang berdekatan tidak didukung.

SGLS.SGLLengthLargerThanDataLength

Ketika nilai ini diatur ke 1, pengontrol mendukung perintah yang berisi data atau metadata SGL dengan panjang yang lebih besar dari jumlah data yang akan ditransfer. Ketika nilai ini dibersihkan ke 0, panjang SGL akan sama dengan jumlah data yang akan ditransfer.

SGLS.MPTRSGLDescriptor

SGLS.AddressFieldSGLDataBlock

SGLS.TransportSGLData

SGLS.Reserved1

Bidang khusus.

MNAN

Reserved6[224]

Byte 704:2047 dicadangkan untuk Atribut Set Perintah I/O.

SUBNQN[256]

Reserved7[768]

Reserved8[256]

PDS[32]

Berisi array 32 Deskriptor Status Daya. Setiap anggota array adalah bidang 32 bit yang menunjukkan karakteristik Deskriptor Status Daya. Format bidang ini ditentukan dalam struktur NVME_POWER_STATE_DESC .

Posisi berbasis nol struktur dalam array sesuai dengan nama Power State Descriptor, sehingga Power State 0 Descriptor (PSD0) berada di posisi 0, Power State 1 Descriptor (PSD1) berada di posisi 1, dan seterusnya, hingga Power State 31 Descriptor (PSD31) di posisi 31.

VS[1024]

Byte 3072:4095 dialokasikan untuk penggunaan khusus vendor.

Keterangan

Nilai bidang VID, SN, dan MN dapat digabungkan untuk membentuk nilai unik global yang mengidentifikasi subsistem NVM.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Header nvme.h