JP5180726B2 - 記憶装置およびデータ書き込み制御方法 - Google Patents
記憶装置およびデータ書き込み制御方法 Download PDFInfo
- Publication number
- JP5180726B2 JP5180726B2 JP2008198024A JP2008198024A JP5180726B2 JP 5180726 B2 JP5180726 B2 JP 5180726B2 JP 2008198024 A JP2008198024 A JP 2008198024A JP 2008198024 A JP2008198024 A JP 2008198024A JP 5180726 B2 JP5180726 B2 JP 5180726B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- page
- replacement
- written
- 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.)
- Active
Links
Images
Description
以下に、本発明を実施するための最良の形態(以下、実施の形態とする)を説明する。まず、本実施の形態の記憶装置において前提とする半導体メモリの構成と、この半導体メモリへのデータ書き込み処理の概要を説明する。なお、以下の説明においてこの半導体メモリは、フラッシュメモリ等の不揮発性半導体メモリであるものとして説明する。
次に、このような半導体メモリ2を含む記憶装置について説明する。図5は、本実施の形態の記憶装置のハードウェア構成例を示した図である。なお、本実施の形態の記憶装置は、外部のホスト装置からの指示に基づき、記憶装置内の半導体メモリ2のデータの読み出しや書き込みを行うものとして説明する。
メモリ制御部1は、マイクロプロセッサ11と、メモリI/F(インターフェース)制御部12と、ホストI/F制御部13と、メモリ14とを備える。
メモリ14の論理/物理変換テーブル141は、この半導体メモリ2の論理的記憶領域のアドレス(論理アドレス)ごとに、この論理アドレスに対応する半導体メモリ2上の物理アドレスを示した情報である。図6は、図5の論理/物理変換テーブルの構成例を示した図である。図6の(a)は、初期状態の論理/物理変換テーブル、(b)は、ページ書き換え後の論理/物理変換テーブル、(c)は、ブロック交替後の論理/物理変換テーブルを例示した図である。この論理/物理変換テーブル141は、論理アドレス1410と、この論理アドレス1410に対応する半導体メモリ2上の物理アドレス1411とを含んで構成される。この物理アドレス1411は、半導体メモリ2のブロック番号とページ番号とにより記述される。この物理アドレス1411は、半導体メモリ2上のデータの書き込み処理により値が変わり、例えば、図6の(a)に示す初期状態からページ書き換え後、(b)に示す状態になり、ブロック交替後、(c)に示す状態になる。図5のメモリ制御部1が、このように書き換えられた論理/物理変換テーブル141を参照することで、ホスト装置3からデータの読み出しまたは書き込み(上書き)指示を受け付けたとき、半導体メモリ2上の最新データが書き込まれた記憶領域に対しデータの読み出しや書き込み(上書き)を行うことができる。
次回書き込みページ管理テーブル142は、ブロックごとに、当該ブロックにおいて次に書き込むページの先頭アドレスを示した情報である。図7は、図5の次回書き込みページ管理テーブルの構成例を示した図である。図7の(a)は、初期状態の次回書き込みページ管理テーブル、(b)は、ページ書き換え後の次回書き込みページ管理テーブル、(c)は、ブロック交替後の次回書き込みページ管理テーブルを例示した図である。次回書き込みページ管理テーブル142は、各ブロックの番号を示すブロック番号1420と、このブロックに次回書き込むべきページである次回書き込みページ1421とを含んで構成される。この次回書き込みページ管理テーブル142は、例えば、図7(a)に示す初期状態からページ書き換え後、(b)に示す状態になり、ブロック交替後、(c)に示すような状態になる。メモリ制御部1が、このように書き換えられた次回書き込みページ管理テーブル142を参照することで、ホスト装置3からデータの書き込み指示を受け付けたとき、同じ記憶領域に重複してデータを書き込むことがなくなる。
交替ブロックリストテーブル143は、交替ブロック23(図2〜図4参照)のうち、次にデータブロック22として割り当てるブロックを示した情報である。図8は、図5の交替ブロックリストテーブルの構成例を示した図である。図8の(a)は、初期状態の交替ブロックリストテーブル、(b)は、ページ書き換え後の交替ブロックリストテーブルを例示した図である。この交替ブロックリストテーブル143は、使用可能な交替ブロック23のブロック番号が使用する順番に並んでおり、例えば、交替ブロック23の「ブロック(p+1)」が使用されると、図8の(a)に示す初期状態の交替ブロックリストテーブルから、この「ブロック(p+1)」の情報が消去される。そして、「ブロック(p+2)」が繰り上がり、(b)に示す状態になる。メモリ制御部1が、このような交替ブロックリストテーブル143を参照することで、次にどのブロックをデータブロック22として割り当ればよいかを判断できる。
消去回数管理テーブル144は、各ブロックの消去回数を示した情報である。図9は、図5の消去回数管理テーブルの構成例を示した図である。図9の(a)は、初期状態の消去回数管理テーブル、(b)は、ブロック交替後の消去回数管理テーブルを例示した図である。この消去回数管理テーブル144は、各ブロックのブロック番号1440と、このブロックの消去回数1441とを含んで構成される。例えば、図9(a)に示す「ブロック1」のデータが消去されると、(b)に示すように、この消去回数管理テーブル144のブロック1の消去回数が「1」加算される。
消去候補管理テーブル145は、データ消去待ちブロックのブロック番号を消去順に並べた情報である。図10は、図5の消去候補管理テーブルの構成例を示した図である。図10(a)は、初期状態の消去候補管理テーブル、(b)はブロック交替後の消去候補管理テーブルを例示した図である。この消去候補管理テーブル145は、例えば、「ブロック1」に書き込まれていたデータが交替ブロック23から割り当てた別のブロックへ移されたとき(ブロック交替がされたとき)と、図10(b)に示すように、消去候補管理テーブル145に「ブロック1」の情報が追加される。メモリ制御部1が、このような消去候補管理テーブル145を参照することで、次に、どのブロックのデータを消去すればよいか(つまり、どのブロックを交替ブロック23に割り当てればよいか)を判断することができる。
次に、適宜、図5〜図10を参照しつつ、図11〜図14のフローチャートに基づいて、メモリ制御部1のマイクロプロセッサ11(図5参照)の処理手順を説明する。
図11は、図5のマイクロプロセッサによる半導体メモリへの書き込み処理手順を示したフローチャートである。まず、図11を用いて、マイクロプロセッサ11による半導体メモリ2への書き込み処理を説明する。
次に、図11のS707のブロック交替処理について、図12を用いて説明する。図12は、図5のマイクロプロセッサによる半導体メモリのブロック交替処理手順を示したフローチャートである。
なお、ホスト装置3からデータの読み出し指示を受け付けたときには、以下のような処理を実行する。まず、マイクロプロセッサ11は、ホストI/F制御部13を介して、ホスト装置3から論理アドレス、データサイズを受信する。
次に、図13を用いて、データ消去処理の流れを説明する。図13は、図5のマイクロプロセッサによる半導体メモリのデータ消去処理手順を示したフローチャートである。
次に、図14を用いて、記憶装置6の電源オフ等により、メモリ14が初期化された場合における、管理データを用いた論理/物理変換テーブル141の復元処理の流れを説明する。図14は、図5のマイクロプロセッサによる論理/物理変換テーブルの復元処理手順を示したフローチャートである。
2 半導体メモリ
3 ホスト装置
4,5 データバス
6 記憶装置
11 マイクロプロセッサ
12 メモリI/F制御部
13 ホストI/F制御部
14 メモリ
21 ブロック
22 データブロック
23 交替ブロック
141 論理/物理変換テーブル(論理/物理変換情報)
142 次回書き込みページ管理テーブル(ページ管理情報)
143 交替ブロックリストテーブル(交替ブロック情報)
144 消去回数管理テーブル
145 消去候補管理テーブル
222 データページ
223 交替ページ
2222,2322 管理データ
Claims (4)
- 記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きなブロックの単位でデータの消去を行う不揮発性半導体メモリと、外部装置からの指示に従い、前記不揮発性半導体メモリの記憶領域に対するデータの読み出しまたは書き込みを制御するメモリ制御部とを備える記憶装置であって、
前記不揮発性半導体メモリの記憶領域のブロック群は、データブロックと、交替ブロックとに分けられ、
前記それぞれのブロックは、前記所定の単位で書き込まれたデータを記憶するデータページと、このデータページのデータに対する上書きデータの書き込みを受け付ける交替ページとを備え、
前記データページに書き込まれたデータは、そのデータの論理アドレスおよび所定のカウンタナンバを示した管理データを含み、
前記メモリ制御部は、
前記不揮発性半導体メモリの記憶領域の論理アドレスごとに、この論理アドレスに対応する前記記憶領域の物理アドレスを示した論理/物理変換情報と、
前記交替ブロックの物理アドレスを示した交替ブロック情報と、
前記ブロックごとに、このブロックに上書きデータを書き込むときの交替ページを示したページ管理情報とを記憶し、
前記外部装置から、前記上書きデータの書き込み指示を受け付けたとき、前記書き込み指示に含まれる論理アドレスと、前記論理/物理変換情報とを参照して、前記論理アドレスに対応するデータブロックの物理アドレスを特定し、
前記ページ管理情報を参照して、前記特定した物理アドレスのデータブロックにおける前記上書きデータの書き込み先となる交替ページを特定し、
前記上書きデータの容量が、前記特定した交替ページのデータ容量以下の場合、この特定した交替ページに前記上書きデータを書き込み、
前記上書きのデータの容量が、前記特定した交替ページの容量を超える場合、前記特定した物理アドレスのデータブロックに書き込まれたデータを読み出し、この読み出したデータに含まれる管理データから、この管理データに含まれるカウンタナンバの値を更新した新たなカウンタナンバと、前記管理データに含まれる論理アドレスと同じ論理アドレスとを含む新たな管理データを作成し、
前記特定した物理アドレスのデータブロックに書き込まれたデータを前記上書きデータで更新したデータを作成し、
前記作成したデータに、前記作成した管理データを含めて前記交替ブロック情報に示される交替ブロックに書き込み、
初期化された前記論理/物理変換情報を復元するとき、
前記記憶領域の各データブロックに書き込まれたデータを読み出し、この読み出したデータそれぞれの管理データに含まれる前記論理アドレスと、そのデータの読み出し元である記憶領域の物理アドレスとを用いて、前記論理/物理変換情報を復元し、
前記読み出したデータの管理データに含まれる論理アドレスを参照して、同じ論理アドレスのデータが複数あった場合、これらのデータのうち、
最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みがあるとき、当該最終のデータページにデータの書き込みのある物理アドレスを選択して、前記論理/物理変換情報を復元し、
前記最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みが無いとき、前記同じ論理アドレスのデータのうち、前記最終のデータページにデータの書き込みがあるデータを選択して前記論理/物理変換情報を復元することを特徴とする記憶装置。 - 前記メモリ制御部は、
新たなデータを前記記憶領域に書き込んだとき、
前記論理/物理変換情報における前記データの論理アドレスに対応する物理アドレスを、前記データを書き込んだ記憶領域の物理アドレスに更新し、
前記データの書き込み先が、前記交替ページの場合、
さらに、前記ページ管理情報に示される前記交替ページを、前記上書きデータが書き込まれたページの次のページに更新し、
前記データの書き込み先が、前記交替ブロックの場合、
さらに、前記交替ブロック情報から、前記データを書き込んだブロックの物理アドレスを削除することを特徴とする請求項1に記載の記憶装置。 - 前記メモリ制御部は、
前記交替ブロック情報に示される交替ブロックに、前記データを書き込んだ後、
前記特定したデータブロックに記憶されているデータを消去することを特徴とする請求項2に記載の記憶装置。 - 記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きなブロックの単位でデータの消去を行う不揮発性半導体メモリに対するデータ書き込み制御方法であって、
前記不揮発性半導体メモリの記憶領域のブロック群は、データブロックと、交替ブロックとに分けられ、
前記それぞれのブロックは、前記所定の単位で書き込まれたデータを記憶するデータページと、このデータページのデータに対する上書きデータの書き込みを受け付ける交替ページとを備え、
前記データページに書き込まれたデータは、そのデータの論理アドレスおよび所定のカウンタナンバを示した管理データを含み、
前記不揮発性半導体メモリの記憶領域の論理アドレスごとに、この論理アドレスに対応する前記記憶領域の物理アドレスを示した論理/物理変換情報と、
前記交替ブロックの物理アドレスを示した交替ブロック情報と、
前記ブロックごとに、このブロックに上書きデータを書き込むときの交替ページを示したページ管理情報とを記憶し、前記不揮発性半導体メモリの記憶領域に対するデータの読み出しまたは書き込みを制御するメモリ制御部が、
前記外部装置から、前記上書きデータの書き込み指示を受け付けたとき、前記書き込み指示に含まれる論理アドレスと、前記論理/物理変換情報とを参照して、前記論理アドレスに対応するデータブロックの物理アドレスを特定し、
前記ページ管理情報を参照して、前記特定した物理アドレスのデータブロックにおける前記上書きデータの書き込み先となる交替ページを特定し、
前記上書きデータの容量が、前記特定した交替ページのデータ容量以下の場合、この特定した交替ページに前記上書きデータを書き込み、
前記上書きのデータの容量が、前記特定した交替ページの容量を超える場合、前記特定した物理アドレスのデータブロックに書き込まれたデータを読み出し、この読み出したデータに含まれる管理データから、この管理データに含まれるカウンタナンバの値を更新した新たなカウンタナンバと、前記管理データに含まれる論理アドレスと同じ論理アドレスとを含む新たな管理データを作成し、
前記特定した物理アドレスのデータブロックに書き込まれたデータを前記上書きデータで更新したデータを作成し、
前記作成したデータに、前記作成した管理データを含めて前記交替ブロック情報に示される交替ブロックに書き込み、
初期化された前記論理/物理変換情報を復元するとき、
前記記憶領域の各データブロックに書き込まれたデータを読み出し、この読み出したデータそれぞれの管理データに含まれる前記論理アドレスと、そのデータの読み出し元である記憶領域の物理アドレスとを用いて、前記論理/物理変換情報を復元し、
前記読み出したデータの管理データに含まれる論理アドレスを参照して、同じ論理アドレスのデータが複数あった場合、これらのデータのうち、
最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みがあるとき、当該最終のデータページにデータの書き込みのある物理アドレスを選択して、前記論理/物理変換情報を復元し、
前記最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みが無いとき、前記同じ論理アドレスのデータのうち、前記最終のデータページにデータの書き込みがあるデータを選択して前記論理/物理変換情報を復元することを特徴とするデータ書き込み制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008198024A JP5180726B2 (ja) | 2008-07-31 | 2008-07-31 | 記憶装置およびデータ書き込み制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008198024A JP5180726B2 (ja) | 2008-07-31 | 2008-07-31 | 記憶装置およびデータ書き込み制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010039509A JP2010039509A (ja) | 2010-02-18 |
JP5180726B2 true JP5180726B2 (ja) | 2013-04-10 |
Family
ID=42012035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008198024A Active JP5180726B2 (ja) | 2008-07-31 | 2008-07-31 | 記憶装置およびデータ書き込み制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5180726B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6260395B2 (ja) * | 2014-03-27 | 2018-01-17 | Tdk株式会社 | メモリコントローラ、メモリシステム及びメモリ制御方法 |
CN110399325B (zh) * | 2019-07-30 | 2023-05-30 | 江西理工大学 | 一种基于iic总线协议的改进型ip核 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
JP4665539B2 (ja) * | 2005-01-31 | 2011-04-06 | ソニー株式会社 | メモリ制御装置、メモリ制御方法、プログラム |
-
2008
- 2008-07-31 JP JP2008198024A patent/JP5180726B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010039509A (ja) | 2010-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4837731B2 (ja) | プログラム可能な耐久度を有するフラッシュメモリ | |
JP4633802B2 (ja) | 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法 | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
JP3892851B2 (ja) | メモリカード及び半導体装置 | |
JP5026213B2 (ja) | ストレージ装置及びデータ重複排除方法 | |
KR101465789B1 (ko) | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 | |
KR102252419B1 (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
US20070214309A1 (en) | Nonvolatile storage device and data writing method thereof | |
JP6007332B2 (ja) | ストレージシステム及びデータライト方法 | |
JP5480913B2 (ja) | 記憶装置、およびメモリコントローラ | |
JP2008226149A (ja) | ストレージシステム及びストレージシステムのライト性能低下防止方法 | |
JP2008033788A (ja) | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 | |
WO2007000862A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 | |
JP2005242897A (ja) | フラッシュディスク装置 | |
US20100318726A1 (en) | Memory system and memory system managing method | |
JP2008159013A (ja) | 半導体記憶装置 | |
JP4253272B2 (ja) | メモリカード、半導体装置、及び半導体メモリの制御方法 | |
JP2012128545A (ja) | メモリコントローラ、及びデータ記録装置 | |
JP4829202B2 (ja) | 記憶装置及びメモリ制御方法 | |
US20100030947A1 (en) | High-speed solid state storage system | |
JPWO2007105688A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
KR101369408B1 (ko) | 스토리지 시스템 및 이의 데이터 전송 방법 | |
JP5180726B2 (ja) | 記憶装置およびデータ書き込み制御方法 | |
JP4308780B2 (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
JP4661369B2 (ja) | メモリコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120904 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121207 |
|
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: 20130108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130111 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5180726 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |