專利名稱:基于pci-e總線的直接存取數(shù)據(jù)傳輸控制裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)流向控制裝置,更特別地說,是指一種針對(duì)PCI — E總線的 直接存取數(shù)據(jù)傳輸控制裝置,本發(fā)明的直接存取數(shù)據(jù)傳輸控制裝置是一種支持高速串 行傳輸?shù)目刂蒲b置。
技術(shù)背景目前總線技術(shù)已經(jīng)成為測試技術(shù)發(fā)展的主要瓶頸,傳統(tǒng)的并行總線很難滿足日益 增長的數(shù)據(jù)帶寬要求。PCI Express (PCI — E)總線是第三代高速串行總線,它一 經(jīng)出現(xiàn)就顯示出其卓越的性能。參見圖1所示,目前很多數(shù)據(jù)采集卡,圖形處理器,就利用了PCI Express總 線12髙速的特性,使之完成批量數(shù)據(jù)從下位機(jī)板卡13到上位機(jī)11的快速傳輸, 進(jìn)而得到良好的系統(tǒng)性能?,F(xiàn)有的下位機(jī)板卡向上位機(jī)(如PC機(jī))傳輸數(shù)據(jù)時(shí),下位機(jī)板卡的CPU就要 完成數(shù)據(jù)計(jì)數(shù),地址累加,數(shù)據(jù)緩存等全部工作,這樣批量的數(shù)據(jù)傳輸就需要多次中 斷完成,這樣嚴(yán)重降低了下位機(jī)板卡系統(tǒng)性能。 發(fā)明 內(nèi) 容本發(fā)明的目的是提供一種基于PCI — E總線的直接存取數(shù)據(jù)傳輸控制裝置,該直 接存取數(shù)據(jù)傳輸控制裝置內(nèi)嵌入下位機(jī)板卡的FPGA芯片中,通過該控制裝置能夠 在下位機(jī)板卡與上位機(jī)(如PC機(jī))之間建立一條高速數(shù)據(jù)傳輸通道。本發(fā)明的一種基于PCI — E總線的直接存取數(shù)據(jù)傳輸控制裝置,所述直接存取數(shù) 據(jù)傳輸控制裝置內(nèi)嵌在FPGA芯片中,用于完成上位機(jī)(11)與下位機(jī)板卡(13) 之間通過PCI — E總線(12)的高速數(shù)據(jù)流控制,其由寄存器監(jiān)控單元(1)、寄存 器(2)、解碼單元(3)、發(fā)送單元(4)和接收信用處理單元(5)組成;所述寄存器監(jiān)控單元(1)用于(A)對(duì)上位機(jī)(11)通過PCI—E總線(12) 下發(fā)的符合PCI-E總線協(xié)議定義的存儲(chǔ)器寫事務(wù)A3^進(jìn)行接收,所述寫事務(wù)中至少 包括表征讀取請(qǐng)求啟動(dòng)信息的有效數(shù)據(jù)A-。寄存器(2)的偏移地址和有效數(shù)據(jù)的 長度,所述表征讀取請(qǐng)求啟動(dòng)信息的有效數(shù)據(jù)Dw有上位機(jī)(11)的內(nèi)存首地址iM及、 下位機(jī)板卡(13)中DDR的地址Wi 、需要從緩存器(131)中提取的數(shù)據(jù)源A3 字節(jié)數(shù)C5/ 和傳輸數(shù)據(jù)狀態(tài)CS及四種類型,所述傳輸數(shù)據(jù)狀態(tài)CSi 由讀/寫狀態(tài)位、 開始狀態(tài)位和工作狀態(tài)位組成,工作狀態(tài)位包括有兩種狀態(tài),其中編譯語言中的"1" 表示控制裝置處于工作狀況,編譯語言中的"0"表示控制裝置處于空閑狀況;(B)依照存儲(chǔ)器寫事務(wù)A^t中寄存器(2)的偏移地址將存儲(chǔ)器寫事務(wù)A^i中的有效數(shù) 據(jù)ZV,寫入寄存器(2); (C)依據(jù)解碼單元(3)輸出的觸發(fā)指令ZV,提取寄存在寄存器(2)中的表征啟動(dòng)信息的有效數(shù)據(jù)Dw ,并組成啟動(dòng)信息集合 A—2 = {/Mi ,丄v47 , CAR, 輸出給解碼單元(3);所述寄存器(2)對(duì)接收的表征啟動(dòng)信息的有效數(shù)據(jù)A-i進(jìn)行存儲(chǔ); 所述解碼單元(3)用于(A)對(duì)接收的啟動(dòng)信息集合^-2 —/^及,"及,C朋,GS^進(jìn)行分析,并采用PCI-E總線協(xié)議規(guī)定的帶數(shù)據(jù)有效載荷數(shù)據(jù)包的組裝原則獲得數(shù) 據(jù)包頭信息集合A-3和傳輸數(shù)據(jù)包頭的總個(gè)數(shù);(B)依據(jù)數(shù)據(jù)處理及發(fā)送單元(4)下發(fā)的發(fā)送完成信號(hào)將發(fā)送新包信號(hào)"3-2和數(shù)據(jù)包頭信息集合"3_3傳輸給數(shù)據(jù)處理及發(fā)送單元(4); (C)依據(jù)傳輸數(shù)據(jù)包頭的總個(gè)數(shù)向數(shù)據(jù)處理及發(fā)送單元(4)發(fā)送中斷請(qǐng)求信號(hào)A";所述數(shù)據(jù)包頭信息集合,中包括有D 丄e贈(zèng)/2,爿欲,EP,7D,rC,7^pe,i^,5,Coim";-3 L5CM,CS,Comp/eferTD,丄owen4d(ire^,r"g,及g《Mayter7D 數(shù)據(jù)有效載荷大小丄e"g^、屬性Afr、中毒標(biāo)志£戶、摘要標(biāo)志7XK傳輸類別7U、 類型7>戸、格式Fmf 、讀請(qǐng)求完成前的剩余字節(jié)數(shù)S^eCo"W 、修改的字節(jié)計(jì)數(shù)BCM 、 完成狀況代碼CS、完成者的標(biāo)識(shí)號(hào)Cow/ /eter/D、低地址丄owerAWmM、標(biāo)記Tag、 請(qǐng)求者的標(biāo)識(shí)號(hào)Re《weWer/D ;所述數(shù)據(jù)處理及發(fā)送單元(4)用于(A)依據(jù)接收的數(shù)據(jù)包頭信息集合/)3_3中 數(shù)據(jù)有效載荷大小丄e"g&對(duì)數(shù)據(jù)緩存器(131)中數(shù)據(jù)進(jìn)行讀取,讀取由數(shù)據(jù)有效載荷大小丄e"g^所表示數(shù)量的數(shù)據(jù)D131,其中數(shù)據(jù)緩存器(131)的啟動(dòng)由控制信 號(hào)/)4_2控制;(B)對(duì)有效數(shù)據(jù)"131和數(shù)據(jù)包頭信息集合I^按照PCI-E總線協(xié)議中帶數(shù)據(jù)完成數(shù)據(jù)包的格式要求進(jìn)行打包,獲得讀完成事務(wù)A-"并將讀完成事務(wù)"4-3 發(fā)送到PCI-E總線接口 (134); (C)依據(jù)中斷請(qǐng)求信號(hào)/)3_4將工作狀態(tài)信號(hào)^4_4發(fā)送到用戶控制邏輯(132); (D)將中斷請(qǐng)求信號(hào)ZV4寫入總線接口;所述接收信用處理單元(5)用于(A)對(duì)上位機(jī)(11)通過PCI — E總線(12) 下發(fā)的存儲(chǔ)器寫事務(wù)A3"進(jìn)行接收,依據(jù)存儲(chǔ)器寫事務(wù)A34—!獲得需要占用的信用 值;(B)對(duì)PCI — E總線(12)下發(fā)的存儲(chǔ)器寫事務(wù)A3^接收狀態(tài)信號(hào)A^2進(jìn)行 監(jiān)測;(C)依照接收狀態(tài)信號(hào)"134-2,向總線接口 (134)發(fā)送可釋放的信用值A(chǔ)-,。本發(fā)明基于PCI — E總線的直接存取數(shù)據(jù)傳輸控制裝置的優(yōu)點(diǎn)(1)以PCI Express總線為基礎(chǔ),能夠在下位機(jī)與上位機(jī)間實(shí)現(xiàn)批量數(shù)據(jù)高速傳輸;(2)釆用 模塊化設(shè)計(jì)思想,增加了系統(tǒng)的可移植性;(3)以latticeSC系列芯片為平臺(tái),成本 低;(4)寄存器沒有掛在PCI Express的配置空間,而是以配置信息方式進(jìn)行存儲(chǔ) 有效數(shù)據(jù),提高了數(shù)據(jù)傳輸?shù)乃俣取?
圖1是基于PCI — E總線的上位機(jī)與下位機(jī)板卡之間的數(shù)據(jù)傳輸簡示圖。圖2是本發(fā)明直接存取數(shù)據(jù)傳輸控制裝置的結(jié)構(gòu)框圖。圖3是本發(fā)明直接存取數(shù)據(jù)傳輸控制裝置的處理流程圖。
具體實(shí)施方式
下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。在本發(fā)明中,下位機(jī)板卡13中至少包括有FPGA芯片14,該FPGA芯片選取 latticeSC系列芯片。本發(fā)明釆用Verilog2001編程技術(shù)在FPGA芯片14上形成用 戶邏輯控制單元132和直接存取數(shù)據(jù)傳輸控制裝置,采用IP復(fù)用技術(shù)在FPGA芯片 14上形成緩存器131和總線接口 134,所述直接存取數(shù)據(jù)傳輸控制裝置能夠在下位 機(jī)板卡13與上位機(jī)11之間建立一條高速數(shù)據(jù)傳輸通道。在本發(fā)明中,上位機(jī)11為PC機(jī)。其硬件運(yùn)行環(huán)境最低配置CPU2.0G, 1G 內(nèi)存,30G硬盤。其軟件運(yùn)行環(huán)境Windows 2000/XP/2003操作系統(tǒng)。請(qǐng)參見圖2所示,本發(fā)明是一種基于PCI — E總線的直接存取數(shù)據(jù)傳輸控制裝置, 用于完成上位機(jī)11與下位機(jī)板卡13之間的髙速數(shù)據(jù)流控制。所述直接存取數(shù)據(jù)傳 輸控制裝置由寄存器監(jiān)控單元1、寄存器2、解碼單元3、發(fā)送單元4和接收信用處 理單元5組成。在本發(fā)明中,寄存器監(jiān)控單元1用于(A)對(duì)上位機(jī)11通過PCI — E總線12下發(fā)的符合PCI-E總線協(xié)議定義的存儲(chǔ)器寫事務(wù)A3n進(jìn)行接收,所述寫事務(wù)中至少包括表征讀取請(qǐng)求啟動(dòng)信息的有效數(shù)據(jù)A-P寄存器2的偏移地址和有效數(shù)據(jù)的長度,所述表征讀取請(qǐng)求啟動(dòng)信息的有效數(shù)據(jù)A^有上位機(jī)11的內(nèi)存首地址W及、下 位機(jī)板卡13中DDR(存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)源A ,DDR在圖2中數(shù)字符號(hào)為133)的地址W及、需要從緩存器131中提取的數(shù)據(jù)源馬3字節(jié)數(shù)C朋和傳輸數(shù)據(jù)狀態(tài)GSi 四種類型,所述傳輸數(shù)據(jù)狀態(tài)CS及由讀/寫狀態(tài)位、開始狀態(tài)位和工作狀態(tài)位組成, 工作狀態(tài)位包括有兩種狀態(tài),其中編譯語言中的"1"表示控制裝置處于工作狀況, 編譯語言中的"0"表示控制裝置處于空閑狀況;(B)依照存儲(chǔ)器寫事務(wù)Z^"中寄 存器2的偏移地址將存儲(chǔ)器寫事務(wù)馬34—,中的有效數(shù)據(jù)A—,寫入寄存器2; (C)依據(jù) 解碼單元3輸出的觸發(fā)指令A(yù)一提取寄存在寄存器2中的表征啟動(dòng)信息的有效數(shù)據(jù) "w ,并組成啟動(dòng)信息集合",-2 ^iMiU^,C朋,C^)輸出給解碼單元3。 在本發(fā)明中,寄存器2對(duì)接收的表征啟動(dòng)信息的有效數(shù)據(jù)ZV,進(jìn)行存儲(chǔ)。在本發(fā)明中,解碼單元3用于(A)對(duì)接收的啟動(dòng)信息集合 ZV2 — WiU^,C朋,CSW進(jìn)行分析,并采用PCI-E總線協(xié)議規(guī)定的帶數(shù)據(jù)有效載荷數(shù)據(jù)包的組裝原則獲得數(shù)據(jù)包頭信息集合"3—3和傳輸數(shù)據(jù)包頭的總個(gè)數(shù);(B)依 據(jù)數(shù)據(jù)處理及發(fā)送單元4下發(fā)的發(fā)送完成信號(hào)ZVi將發(fā)送新包信號(hào)iV2和數(shù)據(jù)包頭 信息集合"3_3傳輸給數(shù)據(jù)處理及發(fā)送單元4; (C)依據(jù)傳輸數(shù)據(jù)包頭的總個(gè)數(shù)向數(shù)據(jù) 處理及發(fā)送單元4發(fā)送中斷請(qǐng)求信號(hào)A-4 。所述數(shù)據(jù)包頭信息集合 ,Z^wgf/z,v4 fr,五尸,JD,rC,7);/^,^Fm^^6^feCoM"" 1中包括有5CM,CS,Com/ /efer/D,丄owe^4^ires^,71afg,i e《i/eWer7DJ 數(shù)據(jù)有效載荷大小丄e"g^、屬性A/r、中毒標(biāo)志五P、摘要標(biāo)志7T)、傳輸類別7U、 類型 >/^ 、格式Fmf 、讀請(qǐng)求完成前的剩余字節(jié)數(shù)5)WCOWW 、修改的字節(jié)計(jì)數(shù)BCM 、 完成狀況代碼CS、完成者的標(biāo)識(shí)號(hào)Comp/e/w/D、低地址LoweMcW^M、標(biāo)記化g、 請(qǐng)求者的標(biāo)識(shí)號(hào)Re9"eWer/D 。在本發(fā)明中,數(shù)據(jù)處理及發(fā)送單元4用于(A)依據(jù)接收的數(shù)據(jù)包頭信息集合/)3_3 中數(shù)據(jù)有效載荷大小丄e"g^對(duì)數(shù)據(jù)緩存器131中數(shù)據(jù)進(jìn)行讀取,讀取由數(shù)據(jù)有效載 荷大小Le"gA所表示數(shù)量的數(shù)據(jù)D131 ,其中數(shù)據(jù)緩存器131的啟動(dòng)由控制信號(hào)A—2 控制;(B)對(duì)有效數(shù)據(jù)"131和數(shù)據(jù)包頭信息集合A-3按照PCI-E總線協(xié)議中帶數(shù)據(jù) 完成數(shù)據(jù)包的格式要求進(jìn)行打包,獲得讀完成事務(wù)A-3,并將讀完成事務(wù)^4_3發(fā)送到 PCI-E總線接口 134; (C)依據(jù)中斷請(qǐng)求信號(hào)£ 3_4將工作狀態(tài)信號(hào)/)4_4發(fā)送到用戶 控制邏輯132; (D)將中斷請(qǐng)求信號(hào)A—4寫入總線接口。在本發(fā)明中,接收信用處理單元5用于(A)對(duì)上位機(jī)11通過PCI—E總線12 下發(fā)的存儲(chǔ)器寫事務(wù)進(jìn)行接收,依據(jù)存儲(chǔ)器寫事務(wù)Am一獲得需要占用的信用 值;(B)對(duì)PCI-E總線12下發(fā)的存儲(chǔ)器寫事務(wù)A3"接收狀態(tài)信號(hào)A^2進(jìn)行監(jiān)測; (C)依照接收狀態(tài)信號(hào)A34-2,向總線接口 134發(fā)送可釋放的信用值i^,。在本發(fā)明中,直接存取數(shù)據(jù)傳輸控制裝置的硬件選取(一) 寄存器2的設(shè)計(jì)寄存器2空間是本發(fā)明直接存取數(shù)據(jù)傳輸控制裝置與上位機(jī)11驅(qū)動(dòng)交互的橋 梁。當(dāng)上位機(jī)11有準(zhǔn)備發(fā)起讀取請(qǐng)求時(shí),要先以存儲(chǔ)器寫事務(wù)A3^的形式配置寄 存器2。配置后的寄存器當(dāng)發(fā)現(xiàn)上位機(jī)ll下發(fā)讀取請(qǐng)求時(shí),則開始進(jìn)行將下位機(jī)板 卡13中的數(shù)據(jù)源/)13進(jìn)行傳輸。PCI-E總線接口 121的配置空間向直接存取數(shù)據(jù)傳輸控制裝置申請(qǐng)了兩段存儲(chǔ) 器空間。其中,第一段存儲(chǔ)空間(BAR1)用于掛接寄存器2;而第二段存儲(chǔ)空間 (BARO)申請(qǐng)的空間可用于正常的數(shù)據(jù)處理及發(fā)送單元4向PCI-E總線接口 134 寫入存儲(chǔ)器事務(wù)訪問。(二) 寄存器監(jiān)控單元1的設(shè)計(jì)寄存器監(jiān)控單元1接收上位機(jī)11發(fā)起的存儲(chǔ)器寫事務(wù)A^一 ,即對(duì)寄存器2的 配置請(qǐng)求,根據(jù)上位機(jī)11目標(biāo)偏移地址的不同,判斷要求寫入寄存器2的位置。從 而提取出讀取請(qǐng)求的上位機(jī)內(nèi)存首地址,申請(qǐng)的數(shù)據(jù)量,以及{可時(shí)發(fā)起讀取操作等信 息。然后通知解碼單元3有新的讀取操作,同時(shí)將提取到的啟動(dòng)信息集合 A—2 = (/Mi ,"凡C^ ,GSW發(fā)送給解碼單元3。在上位機(jī)11沒有發(fā)出讀取請(qǐng)求時(shí),寄存器監(jiān)控單元1處于空閑狀態(tài)。當(dāng)上位機(jī)11發(fā)起讀取請(qǐng)求,并通過存儲(chǔ)器寫事務(wù)",n向寄存器2中寫入數(shù)據(jù)時(shí),總線接口 134的接收開始信號(hào)和BAR1標(biāo)志位將 置"1",表示有事務(wù)請(qǐng)求訪問本地存儲(chǔ)器空間,即寄存器2的空間。這時(shí)寄存器監(jiān) 控單元1開始接收存儲(chǔ)器寫事務(wù)A3"數(shù)據(jù)頭的第一個(gè)雙字。如果第一個(gè)雙字沒有錯(cuò) 誤,則轉(zhuǎn)為接收數(shù)據(jù)頭的第二個(gè)雙字和存儲(chǔ)器寫事務(wù)A^,的數(shù)據(jù)載荷,獲得存儲(chǔ)器 寫事務(wù)的地址和要向寄存器2中寫入的有效數(shù)據(jù)。最終根據(jù)偏移地址的不同,將上 位機(jī)11的內(nèi)存首地址尸^ 、下位機(jī)板卡13中DDR的地址丄^ 、需要從緩存器131 中提取的數(shù)據(jù)源"13字節(jié)數(shù)和傳輸數(shù)據(jù)狀態(tài)寫入寄存器2的不同位置,暫存 起來。當(dāng)PCI-E首地址寄存器PAR及字節(jié)計(jì)數(shù)器CBR全部配置好,且控制狀態(tài)寄 存器(CSR)工作狀態(tài)位"1",標(biāo)志上位機(jī)11對(duì)寄存器2配置完成。直接存取數(shù)據(jù)傳輸控制裝置14準(zhǔn)備開始讀取操作。寄存器監(jiān)控單元1將寄存器2中的信息提取 出來,組合成啟動(dòng)信息集合A-2-(^4凡^^,C5及,GSi^通告給解碼單元3。在觸發(fā)信號(hào)"w到來時(shí),解碼單元3進(jìn)入完成狀態(tài)。。 (三)接收信用處理單元5的設(shè)計(jì) 接收信用處理單元5用于釋放下位機(jī)PCI-E總線緩沖區(qū)。當(dāng)寄存器監(jiān)控單元1 接收到上位機(jī)11發(fā)起的寫存儲(chǔ)器事務(wù)A3w時(shí),接收信用處理單元5先判斷數(shù)據(jù)包 的大小,根據(jù)PCI-E總線協(xié)議規(guī)范計(jì)箅出需要占用的信用值;當(dāng)事務(wù)傳輸結(jié)束后, 接收信用處理單元5報(bào)告PCI-E總線數(shù)據(jù)包處理完成,并且報(bào)告可釋放的信用值 A-,,總線將釋放相應(yīng)的緩沖區(qū),以接收新的事務(wù)。 (四)解碼單元3的設(shè)計(jì)解碼單元3從寄存器監(jiān)控單元1中獲得啟動(dòng)信息集合 ZV2 = {P^ ,"i ,C^f,CSi },然后根據(jù)PCI-E總線協(xié)議規(guī)定的帶數(shù)據(jù)有效載荷數(shù)據(jù)包的組裝原則獲得需發(fā)送的數(shù)據(jù)包個(gè)數(shù)和數(shù)據(jù)包頭信息集合/)3_3 ,逐一向發(fā)送到數(shù)據(jù) 處理及發(fā)送單元4。解碼單元3根據(jù)數(shù)據(jù)處理及發(fā)送單元4下發(fā)的發(fā)送完成信號(hào)A-, 所指示的工作狀態(tài),判斷是否開始打包下一個(gè)事務(wù)請(qǐng)求,同時(shí)+艮據(jù)需發(fā)送的數(shù)據(jù)包個(gè) 數(shù)判斷當(dāng)前的事務(wù)請(qǐng)求是否為直接存取數(shù)據(jù)傳輸控制裝置14的最后一個(gè)事務(wù)請(qǐng)求, 當(dāng)完成最后一個(gè)事務(wù)請(qǐng)求的發(fā)送時(shí),解碼單元3將中斷請(qǐng)求信號(hào)發(fā)送到數(shù)據(jù)處理及 發(fā)送單元4。在沒在讀取請(qǐng)求時(shí),解碼單元3處于空閑狀態(tài),等待新的讀取事務(wù)。當(dāng)有新的讀取請(qǐng)求發(fā)起時(shí),解碼單元3開始獲取數(shù)據(jù)包頭信息,在這一狀態(tài)中,根據(jù)寄存器 監(jiān)控單元1提供的信息啟動(dòng)信息集合A—2—P^ ,"i ,C^ ,CS^,判斷讀取請(qǐng)求的類型。因?yàn)槭巧闲袛?shù)據(jù)流模式的直接存取數(shù)據(jù),所以事務(wù)類型一定是存儲(chǔ)器寫請(qǐng)求。 然后再根據(jù)存儲(chǔ)器事務(wù)不能超越4KB的邊界限制,以及不能超越1KB的PCI-E總 線接口 134設(shè)定的最大數(shù)據(jù)包大小,計(jì)算出本次傳遞的數(shù)據(jù)大小。 一個(gè)時(shí)鐘周期后 開始計(jì)算數(shù)據(jù)包頭信息集合A-3中的除數(shù)據(jù)有效載荷大小丄e"g^外的其他信息,并 將數(shù)據(jù)包頭信息集合A-3傳送給數(shù)據(jù)處理及發(fā)送單元4,通過發(fā)送新包信號(hào)£>3_2報(bào)告 有新的數(shù)據(jù)包傳輸請(qǐng)求。在數(shù)據(jù)處理及發(fā)送單元4返回發(fā)送完成信號(hào)iV,后,如果讀 取請(qǐng)求的數(shù)據(jù)沒有傳輸結(jié)束,則解碼單元3開始準(zhǔn)備下一次存儲(chǔ)器事務(wù)的數(shù)據(jù)頭信 息集合£>3_3。如果數(shù)據(jù)傳輸全部結(jié)束,解碼單元3回到空閑狀態(tài),等待新的啟動(dòng)信息(五) 數(shù)據(jù)處理及發(fā)送單元4的設(shè)計(jì) 正常狀態(tài)下數(shù)據(jù)處理及發(fā)送單元4處于空閑狀態(tài);當(dāng)檢測到解碼單元3發(fā)送新包信號(hào)A-2通知新的請(qǐng)求時(shí),從解碼單元3中取得頭信息集合A-3,提取其中的數(shù)據(jù) 有效載荷大小丄e"g^ ,等待數(shù)據(jù)緩存器131中數(shù)據(jù)準(zhǔn)備完成后,向數(shù)據(jù)緩存器131 發(fā)出控制信號(hào)A-2,啟動(dòng)數(shù)據(jù)傳輸,從數(shù)據(jù)緩存器131中讀取數(shù)據(jù)有效載荷大小 丄e"gA所表示數(shù)量的有效數(shù)據(jù)Z^,;然后將解碼單元3提供的數(shù)據(jù)頭信息和有效數(shù) 據(jù)按照PCI-E總線協(xié)議中帶數(shù)據(jù)完成數(shù)據(jù)包的格式要求進(jìn)行打包獲得讀完成事務(wù) "4-3 ,檢查遠(yuǎn)端信用,如果信用足夠,向PCI — E總線端口 134發(fā)送讀完成事務(wù)^4-3 , 在第一個(gè)時(shí)鐘周期發(fā)送讀完成事務(wù)。"數(shù)據(jù)包的第一、第二雙字,第二個(gè)時(shí)鐘周期發(fā) 送讀完成事務(wù)"4-3數(shù)據(jù)包的第三、第四雙字;其后的時(shí)鐘周期以此類推,直到傳輸完 整個(gè)讀完成事務(wù)"4-3數(shù)據(jù)包;傳輸結(jié)束后重新回到空閑狀態(tài)。(六) 數(shù)據(jù)緩存器131的設(shè)計(jì)數(shù)據(jù)緩存器131是直接存取數(shù)據(jù)傳輸控制裝置與用戶邏輯控制單元132的數(shù)據(jù) 接口。當(dāng)發(fā)起讀取操作時(shí),直接存取數(shù)據(jù)傳輸控制裝置通知用戶邏輯控制單元132 向數(shù)據(jù)緩存器131中傳輸數(shù)據(jù)(數(shù)據(jù)源A3)。當(dāng)數(shù)據(jù)量達(dá)到請(qǐng)求時(shí),直接存取數(shù)據(jù) 傳輸控制裝置將有效數(shù)據(jù)從數(shù)據(jù)緩存器131中讀出,作為存儲(chǔ)器請(qǐng)求TLP數(shù)據(jù)包的 有效載荷,傳送給上位機(jī)11主存儲(chǔ)器中。本發(fā)明的直接存取數(shù)據(jù)傳輸控制裝置的處理流程(參見圖3所示)為 步驟101:系統(tǒng)初始化后,執(zhí)行步驟102;步驟102:配置寄存器2。依據(jù)存儲(chǔ)器寫事務(wù)i^",即對(duì)寄存器2的配置請(qǐng)求, 根據(jù)上位機(jī)11目標(biāo)偏移地址的不同,判斷要求寫入寄存器2的位置。從而提取出讀 取請(qǐng)求的上位機(jī)內(nèi)存首地址/Mi ,申請(qǐng)的數(shù)據(jù)量,以及何時(shí)發(fā)起讀取操作等信息;步驟103:判斷寄存器2是否配置完成。若"否",執(zhí)行步驟102繼續(xù)進(jìn)行存器 2的配置;若"是",則執(zhí)行步驟104;步驟104:解碼啟動(dòng)信息集合A-2-^^ ,Z^ ,C^ ,CSW,獲得數(shù)據(jù)包頭信息集合A—3和傳輸數(shù)據(jù)包頭的總個(gè)數(shù),根據(jù)傳輸數(shù)據(jù)包頭的總個(gè)數(shù)讀取數(shù)據(jù)緩存器131中的數(shù)據(jù)"131,將數(shù)據(jù)包頭信息集合/) 和有效數(shù)據(jù)組合,打包成讀完成數(shù)據(jù)包; P_|丄^"瘋粉,£尸,77),7(:,7>/^,7^,萬,(:0慮, j3—3 15CM,CS,Comp/"er/D,丄owery4(3Wres^,r(ag,i g《wesfer/Dj"步驟105:判斷遠(yuǎn)端信用是否足夠。如果信用足夠,執(zhí)行步驟107;如果信用 不足,執(zhí)行步驟106;步驟106:等待信用空間;步驟107:向PCI — E總線發(fā)起讀完成事務(wù)請(qǐng)求;步驟108:判斷本次直接存取數(shù)據(jù)傳輸?shù)乃惺聞?wù)請(qǐng)求是否都已完成;若未完成, 執(zhí)行步驟104;若已經(jīng)完成,執(zhí)行步驟109;步驟109:向上位機(jī)發(fā)出中斷請(qǐng)求信號(hào)£>3_4,報(bào)告直接存取數(shù)據(jù)傳輸完成。步驟110:數(shù)據(jù)傳輸結(jié)束。
權(quán)利要求
1. 一種基于PCI-E總線的直接存取數(shù)據(jù)傳輸控制裝置,所述直接存取數(shù)據(jù)傳輸控制裝置內(nèi)嵌在FPGA芯片中,用于完成上位機(jī)(11)與下位機(jī)板卡(13)之間通過PCI-E總線(12)的高速數(shù)據(jù)流控制,其特征在于由寄存器監(jiān)控單元(1)、寄存器(2)、解碼單元(3)、發(fā)送單元(4)和接收信用處理單元(5)組成;所述寄存器監(jiān)控單元(1)用于(A)對(duì)上位機(jī)(11)通過PCI-E總線(12)下發(fā)的符合PCI-E總線協(xié)議定義的存儲(chǔ)器寫事務(wù)D134-1進(jìn)行接收,所述寫事務(wù)中至少包括表征讀取請(qǐng)求啟動(dòng)信息的有效數(shù)據(jù)D1-1、寄存器(2)的偏移地址和有效數(shù)據(jù)的長度,所述表征讀取請(qǐng)求啟動(dòng)信息的有效數(shù)據(jù)D1-1有上位機(jī)(11)的內(nèi)存首地址PAR、下位機(jī)板卡(13)中DDR的地址LAR、需要從緩存器(131)中提取的數(shù)據(jù)源D13字節(jié)數(shù)CBR和傳輸數(shù)據(jù)狀態(tài)CSR四種類型,所述傳輸數(shù)據(jù)狀態(tài)CSR由讀/寫狀態(tài)位、開始狀態(tài)位和工作狀態(tài)位組成,工作狀態(tài)位包括有兩種狀態(tài),其中編譯語言中的“1”表示控制裝置處于工作狀況,編譯語言中的“0”表示控制裝置處于空閑狀況;(B)依照存儲(chǔ)器寫事務(wù)D134-1中寄存器(2)的偏移地址將存儲(chǔ)器寫事務(wù)D134-1中的有效數(shù)據(jù)D1-1寫入寄存器(2);(C)依據(jù)解碼單元(3)輸出的觸發(fā)指令D3-1提取寄存在寄存器(2)中的表征啟動(dòng)信息的有效數(shù)據(jù)D1-1,并組成啟動(dòng)信息集合D1-2={PAR,LAR,CBR,CSR}輸出給解碼單元(3);所述寄存器(2)對(duì)接收的表征啟動(dòng)信息的有效數(shù)據(jù)D1-1進(jìn)行存儲(chǔ);所述解碼單元(3)用于(A)對(duì)接收的啟動(dòng)信息集合D1-2={PAR,LAR,CBR,CSR}進(jìn)行分析,并采用PCI-E總線協(xié)議規(guī)定的帶數(shù)據(jù)有效載荷數(shù)據(jù)包的組裝原則獲得數(shù)據(jù)包頭信息集合D3-3和傳輸數(shù)據(jù)包頭的總個(gè)數(shù);(B)依據(jù)數(shù)據(jù)處理及發(fā)送單元(4)下發(fā)的發(fā)送完成信號(hào)D4-1將發(fā)送新包信號(hào)D3-2和數(shù)據(jù)包頭信息集合D3-3傳輸給數(shù)據(jù)處理及發(fā)送單元(4);(C)依據(jù)傳輸數(shù)據(jù)包頭的總個(gè)數(shù)向數(shù)據(jù)處理及發(fā)送單元(4)發(fā)送中斷請(qǐng)求信號(hào)D3-4;所述數(shù)據(jù)包頭信息集合
2、 根據(jù)權(quán)利要求1所述的直接存取數(shù)據(jù)傳輸控制裝置,其特征在于所述FPGA 芯片選取latticeSC系列芯片。
3、 根據(jù)權(quán)利要求1所述的直接存取數(shù)據(jù)傳輸控制裝置,其特征在于采用 Verilog2001編程技術(shù)在FPGA芯片(14)上形成用戶邏輯控制單元(132)和 直接存取數(shù)據(jù)傳輸控制裝置,采用IP復(fù)用技術(shù)在FPGA芯片(14)上形成緩存 器(131)和總線接口 (134)。
全文摘要
本發(fā)明公開了一種基于PCI-E總線的直接存取數(shù)據(jù)傳輸控制裝置,所述直接存取數(shù)據(jù)傳輸控制裝置內(nèi)嵌在FPGA芯片中,用于完成上位機(jī)(11)與下位機(jī)板卡(13)之間通過PCI-E總線(12)的高速數(shù)據(jù)流控制;所述基于PCI-E總線的直接存取數(shù)據(jù)傳輸控制裝置由寄存器監(jiān)控單元(1)、寄存器(2)、解碼單元(3)、發(fā)送單元(4)和接收信用處理單元(5)組成。本發(fā)明采用Verilog2001編程技術(shù)在FPGA芯片(14)上形成用戶邏輯控制單元(132)和直接存取數(shù)據(jù)傳輸控制裝置,采用IP復(fù)用技術(shù)在FPGA芯片(14)上形成緩存器(131)和總線接口(134)。
文檔編號(hào)G06F13/38GK101276318SQ20081010620
公開日2008年10月1日 申請(qǐng)日期2008年5月12日 優(yōu)先權(quán)日2008年5月12日
發(fā)明者勇 張, 曲國遠(yuǎn), 朱曉穎, 棟 李, 林曉令, 段東升 申請(qǐng)人:北京航空航天大學(xué)