本發(fā)明屬于通信技術領域,尤其涉及一種基于pcie總線的主從交互式通信平臺及方法。
背景技術:
隨著科學技術的迅速發(fā)展,高速數據交互被應用到多種場合。pci-express是一種通用的總線規(guī)格,其不只包括顯示接口,還囊括了cpu、pci、hdd、network等多種應用接口。從而可以像hyper-transport一樣,用以解決現(xiàn)今系統(tǒng)內數據傳輸出現(xiàn)的瓶頸問題,并且為未來的周邊產品性能提升作好充分的準備。以往計算機系統(tǒng)的各種設備共用一個帶寬,采用了并行互聯(lián),這大大影響了系統(tǒng)整體的性能表現(xiàn),同時并行信號由于相互干擾也嚴重制約了日后速度的進一步提升。而pcie則采用了串行互聯(lián)方式,以點對點的形式進行數據傳輸,每個設備都可以單獨的享用帶寬,從而大大提高了傳輸速率,而且也為更高的頻率提升創(chuàng)造了條件。因此,pcie總線因帶寬高、性能優(yōu),受到廣泛關注和使用。但受開發(fā)難度制約,目前只將pcie總線用于單向傳輸,并且存在各種設計上的缺陷,降低了總線效率。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于pcie總線的主從交互式通信平臺,旨在解決現(xiàn)有技術中只將pcie總線用于單向傳輸,并且存在各種設計上的缺陷,降低了總線效率的問題。
本發(fā)明是這樣實現(xiàn)的,一種基于pcie總線的主從交互式通信平臺,所述基于pcie總線的主從交互式通信平臺包括均配有pcie2.0x4接口的主機和開發(fā)板;
當所述主機作為主設備時,所述開發(fā)板作為從設備;當所述主機作為從設備時,所述開發(fā)板作為主設備;
所述主機用于對交互通信數據量的配置以及主從設備進行設置,所述主機與所述開發(fā)板之間的交互通信采用查詢模式或中斷模式;
所述主機上申請的內存包括數據緩存和描述符表緩存,所述數據緩存以鏈式dma方式申請,所述描述符表緩存以連續(xù)dma方式申請,所述數據緩存是由物理地址不連續(xù)的內存頁組成,不連續(xù)的若干個所述內存頁信息構成描述符表,所述描述符表包括包含有用于更新通信結束信息的eplast信息的表頭項。
作為一種改進的方案,當所述數據緩存中內存頁的空間小于一個tlp包大小時,所述內存頁為不可用狀態(tài),并將tlp包寫入下一個數據緩存的內存頁中。
作為一種改進的方案,當所述tlp包出現(xiàn)跨越4k邊界時,調整所述表頭項存儲的地址信息,使表頭項位于上一內存頁的最后4個32bit空間,第一個表項位于下一內存頁的首個4個32bit空間。
作為一種改進的方案,所述主機與所述開發(fā)板的交互通信數據量為128m。
本發(fā)明的另一目的在于提供一種基于pcie總線的主從交互式通信平臺的基于pcie總線的主從交互式通信方法,所述方法包括下述步驟:
在主機端,配置主機為主設備,開發(fā)板為從設備,并指定所述主機與所述開發(fā)板的交互通信數據量;
通過鏈式dma方式申請數據緩存,并將待發(fā)數據寫入所述數據緩存;
通過連續(xù)dma方式申請描述符表緩存,并將所述數據緩存的內存頁信息形成描述符表,寫入所述描述符表緩存;
配置所述主機與所述開發(fā)板的通信模式,所述通信模式包括中斷模式和查詢模式;
配置寫寄存器,啟動dma傳輸;
根據所述通信模式以及所述表頭項的eplast信息,判定所述主機與所述開發(fā)板之間的通信結束。
作為一種改進的方案,所述方法還包括下述步驟:
當所述數據緩存中內存頁的空間小于一個tlp包大小時,所述內存頁為不可用狀態(tài),并將tlp包寫入下一個數據緩存的內存頁中。
作為一種改進的方案,所述方法還包括下述步驟:
當所述tlp包出現(xiàn)跨越4k邊界時,調整所述表頭項存儲的地址信息,使表頭項位于上一內存頁的最后4個32bit空間,第一個表項位于下一內存頁的首個4個32bit空間。
本發(fā)明的另一目的在于提供一種基于pcie總線的主從交互式通信平臺的基于pcie總線的主從交互式通信方法,所述方法包括下述步驟:
在主機端,配置開發(fā)板為主設備,主機為從設備,并指定所述主機與所述開發(fā)板的交互通信數據量;
通過鏈式dma方式申請數據緩存;
通過連續(xù)dma方式申請描述符表緩存,并將所述數據緩存的內存頁信息形成描述符表,寫入所述描述符表緩存;
配置所述主機與所述開發(fā)板的通信模式,所述通信模式包括中斷模式和查詢模式;
配置讀寄存器,啟動dma傳輸;
根據所述通信模式以及所述表頭項的eplast信息,判定所述主機與所述開發(fā)板之間的通信結束;
所述主機將數據緩存中的數據讀出,對所述數據進行校驗處理。
作為一種改進的方案,所述方法還包括下述步驟:
當所述數據緩存中內存頁的空間小于一個tlp包大小時,所述內存頁為不可用狀態(tài),并將tlp包寫入下一個數據緩存的內存頁中。
作為一種改進的方案,所述方法還包括下述步驟:
當所述tlp包出現(xiàn)跨越4k邊界時,調整所述表頭項存儲的地址信息,使表頭項位于上一內存頁的最后4個32bit空間,第一個表項位于下一內存頁的首個4個32bit空間。
在本發(fā)明中,基于pcie總線的主從交互式通信平臺包括均配有pcie2.0x4接口的主機和開發(fā)板;從主機和開發(fā)板中配置主設備和從設備;主機用于對交互通信數據量的配置以及主從設備進行設置,主機與開發(fā)板之間的交互通信采用查詢模式或中斷模式;主機上申請的內存包括數據緩存和描述符表緩存,數據緩存以鏈式dma方式申請,描述符表緩存以連續(xù)dma方式申請,數據緩存是由物理地址不連續(xù)的內存頁組成,不連續(xù)的若干個內存頁信息構成描述符表,描述符表包括包含有用于更新通信結束信息的eplast信息的表頭項,實現(xiàn)了基于pcie總線的主從交互通信,提高了總線效率,實現(xiàn)帶寬性能的最大化。
附圖說明
圖1是本發(fā)明實施例一提供的基于pcie總線的主從交互式通信方法的實現(xiàn)流程圖;
圖2是本發(fā)明實施例二提供的基于pcie總線的主從交互式通信方法的實現(xiàn)流程圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
基于pcie總線的主從交互式通信平臺包括均配有pcie2.0x4接口的主機和開發(fā)板,其中,該主機為pc機,其安裝有win7操作系統(tǒng),該開發(fā)板為alterastratixivgxfpgadevelopmentkitboard,在pc機關機狀態(tài)下,將開發(fā)板插到pc機的pcie2.0x4插槽上,然后pc機開機,至win7系統(tǒng)正常啟動,且開發(fā)板也供電正常后,硬件平臺搭建完成;
當所述主機作為主設備時,所述開發(fā)板作為從設備;當所述主機作為從設備時,所述開發(fā)板作為主設備,即主機和開發(fā)板均可以作為主設備,也均可以作為從設備;
主機用于對交互通信數據量的配置以及主從設備進行設置,所述主機與所述開發(fā)板之間的交互通信采用查詢模式或中斷模式;
主機上申請的內存包括數據緩存和描述符表緩存,所述數據緩存以鏈式dma方式申請,所述描述符表緩存以連續(xù)dma方式申請,所述數據緩存是由物理地址不連續(xù)的內存頁組成,不連續(xù)的若干個所述內存頁信息構成描述符表,所述描述符表包含有用于更新通信結束信息的eplast信息的表頭項。
在本發(fā)明實施例中,具體通信時,以通信數據量為128m,通信模式為查詢?yōu)槔f明;
首先pc機作為主設備,開發(fā)板作為從設備,pc機向開發(fā)板發(fā)送128m數據,通信正常結束后,再以開發(fā)板作為主設備,pc機作為從設備,開發(fā)板將剛才收到的128m數據原封不動向pc機發(fā)送,通信正常結束后,pc機將內存中的128m數據取出做校驗,判斷數據是否正確。判斷完后,通信結束。為方便數據比對,128m數據采取32bit寬,從0起,不斷加1遞增的形式,即:0,1,2,.......。
其中,通信時,采用高效率經典的dma形式,即直接內存訪問。在pc機上需要申請兩種內存:數據緩存和描述符表緩存;
數據緩存以鏈式dma方式申請,描述符表緩存以連續(xù)dma方式申請,數據緩存是由一些物理地址不一定連續(xù)的內存頁組成,這些頁信息構成描述符表;
處理數據緩存時,當某一內存頁可用空間大小小于1個tlp包時,pcie通信中,要求1個tlp包不能跨越兩個內存頁,因此當某一頁可用空間大小小于1個tlp包大小時,該內存頁不可用,將tlp包寫入下一個數據緩存的內存頁中;
通常申請到的數據緩存,除首尾頁大小可能<4096字節(jié)外,中間頁都是4096字節(jié)的倍數,因此只需要考慮首尾頁的處理,在申請數據緩存時多申請一些空間,以備處理該特殊情況;
關于描述符表,在首部還存在描述符表頭項,這是stratixivpcie使用中強制要求的,表頭項和具體表項都是由4個32bit數構成的,由于開發(fā)板在發(fā)讀描述符表請求時,只需要純表項,表頭項只在通信結束時用于更新eplast信息,并且開發(fā)板每次讀請求都是固定數量的tlp包,因此要考慮到并處理某次請求tlp包跨4k邊界的情況;
由于描述符表放在連續(xù)的緩存中,可以通過調整表頭項存儲的地址,使表頭項位于上一頁的最后4個32bit空間,第一個表項位于下一頁的首個4個32bit空間,來避免跨4k邊界的問題。因此在申請描述符表緩存時多申請一些空間,以備處理該特殊情況。
圖1示出了本發(fā)明實施例一提供的基于pcie總線的主從交互式通信方法的實現(xiàn)流程圖,其具體包括下述步驟:
在步驟s101中,在主機端,配置主機為主設備,開發(fā)板為從設備,并指定所述主機與所述開發(fā)板的交互通信數據量。
在步驟s102中,通過鏈式dma方式申請數據緩存,并將待發(fā)數據寫入所述數據緩存。
其中,當所述數據緩存中內存頁的空間小于一個tlp包大小時,所述內存頁為不可用狀態(tài),并將tlp包寫入下一個數據緩存的內存頁中。
在步驟s103中,通過連續(xù)dma方式申請描述符表緩存,并將所述數據緩存的內存頁信息形成描述符表,寫入所述描述符表緩存。
當所述tlp包出現(xiàn)跨越4k邊界時,調整所述表頭項存儲的地址信息,使表頭項位于上一內存頁的最后4個32bit空間,第一個表項位于下一內存頁的首個4個32bit空間。
在步驟s104中,配置所述主機與所述開發(fā)板的通信模式,所述通信模式包括中斷模式\查詢模式。
在步驟s105中,配置寫寄存器,啟動dma傳輸。
在步驟s106中,根據所述通信模式以及所述表頭項的eplast信息,判定所述主機與所述開發(fā)板之間的通信結束。
圖1示出了主機作為主設備,開發(fā)板作為從設備的交互通信方式。
圖2示出了本發(fā)明實施例二提供的基于pcie總線的主從交互式通信方法的實現(xiàn)流程圖,其具體步驟包括:
在步驟s201中,在主機端,配置開發(fā)板為主設備,主機為從設備,并指定所述主機與所述開發(fā)板的交互通信數據量。
在步驟s202中,通過鏈式dma方式申請數據緩存。
當所述數據緩存中內存頁的空間小于一個tlp包大小時,所述內存頁為不可用狀態(tài),并將tlp包寫入下一個數據緩存的內存頁中。
在步驟s203中,通過連續(xù)dma方式申請描述符表緩存,并將所述數據緩存的內存頁信息形成描述符表,寫入所述描述符表緩存。
當所述tlp包出現(xiàn)跨越4k邊界時,調整所述表頭項存儲的地址信息,使表頭項位于上一內存頁的最后4個32bit空間,第一個表項位于下一內存頁的首個4個32bit空間。
在步驟s204中,配置所述主機與所述開發(fā)板的通信模式,所述通信模式包括中斷模式和查詢模式。
在步驟s205中,配置讀寄存器,啟動dma傳輸。
在步驟s206中,根據所述通信模式以及所述表頭項的eplast信息,判定所述主機與所述開發(fā)板之間的通信結束。
在步驟s207中,主機將數據緩存中的數據讀出,對所述數據進行校驗處理。
在本發(fā)明中,基于pcie總線的主從交互式通信平臺包括均配有pcie2.0x4接口的主機和開發(fā)板;從主機和開發(fā)板中配置主設備和從設備;主機用于對交互通信數據量的配置以及主從設備進行設置,主機與開發(fā)板之間的交互通信采用查詢模式或中斷模式;主機上申請的內存包括數據緩存和描述符表緩存,數據緩存以鏈式dma方式申請,描述符表緩存以連續(xù)dma方式申請,數據緩存是由物理地址不連續(xù)的內存頁組成,不連續(xù)的若干個內存頁信息構成描述符表,描述符表包含有用于更新通信結束信息的eplast信息的表頭項,實現(xiàn)了基于pcie總線的主從交互通信,提高了總線效率,實現(xiàn)帶寬性能的最大化。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。