儀器:Emulator
在SSD主控芯片設(shè)計階段,除了RTL Simulation以外,通常還會進行Verification的工作,而Verification中就會使用到Emulator或者FPGA。
先說一下Simulation和Emulation的區(qū)別:
Simulator是做仿真,基于軟件,重點是實現(xiàn)芯片的功能并輸出結(jié)果;
Emulator是做模擬,用硬件實現(xiàn),通過模擬實現(xiàn)芯片的內(nèi)部設(shè)計,從而實現(xiàn)功能并輸出結(jié)果;
業(yè)界比較知名的Emulator提供商Cadence,旗下的Emulator產(chǎn)品Palladium系列,如圖所示。
圖1-1 Emulator
按照官方的說法,這貨可以做Simulation,Simulation Acceleration和Emulation。
在設(shè)計SSD主控芯片時,Emulator和FPGA都可以用于ASIC Verification,那這兩者區(qū)別有哪些? 個人理解,主要有這么幾點:
1. 價格:Emulator大概百萬刀級別,F(xiàn)PGA大概是數(shù)千到萬刀級別 ;
2. 能力:Emulator的邏輯可以到23億門(這是老款Palladium XP,最新款據(jù)Palladium Z1達(dá)到了90億門),F(xiàn)PGA大概是百萬門級別。對應(yīng)到SSD主控里,一塊FPGA可能只能模擬前段(PCIe+NVMe),后端(閃存 Controller)可能需要另外一塊FPGA, 而Emulator,只要你想塞,整個ASIC的RTL塞進入也是妥妥的;
3. Debug:Emulator可以比較方便的導(dǎo)出ASIC攻城獅所需要的信號并抓取硬件邏輯波形,而FPGA在連接協(xié)議分析儀,邏輯分析儀方面比較方便;
4. 速度:Emulator雖然好,但是速度比FPGA要慢的多 – 來個傳說中的例子:如果FPGA上boot一個OS要幾個小時,那Emulator上boot一個OS可能要幾天
5. 逼格:FPGA是個公司就能有,Emulator則絕對是實力的彰顯—有領(lǐng)導(dǎo),VIP來參觀的時候,給參觀一下,頓時就跟其他公司拉開差距了;
歸根結(jié)底,Emulator和FPGA都是很好的工具,需要正確,合理地使用,才能更好地在芯片研發(fā)階段發(fā)現(xiàn)更多ASIC問題。
Emulator(或FPGA)另一個好處是,固件團體可以使用這些工具提前開始開發(fā),不用等芯片回來以后,先經(jīng)歷“不死也要脫層皮”的Bringup階段,然后才開始“遇到問題不知道硬件原因還是代碼原因的”開發(fā)階段。
Emulator – 致力于構(gòu)建SSD主控和諧團隊!
儀器:協(xié)議分析儀(Analyzer)
要測試SSD,需要很多很多不一樣的設(shè)備,需要花很多很多的銀子。
目前市面上的SSD接口挺多,有什么SATA,SAS,PCIe,U.2, M.2, MSATA, GumStick,其實走的前端協(xié)議就兩大類: SATA/SAS和PCIe。
一顆SSD主控一般分前、中、后三段,前端就是SATA/SAS和PCIe這些配上AHCI或者NVMe,中段就是FTL,后端就是閃存控制器。
FTL是純軟件實現(xiàn),測這個基本上不需要什么設(shè)備。
后端跟閃存打交道,主要用邏輯分析儀,另一種巨貴的儀器,這里不展開說。
這里先聊兩種協(xié)議分析儀,SATA/SAS Analyzer 和 PCIe Analyzer。
Analyzer是個啥玩意兒?你可以這么理解,以SATA Analyzer為例, SATA Host和SATA SSD之間傳輸命令和數(shù)據(jù),就像兩個人在打電話,不在這個線路上的你,正常情況下是聽不到的他們說了什么的。
Analyzer就相當(dāng)于在他們兩之間裝了一個竊聽器,這樣你就可以完完整整的知道他們之間的對話,同時他們倆并不會察覺。
SATA/SAS Analyzer的供應(yīng)商,平時接觸比較多的有兩家:SerialTek和LeCroy。
圖為SerialTek SATA/SAS Analyzer
圖1-2 SerialTek SATA/SAS協(xié)議分析儀
連在主機和SSD之間是這么個樣子,如圖所示。
圖1-3 SATA 協(xié)議分析儀連接示意圖
抓到的Trace是這個樣子,如圖所示。
圖1-4 SATA Trace示例
PCIe Analyzer的供應(yīng)商,主要有三家:LeCroy,SerialTek和Agilent。
圖為LeCroy的PCIe Analyzer:
圖1-5 LeCroy PCIe 協(xié)議分析儀
配有各種Interposer卡,如圖所示:
圖1-6 LeCroy PCIe 協(xié)議分析儀 Interposer cards
抓到的Trace是這個樣子的(這是一個NVMe讀寫的命令,LeCroy可以幫你解碼NVMe,AHCI這種常見的存儲協(xié)議),圖7-14中,軟件將PCIe Trace中的NVMe命令解析了出來。
圖1-7 PCIe軟件解析NVMe指令
使用PCIe Analyzer可以測量PCIe的物理層,鏈路層,事物層。跟示波器不同,Analyzer可以基于PCIe協(xié)議將鏈路上所有Lane上發(fā)生的事務(wù)都解析出來,并且還提供Trigger(觸發(fā))的功能 。
對于Analyzer的一大挑戰(zhàn)就是在鏈路電源狀態(tài)切換的過程能夠快速適應(yīng),越早能夠?qū)崿F(xiàn)正確的抓包并解析越好。
這點在調(diào)試的時候尤其重要,看一個實際的例子:對一個寄存器做CfgWr操作,但是結(jié)果發(fā)現(xiàn)寫進去的值不對,而且這個問題只在ASPM enable的時候才會發(fā)生。
電源狀態(tài)切換對于PCIe 發(fā)送端和接收端來說是屬于壓力比較大的操作,因此有時會導(dǎo)致鏈路不穩(wěn)定從而發(fā)送錯誤的包。這種問題調(diào)試需要抓trace,而analyzer必須在鏈路從L0s退出進入L0時發(fā)送的TLP都抓到,否則就無法查看錯誤到底在什么地方。而L0S退出的時間非常短,Analyzer需要在鏈路從electrical idle(空閑狀態(tài))退出后非常短的時間內(nèi)(幾十個FTS)就能正確抓包并解析。
工具是死的,人是活的,啥時候抓trace,抓哪個階段,抓的時候滿屏的紅色怎么辦,怎么設(shè)Trigger,trace怎么分析?這些就需要攻城獅們自己花時間琢磨了。
儀器:Jammer
再牛的肖邦,也彈不出SSD廠商的悲傷。
一塊SSD到不同客戶手上,不知道會接在什么機器,使用什么樣的OS和主機驅(qū)動,在什么環(huán)境下使用,
結(jié)合巨大的使用數(shù)量,不知道哪天某塊SSD就會從主機那邊收到一個不按套路出牌的FIS或者Primitive (SATA SSD)。
舉個例子: 主機發(fā)了一個讀命令,SSD二話不說開始干活,辛辛苦苦把數(shù)據(jù)從閃存里讀出來,仔仔細(xì)細(xì)的進行ECC解碼,小心翼翼傳到DDR,進行MPECC檢查,再全神貫注的傳到SATA模塊的某個FIFO,這時候SSD抹抹頭上的汗,把手擦干凈,寫了一張字條,上書”X_RDY”, 恭恭敬敬的遞給主機, 然后把數(shù)據(jù)捧在懷里,細(xì)心的用SOF包裝好,殷切的期盼主機也回復(fù)一張小字條“R_RDY”。主機十分感動的看著SSD,然后回復(fù)了一句“R_ERR”拒絕了他。
林子大了,什么樣的客戶都有,但是客戶們的要求是一樣的——“主機虐你千百遍,SSD你要待他如初戀” ——術(shù)語叫做Robustness (健壯性)。
為了保證健壯性,ASIC和固件攻城獅們要花大量的精力,腦補各種錯誤可能性,在RTL和FW 中加入相應(yīng)的錯誤處理(Error Handling)的流程。
這么做有兩個問題:
這些錯誤處理的流程,在實驗室里面跑個一禮拜,可能也撞不到一個;
再牛的攻城獅,也沒法提前考慮到各種錯誤可能性。
與其讓別人找麻煩,不如自己給自己找麻煩。搞測試的就是平時給ASIC和固件找麻煩,以SATA SSD來說,可以用一種工具——Jammer.
圖中小一號的那個就是SATA Jammer。
圖為SATA 協(xié)議分析和Jammer
如果說Analyzer是一個竊聽器,讓你知道主機和設(shè)備之間發(fā)生了什么,那么Jammer就是一個郵遞員,主機和設(shè)備之間所有的通信都必須經(jīng)過他的手,然后Jammer可以把信拆開,將里面的內(nèi)容修改或者替換,再轉(zhuǎn)發(fā)出去。
結(jié)合之前的例子,我們可以把正常主機回復(fù)R_RDY改成R_ERR, 從而檢查SSD遇到這種情況處理是否正確。
圖為Jammer管理軟件截圖——向一個Data FIS中故意注入CRC Error。
通過在SATA鏈路上創(chuàng)建各種不同的錯誤,可以確認(rèn)各種錯誤處理的流程是否正確,或者完善,甚至增加新的流程。
Jammer還有別的用處,當(dāng)你想知道某種場景(Scenario)發(fā)生以后主機或者設(shè)備的反應(yīng)時,你可以通過Jammer來知道答案。比如當(dāng)設(shè)備回復(fù)的SDB里面Error Bit被置上,或者設(shè)備一直不發(fā)SDB時,主機是不是會重發(fā)命令,重發(fā)幾次,重發(fā)多次設(shè)備都沒反應(yīng)的話Driver會不會啟動OOB,Application會不會報錯?
Jammer -- 你值得擁有。
本文節(jié)選自《深入淺出SSD:固態(tài)存儲核心技術(shù)、原理與實戰(zhàn)》一書
-
芯片
+關(guān)注
關(guān)注
456文章
51037瀏覽量
425484 -
測試儀器
+關(guān)注
關(guān)注
0文章
438瀏覽量
33898 -
SSD
+關(guān)注
關(guān)注
21文章
2871瀏覽量
117594
原文標(biāo)題:京滬深一套房才能換一臺的神秘芯片測試儀器
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論