日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]本文將介紹性能指標寄存器的各種配置,并提供在Blackfin處理器上利用它們的軟硬件接口實例。此外,還針對一些典型的應(yīng)用情形給出了提高性能的方法。

了解系統(tǒng)總線的活動情況可幫助開發(fā)工程師顯著改善嵌入式應(yīng)用的性能。過去,由于嵌入式處理器缺乏復(fù)雜的軟硬件結(jié)合特性,因此監(jiān)測系統(tǒng)總線的活動情況是一項挑戰(zhàn)性難題。在系統(tǒng)級了解應(yīng)用程序的行為對于有效利用系統(tǒng)資源非常關(guān)鍵,這些資源包括外部存儲器、DMA控制器、仲裁、系統(tǒng)總線互連等。


Blackfin BF54x系列處理器提供性能計數(shù)器(指標寄存器),可幫助應(yīng)用開發(fā)工程師在系統(tǒng)級別了解應(yīng)用程序的行為。在掌握應(yīng)用程序行為后,開發(fā)工程師可使用一些系統(tǒng)優(yōu)化技術(shù)來提高性能和降低功耗。


在本文中,將介紹性能指標寄存器的各種配置,并提供在Blackfin處理器上利用它們的軟硬件接口實例。此外,還針對一些典型的應(yīng)用情形給出了提高性能的方法。

指標寄存器的定義
在典型的實際應(yīng)用中有多種資源,如內(nèi)核處理器、外設(shè)DMA,以及可同時訪問外部存儲器和幾個系統(tǒng)總線的MDMA(存儲器到存儲器的DMA)。性能指標寄存器提供了一種捕捉外部存儲器組訪問數(shù)、頁錯失數(shù)、總線流量數(shù)和總線轉(zhuǎn)向數(shù)的方式,有效地利用從這些寄存器獲得的數(shù)據(jù)可顯著提高系統(tǒng)的資源利用率。


表1是Blackfin BF54x系列處理器提供的指標寄存器及其簡要說明。


我們可以使用存儲器組讀/寫寄存器、組激活計數(shù)寄存器和總線轉(zhuǎn)向寄存器來改善應(yīng)用程序的代碼和數(shù)據(jù)外部存儲器布局。授權(quán)計數(shù)寄存器(EBIU_DDRGCx)可幫助合理定義系統(tǒng)仲裁策略,還能實現(xiàn)高的系統(tǒng)吞吐率。


我們可以利用代碼和數(shù)據(jù)項映射到外部存儲器的時間區(qū)間和空間位置來減少外部存儲器的延遲。在通常情況下,要捕捉應(yīng)用程序的空間位置和時間區(qū)間,需要記錄在程序執(zhí)行期間的代碼和數(shù)據(jù)對象的蹤跡。然而,對于一些簡單的應(yīng)用程序來說,利用指標寄存器的關(guān)鍵數(shù)據(jù)就可以揭示外部存儲器中的不良映射代碼和數(shù)據(jù)項。


下面探討一些應(yīng)用情形,以及利用從這些指標寄存器得到的信息進行優(yōu)化的一些簡單技術(shù)。

示例的使用
下面將介紹如何分析和解讀從指標寄存器獲得的信息,并在此基礎(chǔ)上討論如何運用簡單的優(yōu)化技術(shù)來提高應(yīng)用的性能。


1  示例1
在這個示例中,多個數(shù)據(jù)緩存映射到外部存儲器,并使用存儲器DMA通道把一組緩存的內(nèi)容復(fù)制到另一組緩存。本實驗中共有4個緩存,規(guī)模均為32KB。所有緩存均映射到DDR的Bank0并從地址0×0開始連續(xù)放置。圖1顯示了映射到外部存儲器的四個緩存的默認布局。在這個例子中,兩個存儲器DMA通道采用自動緩沖模式不間斷地把兩個緩存的內(nèi)容傳送到另外兩個緩存。下面介紹一個三步過程,利用從指標寄存器獲得的信息并相應(yīng)地使用一些系統(tǒng)優(yōu)化技術(shù),該過程可把性能提高到原系統(tǒng)的1.5倍。

圖1  未優(yōu)化時的指標寄存器數(shù)據(jù)


第1步  基本系統(tǒng)性能
我們使用系統(tǒng)的平均吞吐率來量化系統(tǒng)的性能。平均吞吐率按下式計算:
平均吞吐率=“讀出和寫入DDR存儲器的數(shù)據(jù)字節(jié)總數(shù)”/秒
系統(tǒng)總線活動的時間區(qū)間使用內(nèi)核計時器來設(shè)置。通過設(shè)置,該定時器在到達實驗設(shè)定的時間區(qū)間時產(chǎn)生一個中斷。該計時器在存儲器DMA通道開始啟用之前啟動,然后,在內(nèi)核計時器ISR中禁用存儲器DMA通道。傳輸?shù)臄?shù)據(jù)量用相應(yīng)的計數(shù)器在DMA通道的中斷服務(wù)程序中進行測量。每次緩存?zhèn)鬏敭a(chǎn)生一個中斷,DMA ISR每調(diào)用一次則計數(shù)器加1。由于所有的存儲器DMA通道均運行在自動緩沖模式,在最終計算吞吐率時,通道中斷延時不需計算在內(nèi)。對于這個測量,定時器中斷延時由于數(shù)值很小不計算在內(nèi)。


表2顯示了該系統(tǒng)的基準性能。從該表可以看出,即使是這樣一個簡單的系統(tǒng),我們也只利用了可用總帶寬的一小部分。指標寄存器使我們可以看到系統(tǒng)總線的活動情況,并幫助我們明白性能較低的原因。基于這些信息,我們將能夠應(yīng)用某些優(yōu)化技術(shù)來提高性能。


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


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


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


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

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

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


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

定期捕捉指標寄存器數(shù)據(jù)的實驗裝置
在本節(jié)中,介紹定期記錄指標寄存器數(shù)據(jù)的實驗裝置。如圖3所示,一臺PC用作主機,通過利用JTAG接口進行通信的后臺遙測通道(BTC)收集來自Blackfin的數(shù)據(jù)。數(shù)據(jù)記錄程序運行在PC上,并定期向Blackfin處理器發(fā)送BTC指令。作為回應(yīng),Blackfin處理器把指標寄存器的快照發(fā)送給主機。

圖3  定期捕捉指標寄存器數(shù)據(jù)的實驗裝置


Blackfin處理器使用一個通用定時器定期地產(chǎn)生中斷。在定時器發(fā)出中斷時,指標寄存器的內(nèi)容被讀出并存儲在存儲器中。在主機發(fā)出請求時,存儲的指標寄存器數(shù)據(jù)通過BTC通道發(fā)送到PC。BTC通道支持數(shù)據(jù)傳輸速率高達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ā)生變化。在這個例子中,指標寄存器一個快照顯示了下面情況(見圖5)。從這個數(shù)字無法看出哪個存儲器組引起頁錯失,以及哪個數(shù)據(jù)流通道應(yīng)對產(chǎn)生頁錯失負責(zé)。周期性地多次觀測指標寄存器可幫助我們找到帶寬利用率低的原因。

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


我們將利用上述實驗裝置來記錄指標寄存器數(shù)據(jù)??墒褂迷赑C上獲得的指標寄存器數(shù)據(jù)來繪制在頁錯失和存儲器組訪問之間的相關(guān)圖,采用MATLAB等數(shù)學(xué)工具箱來分析該數(shù)據(jù)。從該圖可以看出,大多數(shù)頁錯失是由存儲器組0訪問引起的。

圖6  頁錯失和DDR Bankx訪問之間的相關(guān)性

圖7  存儲器組訪問與頁錯失

圖8  例2未經(jīng)優(yōu)化的布局

圖9  緩存布局優(yōu)化


利用連接程序描述文件(ldf)或使用Blackfin處理器存儲器窗口,可以確定哪些緩存影射到這些組,并把它們重新分別映射到其他組,從而減少頁錯失。


總線授權(quán)計數(shù)寄存器
總線授權(quán)計數(shù)寄存器(EBIU_DDRGCx)可幫助我們了解各個系統(tǒng)總線(EAB和DEBx總線)的資源利用率。實際上,這將有助于確定總線仲裁策略并確保實現(xiàn)高效的DMA和外部存儲器資源共享。


Blackfin BF54x系列處理器對外部總線提供可編程優(yōu)先級設(shè)置功能。另外,該系列處理器還把幾個外設(shè)DMA和存儲器DMA映射到多個DMA控制器上,為實現(xiàn)高效資源管理提供了額外的靈活性。

 
考慮一個從照相機獲得視頻數(shù)據(jù)的例子,壓縮算法運行在Blackfin上,經(jīng)壓縮的視頻數(shù)據(jù)通過USB總線從Blackfin發(fā)送給PC。觀測結(jié)果表明USB吞吐率相當?shù)停瑹o法實時傳輸壓縮的視頻數(shù)據(jù)。可能的原因之一是USB總線由于系統(tǒng)中存在其他高優(yōu)先級任務(wù)被掛起。對于這種情況,我們可以使用授權(quán)計數(shù)寄存器快速地進行驗證。同上,我們觀測指標寄存器在一段時間區(qū)間內(nèi)的數(shù)據(jù)。在幾個時間區(qū)間內(nèi)指標寄存器的數(shù)據(jù)揭示出DEB2總線(USB總線)在與EAB總線(內(nèi)核總線)競爭,因而限制了USB對DDR存儲器的訪問。


在默認情況下,內(nèi)核擁有比USB接口更高的外部存儲器訪問優(yōu)先權(quán)。對于當前的應(yīng)用,USB總線的實時要求具有比內(nèi)核更高的優(yōu)先級。因此,我們必須使用其中的一個總線仲裁寄存器提高USB相對于內(nèi)核的優(yōu)先級,從而解決這個問題。


總線授權(quán)計數(shù)寄存器也可與存儲器組訪問寄存器配合使用,以了解在給定的時間區(qū)間內(nèi)哪個總線最活躍,并找到頁錯失之間的關(guān)聯(lián)和在給定時間區(qū)間的總線活動情況。存儲器組訪問計數(shù)、引起頁錯失的總線以及哪些資源在利用總線等信息可揭示出那些低效的代碼或數(shù)據(jù)存儲器布局。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

Lua RTOS 是一個實時操作系統(tǒng),設(shè)計在嵌入式系統(tǒng)上運行,對 FLASH 和 RAM 內(nèi)存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺,并可以輕松移植到其他32位...

關(guān)鍵字: Lua RTOS 操作系統(tǒng) 嵌入式系統(tǒng)

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UATR,是一種串行、異步、全雙工的收發(fā)器。全雙工的UART支持同時雙向通信,是嵌入式系統(tǒng)必不可少的d...

關(guān)鍵字: 異步收發(fā) 傳輸器 嵌入式系統(tǒng)

Flash Memory 是一種非易失性的存儲器。在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等。在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。

關(guān)鍵字: Flash 存儲器 嵌入式系統(tǒng)

近年來,隨著計算機技術(shù)及集成電路技術(shù)的發(fā)展,嵌入式技術(shù)日漸普及,在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)無疑成為當前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。?嵌入式系統(tǒng)一般由嵌入式微處理器、外...

關(guān)鍵字: 嵌入式 嵌入式系統(tǒng) 計算機

(全球TMT2022年8月26日訊)創(chuàng)客貼在企業(yè)成立8周年之際發(fā)布全新品牌LOGO。新標識延續(xù)藍色主調(diào),將標準色由平靜的天藍色,升級為更加明亮且富于電子科技感的鈷藍色。全新定義的品牌主題色"創(chuàng)客藍"蘊含更充沛的活力與想...

關(guān)鍵字: 創(chuàng)客 GO 電子 線性

深圳2022年8月26日 /美通社/ -- 8月17日 – 深圳,AMD Xilinx舉辦為期一天的線下技術(shù)日活動,在AMD Xilinx主辦下宜鼎國際作為合作伙伴的身份被邀...

關(guān)鍵字: AMD Xilinx AGENT 嵌入式系統(tǒng)

單向散列算法,又稱hash哈希函數(shù),Hash函數(shù)(也稱雜湊算法)就是把任意長的輸入消息串變化成固定長的輸出串的一種函數(shù),該過程是不可逆的。Hash函數(shù)可用于數(shù)字簽名、消息的完整性檢測、消息起源的認證檢測等。較為常用的方法...

關(guān)鍵字: 嵌入式算法 嵌入式系統(tǒng)

作為消費者,在我們考慮購買電池供電設(shè)備時,通常首先要檢查的關(guān)鍵指標之一是一次充電可以使用多長時間。電池壽命已成為許多可穿戴設(shè)備的重要賣點,但對于越來越多的工業(yè)物聯(lián)網(wǎng)傳感器和其他類似應(yīng)用來說,電池壽命同樣也是一個重要的考慮...

關(guān)鍵字: 貿(mào)澤電子 嵌入式系統(tǒng)

倫敦2022年8月2日 /美通社/ -- Omdia的新研究顯示,非線性觀看在美國、歐洲和澳大利亞電視用戶的日常觀看習(xí)慣中繼續(xù)占據(jù)更大的霸權(quán)地位,在線長視頻和社交媒體視頻觀看超越了上一年觀看時間的繁榮增長。 2021年...

關(guān)鍵字: 線性 DISCOVERY FACEBOOK MOUNT

(全球TMT2022年8月2日訊)Omdia的新研究顯示,非線性觀看在美國、歐洲和澳大利亞電視用戶的日常觀看習(xí)慣中繼續(xù)占據(jù)更大的霸權(quán)地位,在線長視頻和社交媒體視頻觀看超越了上一年觀看時間的繁榮增長。 2021年各...

關(guān)鍵字: PRIME 線性 DISCOVERY FACEBOOK

測試測量

28688 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉