我用一個(gè)或多或少完整的NVMe VIP測(cè)試用例示例結(jié)束了我的上一篇博客文章,試圖展示從基本設(shè)置到執(zhí)行NVM寫(xiě)入然后讀取的所有內(nèi)容。我們將在這里稍微改變一下,從 NVMe 命令轉(zhuǎn)移到一些可用于協(xié)助您測(cè)試的 VIP 功能。
在這里,您可以了解有關(guān)適用于 NVMe 和 PCIe 的 Synopsys VC 驗(yàn)證 IP 的更多信息。
為了讓您保持新鮮感,我們將繼續(xù)參考此圖:
如前所述,NVMe VIP 提供了一組豐富的功能來(lái)幫助測(cè)試。
后臺(tái)流量
您將在上圖中注意到位于 PCIE 端口模型(請(qǐng)求者、目標(biāo)/cmpltr 和驅(qū)動(dòng)程序)之上的幾個(gè)應(yīng)用程序。這些是可用于源(和接收)PCIe 流量(不是專門進(jìn)出 NVMe)的 PCIe 應(yīng)用程序。特別:
驅(qū)動(dòng)程序應(yīng)用程序 – 如果您想生成各種類型的TLP(例如CfgWr,IORd,MemWr),此應(yīng)用程序就是您的工具。TLP 的各個(gè)字段是可配置的,并且會(huì)檢查收到的完成(例如來(lái)自 MemRd 請(qǐng)求)的有效性和正確的數(shù)據(jù)。您還可以根據(jù)需要使用此工具配置或監(jiān)控 DUT。
目標(biāo)/完成者應(yīng)用程序 – 如果遠(yuǎn)程端點(diǎn)(例如控制器 DUT)將(非 NVMe)流量發(fā)送到此主機(jī) VIP,Target 應(yīng)用程序?qū)?zhí)行該請(qǐng)求,將其轉(zhuǎn)過(guò)來(lái)并生成一個(gè)或多個(gè)(根據(jù)需要和/或配置)完成操作返回到端點(diǎn)。提供定時(shí)和數(shù)據(jù)包大小控制,以及用于詳細(xì) TLP 修改的多個(gè)回調(diào)。
請(qǐng)求者申請(qǐng) – 此應(yīng)用程序會(huì)向目標(biāo)生成恒定的 TLP 負(fù)載。它可用于創(chuàng)建后臺(tái)流量,或在目標(biāo)上造成負(fù)載。流量速率、大小和類型都是可配置的。
錯(cuò)誤注入
VIP 的一個(gè)重要且有用的功能是內(nèi)置錯(cuò)誤注入。NVMe VIP 提供了一種簡(jiǎn)單但非常強(qiáng)大的機(jī)制來(lái)導(dǎo)致錯(cuò)誤注入,而不必使用回調(diào)和定向測(cè)試來(lái)導(dǎo)致錯(cuò)誤。對(duì)于每個(gè)“腳本...”用戶可用的任務(wù)(有關(guān)詳細(xì)信息,請(qǐng)參閱以前的帖子),有一個(gè)“錯(cuò)誤注入”參數(shù)??梢允褂酶鞣N參數(shù)填充此參數(shù),以導(dǎo)致該 NVMe 命令發(fā)生特定的錯(cuò)誤注入。對(duì)命令有效的特定錯(cuò)誤注入由潛在錯(cuò)誤條件控制(根據(jù) NVMe 規(guī)范)。
例如,檢查“創(chuàng)建 I/O 提交隊(duì)列”命令的規(guī)范會(huì)向我們顯示該命令可能導(dǎo)致的幾個(gè)錯(cuò)誤,例如“完成隊(duì)列無(wú)效”、“隊(duì)列標(biāo)識(shí)符無(wú)效”和“超出最大隊(duì)列大小”。您只需要提供類似的錯(cuò)誤注入代碼,然后會(huì)發(fā)生以下幾件事,而不是創(chuàng)建定向測(cè)試來(lái)導(dǎo)致這些情況:
VIP 將查找要生成的導(dǎo)致錯(cuò)誤的相應(yīng)值。
這些值將被放置在適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)中(例如提交隊(duì)列條目)。
收到錯(cuò)誤后,我們會(huì)自動(dòng)禁止顯示可能以其他方式引起的任何警告(畢竟這是一個(gè)錯(cuò)誤)。
如果預(yù)期的錯(cuò)誤沒(méi)有到達(dá),它將被標(biāo)記。
然后,系統(tǒng)已準(zhǔn)備好(如果需要)在沒(méi)有錯(cuò)誤注入的情況下重新運(yùn)行命令。
用戶無(wú)需進(jìn)一步工作來(lái)測(cè)試錯(cuò)誤 – 無(wú)需設(shè)置回調(diào),無(wú)需抑制錯(cuò)誤。一切都處理得干凈透明。
除了 NVMe 層的注入錯(cuò)誤之外,您還可以提供協(xié)議錯(cuò)誤注入。例如,要在 PCIe DL 層導(dǎo)致 LCRC 錯(cuò)誤,使用相同的過(guò)程:只需為該 LCRC 添加錯(cuò)誤注入?yún)?shù),它就會(huì)發(fā)生,檢查、重試并重新檢查事務(wù)。所有這些都是在沒(méi)有任何用戶幫助的情況下發(fā)生的。
隊(duì)列圍欄
在主機(jī)內(nèi)存中創(chuàng)建隊(duì)列時(shí),控制器可能會(huì)生成錯(cuò)誤的內(nèi)存請(qǐng)求,并可能非法訪問(wèn)隊(duì)列。這些訪問(wèn)由主機(jī)的隊(duì)列屏蔽機(jī)制捕獲和標(biāo)記。主機(jī)了解哪些操作(即讀取或?qū)懭耄┮约澳男┑刂穼?duì)控制器訪問(wèn)有效,并將警惕地監(jiān)視控制器的訪問(wèn),以確保它不會(huì)嘗試(例如)從完成隊(duì)列讀取或?qū)懭胩峤魂?duì)列。隊(duì)列和隊(duì)列條目邊界的有效性同樣檢查。
卷影磁盤(pán)
主機(jī) VIP 內(nèi)置的是一個(gè)卷影磁盤(pán),用于跟蹤和記錄對(duì)各種控制器命名空間的塊數(shù)據(jù)寫(xiě)入。一旦發(fā)生有效的寫(xiě)入,它就會(huì)提交到影子,以后的讀取訪問(wèn)將與影子數(shù)據(jù)進(jìn)行比較。盡管VIP用戶肯定擁有可用的實(shí)際讀/寫(xiě)數(shù)據(jù),但他們無(wú)需進(jìn)行數(shù)據(jù)比較/檢查 - NVMe主機(jī)VIP會(huì)以靜默和自動(dòng)的方式處理此問(wèn)題。
控制器配置跟蹤
與卷影磁盤(pán)類似,主機(jī)還跟蹤連接到系統(tǒng)的控制器的配置。這有幾部分:
寄存器跟蹤 – 當(dāng)控制器 NVMe 寄存器被寫(xiě)入時(shí),主機(jī)會(huì)“窺探”此寫(xiě)入,并將其存儲(chǔ)在本地“寄存器影子”中。VIP 的進(jìn)一步操作可以參考此內(nèi)容,以確保操作對(duì)于控制器的當(dāng)前狀態(tài)有效和/或合理。
識(shí)別跟蹤 – 正如我們?cè)谑纠校ㄔ谧罱鼛准校┲锌吹降哪菢樱琋VMe 協(xié)議讓我們同時(shí)執(zhí)行“識(shí)別控制器”和“識(shí)別命名空間”命令來(lái)收集控制器信息。這些信息的相關(guān)部分也會(huì)保存以供VIP使用。
特征跟蹤 – “設(shè)置功能”命令用于配置控制器的各種元素——我們監(jiān)視并收集“設(shè)置”和“獲取功能”命令信息(根據(jù)需要),以完成主機(jī)VIP對(duì)控制器當(dāng)前配置和狀態(tài)的理解。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
112文章
16464瀏覽量
179601 -
寄存器
+關(guān)注
關(guān)注
31文章
5369瀏覽量
121265 -
nvme
+關(guān)注
關(guān)注
0文章
222瀏覽量
22740
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Xilinx FPGA NVMe Host Controller IP,NVMe主機(jī)控制器
Xilinx FPGA高性能NVMe SSD主機(jī)控制器,NVMe Host Controller IP
高性能NVMe主機(jī)控制器,Xilinx FPGA NVMe Host Accelerator IP
Flashtec NVMe 3108 PCIe第四代NVMe固態(tài)硬盤(pán)控制器怎么樣?
如何使用Xilinx AXI VIP對(duì)自己的設(shè)計(jì)搭建仿真驗(yàn)證環(huán)境的方法
Synopsys為Arm AMBA CXS的VIP提供EDA驗(yàn)證解決方案
淺析Seagate demo世界首款原生NVMe HDD
![淺析Seagate demo世界首款原生<b class='flag-5'>NVMe</b> HDD](https://file.elecfans.com/web2/M00/21/01/poYBAGGgl5KAE35OAABDxa1noBo784.png)
Cadence推出15種新驗(yàn)證 IP(VIP)解決方案
Cadence推出新一代CXL VIP和系統(tǒng)VIP工具
使用AXI VIP的幾個(gè)關(guān)鍵步驟及常見(jiàn)功能
覆蓋模型 – 填補(bǔ)內(nèi)存VIP的漏洞
![覆蓋模型 – 填補(bǔ)內(nèi)存<b class='flag-5'>VIP</b>的漏洞](https://file.elecfans.com/web2/M00/A8/14/pYYBAGRvGdyAHg1wAAK2hTBFor8640.png)
管理NVMe驗(yàn)證復(fù)雜性
![管理<b class='flag-5'>NVMe</b><b class='flag-5'>驗(yàn)證</b>復(fù)雜性](https://file.elecfans.com/web2/M00/A7/BC/poYBAGRwF3eABJ4LAAJfx6sJs68535.png)
NVMe VIP架構(gòu):主機(jī)功能
![<b class='flag-5'>NVMe</b> <b class='flag-5'>VIP</b>架構(gòu):主機(jī)<b class='flag-5'>功能</b>](https://file.elecfans.com/web2/M00/A8/57/pYYBAGRwc4aAYzD_AARikJWM8Eg768.png)
新思科技NVMe VIP:高層次視圖
![新思科技<b class='flag-5'>NVMe</b> <b class='flag-5'>VIP</b>:高層次視圖](https://file1.elecfans.com/web2/M00/88/C2/wKgaomRwhauAE4ooAAPP-hTLMr0345.png)
新思科技PCIe 7.0驗(yàn)證IP(VIP)的特性
![新思科技PCIe 7.0<b class='flag-5'>驗(yàn)證</b>IP(<b class='flag-5'>VIP</b>)的特性](https://file1.elecfans.com/web2/M00/FE/FB/wKgaomagYzaAVq8XAAA79qVoSv4799.png)
評(píng)論