版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PCIe總線的基礎(chǔ)知識(shí)與PCI總線不同,PCIe總線使用端到端的連接方式,在一條PCIe鏈路的兩端只能各連接一個(gè)設(shè)備,這兩個(gè)設(shè)備互為是數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端0PCIe總線除了總線鏈路外,還具有多個(gè)層次,發(fā)送端發(fā)送數(shù)據(jù)時(shí)將通過這些層次,而接收端接收數(shù)據(jù)時(shí)也使用這些層次。PCIe總線使用的層次結(jié)構(gòu)與網(wǎng)絡(luò)協(xié)議棧較為類似。4.1.1端到端的數(shù)據(jù)傳遞PCIe鏈路使用“端到端的數(shù)據(jù)傳送方式”,發(fā)送端和接收端中都含有TX(發(fā)送邏輯)和RX(接收邏輯),其結(jié)構(gòu)如圖4-1所示。由上圖所示,在PCIe總線的物理鏈路的一個(gè)數(shù)據(jù)通路(Lane)中,由兩組差分信號(hào),共4根信號(hào)線組成。其中發(fā)送端的TX部件與接收端的RX部件使用一組差分信號(hào)連接,該鏈路也被稱為發(fā)送端的發(fā)送鏈路,也是接收端的接收鏈路;而發(fā)送端的RX部件與接收端的TX部件使用另一組差分信號(hào)連接,該鏈路也被稱為發(fā)送端的接收鏈路,也是接收端的發(fā)送鏈路。一個(gè)PCIe鏈路可以由多個(gè)Lane組成。高速差分信號(hào)電氣規(guī)范要求其發(fā)送端串接一個(gè)電容,以進(jìn)行AC耦合。該電容也被稱為AC耦合電容。PCIe鏈路使用差分信號(hào)進(jìn)行數(shù)據(jù)傳送,一個(gè)差分信號(hào)由D+和D-兩根信號(hào)組成,信號(hào)接收端通過比較這兩個(gè)信號(hào)的差值,判斷發(fā)送端發(fā)送的是邏輯“1”還是邏輯“0”。與單端信號(hào)相比,差分信號(hào)抗干擾的能力更強(qiáng),因?yàn)椴罘中盘?hào)在布線時(shí)要求“等長(zhǎng)”、“等寬”、“貼近”,而且在同層。因此外部干擾噪聲將被“同值”而且“同時(shí)”加載至D+和D-兩根信號(hào)上,其差值在理想情況下為0,對(duì)信號(hào)的邏輯值產(chǎn)生的影響較小。因此差分信號(hào)可以使用更高的總線頻率。此外使用差分信號(hào)能有效抑制電磁干擾EMI(ElectroMagneticInterference)。由于差分信號(hào)D+與D-距離很近而且信號(hào)幅值相等、極性相反。這兩根線與地線間耦合電磁場(chǎng)的幅值相等,將相互抵消,因此差分信號(hào)對(duì)外界的電磁干擾較小。當(dāng)然差分信號(hào)的缺點(diǎn)也是顯而易見的,一是差分信號(hào)使用兩根信號(hào)傳送一位數(shù)據(jù);二是差分信號(hào)的布線相對(duì)嚴(yán)格一些。PCIe鏈路可以由多條Lane組成,目前PCIe鏈路可以支持1、2、4、8、12、16和32個(gè)Lane,即XI、X2、X4、X8、X12、x16和x32寬度的PCIe鏈路。每一個(gè)Lane上使用的總線頻率與PCIe總線使用的版本相關(guān)。第1個(gè)PCIe總線規(guī)范為V1.0,之后依次為Vl.Oa,V1.1,V2.0和V2.1。目前PCIe總線的最新規(guī)范為V2.1,而V3.0正在開發(fā)過程中,預(yù)計(jì)在2010年發(fā)布。不同的PCIe總線規(guī)范所定義的總線頻率和鏈路編碼方式并不相同,如表4-1所示。表4-1PCIe總線規(guī)范與總線頻率和編碼的關(guān)系PCIe總線規(guī)范總線頻率1[1]單Lane的峰值帶寬編碼方式1.X1.25GHz2.5GT/S8/10b編碼2.x2.5GHz5GT/S8/10b編碼3.04GHz8GT/s128/130b編碼如上表所示,不同的PCIe總線規(guī)范使用的總線頻率并不相同,其使用的數(shù)據(jù)編碼方式也不相同。PCIe總線V1.x和V2.0規(guī)范在物理層中使用8/10b編碼,即在PCIe鏈路上的10bit中含有8bit的有效數(shù)據(jù);而V3.0規(guī)范使用128/130b編碼方式,即在PCIe鏈路上的130bit中含有128bit的有效數(shù)據(jù)。由上表所示,V3.0規(guī)范使用的總線頻率雖然只有4GHz,但是其有效帶寬是V2.x的兩倍。下文將以V2.x規(guī)范為例,說明不同寬度PCIe鏈路所能提供的峰值帶寬,如表4-2所示。表4-2PCIe總線的峰值帶寬PCIe總線的數(shù)據(jù)位寬x1x2x4x8x12x16x32峰值帶寬(GT/s)51020406080160由上表所示,x32的PCIe鏈路可以提供160GT/S的鏈路帶寬,遠(yuǎn)高于PCI/PCI-X總線所能提供的峰值帶寬。而即將推出的PCIeV3.0規(guī)范使用4GHz的總線頻率,將進(jìn)一步提高PCIe鏈路的峰值帶寬。在PCIe總線中,使用GT(Gigatransfer)計(jì)算PCIe鏈路的峰值帶寬。GT是在PCIe鏈路上傳遞的峰值帶寬,其計(jì)算公式為總線頻率x數(shù)據(jù)位寬x2。在PCIe總線中,影響有效帶寬的因素有很多,因而其有效帶寬較難計(jì)算,這部分內(nèi)容詳見第8.4.1節(jié)。盡管如此,PCIe總線提供的有效帶寬還是遠(yuǎn)高于PCI總線。PCIe總線也有其弱點(diǎn),其中最突出的問題是傳送延時(shí)。PCIe鏈路使用串行方式進(jìn)行數(shù)據(jù)傳送,然而在芯片內(nèi)部,數(shù)據(jù)總線仍然是并行的,因此PCIe鏈路接口需要進(jìn)行串并轉(zhuǎn)換,這種串并轉(zhuǎn)換將產(chǎn)生較大的延時(shí)。除此之外PCIe總線的數(shù)據(jù)報(bào)文需要經(jīng)過事務(wù)層、數(shù)據(jù)鏈路層和物理層,這些數(shù)據(jù)報(bào)文在穿越這些層次時(shí),也將帶來延時(shí)。本書將在第8.4節(jié)詳細(xì)討論P(yáng)CIe總線的延時(shí)與帶寬之間的聯(lián)系。在基于PCIe總線的設(shè)備中,x1的PCIe鏈路最為常見,而x12的PCIe鏈路極少出現(xiàn),x4和x8的PCIe設(shè)備也不多見。Intel通常在ICH中集成了多個(gè)x1的PCIe鏈路用來連接低速外設(shè),而在MCH中集成了一個(gè)x16的PCIe鏈路用于連接顯卡控制器。而PowerPC處理器通常能夠支持x8、x4、x2和x1的PCIe鏈路。PCIe總線物理鏈路間的數(shù)據(jù)傳送使用基于時(shí)鐘的同步傳送機(jī)制,但是在物理鏈路上并沒有時(shí)鐘線,PCIe總線的接收端含有時(shí)鐘恢復(fù)模塊CDR(ClockDataRecovery),CDR將從接收?qǐng)?bào)文中提取接收時(shí)鐘,從而進(jìn)行同步數(shù)據(jù)傳遞。值得注意的是,在一個(gè)PCIe設(shè)備中除了需要從報(bào)文中提取時(shí)鐘外,還使用了REFCLK+和REFCLK-信號(hào)對(duì)作為本地參考時(shí)鐘,這個(gè)信號(hào)對(duì)的描述見下文。4.1.2PCIe總線使用的信號(hào)PCIe設(shè)備使用兩種電源信號(hào)供電,分別是Vcc與Vaux,其額定電壓為3.3V。其中Vcc為主電源,PCIe設(shè)備使用的主要邏輯模塊均使用Vcc供電,而一些與電源管理相關(guān)的邏輯使用Vaux供電。在PCIe設(shè)備中,一些特殊的寄存器通常使用Vaux供電,如StickyRegister,此時(shí)即使PCIe設(shè)備的Vcc被移除,這些與電源管理相關(guān)的邏輯狀態(tài)和這些特殊寄存器的內(nèi)容也不會(huì)發(fā)生改變。在PCIe總線中,使用Vaux的主要原因是為了降低功耗和縮短系統(tǒng)恢復(fù)時(shí)間。因?yàn)閂aux在多數(shù)情況下并不會(huì)被移除,因此當(dāng)PCIe設(shè)備的Vcc恢復(fù)后,該設(shè)備不用重新恢復(fù)使用Vaux供電的邏輯,從而設(shè)備可以很快地恢復(fù)到正常工作狀狀態(tài)。PCIe鏈路的最大寬度為x32,但是在實(shí)際應(yīng)用中,x32的鏈路寬度極少使用。在一個(gè)處理器系統(tǒng)中,一般提供x16的PCIe插槽,并使用PETpO~15、PETnO~15和PERpO~15、PERnO~15共64根信號(hào)線組成32對(duì)差分信號(hào),其中16對(duì)PETxx信號(hào)用于發(fā)送鏈路,另外16對(duì)PERxx信號(hào)用于接收鏈路。除此之外PCIe總線還使用了下列輔助信號(hào)。PERST#信號(hào)該信號(hào)為全局復(fù)位信號(hào),由處理器系統(tǒng)提供,處理器系統(tǒng)需要為PCIe插槽和PCIe設(shè)備提供該復(fù)位信號(hào)。PCIe設(shè)備使用該信號(hào)復(fù)位內(nèi)部邏輯。當(dāng)該信號(hào)有效時(shí),PCIe設(shè)備將進(jìn)行復(fù)位操作。PCIe總線定義了多種復(fù)位方式,其中ColdReset和WarmReset這兩種復(fù)位方式的實(shí)現(xiàn)與該信號(hào)有關(guān),詳見第4.1.5節(jié)。REFCLK+和REFCLK-信號(hào)在一個(gè)處理器系統(tǒng)中,可能含有許多PCIe設(shè)備,這些設(shè)備可以作為Add-In卡與PCIe插槽連接,也可以作為內(nèi)置模塊,與處理器系統(tǒng)提供的PCIe鏈路直接相連,而不需要經(jīng)過PCIe插槽。PCIe設(shè)備與PCIe插槽都具有REFCLK+和REFCLK-信號(hào),其中PCIe插槽使用這組信號(hào)與處理器系統(tǒng)同步。在一個(gè)處理器系統(tǒng)中,通常采用專用邏輯向PCIe插槽提供REFCLK+和REFCLK-信號(hào),如圖4-2所示。其中100Mhz的時(shí)鐘源由晶振提供,并經(jīng)過一個(gè)“一推多”的差分時(shí)鐘驅(qū)動(dòng)器生成多個(gè)同相位的時(shí)鐘源,與PCIe插槽 對(duì)應(yīng)連接。PCIe插槽需要使用參考時(shí)鐘,其頻率范圍為100MHz±300ppm。處理器系統(tǒng)需要為每一個(gè)PCIe插槽、MCH、ICH和Switch提供參考時(shí)鐘。而且要求在一個(gè)處理器系統(tǒng)中,時(shí)鐘驅(qū)動(dòng)器產(chǎn)生的參考時(shí)鐘信號(hào)到每一個(gè)PCIe插槽(MCH、ICH和Swith)的距離差在15英寸之內(nèi)。通常信號(hào)的傳播速度接近光速,約為6英寸/ns,由此可見,不同PCIe插槽間REFCLK+和REFCLK-信號(hào)的傳送延時(shí)差約為2.5ns。當(dāng)PCIe設(shè)備作為Add-In卡連接在PCIe插槽時(shí),可以直接使用PCIe插槽提供的REFCLK+和REFCLK-信號(hào),也可以使用獨(dú)立的參考時(shí)鐘,只要這個(gè)參考時(shí)鐘在100MHz±300ppm范圍內(nèi)即可。內(nèi)置的PCIe設(shè)備與Add-In卡在處理REFCLK+和REFCLK-信號(hào)時(shí)使用的方法類似,但是PCIe設(shè)備可以使用獨(dú)立的參考時(shí)鐘,而不使用REFCLK+和REFCLK-信號(hào)。在PCIe設(shè)備配置空間的LinkControlRegister中,含有一個(gè)“CommonClockConfiguration”位。當(dāng)該位為1時(shí),表示該設(shè)備與PCIe鏈路的對(duì)端設(shè)備使用“同相位”的參考時(shí)鐘;如果為0,表示該設(shè)備與PCIe鏈路的對(duì)端設(shè)備使用的參考時(shí)鐘是異步的。在PCIe設(shè)備中,“CommonClockConfiguration”位的缺省值為0,此時(shí)PCIe設(shè)備使用的參考時(shí)鐘與對(duì)端設(shè)備沒有任何聯(lián)系,PCIe鏈路兩端設(shè)備使用的參考時(shí)鐘可以異步設(shè)置。這個(gè)異步時(shí)鐘設(shè)置方法對(duì)于使用PCIe鏈路進(jìn)行遠(yuǎn)程連接時(shí)尤為重要。在一個(gè)處理器系統(tǒng)中,如果使用PCIe鏈路進(jìn)行機(jī)箱到機(jī)箱間的互連,因?yàn)閰⒖紩r(shí)鐘可以異步設(shè)置,機(jī)箱到機(jī)箱之間進(jìn)行數(shù)據(jù)傳送時(shí)僅需要差分信號(hào)線即可,而不需要參考時(shí)鐘,從而極大降低了連接難度。WAKE#信號(hào)當(dāng)PCIe設(shè)備進(jìn)入休眠狀態(tài),主電源已經(jīng)停止供電時(shí),PCIe設(shè)備使用該信號(hào)向處理器系統(tǒng)提交喚醒請(qǐng)求,使處理器系統(tǒng)重新為該P(yáng)CIe設(shè)備提供主電源Vcc。在PCIe總線中,WAKE#信號(hào)是可選的,因此使用WAKE#信號(hào)喚醒PCIe設(shè)備的機(jī)制也是可選的。值得注意的是產(chǎn)生該信號(hào)的硬件邏輯必須使用輔助電源Vaux供電。WAKE#是一個(gè)OpenDrain信號(hào),一個(gè)處理器的所有PCIe設(shè)備可以將WAKE#信號(hào)進(jìn)行線與后,統(tǒng)一發(fā)送給處理器系統(tǒng)的電源控制器。當(dāng)某個(gè)PCIe設(shè)備需要被喚醒時(shí),該設(shè)備首先置WAKE#信號(hào)有效,然后在經(jīng)過一段延時(shí)之后,處理器系統(tǒng)開始為該設(shè)備提供主電源Vcc,并使用PERST#信號(hào)對(duì)該設(shè)備進(jìn)行復(fù)位操作。此時(shí)WAKE#信號(hào)需要始終保持為低,當(dāng)主電源Vcc上電完成之后,PERST#信號(hào)也將置為無效并結(jié)束復(fù)位,WAKE#信號(hào)也將隨之置為無效,結(jié)束整個(gè)喚醒過程。PCIe設(shè)備除了可以使用WAKE#信號(hào)實(shí)現(xiàn)喚醒功能外,還可以使用Beacon信號(hào)實(shí)現(xiàn)喚醒功能。與WAKE#信號(hào)實(shí)現(xiàn)喚醒功能不同,Beacon使用In-band信號(hào),即差分信號(hào)D+和D-實(shí)現(xiàn)喚醒功能。Beacon信號(hào)DC平衡,由一組通過D+和D-信號(hào)生成的脈沖信號(hào)組成。這些脈沖信號(hào)寬度的最小值為2ns,最大值為16us。當(dāng)PCIe設(shè)備準(zhǔn)備退出L2狀態(tài)(該狀態(tài)為PCIe設(shè)備使用的一種低功耗狀態(tài))時(shí),可以使用Beacon信號(hào),提交喚醒請(qǐng)求。SMCLK和SMDAT信號(hào)SMCLK和SMDAT信號(hào)與x86處理器的SMBus(SystemMangementBus)相關(guān)。SMBus于1995年由Intel提出,SMBus由SMCLK和SMDAT信號(hào)組成。SMBus源于I2C總線,但是與I2C總線存在一些差異。SMBus的最高總線頻率為100KHZ,而I2C總線可以支持400KHz和2MHz的總線頻率。此外SMBus上的從設(shè)備具有超時(shí)功能,當(dāng)從設(shè)備發(fā)現(xiàn)主設(shè)備發(fā)出的時(shí)鐘信號(hào)保持低電平超過35ms時(shí),將引發(fā)從設(shè)備的超時(shí)復(fù)位。在正常情況下,SMBus的主設(shè)備使用的總線頻率最低為10KHZ,以避免從設(shè)備在正常使用過程中出現(xiàn)超時(shí)。在SMbus中,如果主設(shè)備需要復(fù)位從設(shè)備時(shí),可以使用這種超時(shí)機(jī)制。而I2C總線只能使用硬件信號(hào)才能實(shí)現(xiàn)這種復(fù)位操作,在I2C總線中,如果從設(shè)備出現(xiàn)錯(cuò)誤時(shí),單純通過主設(shè)備是無法復(fù)位從設(shè)備的。SMBus還支持AlertResponse機(jī)制。當(dāng)從設(shè)備產(chǎn)生一個(gè)中斷時(shí),并不會(huì)立即清除該中斷,直到主設(shè)備向0b0001100地址發(fā)出命令。上文所述的SMBus和I2C總線的區(qū)別還是局限于物理層和鏈路層上,實(shí)際上SMBus還含有網(wǎng)絡(luò)層。SMBus還在網(wǎng)絡(luò)層上定義了11種總線協(xié)議,用來實(shí)現(xiàn)報(bào)文傳遞。SMBus在x86處理器系統(tǒng)中得到了大規(guī)模普及,其主要作用是管理處理器系統(tǒng)的外部設(shè)備,并收集外設(shè)的運(yùn)行信息,特別是一些與智能電源管理相關(guān)的信息oPCI和PCIe插槽也為SMBus預(yù)留了接口,以便于PCI/PCIe設(shè)備與處理器系統(tǒng)進(jìn)行交互。在Linux系統(tǒng)中,SMBus得到了廣泛的應(yīng)用,ACPI也為SMBus定義了一系列命令,用于智能電池、電池充電器與處理器系統(tǒng)之間的通信。在Windows操作系統(tǒng)中,有關(guān)外部設(shè)備的描述信息,也是通過SMBus獲得的。JTAG信號(hào)JTAG(JointTestActionGroup)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,與IEEE1149.1兼容,主要用于芯片內(nèi)部測(cè)試。目前絕大多數(shù)器件都支持JTAG測(cè)試標(biāo)準(zhǔn)。JTAG信號(hào)由TRST#、TCK、TDI、TDO和TMS信號(hào)組成。其中TRST#為復(fù)位信號(hào);TCK為時(shí)鐘信號(hào);TDI和TDO分別與數(shù)據(jù)輸入和數(shù)據(jù)輸出對(duì)應(yīng);而TMS信號(hào)為模式選擇。JTAG允許多個(gè)器件通過JTAG接口串聯(lián)在一起,并形成一個(gè)JTAG鏈。目前FPGA和EPLD可以借用JTAG接口實(shí)現(xiàn)在線編程ISP(In-SystemProgramming功能。處理器也可以使用JTAG接口進(jìn)行系統(tǒng)級(jí)調(diào)試工作,如設(shè)置斷點(diǎn)、讀取內(nèi)部寄存器和存儲(chǔ)器等一系列操作。除此之外JTAG接口也可用作“逆向工程”分析一個(gè)產(chǎn)品的實(shí)現(xiàn)細(xì)節(jié),因此在正式產(chǎn)品中,一般不保留JTAG接口。PRSNT1#和PRSNT2#信號(hào)PRSNT1#和PRSNT2#信號(hào)與PCIe設(shè)備的熱插拔相關(guān)。在基于PCIe總線的Add-in卡中,PRSNT1#和PRSNT2#信號(hào)直接相連,而在處理器主板中,PRSNT1#信號(hào)接地,而PRSNT2#信號(hào)通過上拉電阻接為高。PCIe設(shè)備的熱插拔結(jié)構(gòu)如圖4-3所示。當(dāng)Add-In卡插入時(shí)主板的PRSNT2#信號(hào)將與PRSNT1#信號(hào)通過Add-In卡連通,此時(shí)PRSNT2#信號(hào)為低。處理器主板的熱插拔控制邏輯將捕獲這個(gè)“低電平”,得知Add-In卡已經(jīng)插入,從而觸發(fā)系統(tǒng)軟件進(jìn)行相應(yīng)地處理。Add-In卡拔出的工作機(jī)制與插入類似。當(dāng)Add-in卡連接在處理器主板時(shí),處理器主板的PRSNT2#信號(hào)為低,當(dāng)Add-In卡拔出后,處理器主板的PRSNT2#信號(hào)為高。處理器主板的熱插拔控制邏輯將捕獲這個(gè)“高電平”,得知Add-In卡已經(jīng)被拔出,從而觸發(fā)系統(tǒng)軟件進(jìn)行相應(yīng)地處理。不同的處理器系統(tǒng)處理PCIe設(shè)備熱拔插的過程并不相同,在一個(gè)實(shí)際的處理器系統(tǒng)中,熱拔插設(shè)備的實(shí)現(xiàn)也遠(yuǎn)比圖4-3中的示例復(fù)雜得多。值得注意的是,在實(shí)現(xiàn)熱拔插功能時(shí),Add-inCard需要使用“長(zhǎng)短針,結(jié)構(gòu)。如圖4-3所示,PRSNT1#和PRSNT2#信號(hào)使用的金手指長(zhǎng)度是其他信號(hào)的一半。因此當(dāng)PCIe設(shè)備插入插槽時(shí),PRSNT1#和PRSNT2#信號(hào)在其他金手指與PCIe插槽完全接觸,并經(jīng)過一段延時(shí)后,才能與插槽完全接觸;當(dāng)PCIe設(shè)備從PCIe插槽中拔出時(shí),這兩個(gè)信號(hào)首先與PCIe
插槽斷連,再經(jīng)過一段延時(shí)后,其他信號(hào)才能與插槽斷連。系統(tǒng)軟件可以使用這段延時(shí),進(jìn)行一些熱拔插處理。4.1.3PCIe總線的層次結(jié)構(gòu)PCIe總線采用了串行連接方式,并使用數(shù)據(jù)包(Packet)進(jìn)行數(shù)據(jù)傳輸,采用這種結(jié)構(gòu)有效去除了在PCI總線中存在的一些邊帶信號(hào),如INTx和PME#等信號(hào)。在PCIe總線中,數(shù)據(jù)報(bào)文在接收和發(fā)送過程中,需要通過多個(gè)層次,包括事務(wù)層、數(shù)據(jù)鏈路層和物理層。PCIe總線的層次結(jié)構(gòu)如圖4-4所示。PC'sDmcsACoreTranceliMiLaysrEfelaLinkLaysrPC'sDmcsACoreTranceliMiLaysrEfelaLinkLaysrPh、Ph、或salLaysrLogialSub-blotkwPh^ealLaserLexicalSub-block
wElectricalSub-blockRX IXElectricalSub-blockRX IXElectricalSub-blockRX TXHl44PCIEwpreBS總線的層次組成結(jié)構(gòu)PCIe總線的層次組成結(jié)構(gòu)與網(wǎng)絡(luò)中的層次結(jié)構(gòu)有類似之處,但是PCIe總線的各個(gè)層次都是使用硬件邏輯實(shí)現(xiàn)的。在PCIe體系結(jié)構(gòu)中,數(shù)據(jù)報(bào)文首先在設(shè)備的核心層(DeviceCore)中產(chǎn)生,然后再經(jīng)過該設(shè)備的事務(wù)層(TransactionLayer)、數(shù)據(jù)鏈路層(DataLinkLayer)和物理層(PhysicalLayer),最終發(fā)送出去。而接收端的數(shù)據(jù)也需要通過物理層、數(shù)據(jù)鏈路和事務(wù)層,并最終到達(dá)DeviceCore。事務(wù)層事務(wù)層定義了PCIe總線使用總線事務(wù),其中多數(shù)總線事務(wù)與PCI總線兼容。這些總線事務(wù)可以通過Switch等設(shè)備傳送到其他PCIe設(shè)備或者RC°RC也可以使用這些總線事務(wù)訪問PCIe設(shè)備。事務(wù)層接收來自PCIe設(shè)備核心層的數(shù)據(jù),并將其封裝為TLP(TransactionLayerPacket)后,發(fā)向數(shù)據(jù)鏈路層。此外事務(wù)層還可以從數(shù)據(jù)鏈路層中接收數(shù)據(jù)報(bào)文,然后轉(zhuǎn)發(fā)至PCIe設(shè)備的核心層。事務(wù)層的一個(gè)重要工作是處理PCIe總線的“序”。在PCIe總線中,“序”的概念非常重要,也較難理解。在PCIe總線中,事務(wù)層傳遞報(bào)文時(shí)可以亂序,這為PCIe設(shè)備的設(shè)計(jì)制造了不小的麻煩。事務(wù)層還使用流量控制機(jī)制保證PCIe鏈路的使用效率。有關(guān)事務(wù)層的詳細(xì)說明見第6章。數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層保證來自發(fā)送端事務(wù)層的報(bào)文可以可靠、完整地發(fā)送到接收端的數(shù)據(jù)鏈路層。來自事務(wù)層的報(bào)文在通過數(shù)據(jù)鏈路層時(shí),將被添加SequenceNumber前綴和CRC后綴。數(shù)據(jù)鏈路層使用ACK/NAK協(xié)議保證報(bào)文的可靠傳遞。PCIe總線的數(shù)據(jù)鏈路層還定義了多種DLLP(DataLinkLayerPacket),DLLP產(chǎn)生于數(shù)據(jù)鏈路層,終止于數(shù)據(jù)鏈路層。值得注意的是,TLP與DLLP并不相同,DLLP并不是由TLP加上SequenceNumber前綴和CRC后綴組成的。3物理層物理層是PCIe總線的最底層,將PCIe設(shè)備連接在一起oPCIe總線的物理電氣特性決定了PCIe鏈路只能使用端到端的連接方式。PCIe總線的物理層為PCIe設(shè)備間的數(shù)據(jù)通信提供傳送介質(zhì),為數(shù)據(jù)傳送提供可靠的物理環(huán)境。物理層是PCIe體系結(jié)構(gòu)最重要,也是最難以實(shí)現(xiàn)的組成部分。PCIe總線的物理層定義了LTSSM(LinkTrainingandStatusStateMachine)狀態(tài)機(jī),PCIe鏈路使用該狀態(tài)機(jī)管理鏈路狀態(tài),并進(jìn)行鏈路訓(xùn)練、鏈路恢復(fù)和電源管理。PCIe總線的物理層還定義了一些專門的“序列”,有的書籍將物理層這些“序列”稱為PLP(PhsicalLayerPacker),這些序列用于同步PCIe鏈路,并進(jìn)行鏈路管理。值得注意的是PCIe設(shè)備發(fā)送PLP與發(fā)送TLP的過程有所不同。對(duì)于系統(tǒng)軟件而言,物理層幾乎不可見,但是系統(tǒng)程序員仍有必要較為深入地理解物理層的工作原理。4.1.4PCIe鏈路的擴(kuò)展PCIe鏈路使用端到端的數(shù)據(jù)傳送方式。在一條PCIe鏈路中,這兩個(gè)端口是完全對(duì)等的,分別連接發(fā)送與接收設(shè)備,而且一個(gè)PCIe鏈路的一端只能連接一個(gè)發(fā)送設(shè)備或者接收設(shè)備。因此PCIe鏈路必須使用Switch擴(kuò)展PCIe鏈路后,才能連接多個(gè)設(shè)備。使用Switch進(jìn)行鏈路在PCIe總線中,Switch2[2]是一個(gè)特殊的設(shè)備,該設(shè)備由1個(gè)上游端口和2~n個(gè)下游端口組成。PCIe總線規(guī)定,在一個(gè)Switch中可以與RC直接或者間接相連3[3]的端口為上游端口,在PCIe總線中,RC的位置一般在上方,這也是上游端口這個(gè)稱呼的由來。在Switch中除了上游端口外,其他所有端口都被稱為下游端口。下游端口一般與EP相連,或者連接下一級(jí)Switch繼續(xù)擴(kuò)展PCIe鏈路。其中與上游端口相連的PCIe鏈路被稱為上游鏈路,與下游端口相連的PCIe鏈路被稱為下游鏈路。上游鏈路和下游鏈路是一個(gè)相對(duì)的概念。如上圖所示,Switch與EP2連接的PCIe鏈路,對(duì)于EP2而言是上游鏈路,而對(duì)Switch而言是下游鏈路。在上圖所示的Switch中含有3個(gè)端口,其中一個(gè)是上游端口(UpstreamPort),而其他兩個(gè)為下游端口(DownstreamPort)。其中上游端口與RC或者其他Switch的下游端口相連,而下游端口與EP或者其他Switch的上游端口相連。在Switch中,還有兩個(gè)與端口相關(guān)的概念,分別是Egress端口和Ingress端口。這兩個(gè)端口與通過Switch的數(shù)據(jù)流向有關(guān)。其中Egress端口指發(fā)送端口,即數(shù)據(jù)離開Switch使用的端口;Ingress端口指接收端口即數(shù)據(jù)進(jìn)入Switch使用的端口。Egress端口和Ingress端口與上下游端口沒有對(duì)應(yīng)關(guān)系。在Switch中,上下游端口可以作為Egress端口,也可以作為Ingress端口。如圖4-5所示,RC對(duì)EP3的內(nèi)部寄存器進(jìn)行寫操作時(shí),Switch的上游端口為Ingress端口,而下游端口為Egress端口;當(dāng)EP3對(duì)主存儲(chǔ)器進(jìn)行DMA寫操作時(shí),該Switch的上游端口為Egress端口,而下游端口為Ingress端口。PCIe總線還規(guī)定了一種特殊的Switch連接方式,即/r/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度礦業(yè)權(quán)抵押擔(dān)保項(xiàng)目合同樣本3篇
- 2024經(jīng)七路施工項(xiàng)目廉潔保障合同版B版
- 二零二五年度廠房裝修安全風(fēng)險(xiǎn)評(píng)估合同3篇
- 2025年度高校文印服務(wù)外包合同3篇
- 二零二五年度園林景觀裝修合同范本2篇
- 2024版影視融資中介協(xié)議模板版B版
- 簡(jiǎn)易勞務(wù)派遣合同范本
- 二零二五年度icp許可證辦理與互聯(lián)網(wǎng)企業(yè)合規(guī)性審查與法律支持合同3篇
- 二零二五版二手車按揭轉(zhuǎn)讓合同范本3篇
- 二零二五版建筑材料租賃與合同變更合同3篇
- 人教版(2025新版)七年級(jí)下冊(cè)英語(yǔ):寒假課內(nèi)預(yù)習(xí)重點(diǎn)知識(shí)默寫練習(xí)
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級(jí)下冊(cè)+
- 高職組全國(guó)職業(yè)院校技能大賽(嬰幼兒照護(hù)賽項(xiàng))備賽試題庫(kù)(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫(kù)附帶答案詳解
- NB-T 47013.15-2021 承壓設(shè)備無損檢測(cè) 第15部分:相控陣超聲檢測(cè)
- SJG 05-2020 基坑支護(hù)技術(shù)標(biāo)準(zhǔn)-高清現(xiàn)行
- 汽車維修價(jià)格表
- 10KV供配電工程施工組織設(shè)計(jì)
- 終端攔截攻略
- 藥物外滲處理及預(yù)防【病房護(hù)士安全警示教育培訓(xùn)課件】--ppt課件
評(píng)論
0/150
提交評(píng)論