基于pcie協(xié)議的cpu訪問(wèn)本地總線的裝置及方法
【專利摘要】本發(fā)明公開(kāi)了一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置及方法,涉及IPRAN領(lǐng)域,該裝置包括PCIE接口模塊、數(shù)據(jù)轉(zhuǎn)換模塊和本地總線接口模塊,PCIE接口模塊用于:實(shí)現(xiàn)PCIE底層協(xié)議,使本裝置在PCIE體系下作為一個(gè)PCIE從端設(shè)備工作;數(shù)據(jù)轉(zhuǎn)換模塊用于:實(shí)現(xiàn)PCIE讀寫報(bào)文所攜帶的數(shù)據(jù)格式與本地總線數(shù)據(jù)格式的轉(zhuǎn)換;本地總線接口模塊用于:模擬傳統(tǒng)本地總線時(shí)序,實(shí)現(xiàn)對(duì)FPGA本地寄存器或者經(jīng)由FPGA橋接的外部芯片的讀寫訪問(wèn)。本發(fā)明能在消耗最少邏輯資源的前提下獲得最高的可靠性和性能,有效簡(jiǎn)化PCIE接口傳輸層設(shè)計(jì)的復(fù)雜程度,顯著提高系統(tǒng)的讀寫效率,實(shí)時(shí)提供不同的本地總線時(shí)序。
【專利說(shuō)明】基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及IPRAN領(lǐng)域,特別是涉及一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝
置及方法。
【背景技術(shù)】
[0002]隨著基于IP (Internet Protocol,網(wǎng)際協(xié)議)的傳送網(wǎng)絡(luò)不斷發(fā)展,在IPRAN(IP Radio Access Network Carrier, IP 化無(wú)線回傳承載網(wǎng))設(shè)備中主卡 CPU (CentralProcessing Unit,中央處理器)需要與眾多核心芯片以及子卡進(jìn)行數(shù)據(jù)交換,從設(shè)備樹(shù)的維護(hù)、接口簡(jiǎn)化以及數(shù)據(jù)傳輸效率等方面考慮,傳統(tǒng)的localbus (本地總線)已經(jīng)難以勝任此項(xiàng)工作。PCIE (Pedpherd Component Interconnect Express,快速組件互連標(biāo)準(zhǔn))作為一種成熟且應(yīng)用廣泛的局部總線技術(shù),由于其設(shè)備樹(shù)易于維護(hù)、接口簡(jiǎn)單、數(shù)據(jù)傳輸速率高等優(yōu)點(diǎn),特別適用于CPU與外設(shè)的數(shù)據(jù)交換。
[0003]在光網(wǎng)絡(luò)的各種設(shè)備中,CPU對(duì)于本地總線的讀寫訪問(wèn)是不可缺少的功能。CPU需要向本地部件(FPGA設(shè)計(jì)單元或本地芯片)的配置寄存器寫值,從而使本地部件在預(yù)定的工作模式下工作,(PU還需要讀取本地部件的狀態(tài)寄存器、數(shù)據(jù)緩存實(shí)現(xiàn)監(jiān)控功能以及提取協(xié)議算法所需的數(shù)據(jù)。
[0004]以往的FPGA (Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)設(shè)計(jì)為CPU提供的讀寫接口一般為本地總線接口,本地總線接口由片選信號(hào)(cs)、讀寫信號(hào)(rw)、32位地址信號(hào)(addr)、8/16/32位雙向數(shù)據(jù)信號(hào)(data)組成,該接口的優(yōu)點(diǎn)是時(shí)序簡(jiǎn)單,使用方便,但是本地總線的缺點(diǎn)也十分明顯:
[0005](I)讀寫效率低:CPU的每次讀寫操作只能傳輸一個(gè)寄存器數(shù)據(jù)。
[0006](2)設(shè)備樹(shù)維護(hù)困難且擴(kuò)展性差:對(duì)于不同的外設(shè),CPU通過(guò)不同的片選信號(hào)進(jìn)行區(qū)分,即CPU需要訪問(wèn)多少個(gè)外設(shè),就應(yīng)該提供多少根片選信號(hào)。
[0007](3)傳輸速率低,硬件實(shí)現(xiàn)代價(jià)大:本地總線為并行總線,并行總線的串?dāng)_問(wèn)題使其可靠工作頻率僅為幾十兆赫茲,同時(shí)并行總線的PCB走線也十分復(fù)雜。
[0008]PCIE是一種由intel提出的高速串行接口協(xié)議,其特點(diǎn)是高速串行點(diǎn)對(duì)點(diǎn)傳輸,擁有很高的帶寬。PCIE總線所連接的兩端設(shè)備獨(dú)享通道帶寬,是目前局部總線的主流趨勢(shì)。相比于傳統(tǒng)本地總線,將CPU的讀寫接口升級(jí)為PCIE接口的優(yōu)勢(shì)十分明顯:
[0009](I)讀寫效率高^(guò)fPCIE讀寫報(bào)文傳輸?shù)臄?shù)據(jù)上限最少為128字節(jié),同時(shí)可以通過(guò)DMA (Direct Memory Access,直接內(nèi)存存取)方式提升CPU的工作效率。
[0010](2)設(shè)備維護(hù)簡(jiǎn)單:PCIE器件的基地址由系統(tǒng)軟件動(dòng)態(tài)分配,PCIE總線域通過(guò)PCIE基地址區(qū)分不同的PCIE器件,并且支持PCIE器件的熱插拔。
[0011](3)傳輸速率高,硬件連線簡(jiǎn)單:硬件連線只需要雙向數(shù)據(jù)和參考時(shí)鐘幾對(duì)差分線即可,PCIE接口是高速串行接口,單個(gè)通路的最低速率為2.5Gbps。
[0012]但是,要實(shí)現(xiàn)IPRAN設(shè)備中FPGA設(shè)計(jì)的CPU接口由本地總線接口升級(jí)為PCIE接口,即實(shí)現(xiàn)PCIE接口的存儲(chǔ)器讀寫報(bào)文與本地總線操作的轉(zhuǎn)換,目前還存在以下技術(shù)問(wèn)題亟待解決:
[0013](I)對(duì)外需要提供標(biāo)準(zhǔn)的PCIE接口,要求能夠處理PCIE報(bào)文,作為一個(gè)EP(Endpoint, PCIE從端設(shè)備)與CPU通信。
[0014](2)對(duì)內(nèi)需要提供靈活可配的本地總線接口,如支持從端回復(fù)模式、操作周期可調(diào)等特性,實(shí)現(xiàn)與以往針對(duì)本地總線接口開(kāi)發(fā)的FPGA設(shè)計(jì)的兼容。
[0015](3 )需要定義PCIE接口和本地總線接口的數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)關(guān)系。
【發(fā)明內(nèi)容】
[0016]本發(fā)明的目的是為了克服上述【背景技術(shù)】的不足,提供一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置及方法,能夠在消耗最少邏輯資源的前提下獲得最高的可靠性和性能,有效簡(jiǎn)化PCIE接口傳輸層設(shè)計(jì)的復(fù)雜程度,顯著提高系統(tǒng)的讀寫效率,實(shí)時(shí)提供不同的本地總線時(shí)序。
[0017]本發(fā)明提供一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,包括PCIE接口模塊、數(shù)據(jù)轉(zhuǎn)換模塊和本地總線接口模塊,其中:
[0018]所述PCIE接口模塊,用于:實(shí)現(xiàn)PCIE底層協(xié)議,使本裝置在PCIE體系下作為一個(gè)PCIE從端設(shè)備工作;
[0019]所述數(shù)據(jù)轉(zhuǎn)換模塊,用于:實(shí)現(xiàn)PCIE讀寫報(bào)文所攜帶的數(shù)據(jù)格式與本地總線數(shù)據(jù)格式的轉(zhuǎn)換;
[0020]所述本地總線接口模塊,用于:模擬傳統(tǒng)本地總線時(shí)序,實(shí)現(xiàn)對(duì)FPGA本地寄存器或者經(jīng)由FPGA橋接的外部芯片的讀寫訪問(wèn)。
[0021]在上述技術(shù)方案的基礎(chǔ)上,所述PCIE接口模塊按照PCIE協(xié)議定義的三層結(jié)構(gòu)進(jìn)行設(shè)計(jì),PCIE接口的物理層和數(shù)據(jù)鏈路層功能由FPGA器件自帶的PCIE硬核完成,PCIE硬核實(shí)現(xiàn)PCIE接口的配置空間、PCIE數(shù)據(jù)鏈路層和物理層報(bào)文的處理、PCIE鏈路的鏈路訓(xùn)練功能,即實(shí)現(xiàn)PCIE鏈路的底層通道,PCIE接口模塊的傳輸層邏輯與PCIE硬核的用戶側(cè)接口通信,實(shí)現(xiàn)PCIE讀寫報(bào)文的處理。
[0022]在上述技術(shù)方案的基礎(chǔ)上,所述PCIE接口模塊設(shè)計(jì)流量控制機(jī)制:利用PCIE硬核的用戶側(cè)接口處提供的PCIE讀寫報(bào)文接收使能信號(hào)設(shè)計(jì)有控制子模塊,控制子模塊初始狀態(tài)為閑,當(dāng)用戶層接收一個(gè)PCIE讀寫報(bào)文時(shí),控制子模塊轉(zhuǎn)為忙狀態(tài),控制子模塊為忙狀態(tài)時(shí),將關(guān)閉PCIE硬核的用戶側(cè)接口,此時(shí)新接收的PCIE讀寫報(bào)文緩存在PCIE硬核中;完成對(duì)一個(gè)PCIE讀寫報(bào)文的處理后,控制子模塊返回閑狀態(tài),重新打開(kāi)PCIE硬核的用戶側(cè)接口;在CPU連續(xù)發(fā)送PCIE讀寫報(bào)文的情況下,以上流程循環(huán)進(jìn)行,直至PCIE硬核緩存中所有PCIE讀寫報(bào)文處理完畢。
[0023]在上述技術(shù)方案的基礎(chǔ)上,所述數(shù)據(jù)轉(zhuǎn)換模塊在CPU寫和CPU讀兩個(gè)數(shù)據(jù)傳輸方向設(shè)置合適容量的數(shù)據(jù)緩存,數(shù)據(jù)轉(zhuǎn)換模塊的緩存容量均設(shè)計(jì)為PCIE讀寫報(bào)文最大數(shù)據(jù)容量32雙字的兩倍,即256字節(jié),數(shù)據(jù)轉(zhuǎn)換對(duì)應(yīng)關(guān)系為PCIE讀寫報(bào)文數(shù)據(jù)的一個(gè)雙字對(duì)應(yīng)一個(gè)本地總線操作的32位數(shù)據(jù);PCIE讀寫報(bào)文中一個(gè)雙字的四個(gè)字節(jié)為大端排列。
[0024]在上述技術(shù)方案的基礎(chǔ)上,所述本地總線接口模塊由計(jì)數(shù)器組合完成本地總線時(shí)序的定時(shí),計(jì)數(shù)器工作時(shí)鐘為125Mhz,計(jì)數(shù)器組合包括雙字計(jì)數(shù)器和周期計(jì)數(shù)器,其中雙字計(jì)數(shù)器是周期計(jì)數(shù)器的高位計(jì)數(shù)器,雙字計(jì)數(shù)器表明在傳輸PCIE報(bào)文的第幾個(gè)雙字?jǐn)?shù)據(jù),即第幾個(gè)本地總線操作周期,周期計(jì)數(shù)器則表明每個(gè)雙字?jǐn)?shù)據(jù)的傳輸需要多少個(gè)125Mhz時(shí)鐘周期;PCIE報(bào)文的長(zhǎng)度字段決定了雙字計(jì)數(shù)器的最大計(jì)數(shù)值,雙字計(jì)數(shù)器在復(fù)位、PCIE接口模接收到PCIE讀寫報(bào)文的時(shí)刻或PCIE讀寫報(bào)文處理完成的時(shí)刻清零,周期計(jì)數(shù)器除以上條件,在滿足進(jìn)位條件時(shí)也清零;周期計(jì)數(shù)器在每個(gè)雙字?jǐn)?shù)據(jù)傳輸期間的每個(gè)125Mhz時(shí)鐘上升沿即加一,在達(dá)到進(jìn)位條件后,周期計(jì)數(shù)器清零同時(shí)雙字計(jì)數(shù)器加一。
[0025]在上述技術(shù)方案的基礎(chǔ)上,所述本地總線接口模塊通過(guò)操作模式和操作寬度兩個(gè)參數(shù)實(shí)現(xiàn)靈活可配的本地總線時(shí)序,操作模式有普通模式和從端回復(fù)模式,本模塊配置為普通模式時(shí),周期計(jì)數(shù)器的進(jìn)位條件是等于操作寬度參數(shù),即本地總線操作周期的長(zhǎng)度對(duì)應(yīng)于操作寬度參數(shù)的賦值,本模塊支持普通模式下本地總線操作周期由6-240個(gè)125Mhz時(shí)鐘周期可調(diào);本模塊配置為從端回復(fù)模式時(shí),此時(shí)操作寬度參數(shù)無(wú)效,本模塊周期計(jì)數(shù)器的進(jìn)位條件為收到從端的回復(fù)或者等待時(shí)間超過(guò)240個(gè)125Mhz時(shí)鐘周期。
[0026]在上述裝置的基礎(chǔ)上,本發(fā)明還提供一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的方法,包括以下步驟:
[0027]CPU對(duì)本地總線的訪問(wèn)方法包括寫和讀兩個(gè)相互獨(dú)立的過(guò)程,分別描述如下:
[0028](I)寫過(guò)程的實(shí)現(xiàn):
[0029]首先,PCIE接口模塊在寫過(guò)程中處理PCIE寫報(bào)文,即CPU發(fā)送的存儲(chǔ)器寫報(bào)文,對(duì)于CPU發(fā)送的存儲(chǔ)器寫報(bào)文,PCIE接口模塊提取CPU寫的數(shù)據(jù)、CPU寫的起始地址、CPU寫的長(zhǎng)度三個(gè)字段,PCIE接口模塊將CPU寫的數(shù)據(jù)、起始地址、數(shù)據(jù)長(zhǎng)度提交給數(shù)據(jù)轉(zhuǎn)換模塊,同時(shí)將CPU寫的起始地址、長(zhǎng)度提交給本地總線接口模塊;
[0030]然后,數(shù)據(jù)轉(zhuǎn)換模塊在寫過(guò)程中緩存來(lái)自PCIE接口模塊的CPU寫數(shù)據(jù)、起始地址、數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)轉(zhuǎn)換模塊根據(jù)數(shù)據(jù)長(zhǎng)度獲知本地總線接口模塊需要連續(xù)產(chǎn)生多少個(gè)本地總線寫操作,每一個(gè)本地總線寫操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),接著由數(shù)據(jù)轉(zhuǎn)換模塊向其提供本次本地總線寫操作的數(shù)據(jù)和地址;
[0031 ] 最后,本地總線接口模塊在寫過(guò)程中負(fù)責(zé)本地總線寫時(shí)序的產(chǎn)生,每個(gè)本地總線操作周期開(kāi)始時(shí)本模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),在獲取了來(lái)自數(shù)據(jù)轉(zhuǎn)換模塊的寫操作地址和數(shù)據(jù)后,本地總線接口模塊完成此次本地總線寫操作,即進(jìn)入下一個(gè)本地總線操作周期,直至當(dāng)前存儲(chǔ)器寫報(bào)文的所有數(shù)據(jù)處理完畢;
[0032](2)讀過(guò)程的實(shí)現(xiàn):
[0033]首先,PCIE接口模塊在讀過(guò)程中處理PCIE讀報(bào)文,即CPU發(fā)送的存儲(chǔ)器讀報(bào)文,對(duì)于CPU發(fā)送的存儲(chǔ)器讀報(bào)文,PCIE接口模塊提取CPU讀的起始地址、CPU讀的數(shù)據(jù)長(zhǎng)度、請(qǐng)求者ID、請(qǐng)求標(biāo)簽,PCIE接口模塊將CPU讀的起始地址、CPU讀的數(shù)據(jù)長(zhǎng)度提交給數(shù)據(jù)轉(zhuǎn)換模塊和本地總線接口模塊;
[0034]然后,數(shù)據(jù)轉(zhuǎn)換模塊在讀過(guò)程中緩存來(lái)自PCIE接口模塊的CPU讀起始地址、數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)轉(zhuǎn)換模塊根據(jù)數(shù)據(jù)長(zhǎng)度獲知本地總線接口模塊需要連續(xù)產(chǎn)生多少個(gè)本地總線讀操作,每一個(gè)本地總線讀操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),接著由數(shù)據(jù)轉(zhuǎn)換模塊向其提供本次本地總線讀操作的地址;
[0035]接下來(lái),本地總線接口模塊在讀過(guò)程中負(fù)責(zé)本地總線讀時(shí)序的產(chǎn)生,本地總線讀時(shí)序的實(shí)現(xiàn)由計(jì)數(shù)器組合完成,實(shí)現(xiàn)原理同寫過(guò)程;每個(gè)本地總線讀操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),在獲取了來(lái)自數(shù)據(jù)轉(zhuǎn)換模塊的本地總線讀操作地址后,本地總線接口模塊發(fā)起此次本地總線讀操作;每次本地總線讀操作中本地總線接口模塊獲取本地總線數(shù)據(jù)并發(fā)送給數(shù)據(jù)轉(zhuǎn)換模塊,本地總線數(shù)據(jù)獲取完畢即進(jìn)入下一個(gè)本地總線操作周期,直至當(dāng)前PCIE讀報(bào)文請(qǐng)求的所有數(shù)據(jù)獲取完畢;
[0036]最后,在每一個(gè)本地總線讀操作完成后,數(shù)據(jù)轉(zhuǎn)換模塊提取本地總線數(shù)據(jù)并緩存;所有本地總線讀操作完成后,數(shù)據(jù)轉(zhuǎn)換模塊將數(shù)據(jù)按照PCIE硬核用戶側(cè)接口數(shù)據(jù)格式提供給PCIE接口模塊;對(duì)于CPU發(fā)送的存儲(chǔ)器讀報(bào)文,PCIE接口模塊根據(jù)PCIE協(xié)議回送數(shù)據(jù)回復(fù)報(bào)文,PCIE接口模塊提取的請(qǐng)求者ID、請(qǐng)求標(biāo)簽則用于數(shù)據(jù)回復(fù)報(bào)文的幀頭生成,從本地總線獲取的讀請(qǐng)求數(shù)據(jù)用于數(shù)據(jù)回復(fù)報(bào)文的凈荷生成。
[0037]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)如下:
[0038](I)本發(fā)明調(diào)用FPGA器件廠商提供的PCIE硬核實(shí)現(xiàn)PCIE接口的物理層和數(shù)據(jù)鏈路層,只需專注于PCIE接口傳輸層的設(shè)計(jì),PCIE接口的物理層和數(shù)據(jù)鏈路層用PCIE硬核實(shí)現(xiàn),能夠在消耗最少邏輯資源的前提下獲得最高的可靠性和性能。
[0039](2)本發(fā)明的本地總線接口數(shù)據(jù)寬度定義為32位,不僅能夠靈活兼容8位、16位、32位讀寫,同時(shí)與PCIE協(xié)議的最小數(shù)據(jù)傳輸單元一致而無(wú)須考慮字節(jié)掩碼字段,能夠有效簡(jiǎn)化PCIE接口傳輸層設(shè)計(jì)的復(fù)雜程度。
[0040](3)本發(fā)明的本地總線接口支持對(duì)攜帶多個(gè)雙字?jǐn)?shù)據(jù)的PCIE讀寫報(bào)文轉(zhuǎn)換為多次連續(xù)的本地總線操作,最大支持一個(gè)PCIE讀寫報(bào)文轉(zhuǎn)換為32次連續(xù)的本地總線操作,能夠減少本地總線操作周期之間的空閑時(shí)間,顯著提高系統(tǒng)的讀寫效率。
[0041](4)本發(fā)明能夠配置操作模式、操作寬度兩個(gè)參數(shù),實(shí)現(xiàn)靈活可配的本地總線時(shí)序。操作模式、操作寬度作為本發(fā)明的模塊管腳提供給FPGA頂層邏輯,F(xiàn)PGA頂層邏輯可以根據(jù)不同本地總線操作地址實(shí)時(shí)調(diào)整這兩個(gè)模塊管腳,能夠?qū)崿F(xiàn)CPU訪問(wèn)不同的本地總線地址時(shí)實(shí)時(shí)提供不同的本地總線時(shí)序,由于此功能是FPGA自動(dòng)實(shí)現(xiàn)的,其靈活度是傳統(tǒng)本地總線不具備的。
[0042](5 )本發(fā)明提供PCIE接口與本地總線接口的轉(zhuǎn)接,在享受PCIE接口優(yōu)點(diǎn)的同時(shí),能兼容以往針對(duì)本地總線接口開(kāi)發(fā)的FPGA設(shè)計(jì)。
【專利附圖】
【附圖說(shuō)明】
[0043]圖1是本發(fā)明實(shí)施例中寫過(guò)程的流程圖。
[0044]圖2是本發(fā)明實(shí)施例中讀過(guò)程的流程圖。
【具體實(shí)施方式】
[0045]下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
[0046]參見(jiàn)圖1所示,本發(fā)明實(shí)施例提供一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,包括PCIE接口模塊、數(shù)據(jù)轉(zhuǎn)換模塊和本地總線接口模塊,其中:
[0047]PCIE接口模塊,用于:實(shí)現(xiàn)PCIE底層協(xié)議,使本裝置在PCIE體系下作為一個(gè)PCIE從端設(shè)備(EP)工作;
[0048]數(shù)據(jù)轉(zhuǎn)換模塊,用于:實(shí)現(xiàn)PCIE讀寫報(bào)文所攜帶的數(shù)據(jù)格式與本地總線數(shù)據(jù)格式的轉(zhuǎn)換;
[0049]本地總線接口模塊,用于:模擬傳統(tǒng)本地總線時(shí)序,實(shí)現(xiàn)對(duì)FPGA本地寄存器或者經(jīng)由FPGA橋接的外部芯片的讀寫訪問(wèn)。
[0050]PCIE接口模塊按照PCIE協(xié)議定義的三層結(jié)構(gòu)進(jìn)行設(shè)計(jì),PCIE接口的物理層和數(shù)據(jù)鏈路層功能由FPGA器件自帶的PCIE硬核完成,PCIE硬核實(shí)現(xiàn)PCIE接口的配置空間、PCIE數(shù)據(jù)鏈路層和物理層報(bào)文的處理、PCIE鏈路的鏈路訓(xùn)練等功能,即實(shí)現(xiàn)PCIE鏈路的底層通道,PCIE接口模塊的傳輸層邏輯需要與PCIE硬核的用戶側(cè)接口通信,實(shí)現(xiàn)PCIE讀寫報(bào)文的處理。
[0051]PCIE接口模塊需要設(shè)計(jì)流量控制機(jī)制。由于一個(gè)PCIE讀寫報(bào)文可攜帶多個(gè)雙字的數(shù)據(jù)(本發(fā)明實(shí)施例中最大為32雙字),即需要多次本地總線操作才能夠完成,當(dāng)一個(gè)(PU發(fā)送的PCIE讀寫報(bào)文的處理過(guò)程中如果又接收到一個(gè)新的PCIE讀寫報(bào)文,本發(fā)明實(shí)施例將無(wú)法對(duì)其處理,為了解決這個(gè)問(wèn)題,本發(fā)明實(shí)施例利用PCIE硬核的用戶側(cè)接口處提供的PCIE讀寫報(bào)文接收使能信號(hào)設(shè)計(jì)了控制子模塊,控制子模塊初始狀態(tài)為閑,當(dāng)用戶層接收一個(gè)PCIE讀寫報(bào)文時(shí),控制子模塊轉(zhuǎn)為忙狀態(tài),控制子模塊為忙狀態(tài)時(shí),將關(guān)閉PCIE硬核的用戶側(cè)接口,此時(shí)新接收的PCIE讀寫報(bào)文緩存在PCIE硬核中;完成對(duì)一個(gè)PCIE讀寫報(bào)文的處理后,控制子模塊返回閑狀態(tài),重新打開(kāi)PCIE硬核的用戶側(cè)接口 ;在CPU連續(xù)發(fā)送PCIE讀寫報(bào)文的情況下,以上流程循環(huán)進(jìn)行,直至PCIE硬核緩存中所有PCIE讀寫報(bào)文處理完畢。由于PCIE協(xié)議通過(guò)信用機(jī)制保證了在從端沒(méi)來(lái)得及響應(yīng)主端的請(qǐng)求時(shí),主端會(huì)根據(jù)從端緩存的水位進(jìn)行流量控制(從端緩存到達(dá)一定水位主端即停止發(fā)送,直至水位下降到安全的數(shù)值),所以PCIE硬核緩存不存在溢出的可能。
[0052]數(shù)據(jù)轉(zhuǎn)換模塊在CPU寫和CPU讀兩個(gè)數(shù)據(jù)傳輸方向需要設(shè)置合適容量的數(shù)據(jù)緩存,原因是一個(gè)PCIE讀寫報(bào)文可攜帶多個(gè)雙字的數(shù)據(jù)(本發(fā)明實(shí)施例最大為32雙字),并且PCIE接口速率遠(yuǎn)高于本地總線速率。數(shù)據(jù)緩存的容量需要同時(shí)滿足功能性、可靠性和資源利用率的要求。由于PCIE接口模塊中設(shè)計(jì)有控制子模塊,數(shù)據(jù)轉(zhuǎn)換模塊的緩存容量均設(shè)計(jì)為PCIE讀寫報(bào)文最大數(shù)據(jù)容量(32雙字)的兩倍,即256字節(jié)。本發(fā)明實(shí)施例的數(shù)據(jù)轉(zhuǎn)換對(duì)應(yīng)關(guān)系為PCIE讀寫報(bào)文數(shù)據(jù)的一個(gè)雙字對(duì)應(yīng)一個(gè)本地總線操作的32位數(shù)據(jù)。PCIE讀寫報(bào)文中一個(gè)雙字的四個(gè)字節(jié)為大端排列(big-endian),而本地總線的一個(gè)雙字的四個(gè)字節(jié)為小端排列(little-endian),出于兼容以往的邏輯設(shè)計(jì)和應(yīng)用層軟件人員操作習(xí)慣等方面考慮,此映射關(guān)系在此發(fā)明的驅(qū)動(dòng)軟件中實(shí)現(xiàn)。這樣設(shè)計(jì)的好處是無(wú)論在本發(fā)明的下游邏輯還是在CPU應(yīng)用層看到的數(shù)據(jù)規(guī)則都是大端排列(big-endian)。
[0053]本地總線接口模塊由計(jì)數(shù)器組合完成本地總線時(shí)序的定時(shí),計(jì)數(shù)器工作時(shí)鐘為125Mhz。計(jì)數(shù)器組合包括雙字計(jì)數(shù)器和周期計(jì)數(shù)器,其中雙字計(jì)數(shù)器是周期計(jì)數(shù)器的高位計(jì)數(shù)器。雙字計(jì)數(shù)器表明在傳輸PCIE報(bào)文的第幾個(gè)雙字?jǐn)?shù)據(jù)(第幾個(gè)本地總線操作周期),周期計(jì)數(shù)器則表明每個(gè)雙字?jǐn)?shù)據(jù)的傳輸需要多少個(gè)125Mhz時(shí)鐘周期。PCIE報(bào)文的長(zhǎng)度字段決定了雙字計(jì)數(shù)器的最大計(jì)數(shù)值。雙字計(jì)數(shù)器在復(fù)位、PCIE接口模接收到PCIE讀寫報(bào)文的時(shí)刻或PCIE讀寫報(bào)文處理完成的時(shí)刻清零,周期計(jì)數(shù)器除以上條件,在滿足進(jìn)位條件時(shí)也會(huì)清零。周期計(jì)數(shù)器在每個(gè)雙字?jǐn)?shù)據(jù)傳輸期間的每個(gè)125Mhz時(shí)鐘上升沿即加一,在達(dá)到進(jìn)位條件后,周期計(jì)數(shù)器清零同時(shí)雙字計(jì)數(shù)器加一。
[0054]本地總線接口模塊通過(guò)操作模式和操作寬度兩個(gè)參數(shù)實(shí)現(xiàn)靈活可配的本地總線時(shí)序。操作模式有普通模式和從端回復(fù)模式。本模塊配置為普通模式時(shí),周期計(jì)數(shù)器的進(jìn)位條件是等于操作寬度參數(shù),即本地總線操作周期的長(zhǎng)度對(duì)應(yīng)于操作寬度參數(shù)的賦值,本模塊支持普通模式下本地總線操作周期由6-240個(gè)125Mhz時(shí)鐘周期可調(diào)。本模塊配置為從端回復(fù)模式時(shí),此時(shí)操作寬度參數(shù)無(wú)效,本模塊周期計(jì)數(shù)器的進(jìn)位條件為收到從端的回復(fù)或者等待時(shí)間超過(guò)240個(gè)125Mhz時(shí)鐘周期。操作模式和操作寬度兩個(gè)參數(shù)設(shè)計(jì)為模塊管腳而不是固定參數(shù),這就允許每個(gè)本地總線操作周期可以實(shí)時(shí)給這兩個(gè)參數(shù)管腳賦值。這樣做的意義在于可以使CPU無(wú)需關(guān)心所訪問(wèn)從器件的具體時(shí)序,地址與特定時(shí)序關(guān)系的映射由FPGA自動(dòng)完成。通過(guò)以上的靈活設(shè)計(jì),本發(fā)明的本地總線接口不僅可以正常訪問(wèn)以往所有針對(duì)傳統(tǒng)本地總線開(kāi)發(fā)的FPGA設(shè)計(jì),同時(shí)本發(fā)明的本地總線信號(hào)都是FPGA片內(nèi)的同步信號(hào),比傳統(tǒng)本地總線接口使用更加方便,可靠性更高。
[0055]在上述裝置的基礎(chǔ)上,本發(fā)明實(shí)施例還提供一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的方法,包括以下步驟:
[0056]CPU對(duì)本地總線的訪問(wèn)方法包括寫和讀兩個(gè)相互獨(dú)立的過(guò)程,分別描述如下:
[0057](I)寫過(guò)程的實(shí)現(xiàn):
[0058]參見(jiàn)圖1所示,首先,PCIE接口模塊在寫過(guò)程中處理PCIE寫報(bào)文,即CPU發(fā)送的存儲(chǔ)器寫報(bào)文。對(duì)于CPU發(fā)送的存儲(chǔ)器寫報(bào)文,PCIE接口模塊需提取CPU寫的數(shù)據(jù)、CPU寫的起始地址、CPU寫的長(zhǎng)度三個(gè)字段,PCIE接口模塊將CPU寫的數(shù)據(jù)、起始地址、數(shù)據(jù)長(zhǎng)度提交給數(shù)據(jù)轉(zhuǎn)換模塊,同時(shí)將CPU寫的起始地址、長(zhǎng)度提交給本地總線接口模塊。
[0059]然后,數(shù)據(jù)轉(zhuǎn)換模塊在寫過(guò)程中緩存來(lái)自PCIE接口模塊的CPU寫數(shù)據(jù)、起始地址、數(shù)據(jù)長(zhǎng)度。數(shù)據(jù)轉(zhuǎn)換模塊根據(jù)數(shù)據(jù)長(zhǎng)度獲知本地總線接口模塊需要連續(xù)產(chǎn)生多少個(gè)本地總線寫操作,每一個(gè)本地總線寫操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),接著由數(shù)據(jù)轉(zhuǎn)換模塊向其提供本次本地總線寫操作的數(shù)據(jù)和地址。
[0060]最后,本地總線接口模塊在寫過(guò)程中負(fù)責(zé)本地總線寫時(shí)序的產(chǎn)生,每個(gè)本地總線操作周期開(kāi)始時(shí)本模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),在獲取了來(lái)自數(shù)據(jù)轉(zhuǎn)換模塊的寫操作地址和數(shù)據(jù)后,本地總線接口模塊完成此次本地總線寫操作即進(jìn)入下一個(gè)本地總線操作周期,直至當(dāng)前存儲(chǔ)器寫報(bào)文的所有數(shù)據(jù)處理完畢。
[0061](2)讀過(guò)程的實(shí)現(xiàn):
[0062]參見(jiàn)圖2所示,首先,PCIE接口模塊在讀過(guò)程中處理PCIE讀報(bào)文,即CPU發(fā)送的存儲(chǔ)器讀報(bào)文。對(duì)于CPU發(fā)送的存儲(chǔ)器讀報(bào)文,PCIE接口模塊提取CPU讀的起始地址、CPU讀的數(shù)據(jù)長(zhǎng)度、請(qǐng)求者ID、請(qǐng)求標(biāo)簽。PCIE接口模塊將CPU讀的起始地址、CPU讀的數(shù)據(jù)長(zhǎng)度提交給數(shù)據(jù)轉(zhuǎn)換模塊和本地總線接口模塊。
[0063]然后,數(shù)據(jù)轉(zhuǎn)換模塊在讀過(guò)程中緩存來(lái)自PCIE接口模塊的CPU讀起始地址、數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)轉(zhuǎn)換模塊根據(jù)數(shù)據(jù)長(zhǎng)度獲知本地總線接口模塊需要連續(xù)產(chǎn)生多少個(gè)本地總線讀操作,每一個(gè)本地總線讀操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),接著由數(shù)據(jù)轉(zhuǎn)換模塊向其提供本次本地總線讀操作的地址。
[0064]接下來(lái),本地總線接口模塊在讀過(guò)程中負(fù)責(zé)本地總線讀時(shí)序的產(chǎn)生,本地總線讀時(shí)序的實(shí)現(xiàn)由計(jì)數(shù)器組合完成,實(shí)現(xiàn)原理同寫過(guò)程;每個(gè)本地總線讀操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),在獲取了來(lái)自數(shù)據(jù)轉(zhuǎn)換模塊的本地總線讀操作地址后,本地總線接口模塊發(fā)起此次本地總線讀操作;每次本地總線讀操作中本地總線接口模塊獲取本地總線數(shù)據(jù)并發(fā)送給數(shù)據(jù)轉(zhuǎn)換模塊,本地總線數(shù)據(jù)獲取完畢即進(jìn)入下一個(gè)本地總線操作周期,直至當(dāng)前PCIE讀報(bào)文請(qǐng)求的所有數(shù)據(jù)獲取完畢。[0065]最后,在每一個(gè)本地總線讀操作完成后,數(shù)據(jù)轉(zhuǎn)換模塊提取本地總線數(shù)據(jù)并緩存;所有本地總線讀操作完成后,數(shù)據(jù)轉(zhuǎn)換模塊將數(shù)據(jù)按照PCIE硬核用戶側(cè)接口數(shù)據(jù)格式提供給PCIE接口模塊;對(duì)于CPU發(fā)送的存儲(chǔ)器讀報(bào)文,PCIE接口模塊需要根據(jù)PCIE協(xié)議回送數(shù)據(jù)回復(fù)報(bào)文。PCIE接口模塊提取的請(qǐng)求者ID、請(qǐng)求標(biāo)簽則用于數(shù)據(jù)回復(fù)報(bào)文的幀頭生成,從本地總線獲取的讀請(qǐng)求數(shù)據(jù)用于數(shù)據(jù)回復(fù)報(bào)文的凈荷生成。
[0066]本發(fā)明實(shí)施例在烽火通信的IPRAN設(shè)備上得到應(yīng)用,在無(wú)需修改以往成熟FPGA設(shè)計(jì)的本地總線接口的前提下,成功實(shí)現(xiàn)了 CPU訪問(wèn)FPGA的方式由傳統(tǒng)本地總線接口升級(jí)為PCIE 接口。
[0067]本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種修改和變型,倘若這些修改和變型在本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護(hù)范圍之內(nèi)。
[0068]說(shuō)明書中未詳細(xì)描述的內(nèi)容為本領(lǐng)域技術(shù)人員公知的現(xiàn)有技術(shù)。
【權(quán)利要求】
1.一種基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,其特征在于:包括PCIE接口模塊、數(shù)據(jù)轉(zhuǎn)換模塊和本地總線接口模塊,其中: 所述PCIE接口模塊,用于:實(shí)現(xiàn)PCIE底層協(xié)議,使本裝置在PCIE體系下作為一個(gè)PCIE從端設(shè)備工作;
所述數(shù)據(jù)轉(zhuǎn)換模塊,用于:實(shí)現(xiàn)PCIE讀寫報(bào)文所攜帶的數(shù)據(jù)格式與本地總線數(shù)據(jù)格式的轉(zhuǎn)換; 所述本地總線接口模塊,用于:模擬傳統(tǒng)本地總線時(shí)序,實(shí)現(xiàn)對(duì)FPGA本地寄存器或者經(jīng)由FPGA橋接的外部芯片的讀寫訪問(wèn)。
2.如權(quán)利要求1所述的基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,其特征在于:所述PCIE接口模塊按照PCIE協(xié)議定義的三層結(jié)構(gòu)進(jìn)行設(shè)計(jì),PCIE接口的物理層和數(shù)據(jù)鏈路層功能由FPGA器件自帶的PCIE硬核完成,PCIE硬核實(shí)現(xiàn)PCIE接口的配置空間、PCIE數(shù)據(jù)鏈路層和物理層報(bào)文的處理、PCIE鏈路的鏈路訓(xùn)練功能,即實(shí)現(xiàn)PCIE鏈路的底層通道,PCIE接口模塊的傳輸層邏輯與PCIE硬核的用戶側(cè)接口通信,實(shí)現(xiàn)PCIE讀寫報(bào)文的處理。
3.如權(quán)利要求2所述的基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,其特征在于:所述PCIE接口模塊設(shè)計(jì)流量控制機(jī)制:利用PCIE硬核的用戶側(cè)接口處提供的PCIE讀寫報(bào)文接收使能信號(hào)設(shè)計(jì)有控制子模塊,控制子模塊初始狀態(tài)為閑,當(dāng)用戶層接收一個(gè)PCIE讀寫報(bào)文時(shí),控制子模塊轉(zhuǎn)為忙狀態(tài),控制子模塊為忙狀態(tài)時(shí),將關(guān)閉PCIE硬核的用戶側(cè)接口,此時(shí)新接收的PCIE讀寫報(bào)文緩存在PCIE硬核中;完成對(duì)一個(gè)PCIE讀寫報(bào)文的處理后,控制子模塊返回閑狀態(tài),重新打開(kāi)PCIE硬核的用戶側(cè)接口;在CPU連續(xù)發(fā)送PCIE讀寫報(bào)文的情況下,以上流程循環(huán)進(jìn)行,直至PCIE硬核緩存中所有PCIE讀寫報(bào)文處理完畢。
4.如權(quán)利要求3所述的基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,其特征在于:所述數(shù)據(jù)轉(zhuǎn)換模塊在CPU寫和CPU讀兩個(gè)數(shù)據(jù)傳輸方向設(shè)置合適容量的數(shù)據(jù)緩存,數(shù)據(jù)轉(zhuǎn)換模塊的緩存容量均設(shè)計(jì)為PCIE讀寫報(bào)文最大數(shù)據(jù)容量32雙字的兩倍,即256字節(jié),數(shù)據(jù)轉(zhuǎn)換對(duì)應(yīng)關(guān)系為PCIE讀寫報(bào)文數(shù)據(jù)的一個(gè)雙字對(duì)應(yīng)一個(gè)本地總線操作的32位數(shù)據(jù);PCIE讀寫報(bào)文中一個(gè)雙字的四個(gè)字節(jié)為大端排列。
5.如權(quán)利要求4所述的基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,其特征在于:所述本地總線接口模塊由計(jì)數(shù)器組合完成本地總線時(shí)序的定時(shí),計(jì)數(shù)器工作時(shí)鐘為125Mhz,計(jì)數(shù)器組合包括雙字計(jì)數(shù)器和周期計(jì)數(shù)器,其中雙字計(jì)數(shù)器是周期計(jì)數(shù)器的高位計(jì)數(shù)器,雙字計(jì)數(shù)器表明在傳輸PCIE報(bào)文的第幾個(gè)雙字?jǐn)?shù)據(jù),即第幾個(gè)本地總線操作周期,周期計(jì)數(shù)器則表明每個(gè)雙字?jǐn)?shù)據(jù)的傳輸需要多少個(gè)125Mhz時(shí)鐘周期;PCIE報(bào)文的長(zhǎng)度字段決定了雙字計(jì)數(shù)器的最大計(jì)數(shù)值,雙字計(jì)數(shù)器在復(fù)位、PCIE接口模接收到PCIE讀寫報(bào)文的時(shí)刻或PCIE讀寫報(bào)文處理完成的時(shí)刻清零,周期計(jì)數(shù)器除以上條件,在滿足進(jìn)位條件時(shí)也清零;周期計(jì)數(shù)器在每個(gè)雙字?jǐn)?shù)據(jù)傳輸期間的每個(gè)125Mhz時(shí)鐘上升沿即加一,在達(dá)到進(jìn)位條件后,周期計(jì)數(shù)器清零同時(shí)雙字計(jì)數(shù)器加一。
6.如權(quán)利要求5所述的基于PCIE協(xié)議的CPU訪問(wèn)本地總線的裝置,其特征在于:所述本地總線接口模塊通過(guò)操作模式和操作寬度兩個(gè)參數(shù)實(shí)現(xiàn)靈活可配的本地總線時(shí)序,操作模式有普通模式和從端回復(fù)模式,本模塊配置為普通模式時(shí),周期計(jì)數(shù)器的進(jìn)位條件是等于操作寬度參數(shù),即本地總線操作周期的長(zhǎng)度對(duì)應(yīng)于操作寬度參數(shù)的賦值,本模塊支持普通模式下本地總線操作周期由6-240個(gè)125Mhz時(shí)鐘周期可調(diào);本模塊配置為從端回復(fù)模式時(shí),此時(shí)操作寬度參數(shù)無(wú)效,本模塊周期計(jì)數(shù)器的進(jìn)位條件為收到從端的回復(fù)或者等待時(shí)間超過(guò)240個(gè)125Mhz時(shí)鐘周期。
7.基于權(quán)利要求1至6中任一項(xiàng)所述裝置的基于PCIE協(xié)議的CPU訪問(wèn)本地總線的方法,其特征在于,包括以下步驟: CPU對(duì)本地總線的訪問(wèn)方法包括寫和讀兩個(gè)相互獨(dú)立的過(guò)程,分別描述如下: (1)寫過(guò)程的實(shí)現(xiàn): 首先,PCIE接口模塊在寫過(guò)程中處理PCIE寫報(bào)文,即CPU發(fā)送的存儲(chǔ)器寫報(bào)文,對(duì)于CPU發(fā)送的存儲(chǔ)器寫報(bào)文,PCIE接口模塊提取CPU寫的數(shù)據(jù)、CPU寫的起始地址、CPU寫的長(zhǎng)度三個(gè)字段,PCIE接口模塊將CPU寫的數(shù)據(jù)、起始地址、數(shù)據(jù)長(zhǎng)度提交給數(shù)據(jù)轉(zhuǎn)換模塊,同時(shí)將CPU寫的起始地址、長(zhǎng)度提交給本地總線接口模塊; 然后,數(shù)據(jù)轉(zhuǎn)換模塊在寫過(guò)程中緩存來(lái)自PCIE接口模塊的CPU寫數(shù)據(jù)、起始地址、數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)轉(zhuǎn)換模塊根據(jù)數(shù)據(jù)長(zhǎng)度獲知本地總線接口模塊需要連續(xù)產(chǎn)生多少個(gè)本地總線寫操作,每一個(gè)本地總線寫操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),接著由數(shù)據(jù)轉(zhuǎn)換模塊向其提供本次本地總線寫操作的數(shù)據(jù)和地址; 最后,本地總線接口模塊在寫過(guò)程中負(fù)責(zé)本地總線寫時(shí)序的產(chǎn)生,每個(gè)本地總線操作周期開(kāi)始時(shí)本模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),在獲取了來(lái)自數(shù)據(jù)轉(zhuǎn)換模塊的寫操作地址和數(shù)據(jù)后,本地總線接口模塊完成此次本地總線寫操作,即進(jìn)入下一個(gè)本地總線操作周期,直至當(dāng)前存儲(chǔ)器寫報(bào)文的所有數(shù)據(jù)處理完畢; (2)讀過(guò)程的實(shí)現(xiàn): 首先,PCIE接口模塊在讀過(guò)程中處理PCIE讀報(bào)文,即CPU發(fā)送的存儲(chǔ)器讀報(bào)文,對(duì)于CPU發(fā)送的存儲(chǔ)器讀報(bào)文,PCIE接口模塊提取CPU讀的起始地址、CPU讀的數(shù)據(jù)長(zhǎng)度、請(qǐng)求者ID、請(qǐng)求標(biāo)簽,PCIE接口模塊`將CPU讀的起始地址、CPU讀的數(shù)據(jù)長(zhǎng)度提交給數(shù)據(jù)轉(zhuǎn)換模塊和本地總線接口模塊; 然后,數(shù)據(jù)轉(zhuǎn)換模塊在讀過(guò)程中緩存來(lái)自PCIE接口模塊的CPU讀起始地址、數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)轉(zhuǎn)換模塊根據(jù)數(shù)據(jù)長(zhǎng)度獲知本地總線接口模塊需要連續(xù)產(chǎn)生多少個(gè)本地總線讀操作,每一個(gè)本地總線讀操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),接著由數(shù)據(jù)轉(zhuǎn)換模塊向其提供本次本地總線讀操作的地址; 接下來(lái),本地總線接口模塊在讀過(guò)程中負(fù)責(zé)本地總線讀時(shí)序的產(chǎn)生,本地總線讀時(shí)序的實(shí)現(xiàn)由計(jì)數(shù)器組合完成,實(shí)現(xiàn)原理同寫過(guò)程;每個(gè)本地總線讀操作周期開(kāi)始時(shí),本地總線接口模塊向數(shù)據(jù)轉(zhuǎn)換模塊發(fā)送開(kāi)始信號(hào),在獲取了來(lái)自數(shù)據(jù)轉(zhuǎn)換模塊的本地總線讀操作地址后,本地總線接口模塊發(fā)起此次本地總線讀操作;每次本地總線讀操作中本地總線接口模塊獲取本地總線數(shù)據(jù)并發(fā)送給數(shù)據(jù)轉(zhuǎn)換模塊,本地總線數(shù)據(jù)獲取完畢即進(jìn)入下一個(gè)本地總線操作周期,直至當(dāng)前PCIE讀報(bào)文請(qǐng)求的所有數(shù)據(jù)獲取完畢; 最后,在每一個(gè)本地總線讀操作完成后,數(shù)據(jù)轉(zhuǎn)換模塊提取本地總線數(shù)據(jù)并緩存;所有本地總線讀操作完成后,數(shù)據(jù)轉(zhuǎn)換模塊將數(shù)據(jù)按照PCIE硬核用戶側(cè)接口數(shù)據(jù)格式提供給PCIE接口模塊;對(duì)于CPU發(fā)送的存儲(chǔ)器讀報(bào)文,PCIE接口模塊根據(jù)PCIE協(xié)議回送數(shù)據(jù)回復(fù)報(bào)文,PCIE接口模塊提取的請(qǐng)求者ID、請(qǐng)求標(biāo)簽則用于數(shù)據(jù)回復(fù)報(bào)文的幀頭生成,從本地總線獲取的讀請(qǐng)求數(shù)據(jù)用于數(shù)據(jù)回復(fù)報(bào)文的凈荷生成。
【文檔編號(hào)】G06F13/14GK103559152SQ201310528347
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年10月31日 優(yōu)先權(quán)日:2013年10月31日
【發(fā)明者】韓震 申請(qǐng)人:烽火通信科技股份有限公司