新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 以高速緩存和片上閃存實(shí)現(xiàn)微控制器近似的確定性

以高速緩存和片上閃存實(shí)現(xiàn)微控制器近似的確定性

作者: 時(shí)間:2012-01-30 來源:網(wǎng)絡(luò) 收藏

為了控制執(zhí)行機(jī)構(gòu),實(shí)時(shí)控制系統(tǒng)要從傳感器接收輸入信號(hào),經(jīng)控制運(yùn)算后向執(zhí)行機(jī)構(gòu)輸出指令信號(hào)。這些輸出必須在接收到輸入后的規(guī)定時(shí)間內(nèi)被觸發(fā)——即系統(tǒng)需具有實(shí)時(shí)性;同時(shí),對相同控制狀態(tài)下的相同輸入,輸出也應(yīng)當(dāng)始終相同——即系統(tǒng)需具有確定性。

電子行業(yè)中眾多領(lǐng)域的發(fā)展正在使這些基本的實(shí)時(shí)控制系統(tǒng)變得越來越復(fù)雜。一方面,控制算法越來越精細(xì),達(dá)到了人工智能的決策水平。另一方面,這些控制系統(tǒng)越來越多地連網(wǎng),即與以太網(wǎng)或無線局域網(wǎng) (LAN) 進(jìn)行局域連接,以及與互連網(wǎng)連接實(shí)現(xiàn)遠(yuǎn)距離通信。此外,用戶界面也變得越來越復(fù)雜,對安全性的要求也越來越高,使得數(shù)據(jù)加密和外部控制源的合法性驗(yàn)證成為系統(tǒng)不可缺少的功能。

這些發(fā)展趨勢使得處理器必須具備更強(qiáng)大的處理能力和更高的通信帶寬。處理器必須能夠按照某種確定的方式對實(shí)時(shí)輸入信號(hào)做出響應(yīng),同時(shí)還必須有足夠的存儲(chǔ)能力來處理各種網(wǎng)絡(luò)通信 (作為低優(yōu)先級(jí)的任務(wù))。然而,在很多情況下,為提高性能而進(jìn)行的系統(tǒng)升級(jí)需要保留原先的設(shè)備驅(qū)動(dòng)程序、網(wǎng)絡(luò)協(xié)議堆棧以及作為控制算法基礎(chǔ)的一些基本運(yùn)算操作。采用工業(yè)標(biāo)準(zhǔn)的處理器構(gòu)架尤其如此,如32位ARM RISC。圖1給出了一個(gè)遵從這兩個(gè)原則的MCU升級(jí)的實(shí)例,即將以ARM7為基礎(chǔ)的AT91SAM7X系列升級(jí)為以ARM9為基礎(chǔ)的 AT91SAM9XE 系列。這兩個(gè)系列的器件均有用于存儲(chǔ)程序代碼和參考數(shù)據(jù)的。

這兩個(gè)系列的一個(gè)重要差別在于:ARM9處理器具有指令和數(shù)據(jù),而ARM7處理器沒有。有助于緩解由于處理器和內(nèi)存之間的能力差異(前者能以約200MIPS的速度運(yùn)行代碼,而后者只能以約25MHz的速度傳輸數(shù)據(jù))而造成的性能下降。眾所周知,在采用緩存的系統(tǒng)中不可能實(shí)現(xiàn)完全的確定性。不過,ARM926EJ-S處理器和AT91SAM9XE系列的很多架構(gòu)特性可讓應(yīng)用開發(fā)人員實(shí)現(xiàn)近似確定的實(shí)時(shí)性能。

+寬數(shù)據(jù)總線

很多架構(gòu)上的特性可最大限度地提高內(nèi)部數(shù)據(jù)傳輸帶寬。如圖2所示,以AT91SAM9XE系列為例,除具有單獨(dú)的、且能以處理器速度工作的16Kb 指令和數(shù)據(jù)高速緩存外,還通過一個(gè)7層AHB總線矩陣在處理器、外設(shè)和內(nèi)存之間建立并行數(shù)據(jù)通道。USB主機(jī)和以太網(wǎng)MAC外設(shè)都有專門的DMA端口來實(shí)現(xiàn)自主數(shù)據(jù)傳輸,而其APB外設(shè)則配有外設(shè)DMA控制器(PDC),使內(nèi)存和網(wǎng)絡(luò)接口間的批量數(shù)據(jù)傳送幾乎不占用處理器資源。高級(jí)中斷控制器(AIC)可在規(guī)定的處理器周期數(shù)以內(nèi)處理一系列優(yōu)先的中斷向量。

圖1 AT91SAM7X系列升級(jí)為AT91SAM9XE系列

圖2 AT91SAM9XE架構(gòu)

高速緩存使處理器能按其所要求的速度及時(shí)獲得指令和數(shù)據(jù),除非緩存當(dāng)中未緩沖所需的數(shù)據(jù)或指令。遇到這種情況,處理器就得閑置一會(huì)兒,直到高速緩存被重新填充。高度并行的DMA數(shù)據(jù)傳輸機(jī)制能減少處理器對數(shù)據(jù)傳輸?shù)慕槿?,但并非完全不介入。因?yàn)槿魏螘r(shí)候都有可能出現(xiàn)中斷請求,即使只需很少的周期來處理該中斷。那么如何才能保證系統(tǒng)在規(guī)定的時(shí)間內(nèi),根據(jù)給定的輸入觸發(fā)確定的輸出呢?

如何獲得確定性

要獲得確定性,可將存儲(chǔ)在閃存中各個(gè)關(guān)鍵性操作的代碼分解成小于16Kb的模塊。將所需的模塊加載到指令緩存中,并鎖定,以確保執(zhí)行該模塊期間它始終在高速緩存中。如有必要,相關(guān)的數(shù)據(jù)結(jié)構(gòu)也可加載和鎖存在數(shù)據(jù)緩存中。這里,鎖存功能是通過高速緩存的鎖存寄存器來實(shí)現(xiàn)的。這樣就可保證關(guān)鍵代碼按處理器的速度執(zhí)行。

如果某一高速緩存正好沒有所需的指令代碼,則該緩存將通過它與間的128位數(shù)據(jù)總線重新加載所需的指令代碼。該總線能以4倍于處理器時(shí)鐘的速度加載32位數(shù)據(jù),大大縮短了刷新高速緩存的時(shí)間。此外,緩存的回繞功能 (wrapping) 可確保遺漏的關(guān)鍵數(shù)據(jù)被優(yōu)先加載。

考慮到所有這些因素,計(jì)算出執(zhí)行時(shí)間,并對同時(shí)出現(xiàn)多個(gè)中斷和DMA傳輸作最壞打算,就能確定是否能滿足實(shí)時(shí)性約束,以及還有多大的余量。必要時(shí),也可針對每種可能情況編寫一些后退程序,允許系統(tǒng)在無法達(dá)到實(shí)時(shí)要求時(shí),以故障弱化方式 (fail-soft,即工作可靠但性能下降的方式) 運(yùn)行。

結(jié)論

仔細(xì)設(shè)計(jì)應(yīng)用代碼,充分利用處理器內(nèi)核的關(guān)鍵架構(gòu)功能,將能在基于復(fù)雜控制算法的嵌入式連網(wǎng)實(shí)時(shí)控制系統(tǒng)中實(shí)現(xiàn)近似的確定性。這些關(guān)鍵架構(gòu)功能包括:數(shù)據(jù)和指令高速緩存的鎖存、回繞功能、連接高速緩存和片上閃存的128位寬度的數(shù)據(jù)總線、低遲滯高級(jí)中斷控制器,以及用于在外設(shè)、網(wǎng)絡(luò)接口及片上/片外閃存間直接傳輸數(shù)據(jù)的DMA控制器。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉