《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > PCI-Express2.0協(xié)議層的數(shù)字驗(yàn)證及調(diào)試解決方案
PCI-Express2.0協(xié)議層的數(shù)字驗(yàn)證及調(diào)試解決方案
ednchina   
未知
摘要: L0s/L1級(jí)電源狀態(tài)管理通過(guò)將鏈路置于電氣空閑(E-IDLE)下來(lái)降低能耗,因此要求鏈路雙方設(shè)備都能夠?qū)崿F(xiàn)L0s,快速的進(jìn)入或退出電氣空閑狀態(tài)。L1相對(duì)于L0會(huì)進(jìn)一步降低功耗。從PCIe1.0開始,L0s級(jí)電源管理就是調(diào)試測(cè)試的一個(gè)難題。鏈路寬度降低(Downconfigure)和提升(Upconfigure)是根據(jù)鏈路數(shù)據(jù)傳輸流量控制而定,只要滿足系統(tǒng)的吞吐率,可以適當(dāng)?shù)年P(guān)閉原本活動(dòng)的鏈路,以達(dá)到減小能耗。同樣,當(dāng)系統(tǒng)吞吐率要求增大時(shí),能夠開啟被關(guān)閉的鏈路。鏈路的傳輸速率也可以在2.5Gbps和5Gbps之間切換,以最小的系統(tǒng)能耗完成數(shù)據(jù)傳輸任務(wù)。
Abstract:
Key words :

 

L0s/L1級(jí)電源狀態(tài)管理通過(guò)將鏈路置于電氣空閑(E-IDLE)下來(lái)降低能耗,因此要求鏈路雙方設(shè)備都能夠?qū)崿F(xiàn)L0s,快速的進(jìn)入或退出電氣空閑狀態(tài)。L1相對(duì)于L0會(huì)進(jìn)一步降低功耗。從PCIe1.0開始,L0s級(jí)電源管理就是調(diào)試測(cè)試的一個(gè)難題。鏈路寬度降低(Downconfigure)和提升(Upconfigure)是根據(jù)鏈路數(shù)據(jù)傳輸流量控制而定,只要滿足系統(tǒng)的吞吐率,可以適當(dāng)?shù)年P(guān)閉原本活動(dòng)的鏈路,以達(dá)到減小能耗。同樣,當(dāng)系統(tǒng)吞吐率要求增大時(shí),能夠開啟被關(guān)閉的鏈路。鏈路的傳輸速率也可以在2.5Gbps和5Gbps之間切換,以最小的系統(tǒng)能耗完成數(shù)據(jù)傳輸任務(wù)。
  
  一.PCIe2.0技術(shù)簡(jiǎn)介
  
  PCIe是串行的點(diǎn)對(duì)點(diǎn)的互連總線。最初PCIe是為取代AGP總線而設(shè)計(jì),目前已經(jīng)成為主流的I/O互連總線。PCIe提供了一個(gè)可升級(jí)的構(gòu)架,傳輸帶寬隨著鏈路的寬度增加而增加。PCIe2.0較PCIe的主要變化是:速度增加,從2.5Gbps增加到5Gbps,并且速度可以協(xié)商;電氣空閑(Electrical Idle)的進(jìn)入和退出,減少能耗并簡(jiǎn)化了設(shè)計(jì),增強(qiáng)系統(tǒng)可靠性;鏈路寬度降級(jí),減少能耗。鏈路寬度提升,增加系統(tǒng)額外帶寬。
  
  PCIe2.0為系統(tǒng)帶來(lái)優(yōu)化的同時(shí),也為設(shè)計(jì)和測(cè)試工程師帶來(lái)了挑戰(zhàn)。依據(jù)PCIe2.0的主要變化,要求測(cè)試設(shè)備有能力捕獲鏈路上所有層面的協(xié)議。Tektronix TLA7000系列分析儀">邏輯分析儀和TLA7S16 /TLA7S08模塊是極好的針對(duì)PCIe2.0調(diào)試和驗(yàn)證的工具。
  
  二.PCIe系統(tǒng)構(gòu)架

  PCIe是一個(gè)三層結(jié)構(gòu)的系統(tǒng),包括物理層(邏輯子層和電氣子層),數(shù)據(jù)鏈路層以及事務(wù)層。事務(wù)層主要負(fù)責(zé)事務(wù)的請(qǐng)求/完成、TLP流控制和消息通知。數(shù)據(jù)鏈路層主要負(fù)責(zé)確保數(shù)據(jù)在鏈路上正確、可靠的發(fā)送和接收。物理層分為兩個(gè)部分:邏輯子層和電氣子層。電氣子層主要負(fù)責(zé)發(fā)送和接收信號(hào);邏輯子層主要負(fù)責(zé)數(shù)據(jù)加擾/解擾、8b/10b編碼、封包等。另外,鏈路的協(xié)商是在邏輯子層完成的。TLA7S16串行邏輯分析模塊定位于捕獲邏輯子層、數(shù)據(jù)鏈路層和事務(wù)層的數(shù)據(jù)進(jìn)行協(xié)議分析,并且探測(cè)方式不會(huì)影響鏈路的信號(hào)完整性。

三.?dāng)?shù)據(jù)率訓(xùn)練(Training)過(guò)程的捕獲與分析

  所有的PCIe2.0鏈路在初始階段必須工作在2.5bps速度下,這主要是考慮到向下兼容的能力。此外,當(dāng)系統(tǒng)吞吐率要求不高的時(shí)候,也可以從5Gbps的速據(jù)降到2.5Gbps以減少能耗。因此,測(cè)試設(shè)備首先必須能夠探測(cè)到速度的變化,然后通過(guò)捕獲的數(shù)據(jù)分析速度切換是否按照規(guī)范要求進(jìn)行。
  
  能否在速度切換開始時(shí)觸發(fā)并捕獲數(shù)據(jù)是揭示鏈路上所發(fā)起序列的異常問(wèn)題的關(guān)鍵所在。通常,當(dāng)發(fā)起速度切換后,需要對(duì)第一個(gè)訓(xùn)練序列(TS)進(jìn)行捕獲。TLA7S16/08模塊的序列觸發(fā)功能可以對(duì)任意一條通道進(jìn)行多達(dá)連續(xù)16個(gè)符號(hào)的觸發(fā)設(shè)定。序列觸發(fā)提供了對(duì)任意一個(gè)PCIe2.0的有序集中任意域的設(shè)定。

  很多情況下,期望的觸發(fā)條件由于鏈路中的協(xié)議出現(xiàn)了錯(cuò)誤而無(wú)法被偵測(cè)到,這會(huì)減緩甚至被迫中斷調(diào)試。在此期間,工程師往往不得不隨機(jī)捕獲數(shù)據(jù),手動(dòng)地去分析數(shù)據(jù)和協(xié)議的正確性。TLA7S16/08的序列觸發(fā)可以幫助工程師通過(guò)觸發(fā)鏈路中單獨(dú)的通道去發(fā)現(xiàn)問(wèn)題的根源。出現(xiàn)問(wèn)題的通道暫時(shí)被忽略,協(xié)議的驗(yàn)證和分析將得以進(jìn)行下去。
  
  只要串行邏輯分析儀被觸發(fā),采集到的數(shù)據(jù)將會(huì)顯示出完整的2.5Gbps到5Gbps速度切換的過(guò)程。工程師能非常直觀地發(fā)現(xiàn)有問(wèn)題的通道。另外,所有采集到的數(shù)據(jù)都會(huì)按照協(xié)議規(guī)范進(jìn)行解碼。

當(dāng)系統(tǒng)完成2.5Gbps速度的訓(xùn)練后,鏈路會(huì)進(jìn)入L0狀態(tài)。在鏈路雙方的訓(xùn)練中會(huì)通知支持的速度,如果雙方都支持5Gbps,則鏈路會(huì)嘗試著將速度切換到5Gbps。當(dāng)鏈路處在L0狀態(tài)時(shí),會(huì)切換到Recovery狀態(tài),并且開始進(jìn)行5Gbps速度切換的訓(xùn)練。當(dāng)完成訓(xùn)練序列后,2.5Gbps的鏈路會(huì)進(jìn)入電氣空閑狀態(tài),接著鏈路會(huì)退出電氣空閑,鏈路雙方將運(yùn)行在5Gbps的速度上,同時(shí)發(fā)起電氣空閑退出有序集(EIEOS),緊接著通過(guò)其他的訓(xùn)練序列,速度切換將發(fā)生在Recovery.Speed狀態(tài)中,最后鏈路返回到L0狀態(tài)下。
  
  請(qǐng)注意,串行邏輯分析儀會(huì)將每一條鏈路上發(fā)生的每一個(gè)符號(hào)和相應(yīng)的解碼信息一并顯示。假如其中有一條通道發(fā)生誤碼的話,這些誤碼將會(huì)被顯示在單獨(dú)的通道上,用戶能通過(guò)鏈路詳細(xì)信息(Link Detail Column)中的內(nèi)容快速地判斷出在某一通道上是否存在問(wèn)題。傳統(tǒng)的協(xié)議分析儀僅能得到有錯(cuò)誤幀的提示。
 PCIe中的ASPM(Active State Power Management)是為了降低能耗而設(shè)計(jì),然而PCIe系統(tǒng)出現(xiàn)的問(wèn)題大部分是在電源管理期間。
  
   當(dāng)TLP Configuration Write命令發(fā)起,向寄存器寫入了一個(gè)錯(cuò)誤的數(shù)據(jù),就會(huì)引起系統(tǒng)的異常。這種問(wèn)題通常發(fā)生在ASPM使能期間,硬件和軟件出現(xiàn)了配合問(wèn)題。為了捕獲這些異常事件,串行邏輯分析儀必須要捕獲到鏈路在退出以及進(jìn)入L0s狀態(tài)過(guò)程中的TLP數(shù)據(jù)包。分析儀為了能夠進(jìn)行極限測(cè)試,在退出EIDLE狀態(tài)過(guò)程中,必須盡可能多的捕獲FTS包,即盡可能快地探測(cè)鏈路的變化,及早和被測(cè)系統(tǒng)實(shí)現(xiàn)同步和鎖定。TLA7S16/08串行邏輯分析儀通常僅需要12個(gè)FTS包,就可以完成退出EIDLE后鏈路的鎖定。及時(shí)、快速的鏈路數(shù)據(jù)鎖定避免了在L0開始時(shí)有效TLP包的丟失。傳統(tǒng)的協(xié)議分析儀可能需要上千個(gè)FTS包才能完成幀同步。圖3說(shuō)明了分析儀如何捕獲到鏈路進(jìn)入L0s的狀態(tài)。

當(dāng)鏈路退出EIDLE需要發(fā)送FTS包,發(fā)送FTS包的個(gè)數(shù)在鏈路訓(xùn)練的過(guò)程中已經(jīng)確定了。如果分析儀在退出EIDLE過(guò)程中不能鎖定數(shù)據(jù),就無(wú)法采集到TLP Configuration Read包,更無(wú)法分析和驗(yàn)證包內(nèi)攜帶的數(shù)據(jù)信息。

  數(shù)據(jù)包級(jí)別的觸發(fā)功能再配合實(shí)時(shí)的數(shù)據(jù)過(guò)濾功能,可以進(jìn)一步縮小需要尋找的感興趣的TLP和DLLP包的范圍。

   另一個(gè)可能發(fā)生的事件是當(dāng)ASPM使能后,出現(xiàn)了TLP丟包的情況。在正常的運(yùn)行環(huán)境中(非L0s狀態(tài)),所有的TLP包能夠被正確的捕獲。在電源管理階段,如果鏈路不能正常工作,很可能是TLP沒(méi)有正確的發(fā)起。分析儀會(huì)捕獲所有的TLP包,按照每一個(gè)TLP序列標(biāo)識(shí)符進(jìn)行排序,如果有TLP包丟失的情況,很容易被發(fā)現(xiàn)。

  五.鏈路寬度協(xié)商過(guò)程分析

  一些調(diào)試、驗(yàn)證的挑戰(zhàn)是和鏈路動(dòng)態(tài)切換有關(guān)的。PCIe規(guī)范允許鏈路雙方提升或者降低鏈路的寬度。例如如果鏈路的一方在新的鏈路寬度訓(xùn)練中出錯(cuò),鏈路將重新進(jìn)入Recovery狀態(tài)。TLA7S16/08串行邏輯分析儀能夠驗(yàn)證鏈路寬度訓(xùn)練的整個(gè)過(guò)程。同樣,當(dāng)發(fā)起鏈路寬度訓(xùn)練序列后,鏈路會(huì)發(fā)起EIEOS,接著進(jìn)入EIDLE狀態(tài)。當(dāng)鏈路退出EIDLE,分析儀會(huì)捕獲完成鏈路寬度訓(xùn)練的數(shù)據(jù)包(圖4)。
 當(dāng)鏈路退出EIDLE,同樣需要額外的TS包使得鏈路恢復(fù)到正常的狀態(tài)。串行邏輯分析儀同樣能夠捕獲完整的過(guò)程。

 六.多總線時(shí)間相關(guān)分析

  隨著電子系統(tǒng)變得越來(lái)越復(fù)雜,對(duì)系統(tǒng)并行總線和高速串行總線的整合設(shè)計(jì)變的非常的普遍。在許多應(yīng)用中,不可能僅對(duì)PCIe總線單獨(dú)進(jìn)行分析,例如PCIe總線向控制器發(fā)起內(nèi)存讀數(shù)據(jù)請(qǐng)求,接著控制器向DDR內(nèi)存進(jìn)行讀操作。如果DDR讀數(shù)據(jù)使用了錯(cuò)誤的地址,將會(huì)導(dǎo)致PCIe請(qǐng)求到錯(cuò)誤的數(shù)據(jù),并可能引起系統(tǒng)崩潰。邏輯分析儀是唯一能夠?qū)CIe、控制器總線和DDR內(nèi)存在單一儀器內(nèi)進(jìn)行分析的設(shè)備,所有的數(shù)據(jù)樣點(diǎn)都是有時(shí)間相關(guān)的時(shí)間標(biāo)記。
  
   TLA7S16/08配合通用的邏輯分析儀模塊(TLA7BBx)可以提供PCIe鏈路和其他并行總線時(shí)間相關(guān)的調(diào)試能力。TLA7BBx以最高50GS/s采樣率對(duì)136路信號(hào)進(jìn)行高精度的定時(shí)采集,還可以通過(guò)外時(shí)鐘同步進(jìn)行最高速度為1.4GHz的同步分析。邏輯分析儀能夠獲得這些并行信號(hào),串行分析模塊可以采集到PCIe鏈路的數(shù)據(jù)。這樣的時(shí)間相關(guān)的信息能幫助我們解決很多調(diào)試、驗(yàn)證問(wèn)題。

  七.信號(hào)探測(cè)方式

   對(duì)PCIe系統(tǒng)的探測(cè)必須遵循不能影響到鏈路正常特性的原則。在物理層面上,要求探測(cè)不能破壞原來(lái)鏈路的信號(hào)完整性;在數(shù)據(jù)層面上,要求不能改變?cè)邢到y(tǒng)的時(shí)序特性。Tektronix提供的P6701S/P6704S/P6708S/P6716S系列內(nèi)插探頭,提供對(duì)被測(cè)信號(hào)的高阻探測(cè),與傳統(tǒng)的協(xié)議分析儀先將信號(hào)緩存再輸出的結(jié)構(gòu)不同,而是直接將信號(hào)輸入到采集系統(tǒng)中。此外,P6708/P6716探頭還支持芯片級(jí)的PCIe信號(hào)探測(cè)。

  總結(jié)

  PCIE2.0的驗(yàn)證充滿著各種挑戰(zhàn),對(duì)芯片和系統(tǒng)性能的驗(yàn)證;5Gbps的數(shù)據(jù)傳輸率;最小化系統(tǒng)開銷以及高級(jí)電源管理(ASPM);復(fù)雜的協(xié)議和瞬變的故障都使得PCIE2.0的調(diào)試變得困難重重。Tektronix公司TLA7Sxx系列串行邏輯分析儀模塊提供強(qiáng)大的硬件調(diào)試性能,配合TLA7000邏輯分析儀主機(jī)以及其他測(cè)試方案,最大程度滿足被測(cè)系統(tǒng)的邏輯、協(xié)議測(cè)試。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。