亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于PCIe的全雙工DMA傳輸方法

文檔序號(hào):9600537閱讀:1299來(lái)源:國(guó)知局
一種基于PCIe的全雙工DMA傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)傳輸方法,具體涉及一種基于PCIe的全雙工DMA傳輸方法。
【背景技術(shù)】
[0002]目前市場(chǎng)上現(xiàn)有的基于PCIe鏈路進(jìn)行數(shù)據(jù)傳輸?shù)陌蹇ㄔO(shè)備中,在與基于X86平臺(tái)的上位機(jī)進(jìn)行數(shù)據(jù)通訊的過(guò)程中,由于X86平臺(tái)中北橋芯片的架構(gòu)限制,從X86平臺(tái)向板卡設(shè)備傳輸數(shù)據(jù)時(shí),如果由X86平臺(tái)發(fā)起并主導(dǎo)傳輸過(guò)程,則在每個(gè)TLP數(shù)據(jù)包中都僅能夠攜帶4個(gè)字節(jié)的有效數(shù)據(jù),而TLP數(shù)據(jù)包的包頭最小也需要3個(gè)雙字,由于有效數(shù)據(jù)僅占據(jù)了TLP數(shù)據(jù)包大小的最多1/4,因此在這種模式下,數(shù)據(jù)傳輸?shù)男史浅5拖?,無(wú)法充分發(fā)揮PCIe鏈路的高速傳輸性能。
[0003]為了解決此問(wèn)題,一般的做法都是在板卡設(shè)備側(cè)實(shí)現(xiàn)相應(yīng)的DMA傳輸控制功能,即由板卡設(shè)備來(lái)發(fā)起并主導(dǎo)控制數(shù)據(jù)傳輸?shù)娜^(guò)程。
[0004]市場(chǎng)上現(xiàn)有的基于PCIe鏈路進(jìn)行數(shù)據(jù)傳輸?shù)陌蹇ㄔO(shè)備中,一般都是采用了基于RAM原理的隨機(jī)尋址模式,即在板卡設(shè)備中,為每個(gè)存儲(chǔ)單元分配指定的地址,之后再通過(guò)完整的片選、地址、數(shù)據(jù)、讀寫使能信號(hào)來(lái)對(duì)相應(yīng)的存儲(chǔ)單元進(jìn)行訪問(wèn)。在這種模式下,整個(gè)設(shè)計(jì)與基于PCI總線實(shí)現(xiàn)的DMA傳輸模式之間,能夠保持較好的兼容和可移植性,但由于PCI總線先天性的限制,即其為了降低單板連線數(shù)目,采用了地址\數(shù)據(jù)復(fù)用的低速并行數(shù)據(jù)傳輸模式,決定了 PCI總線永遠(yuǎn)都只能夠工作在半雙工的傳輸模式下。
[0005]在基于PCI總線的板卡設(shè)備同X86平臺(tái)交換數(shù)據(jù)時(shí),不論是從X86平臺(tái)向基于PCI總線的板卡設(shè)備傳輸數(shù)據(jù)時(shí),還是從基于PCI總線的板卡設(shè)備向X86平臺(tái)傳輸數(shù)據(jù)時(shí),由于其相應(yīng)的操作都需要完整的使用PCI總線上的地址\數(shù)據(jù)、片選、讀寫使能等數(shù)據(jù)總線和控制信號(hào),因而另外一個(gè)方向必然無(wú)法同時(shí)進(jìn)行數(shù)據(jù)傳輸,只能等待這次傳輸徹底結(jié)束后,才能夠開始相應(yīng)的數(shù)據(jù)傳輸工作。
[0006]板卡設(shè)備中的數(shù)據(jù)傳輸控制單元根據(jù)數(shù)據(jù)的傳輸方向,分別向上位機(jī)發(fā)送讀和寫請(qǐng)求TLP數(shù)據(jù)包。讀請(qǐng)求TLP數(shù)據(jù)包僅需三個(gè)雙字的數(shù)據(jù)量,之后等待上位機(jī)以讀完成TLP數(shù)據(jù)包的形式返回?cái)?shù)據(jù)即可,總線占用時(shí)間非常短,且還需要等待上位機(jī)返回?cái)?shù)據(jù);而向上位機(jī)發(fā)送寫請(qǐng)求TLP數(shù)據(jù)包時(shí),除了三個(gè)雙字的包頭,還需要攜帶最多128個(gè)雙字的數(shù)據(jù),總線占用的時(shí)間較長(zhǎng)。

【發(fā)明內(nèi)容】

[0007]本發(fā)明旨在提出一種利用PCIe總線兩個(gè)方向的高速通道同時(shí)進(jìn)行高速數(shù)據(jù)傳輸?shù)娜p工DMA傳輸方法。
[0008]本發(fā)明的技術(shù)方案在于:
一種基于PCIe的全雙工DMA傳輸方法,包括板卡設(shè)備以及上位機(jī);所述板卡設(shè)備為基于PCIe總線的板卡設(shè)備,包括發(fā)送側(cè)控制寄存器、接收側(cè)控制寄存器以及數(shù)據(jù)傳輸控制單元,發(fā)送側(cè)控制寄存器和接收側(cè)控制寄存器均設(shè)置有獨(dú)立的FIFO ;數(shù)據(jù)傳輸控制單元控制發(fā)送側(cè)控制寄存器以及接收側(cè)控制寄存器與上位機(jī)進(jìn)行數(shù)據(jù)傳輸;所述的數(shù)據(jù)傳輸控制單元分別向上位機(jī)發(fā)送讀請(qǐng)求TLP數(shù)據(jù)包以及寫請(qǐng)求TLP數(shù)據(jù)包,將讀請(qǐng)求TLP數(shù)據(jù)包設(shè)置為高優(yōu)先級(jí),寫請(qǐng)求TLP數(shù)據(jù)包設(shè)置為低優(yōu)先級(jí);發(fā)送完讀請(qǐng)求TLP數(shù)據(jù)包之后,即發(fā)送寫請(qǐng)求TLP數(shù)據(jù)包,直至上位機(jī)以讀完成TLP數(shù)據(jù)包的形式返回了全部數(shù)據(jù),再發(fā)送下一個(gè)讀請(qǐng)求TLP數(shù)據(jù)包。
[0009]所述的FIFO的深度為2048,數(shù)據(jù)寬度為32位。
[0010]所述的控制寄存器均包括上位機(jī)物理地址寄存器、TLP數(shù)據(jù)包大小寄存器、TLP數(shù)據(jù)包個(gè)數(shù)寄存器、板卡設(shè)備內(nèi)部物理地址寄存器。
[0011]本發(fā)明的技術(shù)效果在于:
本發(fā)明通過(guò)為兩個(gè)方向的數(shù)據(jù)傳輸設(shè)計(jì)獨(dú)立的FIFO,將發(fā)送側(cè)控制寄存器以及接收側(cè)控制寄存器的數(shù)據(jù)傳輸和處理進(jìn)行了分離,板卡設(shè)備以寫請(qǐng)求TLP數(shù)據(jù)包的形式向上位機(jī)高速發(fā)送數(shù)據(jù)的同時(shí),上位機(jī)也在以讀完成TLP數(shù)據(jù)包的形式,向板卡設(shè)備高速發(fā)送數(shù)據(jù),即PCIe鏈路的兩個(gè)方向,同時(shí)都在進(jìn)行著高速串行的數(shù)據(jù)傳輸,充分發(fā)揮了 PCIe鏈路的全雙工串行高速鏈路的優(yōu)勢(shì)。
【具體實(shí)施方式】
[0012]—種基于PCIe的全雙工DMA傳輸方法,包括板卡設(shè)備以及上位機(jī);所述板卡設(shè)備為基于PCIe總線的板卡設(shè)備,包括發(fā)送側(cè)控制寄存器、接收側(cè)控制寄存器以及數(shù)據(jù)傳輸控制單元,發(fā)送側(cè)控制寄存器和接收側(cè)控制寄存器均設(shè)置有獨(dú)立的FIFO ;數(shù)據(jù)傳輸控制單元控制發(fā)送側(cè)控制寄存器以及接收側(cè)控制寄存器與上位機(jī)進(jìn)行數(shù)據(jù)傳輸;所述的數(shù)據(jù)傳輸控制單元分別向上位機(jī)發(fā)送讀請(qǐng)求TLP數(shù)據(jù)包以及寫請(qǐng)求TLP數(shù)據(jù)包,將讀請(qǐng)求TLP數(shù)據(jù)包設(shè)置為高優(yōu)先級(jí),寫請(qǐng)求TLP數(shù)據(jù)包設(shè)置為低優(yōu)先級(jí);發(fā)送完讀請(qǐng)求TLP數(shù)據(jù)包之后,即發(fā)送寫請(qǐng)求TLP數(shù)據(jù)包,直至上位機(jī)以讀完成TLP數(shù)據(jù)包的形式返回了全部數(shù)據(jù),再發(fā)送下一個(gè)讀請(qǐng)求TLP數(shù)據(jù)包。其中,F(xiàn)IFO的深度為2048,數(shù)據(jù)寬度為32位??刂萍拇嫫骶ㄉ衔粰C(jī)物理地址寄存器、TLP數(shù)據(jù)包大小寄存器、TLP數(shù)據(jù)包個(gè)數(shù)寄存器、板卡設(shè)備內(nèi)部物理地址寄存器。
[0013]即在板卡設(shè)備以寫請(qǐng)求TLP數(shù)據(jù)包的形式,向上位機(jī)高速發(fā)送數(shù)據(jù)的同時(shí),上位機(jī)也在以讀完成TLP數(shù)據(jù)包的形式,向板卡設(shè)備高速發(fā)送數(shù)據(jù),即PCIe鏈路的兩個(gè)方向,同時(shí)都在進(jìn)行著高速串行的數(shù)據(jù)傳輸,充分發(fā)揮了 PCIe鏈路的全雙工串行高速鏈路的優(yōu)勢(shì)。
[0014]在本產(chǎn)品的實(shí)施過(guò)程中,為發(fā)送側(cè)控制寄存器和接收側(cè)控制寄存器都設(shè)計(jì)有獨(dú)立的FIFO,并有獨(dú)立的傳輸總線和數(shù)據(jù)傳輸控制單元分別相連接。在需要進(jìn)行數(shù)據(jù)傳輸時(shí),由數(shù)據(jù)傳輸控制單元實(shí)現(xiàn)對(duì)應(yīng)的傳輸功能。
[0015]由板卡設(shè)備向上位機(jī)傳輸數(shù)據(jù)時(shí)需要使用發(fā)送側(cè)控制寄存器,由上位機(jī)向板卡設(shè)備傳輸數(shù)據(jù)時(shí)也需要使用接收側(cè)控制寄存器。
[0016]發(fā)送側(cè)控制寄存器和接收側(cè)控制寄存器各建立一個(gè)深度為2048,數(shù)據(jù)寬度為32位的FIFO作為緩存空間,由軟件一次把最多512個(gè)傳輸參數(shù)分別寫入了發(fā)送或者接收FIFO之后,即可啟動(dòng)對(duì)應(yīng)方向的DMA傳輸操作。DMA傳輸結(jié)束之后,即立即從FIFO中讀出下一次數(shù)據(jù)傳輸?shù)膮?shù)值,之后,即自動(dòng)開始相應(yīng)數(shù)據(jù)傳輸工作。在數(shù)據(jù)的傳輸過(guò)程中,如果需要暫?;蜷_啟當(dāng)前的數(shù)據(jù)傳輸,只需要設(shè)置對(duì)應(yīng)的控制位,之后可以讀取傳輸狀態(tài)寄存器,獲取當(dāng)前正在進(jìn)行的數(shù)據(jù)傳輸?shù)慕Y(jié)束地址。數(shù)據(jù)傳輸過(guò)程中,兩個(gè)方向可以完全獨(dú)立的被暫停,中止,提供了一種非常靈活的控制方式和高效的數(shù)據(jù)傳輸機(jī)制。
[0017]使用此方法設(shè)計(jì)的板卡設(shè)備,使用在PCIe Genl,XI的鏈路上時(shí),實(shí)際測(cè)試得到的結(jié)果為進(jìn)行單向傳輸時(shí),板卡設(shè)備向上位機(jī)發(fā)送數(shù)據(jù)時(shí),有效數(shù)據(jù)傳輸速率為220MBps ;上位機(jī)向板卡設(shè)備發(fā)送數(shù)據(jù)時(shí),有效數(shù)據(jù)傳輸速率為190MBps ;板卡設(shè)備向上位機(jī)發(fā)送數(shù)據(jù)和上位機(jī)向板卡設(shè)備發(fā)送數(shù)據(jù)同時(shí)進(jìn)行時(shí),兩個(gè)方向的總的數(shù)據(jù)傳輸速率為380Mbps,遠(yuǎn)遠(yuǎn)超過(guò)了單向傳輸數(shù)據(jù)時(shí)的性能。
【主權(quán)項(xiàng)】
1.一種基于PCIe的全雙工DMA傳輸方法,包括板卡設(shè)備以及上位機(jī);其特征在于:所述板卡設(shè)備為基于PCIe總線的板卡設(shè)備,包括發(fā)送側(cè)控制寄存器、接收側(cè)控制寄存器以及數(shù)據(jù)傳輸控制單元,發(fā)送側(cè)控制寄存器和接收側(cè)控制寄存器均設(shè)置有獨(dú)立的FIFO ;數(shù)據(jù)傳輸控制單元控制發(fā)送側(cè)控制寄存器以及接收側(cè)控制寄存器與上位機(jī)進(jìn)行數(shù)據(jù)傳輸;所述的數(shù)據(jù)傳輸控制單元分別向上位機(jī)發(fā)送讀請(qǐng)求TLP數(shù)據(jù)包以及寫請(qǐng)求TLP數(shù)據(jù)包,將讀請(qǐng)求TLP數(shù)據(jù)包設(shè)置為高優(yōu)先級(jí),寫請(qǐng)求TLP數(shù)據(jù)包設(shè)置為低優(yōu)先級(jí);發(fā)送完讀請(qǐng)求TLP數(shù)據(jù)包之后,即發(fā)送寫請(qǐng)求TLP數(shù)據(jù)包,直至上位機(jī)以讀完成TLP數(shù)據(jù)包的形式返回了全部數(shù)據(jù),再發(fā)送下一個(gè)讀請(qǐng)求TLP數(shù)據(jù)包。2.根據(jù)權(quán)利要求1所述的一種基于PCIe的全雙工DMA傳輸方法,其特征在于:所述的FIFO的深度為2048,數(shù)據(jù)寬度為32位。3.根據(jù)權(quán)利要求1所述的一種基于PCIe的全雙工DMA傳輸方法,其特征在于:所述的控制寄存器均包括上位機(jī)物理地址寄存器、TLP數(shù)據(jù)包大小寄存器、TLP數(shù)據(jù)包個(gè)數(shù)寄存器、板卡設(shè)備內(nèi)部物理地址寄存器。
【專利摘要】本發(fā)明涉及一種數(shù)據(jù)傳輸方法,具體涉及一種基于PCIe的全雙工DMA傳輸方法。一種基于PCIe的全雙工DMA傳輸方法,包括板卡設(shè)備以及上位機(jī);所述板卡設(shè)備為基于PCIe總線的板卡設(shè)備,包括發(fā)送側(cè)控制寄存器、接收側(cè)控制寄存器以及數(shù)據(jù)傳輸控制單元,發(fā)送側(cè)控制寄存器和接收側(cè)控制寄存器均設(shè)置有獨(dú)立的FIFO;數(shù)據(jù)傳輸控制單元控制發(fā)送側(cè)控制寄存器以及接收側(cè)控制寄存器與上位機(jī)進(jìn)行數(shù)據(jù)傳輸;板卡設(shè)備中的數(shù)據(jù)傳輸控制單元根據(jù)數(shù)據(jù)的傳輸方向,分別向上位機(jī)發(fā)送讀和寫請(qǐng)求TLP數(shù)據(jù)包。本發(fā)明總線占用時(shí)間非常短,且還需要等待上位機(jī)返回?cái)?shù)據(jù);而向上位機(jī)發(fā)送寫請(qǐng)求TLP數(shù)據(jù)包時(shí),除了三個(gè)雙字的包頭,還需要攜帶最多128個(gè)雙字的數(shù)據(jù),總線占用的時(shí)間較長(zhǎng)。
【IPC分類】H04L5/14
【公開號(hào)】CN105356988
【申請(qǐng)?zhí)枴緾N201510670061
【發(fā)明人】郭恩全, 鄭霖
【申請(qǐng)人】陜西海泰電子有限責(zé)任公司
【公開日】2016年2月24日
【申請(qǐng)日】2015年10月16日
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1