JP4632180B2 - メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 - Google Patents
メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Download PDFInfo
- Publication number
- JP4632180B2 JP4632180B2 JP2008266409A JP2008266409A JP4632180B2 JP 4632180 B2 JP4632180 B2 JP 4632180B2 JP 2008266409 A JP2008266409 A JP 2008266409A JP 2008266409 A JP2008266409 A JP 2008266409A JP 4632180 B2 JP4632180 B2 JP 4632180B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- storage area
- data storage
- flash memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
ホストシステムから与えられるセクタ単位のアドレスが割り当てられている論理セクタ領域を複数個集めた論理ページを形成する論理ページ形成手段と、
前記論理ページ単位のデータが格納されるデータ格納領域を複数個備えたデータ格納手段と、
前記論理ページと前記データ格納領域との対応関係を管理する対応管理手段と、
前記対応管理手段により管理されている前記論理ページと前記データ格納領域との対応関係に従って、ホストシステムから与えられるデータを前記データ格納領域に格納する制御手段と、
前記データ格納領域内のホストシステムから与えられたデータが格納されている領域のセクタ数を、前記データ格納領域毎に管理する領域管理手段と、
前記データ格納領域に格納されているデータをフラッシュメモリに書き込むデータ書き込み手段とを備える。前記データ書き込み手段は、複数個の前記データ格納領域のうち、ホストシステムから与えられたデータが格納されている領域のセクタ数が多い前記データ格納領域を優先して、前記データ格納領域に格納されているデータをフラッシュメモリに書き込む。
ホストシステムから与えられるセクタ単位のアドレスが割り当てられている論理セクタ領域を複数個集めた論理ページを形成する論理ページ形成ステップと、
前記論理ページ単位のデータが格納されるデータ格納領域と、前記論理ページとの対応関係を管理する対応管理ステップと、
前記対応管理ステップにより管理されている前記論理ページと前記データ格納領域との対応関係に従って、ホストシステムから与えられるデータを前記データ格納領域に格納する制御ステップと、
前記データ格納領域内のホストシステムから与えられたデータが格納されている領域のセクタ数を、前記データ格納領域毎に管理する領域管理ステップと、
前記データ格納領域に格納されているデータをフラッシュメモリに書き込むデータ書き込みステップとを備える。前記データ書き込みステップでは、複数個の前記データ格納領域のうち、ホストシステムから与えられたデータが格納されている領域のセクタ数が多い前記データ格納領域を優先して、前記データ格納領域に格納されているデータがフラッシュメモリに書き込まれる。
フラッシュメモリ2a内のPBA#0の物理ブロックと
フラッシュメモリ2b内のPBA#0の物理ブロックと
フラッシュメモリ2c内のPBA#0の物理ブロックと
フラッシュメモリ2d内のPBA#0の物理ブロックと
フラッシュメモリ2e内のPBA#0の物理ブロックと
フラッシュメモリ2f内のPBA#0の物理ブロックと
フラッシュメモリ2g内のPBA#0の物理ブロックと
フラッシュメモリ2h内のPBA#0の物理ブロックと
で構成されていることが分かる。それぞれの仮想ブロックを構成する物理ブロックのPBAは、同一でなくてもよいが、仮想ブロックの管理等を考慮すれば、同じPBAの物理ブロックで仮想ブロックが構成されることが好ましい。但し、PBAが同一の8個の物理ブロック(互いに異なるフラッシュメモリ2a〜2hに属する物理ブロック)の中に不良ブロックが含まれている場合には、その不良ブロックに代えて、別の物理ブロック(PBAが異なる物理ブロック)が割り当てられる。例えば、フラッシュメモリ2c内のPBA#7の物理ブロックが不良ブロックの場合には、このPBA#7の物理ブロックに代えて、PBA#1016の物理ブロックがVBN#7の仮想ブロックに割り当てられる。
は、アドレス変換テーブルに基づいて特定される。また、それぞれの仮想ブロックを構成する物理ブロックは、仮想ブロック管理テーブルに基づいて特定される。そして、メモリコントローラ3は、このようにして特定された互いに異なるフラッシュメモリ2a〜2hに属する物理ブロック対して並行してデータの書き込みを行う。
Claims (5)
- ホストシステムから与えられる指示情報に基づいて、物理ページ単位でデータの書き込み及び読み出しが行われ、複数個の物理ページを含む物理ブロック単位でデータの消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
ホストシステムから与えられるセクタ単位のアドレスが割り当てられている論理セクタ領域を複数個集めた論理ページを形成する論理ページ形成手段と、
前記論理ページ単位のデータが格納されるデータ格納領域を複数個備えたデータ格納手段と、
前記論理ページと前記データ格納領域との対応関係を管理する対応管理手段と、
前記対応管理手段により管理されている前記論理ページと前記データ格納領域との対応関係に従って、ホストシステムから与えられるデータを前記データ格納領域に格納する制御手段と、
フラッシュメモリに格納されているデータを読み出し、前記データ格納領域に格納するデータ読み出し手段と、
異なる前記データ格納領域間で、一方の前記データ格納領域から他方の前記データ格納領域へのデータ転送を制御するデータ転送手段と、
前記データ格納領域内のホストシステムから与えられたデータが格納されている領域のセクタ数を、前記データ格納領域毎に管理する領域管理手段と、
前記データ格納領域に格納されているデータをフラッシュメモリに書き込むデータ書き込み手段とを備え、
前記データ読み出し手段は、前記制御手段が、いずれかの前記論理ページに対応するデータである第1のデータを、いずれかの前記データ格納領域である第1のデータ格納領域に格納するのに並行して、前記第1のデータと同じ前記論理ページに対応する第2のデータをフラッシュメモリから読み出し、読み出した前記第2のデータを、前記第1のデータ格納領域とは異なる前記データ格納領域である第2のデータ格納領域に格納し、
前記データ転送手段は、前記第1のデータ格納領域と前記第2のデータ格納領域との間でデータ転送を行うことにより、前記第2のデータの一部を前記第1のデータで置き換えたデータを作成し、
前記データ書き込み手段は、複数個の前記データ格納領域のうち、ホストシステムから与えられたデータが格納されている領域のセクタ数が多い前記データ格納領域を優先して、前記データ格納領域に格納されているデータをフラッシュメモリに書き込むことを特徴とするメモリコントローラ。 - 前記データ転送手段は、前記第1のデータの容量が前記論理ページの容量の1/2未満のときは、前記第1のデータを前記第2のデータ格納領域に転送し、前記第1のデータの容量が前記論理ページの容量の1/2以上のときは、前記第2のデータの一部を前記第1のデータ格納領域に転送することを特徴とする請求項1に記載のメモリコントローラ。
- 請求項1又は2に記載のメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備えるフラッシュメモリシステム。 - ホストシステムから与えられる指示情報に基づいて、物理ページ単位でデータの書き込み及び読み出しが行われ、複数個の物理ページを含む物理ブロック単位でデータの消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
ホストシステムから与えられるセクタ単位のアドレスが割り当てられている論理セクタ領域を複数個集めた論理ページを形成する論理ページ形成ステップと、
前記論理ページ単位のデータが格納されるデータ格納領域と、前記論理ページとの対応関係を管理する対応管理ステップと、
前記対応管理ステップにより管理されている前記論理ページと前記データ格納領域との対応関係に従って、ホストシステムから与えられるデータを前記データ格納領域に格納する制御ステップと、
フラッシュメモリに格納されているデータを読み出し、前記データ格納領域に格納するデータ読み出しステップと、
異なる前記データ格納領域間で、一方の前記データ格納領域から他方の前記データ格納領域へのデータ転送を制御するデータ転送ステップと、
前記データ格納領域内のホストシステムから与えられたデータが格納されている領域のセクタ数を、前記データ格納領域毎に管理する領域管理ステップと、
前記データ格納領域に格納されているデータをフラッシュメモリに書き込むデータ書き込みステップとを備え、
前記データ読み出しステップでは、前記制御ステップにより、いずれかの前記論理ページに対応するデータである第1のデータが、いずれかの前記データ格納領域である第1のデータ格納領域に格納されるのに並行して、前記第1のデータと同じ前記論理ページに対応する第2のデータをフラッシュメモリから読み出し、読み出した前記第2のデータを前記第1のデータの格納先になっている前記データ格納領域とは異なる前記データ格納領域である第2のデータ格納領域に格納し、
前記データ転送ステップでは、前記第1のデータ格納領域と前記第2のデータ格納領域との間でデータ転送を行うことにより、前記第2のデータの一部を前記第1のデータで置き換えたデータを作成し、
前記データ書き込みステップでは、複数個の前記データ格納領域のうち、ホストシステムから与えられたデータが格納されている領域のセクタ数が多い前記データ格納領域を優先して、前記データ格納領域に格納されているデータがフラッシュメモリに書き込まれることを特徴とするフラッシュメモリの制御方法。 - 前記データ転送ステップでは、前記第1のデータの容量が前記論理ページの容量の1/2未満のときは、前記第1のデータを前記第2のデータ格納領域に転送し、前記第1のデータの容量が前記論理ページの容量の1/2以上のときは、前記第2のデータの一部を前記第1のデータ格納領域に転送することを特徴とする請求項4に記載のフラッシュメモリの制御方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008266409A JP4632180B2 (ja) | 2008-10-15 | 2008-10-15 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
| US12/585,911 US8214579B2 (en) | 2008-09-30 | 2009-09-29 | Memory controller, flash memory system with memory controller, and method of controlling flash memory |
| US12/574,768 US8239615B2 (en) | 2008-09-30 | 2009-10-07 | Memory controller, flash memory system with memory controller, and method of controlling flash memory |
| US12/588,311 US8219742B2 (en) | 2008-10-15 | 2009-10-13 | Memory controller, flash memory system with memory controller, and method of controlling flash memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008266409A JP4632180B2 (ja) | 2008-10-15 | 2008-10-15 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010097333A JP2010097333A (ja) | 2010-04-30 |
| JP4632180B2 true JP4632180B2 (ja) | 2011-02-16 |
Family
ID=42099931
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008266409A Expired - Fee Related JP4632180B2 (ja) | 2008-09-30 | 2008-10-15 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8219742B2 (ja) |
| JP (1) | JP4632180B2 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5093294B2 (ja) | 2010-05-14 | 2012-12-12 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
| JP5464066B2 (ja) * | 2010-06-10 | 2014-04-09 | ソニー株式会社 | 通信装置、及び、通信方法 |
| US9390049B2 (en) * | 2011-06-03 | 2016-07-12 | Micron Technology, Inc. | Logical unit address assignment |
| US9417803B2 (en) | 2011-09-20 | 2016-08-16 | Apple Inc. | Adaptive mapping of logical addresses to memory devices in solid state drives |
| US9645919B2 (en) | 2013-03-14 | 2017-05-09 | Micron Technology, Inc. | Memory systems and methods including training, data organizing, and/or shadowing |
| US10713334B1 (en) | 2015-06-10 | 2020-07-14 | EMC IP Holding Company LLC | Data processing system with a scalable architecture over ethernet |
| US10515014B1 (en) | 2015-06-10 | 2019-12-24 | EMC IP Holding Company LLC | Non-uniform memory access (NUMA) mechanism for accessing memory with cache coherence |
| US10503416B1 (en) | 2015-06-10 | 2019-12-10 | EMC IP Holdings Company LLC | Flash memory complex with a replication interface to replicate data to another flash memory complex of a data processing system |
| US11010054B1 (en) | 2015-06-10 | 2021-05-18 | EMC IP Holding Company LLC | Exabyte-scale data processing system |
| US10496284B1 (en) * | 2015-06-10 | 2019-12-03 | EMC IP Holding Company LLC | Software-implemented flash translation layer policies in a data processing system |
| TWI615770B (zh) * | 2015-11-17 | 2018-02-21 | 群聯電子股份有限公司 | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 |
| US11288007B2 (en) * | 2019-05-16 | 2022-03-29 | Western Digital Technologies, Inc. | Virtual physical erase of a memory of a data storage device |
| US11733895B2 (en) * | 2021-03-31 | 2023-08-22 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
| JP7705446B2 (ja) * | 2021-11-30 | 2025-07-09 | Tdk株式会社 | メモリコントローラおよびフラッシュメモリシステム |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06349286A (ja) * | 1993-06-04 | 1994-12-22 | Matsushita Electric Ind Co Ltd | フラッシュメモリ用書き込み制御方法および制御装置 |
| JPH0784886A (ja) * | 1993-09-13 | 1995-03-31 | Matsushita Electric Ind Co Ltd | キャッシュメモリ制御方法およびキャッシュメモリ制御装置 |
| US6370619B1 (en) * | 1998-06-22 | 2002-04-09 | Oracle Corporation | Managing partitioned cache |
| JP2000305860A (ja) * | 1999-04-23 | 2000-11-02 | Toshiba Corp | 情報記憶システム及び同システムに於ける記憶制御方法 |
| US6658533B1 (en) * | 2000-09-21 | 2003-12-02 | Intel Corporation | Method and apparatus for write cache flush and fill mechanisms |
| US7020739B2 (en) | 2000-12-06 | 2006-03-28 | Tdk Corporation | Memory controller, flash memory system having memory controller and method for controlling flash memory device |
| US7073048B2 (en) * | 2002-02-04 | 2006-07-04 | Silicon Lease, L.L.C. | Cascaded microcomputer array and method |
| JP4082913B2 (ja) | 2002-02-07 | 2008-04-30 | 株式会社ルネサステクノロジ | メモリシステム |
| US20050144516A1 (en) | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
| US7328317B2 (en) * | 2004-10-21 | 2008-02-05 | International Business Machines Corporation | Memory controller and method for optimized read/modify/write performance |
| US7877552B2 (en) * | 2005-05-24 | 2011-01-25 | Marathon Technologies Corporation | Symmetric multiprocessor fault tolerant computer system |
| JP4961693B2 (ja) * | 2005-07-29 | 2012-06-27 | ソニー株式会社 | コンピュータシステム |
| JP4946102B2 (ja) * | 2006-03-10 | 2012-06-06 | ソニー株式会社 | 不揮発性メモリシステムおよび不揮発性メモリの管理方法 |
| JP2008197981A (ja) * | 2007-02-14 | 2008-08-28 | Toshiba Corp | 半導体記憶装置 |
| JP4582232B2 (ja) * | 2008-09-30 | 2010-11-17 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
-
2008
- 2008-10-15 JP JP2008266409A patent/JP4632180B2/ja not_active Expired - Fee Related
-
2009
- 2009-10-13 US US12/588,311 patent/US8219742B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20100095054A1 (en) | 2010-04-15 |
| US8219742B2 (en) | 2012-07-10 |
| JP2010097333A (ja) | 2010-04-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4632180B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| US8214579B2 (en) | Memory controller, flash memory system with memory controller, and method of controlling flash memory | |
| JP4666080B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| EP2034414A1 (en) | Semiconductor storage device and method of controlling semiconductor storage device | |
| US20170083451A1 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
| US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
| US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
| JP4666081B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| US20140075099A1 (en) | Control method and memory system of non-volatile semiconductor memory | |
| JP4702387B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4582232B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4737223B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4720891B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP2009086738A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4840415B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP2012068764A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
| JP2010092200A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4710918B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4952741B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4952742B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4636046B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP6260395B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
| JP2013200722A (ja) | 半導体記憶装置の論理ブロックの構築方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100728 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100803 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100929 |
|
| 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: 20101025 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4632180 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101107 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131126 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |