PCIe:緩和一致性與互操作性挑戰(zhàn)
盡管理論上來說,每一個(gè)實(shí)現(xiàn)方式應(yīng)遵從PCIe規(guī)范且應(yīng)具有與所有其他的實(shí)現(xiàn)方式互操作的能力。但實(shí)際的情況卻是,有一些既不一致又不具備互操作性的設(shè)備進(jìn)入市場(chǎng)。因?yàn)槟菚r(shí)有人認(rèn)為盡管非一致的或不具互操作性的器件流片后的維修成本很高,但與其投放市場(chǎng)后所獲得的收益來比還是少很多,并認(rèn)為確保器件流片前的一致性和互操作性驗(yàn)證是任何PCIe開發(fā)過程中最為重要的挑戰(zhàn)。
意識(shí)到這筆巨大成本后,EDA行業(yè)發(fā)布了許多能夠解決這個(gè)挑戰(zhàn)的方案。這些方案從高級(jí)驗(yàn)證、斷言語言和方法論延伸到功能覆蓋工具和特定協(xié)議一致性測(cè)試的工具包。即便是有許多解決方案可從EDA行業(yè)獲得,但為確保流片前器件的一致性和互操作性而選擇最佳的解決方案,也要求對(duì)導(dǎo)致器件不一致或互操作性的問題有一個(gè)透徹的理解。
一致性驗(yàn)證的挑戰(zhàn)
對(duì)大多數(shù)的產(chǎn)品開發(fā)團(tuán)隊(duì)來說,驗(yàn)證過程始于驗(yàn)證計(jì)劃的創(chuàng)立。協(xié)議規(guī)范是針對(duì)任何驗(yàn)證計(jì)劃的主要輸入之一。通過甚至是最簡單的測(cè)量,PCIe基礎(chǔ)規(guī)范是一個(gè)足以將最富經(jīng)驗(yàn)的產(chǎn)品開發(fā)團(tuán)隊(duì)弄混淆的復(fù)雜規(guī)范。這種復(fù)雜性不僅是由于其龐大的文檔數(shù)量,而且是因?yàn)檫@樣一個(gè)事實(shí):為了完全理解規(guī)范,開發(fā)團(tuán)隊(duì)要求理解所有基本規(guī)范。執(zhí)行該過程是相當(dāng)困難的,況且目前包括PCIe基礎(chǔ)規(guī)范在內(nèi)的許多規(guī)范仍在不斷改進(jìn)中。保持PCIe基礎(chǔ)規(guī)范的更新需要花費(fèi)大量的、在驗(yàn)證過程的關(guān)鍵階段通常無法獲得的寶貴時(shí)間。所以,當(dāng)考慮流片前一致性解決方案時(shí),開發(fā)團(tuán)隊(duì)要避免停留在對(duì)規(guī)范的每個(gè)細(xì)節(jié)的更新上。因此,選擇一個(gè)專注于PCIe規(guī)范的開發(fā)團(tuán)隊(duì)所實(shí)現(xiàn)的解決方案尤為關(guān)鍵。該專業(yè)團(tuán)隊(duì)須確保其解決方案與改進(jìn)中的規(guī)范保持同步更新。
當(dāng)通讀完P(guān)CIe基礎(chǔ)規(guī)范或任何與之相關(guān)規(guī)范后,你會(huì)設(shè)想器件將如何工作。盡管諸如PCI-SIG的標(biāo)準(zhǔn)機(jī)構(gòu)在大力刪除其規(guī)范中的所有模棱兩可的內(nèi)容,但這些規(guī)范保留對(duì)互操作性的開放,并且假定這些規(guī)范是給開發(fā)人員閱讀的。最好的情況是,這些假設(shè)在開發(fā)人員之間以及和該規(guī)范的作者(規(guī)范的作者是PCI-SIG)意圖是一致的。然而,實(shí)際的情況往往是缺乏這種一致性。更為普遍的是,開發(fā)人員之間有著不同的設(shè)想。在這種情況下,這些設(shè)想的差異只有在廣泛的討論之后才能形成解決方案,這就往往要求規(guī)范作者的指導(dǎo)。最壞的情況是所有開發(fā)人員的設(shè)想一致,但這些設(shè)想都與規(guī)范的意圖不一致。在這種情況下,開發(fā)出來的設(shè)備自然是不符合規(guī)范要求的。因此,任何流片前一致性解決方案都是很關(guān)鍵的,這些解決方案主要是針對(duì)已確認(rèn)的或已解決的所有方案開發(fā)過程中產(chǎn)生的設(shè)想。通常來說,隨著更多的開發(fā)人員復(fù)查和應(yīng)用該解決方案,這些設(shè)想會(huì)確立和解決。這樣的結(jié)果是,當(dāng)一個(gè)解決方案在行業(yè)中獲得更廣泛的認(rèn)同后,在解決方案的精確性上將會(huì)更有信心。
由于器件的尺寸及其復(fù)雜性方面的難度持續(xù)增加、例舉的任務(wù)要比驗(yàn)證少許多,所有可能的情況都變得相當(dāng)困難,以及無法被驗(yàn)證過程所覆蓋的器件特性正呈現(xiàn)上升的趨勢(shì)。盡管PCIe規(guī)范詳細(xì)描述了成百上千個(gè)寄存器、多個(gè)復(fù)雜狀態(tài)機(jī)和許多可選功能,但這并不是PCIe規(guī)范獨(dú)有的問題。針對(duì)這個(gè)整個(gè)行業(yè)所面臨的問題,覆蓋驅(qū)動(dòng)驗(yàn)證方法已開發(fā)出來并得到成功的驗(yàn)證。這些方法通常包含斷言語句在器件中的位置及其驗(yàn)證環(huán)境。一旦斷言被加入,隨機(jī)激勵(lì)將應(yīng)用在該器件上且覆蓋統(tǒng)計(jì)會(huì)被采集,這在覆蓋驅(qū)動(dòng)驗(yàn)證方法中是十分有用的。任何流片前一致性解決方案必須包含一套健壯的斷言和一個(gè)針對(duì)覆蓋統(tǒng)計(jì)采集的工具。
IP驗(yàn)證帶來的挑戰(zhàn)
隨著PCIe的日新月異,PCIe設(shè)計(jì)核正迅速的成為商用部件。通常,當(dāng)可以從許多廠家獲得多種PCIe設(shè)計(jì)核時(shí),通過對(duì)器件從零開始來構(gòu)造一個(gè)PCIe設(shè)計(jì)核的附加值是微乎其微的。理想的情況是,所有市面上的PCIe設(shè)計(jì)核應(yīng)該是免費(fèi)糾錯(cuò)的。然而,實(shí)際的情況往往并非如此。所以,采用PCIe設(shè)計(jì)核的開發(fā)團(tuán)隊(duì)所面臨的挑戰(zhàn)是確定怎樣處理可能驗(yàn)證過的核。大多數(shù)的開發(fā)團(tuán)隊(duì)既沒有這樣做,也不希望為一個(gè)準(zhǔn)驗(yàn)證的PCIe設(shè)計(jì)核分配資源去再驗(yàn)證。于是,一個(gè)可提供完全的、自包含驗(yàn)證環(huán)境的流片前一致性解決方案可起到填補(bǔ)這個(gè)缺口的作用。但前提條件是假定該解決方案可以輕易的與設(shè)備集成在一起。此外,只要為這個(gè)任務(wù)分配一定的資源,任何由該解決方案指定的問題一定可輕易的被調(diào)試和解決。
互操作性被定義為一個(gè)設(shè)備與其他設(shè)備通信的能力。在PCIe領(lǐng)域,只有當(dāng)設(shè)備能正確的管理其連接和信息交換時(shí),才意味著兩個(gè)設(shè)備是具備互操作性的。針對(duì)一個(gè)要成為完全互操作性的設(shè)備來說,該設(shè)備需能夠與市面上所有可能的設(shè)備進(jìn)行連接和信息交換。互操作性在流片前環(huán)境中是相當(dāng)困難的。在理想的流片前互操作性驗(yàn)證環(huán)境中,兩個(gè)PCIe設(shè)備的模型是完整的,且使用了適當(dāng)?shù)募?lì)。開發(fā)團(tuán)隊(duì)在構(gòu)造這種類型的互操作性環(huán)境過程中所面臨的第一個(gè)挑戰(zhàn)是找到一個(gè)合適的和自愿的合作伙伴。一旦確定了合作伙伴且分派了法律義務(wù),該問題將會(huì)成為集成兩種模式的一種。其中一個(gè)模型對(duì)開發(fā)團(tuán)隊(duì)而言是缺乏經(jīng)驗(yàn)的。隨著問題的出現(xiàn),要求開發(fā)團(tuán)隊(duì)為兩個(gè)設(shè)備提供一定程度上的支持。解決這些問題是一件相當(dāng)繁瑣的任務(wù),因?yàn)檎{(diào)試通常包含來自不同組織的眾多開發(fā)人員。通常,將這些問題融合在一起從而避免大量的這類測(cè)試。
盡管上述流片前互操作性測(cè)試過程中所遇到的困難是難以克服的,但這些困難也并不會(huì)使得人們根本無法進(jìn)行流片前的互操作性測(cè)試。間接互操作性(見圖1)的概念規(guī)定:假定有三個(gè)設(shè)備,前兩個(gè)設(shè)備是已知和第三個(gè)設(shè)備是可以互操作的,那么前兩個(gè)設(shè)備彼此之間也應(yīng)該是具備互操作性的(見圖2)。應(yīng)用這個(gè)概念,流片前一致性解決方案保證了該設(shè)備與使用相同解決方案的所有其他設(shè)備之間互操作性。隨著該假定解決方案獲得整個(gè)行業(yè)的廣泛認(rèn)同,且使用該解決方案來確保與其他設(shè)備流片前的一致性,則這些設(shè)備彼此之間也是可互操作的。[!--empirenews.page--]