一種用于pcie應用層接口的重排序技術的制作方法
【專利摘要】本發(fā)明涉及一種用于PCIE應用層接口的重排序技術,使用外部存儲器來存儲接收的數(shù)據(jù)以及需要存儲的信息,使用查找表(lut)記錄分割前后包的標志位(TAG號),加入內(nèi)部TAG號來使得將接收的所有的請求包標志號(ID號)都先轉(zhuǎn)換成不同的內(nèi)部標志號(InternalTAG),這樣就完全解決現(xiàn)有方案中阻塞所導致的問題,提高了工作速率,并且能夠解決包的亂序問題。
【專利說明】—種用于PCIE應用層接口的重排序技術
【技術領域】
[0001]本發(fā)明涉及一種用于PCIE應用層接口的重排序技術。
【背景技術】
[0002]隨著計算機運行速度越來越高,提出了第三代計算機I/O技術,即PCIE總線技術。相比較于傳統(tǒng)的PCI總線技術,PCIE在帶寬,時延,速率等方面都有不同程度的性能提升。
[0003]PCIE的硬核中包括PCIE物理層,PCIE數(shù)據(jù)鏈路層和PCIE事務層。PCIE事務層負責對包進行發(fā)送和接收,并進行相應的錯誤檢測。PCIE事務層屬于硬核的最高層,與應用層通過總線相連接而實現(xiàn)通信。
[0004]相對于高級高性能總線(AHB)總線,ARM公司新提出的高級可擴展接口(AXI)總線協(xié)議有更好的性能,AXI總線擁有單通道體系結(jié)構,簡化時鐘域之間的橋接,減少延時;支持多項數(shù)據(jù)交換,通過執(zhí)行猝發(fā)操作,極大地提高了數(shù)據(jù)吞吐能力;擁有獨立的地址和數(shù)據(jù)通道,可根據(jù)需要控制時序通道,將時鐘頻率提高至最高??梢夾XI是一種面向高性能,高帶寬,低延時的片內(nèi)總線,能夠滿足PCIE的高速率,高帶寬和低延時的高性能要求。
[0005]基于PCIE硬核要連接至AXI總線繼而與應用層通信,因此在PCIE硬核與AXI總線之間需要一個橋接器來實現(xiàn)兩者的協(xié)議轉(zhuǎn)換。AXI總線支持亂序傳輸,所以在橋接器內(nèi)部需要將亂序接收的包進行重排序。
[0006]圖1是一個完整的AXI PCIE橋的總線結(jié)構,它包括兩個部分AXI4到AXI4-stream的橋以及從AXI4_stream接口到PCI Express的轉(zhuǎn)換。AXI4到AXI4_stream橋包含一個寄存器模塊和主橋模塊和從橋模塊。AXI橋內(nèi)的寄存器模塊輸了進行數(shù)據(jù)的存儲之外還用于動態(tài)將AXI4總線地址映射到PCI Express的地址范圍內(nèi)。從橋模塊作為一個AXI從設備連接到AXI4總線上,而主橋模塊作為一個AXI主設備連接到AXI4總線上。
[0007]當一個遠端的AXI主設備發(fā)起一個到從橋模塊的寫傳輸時,從橋模塊將接收到寫地址和寫傳輸?shù)钠渌刂菩畔?,而寫?shù)據(jù)將先存儲在queue中,采用先進先出的讀取方式。根據(jù)我們配置的Max Payload Size的值,這些寫數(shù)據(jù)將被轉(zhuǎn)換成一個或多個存儲器寫傳輸包(MemWr TLPs),然后傳輸?shù)絇CI Express模塊。后續(xù)的寫請求到來時,寫地址和控制信息被捕獲接受,但是它的相應寫數(shù)據(jù)要被阻塞直到先前的寫傳輸包(TLP)傳輸?shù)絇CIExpress模塊之后再進入隊列中。這樣雖然能夠完全保證不發(fā)生發(fā)送包的亂序,但是在一段工作時間內(nèi)只能處理一個請求,限制了效率的提高。
[0008]當一個遠端的AXI主設備發(fā)起一個到從橋模塊的讀傳輸時,由于讀傳輸不攜帶數(shù)據(jù),因此只接收到讀地址和其它的讀控制信息,然后發(fā)出一個到PCI Express模塊的存儲器讀傳輸包(MemRd TLP)請求,并且同時啟動完成超時功能塊。從PCI Express模塊接受的完成包與當前阻塞等待處理的讀請求和返回的讀數(shù)據(jù)有關,這是因為如果接收的完成包超出完成超時功能塊設定的時間,就說明接收的完成包超時,則它所攜帶的信息就是無效的,需要向PCI Express模塊重發(fā)MemRd TLP請求,然后重新進行讀操作,直到返回正確的完成包。在當前讀請求的完成包正確接收之前,阻塞后續(xù)的讀請求。同樣導致模塊運行速率的提聞。
[0009]AXI4-Stream Enhanced PCI Express模塊包含請求接口,完成接口,寄存器模塊,Stream組合與分割,PCI Express硬核模塊。
[0010]由現(xiàn)有技術的方案描述中可見當前的PCIE接口模塊中主要采用阻塞后續(xù)讀請求的方式,直到當前請求包的完成包被正確接收之后才解除阻塞來解決包的亂序問題。這一理論類似于握手協(xié)議。但產(chǎn)生的主要問題是工作效率不高,基于提高工作效率并且解決包的亂序問題,我們提出專利的方案。
[0011]并且上述方案中需要將數(shù)據(jù)存放在存儲器模塊中,存儲器是一個面積較大,讀取速度比較緩慢的模塊,因此在很大程度上影響了模塊的面積以及工作速度。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的目的在于克服上述不足,提供一種用于PCIE應用層接口的重排序技術,解決現(xiàn)有方案中阻塞所導致的問題,提高了工作速率,并且能夠解決包的亂序問題。
[0013]本發(fā)明的目的是這樣實現(xiàn)的:一種用于PCIE應用層接口的重排序技術,中間標識位(Internal TAG)將請求包的ID號都轉(zhuǎn)換成不同的Int TAG號請求包,解決現(xiàn)有技術將后續(xù)請求包均阻塞而導致低效的問題;ID號查找表(ID -1nt lut)和PCIE查找表(Int —PCIE) Iut將ID號到Int TAG的關系與Int TAG到PCIE TAG的關系存儲起來,便于接收到完成包時進行相應的反變換,以保證按序接收。
[0014]其進一步的技術方案為:
O將接受的請求包的ID號按照接收的先后順序依次轉(zhuǎn)換成相應的中間標識位(IntTAG),并將其與ID號的轉(zhuǎn)換關系存儲在ID號查找表(ID — Int Iut)中;
2)當接收到相同的ID號請求包時,經(jīng)過上述轉(zhuǎn)換之后成為中間標識位不同的請求包,并且按照中間標識位的順序發(fā)送;
3)根據(jù)配置的根據(jù)配置的最大負載大小(MaxPayload Size)的值,將請求包分割成多個PCIE請求包,據(jù)PCIE的協(xié)議要求不同的請求包的TAG號必須不同,將分割的多個PCIE請求包的標識位依次轉(zhuǎn)換成相應的PCIE標識位,并將其與中間標識位的轉(zhuǎn)換關系存儲在PCIE 查找表(Int - PCIE Iut)中;
4)接收到的完成包根據(jù)PCIE查找表將相同的中間標識位的完成包存儲在相應的隊列中,然后依次讀取出相應的數(shù)據(jù)組成一個完成包,再經(jīng)過ID號查找表的查找,將中間標識位轉(zhuǎn)換成相應的ID號之后返回給應用層,按照請求包的發(fā)送順序返回其響應的完成包,確保順序完成。
[0015]與現(xiàn)有技術相比,本發(fā)明的有益效果是:
本發(fā)明相對于現(xiàn)有技術的使用內(nèi)部存儲器存儲數(shù)據(jù)占用較大的面積,本方案采用外部存儲器較小面積,但相應的可能在一定程度上影響了讀取速度,降低了工作效率。
【專利附圖】
【附圖說明】
[0016]圖1是現(xiàn)有AXI PCIE橋的總線結(jié)構。
[0017]圖2是實現(xiàn)本發(fā)明的結(jié)構示意圖。
[0018]圖3是TAG號的響應位置上存儲對應的Int號?!揪唧w實施方式】
[0019]如圖2所示,本發(fā)明涉及一種用于PCIE應用層接口的重排序技術,將接受的請求包的ID號按照接收的先后順序依次轉(zhuǎn)換成從TAG Q開始的Int TAG,并將其轉(zhuǎn)換關系存儲在查找表ID — Int Iut中,因此當接收到相同的ID號請求包時,經(jīng)過TAG轉(zhuǎn)換之后成為IntTAG不同的請求包,并且按照TAG號的順序發(fā)送。根據(jù)配置的Max Payload Size的值,將請求包分割成多個PCIE請求包,據(jù)PCIE的協(xié)議要求不同的請求包的TAG號必須不同,因此將分割的多個PCIE請求包的TAG號依次轉(zhuǎn)換成從0開始的PCIE TAG,并將轉(zhuǎn)換關系存儲在查找表Int - PCIE Iut中。接收到的完成包根據(jù)Int — PCIE Iut將相同的Int TAG號的完成包存儲在相應的queue中,然后依次讀取出相應的數(shù)據(jù)組成一個完成包,再經(jīng)過ID —Int Iut的查找,將Int TAG轉(zhuǎn)換成相應的ID號之后返回給應用層,這樣就按照請求包的發(fā)送順序返回其響應的完成包,確保順序完成。
[0020]若接受到AXI請求包的ID號依次為ID 0,ID 0,ID I。它們分別代表三個不同的AXI請求包,由于有兩個相同的ID號的請求包存在,在返回完成包時有可能發(fā)生混亂,造成接受錯誤。所以加入Internal TAG號來解決相同AXI ID號帶來的混亂接收問題。在圖示2中可見,經(jīng)過ID-1nt TAG轉(zhuǎn)換模塊,將ID 0,ID 0,ID I的請求包轉(zhuǎn)換成Int TAG為Int 0 , Int I, Int 2的請求包,并把響應的轉(zhuǎn)換關系存儲在查找表ID-1nt Iut中,由圖示可知在Int的相應位置內(nèi)存儲轉(zhuǎn)換前的ID號。
[0021]經(jīng)過上述轉(zhuǎn)轉(zhuǎn)之后,由配置Max Payload Size的值的限制,需將包長超過該配置值的請求包分割成多個請求包,又因為PCIE的協(xié)議要求每一個PCIE請求包的TAG號必須唯一,因此分割模塊中必須隨著包的分割,為每一個分割包產(chǎn)生不同的PCIE TAG號。如圖2中Int 0的請求包分割成了兩個PCIE包,S卩TAG 0,TAG I的包。Int I的請求包分割成TAG 2,TAG 3的兩個PCIE請求包,Int 2的請求包包長不需要分割,將其轉(zhuǎn)換成TAG4的PCIE請求包。
[0022]如圖3所示,將上述分割前后請求包的Int-TAG轉(zhuǎn)換關系存儲在查找表Int-PCIETAG Iut中。對于一個PCIE請求包,由于數(shù)據(jù)量的關系,可能有多個完成包來返回數(shù)據(jù),但多個完成包的TAG號與相應的PCIE請求包的TAG號要保持一致,并且在PCIE硬核部分能保證這多個完成包按序返回。
[0023]由于對PCIE硬核對請求包處理所用時間的不同,導致多個請求包的響應完成包會發(fā)生亂序。如圖示3中有完成包(cpl)依次為cpl 0, cpI 3,cpI I, cpI 2,cpI 0,cpI I。表明TAG 0的請求包有兩個完成包,TAG I的請求包也有兩個完成包,而TAG 2,TAG 3的請求包只有一個完成包。
[0024]在合成模塊中,cpl tag暫存接收到的完成保TAG號,且根據(jù)查找表Int-PCIE TAGIut中存儲的Int-TAG號的關系,將相應的完成包的TAG號轉(zhuǎn)換成Int號。并將Int號相同的完成包的數(shù)據(jù)存儲在外部的數(shù)據(jù)隊列(data queue)中,由讀寫控制模塊控制data queue中數(shù)據(jù)的讀出,最終形成合成之后的完成包cpl int 0, cpl int I兩個完成包。再經(jīng)過查找表ID-1nt Iut記錄的轉(zhuǎn)換關系,將Int號轉(zhuǎn)換成相應的ID號,這樣就按序得到AXI ID
0,AXI 0兩個相同ID號請求包的完成包。
[0025]以上所述的僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明不限于以上實施例??梢岳斫?,本領域技術人員在不脫離本發(fā)明的精神和構思的前提下直接導出或聯(lián)想到的其他改進和變化,均應認為包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種用于PCIE應用層接口的重排序技術,其特征在于它包括以下步驟: 1)將接受的請求包的ID號按照接收的先后順序依次轉(zhuǎn)換成中間標識位,并將其與ID號的轉(zhuǎn)換關系存儲在相應的ID號查找表中; 2)當接收到相同的ID號請求包時,經(jīng)過上述轉(zhuǎn)換之后成為中間標識位不同的請求包,并且按照中間標識位的順序發(fā)送; 3)將分割的多個PCIE請求包的標識位依次轉(zhuǎn)換成相應的PCIE標識位,并將其與中間標識位的轉(zhuǎn)換關系存儲在PCIE查找表中; 4)響應完成包根據(jù)PCIE查找表將相同的標識位的完成包存儲在相應的隊列中,然后依次讀取出相應的數(shù)據(jù)組成一個完成包,再經(jīng)過ID號查找表的查找,將中間標識位轉(zhuǎn)換成相應的ID號之后返回給應用層,按照請求包的發(fā)送順序返回其響應的完成包,確保順序完成。
【文檔編號】H04L29/10GK103532875SQ201310473342
【公開日】2014年1月22日 申請日期:2013年10月12日 優(yōu)先權日:2013年10月12日
【發(fā)明者】林谷, 雒莎, 李冰, 丁賢根 申請人:江蘇華麗網(wǎng)絡工程有限公司