(57)【要約】【課題】特性が異なる複数の種類のメモリを用いて、書き込み速度などの特性を向上させる。【解決手段】本発明に係る半導体記憶装置は、第１の書き込み単位でデータが書き込まれる第１メモリ１０２と、第１の書き込み単位より大きい第２の書き込み単位でデータが書き込まれる第２メモリ１０４と、第１メモリ１０２および第２メモリ１０４へのデータの書き込みを制御する制御部１０６とを備え、制御部１０６は、第１メモリ１０２内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別し、フローズンデータを第２の書き込み単位で第２メモリ１０４に書き込む。【選択図】図１
2014225196.tif 000002
【特許請求の範囲】
【請求項１】
第１の書き込み単位でデータが書き込まれる第１メモリと、
前記第１の書き込み単位より大きい第２の書き込み単位でデータが書き込まれる第２メモリと、
前記第１メモリおよび前記第２メモリへのデータの書き込みを制御する制御部とを備え、
前記制御部は、
前記第１メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別し、
前記フローズンデータを前記第２の書き込み単位で前記第２メモリに書き込むことを特徴とする半導体記憶装置。
【請求項２】
請求項１に記載の半導体記憶装置において、前記制御部は、
前記第１メモリ内において、前記第２の書き込み単位より大きいデータを記憶できる領域をラウンドロビン方式で選択し、
前記領域に前記第２の書き込み単位よりも大きいデータを集めた後、当該集めたデータのうち、所定の回数ラウンドロビン方式で巡回する間に上書き対象としてアクセスされなかったデータを前記フローズンデータとして選別することを特徴とする半導体記憶装置。
【請求項３】
請求項１または２に記載の半導体記憶装置において、前記制御部は、前記第１メモリ内の書き込み可能な領域が所定の閾値より少なくなると、前記フローズンデータの選別を開始することを特徴とする半導体記憶装置。
【請求項４】
請求項１に記載の半導体記憶装置において、前記制御部は、前記第１メモリまたは前記第２メモリ内において、書き換え回数の上限に近づいたチップを読み取り専用とすることを特徴とする半導体記憶装置。
【請求項５】
請求項１に記載の半導体記憶装置において、前記制御部は、前記第１メモリと前記第２メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて決定することを特徴とする半導体記憶装置。
【請求項６】
請求項５に記載の半導体記憶装置において、前記制御部は、前記第１メモリと前記第２メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて動的に決定することを特徴とする半導体記憶装置。
【請求項７】
第１の書き込み単位でデータが書き込まれる第１メモリと、当該第１の書き込み単位より大きい第２の書き込み単位でデータが書き込まれる第２メモリとを備える半導体記憶装置の制御方法であって、
前記第１メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別する選別ステップと、
前記フローズンデータを前記第２の書き込み単位で前記第２メモリに書き込む書き込みステップとを含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶装置およびその制御方法に関し、特に、書き込み単位の異なる複数のメモリを備える半導体記憶装置およびその制御方法に関するものである。
【背景技術】
【０００２】
近年、ビッグデータを取り扱うデータセンタなどにおいて、高速、低消費電力という特徴を有するＮＡＮＤフラッシュメモリを採用したＳＳＤ（Solid State Drive）が広く用いられてきている。
【０００３】
ＮＡＮＤフラッシュメモリは、通常、マトリックス状に配置された複数のメモリセルから構成されている。メモリセルとしては、従来、１つのメモリセルで１ビットのデータを記憶するＳＬＣ（Single Level Cell）  ＮＡＮＤ、または、１つのメモリセルで２ビットのデータを記憶するＭＬＣ（Multi Level Cell）  ＮＡＮＤが広く用いられている。
【０００４】
近年、ビットコストの低減などを目的として、１つのメモリセルで３ビットのデータを記憶するＴＬＣ（Triple Level Cell）  ＮＡＮＤを用いたＮＡＮＤフラッシュメモリについて、その活用方法が検討されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】S.H. Shin et al., "A new 3-bit programming algorithm using SLC-to-TLC migration for 8MB/s high performance TLC NAND flash memory", Dig. Tech. Papers, Symp. VLSI Circuits 2012, pp. 132-133
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１５に、ＭＬＣ  ＮＡＮＤとＴＬＣ  ＮＡＮＤの特性の一例を示す。ＴＬＣ  ＮＡＮＤは、単位セルあたり３ビットのデータを記憶するため、単位セルあたり２ビットのデータを記憶するＭＬＣ  ＮＡＮＤに比べて、ビットコストを０．６６倍（２／３倍）に低減することができる。
【０００７】
しかしながら、ＴＬＣ  ＮＡＮＤは、閾値分布が狭いこと、また、閾値マージンを増やすために書き込み電圧を高くする必要があることなどにより、ＭＬＣ  ＮＡＮＤに比べて下記のような欠点を有する。
・読み出し速度が遅い。
・書き込み速度が遅い。
・消去速度が遅い。
・書き換え回数の上限が少ない。
【０００８】
また、ＴＬＣ  ＮＡＮＤは、書き込み単位がブロックであり、書き込み単位がページであるＭＬＣ  ＮＡＮＤよりも書き込み単位が大きいため、より大きいデータにまとめてから書き込みを行わないと効率的にメモリを活用することができない。通常、１ページは数１０キロバイト程度であり、１ブロックは数メガバイト程度である。
【０００９】
ＴＬＣ  ＮＡＮＤには、上記のように、読み出し速度／書き込み速度／消去速度が遅い、また、書き換え回数の上限が少ないなどの欠点があることから、容量を増やすことを目的として、ＴＬＣ  ＮＡＮＤのみを用いた半導体記憶装置とすると、特性の劣化が大きくなるという問題がある。
【００１０】
したがって、かかる点に鑑みてなされた本発明の目的は、特性が異なる複数の種類のメモリを用いて、書き込み速度などの特性を向上させることができる半導体記憶装置およびその制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明に係る半導体記憶装置は、第１の書き込み単位でデータが書き込まれる第１メモリと、前記第１の書き込み単位より大きい第２の書き込み単位でデータが書き込まれる第２メモリと、前記第１メモリおよび前記第２メモリへのデータの書き込みを制御する制御部とを備え、前記制御部は、前記第１メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別し、前記フローズンデータを前記第２の書き込み単位で前記第２メモリに書き込むことを特徴とする。
【００１２】
また、本発明に係る半導体記憶装置において、前記制御部は、前記第１メモリ内において、前記第２の書き込み単位より大きいデータを記憶できる領域をラウンドロビン方式で選択し、前記領域に前記第２の書き込み単位よりも大きいデータを集めた後、当該集めたデータのうち、所定の回数ラウンドロビン方式で巡回する間に上書き対象としてアクセスされなかったデータを前記フローズンデータとして選別することが好ましい。
【００１３】
また、本発明に係る半導体記憶装置において、前記制御部は、前記第１メモリ内の書き込み可能な領域が所定の閾値より少なくなると、前記フローズンデータの選別を開始することが好ましい。
【００１４】
また、本発明に係る半導体記憶装置において、前記制御部は、前記第１メモリまたは前記第２メモリ内において、書き換え回数の上限に近づいたチップを読み取り専用とすることが好ましい。
【００１５】
また、本発明に係る半導体記憶装置において、前記制御部は、前記第１メモリと前記第２メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて決定することが好ましい。
【００１６】
また、本発明に係る半導体記憶装置において、前記制御部は、前記第１メモリと前記第２メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて動的に決定することが好ましい。
【００１７】
また、上記課題を解決するため、本発明に係る半導体記憶装置の制御方法は、第１の書き込み単位でデータが書き込まれる第１メモリと、当該第１の書き込み単位より大きい第２の書き込み単位でデータが書き込まれる第２メモリとを備える半導体記憶装置の制御方法であって、前記第１メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別する選別ステップと、前記フローズンデータを前記第２の書き込み単位で前記第２メモリに書き込む書き込みステップとを含むことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、特性が異なる複数の種類のメモリを用いて、書き込み速度などの特性を向上させることができる半導体記憶装置およびその制御方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。
【図２】本発明の一実施形態に係る半導体記憶装置におけるＴＬＣメモリの一ブロックの構成の一例を示す図である。
【図３】ＭＬＣメモリ内のフローズンデータをＴＬＣメモリへコピーする処理を示す図である。
【図４】ラウンドロビン方式によるブロック選択の順番の例を示す図である。
【図５】本発明の一実施形態に係る半導体記憶装置の処理を示すフローチャートである。
【図６】本発明の一実施形態に係る半導体記憶装置の処理を示すフローチャートである。
【図７】シミュレーションに用いたデータを示す図である。
【図８】本発明の一実施形態に係る半導体記憶装置のシミュレーション結果を示す図である。
【図９】本発明の一実施形態に係る半導体記憶装置のシミュレーション結果を示す図である。
【図１０】ＭＬＣメモリおよびＴＬＣメモリが交換可能なチップから構成される場合の例を示す図である。
【図１１】書き換え回数が上限に近づいたチップに対する処理を示す図である。
【図１２】各論理ページアドレスにおける書き換え頻度の一例を示す図である。
【図１３】各論理ページアドレスにおける書き換え頻度の情報を更新する様子を示す図である。
【図１４】適切なメモリ容量を動的に決定する様子を示す図である。
【図１５】ＭＬＣ  ＮＡＮＤとＴＬＣ  ＮＡＮＤの特性の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明に係る実施形態について、図面を参照して説明する。
【００２１】
図１は、本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。半導体記憶装置１００は、第１メモリであるＭＬＣメモリ１０２、第２メモリであるＴＬＣメモリ１０４および制御部１０６を備える。
【００２２】
ＭＬＣメモリ１０２は、ＭＬＣ  ＮＡＮＤをメモリセルとして採用するメモリである。ＭＬＣメモリ１０２においては、各メモリセルは、２ビットのデータを記憶する。また、ＭＬＣメモリ１０２へのデータの書き込み単位は第１の書き込み単位であるページである。
【００２３】
ＴＬＣメモリ１０４は、ＴＬＣ  ＮＡＮＤをメモリセルとして採用するメモリである。ＴＬＣメモリ１０４においては、各メモリセルは、３ビットのデータを記憶する。また、ＴＬＣメモリ１０４へのデータの書き込み単位は第２の書き込み単位であるブロックである。ブロックは複数のページから構成されるため、ＴＬＣメモリ１０４は、書き込み単位がページであるＭＬＣメモリ１０２よりも書き込み単位が大きい。
【００２４】
制御部１０６は、半導体記憶装置１００の各機能ブロックをはじめとして半導体記憶装置１００の全体を制御及び管理する。制御部１０６は、ＣＰＵ等の任意の好適なプロセッサ上で実行されるソフトウェアとして構成したり、処理ごとに特化した専用のプロセッサによって構成したりすることもできる。
【００２５】
制御部１０６は、ＭＬＣメモリ１０２およびＴＬＣメモリ１０４へのデータの書き込み、ＭＬＣメモリ１０２およびＴＬＣメモリ１０４からのデータの読み出し、および、ＭＬＣメモリ１０２およびＴＬＣメモリ１０４からのデータの消去を制御する。
【００２６】
制御部１０６は、ＭＬＣメモリ１０２内において、所定の期間上書き対象としてアクセスされていないデータ（以下、「フローズンデータ」という）を選別し、ＴＬＣメモリ１０４のブロック単位でＴＬＣメモリ１０４へコピーする。このように、ＭＬＣメモリ１０２内のフローズンデータを選別してＴＬＣメモリ１０４にコピーすることにより、本実施形態に係る半導体記憶装置１００は、制御部１０６がＴＬＣメモリ１０４にアクセスする頻度を低減することができる。また、ＭＬＣメモリ１０２内のフローズンデータが減ることにより、ガーベジコレクションなどの際における無駄なコピーを低減することができる。制御部１０６が、ＭＬＣメモリ１０２内のフローズンデータをＴＬＣメモリ１０４にコピーする処理の詳細については後述する。
【００２７】
図２は、本発明の一実施形態に係る半導体記憶装置におけるＴＬＣメモリの一ブロックの構成の一例を示す図である。ＴＬＣメモリ１０４は、各メモリセルが３ビット分のデータを格納し、１本のワード線が３ページに対応する。図２に示す例においては、ＴＬＣメモリ１０４の１ブロックにおいて、ワード線が６４本（ＷＬ０〜ＷＬ６３）あるため、ＴＬＣメモリ１０４は、１ブロック中に１９２ページ（ページ＃０〜＃１９１）を有する。
【００２８】
［ＴＬＣメモリへのコピー］
図３を参照して、制御部１０６が、ＭＬＣメモリ１０２内のフローズンデータを選別してＴＬＣメモリ１０４へコピーする処理を説明する。
【００２９】
制御部１０６は、ＭＬＣメモリ１０２内の書き込み可能な領域を監視する。制御部１０６は、例えば、空きブロックの数を監視し、空きブロックの数が所定の閾値より少なくなったと判定すると、ガーベジコレクションを開始する。制御部１０６は、ガーベジコレクションを開始すると、ラウンドロビン方式によりＭＬＣメモリ１０２内のブロックを例えば２つ選択する。ここで、ＭＬＣメモリ１０２内で選択されるブロックの数を２つとすると、ＴＬＣメモリ１０４内の１ブロックが記憶するデータ量がＭＬＣメモリ１０２内の１ブロックが記憶するデータ量の１．５倍であるため、ＭＬＣメモリ１０２の２ブロック分の領域のデータで、ＴＬＣメモリ１０４内の１ブロック分のデータより大きくなる。なお、制御部１０６が選択するブロックの数は３つ以上であってもよい。ラウンドロビン方式については、図４の説明において後述する。
【００３０】
制御部１０６は、選択した２つのブロック（以下、「選択ブロック」という）に、ＴＬＣメモリ１０４の１ブロック分以上のデータが含まれているか否かを判定する。制御部１０６は、選択ブロックに、ＴＬＣメモリ１０４の１ブロック分以上のデータが含まれていないと判定した場合は、図３（ａ）に示すように、選択ブロック（図３（ａ）の例では、ブロック＃０および＃１）に、ＭＬＣメモリ１０２内の他のブロックから有効ページをコピーして集める。その後、制御部１０６は、選択ブロックについて、ＮＲＤＳ＝１と設定する。ここで、ＮＲＤＳとはラウンドロビンの巡回数であり、初期値は０が設定されている。制御部１０６は、選択ブロックに有効ページを集める際に、ＮＲＤＳ＝１と設定し、その後、ラウンドロビン方式で巡回して、再度選択ブロックを選択する度にＮＲＤＳを１ずつ増やす。
【００３１】
図３（ｂ）は、図３（a）にて有効ページが集められた選択ブロックがラウンドロビンで一巡して再度選択された場合の様子の一例を示す図である。図３（ｂ）に示す例においては、選択ブロックにＴＬＣメモリ１０４の１ブロック分以上のデータが含まれている。図３（ｂ）において有効ページとして残っているページは、ラウンドロビン方式で一巡する間に上書きされなかったために無効ページにならなかったページである。したがって、制御部１０６は、選択ブロックに残っている有効ページに記憶されているデータをフローズンデータであると判定して選別し、ＴＬＣメモリ１０４の１ブロック分に相当する有効ページをＴＬＣメモリ１０４にコピーする。また、制御部１０６は、ＴＬＣメモリ１０４の１ブロック分に収まらず、ＴＬＣメモリ１０４にコピーできなかった有効ページを、ＭＬＣメモリ１０２内の他のブロックにコピーする。その後、制御部１０６は、選択ブロックのデータを消去して空きページを作成し、選択ブロックを書き込み対象ブロックとして使えるようにする。
【００３２】
なお、図３（ｂ）の説明においては、制御部１０６は、選択ブロックに有効ページを集めた後、ラウンドロビン方式で一巡した段階で、ＴＬＣメモリ１０４へのコピーを実行したが、さらに長い期間待ってからＴＬＣメモリ１０４へコピーするようにすることもできる。例えば、制御部１０６は、初期値としてＮＲＤＳＭＡＸを設定し、選択ブロックのデータをＴＬＣメモリ１０４にコピーする条件を、選択ブロックにＴＬＣメモリ１０４の１ブロック分以上のデータが含まれている、かつ、ＮＲＤＳ≧ＮＲＤＳＭＡＸとしてもよい。例えば、ＮＲＤＳＭＡＸ＝２と設定すると、制御部１０６は、ラウンドロビンの一巡目ではＴＬＣメモリ１０４へのコピーを実行せず、ラウンドロビンの二巡目に、ＴＬＣメモリ１０４の１ブロック分の有効ページをＴＬＣメモリ１０４にコピーする。
【００３３】
なお、制御部１０６は、ＴＬＣメモリ１０４に記憶したデータに対して、上書き要求が発生した場合は、上書きされたデータと、上書きされていない領域のデータを合わせたページのデータをＭＬＣメモリ１０２にコピーする。
【００３４】
図４は、ＭＬＣメモリ１０２内において、ラウンドロビン方式によりガーベジコレクションの対象となるブロックを選択する順番の一例を示す図である。ラウンドロビン方式とは、一般に複数のブロックを順番に巡回して選択する方式である。図４に示す例においては、ＭＬＣメモリ１０２は１２８個のブロック（ブロック＃０〜ブロック＃１２７）を有し、制御部１０６は、ブロック＃０からブロック＃１２７までを順番に選択対象ブロックとして選択する。制御部１０６は、選択対象ブロックがブロック＃１２７に達すると、また、ブロック＃０に戻って選択する。
【００３５】
また、図４に示すように、制御部１０６は、ブロック内でのページ選択の際は、例えば、ページ＃０〜ページ＃１２７の順番でページを選択する。
【００３６】
図５および図６に示すフローチャートを参照しながら、本発明の一実施形態に係る半導体記憶装置の処理を説明する。
【００３７】
制御部１０６は、ＭＬＣメモリ１０２の空きブロックが十分であるかを判定する（ステップＳ１０１）。
【００３８】
ステップＳ１０１においてＹｅｓと判定した場合は、制御部１０６は、ガーベジコレクションを開始しない（ステップＳ１０２）。
【００３９】
ステップＳ１０１においてＮｏと判定した場合は、制御部１０６は、ガーベジコレクションを開始する（ステップＳ１０３）。
【００４０】
制御部１０６は、ＭＬＣメモリ１０２の中から２つのブロックを選択ブロックとして選択する（ステップＳ１０４）。
【００４１】
制御部１０６は、選択ブロック内の有効ページ数が、ＴＬＣメモリ１０４の１ブロックあたりのページ数以上であるか否かを判定する（ステップＳ１０５）。
【００４２】
ステップＳ１０５においてＹｅｓと判定した場合は、制御部１０６は、さらに、ＮＲＤＳがＮＲＤＳＭＡＸ以上であるか否かを判定する（ステップＳ１０６）。
【００４３】
ステップＳ１０５においてＮｏと判定した場合は、制御部１０６は、有効ページの数がＭＬＣメモリ１０２の２ブロック分のページ数以上になるまで有効ページを集める（ステップＳ２０１）。
【００４４】
続いて、制御部１０６は、集めた有効ページをＭＬＣメモリ１０２内の選択ブロックにコピーする（ステップＳ２０２）。
【００４５】
制御部１０６は、ＭＬＣメモリ１０２内のブロックで、２つのブロックに有効ページをコピーした結果、有効ページがなくなったブロックを消去する（ステップＳ２０３）。
【００４６】
制御部１０６は、ステップＳ２０３において消去したＭＬＣメモリ１０２内のブロックのＮＲＤＳを０に設定する。また、制御部１０６は、有効ページが集められたＭＬＣメモリ１０２内の選択ブロックのＮＲＤＳを１に設定する（ステップＳ２０４）。
【００４７】
ステップＳ１０６においてＮｏと判定した場合は、制御部１０６は、有効ページが集められたＭＬＣメモリ１０２内の選択ブロックのＮＲＤＳを１つ増やす（ステップＳ３０１）。
【００４８】
続いて、制御部１０６は、ガーベジコレクションの対象となる次のブロックを選択する（ステップＳ３０２）。
【００４９】
ステップＳ１０６においてＹｅｓと判定した場合は、制御部１０６は、有効ページが集められたＭＬＣメモリ１０２内の２つのブロックから有効ページを読み出す（ステップＳ４０１）。
【００５０】
続いて、制御部１０６は、ＭＬＣメモリ１０２から読み出した有効ページをＴＬＣメモリ１０４にコピーする（ステップＳ４０２）。
【００５１】
制御部１０６は、ＭＬＣメモリ１０２内の２つのブロックに集められた有効ページのうち、ＴＬＣメモリ１０４にコピーできなかった分の有効ページを、ＭＬＣメモリ１０２内の書き込み対象となっているブロックの空きページに書き込む（ステップＳ４０３）。
【００５２】
制御部１０６は、ＭＬＣメモリ１０２内の選択されていた２つのブロックを消去する（ステップＳ４０４）。
【００５３】
制御部１０６は、ステップＳ４０４で消去したブロックのＮＲＤＳを０に設定する（ステップＳ４０５）。
【００５４】
図７は、本発明の一実施形態に係る半導体記憶装置の特性をシミュレーションした際に使用したデータを示す図である。図７は、横軸が論理アドレス、縦軸が書き換え頻度を示す。図７に示すように、論理アドレスによって書き換え頻度は大きく異なる。書き換え頻度が高いデータはホットデータ、書き換え頻度が低いデータはコールドデータであり、特に書き換えがほとんど発生していないデータはフローズンデータである。
【００５５】
図８は、本発明の一実施形態に係る半導体記憶装置のシミュレーション結果を示す図である。
【００５６】
図８（ａ）は、左側の縦軸が書き込みスループットであり、右側の縦軸が書き込みエネルギーである。白の棒グラフが左側の縦軸、すなわち書き込みスループットに対応し、黒の棒グラフが右側の縦軸、すなわち書き込みエネルギーに対応する。
【００５７】
図８（ａ）を参照すると、本発明の一実施形態に係る半導体記憶装置１００において、ＮＲＤＳＭＡＸを１に設定した場合に、書き込みスループット、書き込みエネルギーともに従来技術からの改善度が大きい。ここで、従来技術とは、ＭＬＣ  ＮＡＮＤのみを用いたメモリ構成である。ＮＲＤＳＭＡＸを１に設定した場合、従来技術に比べて、書き込みスループットが４５％向上し、書き込みエネルギーが２５％低減するという結果が得られた。
【００５８】
図８（ｂ）は、左側の縦軸がＭＬＣメモリの書き換え回数であり、右側の縦軸が（ＴＬＣメモリの書き換え回数）／（ＭＬＣメモリの書き換え回数）である。白の棒グラフが左側の縦軸、すなわちＭＬＣメモリの書き換え回数に対応し、黒の棒グラフが右側の縦軸、すなわち（ＴＬＣメモリの書き換え回数）／（ＭＬＣメモリの書き換え回数）に対応する。
【００５９】
図８（ｂ）を参照すると、図８（ａ）において最適な条件であったＮＲＤＳＭＡＸ＝１の場合において、ＭＬＣメモリの書き換え回数は従来技術から３．６％の増加と、ほとんど増えていない。また、ＮＲＤＳＭＡＸ＝１の場合における（ＴＬＣメモリの書き換え回数）／（ＭＬＣメモリの書き換え回数）は７．９％であるが、これは、図１５に示すように、ＴＬＣ  ＮＡＮＤの書き換え回数の上限がＭＬＣ  ＮＡＮＤの書き換え回数の上限の１／１０程度であることを考慮すると、好ましい比率であるといえる。
【００６０】
図９は、本発明の一実施形態に係る半導体記憶装置において、ＴＬＣメモリの割合に対する依存性をシミュレーションした結果を示す図である。
【００６１】
図９（ａ）は、左側の縦軸が書き込みスループットであり、右側の縦軸が書き込みエネルギーである。白丸が左側の縦軸、すなわち書き込みスループットに対応し、黒四角が右側の縦軸、すなわち書き込みエネルギーに対応する。
【００６２】
図９（ａ）を参照すると、本発明の一実施形態に係る半導体記憶装置１００において、ＴＬＣメモリの割合を５０％に設定した場合が、書き込みスループット、書き込みエネルギーともに最適である。
【００６３】
図９（ｂ）は、左側の縦軸がＭＬＣメモリの書き換え回数であり、右側の縦軸が（ＴＬＣメモリの書き換え回数）／（ＭＬＣメモリの書き換え回数）である。白丸が左側の縦軸、すなわちＭＬＣメモリの書き換え回数に対応し、黒四角が右側の縦軸、すなわち（ＴＬＣメモリの書き換え回数）／（ＭＬＣメモリの書き換え回数）に対応する。
【００６４】
図９（ｂ）を参照すると、図９（ａ）において最適な条件であったＴＬＣメモリの割合が５０％の場合において、ＭＬＣメモリの書き換え回数は、ＴＬＣメモリの割合が０％である場合に比べて、ほとんど上昇していない。また、ＴＬＣメモリの割合が５０％の場合において、（ＴＬＣメモリの書き換え回数）／（ＭＬＣメモリの書き換え回数）は８％程度であり、これは、図１５に示すように、ＴＬＣ  ＮＡＮＤの書き換え回数の上限がＭＬＣ  ＮＡＮＤの書き換え回数の上限の１／１０程度であることを考慮すると、好ましい比率であるといえる。
【００６５】
このように、本実施形態によれば、制御部１０６がＭＬＣ１０２内のフローズンデータを選別してＴＬＣメモリ１０４にコピーすることにより、書き込み速度が遅いＴＬＣメモリ１０４へのアクセス頻度を抑え、また、ＭＬＣメモリ１０２内においてガーベジコレクションの際にフローズンデータを無駄にコピーする回数を低減することができるため、半導体記憶装置全体としての書き込みスループットを向上させることができる。
【００６６】
また、制御部１０６がラウンドロビン方式を用いてフローズンデータを選別することにより、効率的にフローズンデータを選別することができる。
【００６７】
［チップの交換］
図１０に示すように、ＭＬＣメモリ１０２およびＴＬＣメモリ１０４は、複数の交換可能なチップからなる構成とすることができる。１つのチップは、複数のブロックを含む。
【００６８】
ＭＬＣ  ＮＡＮＤおよびＴＬＣ  ＮＡＮＤは書き換え回数に上限があるため、書き換え回数が上限に近づいたブロックを含むチップは、書き換え回数の上限に達する前に新たなチップに交換する必要がある。
【００６９】
従来は、書き換え回数の上限に近づいたチップを交換する際、チップ内の有効ページに記憶されているデータを全て他のチップ内の空きページにコピーしてからチップを交換していた。そのため、チップ内の有効ページを全てコピーするために、数１０分程度もの時間がかかる場合があった。この際、コピー中は他の操作を受け付けることができないため、チップ交換時は数１０分程度もの長時間において動作を停止しなければならない場合があるという問題があった。
【００７０】
図１１を参照して、本発明の一実施形態に係るチップ交換の手順を説明する。図１１は、例えば、ＭＬＣメモリ１０２内のチップ＃０が書き換え回数の上限に近づいた場合の例である。
【００７１】
図１１（ａ）に示すように、制御部１０６は、ＭＬＣメモリ１０２内のチップ＃０が書き換え回数の上限に近づくと、チップ＃０を読み取り専用（Read Only）に設定する。
【００７２】
チップ＃０内のページに対して上書きすることができないため、図１１（ｂ）に示すように、チップ＃０内のページに対して上書き処理が発生すると、他のチップ（例えばチップ＃１）内の空きページに対して、データがコピーされる。
【００７３】
また、制御部１０６は、ラウンドロビン方式でガーベジコレクションの対象となるブロックを選択するため、ラウンドロビン方式で一巡する間に、チップ＃０内のブロックにもガーベジコレクションの対象となる順番がまわってくる。チップ＃０内のブロックは、ガーベジコレクションの対象となった際に、当該ブロック内の有効ページが他のブロックにコピーされるため、当該ブロック内には無効ページのみが残る。また、チップ＃０は読み取り専用に設定されているため、チップ＃０内のブロックは、ガーベジコレクション後にデータが消去されて空きページが生成されたり、空きページに他のチップのページがコピーされたりすることはない。
【００７４】
その結果、図１１（ｃ）に示すように、ＭＬＣメモリ１０２内の読み取り専用に設定されたチップ＃０には、時間の経過とともに無効ページのみが残るようになり、チップ＃０を交換する際に、チップ＃０内の有効ページを他のチップにコピーする必要がなくなる。
【００７５】
このように、本実施形態によれば、ＭＬＣメモリ１０２内の書き換え回数が上限に近づいたチップを読み取り専用に設定することにより、チップ交換時期に達する前に、当該チップ内のページを全て無効ページにすることができ、チップ交換時における有効ページのコピーにかかる時間を低減することができる。その結果、チップ交換の際に動作を停止する時間を短くすることができる。
【００７６】
なお、ＭＬＣメモリ１０２を複数のチップで構成する際は、複数のチップが同時に書き換え回数の上限に達することがないように、書き換え回数の上限に達するまでの時間が異なるチップでＭＬＣメモリ１０２を構成しておくことが好ましい。
【００７７】
また、ＭＬＣメモリ１０２を例に挙げてチップ交換の手順を説明したが、ＴＬＣメモリ１０４についても同様の方法を用いてチップ交換をすることができる。
【００７８】
［メモリ構成の最適化］
図１２は、各論理ページアドレスにおける書き換え頻度の一例を示す図である。図１２に示すように、書き換え頻度は論理ページアドレスによって大きく異なる。なお図１２に示すデータは図７に示したデータと同じデータである。
【００７９】
制御部１０６は、図１２に示すような各論理ページアドレスに対する書き換え頻度の情報を記憶している。制御部１０６は、書き換え頻度が多い領域２１にある論理ページアドレスの数からＭＬＣメモリ１０２の容量を決定し、書き換え頻度が少ない領域２２にある論理ページアドレスの数からＴＬＣメモリ１０４の容量を決定することができる。
【００８０】
図１３は、各論理ページアドレスにおける書き換え頻度の情報を更新する様子を示す図である。制御部１０６は、論理ページアドレスに書き換えが発生すると情報を更新する。例えば、制御部１０６が図１３（ａ）に示す情報を記憶している状態で、論理ページアドレス２５０に書き換えが発生すると、図１３（ｂ）に示すように、論理ページアドレス２５０における書き換え頻度の情報を１２４０から１２４１に更新する。
【００８１】
図１４は、制御部１０６が適切なメモリ容量を時間の経過とともに複数回にわたって動的に決定する様子を示す図である。図１４に示す例においては、制御部１０６は、時刻ｔ０、ｔ１およびｔ２において、論理ページアドレスに対する書き換え頻度の状態から、適切なＭＬＣメモリ１０２の容量およびＴＬＣメモリ１０４の容量を決定する。
【００８２】
例えば、図１４に示す例においては、制御部１０６は、時刻ｔ０においては、ＭＬＣメモリ１０２の容量／ＴＬＣメモリ１０４の容量が６ＧＢ／２ＧＢ、時刻ｔ１においては、ＭＬＣメモリ１０２の容量／ＴＬＣメモリ１０４の容量が９ＧＢ／１０ＧＢ、時刻ｔ２においては、ＭＬＣメモリ１０２の容量／ＴＬＣメモリ１０４の容量が１６ＧＢ／６ＧＢが最適であると動的に決定する。なお、制御部１０６は、適切なＭＬＣメモリ１０２の容量およびＴＬＣメモリ１０４の容量を、時間とともに複数回にわたって動的に決定するのではなく、所定のタイミングで１回だけ決定してもよい。
【００８３】
なお、制御部１０６が、各論理ページアドレスに対する書き換え頻度の情報を記憶しているものとして説明したが、論理ページアドレス単位（数キロバイト単位）ではなく、論理ブロックアドレス単位（数メガバイト単位）で書き換え頻度の情報を記憶する構成としてもよい。論理ページアドレス単位で書き換え頻度の情報を記憶すると、書き換え頻度の分析の精度が上がり、論理ブロックアドレス単位で書き換え頻度の情報を記憶すると、書き換え頻度を保存するテーブルのサイズを小さくすることができる。
【００８４】
このように、本実施形態によれば、制御部１０６が各論理ページアドレスまたは各論理ブロックアドレスに対する書き換え頻度の情報を記憶していることにより、ＭＬＣメモリ１０２およびＴＬＣメモリ１０４の記憶容量の最適な比率を決定することができる。
【００８５】
また、制御部１０６が各論理ページアドレスまたは各論理ブロックアドレスに対する書き換え頻度の情報を動的に更新することにより、ＭＬＣメモリ１０２およびＴＬＣメモリ１０４の記憶容量の最適な比率を動的に決定することができる。
【００８６】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。
【００８７】
例えば、上記実施形態は、ＭＬＣメモリとＴＬＣメモリを備える半導体記憶装置を例に挙げて説明したが、本発明はこれに限るものではなく、書き込み単位が異なる複数の種類のメモリを備える半導体記憶装置について、本発明を適用可能である。
【符号の説明】
【００８８】
１００  半導体記憶装置
１０２  ＭＬＣメモリ
１０４  ＴＬＣメモリ
１０６  制御部
【図１】
2014225196.tif 000003
【図２】
2014225196.tif 000004
【図３】
2014225196.tif 000005
【図４】
2014225196.tif 000006
【図５】
2014225196.tif 000007
【図６】
2014225196.tif 000008
【図７】
2014225196.tif 000009
【図８】
2014225196.tif 000010
【図９】
2014225196.tif 000011
【図１０】
2014225196.tif 000012
【図１１】
2014225196.tif 000013
【図１２】
2014225196.tif 000014
【図１３】
2014225196.tif 000015
【図１４】
2014225196.tif 000016
【図１５】
2014225196.tif 000017