NVMe · Q1–328

NVM Express Base 2.4NVM Command Set 1.3NVMe over PCIe Transport 1.4

NVMe Base 2.4 自問自答題庫

本題庫收錄第 1~328 題,依主題分成 27 冊。先理解 controller 啟用、queue 及 command 的運作,再學習如何查詢能力與設定功能。每題除了說明機制,也練習將實際觀察結果與規範要求互相比對。

Controller 初始化與停用

Q1–Q9

先理解 controller 如何從停用轉為就緒,再開始處理命令。讀到能力,不表示 controller 已啟用;Host 設定 EN,也還要等待 RDY。即使 RDY=1,仍可能需要依 Ready Mode 確認媒體是否可用。本冊將狀態、等待時間及允許執行的動作放在一起,說明每個階段應如何判斷。

Admin Queue 與 I/O Queue

Q10–Q21

Host 準備的 queue 記憶體、controller 分配的 queue 配額,以及已成功建立的 queue,是三種不同資訊。本冊先說明 SQ 與 CQ 的依賴關係,再討論大小、識別碼、刪除及重設,讓你能判斷何時可以使用 queue,以及何時能安全回收記憶體。

SQ
Submission Queue,提交佇列
CQ
Completion Queue,完成佇列

Doorbell、Queue Full 與 Wrap-around

Q22–Q30

Doorbell 告訴 controller,Host 的指標已前進到哪個位置;Phase 則讓 Host 分辨 CQ 中的是新完成結果,還是上一圈留下的資料。本冊將位置與有效性一起說明,幫助你正確處理繞回及空間釋放,避免將正常繞回誤判成倒退,或把舊 CQE 處理兩次。

CQ
Completion Queue,完成佇列
CQE
Completion Queue Entry,佇列中的完成項目

Command、Completion 與處理順序

Q31–Q43

從 Host 提交命令,到 controller 取得、處理並回報完成,再到 Host 回收資源,各階段能證明的事情不同。本冊沿著這條流程解讀 Command 與 CQE,並說明順序、仲裁及中斷各自控制什麼。只有完成順序,還不足以推論 controller 內部的全部行為。

CQE
Completion Queue Entry,佇列中的完成項目

Identify 與能力探索

Q44–Q53

Identify 提供多種查詢結構。先確定要查哪個物件、需要哪一種資訊,再選擇 CNS、CSI、NSID 及其他欄位。本冊分別說明能力、目前配置與清單變更,讓你知道不同回覆如何互相補充,以及哪些差異才可能構成矛盾。

CNS
Controller or Namespace Structure,選擇Identify回傳結構
CSI
Command Set Identifier,命令集識別碼
NSID
Namespace Identifier,邏輯儲存空間識別碼

Get Features 與 Set Features

Q54–Q68

設定 Feature 前,先確認它影響哪個物件、是否可變更,以及是否可保存。設定後,再分別確認命令成功、Current 讀回值、實際行為與重設後的恢復結果。本冊依這些步驟說明如何驗證設定,避免只看成功 CQE 就跳到功能一定正確的結論。

Get Log Page 與資料一致性

Q69–Q81

Log 回答狀態、歷史或支援能力,但不是每份 Log 都保存歷史,也不是讀取後一定不變。本冊先選對資料與範圍,再處理長度、分段、事件確認與一致性。

Asynchronous Event Request

Q82–Q92

AER 讓 Host 先留下等待通知的請求,controller 有事件時才完成它。先理解請求、事件、Log 與確認的關係,再處理多事件、遮蔽與重新掛入。

錯誤 Status 與 Error Information

Q93–Q106

本冊從一筆失敗命令出發,先判斷錯誤類型,再找補充記錄與恢復依據。重點是把原命令、完成狀態及歷史資料對回同一件事。

Abort、Timeout 與錯誤恢復

Q107–Q117

Timeout 是 Host 的觀察,未必能說明命令停在哪裡。本冊沿提交、取得、執行、完成與處理的路徑找證據,再決定 Abort 或較大範圍 reset。

Format 與 Sanitize

Q118–Q135

Format 改變 namespace 格式;Sanitize 處理資料清除。兩者的範圍、完成點與 reset 行為不同,本冊以一次操作的前、中、後狀態逐步區分。

Firmware Update 與 Boot Partition

Q136–Q148

先分清下載、提交與啟用,再把 Boot Partition 的讀取和切換放在旁邊比較。資料已傳入 controller,不代表新韌體或新開機映像已開始使用。

Device Self-test

Q149–Q156

Self-test 將裝置內部診斷結果回報給 Host。先確認能啟動哪種測試,再分清進度、最終結果與失敗欄位有效性。

Namespace Management、Attachment 與保護

Q157–Q173

建立 namespace、讓 controller 能存取它,以及限制寫入,是三組獨立狀態。本冊用同一物件從建立到刪除的流程,把三者接起來。

Reset 與 Shutdown

Q174–Q187

Reset 結束操作環境,Shutdown 準備安全停止;兩者的目的和完成證據不同。先看影響範圍,再分辨哪些狀態需要重建,哪些操作仍持續。

Power、Thermal 與 Health Monitoring

Q188–Q204

先看裝置目前處於哪個功耗狀態,再追蹤溫度控制的轉換與累計時間,最後接到健康警告及工作量。這個順序能把目前狀態與過去累積的統計接在一起。

Persistent Event Log 與 Timestamp

Q205–Q216

PEL 保存重要事件,Timestamp 協助解釋事件時間。本冊先教一致地取回完整 Log,再說明可變長度、事件類型與時鐘變更。

Keep Alive

Q217–Q222

Keep Alive 用來偵測 Host 是否仍維持連線活動,在 PCIe 上屬選配。本冊分開命令模式與流量模式,說明何時開始計時及到期後的結果。

HMB、CMB 與 PMR

HMB
Host Memory Buffer,主機記憶體緩衝
CMB
Controller Memory Buffer,控制器記憶體緩衝
PMR
Persistent Memory Region,持久性記憶體區域

Q223–Q236

先看記憶體位於哪裡、由誰提供與何時可回收,再看持久性。HMB、CMB、PMR 不能因都含 Memory 就套同一組 reset 規則。

HMB
Host Memory Buffer,主機記憶體緩衝
CMB
Controller Memory Buffer,控制器記憶體緩衝
PMR
Persistent Memory Region,持久性記憶體區域

Security 與 Lockdown

Q237–Q245

Security Send/Receive 承載協定資料;Lockdown 限制命令或 Feature。先分清資料交換結果與禁止範圍,再討論 reset 及斷電持續性。

Multi-Controller 與 Virtualization

Q246–Q255

多路徑、shared namespace 與虛擬化是不同關係。本冊先畫 controller 拓樸,再加入 attachment、ANA 及可分配 queue/interrupt 資源。

NVM Set、Endurance Group 與容量

Q256–Q267

容量欄位分布於不同管理層級,健康計數也有自己的範圍。本冊先理解歸屬,再計算 Create/Delete 實際改變哪一層的容量。

Domain、Reclaim Group 與 Media Unit

Q268–Q275

管理歸屬與 FDP 放置關係要用不同視角閱讀。本冊先辨認各種 ID 的範圍,再追蹤一筆 Write 如何選到 RU,最後解讀媒體資訊的限制。

FDP
Flexible Data Placement,彈性資料放置

PRP 與 SGL

PRP
Physical Region Page,描述資料頁位置的指標
SGL
Scatter Gather List,描述分散資料區段的清單

Q276–Q285

資料指標描述的是記憶體配置。本冊先算 PRP 跨頁,再讀 SGL 的 descriptor 關係,最後把格式錯誤與傳輸失敗分開。

PRP
Physical Region Page,描述資料頁位置的指標
SGL
Scatter Gather List,描述分散資料區段的清單

Interrupt 設定與完成通知

Q286–Q296

先確認 CQE 真的存在,再查通知如何送到 Host。本冊把 CQ 關聯、合併、mask 與 Host 處理分開,避免把沒有中斷當成沒有完成。

整合驗證與證據交叉比對

Q297–Q320

本冊把前面機制放進具體矛盾情境:先確認比較的是同一對象與同一時點,再判斷證據是否足夠。相關機制使用固定連結,不重複整段教學。

資料 I/O:長度、持久性與完整性

Q321–Q328

本冊補充原題庫尚未展開的資料 I/O 判讀:命令能不能接受、完成後保證什麼、資料內容如何驗證,以及失敗後可能留下哪些結果。先把四個問題分開,再用具體欄位值推導;既有 Feature、queue 與指標規則則連回原題。

怎麼使用這份題庫

  1. 先說出功能的目的、影響對象與正常順序,再選查詢欄位。
  2. 每題依問題安排解答:查詢題跟著欄位找證據,操作題看先後順序,比較題先分清對象。事件、錯誤與重設只在和問題有關時說明;流程圖中的分支條件與等待點也是答案的一部分。
  3. 判斷韌體是否符合規範前,先確認要求適用的前提。shall 表示強制要求,should 表示建議,may 表示允許。若規範將行為列為 undefined,就沒有固定結果可供驗收,不能自行指定必須回報的 Status。

所有算例皆為教學假設,不是實體裝置量測。範圍是 PCIe SSD 使用的三份規格;不含 NVMe over Fabrics、PCIe Link 與封包細節。必要的 PCIe 設定、中斷、Register 及 Doorbell 仍包含在內。

全部題目

  1. Q01 · Host 應如何從 CAP 與 VS 確認 NVMe 版本、最大 Queue 大小、Timeout、Doorbell 間距、Memory Page Size 及支援的 Command Set?
  2. Q02 · AQA、ASQ、ACQ 與 CC 各欄位應按照什麼順序設定?設定錯誤時可能發生什麼?
  3. Q03 · Host 設定 CC.EN 後,應如何根據 CAP.TO 與 CSTS.RDY 判斷 Controller 是否成功 Enable?
  4. Q04 · Host 清除 CC.EN 後,應如何判斷 Controller 是否成功 Disable?尚未 Disable 完成時能否重新 Enable?
  5. Q05 · Host 能否在 CSTS.RDY 為 0 時送出 Command 或更新 Doorbell?
  6. Q06 · CSTS.CFS 代表什麼?Controller 初始化失敗或進入 Fatal 狀態時,Host 應如何恢復?
  7. Q07 · Controller 初始化後可能進入哪些 Ready Mode?Host 應如何處理暫時或限制性的 Ready 狀態?
  8. Q08 · Controller Enable、Disable、Controller Reset、NVM Subsystem Reset 與 Shutdown 有什麼差異?
  9. Q09 · Controller Reset 後,哪些 Register、Admin Queue、Feature 與 I/O Queue 需要重新設定?
  10. Q10 · Admin Submission Queue 與 Admin Completion Queue 如何透過 AQA、ASQ 及 ACQ 建立?
  11. Q11 · Admin Queue 與 I/O Queue 的 Size、Base Address 及 Memory Page 對齊有哪些要求?
  12. Q12 · Host 如何建立 I/O Completion Queue 與 I/O Submission Queue?兩者必須遵守什麼建立順序?
  13. Q13 · 多個 SQ 共用一個 CQ 與每個 SQ 使用獨立 CQ 有什麼差異?
  14. Q14 · Host 如何確認 Controller 支援 Physically Contiguous 或其他 Queue 形式?
  15. Q15 · QID 重複、QID 為 0、CQID 不存在、Queue Size 超過 CAP.MQES 或 Interrupt Vector 非法時,Controller 應如何回應?
  16. Q16 · Number of Queues Feature 回傳的數值與實際可建立的 Queue 數量有什麼關係?
  17. Q17 · Host 刪除 I/O Queue 時,SQ 與 CQ 的相依關係如何限制刪除順序?
  18. Q18 · 刪除不存在的 Queue、仍被 SQ 使用的 CQ 或仍有 Outstanding Command 的 SQ 時,應如何處理?
  19. Q19 · Queue 刪除後,Controller 是否還能存取原 Queue Memory 或回報原 Queue 的 Completion?
  20. Q20 · Queue Level Reset 的影響範圍是什麼?Outstanding Command 應如何處理?
  21. Q21 · Controller Reset 後,原有 I/O Queue 是否有效?Host 需要重新執行哪些操作?
  22. Q22 · Host 應在什麼時候更新 SQ Tail Doorbell 與 CQ Head Doorbell?
  23. Q23 · Doorbell 值重複、倒退、超過 Queue 範圍或寫到錯誤 QID 時,可能造成什麼問題?
  24. Q24 · Host 如何根據 CAP.DSTRD 計算每個 SQ 與 CQ Doorbell 的位置?
  25. Q25 · Host 能否存取未建立、已刪除或 Controller 未 Enable 時的 Queue Doorbell?
  26. Q26 · SQ Tail 與 CQ Head 發生 Wrap-around 時,Host 與 Controller 應如何處理?
  27. Q27 · CQ Wrap-around 後 Phase Tag 如何變化?Host 如何利用 Phase Tag 辨識新 Completion?
  28. Q28 · CQ Full 通常如何形成?CQ Full 時 Controller 能否繼續處理相關 SQ?
  29. Q29 · Host 釋放 CQ 空間後,Controller 應如何恢復 Command 處理?
  30. Q30 · 多個 SQ 共用一個 CQ 時,Host 如何依 SQID 與 CID 辨識 Completion 來源?
  31. Q31 · 一筆 NVMe Command 的 Opcode、CID、NSID、Data Pointer 及 Command Dword 各有什麼用途?
  32. Q32 · Reserved 欄位非零、不合法 Command Dword 組合或不支援 Opcode 應如何處理?
  33. Q33 · NSID 不存在、Inactive、不適用或錯誤使用 Broadcast NSID 時,應回傳什麼類型的 Status?
  34. Q34 · CQE 中的 SQHD、SQID、CID、Phase Tag 及 Status 分別有什麼用途?
  35. Q35 · Status Code Type 與 Status Code 應如何解析?
  36. Q36 · More 與 Do Not Retry 位元分別代表什麼?DNR 為 0 是否代表一定能直接重試?
  37. Q37 · Completion 已寫入但 Host 未處理,可能與 Phase Tag、CQ 位置或 Interrupt 有什麼關係?
  38. Q38 · 多個 Command 同時 Outstanding 時,Controller 是否必須按照提交順序完成?
  39. Q39 · 哪些 Command 具有順序相依性?Host 為什麼不能假設所有 Command 都依序完成?
  40. Q40 · Outstanding Command 達到限制或 CQ Full 時,Controller 如何限制取得新 Command?
  41. Q41 · Round Robin 與 Weighted Round Robin Arbitration 有什麼差異?
  42. Q42 · Urgent、High、Medium 及 Low Queue Priority 在哪些情況下生效?
  43. Q43 · 多個 Queue 競爭資源時,如何判斷 Arbitration 是否符合設定?
  44. Q44 · Identify Controller 與 Identify Namespace 分別提供哪些重要資訊?
  45. Q45 · Active Namespace ID List、Allocated Namespace ID List 及 Namespace Descriptor List 有什麼差異?
  46. Q46 · Controller List、UUID List 及 I/O Command Set Identify 資料分別有什麼用途?
  47. Q47 · NVM Set、Endurance Group、Domain 及 Secondary Controller 資訊應從哪種 Identify 資料取得?
  48. Q48 · CNS、CSI、NSID 或 UUID Index 不支援或不合法時,Controller 應如何回應?
  49. Q49 · Serial Number、Model Number、Firmware Revision、MDTS 及 Optional Admin Command 欄位應如何解讀?
  50. Q50 · Identify 宣告支援某功能後,應如何透過對應 Command 及 Commands Supported and Effects Log 驗證?
  51. Q51 · Namespace 建立、刪除、Attach、Detach 或 Format 後,哪些 Identify 資料與 Namespace List 應更新?
  52. Q52 · Firmware Activation、Reset 及 Power Cycle 後,哪些 Identify 資料可能改變,哪些應保持不變?
  53. Q53 · Identify、Feature、Log Page 與實際 Command 行為不一致時,應如何定位問題?
  54. Q54 · Feature 的 Current、Default、Saved Value 及 Supported Capabilities 分別代表什麼?
  55. Q55 · Set Features 的 Save 位元如何影響 Controller Reset 與 Power Cycle 後的 Feature 值?
  56. Q56 · 不支援的 Feature、不合法 Feature 值或 Controller 不支援 Save 時,應如何回應?
  57. Q57 · Host 如何判斷某個 Feature 是否需要指定 NSID?
  58. Q58 · Arbitration、Number of Queues 及 I/O Command Set Profile Feature 如何設定與驗證?
  59. Q59 · Interrupt Coalescing 與 Interrupt Vector Configuration 如何設定與驗證?
  60. Q60 · Volatile Write Cache 與 Write Atomicity Normal 控制什麼行為?
  61. Q61 · Asynchronous Event Configuration 如何決定哪些事件需要回報?
  62. Q62 · Power Management、Autonomous Power State Transition 及 Host Controlled Thermal Management 有何差異?
  63. Q63 · Timestamp、Keep Alive Timer 及 Host Memory Buffer 如何設定與驗證?
  64. Q64 · Host Behavior Support、Error Recovery 及 Read Recovery Level 有什麼用途?
  65. Q65 · Namespace Write Protection 如何設定?不同保護模式在 Reset 與 Power Cycle 後是否保留?
  66. Q66 · Set Features 成功後,為什麼還應使用 Get Features 確認?
  67. Q67 · Firmware Activation、Namespace 刪除、Controller Reset 及 Power Cycle 後,Feature 應如何變化?
  68. Q68 · Feature 宣告支援但 Get、Set 或實際功能行為不一致時,應如何驗證?
  69. Q69 · Supported Log Pages 有什麼用途?讀取其他 Log 前,應如何確認支援能力?
  70. Q70 · Error Information Log 與 SMART / Health Information Log 分別記錄什麼?
  71. Q71 · Firmware Slot Information、Changed Namespace List 及 Commands Supported and Effects Log 分別用來確認什麼?
  72. Q72 · Device Self-test、Persistent Event 及 Sanitize Status Log 分別適用於哪些情境?
  73. Q73 · Endurance Group、Predictable Latency、Lockdown、Boot Partition 及 Media Unit Status Log 各記錄什麼?
  74. Q74 · Host 如何依 Log Page 的 Scope 正確設定 NSID 及其他欄位?
  75. Q75 · 大型 Log 如何分段讀取?Offset、Length、重疊及缺口應如何處理?
  76. Q76 · Log Specific Identifier、UUID Index 及 Retain Asynchronous Event 有什麼用途?
  77. Q77 · 分段讀取期間 Log 內容改變時,Host 如何判斷資料是否一致?
  78. Q78 · Error Information Log 或 Persistent Event Log 到達容量上限時,舊紀錄如何處理?
  79. Q79 · 哪些 Log 資料在 Controller Reset、NVM Subsystem Reset 或 Power Cycle 後仍可保留?
  80. Q80 · Supported Log Pages 或 Commands Supported and Effects 的宣告與實際行為不一致時,如何判斷?
  81. Q81 · Host 如何從 Commands Supported and Effects Log 確認 Opcode 支援及影響範圍?
  82. Q82 · Host 為什麼需要預先送出 Asynchronous Event Request?沒有事件時為何保持 Outstanding?
  83. Q83 · 事件發生後,Host 如何從 AER Completion 取得事件種類與 Log 位置?
  84. Q84 · Host 處理事件後,為什麼需要讀取對應 Log 並重新送出 AER?
  85. Q85 · AER Request 數量超過 Controller 上限時,應如何回應?
  86. Q86 · 沒有掛入 AER 時發生事件,Controller 如何保留與回報?
  87. Q87 · 多個相同或不同事件同時發生時,Controller 如何合併與回報?
  88. Q88 · Asynchronous Event Configuration 如何啟用或遮蔽特定事件?
  89. Q89 · SMART、Namespace、Firmware、Telemetry、Sanitize、Self-test 與 PEL 各有哪些通知條件?
  90. Q90 · Host 讀取 Log 後,事件如何清除或保留?
  91. Q91 · AER 能否被 Abort?Reset 時尚未完成的 Request 如何處理?
  92. Q92 · AER 已完成,但對應 Log 看不到預期資訊時,應如何定位?
  93. Q93 · Invalid Opcode、Invalid Field、CID Conflict 與 Sequence Error 如何區分?
  94. Q94 · Namespace、Log、Queue、Queue Size 與 Interrupt Vector 錯誤如何定位?
  95. Q95 · Firmware、Format 與容量錯誤為何不能只看名稱?
  96. Q96 · Data Transfer Error、Internal Error 與 Namespace Not Ready 有何不同?
  97. Q97 · Power Loss、Abort、SQ Deletion 與 Fused 失敗如何反映於完成?
  98. Q98 · Host 如何依 Status、More、DNR 與 CRD 決定下一步?
  99. Q99 · 哪些錯誤需要 Error Information?
  100. Q100 · 如何從 Error Information 對回原始命令與錯誤欄位?
  101. Q101 · Error Log 的 Status 必須與 CQE 完全逐 bit 相同嗎?
  102. Q102 · 多個錯誤、Log 容量與 Error Count 如何處理?
  103. Q103 · 非 Success CQE 沒有新增 Error Entry,一定違規嗎?
  104. Q104 · 一般命令錯誤後,其他命令是否可以繼續?
  105. Q105 · 哪些嚴重情況可能設定 CSTS.CFS,Host 應怎麼判斷?
  106. Q106 · 如何交叉比對 CQE、Error Information 與 Persistent Event?
  107. Q107 · Abort 如何用 SQID 與 CID 指定目標?
  108. Q108 · Abort 已完成、不存在或指定錯誤 SQID/CID 的命令時會怎樣?
  109. Q109 · 重複 Abort 與並行 Abort 如何套用 ACL?
  110. Q110 · Abort 成功是否代表目標完全沒有執行?
  111. Q111 · Abort 未立即中止時,目標還能正常完成嗎?
  112. Q112 · Abort 與目標完成同時到達,Host 如何避免重複處理?
  113. Q113 · Timeout 後一定要依 Abort、Queue Reset、Controller Reset 的順序嗎?
  114. Q114 · Abort 本身也 Timeout,Host 應如何復原?
  115. Q115 · Reset 後如何處理舊命令、舊完成與舊 Queue?
  116. Q116 · 如何區分 Command Timeout、Ready Timeout 與長時間操作?
  117. Q117 · Timeout 時如何定位提交、取得、執行、完成或 Host 處理階段?
  118. Q118 · 如何查詢 Format、Sanitize 與 Sanitize Namespace 的支援能力?
  119. Q119 · Format、Secure Erase、Subsystem Sanitize 與 Namespace Sanitize 有何差別?
  120. Q120 · Format 如何選 LBA Format、Metadata、PI 與 SES?
  121. Q121 · Format 的非法格式、參數與狀態如何回報?
  122. Q122 · Format 期間哪些 Admin 操作可以繼續?
  123. Q123 · Format 過程遇到 Reset 或斷電,如何判斷結果?
  124. Q124 · Format 成功後哪些 Identify 與 Namespace 狀態要更新?
  125. Q125 · Format 失敗時如何使用 CQE、Error Log 與 PEL?
  126. Q126 · SANICAP 如何表示 Block Erase、Overwrite 與 Crypto Erase?
  127. Q127 · NDAS、Overwrite Pattern、Pass Count 與反轉 Pattern 如何使用?
  128. Q128 · SPROG、SOS、SANS 與 GDE/NDE 要怎麼一起看?
  129. Q129 · Subsystem Sanitize 期間哪些 Command 允許執行?
  130. Q130 · Sanitize 遇到 Reset 或 Power Loss 會繼續嗎?
  131. Q131 · 成功、失敗與 Failure Mode 在 Log 中如何區分?
  132. Q132 · Exit Failure Mode 能做什麼,不能做什麼?
  133. Q133 · Sanitize 的 AER 與 PEL 應在何時產生?
  134. Q134 · Namespace Sanitize 如何指定目標並確認其他 Namespace 未被清除?
  135. Q135 · Namespace Sanitize 遇到不存在、Inactive 或不支援的目標如何回應?
  136. Q136 · Firmware Slot 的數量、唯讀限制與使用狀態從哪裡查?
  137. Q137 · Firmware Image Download 如何使用 OFST 與 NUMD?
  138. Q138 · 下載重疊、缺漏、順序與無效 Image 如何處理?
  139. Q139 · Firmware Commit 的 FS 與 CA 如何選?
  140. Q140 · 立即啟用與等待不同 Reset 啟用有何差別?
  141. Q141 · Firmware Activation Starting 何時產生?
  142. Q142 · Download、Commit 或 Activation 中發生 Reset/斷電如何處理?
  143. Q143 · Firmware 載入失敗後如何回復?
  144. Q144 · Activation 後如何確認版本、Slot 與 Command Effects?
  145. Q145 · Activation 後哪些設定應保留,哪些需要重新探索?
  146. Q146 · Boot Partition 支援、狀態與 Active ID 如何確認?
  147. Q147 · Boot Partition 如何下載、提交與切換 Active?
  148. Q148 · Boot Partition 更新與 Controller Firmware 更新有何不同?
  149. Q149 · 如何確認 Device Self-test 支援與可測範圍?
  150. Q150 · Short 與 Extended Self-test 有何差別?
  151. Q151 · Self-test 進行中再次啟動或要求中止會怎樣?
  152. Q152 · Current Operation 與 Completion Percentage 如何解讀?
  153. Q153 · 成功、失敗、中止、Reset 與斷電後的 Self-test 結果怎麼看?
  154. Q154 · Self-test 完成一定有 Asynchronous Event 嗎?
  155. Q155 · Segment、Diagnostic Information 與 Failing LBA 何時有效?
  156. Q156 · Self-test 結果如何排列,超過 20 次後怎麼辦?
  157. Q157 · 如何確認 Namespace Management 與 Attachment 支援?
  158. Q158 · 建立 Namespace 時 NSZE、NCAP、Format 與 Thin Provisioning 如何設定?
  159. Q159 · Create Namespace 容量不足或參數不合法如何回應?
  160. Q160 · Create 後 Allocated Namespace List 如何更新?
  161. Q161 · Attach/Detach 如何指定 Controller?
  162. Q162 · Attach/Detach 後 Active List 與 Controller List 如何互相驗證?
  163. Q163 · 重複 Attach、非法 Controller 或未 Attach 就 Detach 如何回應?
  164. Q164 · Detach 時還有 Outstanding Command,應如何處理?
  165. Q165 · Detach 後再送 Namespace Command 應得到什麼?
  166. Q166 · 刪除不存在或仍 Attached 的 Namespace 如何處理?
  167. Q167 · Namespace 變更後哪些事件與 Log 應更新?
  168. Q168 · Changed Namespace List 超過容量如何表示?
  169. Q169 · Reset 或 Power Cycle 後 Namespace 配置與 Attachment 是否保留?
  170. Q170 · Private 與 Shared Namespace 有何差別?
  171. Q171 · 三種 Write Protection 模式與進入條件有何不同?
  172. Q172 · Write Protection 在 Reset 與 Power Cycle 後如何保留?
  173. Q173 · Write Protection 如何影響 Format、Sanitize 與 Namespace Management?
  174. Q174 · Controller、Subsystem 與 Queue Level Reset 範圍有何不同?
  175. Q175 · Conventional、FLR、Hot 與 Fundamental Reset 如何對應 NVMe?
  176. Q176 · Reset 發生在 Idle、命令或背景操作中,如何判斷結果?
  177. Q177 · Reset 期間 CSTS.RDY 應如何變化?
  178. Q178 · Reset 後哪些 Register、Feature 與 Queue 要重建?
  179. Q179 · Reset 後舊 Outstanding 與 Completion 應如何處理?
  180. Q180 · Reset 後如何確認 Feature、Log、Namespace 與 Firmware?
  181. Q181 · Reset 超時或 CFS 未清除時怎麼辦?
  182. Q182 · Host 如何用 CC.SHN 做 Normal Shutdown?
  183. Q183 · 何時算 Shutdown Complete,可以移除電源?
  184. Q184 · Normal、Abrupt Shutdown 與直接斷電有何不同?
  185. Q185 · Shutdown 期間能否繼續新命令或保留 Outstanding?
  186. Q186 · Normal/Abrupt 如何影響 Unsafe Shutdowns?
  187. Q187 · 非正常失電後為何查 SMART、Error 與 PEL?
  188. Q188 · Power State Descriptor 能告訴 Host 哪些事情?
  189. Q189 · Operational 與 Non-Operational Power State 差在哪裡?
  190. Q190 · Entry 與 Exit Latency 如何影響命令等待時間?
  191. Q191 · APST 如何設定、觸發與停用?
  192. Q192 · 量到恢復延遲超過 EXLAT,如何判斷是否違規?
  193. Q193 · HCTM 的 TMT1 與 TMT2 應如何設定?
  194. Q194 · Controller 何時開始或停止 Thermal Management?
  195. Q195 · Reset 與 Power Cycle 後,Power/Thermal 設定如何恢復?
  196. Q196 · SMART Critical Warning 的各 bit 代表什麼?
  197. Q197 · Available Spare、Threshold 與 Percentage Used 如何解讀?
  198. Q198 · 資料量、命令數、Busy Time、Power Cycles 與 Power On Hours 如何累計?
  199. Q199 · Unexpected Power Losses、媒體錯誤與 Error Log Entries 如何累計?
  200. Q200 · Warning 與 Critical Composite Temperature Time 如何累計?
  201. Q201 · 多個 Temperature Sensor 與 Composite Temperature 如何比較?
  202. Q202 · 哪些 Health 變化會產生 AER?
  203. Q203 · SMART 資料的 Scope 如何判斷?
  204. Q204 · SMART、實際操作、Error Log 與 PEL 如何交叉驗證?
  205. Q205 · 如何確認 Persistent Event Log 及個別事件的支援能力?
  206. Q206 · PEL Context 如何建立、分段讀取與釋放?
  207. Q207 · Context 不存在或重複建立時,應如何回應?
  208. Q208 · SMART、Firmware、Timestamp、Reset 與 Hardware Error 如何記錄?
  209. Q209 · Namespace、Format 與 Sanitize 對應哪些 Persistent Events?
  210. Q210 · PEL 達容量上限時,舊事件如何處理?
  211. Q211 · PEL 新增事件後,是否一定發送 Asynchronous Event?
  212. Q212 · Reset 與 Power Cycle 後,PEL 哪些東西應保留?
  213. Q213 · PEL 的 Header、長度與事件順序如何驗證?
  214. Q214 · Timestamp 如何設定並以 Get Features 驗證?
  215. Q215 · Timestamp 如何增加、Wrap-around,Origin 與 SYNC 怎麼看?
  216. Q216 · Timestamp 變更如何記錄,Reset 與 Power Cycle 後怎麼判讀?
  217. Q217 · PCIe Host 如何確認 Keep Alive 支援?
  218. Q218 · Keep Alive Timer 如何設定、調整與停用?
  219. Q219 · Host 如何在 Timer 到期前維持 Keep Alive?
  220. Q220 · Keep Alive Timeout 後,Controller 必須做哪些清理?
  221. Q221 · Controller Reset 後,是否要重新設定 Keep Alive?
  222. Q222 · Command Based 與 Traffic Based Keep Alive 有何不同?
  223. Q223 · HMB、CMB 與 PMR 分別解決什麼問題?
  224. Q224 · HMB 大小與 Descriptor List 如何配置?
  225. Q225 · HMB 位址、大小或 Descriptor 數量不合法時如何判斷?
  226. Q226 · HMB 如何啟用、停用並在 Reset 後重新提供?
  227. Q227 · Host 提前回收仍在使用的 HMB 會有什麼後果?
  228. Q228 · Host 如何找出 CMB 的位置、大小與可用用途?
  229. Q229 · 哪些 Queue、Data、Metadata 與指標清單可放 CMB?
  230. Q230 · CMB 超出範圍或用於不支援用途時如何處理?
  231. Q231 · Reset 後 CMB 設定與內容會保留嗎?
  232. Q232 · PMR 如何確認支援、啟用並等待 Ready?
  233. Q233 · PMR 未 Ready、發生錯誤或過早存取時會怎樣?
  234. Q234 · Host 如何安全停用 PMR?
  235. Q235 · Reset 與 Power Cycle 如何影響 PMR 狀態及持久資料?
  236. Q236 · Host Memory、HMB、CMB 與 PMR 的存取與生命週期如何比較?
  237. Q237 · 如何確認 Security Send/Receive 與實際協定支援?
  238. Q238 · Security Protocol、欄位或資料長度不合法時如何處理?
  239. Q239 · Security 資料傳輸失敗應如何區分 Status 與協定錯誤?
  240. Q240 · Security 狀態如何影響其他 Admin Command?
  241. Q241 · Reset 與 Power Cycle 後 Security 狀態是否保留?
  242. Q242 · Lockdown 如何限制指定 Command 或 Feature?
  243. Q243 · 執行被 Lockdown 禁止的命令或 Feature 應如何回應?
  244. Q244 · Lockdown Log 的一般與增強格式如何解讀?
  245. Q245 · Reset 與 Power Cycle 後 Lockdown 是否保留?
  246. Q246 · Subsystem、Primary 與 Secondary Controller 是什麼關係?
  247. Q247 · Private 與 Shared Namespace 如何 Attach 到 Controller?
  248. Q248 · 如何取得 Namespace 對應的 Controller List?
  249. Q249 · 一台 Controller Reset 時,其他路徑能否繼續存取 Shared Namespace?
  250. Q250 · NVM Subsystem Reset 會影響哪些 Controller?
  251. Q251 · Namespace 變更如何通知其他 Controller?
  252. Q252 · Asymmetric Controller Behavior 與 ANA 如何協助選路徑?
  253. Q253 · Secondary Controller 如何 Online 或 Offline?
  254. Q254 · Virtualization Management 如何分配與釋放資源?
  255. Q255 · Reset 與 Power Cycle 後 Virtualization 資源如何恢復?
  256. Q256 · NVM Set、Endurance Group 與 Namespace 是什麼關係?
  257. Q257 · 如何從 Identify 探索 NVM Set 與 Endurance Group?
  258. Q258 · Namespace 如何建立於指定 Set 或 Group?
  259. Q259 · 指定不存在的 NVM Set 或 Endurance Group 時會怎樣?
  260. Q260 · Endurance Group Information Log 提供哪些健康與容量資訊?
  261. Q261 · Endurance Group 的警告、Spare 與壽命事件如何更新?
  262. Q262 · 如何確認總容量與未配置容量?
  263. Q263 · Namespace 建立與刪除如何改變未配置容量?
  264. Q264 · Capacity Management 如何配置或釋放 Group 與 Set?
  265. Q265 · 要求容量或物件數超過可用資源時應回什麼?
  266. Q266 · 容量配置完成後,哪些 Identify 與 Log 應更新?
  267. Q267 · Reset 與 Power Cycle 後 Group、Set 與容量配置如何保留?
  268. Q268 · Domain、Set、Group、Media Unit 與 Namespace 是單一層級嗎?
  269. Q269 · 如何取得 Domain 與資源歸屬?
  270. Q270 · Reclaim Group、Reclaim Unit 與 RU Handle 各代表什麼?
  271. Q271 · Namespace 如何透過 Placement Handle 選擇 RU?
  272. Q272 · Media Unit Status Log 提供哪些資訊,如何走訪描述資料?
  273. Q273 · 能從 Media Unit Status 直接判斷 Namespace 不可用嗎?
  274. Q274 · 媒體狀態變化會產生哪些通知與紀錄?
  275. Q275 · 如何辨識管理實體的 Scope,避免混用 ID?
  276. Q276 · PRP1 如何描述第一頁的資料?
  277. Q277 · PRP2 何時是第二頁,何時是清單?
  278. Q278 · PRP List 如何串接多頁?
  279. Q279 · PRP 位址、Offset 與 List 有哪些對齊要求?
  280. Q280 · PRP 為 0、位址無效或鏈結錯誤時,能指定同一種錯誤嗎?
  281. Q281 · SGL Data Block、Segment 與 Last Segment 如何配合?
  282. Q282 · SGL 位址、長度、數量與類型錯誤如何區分?
  283. Q283 · Identify 的 SGL 能力如何限制合法用法?
  284. Q284 · Data Pointer 錯誤與 Data Transfer Error 有何不同?
  285. Q285 · PRP/SGL 錯誤如何與 CQE 及 Error Information 對回?
  286. Q286 · CQ 如何指定 Interrupt Vector?
  287. Q287 · 多條 CQ 共用 Vector 與獨立 Vector 有何不同?
  288. Q288 · Interrupt Coalescing 的 Threshold 與 Time 如何作用?
  289. Q289 · 如何停用 Interrupt Coalescing?
  290. Q290 · FID09h 是遮蔽中斷嗎?真正的 Mask 要如何設定?
  291. Q291 · Vector 被遮蔽時,Controller 還能寫 CQE 嗎?
  292. Q292 · 解除 Mask 後如何處理累積完成?
  293. Q293 · 已被 CQ 使用的 Vector 可以修改設定嗎?
  294. Q294 · Reset 後中斷設定要如何恢復?
  295. Q295 · Queue 刪除後如何回收中斷資源?
  296. Q296 · 如何比對 Interrupt、CQ 與實際完成行為?
  297. Q297 · 宣告支援的 Command 卻失敗,第一步怎麼查?
  298. Q298 · 未宣告支援的 Command 卻成功,是否一定合規?
  299. Q299 · Set 成功但 Get 或行為不同,如何縮小問題?
  300. Q300 · AER 已完成,但對應 Log 看不到資訊,怎麼查?
  301. Q301 · 失敗 CQE 沒新增 Error Entry,一定違規嗎?
  302. Q302 · CQE、Error Information 與 PEL 不同,何時才是矛盾?
  303. Q303 · Reset 後 Feature 保留或 Saved 遺失,如何判斷?
  304. Q304 · Namespace 變更後,Identify、Changed List 與 AER 如何對照?
  305. Q305 · Firmware Activation 後 FR 或 Slot 沒改,如何判斷?
  306. Q306 · Sanitize 命令成功後 Log 還在進行中,是錯誤嗎?
  307. Q307 · Self-test 已結束但沒有結果,如何驗證?
  308. Q308 · Shutdown 與 Unsafe Shutdowns 計數不符直覺,如何判斷?
  309. Q309 · Critical Warning 改變卻沒有 AER,先看哪些設定?
  310. Q310 · PEL 事件排列與實際時間不同,如何驗證?
  311. Q311 · CFS=1 卻缺少錯誤資訊,還能查什麼?
  312. Q312 · Abort 後看見兩次 Completion,如何判斷是否重複?
  313. Q313 · Delete 完成後仍存取 Queue Memory,有何問題?
  314. Q314 · Reset 後讀到舊 CQE,如何處理?
  315. Q315 · Detach 後 Namespace Command 仍成功,何時合理?
  316. Q316 · Lockdown 後仍可操作,如何確認是否漏鎖?
  317. Q317 · Power State 恢復太慢,如何量測才公平?
  318. Q318 · 如何比較三種 Reset 對同一功能的影響?
  319. Q319 · 如何判斷操作真正影響誰?
  320. Q320 · 如何把所有介面串成一次完整的符合性驗證?
  321. Q321 · 一筆 Read/Write 的長度合法嗎?如何一起檢查 MDTS、NLB 與 Namespace 範圍?
  322. Q322 · Write 已成功,資料就一定耐斷電嗎?Flush 與 FUA 各保證什麼?
  323. Q323 · 原子單位足夠,為什麼跨邊界的 Write 仍可能不具整筆原子性?
  324. Q324 · Read、Compare 與 Verify 成功,各能證明什麼?
  325. Q325 · Write Zeroes 與 Deallocate 之後,Read 一定回全零嗎?
  326. Q326 · PI 檢查為什麼沒有抓到錯誤?以 Type 1、16-bit Guard 格式逐步判讀
  327. Q327 · Copy 失敗後,CQE.DW0 能告訴我哪些資料已經複製?
  328. Q328 · Write Uncorrectable 後 Read 失敗,是媒體壞掉了嗎?