降低可攜式設備功耗的方法
2023-09-23 07:13:00
專利名稱:降低可攜式設備功耗的方法
技術領域:
本發明涉及電數字數據處理,特別是涉及移動用戶設備的節能方法。
背景技術:
可攜式設備是手持式電子產品的概稱,通常由中央處理器(CPU)、存儲設備、顯示設備(液晶屏)、電源設備(電池組)、輸入設備(鍵盤,遙控組件)和嵌入式處理軟體等部分組成,通過嵌入式軟體管理各硬體設備的工作,為用戶提供特定的功能。最常見的如行動電話、PDA、MP3、GAME BOY、PMP等。常見的存儲設備如DRAM和SDRAM簡述如下(1)DRAMDynamic Random-Access Memory,即動態隨機存儲器,最為常見的系統內存。DRAM只能將數據保持很短的時間。為了保持數據,DRAM必須隔一段時間刷新(refresh)一次。如果存儲單元沒有被刷新,數據就會丟失。
(2)SDRAMSynchronous Dynamic Random-Access Memory(同步動態隨機存儲器),是DRAM的替代品。SDRAM將內存存取與CPU時鐘同步,加快了數據傳輸速度。SDRAM還允許在存取某一內存模塊時讓另一個模塊作存取準備,這同樣加快了數據傳輸速度。與DRAM不同,SDRAM使用電流而非存儲電荷,因此無需持續刷新。
隨著電子技術的飛速發展,可攜式設備日益普及,由於可攜式設備通常採用電池供電,其功耗大小直接關係到產品的易用性。目前可攜式設備通常採用SDRAM作為內存,其工作電流在100mA左右,而對於CPU來說其工作電流通常在100mA以上,這兩部分佔可攜式設備電源消耗的絕大部分。因而,降低可攜式設備功耗的方法,主要是降低CPU和內存的功耗。對於大部分外設,如硬碟,LCD,音頻解碼器等設備,在其不工作的時候通常可以將這些設備的電源關閉或置為STANDBY/SLEEP(待機/睡眠)狀態以達到減小功耗的目的。但對於CPU來說,一旦關閉電源或置為STANDBY/SLEEP狀態則系統將無法正常運行。對於內存SDRAM來說,由於所有的軟體程序指令和數據都存放在SDRAM上運行,如果將SDRAM電源關閉或置為STANDBY/SLEEP狀態,則軟體將丟失所有的運行指令和數據,系統也無法正常運行。
發明內容
本發明要解決的技術問題在於避免上述現有技術的不足之處而提出一種降低可攜式設備功耗的方法,採用該方法,可令可攜式設備節省用電,在同樣電池容量的條件下,可攜式設備運行時間延長,方便用戶。
本發明解決所述技術問題可以通過採用以下技術方案來實現提出一種降低可攜式設備功耗的方法,包括以下步驟,①分析可攜式設備中的軟體,凡須頻繁調用、且滿足放入CPU片內高速緩衝存儲器cache運行條件的代碼作為可放入所述高速緩衝存儲器空間運行的備選代碼;②對於所述備選代碼,在函數入口處,增加將SDRAM置為自刷新狀態的處理代碼,在函數出口處,增加將SDRAM置為正常工作狀態的處理代碼;③將需要在所述高速緩衝存儲器內運行的備選代碼存儲位置設為所述高速緩衝存儲器的存儲空間地址;④增加將可攜式設備系統的運行代碼按照其存儲空間分別複製到SDRAM和所述高速緩衝存儲器的正確位置的處理代碼。
將一部分程序指令和數據加載到CPU片內高速緩衝存儲器內運行,對於訪問所述高速緩衝存儲器上的代碼和數據,CPU的工作電流基本不變,且同時具備更短的指令/數據存取周期,其軟體運行速度更快。與現有技術相比較,本發明具有以下技術效果1、降低了可攜式設備的運行功耗;2、在降低功耗的同時提高了系統的運行速度。
具體實施例方式
以下結合附圖
所示之最佳實施例作進一步詳述。
本發明降低可攜式設備功耗的方法,包括以下步驟,①分析可攜式設備中的軟體中頻繁調用、且滿足放入CPU片內高速緩衝存儲器內運行條件的代碼作為可放入所述高速緩衝存儲器內運行的備選代碼。所述放入CPU片內高速緩衝存儲器內運行條件包括代碼長度小於所述高速緩衝存儲器的可用空間,和在執行該代碼的周期內關閉系統中斷不會引起系統故障或系統反應慢等情況。所述高速緩衝存儲器採用靜態隨機存儲器SRAM,Static Random-Access Memory,即靜態隨機存儲器,SRAM由邏輯電晶體組成,數據採用觸發的方式進行存儲,因此改變和讀取內存單元格的速度非常快。在眾多的內式中,由於SRAM的訪問速度最快,通常為SDRAM的10倍左右,與CPU的速度最為接近,因此許多CPU內部都採用SRAM作為高速緩衝存儲器(CACHE)使用。
②對於將在SRAM內運行的所述備選代碼,在函數入口處,增加將SDRAM置為自刷新狀態的處理代碼,在函數出口處,增加將SDRAM置為正常工作狀態的處理代碼。SDRAM刷新操作分為兩種自動刷新(Auto Refresh,簡稱AR)與自刷新(Self Refresh,簡稱SR)。不論是何種刷新方式,都不需要外部地址信息,因為這是一個內部的自動操作。通過特殊的命令可以將SDRAM置為自刷新模式,其設置方法參考各SDRAM的操作手冊。在自刷新模式下,SDRAM的內容不丟失。選用K4S560832H-T(U)L型號的SDRAM,在0-70℃的環境溫度條件下,其工作電流為100mA,在自刷新模式下的電流為1.5mA。
系統運行時,若下一條指令代碼存放於SDRAM上,這時若關閉SDRAM電源或將SDRAM置為STANDBY/SLEEP狀態,系統將無法取得下一條指令,則系統發生異常。若下一條指令代碼存放於SRAM上,此時若關閉SDRAM電源或將SDRAM置為STANDBY/SLEEP狀態,系統可以短暫正常運行,但一旦系統需要再次訪問SDRAM的數據時,其數據由於斷電/STANDBY/SLEEP的過程已經完全丟失,系統仍將無法正常運行。但若下一條指令代碼存放於SRAM上,切換到SRAM執行後若將SDRAM置為Self-refresh狀態,則返回SDRAM運行後SDRAM的數據不會丟失,系統可以正常運行。
對於嵌入式設備,通常都安裝有一定的作業系統,作業系統調度時中斷產生會引起中斷服務程序的強制執行。若中斷服務程序的指令或數據存放在SDRAM中,那麼切換到SRAM運行的同時中斷到達,CPU嘗試訪問SDRAM的數據,而這時SDRAM仍然處於自刷新狀態,SDRAM不接受除CKE(CLOCK ENABLE)時鐘使能信號以外的任何信號,CPU將無法得到SDRAM中的數據。此時,系統也將異常。解決方法為程序在SRAM運行時關閉中斷以保證SRAM對CPU的獨佔。因而,對於所述備選代碼,在函數入口處,同時增加關閉系統中斷處理代碼,在函數出口處,同時增加打開系統中斷處理代碼。
③通過編譯預處理方法,將需要在所述高速緩衝存儲器SRAM內運行的備選代碼存儲位置設為SRAM的存儲空間地址。
計算機系統訪問存儲設備的基本原理如下對於計算機系統來講,外圍設備尤其是存儲設備的訪問都是通過總線及片選(CS)來訪問的。CPU將其內部的片選(CS)信號指定為不同的地址空間,通常若CS信號為1,則CS管腳的物理電平為高電平,若CS信號為0,則CS管腳的物理電平為低電平。同時,地址總線的數據決定了地址總線的電平特性,通常若某單根地址線的數據為1則其地址線上的物理電平為高電平,若數據為0則其地址線上的物理電平為低電平。若存儲設備的使能信號與CS或地址線的某一根相連接,當CS信號為1或地址線上的數據為1時,則存儲設備的使能管腳為高電平,當CS信號為0或地址線上的數據為0時,則存儲設備的使能管腳為低電平。使能管腳為高電平時則存儲設備能正常工作,使能管腳為低電平時則存儲設備不能正常工作。以上描述都是針對正邏輯描述。這樣,CPU通過對CS或地址總線的改變則可以選通或禁止某個存儲設備,在軟體上則表現為不同的地址可以使存儲設備工作,其他的地址無法使存儲設備工作,因此對於某些特定的地址空間則成為存儲設備的專有訪問空間,用戶只能通過訪問這些特定的地址才能訪問存儲設備。
對於可攜式設備,其程式語言大多數為彙編語言或C/C++語言。對於這些語言的編譯器都提供一些預處理方法來指定將某段代碼或數據存放到指定的地址空間,如#pargmacode_seg等編譯預處理指令。這些指令和方法對於不同的處理器和編譯器有不同的表達方式,使用時參考該處理器和編譯器的參考手冊。所以,編譯預處理能提供一種將某段代碼或數據存放到指定的地址空間的方法。
④通過修改系統引導代碼(BootLoader)程序,增加將可攜式設備系統的運行代碼按照其存儲空間分別複製到SDRAM和SDRAM的正確位置的處理代碼。系統引導代碼BootLoader,CPU初始運行時代碼,通常存放在FLASH或ROM上。CPU啟動時,通常會到特定的設備中開始取指令運行。由於FLASH和ROM的局限性,通常系統引導代碼,都將FLASH和ROM中的代碼複製到SDRAM上運行。因此,這個步驟是將代碼分別存儲在不同的存儲設備上的必備過程。
例如對於一款MP3播放器,其CPU為100MHZ左右,工作電壓1.8V,工作電流100mA;片內SRAM大小為96Kbytes;其SDRAM採用K4S560832H-T(U)L,工作電流按100mA計算,工作電壓3.3V;其他外設如音頻DAC晶片其工作電壓3.3V,工作電流20mA。
對於MP3的解碼程序,優化後其代碼大小及數據存儲空間供56KBytes左右,根據不同的MP3文件格式,其解碼和輸出佔用時間的比例約為1∶8;輸出代碼由於有其他外設需要訪問,同時必須開啟中斷需要使用SDRAM,無法放入到SRAM中運行。
在不利用本發明方法的情況下,其平均功耗為(1.8*100)+(100*3.3)+(3.3*20)=576mW。在使用本發明所描述的方法情況下,其平均功耗為(1.8*100)+(1.5*3.3/8)+(100*3.3*7/8)+3.3*20=535mW。將兩者對比可以發現,功耗降低了41mW左右,約降低了7.1%.若原來的電池連續播放時間為13小時,在採用本發明方法後可以延長到14小時。其改進效果顯著。
權利要求
1.一種降低可攜式設備功耗的方法,其特徵在於包括以下步驟,①分析可攜式設備中的軟體,凡須頻繁調用、且滿足放入CPU片內高速緩衝存儲器cache運行條件的代碼作為可放入所述高速緩衝存儲器空間運行的備選代碼;②對於所述備選代碼,在函數入口處,增加將SDRAM置為自刷新狀態的處理代碼,在函數出口處,增加將SDRAM置為正常工作狀態的處理代碼;③將需要在所述高速緩衝存儲器內運行的備選代碼存儲位置設為所述高速緩衝存儲器的存儲空間地址;④增加將可攜式設備系統的運行代碼按照其存儲空間分別複製到SDRAM和所述高速緩衝存儲器的正確位置的處理代碼。
2.如權利要求1所述的降低可攜式設備功耗的方法,其特徵在於所述高速緩衝存儲器採用靜態隨機存儲器SRAM。
3.如權利要求1所述的降低可攜式設備功耗的方法,其特徵在於步驟①中所述放入CPU片內高速緩衝存儲器cache運行條件,包括代碼長度小於所述高速緩衝存儲器的可用空間,和在執行該代碼的周期內關閉系統中斷不會引起系統故障或系統反應慢。
4.如權利要求1所述的降低可攜式設備功耗的方法,其特徵在於步驟②中,還包括在函數入口處,同時增加關閉系統中斷處理代碼,在函數出口處,同時增加打開系統中斷處理代碼。
5.如權利要求1所述的降低可攜式設備功耗的方法,其特徵在於步驟③通過編譯預處理方法來實現。
6.如權利要求1所述的降低可攜式設備功耗的方法,其特徵在於步驟④通過修改系統引導代碼程序來實現。
全文摘要
本發明涉及一種降低可攜式設備功耗的方法,包括以下步驟將可攜式設備中的軟體中頻繁調用、且滿足放入CPU片內高速緩衝存儲器內運行條件的代碼作為可放入所述高速緩衝存儲器內運行的備選代碼;對於所述備選代碼,在函數入口處,增加將SDRAM置為自刷新狀態的處理代碼,在函數出口處,增加將SDRAM置為正常工作狀態的處理代碼;將需要在所述高速緩衝存儲器內運行的備選代碼存儲位置設為所述高速緩衝存儲器的存儲空間地址;增加將可攜式設備系統的運行代碼按照其存儲空間分別複製到SDRAM和所述高速緩衝存儲器的正確位置的處理代碼。本發明具有以下技術效果1.降低了可攜式設備的運行功耗;2.在降低功耗的同時提高了系統的運行速度。
文檔編號G06F1/32GK101059775SQ20061006047
公開日2007年10月24日 申請日期2006年4月19日 優先權日2006年4月19日
發明者劉一寧 申請人:深圳市朗科科技有限公司