IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022051086
(43)【公開日】2022-03-31
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   G06F 12/02 20060101AFI20220324BHJP
   G06F 12/00 20060101ALI20220324BHJP
   G06F 21/60 20130101ALI20220324BHJP
【FI】
G06F12/02 510A
G06F12/00 597U
G06F21/60
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020157357
(22)【出願日】2020-09-18
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【弁理士】
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(74)【代理人】
【識別番号】100098327
【弁理士】
【氏名又は名称】高松 俊雄
(72)【発明者】
【氏名】藤澤 俊雄
(72)【発明者】
【氏名】佐貫 朋也
(72)【発明者】
【氏名】田中 瞳
(72)【発明者】
【氏名】石原 丈士
(72)【発明者】
【氏名】吉水 康人
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA05
5B160AA09
5B160AA14
(57)【要約】
【課題】メモリシステムのセキュリティレベルを向上する。
【解決手段】メモリシステムは、複数のNANDブロックを有する不揮発性半導体メモリと、不揮発性半導体メモリへのデータの書き込みを制御するコントローラとを具備する。コントローラは、書き込みコマンド情報を受信するホストI/F制御部と、ホストI/F制御部から受信した書き込みコマンド情報にライトデータの位置を示すファイル配置情報があるとき、ファイルに消去レベルを割り当て、ファイル名、ファイルサイズ、および消去レベルを組とするファイル識別子を出力するファイル情報管理部と、ホストI/F制御部から受信した書き込みコマンド情報およびファイル情報管理部から受信したファイル識別子に基づいて、1つまたは複数の前記NANDブロックに1つの前記ファイルを配置するフラッシュトランスレーションレイヤ部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のNANDブロックを有する不揮発性半導体メモリと、
前記不揮発性半導体メモリへのデータの書き込みを制御するコントローラとを具備し、
前記コントローラは、
書き込みコマンド情報を受信するホストI/F制御部と、
前記ホストI/F制御部から受信した前記書き込みコマンド情報にライトデータの位置を示すファイル配置情報があるとき、前記ファイル配置情報に対応するファイルに消去レベルを割り当て、ファイル名、ファイルサイズ、および前記消去レベルを組とするファイル識別子を出力するファイル情報管理部と、
前記ホストI/F制御部から受信した前記書き込みコマンド情報および前記ファイル情報管理部から受信した前記ファイル識別子に基づいて、1つまたは複数の前記NANDブロックに1つの前記ファイルを配置するフラッシュトランスレーションレイヤ部と、
を備えるメモリシステム。
【請求項2】
前記ファイル情報管理部は、
受信した前記書き込みコマンド情報のうちのファイルの最終更新日時の情報をさらに抽出し、
前記ファイルの最終更新日時から現在までの経過時間を算出し、この前記経過時間に基づいて消去レベルを割り当てる、
請求項1に記載のメモリシステム。
【請求項3】
前記ファイル情報管理部は、
受信した前記書き込みコマンド情報のうちのファイルの作成日時およびファイルの最後にオープンした日を抽出し、抽出した前記ファイルの作成日時および前記ファイルの最後にオープンした日に基づいて、ファイルの使用頻度を算出し、削除可能なファイルを推定して消去レベルを割り当てる、
請求項1に記載のメモリシステム。
【請求項4】
前記フラッシュトランスレーションレイヤ部は、
UNMAPまたはTRIMコマンド、およびガベージコレクションを実行するとき、無効化された前記NANDブロックについて前記消去レベルの高いファイルは、NANDブロックイレースを実施し、消去レベルの低いファイルはデアロケートをするかを選択する、
請求項1から3のうちのいずれか1項に記載のメモリシステム。
【請求項5】
前記ホストI/F制御部は、
前記ファイル情報管理部から消去レベルの高い削除可能なファイルの候補を受信し、
前記削除可能なファイルの候補を出力し、
前記削除可能なファイルの候補に対するファイル削除要求を受信し、
前記ファイル情報管理部へ前記ファイル削除要求を出力する
請求項1から4のうちのいずれか1項に記載のメモリシステム。
【請求項6】
複数のNANDブロックを有する不揮発性半導体メモリと、
前記不揮発性半導体メモリへのデータの書き込みを制御するコントローラとを具備し、
前記コントローラは、
書き込みコマンド情報を受信するホストI/F制御部と、
前記ホストI/F制御部から受信した前記書き込みコマンド情報にライトデータの位置を示すファイル配置情報があるとき、前記ファイル配置情報に対応するファイルに消去レベルを割り当て、ファイル名、ファイルサイズ、および前記消去レベルを組とするファイル識別子を出力するファイル情報管理部と、
前記ホストI/F制御部から受信した前記書き込みコマンド情報および前記ファイル情報管理部から受信した前記ファイル識別子に基づいて、1つまたは複数の前記NANDブロックに1つの前記ファイルを配置するフラッシュトランスレーションレイヤ部と、
残りの空きNANDブロックが少なくなってきたときに動作モードを切り替えるための予め定めた閾値を設定する動作モード切り替え閾値設定部と、
前記動作モード切り替え閾値設定部から受信した前記閾値と前記フラッシュトランスレーションレイヤ部から受信した前記残りの空きNANDブロックの数に基づいて、動作モードを出力する比較器と、を備えるメモリシステム。
【請求項7】
前記フラッシュトランスレーションレイヤ部は、
前記比較器から受信した前記動作モードを受信し、
1つの前記NANDブロックに複数の前記ファイルを配置し、
前記消去レベルを選択して消去方法を選択する、
請求項6に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【0002】
不揮発性半導体メモリを有するメモリシステムにおいて、データの書き込みと読み出しの単位であるページ(例えば、4KB)に対して、不揮発性半導体メモリの一括消去の単位であるブロック(例えば、1MB)は、ページよりも大きいデータサイズでデータを消去する。
【0003】
そこで、メモリシステムは、ホスト装置のシステム上の論理アドレスとメモリシステム上の物理アドレスを変換し、メモリシステム上のブロックに有効または無効のデータが混在する状態から無効データをまとめてブロックごとで一括消去する。この無効なデータはホスト装置のシステム上で消去しても、メモリシステム上の不揮発性半導体メモリ内には物理データが存在し、解析すれば読み取ることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2018-88137号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
実施形態が解決しようとする課題は、メモリシステムのセキュリティレベルを向上することができるメモリシステムを提供することにある。
【課題を解決するための手段】
【0006】
実施形態に係るメモリシステムは、複数のNANDブロックを有する不揮発性半導体メモリと、不揮発性半導体メモリへのデータの書き込みを制御するコントローラとを具備する。コントローラは、書き込みコマンド情報を受信するホストI/F制御部と、ホストI/F制御部から受信した前記書き込みコマンド情報にライトデータの位置を示すファイル配置情報があるとき、ファイル配置情報に対応するファイルに消去レベルを割り当て、ファイル名、ファイルサイズ、および消去レベルを組とするファイル識別子を出力するファイル情報管理部と、ホストI/F制御部から受信した書き込みコマンド情報およびファイル情報管理部から受信したファイル識別子に基づいて、1つまたは複数の前記NANDブロックに1つの前記ファイルを配置するフラッシュトランスレーションレイヤ部と、を備える。
【図面の簡単な説明】
【0007】
図1】実施形態に係るメモリシステムの構成を説明するブロック図である。
図2】ファイルシステムの構成を説明する図である。
図3】ディレクトリエントリの構成を説明する図である。
図4】FAT(File Allocation Table)構造を説明する図である。
図5】実施形態に係るファイル情報管理部の動作フローを説明するフローチャートである。
図6】実施形態に係るフラッシュトランスレーションレイヤ部の動作フローを説明するフローチャートである。
図7】実施形態に係るNANDブロックに書き込む動作モードAを説明する図である。
図8】実施形態に係るファイルの最終更新日から経過時間を用いるためのディレクトリエントリのフィールド表である。
図9】実施形態に係るメモリシステムの構成を説明するブロック図である。
図10】実施形態に係るメモリシステムがUNMAPコマンドを受けたときの動作を説明する図である。
図11】別の実施形態に係るフラッシュトランスレーションレイヤ部の動作フローを説明するフローチャートである。
図12】実施形態に係るメモリシステムの構成を説明するブロック図である。
図13】実施形態に係るホストI/F制御部の動作フローを説明するフローチャートである。
図14】実施形態に係るメモリシステムの構成を説明するブロック図である。
図15】実施形態に係る比較器の動作フローを説明するフローチャートである。
図16A】実施形態に係るNANDブロックに書き込む動作モードBを説明する図である。
図16B図15Aに示すNANDブロックのファイルを他のNANDブロックへコピーする例を説明する図である。
図16C図15Bに示すNANDブロックのファイルをコピーした後、NANDブロックを消去する例を説明する図である。
【発明を実施するための形態】
【0008】
以下、図面を参照して、実施形態について説明する。以下に説明する図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。図面は模式的なものである。
【0009】
また、以下に示す実施の形態は、技術的思想を具体化するための装置や方法を例示するものである。実施の形態は、種々の変更を加えることができる。
【0010】
[第1の実施形態]
図1は、第1の実施形態に係るメモリシステム1の構成を説明するブロック図である。図1に示すように、メモリシステム1は、コントローラ10と、不揮発性半導体メモリ20とを含む。以下の説明においては、不揮発性半導体メモリ20からのデータのリードに必要な機能ブロックの説明は省略してある。
【0011】
メモリシステム1は、ホスト装置(以降、ホストという)2に接続されている。メモリシステム1は、ホスト2の外部記憶装置として機能する。メモリシステム1とホスト2とを接続する通信規格としては任意の規格が採用可能である。
【0012】
ホスト2は、ファイルシステムドライバを内蔵するコンピュータである。コンピュータは、例えば、パーソナルコンピュータ、サーバ、ポータブルな情報機器、およびAV機器でもよい。ホスト2は、ファイルシステムドライバを介してメモリシステム1に対するデータの入出力を実行する。
【0013】
以下において、図2図3、および図4を参照してメモリシステム1上のデータ管理するファイルシステムについて説明する。
【0014】
図2は、ファイルシステムの構成を説明する図である。図3は、ディレクトリエントリの構成を説明する図である。図4は、FAT構造を説明する図である。
【0015】
図2に示すように、例えば、FATファイルシステムのフォーマットは、先頭からブートセクタ、FAT(File Allocation Table)1、FAT2、ルートディレクトリエントリ(固定数エントリ)、クラスタ番号が配置される。
【0016】
ブートセクタは、このパーティションをブートさせるためのコードが記録されている。FAT1およびFAT2は、障害対策のため、同じデータが記録されている。ルートディレクトリエントリは、ファイルシステムに保存されるファイルの情報を保存するディレクトリエントリが記録されている。クラスタ番号はデータの開始クラスタ番号のデータが記録されている。なお、FAT1およびFAT2において、同じデータが2つあるのは、FATは、ファイルとデータの配置の管理をしており、FATのデータが破損するとシステムに影響が大きいため多重化している。
【0017】
図3に示すように、ルートディレクトリエントリに記録されているディレクトリエントリの形式は、基本ディレクトリエントリと、拡張ディレクトリエントリのペアがある。一方の基本ディレクトリエントリには、例えば、ファイル名、ファイルサイズ、ファイル属性、およびクラスタ番号を含んでもよい。なお、他の情報として、更新日および作成日を含んでもよい。他方の拡張ディレクトリエントリには、ファイルのクラスタデータであるプログラムファイルを含んでもよい。
【0018】
図4に示すように、例えば、ファイル2は、基本ディレクトリエントリに記録された先頭のクラスタ番号#013から、FATに記録している実際のデータが保存されているクラスタ位置を参照する。FATの#013に記録されているエントリ情報は、#014であり、FATの#014をさらに参照する。FATの#014に記録されているエントリ情報は、#015であり、FATの#015をさらに参照する。
【0019】
FATの#015に記録されているエントリ情報は、#FFFFであり、この#FFFFは終了を意味する。よって、ファイル2は、#013から#015までのクラスタで実現されるファイルであることがわかる。
【0020】
ホスト2からメモリシステム1へファイルの書き込みがあったとき、ファイルシステムのFAT1、FAT2、およびルートディレクトリエントリのファイル情報は更新される。さらに、ファイルシステムは、NAND型フラッシュメモリ20に保存されており、所定のタイミングでNAND型フラッシュメモリ20に保存されているファイルシステムも更新される。
【0021】
次に、図1を参照して第1の実施形態に係るメモリシステム1の構成について説明する。
【0022】
コントローラ10は、ホスト2と通信し、メモリシステム1全体の動作を制御する。コントローラ10は、例えば、SoC(System on Chip)として構成される半導体集積回路でもよい。
【0023】
不揮発性半導体メモリ20は、コントローラ10と接続しコントローラ10の制御によってデータを不揮発的に記憶する。不揮発性半導体メモリ20として、本実施形態ではNAND型フラッシュメモリ20を例に挙げて説明する。
【0024】
なお、不揮発性半導体メモリ20は、3次元構造フラッシュメモリ、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)などの他の種類の不揮発性半導体メモリでもよい。
【0025】
コントローラ10は、ホストI/F制御部100と、ファイル情報管理部110と、フラッシュトランスレーションレイヤ部120と、NAND型フラッシュメモリI/F制御部130とを含む。
【0026】
ホストI/F制御部100は、ホスト2と通信するためのインターフェース装置である。ホストI/F制御部100は、例えば、ホスト2から発行された書き込みコマンド情報を受信する。
【0027】
書き込みコマンド情報は、ライトコマンド、ライトデータを含んでもよい。ライトコマンドは、ライトコマンドである旨を示すコマンド種別、ライトデータの位置を示すファイル配置情報、ライトデータサイズ、およびストリーム識別子であるストリームIDを含んでもよい。
【0028】
ファイル配置情報は、例えば、LBA(Logical Block Adress)の形式で表記される。以下の説明において、ライトデータの位置を示す論理アドレスであるファイル配置情報をLBAとも表記することがある。また、ホスト2がメモリシステム1に対してライトデータの位置指定に使用するファイル配置情報を論理アドレスと表記することがある。
【0029】
例えば、ストリームは、ホスト2がデータを無効化するときには一括して無効化することが期待されるデータの集合である。すなわち、ストリームIDは、予期されるデータの寿命に応じて選択される識別子である。
【0030】
データの寿命は、メモリシステム1にライト(書き込み)されてから書き換えられるまでの時間である。書き換えは、ホスト2が重複する論理アドレスを指定して複数回の書き込みコマンド情報を発行することを含んでもよい。
【0031】
また、書き換えは、論理アドレスと物理アドレスとの関係を解消する処理を含んでもよい。論理アドレスと物理アドレスとの対応関係を解消する処理は、例えば、TRIMコマンドまたはUNMAPコマンドに応じで実行される。
【0032】
ホストI/F制御部100は、ホスト2から受信した書き込みコマンド情報をファイル情報管理部110およびフラッシュトランスレーションレイヤ部120へ出力する。
【0033】
ファイル情報管理部110は、書き込むファイルの消去レベルを管理する。ファイル情報管理部110は、ホストI/F制御部100から受信したLBAを含む書き込みコマンド情報からファイル配置情報を抽出する。このファイル配置情報に基づき、消去レベルを割り当てる。また、ファイル名、ファイルサイズ、および消去レベルを組とするファイル識別子を内部メモリに記憶する。なお、消去レベルは、データの復元のしにくさである。
【0034】
すなわち、ファイル情報管理部110は、ホスト2の管理するファイルシステム上のLBAに対し、メモリシステム1上でLBAに消去レベルを付与し、ファイルシステムを再構築する。
【0035】
この内部メモリは、例えば、SRAMやDRAMなどの汎用メモリでもよい。この内部メモリは、コントローラ10内に搭載されていてもよい。なお、この内部メモリは、コントローラ10の外にコントローラ10とは独立して搭載されていてもよい。
【0036】
ファイル情報管理部110の詳細な動作については、後で説明する。
【0037】
フラッシュトランスレーションレイヤ部120は、LBAとNAND型フラッシュメモリ20の物理アドレスを1対1で管理する。具体的には、ホスト2から書き込みコマンド情報に含まれるLBAである論理アドレスとNAND型フラッシュメモリ20の位置情報である物理アドレスとを変換し管理する。以下の説明において、NAND型フラッシュメモリ20でNANDブロックの物理アドレスをPBA(Physical Block Address)と表記することがある。
【0038】
なお、フラッシュトランスレーションレイヤ部120は、論物アドレス変換テーブルのマッピング管理機能のほかに、従来型のフラッシュトランスレーションレイヤ(FTL)が有するようなNAND型フラッシュメモリのガベージコレクション(GC)を実行する機能、ブロック管理、ウェアリベリング、ランダマイズなどのフラッシュマネージメント機能を備えていてもよい。フラッシュトランスレーションレイヤ部120の詳細な動作については、後で説明する。
【0039】
NAND型フラッシュメモリI/F制御部130は、NAND型フラッシュメモリ20と通信するためのインターフェース装置である。NAND型フラッシュメモリI/F制御部130は、例えば、フラッシュトランスレーションレイヤ部120から発行されたPBA、データサイズ、および消去レベルに対する実行命令を受信する。NAND型フラッシュメモリI/F制御部130は、受信した情報をNAND型フラッシュメモリ20へ出力する。
【0040】
図5を参照して、第1の実施形態に係るメモリシステム1にデータを書き込むときのファイル情報管理部110の動作フローについて説明する。
【0041】
図5は、実施形態に係るファイル情報管理部110の書き込みにおける動作フローを説明するフローチャートである。
【0042】
ステップS1において、ファイル情報管理部110は、ホストI/F制御部100から書き込みコマンド情報を受信する。
【0043】
ステップS2において、ファイル情報管理部110は、ホストI/F制御部100から受信した書き込みコマンド情報に含まれるLBAにファイル配置情報があるか判断する。
【0044】
このファイル配置情報があるとは、ファイル配置情報が示す位置にファイルシステムのFAT1、FAT2、およびルートディレクトリエントリの範囲内の情報が含まれることを意味する。
書き込みコマンド情報にファイル配置情報がある場合、処理はステップS3に進む。書き込みコマンド情報にファイル配置情報がない場合、処理は終了に進む。
【0045】
ステップS3において、ファイル情報管理部110は、ファイル配置情報からFAT1、FAT2、およびルートディレクトリエントリの情報を取得する。
【0046】
ステップS4において、ファイル情報管理部110は、FAT1、FAT2、およびルートディレクトリエントリの情報(例えば、データの先頭から32Byteまで)からファイル名とファイルサイズを抽出する。
【0047】
ステップS5において、ファイル情報管理部110は、抽出したファイル名に対応する消去レベルを割り当てる。この消去レベルの割り当て方法は、例えば、ファイル情報管理部110がホスト2から特別な指示が無い限り規定値を割り当てる。この規定値は、例えば、消去レベルの低いことを示す0を与えてもよい。
【0048】
ここで、消去レベルの低いとは、例えば、データ復元のしにくさが容易でファイルシステム上で消去しても、NAND型フラッシュメモリ20を解析することでデータが読み取れることを意味する。逆に、消去レベルの高いとは、例えば、データ復元のしにくさが難しく、ファイルシステム上で消去したファイルがNAND型フラッシュメモリ20上でも削除されている状態のことを意味する。
【0049】
ステップS6において、ファイル情報管理部110は、抽出したファイル名およびファイルサイズと、消去レベルの情報とを組にしたファイル識別子を内部メモリに記憶する。ファイル情報管理部110は、内部メモリに記録したファイル識別子に含まれる消去レベルの内容をホスト2から指示によって更新してもよい。
【0050】
つまり、ファイル情報管理部110は、例えば、規定値で与えた消去レベルの値が0から、ホスト2からの指示によって消去レベルの値を消去レベルの高いことを示す1へ更新できる。また、同一のファイル名が既に存在する場合、内部メモリ内のファイル識別子は更新しなくてもよい。
【0051】
ステップS7において、受信した書き込みコマンド情報に図2で示すクラスタにユーザデータ領域の先頭であるクラスタ番号002以降への書き込みコマンドを含んでいる場合、処理は、ステップS8に進む。受信した書き込みコマンド情報にクラスタ番号002以降への書き込みコマンドを含んでいない場合、処理は、終了に進む。一般的に、FATファイルシステムにおいて、クラスタ番号002以前のクラスタ番号001およびクラスタ番号000は、存在せず、クラスタの先頭は、クラスタ番号002である。
【0052】
ステップS8において、ファイル情報管理部110は、フラッシュトランスレーションレイヤ部120へファイル識別子を出力する。
【0053】
以下において、図6図7を参照して第1の実施形態に係るメモリシステム1にデータを書き込むときのフラッシュトランスレーションレイヤ部120の動作フローについて説明する。
【0054】
図6は、実施形態に係るフラッシュトランスレーションレイヤ部120の動作フローを説明するフローチャートである。図7は、NANDブロックに書き込む動作モードAを説明する図である。
【0055】
ステップS11において、フラッシュトランスレーションレイヤ部120は、例えば、ホストI/F制御部100からLBAを含む書き込みコマンド情報を受信する。また、書き込みコマンド情報に含まれるLBAにファイル配置情報がある場合は、ファイル情報管理部110からファイル識別子を受信する。
【0056】
ステップS12において、データ書き込み先のLBAをPBAに変換するとき、フラッシュトランスレーションレイヤ部120は、ファイル識別子が異なるデータを異なるNANDブロックに割り当てる。さらに、フラッシュトランスレーションレイヤ部120は、書き込みコマンド情報に含むLBAに対するPBAとデータサイズの情報をNAND型フラッシュメモリI/F制御部130に出力する。
【0057】
つまり、フラッシュトランスレーションレイヤ部120は、図7に示すように、一方のファイル識別子のファイルAに対してNAND型フラッシュメモリ20の物理アドレスであるNANDブロック#1を割り当てる。また、他方の異なるファイル識別子のファイルBに対してNAND型フラッシュメモリ20の物理アドレスであるNANDブロック#2を割り当てる。このように、フラッシュトランスレーションレイヤ部120が1つまたは複数のNAND型フラッシュメモリ20のNANDブロックに1つのファイルを配置する動作モードを動作モードAという。
【0058】
上述したように、第1の実施形態によれば、メモリシステム1は、ホストI/F制御部100で受信した書き込みコマンド情報から、コントローラ10内でLBAに含まれるファイル名を抽出し、ファイルシステム(例えば、FATファイルシステム)情報を再構築する。
【0059】
この再構築したLBAに含まれるファイル配置情報を用いて、PBAは1つまたは複数のNANDブロックに含まれるデータを1つのファイル(例えば、最小数のファイル)に制限して配置する(動作モードA)。
【0060】
つまり、メモリシステム1は、ファイルごとに消去レベルを記憶することでファイル毎に消去レベルを変更することができる。
【0061】
また、メモリシステム1は、消去レベルを用いてファイル構成を解析することにより、消去レベルが高いファイルをすぐに削除できるようになるため、消去したデータが復元されにくくなりメモリシステム1のセキュリティレベルが向上することができる。
【0062】
[第2の実施形態]
第1の実施形態に係るメモリシステム1では、図5に示すステップS5において、ファイル情報管理部110は、消去レベルの割り当て方法として、規定値を割り当てるか、または、ホスト2からの特別な指示によって割り当てた。
【0063】
これに対し、第2の実施形態に係るメモリシステム1では、ファイル情報管理部110は、ファイルの最終更新日から現在までの経過時間を用いて消去レベルを割り当てる。
【0064】
具体的には、図5に示すステップS4において、ファイル名とファイルサイズの2つ情報のほかに、更に、ファイルの最終更新日を抽出する。また、図5に示すステップS5において、ファイル情報管理部110は、抽出したファイルの最終更新日から現在までの経過時間を算出し、この経過時間を用いて、消去レベルを割り当てる。なお、対象とするファイルは、例えば、キャッシュ用パーティションなどのデータが勝手に消える特定のパーティションに書かれたファイルでもよい。
【0065】
図8は、ファイルの最終更新日から現在までの経過時間を用いるためのディレクトリエントリのフィールド表である。
【0066】
図8に示すように、ディレクトリエントリのフィールド表にある「DIR_WrtTime」および「DIR_WrtDate」のデータを抽出することでファイルの最終更新日を抽出することができる。
【0067】
つまり、ステップS4において、ファイル情報管理部110は、ディレクトリエントリのデータのうち、「DIR_WrtTime」および「DIR_WrtDate」を用いて、ファイルの最終更新日を抽出する。
【0068】
他の構成、メモリシステムの動作フローおよび効果は、図1図7に示した第1の実施形態と同じである。
【0069】
[第3の実施形態]
第2の実施形態に係るメモリシステム1では、図5に示すステップS5において、ファイル情報管理部110は、消去レベルの割り当て方法として、ファイルの最終更新日を用いて、消去レベルを割り当てた。これに対し、第3の実施形態に係るメモリシステム1では、ファイル情報管理部110は、機械学習を用いて消去レベルを割り当てる。
【0070】
具体的には、図5に示すステップS4において、ファイル名とファイルサイズの2つ情報のほかに、更に、ファイルの作成日時およびファイルを最後にオープンした日を抽出する。また、図5に示すステップS5において、ファイル情報管理部110は、例えば、機械学習の手法として、抽出したファイルの作成日時およびファイルを最後にオープンした日に基づいて、ファイルの使用頻度を算出し、削除可能なファイルを推定し、消去レベルを割り当てる。
【0071】
図8に示すように、ディレクトリエントリのフィールド表にある「DIR_CrtTime」、「DIR_CrtDate」、および「DIR_LstAccDate」のデータを抽出することでファイルの作成日時およびファイルを最後にオープンした日を抽出することができる。
【0072】
つまり、ステップS4において、ファイル情報管理部110は、ディレクトリエントリのデータのうち、「DIR_CrtTime」、「DIR_CrtDate」、および「DIR_LstAccDate」を用いて、ファイルの作成日時およびファイルを最後にオープンした日を抽出する。
【0073】
他の構成、メモリシステムの動作フローおよび効果は、図8に示した第2の実施形態と同じである。
【0074】
[第4の実施形態]
図9は、第4の実施形態に係るメモリシステム1Aの構成を説明するブロック図である。図10は、メモリシステム1AがUNMAPコマンドを受けたときのファイルシステム上のファイルの動作を説明する図である。
【0075】
第1の実施形態に係るメモリシステム1では、図6に示すステップS11において、フラッシュトランスレーションレイヤ部120は、ホストI/F制御部100からLBAを含む書き込みコマンド情報を受信する。
【0076】
これに対し、第4の実施形態に係るメモリシステム1Aでは、図9に示すフラッシュトランスレーションレイヤ部120Aは、ホストI/F制御部100からUNMAPまたはTRIMコマンドを受信する。さらに、ガベージコレクション(GC)のとき、ファイルのファイル識別子に含まれる消去レベルを参照して消去レベルを選択し消去レベルに合わせて、ブロックイレースまたはデアロケート(割り当て解除)の命令を出力する。
【0077】
デアロケート(割り当て解除)は、有効なデータを他のブロックの空きブロックに移動し、その後、移動元のブロックに格納されている無効なデータをまとめて書き込みに再利用可能なブロック(フリーブロック)を生成することである。
【0078】
すなわち、メモリシステム1Aは、ホスト2からの書き込みコマンド情報を受信する以外に、ホストI/F制御部100からのUNMAPまたはTRIMコマンド、およびガベージコレクションを実行するとき、フラッシュトランスレーションレイヤ部120Aがファイルの消去レベルを参照し、選択された消去レベルに合わせて、ブロックイレースまたはデアロケート(割り当て解除)の命令をNAND型フラッシュメモリI/F制御部130に出力する。
【0079】
なお、ガベージコレクションは、UNMAPコマンドおよびTRIMコマンドを受信したときに、同時に、バックグラウンドで実行してもよい。
【0080】
例えば、図10に示すメモリシステム1A上のブロック#3にあるファイルの更新前のデータが無効化される。この時、第4の実施形態に係るメモリシステム1Aは、ファイルの更新前のデータに対して、ファイルの消去レベルを参照することにより、消去レベルが高い場合、ブロック#3にあるファイルの無効データがすぐにブロックイレースされるため、セキュリティレベルを向上することができる。
【0081】
図11は、第4の実施形態に係るフラッシュトランスレーションレイヤ部の動作フローを説明するフローチャートである。
【0082】
ステップS21において、図9に示すフラッシュトランスレーションレイヤ部120Aは、例えば、ホストI/F制御部100からUNMAPまたはTRIMコマンドを受信する。また、UNMAPまたはTRIMコマンドにLBAを含むため、ファイル情報管理部110からファイル識別子を受信する。
【0083】
ステップS22において、フラッシュトランスレーションレイヤ部120Aは、UNMAPまたはTRIMコマンドで指定されたLBAをPBAに変換し、PBAとデータサイズの情報をNAND型フラッシュメモリI/F制御部130に出力する。
【0084】
ステップS23において、フラッシュトランスレーションレイヤ部120Aは、最適化によって書き込み元のファイルを無効化する際に、ファイル識別子に基づいて、消去レベルを選択する。
【0085】
ステップS24において、フラッシュトランスレーションレイヤ部120Aは、ファイル識別子から読み取った消去レベルに基づいて、無効化した書き込み元のファイルのあるNANDブロックの消去方法を選択する。
【0086】
ファイル識別子から読み取った消去レベルが高い(例えば、消去レベルの値が1)場合、処理はステップS25に進む。また、ファイル識別子から読み取った消去レベルが低い(例えば、消去レベルの値が0)場合、処理はステップS26に進む。
【0087】
ステップS25において、フラッシュトランスレーションレイヤ部120Aは、この選択された消去レベルに合わせて、無効化した書き込み元のファイルのあるNANDブロックに対して、例えば、NANDブロックイレース(ブロック消去)を実行する命令をNAND型フラッシュメモリI/F制御部130に出力する。
【0088】
ステップS26において、フラッシュトランスレーションレイヤ部120Aは、この選択された消去レベルに合わせて、例えば、デアロケート(割り当て解除)を実行する命令をNAND型フラッシュメモリI/F制御部130に出力する。
【0089】
上述のように、メモリシステム1Aの一例であるSSDは、UNMAPまたはTRIMコマンドを受信する。このとき、UNMAPまたはTRIMコマンド、およびガベージコレクションによって生成された無効データについて消去レベルの高いファイルは、メモリシステム1A上ですぐに削除できるようになるため、消去したファイルが復元されにくくなりメモリシステム1Aのセキュリティレベルがさらに向上することができる。
【0090】
他の構成、メモリシステムの動作フローおよび効果は、図1図7に示した第1の実施形態と同じである。
【0091】
[第5の実施形態]
図12は、第5の実施形態に係るメモリシステム1Bの構成を説明するブロック図である。
第4の実施形態に係るメモリシステム1Aでは、図9に示すホストI/F制御部100は、ホスト2からUNMAPまたはTRIMコマンドを受信する。また、図9に示すファイル情報管理部110は、ファイルの消去レベルを管理し、ファイルの消去レベルが高い場合、ブロックイレースする。
【0092】
これに対し、第5の実施形態に係るメモリシステム1Bでは、図12に示すホストI/F制御部100Bは、ファイル削除コマンド機能をさらに備える。また、ホストI/F制御部100Bは、ファイル情報管理部110Bから出力された削除可能なファイル情報を受信し、ホスト2へ削除可能なファイル情報を出力する。
【0093】
ファイル情報管理部110Bは、削除可能なファイルの候補を抽出し、削除可能なファイル情報をホストI/F制御部100Bへ出力する。
【0094】
なお、削除可能なファイル情報は、例えば、第2の実施形態で求めたファイルの経過時間を基づいて削除可能なファイルの候補を抽出してもよい。また、第3の実施形態で求めた機械学習によって求めたファイルを削除可能なファイルの候補を抽出してもよい。
【0095】
すなわち、メモリシステム1Bは、ファイル情報管理部110Bが削除可能なファイル情報を抽出し、ホストI/F制御部100Bへ出力する。さらに、ホストI/F制御部100Bは、ホスト2に削除可能なファイル情報を出力する。次に、ホスト2は、ファイル情報管理部110Bからの削除可能なファイル情報に対してファイル削除要求をホストI/F制御部100Bへ出力する。
【0096】
図13は、第5の実施形態に係るホストI/F制御部100Bがファイル削除要求を受信したときの動作フローを説明するフローチャートである。
【0097】
ステップS31において、ホストI/F制御部100Bは、ホスト2からファイル削除要求を受信する。
【0098】
ステップS32において、ホストI/F制御部100Bは、ファイル情報管理部110Bが削除可能なファイル情報に基づいて、ホスト2が発行したファイル削除要求にあるファイルの消去レベルを高くし消去レベルを出力する。
【0099】
ステップS33において、ホストI/F制御部100Bは、ファイル削除要求にあるファイルのLBAを出力する。
【0100】
他の構成、メモリシステムの動作フローおよび効果は、図9~11に示した第4の実施形態と同じである。
【0101】
[第6の実施形態]
図14は、第6の実施形態に係るメモリシステム1Cの構成を説明するブロック図である。
【0102】
第6の実施形態は、第1の実施形態に係るメモリシステム1に対し、動作モード切り替え閾値設定部140と、比較器150をさらに備える。
【0103】
さらに、第6の実施形態に係るフラッシュトランスレーションレイヤ部120Cは、第1の実施形態に係るフラッシュトランスレーションレイヤ部120の機能に加えて、例えば、NANDブロックの空きの残りの物理ブロック数の情報を比較器150へ出力する。
【0104】
また、フラッシュトランスレーションレイヤ部120Cは、比較器150によって判定された動作モードを受信し、動作モードを切り替える機能が追加されている。
【0105】
なお、第6の実施形態に係るメモリシステム1CのNAND型フラッシュメモリ20のNANDブロックにデータを配置する動作モードは、第1の実施形態に係るメモリシステム1と同じである(動作モードA)。
【0106】
動作モード切り替え閾値設定部140は、NAND型フラッシュメモリ20の残りの空きNANDブロックが少なくなってきたとき、動作モードを切り替えるための予め定めた閾値を設定する。以下の説明において、NAND型フラッシュメモリ20の残りの空きNANDブロックが少なくなってきたとき、切り替えるための予め定めた閾値を動作モード切り替え閾値という。
【0107】
動作モード切り替え閾値設定部140は、予め定めた閾値を比較器150に出力する。
【0108】
比較器150は、NAND型フラッシュメモリ20のNANDブロックにファイル配置する動作モードを切り替える。比較器150の詳細な動作については、後で説明する。
【0109】
図15は、第6の実施形態に係る比較器150の動作フローを説明するフローチャートである。
【0110】
ステップS41において、比較器150は、動作モード切り替え閾値設定部140から動作モード切り替え閾値を取得する。
【0111】
ステップS42において、比較器150は、フラッシュトランスレーションレイヤ部120CからNAND型フラッシュメモリ20の空きの残り物理ブロック数を取得する。以下の説明において、NAND型フラッシュメモリ20の空きの残り物理ブロック数を残りブロック数という。
【0112】
ステップS43において、残りブロック数が動作モード切り替え閾値より少ない場合、
処理は、ステップS44に進む。残りブロック数が動作モード切り替え閾値より多い場合、処理は、ステップS45に進む。
【0113】
ステップS44において、比較器150は、残りブロック数が動作モード切り替え閾値より少ないため、動作モードBをフラッシュトランスレーションレイヤ部120Cに出力する。動作モードBの詳細な動作については、後で説明する。
【0114】
ステップS45において、比較器150は、残りブロック数が動作モード切り替え閾値より多いため、第1から第5の実施形態と同様に、動作モードAをフラッシュトランスレーションレイヤ部120Cに出力する。
【0115】
他の構成、メモリシステムの動作フローおよび効果は、図1図7に示した第1の実施形態と同じである。
【0116】
[第7の実施形態]
第7の実施形態は、図14に示すメモリシステム1Cの動作モードAに対し、NAND型フラッシュメモリ20のNANDブロックに配置する動作モードが、動作モードBである。
【0117】
図16Aは、第7の実施形態に係るNANDブロックに書き込む動作モードBを説明する図である。図16Bは、図16Aに示すNANDブロックのファイルを他のNANDブロックへコピーする例を説明する図である。図16Cは、図16Bに示すNANDブロックのファイルをコピーした後、NANDブロックを消去する例を説明する図である。
【0118】
具体的には、まず、図15に示すステップS43において、残りブロック数が動作モード切り替え閾値より少ないと判断し、ステップS44に進み、動作モードBをフラッシュトランスレーションレイヤ部120Cに動作モードBを出力する。
【0119】
次に、図11に示すステップS22において、データ書き込み先のLBAをPBAに変換するとき、図14に示すフラッシュトランスレーションレイヤ部120Cは、ファイル識別子が異なるデータを同じNANDブロックに割り当てる。
【0120】
つまり、フラッシュトランスレーションレイヤ部120Cは、図16Aに示すように、一方のファイル識別子のファイルCに対してNAND型フラッシュメモリ20の物理アドレスであるNANDブロック#3を割り当てる。また、他方の異なるファイル識別子のファイルDに対してNAND型フラッシュメモリ20の物理アドレスであるNANDブロック#3を割り当てる。
【0121】
このように、フラッシュトランスレーションレイヤ部120Cが1つのNAND型フラッシュメモリ20のNANDブロックに複数のファイルを配置する動作モードを動作モードBという。
【0122】
この動作モードBにおいて、図16Aに示すファイルDについてホスト2からUNMAPコマンドを受信した場合について説明する。なお、ここでは、一例としてUNMAPコマンドを例にしたが、TRIMコマンドまたは削除コマンドでもよい。すなわち、ホスト2からのコマンドによって、NAND型フラッシュメモリ20のNANDブロックが無効化したブロックが発生する場合を想定する。
【0123】
具体的には、ホスト2からUNMAPコマンドおよびホスト2からの指示で消去レベルを高く設定した場合、図11に示すステップS24において、消去レベルが高いと判断され、ステップS25において、NANDブロックイレースの実行する命令をNAND型フラッシュメモリI/F制御部130に出力する。
【0124】
このNANDブロックイレースの実行する命令の結果、図16Bに示すように、NANDブロック#3にあるファイルDを無効化し、NANDブロック#3にあるファイルCをNANDブロック#Nにコピーする。次に、図16Cに示すように、NANDブロック#3を一括消去する。
【0125】
他の構成、メモリシステムの動作フローおよび効果は、図14に示した第6の実施形態と同じである。
【0126】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で嫉視されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0127】
1、1A、1B、1C・・・メモリシステム、
2・・・ホスト、
10、10A、10B、10C・・・コントローラ、
100、100B・・・ホストI/F制御部、
110、110B・・・ファイル情報管理部、
120、120A、120C・・・フラッシュトランスレーションレイヤ部、
130・・・NAND型フラッシュメモリI/F制御部、
140・・・動作モード切り替え閾値設定部、
150・・・比較器、
20・・・不揮発性半導体メモリ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16A
図16B
図16C