(57)【特許請求の範囲】
【請求項１】
ダイナミック・ランダム・アクセス・メモリ・デバイスであって、
前記メモリ・デバイスに書き込まれたデータを保有するためのメモリのデータ・ストレージ・アレイと、
行バージョン値を記憶するための、前記データ・ストレージ・アレイに関連付けされた行バージョン記憶部と、
グループ・バージョン値を記憶するための、前記データ・ストレージ・アレイに関連付けされたグループ・バージョン・データ・ストレージと、
消去要求に応じて、前記データ・ストレージ・アレイに書き込まれたすべての以前のデータを読み取り不可とし、前記グループ・バージョン・データ・ストレージに記憶されたグループ・バージョン値が設定できない場合には、前記グループ・バージョン値を新たなグループ・バージョン値に変更するように構成されたセキュリティ・コントローラを含む、メモリ・デバイス。
【請求項２】
前記セキュリティ・コントローラは、特定の行からの読み取り要求に応じて、前記グループ・バージョン値を前記特定の行に関する前記行バージョン値と比較し、前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致する場合、前記特定の行からのデータを出力し、前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致しない場合、前記特定の行からのデータを出力しないように構成される、請求項１に記載のメモリ・デバイス。
【請求項３】
前記セキュリティ・コントローラは、消去要求に応じて、前記グループ・バージョン値が特定の行に関する前記行バージョン値と一致する場合、前記特定の行を物理的に消去する動作を開始するように構成される、請求項１に記載のメモリ・デバイス。
【請求項４】
メモリ・デバイスであって、
複数の記憶セルを含む１つまたは複数の行と、
グループ・バージョン値を記憶するための第１のメモリ要素と、
前記１つまたは複数の行のうちの行に関する行バージョン値を記憶するための第２のメモリ要素と、
特定の行からの読み取り中に、前記グループ・バージョン値を前記特定の行に関する前記行バージョン値と比較し、前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致する場合、前記特定の行からのデータを出力し、前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致しない場合、前記特定の行からのデータを出力しないように構成されたセキュリティ・コントローラと
を含み、
前記セキュリティ・コントローラは、さらに、消去コマンドを受信した場合に、前記グループ・バージョン値を新しいグループ・バージョン値に変更するように構成され、
前記セキュリティ・コントローラは、さらに特定の行へのデータの書き込み要求に応じて、前記グループ・バージョン値を前記行バージョン値にコピーして、前記書き込み要求に関連した前記データを書き込むように構成される、メモリ・デバイス。
【請求項５】
前記セキュリティ・コントローラは、消去コマンドを受信した場合、前記行バージョン値が前記新しいグループ・バージョン値と一致しない場合に消去を開始するようにさらに構成される、請求項４に記載のメモリ・デバイス。
【請求項６】
前記セキュリティ・コントローラは、特定の行へのデータの書き込み中、元の行バージョン値が前記グループ・バージョン値と一致しない場合に前記行のその他の値を消去するようにさらに構成される、請求項４に記載のメモリ・デバイス。
【請求項７】
前記セキュリティ・コントローラが、多数決動作を実行するように構成され、前記グループ・バージョン値が、３つ以上の記憶セルに重複して記憶された論理値を有し、それによって、シングル・イベント・アップセットに対応する、請求項４に記載のメモリ・デバイス。
【請求項８】
メモリ・デバイスの内容を保護するための方法であって、
読み取り要求、書き込み要求、および消去要求のうちの１つを受信し、
特定の行からの読み取り中に、記憶セルのグループ・バージョン値を前記特定の行に関する記憶セルの行バージョン値と比較して、前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致する場合に前記特定の行からのデータを出力し、前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致しない場合に前記特定の行からのデータを出力せず、
消去コマンドを受信して、前記グループ・バージョン値を新しいグループ・バージョン値に変更し、
特定の行へのデータの書き込み要求に応じて、前記グループ・バージョン値を前記行バージョン値にコピーして、前記書き込み要求に関連した前記データを書き込むことを含む、方法。
【請求項９】
消去コマンドを受信し、前記行バージョン値が前記新しいグループ・バージョン値と一致しない場合に消去を開始することをさらに含む、請求項８に記載の方法。
【請求項１０】
消去が、前記行バージョン値が前記新しいグループ・バージョン値と一致しないデータを物理的に消去することを含む、請求項８に記載の方法。
【請求項１１】
特定の行への書き込み中、元の行バージョン値が前記グループ・バージョン値と一致しない場合に前記行のその他の値を消すことをさらに含む、請求項８に記載の方法。
【請求項１２】
消去中に、前記消去を完了する前に読み取り要求または書き込み要求のうちの１つを許すことをさらに含み、読み取り要求を許すことが、
読み取り要求を受信することと、
グループ・バージョン値を前記特定の行に関する行バージョン値と比較することと、前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致する場合に前記特定の行からのデータを出力することと、
前記グループ・バージョン値が前記特定の行に関する前記行バージョン値と一致しない場合に前記特定の行からのデータを出力しないことと
を含む、請求項８に記載の方法。
【請求項１３】
ダイナミック・ランダム・アクセス・メモリ・デバイスの内容を保護するための方法であって、
前記デバイス上のセキュリティ・コントローラによって、読み取り、書き込み、または消去を含む、アクセス要求を受信することと、
前記読み取り要求が特定の行に向けられている前記読み取り要求の受信に応答して、
前記セキュリティ・コントローラによって、グループ・バージョン記憶部内の第１のグループ・バージョン値と、特定の行に関する行バージョン記憶部の中の行バージョン値とを比較し、前記グループ・バージョン値が、前記特定の行に関する前記行バージョン値と一致する場合に、前記特定の行からのデータを出力し、前記グループ・バージョン値が、前記特定の行に関する前記行バージョン値と一致しない場合に、前記特定の行からのデータを出力しないことと、
消去要求の受信に応答して、
前記セキュリティ・コントローラによって、前記第１のグループ・バージョン値を第２のグループ・バージョン値に変更することと、
前記書き込み要求が特定の行に向けられている前記書き込み要求の受信に応答して、
前記セキュリティ・コントローラによって、前記第１のグループ・バージョン値を前記特定の行に関する前記行バージョン記憶部にコピーし、前記書き込み要求に関連するデータを、前記特定の行の１以上の第１の記憶セルに書き込むことと
を含む、方法。
【請求項１４】
前記消去要求の受信に応答して、前記方法は、消去動作を開始し、
前記消去動作は、
特定の行に関する行バージョン記憶部の中に記憶された行バージョン値と、前記第２のグループ・バージョン値とが一致しない、前記ＤＲＡＭの特定の行の中のデータを物理的に消去することを含む、請求項１３に記載の方法。
【請求項１５】
前記書き込み要求の受信に応答して、
前記書き込み要求の前に、行バージョン記憶部の中に前記特定の行に関して記憶された行バージョン値が、前記第１のグループ・バージョン値と一致しない場合に、前記特定の行の１以上の第２の記憶セルに記憶された値を消去することをさらに含み、
前記第２の記憶セルが、前記書き込み要求と関連したデータが前記書き込み要求に応答して書き込まれない、前記特定の行の中の記憶セルである、
請求項１３に記載の方法。
【請求項１６】
第１の消去要求に応答して開始される消去動作中に、
前記第１の消去要求に応答して開始される前記消去動作が完了していない場合に、前記第１の消去要求に引き続いて受信される第２の消去要求を排除することをさらに含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して安全なコンピューティングに関し、より詳細には、メモリ・デバイスの内容の保護に関する。
【背景技術】
【０００２】
情報を保護するために、記憶されたデータへのアクセスを迅速に防止する能力が、有用である。例えば、クラウド・コンピューティングを利用する個人は、クラウド・マシンのメイン・メモリを完全に消去することを望むことができる。別の例は、サーバなどの共有された物理リソースへの物理的なアクセスである。ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）デバイスは、それらのデバイスの内容を給電なしにまたはリフレッシュすることなくある期間保有することができる。物理的にアクセスする権限のない者が、ＤＲＡＭデバイスを詐取するために、コールド・ブート攻撃（cold-boot attack）などの知られている方法を用いることができる。また、相変化メモリなどの永続的なメモリ・テクノロジーは、書き込みまたは消去が非常に遅く、また不揮発性のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）の窃盗などのセキュリティ上の問題をもたらす。あるパターンによってすべてのメモリを上書きすることによって消去を行う時間のかかるプロセスは、データへのアクセスを防止できるほどに、高速ではない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
メモリ・デバイスの内容を保護するための方法およびメモリ・デバイスを提供する。
【課題を解決するための手段】
【０００４】
メモリ・デバイスは、メモリ・デバイスの内容を守る迅速な消去能力を備えることができる。迅速な消去能力は、コマンドが発行されると即座に、メモリ・デバイスに記憶されたデータへのアクセスを実質的に永久に不可にし、メモリ・デバイスに書き込まれたすべての前のデータを読み取り不可とする。迅速な消去能力は、消去コマンドが受信され、実行されると、直ちに新たな書き込み動作および新たに書き込まれたデータを読み取るためのメモリ・デバイスの使用を許可することができる。この迅速な消去能力は、迅速な消去のその他の特徴を変更することなく、新しく書き込まれたのではないデータの物理的な消去プロセスを開始することができる。これらの特徴は、は、メモリ・デバイスの行ごとに１つまたは複数のビットによって達成される。
【図面の簡単な説明】
【０００５】
【図１】メモリ・デバイスに書き込まれたデータを読み取り不可にする能力を有するメモリ・デバイスを示す図である。
【図２】メモリ・デバイスの内容を守る迅速な消去能力を有するメモリ・デバイスを示す図である。
【図３】迅速な消去能力を有するメモリ・デバイスの態様を示す図である。
【図４】消去コマンドの前に書き込まれたデータを読み取り不可にするように適合された複数のＤＲＡＭチップを含むメモリ・デバイスを示す図である。
【図５】一実施形態によるメモリ・デバイスの内容を守るセキュリティ・コントローラの動作を示す流れ図である。
【発明を実施するための形態】
【０００６】
情報を保護するために、記憶されたデータへのアクセスを迅速に防止する能力が、有用である。例えば、クラウド・コンピューティングを利用する個人は、クラウド・マシンのメイン・メモリを完全に消去することを望むことができる。別の例は、サーバなどの共有された物理リソースへの物理的なアクセスである。ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）デバイスは、それらのデバイスの内容を給電なしに、またはリフレッシュすることなくある期間保有することができる。権限があるかまたは権限がないかに関わらず、人がＤＲＡＭデバイスを物理的に制御することができる場合、その人は、その他の要因（例えば、電力）に関わらず、ＤＲＡＭデバイスの内容を読み取ることができる。また、相変化メモリなどの永続的なメモリ・テクノロジーは、書き込みまたは消去が非常に遅く、また、不揮発性のＤＩＭＭの窃盗などのセキュリティ上の問題をもたらす。パターンによってすべてのメモリを上書きすることによって消去を行うプロセスは、データへのアクセスを防止できるほど高速というわけではない。記憶されたデータを守るためのインターフェースの自己破壊（self-destruct）などのその他の可能性は、データまたはメモリ・デバイスを完全に使い物にならなくすることになる。メモリ・デバイスの迅速な消去の特徴は、メモリ・デバイスの内容を保護するのに有用である。
【０００７】
メモリ・デバイスは、メモリ・デバイスの内容を守る迅速な消去能力を実装することができる。迅速な消去能力は、コマンドが発行されると即座に、メモリ・デバイスに記憶されたデータへのアクセスを実質的に永久に不可とすることができる。迅速な消去能力は、消去コマンドが受信され、実行されると直ちに、新しい書き込み動作および新たに書き込まれたデータの読み取りのためのメモリ・デバイスの使用を許可することができる。これは、新しいオペレーティング・システムが遅延なくブートすることを可能にし得る。迅速な消去能力は、迅速な消去のその他の特徴を変更することなく、新しく書き込まれたのではないデータの物理的な消去プロセスを開始することができる。これらの特徴は、メモリ・デバイスの行ごとの１つまたは複数のビットによって実現され得る。
【０００８】
図１は、メモリ・デバイス１００に書き込まれたデータを読み取り不可にする能力を有するメモリ・デバイス１００を示す。メモリ・デバイス１００としては、グループ・バージョン（group version）データ・ストレージ１０１を挙げることができる。グループ・バージョン・データ・ストレージは、３つ以上の記憶セル１０４に重複して記憶された論理値を含むことができ、１つのビットまたはビットの集合とすることができる。論理値は、グループ・バージョン値１０２とすることができる。ボーティング・ブロック（voting block）１０６が存在する可能性があり、シングル・ビット・アップセット（single bit upset）１０３などのシングル・イベント・アップセット（single event upset）に対応するためにボーティング動作を実行するように適用させることができる。シングル・ビット・アップセットは、不良ビット、または電離性放射線の結果である可能性がある。誤り訂正符号およびスクラブは、上述の事象を一定の間隔で訂正することができる。一定の間隔は、すべての場合に十分に迅速であるとは限られない。ボーティング・ブロック１０６は、論理値１０４を分析して、値のうちのどれが多数を占めているかを判定することができる。図１においては、例えば、３つのビットのうちの少なくとも２つのビットが、論理値「１」を含む。ボーティング・ブロック１０６は、値「１」をグループ・バージョン値として指定することができる。また、ボーティング・ブロック１０６は、シングル・ビット・アップセット１０３の値を訂正する動作を実行し、この例においては、書き込みなどの動作を通じて値を「０」から「１」に変更することができる。最終的に、グループ・バージョン値１０２が、メモリ・デバイス１００に書き込まれたデータを読み取り不可にするために使用される。
【０００９】
メモリ・デバイス１００は、アレイ１０５のようなデータ・ストレージ区画（data storage section）を含むことができる。アレイ１０５は、メモリ・デバイス１００に書き込まれたデータを保持するための記憶セルまたはビットの複数の行１１０を含むことができる。典型的なアレイは、図１においてＲ１からＲｎまでとして表される数百の行１１０を含む。アレイ１０５は、メモリ・デバイス１００に書き込まれたデータを保持するための記憶セルまたはビットの複数の列１２０を含むことができる。典型的なアレイは、図１においてＣ１からＣｍまでとして表される数百の列１２０を含む。特定の行１１１は、特定の行１１１に関する行バージョン（row version）値１１２を含み得る。行バージョン値１１２は、特定の列１２１にある可能性がある。グループ・バージョン・ストレージ１０１が上述のように重複して記憶された複数のビットを有する実施形態においては、複数の列が使用される。特定の列１２１は、アレイ１０５の各行に関する行バージョン値１１２を含むことができる。実施形態において、行バージョン値１１２は、特定のバイトなどの行のサブセットの記憶セルのデータと相互に関連することができ、実質的に、データの特定のバイトに関する行バージョン値１１２とすることができる。行のサブセットのデータと相互に関連する行バージョン値１１２の場合、例えば、特定の行１１１は、複数の行バージョン値を含むことができ、各行バージョン値１１２は、特定のバイトに関連する。行バージョン値１１２は、Ｃ１、Ｃ２、およびＣ３などの１つまたは複数の列に記憶させることができる。実施形態において、アレイ１０５は、グループ・バージョン・データ・ストレージ１０１およびグループ・バージョン値１０２とすることができる。最終的に、行バージョン値１１２が、メモリ・デバイス１００に既に書き込まれたデータを読み取り不可にすることを支援するため、使用することができる。
【００１０】
図２は、メモリ・デバイス２００の内容を安全にするため迅速な消去能力を有するメモリ・デバイス２００を示す。迅速な消去は、データ・アクセスを不可にすることができ、必ずしも物理的な消去を含まない可能性がある論理的な操作を通じて、セキュリティを実現することができる。メモリ・デバイス２００は、ホスト２７０に接続されたメモリ・コントローラ２８０に接続されることができる。いくつかの実施形態においては、ホスト２７０は、プロセッサとすることができる。メモリ・デバイス２００への読み取り、書き込み、または消去要求は、メモリ・コントローラ２８０を介してホスト２７０から得ることができる。メモリ・デバイス２００は、潜在的に読み取られるかまたは潜在的に書き込まれるデータを保持することができるデータ・バッファ２９７を含んでいても良い。メモリ・デバイス２００は、メモリの位置を選択する、例えば、特定の行および特定の行の１つまたは複数の列を指定するアドレスを受信することが可能なアドレス・デコーダ２９８を含んでいても良い。メモリ・デバイス２００は、読み取り、書き込み、または消去命令をアクティブ化するコマンド・デコーダ２９９を含んでいても良い。
【００１１】
メモリ・デバイス２００は、メモリ・デバイス１００と同様のまたは同じ特徴を含むことができる。メモリ・デバイス２００は、グループ・バージョン・データ・ストレージ２０１を含むことができる。グループ・バージョン・データ・ストレージ２０１は、レジスタが電離性放射線に影響を受けないように十分に大きな臨界電荷（critical charge）を有するレジスタとすることができる。グループ・バージョン・データ・ストレージ２０１は、グループ・バージョン値１０２と同様のグループ・バージョン値２０２を含むことができる。メモリ・デバイス２００は、アレイ１０５と同様のアレイ２０５のようなデータ・ストレージ区画を含んでいても良い。行バージョン値１１２と同様に、アレイ２０５は、特定の行またはバイトなどのデータの特定のサブセットに関する行バージョン値２１２を含んでいても良い。
【００１２】
メモリ・デバイス２００は、読み取り、書き込み、または消去要求の間にメモリ・デバイス２００のその他の態様とインタラクションするように構成されたセキュリティ・コントローラ２２０を含むことができる。セキュリティ・コントローラ２２０は、読み取り、書き込み、または消去に関して一意に動作するように構成され得る。一実施形態においては、アレイ２０５の特定の行からの読み取り中に、セキュリティ・コントローラ２２０は、グループ・バージョン値２０２を特定の行に関する行バージョン値２１２と比較しても良い。グループ・バージョン値２０２が特定の行に関する行バージョン値２１２と一致する場合、データは、特定の行から出力することができる。特定の行からのデータは、データ・バッファ２９７に出力され、最終的に、メモリ・コントローラ２８０およびホスト２７０に出力することができる。実際には、セキュリティ・ルーリングは、データが特定の行から読み取り可能であると判定する。グループ・バージョン値２０２が特定の行に関する行バージョン値２１２と一致しない場合、データは、特定の行から出力されない。実際には、セキュリティ・ルーリングは、データが特定の行から読み取り不可であると判定した。内容が読み取り不可であると裁定される場合、メモリ・コントローラ２８０およびホスト２７０は、信号の拒否、知られているパターン、またはランダムなパターンを受信することができる。読み取り要求に応じて、データを出力するためのその他の可能性も想定できる。
【００１３】
一実施形態においては、アレイ２０５の特定の行に対する消去中に、セキュリティ・コントローラ２２０は、グループ・バージョン値２０２を新しいグループ・バージョン値に変更することができる。グループ・バージョン・データ・ストレージ２０１は、新しいグループ・バージョン値を保有することができ、もはや前のグループ・バージョン値２０２を保有しなくても良い。新しいグループ・バージョン値の論理値は、前のグループ・バージョン値２０２の論理値でなくとも良い。消去は、特定の行の行バージョン値が新しいグループ・バージョン値と一致しないアレイ２０５の特定の行のアドレス（データ）の内容の物理的な消去をさらに含むことができる。セキュリティ・コントローラ２２０は、物理的な消去が完了するまで別の消去要求を処理しなくとも良い。たとえ物理的な消去が完了していない可能性があっても、消去コマンドの前に書き込まれたアレイ２０５の内容を読み取り不可にする本開示の迅速な消去についての、本開示による特徴が存在する。特定の行からの読み取りは、特定の行に関する行バージョン値２１２が、消去要求の後の新しいグループ・バージョン値である可能性があるグループ・バージョン値２０２と一致しない場合は、許容されない。このため、たとえ物理的な消去が完了していない可能性があっても、グループ・バージョン値２０２および行バージョン値２１２の一致しない論理値が、消去要求の前に記憶されたデータに対する読み取りを許可しない。実施形態においては、新しいグループ・バージョン値が行バージョン値２１２と一致する場合、物理メモリは消去されることはない。新しいグループ・バージョン値が行バージョン値２１２と一致しない場合、または実施形態において、消去要求に対して比較が実行されない場合、特定の行の物理的な消去が始まる可能性がある。その他の可能性も想定できる。
【００１４】
一実施形態においては、アレイ２０５の特定の行に対する書き込み中に、セキュリティ・コントローラ２２０は、グループ・バージョン値２０２を行バージョン値２１２にコピーすることができる。ホスト２７０は、特定の行に書き込まれるデータについて、メモリ・コントローラ２８０を介してデータ・バッファ２９７に送信することができる。セキュリティ・コントローラ２２０は、書き込まれるデータを特定の行に書き込み得る。データの書き込みは、データ・バッファ２９７からアレイ２０５に対してである可能性がある。例えば、書き込まれるデータが行のサブセットに過ぎない場合、特定の行のその他の値は、そのまま残る可能性がある。セキュリティ・コントローラ２２０は、データが書き込まれない記憶セルの特定の行のその他の値を消去することができる。その他の値をそのように消すことは、行バージョン値２１２が現在のグループ・バージョン値２０２と異なることをセキュリティ・コントローラ２２０が発見する場合に行なうことができる。特定の行のその他の値の消去は、今書き込まれた新しい行バージョン値２１２がグループ・バージョン値２０２と同じなので、行のサブセットに書き込むことと、そして、特定の行のその他のデータへの読み取り能力を持つこととを防止する。その他の値を消すことは、知られているパターンを書き込むことにより行なうことができる。知られているパターンは、アレイ２０５に書き込まれるデータを書き込む前にデータ・バッファ２９７に書き込まれても良い。
【００１５】
一実施形態においては、アレイ２０５の特定の行への書き込み中に、特定の行の内容が、データ・バッファ２９７によってアクセスされることがある。セキュリティ・コントローラ２２０は、グループ・バージョン値２０２を特定の行に関する行バージョン値２１２と比較することができる。グループ・バージョン値２０２が行バージョン値２１２と一致しない場合、特定の行の内容が、データ・バッファ２９７内で消去される可能性がある。セキュリティ・コントローラ２２０は、グループ・バージョン値２０２を行バージョン値２１２にコピーし、書き込まれるデータをデータ・バッファ２９７に書き込むことができる。データ・バッファ２９７の内容を、アレイ２０５の特定の行に書き込むことができる。一実施形態において、特定の行に対する書き込み要求は、消去要求の後直ちに許されても良い。したがって、たとえ物理的な消去が完了していない可能性があっても、グループ・バージョン値２０２の論理値が、データが特定の行に書き込まれることを可能にするために行バージョン値２１２にコピーされても良い。しかし、特定の行の残りの部分が消されているので、特定の行からのその後の読み取りは、前のグループ・バージョン値を有する前の書き込みによって書き込まれたデータを出力しない。
【００１６】
実施形態において、行バージョン値２１２は、特定のバイトなどの行のサブセットの記憶セルのデータと相互に関連する可能性があり、実質的に、データの特定のバイトに関する行バージョン値２１２である可能性がある。行のサブセットのデータと相互に関連する行バージョン値２１２の場合、例えば、アレイ２０５の特定の行は、複数の行バージョン値を含むことができ、各行バージョン値２１２が特定のバイトに関連する。特定の行の特定のバイトに書き込むために、データが、特定のバイトに書き込まれても良く、特定の行のその他のビットが、消去されても良い。消去されない場合、グループ・バージョン値２０２と、消去コマンドの前に書き込まれたバイトに関する行バージョン値２１２との間の不一致により、データが読み取り不可にされる。１つの可能性としては、行バッファの特定の行にアクセスすることを挙げることができる。特定のバイトに関する行バージョン値２１２がグループ・バージョン値２０２と一致しない場合、特定のバイトが消去される可能性がある。消去は、各ビットおそらくはバイトを介して関連付けられる行バージョン値２１２が、グループ・バージョン値２０２と一致しない場合に、特定の行の全ビットに関して行われても良い。グループ・バージョン値２０２は、特定の行の特定のバイトに関する行バージョン値２１２にコピーされても良い。特定の行の特定のバイトに書き込まれるデータは、行バッファに書き込むことができる。特定の行の特定のバイトへの実際の書き込みは、行バッファからアレイ２０５の特定の行の特定のバイトに対して行われる可能性がある。データを書き込むためのその他の可能性も想定できる。
【００１７】
図３は、迅速な消去能力を有するメモリ・デバイスの態様を示す。図３は、メモリ・デバイスの例示的な態様を提供し、上述のセキュリティ・コントローラ、アドレス・デコーダ、コマンド・デコーダ、またはデータ・バッファについての可能な特徴を示す。図１からのアレイ１０５およびグループ・バージョン値１０２を、種々の可能な特徴の相互作用の記述を補助するために示す。行バージョン値がアレイ１０５の各行に関する列Ｃ１にある場合、センス・ラッチ（sense latch）３５０が、アレイ１０５の特定の行に関する行バージョン値を捕捉するために存在しても良い。特定の行からの読み取り要求の間に、グループ・バージョン値１０２を、特定の行に関するセンス・ラッチ３５０の値と比較することができる。特定の行への書き込み要求の間に、グループ・バージョン値１０２は、特定の行に関する行バージョン値にコピーされることもあり、このため、センス・ラッチ３５０の値が、グループ・バージョン値１０２に一致しても良い。列バッファ３６０は、データ３７０にアクセスするか、またはアレイ１０５のビットのシーケンスにアクセスすることができる。列選択３６５は、アクセスするアレイ１０５の適切な列アドレスを選択しても良い。行デコーダ３８０は、アクセスするアレイ１０５の適切な行アドレスを選択することができる。このため、例えば、書き込みコマンド３９０を、正常に完了させることができる。ＸＯＲゲート３１８は、読み取り中、グループ・バージョン値１０２がアドレス指定された行に関する（センス・ラッチ３５０の）行バージョン値と異なることを発見した場合、ＮＯＲゲート３１９は、データ３７０のデータと無関係に「０」を出力しても良い。図３は、迅速な消去能力を有するメモリ・デバイスの態様を設計するための可能な方法を示しており、その他の可能性も想定できる。
【００１８】
図４は、消去コマンドの前に書き込まれたデータを読み取り不可にするように適合された複数のＤＲＡＭチップを含むメモリ・デバイスを示す。メモリ・デバイス４００は、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）とすることができる。メモリ・デバイスは、バッファ・チップ４１０を含んでいても良い。メモリ・デバイス４００は、ホスト４７０に接続されたメモリ・コントローラ４８０に接続されても良い。一部の実施形態において、ホスト４７０は、プロセッサとすることができる。メモリ・デバイス４００への読み取り、書き込み、または消去要求は、図４においてはホスト４７０に含まれるように示されているメモリ・コントローラ４８０を介して、ホスト４７０から得ることができる。コマンド、アドレス、およびデータ信号４９０は、メモリ・コントローラ４８０とバッファ・チップ４１０を含むメモリ・デバイス４００との間で伝送される。
【００１９】
メモリ・デバイス４００は、少なくとも１つのダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）チップ４４０を含んでいても良い。メモリ・デバイス４００がＤＩＭＭである場合、図４に示されるように、多くのＤＲＡＭチップ４４０が含まれていても良い。バッファ・チップ４１０の態様は、図１〜２のメモリ・デバイス１００、２００と同様とすることができる。バッファ・チップは、行数および列数を含む、使用されているＤＲＡＭチップ４４０の性質を知ることができる。バッファ・チップは、ＤＲＡＭチップ４４０に関する行の復号をパーソナライズする能力を有していても良い。バッファ・チップは、図２のセキュリティ・コントローラ２２０と同様のセキュリティ・コントローラを含むことができる。バッファ・チップ４１０は、グループ・バージョン値４０２を含むこともできる。グループ・バージョン値は、図１〜２のグループ・バージョン・データ・ストレージ１０１、２０１と同様のグループ・バージョン・データ・ストレージに記憶される。バッファ・チップ４１０は、行バージョン値４１２を含むことができる。行バージョン値４１２は、バッファ・チップ４１０の各行に関して存在しても良い。バッファ・チップ４１０の各行に関する行バージョン値４１２は、各ＤＲＡＭチップ４４０の行に関する行バージョン値として機能することができる。例えば、各ＤＲＡＭチップ４４０が「ｎ」行を含む場合、バッファ・チップ４１０は、「ｎ」行のそれぞれに関する行バージョン値４１２を有する「ｎ」行を含むことができる。実際には、ＤＩＭＭ４００は、バッファ・チップ４１０が「ｎ」個の行バージョン値４１２を有するようにして「ｎ」行を有することができる。実施形態において、バッファ・チップ４１０は、各ＤＲＡＭチップ４４０の各行、またはバイトなどの各ＤＲＡＭチップ４４０のサブセットに関する行バージョン値４１２を含んでいても良い。
【００２０】
メモリ・デバイス４００への読み取り、書き込み、または消去要求は、メモリ・コントローラ４８０を介してホスト４７０から得られても良い。特定のＤＲＡＭチップ４４０への関連するコマンド、アドレス、およびデータ信号４９０は、メモリ・コントローラ４８０とバッファ・チップ４１０との間を伝送される。一実施形態においては、特定のＤＲＡＭチップ４４０の特定の行からの読み取り中に、セキュリティ・コントローラは、グループ・バージョン値４０２を、ＤＲＡＭチップ４４０の特定の行に関連する行バージョン値４１２と比較することができる。グループ・バージョン値４０２がＤＲＡＭチップ４４０の特定の行に関連する行バージョン値４１２と一致する場合、データが、特定のＤＲＡＭチップ４４０の特定の行から出力される。グループ・バージョン値４０２がＤＲＡＭチップ４４０の特定の行に関連する行バージョン値４１２と一致しない場合、データは、特定のＤＲＡＭチップ４４０の特定の行から出力されなくとも良い。
【００２１】
一実施形態においては、特定のＤＲＡＭチップ４４０の特定の行に対する消去中に、セキュリティ・コントローラは、グループ・バージョン値４０２を新しいグループ・バージョン値に変更することができる。新しいグループ・バージョン値の論理値は、前のグループ・バージョン値４０２の論理値でなくとも良い。消去は、特定のＤＲＡＭチップ４４０の特定の行に関連する行バージョン値４１２が新しいグループ・バージョン値に一致しない特定のＤＲＡＭチップ４４０の特定の行のアドレス（データ）の内容の物理的な消去とすることができる。セキュリティ・コントローラは、物理的な消去が完了するまで別の消去要求を処理しなくとも良い。たとえ物理的な消去が完了していない可能性があっても、特定のＤＲＡＭチップ４４０の内容を読み取り不可にする本開示の迅速な消去の特徴は存在し得る。特定のＤＲＡＭチップ４４０の特定の行からの読み取りは、特定のＤＲＡＭチップ４４０の特定の行に関連する行バージョン値４１２が、消去要求の後の新しいグループ・バージョン値である可能性があるグループ・バージョン値４０２と一致しない場合は許可されない。
【００２２】
一実施形態においては、特定のＤＲＡＭチップ４４０の特定の行への書き込み中に、セキュリティ・コントローラは、グループ・バージョン値４０２を、特定のＤＲＡＭチップ４４０の特定の行に関連する行バージョン値４１２にコピーすることができる。セキュリティ・コントローラは、書き込まれるデータを特定のＤＲＡＭチップ４４０の特定の行に書き込みを行うことができる。セキュリティ・コントローラは、データが書き込まれないが、行バージョン値４１２に関連付けられる記憶セルのＤＩＭＭの特定の行のその他の値を消去することができる。その他の値を上記の通り消去することは、行バージョン値４１２が現在のグループ・バージョン値４０２と異なることをセキュリティ・コントローラが発見した場合に行うことができる。ＤＩＭＭの特定の行のその他の値を消去することは、特定のＤＲＡＭチップ４４０への書き込みの後に、特定の行のその他のＤＲＡＭチップへの読み取り能力を保持することを防止することができる。その他の値を消去することは、知られているパターンを書き込むことにより行なうことができる。ＤＩＭＭなどのメモリ・デバイスに関連して読み取り、書き込み、または消去要求を処理するその他の方法を含むその他の可能性も想定できる。
【００２３】
図５は、一実施形態によるメモリ・デバイスの内容を守るセキュリティ・コントローラの動作を示すフローチャートである。動作５００は、ブロック５０１においてコマンドを受信して開始する。ブロック５０２は、コマンドが読み取り要求であるか、書き込み要求であるか、または消去要求であるかを判定する。
【００２４】
コマンドが読み取り要求である場合、グループ・バージョン値と行バージョン値とが、ブロック５１１において比較される。グループ・バージョン値と行バージョン値とは、「０」または「１」などの論理値で等しい可能性を有する。比較は、グループ・バージョン値または行バージョン値のどちらも変更せずに行われても良い。比較は、一致または不一致を結果として生じさせる。一致は、等しい値を示す。不一致は、等しくない値を示す。比較を実行するための異なる方法を用いるその他の実施形態も想定できる。比較を実行することは、評価論理を適用することとして特徴付けられても良い。一致または不一致の結果に到達することは、セキュリティ裁定を決定することとして特徴付けられても良い。特定の行の行バージョン値とのグループ・バージョン値の比較が一致を結果として生じる場合、ブロック５１４において、データが、特定の行から出力される。データは、読み取り可能な内容である。読み取り要求は、データによって充足される。内容は、例えば、要求を行うホストに送ることができる。特定の行の行バージョン値とのグループ・バージョン値の比較が不一致を結果として生じる場合、ブロック５１６において、データが、特定の行から出力されない場合もある。データは、読み取り不可の内容である。内容が読み取り不可であると判定される場合、信号の拒否が送られても良く、すべて「０」などの知られているパターンが送られても良く、またはランダムなパターンが送られても良い。読み取りは、通常、グループ・バージョン値が各行に関する行バージョン値と一致する状態で実行することができる。
【００２５】
コマンドが消去要求である場合、グループ・バージョン値が、ブロック５３１において新しいグループ・バージョン値に変更されても良い。消去コマンドの前に書き込まれたアドレス（データ）の内容は、読み取り不可である。消去は、ブロック５３６において開始することができる。ブロック５３６において、消去は、特定の行の行バージョン値が新しいグループ・バージョン値と一致しないデータの物理的な消去とすることができる。別の消去要求は、ブロック５３６における物理的な消去が完了するまで受け付けられなくとも良い。新しいグループ・バージョン値が特定の行の行バージョン値と一致する場合、アドレスの内容は、特定の行から削除されない可能性があり、読み取り可能であるかまたは書き込み可能とされる。実施形態においては、読み取り要求または書き込み要求が、物理的な消去を完了する前に許されても良い。実施形態においては、消去が第１の行に対して行われる場合、第２の行に関する行バージョン値がグループ・バージョン値と一致する場合、たとえ第１の行のデータが物理的に消去されていないとしても、第２の行に対して読み取りが行われても良い。実施形態においては、消去が行われる場合、別の消去コマンドは、第１の消去コマンドによって影響を受けるデータのあらゆるビットが物理的に消去されるか、または上書きされるかのどちらかまで許可しなくとも良い。実施形態においては、グループ・バージョン値と行バージョン値とが比較され、一致または不一致を結果として発生させる。比較は、いかなる行バージョン値も変更せずに行われても良い。グループ・バージョン値を変更すると、すべての行を消去し始めるなど、その他の可能性を想定できる。
【００２６】
コマンドが書き込み要求である場合、グループ・バージョン値が、ブロック５２１において行バージョン値にコピーされる。そして、グループ・バージョン値が、行バージョン値と一致しても良い。ブロック５２２において、データが書き込まれても良い。特定の行への書き込み要求中に、特定の行に書き込まれるデータは、行全体に書き込まれなくとも良い。例えば、行が値を保有する１００ビットを有する場合、場合によっては、２５ビットしか書き込まれない可能性がある。この場合、残りの７５ビットは、消去されても良い。消去することは、書き込み要求が行バージョン値を変更した場合、つまり、グループ・バージョン値を行バージョン値にコピーする前にグループ・バージョン値が行バージョン値と等しくなかった場合に行われる。実施形態において、消去は、書き込み要求が行バージョン値を変更しなかった場合、つまり、書き込み要求の前にグループ・バージョン値が行バージョン値と等しかった場合に、実行されない可能性がある。同様に、行バージョン値がバイトまたはデータのその他のブロックを表す場合、バイトは、独自のバージョン値を有しても良く、行のその他のデータの消去か必要がない場合もある。例において、消去することは、書き込まれていない７５ビットのそれぞれを「０」、「１」、または「０」および「１」の予め決められたパターンに設定することを定めるものとすることができる。したがって、行の残りが、ブロック５２３において消去されても良い。書き込み要求が充足されると、行の内容が読み取り可能とされる。書き込みは、常に許可されても良い。標準的な動作条件の下で、書き込みは、通常、グループ・バージョン値が各行に関する行バージョン値と一致すると生じる。
【００２７】
実施形態において、ホストは、読み取り、書き込み、または消去を許可されることができる。ホストは、グループ・バージョン値を設定することを許可されない場合もある。ホストは、項目または行バージョン値を設定することを許可されなくとも良い。開示する特徴は、このことをホストによるアクションの結果として直接生起させるのではなく、間接的に生起させることも許容するものである。
【図１】
0006399523.tif 000002
【図２】
0006399523.tif 000003
【図３】
0006399523.tif 000004
【図４】
0006399523.tif 000005
【図５】
0006399523.tif 000006