(57)【特許請求の範囲】
【請求項１】
揮発性メモリから不揮発性メモリへデータをバックアップする方法であって、
第１オンチップ・サブシステムにより、電力を受け取ることと、
オンチップ揮発性メモリ・バックアップ・サブシステムにより、電源異常状態のインジケータを受け取ることと、
前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用されるメモリの内容を、前記揮発性メモリに書き込むことと、
前記電源異常状態の前記インジケータに基づいて、ハードウェアの制御の下で、前記オンチップ揮発性メモリ・バックアップ・サブシステムを分離することと、
前記オンチップ揮発性メモリ・バックアップ・サブシステムが分離された後に、前記電力を前記第１オンチップ・サブシステムから除去することと、
前記電力が前記第１オンチップ・サブシステムから除去された後に、ハードウェアの前記制御の下で、データ操作を示す複数のビットを有するコマンド・データ・ブロックを受け取ることと、
前記示されたデータ操作に基づいて、少なくとも１つのデータ操作エンジンを含む複数のソースから、前記不揮発性メモリに送られるデータのソースを選択し、前記少なくとも１つのデータ操作エンジンが、データ暗号化エンジン及び署名エンジンのうちの少なくとも一方を含むことと、
前記揮発性メモリから前記選択されたソースにデータを転送することと、
操作されたデータを前記選択されたソースから受け取ることと、
前記操作されたデータを前記選択されたソースから前記不揮発性メモリに転送することと
を含む方法。
【請求項２】
前記複数のビットは、前記署名エンジンがデータ完全性署名を送ることを示す、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのデータ操作エンジンは、複数の署名エンジンを含み、前記複数のビットは、前記複数の署名エンジンのうちの前記選択されたソースになるべき１つを示す、請求項１に記載の方法。
【請求項４】
前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用されるメモリは、キャッシュ、又はポスティング・バッファである、請求項１〜３の何れか一項に記載の方法。
【請求項５】
不揮発性メモリと揮発性メモリとの間でデータを転送する方法であって、
電源異常状態のインジケータを受け取ることと、
前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用されるメモリの内容を、前記揮発性メモリに書き込むことと、
揮発性メモリ・バックアップ・コントローラにより、データ操作を示す複数のビットを有するコマンド・データ・ブロックを受け取ることと、
前記電源異常状態のインジケータに基づいて、揮発性メモリ・バックアップ・コントローラにより、前記揮発性メモリ・バックアップ・コントローラを分離するためにオンチップ状態機械を開始することと、
前記揮発性メモリ・バックアップ・コントローラが分離されることのインジケータに基づいて、前記集積回路の少なくとも一部であって前記揮発性メモリ・バックアップ・コントローラではない部分から、第１電力供給を除去することと、
前記示されたデータ操作に基づいて、少なくとも１つのデータ操作エンジンを含む複数のソースから、前記不揮発性メモリに送られるデータのソースを選択し、前記少なくとも１つのデータ操作エンジンが、データ暗号化エンジン及び署名エンジンのうちの少なくとも一方を含むことと、
前記揮発性メモリから前記選択されたソースにデータを転送することと、
操作されたデータを前記選択されたソースから受け取ることと、
前記操作されたデータを前記選択されたソースから前記不揮発性メモリに転送することと
を含む方法。
【請求項６】
前記複数のビットは、前記署名エンジンがデータ完全性署名を送ることを示す、請求項５に記載の方法。
【請求項７】
前記少なくとも１つのデータ操作エンジンは、複数の署名エンジンを含み、前記複数のビットは、前記複数の署名エンジンのうちの前記選択されたソースになるべき１つを示す、請求項６に記載の方法。
【請求項８】
前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用されるメモリは、キャッシュ、又はポスティング・バッファである、請求項５〜７の何れか一項に記載の方法。
【請求項９】
データ操作を示す複数のビットを受け取るデータ操作コントローラであって、前記データ操作コントローラは、前記示されたデータ操作に基づいて、少なくとも１つのデータ操作エンジンを含む複数のソースから、不揮発性メモリに送られるデータのソースを選択し、前記少なくとも１つのデータ操作エンジンが、データ暗号化エンジン及び署名エンジンのうちの少なくとも一方を含む、データ操作コントローラと、
揮発性メモリに結合された揮発性メモリ・バックアップ・コントローラであって、前記揮発性メモリ・バックアップ・コントローラは、電源異常状態のインジケータに応答して、前記揮発性メモリから前記選択されたソースへのデータの転送を容易にするためのものである、揮発性メモリ・バックアップ・コントローラと、
前記不揮発性メモリに結合された不揮発性メモリ・コントローラであって、前記不揮発性メモリ・コントローラは、操作されたデータを前記選択されたソースから受け取り、前記操作されたデータを前記選択されたソースから前記不揮発性メモリに転送するためのものである、不揮発性メモリ・コントローラと、
前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用されるメモリと
を含み、前記揮発性メモリからのデータの前記転送の前に、前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用される前記メモリの内容が、前記揮発性メモリに書き込まれる、集積回路。
【請求項１０】
前記操作されたデータの前記不揮発性メモリへの前記転送が完了した後に、前記揮発性メモリ・バックアップ・コントローラ、前記データ操作コントローラ、および前記不揮発性メモリ・コントローラへの電力を除去する電力供給コントローラ
をさらに含む、請求項９に記載の集積回路。
【請求項１１】
前記複数のビットは、前記署名エンジンがデータ完全性署名を送ることを示す、請求項９又は１０に記載の集積回路。
【請求項１２】
前記少なくとも１つのデータ操作エンジンは、複数の署名エンジンを含み、前記複数のビットは、前記複数の署名エンジンのうちの前記選択されたソースになるべき１つを示す、請求項９又は１０に記載の集積回路。
【請求項１３】
前記揮発性メモリに書き込まれるデータの一時コピーを格納するのに使用されるメモリは、キャッシュ、又はポスティング・バッファである、請求項９〜１２の何れか一項に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、開示され教示されるすべてに関してこれによって参照によって特に本明細書に組み込まれている、Ｐｅｔｅｒ  Ｂ．Ｃｈｏｎが２０１０年１２月２０日に出願した米国特許出願第６１／４２４，７０１号、名称「Ｌｏｗ  Ｐｏｗｅｒ  Ｈａｒｄｗａｒｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｍｅｍｏｒｙ  Ｂａｃｋｕｐ  ｔｈａｔ  ｉｎｃｌｕｄｅｓ  Ｅｎｃｒｙｐｔｉｏｎ  ａｎｄ  Ｓｉｇｎａｔｕｒｅ  Ｇｅｎｅｒａｔｉｏｎ」に基づき、その利益を主張するものである。
【背景技術】
【０００２】
コンピュータまたは他の電子システムのコンポーネントのすべてまたはほとんどを、単一の集積回路（チップ）に集積することができる。チップは、ディジタル機能、アナログ機能、混合信号機能、およびラジオ周波数機能のさまざまな組合せを含むことができる。これらの集積回路を、システム・オン・ア・チップ（ＳｏＣまたはＳＯＣ）と呼ぶ場合がある。通常の応用例は、組込みシステムの分野にある。システム・オン・ア・チップの変形形態が、単一チップ上での多数のＲＡＩＤ機能の集積である。これを、ＲＡＩＤオン・ア・チップ（ＲＯＣ）と呼ぶ場合がある。
【０００３】
ＲＡＩＤアレイを、データの消失をまったく伴わずに冗長性およびエラー回復を提供する形で構成することができる。ＲＡＩＤアレイを、データを複数のディスク・ドライブから同時に読み取るかこれに書き込むことを可能にすることによって、読み書き性能を高めるように構成することもできる。ＲＡＩＤアレイを、アレイのストレージ・サービスを中断せずに故障したディスクを交換することを可能にする「ホット・スワッピング」を可能にするように構成することもできる。米国カリフォルニア州バークレイのカリフォルニア大学のＤａｖｉｄ  Ａ．Ｐａｔｔｅｒｓｏｎらによる１９８７年の刊行物、名称「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」で、ＲＡＩＤテクノロジの基礎的な概念およびレベルが論じられている。
【０００４】
ＲＡＩＤストレージ・システムは、通常、ストレージ・アレイの管理の詳細からユーザまたはホスト・システムを遮蔽するコントローラを利用する。コントローラは、ストレージ・アレイが１つまたは複数のディスク・ドライブ（またはボリューム）として見えるようにする。これは、特定のボリュームのデータ（または冗長データ）が複数のディスク・ドライブにまたがって拡散される可能性があるという事実にもかかわらず、達成される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｄａｖｉｄ  Ａ．Ｐａｔｔｅｒｓｏｎらによる１９８７年の刊行物、名称「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」
【発明の概要】
【課題を解決するための手段】
【０００６】
したがって、本発明の実施形態は、第１オンチップ・サブシステム用の電力を受け取ることと、電源異常状態のインジケータを受け取ることと、前記電源異常状態の前記インジケータに基づいて、ハードウェアの制御の下で、オンチップ揮発性メモリ・バックアップ・サブシステムを分離することと、前記揮発性メモリ・バックアップ・サブシステムが分離された後に、前記電力を前記第１オンチップ・サブシステムから除去することと、前記電力が前記第１オンチップ・サブシステムから除去された後に、ハードウェアの前記制御の下で、データ操作を示す複数のビットを有するコマンド・データ・ブロックを受け取ることと、前記示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択することと、揮発性メモリから前記ソースにデータを転送することと、操作されたデータを前記ソースから受け取ることと、前記操作されたデータを前記不揮発性メモリに転送することとを含む、データをバックアップする方法を含むことができる。
【０００７】
したがって、本発明の実施形態は、不揮発性メモリと揮発性メモリとの間でデータを転送する方法であって、電力供給シャットダウン・インジケータを受け取ることに応答して、データ操作を示す複数のビットを有するコマンド・データ・ブロックを受け取ることと、電力供給シャットダウン・インジケータに基づいて、揮発性メモリ・バックアップ・コントローラを分離するためにオンチップ状態機械を開始することと、揮発性メモリ・バックアップ・コントローラが分離されることのインジケータに基づいて、少なくとも集積回路のうちで揮発性メモリ・バックアップ・コントローラではない部分から第１電力供給を除去することと、示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択することと、揮発性メモリからソースにデータを転送することと、操作されたデータをソースから受け取ることと、操作されたデータを不揮発性メモリに転送することとを含む方法をさらに含むことができる。
【０００８】
したがって、本発明の実施形態は、データ操作を示す複数のビットを受け取るデータ操作コントローラであって、データ操作コントローラは、示されたデータ操作に基づいて、不揮発性メモリに送られるデータのソースを選択する、データ操作コントローラと、揮発性メモリに結合された揮発性メモリ・バックアップ・コントローラであって、揮発性メモリ・バックアップ・コントローラは、電力供給シャットダウン・インジケータに応答して、揮発性メモリからソースへのデータの転送を容易にするためのものである、揮発性メモリ・バックアップ・コントローラと、不揮発性メモリに結合された不揮発性メモリ・コントローラであって、不揮発性メモリ・コントローラは、操作されたデータをソースから受け取り、操作されたデータを不揮発性メモリに転送するためのものである、不揮発性メモリ・コントローラとを含む集積回路をさらに含むことができる。
【図面の簡単な説明】
【０００９】
【図１】電力分離（ｐｏｗｅｒ  ｉｓｏｌａｔｉｏｎ）およびバックアップ・システムを示すブロック図である。
【図２】電力分離の方法を示す流れ図である。
【図３Ａ】データ操作システム構成を示すブロック図である。
【図３Ｂ】データ操作システム構成を示すブロック図である。
【図４】コマンド・データ・ブロック（ＣＤＢ）を示す図である。
【図５】電力分離およびバックアップ・システムを示すブロック図である。
【図６】コンピュータ・システムを示すブロック図である。
【発明を実施するための形態】
【００１０】
図１は、電力分離およびバックアップ・システムのブロック図である。図１では、分離およびバックアップ・システム１００は、集積回路１１０、電力制御１５０、ＳＤＲＡＭ  １２５、および不揮発性メモリ（たとえば、フラッシュ）１３５を含む。集積回路（ＩＣ）１１０は、ＳＤＲＡＭサブシステム１１５、制御１４０、クロック・ジェネレータ１４１、および他の回路網１１１を含む。ＳＤＲＡＭサブシステム１１５は、ＳＤＲＡＭコントローラ１２０および不揮発性メモリ・コントローラ１３０を含む。他の回路網１１１は、一時ストレージ１１２（たとえば、キャッシュ・メモリ、バッファなど）を含むことができる。ＳＤＲＡＭコントローラ１２０は、インターフェース１２１を介してＳＤＲＡＭ  １２５とインターフェースし、これを制御する。不揮発性メモリ・コントローラ１３０は、インターフェース１３１を介して不揮発性メモリ１３５とインターフェースし、これを制御する。ＳＤＲＡＭサブシステム１１５（ならびに、したがってＳＤＲＡＭコントローラ１２０および不揮発性メモリ・コントローラ１３０）は、制御１４０、クロック・ジェネレータ１４１、他の回路網１１１、および一時ストレージ１１２に動作可能に結合される。クロック・ジェネレータ１４１は、制御１４０および他の回路網１１１に動作可能に結合される。
【００１１】
電力制御１５０は、電力供給Ａ（ＰＷＲＡ）１６０をＩＣ  １１０に供給する。電力制御１５０は、電力供給Ｂ（ＰＷＲＢ）１６１をＳＤＲＡＭサブシステム１１５に供給する。電力制御１５０は、電力供給Ｃ（ＰＷＲＣ）１６２をＳＤＲＡＭ  １２５に供給する。電力制御１５０は、電力供給Ｄ（ＰＷＲＤ）１６３を不揮発性メモリ１３５に供給する。電力制御１５０は、電源異常信号１６５を制御１４０に供給する。電力制御１５０は、信号１６６によってＳＤＲＡＭサブシステムにも動作可能に結合される。
【００１２】
本願で使用されるときに、ＳＤＲＡＭ（シンクロナス・ダイナミック・ランダム・アクセス・メモリ）は、すべての揮発性メモリ・テクノロジを含むことが意図されていることを理解されたい。したがって、ＳＤＲＡＭサブシステム１１５は、一実施形態では、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）コントローラを含むことができ、ＳＤＲＡＭ  １２５は、ＳＲＡＭデバイスを含むことができる。
【００１３】
一実施形態では、電力制御１５０が、電源異常状態（差し迫った電源異常または既存の電源異常のいずれか）を検出する時に、電力制御１５０は、電源異常信号１６５を介してその状態についてＩＣ  １１０に通知する。これは、ＳＤＲＡＭサブシステム１１５をＩＣ  １１０の残りおよび特に他の回路網１１１から分離するための電力分離シーケンスを開始する。一実施形態では、電力分離シーケンス全体が、ソフトウェアからの相互作用を伴わずに、ハードウェア（たとえば、制御１４０、ＳＤＲＡＭサブシステム１１５、またはその両方）によって制御される。
【００１４】
電源異常状態の通知を受け取った時には、ＳＤＲＡＭサブシステム１１５に接続されたインターフェース（たとえば、他の回路網１１１へのインターフェース）のすべてが停止される。オンチップ一時ストレージ１１２は、フラッシュされる。図１では、一時ストレージ１１２がＳＤＲＡＭサブシステム１１５の外部に図示されているが、一時ストレージ１１２をＳＤＲＡＭサブシステム１１５の一部とすることができることを理解されたい。一例では、一時ストレージ１１２を、キャッシュ（たとえば、レベル１キャッシュ、レベル２キャッシュ、レベル３キャッシュ）、ポスティング・バッファ（ｐｏｓｔｉｎｇ  ｂｕｆｆｅｒ）、または類似物とすることができる。
【００１５】
一時ストレージ１１２がフラッシュされた後に、ＳＤＲＡＭサブシステム１１５に接続された論理は、フラッシュに使用されたインターフェースが停止した時を示す。停止した後に、これらのインターフェースは、新しいサイクルをまったく受け入れていない。インターフェースのすべてが停止された後に、外部デバイスおよび内部コア論理（すなわち、他の回路網１１１）に必要な入力は、ラッチされ、その結果、それらの状態が、分離が発生する時に失われなくなる。入力がラッチされた後に必要ではないクロックは、ゲート・オフされる。ＳＤＲＡＭサブシステムは、内部生成されるクロックまたはＳＤＲＡＭサブシステム１１５と電力を共有するクロック・ジェネレータ（たとえば、クロック・ジェネレータ１４１）によって生成されるクロックに切り替える。この後に、メモリ・バックアップに必要ではないＳＤＲＡＭサブシステム１１５への入力は、分離される。一実施形態では、これらの入力は、インアクティブ状態に駆動される。
【００１６】
入力の分離が完了した後に、ＳＤＲＡＭサブシステム１１５（または制御１４０）は、ＰＷＲＡ  １６０を除去するために電力制御１５０にシグナリングする（たとえば、信号１６６を使用して）。これは、電力が、ＩＣ  １１０のうちでＳＤＲＡＭサブシステム１１５以外のすべてに対してオフに切り替えられることをもたらす。ＳＤＲＡＭサブシステム１１５は、少なくとも他の回路網１１１とは別々の電源プレーン上にある。これは、電力が分離およびバックアップ・システム１００から完全に失われるまで、ＳＤＲＡＭサブシステムへの電力が維持される（すなわち、ＰＷＲＢ  １６１によって）ことを可能にする。
【００１７】
ＳＤＲＡＭサブシステム１１５（およびＳＤＲＡＭサブシステム１１５が必要とするすべての他の論理）以外のすべてへの電力の分離および除去の制御に加えて、インターフェースが停止し、一時ストレージ１１２がフラッシュされた後に、内部メモリ・バックアップ論理は、ＳＤＲＡＭ  １２５から不揮発性メモリ１３５へのデータの移動を開始する。一実施形態では、これらは、ＰＷＲＡが除去された後にチップ全体で動作する唯一のサイクルである。
【００１８】
図１は、電力分離およびその後のメモリ・バックアップに使用できる内部接続のうちのいくつかと一緒に、ＩＣ  １１０チップと外部論理との間の接続を示す。電力制御１５０が電源異常を検出する時に、電力制御１５０は、電源異常信号１６５を介してＩＣ  １１０に通知する。制御１４０は、電源異常信号１６５を監視する。制御１４０が、電源異常信号１６５がアサートされているのを見、電力分離が実行を可能にされているときには、制御１４０は、ｐｏｗｅｒ＿ｉｓｏ＿ｂｅｇｉｎ信号（図１に明示的には図示せず）をアサートすることによって分離シーケンスを開始するようにＳＤＲＡＭサブシステム１１５に通知する。その後、ＳＤＲＡＭサブシステム１１５は、電力分離シーケンスに必要なステップを実行する。電力分離シーケンスに含まれるステップは、本明細書で後でより詳細に説明する。
【００１９】
電力分離シーケンスが完了した後に、少なくともＰＷＲＡ  １６０を除去できることを示すために、ＭＳＳ＿ｃｏｒｅ＿ｉｓｏ＿ｒｅａｄｙ信号（図１に明示的には図示せず）がアサートされる。電力制御１５０は、ＰＷＲＡ  １６０をディスエーブルするが、ＰＷＲＢ  １６１、ＰＷＲＣ  １６２、およびＰＷＲＤ  １６３をイネーブルされたままにする。ＰＷＲＡ  １６０をディスエーブルすることによって、ＩＣ  １１０のうちでＰＷＲＢ  １６１に接続された回路網以外の部分から電力が除去される。ＳＤＲＡＭサブシステム１１５は、関連するフェーズ・ロック・ループ（たとえば、クロック・ジェネレータ１４１の内部の）およびＩＯ（たとえば、インターフェース１２１および１３１）と一緒に、ＩＣ  １１０の残りとは異なる電源プレーン上にある。このプレーンは、ＰＷＲＢ  １６１によって電力を与えられ、イネーブルされたままになる。一例では、この別々の電源プレーン上にその回路網の少なくとも一部を有する機能ブロックは、制御１４０、クロック・ジェネレータ１４１、およびＳＤＲＡＭサブシステム１１５である。一実施形態では、外部ＳＤＲＡＭ  １２５は、ＰＷＲＣ  １６２によって電力を与えられたままになり、外部不揮発性メモリは、ＰＷＲＤ  １６３によって電力を与えられたままになる。これは、メモリ・バックアップを実行するために電力を与えられたままにならなければならない、減らされた量の論理である。
【００２０】
電力分離シーケンス中に、ＳＤＲＡＭサブシステム１１５は、適切な時にＳＤＲＡＭ  １２５メモリ・バックアップを開始する。このバックアップは、必要な（または要求された）データをＳＤＲＡＭ  １２５から不揮発性メモリ１３５に移動する。一実施形態では、メモリ・バックアップ全体が、ソフトウェア介入なしで実行される。
【００２１】
上で述べ、部分的に図１によって示された、電力供給１６０〜１６３を供給するための方法が、分離およびバックアップ・システム１００の１つまたは複数のコンポーネントに電力を供給する（および除去する）例示的な形であることを理解されたい。図示の例では、電力供給１６０〜１６３とさまざまな電源ドメイン／プレーンの制御とのすべてが、ＩＣ  １１０の外部で実行される。しかし、分離およびバックアップ・システム１００の１つまたは複数のコンポーネントに電力を供給する（および除去する）他の方法がある。ある方法は、電圧ごとに単一の外部電源を使用し、その後、ＩＣ  １１０の内部のスイッチを使用して異なる電源ドメイン／プレーンを作成することができる。別の方法は、外部電圧の個数を減らし、異なる電源ドメイン／プレーンを制御するためのＩＣ  １１０の内部のスイッチと一緒に、さまざまな電圧を得るのに分離およびバックアップ・システム１００の１つまたは複数のコンポーネント（たとえば、ＩＣ  １１０）の内部のレギュレータを使用することができる。これらの方法を用いると、電力分離は、ほぼ同一の形で行われる。相違は、電力供給１６１〜１６３をイネーブルされたままに保つために通知される必要がある電力制御論理１５０を、内部また外部に配置できることである。
【００２２】
図２は、電力分離の方法の流れ図である。図２に示されたステップを、分離およびバックアップ・システム１００の１つまたは複数の要素によって実行することができる。電力を、第１オンチップ・サブシステムのために受け取る（２０２）。たとえば、他の回路網１１１に電力を与えるＰＷＲＡ  １６０を、ＩＣ  １１０によって受け取ることができる。電源異常状態のインジケータを受け取る（２０４）。たとえば、電源異常信号１６５をＩＣ  １１０によって受け取ることができる。これは、ｐｏｗｅｒ＿ｉｓｏ＿ｂｅｇｉｎ信号がアサートされる時に電力分離シーケンスが始まることをもたらす。
【００２３】
ＳＤＲＡＭサブシステムへのインターフェースを停止させる（２０６）。一時ストレージをＳＤＲＡＭにフラッシュする（２０８）。たとえば、レベル３キャッシュ、レベル２キャッシュ、ポスティング・バッファ、またはＳＤＲＡＭ  １２５へ／からのデータのコピーを一時的に格納するのに使用される任意の他のタイプのメモリ・ストレージを、フラッシュすることができる。インターフェースのそれぞれに接続された論理は、それらが未解決のサイクルのすべてを完了し、すべての新しいサイクルの受入れを停止した時に、停止表示を返すことができる。
【００２４】
ハードウェア制御の下で、オンチップＳＤＲＡＭサブシステムを分離する（２１０）。たとえば、ＳＤＲＡＭインターフェース（または一時ストレージ１１２）が、それがサイクルの受入れを停止したことを示した時に、その入力は、それらをインアクティブ状態にセットすることによって分離される。他のインターフェースからの停止が受け取られた後に、外部コア・デバイスおよび内部論理のために保存される必要がある入力は、ラッチされる。これらの入力は、リセット、ＰＬＬ用の信号、およびストラップ入力などを含む。この時点で、ＳＤＲＡＭサブシステムがもはや必要としないすべてのクロックをゲート・オフして、電力消費削減を助けることができる。ある時間の後に、ＳＤＲＡＭサブシステムへの入力のすべてを分離し、これらをインアクティブ状態にセットするように指示する信号（たとえば、ＭＳＳ＿ｃｏｒｅ＿ｉｓｏ＿ｅｎａｂｌｅ）をアサートすることができる。
【００２５】
第１オンチップ・サブシステムによって使用されるクロックおよび電力をゲート・オフする（２１２）。たとえば、一時ストレージ１１２に行くクロックを、内部で生成されるクロックに切り替えることができる。入力が分離された後に、信号（たとえば、ＭＳＳ＿ｃｏｒｅ＿ｉｓｏ＿ｒｅａｄｙ）をアサートすることができる。これは、電力制御論理１５０に、たとえばＩＣ  １１０に接続されたＰＷＲＡ  １６０を現在はディスエーブルできることを示す。
【００２６】
ＳＤＲＡＭサブシステムによって使用されるクロックを生成する（２１４）。たとえば、クロック・ジェネレータ１４１は、ＰＷＲＡ  １６０がオフである時に使用される、ＳＤＲＡＭサブシステムによって使用されるクロックを生成することができる。データをＳＤＲＡＭから不揮発性メモリにコピーする（２１６）。たとえば、ＳＤＲＡＭ  １２５から不揮発性メモリ１３５へのメモリ・バックアップを、信号（たとえば、ｆｌａｓｈ＿ｏｆｆｌｏａｄ＿ｂｅｇｉｎ）をアサートすることによって開始することができる。ＳＤＲＡＭサブシステム、ＳＤＲＡＭ、および不揮発性メモリから電力を除去する（２１８）。たとえば、メモリ・バックアップの完了時に電力制御１５０の制御の下で、または単に分離およびバックアップ・システム１００全体への電力に障害が発生したのでのいずれかで、電力が、ＳＤＲＡＭサブシステム１１５、ＳＤＲＡＭ  １２５、および不揮発性メモリ１３５から除去される。
【００２７】
バックアップ中にＳＤＲＡＭサブシステム１１５の電力を分離することの利益は、減らされた量の電力が消費されることである。メモリ・バックアップを処理するＩＣ  １１０の内部の論理、外部のＳＤＲＡＭ  １２５、および不揮発性メモリ１３５だけが、電力を与えられる。電力消費を減らすことによって、残りの電力のすべてが消費される前にメモリ・バックアップを実行するのに使用可能な時間の長さが増える。より長い時間を有することは、バックアップが完了するまで電力を維持するために、より少ない外部論理が必要であることに加えて、より多くのメモリをバックアップすることを可能にする。電力分離が行われているので、メモリ・バックアップを行うのに必要な電力消費および全体的なシステム・コストを下げるために、フラッシュ・コントローラを内部に移動することが有利である可能性がある。
【００２８】
一実施形態では、ＳＤＲＡＭ  １２５内のデータが不揮発性メモリ１３５に移動されるので、暗号化および／またはデータ完全性署名計算を実行することによって、追加のデータ保護が、バックアップされるデータについて提供される。データの暗号化は、データを格納するセキュアな方法を提供する。データ完全性署名計算は、発生する可能性が高いほとんどのデータ・エラーに対して保護する。
【００２９】
ＳＤＲＡＭサブシステム１１５は、メモリ・バックアップまたはメモリ復元が要求される時に、ＳＤＲＡＭ  １２５と不揮発性メモリ１３５との間でデータを移動する。ＳＤＲＡＭサブシステム１１５は、要求されるデータ移動を示すためにＣＤＢ（コマンド記述子ブロック（command Descriptor Block））のリストを使用することができる。これらのＣＤＢのフォーマットは、通常は事前に定義される。ＣＤＢ内のフィールドの１つは、ＳＤＲＡＭ  １２５内のどこでデータを読み取りまたは書き込むべきなのかを示すメモリ・アドレス・フィールドである。一実施形態では、このフィールドで提供されるアドレス・ビットの個数は、ＳＤＲＡＭ  １２５のすべてをアドレッシングするのに必要な個数を超える。必要ではないこれらのアドレス・ビットのいくつかを、データがＳＤＲＡＭ  １２５へ／から移動される時にそのデータがどのように操作されるべきかに関する情報をエンコードするのに使用することができる。この移動は、メモリ・バックアップまたはメモリ復元が実行される時あるいは他の時に発生する可能性がある。未使用アドレス・ビットのエンコーディングは、データを暗号化／暗号化解除しなければならないのかどうか、署名生成が要求されるのかどうか、署名をオフロードしまたはリセットしなければならないのかどうか、およびどの署名エンジンを使用すべきかを示すことができる。
【００３０】
不揮発性メモリ・コントローラ１３０からＳＤＲＡＭ  １２５を読み取る／書き込む要求が受け取られる時に、前述の未使用アドレス・ビットを解釈して、データがＳＤＲＡＭサブシステム１１５を介してＳＤＲＡＭ  １２５と不揮発性メモリ１３５との間で移動する時にどのデータ操作を実行すべきかを判定することができる。
【００３１】
一実施形態で、図３Ａおよび３Ｂは、データ操作システム構成のブロック図である。図３Ａでは、データ操作システム３００は、ＳＤＲＡＭコントローラ３１０、フラッシュ・コントローラ３２０、制御３３０、署名エンジン３４０、暗号化／暗号化解除エンジン３５０、およびマルチプレクサ（ＭＵＸ）３６０を含む。制御３３０は、ＳＤＲＡＭコントローラ３１０、フラッシュ・コントローラ３２０、署名エンジン３４０、暗号化／暗号化解除エンジン３５０、およびＭＵＸ  ３６０に動作可能に結合される。したがって、制御３３０は、フラッシュ・コントローラ３２０からコマンド、信号、ＣＤＢなどを受け取り、調停を実行し、他の形でデータ操作システム３００のデータ・フローおよび構成を管理することができる。
【００３２】
図３Ａでは、ＳＤＲＡＭコントローラ３１０は、結合３７１を介して、ＳＤＲＡＭ（図３Ａには図示せず）から読み取られたデータを署名エンジン３４０、暗号化／暗号化解除エンジン３５０、およびＭＵＸ  ３６０の第１入力に送るように構成される。暗号化／暗号化解除エンジン３５０は、結合３７２を介して、暗号化されたデータをＭＵＸ  ３６０の第２入力に送るように構成される。署名エンジン３４０は、結合３７３を介して、データ完全性署名をＭＵＸ  ３６０の第３入力に送るように構成される。ＭＵＸは、制御３３０によって、ＳＤＲＡＭから読み取られた未変更のデータ、暗号化されたデータ、またはデータ完全性署名のうちの１つをフラッシュ・コントローラ３２０に送るように制御される。フラッシュ・コントローラ３２０は、ＳＤＲＡＭから読み取られた未変更のデータ、暗号化されたデータ、またはデータ完全性署名をフラッシュ・メモリ（図３Ａには図示せず）に格納することができる。
【００３３】
図３Ａは、ＳＤＲＡＭ（たとえば、ＳＤＲＡＭ  １２５）から読み取る要求が、制御３３０によってフラッシュ・コントローラ３２０から受け取られた時のデータ・フローおよび制御の構成を示す。一実施形態では、この構成およびフローは、ＳＤＲＡＭメモリのバックアップが要求される時に使用される。一実施形態では、署名エンジン３４０および暗号化／暗号化解除エンジン３５０が、読取り要求と書込み要求との両方に使用される。フラッシュ書込み要求（ＳＤＲＡＭ読取りに対応する）のデータ接続およびフローは、図３Ａに示されている。フラッシュ読取り要求（ＳＤＲＡＭ書込みに対応する）のデータ接続は、図３Ｂに示されている。
【００３４】
フラッシュ・コントローラ３２０は、読取り要求を制御３３０に送る。この要求のエンコードされたアドレス・ライン（または専用フィールド）が、制御３３０によって調べられて、ＳＤＲＡＭコントローラ３１０から返されつつある読取りデータからの読取りデータをどこにルーティングすべきかおよびデータ操作が要求される場合にどのデータ操作が要求されているのかが判定される。一実施形態では、アドレス・ビット［４６：４０］は、次のようなエンコーディングおよびマッピングを含む。ビット４０〜４２（ＳＥＳ［０：２］）は、８つの署名エンジン３４０のうちのどれが、エンコーディングの他のビットによって指定されるアクション（存在する場合に）を行うべきかを指定し、ビット４３（ＳＧ）は、指定されたシグネチャ・エンジンが入力として読取りデータを使用してデータ完全性署名を生成すべきかどうかを決定し、ビット４４（ＳＯ）は、指定されたシグネチャ・エンジンに、データ完全性署名（ＭＵＸ  ３６０の状態に応じて、格納のためにフラッシュ・コントローラ３２０に送られる場合がある）を出力するように指示し、ビット４５（ＳＲ）は、指定されたシグネチャ・エンジンのデータ完全性署名をリセットし、ビット４６（Ｅ／Ｄ）は、暗号化／暗号化解除エンジン３５０の出力からの暗号化されたデータをフラッシュ・コントローラ３２０に送るべきなのかどうかを決定する。
【００３５】
図４は、コマンド・データ・ブロック（ＣＤＢ）の図である。図４では、アドレス・ビット０〜４６のアドレス・フィールドが示されている。使用されるＳＤＲＡＭアドレス・ビットを指定するＳＤＲＡＭアドレス・ビット内のフィールド（Ａ［０：３９］）およびエンコードされたアドレス・ビットのフィールド（Ａ［４０：４６］）も図示されている。エンコードされたアドレス・ビットの個々のビット・フィールド（ＳＥＳ［０：２］、ＳＧ、ＳＯ、ＳＲ、およびＥ／Ｄ）も図示されている。
【００３６】
理解できるように、アドレス・ビット４０〜４６のエンコーディングに基づいて、３つの異なるソースのうちの１つがフラッシュ・コントローラ３２０によって使用されることをもたらす指示が、ＭＵＸ  ３６０に送られる。このデータは、ＳＤＲＡＭコントローラ３１０、暗号化／暗号化解除エンジン３５０、または署名オフロードの場合には署名エンジン３４０のうちの１つのいずれかから直接に来る。エンコーディングが、暗号化を実行することを指示する場合には、暗号化／暗号化解除エンジン３５０は、制御３３０によって制御されて、ＳＤＲＡＭコントローラ３１０からの読取りデータを受け取る。暗号化／暗号化解除エンジン３５０が、ＳＤＲＡＭコントローラ３１０からのデータを受け取った後に、暗号化／暗号化解除エンジン３５０は、データ暗号化を実行し、結果をフラッシュ・コントローラ３２０へのルーティングのためにＭＵＸ  ３６０に送り、ＭＵＸ  ３６０がそのデータを受け入れるのを待つ。
【００３７】
エンコーディングは、フラッシュ・メモリに転送されるデータに対して署名生成を行わなければならないのかどうかをも示す。８つの署名エンジン３４０のうちの、エンコーディングの署名エンジン選択（ＳＥＳ［０：２］）フィールドによって示される１つは、そのＣＲＣ／チェックサム署名値を更新しなければならないことを通知される。データがフラッシュ・コントローラ３２０に直接にまたは暗号化／暗号化解除エンジン３５０に送られるのと並列に、そのデータは、少なくとも指定された署名エンジン３４０にも送られる。選択された署名エンジン３４０が、これらのブロックのいずれかによってＳＤＲＡＭデータが受け入れられるのを見た後に、現在のＣＲＣ／チェックサム署名が、そのデータを使用して更新される。最後に、エンコーディングは、署名オフロードを出力しなければならないのかどうかを示す。署名オフロードが要求される場合には、読取りコマンドは、制御３３０によってＳＤＲＡＭコントローラ３１０に発行はされない。そうではなく、制御３３０は、選択された署名エンジン３４０に、データ完全性署名データをフラッシュ・コントローラ３２０に送るように指示する。
【００３８】
図３Ｂでは、フラッシュ・コントローラ３２０は、結合３８１を介して、フラッシュ・メモリ（図３Ｂには図示せず）から読み取られたデータを署名エンジン３４０、暗号化／暗号化解除エンジン３５０、およびＭＵＸ  ３６１の第１入力に送るように構成される。暗号化／暗号化解除エンジン３５０は、結合３８２を介して、暗号化されたデータをＭＵＸ  ３６１の第２入力に送るように構成される。署名エンジン３４０は、結合３８３を介して、選択されたデータ完全性署名の現在の値を示すように構成される。ＭＵＸ  ３６１は、制御３３０によって、フラッシュ・メモリから読み取られた未変更のデータ（フラッシュ・コントローラ３２０を介する）または暗号化解除されたデータをＳＤＲＡＭコントローラ３１０に送るように制御される。ＳＤＲＡＭコントローラ３１０は、フラッシュ・メモリから読み取られた未変更のデータまたは暗号化解除されたデータをＳＤＲＡＭ（図３Ｂには図示せず）内に格納することができる。
【００３９】
フラッシュ読取り要求（ＳＤＲＡＭ書込みに対応する）用のデータ接続が、図３Ｂに示されている。一実施形態では、このフローは、ＳＤＲＡＭメモリに戻すデータの復元が要求される時に使用される。制御３３０は、フラッシュ・コントローラ３２０から書込みコマンドを受け取ることができる。制御３３０は、ＳＤＲＡＭコントローラ３１０に書込み要求を発行することができる。要求のエンコードされたアドレス・ラインは、ＳＤＲＡＭコントローラに送られつつある（フラッシュ・コントローラ３２０から）書込みデータからの書込みデータをどこにルーティングすべきかおよびデータ操作が要求される場合にどのデータ操作が要求されているのかを判定するために調べられる。図３Ａの議論で説明されたものと同一のエンコーディングを使用することができる。エンコーディングに基づいて、フラッシュ・コントローラ３２０からの未変更のデータまたは暗号化／暗号化解除エンジン３５０からの暗号化解除されたデータのいずれかが、ＳＤＲＡＭコントローラ３１０に送るためにＭＵＸ  ３６１によって選択される。エンコーディングが、暗号化解除を実行することを指示する場合には、暗号化／暗号化解除エンジン３５０は、フラッシュ・コントローラ３２０からのデータを受け入れるように制御される。暗号化／暗号化解除エンジン３５０がフラッシュ・コントローラ３２０からデータを受け入れた後に、暗号化／暗号化解除エンジン３５０は、データ暗号化解除を実行し、その結果をＳＤＲＡＭコントローラ３１０に送り、ＳＤＲＡＭコントローラ３１０がそのデータを受け入れるのを待つ。エンコーディングは、署名生成が、ＳＤＲＡＭに転送されるデータについて行われる必要があるのかどうかをも示す。８つの署名エンジン３４０のうちの、エンコーディングのＳＥＳ［０：２］フィールドによって示される１つが、そのＣＲＣ／チェックサム署名値を更新するように制御される。署名生成は、必ず暗号化解除されたデータに対して行われる。したがって、署名エンジン３４０は、フラッシュ・コントローラ３２０からのデータまたは暗号化／暗号化解除エンジン３５０からの暗号化解除結果の間で選択して、データ完全性署名値を更新するように制御される。データがフラッシュ・コントローラまたは暗号化／暗号化解除エンジン３５０のいずれかからＳＤＲＡＭコントローラ３１０に送られるのと並列に、そのデータは、選択された署名エンジン３４０にも送られる。選択された署名エンジン３４０が、データがＳＤＲＡＭコントローラ３１０によって受け入れられるのを見た後に、現在のＣＲＣ／チェックサム署名が、そのデータを使用して更新される。最後に、８つのデータ完全性署名のうちの１つの現在の値を、結合３８３を介してソフトウェアによって選択し、読み取ることができる。この値を、ソフトウェアによって、フラッシュ・メモリからＳＤＲＡＭに復元されるバックアップ署名と比較することができる。これは、データがバックアップされるか復元される間にデータ・エラーが発生しなかったことを検証するために行うことができる。
【００４０】
図５は、電力分離およびバックアップ・システムのブロック図である。図５では、分離およびバックアップ・システム５００は、集積回路５１０、電力制御５５０、ＳＤＲＡＭ  ５２５、および不揮発性メモリ（たとえば、フラッシュ）５３５を含む。集積回路（ＩＣ）５１０は、ＳＤＲＡＭサブシステム５１５、制御５４０、クロック・ジェネレータ５４１、および他の回路網５１１を含む。ＳＤＲＡＭサブシステム５１５は、ＳＤＲＡＭコントローラ５２０、不揮発性メモリ・コントローラ５３０、およびデータ操作５７０を含む。他の回路網５１１は、一時ストレージ５１２（たとえば、キャッシュ・メモリ、バッファ、その他）を含む。ＳＤＲＡＭコントローラ５２０は、インターフェース５２１を介してＳＤＲＡＭ  ５２５とインターフェースし、これを制御する。不揮発性メモリ・コントローラ５３０は、インターフェース５３１を介して不揮発性メモリ５３５とインターフェースし、これを制御する。ＳＤＲＡＭサブシステム５１５（および、したがってＳＤＲＡＭコントローラ５２０、不揮発性メモリ・コントローラ５３０、およびデータ操作５７０）は、制御５４０、クロック・ジェネレータ５４１、他の回路網５１１、および一時ストレージ５１２に動作可能に結合される。クロック・ジェネレータ５４１は、制御５４０および他の回路網５１１に動作可能に結合される。
【００４１】
電力制御５５０は、電力供給Ａ（ＰＷＲＡ）５６０をＩＣ  ５１０に供給する。電力制御５５０は、電力供給Ｂ（ＰＷＲＢ）５６１をＳＤＲＡＭサブシステム５１５に供給する。電力制御５５０は、電力供給Ｃ（ＰＷＲＣ）５６２をＳＤＲＡＭ  ５２５に供給する。電力制御５５０は、電力供給Ｄ（ＰＷＲＤ）５６３を不揮発性メモリ５３５に供給する。電力制御５５０は、電源異常信号５６５を制御５４０に供給する。電力制御５５０は、信号５６６によってＳＤＲＡＭサブシステムにも動作可能に結合される。
【００４２】
一実施形態では、電力制御５５０が、電源異常状態（差し迫った電源異常または既存の電源異常のいずれか）を検出する時に、電力制御５５０は、その状態について電源異常信号５６５を介してＩＣ  ５１０に通知する。これは、ＳＤＲＡＭサブシステム５１５をＩＣ  ５１０の残り、特に他の回路網５１１から分離するための電力分離シーケンスを開始する。一実施形態では、電力分離シーケンス全体が、ソフトウェアからの相互作用を伴わずに、ハードウェア（たとえば、制御５４０、ＳＤＲＡＭサブシステム５１５、またはその両方）によって制御される。
【００４３】
電源異常状態の通知を受け取った時に、ＳＤＲＡＭサブシステム５１５に接続されたインターフェースのすべて（たとえば、他の回路網５１１へのインターフェース）が停止される。オンチップ一時ストレージ５１２は、フラッシュされる。図５では、一時ストレージ５１２が、ＳＤＲＡＭサブシステム５１５の外部に図示されているが、一時ストレージ５１２をＳＤＲＡＭサブシステム５１５の一部とすることができることを理解されたい。一例では、一時ストレージ５１２を、キャッシュ（たとえば、レベル１キャッシュ、レベル２キャッシュ、レベル３キャッシュ）、ポスティング・バッファ、または類似物とすることができる。
【００４４】
一時ストレージ５１２がフラッシュされた後に、ＳＤＲＡＭサブシステム５１５に接続された論理は、フラッシュに使用されたインターフェースが停止した時を示す。停止した後に、これらのインターフェースは、新しいサイクルをまったく受け入れていない。インターフェースのすべてが停止された後に、外部デバイスおよび内部コア論理（すなわち、他の回路網５１１）に必要な入力は、ラッチされ、その結果、それらの状態が、分離が発生する時に失われなくなる。入力がラッチされた後に必要ではないクロックは、ゲート・オフされる。ＳＤＲＡＭサブシステムは、内部生成されるクロックまたはＳＤＲＡＭサブシステム５１５と電力を共有するクロック・ジェネレータ（たとえば、クロック・ジェネレータ５４１）によって生成されるクロックに切り替える。この後に、メモリ・バックアップに必要ではないＳＤＲＡＭサブシステム５１５への入力は、分離される。一実施形態では、これらの入力は、インアクティブ状態に駆動される。
【００４５】
入力の分離が完了した後に、ＳＤＲＡＭサブシステム５１５（または制御５４０）は、ＰＷＲＡ  ５６０を除去するために電力制御５５０にシグナリングする（たとえば、信号５６６を使用して）。これは、電力が、ＩＣ  ５１０のうちでＳＤＲＡＭサブシステム５１５以外のすべてに対してオフに切り替えられることをもたらす。ＳＤＲＡＭサブシステム５１５は、少なくとも他の回路網５１１とは別々の電源プレーン上にある。これは、電力が分離およびバックアップ・システム５００から完全に失われるまで、ＳＤＲＡＭサブシステムへの電力が維持される（すなわち、ＰＷＲＢ  ５６１によって）ことを可能にする。
【００４６】
ＳＤＲＡＭサブシステム５１５（およびＳＤＲＡＭサブシステム５１５が必要とするすべての他の論理）以外のすべてへの電力の分離および除去の制御に加えて、インターフェースが停止し、一時ストレージ５１２がフラッシュされた後に、内部メモリ・バックアップ論理は、ＳＤＲＡＭ  ５２５から不揮発性メモリ５３５へのデータの移動を開始する。一実施形態では、これらは、ＰＷＲＡが除去された後にチップ全体で動作する唯一のサイクルである。
【００４７】
一実施形態では、データがＳＤＲＡＭ  ５２５へまたはこれから不揮発性メモリ５３５からまたはこれへ移動される時に、そのデータを、データ操作５７０によって操作することができる。データ操作５７０は、図３Ａおよび３Ｂのデータ操作システム３００に関して前に説明したものと同一の形で構成され、動作し、機能する。したがって、短くいえば、データ操作５７０を、データを暗号化／暗号化解除し、かつ／またはデータ完全性署名を計算／チェックするように構成することができる。一実施形態では、データ操作５７０の機能、データ・フロー、および構成を、ＰＷＲＡ  ５６０がオフである間に実行することができる（たとえば、暗号化されたデータを保存し、かつ／またはデータ完全性署名を計算し、格納するために）。もう１つの実施形態では、データ操作５７０の機能、データ・フロー、および構成を、ＰＷＲＡ  ５６０がオンである間に実行することができる（たとえば、暗号化されたデータを復元し、かつ／またはデータ完全性署名を計算し、格納するために）。
【００４８】
上で説明した方法、システム、およびデバイスを、コンピュータ・システム内で実施するか、コンピュータ・システムによって格納することができる。上で説明した方法を、コンピュータ可読媒体に格納することもできる。本明細書で説明されるデバイス、回路、およびシステムを、当技術分野で入手可能なコンピュータ支援設計ツールを使用して実施し、そのような回路のソフトウェア記述を含むコンピュータ可読ファイルによって実施することができる。これは、分離およびバックアップ・システム１００および５００、ＩＣ  １１０および５１０、電力制御１５０および５５０、ＳＤＲＡＭサブシステム１１５および５１５、ならびにそのコンポーネントを含むが、これらに限定はされない。これらのソフトウェア記述は、挙動記述、レジスタ転送記述、論理コンポーネント記述、トランジスタ記述、およびレイアウト・ジオメトリレベル記述とすることができる。さらに、ソフトウェア記述を、記憶媒体上に格納するか、搬送波によって通信することができる。
【００４９】
そのような記述を実施できるデータ・フォーマットは、Ｃなどの挙動言語をサポートするフォーマット、ＶｅｒｉｌｏｇおよびＶＨＤＬなどのレジスタ転送レベル（ＲＴＬ）言語をサポートするフォーマット、ジオメトリ記述言語をサポートするフォーマット（ＧＤＳＩＩ、ＧＤＳＩＩＩ、ＧＤＳＩＶ、ＣＩＦ、およびＭＥＢＥＳなど）、ならびに他の適切なフォーマットおよび言語を含むが、これらに限定はされない。さらに、機械可読媒体上のそのようなファイルのデータ転送を、インターネット上の多様な媒体を介してまたはたとえば電子メールを介して電子的に行うことができる。物理ファイルを、４ｍｍ磁気テープ、８ｍｍ磁気テープ、３−１／２インチ・フロッピ媒体、ＣＤ、ＤＶＤ、その他などの機械可読媒体上で実施できることに留意されたい。
【００５０】
図６は、コンピュータ・システムのブロック図を示す。コンピュータ・システム６００は、通信インターフェース６２０、処理システム６３０、ストレージ・システム６４０、およびユーザ・インターフェース６６０を含む。処理システム６３０は、ストレージ・システム６４０に動作可能に結合される。ストレージ・システム６４０は、ソフトウェア６５０およびデータ６７０を格納する。処理システム６３０は、通信インターフェース６２０およびユーザ・インターフェース６６０に動作可能に結合される。コンピュータ・システム６００は、プログラムされた汎用コンピュータを含むことができる。コンピュータ・システム６００は、マイクロプロセッサを含むことができる。コンピュータ・システム６００は、プログラム可能回路網または特殊目的回路網を含むことができる。コンピュータ・システム６００を、一緒に要素６２０〜６７０を含む複数のデバイス、プロセッサ、ストレージ、および／またはインターフェースの間で分散させることができる。
【００５１】
通信インターフェース６２０は、ネットワーク・インターフェース、モデム、ポート、バス、リンク、トランシーバ、または他の通信デバイスを含むことができる。通信インターフェース６２０を、複数の通信デバイスの間で分散させることができる。処理システム６３０は、マイクロプロセッサ、マイクロコントローラ、論理回路、または他の処理デバイスを含むことができる。処理システム６３０を、複数の処理デバイスの間で分散させることができる。ユーザ・インターフェース６６０は、キーボード、マウス、音声認識インターフェース、マイクロホンおよびスピーカ、グラフィカル・ディスプレイ、タッチ・スクリーン、あるいは他のタイプのユーザ・インターフェース・デバイスを含むことができる。ユーザ・インターフェース６６０を、複数のインターフェース・デバイスの間で分散させることができる。ストレージ・システム６４０は、ディスク、テープ、集積回路、ＲＡＭ、ＲＯＭ、ネットワーク・ストレージ、サーバ、または他のメモリ機能を含むことができる。ストレージ・システム６４０を、コンピュータ可読媒体とすることができる。ストレージ・システム６４０を、複数のメモリ・デバイスの間で分散させることができる。
【００５２】
処理システム６３０は、ストレージ・システム６４０からソフトウェア６５０を取り出し、実行する。処理システムは、データ６７０を取り出し、格納することができる。処理システムは、通信インターフェース６２０を介してデータを取り出し、格納することもできる。処理システム６３０は、有形の結果を達成するためにソフトウェア６５０またはデータ６７０を作成し、または変更することができる。処理システムは、通信インターフェース６２０またはユーザ・インターフェース６６０を制御して、有形の結果を達成することができる。処理システムは、リモートに格納されたソフトウェアを通信インターフェース６２０を介して取り出し、実行することができる。
【００５３】
ソフトウェア６５０およびリモートに格納されたソフトウェアは、オペレーティング・システム、ユーティリティ、ドライバ、ネットワーキング・ソフトウェア、および通常はコンピュータ・システムによって実行される他のソフトウェアを含むことができる。ソフトウェア６５０は、アプリケーション・プログラム、アプレット、ファームウェア、または通常はコンピュータ・システムによって実行される他の形の機械可読処理命令を含むことができる。処理システム６３０によって実行される時に、ソフトウェア６５０またはリモートに格納されたソフトウェアは、本明細書で説明されたように動作するようにコンピュータ・システム６００に指示することができる。
【００５４】
本発明の前述の説明は、例示および説明のために提示された。網羅的であることまたは本発明を開示された正確な形態に限定することは意図されておらず、他の修正形態および変形形態が上の教示を考慮して可能とすることができる。実施形態は、企図される特定の使用に適するさまざまな実施形態およびさまざまな修正形態で当業者が本発明を最も良く利用することをこれによって可能にするために、本発明の原理およびその実用的応用を最も良く説明するために選択され、説明された。添付の特許請求の範囲が、従来技術によって制限される範囲を除いて、本発明の他の代替実施形態を含むと解釈されることが意図されている。
【図１】
0005854676.tif 000002
【図２】
0005854676.tif 000003
【図３Ａ】
0005854676.tif 000004
【図３Ｂ】
0005854676.tif 000005
【図４】
0005854676.tif 000006
【図５】
0005854676.tif 000007
【図６】
0005854676.tif 000008