使用系統(tǒng)總線測(cè)量和改善嵌入式系統(tǒng)的性能
圖5 例2指標(biāo)寄存器數(shù)據(jù)的一個(gè)快照
我們將利用上述實(shí)驗(yàn)裝置來記錄指標(biāo)寄存器數(shù)據(jù)??墒褂迷赑C上獲得的指標(biāo)寄存器數(shù)據(jù)來繪制在頁錯(cuò)失和存儲(chǔ)器組訪問之間的相關(guān)圖,采用MATLAB等數(shù)學(xué)工具箱來分析該數(shù)據(jù)。從該圖可以看出,大多數(shù)頁錯(cuò)失是由存儲(chǔ)器組0訪問引起的。
圖6 頁錯(cuò)失和DDR Bankx訪問之間的相關(guān)性
圖7 存儲(chǔ)器組訪問與頁錯(cuò)失
圖8 例2未經(jīng)優(yōu)化的布局
圖9 緩存布局優(yōu)化
利用連接程序描述文件(ldf)或使用Blackfin處理器存儲(chǔ)器窗口,可以確定哪些緩存影射到這些組,并把它們重新分別映射到其他組,從而減少頁錯(cuò)失。
總線授權(quán)計(jì)數(shù)寄存器
總線授權(quán)計(jì)數(shù)寄存器(EBIU_DDRGCx)可幫助我們了解各個(gè)系統(tǒng)總線(EAB和DEBx總線)的資源利用率。實(shí)際上,這將有助于確定總線仲裁策略并確保實(shí)現(xiàn)高效的DMA和外部存儲(chǔ)器資源共享。
Blackfin BF54x系列處理器對(duì)外部總線提供可編程優(yōu)先級(jí)設(shè)置功能。另外,該系列處理器還把幾個(gè)外設(shè)DMA和存儲(chǔ)器DMA映射到多個(gè)DMA控制器上,為實(shí)現(xiàn)高效資源管理提供了額外的靈活性。
考慮一個(gè)從照相機(jī)獲得視頻數(shù)據(jù)的例子,壓縮算法運(yùn)行在Blackfin上,經(jīng)壓縮的視頻數(shù)據(jù)通過USB總線從Blackfin發(fā)送給PC。觀測(cè)結(jié)果表明USB吞吐率相當(dāng)?shù)?,無法實(shí)時(shí)傳輸壓縮的視頻數(shù)據(jù)??赡艿脑蛑皇荱SB總線由于系統(tǒng)中存在其他高優(yōu)先級(jí)任務(wù)被掛起。對(duì)于這種情況,我們可以使用授權(quán)計(jì)數(shù)寄存器快速地進(jìn)行驗(yàn)證。同上,我們觀測(cè)指標(biāo)寄存器在一段時(shí)間區(qū)間內(nèi)的數(shù)據(jù)。在幾個(gè)時(shí)間區(qū)間內(nèi)指標(biāo)寄存器的數(shù)據(jù)揭示出DEB2總線(USB總線)在與EAB總線(內(nèi)核總線)競(jìng)爭(zhēng),因而限制了USB對(duì)DDR存儲(chǔ)器的訪問。
在默認(rèn)情況下,內(nèi)核擁有比USB接口更高的外部存儲(chǔ)器訪問優(yōu)先權(quán)。對(duì)于當(dāng)前的應(yīng)用,USB總線的實(shí)時(shí)要求具有比內(nèi)核更高的優(yōu)先級(jí)。因此,我們必須使用其中的一個(gè)總線仲裁寄存器提高USB相對(duì)于內(nèi)核的優(yōu)先級(jí),從而解決這個(gè)問題。
總線授權(quán)計(jì)數(shù)寄存器也可與存儲(chǔ)器組訪問寄存器配合使用,以了解在給定的時(shí)間區(qū)間內(nèi)哪個(gè)總線最活躍,并找到頁錯(cuò)失之間的關(guān)聯(lián)和在給定時(shí)間區(qū)間的總線活動(dòng)情況。存儲(chǔ)器組訪問計(jì)數(shù)、引起頁錯(cuò)失的總線以及哪些資源在利用總線等信息可揭示出那些低效的代碼或數(shù)據(jù)存儲(chǔ)器布局。
評(píng)論