使用系統(tǒng)總線性能計(jì)數(shù)器來測量和改善嵌入式系統(tǒng)的
第2步 使用指標(biāo)寄存器
對于這些情況,外部存儲器延遲通常是吞吐率低的原因。我們將首先考察DDR讀/寫訪問總數(shù)和離頁DDR訪問總數(shù)。
從圖1可以看出,計(jì)數(shù)寄存器的讀取和寫入訪問表明,訪問只針對一個組(組0),頁激活數(shù)占訪問總數(shù)的25%。這意味著,由于緩存影射到組0的不同頁,DMA訪問在同一組中的空間位置很小。由于源緩存和目標(biāo)緩存在不同的頁上,每次DMA訪問均存在一次離頁訪問。
第3步 提高性能
把緩存放在不同的DDR組中可減少離頁訪問。如果把緩存放在不同的組中,則僅當(dāng)某個通道穿越頁邊界時才會發(fā)生離頁訪問。Blackfin BF54x的DDR控制器支持最多同時打開8個內(nèi)部DDR組,因此可以把四個緩存分別映射到不同的組。
2 示例2
在上面的例1中,只有很少的資源(兩個MDMA通道)訪問單個DDR存儲器組,系統(tǒng)行為在一段時間內(nèi)不變。因此,可通過提取指標(biāo)寄存器的快照來理解系統(tǒng)總線的活動并捕捉空間位置。在更為實(shí)際的系統(tǒng)中,可能有多個資源(內(nèi)核、多個DMA通道)訪問多個DDR存儲器組和系統(tǒng)總線,致使在較小的時間區(qū)間內(nèi)DDR數(shù)據(jù)訪問模式迅速變化。在這些情況下,難以僅僅利用指標(biāo)寄存器的一個快照來捕捉空間位置和系統(tǒng)行為。因此,必須捕捉在應(yīng)用執(zhí)行過程中在多個點(diǎn)的總線活動情況來探索空間位置。
為了說明這一點(diǎn),考慮這樣一個情況,總線在時間區(qū)間T的活動表明,對所有組的訪問是均衡的,但離頁訪問比例較高,但在較小時間區(qū)間(T1、T2,其中T1+T2=T)中記錄的總線活動表明對各組的訪問是不均衡的,見圖2。如果緩存布局可對時間區(qū)間T1和T2分別進(jìn)行優(yōu)化,則有可能顯著改善系統(tǒng)性能。
圖2 在時間區(qū)間T、T1和 T2的系統(tǒng)總線活動(T > T1+T2)
困難在于如何找到對系統(tǒng)資源的訪問方式始終如一,進(jìn)而可使用一組相同優(yōu)化技術(shù)的時間區(qū)間。這可能需要對應(yīng)用程序進(jìn)行多次迭代分析。
定期捕捉指標(biāo)寄存器數(shù)據(jù)的實(shí)驗(yàn)裝置
在本節(jié)中,介紹定期記錄指標(biāo)寄存器數(shù)據(jù)的實(shí)驗(yàn)裝置。如圖3所示,一臺PC用作主機(jī),通過利用JTAG接口進(jìn)行通信的后臺遙測通道(BTC)收集來自Blackfin的數(shù)據(jù)。數(shù)據(jù)記錄程序運(yùn)行在PC上,并定期向Blackfin處理器發(fā)送BTC指令。作為回應(yīng),Blackfin處理器把指標(biāo)寄存器的快照發(fā)送給主機(jī)。
圖3 定期捕捉指標(biāo)寄存器數(shù)據(jù)的實(shí)驗(yàn)裝置
Blackfin處理器使用一個通用定時器定期地產(chǎn)生中斷。在定時器發(fā)出中斷時,指標(biāo)寄存器的內(nèi)容被讀出并存儲在存儲器中。在主機(jī)發(fā)出請求時,存儲的指標(biāo)寄存器數(shù)據(jù)通過BTC通道發(fā)送到PC。BTC通道支持?jǐn)?shù)據(jù)傳輸速率高達(dá)3Mbps。
Now consider an example program where multiple buffers are mapped in the DDR memory and memory DMA's are used to transfers data between these buffers.現(xiàn)在考慮一個示例程序,該程序有多個緩存影射到DDR存儲器中,并使用存儲器的DMA在這些緩存之間傳輸數(shù)據(jù)。
圖4 在外部DDR存儲器中多組數(shù)據(jù)傳輸?shù)睦?p>
在這個例子中,MDMA0從srcBuffer0向dstBuffer0傳輸4KB的數(shù)據(jù),MDMA1從 srcBuffer01向dstBuffer1傳輸4KB的數(shù)據(jù)。最開始只啟動MDMA0,在MDMA0數(shù)據(jù)傳輸完成后,MDMA1通道啟用,反之亦然,這種方式導(dǎo)致在各個時間區(qū)間存儲器組訪問數(shù)發(fā)生變化。在這個例子中,指標(biāo)寄存器一個快照顯示了下面情況(見圖5)。從這個數(shù)字無法看出哪個存儲器組引起頁錯失,以及哪個數(shù)據(jù)流通道應(yīng)對產(chǎn)生頁錯失負(fù)責(zé)。周期性地多次觀測指標(biāo)寄存器可幫助我們找到帶寬利用率低的原因。
圖5 例2指標(biāo)寄存器數(shù)據(jù)的一個快照
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
評論