JP5480913B2 - 記憶装置、およびメモリコントローラ - Google Patents

記憶装置、およびメモリコントローラ Download PDF

Info

Publication number
JP5480913B2
JP5480913B2 JP2011544261A JP2011544261A JP5480913B2 JP 5480913 B2 JP5480913 B2 JP 5480913B2 JP 2011544261 A JP2011544261 A JP 2011544261A JP 2011544261 A JP2011544261 A JP 2011544261A JP 5480913 B2 JP5480913 B2 JP 5480913B2
Authority
JP
Japan
Prior art keywords
block
data
physical
scratch
management table
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.)
Expired - Fee Related
Application number
JP2011544261A
Other languages
English (en)
Other versions
JPWO2011068109A1 (ja
Inventor
昌能 西
良 藤田
遼一 稲田
卓真 西村
雅裕 白石
光司 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2011544261A priority Critical patent/JP5480913B2/ja
Publication of JPWO2011068109A1 publication Critical patent/JPWO2011068109A1/ja
Application granted granted Critical
Publication of JP5480913B2 publication Critical patent/JP5480913B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Description

本発明は、不揮発性半導体メモリを用いた記憶装置およびその記憶装置内の不揮発性半導体メモリを制御するメモリコントローラに関するものである。
情報機器の補助記憶装置として、一般には磁気ディスク記憶装置が用いられている。この磁気ディスク記憶装置では、データの読み出しおよび書き込みはセクタと呼ばれる記憶単位ごとに行われている。
近年、上記のような磁気ディスク記憶装置に代わり、半導体メモリを記憶媒体とする記憶装置が増えてきている。その中でも、電気的に消去可能かつ再書き込み可能な不揮発性メモリEEPROM(Electrically Erasable Programmable Read only Memory)の一種であるフラッシュメモリを用いた記憶装置が主流となってきている。
フラッシュメモリは磁気ディスクと比べて読み出しおよび書き込み速度に優れるが、使用上の制限として4点挙げられる。第一に、書き込み単位(一般的にページと呼ばれる)と消去単位(一般にブロックと呼ばれる)が決まっており、消去単位は書き込み単位よりも大きいことである。第二に、データを上書きする際には一度データを消去し、再度書き込みを行う必要があることである。第三に、複数のページで構成されるひとつのブロックにデータを書き込む場合、連続したページ番号順に書き込む必要があることである。第四に、各ブロックには消去回数に制限があることである。
上記フラッシュメモリの特性を考慮したメモリ制御方法として、物理ブロックを構成する複数のページを、データを保持するデータページと追記可能な交換ページに分ける方法がある。この方法では、新しい書き込みデータは交換ページ部分に書き込み、交換ページが満杯になった場合は該当ブロック内の有効なデータのみ空きブロックにコピーし、該当ブロックを消去するという処理を行っている〔特許文献1〕。類似の方法として、前記交換ページの代わりに、新たにひとつまたは複数のブロックを設定する方法が挙げられる〔特許文献2〕。
また、〔特許文献3〕では、書き込み済みページデータが少ないブロックを逐次検索してデータ書き込み、無効なデータページが最も多いブロックを検索し、消去対象ブロックとする方法が示されている。
特開2009−116465号公報 特表2008−524705号公報 特開2002−157149号公報
〔特許文献1〕に提案された従来技術では、書き込みブロック内の交換ページが満杯になるたびに、消去対象として選択したブロックに含まれる有効データに加えて、論理アドレス順で連続したデータであり、消去対象のブロックに含まれないデータを収集して並べ直し、書き込むために必要なデータコピー処理が発生してしまう。フラッシュメモリに対するデータ書き換え回数は制限されているため、前記したデータコピー処理に伴い書き換えページ数が減少した分だけ、フラッシュメモリの寿命が短くなるだけでなく、当該記憶装置に対する外部システムからの書き込み速度が低下するという問題がある。〔特許文献2〕で提案されている各々の方法も同様の問題を有している。
また、〔特許文献3〕に提案された従来技術では、全ブロックに均一にデータの書き込みをしていくため、有効データページの数は全ブロックで平均化されてしまう。そのため、提案された消去対象のブロックの選択方法にも関わらず、コピーする必要がある有効なデータ数が十分に少なくならないという問題がある。
本発明の目的は、書き換えの際のコピーデータ量およびデータコピーに伴うブロック消去回数を低減し、長寿命かつ高性能な記憶装置、およびその記憶装置内の不揮発性半導体メモリを制御するメモリコントローラを提供することである。
上記課題を達成するために、本発明の記憶装置は、ある所定の書き込み単位と前記書き込み単位よりも大きいブロック消去単位を持つ不揮発性半導体メモリと、データの読み出し及び書き込みができるメモリと、外部システムからの命令によって前記不揮発性半導体メモリへの読み出しおよび書き込み処理を行うメモリコントローラと、を有し、前記不揮発性半導体メモリの記憶領域は、1つ以上の物理ブロックからなるスクラッチブロックと、1つ以上の物理ブロックからなるデータブロックと、1つ以上の物理ブロックからなる消去済みブロックと、から構成され、前記メモリは、を管理するためのスクラッチブロック管理テーブルと、前記データブロックを管理するためのデータブロック管理テーブルと、前記消去済みブロックを管理するための消去済みブロック管理テーブルと、物理ブロック管理テーブルと、を有し、前記データブロック管理テーブルは、前記物理ブロックを特定する物理ブロック番号に関連付けて、当該物理ブロックが前記データブロックとして有効であるか否かを示すフラグを記憶しており、前記物理ブロック管理テーブルは、前記物理ブロックに関連付けて、有効なデータのページ数を記憶しており、前記記憶装置は、前記外部システムからのデータ書き込みを前記スクラッチブロックに対して行い、前記スクラッチブロック内の空きページが所定の数より少なくなった場合あるいは無くなった場合には、そのスクラッチブロックを前記データブロックの1つとして扱い、新しいスクラッチブロックとして前記消去済みブロックのうちいずれか1つを割り当て、前記消去済みブロックが不足した場合には、前記データブロック管理テーブルを参照し、前記データブロックとして登録されている物理ブロックの前記物理ブロック番号を取得し、前記物理ブロック管理テーブルを参照し、前記取得した物理ブロック番号に対応する前記ページ数を取得し、前記データブロックの中から、前記取得したページ数が少ない物理ブロックを選択して有効なデータを前記スクラッチブロックにコピーした後、消去することを特徴とするものである。
更に、本発明は記憶装置において、前記データブロックと前記スクラッチブロックを一定量に分割した論理空間ごとに管理することを特徴とするものである。
更に、本発明は記憶装置において、前記書き込み単位ごとに論理アドレス空間を分割することで一意に定められる論理アドレスと前記不揮発性半導体メモリの物理アドレスを対応させるテーブルを前記メモリ内に持ち、前記メモリコントローラが前記外部システムからのデータ書き込み命令に応じて前記テーブルの書き換えを行うことを特徴とするものである。
また、本発明は上記課題を達成するために、外部システムからの命令によって不揮発性半導体メモリへの読み出しおよび書き込み処理、およびメモリへの読み出し及び書き込み処理を行うメモリコントローラであって、前記メモリコントローラは、前記不揮発性半導体メモリの記憶領域を、1つ以上の物理ブロックからなるスクラッチブロックと、1つ以上の物理ブロックからなるデータブロックと、1つ以上の物理ブロックからなる消去済みブロックと、から構成されるように扱い、前記データブロックを管理するためのデータブロック管理テーブルと、物理ブロック管理テーブルと、を前記メモリ内に有し、前記データブロック管理テーブルは、前記物理ブロックを特定する物理ブロック番号に関連付けて、当該物理ブロックが前記データブロックとして有効であるか否かを示すフラグを記憶しており、前記物理ブロック管理テーブルは、前記物理ブロックに関連付けて、有効なデータのページ数を記憶しており、前記メモリコントローラは、前記外部システムからのデータ書き込みは前記スクラッチブロックに対して行い、前記スクラッチブロック内の空きページが所定の数よりも少なくなった場合あるいは無くなった場合には、そのスクラッチブロックを前記データブロックの1つとして扱い、新しいスクラッチブロックとして前記消去済みブロックのうちいずれか1つを割り当て、前記消去済みブロックが不足した場合には、前記データブロック管理テーブルを参照し、前記データブロックとして登録されている物理ブロックの前記物理ブロック番号を取得し、前記物理ブロック管理テーブルを参照し、前記取得した物理ブロック番号に対応する前記ページ数を取得し、前記データブロックの中から、前記取得したページ数の少ない物理ブロックを選択して、有効なデータを前記スクラッチブロックにコピーした後、消去することを特徴とするものである。
更に、本発明はメモリコントローラにおいて、前記データブロックと前記スクラッチブロックを一定量に分割した論理空間ごとに管理することを特徴とするものである。
更に、本発明はメモリコントローラにおいて、前記書き込み単位ごとに論理アドレス空間を分割することで一意に定められる論理アドレスと前記不揮発性半導体メモリの物理アドレスを対応させるテーブルを前記メモリ内に持ち、前記外部システムからのデータ書き込み命令に応じて前記テーブルの書き換えを行うことを特徴とするものである。
本発明では、前記の課題を解決するために、本発明における記憶装置は、データの書き込みおよび読み出し単位よりも大きな消去単位を持つ不揮発性半導体メモリと、ホスト計算機からの命令により、上記不揮発性半導体メモリに対してデータの書き込みおよび読み出しを行うメモリ制御部とを具備することを特徴とする。
ここで、記憶領域は1つ以上の物理ブロックからなるデータブロックと1つ以上の物理ブロックからなる消去済みブロックと1つ以上の物理ブロックからなるスクラッチブロックより構成される。
ここで、スクラッチブロックにはホスト計算機からの書き込みデータもしくはデータブロックからの有効なコピーデータを書き込むようにメモリ制御部によって制御される。また、消去済みブロックが不足した場合には、データブロックの中から有効データページが少ないブロックを消去対象とし、有効なデータをスクラッチブロックにコピーした後、ブロック消去することで消去済みブロックを得るように、メモリ制御部によって制御される。
本発明によれば、消去対象のブロックに含まれる有効データページだけをスクラッチブロックにコピーすればよい。このため、〔特許文献1〕、〔特許文献2〕に示される従来技術では書き込み先のブロックが満杯になる度に行っていた、論理アドレス順で連続したデータを収集して並べ直し、書き込むことに伴う余分なデータコピー処理は発生しない。
また、本発明によれば、有効なデータページ数が十分に少ないデータブロックを選択することができるため、〔特許文献3〕で示した従来技術よりも、コピーデータ量を低減させられる。これは、有効なデータページの総数は記憶装置全体で一定であるため、ホスト計算機からの書き込みデータ、および消去対象のブロックに含まれる有効なデータをすべスクラッチブロックに書き込み、有効なデータページをスクラッチブロックに局在させることで、データブロックに含まれる有効なデータページ数を低減させられることによる。有効データページが少ないデータブロックを選択することで、コピーデータ量を低減させられる。
前記のコピーデータ量の削減により、記憶装置を長寿命化させることができる。これは、フラッシュメモリのブロック消去回数が制限されている点、およびフラッシュメモリに対する書き込み処理が、データ書き込みとページコピー処理のみであることを考え合わせればよい。つまり、一定数のホスト計算機からの書き込みに伴い発生するコピーデータ量を低減させ、ブロック消去回数を低減させられるためである。
さらに、前記のコピーデータ量の削減により、ホスト計算機によるデータ書き換え速度を向上させることができる。これは、フラッシュメモリに対する単位時間当たりの書き込み速度の上限が一定である点、およびフラッシュメモリに対する書き込み処理が、データ書き込みとページコピー処理のみであることを考え合わせればよい。ページコピー処理量を低減させられれば、ホスト計算機からの単位時間当たりの書き込み回数が増加させられる。
本発明の実施例を説明するためのハードウェア構成図である。 不揮発性半導体メモリの内部構成図である。 メモリ制御方式において、メモリの使用状態を表した図である。 ホスト計算機からのデータ書き込み処理のフローチャートである。 ブロック消去処理の際のフローチャートである。 論理/物理変換テーブルの構成を表した図である。 スクラッチブロック管理テーブルの構成を表した図である。 データブロック管理テーブルの構成を表した図である。 消去済みブロック管理テーブルの構成を表した図である。 物理ブロック管理テーブルの構成を表した図である。
以下、図面を用いて本発明の実施例を説明する。
図1は本発明を実現するためのハードウェア構成例を表す図である。
図1に示す記憶装置6は、ホスト計算機3とデータパス4を介して接続される。
記憶装置6は、メモリコントローラ1と半導体メモリ2から構成される。メモリコントローラ1は、ホストI/F(インターフェース)制御部11と半導体メモリI/F制御部12とマイクロプロセッサ13とメモリI/F制御部14とメモリ15から構成される。メモリ15は、図1で示したようにメモリコントローラと一体である必要は無く、メモリコントローラと接続されたメモリチップであってもよい。また、メモリ15は不揮発性半導体メモリであっても揮発性半導体メモリであっても良い。
ホストI/F制御部11は、ホスト計算機3からのデータ読み出しおよび書き込み命令に従って、ホスト計算機3との送受信を制御する。ホスト計算機3からのデータの読み出しおよび書き込み命令は、記憶装置6が有する物理的記憶領域に対応付けた論理記憶領域に対して行われるものであり、データの読み出しおよび書き込み命令を受けたコントローラ1は、指定する半導体メモリ2内の物理アドレスに対してデータの読み出しおよび書き込みを行う。
半導体メモリI/F制御部12はマイクロプロセッサ13からの指示により半導体メモリ2とのアクセス制御を行う。なお、マイクロプロセッサ13から半導体メモリ2を直接制御可能であれば、半導体メモリI/F制御部12は必ずしも必要ではない。
マイクロプロセッサ13は、半導体メモリ2内に、記憶装置6の物理的記憶領域に対応する論理的記憶領域を構築し、この論理的記憶領域に対するデータの読み出しおよび書き込み処理の制御を行う。
メモリI/F制御部14はマイクロプロセッサ13からの指示によりメモリ15とのアクセス制御を行う。なお、マイクロプロセッサ13から半導体メモリ2を直接制御可能であれば、メモリI/F制御部14は必ずしも必要ではない。
メモリ15は、論理/物理変換テーブル151とスクラッチブロック管理テーブル152とデータブロック管理テーブル153と消去済みブロック管理テーブル154と物理ブロック管理テーブル155を有する。
ここで、図2の説明に入る前に、メモリ15内の各種テーブルについて説明する。
メモリ15内の論理/物理変換テーブル151は、ホスト計算機3からのアクセスによって示される論理アドレスと半導体メモリ2上の物理アドレスの対応付けを行うものである。
図6は論理/物理変換テーブル151の構成例を示したものである。図6(A)は初期状態、図6(B)はデータが書き込まれて論理/物理変換テーブルが更新された状態を表している。論理/物理変換テーブル151は、ホスト計算機3からのアクセスによって示される論理アドレス1511と半導体メモリ2上のチップ番号、ブロック番号、ページ番号からなる物理アドレス1512で構成される。なお、この例では物理アドレス1512にチップ番号まで記載しているが、半導体メモリ2が単一チップの場合には、チップ番号を記載する必要は無い。
物理アドレス1512の部分は、データ書き込み処理によって値が変わり、例えば図6(A)のような初期状態から、論理アドレス1511へのデータ書き込み処理によって、図6(B)のようなデータ書き込み後の状態のように移り変わっていく。
スクラッチブロック管理テーブル152は、一定量の論理的空間ごとに管理されるスクラッチブロックが有効であるか否かのフラグとスクラッチブロックとして扱われている物理ブロックの番号を管理するテーブルである。図7にスクラッチブロック管理テーブル152の構成例を示す。図7(A)は初期状態、図7(B)は新しいスクラッチブロックが提供された状態、図7(C)はスクラッチブロックがデータブロックに移った状態を表している。
スクラッチブロック管理テーブル152は、スクラッチブロック番号1521と有効フラグ1522およびスクラッチブロック番号に対応する物理ブロック番号1523から構成される。新しくスクラッチブロックが割り当てられた場合には、図7(B)のように有効フラグ1522を1に設定して物理ブロック番号1523を更新する。スクラッチブロックがデータブロックへと移行した場合などは図7(C)のように有効フラグ1522を0にして、該当スクラッチブロックを無効化する。
データブロック管理テーブル153は、一定量の論理的空間ごとに管理されるデータブロックが有効であるか否かのフラグとデータブロックとして扱われている物理ブロックの番号を管理するテーブルである。図8にデータブロック管理テーブル153の構成例を示す。図8(A)は初期状態、図8(B)はスクラッチブロックがデータブロックに移行した状態、図8(C)はデータブロックが消去された状態を表している。
データブロック管理テーブル153は、データブロック番号1531と有効フラグ1532およびデータブロック番号に対応する物理ブロック番号1533から構成される。新しくデータブロックに移行した物理ブロックがある場合には、図8(B)のように有効フラグ1532を1に設定して物理ブロック番号1533を更新する。データブロックが消去された場合などは図8(C)のように有効フラグ1532を0にして、該当データブロックを無効化する。
消去済みブロック管理テーブル154は、データが書き込まれていない物理ブロックの番号を保持するテーブルである。図9に消去済みブロック管理テーブルの構成例を示す。図9(A)は初期状態、図9(B)は消去済みブロックをスクラッチブロックとして割り当てた状態を表している。
消去済みブロック管理テーブル154は、データが書き込まれていない物理ブロックの番号を上から順に格納しており、スクラッチブロックに割り当てる必要が出てくると、例えば図9(A)の初期状態から図9(B)のスクラッチブロック割り当て後の状態に変化する。
物理ブロック管理テーブル155は、各物理ブロックの消去回数や有効データページ数および有効データページフラグを管理するテーブルである。図10は物理ブロック管理テーブル155の構成例である。図10(A)は初期状態、図10(B)は有効なデータが書き込まれた状態、図10(C)は物理ブロックが消去された状態を表している。
物理ブロック管理テーブル155は、物理ブロック番号1551とそのブロックの消去回数1552とその物理ブロックの有効データページ数1553とその物理ブロックの有効データページフラグ1554と書き込み可能ページ番号1555から構成されている。有効データページフラグ1554は、ブロック内のページ数がnページの場合にはnビットの2進数で表され、最も右のビットがページ0、最も左のビットがページn−1を表している。各ページ番号に対応するビットの値が0の場合には、そのページ内のデータは無効であることを表し、1の場合にはそのページ内のデータは有効であることを表している。
以上が図1のメモリ15内における各テーブルの説明である。なお、図1の半導体メモリ2は説明の簡単化のために1個の半導体メモリ2のみ記載しているが、上述のように記憶装置6の論理的記憶領域に対応して、半導体メモリ2の物理的記憶領域を管理することにより、半導体メモリ2が単数の場合にも複数個を接続している場合にも対応できることは言うまでもない。
図2は、本発明の実施の形態において前提とする半導体メモリ2の内部構造を示した図である。図2では、半導体メモリ2上の論理的記憶領域を示している。図1に示したホスト計算機3からは、記憶装置6に対しては図2の論理的記憶領域のみが認識される。
図2中の番号21はデータ消去の最小単位を表し、これをブロックと呼ぶ。同様に番号211はデータ読み出しおよび書き込みの最小単位であり、これをページと呼ぶ。図2においては、半導体メモリ2の論理的記憶領域は1つ以上のブロック21で構成されており、このブロック21は1つ以上のページ211で構成されている。すなわち、半導体メモ2の論理的記憶領域は、ブロック1からブロックM(整数)までのM個のブロック21を有し、それぞれのブロックはページ1からページN(整数)までのN個のページを有している。
上述したように、ホスト計算機3はデータパス4を介して、記憶装置6との間でデータのやり取りを行っているが、ここで、データパス4にはSCSI(Small Computer System Interface)やATA(Advanced Technology Attachment)などのインターフェースが用いられる。ただし、本発明の実施の形態においては、これらのインターフェースに限られるものではなく、他のデータパスによっても代用可能である。同様に、データパスの数がひとつに限られるものでもなく、複数のデータパスがメモリコントローラに接続されていても良い。
また、半導体メモリ2とメモリコントローラ1とのデータのやり取りはメモリパス5によって行われる。記憶装置6は、ホスト計算機3からの命令に基づいてデータの記憶を行う装置である。
次に、本発明の実施の形態における特徴であるメモリ制御方式を実現するためのメモリ使用状態について説明する。
図3は、本発明の実施の形態における特徴であるメモリ制御方法を実現するためのメモリ使用状態を表した図であり、メモリコントローラ1の制御により半導体メモリ2上の論理的記憶領域がどのように扱われるかを示している。
半導体メモリ2上の論理的記憶領域は、スクラッチブロック22とデータブロック23および消去済みブロック24から構成される。
スクラッチブロック22は、データを記憶するブロックであり、一定量に分割された論理的記憶領域ごとに1つのブロックから構成される。各論理的記憶領域を論理グループと呼ぶ。このブロックの内部は番号221のようになっており、スクラッチブロックは、データが書き込まれているページとデータが書き込まれていないページの両方を有している。
データブロック23は、データを記憶するブロックであり、一定量に分割された論理的記憶領域ごとに1つあるいは複数個のブロックで構成される。データブロックの全てのページにはデータが書き込まれている。
消去済みブロック24は、ブロック消去を行い、通常はnページだけデータを書き込むことができる状態にある1つあるいは複数個のブロックから構成される。ただし、必要に応じて各ブロックの消去回数を例とするブロック管理に関する情報が(n−1)ページ以下だけ書き込んでおいても良い。
ここで、スクラッチブロック22およびデータブロック23は、ユーザがホスト計算機3を用いてデータを読み出すことができる領域である。データブロック23はすべてのページにデータが書き込まれていて上書きができないため、データを書き込む際には、スクラッチブロック22の空いているページの内、最もページ番号の小さいページに書き込むことになる。
そして、スクラッチブロック22の全てのページにデータが書き込まれたときは、このスクラッチブロック22を以降はデータブロック23の1つとして扱い、消去済みブロック24の中から1つのブロックを新しいスクラッチブロック22として割り当てを行う。
消去済みブロック24のブロックの数が一定数以下になった場合には、データブロック23の中から有効データページ数の少ないブロックを選択し、該当ブロックの有効データをスクラッチブロック22へと移して該当ブロックを消去し、以降は該当ブロックを消去済みブロックの1つとして扱う。
データブロック23の個数Mおよび消去済みブロックの個数Nについての設定方法はここでは特に限定しない。
以上を踏まえて、図4および図5のフローチャートを用いて、本発明を適用した実施例の動作について説明する。
図4および図5は、本発明の実施形態の特徴である書き込み処理とブロック消去処理の手順を示している。
まず、ホスト計算機3から書き込み要求があった場合の処理について図4を用いて説明する。
[書き込み処理]
図4のフローチャートは、マイクロプロセッサ13の半導体メモリ2へのデータ書き込み処理のフローチャートである。以下にその処理の流れを説明する。
まず、マイクロプロセッサ13は、ホストI/F制御部11を介して、ホスト計算機3からデータと論理アドレスを受信する(ステップS711)。
次に、マイクロプロセッサ13は、書き込み対象となる半導体メモリ2の物理アドレスを確認するために、スクラッチブロック管理テーブル152を参照し、書き込み対象論理アドレスと対応する物理ブロック番号1523を取得する(ステップS714)。
このとき、対象論理アドレスに対応したスクラッチブロック22が割り当てられていない場合には(ステップS712“Yes”)、消去済みブロック24の中から1つのブロックを選び出してスクラッチブロック22内の物理ブロック番号1523に登録し、フラグ1522を有効化する(ステップS713)。そして、登録した物理ブロック番号1523を取得する(ステップS714)。
次に、物理ブロック管理テーブル155を確認し、取得した上記物理ブロック番号1523のブロックの書き込み可能ページ番号1555を特定し、書き込み先のチップ番号、ブロック番号とページ番号から物理アドレスを生成し(ステップS715)、マイクロプロセッサ13は該当物理アドレスにデータ書き込み処理を行う(ステップS716)。
次に、書き込み可能ページ番号1555を加算する。この時、マイクロプロセッサ13は、データの書き込みがスクラッチブロック22の最後のページに行われたかどうかを確認し(ステップS717)、最後のページに書き込まれた場合には(ステップS717“Yes”)、このスクラッチブロック22を以降はデータブロック23の1つとして扱うために、スクラッチブロック管理テーブル152のこのスクラッチブロック部分のフラグ1522を0に無効化し、データブロック管理テーブル153に物理ブロック番号1533を登録し、フラグ1532を有効化する(ステップS718)。なお、ステップS717およびS718において、判断条件を、書込みが最後のページに行われたことに代えて、空きページが所定のページ数より少なくなったこととしてもよい。
データ書き込みに伴い、ステップS717で指定される判断条件を満たさない場合には(ステップS717“No”)、スクラッチブロック管理テーブル152の更新のみを行う(ステップS719)。
次に、マイクロプロセッサ13は、物理ブロック管理テーブル155を参照し、書き込み物理ブロック番号と対応する物理ブロック番号1551の有効データページ数1553を加算し、有効データページフラグ1554の該当ページ部分を有効化する。また、論理/物理変換テーブルを参照し、書き込み論理アドレスと対応する物理アドレス1512を読み出し、物理ブロック管理テーブル155内の有効データページフラグ1554が有効であるか確認する。有効である場合には、この物理アドレスと対応する物理ブロック番号1551の有効データページ数を減算し、有効データページフラグ1554の該当ページ部分を無効化する。その後、書き込み物理アドレスを論理/物理変換テーブル151の対応論理アドレス1511に対応する物理アドレス1512として登録する(ステップS720)。
次に、マイクロプロセッサ13は、ホストI/F制御部11を介してホスト計算機3に書き込み処理の終了を通知し、書き込み処理を終える(ステップS721)。
[ブロック消去処理]
次に、図5のフローチャートを用いて、ブロック消去処理の流れを説明する。
マイクロプロセッサ13は、消去済みブロックの数が一定数以下になった際に、ブロック消去処理を開始する(ステップS731“Yes”)。
まず、マイクロプロセッサ13は、データブロック管理テーブル153を参照して登録されている物理ブロック番号1533を取得する。取得した物理ブロック番号1533と対応する物理ブロック管理テーブル155内の物理ブロック番号1551の有効ページ数1553を参照し、データブロック23に登録されている物理ブロックの中で最も有効データページ数の少ないブロックを特定する(ステップS732)。
次に、マイクロプロセッサ13は、該当物理ブロックの有効データページ数が0であるか確認し(ステップS733)、有効データページ数が0でない場合は、物理ブロック管理テーブル155の有効データページフラグ1554を参照し、有効データページのデータをスクラッチブロックへとコピーする(ステップS734)。このコピー作業を、有効データページ数1553が0になるまで繰り返し、有効データページ数1553が0になった場合は、該当物理ブロックを消去する(ステップS735)。
次に、マイクロプロセッサ13は、データブロック管理テーブル153の消去したブロック番号と一致する物理ブロック番号1533のフラグ1532を無効化し、データブロック管理テーブル153からこの物理ブロックの登録を抹消する。そして、消去した物理ブロック番号を消去済みブロック管理テーブル154に登録し、物理ブロック管理テーブル155の消去ブロック番号に対応する物理ブロック番号1551の消去回数1552を加算する。
上述の処理を消去済みブロック内のブロックが一定数より多くなるまで繰り返し行う。
本発明は、計算機システムに用いられる記憶装置、およびそのメモリコントローラに適用することが可能である。
1 メモリコントローラ
2 半導体メモリ
3 ホスト計算機
4 データパス
5 メモリバス
6 記憶装置
11 ホストI/F制御部
12 半導体メモリI/F制御部
13 マイクロプロセッサ
14 メモリI/F制御部
15 メモリ
21 ブロック
22 スクラッチブロック
23 データブロック
24 消去済みブロック
151 論理/物理変換テーブル
152 スクラッチブロック管理テーブル
153 データブロック管理テーブル
154 消去済みブロック管理テーブル
155 物理ブロック管理テーブル
211 ページ
221 スクラッチブロック内部構造
1511 論理アドレス
1512 物理アドレス
1521 スクラッチブロック番号
1522、1532 フラグ
1523、1533、1551 物理ブロック番号
1531 データブロック番号
1552 消去回数
1553 有効データページ数
1554 有効データページフラグ
1555 書き込み可能ページ番号

Claims (6)

  1. 所定の書き込み単位と前記所定の書き込み単位よりも大きいブロック消去単位を持つ不揮発性半導体メモリと、
    データの読み出しおよび書き込みができるメモリと、
    外部システムからの命令によって前記不揮発性半導体メモリへの読み出しおよび書き込み処理を行うメモリコントローラと、
    を有する記憶装置であって、
    前記不揮発性半導体メモリの記憶領域は、
    1つ以上の物理ブロックからなるスクラッチブロックと、
    1つ以上の物理ブロックからなるデータブロックと、
    1つ以上の物理ブロックからなる消去済みブロックと、から構成され、
    前記メモリは、
    前記スクラッチブロックを管理するためのスクラッチブロック管理テーブルと、
    前記データブロックを管理するためのデータブロック管理テーブルと、
    前記消去済みブロックを管理するための消去済みブロック管理テーブルと、
    物理ブロック管理テーブルと、
    を有し、
    前記データブロック管理テーブルは、
    前記物理ブロックを特定する物理ブロック番号に関連付けて、当該物理ブロックが前記データブロックとして有効であるか否かを示すフラグを記憶しており、
    前記物理ブロック管理テーブルは、
    前記物理ブロックに関連付けて、有効なデータのページ数を記憶しており、
    前記記憶装置は、
    前記外部システムからのデータ書き込みを前記スクラッチブロックに対して行い、
    前記スクラッチブロック内の空きページが所定の数よりも少なくなった場合あるいは無くなった場合には、そのスクラッチブロックを前記データブロックの1つとして扱い、
    新しいスクラッチブロックとして前記消去済みブロックのうちいずれか1つを割り当て、
    前記消去済みブロックが不足した場合には、
    前記データブロック管理テーブルを参照し、前記データブロックとして登録されている物理ブロックの前記物理ブロック番号を取得し、
    前記物理ブロック管理テーブルを参照し、前記取得した物理ブロック番号に対応する前記ページ数を取得し、
    記データブロックの中から、前記取得したページ数が少ない物理ブロックを選択して有効なデータを前記スクラッチブロックにコピーした後、消去することを特徴とする記憶装置。
  2. 前記記憶装置は、
    前記データブロックと前記スクラッチブロックを一定量に分割した論理空間ごとに管理することを特徴とする請求の範囲第1項に記載の記憶装置。
  3. 前記記憶装置は、
    前記書き込み単位ごとに論理アドレス空間を分割することで一意に定められる論理アドレスと前記不揮発性半導体メモリの物理アドレスを対応させるテーブルを前記メモリ内に持ち、
    前記メモリコントローラが前記外部システムからのデータ書き込み命令に応じて前記テーブルの書き換えを行うことを特徴とする請求の範囲第1項に記載の記憶装置。
  4. 外部システムからの命令によって不揮発性半導体メモリへの読み出しおよび書き込み処理、ならびにメモリへの読み出しおよび書き込み処理を行うメモリコントローラであって、
    前記メモリコントローラは、
    前記不揮発性半導体メモリの記憶領域を、1つ以上の物理ブロックからなるスクラッチブロックと、1つ以上の物理ブロックからなるデータブロックと、1つ以上の物理ブロックからなる消去済みブロックと、から構成されるように扱い、
    前記データブロックを管理するためのデータブロック管理テーブルと、物理ブロック管理テーブルと、を前記メモリ内に有し、
    前記データブロック管理テーブルは、
    前記物理ブロックを特定する物理ブロック番号に関連付けて、当該物理ブロックが前記データブロックとして有効であるか否かを示すフラグを記憶しており、
    前記物理ブロック管理テーブルは、
    前記物理ブロックに関連付けて、有効なデータのページ数を記憶しており、
    前記メモリコントローラは、
    前記外部システムからのデータ書き込みを前記スクラッチブロックに対して行い、
    前記スクラッチブロック内の空きページが所定の数よりも少なくなった場合あるいは無くなった場合には、そのスクラッチブロックを前記データブロックの1つとして扱い、
    新しいスクラッチブロックとして前記消去済みブロックのうちいずれか1つを割り当て、
    前記消去済みブロックが不足した場合には、
    前記データブロック管理テーブルを参照し、前記データブロックとして登録されている物理ブロックの前記物理ブロック番号を取得し、
    前記物理ブロック管理テーブルを参照し、前記取得した物理ブロック番号に対応する前記ページ数を取得し、
    記データブロックの中から、前記取得したページ数が少ない物理ブロックを選択して、有効なデータを前記スクラッチブロックにコピーした後、消去することを特徴とするメモリコントローラ。
  5. 前記データブロックと前記スクラッチブロックを一定量に分割した論理空間ごとに管理することを特徴とする請求の範囲第項に記載のメモリコントローラ。
  6. 前記書き込み単位ごとに論理アドレス空間を分割することで一意に定められる論理アドレスと前記不揮発性半導体メモリの物理アドレスを対応させるテーブルを前記メモリ内に持ち、
    前記外部システムからのデータ書き込み命令に応じて前記テーブルの書き換えを行うことを特徴とする請求の範囲第項に記載のメモリコントローラ。
JP2011544261A 2009-12-03 2010-12-01 記憶装置、およびメモリコントローラ Expired - Fee Related JP5480913B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011544261A JP5480913B2 (ja) 2009-12-03 2010-12-01 記憶装置、およびメモリコントローラ

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009275048 2009-12-03
JP2009275048 2009-12-03
JP2011544261A JP5480913B2 (ja) 2009-12-03 2010-12-01 記憶装置、およびメモリコントローラ
PCT/JP2010/071429 WO2011068109A1 (ja) 2009-12-03 2010-12-01 記憶装置、およびメモリコントローラ

Publications (2)

Publication Number Publication Date
JPWO2011068109A1 JPWO2011068109A1 (ja) 2013-04-18
JP5480913B2 true JP5480913B2 (ja) 2014-04-23

Family

ID=44114955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011544261A Expired - Fee Related JP5480913B2 (ja) 2009-12-03 2010-12-01 記憶装置、およびメモリコントローラ

Country Status (5)

Country Link
US (1) US8949515B2 (ja)
JP (1) JP5480913B2 (ja)
DE (1) DE112010004667T5 (ja)
GB (1) GB2488480B (ja)
WO (1) WO2011068109A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5831298B2 (ja) * 2012-03-06 2015-12-09 富士通株式会社 プログラム、情報処理装置およびインデックス生成方法
JP2013222236A (ja) 2012-04-13 2013-10-28 Hitachi Ltd メモリの管理方法、記憶装置およびそれを搭載した計算機
JP6012432B2 (ja) * 2012-11-27 2016-10-25 株式会社メガチップス 半導体記憶装置
US11182284B2 (en) * 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9875064B2 (en) * 2015-03-11 2018-01-23 Toshiba Memory Corporation Storage system architecture for improved data management
US9959175B1 (en) * 2015-06-30 2018-05-01 Spanning Cloud Apps, LLC Restoring deleted objects in a web application
JP2017097404A (ja) * 2015-11-18 2017-06-01 株式会社デンソー マイクロコンピュータ
KR20180009217A (ko) * 2016-07-18 2018-01-26 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
JP6524039B2 (ja) * 2016-09-23 2019-06-05 東芝メモリ株式会社 メモリシステム及び制御方法
JP6618941B2 (ja) * 2017-03-03 2019-12-11 株式会社東芝 管理装置、情報処理装置および管理方法
KR102645142B1 (ko) * 2018-10-25 2024-03-07 삼성전자주식회사 예측된 유효 페이지들을 이용하여 가비지 콜렉션을 수행하는 스토리지 장치들, 방법들 및 불휘발성 메모리 장치들
JP7081443B2 (ja) * 2018-10-31 2022-06-07 オムロン株式会社 信号処理装置、および情報書換装置
JP7238647B2 (ja) * 2019-07-08 2023-03-14 オムロン株式会社 信号処理装置
CN111966302A (zh) * 2020-08-26 2020-11-20 南京扬贺扬微电子科技有限公司 一种基于逻辑物理映射表的SPI Nand数据写入方法
CN112908390B (zh) * 2021-02-02 2023-07-28 深圳市显控科技股份有限公司 数据存储方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527924A (ja) * 1991-07-12 1993-02-05 Internatl Business Mach Corp <Ibm> 半導体メモリを用いた外部記憶システム及びその制御方法
JP2002513484A (ja) * 1996-11-25 2002-05-08 マクロニクス インターナショナル カンパニー リミテッド フラッシュメモリ大容量記憶システム
JP2004078902A (ja) * 2002-06-19 2004-03-11 Tokyo Electron Device Ltd 記憶装置、メモリ管理方法及びプログラム
WO2007013372A1 (ja) * 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
JP2007334852A (ja) * 2005-11-30 2007-12-27 Sony Corp 記憶装置、コンピュータシステム、および記憶装置のアクセス方法
JP2008130088A (ja) * 2006-11-20 2008-06-05 Samsung Electronics Co Ltd 不揮発性メモリ管理方法及び装置
JP2008146254A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
JP2008217208A (ja) * 2007-03-01 2008-09-18 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3904182B2 (ja) 2000-11-21 2007-04-11 シャープ株式会社 データ管理システムおよびそれを用いたデータ管理方法
WO2004001605A1 (en) 2002-06-19 2003-12-31 Tokyo Electron Device Limited Memory device, memory managing method and program
US7315916B2 (en) 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
WO2008106686A1 (en) * 2007-03-01 2008-09-04 Douglas Dumitru Fast block device and methodology
JP4829202B2 (ja) 2007-11-02 2011-12-07 株式会社日立製作所 記憶装置及びメモリ制御方法
US20090271562A1 (en) 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527924A (ja) * 1991-07-12 1993-02-05 Internatl Business Mach Corp <Ibm> 半導体メモリを用いた外部記憶システム及びその制御方法
JP2002513484A (ja) * 1996-11-25 2002-05-08 マクロニクス インターナショナル カンパニー リミテッド フラッシュメモリ大容量記憶システム
JP2004078902A (ja) * 2002-06-19 2004-03-11 Tokyo Electron Device Ltd 記憶装置、メモリ管理方法及びプログラム
WO2007013372A1 (ja) * 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
JP2007334852A (ja) * 2005-11-30 2007-12-27 Sony Corp 記憶装置、コンピュータシステム、および記憶装置のアクセス方法
JP2008130088A (ja) * 2006-11-20 2008-06-05 Samsung Electronics Co Ltd 不揮発性メモリ管理方法及び装置
JP2008146254A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
JP2008217208A (ja) * 2007-03-01 2008-09-18 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法

Also Published As

Publication number Publication date
GB2488480B (en) 2017-07-19
US8949515B2 (en) 2015-02-03
JPWO2011068109A1 (ja) 2013-04-18
DE112010004667T5 (de) 2013-01-17
US20120246399A1 (en) 2012-09-27
WO2011068109A1 (ja) 2011-06-09
GB201209881D0 (en) 2012-07-18
GB2488480A (en) 2012-08-29

Similar Documents

Publication Publication Date Title
JP5480913B2 (ja) 記憶装置、およびメモリコントローラ
JP4004468B2 (ja) 大きなページをサポートするようにさせるための方法およびシステム
KR100684942B1 (ko) 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
US8316176B1 (en) Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US7487303B2 (en) Flash memory device and associated data merge method
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
WO2011086732A1 (en) Storage device management device and method for managing storage device
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
JP5570406B2 (ja) メモリコントローラ、及びデータ記録装置
US8037236B2 (en) Flash memory writing method and storage system and controller using the same
TW201727472A (zh) 資料儲存方法及其系統
JP2018160189A (ja) メモリシステム
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4561246B2 (ja) メモリ装置
JP4737223B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11080203B2 (en) Data storage device and control method for non-volatile memory
JP4985108B2 (ja) データ記憶装置およびその制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140214

R150 Certificate of patent or registration of utility model

Ref document number: 5480913

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees