作者:VinayManikkoth,NileshBadodekar
嵌入式系統的性能取決于其軟硬件能力。一個編寫合理的軟件可以利用硬件的所有能力發揮后者的最大性能。與此類似,無論軟件設計多么合理,低效的硬件都可能影響系統性能。
數十年來,傳統嵌入式系統的結構一直沒有改變。圖1顯示了一個典型嵌入式系統的框圖。一個微控制器和一個微處理器位于系統的核心。按照具體應用,系統設計人員可根據需要刪減接口和外設。如果控制器的內置存儲器不足,就需要使用閃存、SRAM、DRAM等外置存儲器。通常而言,閃存用于存儲控制器執行的代碼,而SRAM用于存儲運行時臨時變量和保存重要的應用數據塊。
圖1:一個典型嵌入式系統的框圖
功耗預算和性能一直是選擇系統組件-無論是控制器還是外設-的兩大標準。如果性能是最為重要的標準,則設計人員傾向于選擇速度最快的組件,從而彌補較高的功耗預算。同樣,如果功耗是最重要的標準(例如,對于電池供電型系統而言),則設計人員傾向于選擇功耗最低的組件。因此,嵌入式系統通常分為三類:
1.永遠“處于開機狀態”的系統:此類系統可保證它們能夠從一個不間斷電源獲得電能。這些系統是高性能系統,可以最高的運行頻率工作。
2.電池供電型系統:一塊板載電池是此類系統的唯一電源(如手機)。雖然性能是此類系統的一個重要標準,但更長的電池續航時間最為重要。因此,這些系統使用功耗最低的組件。
3.電池支持性系統:此類系統必需能夠可靠地運行,即使在失去板載電源的情況下也是如此。為了在斷電時避免丟失重要數據,系統設計人員會提供一塊小電池(通常是一顆240mAh的紐扣電池),以便為SRAM保留等功能提供備用電源,并維持實時時鐘(RTC)。
正常運行時,電池支持型系統使用可用電源工作。根據存儲器映射,它可以從閃存提取代碼,然后將結果存儲到SRAM中。即使是在斷電時,存儲這些數據變得也很重要。為了解決這個問題,SRAM被連接到一塊備用板載電池。正常運行時,板載電源負責為系統供電;斷電時,一塊監控芯片將把SRAM的電源切換到板載電池,并將SRAM置于待機模式。圖2顯示了電池支持型系統中SRAM的典型功耗。正常運行時,監控芯片使用板載電源。斷電時,SRAM被監控芯片切換到板載電池,并被禁用。只要電池有電,系統可以一直處于這一模式。一旦板載電源恢復,監控芯片將逐漸使用板載電源為SRAM供電。通常而言,此類芯片需要1ms-10ms完成這個過渡。這段時間系統不會受到影響,這是因為控制器也需要同樣長的時間完成其上電復位程序。
圖2:電池支持型系統的功耗模式
當此類系統部署到現場時,維修它們會很不方便。事實上,這些系統兩三年內不用維修。因此,電池續航時間變得非常重要。系統設計人員傾向于選用那些在待機模式下消耗電流最少的SRAM。如果觀察一下市場上出售的SRAM(見表1),你會發現設計人員在選擇SRAM時沒有太多選擇。對更長的電池續航時間的需求讓他們幾乎不可能選擇一個高速SRAM。搭載一顆240mAH紐扣電池的一個16Mb高速SRAM僅能提供12小時的續航時間,而一個低功耗SRAM卻能提供長達三年的電池續航時間。
表1:SRAM16Mb SRAM產品組合
所有系統的性能都遵從阿姆達爾定律。簡而言之,阿姆達爾定律規定:一個系統的速度是其最慢組件的速度。過去幾十年,微控制器廠商推出了能夠以高于150 MHz的速度運行的控制器。很多此類控制器內置低功耗和/或深度睡眠模式,當系統需要由電池供電時,它們能夠實現較快的運行速度和較低的功耗。
但是,如果外設組件不能匹配其速度,一個較快的控制器將無法提升性能。外置內存接口是一個重要的高速鏈路,而一個低性能的閃存或SRAM可能會成為瓶頸。閃存的初始訪問時間為60-80ns。但隨著Page、Burst、eXecute In Place (XIP)等各類模式的出現,閃存芯片的讀速度提高了三倍,從而讓控制器能夠在20-30 ns 內(即150 MHz控制器的2到3個時鐘周期)從閃存讀取數據。但是,選擇低功耗SRAM意味著控制器仍然需要45 -70ns的時間來訪問SRAM(4到10個時鐘周期)。
為了了解這種性能選擇的效應,我們可以設想有一個系統,它在1ms內循環執行一段代碼,其中微控制執行代碼的時間占70%,將結果(關鍵變量)存儲到SRAM中的時間占剩余的30%。使用一個較快的處理器應能確保大幅縮短這一執行時間。憑借其改良運行模式,閃存能夠匹配這個速度,并將代碼執行時間縮短三分之二(從700到230us)。但是,選擇一個低功耗SRAM,意味著SRAM存取速度沒有提升。理想的情況是,這個系統的執行時間應縮短300%(從1ms到330us),但由于使用了低功耗SRAM,執行時間僅縮短了200%(從1ms到550us)。
對速度的需求
你開車時車速越快,油耗就越高。這個簡單的原則同樣適用于嵌入式系統,此時SRAM是車,電池續航時間則是里程數。在上述場景中,系統設計人員既可以選擇一個高速SRAM(存取時間為10ns)來提升系統性能,但犧牲電池續航時間,也可以選擇一個低功耗SRAM,但犧牲系統性能。
存儲器廠商發現市場需要兼具快速和低功耗的SRAM。除了常見的運行模式―工作和待機―之外,這些SRAM還有一個名為“深度睡眠”的低功耗模式。深度睡眠模式由一個輸入信號控制,該信號可在斷言后將設備置于深度睡眠模式。例如,與低功耗SRAM的45-55ns的存取速度相比,賽普拉斯的PowerSnooze(電力打盹)SRAM提供10ns的存取速度。在功耗方面,其深度睡眠電流在10-20uA范圍內,而一個16M高速SRAM的待機電流則高達 30 - 40mA。表2對比了三類SRAM的速度、電流消耗等關鍵參數。
表2:三種類型的SRAM對比
系統設計人員可以通過一個GPIO 控制深度睡眠模式的進入,或者使用監控芯片自動控制模式切換。對于GPIO控制,軟件可以通過分析SRAM存取利用其深度睡眠模式。
電池支持型低功耗SRAM
對于電池支持型存儲器額外電路的需求源于以下事實:斷電時,控制器將喪失其I/O驅動功能。這會導致信號線路上出現中間邏輯電平,后者將通過板載電容和泄漏逐漸向低電壓處放電。失去控制意味著即使SRAM開始由電池供電,芯片啟用信號 (ˉCE)將變為邏輯低狀態,從而啟用SRAM。為了避免這個問題,系統設計人員使用一塊監控芯片監測板載電源,并控制SRAM芯片啟用信號。
圖3詳細描述了SRAM、處理器接口和監控芯片。所有地址和數據線以及控制信號均由處理器驅動。SRAM的主用低電平芯片啟用信號由監控芯片驅動,后者由來自控制器的芯片啟用信號驅動。正常運行時(即板載電源可用時),監控芯片對于控制器和SRAM完全透明,但在斷電時,監控芯片將接管對去往SRAM的芯片啟用信號的控制,將其變為邏輯高狀態,同時忽略控制器的芯片啟用信號。這個監控芯片將板載電源無縫切換至電池,并禁用SRAM,從而避免數據丟失。第二個芯片啟用信號是高電平有效信號,由控制器通過一個弱下拉直接驅動。這個弱下拉可確保斷電時第二個芯片啟用信號被下拉到邏輯低狀態,并禁用SRAM。
圖3:電池支持型低功耗SRAM
對于那些在斷電時使用備用電池的應用,高速、低功耗SRAM較低的深度睡眠電流使其成為這些應用的理想選擇。正常運行時,SRAM可以高速運行,而斷電時,SRAM可以通過將深度睡眠信號斷言到邏輯低狀態而自動切換到深度睡眠模式。圖4顯示了在不改變一個低功耗SRAM的現有設計的情況下,如何使用一個帶深度睡眠模式的SRAM。
斷電時,監控芯片禁用SRAM,而深度睡眠引腳上的下拉將自動把信號下拉到邏輯低狀態,從而允許該部分進入深度睡眠模式。監控芯片確保板載電源不可用時SRAM一直處于禁用狀態。電源恢復后,監控芯片將繼續保持SRAM的禁用狀態,直到其上電復位超時。這個超時時段從1到100ms不等,具體取決于所選擇的監控芯片。超時時段允許控制器成功啟動,之后它可以控制深度睡眠信號,并將其轉變為邏輯高狀態。這能夠管理高速、低功耗SRAM的深度睡眠退出時序,同時使之用于控制器訪問。
圖4:帶有高速、低功耗SRAM的備用電池
高速、低功耗SRAM可提供相當于傳統低功耗SRAM的電池備用時間,同時通過提高SRAM的訪問速度滿足系統設計人員的性能提升要求。
責任編輯:gt
-
控制器
+關注
關注
112文章
16416瀏覽量
178783 -
嵌入式
+關注
關注
5087文章
19158瀏覽量
306450 -
電池
+關注
關注
84文章
10650瀏覽量
130520
發布評論請先 登錄
相關推薦
評論