JP2015222590A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2015222590A JP2015222590A JP2015147121A JP2015147121A JP2015222590A JP 2015222590 A JP2015222590 A JP 2015222590A JP 2015147121 A JP2015147121 A JP 2015147121A JP 2015147121 A JP2015147121 A JP 2015147121A JP 2015222590 A JP2015222590 A JP 2015222590A
- Authority
- JP
- Japan
- Prior art keywords
- area
- section
- priority
- memory system
- partition
- 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
Landscapes
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】コンピュータシステムの起動が出来なくなるような故障の発生を低減するコンピュータシステムの運用を可能とすること。
【解決手段】本発明の一つの実施形態によれば、メモリシステムは、物理記憶領域を有する不揮発性メモリと、前記不揮発性メモリとホストとの間のデータ転送を行うコントローラと、を備えている。前記コントローラは、区分管理部と、ウェアレベリング部とを備えている。前記区分管理部は、前記物理記憶領域を第1の区分と1以上の第2の区分とを含む複数の区分に分割する。前記ウェアレベリング部は、前記第1の区分にはウェアレベリングを実行せず、前記第2の区分には区分毎に独立してウェアレベリングを実行する。ここで、前記区分管理部は、前記ホストからの領域拡張要求に応じて区分の拡張を行う。
【選択図】図3
【解決手段】本発明の一つの実施形態によれば、メモリシステムは、物理記憶領域を有する不揮発性メモリと、前記不揮発性メモリとホストとの間のデータ転送を行うコントローラと、を備えている。前記コントローラは、区分管理部と、ウェアレベリング部とを備えている。前記区分管理部は、前記物理記憶領域を第1の区分と1以上の第2の区分とを含む複数の区分に分割する。前記ウェアレベリング部は、前記第1の区分にはウェアレベリングを実行せず、前記第2の区分には区分毎に独立してウェアレベリングを実行する。ここで、前記区分管理部は、前記ホストからの領域拡張要求に応じて区分の拡張を行う。
【選択図】図3
Description
本発明の実施形態は、メモリシステム、コンピュータシステム、およびメモリ管理方法に関する。
パーソナルコンピュータ(PC)などのコンピュータシステムに用いられるメモリシステムとして、NAND型のメモリセルを備えるメモリチップを搭載したSSD(Solid State Drive)が注目されている。SSDは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
本発明の一つの実施形態は、コンピュータシステムの起動が出来なくなるような故障の発生を低減する運用を可能とするメモリシステム、コンピュータシステム、およびメモリ管理方法を提供することを目的とする。
本発明の一つの実施形態によれば、本発明の一つの実施形態によれば、メモリシステムは、物理記憶領域を有する不揮発性メモリと、前記不揮発性メモリとホストとの間のデータ転送を行うコントローラと、を備えている。前記コントローラは、区分管理部と、移動部とを備えている。前記区分管理部は、夫々複数のブロックを備える2つの区分を前記物理記憶領域に設定する。前記移動部は、データの区分内の移動処理を前記設定された区分毎に独立に実行する。
SSDに使用されているセル(メモリセルトランジスタ、メモリセル)は、データの書き換え回数に上限を有する。このため、1つの箇所に書き換えが集中するとSSDの寿命が短くなってしまう。これを防止するために、ウェアレベリング(Wear Leveling)が実行される。ウェアレベリングとは、書き換え回数が多いセルから書き換え回数が少ないセルへデータを移動させて全てのセルの書き換え回数を均一化する技術である。
ここで、オペレーティングシステム(OS)の様にコンピュータシステムの運用に欠かせないシステムデータ等が書き込まれているセルが故障すると、コンピュータシステムの起動が出来なくなるという致命的な事態が発生する。即ち、データをSSDから取り出すことができなくなる。システムデータとユーザデータ(アプリケーションプログラムや、ユーザが作成したデータ)とが区別されることなくウェアレベリングが実行されると、システムデータが損失する確率とユーザデータが損失する確率とが等しくなる。SSDが寿命を迎えたときに最初にシステムデータが損失すると、上述の致命的な事態が発生する。
システムデータは一般に、ユーザデータに比べて書き換え頻度が小さい。本発明の実施形態によれば、システムデータを格納するための記憶領域を特別に確保するとともにシステムデータ用の記憶領域にはウェアレベリングを実行しないことで、当該記憶領域の書き換え回数の増加速度が他の記憶領域よりも小さくなるようにする。これにより、システムデータ用の記憶領域の書き換え回数の増加速度を他の記憶領域よりも小さくすることができるので、コンピュータシステムの起動が出来なくなるような故障の発生を抑制することが可能となる。また、本発明の実施形態によれば、ホストはSSDに所定の要求を送信することでシステムデータを格納する記憶領域を拡張することができる。
以下に添付図面を参照して、実施形態にかかるメモリシステム、コンピュータシステム、およびメモリ管理方法を詳細に説明する。ここでは、実施形態のメモリシステムがSSDに適用された場合について説明するが、実施形態のメモリシステムの適用範囲はSSDだけに限定されない。また、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、SSDの構成を示す図である。SSD100は中央演算装置(CPU)などのホスト200とともに実施形態のコンピュータシステムを構成する。SSD100は、ホスト200の外部記憶装置として機能する。SSD100がホスト200から受信する読み出し要求や書き込み要求は、LBA(Logical Block Addressing)で定義されたアクセス対象の先頭アドレスとアクセス対象の領域の範囲を示すセクタサイズとが含まれている。なお、SSD100とホスト200との間の通信インタフェースにはSATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(PCI Express)など、任意の通信インタフェース規格を採用することが可能である。以降、LBAで記述されたアドレスを論理アドレスということとする。
図1は、SSDの構成を示す図である。SSD100は中央演算装置(CPU)などのホスト200とともに実施形態のコンピュータシステムを構成する。SSD100は、ホスト200の外部記憶装置として機能する。SSD100がホスト200から受信する読み出し要求や書き込み要求は、LBA(Logical Block Addressing)で定義されたアクセス対象の先頭アドレスとアクセス対象の領域の範囲を示すセクタサイズとが含まれている。なお、SSD100とホスト200との間の通信インタフェースにはSATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(PCI Express)など、任意の通信インタフェース規格を採用することが可能である。以降、LBAで記述されたアドレスを論理アドレスということとする。
SSD100は、NANDメモリ1と、ホスト200とNANDメモリ1との間のデータ転送を実行するコントローラ2とを備える。NANDメモリ1は、夫々メモリセルアレイ30を備える1以上のメモリチップ3によって構成される。メモリセルアレイ30は、消去の単位となるブロックを複数備えて構成される。
図2は、メモリセルアレイ30に含まれる1個のブロックの構成例を示す回路図である。図示するように、各ブロックは、X方向に沿って順に配列された(m+1)個のNANDストリングを備えている(mは、0以上の整数)。(m+1)個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLpに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
各メモリセルトランジスタMTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(metal oxide semiconductor field effect transistor)から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の数に応じてしきい値電圧が変化し、このしきい値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMTは、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
各NANDストリングにおいて、(n+1)個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0〜WLqにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WLqに接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。
ワード線WL0〜WLqは、ブロック内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続される(m+1)個のメモリセルトランジスタMTは1ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。
また、ビット線BL0〜BLpは、ブロック間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
なお、NANDメモリ1の記憶領域を構成するメモリセルアレイは、1つのメモリセルに2ビット以上を記憶する多値メモリ(MLC: Multi Level Cell)であってもよいし、1つのメモリセルに1ビットを記憶する二値メモリ(SLC: Single Level Cell)であってもよい。
メモリチップ3が夫々備えるメモリセルアレイ30は、NANDメモリ1の物理記憶領域を構成する。本発明の第1の実施形態によれば、NANDメモリ1が備える物理記憶領域は、コントローラ2によって、システムデータが格納されることが想定された記憶領域と他の記憶領域とに分割されて管理される。
図3は、NANDメモリ1のメモリ構成を説明する図である。NANDメモリ1の物理記憶領域は、第1区分31a、第2区分31bおよび第3区分31cに分割されている。第1区分31aに対してウェアレベリングが実行されず、第2区分31bおよび第3区分31cに対してウェアレベリングが実行される。
第1区分31aは、ホスト200がシステムデータを書き込む領域である。第2区分31bは、ホスト200がユーザデータのうちの書き換え頻度が比較的に小さいデータ(例えばアプリケーションプログラム、アプリケーションプログラムのための認証コードデータなど)を書き込む領域である。第3区分31cは、ユーザデータのうちの書き換え頻度が比較的に大きいデータ(例えばユーザが作成したデータ、動画ファイル、画像ファイルなど)を書き込む領域である。NANDメモリ1の記憶領域をどのように分割するかはホスト200がコンフィギュレーション時に任意に設定することができる。以降、第1区分31a、第2区分31bおよび第3区分31cを総称したり任意の1つを示したりするときには区分31と表記することがある。
夫々の区分は、LBAが割り当てられている領域と、冗長な領域を備えている。即ち、第1区分31aは、論理記憶領域32aおよび冗長領域33aを、第2区分31bは、論理記憶領域32bおよび冗長領域33bを、第3区分31cは、論理記憶領域32cおよび冗長領域33cを、夫々備えている。
論理記憶領域32aは、例えばCsのサイズを有しており、0〜Cs−1の範囲の論理アドレスが割り当てられている。論理記憶領域32bは、例えばCu1のサイズを有しており、Cs〜Cs+Cu1−1の範囲の論理アドレスが割り当てられている。論理記憶領域32cは、例えばCu2のサイズを有しており、Cs+Cu1〜Cs+Cu1+Cu2−1の範囲の論理アドレスが割り当てられている。論理記憶領域32a〜32cは、ホスト200が論理アドレスを用いてアクセスすることができる。
冗長領域33a〜33cは、夫々、1以上のフリーブロック(LBAが割り当てられていないブロック)により構成される。冗長領域33a〜33cは、夫々、同一区分内のガベージコレクション、同一区分内のバッドブロックの救済などに用いられる。ガベージコレクションとは、複数のブロックから有効データだけを集め、集めた有効データを他のブロックにコピーした上で、古いブロックの内容を消去する処理をいう。例えば、ガベージコレクションによれば、論理記憶領域32aから有効データが集められて、冗長領域33aとして管理されているフリーブロックにコピーされる。コピー先のブロックは論理記憶領域32aに組み入れられ、コピー元のブロックは内容が消去されて冗長領域33aに組み入れられる。このように、区分31の夫々に属するセルは、ガベージコレクションにより、論理アドレスが割り当てられたり、論理アドレスの割り当てが無効になったりする。また、区分31の夫々に属するセルは、自身が属する区分31に割り当てられた範囲で論理アドレスが変動したりする。
なお、第2区分31bおよび第3区分31cの夫々に属するセルは、ウェアレベリングによっても夫々の区分に割り当てられた範囲で論理アドレスが変動し得る。
冗長領域33a〜33cの夫々は、論理記憶領域32a〜32cのうちの同一の区分31に属する論理記憶領域のサイズおよび自身が属する区分31の書き換え頻度(Write Amplitude)に応じたサイズを有する。ここでは、冗長領域33aは、FBsのサイズを有し、冗長領域33bは、FBu1のサイズを有し、冗長領域33cは、FBu2のサイズを有するものとして表記している。なお、区分31の書き換え頻度は、設計者により予め与えられるようにしてもよいし、ホスト200からのコマンドにより指定されるようにしてもよい。
夫々の区分31は、ホスト200からの要求により拡張可能である。図4は、第1区分31aが拡張された場合のNANDメモリ1のメモリ構成を説明する図である。本図によれば、図3においては第2区分31bの一部として管理されていた領域が第1区分31aに組み入れられている。
なお、以降、論理記憶領域32a〜32cの任意の1つを論理記憶領域32と表記することがある。また、冗長領域33a〜33cの任意の1つを冗長領域33と表記することがある。
図5は、コントローラ2の構成を説明する図である。コントローラ2は、演算装置21と記憶装置22とを備えている。演算装置21は例えばMPU(Micro Processing Unit)である。記憶装置22は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)またはそれらの組み合わせにより構成される。
記憶装置22には、LBAで記述された論理アドレスとNANDメモリ1の物理アドレスとの対応付けを記録した論物変換テーブル26と、夫々の区分を特定する情報を記述した区分管理情報27とが格納される。ここでは、一例として、区分管理情報27には、区分毎にアドレス(論理アドレスおよび物理アドレス)の範囲が記述されているものとする。
演算装置21は、所定のファームウェアプログラムを実行することにより、リード/ライト部23、ウェアレベリング部24、区分管理部25として機能する。ファームウェアの格納場所は特に限定されない。記憶装置22が不揮発性メモリにより構成される場合にはファームウェアは記憶装置22に予め格納されるようにしてよい。記憶装置22が揮発性メモリにより構成される場合にはNANDメモリ1の所定の場所に予め格納されるようにしてよい。
なお、演算装置21が備える構成要素のうちの一部または全部をハードウェア回路で構成してもよい。
区分管理部25は、ホスト200からの領域作成要求に基づいてNANDメモリ1の物理記憶領域に区分を生成する(分割する)。特に、区分管理部25は、NANDメモリ1の物理記憶領域を、ウェアレベリングが実行されない区分と、ウェアレベリングが実行される1以上の区分と、を含む複数の区分に分割する。領域作成要求は、論理アドレスで記述された範囲の指定と優先度の指定とを含んでいる。区分管理部25は、指定されたアドレス範囲を指定された優先度と対応付けて区分管理情報27に登録する。
また、区分管理部25は、ホスト200からの領域拡張要求に応じて区分の拡張を行う。
なお、優先度は、区分を特定するための情報として使用される。例えば、ホスト200は、区分31の何れかを拡張する要求(領域拡張要求)を発行する際には、優先度を用いて拡張対象の区分を指定する。なお、ここでは、最も高い優先度が指定された区分を第1区分31a、最も高い優先度から2番目の優先度が指定された区分を第2区分31b、最も高い優先度から3番目の優先度が指定された区分を第3区分31cとしている。
リード/ライト部23は、ホスト200から書き込み要求とともに送られてきたデータをNANDメモリ1に書き込む。また、リード/ライト部23は、ホスト200から読み出し要求されたデータをNANDメモリ1から読み出して、読み出したデータをホスト200に転送する。リード/ライト部23は、NANDメモリ1にアクセスする際には、論物変換テーブル26を参照することによってアクセス先の物理アドレスを特定することができる。
なお、リード/ライト部23は、論理記憶領域32に無効データが増加して同一区分に属する冗長領域33が枯渇した場合には、夫々の区分内でガベージコレクションを実行することができる。リード/ライト部23は、区分管理情報27を参照することで夫々の区分の境界を認識することができる。リード/ライト部23は、ガベージコレクションにより論理アドレスと物理アドレスとの対応関係に変化が生じた際には、当該変化を論物変換テーブル26に反映させる。
ウェアレベリング部24は、第2区分31bおよび第3区分31cのウェアレベリングを個別に実行する。即ち、ウェアレベリング部24は、第2区分31bに格納されたデータに対するウェアレベリングを第2区分31bの内部だけで実行し、第3区分31cに格納されたデータに対するウェアレベリングを第3区分31cの内部だけで実行する。なお、ウェアレベリングが実行されると、ウェアレベリングにより移動せしめられたデータの格納先の物理アドレスが変更される。ウェアレベリング部24は、ウェアレベリングの実行により論理アドレスと物理アドレスとの対応関係が変わったとき、対応関係の変化を論物変換テーブル26に反映させる。ウェアレベリング部24は、区分管理情報27を参照することで夫々の区分の境界を認識することができる。
次に、SSD100の動作を説明する。
図6は、コンフィギュレーション時のSSD100の動作を説明する図である。コンフィギュレーション時には、区分管理部25は、ホスト200から領域作成要求を受信する(ステップS1)。領域作成要求は、論理アドレス(LBA)で記述された範囲の指定と優先度の指定とを含んでいる。区分管理部25は、指定された範囲のサイズ(以降、指定サイズ)と、優先度に対応する書き換え頻度(Write Amplitude)と、に基づいて冗長サイズを算出する(ステップS2)。なお、優先度と書き換え頻度との関係は予めSSD100内に記録され、区分管理部25は、当該記録を参照することにより、指定された優先度に対応する書き換え頻度を特定する。そして、ステップS2において、特定した書き換え頻度を使用する。
続いて、区分管理部25は、指定サイズと冗長サイズとを合算した物理記憶領域の範囲を、指定された優先度を付して区分管理情報27に登録する(ステップS3)。なお、指定サイズと冗長サイズとを合算した物理記憶領域をどのように確保するかについては特に限定されない。そして、区分管理部25は、ホスト200に領域作成が完成した旨を報告し(ステップS4)、区分を作成する動作が終了する。
ホスト200は、図6に示す動作を繰り返すことによって、複数の区分を作成することができる。
図7は、第1の実施形態のSSD100の、区分を拡張する際の動作を説明する図である。まず、区分管理部25は、ホスト200から領域拡張要求を受信する(ステップS11)。領域拡張要求は、第1の実施形態によれば、変更対象の範囲の指定と変更後の区分31を特定する優先度の指定とを含む。
ここで、領域拡張要求において、変更対象の範囲は、論理アドレスを用いて指定される。言い換えると、変更対象の範囲は、論理記憶領域32の中から指定される。指定された範囲の領域の区分を変更する際には、対応する冗長領域33のうちの一部の領域も、指定された範囲が属する区分から指定された優先度に対応する区分に変更される。区分管理部25は、指定された範囲の領域および冗長領域33のうちの指定された範囲と同一の区分に属する冗長領域33のうちの一部の区分を、拡張対象の区分に変更する(ステップS12)。ここで、区分管理部25は、冗長領域のうちの区分が変更される領域のサイズを、ステップS2と同じ手順に基づいて求める。なお、区分の変更は、具体的には、区分管理情報27を編集することによって実現される。
その後、区分管理部25は、ホスト200に区分の拡張が完成した旨を報告し(ステップS13)、区分を拡張する動作が終了する。
以上述べたように、本発明の第1の実施形態によれば、区分管理部25は、NANDメモリ1の物理記憶領域を、ウェアレベリングが実行されない区分とウェアレベリングが実行される1以上の区分とを含む複数の区分に分割し、ホスト200からの領域拡張要求に応じて区分の拡張を行う、ように構成したので、ホスト200に、書き込み回数の増加速度が他の区分よりも小さい区分を提供することができる。ホスト200がこの書き込み回数の増加速度が他の区分よりも小さい区分にシステムデータを置き、他の区分にユーザデータを置くことで、システムデータの信頼性をユーザデータよりも高めることができる。また、ホスト200は、領域拡張要求を発行することにより区分を拡張することができるので、システムデータのアップデート等によりシステムデータを格納している区分が不足してきた場合に当該区分を拡張することができる。ユーザは、ユーザデータが損失した時点でSSD100が寿命に到達しつつあることを認識して、損失していない他のユーザデータを救出することができる。即ち、コンピュータシステムの起動が出来なくなるような故障の発生を低減する運用を可能とすることができる。
また、領域拡張要求は、変更対象の領域と拡張対象の区分を特定する区分情報としての優先度の指定とを含み、区分管理部25は、領域拡張要求に指定された変更対象の領域の区分を前記指定された優先度により特定される区分に変更する。これにより、ホスト200は、システムデータ用の区分が不足したときに、当該区分を自由に拡張せしめることが可能となる。
(第2の実施形態)
第1の実施形態によれば、ホストはSSDに変更対象の範囲を指定して領域拡張要求を行う必要があった。第2の実施形態によれば、ホストはSSDに範囲を指定しないで領域拡張要求を送信することができる。
第1の実施形態によれば、ホストはSSDに変更対象の範囲を指定して領域拡張要求を行う必要があった。第2の実施形態によれば、ホストはSSDに範囲を指定しないで領域拡張要求を送信することができる。
第2の実施形態のコンピュータシステムの構成要素は、区分管理部を除いて第1の実施形態と同じである。したがって、第2の実施形態の区分管理部に符号28を付して第1の実施形態と区別するとともに、第1の実施形態と同一の構成要素には同一の符号を付して、重複する説明を省略する。
第2の実施形態によれば、ホスト200は、拡張対象の区分を特定する優先度とサイズとを指定した領域拡張要求をSSD100に発行することができる。この領域拡張要求を受信すると、区分管理部28は、指定された優先度よりも下位の優先度の区分の空き領域から指定サイズの領域を取得して、取得した領域を指定された優先度の区分に加えることができる。
図8は、第2の実施形態のSSD100の、区分を拡張する際の動作を説明する図である。まず、区分管理部28は、ホスト200から領域拡張要求を受信する(ステップS21)。領域拡張要求は、第2の実施形態によれば、サイズの指定および拡張対象の区分に対応する優先度の指定を含む。
続いて、区分管理部28は、拡張対象の区分31よりも優先度が低い区分31(正確には、拡張対象の区分31よりも優先度が低い区分31の論理記憶領域32)に、指定サイズの空き領域があるか否かを判定する(ステップS22)。なお、ここでは、区分管理部28は、拡張対象の区分31よりも優先度が低い区分31を、優先度が高い方から順番に検索する。拡張対象の区分よりも優先度が低い区分に指定サイズの空き領域がある場合には(ステップS22、Yes)、区分管理部28は、当該空き領域および冗長領域33のうちの一部を拡張対象の区分に変更する(ステップS23)。
ステップS23の処理により、指定サイズの空き領域だけサイズが減少する区分が発生する。区分管理部28は、サイズが減少した区分(区分Aと呼ぶ)よりもさらに優先度が低い区分(区分Bと呼ぶ)に、指定サイズの空き領域があるか否かを判定する(ステップS24)。なお、ステップS24においても、区分管理部28は、優先度が高い順番で区分31を検索する。区分Bに指定サイズの空き領域がある場合には(ステップS24、Yes)、区分管理部28は、当該空き領域および冗長領域のうちの一部の区分を区分Bから区分Aに変更する(ステップS25)。区分管理部28は、ステップS25の処理の後、ステップS24の処理を再び実行する。
区分Bに指定サイズの空き領域がない場合には(ステップS24、No)、区分管理部28は、区分が変更された領域を示す範囲と、当該範囲の変更後の区分とをホスト200に報告し(ステップS26)、区分を拡張する動作が終了となる。また、拡張対象の区分よりも優先度が低い区分に指定サイズの空き領域がない場合には(ステップS22、No)、区分管理部28は、空き領域が不足している旨をホスト200に通知して(ステップS27)、区分を拡張する動作が終了となる。
このように、本発明の第2の実施形態によれば、複数の区分の夫々は、ホスト200から予め優先度が設定され、領域拡張要求は、拡張サイズと拡張対象の区分を特定する優先度の指定とを含み、区分管理部28は、指定された優先度により特定される区分よりも優先度が低い区分から空き領域を検索し、検索された空き領域の区分を拡張対象の区分に変更する。これにより、ホスト200は区分の拡張分をどの区分から取得するかを指定することなく区分の拡張を行うことができるようになる。
なお、ホスト200が、第1区分31aにシステムデータを置き、第2区分31bに書き換え頻度が比較的小さいユーザデータを置き、第3区分31cに書き換え頻度が比較的大きいユーザデータを置く場合、書き換え回数の増加速度は、第1区分31a、第2区分31b、第3区分31cの順番で大きくなる。即ち、区分毎の信頼性は、第1区分31a、第2区分31b、第3区分31cの順番で低下する。区分管理部28が上記のように空き領域を出来るだけ優先度が高い区分から検索することによって、出来るだけ信頼性が高い領域を拡張対象の区分に変更することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 NANDメモリ、2 コントローラ、3 メモリチップ、21 演算装置、22 記憶装置、23 リード/ライト部、24 ウェアレベリング部、25 区分管理部、26 論物変換テーブル、27 区分管理情報、28 区分管理部、30 メモリセルアレイ、31,31a〜31c 区分、32,32a〜32c 論理記憶領域、33,33a〜33c 冗長領域、100 SSD、200 ホスト。
Claims (18)
- 物理記憶領域を有する不揮発性メモリと、
前記不揮発性メモリとホストとの間のデータ転送を行うコントローラと、
を備え、
前記コントローラは、
夫々複数のブロックを備える2つの区分を前記物理記憶領域に設定する区分管理部と、
データの区分内の移動処理を前記設定された区分毎に独立に実行する移動部と、
を備えることを特徴とするメモリシステム。 - 前記移動処理は、ウェアレベリングまたはガベージコレクションである、
ことを特徴とする請求項1に記載のメモリシステム。 - 前記2つの区分の夫々は書き換え頻度に対応した互いに異なる優先度が設定される、
ことを特徴とする請求項2に記載のメモリシステム。 - 前記区分管理部は、前記ホストから前記優先度の指定と論理アドレスの範囲の指定とを含む領域作成要求を受信し、前記指定された論理アドレスの範囲が割り当てられる論理記憶領域と、前記指定された優先度に応じたサイズを有しフリーブロックにより構成される冗長領域と、を含む区分を前記物理記憶領域に設定する、
ことを特徴とする請求項3に記載のメモリシステム。 - 前記区分管理部は、前記ホストからの領域拡張要求に応じて区分の拡張を行う、
ことを特徴とする請求項4に記載のメモリシステム。 - 前記区分管理部は、前記2つの区分を含む2以上の区分を前記物理記憶領域に設定し、
前記領域拡張要求は、変更対象の領域と前記2以上の区分のうちの拡張対象の区分を特定する区分情報とを含み、
前記区分管理部は、前記領域拡張要求に指定された変更対象の領域の区分を前記区分情報により特定される区分に変更する、
ことを特徴とする請求項5に記載のメモリシステム。 - 前記変更対象の領域は論理アドレスにより指定され、
前記区分管理部は、前記領域拡張要求に指定された変更対象の領域と当該変更対象の領域が属する区分の冗長領域の一部を前記区分情報により特定される区分に変更する、
ことを特徴とする請求項6に記載のメモリシステム。 - 前記2以上の区分の夫々は、前記ホストから予め夫々異なる優先度が設定され、
前記領域拡張要求は、拡張サイズと拡張対象の区分を特定する優先度とを含み、
前記区分管理部は、前記領域拡張要求に含まれる優先度により特定される区分よりも優先度が低い区分から前記拡張サイズの空き領域を検索し、前記検索された前記拡張サイズの空き領域の区分を前記拡張対象の区分に変更する、
ことを特徴とする請求項5に記載のメモリシステム。 - 前記区分管理部は、前記領域拡張要求に含まれる優先度により特定される区分よりも優先度が低い区分の中において優先度が高い区分から順番に前記拡張サイズの空き領域を検索する、
ことを特徴とする請求項8に記載のメモリシステム。 - 物理記憶領域を有する不揮発性メモリと、
前記不揮発性メモリと前記ホストとの間のデータ転送を行い、夫々複数のブロックを備える2つの区分を前記物理記憶領域に設定し、データの区分内の移動処理を前記設定された区分毎に独立に実行する制御回路と、
を備えることを特徴とするメモリシステム。 - 前記移動処理は、ウェアレベリングまたはガベージコレクションである、
ことを特徴とする請求項10に記載のメモリシステム。 - 前記2つの区分の夫々は書き換え頻度に対応した互いに異なる優先度が設定される、
ことを特徴とする請求項11に記載のメモリシステム。 - 前記制御回路は、前記ホストから前記優先度の指定と論理アドレスの範囲の指定とを含む領域作成要求を受信し、前記指定された論理アドレスの範囲が割り当てられる論理記憶領域と、前記指定された優先度に応じたサイズを有しフリーブロックにより構成される冗長領域と、を含む区分を前記物理記憶領域に設定する、
ことを特徴とする請求項12に記載のメモリシステム。 - 前記制御回路は、前記ホストからの領域拡張要求に応じて区分の拡張を行う、
ことを特徴とする請求項13に記載のメモリシステム。 - 前記制御回路は、前記2つの区分を含む2以上の区分を前記物理記憶領域に設定し、
前記領域拡張要求は、変更対象の領域と前記2以上の区分のうちの拡張対象の区分を特定する区分情報とを含み、
前記制御回路は、前記領域拡張要求に指定された変更対象の領域の区分を前記区分情報により特定される区分に変更する、
ことを特徴とする請求項14に記載のメモリシステム。 - 前記変更対象の領域は論理アドレスにより指定され、
前記制御回路は、前記領域拡張要求に指定された変更対象の領域と当該変更対象の領域が属する区分の冗長領域の一部を前記区分情報により特定される区分に変更する、
ことを特徴とする請求項15に記載のメモリシステム。 - 前記2以上の区分の夫々は、前記ホストから予め夫々異なる優先度が設定され、
前記領域拡張要求は、拡張サイズと拡張対象の区分を特定する優先度とを含み、
前記制御回路は、前記領域拡張要求に含まれる優先度により特定される区分よりも優先度が低い区分から前記拡張サイズの空き領域を検索し、前記検索された前記拡張サイズの空き領域の区分を前記拡張対象の区分に変更する、
ことを特徴とする請求項14に記載のメモリシステム。 - 前記制御回路は、前記領域拡張要求に含まれる優先度により特定される区分よりも優先度が低い区分の中において優先度が高い区分から順番に前記拡張サイズの空き領域を検索する、
ことを特徴とする請求項17に記載のメモリシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015147121A JP2015222590A (ja) | 2015-07-24 | 2015-07-24 | メモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015147121A JP2015222590A (ja) | 2015-07-24 | 2015-07-24 | メモリシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012200638A Division JP5788369B2 (ja) | 2012-09-12 | 2012-09-12 | メモリシステム、コンピュータシステム、およびメモリ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015222590A true JP2015222590A (ja) | 2015-12-10 |
Family
ID=54785530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015147121A Pending JP2015222590A (ja) | 2015-07-24 | 2015-07-24 | メモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015222590A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018142236A (ja) * | 2017-02-28 | 2018-09-13 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP2018142237A (ja) * | 2017-02-28 | 2018-09-13 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP2020198128A (ja) * | 2020-08-31 | 2020-12-10 | キオクシア株式会社 | メモリシステム |
JP2020205077A (ja) * | 2020-08-31 | 2020-12-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004151944A (ja) * | 2002-10-30 | 2004-05-27 | Denso Corp | 不揮発性記憶装置へのデータの書き込み方法、プログラム、および装置、ならびに車載電子制御装置 |
JP2007004234A (ja) * | 2005-06-21 | 2007-01-11 | Hitachi Ltd | ストレージ装置 |
JP2007172447A (ja) * | 2005-12-26 | 2007-07-05 | Jatco Ltd | フラッシュメモリ |
JP2008191855A (ja) * | 2007-02-02 | 2008-08-21 | Sony Corp | 半導体記憶装置及びメモリ制御方法 |
JP2011103077A (ja) * | 2009-11-11 | 2011-05-26 | Toyota Motor Corp | 記憶装置 |
JP2011198049A (ja) * | 2010-03-19 | 2011-10-06 | Toyota Motor Corp | 記憶装置、電子制御ユニット、記憶方法 |
-
2015
- 2015-07-24 JP JP2015147121A patent/JP2015222590A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004151944A (ja) * | 2002-10-30 | 2004-05-27 | Denso Corp | 不揮発性記憶装置へのデータの書き込み方法、プログラム、および装置、ならびに車載電子制御装置 |
JP2007004234A (ja) * | 2005-06-21 | 2007-01-11 | Hitachi Ltd | ストレージ装置 |
JP2007172447A (ja) * | 2005-12-26 | 2007-07-05 | Jatco Ltd | フラッシュメモリ |
JP2008191855A (ja) * | 2007-02-02 | 2008-08-21 | Sony Corp | 半導体記憶装置及びメモリ制御方法 |
JP2011103077A (ja) * | 2009-11-11 | 2011-05-26 | Toyota Motor Corp | 記憶装置 |
JP2011198049A (ja) * | 2010-03-19 | 2011-10-06 | Toyota Motor Corp | 記憶装置、電子制御ユニット、記憶方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018142236A (ja) * | 2017-02-28 | 2018-09-13 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP2018142237A (ja) * | 2017-02-28 | 2018-09-13 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP2020198128A (ja) * | 2020-08-31 | 2020-12-10 | キオクシア株式会社 | メモリシステム |
JP2020205077A (ja) * | 2020-08-31 | 2020-12-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7132291B2 (ja) | 2020-08-31 | 2022-09-06 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5788369B2 (ja) | メモリシステム、コンピュータシステム、およびメモリ管理方法 | |
KR102501751B1 (ko) | 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법 | |
US10162748B2 (en) | Prioritizing garbage collection and block allocation based on I/O history for logical address regions | |
US9870836B2 (en) | Memory system and method of controlling nonvolatile memory | |
US8364884B2 (en) | Memory system with a memory controller controlling parallelism of driving memories | |
US8285954B2 (en) | Memory system managing a plurality of logs | |
KR20200092414A (ko) | Nand 디바이스에서의 부분 수퍼블록 관리 | |
US9639463B1 (en) | Heuristic aware garbage collection scheme in storage systems | |
KR20170064992A (ko) | 중복제거를 위한 어드레스 매핑을 포함하는 플래시 메모리 장치 및 그 동작 방법 | |
US20150347291A1 (en) | Flash memory based storage system and operating method | |
US10884669B2 (en) | Controller, operation method of the controller and memory system | |
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN111373383B (zh) | 存储器高速缓存管理 | |
KR20120060236A (ko) | 파워 인터럽트 관리 | |
KR20100012938A (ko) | 웨어 레벨링을 수행하는 반도체 스토리지 시스템 및 그제어 방법 | |
US9798475B2 (en) | Memory system and method of controlling nonvolatile memory | |
KR20120081351A (ko) | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 | |
CN112015329A (zh) | 存储系统及其操作方法 | |
US20200334148A1 (en) | Controller and operation method thereof | |
KR20100028022A (ko) | 제어된 스크럽 데이터 판독에 의해 트리거되는 플래시 메모리 리프레시 기술 | |
KR20200044461A (ko) | 메모리 시스템 및 그것의 동작방법 | |
JP2015222590A (ja) | メモリシステム | |
KR20200116375A (ko) | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 | |
CN113703662A (zh) | 存储器系统、存储器控制器及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20151102 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160517 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161122 |