JP4235646B2 - メモリコントローラおよびフラッシュメモリシステム - Google Patents
メモリコントローラおよびフラッシュメモリシステム Download PDFInfo
- Publication number
- JP4235646B2 JP4235646B2 JP2005380054A JP2005380054A JP4235646B2 JP 4235646 B2 JP4235646 B2 JP 4235646B2 JP 2005380054 A JP2005380054 A JP 2005380054A JP 2005380054 A JP2005380054 A JP 2005380054A JP 4235646 B2 JP4235646 B2 JP 4235646B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- bit
- physical
- empty
- group
- 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
Links
Images
Description
このような機器が扱うデータが大容量化したことに伴い、フラッシュメモリの記憶容量も大容量化が進んでいる。このように大容量化したフラッシュメモリを円滑に管理するため、近年は、この記憶領域を複数のゾーンに分割して管理する手法が用いられている(たとえば、特許文献1を参照)。
ホストシステムから与えられる指示情報に基づいて、物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
各ビットの論理値が、各ビットと対応する物理ブロックが空きブロックであるか否かを示している複数ビットの情報を保持する情報保持手段と、
前記情報保持手段に保持されている各ビットと前記フラッシュメモリ内の各物理ブロックの対応関係を管理するビット管理手段と、
前記フラッシュメモリ内のいずれかの物理ブロックが空きブロックになったとき又は空きブロックでなくなったときに、前記情報保持手段に保持されている前記いずれかの物理ブロックに対応するビットの論理値を更新する情報更新手段と、
前記情報保持手段に保持されている前記複数ビットの情報を、前記複数ビットの情報に対応する複数個の物理ブロックを対象とした空きブロックの検索に対して設定された所定の検索順序が連続する所定数のビットを含むビット列に分割して管理するビット列管理手段と、
前記所定の検索順序で空きブロックの検索を行うため、前記情報保持手段から所定の読み出し順序で前記ビット列を読み出し、読み出した前記ビット列に含まれるビットの論理値が空きブロックに対応するか否かを、所定の判断順序で順次判断していくことにより、空きブロックを検出する検出手段と、
前記指示情報に基づいて、前記ホストシステムから与えられるデータの書き込み先として特定された論理ブロックに、前記検出手段によって検出された空きブロックを割り当てるブロック管理手段と、
前記指示情報に基づいて、前記ホストシステムから与えられるデータの書き込み先の論理ブロックを特定し、特定された論理ブロックに割り当てられている物理ブロックに前記ホストシステムから与えられるデータを書き込む書き込み手段と、
前記所定の読み出し順序が連続している複数の前記ビット列でグループを構成し、それぞれの前記グループに含まれる空きブロックに対応するビットの個数を示す空きブロック数情報を前記グループ毎に保持するグループデータ保持手段と、
前記フラッシュメモリ内のいずれかの物理ブロックが空きブロックになったとき又は空きブロックでなくなったときに、前記グループデータ保持手段に保持されている前記いずれかの物理ブロックに対応するビットが属する前記グループの前記空きブロック数情報を更新するグループデータ更新手段と、
を備え、
前記検出手段は、
空きブロックを検出したときに、空きブロックを検出するための空きブロック検索を終了し、次に前記空きブロック検索を開始するときは、前回の前記空きブロック検索で検出された空きブロックに対して前記所定の検索順序における順序が次の物理ブロックに対応するビットから前記空きブロック検索を開始し、
前記空きブロック検索を開始するとき、又は前記空きブロック検索において読み出す前記ビット列が属する前記グループが異なる前記グループに遷移するときに、前記グループデータ保持手段に保持されている前記空きブロック数情報に基づいて、読み出す前記ビット列が属する前記グループに含まれる空きブロックに対応するビットの個数が0個であるか否かを判別する判別処理を行い、更に、前記判別処理において空きブロックに対応するビットの個数が0個であると判別した場合、当該判別処理の対象になった前記グループに属する前記ビット列を読み飛ばすことを特徴とする。
前記検出手段は、前記空きブロック検索を開始するビットが前記ビット列における前記所定の判断順序が先頭でないビットに対応する場合は、前記空きブロック検索を開始するビットより前記所定の判断順序が前のビットに対して、空きブロックに対応しない論理値になるようなマスク処理を施し、前記マスク処理を施した前記ビット列について、前記所定の判断順序が先頭のビットから論理値が空きブロックに対応するか否かを順次判断していくことが好ましい。
上記のメモリコントローラと、
フラッシュメモリと、
から構成されることを特徴とする。
マイクロプロセッサ6は、たとえば、シフトレジスタとフラグレジスタとを備え、フラグレジスタはシフトレジスタの演算によりキャリーが発生した場合、キャリーフラグを立てる。
又、本実施形態のようにサブグループ及びグループに含まれる物理ブロックの数が2のべき乗個の場合には、PZIBNを2進数で表したときの特定範囲のビットからSGNとGNを求めることができる。本実施形態では、サブグループに含まれる物理ブロックが8個で、グループに含まれる物理ブロックが64個なので、10ビット(#0〜#1023は)のPZIBNの上位7ビットがSGNに対応し、PZIBNの上位4ビットがGNに対応する。例えば、PZIBN「00 1001 1001」(#153)が属するサブグループのSGNは「001 0011」(#19)に対応し、PZIBN#153が属するサブグループのGNは「0010」(#2)に対応する。
具体的に説明すれば、PZIBN#0から順番に物理ブロックの冗長領域26に書き込まれている論理アドレス情報(LZIBN)とブロックステータスを順次読み出していき、PZIBN#4の物理ブロックが空きブロックであると判別すると、対象ゾーンの空きブロック検索テーブルの1行目の下位から5ビット目の論理値を“1”に変更し、GN#0のFBNの値を1に書き換える。その後、引き続き論理アドレス情報(LZIBN)とブロックステータスを順次読み出していき、PZIBN#12の物理ブロックが空きブロックであると判別すると、2行目の下位から5ビット目の論理値を“1”に変更し、GN#0のFBNの値を2に書き換える。以下同様に、空きブロックであると判別した物理ブロックのPZIBNに対応するビットの論理値を“1”に変更し、空きブロックであると判別した物理ブロックのPZIBNが属するグループのFBNを更新する。
又、空きブロックにデータを書き込んだ場合は、データを書き込んだ物理ブロックに対応するビットの論理値を“0”に変更し、更に、その物理ブロックが属するグループのFBNの値を1減らした値に書き換える。一方、データが書き込まれていた物理ブロックを消去処理した場合は、その物理ブロックに対応するビットの論理値を“1”に変更し、更に、その物理ブロックが属するグループのFBNの値を1増やした値に書き換える。
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
25 ユーザ領域
26 冗長領域
Claims (5)
- ホストシステムから与えられる指示情報に基づいて、物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
各ビットの論理値が、各ビットと対応する物理ブロックが空きブロックであるか否かを示している複数ビットの情報を保持する情報保持手段と、
前記情報保持手段に保持されている各ビットと前記フラッシュメモリ内の各物理ブロックの対応関係を管理するビット管理手段と、
前記フラッシュメモリ内のいずれかの物理ブロックが空きブロックになったとき又は空きブロックでなくなったときに、前記情報保持手段に保持されている前記いずれかの物理ブロックに対応するビットの論理値を更新する情報更新手段と、
前記情報保持手段に保持されている前記複数ビットの情報を、前記複数ビットの情報に対応する複数個の物理ブロックを対象とした空きブロックの検索に対して設定された所定の検索順序が連続する所定数のビットを含むビット列に分割して管理するビット列管理手段と、
前記所定の検索順序で空きブロックの検索を行うため、前記情報保持手段から所定の読み出し順序で前記ビット列を読み出し、読み出した前記ビット列に含まれるビットの論理値が空きブロックに対応するか否かを、所定の判断順序で順次判断していくことにより、空きブロックを検出する検出手段と、
前記指示情報に基づいて、前記ホストシステムから与えられるデータの書き込み先として特定された論理ブロックに、前記検出手段によって検出された空きブロックを割り当てるブロック管理手段と、
前記指示情報に基づいて、前記ホストシステムから与えられるデータの書き込み先の論理ブロックを特定し、特定された論理ブロックに割り当てられている物理ブロックに前記ホストシステムから与えられるデータを書き込む書き込み手段と、
前記所定の読み出し順序が連続している複数の前記ビット列でグループを構成し、それぞれの前記グループに含まれる空きブロックに対応するビットの個数を示す空きブロック数情報を前記グループ毎に保持するグループデータ保持手段と、
前記フラッシュメモリ内のいずれかの物理ブロックが空きブロックになったとき又は空きブロックでなくなったときに、前記グループデータ保持手段に保持されている前記いずれかの物理ブロックに対応するビットが属する前記グループの前記空きブロック数情報を更新するグループデータ更新手段と、
を備え、
前記検出手段は、
空きブロックを検出したときに、空きブロックを検出するための空きブロック検索を終了し、次に前記空きブロック検索を開始するときは、前回の前記空きブロック検索で検出された空きブロックに対して前記所定の検索順序における順序が次の物理ブロックに対応するビットから前記空きブロック検索を開始し、
前記空きブロック検索を開始するとき、又は前記空きブロック検索において読み出す前記ビット列が属する前記グループが異なる前記グループに遷移するときに、前記グループデータ保持手段に保持されている前記空きブロック数情報に基づいて、読み出す前記ビット列が属する前記グループに含まれる空きブロックに対応するビットの個数が0個であるか否かを判別する判別処理を行い、更に、前記判別処理において空きブロックに対応するビットの個数が0個であると判別した場合、当該判別処理の対象になった前記グループに属する前記ビット列を読み飛ばすことを特徴とするメモリコントローラ。 - 前記検出手段は、前記空きブロック検索を開始するビットが前記ビット列における前記所定の判断順序が先頭でないビットに対応する場合は、前記空きブロック検索を開始するビットより前記所定の判断順序が前のビットに対して、空きブロックに対応しない論理値になるようなマスク処理を施し、前記マスク処理を施した前記ビット列について、前記所定の判断順序が先頭のビットから論理値が空きブロックに対応するか否かを順次判断していくことを特徴とする請求項1に記載のメモリコントローラ。
- 前記ビット列に含まれるビットの個数が2のべき乗個であることを特徴とする請求項1又は2に記載のメモリコントローラ。
- 前記グループに含まれる前記ビット列の個数が2のべき乗個であることを特徴とする請求項3に記載のメモリコントローラ。
- 請求項1乃至4のいずれか1項に記載のメモリコントローラと、
フラッシュメモリと、
から構成されることを特徴とするフラッシュメモリシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005380054A JP4235646B2 (ja) | 2005-12-28 | 2005-12-28 | メモリコントローラおよびフラッシュメモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005380054A JP4235646B2 (ja) | 2005-12-28 | 2005-12-28 | メモリコントローラおよびフラッシュメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007179479A JP2007179479A (ja) | 2007-07-12 |
JP4235646B2 true JP4235646B2 (ja) | 2009-03-11 |
Family
ID=38304572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005380054A Expired - Fee Related JP4235646B2 (ja) | 2005-12-28 | 2005-12-28 | メモリコントローラおよびフラッシュメモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4235646B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4478731B2 (ja) | 2008-02-20 | 2010-06-09 | 富士通テン株式会社 | 通信装置及びゲートウェイ装置 |
CN101710919A (zh) * | 2009-11-11 | 2010-05-19 | 中兴通讯股份有限公司 | 一种移动终端快速加载短信的方法及装置 |
US9069657B2 (en) | 2011-12-12 | 2015-06-30 | Apple Inc. | LBA bitmap usage |
JP6053557B2 (ja) * | 2013-02-19 | 2016-12-27 | 三菱電機株式会社 | メモリ管理装置 |
CN103778964B (zh) * | 2013-12-30 | 2016-08-17 | 上海晨思电子科技有限公司 | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 |
-
2005
- 2005-12-28 JP JP2005380054A patent/JP4235646B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007179479A (ja) | 2007-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4171749B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
WO2007000862A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 | |
JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP4501881B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP4661497B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4636005B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4710753B2 (ja) | メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4434171B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP4661191B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4153535B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4241741B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP4661566B2 (ja) | アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法 | |
JP4254933B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP4213166B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP3934659B1 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP4661748B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4697146B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4513782B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4000124B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4227989B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2006048746A (ja) | メモリカード | |
JP4497124B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4569554B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4273109B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP4539621B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081021 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081121 |
|
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: 20081209 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081215 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |