<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 使用系統(tǒng)總線性能計(jì)數(shù)器來(lái)測(cè)量和改善嵌入式系統(tǒng)的

          使用系統(tǒng)總線性能計(jì)數(shù)器來(lái)測(cè)量和改善嵌入式系統(tǒng)的

          作者: 時(shí)間:2010-06-01 來(lái)源:網(wǎng)絡(luò) 收藏


          第2步 使用指標(biāo)寄存器
          對(duì)于這些情況,外部存儲(chǔ)器延遲通常是吞吐率低的原因。我們將首先考察DDR讀/寫(xiě)訪問(wèn)總數(shù)和離頁(yè)DDR訪問(wèn)總數(shù)。


          從圖1可以看出,計(jì)數(shù)寄存器的讀取和寫(xiě)入訪問(wèn)表明,訪問(wèn)只針對(duì)一個(gè)組(組0),頁(yè)激活數(shù)占訪問(wèn)總數(shù)的25%。這意味著,由于緩存影射到組0的不同頁(yè),DMA訪問(wèn)在同一組中的空間位置很小。由于源緩存和目標(biāo)緩存在不同的頁(yè)上,每次DMA訪問(wèn)均存在一次離頁(yè)訪問(wèn)。


          第3步 提高
          把緩存放在不同的DDR組中可減少離頁(yè)訪問(wèn)。如果把緩存放在不同的組中,則僅當(dāng)某個(gè)通道穿越頁(yè)邊界時(shí)才會(huì)發(fā)生離頁(yè)訪問(wèn)。Blackfin BF54x的DDR控制器支持最多同時(shí)打開(kāi)8個(gè)內(nèi)部DDR組,因此可以把四個(gè)緩存分別映射到不同的組。


          2 示例2
          在上面的例1中,只有很少的資源(兩個(gè)MDMA通道)訪問(wèn)單個(gè)DDR存儲(chǔ)器組,行為在一段時(shí)間內(nèi)不變。因此,可通過(guò)提取指標(biāo)寄存器的快照來(lái)理解總線的活動(dòng)并捕捉空間位置。在更為實(shí)際的中,可能有多個(gè)資源(內(nèi)核、多個(gè)DMA通道)訪問(wèn)多個(gè)DDR存儲(chǔ)器組和系統(tǒng)總線,致使在較小的時(shí)間區(qū)間內(nèi)DDR數(shù)據(jù)訪問(wèn)模式迅速變化。在這些情況下,難以?xún)H僅利用指標(biāo)寄存器的一個(gè)快照來(lái)捕捉空間位置和系統(tǒng)行為。因此,必須捕捉在應(yīng)用執(zhí)行過(guò)程中在多個(gè)點(diǎn)的總線活動(dòng)情況來(lái)探索空間位置。


          為了說(shuō)明這一點(diǎn),考慮這樣一個(gè)情況,總線在時(shí)間區(qū)間T的活動(dòng)表明,對(duì)所有組的訪問(wèn)是均衡的,但離頁(yè)訪問(wèn)比例較高,但在較小時(shí)間區(qū)間(T1、T2,其中T1+T2=T)中記錄的總線活動(dòng)表明對(duì)各組的訪問(wèn)是不均衡的,見(jiàn)圖2。如果緩存布局可對(duì)時(shí)間區(qū)間T1和T2分別進(jìn)行優(yōu)化,則有可能顯著改善系統(tǒng)。

          圖2 在時(shí)間區(qū)間T、T1和 T2的系統(tǒng)總線活動(dòng)(T > T1+T2)


          困難在于如何找到對(duì)系統(tǒng)資源的訪問(wèn)方式始終如一,進(jìn)而可使用一組相同優(yōu)化技術(shù)的時(shí)間區(qū)間。這可能需要對(duì)應(yīng)用程序進(jìn)行多次迭代分析。

          定期捕捉指標(biāo)寄存器數(shù)據(jù)的實(shí)驗(yàn)裝置
          在本節(jié)中,介紹定期記錄指標(biāo)寄存器數(shù)據(jù)的實(shí)驗(yàn)裝置。如圖3所示,一臺(tái)PC用作主機(jī),通過(guò)利用JTAG接口進(jìn)行通信的后臺(tái)遙測(cè)通道(BTC)收集來(lái)自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處理器使用一個(gè)通用定時(shí)器定期地產(chǎn)生中斷。在定時(shí)器發(fā)出中斷時(shí),指標(biāo)寄存器的內(nèi)容被讀出并存儲(chǔ)在存儲(chǔ)器中。在主機(jī)發(fā)出請(qǐng)求時(shí),存儲(chǔ)的指標(biāo)寄存器數(shù)據(jù)通過(guò)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)在考慮一個(gè)示例程序,該程序有多個(gè)緩存影射到DDR存儲(chǔ)器中,并使用存儲(chǔ)器的DMA在這些緩存之間傳輸數(shù)據(jù)。

          圖4 在外部DDR存儲(chǔ)器中多組數(shù)據(jù)傳輸?shù)睦?p>
          在這個(gè)例子中,MDMA0從srcBuffer0向dstBuffer0傳輸4KB的數(shù)據(jù),MDMA1從 srcBuffer01向dstBuffer1傳輸4KB的數(shù)據(jù)。最開(kāi)始只啟動(dòng)MDMA0,在MDMA0數(shù)據(jù)傳輸完成后,MDMA1通道啟用,反之亦然,這種方式導(dǎo)致在各個(gè)時(shí)間區(qū)間存儲(chǔ)器組訪問(wèn)數(shù)發(fā)生變化。在這個(gè)例子中,指標(biāo)寄存器一個(gè)快照顯示了下面情況(見(jiàn)圖5)。從這個(gè)數(shù)字無(wú)法看出哪個(gè)存儲(chǔ)器組引起頁(yè)錯(cuò)失,以及哪個(gè)數(shù)據(jù)流通道應(yīng)對(duì)產(chǎn)生頁(yè)錯(cuò)失負(fù)責(zé)。周期性地多次觀測(cè)指標(biāo)寄存器可幫助我們找到帶寬利用率低的原因。

          圖5 例2指標(biāo)寄存器數(shù)據(jù)的一個(gè)快照

          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();