亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Pci-e轉pci橋裝置及其主動預取數(shù)據(jù)的方法

文檔序號:6423426閱讀:180來源:國知局
專利名稱:Pci-e轉pci橋裝置及其主動預取數(shù)據(jù)的方法
技術領域
本發(fā)明涉及數(shù)據(jù)通訊技術,特別涉及PCI-E轉PCI橋裝置以及該裝置主動預取數(shù)據(jù)的方法。
背景技術
PCI (Peripheral Component Interconnect,外圍部件互連總線)總線自從 I"2 年問世以來,就成為了迄今為止最成功的總線規(guī)范之一,廣泛用于PC/Server平臺,如聲卡、顯示卡、網(wǎng)絡設備(包括以太網(wǎng)、Modem)及I/O接口等。在嵌入式應用領域,如通訊、工業(yè)控制等方面,PCI總線也通過CompactPCI平臺獲得了大量的應用。最初,PCI總線采用的是33MHz工作頻率、32位數(shù)據(jù)/地址復用的總線方式,這種情況下總線的理論最大帶寬為 1. 056Gbps。隨著PCI V2. 2標準的推出,允許PCI總線工作在66MHz頻率、64位數(shù)據(jù)/地址復用的總線,這時的PCI總線理論最大帶寬有4. 224Gbps。作為PCI總線標準的制定和推動者,PCI SIG組織在1999年提出了 PCI_X(PCI Express, PCI快速總線)總線標準。PCI-X 1. 0總線既可使用32位寬度也可使用64位寬度的總線,工作頻率提升到133MHz,允許的最大理論帶寬達8.512Gbps。后來,該總線進一步發(fā)展為PCI-X 2. 0。為了進一步提高總線帶寬,PCI-X 2. 0總線技術在133MHz時鐘頻率的基礎上使用了 DDR(Double Date Rate,雙倍數(shù)據(jù)倍率)和QDR(Quad Date Rate,四倍數(shù)據(jù)倍率)技術,使得總線的最大帶寬達到了 4. 256GByte/S。PCI-X總線繼承了 PCI2. 2標準的許多技術特色,在原有技術的基礎上增加了許多新的技術特征。這些新特性中除了工作頻率的提升,還有更為先進的接收和傳送數(shù)據(jù)的方式,使得總線效率進一步提高。但是即便如此,隨著外圍設備性能的提升速度遠遠超過了總線本身發(fā)展的速度,PCI-X總線本身頻率難以進一步提高、工作電壓難以降低、性能不足的問題也日益凸現(xiàn)出來;而且,PCI-X 2.0 總線也沒有獲得較廣泛的應用,尤其是在通訊類的嵌入式領域。對于通訊類的嵌入式應用,隨著處理器技術的發(fā)展和性能的不斷提高,原來受限于處理器處理能力的系統(tǒng)整體性能轉變?yōu)镻CI/PCI-X總線的帶寬成為瓶頸。而應用需求導致對于性能的要求是越來越高,PCI/PCI-X總線的并行傳輸架構已經(jīng)不再適應業(yè)界產(chǎn)品發(fā)展的要求。PCI/PCI-X總線必須由帶寬更高、適應性更廣、發(fā)展?jié)摿Ω畹男乱粠Э偩€取而代之。PCI-E總線是由Intel在2001年春季的IDF上正式公布的,是面向取代PCI/PCI-X 總線的第三代1/0技術。該總線的標準由Intel支持的AWG(Arapahoe Working Group)負責制定。在2002年4月17日,AWG正式宣布標準草稿制定完畢,并命名為3GI0 1.0。3GI0 1. O主要采用串行SerDes技術進行數(shù)據(jù)傳輸,取代了 PCI/PCI-X總線的并行傳輸方式,并在軟件上做到了和PCI/PCI-X總線的兼容。在這個標準提出之后,業(yè)界還存在Motorola主導的在嵌入式處理器上主推的Serial RapidIO以及基于Ethernet進行傳輸?shù)拇锌偩€。 但是隨著3GI0標準最后通過PCI SIG組織的審核,被確定為PCI總線的下一代升級標準, 并命名為PCI Express。2002年7月23日,PCI SIG組織正式公布了 PCI Express 1. 0標準。在2006年底,又正式推出了 PCIExpress 2. 0標準。PCI Express總線采用串行總線進行點對點傳輸,每個傳輸通道獨享帶寬。PCI Express總線支持雙向傳輸模式和數(shù)據(jù)分通道傳輸模式。其中,數(shù)據(jù)分通道傳輸模式即PCI Express總線的X1、X2、X4、X8、X16和X32多通道連接。PCI Expressl. 0X1單向數(shù)據(jù)傳輸有效帶寬即可達到2Gbps,雙向傳輸有效帶寬更能夠達到4Gbps,這已經(jīng)不是普通PCI/PCI-X 總線所能夠相比的了。PCI、PCI-X、PCI Expressl. 0總線的理論帶寬對比示意圖如圖1所
示隨著PCI SIG組織不斷完善PCI Express總線的標準,該總線首先在PC/Server 平臺上獲得了大量的使用。隨著技術的不斷成熟,PCI Express總線在通訊類的嵌入式領域應用已經(jīng)成為很多器件廠家和系統(tǒng)方案設計的選擇。由于數(shù)據(jù)通訊類應用中產(chǎn)品生命周期較長,早期的PCI模塊較多,新的PCI Express平臺兼容老的PCI模塊是一種基本的要求, PCI Express兼容老的PCI模塊,普遍采用PCI-E轉PCI橋的方法。數(shù)據(jù)通訊領域中傳統(tǒng)PCI應用的數(shù)據(jù)流圖如圖2所示。需要說明的是,圖2中的 PCI擴展橋不是必要器件,但是,嵌入式CPU通過PCI擴展橋可以連接多個PCI通信模塊。 圖2所示傳統(tǒng)PCI應用中,典型的數(shù)據(jù)流是由PCI通信模塊發(fā)起的寫數(shù)據(jù)到系統(tǒng)內存和PCI 模塊從系統(tǒng)內存讀數(shù)據(jù)。所有數(shù)據(jù)都保存在系統(tǒng)內存中,其存放格式如圖3所示。所有數(shù)據(jù)必須有CPU參與處理,不同PCI通信模塊使用的BD (Buffer Descriptor,緩存描述符)是不同的,但本質上是類似的。以發(fā)送數(shù)據(jù)為例,即PCI通信模塊先從系統(tǒng)內存中讀取一個小塊數(shù)據(jù)(Buffer描述符),獲知CPU已經(jīng)準備好數(shù)據(jù),以及數(shù)據(jù)存放的起始地址和數(shù)據(jù)長度; PCI通信模塊再從系統(tǒng)內存中讀取數(shù)據(jù),并發(fā)送。圖2所示PCI應用中,PCI通信模塊批量發(fā)送數(shù)據(jù)的詳細流程如下(1) CPU把要發(fā)送的數(shù)據(jù)依次保存在Bufferl-BufferN中;(2) CPU判斷Buffer描述符1_N發(fā)送完成標志已設置,就開始依次更新Buffer描述符1-N,令Buffer描述符I-N指向Bufferl-BufferN,最后設置Buffer描述符對應的發(fā)送Buffer數(shù)據(jù)準備好標志;(3)PCI通信模塊DMA輪詢讀系統(tǒng)內存中的Buffer描述符1,如果發(fā)現(xiàn)Buffer描述符1的發(fā)送Buffer數(shù)據(jù)準備好標志已設置,PCI通信模塊從Buffer描述符1中獲取數(shù)據(jù)Bufferl地址和數(shù)據(jù)長度;(4) PCI通信模塊獲取發(fā)送數(shù)據(jù)Bufferl地址和數(shù)據(jù)長度后,從Bufferl地址讀取指定數(shù)據(jù)長度的數(shù)據(jù),并把數(shù)據(jù)發(fā)送出去;(5) PCI通信模塊設置Buffer描述符1發(fā)送完成標志;(6) PCI通信模塊DMA輪詢讀系統(tǒng)內存中的Buffer描述符2,依次類推,直到把CPU 準備好的數(shù)據(jù)都發(fā)送出去。在PCI總線上看,PCI通信模塊讀Buffer描述符或者讀數(shù)據(jù),PCI通信模塊都是 PCI讀交易的發(fā)起者,發(fā)送PCI讀交易請求給其上游的CPU。PCI通信模塊讀Buffer描述符和讀數(shù)據(jù)分別是兩次不同的PCI讀交易。對于數(shù)據(jù)通訊應用來說,讀Buffer描述符,數(shù)據(jù)量小,一般在32Bytes之內;讀Buffer數(shù)據(jù),數(shù)據(jù)量大,一般在64ByteS-1500ByteS之間。數(shù)據(jù)通訊領域升級到PCI Express后,PCI-E轉PCI橋的應用方案如圖4所示。 PCI-E轉PCI橋不同于PCI擴展橋,PCI-E轉PCI橋是一個必須使用的器件,只有使用PCI-E轉PCI橋,才能兼容老的PCI設備。圖4所示PCIExpress應用中,典型的數(shù)據(jù)流是由PCI 通信模塊發(fā)起的寫數(shù)據(jù)到系統(tǒng)內存和PCI模塊從系統(tǒng)內存讀數(shù)據(jù)。與PCI應用相同,所有數(shù)據(jù)也都保存在系統(tǒng)內存中,所有數(shù)據(jù)必須有CPU參與處理。與PCI應用不同的是,PCI-E 轉PCI橋代替了 PCI擴展橋。PCI-E轉PCI橋與傳統(tǒng)的PCI擴展橋相比,數(shù)據(jù)經(jīng)過PCI-E轉PCI橋的延遲時間是數(shù)據(jù)經(jīng)過PCI擴展橋的10倍以上,這是由于PCI-E轉PCI橋要實現(xiàn)兩種完全不同的I/O總線協(xié)議報文的轉換,而PCI擴展橋僅需要擴展PCI電氣特性,不涉及報文轉換。PCI-E轉PCI橋這種大延遲的缺陷,對PCI通信模塊寫數(shù)據(jù)到系統(tǒng)內存影響不大, 這是因為PCI寫交易是一種Post操作,PCI通信模塊把數(shù)據(jù)寫給PCI-E轉PCI橋之后,PCI 通信模塊就認為PCI寫交易結束了,而PCI-E轉PCI橋會代理該寫交易,負責把數(shù)據(jù)真正寫到系統(tǒng)內存中。PCI-E轉PCI橋這種大延遲的缺陷,對PCI通信模塊從系統(tǒng)內存讀數(shù)據(jù)的影響較大,這是因為PCI讀交易是一種Non-Post操作,即PCI通信模塊發(fā)起讀交易請求后,PCI-E 轉PCI橋會一直Retry該讀交易,直到PCI-E轉PCI橋從系統(tǒng)內存中讀數(shù)據(jù)到PCI-E轉PCI 橋內部緩存中,PCI-E轉PCI橋才會響應PCI通信模塊的讀交易請求。PCI-E轉PCI橋的大延遲,導致PCI通信設備從系統(tǒng)內存讀數(shù)據(jù)的等待時間增大,降低了 PCI通信模塊的數(shù)據(jù)發(fā)送性能。PCI總線本身還有一個缺陷,就是PCI讀寫交易都沒有指定數(shù)據(jù)傳輸?shù)拈L度, PCI-X和PCI Express都改正了這個缺陷,在數(shù)據(jù)傳輸前,會指定數(shù)據(jù)傳輸?shù)拈L度。PCI總線沒有指定數(shù)據(jù)傳輸長度的缺陷,對PCI通信模塊寫數(shù)據(jù)到系統(tǒng)內存影響不大,PCI-E轉PCI橋內部有足夠的緩存,可以接收PCI通信模塊發(fā)出的大包數(shù)據(jù)。PCI總線沒有指定數(shù)據(jù)傳輸長度的缺陷,對PCI通信模塊從系統(tǒng)內存讀數(shù)據(jù)影響較大。例如PCI通信模塊要從系統(tǒng)內存讀取1500Bytes的數(shù)據(jù),PCI通信模塊向PCI-E轉 PCI橋發(fā)起一個PCI MemoryMulLine讀交易請求,PCI-E轉PCI橋Retry該讀交易請求,同時PCI-E轉PCI橋從系統(tǒng)內存獲取32Bytes的數(shù)據(jù),在PCI通信模塊再次發(fā)起讀交易請求后,發(fā)送給PCI通信模塊。由于數(shù)據(jù)不滿足PCI通信模塊的要求,PCI通信模塊仍保持讀交易狀態(tài),PCI-E轉PCI橋只能再次Retry該讀交易請求,PCI-E轉PCI橋再次從系統(tǒng)內存獲取32Bytes的數(shù)據(jù),依次類推,PCI通信模塊的一次大數(shù)據(jù)讀交易,被串行分割成多次小交易,才得以完成。PCI總線的這個缺陷,相當于把PCI-E轉PCI橋大延遲缺陷進一步放大。綜上,目前數(shù)據(jù)通訊領域應用PCI Express存在以下問題新的數(shù)據(jù)通訊產(chǎn)品通過PCI-E轉PCI橋兼容老的PCI通信模塊,由于PCI-E轉PCI橋延遲較大以及PCI總線數(shù)據(jù)交易不指定數(shù)據(jù)傳輸長度,導致PCI通信模塊發(fā)送性能大幅下降。為解決上述技術問題,現(xiàn)有PCI-E轉PCI橋都增強了預取的設計。所謂預取操作, 就是PCI-E轉PCI橋在接收到PCI通信模塊讀系統(tǒng)內存的交易請求后,采用預取讀的方式, 從系統(tǒng)內存中讀出一定數(shù)量的數(shù)據(jù),以滿足PCI通信模塊可能的大數(shù)據(jù)讀需求。PCI-E轉 PCI橋裝置內部實現(xiàn)如圖5所示。圖5所示PCI-E轉PCI橋裝置內部設置有PCI-E預取處理模塊,預取長度可通過配置寄存器設置。預取長度設置成功后,PCI-E轉PCI橋對PCI通信模塊發(fā)起的系統(tǒng)內存讀交易請求,都將采用該預取長度進行預取操作。這就導致PCI-E轉PCI橋預取長度只能折中固定設置,不能動態(tài)調整。如果只考慮PCI通信模塊大包數(shù)據(jù)傳輸,PCI-E轉PCI橋預取長度設置為 2048Bytes,但實際應用中PCI通信模塊可能是64Bytes小包數(shù)據(jù)發(fā)送,這就會導致PCI-E 轉PCI橋預取的數(shù)據(jù)絕大部分都是無效的,且占用了 PCIExpress總線資源,又會增大PCI 通信模塊下一次讀交易請求等待時間(因為PCI讀交易數(shù)據(jù)少,很快就會結束,而PCI Express大數(shù)據(jù)量的預取還沒有完成,PCI Express總線被占用,PCI通信模塊下一次讀交易請求被PCI-E轉PCI橋延遲處理)。如果只考慮PCI通信模塊小包數(shù)據(jù)傳輸,PCI-E轉PCI橋預取長度設置較小,PCI 通信模塊大包傳輸預取效果無法體現(xiàn)。如果CPU根據(jù)每個Buffer描述符指定的數(shù)據(jù)長度,動態(tài)設置PCI-E轉PCI橋預取長度,就會導致PCI通信模塊發(fā)送數(shù)據(jù)必須與CPU串行同步操作,無法并行批量操作,降低發(fā)送效率。例如CPU要求PCI通信模塊連續(xù)發(fā)送64Bytes、1500Bytes、64Bytes、1500Bytes 四個數(shù)據(jù)報文,PCI-E轉PCI橋預取長度就無法提前設置。下面簡單分析現(xiàn)有PCI-E轉PCI橋在數(shù)據(jù)通訊應用中的數(shù)據(jù)流。以PCI通信模塊發(fā)送一個大包(1024ByteS)數(shù)據(jù)為例,PCI-Express轉PCI橋的預取長度固定折中設置為 512Bytes,完整數(shù)據(jù)流如圖6所示。從圖6所示數(shù)據(jù)流中,可以看出現(xiàn)有PCI-E轉PCI橋存在以下缺點1)只有PCI通信模塊發(fā)起讀數(shù)據(jù)交易請求,才能觸發(fā)PCI-E轉PCI橋預取動作。 從總線利用率角度看,高速的PCI Express總線總是處于空閑的,PCI Express總線利用率較低;低速的PCI總線總是被PCI通信模塊反復讀請求占用,PCI總線浪費率較大。2) PCI-E轉PCI橋預取長度只能固定折中設置,對于數(shù)據(jù)通訊中的大包傳輸,總線利用率較低,對于小包傳輸,總線浪費率則較大。

發(fā)明內容
本發(fā)明提供了一種PCI-E轉PCI橋裝置以及用于該裝置的主動預取數(shù)據(jù)的方法, 旨在解決數(shù)據(jù)通訊領域中PCI-E轉PCI橋兼容老PCI通信模塊,PCI通信模塊發(fā)送性能大幅下降的問題。本發(fā)明實施例提供的一種PCI-E轉PCI橋裝置,包括主動預取配置接口、主動預取PCI-E讀交易生成模塊、PCI-E收發(fā)模塊和讀數(shù)據(jù)緩存;其中所述主動預取配置接口,用于在CPU準備好待發(fā)送數(shù)據(jù)之后,并在設置緩存描述符之前,從CPU接收所述待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度;所述主動預取PCI-E讀交易生成模塊,用于從所述主動預取配置接口獲取待發(fā)送數(shù)據(jù)的起始地址和長度,并生成相應的PCI-E總線讀交易請求發(fā)送給CPU以預取所述待發(fā)送數(shù)據(jù);PCI-E收發(fā)模塊,用于將預取得到的待發(fā)送數(shù)據(jù)存儲到所述讀數(shù)據(jù)緩存;所述讀數(shù)據(jù)緩存,用于存儲所述預取得到的待發(fā)送數(shù)據(jù),以便PCI通信模塊發(fā)出的PCI讀交易請求命中所述預取得到的待發(fā)送數(shù)據(jù)時,將命中的所述預取得到的待發(fā)送數(shù)據(jù)發(fā)送給PCI通信模塊。較佳地,所述裝置中還可以包括發(fā)送選擇模塊和PCI-E讀交易生成模塊;
所述主動預取PCI-E讀交易生成模塊,用于將所生成的PCI-E總線讀交易請求通過所述發(fā)送選擇模塊發(fā)送給CPU ;PCI-E讀交易生成模塊,用于將接收自PCI通信模塊的PCI讀交易請求轉換成 PCI-E總線讀交易請求,并將轉換得到的PCI-E總線讀交易請求發(fā)送給所述發(fā)送選擇模塊;所述發(fā)送選擇模塊,用于分別接收主動預取PCI-E讀交易生成模塊和PCI-E讀交易生成模塊生成的PCI-E總線讀交易請求,并按照時間片分別選擇其中的一個PCI-E總線讀交易請求通過PCI-E收發(fā)模塊發(fā)送給CPU。較佳地,所述主動預取配置接口可以包括預取長度區(qū)、標識區(qū)和預取起始地址區(qū);所述主動預取配置接口,用于在所述標識區(qū)未被設置時,將接收自CPU的待發(fā)送數(shù)據(jù)的起始地址設置到所述預取起始地址區(qū),將接收自CPU的待發(fā)送數(shù)據(jù)的長度設置到所述預取長度區(qū)。進一步地,所述裝置還可以包括主動預取操作隊列;所述主動預取操作隊列中的每一項用于存儲一個起始地址和長度,每次在主動預取配置接口從CPU接收待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度之后,所述待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度作為一項進入主動預取操作隊列;所述主動預取PCI-E讀交易生成模塊,還用于按照先入先出的原則從所述主動預取操作隊列中獲取一項待發(fā)送數(shù)據(jù)的起始地址和長度,并生成相應的PCI-E總線讀交易請求。較佳地,當主動預取操作隊列滿時,所述主動預取操作隊列還用于通知主動預取配置接口,所述主動預取配置接口還用于根據(jù)主動預取操作隊列的通知設置所述標識區(qū);當主動預取操作隊列存在空閑項時,所述主動預取操作隊列還用于通知主動預取配置接口,所述主動預取配置接口還用于根據(jù)主動預取操作隊列的通知清除所述標識區(qū)的設置。較佳地,所述發(fā)送選擇模塊,用于按照1 1的時間片比例,從接收自主動預取 PCI-E讀交易生成模塊和PCI-E讀交易生成模塊的PCI-E總線讀交易請求中選擇一個通過 PCI-E收發(fā)模塊發(fā)送給CPU。本發(fā)明實施例提供的一種主動預取數(shù)據(jù)的方法,應用于PCI-E轉PCI橋裝置,包括CPU準備好待發(fā)送數(shù)據(jù)之后,在設置緩存描述符之前,將所述待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度設置到PCI-E轉PCI橋;PCI-E轉PCI橋根據(jù)CPU所設置的起始地址和長度向CPU發(fā)送PCI-E總線讀交易請求,預取所述待發(fā)送數(shù)據(jù),并將預取得到的所述待發(fā)送數(shù)據(jù)存儲到PCI-E轉PCI橋的讀數(shù)據(jù)緩存中;當接收到PCI通信模塊的PCI讀交易請求命中讀數(shù)據(jù)緩存中所述預取得到的待發(fā)送數(shù)據(jù)時,PCI-E轉PCI橋將命中的所述預取得到的待發(fā)送數(shù)據(jù)發(fā)送給PCI通信模塊。該方法可以進一步包括在PCI-E轉PCI橋中設置主動預取操作隊列,所述主動預取操作隊列中的每一項用于存儲CPU設置到PCI-E轉PCI橋的一個待發(fā)送數(shù)據(jù)的起始地址和長度;
PCI-E轉PCI橋按照先入先出的原則從所述主動預取操作隊列中獲取一項待發(fā)送數(shù)據(jù)的起始地址和長度,向CPU預取相應的待發(fā)送數(shù)據(jù)。該方法還可以進一步包括當接收到PCI通信模塊的需要發(fā)送給CPU的PCI讀交易請求時,PCI-E轉PCI橋將該請求轉換為PCI-E總線讀交易請求,并按照時間片從用于預取待發(fā)送數(shù)據(jù)的PCI-E總線讀交易請求和轉換的PCI-E總線讀交易請求中選擇一個發(fā)送給 CPU。較佳地,所述PCI-E轉PCI橋可以按照1 1的時間片比例,從用于預取待發(fā)送數(shù)據(jù)的PCI-E總線讀交易請求和轉換的PCI-E總線讀交易請求中選擇一個發(fā)送給CPU。由上述技術方案可見,本發(fā)明提供的PCI-E轉PCI橋裝置及其相應的主動預取數(shù)據(jù)的方法能夠獲得以下有益效果(1)實現(xiàn)了 PCI-E轉PCI橋的主動預取,把原有PCI通信模塊讀取BD描述符、讀數(shù)據(jù)、設置BD描述符發(fā)送完成標志的串行動作,改為并行執(zhí)行,提高了 PCI-E總線的利用率, 大幅提高了 PCI通信模塊的發(fā)送性能,抵消了 PCI-E轉PCI橋引入的大延遲。(2)實現(xiàn)了 PCI-E轉PCI橋的預取長度動態(tài)設置,保證了每次發(fā)送的最優(yōu)預取,降低了 PCI總線浪費率。(3)針對數(shù)據(jù)通訊應用的特殊性進行設計,針對性強。


圖1為PCI、PCI_X、PCI Expressl. 0總線的理論帶寬對比示意圖;圖2為數(shù)據(jù)通訊領域中傳統(tǒng)PCI應用的數(shù)據(jù)流圖;圖3為傳統(tǒng)PCI應用的報文處理流程示意圖;圖4為現(xiàn)有數(shù)據(jù)通訊領域中PCI Express應用的數(shù)據(jù)流圖;圖5為現(xiàn)有PCI-E轉PCI橋裝置的內部實現(xiàn)框圖;圖6為現(xiàn)有PCI-E轉PCI橋大包數(shù)據(jù)預取的數(shù)據(jù)流圖;圖7為本發(fā)明一實施例中PCI-E轉PCI橋的結構示意圖;圖8為本發(fā)明一較佳主動預取數(shù)據(jù)的方法的數(shù)據(jù)流圖;圖9為本發(fā)明一較佳實施例中批量數(shù)據(jù)處理的示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明作進一步詳細說明。由于現(xiàn)有PCI-E轉PCI橋無法預知CPU發(fā)送數(shù)據(jù)的長度和數(shù)據(jù)在緩存中的起始地址,所以現(xiàn)有PCI-E轉PCI橋只能被動等待PCI通信模塊發(fā)起讀交易請求,才能觸發(fā)預取動作。在數(shù)據(jù)通訊領域中,PCI通信模塊向外發(fā)送的數(shù)據(jù)都是由CPU準備的,PCI通信模塊發(fā)送數(shù)據(jù)的起始地址和長度是先由CPU采用Buffer描述符的方式通知給PCI通信模塊, 再由PCI通信模塊從系統(tǒng)內存中讀取發(fā)送數(shù)據(jù)的。根據(jù)這一基本特點,本發(fā)明提出了一種具備主動預取功能的PCI-E轉PCI橋裝置,該裝置提供主動預取配置接口給CPU,允許CPU 在準備好待發(fā)送數(shù)據(jù)之后,并在設置Buffer描述符之前,將待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度設置到PCI-E轉PCI橋的主動預取配置接口中;CPU對PCI-E轉PCI橋中主動預取配置接口的設置,觸發(fā)PCI-E轉PCI橋中的主動預取PCI-E讀交易生成模塊向CPU主動預取待發(fā)送數(shù)據(jù)到PCI-E轉PCI橋的內部緩存中;PCI通信模塊發(fā)出的讀系統(tǒng)內存中待發(fā)送數(shù)據(jù)的請求命中PCI-E轉PCI橋的內部緩存中的主動預取的待發(fā)送數(shù)據(jù),PCI-E轉PCI橋直接響應該PCI讀交易請求,并向PCI通信模塊返回該命中預取得到的待發(fā)送數(shù)據(jù),從而實現(xiàn)了根據(jù)CPU的發(fā)送需求動態(tài)設置預取長度,完成預取工作,以解決數(shù)據(jù)通訊領域中PCI-E 轉PCI橋兼容老PCI通信模塊,PCI通信模塊發(fā)送性能大幅下降的問題。為適應CPU和PCI通信模塊批量數(shù)據(jù)發(fā)送的應用,在本發(fā)明的一較佳實施例PCI-E 轉PCI橋中還引入主動預取操作隊列,可保存多個主動預取的目標數(shù)據(jù)在緩存中的起始地址和長度,從而可以根據(jù)CPU的發(fā)送需求動態(tài)設置多個預取長度。本發(fā)明設計的裝置,實現(xiàn)在PCI Express轉PCI橋上,如圖7所示。圖7所示裝置包括以下模塊PCI收發(fā)模塊701、寫數(shù)據(jù)緩存702、讀數(shù)據(jù)緩存703、PCI讀請求處理模塊 704、PCI-E預取處理模塊705、PCI-E讀交易生成模塊706、PCI-E收發(fā)模塊707、主動預取配置接口 708、主動預取操作隊列709、主動預取PCI-E讀交易生成模塊710和發(fā)送選擇模塊711。其中,虛線框示出的模塊是本專利與現(xiàn)有PCI Express轉PCI橋區(qū)別的創(chuàng)新設計, 具體包括主動預取配置接口 708、主動預取操作隊列709、主動預取PCI-E讀交易生成模塊 710和發(fā)送選擇模塊711。下面對本發(fā)明新增的模塊進行詳細說明(1)主動預取配置接口 708本發(fā)明在PCI Express轉PCI橋的配置空間增加一個主動預取配置接口 708,該主動預取配置接口,用于在CPU準備好待發(fā)送數(shù)據(jù)之后,并在設置緩存描述符之前,從CPU接收所述待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度。該接口可以包括以下區(qū)域預取長度區(qū)、標識區(qū)和預取起始地址區(qū)。較佳地,主動預取配置接口 708可以占用12字節(jié)空間,格式如表1所示
權利要求
1.一種PCI-E轉PCI橋裝置,其特征在于,包括主動預取配置接口、主動預取PCI-E讀交易生成模塊、PCI-E收發(fā)模塊和讀數(shù)據(jù)緩存;其中所述主動預取配置接口,用于在CPU準備好待發(fā)送數(shù)據(jù)之后,并在設置緩存描述符之前,從CPU接收所述待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度;所述主動預取PCI-E讀交易生成模塊,用于從所述主動預取配置接口獲取待發(fā)送數(shù)據(jù)的起始地址和長度,并生成相應的PCI-E總線讀交易請求發(fā)送給CPU以預取所述待發(fā)送數(shù)據(jù);PCI-E收發(fā)模塊,用于將預取得到的待發(fā)送數(shù)據(jù)存儲到所述讀數(shù)據(jù)緩存; 所述讀數(shù)據(jù)緩存,用于存儲所述預取得到的待發(fā)送數(shù)據(jù),以便PCI通信模塊發(fā)出的PCI 讀交易請求命中所述預取得到的待發(fā)送數(shù)據(jù)時,將命中的所述預取得到的待發(fā)送數(shù)據(jù)發(fā)送給PCI通信模塊。
2.根據(jù)權利要求1所述的裝置,其特征在于,所述裝置中還包括發(fā)送選擇模塊和PCI-E 讀交易生成模塊;所述主動預取PCI-E讀交易生成模塊,用于將所生成的PCI-E總線讀交易請求通過所述發(fā)送選擇模塊發(fā)送給CPU ;PCI-E讀交易生成模塊,用于將接收自PCI通信模塊的PCI讀交易請求轉換成PCI-E總線讀交易請求,并將轉換得到的PCI-E總線讀交易請求發(fā)送給所述發(fā)送選擇模塊;所述發(fā)送選擇模塊,用于分別接收主動預取PCI-E讀交易生成模塊和PCI-E讀交易生成模塊生成的PCI-E總線讀交易請求,并按照時間片分別選擇其中的一個PCI-E總線讀交易請求通過PCI-E收發(fā)模塊發(fā)送給CPU。
3.根據(jù)權利要求1或2所述的裝置,其特征在于所述主動預取配置接口包括預取長度區(qū)、標識區(qū)和預取起始地址區(qū); 所述主動預取配置接口,用于在所述標識區(qū)未被設置時,將接收自CPU的待發(fā)送數(shù)據(jù)的起始地址設置到所述預取起始地址區(qū),將接收自CPU的待發(fā)送數(shù)據(jù)的長度設置到所述預取長度區(qū)。
4.根據(jù)權利要求3所述的裝置,其特征在于,所述裝置還包括主動預取操作隊列;所述主動預取操作隊列中的每一項用于存儲一個起始地址和長度,每次在主動預取配置接口從CPU接收待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度之后,所述待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度作為一項進入主動預取操作隊列;所述主動預取PCI-E讀交易生成模塊,還用于按照先入先出的原則從所述主動預取操作隊列中獲取一項待發(fā)送數(shù)據(jù)的起始地址和長度,并生成相應的PCI-E總線讀交易請求。
5.根據(jù)權利要求4所述的裝置,其特征在于當主動預取操作隊列滿時,所述主動預取操作隊列還用于通知主動預取配置接口,所述主動預取配置接口還用于根據(jù)主動預取操作隊列的通知設置所述標識區(qū);當主動預取操作隊列存在空閑項時,所述主動預取操作隊列還用于通知主動預取配置接口,所述主動預取配置接口還用于根據(jù)主動預取操作隊列的通知清除所述標識區(qū)的設置。
6.根據(jù)權利要求2所述的裝置,其特征在于所述發(fā)送選擇模塊,用于按照1 1的時間片比例,從接收自主動預取PCI-E讀交易生成模塊和PCI-E讀交易生成模塊的PCI-E總線讀交易請求中選擇一個通過PCI-E收發(fā)模塊發(fā)送給CPU。
7.—種主動預取數(shù)據(jù)的方法,應用于PCI-E轉PCI橋裝置,其特征在于,包括CPU準備好待發(fā)送數(shù)據(jù)之后,在設置緩存描述符之前,將所述待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度設置到PCI-E轉PCI橋;PCI-E轉PCI橋根據(jù)CPU所設置的起始地址和長度向CPU發(fā)送PCI-E總線讀交易請求, 預取所述待發(fā)送數(shù)據(jù),并將預取得到的所述待發(fā)送數(shù)據(jù)存儲到PCI-E轉PCI橋的讀數(shù)據(jù)緩存中;當接收到PCI通信模塊的PCI讀交易請求命中讀數(shù)據(jù)緩存中所述預取得到的待發(fā)送數(shù)據(jù)時,PCI-E轉PCI橋將命中的所述預取得到的待發(fā)送數(shù)據(jù)發(fā)送給PCI通信模塊。
8.根據(jù)權利要求7所述的方法,其特征在于,該方法進一步包括在PCI-E轉PCI橋中設置主動預取操作隊列,所述主動預取操作隊列中的每一項用于存儲CPU設置到PCI-E轉PCI橋的一個待發(fā)送數(shù)據(jù)的起始地址和長度;PCI-E轉PCI橋按照先入先出的原則從所述主動預取操作隊列中獲取一項待發(fā)送數(shù)據(jù)的起始地址和長度,向CPU預取相應的待發(fā)送數(shù)據(jù)。
9.根據(jù)權利要求7或8所述的方法,其特征在于,該方法進一步包括當接收到PCI通信模塊的需要發(fā)送給CPU的PCI讀交易請求時,PCI-E轉PCI橋將該請求轉換為PCI-E總線讀交易請求,并按照時間片從用于預取待發(fā)送數(shù)據(jù)的PCI-E總線讀交易請求和轉換的PCI-E總線讀交易請求中選擇一個發(fā)送給CPU。
10.根據(jù)權利要求9所述的方法,其特征在于所述PCI-E轉PCI橋按照1 1的時間片比例,從用于預取待發(fā)送數(shù)據(jù)的PCI-E總線讀交易請求和轉換的PCI-E總線讀交易請求中選擇一個發(fā)送給CPU。
全文摘要
本發(fā)明提供了一種PCI-E轉PCI橋裝置及其主動預取數(shù)據(jù)的方法。本發(fā)明PCI-E轉PCI橋裝置設置有主動預取配置接口和主動預取PCI-E讀交易生成模塊,在CPU準備好待發(fā)送數(shù)據(jù)之后,并在設置Buffer描述符之前,該主動預取配置接口用于從CPU接收待發(fā)送數(shù)據(jù)在緩存中的起始地址和長度;該主動預取PCI-E讀交易生成模塊用于從主動預取配置接口獲取待發(fā)送數(shù)據(jù)的起始地址和長度,并向CPU主動預取待發(fā)送數(shù)據(jù)到PCI-E轉PCI橋的內部緩存中;PCI-E轉PCI橋直接響應PCI通信模塊發(fā)出的讀系統(tǒng)內存中待發(fā)送數(shù)據(jù)的請求,并向PCI通信模塊返回預取得到的待發(fā)送數(shù)據(jù)。應用本發(fā)明能夠實現(xiàn)數(shù)據(jù)主動預取,并且,預取數(shù)據(jù)在緩存中的起始地址和長度可以動態(tài)設置。
文檔編號G06F13/42GK102184151SQ20111011170
公開日2011年9月14日 申請日期2011年4月29日 優(yōu)先權日2011年4月29日
發(fā)明者張穎, 李星爽, 段琳, 趙志宇, 錢嘉林 申請人:杭州華三通信技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1