分析復(fù)雜器件內(nèi)部的實時可視性的設(shè)計方法
2. 高水印計數(shù)器
通常,開發(fā)者需要理解器件會運行的極限惡劣狀況,例如,服務(wù)中斷的最大時間或輸入數(shù)據(jù)中的最小和最大抖動。高水印計數(shù)器提供硬件,這些硬件能被配置用于監(jiān)測特定總線事件,并鎖存最大的(高水?。┗蛘咦钚〉模ǖ退。┑臅r間參數(shù)。在不需要太大的開銷情況下,他們能提供非常寶貴的統(tǒng)計數(shù)據(jù),否則需要用目標(biāo)軟件來實現(xiàn),或采集數(shù)據(jù)并發(fā)送到片外以作后續(xù)處理。
3. 跟蹤
一種成本很高但非常有用的硬件輔助監(jiān)測方法是跟蹤。在這種方法中,總線事務(wù)被記錄在專用的片上存儲器中,這樣一來,可以捕獲導(dǎo)致產(chǎn)生一個事件的最后的N個總線事務(wù)。
上載捕獲的數(shù)據(jù)
一般來說,你會上載數(shù)據(jù)到一個開發(fā)系統(tǒng)中(如電腦),或者上載到一個監(jiān)控模塊作進一步分析。一旦確定需要采集什么樣的調(diào)試信息,以及如何采集以盡量減少干擾,那么必須決定如何從芯片向外發(fā)送數(shù)據(jù)-理想的情況是在應(yīng)用程序還在運行時能夠發(fā)送。
應(yīng)該做的是緩沖器深度和上載頻率之間的折衷。你調(diào)試數(shù)據(jù)緩沖器越小,上載數(shù)據(jù)的頻率越高。頻繁上載將對系統(tǒng)性能產(chǎn)生持續(xù)的影響。如果有一個大的存儲器池用于緩存調(diào)試數(shù)據(jù),那么采集數(shù)據(jù)對系統(tǒng)性能的影響就會較小。然而,更大緩沖器則需要更多的目標(biāo)存儲器,在器件運行期間上載數(shù)據(jù)對系統(tǒng)性能的影響將更顯著。
當(dāng)采集比芯片上能實時提供的還多的數(shù)據(jù)時,將不可避免地在獲取的數(shù)據(jù)中引入空隙。在這些情況中,有必要周期性地插入足夠的關(guān)聯(lián)信息,以確保數(shù)據(jù)在最終從片上捕獲后能被成功解碼。對數(shù)據(jù)打包或者引入周期性的“同步點”是在數(shù)據(jù)流中提供這種額外信息的兩種方法??梢宰鳛閿?shù)據(jù)上載過程的一部分來完成這個工作,這樣冗余的信息就不必存儲在片上。
如果在一個SoC中多個CPU內(nèi)核共同工作,常常需要并行地對每個內(nèi)核上載獲取的信息,以便體現(xiàn)一個系統(tǒng)的完整情況。如果多個上載路徑不可用,要么在上載之前將來自多個內(nèi)核的數(shù)據(jù)結(jié)合起來放到一個緩沖器中,要么將它們按照某種方式復(fù)用起來以共享上載路徑。同樣的,在決定處理這些問題的最佳方法時,需要考慮系統(tǒng)的動態(tài)特性和數(shù)據(jù)的相對重要性。如果有很多相對不重要的數(shù)據(jù)來自其中的一個內(nèi)核,而另外一個內(nèi)核偶爾會發(fā)送一些重要信息,你需要采用一種方法確保重要的信息能優(yōu)先于非重要的信息。
可視化及分析
可視化技術(shù)最早運用于計算科學(xué)中,并形成了可視化技術(shù)的一個重要分支——科學(xué)計算可視化(Visualization in Scientific Computing)??茖W(xué)計算可視化能夠把科學(xué)數(shù)據(jù),包括測量獲得的數(shù)值、圖像或是計算中涉及、產(chǎn)生的數(shù)字信息變?yōu)橹庇^的、以圖形圖像信息表示的、隨時間和空間變化的物理現(xiàn)象或物理量呈現(xiàn)在研究者面前,使他們能夠觀察、模擬和計算
將從SoC器件中產(chǎn)生的原始信息轉(zhuǎn)換成一種易于理解的格式對SoC本身提出了許多挑戰(zhàn)。能采集到的數(shù)據(jù)種類、用于采集這些數(shù)據(jù)需要的特定硬件機制以及各類不同的應(yīng)用,用戶需要解決所有這些特殊的問題,這通常是克服這些挑戰(zhàn)所需的靈活性的最佳方法。使用一種模塊化的框架使其很容易將來自不同的數(shù)據(jù)流的數(shù)據(jù)進行關(guān)聯(lián),針對特定類型的信息分析關(guān)聯(lián)的數(shù)據(jù),并以一種易于理解的形式顯示這些從數(shù)據(jù)中得到的信息。這里描述了這種框架應(yīng)該提供的一些功能類型實例:
1. 關(guān)聯(lián)數(shù)據(jù)點
在解決一個多處理器SoC中的瓶頸、競爭或負(fù)載均衡這類系統(tǒng)級問題時,可能需要從多個處理器和加速器采集數(shù)據(jù)。在這種情況下,重構(gòu)系統(tǒng)行為需要將多個記錄關(guān)聯(lián)到一個時間線。在某些系統(tǒng)上,從其它內(nèi)核來訪問的方式利用時鐘。如果公共時鐘不可行,可以使用其他機制來周期性地同步多個內(nèi)核的時間。其中的一個方法是使用中斷來將一個同步時間戳通過共享存儲器傳遞。
2. 分析基礎(chǔ)架構(gòu)
一種模塊框架能夠?qū)⒊R姷姆治龌顒又谱鞒赡K,這些模塊能用來實現(xiàn)很多不同的分析和可視化工具,例如,一種普通的可定制數(shù)據(jù)轉(zhuǎn)換器和表格,可以很容易用于創(chuàng)建一種消息記錄瀏覽器;來構(gòu)造送往其它分析模塊的數(shù)據(jù);一種用來分析過去一段時間的高水位標(biāo)志的模塊能為特定應(yīng)用的Dashboard、帶寬利用率監(jiān)測器等提供一些基本依據(jù)。
3. 可擴展性
這是指音箱是否支持多聲道同時輸入,是否有接無源環(huán)繞音箱的輸出接口,是否有USB輸入功能等。低音炮能外接環(huán)繞音箱的個數(shù)也是衡量擴展性能的標(biāo)準(zhǔn)之一。普通多媒體音箱的接口主要有模擬接口和USB接口兩種,其它如光纖接口還有創(chuàng)新專用的數(shù)字接口等不是非常多見,因此不多作介紹。
盡管可以用一些普通組件來評估所采集的大量數(shù)據(jù),但最好是能夠構(gòu)造定制組件來擴展工具的環(huán)境。
4. 可配置性
可視化工具對于從大的緩沖器上載中提取有意義的信息非常關(guān)鍵,開發(fā)者需要能配置工具來強調(diào)特殊的差異性和數(shù)據(jù)峰值以發(fā)現(xiàn)一般的行為和異常的行為。為了從目標(biāo)對象上卸載數(shù)據(jù)處理,所用工具應(yīng)該提供允許將智能特性構(gòu)建到工具中的可編程基本功能,并減少需要采集的數(shù)據(jù)量。還應(yīng)該提供足夠的控制以確定在任何給定的時間,來規(guī)定應(yīng)該采集什么樣的數(shù)據(jù)。
看看現(xiàn)實
獲得對實時SoC系統(tǒng)內(nèi)部的可視性的挑戰(zhàn)當(dāng)然并不是微不足道的小事。采集到足夠的信息來產(chǎn)生不需要校正的有意義的結(jié)果,需要一種系統(tǒng)級的方法。通過使用軟件工具庫,利用硬件輔助監(jiān)測以及對數(shù)據(jù)如何從芯片上發(fā)送出來的管理,增加準(zhǔn)確性、寬度、深度和采集數(shù)據(jù)的粒度,使得開發(fā)者能采集更多的可靠信息。新的靈活工具套件和軟件開發(fā)策略將幫助開發(fā)者來應(yīng)對測試和調(diào)試用于具有高精度和高置信度的實時應(yīng)用的復(fù)雜SoC架構(gòu)的挑戰(zhàn)。
評論