面壁UNH IOL NVMe一致性測試之 23 – Namespace Management & System Bus Registers

原創內容,轉載請注明:  [http://www.od-music.com]  謝謝!

Group 9 測試 Namespace Management

Test 9.1 – Namespace Management Identify Command

Case 1:CNS 10h & 11h – Namespace Lists

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Identify command,將CNS設為10h,將NSID設為 00h,獲取包含所有被分配的Namespace的Namespace List;
  3. Host向Namespace List中的每一個Namespace發送Identify command,將CNS設為11h,將NSID設為相應值,獲取每一個Namespace的Identify Namespace data structure;

期望結果

  1. Data structure被發送到PRP entry1,PRP entry 2以及Command Dword 10指定內存地址,SSD正常返回CQ;
  2. 所有的Identify Namespace data structure不是全‘0’填充;
  3. Namespace List中沒有被使用的entry,為全‘0’填充;

 

Case 2: CNS 12h – Controller List – Controllers Attached to a Namespace

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Identify command,將CNS設為02h,將NSID設為 00h,獲取包含所有active的Namespace的Namespace List;
  3. Host向Namespace List中的每一個Namespace發送Identify command,將CNS設為12h,將CNTID設為00h,將CDW1.NSID設為相應值,獲取包含所有attach到該Namespace的controller ID的Controller List;

期望結果

  1. Data structure被發送到PRP entry1,PRP entry 2以及Command Dword 10指定內存地址,SSD正常返回CQ;
  2. 返回的Controller List中包括當前被測試的Controller ID;
  3. Controller List包含有效值,有被使用的Entry為全‘0’填充;

 

Case 3: CNS 13h – Controller List? – All Controller

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Identify command,將CNS設為13h,將CNTID設為00h,獲取包含該NVM subsystem中所有Controller ID的Controller List;

期望結果

  1. Data structure被發送到PRP entry1,PRP entry 2以及Command Dword 10指定內存地址,SSD正常返回CQ;
  2. 返回的Controller List中包括當前被測試的Controller ID;
  3. Controller List包含有效值,有被使用的Entry為全‘0’填充;

 

Case 4:Common Namespace Data Structure

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Identify command,將CNS設為10h,將NSID設為 FFFFFFFFh,獲取包含有各Namespace之間通用的specifies capabilities的Identify Namespace data structure;

期望結果

  1. Data structure被發送到PRP entry1,PRP entry 2以及Command Dword 10指定內存地址,SSD正常返回CQ;

 

Test 9.2 – Namespace Management command

Case 1: Namespace Creation – Exceed Number Supported

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Namespace Management command,將Select字段設為0h(create),并為所帶data structure設置合理值;
  3. Host發送Identify command,將CNS設為11h,將NSID設為步驟2剛創建的Namespace的ID,獲取其Identify Namespace data structure;
  4. 重復步驟2創建更多Namespace,直到超過SSD支持的最大值;

期望結果

  1. SSD正常返回CQ;
  2. 步驟2成功創建一個inactive的Namespace,同時步驟3回復的Identify Namespace data structure中的capabilities與步驟2通過Namespace Management command設置的相同;
  3. 步驟4連續創建Namespace,超出SSD支持的最大數量時,SSD返回狀態 “ Namespace Identifier Unavailable”;

 

Case 2: Namespace Deletion

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Namespace Management command,將Select字段設為1h(create),將NSID設為一個active的Namespace;
  3. Host發送Identify command,將CNS設為02h,將NSID設為 00h,獲取包含所有active的Namespace的Namespace List;

期望結果

  1. SSD正常返回CQ;
  2. 步驟2刪除掉的Namespace,沒有出現在步驟3返回的Namespace List中;

 

Case 3:Namespace Creation – Insufficient Capacity

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Namespace Management command,將Select字段設為0h(create),并為所帶data structure設置合理值;
  3. Host發送Identify command,將CNS設為11h,將NSID設為步驟2剛創建的Namespace的ID,獲取其Identify Namespace data structure;
  4. 重復步驟2創建更多Namespace,直到占用空間超過SSD支持的最大容量;

期望結果

  1. SSD正常返回CQ;
  2. 步驟2成功創建一個inactive的Namespace,同時步驟3回復的Identify Namespace data structure中的capabilities與步驟2通過Namespace Management command設置的相同;
  3. 步驟4連續創建Namespace,占用空間超過SSD支持的最大容量時,SSD返回狀態 “ Namespace Insufficient Capacity”;

 

Test 9.3 – Namespace Attachment Command

Case 1:Namespace Attachment

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Namespace Attachment Command, 將Select字段設為0h(attach),NSID設為一個inactive的Namespace,并在自帶的data structure中指定相應的Controller ID;
  3. Host發送Identify command,將CNS設為02h,將NSID設為 00h,獲取包含所有active的Namespace的Namespace List;
  4. 重復步驟2進行Attach操作,使用與步驟2相同的Namespace ID;

期望結果

  1. SSD正常返回CQ;
  2. 步驟3返回的Namespace List中,包括步驟2中attach的Namespace;
  3. 步驟4的第二次Attach操作,SSD返回狀態 – “Namespace Already Attached”;

 

Case 2: Namespace Detachment

測試步驟

  1. 檢查SSD是否支持Namespace Management,如果不支持,本測試無效;
  2. Host發送Namespace Attachment Command, 將Select字段設為1h(Detach),NSID設為一個inactive的Namespace,并在自帶的data structure中指定相應的Controller ID;
  3. Host發送Namespace Attachment Command, 將Select字段設為1h(Detach),NSID設為一個當前attach的Namespace,并在自帶的data structure中指定相應的Controller ID;
  4. Host發送Identify command,將CNS設為02h,將NSID設為 00h,獲取包含所有active的Namespace的Namespace List;

期望結果

  1. SSD正常返回CQ;
  2. 步驟2的Namespace Attachment Command,SSD返回狀態 – “Namespace Not Attached”;
  3. 步驟4返回的Namespace List中不包括步驟3中被detach的Namespace;

 

 

Group 10 測試 System Bus Register

Test 10.1 PCI Express Capability Registers

測試步驟

  1. 配置Host與SSD建立PCIe link,enable NVMe controller;
  2. 檢查PCIe bringup過程,檢查PXCAP內容并記錄,確定PCIe capability structure ID為0x10;

期望結果

  1. PCIe Capabilities寄存器 (PXCAP) 遵循NVMe協議 Section 2.5的規定;

所有reserved bit為0;

分類目錄 SSD, 產品評測, 技術文章.
掃一掃二維碼或者微信搜索公眾號ssdfans關注(添加朋友->點最下面的公眾號->搜索ssdfans),可以經??吹絊SD技術和產業的文章(SSD Fans只推送干貨)。
ssdfans微信群介紹
技術討論群 覆蓋2000多位中國和世界華人圈SSD以及存儲技術精英
固件、軟件、測試群 固件、軟件和測試技術討論
異構計算群 討論人工智能和GPU、FPGA、CPU異構計算
ASIC-FPGA群 芯片和FPGA硬件技術討論群
閃存器件群 NAND、3D XPoint等固態存儲介質技術討論
企業級 企業級SSD、企業級存儲
銷售群 全國SSD供應商都在這里,砍砍價,會比某東便宜20%
工作求職群 存儲行業換工作,發招聘,要關注各大公司招聘信息,趕快來
高管群 各大SSD相關存儲公司高管和創始人、投資人

想加入這些群,請微信掃描下面二維碼,或搜索nanoarchplus,加阿呆為微信好友,介紹你的昵稱-單位-職務,注明群名,拉你進群。SSD業界需要什么幫助,也可以找阿呆聊。