0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

測試SSD芯片,需要很多很多不一樣的設備

SSDFans ? 來源:未知 ? 作者:李倩 ? 2018-07-11 10:32 ? 次閱讀

儀器:Emulator

在SSD主控芯片設計階段,除了RTL Simulation以外,通常還會進行Verification的工作,而Verification中就會使用到Emulator或者FPGA。

先說一下Simulation和Emulation的區(qū)別:

Simulator是做仿真,基于軟件,重點是實現(xiàn)芯片的功能并輸出結果;

Emulator是做模擬,用硬件實現(xiàn),通過模擬實現(xiàn)芯片的內部設計,從而實現(xiàn)功能并輸出結果;

業(yè)界比較知名的Emulator提供商Cadence,旗下的Emulator產品Palladium系列,如圖所示。

圖1-1 Emulator

按照官方的說法,這貨可以做Simulation,Simulation Acceleration和Emulation。

在設計SSD主控芯片時,Emulator和FPGA都可以用于ASIC Verification,那這兩者區(qū)別有哪些? 個人理解,主要有這么幾點:

1. 價格:Emulator大概百萬刀級別,F(xiàn)PGA大概是數(shù)千到萬刀級別 ;

2. 能力:Emulator的邏輯可以到23億門(這是老款Palladium XP,最新款據Palladium Z1達到了90億門),F(xiàn)PGA大概是百萬門級別。對應到SSD主控里,一塊FPGA可能只能模擬前段(PCIe+NVMe),后端(閃存 Controller)可能需要另外一塊FPGA, 而Emulator,只要你想塞,整個ASIC的RTL塞進入也是妥妥的;

3. Debug:Emulator可以比較方便的導出ASIC攻城獅所需要的信號并抓取硬件邏輯波形,而FPGA在連接協(xié)議分析儀,邏輯分析儀方面比較方便;

4. 速度:Emulator雖然好,但是速度比FPGA要慢的多 – 來個傳說中的例子:如果FPGA上boot一個OS要幾個小時,那Emulator上boot一個OS可能要幾天

5. 逼格:FPGA是個公司就能有,Emulator則絕對是實力的彰顯—有領導,VIP來參觀的時候,給參觀一下,頓時就跟其他公司拉開差距了;

歸根結底,Emulator和FPGA都是很好的工具,需要正確,合理地使用,才能更好地在芯片研發(fā)階段發(fā)現(xiàn)更多ASIC問題。

Emulator(或FPGA)另一個好處是,固件團體可以使用這些工具提前開始開發(fā),不用等芯片回來以后,先經歷“不死也要脫層皮”的Bringup階段,然后才開始“遇到問題不知道硬件原因還是代碼原因的”開發(fā)階段。

Emulator – 致力于構建SSD主控和諧團隊!

儀器:協(xié)議分析儀(Analyzer)

要測試SSD,需要很多很多不一樣的設備,需要花很多很多的銀子。

目前市面上的SSD接口挺多,有什么SATASAS,PCIe,U.2, M.2, MSATA, GumStick,其實走的前端協(xié)議就兩大類: SATA/SAS和PCIe。

一顆SSD主控一般分前、中、后三段,前端就是SATA/SAS和PCIe這些配上AHCI或者NVMe,中段就是FTL,后端就是閃存控制器。

FTL是純軟件實現(xiàn),測這個基本上不需要什么設備。

后端跟閃存打交道,主要用邏輯分析儀,另一種巨貴的儀器,這里不展開說。

這里先聊兩種協(xié)議分析儀,SATA/SAS Analyzer 和 PCIe Analyzer。

Analyzer是個啥玩意兒?你可以這么理解,以SATA Analyzer為例, SATA Host和SATA SSD之間傳輸命令和數(shù)據,就像兩個人在打電話,不在這個線路上的你,正常情況下是聽不到的他們說了什么的。

Analyzer就相當于在他們兩之間裝了一個竊聽器,這樣你就可以完完整整的知道他們之間的對話,同時他們倆并不會察覺。

SATA/SAS Analyzer的供應商,平時接觸比較多的有兩家:SerialTek和LeCroy。

圖為SerialTek SATA/SAS Analyzer

圖1-2 SerialTek SATA/SAS協(xié)議分析儀

連在主機和SSD之間是這么個樣子,如圖所示。

圖1-3 SATA 協(xié)議分析儀連接示意圖

抓到的Trace是這個樣子,如圖所示。

圖1-4 SATA Trace示例

PCIe Analyzer的供應商,主要有三家: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ā)生的事務都解析出來,并且還提供Trigger(觸發(fā))的功能 。

對于Analyzer的一大挑戰(zhàn)就是在鏈路電源狀態(tài)切換的過程能夠快速適應,越早能夠實現(xiàn)正確的抓包并解析越好。

這點在調試的時候尤其重要,看一個實際的例子:對一個寄存器做CfgWr操作,但是結果發(fā)現(xiàn)寫進去的值不對,而且這個問題只在ASPM enable的時候才會發(fā)生。

電源狀態(tài)切換對于PCIe 發(fā)送端和接收端來說是屬于壓力比較大的操作,因此有時會導致鏈路不穩(wěn)定從而發(fā)送錯誤的包。這種問題調試需要抓trace,而analyzer必須在鏈路從L0s退出進入L0時發(fā)送的TLP都抓到,否則就無法查看錯誤到底在什么地方。而L0S退出的時間非常短,Analyzer需要在鏈路從electrical idle(空閑狀態(tài))退出后非常短的時間內(幾十個FTS)就能正確抓包并解析。

工具是死的,人是活的,啥時候抓trace,抓哪個階段,抓的時候滿屏的紅色怎么辦,怎么設Trigger,trace怎么分析?這些就需要攻城獅們自己花時間琢磨了。

儀器:Jammer

再牛的肖邦,也彈不出SSD廠商的悲傷。

一塊SSD到不同客戶手上,不知道會接在什么機器,使用什么樣的OS和主機驅動,在什么環(huán)境下使用,

結合巨大的使用數(shù)量,不知道哪天某塊SSD就會從主機那邊收到一個不按套路出牌的FIS或者Primitive (SATA SSD)。

舉個例子: 主機發(fā)了一個讀命令,SSD二話不說開始干活,辛辛苦苦把數(shù)據從閃存里讀出來,仔仔細細的進行ECC解碼,小心翼翼傳到DDR,進行MPECC檢查,再全神貫注的傳到SATA模塊的某個FIFO,這時候SSD抹抹頭上的汗,把手擦干凈,寫了一張字條,上書”X_RDY”, 恭恭敬敬的遞給主機, 然后把數(shù)據捧在懷里,細心的用SOF包裝好,殷切的期盼主機也回復一張小字條“R_RDY”。主機十分感動的看著SSD,然后回復了一句“R_ERR”拒絕了他。

林子大了,什么樣的客戶都有,但是客戶們的要求是一樣的——“主機虐你千百遍,SSD你要待他如初戀” ——術語叫做Robustness (健壯性)。

為了保證健壯性,ASIC和固件攻城獅們要花大量的精力,腦補各種錯誤可能性,在RTL和FW 中加入相應的錯誤處理(Error Handling)的流程。

這么做有兩個問題:

這些錯誤處理的流程,在實驗室里面跑個一禮拜,可能也撞不到一個;

再牛的攻城獅,也沒法提前考慮到各種錯誤可能性。

與其讓別人找麻煩,不如自己給自己找麻煩。搞測試的就是平時給ASIC和固件找麻煩,以SATA SSD來說,可以用一種工具——Jammer.

圖中小一號的那個就是SATA Jammer。

圖為SATA 協(xié)議分析和Jammer

如果說Analyzer是一個竊聽器,讓你知道主機和設備之間發(fā)生了什么,那么Jammer就是一個郵遞員,主機和設備之間所有的通信都必須經過他的手,然后Jammer可以把信拆開,將里面的內容修改或者替換,再轉發(fā)出去。

結合之前的例子,我們可以把正常主機回復R_RDY改成R_ERR, 從而檢查SSD遇到這種情況處理是否正確。

圖為Jammer管理軟件截圖——向一個Data FIS中故意注入CRC Error。

通過在SATA鏈路上創(chuàng)建各種不同的錯誤,可以確認各種錯誤處理的流程是否正確,或者完善,甚至增加新的流程。

Jammer還有別的用處,當你想知道某種場景(Scenario)發(fā)生以后主機或者設備的反應時,你可以通過Jammer來知道答案。比如當設備回復的SDB里面Error Bit被置上,或者設備一直不發(fā)SDB時,主機是不是會重發(fā)命令,重發(fā)幾次,重發(fā)多次設備都沒反應的話Driver會不會啟動OOB,Application會不會報錯?

Jammer -- 你值得擁有。

本文節(jié)選自《深入淺出SSD:固態(tài)存儲核心技術、原理與實戰(zhàn)》一書

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    450

    文章

    49636

    瀏覽量

    417151
  • 測試儀器
    +關注

    關注

    0

    文章

    416

    瀏覽量

    33729
  • SSD
    SSD
    +關注

    關注

    20

    文章

    2791

    瀏覽量

    116649

原文標題:京滬深一套房才能換一臺的神秘芯片測試儀器

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    mutlisim有些芯片不一樣

    mutlisim有些怎么和實際芯片不一樣,英文字母也變了,都搞不懂{:23:}
    發(fā)表于 12-18 20:34

    線損校準,為啥不一樣

    線損校準,為啥不一樣,今天測試時發(fā)現(xiàn),校準是,信號源頻率不一樣,線損差別很大,有1dB 多?。?!
    發(fā)表于 06-05 13:58

    數(shù)據類型不一樣和接口 怎么解決

    要怎么解決接口和產生的數(shù)據類型不一樣的問題,然后利用MYRIO的模擬輸出通道接到示波器里面為什么沒有波形啊,數(shù)據類型應該是不一樣,要怎么解決這個問題呢?
    發(fā)表于 05-09 01:00

    請問F2806X的芯片和F2806的有哪些不一樣?

    請教F2806X的芯片和F2806的有哪些不一樣?我的理解是只有ADC不一樣,其他的SPI、SCI、ePWM、eCAN、eQEP等都一樣的;
    發(fā)表于 12-21 11:18

    為什么我的淚滴不一樣

    我的淚滴怎么和網上的不一樣??
    發(fā)表于 03-13 15:23

    SWD和傳統(tǒng)的調試方式有什么不一樣

    SWD 仿真模式概念簡述先所說 SWD 和傳統(tǒng)的調試方式有什么不一樣:首先給大家介紹下經驗之談:(): SWD 模式比 JTAG 在高速模式下面更加可靠. 在大數(shù)據量的情況下面 JTAG 下載 程序會失敗, 但是 SWD 發(fā)生的幾率會小
    發(fā)表于 02-23 06:38

    蘋果2017新款MacBook Air將添加許多不一樣的設計元素 配備E-Lnk鍵盤

    盡管蘋果之前對于MacBook Pro進行了更新,新款的MacBook Pro也更加輕薄,但是新版MacBook Air卻始終沒有露面,以至于很多人都在猜測蘋果已經砍掉了Air系列。最近有消息稱,蘋果將會在2017年初公布MacBook Air的更新版本,并且新版本將會添加許多不
    發(fā)表于 02-25 13:35 ?6547次閱讀

    可穿戴設備的發(fā)展會給物聯(lián)網帶來什么不一樣的改革嗎?

    5G是未來發(fā)展的趨勢,但是也有很多朋友對于5G的未來用途和發(fā)展情況表示些疑問,追主要的就是5G和物聯(lián)網到底有什么關系呢?5G的發(fā)展會給物聯(lián)網帶來什么不一樣的改革嗎?
    的頭像 發(fā)表于 09-11 16:13 ?2326次閱讀

    語音芯片和放音芯片有什么不一樣?

    又有什么不一樣? 首先,我們要知道的是語音芯片從功能應用上可劃分為錄音語音芯片和放音語音芯片,錄音語音芯片就是我們常說的錄音
    的頭像 發(fā)表于 06-17 09:29 ?2080次閱讀

    氣密性測試與氣壓測試有什么不一樣的呢?

    氣密性測試與氣壓測試有什么不一樣的呢?
    發(fā)表于 12-27 15:38 ?4114次閱讀

    色環(huán)電感供應商科普為什么同款插件色環(huán)電感的電流大小不一樣

    大家探討的就是:同為0510色環(huán)電感2.2uh規(guī)格的,為什么電流大小不一樣? 很多人留言問色環(huán)電感有沒有可以替代的?0510和0410色環(huán)電感是否可以直接替換?要更換當前使用的電感方案是件非常謹慎的事情,是
    的頭像 發(fā)表于 12-12 15:15 ?835次閱讀

    C++中不一樣的重載是什么

    這里想分享C++中不一樣的重載,即const重載。
    的頭像 發(fā)表于 02-21 14:02 ?669次閱讀
    C++中<b class='flag-5'>不一樣</b>的重載是什么

    電容容量一樣大小不一樣能用嗎

    有時候家里面電器中的電容損壞,很多人很難找到一模一樣的來更換,能找到容量致的電容器就不容易了,電容容量一樣大小不一樣能用嗎?
    的頭像 發(fā)表于 09-21 09:54 ?2080次閱讀

    不同芯片的DMA(Direct Memory Access)是不一樣

    不同芯片的DMA(Direct Memory Access)是不一樣
    的頭像 發(fā)表于 10-16 09:14 ?1242次閱讀

    拼接屏白底顏色不一樣怎么解決?

    在拼接屏使用過程中,有時會遇到白底顏色不一樣的問題,這可能會影響到整個顯示畫面的質量和效果。
    的頭像 發(fā)表于 11-24 10:22 ?611次閱讀