JP2014225196A - 半導体記憶装置およびその制御方法 - Google Patents
半導体記憶装置およびその制御方法 Download PDFInfo
- Publication number
- JP2014225196A JP2014225196A JP2013105093A JP2013105093A JP2014225196A JP 2014225196 A JP2014225196 A JP 2014225196A JP 2013105093 A JP2013105093 A JP 2013105093A JP 2013105093 A JP2013105093 A JP 2013105093A JP 2014225196 A JP2014225196 A JP 2014225196A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- control unit
- writing
- memory device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Abstract
【課題】特性が異なる複数の種類のメモリを用いて、書き込み速度などの特性を向上させる。
【解決手段】本発明に係る半導体記憶装置は、第1の書き込み単位でデータが書き込まれる第1メモリ102と、第1の書き込み単位より大きい第2の書き込み単位でデータが書き込まれる第2メモリ104と、第1メモリ102および第2メモリ104へのデータの書き込みを制御する制御部106とを備え、制御部106は、第1メモリ102内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別し、フローズンデータを第2の書き込み単位で第2メモリ104に書き込む。
【選択図】図1
【解決手段】本発明に係る半導体記憶装置は、第1の書き込み単位でデータが書き込まれる第1メモリ102と、第1の書き込み単位より大きい第2の書き込み単位でデータが書き込まれる第2メモリ104と、第1メモリ102および第2メモリ104へのデータの書き込みを制御する制御部106とを備え、制御部106は、第1メモリ102内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別し、フローズンデータを第2の書き込み単位で第2メモリ104に書き込む。
【選択図】図1
Description
本発明は半導体記憶装置およびその制御方法に関し、特に、書き込み単位の異なる複数のメモリを備える半導体記憶装置およびその制御方法に関するものである。
近年、ビッグデータを取り扱うデータセンタなどにおいて、高速、低消費電力という特徴を有するNANDフラッシュメモリを採用したSSD(Solid State Drive)が広く用いられてきている。
NANDフラッシュメモリは、通常、マトリックス状に配置された複数のメモリセルから構成されている。メモリセルとしては、従来、1つのメモリセルで1ビットのデータを記憶するSLC(Single Level Cell) NAND、または、1つのメモリセルで2ビットのデータを記憶するMLC(Multi Level Cell) NANDが広く用いられている。
近年、ビットコストの低減などを目的として、1つのメモリセルで3ビットのデータを記憶するTLC(Triple Level Cell) NANDを用いたNANDフラッシュメモリについて、その活用方法が検討されている(例えば、非特許文献1参照)。
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
図15に、MLC NANDとTLC NANDの特性の一例を示す。TLC NANDは、単位セルあたり3ビットのデータを記憶するため、単位セルあたり2ビットのデータを記憶するMLC NANDに比べて、ビットコストを0.66倍(2/3倍)に低減することができる。
しかしながら、TLC NANDは、閾値分布が狭いこと、また、閾値マージンを増やすために書き込み電圧を高くする必要があることなどにより、MLC NANDに比べて下記のような欠点を有する。
・読み出し速度が遅い。
・書き込み速度が遅い。
・消去速度が遅い。
・書き換え回数の上限が少ない。
・読み出し速度が遅い。
・書き込み速度が遅い。
・消去速度が遅い。
・書き換え回数の上限が少ない。
また、TLC NANDは、書き込み単位がブロックであり、書き込み単位がページであるMLC NANDよりも書き込み単位が大きいため、より大きいデータにまとめてから書き込みを行わないと効率的にメモリを活用することができない。通常、1ページは数10キロバイト程度であり、1ブロックは数メガバイト程度である。
TLC NANDには、上記のように、読み出し速度/書き込み速度/消去速度が遅い、また、書き換え回数の上限が少ないなどの欠点があることから、容量を増やすことを目的として、TLC NANDのみを用いた半導体記憶装置とすると、特性の劣化が大きくなるという問題がある。
したがって、かかる点に鑑みてなされた本発明の目的は、特性が異なる複数の種類のメモリを用いて、書き込み速度などの特性を向上させることができる半導体記憶装置およびその制御方法を提供することにある。
上記課題を解決するため、本発明に係る半導体記憶装置は、第1の書き込み単位でデータが書き込まれる第1メモリと、前記第1の書き込み単位より大きい第2の書き込み単位でデータが書き込まれる第2メモリと、前記第1メモリおよび前記第2メモリへのデータの書き込みを制御する制御部とを備え、前記制御部は、前記第1メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別し、前記フローズンデータを前記第2の書き込み単位で前記第2メモリに書き込むことを特徴とする。
また、本発明に係る半導体記憶装置において、前記制御部は、前記第1メモリ内において、前記第2の書き込み単位より大きいデータを記憶できる領域をラウンドロビン方式で選択し、前記領域に前記第2の書き込み単位よりも大きいデータを集めた後、当該集めたデータのうち、所定の回数ラウンドロビン方式で巡回する間に上書き対象としてアクセスされなかったデータを前記フローズンデータとして選別することが好ましい。
また、本発明に係る半導体記憶装置において、前記制御部は、前記第1メモリ内の書き込み可能な領域が所定の閾値より少なくなると、前記フローズンデータの選別を開始することが好ましい。
また、本発明に係る半導体記憶装置において、前記制御部は、前記第1メモリまたは前記第2メモリ内において、書き換え回数の上限に近づいたチップを読み取り専用とすることが好ましい。
また、本発明に係る半導体記憶装置において、前記制御部は、前記第1メモリと前記第2メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて決定することが好ましい。
また、本発明に係る半導体記憶装置において、前記制御部は、前記第1メモリと前記第2メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて動的に決定することが好ましい。
また、上記課題を解決するため、本発明に係る半導体記憶装置の制御方法は、第1の書き込み単位でデータが書き込まれる第1メモリと、当該第1の書き込み単位より大きい第2の書き込み単位でデータが書き込まれる第2メモリとを備える半導体記憶装置の制御方法であって、前記第1メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別する選別ステップと、前記フローズンデータを前記第2の書き込み単位で前記第2メモリに書き込む書き込みステップとを含むことを特徴とする。
本発明によれば、特性が異なる複数の種類のメモリを用いて、書き込み速度などの特性を向上させることができる半導体記憶装置およびその制御方法を提供することができる。
以下、本発明に係る実施形態について、図面を参照して説明する。
図1は、本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。半導体記憶装置100は、第1メモリであるMLCメモリ102、第2メモリであるTLCメモリ104および制御部106を備える。
MLCメモリ102は、MLC NANDをメモリセルとして採用するメモリである。MLCメモリ102においては、各メモリセルは、2ビットのデータを記憶する。また、MLCメモリ102へのデータの書き込み単位は第1の書き込み単位であるページである。
TLCメモリ104は、TLC NANDをメモリセルとして採用するメモリである。TLCメモリ104においては、各メモリセルは、3ビットのデータを記憶する。また、TLCメモリ104へのデータの書き込み単位は第2の書き込み単位であるブロックである。ブロックは複数のページから構成されるため、TLCメモリ104は、書き込み単位がページであるMLCメモリ102よりも書き込み単位が大きい。
制御部106は、半導体記憶装置100の各機能ブロックをはじめとして半導体記憶装置100の全体を制御及び管理する。制御部106は、CPU等の任意の好適なプロセッサ上で実行されるソフトウェアとして構成したり、処理ごとに特化した専用のプロセッサによって構成したりすることもできる。
制御部106は、MLCメモリ102およびTLCメモリ104へのデータの書き込み、MLCメモリ102およびTLCメモリ104からのデータの読み出し、および、MLCメモリ102およびTLCメモリ104からのデータの消去を制御する。
制御部106は、MLCメモリ102内において、所定の期間上書き対象としてアクセスされていないデータ(以下、「フローズンデータ」という)を選別し、TLCメモリ104のブロック単位でTLCメモリ104へコピーする。このように、MLCメモリ102内のフローズンデータを選別してTLCメモリ104にコピーすることにより、本実施形態に係る半導体記憶装置100は、制御部106がTLCメモリ104にアクセスする頻度を低減することができる。また、MLCメモリ102内のフローズンデータが減ることにより、ガーベジコレクションなどの際における無駄なコピーを低減することができる。制御部106が、MLCメモリ102内のフローズンデータをTLCメモリ104にコピーする処理の詳細については後述する。
図2は、本発明の一実施形態に係る半導体記憶装置におけるTLCメモリの一ブロックの構成の一例を示す図である。TLCメモリ104は、各メモリセルが3ビット分のデータを格納し、1本のワード線が3ページに対応する。図2に示す例においては、TLCメモリ104の1ブロックにおいて、ワード線が64本(WL0〜WL63)あるため、TLCメモリ104は、1ブロック中に192ページ(ページ#0〜#191)を有する。
[TLCメモリへのコピー]
図3を参照して、制御部106が、MLCメモリ102内のフローズンデータを選別してTLCメモリ104へコピーする処理を説明する。
図3を参照して、制御部106が、MLCメモリ102内のフローズンデータを選別してTLCメモリ104へコピーする処理を説明する。
制御部106は、MLCメモリ102内の書き込み可能な領域を監視する。制御部106は、例えば、空きブロックの数を監視し、空きブロックの数が所定の閾値より少なくなったと判定すると、ガーベジコレクションを開始する。制御部106は、ガーベジコレクションを開始すると、ラウンドロビン方式によりMLCメモリ102内のブロックを例えば2つ選択する。ここで、MLCメモリ102内で選択されるブロックの数を2つとすると、TLCメモリ104内の1ブロックが記憶するデータ量がMLCメモリ102内の1ブロックが記憶するデータ量の1.5倍であるため、MLCメモリ102の2ブロック分の領域のデータで、TLCメモリ104内の1ブロック分のデータより大きくなる。なお、制御部106が選択するブロックの数は3つ以上であってもよい。ラウンドロビン方式については、図4の説明において後述する。
制御部106は、選択した2つのブロック(以下、「選択ブロック」という)に、TLCメモリ104の1ブロック分以上のデータが含まれているか否かを判定する。制御部106は、選択ブロックに、TLCメモリ104の1ブロック分以上のデータが含まれていないと判定した場合は、図3(a)に示すように、選択ブロック(図3(a)の例では、ブロック#0および#1)に、MLCメモリ102内の他のブロックから有効ページをコピーして集める。その後、制御部106は、選択ブロックについて、NRDS=1と設定する。ここで、NRDSとはラウンドロビンの巡回数であり、初期値は0が設定されている。制御部106は、選択ブロックに有効ページを集める際に、NRDS=1と設定し、その後、ラウンドロビン方式で巡回して、再度選択ブロックを選択する度にNRDSを1ずつ増やす。
図3(b)は、図3(a)にて有効ページが集められた選択ブロックがラウンドロビンで一巡して再度選択された場合の様子の一例を示す図である。図3(b)に示す例においては、選択ブロックにTLCメモリ104の1ブロック分以上のデータが含まれている。図3(b)において有効ページとして残っているページは、ラウンドロビン方式で一巡する間に上書きされなかったために無効ページにならなかったページである。したがって、制御部106は、選択ブロックに残っている有効ページに記憶されているデータをフローズンデータであると判定して選別し、TLCメモリ104の1ブロック分に相当する有効ページをTLCメモリ104にコピーする。また、制御部106は、TLCメモリ104の1ブロック分に収まらず、TLCメモリ104にコピーできなかった有効ページを、MLCメモリ102内の他のブロックにコピーする。その後、制御部106は、選択ブロックのデータを消去して空きページを作成し、選択ブロックを書き込み対象ブロックとして使えるようにする。
なお、図3(b)の説明においては、制御部106は、選択ブロックに有効ページを集めた後、ラウンドロビン方式で一巡した段階で、TLCメモリ104へのコピーを実行したが、さらに長い期間待ってからTLCメモリ104へコピーするようにすることもできる。例えば、制御部106は、初期値としてNRDSMAXを設定し、選択ブロックのデータをTLCメモリ104にコピーする条件を、選択ブロックにTLCメモリ104の1ブロック分以上のデータが含まれている、かつ、NRDS≧NRDSMAXとしてもよい。例えば、NRDSMAX=2と設定すると、制御部106は、ラウンドロビンの一巡目ではTLCメモリ104へのコピーを実行せず、ラウンドロビンの二巡目に、TLCメモリ104の1ブロック分の有効ページをTLCメモリ104にコピーする。
なお、制御部106は、TLCメモリ104に記憶したデータに対して、上書き要求が発生した場合は、上書きされたデータと、上書きされていない領域のデータを合わせたページのデータをMLCメモリ102にコピーする。
図4は、MLCメモリ102内において、ラウンドロビン方式によりガーベジコレクションの対象となるブロックを選択する順番の一例を示す図である。ラウンドロビン方式とは、一般に複数のブロックを順番に巡回して選択する方式である。図4に示す例においては、MLCメモリ102は128個のブロック(ブロック#0〜ブロック#127)を有し、制御部106は、ブロック#0からブロック#127までを順番に選択対象ブロックとして選択する。制御部106は、選択対象ブロックがブロック#127に達すると、また、ブロック#0に戻って選択する。
また、図4に示すように、制御部106は、ブロック内でのページ選択の際は、例えば、ページ#0〜ページ#127の順番でページを選択する。
図5および図6に示すフローチャートを参照しながら、本発明の一実施形態に係る半導体記憶装置の処理を説明する。
制御部106は、MLCメモリ102の空きブロックが十分であるかを判定する(ステップS101)。
ステップS101においてYesと判定した場合は、制御部106は、ガーベジコレクションを開始しない(ステップS102)。
ステップS101においてNoと判定した場合は、制御部106は、ガーベジコレクションを開始する(ステップS103)。
制御部106は、MLCメモリ102の中から2つのブロックを選択ブロックとして選択する(ステップS104)。
制御部106は、選択ブロック内の有効ページ数が、TLCメモリ104の1ブロックあたりのページ数以上であるか否かを判定する(ステップS105)。
ステップS105においてYesと判定した場合は、制御部106は、さらに、NRDSがNRDSMAX以上であるか否かを判定する(ステップS106)。
ステップS105においてNoと判定した場合は、制御部106は、有効ページの数がMLCメモリ102の2ブロック分のページ数以上になるまで有効ページを集める(ステップS201)。
続いて、制御部106は、集めた有効ページをMLCメモリ102内の選択ブロックにコピーする(ステップS202)。
制御部106は、MLCメモリ102内のブロックで、2つのブロックに有効ページをコピーした結果、有効ページがなくなったブロックを消去する(ステップS203)。
制御部106は、ステップS203において消去したMLCメモリ102内のブロックのNRDSを0に設定する。また、制御部106は、有効ページが集められたMLCメモリ102内の選択ブロックのNRDSを1に設定する(ステップS204)。
ステップS106においてNoと判定した場合は、制御部106は、有効ページが集められたMLCメモリ102内の選択ブロックのNRDSを1つ増やす(ステップS301)。
続いて、制御部106は、ガーベジコレクションの対象となる次のブロックを選択する(ステップS302)。
ステップS106においてYesと判定した場合は、制御部106は、有効ページが集められたMLCメモリ102内の2つのブロックから有効ページを読み出す(ステップS401)。
続いて、制御部106は、MLCメモリ102から読み出した有効ページをTLCメモリ104にコピーする(ステップS402)。
制御部106は、MLCメモリ102内の2つのブロックに集められた有効ページのうち、TLCメモリ104にコピーできなかった分の有効ページを、MLCメモリ102内の書き込み対象となっているブロックの空きページに書き込む(ステップS403)。
制御部106は、MLCメモリ102内の選択されていた2つのブロックを消去する(ステップS404)。
制御部106は、ステップS404で消去したブロックのNRDSを0に設定する(ステップS405)。
図7は、本発明の一実施形態に係る半導体記憶装置の特性をシミュレーションした際に使用したデータを示す図である。図7は、横軸が論理アドレス、縦軸が書き換え頻度を示す。図7に示すように、論理アドレスによって書き換え頻度は大きく異なる。書き換え頻度が高いデータはホットデータ、書き換え頻度が低いデータはコールドデータであり、特に書き換えがほとんど発生していないデータはフローズンデータである。
図8は、本発明の一実施形態に係る半導体記憶装置のシミュレーション結果を示す図である。
図8(a)は、左側の縦軸が書き込みスループットであり、右側の縦軸が書き込みエネルギーである。白の棒グラフが左側の縦軸、すなわち書き込みスループットに対応し、黒の棒グラフが右側の縦軸、すなわち書き込みエネルギーに対応する。
図8(a)を参照すると、本発明の一実施形態に係る半導体記憶装置100において、NRDSMAXを1に設定した場合に、書き込みスループット、書き込みエネルギーともに従来技術からの改善度が大きい。ここで、従来技術とは、MLC NANDのみを用いたメモリ構成である。NRDSMAXを1に設定した場合、従来技術に比べて、書き込みスループットが45%向上し、書き込みエネルギーが25%低減するという結果が得られた。
図8(b)は、左側の縦軸がMLCメモリの書き換え回数であり、右側の縦軸が(TLCメモリの書き換え回数)/(MLCメモリの書き換え回数)である。白の棒グラフが左側の縦軸、すなわちMLCメモリの書き換え回数に対応し、黒の棒グラフが右側の縦軸、すなわち(TLCメモリの書き換え回数)/(MLCメモリの書き換え回数)に対応する。
図8(b)を参照すると、図8(a)において最適な条件であったNRDSMAX=1の場合において、MLCメモリの書き換え回数は従来技術から3.6%の増加と、ほとんど増えていない。また、NRDSMAX=1の場合における(TLCメモリの書き換え回数)/(MLCメモリの書き換え回数)は7.9%であるが、これは、図15に示すように、TLC NANDの書き換え回数の上限がMLC NANDの書き換え回数の上限の1/10程度であることを考慮すると、好ましい比率であるといえる。
図9は、本発明の一実施形態に係る半導体記憶装置において、TLCメモリの割合に対する依存性をシミュレーションした結果を示す図である。
図9(a)は、左側の縦軸が書き込みスループットであり、右側の縦軸が書き込みエネルギーである。白丸が左側の縦軸、すなわち書き込みスループットに対応し、黒四角が右側の縦軸、すなわち書き込みエネルギーに対応する。
図9(a)を参照すると、本発明の一実施形態に係る半導体記憶装置100において、TLCメモリの割合を50%に設定した場合が、書き込みスループット、書き込みエネルギーともに最適である。
図9(b)は、左側の縦軸がMLCメモリの書き換え回数であり、右側の縦軸が(TLCメモリの書き換え回数)/(MLCメモリの書き換え回数)である。白丸が左側の縦軸、すなわちMLCメモリの書き換え回数に対応し、黒四角が右側の縦軸、すなわち(TLCメモリの書き換え回数)/(MLCメモリの書き換え回数)に対応する。
図9(b)を参照すると、図9(a)において最適な条件であったTLCメモリの割合が50%の場合において、MLCメモリの書き換え回数は、TLCメモリの割合が0%である場合に比べて、ほとんど上昇していない。また、TLCメモリの割合が50%の場合において、(TLCメモリの書き換え回数)/(MLCメモリの書き換え回数)は8%程度であり、これは、図15に示すように、TLC NANDの書き換え回数の上限がMLC NANDの書き換え回数の上限の1/10程度であることを考慮すると、好ましい比率であるといえる。
このように、本実施形態によれば、制御部106がMLC102内のフローズンデータを選別してTLCメモリ104にコピーすることにより、書き込み速度が遅いTLCメモリ104へのアクセス頻度を抑え、また、MLCメモリ102内においてガーベジコレクションの際にフローズンデータを無駄にコピーする回数を低減することができるため、半導体記憶装置全体としての書き込みスループットを向上させることができる。
また、制御部106がラウンドロビン方式を用いてフローズンデータを選別することにより、効率的にフローズンデータを選別することができる。
[チップの交換]
図10に示すように、MLCメモリ102およびTLCメモリ104は、複数の交換可能なチップからなる構成とすることができる。1つのチップは、複数のブロックを含む。
図10に示すように、MLCメモリ102およびTLCメモリ104は、複数の交換可能なチップからなる構成とすることができる。1つのチップは、複数のブロックを含む。
MLC NANDおよびTLC NANDは書き換え回数に上限があるため、書き換え回数が上限に近づいたブロックを含むチップは、書き換え回数の上限に達する前に新たなチップに交換する必要がある。
従来は、書き換え回数の上限に近づいたチップを交換する際、チップ内の有効ページに記憶されているデータを全て他のチップ内の空きページにコピーしてからチップを交換していた。そのため、チップ内の有効ページを全てコピーするために、数10分程度もの時間がかかる場合があった。この際、コピー中は他の操作を受け付けることができないため、チップ交換時は数10分程度もの長時間において動作を停止しなければならない場合があるという問題があった。
図11を参照して、本発明の一実施形態に係るチップ交換の手順を説明する。図11は、例えば、MLCメモリ102内のチップ#0が書き換え回数の上限に近づいた場合の例である。
図11(a)に示すように、制御部106は、MLCメモリ102内のチップ#0が書き換え回数の上限に近づくと、チップ#0を読み取り専用(Read Only)に設定する。
チップ#0内のページに対して上書きすることができないため、図11(b)に示すように、チップ#0内のページに対して上書き処理が発生すると、他のチップ(例えばチップ#1)内の空きページに対して、データがコピーされる。
また、制御部106は、ラウンドロビン方式でガーベジコレクションの対象となるブロックを選択するため、ラウンドロビン方式で一巡する間に、チップ#0内のブロックにもガーベジコレクションの対象となる順番がまわってくる。チップ#0内のブロックは、ガーベジコレクションの対象となった際に、当該ブロック内の有効ページが他のブロックにコピーされるため、当該ブロック内には無効ページのみが残る。また、チップ#0は読み取り専用に設定されているため、チップ#0内のブロックは、ガーベジコレクション後にデータが消去されて空きページが生成されたり、空きページに他のチップのページがコピーされたりすることはない。
その結果、図11(c)に示すように、MLCメモリ102内の読み取り専用に設定されたチップ#0には、時間の経過とともに無効ページのみが残るようになり、チップ#0を交換する際に、チップ#0内の有効ページを他のチップにコピーする必要がなくなる。
このように、本実施形態によれば、MLCメモリ102内の書き換え回数が上限に近づいたチップを読み取り専用に設定することにより、チップ交換時期に達する前に、当該チップ内のページを全て無効ページにすることができ、チップ交換時における有効ページのコピーにかかる時間を低減することができる。その結果、チップ交換の際に動作を停止する時間を短くすることができる。
なお、MLCメモリ102を複数のチップで構成する際は、複数のチップが同時に書き換え回数の上限に達することがないように、書き換え回数の上限に達するまでの時間が異なるチップでMLCメモリ102を構成しておくことが好ましい。
また、MLCメモリ102を例に挙げてチップ交換の手順を説明したが、TLCメモリ104についても同様の方法を用いてチップ交換をすることができる。
[メモリ構成の最適化]
図12は、各論理ページアドレスにおける書き換え頻度の一例を示す図である。図12に示すように、書き換え頻度は論理ページアドレスによって大きく異なる。なお図12に示すデータは図7に示したデータと同じデータである。
図12は、各論理ページアドレスにおける書き換え頻度の一例を示す図である。図12に示すように、書き換え頻度は論理ページアドレスによって大きく異なる。なお図12に示すデータは図7に示したデータと同じデータである。
制御部106は、図12に示すような各論理ページアドレスに対する書き換え頻度の情報を記憶している。制御部106は、書き換え頻度が多い領域21にある論理ページアドレスの数からMLCメモリ102の容量を決定し、書き換え頻度が少ない領域22にある論理ページアドレスの数からTLCメモリ104の容量を決定することができる。
図13は、各論理ページアドレスにおける書き換え頻度の情報を更新する様子を示す図である。制御部106は、論理ページアドレスに書き換えが発生すると情報を更新する。例えば、制御部106が図13(a)に示す情報を記憶している状態で、論理ページアドレス250に書き換えが発生すると、図13(b)に示すように、論理ページアドレス250における書き換え頻度の情報を1240から1241に更新する。
図14は、制御部106が適切なメモリ容量を時間の経過とともに複数回にわたって動的に決定する様子を示す図である。図14に示す例においては、制御部106は、時刻t0、t1およびt2において、論理ページアドレスに対する書き換え頻度の状態から、適切なMLCメモリ102の容量およびTLCメモリ104の容量を決定する。
例えば、図14に示す例においては、制御部106は、時刻t0においては、MLCメモリ102の容量/TLCメモリ104の容量が6GB/2GB、時刻t1においては、MLCメモリ102の容量/TLCメモリ104の容量が9GB/10GB、時刻t2においては、MLCメモリ102の容量/TLCメモリ104の容量が16GB/6GBが最適であると動的に決定する。なお、制御部106は、適切なMLCメモリ102の容量およびTLCメモリ104の容量を、時間とともに複数回にわたって動的に決定するのではなく、所定のタイミングで1回だけ決定してもよい。
なお、制御部106が、各論理ページアドレスに対する書き換え頻度の情報を記憶しているものとして説明したが、論理ページアドレス単位(数キロバイト単位)ではなく、論理ブロックアドレス単位(数メガバイト単位)で書き換え頻度の情報を記憶する構成としてもよい。論理ページアドレス単位で書き換え頻度の情報を記憶すると、書き換え頻度の分析の精度が上がり、論理ブロックアドレス単位で書き換え頻度の情報を記憶すると、書き換え頻度を保存するテーブルのサイズを小さくすることができる。
このように、本実施形態によれば、制御部106が各論理ページアドレスまたは各論理ブロックアドレスに対する書き換え頻度の情報を記憶していることにより、MLCメモリ102およびTLCメモリ104の記憶容量の最適な比率を決定することができる。
また、制御部106が各論理ページアドレスまたは各論理ブロックアドレスに対する書き換え頻度の情報を動的に更新することにより、MLCメモリ102およびTLCメモリ104の記憶容量の最適な比率を動的に決定することができる。
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。
例えば、上記実施形態は、MLCメモリとTLCメモリを備える半導体記憶装置を例に挙げて説明したが、本発明はこれに限るものではなく、書き込み単位が異なる複数の種類のメモリを備える半導体記憶装置について、本発明を適用可能である。
100 半導体記憶装置
102 MLCメモリ
104 TLCメモリ
106 制御部
102 MLCメモリ
104 TLCメモリ
106 制御部
Claims (7)
- 第1の書き込み単位でデータが書き込まれる第1メモリと、
前記第1の書き込み単位より大きい第2の書き込み単位でデータが書き込まれる第2メモリと、
前記第1メモリおよび前記第2メモリへのデータの書き込みを制御する制御部とを備え、
前記制御部は、
前記第1メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別し、
前記フローズンデータを前記第2の書き込み単位で前記第2メモリに書き込むことを特徴とする半導体記憶装置。 - 請求項1に記載の半導体記憶装置において、前記制御部は、
前記第1メモリ内において、前記第2の書き込み単位より大きいデータを記憶できる領域をラウンドロビン方式で選択し、
前記領域に前記第2の書き込み単位よりも大きいデータを集めた後、当該集めたデータのうち、所定の回数ラウンドロビン方式で巡回する間に上書き対象としてアクセスされなかったデータを前記フローズンデータとして選別することを特徴とする半導体記憶装置。 - 請求項1または2に記載の半導体記憶装置において、前記制御部は、前記第1メモリ内の書き込み可能な領域が所定の閾値より少なくなると、前記フローズンデータの選別を開始することを特徴とする半導体記憶装置。
- 請求項1に記載の半導体記憶装置において、前記制御部は、前記第1メモリまたは前記第2メモリ内において、書き換え回数の上限に近づいたチップを読み取り専用とすることを特徴とする半導体記憶装置。
- 請求項1に記載の半導体記憶装置において、前記制御部は、前記第1メモリと前記第2メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて決定することを特徴とする半導体記憶装置。
- 請求項5に記載の半導体記憶装置において、前記制御部は、前記第1メモリと前記第2メモリとの記憶容量の最適な比率を、各論理ページアドレスまたは各論理ブロックアドレスにおける書き換え頻度に基づいて動的に決定することを特徴とする半導体記憶装置。
- 第1の書き込み単位でデータが書き込まれる第1メモリと、当該第1の書き込み単位より大きい第2の書き込み単位でデータが書き込まれる第2メモリとを備える半導体記憶装置の制御方法であって、
前記第1メモリ内において所定の期間上書き対象としてアクセスされていないデータであるフローズンデータを選別する選別ステップと、
前記フローズンデータを前記第2の書き込み単位で前記第2メモリに書き込む書き込みステップとを含むことを特徴とする制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013105093A JP2014225196A (ja) | 2013-05-17 | 2013-05-17 | 半導体記憶装置およびその制御方法 |
PCT/JP2014/002451 WO2014185038A1 (ja) | 2013-05-17 | 2014-05-08 | 半導体記憶装置およびその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013105093A JP2014225196A (ja) | 2013-05-17 | 2013-05-17 | 半導体記憶装置およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014225196A true JP2014225196A (ja) | 2014-12-04 |
Family
ID=51898030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013105093A Pending JP2014225196A (ja) | 2013-05-17 | 2013-05-17 | 半導体記憶装置およびその制御方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2014225196A (ja) |
WO (1) | WO2014185038A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10275172B2 (en) | 2016-07-27 | 2019-04-30 | Samsung Electronics Co., Ltd. | Solid state drive devices and methods of operating thereof |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6907668B2 (ja) * | 2017-04-11 | 2021-07-21 | 日本電気株式会社 | 情報処理装置、情報処理方法、及びプログラム |
CN113127383B (zh) * | 2021-04-21 | 2023-11-10 | 广州众诺微电子有限公司 | 一种芯片改写方法、装置和设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101632068B (zh) * | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
JP2011022933A (ja) * | 2009-07-17 | 2011-02-03 | Toshiba Corp | メモリ管理装置を含む情報処理装置及びメモリ管理方法 |
JP2010198407A (ja) * | 2009-02-26 | 2010-09-09 | Sony Corp | 情報処理装置、およびデータ記録制御方法、並びにプログラム |
JP5002719B1 (ja) * | 2011-03-10 | 2012-08-15 | 株式会社東芝 | 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法 |
-
2013
- 2013-05-17 JP JP2013105093A patent/JP2014225196A/ja active Pending
-
2014
- 2014-05-08 WO PCT/JP2014/002451 patent/WO2014185038A1/ja active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10275172B2 (en) | 2016-07-27 | 2019-04-30 | Samsung Electronics Co., Ltd. | Solid state drive devices and methods of operating thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2014185038A1 (ja) | 2014-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10209902B1 (en) | Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data | |
US10761780B2 (en) | Memory system | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
KR101551584B1 (ko) | 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들 | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US10949355B2 (en) | Methods and apparatus for workload based dynamic cache control in SSD | |
CN108038026B (zh) | 一种基于闪存的数据快速恢复方法与系统 | |
US20140229654A1 (en) | Garbage Collection with Demotion of Valid Data to a Lower Memory Tier | |
US20090300269A1 (en) | Hybrid memory management | |
US20100030948A1 (en) | Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system | |
US8225050B2 (en) | Memory storage device and a control method thereof | |
Agarwal et al. | A closed-form expression for write amplification in nand flash | |
TW201349099A (zh) | 資料儲存裝置和快閃記憶體之區塊管理方法 | |
JP2009282989A (ja) | フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング | |
US10168940B2 (en) | Data storage using SLC and TLC memory banks and data maintenance method thereof | |
JP2009099149A (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
US20140328127A1 (en) | Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
US8892816B1 (en) | System and method for writing data to a memory | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
US8261013B2 (en) | Method for even utilization of a plurality of flash memory chips | |
KR20160139864A (ko) | 비휘발성 메모리 시스템 | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
WO2014185038A1 (ja) | 半導体記憶装置およびその制御方法 | |
US9304906B2 (en) | Memory system, controller and control method of memory |