從一開始,NVMe 就旨在支持多個(gè)主機(jī)訪問(wèn)共享媒體。早期實(shí)施包括 PCIe 內(nèi)置設(shè)備,如端點(diǎn) (EP)、根復(fù)合體 (RC) 和根復(fù)合體集成端點(diǎn) (RCiEP);隨著時(shí)間的推移,云和存儲(chǔ)基礎(chǔ)架構(gòu)產(chǎn)生了對(duì)遠(yuǎn)程存儲(chǔ)的需求。
NVMe 實(shí)現(xiàn)可以解決 SATA 點(diǎn)對(duì)點(diǎn)架構(gòu)和 SAS 占用的空間問(wèn)題。在這兩個(gè)領(lǐng)域成功采用是由于低延遲和通用存儲(chǔ)接口的承諾,無(wú)論位置如何。盡管這兩個(gè)用例中的驗(yàn)證挑戰(zhàn)相似,但它們?nèi)匀恍枰煌乃季S過(guò)程。
點(diǎn)對(duì)點(diǎn)架構(gòu)中使用的 NVMe 要求以控制器實(shí)現(xiàn)為中心進(jìn)行驗(yàn)證。在這種情況下,控制器的數(shù)量< 10,邏輯內(nèi)置于硬件、應(yīng)用軟件和固件中。帶寬和吞吐量是點(diǎn)對(duì)點(diǎn)架構(gòu)中的關(guān)鍵度量。NVMe控制器設(shè)計(jì)人員需要在實(shí)現(xiàn)中做出權(quán)衡,以實(shí)現(xiàn)成本/性能目標(biāo),盡管關(guān)鍵權(quán)衡是在各種功能的硬件和軟件實(shí)現(xiàn)之間進(jìn)行的。這些權(quán)衡的細(xì)節(jié)不會(huì)在這里討論,但足以說(shuō)明線路的位置對(duì)驗(yàn)證工程師很重要。
硬件/軟件分區(qū)帶來(lái)了驗(yàn)證的復(fù)雜性。傳統(tǒng)上,硬件在仿真中得到驗(yàn)證,因?yàn)樗枰鼑?yán)格和徹底的測(cè)試。軟件實(shí)現(xiàn)的功能在協(xié)同仿真和硬件加速驗(yàn)證環(huán)境中經(jīng)過(guò)輕度測(cè)試,因?yàn)槿绻虏挥绊懹布?,則更新成本不高。我們?cè)谶@里看到的驗(yàn)證挑戰(zhàn)是驗(yàn)證用于加速各種軟件功能的實(shí)現(xiàn)特定硬件。在這里,軟件通常需要設(shè)置并卸載到硬件。根據(jù)軟件實(shí)現(xiàn)的復(fù)雜程度,仿真可能需要數(shù)天時(shí)間才能達(dá)到驗(yàn)證目標(biāo)點(diǎn)。協(xié)同仿真的仿真啟動(dòng)是一種直接的進(jìn)度威脅。
為了解決仿真中的硬件和軟件問(wèn)題,許多驗(yàn)證團(tuán)隊(duì)利用ZeBu等硬件加速平臺(tái)。硬件加速允許 NVMe 驅(qū)動(dòng)程序在可以連接到仿真設(shè)備的 CPU 上啟動(dòng)。這里最大的挑戰(zhàn)是可重用性。傳統(tǒng)上,在仿真中編寫的測(cè)試針對(duì)仿真測(cè)試平臺(tái)進(jìn)行了優(yōu)化,并不完全適用于加速環(huán)境。Synopsys 的 ZeBu 平臺(tái)已通過(guò)支持在加速中重用仿真驗(yàn)證 IP 并保留仿真和加速平臺(tái)之間的相同用戶界面,解決了這一問(wèn)題。由于 ZeBu 加速平臺(tái)的執(zhí)行性能提高了 100 倍,現(xiàn)在可以啟動(dòng)軟件。這種方法允許模擬更深入地進(jìn)入測(cè)試,以發(fā)現(xiàn)可以審查管道、內(nèi)存帶寬、翻轉(zhuǎn)條件或卡住或一次性故障的功能錯(cuò)誤。加速還允許基于波形的調(diào)試,這是解決基于硬件的問(wèn)題所必需的。
需要考慮其他仿真優(yōu)化來(lái)縮短測(cè)試運(yùn)行時(shí)間。對(duì)于以 PCIe 作為傳輸?shù)?NVMe,可以刪除整個(gè) PCIe 堆棧,從而公開 NVMe 和 PCIe 堆棧之間的專有 TLP 接口。PCIe 堆棧往往很大,需要設(shè)置時(shí)間。刪除堆棧也會(huì)刪除此基于規(guī)范的設(shè)置時(shí)間。刪除 PCIe 傳輸時(shí),需要考慮其他事項(xiàng),例如緩沖區(qū)管理、中斷等。對(duì)于使用 AXI 接口(與專有 TLP 接口相比)的 PCIe 設(shè)計(jì) IP,由于 AXI 是公共標(biāo)準(zhǔn),因此更容易刪除 PCIe 堆棧。這使得AXI接口的中斷相對(duì)便攜。
點(diǎn)對(duì)點(diǎn)調(diào)試相對(duì)簡(jiǎn)單,盡管通常很乏味。事務(wù)和模擬日志用于追蹤與 NVMe 命令關(guān)聯(lián)的內(nèi)存事務(wù)。記分牌也可以在內(nèi)聯(lián)和邊帶記分牌中得到有效利用。調(diào)試的另一個(gè)關(guān)鍵方面是監(jiān)視在內(nèi)存中構(gòu)造和操作的結(jié)構(gòu)。跟蹤從未進(jìn)入完成隊(duì)列的完成可能非常困難,因?yàn)榭刂破髡谥鳈C(jī)或驗(yàn)證 IP 的監(jiān)視之外執(zhí)行內(nèi)存訪問(wèn)。擁有“監(jiān)視”此內(nèi)存的能力,無(wú)論該功能內(nèi)置于驗(yàn)證IP還是驗(yàn)證組件中,都將節(jié)省無(wú)數(shù)小時(shí)的調(diào)試時(shí)間。要考慮的另一個(gè)驗(yàn)證工具是跟蹤位于鏈路另一端的控制器、命名空間和其他資源的狀態(tài)。通過(guò)跟蹤驗(yàn)證環(huán)境中的狀態(tài),可以通過(guò)以下方式節(jié)省大量調(diào)試時(shí)間:
? 標(biāo)記測(cè)試編寫器格式不正確的命令 ? 標(biāo)記由于版本不足或功能
不支持而導(dǎo)致控制器不支持的命令
? 標(biāo)記與尚未設(shè)置的先決條件設(shè)施相關(guān)的問(wèn)題
一旦驗(yàn)證環(huán)境可以跟蹤控制器和命名空間,相同的跟蹤將自動(dòng)擴(kuò)展到具有多個(gè)控制器/命名空間的環(huán)境,從而為上述調(diào)試節(jié)省時(shí)間提供乘數(shù)效應(yīng)。
設(shè)計(jì)最有效的核查環(huán)境以及選擇最佳的核查組件對(duì)于實(shí)現(xiàn)核查時(shí)間表的“左移”至關(guān)重要。通過(guò)重用組件、序列等,可以花更多的時(shí)間來(lái)發(fā)現(xiàn)/修復(fù)真正的 DUT 錯(cuò)誤。不要低估良好的調(diào)試工具所節(jié)省的時(shí)間 - 防止不良測(cè)試,指出DUT問(wèn)題,標(biāo)記DUT錯(cuò)誤配置等。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
112文章
16133瀏覽量
177147 -
PCIe
+關(guān)注
關(guān)注
15文章
1211瀏覽量
82372 -
nvme
+關(guān)注
關(guān)注
0文章
214瀏覽量
22567
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論