999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

多核DSP和FPGA之間的高速SRIO通信

2017-04-19 10:17:57汪安民韓道文徐焱
關(guān)鍵詞:程序設(shè)置

汪安民,韓道文,徐焱

(1.同方電子科技有限公司研究所,九江 332009;2.電子工程學(xué)院;3.哈爾濱工業(yè)大學(xué))

多核DSP和FPGA之間的高速SRIO通信

汪安民1,韓道文2,徐焱3

(1.同方電子科技有限公司研究所,九江 332009;2.電子工程學(xué)院;3.哈爾濱工業(yè)大學(xué))

在高速采樣系統(tǒng)中,大量數(shù)據(jù)需要實(shí)時(shí)傳輸?shù)教幚砥鳌S绕涫窍到y(tǒng)中存在多個(gè)處理器協(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í)際硬件平臺(tái)驗(yàn)證,SRIO傳輸速率達(dá)到4 Gbps。

多核處理器;SRIO;共享RAM

引 言

大規(guī)模集成電路的高速發(fā)展,使得處理器的能力越來越強(qiáng),進(jìn)而處理的事件增多;大數(shù)據(jù)的應(yīng)用,使得高速寬帶采樣成為必然,高速采樣每秒采集到的信息量遠(yuǎn)遠(yuǎn)大于低速采樣。高速采集、高速存儲(chǔ)和高速處理成為發(fā)展的必然。這其中,高速傳輸通道是芯片間的數(shù)據(jù)橋梁,一般要求10 Gbps以上的處理速度,實(shí)時(shí)傳輸至少要達(dá)到幾Gbps。在設(shè)備之間,采用萬兆網(wǎng)、USB3.0、光纖通信等;在板間,采用PCIe、VPX等;而在芯片間,采用SRIO(也稱RapidIO)總線是常用方法。

多核處理器片內(nèi)集成多個(gè)處理器,目前得到大規(guī)模使用;同時(shí)多核處理器的強(qiáng)處理能力,也豐富了產(chǎn)品的功能。為了支撐功能使用,一般多核處理器都會(huì)配置大容量DDR2或DDR3,運(yùn)行程序和存儲(chǔ)數(shù)據(jù),還配置共享RAM空間用于多個(gè)核之間的通信,每個(gè)核還有自己的私有RAM。一旦其他芯片和多核處理器進(jìn)行數(shù)據(jù)交互,可能會(huì)和這3個(gè)RAM空間進(jìn)行高速通信。傳統(tǒng)的單處理器交換一定需要CPU參與,CPU讀取數(shù)據(jù),然后存儲(chǔ)到芯片的DDR、片內(nèi)RAM或者片外Flash空間。但這樣,每個(gè)數(shù)據(jù)交互都需要CPU參與,嚴(yán)重影響了運(yùn)行效益。而多核處理器,數(shù)據(jù)交互遠(yuǎn)比單核處理器頻繁,而且要求交互速率也非常高,這就需要數(shù)據(jù)總線直接進(jìn)行交互,而不用CPU參與[2]。

本文以8核DSP芯片TMS320C6678(以下簡(jiǎn)稱C6678)和xck7325t芯片為例,通過4線SRIO實(shí)現(xiàn)FPGA將數(shù)據(jù)直接傳輸?shù)紻SP的DDR3、共享片內(nèi)RAM的方法。筆者給出了軟硬件設(shè)計(jì)方法,研究了硬件平臺(tái),實(shí)際數(shù)據(jù)傳輸驗(yàn)證,該方法可以實(shí)現(xiàn)4 Gbps的高速傳輸。

1 多核DSP的RAM結(jié)構(gòu)

C6678是TI公司多核處理器中的一款8核浮點(diǎn)型DSP,最高工作頻率達(dá)到1.25 GHz,單個(gè)核具備40 GMAC定點(diǎn)計(jì)算或20 GFLOP浮點(diǎn)計(jì)算能力,單芯片具備320 GMAC或160 GFLOP的計(jì)算能力[3]。C6678的部分片內(nèi)結(jié)構(gòu)如圖1所示。

圖1 C6678內(nèi)部結(jié)構(gòu)圖

圖1主要列出了C6678和RAM相關(guān)的片內(nèi)模塊,其他部分未列出。從圖中可以看出,一個(gè)超高速的TeraNet(兆兆網(wǎng)絡(luò))總線將大部分模塊連接在一起,數(shù)據(jù)通過TeraNet總線進(jìn)行交互。核訪問共享RAM(圖中的MSM SRAM)的速度最快,它們之間不通過TeraNet,而是有專用的數(shù)據(jù)總線,不會(huì)和其他外設(shè)產(chǎn)生沖突,核訪問共享RAM的速率大概在50 Gbps。核訪問DDR3的速度僅次于共享RAM,因?yàn)镈DR3的數(shù)據(jù)需要通過共享RAM過渡,其讀寫訪問速度有所差別,讀速率至少可以達(dá)到10 Gbps,寫速率可以達(dá)到20 Gbps。核訪問其他片內(nèi)和片外設(shè)備都要經(jīng)過TeraNet,可能存在總線仲裁,但這些外設(shè)一般不會(huì)長(zhǎng)時(shí)間占據(jù)TeraNet總線。

本文關(guān)注的SRIO是直接掛在TeraNet總線上的,而C6678的DDR3控制器、共享RAM、512 KB的二級(jí)Cache都是連接在TeraNet總線上,所以,SRIO可以直接和這3個(gè)RAM進(jìn)行通信,但需要一定的時(shí)序控制,否則會(huì)造成RAM的互鎖,增大仲裁開銷,甚至程序死機(jī)。具體表現(xiàn)在:

① 和DDR3進(jìn)行通信。因?yàn)镈DR3一般會(huì)運(yùn)行主核程序,尤其是需要使用網(wǎng)絡(luò)接口,TI提供的NDK程序代碼很大,必須在DDR3中運(yùn)行。這樣程序運(yùn)行的DDR3地址,SRIO不能盲目進(jìn)行讀寫,尤其是寫操作,此外如果SRIO和程序需要同時(shí)讀某一地址,就會(huì)造成總線沖突。

② 和共享RAM進(jìn)行通信。共享RAM是用于多個(gè)核之間的數(shù)據(jù)交互,幾個(gè)核對(duì)共享RAM的某個(gè)地址進(jìn)行操作,一定需要一個(gè)控制權(quán)搶占,誰搶占到控制權(quán)誰就可以操作,其他核只能等待,這樣就避免了多個(gè)核同時(shí)訪問共享RAM的問題。如果SRIO對(duì)共享RAM進(jìn)行操作,一定需要將SRIO加入核之間的控制權(quán)搶占以及釋放。

③ 和每個(gè)核私有RAM進(jìn)行通信。理論上,SRIO可以和每個(gè)核的L1數(shù)據(jù)空間、L1程序空間、L2空間進(jìn)行通信。但一般程序會(huì)將L1的全部數(shù)據(jù)和程序空間、L2的部分空間定義為Cache,用于存儲(chǔ)程序運(yùn)行的中間結(jié)果,例如局部變量。程序在調(diào)試過程中的打印輸出等也需要較大的堆棧來處理,這些堆棧空間都在私有RAM中由SYS/BIOS自動(dòng)開辟。如果SRIO將數(shù)據(jù)寫入到這些空間,將很可能造成地址的同時(shí)讀寫,所以建議SRIO不對(duì)這些空間進(jìn)行操作。

2 SRIO的硬件連接

FPGA和DSP的SRIO硬件連接如圖2所示。SRIO總線由收發(fā)各4對(duì)差分線(一共16根線)組成。DSP的RIORXp0~3為4根收數(shù)據(jù)的正端,RIORXn0~3為一一對(duì)應(yīng)的4根收數(shù)據(jù)的負(fù)端,它們和FPGA相應(yīng)的8根發(fā)數(shù)據(jù)連接,形成一個(gè)FPGA發(fā)、DSP收的回路。另外8根線形成一個(gè)DSP發(fā)、FPGA收的回路。所以,在物理層,SRIO的收發(fā)是完全獨(dú)立的,可以做到收發(fā)全雙工。為了提高SRIO傳輸可靠性,在靠近收方的總線上,需要采用隔離電容,將信號(hào)直流隔掉,使得差分信號(hào)更加可靠。SRIO的時(shí)鐘由各自的處理器單獨(dú)設(shè)置,不要求DSP和FPGA共用SRIO時(shí)鐘。SRIO的傳輸時(shí)鐘是疊加在傳輸數(shù)據(jù)上的,由SRIO處理器從數(shù)據(jù)總線提取出時(shí)鐘信號(hào),用于數(shù)據(jù)位的對(duì)齊。這些處理工作,均由各自芯片的SRIO模塊完成,不需要用戶設(shè)置[4]。

圖2 硬件連接圖

圖2中,DSP外掛了5片DDR3,每片DDR3為16位數(shù)據(jù)寬度,4片組成64位數(shù)據(jù)寬度,直接連接到DSP。第5片連接到DSP的數(shù)據(jù)校驗(yàn)位,每個(gè)64位的數(shù)據(jù)通過BCH編碼生成一個(gè)8位的校驗(yàn)碼同時(shí)存放到第5片DDR3中,DSP讀取DDR3數(shù)據(jù)時(shí),也同時(shí)把這個(gè)校驗(yàn)碼讀出,進(jìn)行BCH譯碼。如果譯碼正確,則表示數(shù)據(jù)可靠,否則會(huì)嘗試重讀或多次失敗后丟棄數(shù)據(jù)。此外BCH碼具有一定的數(shù)據(jù)糾錯(cuò)能力,也可以提高DDR3數(shù)據(jù)的讀寫可靠性。經(jīng)過實(shí)際驗(yàn)證,由DSP直接讀速度達(dá)到10 Gbps,寫速度達(dá)到20 Gbps。

由于DSP有多個(gè)外設(shè),這些外設(shè)需要一個(gè)基準(zhǔn)時(shí)鐘,這樣就方便時(shí)序和同步控制,圖中采用CDCM62005對(duì)輸入的125 MHz時(shí)鐘進(jìn)行分頻,輸出多路CLK信號(hào),分別提供到SRIO、DDD3模塊,以及DSP的運(yùn)行主時(shí)鐘。實(shí)際上還可以提供給DSP的網(wǎng)絡(luò)模塊、PCIe等模塊。

3 軟件設(shè)計(jì)

軟件設(shè)計(jì)主要包括各個(gè)模塊的初始化、數(shù)據(jù)讀寫、中斷響應(yīng)和任務(wù)控制等。

3.1 DDR3的軟件設(shè)計(jì)

DDR3的軟件設(shè)計(jì)包括初始化、讀/寫數(shù)據(jù)和刷新控制等。由于DDR3是依靠電容的充放電狀態(tài)來存儲(chǔ)信息,就需要定時(shí)刷新來維持電容的狀態(tài)。定時(shí)刷新由處理器的片內(nèi)模塊自動(dòng)完成,用戶不需要參與。DDR3的初始化順序?yàn)椋?/p>

① 配置DDR3的PLL,通過設(shè)置PLL寄存器中的clkr、clkf、clkmod以及bwadj位來確定DDR3的工作時(shí)鐘。

② 延遲一段時(shí)間,等待PLL設(shè)置有效。

③ 清除RESET,使得PLL進(jìn)入工作狀態(tài),查詢PLL鎖定標(biāo)志。鎖定標(biāo)志有效,表示初始化過程結(jié)束。如果DDR3芯片及其周邊電路存在問題,PLL就會(huì)無法鎖定。這些問題可能包括:電源不穩(wěn)定、時(shí)鐘抖動(dòng)大以及硬件錯(cuò)誤等。

3.2 SRIO的軟件設(shè)計(jì)

SRIO的軟件設(shè)計(jì)包括初始化、數(shù)據(jù)讀寫和中斷響應(yīng)等。SRIO的軟件設(shè)計(jì)包括了FPGA和DSP兩個(gè)芯片,所以兩個(gè)芯片的大部分參數(shù)設(shè)置需要保持一致。此外,一旦SRIO的數(shù)據(jù)鏈路建立好后,一方不能自行單獨(dú)復(fù)位SRIO模塊,否則將出現(xiàn)雙方不能同步現(xiàn)象,SRIO數(shù)據(jù)不能正常通信。所以,一旦一方要求復(fù)位,必須通知對(duì)方。在程序中,建議在SRIO鏈路建立后,不進(jìn)行復(fù)位操作。SRIO的初始化順序?yàn)椋?/p>

① 配置SRIO的工作時(shí)鐘,SRIO需要從低速時(shí)鐘倍頻到高速時(shí)鐘,最低到1.25 Gbps,最高支持5 Gbps。一般電路板設(shè)計(jì)和制造后可以達(dá)到2.5 Gbps或者3.125 Gbps的時(shí)鐘速率。如果再采用4線制傳輸,傳輸數(shù)據(jù)速率可以輕松達(dá)到10 Gbps或者12.5 Gbps。

② 等到SRIO時(shí)鐘設(shè)置好后,按照先使能接收器,再使能發(fā)送器的順序復(fù)位自身的模塊,如果另外一方也設(shè)置好后,會(huì)看到連接寄存器的狀態(tài)位變化,表示雙方鏈路已經(jīng)建立;如果狀態(tài)位沒有變化,則說明存在硬件或者設(shè)置上的問題。

③ 設(shè)置數(shù)據(jù)收發(fā)中斷,可以以SRIO自身中斷,也可以以GPIO觸發(fā)另外中斷的方式。

3.3 SRIO傳輸數(shù)據(jù)到DDR3

多核DSP的程序代碼一般在DDR3中運(yùn)行,一旦SRIO也對(duì)DDR3進(jìn)行操作,就存在多個(gè)主模塊共享DDR3的問題。DDR3控制器只有一組總線與DDR3連接,一旦出現(xiàn)多個(gè)主模塊同時(shí)訪問DDR3時(shí),必須要根據(jù)優(yōu)先級(jí)進(jìn)行總線仲裁。DDR3的訪問以頁(yè)為基礎(chǔ),一個(gè)主模塊訪問某個(gè)頁(yè)之前,必須要打開該頁(yè)。DDR3最高具有8個(gè)bank,每個(gè)bank可以打開一頁(yè),最多同時(shí)打開8頁(yè)。但如果想同時(shí)訪問一個(gè)bank中的2頁(yè)是不可能的,只有關(guān)閉掉其中一頁(yè),才能訪問另外一頁(yè),這就存在頁(yè)切換的問題。

圖3是多個(gè)主模塊訪問同一bank下的不同頁(yè),這是切換最頻繁的情況,每次訪問都要進(jìn)行頁(yè)切換,導(dǎo)致傳輸效率大大降低。如果SRIO將數(shù)據(jù)傳輸?shù)竭@些頁(yè),存在很大的風(fēng)險(xiǎn)。雖然DDR3控制器可以進(jìn)行總線仲裁,但對(duì)于SRIO的傳輸端FPGA,不清楚總線是否被占用,仍然傳輸數(shù)據(jù),將會(huì)導(dǎo)致數(shù)據(jù)丟失,所以不建議SRIO用這種情況訪問DDR3。

圖3 多個(gè)模塊訪問同一bank的頁(yè)

圖4是多個(gè)主模塊訪問不同bank不同頁(yè)的情況,這是最簡(jiǎn)單的情況,因?yàn)槊總€(gè)主模塊訪問的bank和頁(yè)均不同,所以不存在任何頁(yè)切換情況,總線傳輸很快。但圖中的空白頁(yè)將無法訪問,一旦訪問,將回到圖3所示的情況,導(dǎo)致大量DDR3空間不能使用,所以不建議SRIO用這種情況訪問DDR3。

圖4 多個(gè)模塊訪問不同bank的不同頁(yè)

圖5是圖4的簡(jiǎn)化訪問方式,這種方式只存在

High-speed Communication Between Multicore DSP and FGPA Based on SRIO

Wang Anmin1,Han Daowen2,Xu Yan3

(1.Research of Tongfang Science and Technology Ltd.,Jiujiang 332009,China;2.Electronic Engineering Institute 3.Harbin Institute of Techonlogy)

High speed data communication between the different processors is needed in the high sampling system.The SRIO bus is used widely because it’s high efficiency and low latency.In this paper,the design method of SRIO bus between FPGA and DSP is studied.The data translation is realized from FPGA to DDR3,shared RAM or private RAM of DSP.In this paper,the hardware system is developed,and the operation method of the software and the verification of the actual hardware platform are given.The result of data throughput is up to 4 Gbps by the SRIO bus in the real system.

multicore processor;SRIO;shared RAM

TP336

A

猜你喜歡
程序設(shè)置
中隊(duì)崗位該如何設(shè)置
試論我國(guó)未決羈押程序的立法完善
7招教你手動(dòng)設(shè)置參數(shù)
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
艦船人員編制的設(shè)置與控制
主站蜘蛛池模板: 国产91成人| 九色91在线视频| 亚洲国产天堂久久综合226114| 91国内外精品自在线播放| 全免费a级毛片免费看不卡| 毛片免费观看视频| 国产精品私拍99pans大尺度| 日韩激情成人| 丰满的熟女一区二区三区l| 亚洲床戏一区| 国产成年无码AⅤ片在线| 污视频日本| 天堂成人在线视频| 欧美亚洲一区二区三区在线| 露脸真实国语乱在线观看| 国产极品美女在线播放| 丁香五月激情图片| 99热这里只有精品免费| 青青久久91| 国产亚洲精品自在久久不卡| 日韩欧美中文亚洲高清在线| 国产精品视频久| 日韩 欧美 国产 精品 综合| 国产精品第一区| 久久精品娱乐亚洲领先| 免费观看欧美性一级| 国产高清色视频免费看的网址| 亚洲综合激情另类专区| 午夜不卡福利| 国产欧美日韩另类| 国产亚洲精品无码专| 波多野结衣视频一区二区 | 亚洲不卡无码av中文字幕| 欧美激情一区二区三区成人| 福利在线一区| 国产真实乱子伦精品视手机观看| 欧美专区在线观看| 免费jjzz在在线播放国产| 亚洲色图欧美在线| 永久免费精品视频| 亚洲侵犯无码网址在线观看| 亚洲福利视频网址| 久久精品嫩草研究院| 91久久国产综合精品女同我| 亚洲色无码专线精品观看| 国产玖玖视频| 国产精品网曝门免费视频| 六月婷婷综合| 精品视频在线一区| 亚洲 欧美 中文 AⅤ在线视频| 在线观看精品自拍视频| 欧美色99| 中文字幕人成乱码熟女免费| 一级毛片免费不卡在线| 国产一在线观看| 伊人久久精品无码麻豆精品| 人妻无码中文字幕第一区| 国产丰满大乳无码免费播放| 呦女精品网站| 萌白酱国产一区二区| aaa国产一级毛片| 欧美一区二区三区欧美日韩亚洲| 欧美在线精品怡红院| 青青草原国产| 亚洲国产理论片在线播放| 99精品国产高清一区二区| 亚洲69视频| 中文字幕在线欧美| 国产免费高清无需播放器| 欧美性久久久久| 午夜视频www| 亚洲日本在线免费观看| 亚洲欧美日韩另类在线一| 91福利在线观看视频| 一级看片免费视频| 女人18毛片一级毛片在线 | 亚洲美女高潮久久久久久久| 九色视频线上播放| 多人乱p欧美在线观看| 日本欧美中文字幕精品亚洲| 亚洲精品视频在线观看视频| 久久久久青草大香线综合精品|