(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-07
(54)【発明の名称】データブロックの消去状態を検証する方法およびシステム
(51)【国際特許分類】
G06F 21/60 20130101AFI20231130BHJP
【FI】
G06F21/60
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023532502
(86)(22)【出願日】2021-11-18
(85)【翻訳文提出日】2023-07-14
(86)【国際出願番号】 US2021059903
(87)【国際公開番号】W WO2022115310
(87)【国際公開日】2022-06-02
(32)【優先日】2020-11-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520440124
【氏名又は名称】サイジェント テクノロジー インコーポレイテッド
【氏名又は名称原語表記】CIGENT TECHNOLOGY, INC.
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100229264
【氏名又は名称】清水 正一
(72)【発明者】
【氏名】トニー エドワード フェッセル
(57)【要約】
ソリッドステートドライブ上のデータブロックの消去状態を検証する方法およびソリッドステート記憶デバイスが開示される。本方法は、ソリッドステートドライブ上の複数のデータブロックのそれぞれのデータブロックに、システムデータであるか、ユーザデータであるか、またはアンマップデータであるかを示すブロック識別子と、消去または未消去を示す消去状態とを割り当てることを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ソリッドステート記憶デバイスにおいてデータブロックの消去状態を検証する方法であって、
ソリッドステートドライブ上の複数のデータブロックのそれぞれのデータブロックに、システムデータであるか、ユーザデータであるか、またはアンマップデータであるかを示すブロック識別子と、消去または未消去を示す消去状態とを割り当てることを含む、方法。
【請求項2】
前記複数のデータブロックの前記それぞれのデータブロックの前記ブロック識別子および前記消去状態を、1バイトのビットマスクで記述することをさらに含む、請求項1に記載の方法。
【請求項3】
ベンダ固有のログから、前記複数のデータブロックの前記それぞれのデータブロックの前記ブロック識別子と前記消去状態とを読み出すことをさらに含む、請求項2に記載の方法。
【請求項4】
セキュリティ消去動作を実行することであって、前記複数のデータブロック上の前記ユーザデータおよび前記アンマップデータをすべて消去するように構成されたセキュリティ消去動作を実行することをさらに含む、請求項3に記載の方法。
【請求項5】
前記セキュリティ消去動作後に検証処理を実行することであって、前記複数のデータブロックのそれぞれの状態を読み出すことと、前記複数のデータブロックの消去されていないデータブロックがシステムデータブロックであることを検証することとを含む検証処理を実行することをさらに含む、請求項4に記載の方法。
【請求項6】
前記システムデータは、ソリッドステートドライブデータを含むデータブロックであり、前記ユーザデータは、ユーザによって記憶されたデータを含むデータブロックであり、前記アンマップデータは、ファームウェア管理のための一時ブロックであるデータブロックであり、前記ファームウェア管理のための一時ブロックは、以前にシステムデータまたはユーザデータのいずれかを含んでいた、請求項1に記載の方法。
【請求項7】
前記複数のデータブロックの前記それぞれのデータブロックは、消去可能なデータブロックである、請求項1に記載の方法。
【請求項8】
前記複数のデータブロックのうちの1つ以上のブロックに、コントローラを用いてデータを書き込むことをさらに含む、請求項1に記載の方法。
【請求項9】
前記検証処理は、前記複数のデータブロック上のデータが前記ソリッドステート記憶デバイスからホストシステムまたはソフトウェアスイートに読み出されることを必要としない、請求項1に記載の方法。
【請求項10】
前記ソリッドステート記憶デバイスは、コンピューティングデバイスである、請求項1に記載の方法。
【請求項11】
コントローラおよび複数のデータブロックを含むソリッドステートドライブと、
前記複数のデータブロックのそれぞれのデータブロックに、システムデータであるか、ユーザデータであるか、またはアンマップデータであるかを示すブロック識別子と、消去または未消去を示す消去状態を割り当てるように構成されたプロセッサと、を備える、
ソリッドステート記憶デバイス。
【請求項12】
前記複数のデータブロックの前記それぞれのデータブロックの前記ブロック識別子および前記消去状態は、1バイトのビットマスクで記述される、請求項11に記載のデバイス。
【請求項13】
前記プロセッサは、
ベンダ固有のログから、前記複数のデータブロックの前記それぞれのデータブロックの前記ブロック識別子と前記消去状態とを読み出すように構成される、請求項12に記載のデバイス。
【請求項14】
前記プロセッサは、
セキュリティ消去動作を実行することであって、前記複数のデータブロック上の前記ユーザデータおよび前記アンマップデータをすべて消去するように構成されたセキュリティ消去動作を実行するように構成される、請求項13に記載のデバイス。
【請求項15】
前記プロセッサは、
前記セキュリティ消去動作の後に検証処理を実行するように構成されており、前記検証処理は、前記複数のデータブロックのそれぞれの状態を読み出すことと、前記複数のデータブロックの消去されていないデータブロックがシステムデータブロックであることを検証することとを含む、請求項14に記載のデバイス。
【請求項16】
前記システムデータは、ソリッドステートドライブデータを含むデータブロックであり、前記ユーザデータは、ユーザによって記憶されたデータを含むデータブロックであり、前記アンマップデータは、ファームウェア管理のための一時ブロックであるデータブロックであり、前記ファームウェア管理のための一時ブロックは、以前にシステムデータまたはユーザデータのいずれかを含んでいた、請求項11に記載のデバイス。
【請求項17】
前記複数のデータブロックの前記それぞれのデータブロックは、消去可能なデータブロックである、請求項11に記載のデバイス。
【請求項18】
前記コントローラは、
前記複数のデータブロックのうちの1つ以上のブロックに、コントローラを用いてデータを書き込むように構成される、請求項11に記載のデバイス。
【請求項19】
前記検証処理は、前記複数のデータブロック上のデータが前記ソリッドステート記憶デバイスからホストシステムまたはソフトウェアスイートに読み出されることを必要としない、請求項11に記載のデバイス。
【請求項20】
前記ソリッドステート記憶デバイスは、コンピューティングデバイスである、請求項11に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、データブロックの消去状態を検証する方法およびシステムに関し、より詳細には、複数のデータブロックのそれぞれのデータブロックにブロック識別子および消去状態を割り当てることによって、ソリッドステートデバイス内のデータブロックの消去状態を検証する方法およびシステムに関する。
【背景技術】
【0002】
ソリッドステートドライブ(SSD)は、集積回路アセンブリを使用し、例えば、フラッシュ部材を使用してデータを記憶するソリッドステート記憶デバイスである。ソリッドステートドライブ(SSD)は、コントローラチップに接続された高速インターフェースと、複数の記憶素子またはメモリ素子とを含む。コントローラチップは、高速インターフェースを介して受信された高速プロトコルを、記憶素子によって必要とされるプロトコルに変換する。記憶素子は、ソリッドステートメモリデバイス(例えば、半導体デバイス)を含む。コントローラは、記憶素子における読み出しイベントおよび消去イベントの発生を制御する。SSD内の記憶素子は複数のブロックを含む。複数のブロックは、メモリ内の最小消去可能ユニットである。ブロックは、メモリの最小可読単位であるページに細分化され、ページはセクタに細分化される。セクタは、それぞれ、例えば、少なくとも512バイトを有する。さらに、それぞれのバイトは、一般に、8個の連続するビットを有する。プログラムおよび消去サイクル(または書き込みおよび消去)では、ブロック内のすべてのページが消去され、そして、ブロック内のすべてではないにしても一部のページがその後プログラムされる(例えば、データが書き込まれる)。
【0003】
結果として、ソリッドステートドライブは信頼性の問題を有する可能性がある。例えば、プログラムおよび消去サイクル中に、比較的高いゲート電圧が記憶素子に印加されると、記憶素子特性に累積的な永続的変化を引き起こす可能性がある。例えば、電荷は、ストレス誘導リーク電流(SILC)を介して、記憶素子のゲートオキサイドに捕捉されることがある。電荷が蓄積するにつれて、記憶素子のプログラムまたは消去の効果は信頼性が低くなり、記憶素子の全体的な耐久性が低下する。従って、SSDの寿命を延長する方法としては、例えば、SSD内の全ての記憶素子の間でプログラムおよび消去サイクルを等しく分配して、全ての記憶素子を同様の速度で摩耗させることが挙げられる。
【0004】
加えて、ソリッドステート記憶デバイス(SSD)を安全に消去する能力(または消去できない能力)に関して、特に、政府および他のセキュリティ意識の高い場所において産業上の懸念も存在する。例えば、ファームウェアベースのセキュア消去/サニタイゼーションコマンドによって明示的にデータを上書きするように指示されたときに、製造業者がデータを適切に上書きしなかった履歴、また、オーバープロビジョン領域について考慮を欠いた不適切な上書きの結果として不完全な消去がある。したがって、ソリッドステートドライブ(SSD)上のそれぞれのデータブロックの消去状態を検証する方法およびシステムが必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
一態様によれば、ソリッドステート記憶デバイスにおいてデータブロックの消去状態を検証するための方法が開示され、方法は、ソリッドステートドライブ上の複数のデータブロックのそれぞれのデータブロックに、システムデータであるか、ユーザデータであるか、またはアンマップデータであるかを示すブロック識別子と、消去または未消去を示す消去状態とを割り当てることを含む。
【0006】
別の態様によれば、ソリッドステート記憶デバイスが開示され、このデバイスは、コントローラおよび複数のデータブロックを含むソリッドステートドライブと、複数のデータブロックのそれぞれのデータブロックに、システムデータであるか、ユーザデータであるか、またはアンマップデータであるかを示すブロック識別子と、消去または未消去を示す消去状態を割り当てるように構成されたプロセッサとを備える。
【図面の簡単な説明】
【0007】
本開示の範囲は、以下の例示的な実施形態の詳細な説明を添付の図面と併せて読まれることによって、最もよく理解される。図面に含まれるのは、以下の図である。
【
図1】例示的な実施形態による、データブロックの消去状態を検証するように構成されたソリッドステート記憶デバイスの高レベルアーキテクチャを示すブロック図である。
【
図2】例示的な実施形態による、
図1のソリッドステート記憶デバイスによって実行されるデータブロックの消去状態を検証するためのプロセスを示すフロー図である。
【
図3】例示的な実施形態による、コンピュータシステムアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0008】
本開示のさらなる適用分野は、以下に提供される詳細な説明から明白となるであろう。例示的な実施形態の詳細な説明は、例証目的のためだけに意図され、したがって、必ずしも、本開示の範囲を限定するように意図されないことを理解されたい。
【0009】
データブロックの消去状態を検証するためのシステム
図1は、ソリッドステート記憶デバイス100の一実施形態を示す。
図1に示されるソリッドステート記憶デバイス100の実施形態は例示としてのみ提供され、本明細書で論じられるような機能を実行するのに適したソリッドステート記憶デバイス100のすべての可能な構成を網羅するものではない場合があることが、当業者には明らかであろう。例えば、
図3に示され、以下でより詳細に説明されるコンピュータシステム300は、ソリッドステート記憶デバイス100の適切な構成であり得る。
【0010】
例示的な一実施形態によれば、ソリッドステート記憶デバイス100は、アプリケーション層110、システム層120、およびSSD記憶層130(例えば、SSD)を含むことができる。アプリケーション層110はシステム層120と通信し、通信は例えば、コンピューティングデバイスの中央処理デバイス(CPU)を介して行われることができる。システム層120はSSD記憶層130と通信し、通信は例えば、PCIe(Peripheral Component Interconnect Express)インターフェースを介して行われることができる。
【0011】
アプリケーション層110は複数のアプリケーション112(例えば、App-1、App-2、…、App-n)を含むことができ、これらは、例えば、CPUまたは他のプロセッサによって実行されたときに、媒体、データ、およびコンテンツにアクセスすることが可能なソフトウェアまたはプログラムを含むことができる。
【0012】
システム層120は例えば、コンピュータハードウェアリソースを管理し、アプリケーションソフトウェアのための共通サービスを提供するオペレーティングシステム(OS)であってもよい。システム層120は、Microsoft WindowsおよびLinux等のオペレーティングシステムを表すことができる。
図1に示すように、システム層120は、例えばソリッドステートドライブコントローラ132に対して書き込みコマンドを発行するように構成されたファイルシステム124を含む。
【0013】
一実施形態によれば、システム層120はまた、コンテンツのためのキャッシュシステムまたは記憶システム122を含むか、またはサポートすることができる。一実施形態では、キャッシュシステムまたは記憶システム122が例えば、スタティックランダムアクセスメモリ(SRAM)または別のタイプのメモリであることができる。ファイルシステム124は
図1のキャッシュシステムまたは記憶システム122内に示されているが、ファイルシステム124は他の場所で配置または構成することができる。例えば、ファイルシステム124はネットワークサーバ上に見出すことができ、または分散システムを介してアクセスすることができる。SSD記憶層130は、SSDコントローラ132と、複数の消去可能データブロック134とを含む。SSDコントローラ132は例えば、システム層120のファイルシステム124によって発行された書き込みコマンドを受信するように構成される。
図1の消去可能データブロック134のそれぞれは、データまたはコンテンツのページを記憶するように構成される。例えば、消去可能データブロック134は一般に、例えば、NANDフラッシュメモリにおいて、一度に消去することができる最小単位と考えられる。
【0014】
データブロックの消去状態を検証するための処理
例示的な実施形態によれば、ソリッドステート記憶デバイスにおいてデータブロックの消去状態を検証する方法が開示される。
図2に示されるように、ステップ202において、ソリッドステートドライブ上の複数のデータブロックのそれぞれのデータブロックに、ブロック識別子と消去状態が割り当てられる。ブロック識別子はシステムデータであるか、ユーザデータであるか、またはアンマップデータであるかを示し、消去状態は消去または未消去を示す。ステップ204において、複数のデータブロックのそれぞれのデータブロックのブロック識別子および消去状態を、1バイトのビットマスクで記述することができる。ステップ206において、ベンダ固有のログから、複数のデータブロックのそれぞれのデータブロックのブロック識別子と消去状態とを読み出すことができる。ステップ208において、セキュリティ消去動作を実行することができ、セキュリティ消去動作は、複数のデータブロック上のユーザデータおよびアンマップデータをすべて消去するように構成される。ステップ210において、セキュリティ消去動作の後の検証処理を実行することができ、複数のデータブロックのそれぞれの状態を読み出すことと、複数のデータブロックの消去されていないデータブロックがシステムデータブロックであることを検証することとを含む検証処理を実行する。
【0015】
一実施形態によれば、上記で開示したように、それぞれのブロックはブロック識別子(例えば、タイプ)および消去状態(消去または消去されない)を割り当てられる消去可能ブロックである。例えば、ブロックのブロック識別子(またはタイプ)は、システムデータ、ユーザデータ、およびアンマップデータを含むことができる。システムデータは例えば、SSDシステムデータを含むブロックとすることができる。ユーザデータはユーザによって記憶されたデータを含むブロックとすることができ、アンマップデータはファームウェア管理のための一時ブロックとすることができ、一時ブロックは、システムデータブロックまたはユーザデータブロックのいずれかであった。例えば、上述のように、データは、コントローラを用いて、複数のデータブロックのうちの1つ以上に書き込まれることができる。
【0016】
例示的な実施形態によれば、以下の表は例えば、ステップ204において上述したような例示的なブロック状態ビットマスクを説明する。
【0017】
【0018】
例示的な実施形態によれば、すべてのユーザデータ型およびアンマップデータ型は、セキュリティ消去動作の後に消去されることが期待される。さらに、検証処理は、すべてのブロックの状態を読み取ることと、唯一の「消去されていない」ブロックがシステムデータタイプブロックであることを検証することとを含む。
【0019】
例示的な実施形態によれば、コマンドログは、再生保護されたベンダーインターフェースを介して、ホストシステムによってアクセスすることができる。ログ検索プロセスは、ホストソフトウェアにより(再生保護を含む)要求コマンドを準備することと、当該要求をソリッドステートドライブに送信することとを含むことができる。ソリッドステートドライブはコマンドを受信し、再生保護データを検証する。再生保護データを検証できない場合、コマンドは失敗する。あるいは、再生保護データが検証された場合、ソリッドステートドライブは、ログをホストに送り返すことによって応答する。
【0020】
一実施形態によれば、以下のソースコードはドライブの消去状態を確認することができ、ブロック統計を集計することができるプロセスを示す。
enum BlockStatus : uint8_t
{
USER_NOT_ERASED = 0x12,
USER_ERASED = 0x11,
FW_NOT_ERASED = 0x22,
FW_ERASED = 0x21,
UNMAP_NOT_ERASED = 0x42,
UNMAP_ERASED = 0x41
};
inline constexpr uint32_t ERASE_LOG_LEN = 8192;
using EraseLog = std::array<uint8_t, ERASE_LOG_LEN>;
struct EraseVerifyStats
{
uint32_t userNotErased{0};
uint32_t userErased{0};
uint32_t fwNotErased{0};
uint32_t fwErased{0};
uint32_t unmappedNotErased{0};
uint32_t unmappedErased{0};
};
bool eraseVerifyLogStats(const EraseLog &log, EraseVerifyStats &stats)
{
stats = EraseVerifyStats();
for(const auto &val : log)
{
switch (val)
{
case BlockStatus::USER_ERASED :
++stats.userErased;
break;
case BlockStatus::USER_NOT_ERASED :
++stats.userNotErased;
break;
case BlockStatus::FW_ERASED :
++stats.fwErased;
break;
case BlockStatus::FW_NOT_ERASED :
++stats.fwNotErased;
break;
case BlockStatus::UNMAP_ERASED :
++stats.unmappedErased;
break;
case BlockStatus::UNMAP_NOT_ERASED :
++stats.unmappedNotErased;
break;
}
}
return !stats.userNotErased && !stats.unmappedNotErased;
}
【0021】
コマンドラインユーティリティからの出力例を以下に示す。例えば、異なるソリッドステートドライブは異なるブロックカウントを有し、ブロック状態情報の端部は、0xFFによってマークされることができる。したがって、ブロック出力は、最初の0xFFに遭遇した後にカットオフされる。
ERASE LOG BLOCKS
00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15
000000|22 22 22 22 22 22 22 22 22 22 42 42 42 42 42 42
000016|42 42 22 42 42 42 42 42 42 42 42 42 42 42 42 42
000032|22 42 22 22 22 22 12 22 22 42 42 42 42 42 42 42
000048|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000064|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000080|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000096|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000112|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000128|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000144|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000160|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000176|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000192|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000208|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000224|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000240|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000256|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000272|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000288|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000304|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000320|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000336|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000352|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000368|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000384|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000400|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000416|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000432|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000448|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000464|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000480|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000496|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000512|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000528|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000544|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000560|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000576|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000592|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000608|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000624|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000640|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000656|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000672|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000688|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000704|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000720|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000736|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000752|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000768|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000784|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000800|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000816|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000832|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000848|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000864|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000880|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000896|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000912|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000928|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000944|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000960|42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
000976|42 42 42 42 42 42 42 42 42 42 42 42 42 42 FF
BLOCK STATISTICS
[0x12] User::Not Erased!: 1
[0x11] User::Erased: 0
[0x22] Firmware::Not Erased: 18
[0x21] Firmware::Erased: 0
[0x42] Unmapped::Not Erased!: 971
[0x41] Unmapped::Erased: 0
ERASURE STATUS: Drive not erased!
【0022】
例示的な一実施形態によれば、開示される方法およびシステムは、データがデバイスからホストシステム/ソフトウェアスイートに読み出されることを必要とせずに、データ消去検証の追加の利点を提供する。加えて、本方法およびシステムは、動作のセキュリティ(無許可のユーザがデータにアクセスする懸念が少ない)および検証動作の速度の両方において劇的な改善を提供する。
【0023】
コンピュータシステムアーキテクチャ
図3は、コンピュータシステム300を示す。コンピュータシステム300において、本開示のそれぞれの実施形態またはその一部がコンピュータ可読コードとして実装され得る。例えば、
図1のソリッドステート記憶デバイス100は、ハードウェア、ソフトウェア、ファームウェア、コマンドが記憶された非一過性コンピュータ読み取り可能な媒体、またはそれらの組み合わせを使用してコンピュータシステム300において実装することができ、または、1つ以上のコンピュータシステムまたは他の処理システムにおいて実装することができる。ハードウェア、ソフトウェア、またはそれらの任意の組合せは、
図2の方法を実装するために使用されるモジュールおよび構成要素を具現化することができる。
【0024】
プログラマブルロジックが使用される場合、そのようなロジックは特定の目的のコンピュータまたは特定の目的のデバイス(例えば、プログラマブルロジックアレイ、特定用途向け集積回路など)になるように実行可能ソフトウェアコードによって構成された市販の処理プラットフォーム上で実行することができる。当業者は、開示された主題の実施形態がマルチコアマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、分散機能を用いてリンクまたはクラスタ化されたコンピュータ、ならびに仮想的に任意のデバイスに埋め込まれ得る汎用または小型コンピュータを含む、様々なコンピュータシステム構成を用いて実施され得ることを理解することができる。例えば、少なくとも1つのプロセッサデバイスおよびメモリが、上述の実施形態を実装するために使用することができる。
【0025】
本明細書で説明するプロセッサユニットまたはデバイスは、単一のプロセッサ、複数のプロセッサ、またはそれらの組み合わせであり得る。プロセッサデバイスは1つ以上のプロセッサ「コア」を有することができる。本明細書で論じる「コンピュータプログラム媒体」、「非一過性コンピュータ読み取り可能な媒体」、および「コンピュータ使用可能媒体」という用語は概して、取り外し可能な記憶ユニット318、取り外し可能な記憶ユニット322、およびハードディスクドライブ312にインストールされたハードディスク等の有形媒体を指すために使用される。
【0026】
本開示の様々な実施形態は、この例示的なコンピュータシステム300に関して説明される。この明細書を読んだ後、当業者には、他のコンピュータシステムおよび/またはコンピュータアーキテクチャを使用して本開示を実施する方法が明らかになるであろう。動作は連続的なプロセスとして説明され得るが、動作のいくつかは実際には並列に、同時に、および/または分散された環境において、単一またはマルチプロセッサ機械によるアクセスのためにローカルにまたはリモートに記憶されたプログラムコードを用いて、実行され得る。さらに、いくつかの実施形態では、動作の順序が開示される主題の趣旨から逸脱することなく、再構成することができる。
【0027】
プロセッサデバイス304は、本明細書で説明する機能を実行するように具体的に構成された専用または汎用プロセッサデバイスであり得る。プロセッサデバイス304は、バス、メッセージキュー、ネットワーク、マルチコアメッセージ受け渡し方式等の通信インフラストラクチャ306に接続され得る。ネットワークは、本明細書で開示されるような機能を実行するのに適した任意のネットワークであることができ、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、ワイヤレスネットワーク(例えば、WiFi)、モバイル通信ネットワーク、衛星ネットワーク、インターネット、光ファイバ、同軸ケーブル、赤外線、無線周波数(RF)、または任意のそれらの組み合せを含み得る。他の適切なネットワークタイプおよび構成も、当業者に明白であろう。コンピュータシステム300はまた、メインメモリ308(例えば、ランダムアクセスメモリ、読み出し専用メモリなど)を含んでもよく、また、二次メモリ310を含んでもよい。二次メモリ310は、ハードディスクドライブ312と、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリ等の取り外し可能な記憶ドライブ314とを含み得る。
【0028】
取り外し可能な記憶ドライブ314は、取り外し可能な記憶ユニット318から読み取ること、および/またはそれに書き込むことが既知の方法で可能である。取り外し可能な記憶ユニット318は、取り外し可能な記憶ドライブ314によって読み書きされ得る取り外し可能な記憶媒体を含み得る。例えば、取り外し可能な記憶デバイスドライブ314がフロッピー(登録商標)ディスクドライブまたはユニバーサルシリアルバスポートである場合、取り外し可能な記憶デバイスユニット318は、それぞれフロッピー(登録商標)ディスクまたはポータブルフラッシュドライブであってもよい。一実施形態では、取り外し可能な記憶ユニット318が非一過性コンピュータ読み取り可能な媒体であってもよい。
【0029】
いくつかの実施形態では、二次メモリ310がコンピュータプログラムまたは他のコマンドをコンピュータシステム300にロードすることを可能にするための代替手段、例えば、取り外し可能な記憶ユニット322およびインターフェース320を含むことができる。そのような代替手段としては、(例えば、ビデオゲームシステムに見出されるよう)プログラムカートリッジおよびカートリッジインターフェース、(例えば、EEPROM、PROM等の)取り外し可能なメモリチップおよび関連するソケット、ならびに取り外し可能な記憶ユニット322およびインターフェース320を含むことができることが、当業者には明白であろう。
【0030】
コンピュータシステム300に(例えば、メインメモリ308および/または二次メモリ310に)記憶されたデータは、光学記憶デバイス(例えば、コンパクトディスク、デジタル多用途ディスク、Blu?ray(登録商標)ディスク等)または磁気テープ記憶デバイス(例えば、ハードディスクドライブ)等の、任意の種類の適切なコンピュータ読み取り可能な媒体に記憶されてもよい。データは、リレーショナルデータベース、構造化クエリ言語(SQL)データベース、分散データベース、オブジェクトデータベース等の任意のタイプの適切なデータベース構成で構成され得る。適切な構成および記憶タイプは、当業者には明らかであろう。
【0031】
コンピュータシステム300は、また、通信インターフェース324を含むこともできる。通信インターフェース324は、ソフトウェアおよびデータがコンピュータシステム300と外部機器との間で転送されることを可能にするように構成され得る。例示的な通信インターフェース324は、モデム、ネットワークインターフェース(例えば、イーサネット(登録商標)カード)、通信ポート、並びに、PCMCIAスロットおよびカードなどを含み得る。通信インターフェース324を介して転送されるソフトウェアおよびデータは、当業者には明らかであるように、電子信号、電磁信号、光信号、または他の信号の形態であり得る。信号は、通信経路326を介して移動することができる。通信経路326は、信号を搬送するように構成することができるワイヤ、ケーブル、光ファイバ、電話回線、携帯電話リンク、無線周波数リンクなどを使用して実装することができる。
【0032】
コンピュータシステム300は、表示インターフェース302をさらに含むことができる。表示インターフェース302は、データがコンピュータシステム300と外部ディスプレイ330との間で転送可能になるように構成され得る。例示的な表示インターフェース302は、高精細度マルチメディアインターフェース(HDMI)、デジタルビジュアルインターフェース(DVI)、ビデオグラフィックスアレイ(VGA)などを含み得る。ディスプレイ330は、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、容量タッチディスプレイ、薄膜トランジスタ(TFT)ディスプレイなどを含む、コンピュータシステム300の表示インターフェース302を介して送信されるデータを表示するための任意の適切なタイプであり得る。
【0033】
コンピュータプログラム媒体およびコンピュータ使用可能媒体は、メモリ半導体(例えば、DRAMなど)であり得る、メインメモリ308および二次メモリ310等のメモリを指し得る。これらのコンピュータプログラム製品は、コンピュータシステム300にソフトウェアを提供する手段であり得る。コンピュータプログラム(例えば、コンピュータ制御ロジック)は、メインメモリ308および/または二次メモリ310に記憶されてもよい。コンピュータプログラムはまた、通信インターフェース324を介して受信され得る。そのようなコンピュータプログラムは、実行されると、コンピュータシステム300が本明細書で論じる本方法を実施することを可能にし得る。特に、コンピュータプログラムは、実行されると、プロセッサデバイス304が本明細書で説明するように、
図2によって示される方法を実装することを可能にし得る。したがって、そのようなコンピュータプログラムは、コンピュータシステム300のコントローラを表し得る。本開示がソフトウェアを使用して実装される場合、ソフトウェアは、コンピュータプログラム製品に記憶され、取り外し可能な記憶ドライブ314、インターフェース320、およびハードディスクドライブ312、または通信インターフェース324を使用してコンピュータシステム300にロードされ得る。
【0034】
プロセッサデバイス304は、コンピュータシステム300の機能を実行するように構成された1つ以上のモジュールまたはエンジンを備え得る。モジュールまたはエンジンのそれぞれはハードウェアを使用して実装されてもよく、いくつかの例では、メインメモリ308または二次メモリ310に記憶されたプログラムコードおよび/またはプログラムに対応するようなソフトウェアを利用してもよい。そのような場合、プログラムコードはコンピュータシステム300のハードウェアによる実行の前に、プロセッサデバイス304によって(例えば、コンパイルモジュールまたはエンジンによって)コンパイルされ得る。例えば、プログラムコードはアセンブリ言語または機械コード等の低レベル言語に翻訳されるプログラミング言語で書かれたソースコードであり得る。ソースコードは、プロセッサデバイス304および/またはコンピュータシステム300の任意の追加のハードウェア構成要素による実行のために使用される。コンパイルするプロセスは、語彙解析、前処理、構文解析、意味解析、構文指向翻訳、コード生成、コード最適化、および任意の他の技術の使用を含み得る。任意の他の技術は、本明細書で開示される機能を実行するようにコンピュータシステム300を制御するのに適した低レベル言語へのプログラムコードの翻訳に適し得る。そのようなプロセスの結果、コンピュータシステム300が上述の機能を実行するように一意にプログラムされた特別に構成されたコンピュータシステム300となることは、当業者には明らかであろう。
【0035】
本開示と一致する技法により、他の特徴の中でもとりわけ、データブロックの消去状態を検証するためのシステムおよび方法が提供される。開示されるシステムおよび方法の種々の例示的な実施形態を前述したが、それぞれの実施形態は、限定ではなく、実施例の目的のためだけに提示されていることを理解されたい。それぞれの実施例は、網羅的ではなく、開示される形態のみに本開示を限定するものでもない。前述の教示に照らして種々の変更及び改変が可能であり、また、その本開示を実施することにより、範疇または範囲から逸脱することなく、種々の変更及び改変がなされてよい。
【国際調査報告】