《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 设计应用 > 解决PCI Express协议一致性问题
解决PCI Express协议一致性问题
Mike Bartley, Jim Hutchinson,
摘要: 在开发第一块基于PCI Express的SoC过程中,ClearSpeed公司为了在有限的时间和预算条件下确保PCI Express协议一致性而面临重重困难。PCI Express是一种复杂的协议,具有特别大的覆盖范围。从管理的角度看,保证协议一致性没有其它更好的方法,只有采用标准驱动的验证过程。遗憾的是,即使做了上千次覆盖相关场景的测试,仍留有相当大的覆盖漏洞,从而使得这个方法没有可预测性,成本也很高。而另外一种普通的随机测试方法也没有足够的可预测性。
關(guān)鍵詞: 控制网络 PCI Express
Abstract:
Key words :

    在開發(fā)第一塊基于PCI Express的SoC過程中,ClearSpeed公司為了在有限的時間和預(yù)算條件下確保PCI Express協(xié)議一致性而面臨重重困難。PCI Express是一種復(fù)雜的協(xié)議,具有特別大的覆蓋范圍。從管理的角度看,保證協(xié)議一致性沒有其它更好的方法,只有采用標(biāo)準(zhǔn)驅(qū)動的驗(yàn)證過程。遺憾的是,即使做了上千次覆蓋相關(guān)場景的測試,仍留有相當(dāng)大的覆蓋漏洞,從而使得這個方法沒有可預(yù)測性,成本也很高。而另外一種普通的隨機(jī)測試方法也沒有足夠的可預(yù)測性。

    ClearSpeed公司開始意識到,理想的方法可以產(chǎn)生顯著的好處:它能最小化技術(shù)開發(fā)工作量,同時最大化測試應(yīng)用控制。ClearSpeed公司率先采用Cadence公司提供的商用化PCIe驗(yàn)證IP。這種驗(yàn)證IP被稱為UVC,包含了一致性管理系統(tǒng)(CMS),該系統(tǒng)將覆蓋空間劃分和映射到了PCIe規(guī)范。CMS還提供受限隨機(jī)測試(稱為測試序列)形式的一致性測試套件,用于自動取得針對每個PCIe規(guī)范部分的高功能性覆蓋。

    ClearSpeed公司還在UVC基礎(chǔ)上創(chuàng)建了自己的受限隨機(jī)測試套件。相關(guān)覆蓋在每次測試組運(yùn)行之后都會進(jìn)行分析,從而能清楚地理解覆蓋漏洞出現(xiàn)在什么地方,并指導(dǎo)新的測試應(yīng)在什么地方進(jìn)行以到達(dá)未被覆蓋的場景。這種方法還向ClearSpeed提供了無價的項(xiàng)目管理工具,因?yàn)樗軒椭斫夂蛨蟾骝?yàn)證狀態(tài)。ClearSpeed公司目前能夠在每個主要的規(guī)范領(lǐng)域正常地跟蹤覆蓋、缺陷統(tǒng)計(jì)和測試故障。

工程背景

    ClearSpeed公司的產(chǎn)品范圍包括芯片、加速器卡、機(jī)架模塊、軟件和支持。ClearSpeed公司的芯片、加速器卡和機(jī)架模塊都可以與工業(yè)標(biāo)準(zhǔn)的x86系統(tǒng)一起使用。ClearSpeed公司的芯片采用C語言進(jìn)行編程,并且公司向用戶提供可與所有標(biāo)準(zhǔn)軟件開發(fā)工具協(xié)同工作的完整IDE,如圖1所示。


圖1:ClearSpeed產(chǎn)品概要。

    與以前的CXS600芯片相比,主要變化如下:
    1. 一個芯片上有兩個處理器內(nèi)核(“MTAP”)
    2. 芯片上有一個標(biāo)準(zhǔn)的PCIe接口(相對私有PCIx接口而言)
    3. MTAP有多項(xiàng)的改進(jìn)

總體驗(yàn)證需求和策略

    圖1給出了ClearSpeed產(chǎn)品的架構(gòu)。為了確保這個復(fù)雜產(chǎn)品的質(zhì)量,需要對以下性能進(jìn)行驗(yàn)證:
    1. 驅(qū)動程序代碼與芯片的緊密集成
    2. 眾多軟件庫和應(yīng)用程序的集成
    3. 與各種主機(jī)(操作系統(tǒng)和芯片組)環(huán)境的兼容性
    4. 高性能和低功率

    從芯片本身看,主要驗(yàn)證挑戰(zhàn)是最新引入的PCIe接口。為了應(yīng)對這些驗(yàn)證挑戰(zhàn),ClearSpeed公司采用了一種適合待測復(fù)雜設(shè)計(jì)的先進(jìn)驗(yàn)證策略。整個驗(yàn)證策略中有一些要點(diǎn)是可以明確的:

  1. 這種驗(yàn)證策略是以仿真為基礎(chǔ),并采用了覆蓋驅(qū)動的偽隨機(jī)方法。
  2. 使用了分層仿真策略,從模塊級開始,并逐漸向外擴(kuò)展。
  3. 與軟件的協(xié)同仿真非常重要,它有助于展示產(chǎn)品的正確性,并在芯片回廠時為硅片取得成功取得了良好開端。
  4. 軟件協(xié)同仿真也是分層執(zhí)行的,從驅(qū)動程序開始,一直擴(kuò)展到應(yīng)用程序。
  5. 模塊和層次體系之間的驗(yàn)證再利用。
  6. 使用驗(yàn)證IP。這樣做有利于充分利用該領(lǐng)域?qū)<业默F(xiàn)有知識,并有利于加快測試平臺的開發(fā)速度。

    總的驗(yàn)證指導(dǎo)原則是在芯片開發(fā)初期從商業(yè)和技術(shù)角度獲得簽字確認(rèn)標(biāo)準(zhǔn)。這些確認(rèn)標(biāo)準(zhǔn)是客觀性的,可以使用合適的準(zhǔn)則進(jìn)行測量。這樣做具有很多優(yōu)點(diǎn),包括:
    1. 能夠使所有感興趣方預(yù)先同意用于驗(yàn)證的對象。
    2. 能夠在項(xiàng)目執(zhí)行中跟蹤向驗(yàn)證簽字確認(rèn)方向發(fā)展的進(jìn)程。
    3. 能夠建立流片時的信心。


圖2:ClearSpeed公司當(dāng)前的CXS700架構(gòu)。

    為了與上述原則保持一致,預(yù)先對CSX700驗(yàn)證確認(rèn)標(biāo)準(zhǔn)進(jìn)行了定義。所選的關(guān)鍵指標(biāo)有:
    1. 功能覆蓋目標(biāo):
      (1) 優(yōu)先級1覆蓋目標(biāo)達(dá)到100%
      (2) 所有其它覆蓋目標(biāo)至少達(dá)到95%,并檢查所有未實(shí)現(xiàn)的覆蓋目標(biāo)。
    2. 編寫和支持的所有系統(tǒng)級測試。
    3. 在所有可用PCIe服務(wù)器中工作的原型PCIe。
    4. 檢查缺陷發(fā)現(xiàn)率以確保(與功能覆蓋一起)我們正在接近所有最重要缺陷已經(jīng)被發(fā)現(xiàn)的點(diǎn)。
    5. 檢查任何突出并已知未修復(fù)的問題,并評估它們的影響。

    下面將在上文描述的總體驗(yàn)證策略框架下討論P(yáng)CIe驗(yàn)證策略。

模塊級驗(yàn)證

    圖3所示是PCIe模塊級測試平臺。ClearSpeed公司已經(jīng)開發(fā)過圖中所示的AVCI、PVCI和私有協(xié)議,因此PCIe接口提出了主要的驗(yàn)證挑戰(zhàn)。由于我們使用的IP來自不同的管線PHY和端點(diǎn)內(nèi)核供應(yīng)商,因此這種挑戰(zhàn)越發(fā)艱巨。


圖3:PCIe模塊級測試平臺。

    從圖3可以看出,測試平臺采用了許多UVC。除了PCIe UVC外,其它UVC都是ClearSpeed公司自己開發(fā)的。測試平臺的其它部分使用公司自己的UVC有利于建立同質(zhì)的eRM一致性系統(tǒng)(隨后的uRM和現(xiàn)在的OVM)。

    選用第三方VIP的原因是因?yàn)椋篜CIe協(xié)議的復(fù)雜性;驗(yàn)證任務(wù)的工作量以及缺少內(nèi)部資源;VIP的成熟度;獨(dú)立的VIP可以由與內(nèi)部開發(fā)小組不相干的外部PCIe專家組開發(fā)。

系統(tǒng)級測試

    系統(tǒng)級測試平臺包括了芯片和軟件驅(qū)動堆棧。實(shí)際的軟件驅(qū)動程序基本原樣投入使用,除了在堆棧底部做了一些修改,即將調(diào)用做進(jìn)了仿真環(huán)境中,并由軟件驅(qū)動PCIe UVC。更多細(xì)節(jié)請參考圖4。在本例中,驅(qū)動程序完成與硬件對話要做的所有事情,并且每個事務(wù)都要傳送給仿真器。這樣運(yùn)行起來雖然比較慢,但確實(shí)能讓我們測試DMA引擎等。


圖4:通過設(shè)備驅(qū)動程序連接到RTL仿真的軟件接口。

    驅(qū)動程序可以連接到PCIe層上面的仿真器。這樣無需花費(fèi)時間在完整仿真每個PCI事務(wù)上面就可以實(shí)現(xiàn)對更高層單元的仿真。這對仿真在處理器上運(yùn)行的程序來說是非常有用的。

    雖然通過使用UVC可以在測試規(guī)范允許的地方(例如在一些要寫入的數(shù)據(jù)中,在定義范圍內(nèi)的地址中)使用受限隨機(jī)激勵,但在系統(tǒng)級主要應(yīng)用定向測試方法。在系統(tǒng)級存在許多現(xiàn)成的定向測試,主要目標(biāo)是用它們擴(kuò)展測試這個芯片的變化(如前所列出的)。許多vPlanning會話被保持以獲得測試規(guī)范,然后我們就能跟蹤這些測試的實(shí)現(xiàn)。一旦驅(qū)動程序堆棧經(jīng)驗(yàn)證能與RTL一起工作,就可以運(yùn)行較高層的軟件。

    運(yùn)行這些應(yīng)用程序能給功能驗(yàn)證和性能驗(yàn)證帶來高度的信心。

在FPGA中建立PCIe原型

    在CSX700的開發(fā)過程中,ClearSpeed公司生產(chǎn)了一種基于現(xiàn)有硅片(CSX600)但用FPGA提供PCIe接口的產(chǎn)品,這樣允許我們模擬PCIe接口并執(zhí)行兼容性測試。也就是說,我們能將被模擬的PCIe接口連接到運(yùn)行各種OS的眾多服務(wù)器上,從而在流片前確定兼容性問題。它還能讓我們更徹底地測試帶PCIe的軟件驅(qū)動程序堆棧接口。

    該方法可以識別主要位于PCIe堆棧物理層中的缺陷(FPGA中的PHY不同于我們芯片中的PHY),也讓我們注意到我們連接的服務(wù)器中PCIe實(shí)現(xiàn)的變化數(shù)量,并促使我們提升取得很高覆蓋的重要性:我們對覆蓋劃分優(yōu)先等級,并為最高優(yōu)先級對象設(shè)定100%的目標(biāo)。然而,該方法不能識別通過仿真&覆蓋也不能發(fā)現(xiàn)的PHY外的任何缺陷。這使我們相信,PCIe仿真中的高覆蓋將有助于取得很高的首次流片成功率。

    原型的其它優(yōu)勢還表現(xiàn)在軟件開發(fā)方面。它能幫助PCIe軟件驅(qū)動程序遠(yuǎn)早于CSX700硅片開發(fā)出來,加快基于CSX700的產(chǎn)品的上市時間。

可配置的驗(yàn)證環(huán)境

    用于PCI Express的Incisive UVC能讓用戶專注于設(shè)計(jì)的任何部分或整個設(shè)計(jì),并針對驗(yàn)證過程中每一階段的特殊需要優(yōu)化驗(yàn)證環(huán)境。Incisive UVC一般用于在模塊、芯片和系統(tǒng)級對PCI Express器件進(jìn)行功能驗(yàn)證。它也可以通過配置有選擇地激活或關(guān)閉各個功能模塊以及功能覆蓋和檢測機(jī)制來優(yōu)化特殊任務(wù)的驗(yàn)證。這樣可以提供到驗(yàn)證收斂的最可預(yù)測路徑,并最大化在仿真器和工作站方面做出的投資回報。

自動激勵產(chǎn)生

    與使用上千次定向測試的其它解決方案不同,用于PCI Express的UVC采用自動激勵發(fā)生器來減少用戶需要做的工作量。利用包含所供序列庫在內(nèi)的自動化情景產(chǎn)生功能,用戶可以覆蓋主要協(xié)議功能以及難以到達(dá)的情景和邊界案例。通過增加少量測試,剩余的邊界案例就能被一一驗(yàn)證。這種方法有助于用戶更快地發(fā)現(xiàn)更多缺陷,并讓設(shè)計(jì)師有更多的時間進(jìn)行DUT的私有功能測試。CMS可以實(shí)現(xiàn)整個過程的自動化。

使用CMS實(shí)現(xiàn)覆蓋驅(qū)動的驗(yàn)證

    CMS向用戶提供了可執(zhí)行的驗(yàn)證計(jì)劃(vPlan)。vPlan與Enterprise Manager以及內(nèi)置功能覆蓋模型一起可以提供清晰地報告哪些被覆蓋、還有哪些沒被覆蓋所需的標(biāo)準(zhǔn)。這給用戶提供了驗(yàn)證過程的路線圖、收斂標(biāo)準(zhǔn)以及可預(yù)測的驗(yàn)證過程,并向項(xiàng)目或管理方提供明晰的狀態(tài)報告。這種方法被稱為覆蓋驅(qū)動的驗(yàn)證,可以幫助驗(yàn)證人員方便地識別覆蓋漏洞,并將資源集中用于DUT的有問題部分。

    Cadence的再利用方法可以快速建立功能驗(yàn)證環(huán)境,確保在從模塊級驗(yàn)證向芯片級、系統(tǒng)級驗(yàn)證轉(zhuǎn)移以及派生設(shè)計(jì)時能立即再利用基于UVC的環(huán)境。這種方法通過消除重復(fù)工作而節(jié)省了時間與資源。

覆蓋點(diǎn)的優(yōu)先級劃分

    通過使用能用來屏蔽掉與DUT無關(guān)的覆蓋區(qū)/條目的“透視圖(perspective)”,ClearSpeed公司能夠只考慮與實(shí)現(xiàn)有關(guān)的覆蓋點(diǎn)。ClearSpeed使用以下這個透視圖:

    “端點(diǎn), AER = On, VC 1-7 = Off, 完成器退出 = Off, 配置請求重試狀態(tài) = Off, 抑制 = Off"

    CMS允許由主要的PCIe模塊TPL、TXN、DLL、PHY、PMG、SYS和CONFIG報告覆蓋,這有助于ClearSpeed公司根據(jù)技術(shù)風(fēng)險劃分驗(yàn)證工作的優(yōu)先級。

    我們認(rèn)為物理層(PHY)存在較高的風(fēng)險,因?yàn)槲锢韺佑袃蓚€不同的IP供應(yīng)商,而且FPGA原型測試中沒有覆蓋PHY(因?yàn)镕PGA使用不同的PHY);Power mgt是下一個最高優(yōu)先級對象,因?yàn)樵贔PGA原型中沒有覆蓋到它(由于技術(shù)限制的原因);數(shù)據(jù)鏈路層是下一優(yōu)先等級,因?yàn)樗拷黀HY。

    我們還要求更細(xì)顆粒的優(yōu)先級劃分:模塊內(nèi)的優(yōu)先級劃分。雖然一般來說可以使用透視圖進(jìn)行優(yōu)先級劃分,但這種方法不能滿足所有需要和優(yōu)先級劃分的使用模型。它缺少更細(xì)的顆粒和一些對CMS專業(yè)用戶(如ClearSpeed和IP開發(fā)人員)來說更重要的再利用因素。

一致性測試套件

    CMS提供的一致性測試可以使你一開始就有一個很好的基本覆蓋,并因此而快速啟動驗(yàn)證工作。ClearSpeed公司是比較早介入的,在整個項(xiàng)目中也在不斷自我修正(附加的覆蓋項(xiàng)目和一致性測試),因此一致性測試取得的覆蓋在項(xiàng)目過程中會有變化。據(jù)Cadence公司目前估計(jì),用戶通過使用現(xiàn)成的CMS測試套件能夠達(dá)到約70%的覆蓋。

    CMS測試也能經(jīng)過配置進(jìn)入PCIe協(xié)議的邊界案例。然后,我們就可以寫出許多自己的測試來驅(qū)動UVC達(dá)到想要的覆蓋水平。

本文小結(jié)

    上述驗(yàn)證方法被證實(shí)取得了很大的成功。這種方法基于的是標(biāo)準(zhǔn)驅(qū)動的驗(yàn)證,采用了第三方的VIP,超出了我們的期望值,并成功地對將現(xiàn)有IP集成進(jìn)ClearSpeed芯片進(jìn)行了驗(yàn)證。作為成功的證明,我們在CSX700芯片上取得了首次流片成功,成果如下:

  • 成功的一致性測試結(jié)果,包括在2008年2月份PCIe PlugFest上的所有機(jī)器中取得首次成功。
  • 在許多服務(wù)器和芯片組上取得了100%成功的啟動周期測試結(jié)果。
  • 在所有可用服務(wù)器上成功地集成了ClearSpeed公司全套的支持OS。
  • 滿足所有的性能和功率目標(biāo)要求。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。