第1オンチップサブシステム用の電力を受け取ることと、電源異常状態のインジケータを受け取ることと、前記電源異常状態の前記インジケータに基づいて、ハードウェアの制御の下で、オンチップ揮発性メモリバックアップサブシステムを分離することと、前記揮発性メモリバックアップサブシステムが分離された後に、前記電力を前記第1オンチップサブシステムから除去することと、前記電力が前記第1オンチップサブシステムから除去された後に、ハードウェアの前記制御の下で、データ操作を示す複数のビットを有するコマンドデータブロックを受け取ることと、前記示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択することと、揮発性メモリから前記ソースにデータを転送することと、操作されたデータを前記ソースから受け取ることと、前記操作されたデータを前記不揮発性メモリに転送することとを含む、データをバックアップする方法。前記不揮発性メモリに、前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用されるメモリの内容を書き込むことをさらに含む、請求項1に記載の方法。前記ソースは、データ暗号化エンジンである、請求項1に記載の方法。前記ソースは、署名エンジンである、請求項1に記載の方法。前記複数のビットは、前記署名エンジンがデータ完全性署名を送ることを示す、請求項4に記載の方法。前記ソースは、複数の署名エンジンのうちの1つとすることができ、前記複数のビットは、前記複数の署名エンジンのうちで前記ソースになるべき1つを示す、請求項1に記載の方法。不揮発性メモリと揮発性メモリとの間でデータを転送する方法であって、電力供給シャットダウンインジケータを受け取ることに応答して、データ操作を示す複数のビットを有するコマンドデータブロックを受け取ることと、前記電力供給シャットダウンインジケータに基づいて、揮発性メモリバックアップコントローラを分離するためにオンチップ状態機械を開始することと、前記揮発性メモリバックアップコントローラが分離されることのインジケータに基づいて、少なくとも集積回路のうちで前記揮発性メモリバックアップコントローラではない部分から第1電力供給を除去することと、前記示されたデータ操作に基づいて、前記不揮発性メモリに送られるデータのソースを選択することと、揮発性メモリから前記ソースにデータを転送することと、操作されたデータを前記ソースから受け取ることと、前記操作されたデータを前記不揮発性メモリに転送することとを含む方法。前記少なくとも前記集積回路のうちで前記揮発性メモリバックアップコントローラではない部分に格納されたデータの一時コピーを前記揮発性メモリにフラッシュすることをさらに含む、請求項7に記載の方法。前記ソースは、データ暗号化解除エンジンである、請求項7に記載の方法。前記ソースは、署名エンジンである、請求項7に記載の方法。前記複数のビットは、前記署名エンジンがデータ完全性署名を送ることを示す、請求項10に記載の方法。前記ソースは、複数の署名エンジンのうちの1つとすることができ、前記複数のビットは、前記複数の署名エンジンのうちで前記ソースになるべき1つを示す、請求項7に記載の方法。データ操作を示す複数のビットを受け取るデータ操作コントローラであって、前記データ操作コントローラは、前記示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択する、データ操作コントローラと、揮発性メモリに結合された揮発性メモリバックアップコントローラであって、前記揮発性メモリバックアップコントローラは、電力供給シャットダウンインジケータに応答して、前記揮発性メモリから前記ソースへのデータの転送を容易にするためのものである、揮発性メモリバックアップコントローラと、前記不揮発性メモリに結合された不揮発性メモリコントローラであって、前記不揮発性メモリコントローラは、操作されたデータを前記ソースから受け取り、前記操作されたデータを前記不揮発性メモリに転送するためのものである、不揮発性メモリコントローラとを含む集積回路。前記操作されたデータの前記不揮発性メモリへの前記転送が完了した後に、前記揮発性メモリバックアップコントローラ、前記データ操作コントローラ、および前記不揮発性メモリコントローラへの電力を除去する電力供給コントローラをさらに含む、請求項13に記載の集積回路。前記ソースは、データ暗号化解除エンジンである、請求項14に記載の集積回路。前記ソースは、署名エンジンである、請求項14に記載の集積回路。前記複数のビットは、前記署名エンジンがデータ完全性署名を送ることを示す、請求項16に記載の集積回路。前記ソースは、複数の署名エンジンのうちの1つとすることができ、前記複数のビットは、前記複数の署名エンジンのうちで前記ソースになるべき1つを示す、請求項14に記載の集積回路。したがって、本発明の実施形態は、第1オンチップサブシステム用の電力を受け取ることと、電源異常状態のインジケータを受け取ることと、前記電源異常状態の前記インジケータに基づいて、ハードウェアの制御の下で、オンチップ揮発性メモリバックアップサブシステムを分離することと、前記揮発性メモリバックアップサブシステムが分離された後に、前記電力を前記第1オンチップサブシステムから除去することと、前記電力が前記第1オンチップサブシステムから除去された後に、ハードウェアの前記制御の下で、データ操作を示す複数のビットを有するコマンドデータブロックを受け取ることと、前記示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択することと、揮発性メモリから前記ソースにデータを転送することと、操作されたデータを前記ソースから受け取ることと、前記操作されたデータを前記不揮発性メモリに転送することとを含む、データをバックアップする方法を含むことができる。したがって、本発明の実施形態は、不揮発性メモリと揮発性メモリとの間でデータを転送する方法であって、電力供給シャットダウンインジケータを受け取ることに応答して、データ操作を示す複数のビットを有するコマンドデータブロックを受け取ることと、電力供給シャットダウンインジケータに基づいて、揮発性メモリバックアップコントローラを分離するためにオンチップ状態機械を開始することと、揮発性メモリバックアップコントローラが分離されることのインジケータに基づいて、少なくとも集積回路のうちで揮発性メモリバックアップコントローラではない部分から第1電力供給を除去することと、示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択することと、揮発性メモリからソースにデータを転送することと、操作されたデータをソースから受け取ることと、操作されたデータを不揮発性メモリに転送することとを含む方法をさらに含むことができる。したがって、本発明の実施形態は、データ操作を示す複数のビットを受け取るデータ操作コントローラであって、データ操作コントローラは、示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択する、データ操作コントローラと、揮発性メモリに結合された揮発性メモリバックアップコントローラであって、揮発性メモリバックアップコントローラは、電力供給シャットダウンインジケータに応答して、揮発性メモリからソースへのデータの転送を容易にするためのものである、揮発性メモリバックアップコントローラと、不揮発性メモリに結合された不揮発性メモリコントローラであって、不揮発性メモリコントローラは、操作されたデータをソースから受け取り、操作されたデータを不揮発性メモリに転送するためのものである、不揮発性メモリコントローラとを含む集積回路をさらに含むことができる。図1は、電力分離およびバックアップシステムのブロック図である。図1では、分離およびバックアップシステム100は、集積回路110、電力制御150、SDRAM125、および不揮発性メモリたとえば、フラッシュ135を含む。集積回路IC110は、SDRAMサブシステム115、制御140、クロックジェネレータ141、および他の回路網111を含む。SDRAMサブシステム115は、SDRAMコントローラ120および不揮発性メモリコントローラ130を含む。他の回路網111は、一時ストレージ112たとえば、キャッシュメモリ、バッファなどを含むことができる。SDRAMコントローラ120は、インターフェース121を介してSDRAM125とインターフェースし、これを制御する。不揮発性メモリコントローラ130は、インターフェース131を介して不揮発性メモリ135とインターフェースし、これを制御する。SDRAMサブシステム115ならびに、したがってSDRAMコントローラ120および不揮発性メモリコントローラ130は、制御140、クロックジェネレータ141、他の回路網111、および一時ストレージ112に動作可能に結合される。クロックジェネレータ141は、制御140および他の回路網111に動作可能に結合される。電力制御150は、電力供給APWRA160をIC110に供給する。電力制御150は、電力供給BPWRB161をSDRAMサブシステム115に供給する。電力制御150は、電力供給CPWRC162をSDRAM125に供給する。電力制御150は、電力供給DPWRD163を不揮発性メモリ135に供給する。電力制御150は、電源異常信号165を制御140に供給する。電力制御150は、信号166によってSDRAMサブシステムにも動作可能に結合される。本願で使用されるときに、SDRAMシンクロナスダイナミックランダムアクセスメモリは、すべての揮発性メモリテクノロジを含むことが意図されていることを理解されたい。したがって、SDRAMサブシステム115は、一実施形態では、スタティックランダムアクセスメモリSRAMコントローラを含むことができ、SDRAM125は、SRAMデバイスを含むことができる。一実施形態では、電力制御150が、電源異常状態差し迫った電源異常または既存の電源異常のいずれかを検出する時に、電力制御150は、電源異常信号165を介してその状態についてIC110に通知する。これは、SDRAMサブシステム115をIC110の残りおよび特に他の回路網111から分離するための電力分離シーケンスを開始する。一実施形態では、電力分離シーケンス全体が、ソフトウェアからの相互作用を伴わずに、ハードウェアたとえば、制御140、SDRAMサブシステム115、またはその両方によって制御される。電源異常状態の通知を受け取った時には、SDRAMサブシステム115に接続されたインターフェースたとえば、他の回路網111へのインターフェースのすべてが停止される。オンチップ一時ストレージ112は、フラッシュされる。図1では、一時ストレージ112がSDRAMサブシステム115の外部に図示されているが、一時ストレージ112をSDRAMサブシステム115の一部とすることができることを理解されたい。一例では、一時ストレージ112を、キャッシュたとえば、レベル1キャッシュ、レベル2キャッシュ、レベル3キャッシュ、ポスティングバッファpostingbuffer、または類似物とすることができる。一時ストレージ112がフラッシュされた後に、SDRAMサブシステム115に接続された論理は、フラッシュに使用されたインターフェースが停止した時を示す。停止した後に、これらのインターフェースは、新しいサイクルをまったく受け入れていない。インターフェースのすべてが停止された後に、外部デバイスおよび内部コア論理すなわち、他の回路網111に必要な入力は、ラッチされ、その結果、それらの状態が、分離が発生する時に失われなくなる。入力がラッチされた後に必要ではないクロックは、ゲートオフされる。SDRAMサブシステムは、内部生成されるクロックまたはSDRAMサブシステム115と電力を共有するクロックジェネレータたとえば、クロックジェネレータ141によって生成されるクロックに切り替える。この後に、メモリバックアップに必要ではないSDRAMサブシステム115への入力は、分離される。一実施形態では、これらの入力は、インアクティブ状態に駆動される。入力の分離が完了した後に、SDRAMサブシステム115または制御140は、PWRA160を除去するために電力制御150にシグナリングするたとえば、信号166を使用して。これは、電力が、IC110のうちでSDRAMサブシステム115以外のすべてに対してオフに切り替えられることをもたらす。SDRAMサブシステム115は、少なくとも他の回路網111とは別々の電源プレーン上にある。これは、電力が分離およびバックアップシステム100から完全に失われるまで、SDRAMサブシステムへの電力が維持されるすなわち、PWRB161によってことを可能にする。SDRAMサブシステム115およびSDRAMサブシステム115が必要とするすべての他の論理以外のすべてへの電力の分離および除去の制御に加えて、インターフェースが停止し、一時ストレージ112がフラッシュされた後に、内部メモリバックアップ論理は、SDRAM125から不揮発性メモリ135へのデータの移動を開始する。一実施形態では、これらは、PWRAが除去された後にチップ全体で動作する唯一のサイクルである。図1は、電力分離およびその後のメモリバックアップに使用できる内部接続のうちのいくつかと一緒に、IC110チップと外部論理との間の接続を示す。電力制御150が電源異常を検出する時に、電力制御150は、電源異常信号165を介してIC110に通知する。制御140は、電源異常信号165を監視する。制御140が、電源異常信号165がアサートされているのを見、電力分離が実行を可能にされているときには、制御140は、power_iso_begin信号図1に明示的には図示せずをアサートすることによって分離シーケンスを開始するようにSDRAMサブシステム115に通知する。その後、SDRAMサブシステム115は、電力分離シーケンスに必要なステップを実行する。電力分離シーケンスに含まれるステップは、本明細書で後でより詳細に説明する。電力分離シーケンスが完了した後に、少なくともPWRA160を除去できることを示すために、MSS_core_iso_ready信号図1に明示的には図示せずがアサートされる。電力制御150は、PWRA160をディスエーブルするが、PWRB161、PWRC162、およびPWRD163をイネーブルされたままにする。PWRA160をディスエーブルすることによって、IC110のうちでPWRB161に接続された回路網以外の部分から電力が除去される。SDRAMサブシステム115は、関連するフェーズロックループたとえば、クロックジェネレータ141の内部のおよびIOたとえば、インターフェース121および131と一緒に、IC110の残りとは異なる電源プレーン上にある。このプレーンは、PWRB161によって電力を与えられ、イネーブルされたままになる。一例では、この別々の電源プレーン上にその回路網の少なくとも一部を有する機能ブロックは、制御140、クロックジェネレータ141、およびSDRAMサブシステム115である。一実施形態では、外部SDRAM125は、PWRC162によって電力を与えられたままになり、外部不揮発性メモリは、PWRD163によって電力を与えられたままになる。これは、メモリバックアップを実行するために電力を与えられたままにならなければならない、減らされた量の論理である。電力分離シーケンス中に、SDRAMサブシステム115は、適切な時にSDRAM125メモリバックアップを開始する。このバックアップは、必要なまたは要求されたデータをSDRAM125から不揮発性メモリ135に移動する。一実施形態では、メモリバックアップ全体が、ソフトウェア介入なしで実行される。上で述べ、部分的に図1によって示された、電力供給160~163を供給するための方法が、分離およびバックアップシステム100の1つまたは複数のコンポーネントに電力を供給するおよび除去する例示的な形であることを理解されたい。図示の例では、電力供給160~163とさまざまな電源ドメイン/プレーンの制御とのすべてが、IC110の外部で実行される。しかし、分離およびバックアップシステム100の1つまたは複数のコンポーネントに電力を供給するおよび除去する他の方法がある。ある方法は、電圧ごとに単一の外部電源を使用し、その後、IC110の内部のスイッチを使用して異なる電源ドメイン/プレーンを作成することができる。別の方法は、外部電圧の個数を減らし、異なる電源ドメイン/プレーンを制御するためのIC110の内部のスイッチと一緒に、さまざまな電圧を得るのに分離およびバックアップシステム100の1つまたは複数のコンポーネントたとえば、IC110の内部のレギュレータを使用することができる。これらの方法を用いると、電力分離は、ほぼ同一の形で行われる。相違は、電力供給161~163をイネーブルされたままに保つために通知される必要がある電力制御論理150を、内部また外部に配置できることである。図2は、電力分離の方法の流れ図である。図2に示されたステップを、分離およびバックアップシステム100の1つまたは複数の要素によって実行することができる。電力を、第1オンチップサブシステムのために受け取る202。たとえば、他の回路網111に電力を与えるPWRA160を、IC110によって受け取ることができる。電源異常状態のインジケータを受け取る204。たとえば、電源異常信号165をIC110によって受け取ることができる。これは、power_iso_begin信号がアサートされる時に電力分離シーケンスが始まることをもたらす。SDRAMサブシステムへのインターフェースを停止させる206。一時ストレージをSDRAMにフラッシュする208。たとえば、レベル3キャッシュ、レベル2キャッシュ、ポスティングバッファ、またはSDRAM125へ/からのデータのコピーを一時的に格納するのに使用される任意の他のタイプのメモリストレージを、フラッシュすることができる。インターフェースのそれぞれに接続された論理は、それらが未解決のサイクルのすべてを完了し、すべての新しいサイクルの受入れを停止した時に、停止表示を返すことができる。ハードウェア制御の下で、オンチップSDRAMサブシステムを分離する210。たとえば、SDRAMインターフェースまたは一時ストレージ112が、それがサイクルの受入れを停止したことを示した時に、その入力は、それらをインアクティブ状態にセットすることによって分離される。他のインターフェースからの停止が受け取られた後に、外部コアデバイスおよび内部論理のために保存される必要がある入力は、ラッチされる。これらの入力は、リセット、PLL用の信号、およびストラップ入力などを含む。この時点で、SDRAMサブシステムがもはや必要としないすべてのクロックをゲートオフして、電力消費削減を助けることができる。ある時間の後に、SDRAMサブシステムへの入力のすべてを分離し、これらをインアクティブ状態にセットするように指示する信号たとえば、MSS_core_iso_enableをアサートすることができる。第1オンチップサブシステムによって使用されるクロックおよび電力をゲートオフする212。たとえば、一時ストレージ112に行くクロックを、内部で生成されるクロックに切り替えることができる。入力が分離された後に、信号たとえば、MSS_core_iso_readyをアサートすることができる。これは、電力制御論理150に、たとえばIC110に接続されたPWRA160を現在はディスエーブルできることを示す。SDRAMサブシステムによって使用されるクロックを生成する214。たとえば、クロックジェネレータ141は、PWRA160がオフである時に使用される、SDRAMサブシステムによって使用されるクロックを生成することができる。データをSDRAMから不揮発性メモリにコピーする216。たとえば、SDRAM125から不揮発性メモリ135へのメモリバックアップを、信号たとえば、flash_offload_beginをアサートすることによって開始することができる。SDRAMサブシステム、SDRAM、および不揮発性メモリから電力を除去する218。たとえば、メモリバックアップの完了時に電力制御150の制御の下で、または単に分離およびバックアップシステム100全体への電力に障害が発生したのでのいずれかで、電力が、SDRAMサブシステム115、SDRAM125、および不揮発性メモリ135から除去される。バックアップ中にSDRAMサブシステム115の電力を分離することの利益は、減らされた量の電力が消費されることである。メモリバックアップを処理するIC110の内部の論理、外部のSDRAM125、および不揮発性メモリ135だけが、電力を与えられる。電力消費を減らすことによって、残りの電力のすべてが消費される前にメモリバックアップを実行するのに使用可能な時間の長さが増える。より長い時間を有することは、バックアップが完了するまで電力を維持するために、より少ない外部論理が必要であることに加えて、より多くのメモリをバックアップすることを可能にする。電力分離が行われているので、メモリバックアップを行うのに必要な電力消費および全体的なシステムコストを下げるために、フラッシュコントローラを内部に移動することが有利である可能性がある。一実施形態では、SDRAM125内のデータが不揮発性メモリ135に移動されるので、暗号化および/またはデータ完全性署名計算を実行することによって、追加のデータ保護が、バックアップされるデータについて提供される。データの暗号化は、データを格納するセキュアな方法を提供する。データ完全性署名計算は、発生する可能性が高いほとんどのデータエラーに対して保護する。SDRAMサブシステム115は、メモリバックアップまたはメモリ復元が要求される時に、SDRAM125と不揮発性メモリ135との間でデータを移動する。SDRAMサブシステム115は、要求されるデータ移動を示すためにCDBコマンド記述子ブロックcommandDescriptorBlockのリストを使用することができる。これらのCDBのフォーマットは、通常は事前に定義される。CDB内のフィールドの1つは、SDRAM125内のどこでデータを読み取りまたは書き込むべきなのかを示すメモリアドレスフィールドである。一実施形態では、このフィールドで提供されるアドレスビットの個数は、SDRAM125のすべてをアドレッシングするのに必要な個数を超える。必要ではないこれらのアドレスビットのいくつかを、データがSDRAM125へ/から移動される時にそのデータがどのように操作されるべきかに関する情報をエンコードするのに使用することができる。この移動は、メモリバックアップまたはメモリ復元が実行される時あるいは他の時に発生する可能性がある。未使用アドレスビットのエンコーディングは、データを暗号化/暗号化解除しなければならないのかどうか、署名生成が要求されるのかどうか、署名をオフロードしまたはリセットしなければならないのかどうか、およびどの署名エンジンを使用すべきかを示すことができる。不揮発性メモリコントローラ130からSDRAM125を読み取る/書き込む要求が受け取られる時に、前述の未使用アドレスビットを解釈して、データがSDRAMサブシステム115を介してSDRAM125と不揮発性メモリ135との間で移動する時にどのデータ操作を実行すべきかを判定することができる。一実施形態で、図3Aおよび3Bは、データ操作システム構成のブロック図である。図3Aでは、データ操作システム300は、SDRAMコントローラ310、フラッシュコントローラ320、制御330、署名エンジン340、暗号化/暗号化解除エンジン350、およびマルチプレクサMUX360を含む。制御330は、SDRAMコントローラ310、フラッシュコントローラ320、署名エンジン340、暗号化/暗号化解除エンジン350、およびMUX360に動作可能に結合される。したがって、制御330は、フラッシュコントローラ320からコマンド、信号、CDBなどを受け取り、調停を実行し、他の形でデータ操作システム300のデータフローおよび構成を管理することができる。図3Aでは、SDRAMコントローラ310は、結合371を介して、SDRAM図3Aには図示せずから読み取られたデータを署名エンジン340、暗号化/暗号化解除エンジン350、およびMUX360の第1入力に送るように構成される。暗号化/暗号化解除エンジン350は、結合372を介して、暗号化されたデータをMUX360の第2入力に送るように構成される。署名エンジン340は、結合373を介して、データ完全性署名をMUX360の第3入力に送るように構成される。MUXは、制御330によって、SDRAMから読み取られた未変更のデータ、暗号化されたデータ、またはデータ完全性署名のうちの1つをフラッシュコントローラ320に送るように制御される。フラッシュコントローラ320は、SDRAMから読み取られた未変更のデータ、暗号化されたデータ、またはデータ完全性署名をフラッシュメモリ図3Aには図示せずに格納することができる。図3Aは、SDRAMたとえば、SDRAM125から読み取る要求が、制御330によってフラッシュコントローラ320から受け取られた時のデータフローおよび制御の構成を示す。一実施形態では、この構成およびフローは、SDRAMメモリのバックアップが要求される時に使用される。一実施形態では、署名エンジン340および暗号化/暗号化解除エンジン350が、読取り要求と書込み要求との両方に使用される。フラッシュ書込み要求SDRAM読取りに対応するのデータ接続およびフローは、図3Aに示されている。フラッシュ読取り要求SDRAM書込みに対応するのデータ接続は、図3Bに示されている。フラッシュコントローラ320は、読取り要求を制御330に送る。この要求のエンコードされたアドレスラインまたは専用フィールドが、制御330によって調べられて、SDRAMコントローラ310から返されつつある読取りデータからの読取りデータをどこにルーティングすべきかおよびデータ操作が要求される場合にどのデータ操作が要求されているのかが判定される。一実施形態では、アドレスビット[46:40]は、次のようなエンコーディングおよびマッピングを含む。ビット40~42SES[0:2]は、8つの署名エンジン340のうちのどれが、エンコーディングの他のビットによって指定されるアクション存在する場合にを行うべきかを指定し、ビット43SGは、指定されたシグネチャエンジンが入力として読取りデータを使用してデータ完全性署名を生成すべきかどうかを決定し、ビット44SOは、指定されたシグネチャエンジンに、データ完全性署名MUX360の状態に応じて、格納のためにフラッシュコントローラ320に送られる場合があるを出力するように指示し、ビット45SRは、指定されたシグネチャエンジンのデータ完全性署名をリセットし、ビット46E/Dは、暗号化/暗号化解除エンジン350の出力からの暗号化されたデータをフラッシュコントローラ320に送るべきなのかどうかを決定する。図4は、コマンドデータブロックCDBの図である。図4では、アドレスビット0~46のアドレスフィールドが示されている。使用されるSDRAMアドレスビットを指定するSDRAMアドレスビット内のフィールドA[0:39]およびエンコードされたアドレスビットのフィールドA[40:46]も図示されている。エンコードされたアドレスビットの個々のビットフィールドSES[0:2]、SG、SO、SR、およびE/Dも図示されている。理解できるように、アドレスビット40~46のエンコーディングに基づいて、3つの異なるソースのうちの1つがフラッシュコントローラ320によって使用されることをもたらす指示が、MUX360に送られる。このデータは、SDRAMコントローラ310、暗号化/暗号化解除エンジン350、または署名オフロードの場合には署名エンジン340のうちの1つのいずれかから直接に来る。エンコーディングが、暗号化を実行することを指示する場合には、暗号化/暗号化解除エンジン350は、制御330によって制御されて、SDRAMコントローラ310からの読取りデータを受け取る。暗号化/暗号化解除エンジン350が、SDRAMコントローラ310からのデータを受け取った後に、暗号化/暗号化解除エンジン350は、データ暗号化を実行し、結果をフラッシュコントローラ320へのルーティングのためにMUX360に送り、MUX360がそのデータを受け入れるのを待つ。エンコーディングは、フラッシュメモリに転送されるデータに対して署名生成を行わなければならないのかどうかをも示す。8つの署名エンジン340のうちの、エンコーディングの署名エンジン選択SES[0:2]フィールドによって示される1つは、そのCRC/チェックサム署名値を更新しなければならないことを通知される。データがフラッシュコントローラ320に直接にまたは暗号化/暗号化解除エンジン350に送られるのと並列に、そのデータは、少なくとも指定された署名エンジン340にも送られる。選択された署名エンジン340が、これらのブロックのいずれかによってSDRAMデータが受け入れられるのを見た後に、現在のCRC/チェックサム署名が、そのデータを使用して更新される。最後に、エンコーディングは、署名オフロードを出力しなければならないのかどうかを示す。署名オフロードが要求される場合には、読取りコマンドは、制御330によってSDRAMコントローラ310に発行はされない。そうではなく、制御330は、選択された署名エンジン340に、データ完全性署名データをフラッシュコントローラ320に送るように指示する。図3Bでは、フラッシュコントローラ320は、結合381を介して、フラッシュメモリ図3Bには図示せずから読み取られたデータを署名エンジン340、暗号化/暗号化解除エンジン350、およびMUX361の第1入力に送るように構成される。暗号化/暗号化解除エンジン350は、結合382を介して、暗号化されたデータをMUX361の第2入力に送るように構成される。署名エンジン340は、結合383を介して、選択されたデータ完全性署名の現在の値を示すように構成される。MUX361は、制御330によって、フラッシュメモリから読み取られた未変更のデータフラッシュコントローラ320を介するまたは暗号化解除されたデータをSDRAMコントローラ310に送るように制御される。SDRAMコントローラ310は、フラッシュメモリから読み取られた未変更のデータまたは暗号化解除されたデータをSDRAM図3Bには図示せず内に格納することができる。フラッシュ読取り要求SDRAM書込みに対応する用のデータ接続が、図3Bに示されている。一実施形態では、このフローは、SDRAMメモリに戻すデータの復元が要求される時に使用される。制御330は、フラッシュコントローラ320から書込みコマンドを受け取ることができる。制御330は、SDRAMコントローラ310に書込み要求を発行することができる。要求のエンコードされたアドレスラインは、SDRAMコントローラに送られつつあるフラッシュコントローラ320から書込みデータからの書込みデータをどこにルーティングすべきかおよびデータ操作が要求される場合にどのデータ操作が要求されているのかを判定するために調べられる。図3Aの議論で説明されたものと同一のエンコーディングを使用することができる。エンコーディングに基づいて、フラッシュコントローラ320からの未変更のデータまたは暗号化/暗号化解除エンジン350からの暗号化解除されたデータのいずれかが、SDRAMコントローラ310に送るためにMUX361によって選択される。エンコーディングが、暗号化解除を実行することを指示する場合には、暗号化/暗号化解除エンジン350は、フラッシュコントローラ320からのデータを受け入れるように制御される。暗号化/暗号化解除エンジン350がフラッシュコントローラ320からデータを受け入れた後に、暗号化/暗号化解除エンジン350は、データ暗号化解除を実行し、その結果をSDRAMコントローラ310に送り、SDRAMコントローラ310がそのデータを受け入れるのを待つ。エンコーディングは、署名生成が、SDRAMに転送されるデータについて行われる必要があるのかどうかをも示す。8つの署名エンジン340のうちの、エンコーディングのSES[0:2]フィールドによって示される1つが、そのCRC/チェックサム署名値を更新するように制御される。署名生成は、必ず暗号化解除されたデータに対して行われる。したがって、署名エンジン340は、フラッシュコントローラ320からのデータまたは暗号化/暗号化解除エンジン350からの暗号化解除結果の間で選択して、データ完全性署名値を更新するように制御される。データがフラッシュコントローラまたは暗号化/暗号化解除エンジン350のいずれかからSDRAMコントローラ310に送られるのと並列に、そのデータは、選択された署名エンジン340にも送られる。選択された署名エンジン340が、データがSDRAMコントローラ310によって受け入れられるのを見た後に、現在のCRC/チェックサム署名が、そのデータを使用して更新される。最後に、8つのデータ完全性署名のうちの1つの現在の値を、結合383を介してソフトウェアによって選択し、読み取ることができる。この値を、ソフトウェアによって、フラッシュメモリからSDRAMに復元されるバックアップ署名と比較することができる。これは、データがバックアップされるか復元される間にデータエラーが発生しなかったことを検証するために行うことができる。図5は、電力分離およびバックアップシステムのブロック図である。図5では、分離およびバックアップシステム500は、集積回路510、電力制御550、SDRAM525、および不揮発性メモリたとえば、フラッシュ535を含む。集積回路IC510は、SDRAMサブシステム515、制御540、クロックジェネレータ541、および他の回路網511を含む。SDRAMサブシステム515は、SDRAMコントローラ520、不揮発性メモリコントローラ530、およびデータ操作570を含む。他の回路網511は、一時ストレージ512たとえば、キャッシュメモリ、バッファ、その他を含む。SDRAMコントローラ520は、インターフェース521を介してSDRAM525とインターフェースし、これを制御する。不揮発性メモリコントローラ530は、インターフェース531を介して不揮発性メモリ535とインターフェースし、これを制御する。SDRAMサブシステム515および、したがってSDRAMコントローラ520、不揮発性メモリコントローラ530、およびデータ操作570は、制御540、クロックジェネレータ541、他の回路網511、および一時ストレージ512に動作可能に結合される。クロックジェネレータ541は、制御540および他の回路網511に動作可能に結合される。電力制御550は、電力供給APWRA560をIC510に供給する。電力制御550は、電力供給BPWRB561をSDRAMサブシステム515に供給する。電力制御550は、電力供給CPWRC562をSDRAM525に供給する。電力制御550は、電力供給DPWRD563を不揮発性メモリ535に供給する。電力制御550は、電源異常信号565を制御540に供給する。電力制御550は、信号566によってSDRAMサブシステムにも動作可能に結合される。一実施形態では、電力制御550が、電源異常状態差し迫った電源異常または既存の電源異常のいずれかを検出する時に、電力制御550は、その状態について電源異常信号565を介してIC510に通知する。これは、SDRAMサブシステム515をIC510の残り、特に他の回路網511から分離するための電力分離シーケンスを開始する。一実施形態では、電力分離シーケンス全体が、ソフトウェアからの相互作用を伴わずに、ハードウェアたとえば、制御540、SDRAMサブシステム515、またはその両方によって制御される。電源異常状態の通知を受け取った時に、SDRAMサブシステム515に接続されたインターフェースのすべてたとえば、他の回路網511へのインターフェースが停止される。オンチップ一時ストレージ512は、フラッシュされる。図5では、一時ストレージ512が、SDRAMサブシステム515の外部に図示されているが、一時ストレージ512をSDRAMサブシステム515の一部とすることができることを理解されたい。一例では、一時ストレージ512を、キャッシュたとえば、レベル1キャッシュ、レベル2キャッシュ、レベル3キャッシュ、ポスティングバッファ、または類似物とすることができる。一時ストレージ512がフラッシュされた後に、SDRAMサブシステム515に接続された論理は、フラッシュに使用されたインターフェースが停止した時を示す。停止した後に、これらのインターフェースは、新しいサイクルをまったく受け入れていない。インターフェースのすべてが停止された後に、外部デバイスおよび内部コア論理すなわち、他の回路網511に必要な入力は、ラッチされ、その結果、それらの状態が、分離が発生する時に失われなくなる。入力がラッチされた後に必要ではないクロックは、ゲートオフされる。SDRAMサブシステムは、内部生成されるクロックまたはSDRAMサブシステム515と電力を共有するクロックジェネレータたとえば、クロックジェネレータ541によって生成されるクロックに切り替える。この後に、メモリバックアップに必要ではないSDRAMサブシステム515への入力は、分離される。一実施形態では、これらの入力は、インアクティブ状態に駆動される。入力の分離が完了した後に、SDRAMサブシステム515または制御540は、PWRA560を除去するために電力制御550にシグナリングするたとえば、信号566を使用して。これは、電力が、IC510のうちでSDRAMサブシステム515以外のすべてに対してオフに切り替えられることをもたらす。SDRAMサブシステム515は、少なくとも他の回路網511とは別々の電源プレーン上にある。これは、電力が分離およびバックアップシステム500から完全に失われるまで、SDRAMサブシステムへの電力が維持されるすなわち、PWRB561によってことを可能にする。SDRAMサブシステム515およびSDRAMサブシステム515が必要とするすべての他の論理以外のすべてへの電力の分離および除去の制御に加えて、インターフェースが停止し、一時ストレージ512がフラッシュされた後に、内部メモリバックアップ論理は、SDRAM525から不揮発性メモリ535へのデータの移動を開始する。一実施形態では、これらは、PWRAが除去された後にチップ全体で動作する唯一のサイクルである。一実施形態では、データがSDRAM525へまたはこれから不揮発性メモリ535からまたはこれへ移動される時に、そのデータを、データ操作570によって操作することができる。データ操作570は、図3Aおよび3Bのデータ操作システム300に関して前に説明したものと同一の形で構成され、動作し、機能する。したがって、短くいえば、データ操作570を、データを暗号化/暗号化解除し、かつ/またはデータ完全性署名を計算/チェックするように構成することができる。一実施形態では、データ操作570の機能、データフロー、および構成を、PWRA560がオフである間に実行することができるたとえば、暗号化されたデータを保存し、かつ/またはデータ完全性署名を計算し、格納するために。もう1つの実施形態では、データ操作570の機能、データフロー、および構成を、PWRA560がオンである間に実行することができるたとえば、暗号化されたデータを復元し、かつ/またはデータ完全性署名を計算し、格納するために。上で説明した方法、システム、およびデバイスを、コンピュータシステム内で実施するか、コンピュータシステムによって格納することができる。上で説明した方法を、コンピュータ可読媒体に格納することもできる。本明細書で説明されるデバイス、回路、およびシステムを、当技術分野で入手可能なコンピュータ支援設計ツールを使用して実施し、そのような回路のソフトウェア記述を含むコンピュータ可読ファイルによって実施することができる。これは、分離およびバックアップシステム100および500、IC110および510、電力制御150および550、SDRAMサブシステム115および515、ならびにそのコンポーネントを含むが、これらに限定はされない。これらのソフトウェア記述は、挙動記述、レジスタ転送記述、論理コンポーネント記述、トランジスタ記述、およびレイアウトジオメトリレベル記述とすることができる。さらに、ソフトウェア記述を、記憶媒体上に格納するか、搬送波によって通信することができる。そのような記述を実施できるデータフォーマットは、Cなどの挙動言語をサポートするフォーマット、VerilogおよびVHDLなどのレジスタ転送レベルRTL言語をサポートするフォーマット、ジオメトリ記述言語をサポートするフォーマットGDSII、GDSIII、GDSIV、CIF、およびMEBESなど、ならびに他の適切なフォーマットおよび言語を含むが、これらに限定はされない。さらに、機械可読媒体上のそのようなファイルのデータ転送を、インターネット上の多様な媒体を介してまたはたとえば電子メールを介して電子的に行うことができる。物理ファイルを、4mm磁気テープ、8mm磁気テープ、3-1/2インチフロッピ媒体、CD、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を、複数の処理デバイスの間で分散させることができる。ユーザインターフェース660は、キーボード、マウス、音声認識インターフェース、マイクロホンおよびスピーカ、グラフィカルディスプレイ、タッチスクリーン、あるいは他のタイプのユーザインターフェースデバイスを含むことができる。ユーザインターフェース660を、複数のインターフェースデバイスの間で分散させることができる。ストレージシステム640は、ディスク、テープ、集積回路、RAM、ROM、ネットワークストレージ、サーバ、または他のメモリ機能を含むことができる。ストレージシステム640を、コンピュータ可読媒体とすることができる。ストレージシステム640を、複数のメモリデバイスの間で分散させることができる。処理システム630は、ストレージシステム640からソフトウェア650を取り出し、実行する。処理システムは、データ670を取り出し、格納することができる。処理システムは、通信インターフェース620を介してデータを取り出し、格納することもできる。処理システム630は、有形の結果を達成するためにソフトウェア650またはデータ670を作成し、または変更することができる。処理システムは、通信インターフェース620またはユーザインターフェース660を制御して、有形の結果を達成することができる。処理システムは、リモートに格納されたソフトウェアを通信インターフェース620を介して取り出し、実行することができる。ソフトウェア650およびリモートに格納されたソフトウェアは、オペレーティングシステム、ユーティリティ、ドライバ、ネットワーキングソフトウェア、および通常はコンピュータシステムによって実行される他のソフトウェアを含むことができる。ソフトウェア650は、アプリケーションプログラム、アプレット、ファームウェア、または通常はコンピュータシステムによって実行される他の形の機械可読処理命令を含むことができる。処理システム630によって実行される時に、ソフトウェア650またはリモートに格納されたソフトウェアは、本明細書で説明されたように動作するようにコンピュータシステム600に指示することができる。本発明の前述の説明は、例示および説明のために提示された。網羅的であることまたは本発明を開示された正確な形態に限定することは意図されておらず、他の修正形態および変形形態が上の教示を考慮して可能とすることができる。実施形態は、企図される特定の使用に適するさまざまな実施形態およびさまざまな修正形態で当業者が本発明を最も良く利用することをこれによって可能にするために、本発明の原理およびその実用的応用を最も良く説明するために選択され、説明された。添付の特許請求の範囲が、従来技術によって制限される範囲を除いて、本発明の他の代替実施形態を含むと解釈されることが意図されている。