(57)【要約】【課題】ホスト装置がアドレスを指定して読み出すことができない無効な領域に存在するデータを出力することにより、不要となったデータが物理的に消去または上書きされたことをホスト装置が確認する手段を提供するメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法を提供する。【解決手段】メモリコントローラ１０２は、書き込み及び読み出しの際にホスト装置が指定するアドレスを不揮発性メモリの物理アドレスに変換するアドレス変換部と、アドレス変換部が参照しない不揮発性メモリの無効な領域を管理する無効領域管理部とを備え、ホスト装置から無効データ読み出し命令を受理すると、無効領域管理部が無効と管理している不揮発性メモリの領域のデータをホスト装置へ出力する。【選択図】図２
2020003858.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と通信可能であり、前記ホスト装置からの指示により、複数の領域を有する不揮発性メモリへデータの書き込み、及び読み出しを行うメモリコントローラであって、
書き込み、及び読み出しの際に指定されるアドレスを前記不揮発性メモリの領域が有する物理アドレスに変換するアドレス変換部と、
前記アドレス変換部が参照しない、前記不揮発性メモリの無効な領域を管理する無効領域管理部と、
を備え、
前記ホスト装置から無効データ読み出し命令を受信すると、
前記無効領域管理部が無効と管理している前記不揮発性メモリの領域のデータを前記ホスト装置へ出力する、
メモリコントローラ。
【請求項２】
ホスト装置と通信可能であり、前記ホスト装置からの指示により、複数の領域を有する不揮発性メモリへデータの書き込み、及び読み出しを行うメモリコントローラであって、
書き込み、及び読み出しの際に指定されるアドレスを前記不揮発性メモリの領域が有する物理アドレスに変換するアドレス変換部と、
前記アドレス変換部が参照しない、前記不揮発性メモリの無効な領域を管理する無効領域管理部と、
前記不揮発性メモリの領域のデータに特定データが含まれるかを探索する探索部と、
を備え、
前記ホスト装置から探索データを受信すると、
前記探索部は、前記無効領域管理部が無効と管理している前記不揮発性メモリの領域のデータに探索データが含まれるかを探索し、
探索結果を前記ホスト装置へ出力する、
メモリコントローラ。
【請求項３】
ホスト装置と通信可能であり、前記ホスト装置からの指示により、複数の領域を有する不揮発性メモリへデータの書き込み、及び読み出しを行うメモリコントローラであって、
書き込み、及び読み出しの際に指定されるアドレスを前記不揮発性メモリの領域が有する物理アドレスに変換するアドレス変換部と、
前記アドレス変換部が参照しない、前記不揮発性メモリの無効な領域を管理する無効領域管理部と、
データのハッシュ値を演算するハッシュ演算部と、
を備え、
前記ホスト装置から無効領域ハッシュ読み出し命令を受信すると、
前記ハッシュ演算部は、前記無効領域管理部が無効と管理している前記不揮発性メモリの領域のデータのハッシュ値を演算し、
前記ホスト装置へ出力する、
メモリコントローラ。
【請求項４】
ホスト装置と通信可能であり、前記ホスト装置からの指示により、複数の領域を有する不揮発性メモリへデータの書き込み、及び読み出しを行うメモリコントローラであって、
書き込み、及び読み出しの際に指定されるアドレスを前記不揮発性メモリの領域が有する物理アドレスに変換するアドレス変換部と、
前記アドレス変換部が参照しない、前記不揮発性メモリの無効な領域を管理する無効領域管理部と、
データのハッシュ値を演算するハッシュ演算部と、
ホスト装置から受信したハッシュ値と、前記ハッシュ演算部が出力したハッシュ値とを比較するハッシュ比較部と、
を備え、
前記ホスト装置からハッシュ値を受信すると、
ハッシュ演算部は、前記無効領域管理部が無効と管理している前記不揮発性メモリの領域のデータのハッシュ値を演算し、
前記ハッシュ比較部は、前記ホスト装置から受信したハッシュ値と、前記ハッシュ演算部が演算したハッシュ値とを比較し、
比較結果を前記ホスト装置へ出力する、
メモリコントローラ。
【請求項５】
請求項１乃至４に記載のメモリコントローラと、
前記メモリコントローラに接続する前記不揮発性メモリと、
を備える、
不揮発性記憶装置。
【請求項６】
請求項５に記載の不揮発性記憶装置と、
前記不揮発性記憶装置にデータの書き込み及び読み出しを行うホスト装置と、
を備える不揮発性記憶システム。
【請求項７】
外部からの指示により、複数の領域を有する不揮発性メモリの書き込み及び読み出しを行うプロセッサを用いたメモリ制御方法であって、
書き込み、及び読み出しの際に指定されるアドレスを前記不揮発性メモリの領域が有する物理アドレスに変換し、
外部から指定されるアドレスの変換先として対応付けられてない物理アドレスを有する、前記不揮発性メモリの無効な領域を管理し、
外部からの命令に応じ、
前記不揮発性メモリの無効な領域のデータに関する情報を出力する、
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、フラッシュメモリ等の書き換え可能な不揮発性メモリをデータ記憶媒体として有するＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、半導体メモリカード等の制御を実行するメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法に関する。
【背景技術】
【０００２】
フラッシュメモリ等の書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、例えば、ＳＳＤ、半導体メモリカードとして広く用いられている。また、かかる不揮発性記憶装置は、パーソナルコンピュータやデジタルカメラ等のＡＶ機器と組み合わせた不揮発性記憶システムとして、その需要が広まっている。
【０００３】
ＳＳＤや半導体メモリカードは、データを記憶するフラッシュメモリと、それを制御するメモリコントローラから構成されている。メモリコントローラは、パーソナルコンピュータやデジタルカメラ等のホスト装置からの読み書き指示に従って、フラッシュメモリへのデータの読み書きを制御するデバイスである。通常、フラッシュメモリに対しては、ディフェクトマネージメント（欠陥制御）、ウェアレベリング（書き換え回数の平準化）、ＥＣＣによる誤り訂正処理等の制御が必要であり、これらの制御をメモリコントローラが担っている。フラッシュメモリは、代表的なものにＮＡＮＤ型がある。
【０００４】
近年、ＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などの電子機器では記憶装置に画像データなどの機密データを格納する。記憶装置への格納後に不要となった機密データは、セキュリティの観点から速やかに物理的に破棄されることが求められている。これに対し、例えば特許文献１では、ホスト装置からデータを完全削除する命令を受信すると、不揮発性記憶装置が不要となったデータを物理的に消去または上書きすることで、セキュリティを高めている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１９６１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来の方法では、ホスト装置が不揮発性記憶装置に対し命令を送信することで不要となったデータを物理的に消去または上書きしても、実際に消去または上書きされたことをホスト装置が確認する手段が存在しない。
【０００７】
本開示は、ホスト装置がアドレスを指定して読み出すことができない無効な領域に存在するデータを出力することにより、不要となったデータが物理的に消去または上書きされたことをホスト装置が確認する手段を提供するメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法に関する。
【課題を解決するための手段】
【０００８】
本開示におけるメモリコントローラは、ホスト装置と通信可能であり、書き込み及び読み出しの際にホスト装置が指定するアドレスを不揮発性メモリの物理アドレスに変換するアドレス変換部と、アドレス変換部が参照しない不揮発性メモリの無効な領域を管理する無効領域管理部とを備え、ホスト装置から無効データ読み出し命令を受理すると、無効領域管理部が無効と管理している不揮発性メモリの領域のデータをホスト装置へ出力する。
【発明の効果】
【０００９】
本開示におけるメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法は、不要となったデータが物理的に破壊されたことを確認するのに有効である。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る不揮発性記憶装置の構成図
【図２】メモリコントローラの制御ブロック図
【図３】不揮発性メモリの構成図
【図４】不揮発性メモリの割り当て単位となる物理領域の構成例を示す図
【図５】アドレス変換テーブルの一例を示す図
【図６】無効領域管理テーブルの一例を示す図
【図７】無効データ読み出し処理のフローチャート
【図８】実施の形態２に係るメモリコントローラの制御ブロック図
【図９】実施の形態２に係るメモリコントローラによる探索処理のフローチャート
【図１０】実施の形態３に係るメモリコントローラの制御ブロック図
【図１１】実施の形態３に係るメモリコントローラによる無効領域ハッシュ読み出し処理のフローチャート
【図１２】実施の形態４に係るメモリコントローラの制御ブロック図
【図１３】実施の形態４に係るメモリコントローラによるハッシュ探索処理のフローチャート
【発明を実施するための形態】
【００１１】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１２】
なお、発明者（ら）は、当業者が本開示を十分に理解するために添付図面及び以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１３】
（実施の形態１）
以下、図１〜図７を用いて、実施の形態１を説明する。
【００１４】
［１−１．構成］
［１−１−１．メモリコントローラの構成］
図１は、本実施の形態におけるメモリコントローラを含む不揮発性記憶装置を示した構成図である。
【００１５】
不揮発性記憶装置１０１（不揮発性記憶装置の一例）は、データを記録するための不揮発性メモリ１０３（不揮発性メモリの一例。例えばフラッシュメモリ）と、メモリコントローラ１０２とを含む。不揮発性記憶装置１０１は、ホスト装置１１０からのコマンドに応じて不揮発性メモリ１０３に対するデータの書き込み及び読み出しを実行する。不揮発性記憶システム１００は、ホスト装置１１０と不揮発性記憶装置１０１で構成される。
【００１６】
メモリコントローラ１０２（メモリコントローラの一例）は、制御部又はプロセッサであるＣＰＵ１２１（制御部又はプロセッサの一例）と、ＲＡＭ１２２と、ＲＯＭ１２３と、外部Ｉ／Ｆ（外部インタフェース）１２４（接続部の一例）と、ＥＣＣ（Ｅｒｒｏｒ Ｃｏｒｒｅｃｔｉｏｎ Ｃｏｄｅ）回路１２５と、バッファメモリ１２６（緩衝記憶装置の一例）と、ＮＡＮＤＩ／Ｆ（ＮＡＮＤインタフェース）１２７（第２接続部の一例）とを含み、これらがバスを介して接続されている。
【００１７】
ＣＰＵ１２１は、制御プログラム等を実行する演算ユニットである。ＲＡＭ１２２は、ＣＰＵ１２１の処理において実行されるプログラム、及びプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。ＲＯＭ１２３は、ＣＰＵ１２１が実行するプログラム、或いは演算パラメータとしての固定データを格納する。
【００１８】
外部Ｉ／Ｆ１２４は、ＣＰＵ１２１の制御によりホスト装置１１０に対するデータの送受信を行うインタフェースである。
【００１９】
ＥＣＣ回路１２５は、不揮発性メモリ１０３に記憶するデータの誤り訂正符号の生成処理、及び不揮発性メモリ１０３に記憶されたデータの誤り訂正処理を行う回路である。
【００２０】
バッファメモリ１２６は、ホスト装置１１０の書き込み、読み出しデータ、不揮発性メモリ１０３の書き込み、読み出しデータを一時的に保存するために使用される。
【００２１】
ＮＡＮＤＩ／Ｆ１２７は、ＣＰＵ１２１の制御により不揮発性メモリ１０３に対してデータの書き込み及び読み出しを行うインタフェースである。
【００２２】
図２は、主にメモリコントローラ１０２による制御ブロック図である。
【００２３】
ＣＰＵ１２１は、ホスト装置１１０から書き込みコマンドや読み出しコマンド等を外部Ｉ／Ｆ１２４を介して受信し、ホスト装置１１０に対するデータの送受信の制御を行い、不揮発性メモリ１０３に対するデータの書き込み及び読み出しの指示や、不揮発性メモリ１０３の制御を行う。
【００２４】
ＣＰＵ１２１は、アドレス変換部２０１と無効領域管理部２０２とを含む。
【００２５】
アドレス変換部２０１は、ホスト装置１１０が書き込み、読み出しの際に指定するアドレス（論理アドレス）を不揮発性メモリ１０３の有効な物理アドレスに変換する。アドレス変換部２０１が参照する有効な物理アドレスには、ホスト装置１１０が論理アドレスを指定して読み出すことができる有効なデータが格納される。
【００２６】
無効領域管理部２０２は、アドレス変換部２０１が参照しない無効な物理アドレスを管理する。無効な物理アドレスには、ホスト装置１１０が論理アドレスを指定して読み出すことができない無効なデータが格納され、実際には書き換える前の古いデータが残っていたり、消去済みのデータの状態となっている。
【００２７】
［１−１−２．不揮発性メモリの構成］
図３は、本実施の形態における不揮発性メモリを示した構成図である。
【００２８】
不揮発性メモリ１０３は、複数のブロック３０１から構成される。ブロック３０１はデータの消去単位であり、この単位でデータの消去が実行される。
【００２９】
ブロック３０１は、複数のページ３０２から構成される。ページはデータの書き込み及び読み出しの単位である。不揮発性メモリ１０３にデータの書き込みを行う場合、ブロック単位で消去を行った後、当該ブロックにおいて、番号の小さいページから順にデータの書き込みを行う。
【００３０】
ページ３０２は、データ部３０３とＥＣＣ部３０４とから構成される。データ部３０３は、ホスト装置１１０から送信されたコンテンツデータを格納する領域である。ＥＣＣ部３０４は、データ部３０３に格納されたコンテンツデータに対する誤り訂正符号を格納する領域である。メモリコントローラ１０２は、ＥＣＣ部３０４に格納された誤り訂正符号に基づいて、データ部３０３に格納されたデータの誤りビットの訂正を行う。
【００３１】
図４は、本実施の形態における不揮発性メモリの物理的な領域の割り当て単位となる物理領域４０１を示した構成例である。
【００３２】
図４の構成例では、物理領域４０１は、ブロック内の連続する２ページで構成されている。なお、物理領域４０１は、２ページではなく、他のページ数でも構成可能であり、また、複数のブロックから選択した複数ページでも構成可能であり、また、複数ブロックでも構成可能であり、また、複数の不揮発性メモリから選択した複数のページまたは複数のブロックでも構成可能である。
【００３３】
［１−１−３．アドレス変換テーブルの構成］
図５は、アドレス変換部２０１がアドレス変換の際に参照するアドレス変換テーブルの構成例である。
【００３４】
アドレス変換テーブル５０１は、不揮発性メモリ１０３に格納された情報を元に、ＣＰＵ１２１がＲＡＭ１２２上に作成するもので、論理アドレスを物理アドレスに変換するためのテーブルである。アドレス変換テーブル５０１には、論理アドレスに相当するエントリに、当該論理アドレスに割り当てられた物理領域の物理アドレスが格納される。論理アドレスに割り当てられた物理領域が存在しない場合、当該論理アドレスに相当するエントリに未割り当てを表す固定値が格納される。このように構成することで、ホスト装置１１０によって書き込み済みの論理アドレスに相当するエントリには、割り当てられた物理領域の物理アドレスが格納され、ホスト装置１１０から解放済みの論理アドレスに相当するエントリには未割り当てを表す固定値が格納される。
【００３５】
なお、アドレス変換テーブル５０１のサイズがＲＡＭ１２２に対して大きく、全てをＲＡＭ１２２に配置できない場合は、アドレス変換テーブル５０１の必要な部分を随時、不揮発性メモリ１０３に格納された情報からＲＡＭ１２２に展開することでアドレス変換テーブル５０１を構成することが可能である。
【００３６】
［１−１−４．無効領域管理テーブルの構成］
図６は、無効領域管理部２０２が物理領域の割り当て、解放の際に参照する無効領域管理テーブルの構成例である。
【００３７】
無効領域管理テーブル６０１は、不揮発性メモリ１０３に格納された情報を元に、ＣＰＵ１２１がＲＡＭ１２２上に作成するもので、各物理領域が論理アドレスに割り当て済み（有効）であるか、解放状態（無効）であるかを示すテーブルである。図６では、無効領域管理テーブルのビットが０のときそのビットに対応する物理領域が有効であることを意味し、ビットが１のとき無効であることを意味する。
【００３８】
なお、図６は無効領域管理テーブルの例として、物理領域の有効、無効をビットマップで表すように構成しているが、他の方法で構成することも可能である。例えば、無効な物理領域をリストで表すことも可能であり、そのように無効領域管理テーブルを構成することも可能である。
【００３９】
［１−２．コマンド処理］
以下、本実施の形態において、図２に示す書き込みコマンド、読み出しコマンド、解放コマンド、無効データ読み出しコマンドをホスト装置１１０が不揮発性記憶装置１０１に対し発行した場合のメモリコントローラ１０２の動作について説明する。
【００４０】
書き込みコマンド、読み出しコマンド、解放コマンドでは、ホスト装置１１０はコマンドとともにコマンド処理の対象となる論理アドレスを不揮発性記憶装置１０１へ送信する。無効データ読み出しコマンドでは、論理アドレスは送信されない。
【００４１】
書き込みコマンドでは、ホスト装置１１０が不揮発性記憶装置１０１へ書き込みデータを送信する。読み出しコマンド、無効データ読み出しコマンドでは、ホスト装置１１０が不揮発性記憶装置１０１から読み出しデータを受信する。解放コマンドではデータは送受信されない。
【００４２】
［１−２−１．書き込みコマンド処理］
不揮発性記憶装置１０１がホスト装置１１０から書き込みコマンドと論理アドレスを受信すると、ＣＰＵ１２１は無効領域管理部２０２により無効領域管理テーブル６０１を参照し、無効な物理領域を割り当て、該物理アドレスを有効に変更し、割り当てた物理領域の物理アドレスをアドレス変換部によりアドレス変換テーブル５０１へ該論理アドレスに対応する物理アドレスとして登録する。登録前に、別の物理アドレスが登録されていた場合、該物理アドレスに対応する物理領域を解放するために無効領域管理部２０２により無効領域管理テーブル６０１の該物理アドレスを無効へ変更する。書き込みデータは、ホスト装置１１０から不揮発性記憶装置１０１へ送信され、バッファメモリ１２６を経由し、不揮発性メモリ１０３へ送信され、割り当てられた物理領域へ書き込まれる。
【００４３】
［１−２−２．読み出しコマンド処理］
不揮発性記憶装置１０１がホスト装置１１０から読み出しコマンドと論理アドレスを受信すると、ＣＰＵ１２１はアドレス変換部２０１によりアドレス変換テーブル５０１を参照し、該論理アドレスを対応する物理領域の物理アドレスに変換する。変換された物理アドレスの物理領域のデータは、不揮発性メモリ１０３から読み出され、バッファメモリ１２６を経由し、ホスト装置１１０へ送信される。該論理ドレスに対するアドレス変換テーブル５０１のエントリが未割り当ての場合は、ホスト装置１１０へ既定のデータを送信する。既定のデータとして、例えば消去状態のデータや、ＡＬＬ−０データや、ＡＬＬ−１データが挙げられるが、これらに限らない。
【００４４】
［１−２−３．解放コマンド処理］
不揮発性記憶装置１０１がホスト装置１１０から解放コマンドと論理アドレスを受信すると、ＣＰＵ１２１はアドレス変換部２０１によりアドレス変換テーブル５０１の該論理アドレスを未割り当てに変更する。そして、未割り当てに変更する前に登録されていた物理アドレスに対応する物理領域を解放するために無効領域管理部２０２により無効領域管理テーブル６０１で該物理アドレスを無効に変更する。
【００４５】
解放コマンドは、例えばＳＳＤの場合、Ｔｒｉｍに相当する処理である。
【００４６】
解放コマンドにおいて、解放された物理領域を物理的に消去する、または物理的に上書きを行うことで、不揮発性記憶装置１０１のセキュリティを高めることが可能である。また、解放コマンドの処理としてではなく、物理的な消去や物理的な上書きを行うコマンドを不揮発性記憶装置１０１に別途設けることも可能である。
【００４７】
［１−２−４．無効データ読み出しコマンド処理］
不揮発性記憶装置１０１がホスト装置１１０から無効データ読み出しコマンドを受信すると、ＣＰＵ１２１は図７に示す無効データ読み出し処理を実行する。
【００４８】
以下、図７に示す無効データ読み出し処理（Ｓ７００）について説明する。
【００４９】
まず、対象物理領域に無効領域管理テーブル６０１の先頭の物理領域を設定する（Ｓ７０１）。
【００５０】
そして、無効領域管理テーブル６０１で対象物理領域が無効であるか否かを判定する（Ｓ７０２）。
【００５１】
Ｓ７０２で対象物理領域が無効ならば、対象物理領域のデータを不揮発性メモリ１０３からバッファメモリ１２６へ読み出し（Ｓ７０３）、読み出したデータをホスト装置１１０へ出力する（Ｓ７０４）。
【００５２】
Ｓ７０２で対象物理領域が無効でない（有効）ならば、Ｓ７０３とＳ７０４は実行しない。
【００５３】
次に、対象物理領域が無効領域管理テーブル６０１で最終か否かを判定する（Ｓ７０５）。
【００５４】
Ｓ７０５で対象物理領域が最終でないならば、対象物理領域に次の物理領域を設定し（Ｓ７０６）、Ｓ７０２に戻り、処理を継続する。
【００５５】
Ｓ７０５で対象物理領域が最終ならば、無効データ読み出し処理を終了する（Ｓ７０７）。
【００５６】
［１−３．効果等］
本実施の形態に係るメモリコントローラ１０２は、不揮発性メモリ１０３に対しデータの書き込み及び読み出しを行うメモリコントローラであって、不揮発性メモリ１０３と接続するＮＡＮＤＩ/Ｆ１２７と、ＣＰＵ１２１とを備える。ＣＰＵ１２１は制御ブロックとしてアドレス変換部２０１と無効領域管理部２０２とを備える。メモリコントローラ１０２はホスト装置１１０から無効データ読み出しコマンドを受信すると、無効領域管理部２０２により無効と管理している物理領域のデータをホスト装置１１０へ出力する。
【００５７】
このため、ホスト装置１１０は、論理アドレスを指定して読み出しコマンドで読み出すことができない無効な物理領域のデータを不揮発性記憶装置１０１から読み出すことができる。読み出したデータは、セキュリティ面で物理的に消去または上書きすべきデータが不揮発性メモリ１０３に残っていないかをホスト装置１１０が確認するために使用することができる。
【００５８】
（実施の形態２）
［２−１．構成］
図８は、実施の形態２における主にメモリコントローラ８０２による制御ブロック図である。なお、実施の形態１と同様の構成及び機能を有する構成要素は同様の符号を付し、詳細な説明は省略する。不揮発性記憶システム８００は、ホスト装置１１０と不揮発性記憶装置８０１で構成される。
【００５９】
図８に示すように、ＣＰＵ１２１は、アドレス変換部２０１と無効領域管理部２０２と探索部８０３とを含む。
【００６０】
アドレス変換部２０１と無効領域管理部２０２は、実施の形態１と同様の構成及び機能を有する。
【００６１】
探索部８０３は、不揮発性メモリ１０３の無効な物理領域からバッファメモリ１２６へデータを順次読み出し、ホスト装置１１０から受信した探索データが含まれるかを探索し、探索結果をホスト装置１１０へ出力する。
【００６２】
［２−２．コマンド処理］
以下、本実施の形態において、図８に示す書き込みコマンド、読み出しコマンド、解放コマンド、探索コマンドをホスト装置１１０が不揮発性記憶装置８０１に対し発行した場合のメモリコントローラ８０２の動作について説明する。
【００６３】
書き込みコマンド、読み出しコマンド、解放コマンドは、本実施の形態１と同様の機能及び動作である。
【００６４】
探索コマンドでは、ホスト装置１１０から不揮発性記憶装置８０１へ論理アドレスは送信されない。
【００６５】
探索コマンドでは、ホスト装置１１０から不揮発性記憶装置８０１へ探索データが送信される。
【００６６】
［２−２−１．探索コマンド処理］
不揮発性記憶装置８０１がホスト装置１１０から探索コマンドと探索データとを受信すると、ＣＰＵ１２１は図９に示す探索処理を実行する。
【００６７】
以下、図９に示す探索処理（Ｓ９００）について説明する。
【００６８】
まず、対象物理領域に無効領域管理テーブル６０１の先頭の物理領域を設定する（Ｓ９０１）。
【００６９】
そして、無効領域管理テーブル６０１で対象物理領域が無効であるか否かを判定する（Ｓ９０２）。
【００７０】
Ｓ９０２で対象物理領域が無効の場合、対象物理領域のデータを不揮発性メモリ１０３からバッファメモリ１２６へ読み出し（Ｓ９０３）、読み出したデータが探索データと一致するかを判定する（Ｓ９０４）。
【００７１】
Ｓ９０３で読み出したデータが探索データと一致しない場合、またはＳ９０２で対象物理領域が無効でない（有効）の場合、対象物理領域が無効領域管理テーブル６０１で最終か否かを判定する（Ｓ９０５）。
【００７２】
Ｓ９０５で対象物理領域が最終でないならば、対象物理領域に次の物理領域を設定し（Ｓ９０６）、Ｓ９０２に戻り、処理を継続する。
【００７３】
Ｓ９０３で読み出したデータが探索データと一致する場合、探索結果を「データの一致あり」とする（Ｓ９０７）。
【００７４】
Ｓ９０５で対象物理領域が最終ならば、探索結果を「データの一致なし」とする（Ｓ９０８）。
【００７５】
Ｓ９０７またはＳ９０８で探索結果を設定した後、探索結果をホスト装置へ出力し（Ｓ９０９）、探索処理を終了する（Ｓ９１０）。
【００７６】
なお、探索データのサイズと物理領域のサイズが等しい場合は、Ｓ９０４で一致を判定することができるが、探索データのサイズと物理領域のサイズが異なる場合は、一致を判定することができない。しかしながら、例えば、探索データのサイズが物理領域のサイズより小さい場合は、物理領域のサイズが探索データのサイズの整数倍となるようにすることで、物理領域を探索データのサイズを有する複数の部分領域で区切り、探索データが該物理領域の少なくとも１つの部分領域のデータと一致するかで判定することができる。
【００７７】
［２−３．効果等］
本実施の形態に係るメモリコントローラ８０２は、不揮発性メモリ１０３に対しデータの書き込み及び読み出しを行うメモリコントローラであって、不揮発性メモリ１０３と接続するＮＡＮＤＩ/Ｆ１２７と、ＣＰＵ１２１とを備える。ＣＰＵ１２１は制御ブロックとしてアドレス変換部２０１と無効領域管理部２０２と探索部８０３とを備える。メモリコントローラ８０２はホスト装置１１０から探索コマンドと探索データとを受信すると、無効領域管理部２０２により無効と管理している物理領域のデータが探索データと一致するかを探索し、探索結果をホスト装置１１０へ出力する。
【００７８】
このため、ホスト装置１１０は、論理アドレスを指定して読み出しコマンドで読み出すことができない無効な物理領域に探索データと一致するものがないかを示す探索結果を不揮発性記憶装置８０１から受信することができる。探索データにセキュリティ面で物理的に消去または上書きすべきデータを指定することで、受信する探索結果は、セキュリティ面で物理的に消去または上書きすべきデータが不揮発性メモリ１０３に残っていないかをホスト装置１１０が確認するために使用することができる。
【００７９】
さらに、実施の形態１に比べ、実施の形態２では、無効な物理領域のデータではなく、探索結果のみを不揮発性記憶装置からホスト装置１１０へ送信すればよいため、不揮発性記憶装置とホスト装置１１０との間の通信量を低減することが可能である。
【００８０】
さらに、実施の形態１に比べ、実施の形態２では、無効な物理領域のデータを不揮発性記憶装置からホスト装置１１０へ送信するのではなく、ホスト装置１１０から不揮発性記憶装置へ探索データを送信すればよいため、万一セキュリティ面で物理的に消去または上書きすべきデータが不揮発性メモリ１０３の無効な物理領域に残っていたとしても、第三者にデータを読み出されることがない。
【００８１】
（実施の形態３）
［３−１．構成］
図１０は、実施の形態３における主にメモリコントローラ１００２による制御ブロック図である。なお、実施の形態１と同様の構成及び機能を有する構成要素は同様の符号を付し、詳細な説明は省略する。不揮発性記憶システム１０００は、ホスト装置１１０と不揮発性記憶装置１００１で構成される。
【００８２】
図１０に示すように、ＣＰＵ１２１は、アドレス変換部２０１と無効領域管理部２０２とハッシュ演算部１００３とを含む。
【００８３】
アドレス変換部２０１と無効領域管理部２０２は、実施の形態１と同様の構成及び機能を有する。
【００８４】
ハッシュ演算部１００３は、不揮発性メモリ１０３からバッファメモリ１２６に読み出したデータのハッシュ値を演算する。
【００８５】
［３−２．コマンド処理］
以下、本実施の形態において、図１０に示す書き込みコマンド、読み出しコマンド、解放コマンド、無効領域ハッシュ読み出しコマンドをホスト装置１１０が不揮発性記憶装置１００１に対し発行した場合のメモリコントローラ１００２の動作について説明する。
【００８６】
書き込みコマンド、読み出しコマンド、解放コマンドは、本実施の形態１と同様の機能及び動作である。
【００８７】
無効領域ハッシュ読み出しコマンドでは、ホスト装置１１０から不揮発性記憶装置１００１へ論理アドレスは送信されない。
【００８８】
無効領域ハッシュ読み出しコマンドでは、ホスト装置１１０は不揮発性記憶装置１００１からハッシュ値を受信する。
【００８９】
［３−２−１．無効領域ハッシュ読み出しコマンド処理］
不揮発性記憶装置１００１がホスト装置１１０から無効領域ハッシュ読み出しコマンドを受信すると、ＣＰＵ１２１は図１１に示す無効領域ハッシ読み出し処理を実行する。
【００９０】
以下、図１１に示す無効領域ハッシュ読み出し処理（Ｓ１１００）について説明する。
【００９１】
まず、対象物理領域に無効領域管理テーブル６０１の先頭の物理領域を設定する（Ｓ１１０１）。
【００９２】
そして、無効領域管理テーブル６０１で対象物理領域が無効であるか否かを判定する（Ｓ１１０２）。
【００９３】
Ｓ１１０２で対象物理領域が無効ならば、対象物理領域のデータを不揮発性メモリ１０３からバッファメモリ１２６へ読み出し（Ｓ１１０３）、読み出したデータのハッシュ値をハッシュ演算部１００３で演算し、バッファメモリ１２６へ蓄積する（Ｓ１１０４）。
【００９４】
Ｓ１１０２で対象物理領域が無効でない（有効）ならば、Ｓ１１０３とＳ１１０４は実行しない。
【００９５】
次に、対象物理領域が無効領域管理テーブル６０１で最終か否かを判定する（Ｓ１１０５）。
【００９６】
Ｓ１１０５で対象物理領域が最終でないならば、対象物理領域に次の物理領域を設定し（Ｓ１１０６）、Ｓ１１０２に戻り、処理を継続する。
【００９７】
Ｓ１１０５で対象物理領域が最終ならば、バッファメモリ１２６に蓄積したハッシュ値をホスト装置へ出力し（Ｓ１１０７）、無効領域ハッシュ読み出し処理を終了する（Ｓ１１０８）。
【００９８】
［３−３．効果等］
本実施の形態に係るメモリコントローラ１００２は、不揮発性メモリ１０３に対しデータの書き込み及び読み出しを行うメモリコントローラであって、不揮発性メモリ１０３と接続するＮＡＮＤＩ/Ｆ１２７と、ＣＰＵ１２１とを備える。ＣＰＵ１２１は制御ブロックとしてアドレス変換部２０１と無効領域管理部２０２とハッシュ演算部１００３とを備える。メモリコントローラ１００２はホスト装置１１０から無効領域ハッシュ読み出しコマンドを受信すると、無効領域管理部２０２により無効と管理している物理領域のデータのハッシュ値を順次演算、蓄積し、蓄積したハッシュ値をホスト装置１１０へ出力する。
【００９９】
このため、ホスト装置１１０は、論理アドレスを指定して読み出しコマンドで読み出すことができない無効な物理領域のハッシュ値を不揮発性記憶装置１００１から受信することができる。ホスト装置１１０は、セキュリティ面で物理的に消去または上書きすべきデータのハッシュ値を演算し、不揮発性記憶装置１００１から受信したハッシュ値と比較することで、セキュリティ面で物理的に消去または上書きすべきデータが不揮発性メモリ１０３に残っている可能性がないかを確認することができる。
【０１００】
さらに、実施の形態１に比べ、実施の形態３では、無効な物理領域のデータではなく、ハッシュ値を不揮発性記憶装置からホスト装置１１０へ送信すればよいため、不揮発性記憶装置とホスト装置１１０との間の通信量を低減することが可能である。
【０１０１】
さらに、実施の形態１に比べ、実施の形態３では、無効な物理領域のデータではなく、ハッシュ値を不揮発性記憶装置からホスト装置１１０へ送信すればよいため、万一セキュリティ面で物理的に消去または上書きすべきデータが不揮発性メモリ１０３の無効な物理領域に残っていたとしても、第三者にデータを読み出されることがない。
【０１０２】
なお、ハッシュ演算に使用するハッシュ関数には代表的なものとしてＳＨＡ−１、ＳＨＡ−２、ＭＤ５等が存在するが、本発明に使用できるハッシュ関数はこれらに限らない。
【０１０３】
なお、バッファメモリ１２６のメモリ容量が十分でない場合は、不揮発性記憶装置１００１からホスト装置１１０へのハッシュ値の転送処理を複数回に分割することで実現が可能である。
【０１０４】
（実施の形態４）
［４−１．構成］
図１２は、実施の形態４における主にメモリコントローラ１２０２による制御ブロック図である。なお、実施の形態１と同様の構成及び機能を有する構成要素は同様の符号を付し、詳細な説明は省略する。不揮発性記憶システム１２００は、ホスト装置１１０と不揮発性記憶装置１２０１で構成される。
【０１０５】
図１２に示すように、ＣＰＵ１２１は、アドレス変換部２０１と無効領域管理部２０２とハッシュ演算部１００３とハッシュ比較部１２０３とを含む。
【０１０６】
アドレス変換部２０１と無効領域管理部２０２は、実施の形態１と同様の構成及び機能を有する。
【０１０７】
ハッシュ演算部１００３は、実施の形態３と同様の構成及び機能を有する。
【０１０８】
ハッシュ比較部１２０３は、ハッシュ演算部１００３が順次演算するハッシュ値とホスト装置１１０がバッファメモリ１２６に送信したハッシュ値とを比較し、比較結果をハッシュ探索結果として蓄積する。
【０１０９】
［４−２．コマンド処理］
以下、本実施の形態において、図１２に示す書き込みコマンド、読み出しコマンド、解放コマンド、ハッシュ探索コマンドをホスト装置１１０が不揮発性記憶装置１２０１に対し発行した場合のメモリコントローラ１２０２の動作について説明する。
【０１１０】
書き込みコマンド、読み出しコマンド、解放コマンドは、本実施の形態１と同様の機能及び動作である。
【０１１１】
ハッシュ探索コマンドでは、ホスト装置１１０から不揮発性記憶装置１２０１へ論理アドレスは送信されない。
【０１１２】
ハッシュ探索コマンドでは、ホスト装置１１０から不揮発性記憶装置１２０１へ探索ハッシュ値が送信され、ホスト装置１１０は不揮発性記憶装置１２０１からハッシュ探索結果を受信する。
【０１１３】
［４−２−１．ハッシュ探索処理］
不揮発性記憶装置１２０１がホスト装置１１０からハッシュ探索コマンドと探索ハッシュ値とを受信すると、ＣＰＵ１２１は図１３に示すハッシュ探索処理を実行する。
【０１１４】
以下、図１３に示すハッシュ探索処理（Ｓ１３００）について説明する。
【０１１５】
まず、対象物理領域に無効領域管理テーブル６０１の先頭の物理領域を設定する（Ｓ１３０１）。
【０１１６】
そして、無効領域管理テーブル６０１で対象物理領域が無効であるか否かを判定する（Ｓ１３０２）。
【０１１７】
Ｓ１３０２で対象物理領域が無効の場合、対象物理領域のデータを不揮発性メモリ１０３からバッファメモリ１２６へ読み出し（Ｓ１３０３）、読み出したデータのハッシュ値をハッシュ演算部１００３で演算する（Ｓ１３０４）。
【０１１８】
Ｓ１３０４で演算したハッシュ値がホスト装置１１０から受信した探索ハッシュ値と一致するかを判定する（Ｓ１３０５）。
【０１１９】
Ｓ１３０４で演算したハッシュ値が探索ハッシュ値と一致しない場合、またはＳ１３０２で対象物理領域が無効でない（有効）の場合、対象物理領域が無効領域管理テーブル６０１で最終か否かを判定する（Ｓ１３０６）。
【０１２０】
Ｓ１３０６で対象物理領域が最終でないならば、対象物理領域に次の物理領域を設定し（Ｓ１３０７）、Ｓ１３０２に戻り、処理を継続する。
【０１２１】
Ｓ１３０４で演算したハッシュ値が探索ハッシュ値と一致する場合、ハッシュ探索結果を「ハッシュ値の一致あり」とする（Ｓ１３０８）。
【０１２２】
Ｓ１３０６で対象物理領域が最終ならば、ハッシュ探索結果を「ハッシュ値の一致なし」とする（Ｓ１３０９）。
【０１２３】
Ｓ１３０８またはＳ１３０９でハッシュ探索結果を設定した後、ハッシュ探索結果をホスト装置へ出力し（Ｓ１３１０）、ハッシュ探索処理を終了する（Ｓ１３１１）。
【０１２４】
なお、探索ハッシュ値の元データのサイズと物理領域のサイズが等しい場合は、Ｓ１３０４で物理領域のサイズのデータのハッシュ値を演算、Ｓ１３０５で一致を判定すれば目的に見合うハッシュ探索結果を得られるが、探索ハッシュ値の元データのサイズと物理領域のサイズが異なる場合は、そのままハッシュ値を演算、一致を判定することでは目的に見合うハッシュ探索結果は得られない。しかしながら、例えば、探索ハッシュ値の元データのサイズが物理領域のサイズより小さい場合は、物理領域のサイズが探索ハッシュ値の元データのサイズの整数倍となるようにすることで、物理領域を探索ハッシュ値の元データのサイズを有する複数の部分領域で区切り、探索ハッシュ値が該物理領域の少なくとも１つの部分領域のハッシュ値と一致するかで判定することで実現が可能である。
【０１２５】
［４−３．効果等］
本実施の形態に係るメモリコントローラ１２０２は、不揮発性メモリ１０３に対しデータの書き込み及び読み出しを行うメモリコントローラであって、不揮発性メモリ１０３と接続するＮＡＮＤＩ/Ｆ１２７と、ＣＰＵ１２１とを備える。ＣＰＵ１２１は制御ブロックとしてアドレス変換部２０１と無効領域管理部２０２とハッシュ演算部１００３とハッシュ比較部１２０３とを備える。メモリコントローラ１２０２はホスト装置１１０からハッシュ探索コマンドと探索ハッシュ値とを受信すると、無効領域管理部２０２により無効と管理している物理領域のデータのハッシュ値を順次演算し、演算したハッシュ値が探索ハッシュ値と一致するかを比較、ハッシュ探索結果として蓄積し、ハッシュ探索結果をホスト装置１１０へ出力する。
【０１２６】
このため、ホスト装置１１０は、論理アドレスを指定して読み出しコマンドで読み出すことができない無効な物理領域のハッシュ値に探索ハッシュ値と一致するものがないかを示すハッシュ探索結果を不揮発性記憶装置１２０１から受信することができる。探索ハッシュ値の元データにセキュリティ面で物理的に消去または上書きすべきデータを指定することで、受信するハッシュ探索結果は、セキュリティ面で物理的に消去または上書きすべきデータが不揮発性メモリ１０３に残っている可能性がないかをホスト装置１１０が確認するために使用することができる。
【０１２７】
さらに、実施の形態３に比べ、実施の形態４では、無効な物理領域のハッシュ値ではなく、ハッシュ探索結果のみを不揮発性記憶装置からホスト装置１１０へ送信すればよいため、不揮発性記憶装置とホスト装置１１０との間の通信量を低減することが可能である。
【０１２８】
（その他実施の形態）
以上のように、本出願において開示する技術の例示として、実施の形態１乃至４を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。
【０１２９】
上記実施の形態１乃至４で説明したメモリコントローラ１０２，８０２、１００２、１２０２において、各機能ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。なお、ここでは、ＬＳＩとしたが、集積度の違い等により、ＩＣ、ＶＬＳＩ、ＵＬＳＩ、システムＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１３０】
上記実施の形態１乃至４の各機能ブロックの処理の一部又は全部は、プログラムにより実現されるものであってもよい。
【０１３１】
上記実施の形態１乃至４における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、本開示の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０１３２】
上記実施の形態１乃至４におけるメモリコントローラ１０２，８０２、１００２、１２０２、メモリコントローラ１０２，８０２、１００２、１２０２と不揮発性メモリ１０３とを含む不揮発性記憶装置１０１、８０１、１００１、１２０１、不揮発性記憶装置１０１、８０１、１００１、１２０１とホスト装置１１０とを含む不揮発性記憶システム１００、８００、１０００、１２００、上記実施の形態１乃至４において実行される不揮発性メモリ１０３のメモリ制御方法、メモリ制御方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本開示の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、半導体メモリである。
【０１３３】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０１３４】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面及び詳細な説明を提供した。
【０１３５】
したがって、添付図面及び詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１３６】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲又はその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【０１３７】
本開示における不揮発性記憶装置及び不揮発性記憶システムは、ＭＦＰ、コピー機、プリンタ、スキャナ、ＦＡＸなどの電子機器に利用できる。
【符号の説明】
【０１３８】
１００、８００、１０００、１２００  不揮発性記憶システム
１０１、８０１、１００１、１２０１  不揮発性記憶装置
１０２、８０２、１００２、１２０２  メモリコントローラ
１０３    不揮発性メモリ
１１０    ホスト装置
１２１    ＣＰＵ
１２２    ＲＡＭ
１２３    ＲＯＭ
１２４    外部Ｉ／Ｆ
１２５    ＥＣＣ回路
１２６    バッファメモリ
１２７    ＮＡＮＤＩ/Ｆ
２０１    アドレス変換部
２０２    無効領域管理部
３０１    ブロック
３０２    ページ
３０３    データ部
３０４    ＥＣＣ部
４０１    物理領域
５０１    アドレス変換テーブル
６０１    無効領域管理テーブル
８０３    探索部
１００３  ハッシュ演算部
１２０３  ハッシュ比較部
【図１】
2020003858.tif 000003
【図２】
2020003858.tif 000004
【図３】
2020003858.tif 000005
【図４】
2020003858.tif 000006
【図５】
2020003858.tif 000007
【図６】
2020003858.tif 000008
【図７】
2020003858.tif 000009
【図８】
2020003858.tif 000010
【図９】
2020003858.tif 000011
【図１０】
2020003858.tif 000012
【図１１】
2020003858.tif 000013
【図１２】
2020003858.tif 000014
【図１３】
2020003858.tif 000015