分析復(fù)雜器件內(nèi)部的實(shí)時(shí)可視性的設(shè)計(jì)方法
6. 塊狀記錄
在某些情況下,在不影響執(zhí)行時(shí)(如沒(méi)有實(shí)時(shí)運(yùn)算時(shí))有可能可以暫停對(duì)象。此時(shí)可以通過(guò)在能安全暫停的情況下觸發(fā)一次暫停來(lái)“避免”緩沖期上載開(kāi)銷,然后在系統(tǒng)暫停的時(shí)候再對(duì)緩沖器上載。
7. 按塊上載
如果任務(wù)比較空閑,可以在系統(tǒng)沒(méi)有完全利用時(shí)用來(lái)上載緩沖器。盡管這不會(huì)減少上載開(kāi)銷,但卻可以將上載的影響轉(zhuǎn)移到一個(gè)對(duì)系統(tǒng)性能影響更小的時(shí)段。
8. RTOS監(jiān)測(cè)
RTOS,即:實(shí)時(shí)系統(tǒng)(Real-time operating system),實(shí)時(shí)系統(tǒng)能夠在指定或者確定的時(shí)間內(nèi)完成系統(tǒng)功能和外部或內(nèi)部、同步或異步時(shí)間做出響應(yīng)的系統(tǒng)。它的正確性不僅依賴系統(tǒng)計(jì)算的邏輯結(jié)果,還依賴于產(chǎn)生這個(gè)結(jié)果的時(shí)間。因此實(shí)時(shí)系統(tǒng)應(yīng)該在事先先定義的時(shí)間范圍內(nèi)識(shí)別和處理離散事件的能力;系統(tǒng)能夠處理和儲(chǔ)存控制系統(tǒng)所需要的大量數(shù)據(jù)。 為了便于理解,機(jī)場(chǎng)的售票系統(tǒng)就是一個(gè)典型的實(shí)時(shí)系統(tǒng)。
對(duì)于更復(fù)雜的監(jiān)測(cè),可以在實(shí)時(shí)操作系統(tǒng)上找到支持。很多操作系統(tǒng)具有內(nèi)置的機(jī)制和庫(kù),能支持片上監(jiān)測(cè)硬件,即易于配置又為管理循環(huán)緩沖器和向外發(fā)送數(shù)據(jù)流需要的基礎(chǔ)架構(gòu)提供基本代碼,并提供用于自監(jiān)測(cè)的Hook函數(shù)。通過(guò)對(duì)記錄過(guò)程抽象化以及卸載數(shù)據(jù),可以快速地對(duì)監(jiān)測(cè)的對(duì)象、監(jiān)測(cè)的方式、監(jiān)測(cè)的頻率、獲取數(shù)據(jù)的位置以及卸載方式等進(jìn)行重新配置。在創(chuàng)建自己的基礎(chǔ)來(lái)測(cè)試代碼之前,應(yīng)首先檢查RTOS提供的內(nèi)容。
RTOS就是這樣的一個(gè)標(biāo)準(zhǔn)內(nèi)核,包括了各種片上外設(shè)初始化和數(shù)據(jù)結(jié)構(gòu)的格式化,不必、也不推薦用戶再對(duì)硬件設(shè)備和資源進(jìn)行直接操作,所有的硬件設(shè)置和資源訪問(wèn)都要通過(guò)RTOS核心。硬件這樣屏蔽起來(lái)以后,用戶不必清楚硬件系統(tǒng)的每一個(gè)細(xì)節(jié)就可以進(jìn)行開(kāi)發(fā),這樣就減少了開(kāi)發(fā)前的學(xué)習(xí)量。
一般來(lái)說(shuō),對(duì)硬件的直接訪問(wèn)越少,系統(tǒng)的可靠性越高。RTOS是一個(gè)經(jīng)過(guò)測(cè)試的內(nèi)核,與一般用戶自行編寫的主程序內(nèi)核相比,更規(guī)范,效率和可靠性更高。對(duì)于一個(gè)精通單片機(jī)硬件系統(tǒng)和編程的“老手”而言,通過(guò)RTOS對(duì)系統(tǒng)進(jìn)行管理可能不如直接訪問(wèn)更直觀、自由度大,但是通過(guò)RTOS管理能夠排除人為疏忽因素,提高軟件可靠性。
另外,高效率地進(jìn)行多任務(wù)支持是RTOS設(shè)計(jì)從始至終的一條主線,采用RTOS管理系統(tǒng)可以統(tǒng)一協(xié)調(diào)各個(gè)任務(wù),優(yōu)化CPU時(shí)間和系統(tǒng)資源的分配,使之不空閑、不擁塞。針對(duì)某種具體應(yīng)用,精細(xì)推敲的應(yīng)用程序不采用RTOS可能比采用RTOS能達(dá)到更高的效率;但是對(duì)于大多數(shù)一般用戶和新手而言,采用RTOS是可以提高資源利用率的,尤其是在片上資源不斷增長(zhǎng)、產(chǎn)品可靠性和進(jìn)入市場(chǎng)時(shí)間更重要的今天。
9. 避免訪問(wèn)存儲(chǔ)器和其它系統(tǒng)資源
只有在硬件機(jī)制不足的情況下,才應(yīng)該用軟件手段作為補(bǔ)充,例如當(dāng)需要非常大的緩沖器或者當(dāng)有限的處理降低了整體的干擾時(shí)。理想的情況是,如果在不使用系統(tǒng)總線或存儲(chǔ)器的情況下監(jiān)測(cè)系統(tǒng)總線或存儲(chǔ)器,將能得到更準(zhǔn)確的結(jié)果。如果將采集的數(shù)據(jù)量控制到最小,就可以避免使用存儲(chǔ)器中的緩沖器,只是通過(guò)JTAG或總線直接發(fā)送。
10. 連續(xù)采集
在一段時(shí)間內(nèi)從流體中連續(xù)采集樣品,對(duì)于該時(shí)段而言,稱之為連續(xù)采樣。連續(xù)采樣主要用于污染物濃度隨時(shí)間變化的場(chǎng)合,用以描述流體中污染物質(zhì)的平均濃度,尤其適用于江、河的水質(zhì)監(jiān)測(cè)和連續(xù)排放的廢水污染源、廢氣污染源的監(jiān)測(cè)??煞从骋欢〞r(shí)段內(nèi)的平均水平,代表性強(qiáng);缺點(diǎn)是不能反映污染物的瞬時(shí)濃度和最大值,容易掩蓋污染的極限情況。
在過(guò)程中監(jiān)測(cè)如果需要采集大量的數(shù)據(jù),可以考慮連續(xù)采集。注意,因?yàn)樵诿看芜\(yùn)行時(shí)會(huì)采集到不同的信息,將無(wú)法對(duì)結(jié)果進(jìn)行關(guān)聯(lián),因?yàn)闀r(shí)間戳包含不同的測(cè)試延時(shí)。在考慮從什么地方開(kāi)始發(fā)現(xiàn)問(wèn)題時(shí),這種方法最好。因?yàn)檫@樣能降低概率,也能降低監(jiān)測(cè)的等級(jí)。
11. 模塊
如果通過(guò)JTAG或總線發(fā)送數(shù)據(jù),則可以在目標(biāo)和主機(jī)之間放置一個(gè)處理模塊來(lái)處理時(shí)間戳的產(chǎn)生和有限的數(shù)據(jù)處理。通過(guò)將時(shí)間戳的工作卸載到該模塊,可以釋放測(cè)試總線的帶寬,用來(lái)發(fā)送更多的信息。模塊也是實(shí)現(xiàn)完全無(wú)干擾監(jiān)測(cè)的非常有效的方法。例如,模塊可以監(jiān)測(cè)系統(tǒng)總線,監(jiān)測(cè)測(cè)試總線上某個(gè)特定的存儲(chǔ)器地址范圍,或使用直接存儲(chǔ)器訪問(wèn)(DMA)來(lái)觸發(fā)一次準(zhǔn)實(shí)時(shí)的數(shù)據(jù)塊獲取。
硬件輔助監(jiān)測(cè)
在某些情況下,測(cè)試代碼可能要么對(duì)系統(tǒng)影響太大,要么不夠準(zhǔn)確,或者不能簡(jiǎn)單地獲得理解流過(guò)復(fù)雜的SoC的數(shù)據(jù)流的動(dòng)態(tài)特性所需要的信息。越來(lái)越多的SoC架構(gòu)包含用于輔助監(jiān)測(cè)器件的硬件運(yùn)行的功能,以滿足這些需求:
1. 事件計(jì)數(shù)器
計(jì)數(shù)是一種最簡(jiǎn)單基本的運(yùn)算,計(jì)數(shù)器就是實(shí)現(xiàn)這種運(yùn)算的邏輯電路,計(jì)數(shù)器在數(shù)字系統(tǒng)中主要是對(duì)脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù),以實(shí)現(xiàn)測(cè)量、計(jì)數(shù)和控制的功能,同時(shí)兼有分頻功能,計(jì)數(shù)器是由基本的計(jì)數(shù)單元和一些控制門所組成,計(jì)數(shù)單元?jiǎng)t由一系列具有存儲(chǔ)信息功能的各類觸發(fā)器構(gòu)成,這些觸發(fā)器有RS觸發(fā)器、T觸發(fā)器、D觸發(fā)器及JK觸發(fā)器等。計(jì)數(shù)器在數(shù)字系統(tǒng)中應(yīng)用廣泛,如在電子計(jì)算機(jī)的控制器中對(duì)指令地址進(jìn)行計(jì)數(shù),以便順序取出下一條指令,在運(yùn)算器中作乘法、除法運(yùn)算時(shí)記下加法、減法次數(shù),又如在數(shù)字儀器中對(duì)脈沖的計(jì)數(shù)等等。計(jì)數(shù)器可以用來(lái)顯示產(chǎn)品的工作狀態(tài),一般來(lái)說(shuō)主要是用來(lái)表示產(chǎn)品已經(jīng)完成了多少份的折頁(yè)配頁(yè)工作。
用軟件監(jiān)測(cè)一個(gè)事件時(shí),很多細(xì)微的細(xì)節(jié)不容易被發(fā)現(xiàn)。例如,記錄某個(gè)特定的CPU內(nèi)核在等待訪問(wèn)共享資源(如外部存儲(chǔ)器)時(shí)停止的次數(shù),采用軟件就無(wú)法實(shí)現(xiàn)。包含一些設(shè)置很好的計(jì)數(shù)器的硬件設(shè)計(jì),可以以很低的額外成本實(shí)現(xiàn)對(duì)系統(tǒng)動(dòng)態(tài)特性的深入了解。數(shù)據(jù)可以通過(guò)調(diào)試器的JTAG接口讀出,或被周期性地讀出,例如,由軟件中的背景任務(wù)讀出并寫入到緩沖器中,以便在稍后的時(shí)間進(jìn)行查詢。
評(píng)論