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 |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk