多核DSP和FPGA之間的高速SRIO通信_第1頁
多核DSP和FPGA之間的高速SRIO通信_第2頁
多核DSP和FPGA之間的高速SRIO通信_第3頁
多核DSP和FPGA之間的高速SRIO通信_第4頁
多核DSP和FPGA之間的高速SRIO通信_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

多核DSP和FPGA之間的高速SRIO通信汪安民;韓道文;徐焱【摘要】在高速采樣系統(tǒng)中,大量數(shù)據(jù)需要實(shí)時傳輸?shù)教幚砥?尤其是系統(tǒng)中存在多個處理器協(xié)同工作,就需要高速的總線來交換數(shù)據(jù).SRIO總線由于存在連線少、傳輸速度高等優(yōu)點(diǎn),使用較為廣泛.本文介紹了多核DSP和FPGA之間使用SRIO進(jìn)行數(shù)據(jù)交換的軟硬件設(shè)計(jì)方法,在不同數(shù)據(jù)需求下,介紹了FPGA將數(shù)據(jù)直接傳輸?shù)紻SP的DDR3、片內(nèi)RAM或者多核的共享RAM中.本文研制了硬件系統(tǒng),給出了各種方式的軟件操作方法和實(shí)際硬件平臺驗(yàn)證,SRIO傳輸速率達(dá)到4Gbps.%Highspeeddatacommunicationbetweenthedifferentprocessorsisneededinthehighsamplingsystem.TheSRIObusisusedwidelybecauseit'shighefficiencyandlowlatency.Inthispaper,thedesignmethodofSRIObusbetweenFPGAandDSPisstudied.ThedatatranslationisrealizedfromFPGAtoDDR3,sharedRAMorprivateRAMofDSP.Inthispaper,thehardwaresystemisdeveloped,andtheoperationmethodofthesoftwareandtheverificationoftheactualhardwareplatformaregiven.Theresultofdatathroughputisupto4GbpsbytheSRIObusintherealsystem.【期刊名稱】《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》【年(卷),期】2017(017)002【總頁數(shù)】4頁(P4-6,22)【關(guān)鍵詞】多核處理器;SRIO;共享RAM【作者】汪安民;韓道文;徐焱【作者單位】同方電子科技有限公司研究所,九江332009;電子工程學(xué)院;哈爾濱工業(yè)大學(xué)【正文語種】中文【中圖分類】TP336大規(guī)模集成電路的高速發(fā)展,使得處理器的能力越來越強(qiáng),進(jìn)而處理的事件增多;大數(shù)據(jù)的應(yīng)用,使得高速寬帶采樣成為必然,高速采樣每秒采集到的信息量遠(yuǎn)遠(yuǎn)大于低速采樣。高速采集、高速存儲和高速處理成為發(fā)展的必然。這其中,高速傳輸通道是芯片間的數(shù)據(jù)橋梁,一般要求10Gbps以上的處理速度,實(shí)時傳輸至少要達(dá)到幾Gbps。在設(shè)備之間,采用萬兆網(wǎng)、USB3.0、光纖通信等;在板間,采用PCIe、VPX等;而在芯片間,采用SRIO(也稱RapidIO)總線是常用方法。多核處理器片內(nèi)集成多個處理器,目前得到大規(guī)模使用;同時多核處理器的強(qiáng)處理能力,也豐富了產(chǎn)品的功能。為了支撐功能使用,一般多核處理器都會配置大容量DDR2或DDR3,運(yùn)行程序和存儲數(shù)據(jù),還配置共享RAM空間用于多個核之間的通信,每個核還有自己的私有RAM。一旦其他芯片和多核處理器進(jìn)行數(shù)據(jù)交互,可能會和這3個RAM空間進(jìn)行高速通信。傳統(tǒng)的單處理器交換一定需要CPU參與,CPU讀取數(shù)據(jù),然后存儲到芯片的DDR、片內(nèi)RAM或者片外Flash空間。但這樣,每個數(shù)據(jù)交互都需要CPU參與,嚴(yán)重影響了運(yùn)行效益。而多核處理器,數(shù)據(jù)交互遠(yuǎn)比單核處理器頻繁,而且要求交互速率也非常高,這就需要數(shù)據(jù)總線直接進(jìn)行交互,而不用CPU參與[2]。本文以8核DSP芯片TMS320C6678(以下簡稱C6678)和xck7325t芯片為例,通過4線SRIO實(shí)現(xiàn)FPGA將數(shù)據(jù)直接傳輸?shù)紻SP的DDR3、共享片內(nèi)RAM的方法。筆者給出了軟硬件設(shè)計(jì)方法,研究了硬件平臺,實(shí)際數(shù)據(jù)傳輸驗(yàn)證,該方法可以實(shí)現(xiàn)4Gbps的高速傳輸。C6678是TI公司多核處理器中的一款8核浮點(diǎn)型DSP,最高工作頻率達(dá)到1.25GHz,單個核具備40GMAC定點(diǎn)計(jì)算或20GFLOP浮點(diǎn)計(jì)算能力,單芯片具備320GMAC或160GFLOP的計(jì)算能力[3]。C6678的部分片內(nèi)結(jié)構(gòu)如圖1所示。圖1主要列出了C6678和RAM相關(guān)的片內(nèi)模塊,其他部分未列出。從圖中可以看出,一個超高速的TeraNet(兆兆網(wǎng)絡(luò))總線將大部分模塊連接在一起,數(shù)據(jù)通過TeraNet總線進(jìn)行交互。核訪問共享RAM(圖中的MSMSRAM)的速度最快,它們之間不通過TeraNet,而是有專用的數(shù)據(jù)總線,不會和其他外設(shè)產(chǎn)生沖突,核訪問共享RAM的速率大概在50Gbps。核訪問DDR3的速度僅次于共享RAM,因?yàn)镈DR3的數(shù)據(jù)需要通過共享RAM過渡,其讀寫訪問速度有所差別,讀速率至少可以達(dá)到10Gbps,寫速率可以達(dá)到20Gbps。核訪問其他片內(nèi)和片外設(shè)備都要經(jīng)過TeraNet,可能存在總線仲裁,但這些外設(shè)一般不會長時間占據(jù)TeraNet總線。本文關(guān)注的SRIO是直接掛在TeraNet總線上的,而C6678的DDR3控制器、共享RAM、512KB的二級Cache都是連接在TeraNet總線上,所以,SRIO可以直接和這3個RAM進(jìn)行通信,但需要一定的時序控制,否則會造成RAM的互鎖,增大仲裁開銷,甚至程序死機(jī)。具體表現(xiàn)在:和DDR3進(jìn)行通信。因?yàn)镈DR3一般會運(yùn)行主核程序,尤其是需要使用網(wǎng)絡(luò)接口,TI提供的NDK程序代碼很大,必須在DDR3中運(yùn)行。這樣程序運(yùn)行的DDR3地址,SRIO不能盲目進(jìn)行讀寫,尤其是寫操作,此外如果SRIO和程序需要同時讀某一地址,就會造成總線沖突。和共享RAM進(jìn)行通信。共享RAM是用于多個核之間的數(shù)據(jù)交互,幾個核對共享RAM的某個地址進(jìn)行操作,一定需要一個控制權(quán)搶占,誰搶占到控制權(quán)誰就可以操作,其他核只能等待,這樣就避免了多個核同時訪問共享RAM的問題。如果SRIO對共享RAM進(jìn)行操作,一定需要將SRIO加入核之間的控制權(quán)搶占以及釋放。和每個核私有RAM進(jìn)行通信。理論上,SRIO可以和每個核的L1數(shù)據(jù)空間、L1程序空間、L2空間進(jìn)行通信。但一般程序會將L1的全部數(shù)據(jù)和程序空間、L2的部分空間定義為Cache,用于存儲程序運(yùn)行的中間結(jié)果,例如局部變量。程序在調(diào)試過程中的打印輸出等也需要較大的堆棧來處理,這些堆??臻g都在私有RAM中由SYS/BIOS自動開辟。如果SRIO將數(shù)據(jù)寫入到這些空間,將很可能造成地址的同時讀寫,所以建議SRIO不對這些空間進(jìn)行操作。FPGA和DSP的SRIO硬件連接如圖2所示。SRIO總線由收發(fā)各4對差分線(一共16根線)組成。DSP的RIORXpO~3為4根收數(shù)據(jù)的正端,RIORXnO~3為一—對應(yīng)的4根收數(shù)據(jù)的負(fù)端,它們和FPGA相應(yīng)的8根發(fā)數(shù)據(jù)連接,形成一個FPGA發(fā)、DSP收的回路。另外8根線形成一個DSP發(fā)、FPGA收的回路。所以,在物理層,SRIO的收發(fā)是完全獨(dú)立的,可以做到收發(fā)全雙工。為了提高SRIO傳輸可靠性,在靠近收方的總線上,需要采用隔離電容,將信號直流隔掉,使得差分信號更加可靠。SRIO的時鐘由各自的處理器單獨(dú)設(shè)置,不要求DSP和FPGA共用SRIO時鐘。SRIO的傳輸時鐘是疊加在傳輸數(shù)據(jù)上的,由SRIO處理器從數(shù)據(jù)總線提取出時鐘信號,用于數(shù)據(jù)位的對齊。這些處理工作,均由各自芯片的SRIO模塊完成,不需要用戶設(shè)置[4]。圖2中,DSP夕卜掛了5片DDR3,每片DDR3為16位數(shù)據(jù)寬度,4片組成64位數(shù)據(jù)寬度,直接連接到DSP。第5片連接到DSP的數(shù)據(jù)校驗(yàn)位,每個64位的數(shù)據(jù)通過BCH編碼生成一個8位的校驗(yàn)碼同時存放到第5片DDR3中,DSP讀取DDR3數(shù)據(jù)時,也同時把這個校驗(yàn)碼讀出,進(jìn)行BCH譯碼。如果譯碼正確,則表示數(shù)據(jù)可靠,否則會嘗試重讀或多次失敗后丟棄數(shù)據(jù)。此外BCH碼具有一定的數(shù)據(jù)糾錯能力,也可以提高DDR3數(shù)據(jù)的讀寫可靠性。經(jīng)過實(shí)際驗(yàn)證,由DSP直接讀速度達(dá)到10Gbps,寫速度達(dá)到20Gbps。由于DSP有多個外設(shè),這些外設(shè)需要一個基準(zhǔn)時鐘,這樣就方便時序和同步控制,圖中采用CDCM62005對輸入的125MHz時鐘進(jìn)行分頻,輸出多路CLK信號,分別提供到SRIO、DDD3模塊,以及DSP的運(yùn)行主時鐘。實(shí)際上還可以提供給DSP的網(wǎng)絡(luò)模塊、PCIe等模塊。軟件設(shè)計(jì)主要包括各個模塊的初始化、數(shù)據(jù)讀寫、中斷響應(yīng)和任務(wù)控制等。DDR3的軟件設(shè)計(jì)DDR3的軟件設(shè)計(jì)包括初始化、讀/寫數(shù)據(jù)和刷新控制等。由于DDR3是依靠電容的充放電狀態(tài)來存儲信息,就需要定時刷新來維持電容的狀態(tài)。定時刷新由處理器的片內(nèi)模塊自動完成,用戶不需要參與。DDR3的初始化順序?yàn)椋号渲肈DR3的PLL,通過設(shè)置PLL寄存器中的clkr、clkf、clkmod以及bwadj位來確定DDR3的工作時鐘。延遲一段時間,等待PLL設(shè)置有效。清除RESET,使得PLL進(jìn)入工作狀態(tài),查詢PLL鎖定標(biāo)志。鎖定標(biāo)志有效,表示初始化過程結(jié)束。如果DDR3芯片及其周邊電路存在問題,PLL就會無法鎖定。這些問題可能包括:電源不穩(wěn)定、時鐘抖動大以及硬件錯誤等。SRIO的軟件設(shè)計(jì)SRIO的軟件設(shè)計(jì)包括初始化、數(shù)據(jù)讀寫和中斷響應(yīng)等。SRIO的軟件設(shè)計(jì)包括了FPGA和DSP兩個芯片,所以兩個芯片的大部分參數(shù)設(shè)置需要保持一致。此外,一旦SRIO的數(shù)據(jù)鏈路建立好后,一方不能自行單獨(dú)復(fù)位SRIO模塊,否則將出現(xiàn)雙方不能同步現(xiàn)象,SRIO數(shù)據(jù)不能正常通信。所以,一旦一方要求復(fù)位,必須通知對方。在程序中,建議在SRIO鏈路建立后,不進(jìn)行復(fù)位操作。SRIO的初始化順序?yàn)椋孩倥渲肧RIO的工作時鐘,SRIO需要從低速時鐘倍頻到高速時鐘,最低到1.25Gbps,最高支持5Gbps。一般電路板設(shè)計(jì)和制造后可以達(dá)到2.5Gbps或者3.125Gbps的時鐘速率。如果再采用4線制傳輸,傳輸數(shù)據(jù)速率可以輕松達(dá)到10Gbps或者12.5Gbps。等到SRIO時鐘設(shè)置好后,按照先使能接收器,再使能發(fā)送器的順序復(fù)位自身的模塊,如果另外一方也設(shè)置好后,會看到連接寄存器的狀態(tài)位變化,表示雙方鏈路已經(jīng)建立;如果狀態(tài)位沒有變化,則說明存在硬件或者設(shè)置上的問題。設(shè)置數(shù)據(jù)收發(fā)中斷,可以以SRIO自身中斷,也可以以GPIO觸發(fā)另外中斷的方式。3.3SRIO傳輸數(shù)據(jù)到DDR3多核DSP的程序代碼一般在DDR3中運(yùn)行,一旦SRIO也對DDR3進(jìn)行操作,就存在多個主模塊共享DDR3的問題。DDR3控制器只有一組總線與DDR3連接,一旦出現(xiàn)多個主模塊同時訪問DDR3時,必須要根據(jù)優(yōu)先級進(jìn)行總線仲裁。DDR3的訪問以頁為基礎(chǔ),一個主模塊訪問某個頁之前,必須要打開該頁。DDR3最高具有8個bank,每個bank可以打開一頁,最多同時打開8頁。但如果想同時訪問一個bank中的2頁是不可能的,只有關(guān)閉掉其中一頁,才能訪問另外卜一頁,這就存在頁切換的問題。圖3是多個主模塊訪問同一bank下的不同頁,這是切換最頻繁的情況,每次訪問都要進(jìn)行頁切換,導(dǎo)致傳輸效率大大降低。如果SRIO將數(shù)據(jù)傳輸?shù)竭@些頁,存在很大的風(fēng)險。雖然

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論