《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > HyperLink編程和性能考量

HyperLink編程和性能考量

2014-01-14
作者:馮華亮/Brighton Feng
來源:TI Communication Infrastructure
關(guān)鍵詞: 軟件 HyperLink DSP KeyStone

摘要

   HyperLink 為兩個KeyStone 架構(gòu)DSP 之間提供了一種高速,低延遲,引腳數(shù)量少的通信接口。HyperLink 的用戶手冊已經(jīng)詳細(xì)的對其進(jìn)行了描述。本文主要是為HyperLink 的編程提供了一些額外的補充信息。

   同時本文還討論了HyperLink 的性能,提供了在各種操作條件下的性能測試數(shù)據(jù)。對影響HyperLink 性能的一些參數(shù)進(jìn)行了討論。

    文章的最后附上對應(yīng)本文的應(yīng)用代碼。

1HyperLink 介紹

   HyperLink 為兩片DSP 之間提供一種高速、低延遲,引腳數(shù)少的通信連接接口。

     HyperLink 的設(shè)計速度最高速率支持12.5Gbps,目前在大部分的KeyStone DSPs 上, 由于受限于SerDes 和板級布線,速度接近為10Gbps 。HyperLink 是TI 專有的外設(shè)接口。相對于用于高速Serdes 接口的傳統(tǒng)的8b10b 編碼方式,HyperLink 減少了編碼冗余,編碼方式等效于8b9b。單片DSP 為HyperLink 提供4 個SerDes 通道,所以10Gbps 的HyperLink 理論吞吐率為10*4*(8/9)= 35.5Gbps= 4.44GB/s.

HyperLink 使用了PCIE 類似的內(nèi)存映射機(jī)制,但它為多核DSP 提供了一些更靈活的特性。本文將會使用幾個范例來詳細(xì)解釋這一點。

本文還討論了HyperLink 的性能,提供了在各種操作條件下的性能測試數(shù)據(jù)。對影響HyperLink 性能的一些因素進(jìn)行了討論。

2HyperLink 配置  

本節(jié)提供了一些配置HyperLink 模塊的補充信息。

2.1 Serdes 配置

Serdes 必須配置成期望的鏈接速度。圖1 表示了輸入?yún)⒖紩r鐘和輸出時鐘之間的關(guān)系。

輸入?yún)⒖紩r鐘建議限制在156.25MHz ~312.5MHz 范圍內(nèi)。Serdes PLL 的倍頻系數(shù)必須合理配置生成的內(nèi)部時鐘(internal  clock)限制在1.5625GHz ~ 3.125GHz 范圍內(nèi)。

最后的鏈接速度由內(nèi)部時鐘(internal clock)驅(qū)動,通過link rate 配置來得到。

2.2 HyperLink 存儲映射配置

HyperLink 的存儲映射非常的靈活。HyperLink 的用戶手冊對此作了詳細(xì)的描述。本節(jié)將用兩個例子來詳細(xì)的解釋它。圖2 是第一個例子。

圖2  通過HyperLink 窗口映射到遠(yuǎn)端不同類型的存儲空間

在這個例子里面,DSP1 的存儲空間映射到了DSP0 的存儲空間窗口0x40000000~0x50000000DSP0 可以訪問DSP1 的所有內(nèi)存空間,包括LL2,SL2,DDR,就像訪問自己的本地的存儲空間一樣。在DSP0 上,所有的Master 都可以通過以0x40000000 起始的Outbound 窗口地址來訪問DSP1 的存儲空間,但是不同master 事實上可能訪問到DSP1 上不同的存儲空間。原因是HyperLink 發(fā)送側(cè)傳輸數(shù)據(jù)時,會將PrivID 一起傳輸。接受側(cè)通過PrivID 值,可以建立不同的地址映射表

對DSP0 與DSP1 的內(nèi)存映射關(guān)系總結(jié)在下表(表1)。

 

通過上表的配置,可知

    當(dāng)DSP0 的core 0/1 訪問0x40800000,它事實上訪問了DSP1 上的LL2 地址空間。

當(dāng)DSP0 的core0 訪問0x4D000000,它事實上訪問了DSP1 上DDR 的地址空間0x8C000000

當(dāng)DSP0 的core1 訪問0x4D000000 ,它事實上訪問了DSP1 上DDR 的地址空間0x8F000000 與本文檔對應(yīng)的范例工程將HyperLink 配置成上述的內(nèi)存映射關(guān)系。下面是關(guān)鍵部分的配置代碼。

 

對于一些簡單的應(yīng)用,可能只是想訪問遠(yuǎn)程DSP 的DDR 空間,那么下面的例子用于這種情況。存儲映射關(guān)系如下圖所示。

圖3  通過HyperLink 窗口只映射到遠(yuǎn)端的DDR 空間

這是最簡單的例子,但是卻可以訪問遠(yuǎn)端DSP 的大塊存儲空間。DSP0 上的每個master(core 或者其他外設(shè)) 都可以可以訪問DSP1 上256MB DDR 空間。下表描述了core0 和core1 的對remote DSP DDR 存儲映射。

3HyperLink 性能考慮

本節(jié)將讓設(shè)計者對HyperLink 訪問遠(yuǎn)程存儲空間的性能評估有基本的認(rèn)識。同時提供了在不同的操作條件下獲得的性能測試數(shù)據(jù)。大部分測試是在最理想的測試條件進(jìn)行,以評估可以獲得的最大吞吐量。

本文所描述的絕大部分性能數(shù)據(jù)是在C6670EVM 上獲得。C6670 EVM 上DDR 配置成64bit 位寬1333M,HyperLink 速率配置成10Gbit。

一些影響HyperLink 訪問性能的因素在本節(jié)中將會被討論到。

3.1 通過HyperLink 實現(xiàn)存儲拷貝的性能

下表(表3)描述了使用HyperLink 在LL2 與遠(yuǎn)程大塊線性存儲空間進(jìn)行數(shù)據(jù)傳送測試獲得的傳輸帶寬。傳輸塊的大小為64KB。帶寬的計算是通過計算傳輸總的字節(jié)數(shù)除以傳輸所用的時間獲得。

上述數(shù)據(jù)展示了cache 能夠極大的改善DSP 內(nèi)核通過HyperLink 讀取數(shù)據(jù)的性能。

但是L2 cache 卻遏制了通過HyperLink 寫數(shù)據(jù)的性能,這是因為L2 是write-allocate cache。對于使能L2cache 后的寫操作,它總是會先從將要寫入的存儲區(qū)讀取128 字節(jié)的數(shù)據(jù)到L2cache ,然后在L2 cache 中修改數(shù)據(jù),最后在cache 沖突的時候回寫回到原先的存儲區(qū),或者人為的回寫回原存儲區(qū)。

上述EDMA 吞吐率數(shù)據(jù)是通過TC0 (傳輸控制器0)和CC0(通道控制器0)上測試得到,其他TCs的數(shù)據(jù)會比TC0 稍低。整個傳輸?shù)钠款i是在HyperLink,不是在EDMA 傳輸控制器上。

上述測試結(jié)果表明通過HyperLink 進(jìn)行寫操作的性能會比通過HyperLink 進(jìn)行讀操作的性能要好。

遠(yuǎn)程DSP 存儲空間類型不會對帶寬造成明顯的影響。訪問遠(yuǎn)程DSP 的SL2 會比LL2 快一些。

目前,通過HyperLink 來訪問遠(yuǎn)程DSP 存儲空間(相對其他接口)是具有最高的帶寬性能的,但是訪問遠(yuǎn)程存儲空間比訪問本地存儲空間還是要慢。下表對比了訪問本地LL2 和DDR 與遠(yuǎn)程DDR 的吞吐性能。

大體來說,對本地存儲空間的寫入吞吐率是對遠(yuǎn)程空間進(jìn)行寫入操作的吞吐率的3 倍。對遠(yuǎn)程空間的讀性能會更差些。我們應(yīng)該盡量避免遠(yuǎn)程讀取數(shù)據(jù)。

3.2 DSP core 通過HyperLink 進(jìn)行遠(yuǎn)程訪問的延遲

DSP 核通過HyperLink 訪問遠(yuǎn)程空間的性能高度依賴于cache。當(dāng)DSP 內(nèi)核通過HyperLink 來訪問遠(yuǎn)程存儲空間的時候,一個TR(傳輸請求)可能會被生成并傳送給XMC(這取決于數(shù)據(jù)是否可以進(jìn)入cache 和被預(yù)取)。TR 將會是下面中的一種。

.      一個單一的元素- 如果存儲空間不能被cache 和預(yù)存取。

.      一個L1 cache line – 如果存儲空間可以進(jìn)入cache ,但是L2 cache 沒有被使能。

.      一個L2 cache line -如果存儲空間可以進(jìn)入cache,同時L2 cache 被使能.

.      如果存儲空間可以被預(yù)存取, 預(yù)存取將會被使能為一個預(yù)存取的buffer slot.

如果L1/L2cache 或者預(yù)存取命中,Hyperlink 端口不會有數(shù)據(jù)傳輸

遠(yuǎn)程空間數(shù)據(jù)可以被本地L1 cache/L2 cache 緩存,或者都沒有被cache。如果對應(yīng)存儲空間的MAR(Memory Attribute Register) 寄存器上的PC(Permit  copy)位沒有被置位,那么對應(yīng)存儲區(qū)的數(shù)據(jù)將不會進(jìn)入cache。

如果MAR 寄存器上PC 位被置位,同時L2 的cache 空間是0(L2 被全部配置成SRAM),那么外部存儲空間的數(shù)據(jù)可以進(jìn)入L1cache。

如果MAR 寄存器上PC 位被置位,L2 的Cache 空間大于0.那么外部存儲空間的數(shù)據(jù)就可以進(jìn)入L1cache 和L2cache。

讀取遠(yuǎn)程存儲空間數(shù)據(jù)也可以使用XMC 中的prefetch buffer。該特性可以在MAR 寄存器PFX(PreFetchable eXternally)被置位后使能。

地址步進(jìn)長度也會影響Cache 和Prefetch buffer 的使用效果。連續(xù)空間的訪問可以最充分的利用cache 和prefetch buffer,從而達(dá)到更好的性能。

以64bytes 距離或者更大間隔進(jìn)行步進(jìn)訪問將會導(dǎo)致每次L1 cache 命中失敗(miss),這是因為L1 cache line 的大小是64byte。

以128bytes 距離或者更大間隔進(jìn)行步進(jìn)訪問將會導(dǎo)致每次L2 cache 命中失敗(miss)。

如果cache miss 發(fā)生,那么DSP 核就會被stall(等待數(shù)據(jù))。Stall 的時間長度等于傳輸延遲、傳輸間隔,數(shù)據(jù)返回時間,cache 請求延遲的總和。

下面的章節(jié)描述DSP 內(nèi)核通過HyperLink 訪問存儲區(qū)的延遲。測試偽代碼如下列所示。

下圖(圖4)為1GHz C6670EVM 上配置DDR 64bit 1333M 測試獲得的結(jié)果。通過HyperLink 實現(xiàn)512 次LDDW(load double word) 或者STDW( store double word)操作的性能測試。圖4 繪制了各種測試條件下的性能。LDB/STB 和LDW/STW 和LDDW/STDW 的指令周期數(shù)相同。雖然cache 和prefetch buffer 可以被獨立配置,但是測試的時候使用的配置是:如果cache 被使能,那么prefetch 也被使能,如果cache 沒有被使能,那么prefetch 也沒有被使能。

Non-cachable 寫是post 操作。所以它只會stall DSP core 很短的一段時間。

但是read 是non-post 的,所以DSP 內(nèi)核會等待數(shù)據(jù)的到來,所以它會stall DSP 內(nèi)核相對長一點時間。

當(dāng)cache 被使能后,DSP core 訪問remote 空間的吞吐性能高度依賴于cache。

地址的步進(jìn)間隔也會影響到cache 的使用。連續(xù)的地址訪問可以充分的利用cache。但是地址的步進(jìn)間隔超過case line 的大小(L1 case line =64Byte,L2 Case line =128Byte)將會導(dǎo)致每次cache 都無法命中,從而制約了性能。所以,對連續(xù)地址空間的數(shù)據(jù)訪問(像大塊數(shù)據(jù)拷貝),cache 需要被使能,在其他情況下cache 應(yīng)當(dāng)不要使能。

通過上面的圖可以發(fā)現(xiàn)通過HyperLink 訪問DDR,SL2,LL2 在性能上并沒有明顯的差異。所以,正常情況下,通過HyperLink 來共享DDR 是一個很好的選擇,因為DDR 容量大,而且成本低。

3.3 HyperLink 傳輸使用DMA 方式的開銷(overhead

初始延遲被定義為EMDA 事件觸發(fā)到真實數(shù)據(jù)之間的傳輸開始之間的延遲。因為初始延遲很難被測量。所以我們就測試傳輸?shù)拈_銷,它被定義為傳輸最小單元數(shù)據(jù)的延遲。延遲的大小取決于源和目標(biāo)端的類型。下表描述了使用EDMA 在1GHz  TCI6618EVM 不同端口間傳輸一個字(word)時,從EDMA 觸發(fā)(寫ESR)到EDMA 傳輸結(jié)束(讀IPR=1)的平均指令數(shù)目。

表6 中,讀Hyperlink 的延遲是853 個指令周期,寫Hyperlink 的延遲是322 指令周期,因為寫是post 操作,而讀是non-post 操作。所以從HyperLink 端口讀取數(shù)據(jù)的延遲要高于寫入數(shù)據(jù)到HyperLink。

對于小批量數(shù)據(jù)傳送,傳輸開銷(overhead)是很大的顧慮,尤其是系統(tǒng)中隊列DMA 阻塞的時候。單一元素的傳送性能較差,延遲會占用大部分時間。所以,對于小批量數(shù)據(jù)傳送,必須對使用EMDA 方式還是DSP 核方式來訪問數(shù)據(jù)進(jìn)行權(quán)衡。使用內(nèi)核來訪問單個隨機(jī)數(shù)據(jù)的延遲會比DMA 方式延遲小很多。本文3.2 節(jié)已經(jīng)做了詳細(xì)的描述。

3.4 HyperLink 中斷延遲

一個DSP 可以通過HyperLink 來觸發(fā)另外一個DSP 的中斷。通過HyperLink 傳遞中斷的延遲通過下列的偽代碼獲得測量。

測試是在Loopback 模式下測試。

1GHz C6670 的測試結(jié)果是大概710 個DSP core cycles。

4、范例工程

本文的范例代碼在C6670EVM 上通過測試。EVM 板子上有兩個C6670 DSP,他們通過HyperLink 互聯(lián)。

在這個例子中,DSP1 存儲空間通過HyperLink 被映射到了DSP0 上。DSP0 通過HyperLink 窗口訪問DSP1 的存儲空間就像訪問自己的本地空間一樣。這個工程范例也支持loopback 模式。在loopback 模式下,DSP0 事實上是通過自己的HyperLink 窗口訪問了自己的本地地址空間。

本例也演示了通過HyperLink 來實現(xiàn)中斷傳遞。

工程代碼的目錄結(jié)構(gòu)如下圖所示。

  圖  7  工程代碼目錄樹

該示例代碼同樣可以在其他KeyStone DSP EVM 板上運行。只是如果板子上只有一個DSP 芯片,那么只能運行l(wèi)oopback 模式。

下表列出了KeyStone 工程的關(guān)鍵代碼列表。

運行這個范例工程的步驟:

1. 連通CCS 與DSP EVM.

2. 下載代碼到core 0 of DSP0.

3. 下載代碼到core 0 of DSP1.

4. 先運行DSP1 , 然后運行DSP0. (如果EVM 上只有一個DSP,且運行在loopback 模式下,那么直接下載到DSP0,再運行)

5. 檢測每個DSP 的stdout 窗口,驗證測試結(jié)果。

典型的輸出信息如下:

用戶可以在HyperLink_Test.c 中的HyperLink_config()函數(shù)中修改初始化值,然后重新編譯來驗證在不同配置下的HyperLink 性能。

這個例子是在CCS5.1 下編譯,使用pdk_c6618_1_0_0_5。如果在你的電腦上進(jìn)行重新編譯新的配置,你可能需要修改csl 包含路徑。

參考資料

1. KeyStone Architecture HyperLink User Guide (SPRUGW8)

2. TMS320C6670 datasheet (SPRS689)

 

 

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品在线一区二区| 一区二区三区视频在线播放| 欧美日韩一区免费| 欧美国产日韩一区| 欧美成人精品一区二区| 可以看av的网站久久看| 久久精品一区二区| 欧美在线观看www| 欧美一区二区三区视频在线| 亚洲影院免费| 亚洲免费人成在线视频观看| 亚洲一区www| 亚洲一区二区精品视频| 亚洲先锋成人| 亚洲视频在线一区观看| 亚洲一区二区三区激情| 亚洲一区精品电影| 亚洲欧美一区二区视频| 小处雏高清一区二区三区| 亚洲欧美在线x视频| 羞羞答答国产精品www一本| 欧美一区二区免费观在线| 欧美在线观看一区| 久久精品青青大伊人av| 久久久免费精品视频| 另类天堂视频在线观看| 欧美高潮视频| 欧美日韩一区二区在线| 国产精品国产a| 国产欧美日韩| 樱桃国产成人精品视频| 亚洲第一精品福利| 亚洲欧洲一区二区天堂久久| 99国产精品久久| 亚洲自拍16p| 久久精品亚洲一区二区三区浴池 | 亚洲美女中文字幕| 亚洲视频香蕉人妖| 欧美一级日韩一级| 久久日韩精品| 欧美另类视频在线| 国产精品系列在线播放| 国内久久婷婷综合| 亚洲欧洲在线免费| 亚洲男人av电影| 亚洲国产精品va| 一区二区日韩精品| 久久精品国产精品亚洲精品| 欧美成人精品h版在线观看| 欧美三级第一页| 国产综合久久| 亚洲理伦电影| 午夜精品视频网站| 亚洲人成久久| 亚洲自拍偷拍视频| 美女日韩在线中文字幕| 欧美日韩在线不卡一区| 国产日韩欧美在线播放| 亚洲精品美女在线| 亚洲欧美日韩精品久久亚洲区 | 狠狠色噜噜狠狠狠狠色吗综合| 亚洲国产日韩欧美在线99| 亚洲午夜在线观看| 亚洲国产高清一区| 亚洲欧美在线视频观看| 男女激情久久| 国产女优一区| 亚洲三级影院| 欧美在线观看你懂的| 亚洲视频在线看| 免费观看久久久4p| 国产精品一区二区女厕厕| 亚洲日本欧美| 亚洲丶国产丶欧美一区二区三区| 亚洲天堂免费在线观看视频| 久久久噜噜噜久久中文字幕色伊伊| 欧美日韩一卡二卡| 国产视频综合在线| 99国产精品久久久久久久久久 | 亚洲国产成人午夜在线一区 | 欧美国产精品va在线观看| 国产日产欧产精品推荐色| 亚洲精品影院在线观看| 欧美在线视频播放| 午夜激情久久久| 欧美久久久久久久久| 国产主播一区二区| 亚洲在线视频| 中国亚洲黄色| 欧美大片一区二区三区| 国内精品久久久久久久97牛牛| 在线视频欧美日韩| 日韩视频一区二区三区| 久久中文字幕导航| 国产亚洲欧美另类中文| 在线亚洲自拍| 一本色道久久综合亚洲精品婷婷| 另类av一区二区| 国产一区在线免费观看| 亚洲免费在线观看视频| 中文在线不卡视频| 欧美日韩1区2区| 亚洲激情中文1区| 亚洲国产视频直播| 久久久久久久一区二区三区| 国产伦精品一区二区三区| 亚洲午夜av| 亚洲一区精品视频| 欧美日韩综合在线免费观看| 亚洲日韩欧美视频| 亚洲美女一区| 欧美成人福利视频| 激情自拍一区| 亚洲第一区在线观看| 久久理论片午夜琪琪电影网| 国产亚洲一区二区三区在线播放 | 亚洲视屏在线播放| 欧美日韩精品欧美日韩精品| 亚洲欧洲一区二区三区| 亚洲日本欧美| 欧美高清视频一区二区三区在线观看| 在线不卡欧美| 亚洲激情视频网站| 欧美 日韩 国产一区二区在线视频| 黄色成人精品网站| 久久精品欧美日韩精品| 久久亚洲影音av资源网| 激情国产一区二区| 久久精品91| 蜜臀av一级做a爰片久久| 亚洲国产二区| 亚洲美女视频网| 欧美日韩免费在线观看| 一区二区三区视频在线观看| 亚洲女女女同性video| 国产精品人人做人人爽| 亚洲综合色丁香婷婷六月图片| 欧美一二区视频| 国内精品免费在线观看| 亚洲国产婷婷| 欧美激情黄色片| 一区二区精品国产| 午夜一区二区三区在线观看| 国产精品中文字幕在线观看| 欧美亚洲在线播放| 久久久久久69| 亚洲电影免费在线| 一区二区三区欧美亚洲| 国产精品乱码| 欧美一级专区| 欧美~级网站不卡| 99精品99| 欧美一区在线直播| 狠狠色综合播放一区二区| 亚洲精品一区二区在线| 欧美天天在线| 欧美一站二站| 欧美激情一区二区三级高清视频| 一本一道久久综合狠狠老精东影业| 午夜视频久久久| 红桃视频一区| 中文一区二区| 国产一区二区成人| 99re成人精品视频| 国产日产高清欧美一区二区三区| 亚洲国产日韩在线一区模特| 欧美日韩精品系列| 亚洲欧美日韩在线观看a三区| 久久伊人精品天天| 亚洲美女诱惑| 久久国内精品视频| 亚洲日本视频| 久久精品国产99| 亚洲精品欧美日韩专区| 欧美一二三视频| 亚洲七七久久综合桃花剧情介绍| 性欧美超级视频| 91久久国产自产拍夜夜嗨| 午夜精品福利视频| 亚洲国产成人午夜在线一区| 午夜精品福利视频| 最新日韩av| 久久精品亚洲一区| 亚洲精品欧洲| 久久免费视频在线观看| 宅男精品视频| 免费视频一区| 亚洲欧美第一页| 欧美日韩国产一级| 久久高清免费观看| 欧美私人啪啪vps| 91久久精品www人人做人人爽| 国产精品一区二区黑丝| 亚洲精品一区久久久久久| 国产婷婷色一区二区三区在线| 一区二区电影免费观看| 极品av少妇一区二区| 午夜精彩视频在线观看不卡 | 亚洲精品专区| 久久夜色精品国产亚洲aⅴ |