專利名稱:用于存儲器備份的電力隔離的制作方法
用于存儲器備份的電カ隔離對相關申請的交叉引用本專利申請基于并要求于2010年12月20日提交、由Peter B. Chon所做出的標題為 “Low Power Hardware Controlled Memory Backup that includes Encryption and Signature Generation”的美國臨時專利申請No. 61/424,701的權益,對于該申請所公開和教導的全部內容,通過引用,具體地包含于此。
背景技術:
計算機或者其它電子系統的全部或者大部分部件都可以集成到單個集成電路 (芯片)中。該芯片可以包含數字、模擬、混合信號和射頻功能的多種組合。這些集成電路可以稱為片上系統(SoC或者S0C)。ー種典型的應用是在嵌入式系統的領域中。片上系統的變體是單個芯片上多種RAID功能的集成。這可以稱為片上RAID(ROC)。RAID陣列可以以提供冗余和錯誤恢復而沒有任何數據損失的方式配置。通過允許同時對多個盤驅動器讀或寫數據,還可以配置RAID陣列提高讀寫性能。RAID陣列還可以配置成允許“熱插拔(hot-swapping) ”,這允許故障的盤被替換,而不會中斷陣列的存儲服務。由來自加利福尼亞大學Berkeley分校的David A. Patterson等人所發表的標題為 "A Case for Redundant Arrays of Inexpensive Disks (RAID),,的 1987 _出片反·itife了 RAID技術的基本概念和水平。RAID存儲系統一般利用對用戶或者主機系統屏蔽管理存儲陣列的細節的控制器。 該控制器使存儲陣列看起來像一個或者多個盤驅動器(或者卷)。盡管用于特定卷的數據 (或者冗余數據)可以跨多個盤驅動器分布,但這也可以實現。
發明內容
因此,本發明的一種實施方式可以包括備份數據的方法,該方法包括接收用于第一片上子系統的電力;接收電カ故障情況的指示信號(indicator);基于所述電カ故障情況的指示信號,在硬件的控制下,隔離片上易失性存儲器子系統;在該易失性存儲器子系統被隔離后,去除所述第一片上子系統的電力;并且,在去除所述第一片上子系統的電力后, 在硬件的控制下,將存儲在易失性存儲器上的數據拷貝到非易失性存儲器。因此,本發明的一種實施方式還包括集成電路,包括接收電カ的第一片上子系統;電力故障情況的指示信號;硬件狀態機基于所述電カ故障情況的指示信號隔離片上易失性存儲器子系統;在隔離所述易失性存儲器子系統后,去除所述第一片上子系統的電力;并且,在去除所述第一片上子系統的電力后,將存儲在易失性存儲器上的數據拷貝到非易失性存儲器。因此,本發明的一種實施方式可以進一歩包括隔離片上易失性存儲器控制器與集成電路其余部分的方法,包括接收用于集成電路其余部分的至少一部分的第一電カ供給; 接收用于易失性存儲器控制器的第二電カ供給;接收電カ供給切斷指示信號;基于所述電 カ供給切斷指示信號,啟動片上狀態機來隔離所述易失性存儲器控制器;基于所述易失性存儲器控制器被隔離的指示信號,去除集成電路其余部分的至少一部分的第一電カ供給; 以及,將數據從被所述易失性存儲器控制器控制的易失性存儲器拷貝到非易失性存儲器。
圖1是電カ隔離與備份系統的框圖。圖2是電カ隔離方法的流程圖。圖3A和加是數據操作系統配置的框圖。圖4是命令數據塊(⑶B)的說明。圖5是電カ隔離與備份系統的框圖。圖6是計算機系統的框圖。
具體實施例方式圖1是電カ隔離與備份系統的框圖。在圖1中,隔離與備份系統100包括集成電路110、電カ控制器150,SDRAM 125和非易失性存儲器(例如,閃存)135。集成電路(IC) 110 包括SDRAM子系統115、控制器140、時鐘發生器141和其它電路111。SDRAM子系統115包括SDRAM控制器120和非易失性存儲器控制器130。其它電路111可以包括臨時儲存裝置 112(例如,高速緩沖存儲器、緩沖器,等等)。SDRAM控制器120經接ロ 121與SDRAM 125接 ロ并對其進行控制。非易失性存儲器控制器130經接ロ 131與非易失性存儲器135接ロ并對其進行控制。SDRAM子系統115(并且因此SDRAM控制器120和非易失性存儲器控制器 130)操作性地耦合到控制器140、時鐘發生器141、其它電路111和臨時儲存裝置112。時鐘發生器141操作性地耦合到控制器140和其它電路111。電カ控制器150向IC 110提供電カ供給A (PWRA) 160。電カ控制器150向SDRAM 子系統115提供電カ供給B(PWRB) 161。電カ控制器150向SDRAM 125提供電カ供給 C(PffRC) 162。電カ控制器150向非易失性存儲器135提供電カ供給D (PWRD) 163。電カ控制器150向控制器140提供電カ故障信號165。電カ控制器150還通過信號166操作性地耦合到SDRAM子系統。應當理解,如在本申請中所使用的,SDRAM(同步動態隨機存取存儲器)意圖包括所有易失性存儲器技木。因此,在一種實施方式中,SDRAM子系統115可以包括靜態隨機存取存儲器(SRAM)控制器,而SDRAM 125可以包括SRAM設備。在一種實施方式中,當電カ控制器150檢測到電カ故障情況(即將發生的電カ故障或者已有的電カ故障)吋,電カ控制器150通過電カ故障信號165通知IC 110這種情況。這將啟動電カ隔離序列,以將SDRAM子系統115與IC 110的其余部分(尤其是其它電路111)隔離開。在一種實施方式中,整個電カ隔離序列是由硬件(例如,控制器140、SDRAM 子系統115、或者控制器140和SDRAM子系統115 二者)控制的,而沒有來自軟件的交互。一旦接收到電力故障情況的通知,連接到SDRAM子系統115的所有接ロ(例如,對于其它電路111的接ロ)就將中斷。片上臨時儲存裝置112將被轉儲清除(flush)。在圖 1中,應當理解,盡管臨時儲存裝置112被示為在SDRAM子系統115的外面,但是臨時儲存裝置112也可以是SDRAM子系統115的一部分。在一個例子中,臨時儲存裝置112可以是高速緩沖存儲器(例如,ー級高速緩沖存儲器、ニ級高速緩沖存儲器、三級高速緩沖存儲器)、記入緩沖器(posting buffer)等。一旦臨時儲存裝置112已經被轉儲清除,連接到SDRAM子系統115的邏輯就指示用于轉儲清除的接ロ何時已經中斷。一旦中斷,這些接ロ就不再接受任何新的循環。一旦所有接ロ都中斷了,外部設備和內部核心邏輯(即,其它電路111)所需的輸入就被鎖存,使得當隔離發生吋,它們的狀態將不會丟失。輸入被鎖存后不再需要的時鐘被斷開。SDRAM子系統將切換到內部生成的時鐘,或者由與SDRAM子系統115共享電カ的時鐘發生器(例如, 時鐘發生器141)生成的時鐘。在這之后,存儲器備份不需要的、到SDRAM子系統115的輸入被隔離。在一種實施方式中,這些輸入被驅動至失效狀態。在輸入的隔離完成之后,SDRAM子系統115(或者控制器140)向電カ控制器150 發信號(例如,利用信號166),以去除PWRA 160。這導致,除SDRAM子系統115之外,到IC 110的全部的電カ都被關斷。SDRAM子系統115位于至少與其它電路111分開的電カ層上。 這使得對于SDRAM子系統的電カ能夠保持(即,通過PWRB 161),直到對于隔離與備份系統 100的電カ完全失去。除了控制到除SDRAM子系統115 (及SDRAM子系統115所需的任何其它邏輯)之外所有其它電路的電カ的隔離和去除,一旦接ロ已經中斷并且臨時儲存裝置112被轉儲清除,內部的存儲器備份邏輯就將開始把數據從SDRAM 125移到非易失性存儲器135。在ー種實施方式中,這些是在PWRA去除后整個芯片上運行的僅有的循環。圖1示出了 IC 110芯片和外部邏輯之間的連接及可以用于電カ隔離和后續存儲器備份的ー些內部連接。當電カ控制器150檢測到電カ故障時,它通過電カ故障信號165 通知IC 110。控制器140監視電力故障信號165。當控制器140看到電カ故障信號165被斷言而且使得電カ隔離可以進行時,控制器140通過斷言p0Wer_iS0_begin信號(未在圖 1中明確示出)通知SDRAM子系統115開始隔離序列。然后,SDRAM子系統115執行電カ隔離序列所需的步驟。電カ隔離序列中所包括的步驟在本說明書中隨后更詳細地解釋。一旦電カ隔離序列完成,就斷言MSS_COre_iSO_ready信號(圖1中沒有明確示出),指示至少PWRA 160可以被去除。電カ控制器150禁用PWRA 160,但將保持PWRB 161、 PffRC 162和PWRD 163啟用。禁用PWRA 160去除IC 110中除連接到PWRB 161的電路之外的部分的電力。SDRAM子系統115以及關聯的鎖相環(例如,在時鐘發生器141內部)和 10(例如,接ロ 121和131)在與IC 110的其余部分不同的電カ層內。這個層是由PWRB 161 供電的,并且將保持啟用。在一個例子中,其電路的至少一部分在這個獨立電カ層內的功能塊是控制器140、時鐘發生器141和SDRAM子系統115。在一種實施方式中,外部SDRAM 125 保持由PWRC 162供電,并且外部非易失性存儲器保持由PWRD 163供電。存在必須保持帶電以執行存儲器備份的減少數量的邏輯。在電カ隔離序列中,SDRAM子系統115在合適的時間開始SDRAM 125存儲器備份。 這種備份將所需的(所請求的)數據從SDRAM 125移到非易失性存儲器135。在一種實施方式中,整個存儲器備份是在沒有軟件干渉的情況下執行的。應當理解,以上所討論而且部分地由圖1示出的用于提供電カ供給160-163的方法是對隔離與備份系統100的一個或多個部件提供(和去除)電カ的示例方式。在所示出的例子中,所有電カ供給160-163和多個電カ域/層的控制都是在IC 110的外部進行的。 但是,還存在對隔離與備份系統100的一個或多個部件提供(和去除)電カ的其它方法。一種方法可以針對每個電壓使用單個外部電源,然后利用在IClio內部的開關產生不同的電力域/層。另ー種方法可以減少外部電壓的數量,并且使用隔離與備份系統100的ー個或多個部件(例如,IC110)內部的調節器與IC 110內部的開關一起來獲得多種電壓,以控制不同的電カ域/層。對于這些方法,電カ隔離是以大致相同的方式進行的。不同之處在于需要被通知以便保持電カ供給161-163啟用的電カ控制邏輯150可以位于內部或者外部。圖2是電カ隔離方法的流程圖。圖2中所示出的步驟可以由隔離與備份系統100 的ー個或多個元件來執行。為第一片上子系統接收電カ002)。例如,給其它電路111供電的PWRA 160可以被IC 110接收。接收電カ故障情況的指示信號(indicatOrM204)。例如,電カ故障信號165可以被IC 110接收。當斷言p0Wer_iS0_begin信號時,這可以導致電カ隔離序列開始。中斷到SDRAM子系統的接ロ(206)。臨時儲存裝置被轉儲清除到SDRAM(208)。例如,用于臨時存儲到SDRAM 125/來自SDRAM125的數據拷貝的三級高速緩沖存儲器、ニ級高速緩沖存儲器、記入緩沖器或者任何其它類型的存儲器儲存裝置都可以被轉儲清除。當它們已經完成了所有未完成循環并停止接受任何新循環吋,連接到每個接ロ的邏輯都可以返回中斷指示。在硬件控制下,片上SDRAM子系統被隔離QlO)。例如,當SDRAM接ロ(或者臨時儲存裝置11 指示其已經中斷接受循環吋,通過將其輸入設置成無效狀態,而隔離其輸入。 一旦接收到來自其它接ロ的中斷,需要為外部核心設備和內部邏輯保留的輸入被鎖存。這些輸入包括例如復位、用于PLL的信號和帶(strap)輸入的項目。在這個時間點,SDRAM子系統不再需要的任何時鐘都可以斷開,以幫助減少功耗。稍后,可以斷言信號(例如,MSS_ COre_iSO_enable),這個信號將指示隔離到SDRAM子系統的所有輸入并將它們設置成其無效狀態。由第一片上子系統使用的時鐘和電カ被斷開012)。例如,到臨時儲存裝置112 的時鐘可以切換到內部生成的時鐘。一旦輸入已經被隔離,就可以斷言信號(例如,MSS_ core_iso_ready)。例如對于電カ控制邏輯150,這指示連接到IC 110的PWRA 160現在會
被禁用。生成被SDRAM子系統使用的時鐘(214)。例如,時鐘發生器141可以生成當PWRA 160斷開時要被SDRAM子系統使用的時鐘。數據從SDRAM拷貝被非易失性存儲器016)。 例如,從SDRAM 125到非易失性存儲器135的存儲器備份可以通過斷言信號(例如,flaSh_ offload_begin)開始。從SDRAM子系統、SDRAM和非易失性存儲器去除電カ(218)。例如,在完成存儲器備份后在電カ控制器150的控制下,或者僅僅因為到整個隔離與備份系統100 的電カ故障,電カ從SDRAM子系統115、SDRAM 125和非易失性存儲器135去除。在備份期間隔離SDRAM子系統115的電カ的優點是減少了所消耗的電量。只有 IC 110內部處理存儲器備份的邏輯、外部SDRAM 125和非易失性存儲器135被供電。通過減少功耗,增加了在所有其余電カ被消耗完之前可用于執行存儲器備份的時間量。除了在備份完成之前需要較少的外部邏輯來維持電力之外,有更多時間使得更多存儲器能夠被備份。因為電カ隔離正在進行,所以內部移動閃存控制器以減少功耗和進行存儲器備份所需的整體系統成本會是有利的。在一種實施方式中,通過在當SDRAM 125中的數據移到非易失性存儲器135時執行加密和/或數據完整性簽名計算,為備份的數據提供附加的數據保護。數據的加密提供了用于存儲數據的安全方法。數據完整性簽名計算防止大多數可能出現的數據錯誤。當需要存儲器備份或者恢復吋,SDRAM子系統115在SDRAM125和非易失性存儲器 135之間移動數據。SDRAM子系統115可以使用用于指示所請求的數據移動的CDB(命令描述符塊)列表。這些⑶B的格式一般是預先定義的。⑶B中的ー個字段是指示在SDRAM125 中什么地方讀或者寫數據的存儲器地址字段。在一種實施方式中,這個字段中所提供的地址位的數量超過了尋址所有SDRAM 125所需的數量。這些地址位中不需要的一些地址位可以用于編碼關于在數據從SDRAM 125移出/移入時數據應當如何操作的信息。當執行存儲器備份或者恢復吋,或者在其它時候,可以發生這種移動。未使用的地址位的編碼可以指示數據是否應當編碼/解碼、是否需要生成簽名、簽名是否應當卸載或者復位及使用哪個簽名引擎。當從非易失性存儲器控制器130接收到讀/寫SDRAM 125的請求吋,前面提到的未使用的地址位可以解釋,以確定在數據經SDRAM子系統115在SDRAM 125和非易失性存儲器135之間移動時要執行什么數據操作。在一種實施方式中,圖3A和加是數據操作系統配置的框圖。在圖3A中,數據操作系統300包括SDRAM控制器310、閃存控制器320、控制器330、簽名引擎340、加密/解密引擎350和多路復用器(MUX) 360。控制器330操作性地耦合到SDRAM控制器310、閃存控制器320、簽名引擎340、加密/解密引擎350和MUX 360。因此,控制器330可以從閃存控制器320接收命令、信號、CDB等,執行仲裁,并且另外還可以管理數據流和數據操作系統 300的配置。在圖3A中,SDRAM 310配置成通過耦合371將從SDRAM (圖3A中未示出)所讀取的數據發送到簽名引擎340、加密/解密引擎350和MUX 360的第一輸入。加密/解密引擎 350配置成通過耦合372將加密后的數據發送到MUX 360的第二輸入。簽名引擎340配置成通過耦合373將數據完整性簽名發送到MUX 360的第三輸入。MUX被控制器330控制,以將從SDRAM讀取的未修改數據、加密數據或者數據完整性簽名中的一個發送到閃存控制器 320。閃存控制器320可以將從SDRAM讀取的未修改數據、加密數據或者數據完整性簽名存儲到閃存存儲器(圖3A中未示出)中。圖3A示出了當控制器330接收到來自閃存控制器320的從SDRAM(例如,SDRAM 125)讀取的請求時用于數據流和控制的配置。在一種實施方式中,當需要SDRAM存儲器的備份吋,使用這種配置和流。在一種實施方式中,簽名引擎340和加密/解密引擎350既用于讀取請求又用于寫入請求。用于閃存寫入請求(對應于SDRAM讀取)的數據連接和流在圖3A中示出。用于閃存讀取請求(對應于SDRAM寫入)的數據連接在圖加中示出。閃存控制器320將讀取請求發送到控制器330。控制器330檢查該請求的編碼的地址線(或者專用的字段),以確定從SDRAM控制器310返回的讀取數據路由到什么地方, 以及需要什么數據操作(如果有的話)。在一種實施方式中,地址位[46:40]包含如下的編碼和映射位40-42 (SES
)指定8個簽名引擎340中的哪個應當采取由編碼的其它位所指定的動作(如果有的話);位43(SG)確定所指定的簽名引擎是否應當利用所讀取的數據作為輸入來生成數據完整性簽名;位44(S0)告訴所指定的簽名引擎輸出數據完整性簽名(依賴于MUX360的狀態,該簽名可以被發送到閃存控制器320以進行存儲);位45(SR)復位所指定的簽名引擎的數據完整性簽名;而位46(E/D)確定來自加密/解密引擎350的輸出的加密數據是否應當發送到閃存控制器320。圖4是命令數據塊(⑶B)的圖示。在圖4中,示出了用于地址位0-46的地址字段。還示出了 SDRAM地址位中指定所使用的SDRAM地址位(AW:39])的字段和編碼地址位 (A[40:46])的字段。還示出了編碼地址位的単獨位字段(SES
、SG、S0、SR_E/D)。如可以理解的,基于地址位40-46的編碼,指示將被發送到MUX360,這導致三個不同源中的一個被閃存控制器320使用。數據將直接來自SDRAM控制器310、加密/解密引擎 350,或者在簽名卸載的情況下來自簽名引擎340中的ー個。如果編碼指示要執行加密,則加密/解密引擎350將被控制器330控制,以從SDRAM控制器310接收所讀取的數據。一旦加密/解密引擎350接收到來自SDRAM控制器310的數據,它就執行數據加密,將結果發送到MUX 360,以路由到閃存控制器320,并等待其接受該數據。編碼還指示是否應當對傳送到閃存存儲器的數據進行簽名生成。如由編碼的簽名引擎選擇(SESW:2])字段所指示的,八個簽名引擎340中的一個將被通知其CRC/校驗和簽名值應當更新。與數據直接發送到閃存控制器320或者發送到加密/解密引擎350并行地,數據還至少發送到所指定的簽名引擎340。一旦所選擇的簽名引擎340看到SDRAM數據被這些塊中的任何ー個接受,就利用該數據更新當前的CRC/校驗和簽名。最后,編碼指示簽名卸載是否應當輸出。如果需要簽名卸載,則讀取命令將不會被控制器330發布到SDRAM 控制器310。相反,控制器330將指示所選擇的簽名引擎340將數據完整性簽名發送到閃存控制器320。在圖加中,閃存控制器320配置成通過耦合381將從閃存存儲器(圖加中未示出)讀取的數據發送到簽名引擎340、加密/解密引擎350和MUX 361的第一輸入。加密/ 解密引擎350配置成通過耦合382將加密后的數據發送到MUX 361的第二輸入。簽名引擎 340配置成通過耦合383指示所選數據完整性簽名的當前值。MUX 361被控制器330控制, 以將(經閃存控制器320)從閃存存儲器讀取的未修改數據或者解密后的數據中的ー個發送到SDRAM控制器310。SDRAM控制器310可以將從閃存存儲器讀取的未修改數據或者解密的數據存儲到SDRAM (圖:3B中未示出)中。用于閃存讀取請求(對應于SDRAM寫入)的數據連接在圖加中示出。在ー種實施方式中,當需要將數據恢復回SDRAM存儲器吋,使用這個流。控制器330可以從閃存控制器320接收寫入命令。控制器330可以向SDRAM控制器310發布寫入請求。檢查該請求的編碼的地址線,以確定將(從閃存控制器320)發送到SDRAM控制器的寫入數據路由到什么地方,以及需要什么數據操作(如果有的話)。可以使用與圖3A的討論中所描述的相同的編碼。基于該編碼,來自閃存控制器320的未修改數據或者來自加密/解密引擎350的解密數據將被MUX 361選擇,以發送到SDRAM控制器310。如果編碼指示執行解密,則加密/ 解密引擎350將被控制成從閃存控制器320接受該數據。一旦加密/解密引擎350從閃存控制器320接受了數據,它就執行數據解密,將結果發送到SDRAM控制器310,并等待SDRAM 控制器310接受該數據。編碼還將指示是否需要對傳送到SDRAM的數據進行簽名生成。如由編碼的SES
字段所指示的,八個簽名引擎340中的一個被控制成更新其CRC/校驗和簽名值。簽名生成總是對解密的數據進行的。因此簽名引擎340被控制成在來自閃存控制器320的數據或者來自加密/解密引擎350的解密結果之間進行選擇,以更新數據完整性簽名值。與數據從閃存控制器或者加密/解密引擎350發送到SDRAM控制器310并行地, 數據還將發送到所選的簽名引擎340。一旦所選的簽名引擎340看到數據被SDRAM控制器 310接受,就利用該數據更新當前的CRC/校驗和簽名。最后,八個數據完整性簽名中ー個的當前值可以通過耦合383被軟件選擇并讀取。這個值可以通過軟件與從閃存存儲器恢復到 SDRAM的備份簽名進行比較。這可以用來驗證在數據備份或者恢復的時候沒有發生數據錯灰。圖5是電カ隔離與備份系統的框圖。在圖5中,隔離與備份系統500包括集成電路510、電カ控制器550、SDRAM 525和非易失性存儲器(例如,閃存)535。集成電路(IC) 510 包括SDRAM子系統515、控制器M0、時鐘發生器541和其它電路511。SDRAM子系統515包括SDRAM控制器520、非易失性存儲器控制器530和數據操作裝置570。其它電路511可以包括臨時儲存裝置512(例如,高速緩沖存儲器、緩沖器,等等)。SDRAM控制器520經接ロ 521與SDRAM525接ロ并對其進行控制。非易失性存儲器控制器530經接ロ 531與非易失性存儲器535接ロ并對其進行控制。SDRAM子系統515(及由此還有SDRAM控制器520、非易失性存儲器控制器530和數據操作裝置570)操作性地耦合到控制器M0、時鐘發生器Ml、 其它電路511和臨時儲存裝置512。時鐘發生器541操作性地耦合到控制器540和其它電路 511。電カ控制器550向IC 510提供電カ供給A(PWRA) 560。電カ控制器550向SDRAM 子系統515提供電カ供給B(PWRB)561。電カ控制器550向SDRAM 525提供電カ供給 C(PWRC)562。電カ控制器550向非易失性存儲器535提供電カ供給D (PWRD) 563。電カ控制器550向控制器540提供電カ故障信號565。電カ控制器550還操作性地通過信號566耦合到SDRAM子系統。在一種實施方式中,當電カ控制器550檢測到電カ故障情況(即將發生的電カ故障或者已有的電カ故障)吋,電カ控制器550通過電カ故障信號565向IC 510通知這種情況。這將起動電カ隔離序列,以隔離SDRAM子系統515與IC 510的其余部分,尤其是其它電路511。在一種實施方式中,整個電カ隔離序列是被硬件(例如,控制器M0、SDRAM子系統515、或者控制器540和SDRAM子系統515 二者)控制的,而沒有來自軟件的交互。一旦接收到電力故障情況的通知,連接到SDRAM子系統515的所有接ロ(例如,到其它電路511的接ロ)就將中斷。片上臨時儲存裝置512將被轉儲清除。在圖5中,應當理解,盡管臨時儲存裝置512示為在SDRAM子系統515的外面,但是臨時儲存裝置512也可以是SDRAM子系統515的一部分。在一個例子中,臨時儲存裝置512可以是高速緩沖存儲器(例如,ー級高速緩沖存儲器、ニ級高速緩沖存儲器、三級高速緩沖存儲器)、記入緩沖器寸。一旦臨時儲存裝置512被轉儲清除,連接到SDRAM子系統515的邏輯就指示用于轉儲清除的接ロ何時已經中斷。一旦中斷,這些接ロ就不再接受任何新的循環。一旦所有接ロ都中斷了,外部設備和內部核心邏輯(即,其它電路511)所需的輸入就被鎖存,使得當隔離發生吋,它們的狀態將不會丟失。輸入被鎖存后不再需要的時鐘被斷開。SDRAM子系統將切換到內部生成的時鐘,或者由與SDRAM子系統515共享電カ的時鐘發生器(例如,時鐘發生器Ml)生成的時鐘。在這之后,存儲器備份不需要的、到SDRAM子系統515的輸入被隔離。在一種實施方式中,這些輸入被驅動至無效狀態。
在輸入的隔離完成之后,SDRAM子系統515 (或者控制器M0)向電カ控制器550 發信號(例如,利用信號566),以去除PWRA 560。這導致,除SDRAM子系統515之外,到IC 510全部的電カ被斷開。SDRAM子系統515位于至少與其它電路511分開的電カ層上。這使得對于SDRAM子系統的電カ能夠保持(即,通過PWRB 161),直到對于隔離與備份系統500 的電カ完全失去。除了控制到除SDRAM子系統515 (及SDRAM子系統515所需的任何其它邏輯)之外所有其它電路的電カ的隔離和去除,一旦接ロ已經中斷而且臨時儲存裝置512被轉儲清除,內部的存儲器備份邏輯就將開始把數據從SDRAM 515移到非易失性存儲器535。在ー種實施方式中,這些是在PWRA去除后整個芯片上運行的僅有的循環。在一種實施方式中,當數據分別從非易失性存儲器535移到SDRAM 525或者從 SDRAM 525移到非易失性存儲器535吋,它可以被數據操作裝置570操作。數據操作裝置 570以與先前參考圖3A和;3B的數據操作系統300所描述的相同方式被配置、操作和起作用。因此,簡而言之,數據操作裝置570可以配置成加密/解密數據和/或計算/檢查數據完整性簽名。在一種實施方式中,數據操作裝置570的功能、數據流和配置可以在PWRA 560 斷開的時候執行(例如,為了保存加密的數據和/或計算并存儲數據完整性簽名)。在另ー 種實施方式中,數據操作裝置570的功能、數據流和配置可以在PWRA 560接通的時候執行 (例如,為了恢復加密的數據和/或計算并存儲數據完整性簽名)。以上所述的方法、系統和設備可以在計算機系統中實現或者由計算機系統存儲。 以上所述的方法還可以存儲到計算機可讀介質上。在此所述的設備、電路和系統可以利用本領域中可以獲得的計算機輔助設計工具來實現,并且由包含這種電路的軟件描述的計算機可讀文件來體現。這包括,但不限于,隔離與備份系統100和500、IC 110和510、電カ控制器150和550、SDRAM子系統115和515及其部件。這些軟件描述可以是行為、寄存器傳送、邏輯部件、晶體管和布局幾何結構級描述。此外,該軟件描述還可以存儲到存儲介質上或者被載波傳送。可以實現這種描述的數據格式包括,但不限于支持如C那樣的行為語言的格式、 支持如Verilog和VHDL那樣的寄存器傳送級(RTL)語言的格式、支持幾何結構描述語言 (例如⑶SII、⑶SIII、⑶SIV、CIF和MEBES)的格式及其它合適的格式與語言。此外,在機器可讀介質上的這種文件的數據傳輸可以在互聯網上或者例如經電子郵件在多種介質上電子地進行。應當指出,物理文件可以在機器可讀介質上實現,其中的機器可讀介質例如 4mm的磁帶、8mm的磁帶、3-1/2英寸的軟盤介質、⑶、DVD,等等。圖6示出了計算機系統的框圖。計算機系統600包括通信接ロ 620、處理系統630、 存儲系統640和用戶接ロ 660。處理系統630操作性地耦合到存儲系統640。存儲系統640 存儲軟件650和數據670。處理系統630操作性地耦合到通信接ロ 620和用戶接ロ 660。計算機系統600可以包括編程的通用計算機。計算機系統600可以包括微處理器。計算機系統600可以包括可編程的或者專用電路。計算機系統600可以在共同包括元件620-670的多個設備、處理器、儲存裝置和/或接ロ之間分布。通信接ロ 620可以包括網絡接ロ、調制解調器、端ロ、總線、鏈路、收發器或者其它通信設備。通信接ロ 620可以在多個通信設備之間分布。處理系統630可以包括微處理器、 微控制器、邏輯電路或者其它處理設備。處理系統630可以在多個處理設備之間分布。用
11戶接ロ 660可以包括鍵盤、鼠標、語音識別接ロ、麥克風和揚聲器、圖形顯示器、觸摸屏或者其它類型的用戶接ロ設備。用戶接ロ 660可以在多個接ロ設備之間分布。存儲系統640可以包括盤、帶、集成電路、RAM、ROM、網絡儲存裝置、服務器或者其它存儲器功能。存儲系統 640可以是計算機可讀介質。存儲系統640可以在多個存儲器設備之間分布。處理系統630從存儲系統640獲取軟件650并執行軟件650。處理系統可以獲取并存儲數據670。處理系統還可以經通信接ロ 620獲取并存儲數據。處理系統630可以創建或者修改軟件650或者數據670,以實現實際的結果。處理系統可以控制通信接ロ 620或者用戶接ロ 660,以實現實際的結果。處理系統可以經通信接ロ 620獲取并執行遠端存儲的軟件。軟件650和遠端存儲的軟件可以包括操作系統、實用程序、驅動程序、聯網軟件及其它一般由計算機系統執行的軟件。軟件650可以包括應用程序、小程序、固件或者其它形式的一般由計算機系統執行的機器可讀處理指令。當被處理系統630執行吋,軟件650或者遠端存儲的軟件可以指示計算機系統600如在此所述地那樣操作。以上對本發明的描述是為了說明和描述而給出的。它不意圖是詳盡的或者要將本發明限定到所公開的精確形式,而且,根據以上教導,其它修改與變體也是可能的。實施方式的選擇和描述是為了最好地解釋本發明的原理及其實踐應用,由此使本領域其他技術人員能夠以多種實施方式和多種修改最好地利用本發明,以適于預期特定應用。希望所附權利要求被解釋為包括除被現有技術限制之外的本發明的其它可選實施方式。
權利要求
1.一種備份數據的方法,包括 接收用于第一片上子系統的電力; 接收電カ故障情況的指示信號;基于所述電カ故障情況的所述指示信號,在硬件的控制下,隔離片上SDRAM子系統; 在所述SDRAM子系統被隔離后,從所述第一片上子系統去除所述電カ;及在從所述第一片上子系統去除所述電カ后,在所述硬件的控制下,將SDRAM上所存儲的數據拷貝到非易失性存儲器。
2.如權利要求1所述的方法,還包括基于所述電カ故障情況的所述指示信號,中斷連接到所述SDRAM子系統的接ロ。
3.如權利要求2所述的方法,還包括將存儲器的內容寫入到所述SDRAM,其中該存儲器用于存儲要寫入到所述SDRAM的數據的臨時拷貝。
4.如權利要求3所述的方法,還包括在連接到所述SDRAM子系統的所述接口中斷后,斷開被所述第一片上子系統使用的第一時鐘。
5.如權利要求4所述的方法,還包括在所述SDRAM子系統被隔離的時候,生成被所述SDRAM子系統使用的第二時鐘。
6.如權利要求5所述的方法,還包括在完成所述SDRAM上所存儲數據到所述非易失性存儲器的所述拷貝之后,從所述 SDRAM子系統去除電力。
7.ー種集成電路,包括接收電カ的第一片上子系統; 電カ故障情況的指示信號;硬件狀態機,基于所述電カ故障情況的所述指示信號 隔離片上SDRAM子系統;在所述SDRAM子系統被隔離后,從所述第一片上子系統去除所述電カ;及在從所述第一片上子系統去除所述電カ后,將SDRAM上所存儲的數據拷貝到非易失性存儲器。
8.如權利要求7所述的集成電路,其中,基于所述電カ故障情況的所述指示信號,連接到所述SDRAM子系統的接ロ被中斷。
9.如權利要求8所述的集成電路,其中,在所述片上SDRAM子系統被隔離之前,將存儲器的內容寫入到所述SDRAM,其中該存儲器用于存儲要寫入到所述SDRAM的數據的臨時拷貝。
10.如權利要求9所述的集成電路,其中,在連接到所述SDRAM子系統的所述接口中斷后,斷開被所述第一片上子系統使用的第一時鐘。
11.如權利要求10所述的集成電路,其中,在所述SDRAM子系統內部生成在所述SDRAM 子系統被隔離時被所述SDRAM子系統使用的第二時鐘。
12.如權利要求10所述的集成電路,其中,在完成所述SDRAM上所存儲的數據到所述非易失性存儲器的所述拷貝之后,去除到所述SDRAM子系統的電力。
13.ー種隔離片上SDRAM控制器與集成電路的其余部分的方法,包括 接收用于所述集成電路的所述其余部分的至少一部分的第一電カ供給; 接收用于所述SDRAM控制器的第二電カ供給;接收電カ供給切斷指示信號;基于所述電カ供給切斷指示信號,啟動片上狀態機來隔離所述SDRAM控制器; 基于所述SDRAM控制器被隔離的指示信號,從所述集成電路的所述其余部分的所述至少一部分去除所述第一電カ供給;將數據從被所述SDRAM控制器控制的SDRAM拷貝到非易失性存儲器。
14.如權利要求13所述的方法,還包括中斷在所述SDRAM控制器和所述集成電路的所述其余部分的所述至少一部分之間耦合的接ロ。
15.如權利要求14所述的方法,還包括將存儲在所述集成電路的所述其余部分的所述至少一部分中的數據的臨時拷貝轉儲清除到所述SDRAM。
16.如權利要求15所述的方法,還包括斷開被所述集成電路的所述其余部分的所述至少一部分使用的第一時鐘。
17.如權利要求16所述的方法,還包括在所述SDRAM控制器被隔離的時候,生成被所述SDRAM控制器使用的第二時鐘。
18.如權利要求17所述的方法,還包括在完成所述SDRAM上所存儲數據到所述非易失性存儲器的所述拷貝之后,去除到所述 SDRAM控制器的電力。
全文摘要
本發明涉及用于存儲器備份的電力隔離。本發明公開了一種電力隔離與備份系統。當檢測到電力故障情況時,臨時儲存裝置被轉儲清除到SDRAM。在轉儲清除之后,接口被中斷,而且去除除該SDRAM子系統之外的芯片的大部分的電力。該SDRAM子系統將數據從SDRAM拷貝到閃存存儲器。在該過程中,數據可以被加密和/或可以計算數據完整性簽名。為了恢復數據,該SDRAM子系統將數據從閃存存儲器拷貝到SDRAM。在該過程中,被恢復的數據可以被解密和/或可以檢查數據完整性簽名。
文檔編號G11C14/00GK102568566SQ201110166868
公開日2012年7月11日 申請日期2011年6月21日 優先權日2010年12月20日
發明者G·J·皮奇里洛, J·于, P·B·崇 申請人:Lsi公司