JP2009157807A - Memory controller, flash memory system provided with memory controller, and method for controlling flash memory - Google Patents
Memory controller, flash memory system provided with memory controller, and method for controlling flash memory Download PDFInfo
- Publication number
- JP2009157807A JP2009157807A JP2007337524A JP2007337524A JP2009157807A JP 2009157807 A JP2009157807 A JP 2009157807A JP 2007337524 A JP2007337524 A JP 2007337524A JP 2007337524 A JP2007337524 A JP 2007337524A JP 2009157807 A JP2009157807 A JP 2009157807A
- Authority
- JP
- Japan
- Prior art keywords
- physical
- data
- logical
- page
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 37
- 238000012986 modification Methods 0.000 description 17
- 230000004048 modification Effects 0.000 description 17
- 230000002950 deficient Effects 0.000 description 8
- 101001117010 Homo sapiens Pericentrin Proteins 0.000 description 5
- 102100024315 Pericentrin Human genes 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010374 somatic cell nuclear transfer Methods 0.000 description 4
- 201000006760 Senior-Loken syndrome Diseases 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012005 ligant binding assay Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Abstract
Description
本発明は、メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。 The present invention relates to a memory controller, a flash memory system including the memory controller, and a flash memory control method.
従来、論理ブロックに含まれる論理ページと、この論理ブロックに対応する物理ブロックに含まれる物理ページとの対応関係を固定せずに、ホストシステムから与えられる各論理ページに対応するデータを、ホストシステムから与えられる順番で物理ブロック内の物理ページに書き込んでいく方法が知られている(例えば特許文献1参照)。かかる書き込み方法では、物理ブロック内のデータが書き込まれていないページに対して、先頭から順番にホストシステムから与えられるデータを書き込んでいくため、データの書き換えを容易に行うことができる。一方、データを読み出すときには、論理ページと物理ページの対応関係が固定されていないため、論理ページと物理ページの対応関係を把握する必要が生じる。 Conventionally, data corresponding to each logical page given from the host system is not stored in the host system without fixing the correspondence between the logical page included in the logical block and the physical page included in the physical block corresponding to the logical block. There is known a method of writing to physical pages in a physical block in the order given by (see, for example, Patent Document 1). In such a writing method, since data given from the host system is written in order from the head to a page in which data in the physical block is not written, data can be easily rewritten. On the other hand, when data is read, since the correspondence between the logical page and the physical page is not fixed, it is necessary to grasp the correspondence between the logical page and the physical page.
各物理ページの冗長領域に対応する論理ページ(又は論理セクタ領域)の番号等の論理ページ(又は論理セクタ領域)を特定する情報を書き込んでおけば、この情報に基づいて、論理ページ(又は論理セクタ領域)と物理ページ(又は物理セクタ領域)の対応関係を把握することができる。 If information specifying the logical page (or logical sector area) such as the number of the logical page (or logical sector area) corresponding to the redundant area of each physical page is written, the logical page (or logical page) is written based on this information. The correspondence relationship between the sector area) and the physical page (or physical sector area) can be grasped.
しかし、データが書き込まれている各物理ページから論理ページ(又は論理セクタ領域)を特定する情報を順次読み出して、論理ページ(又は論理セクタ領域)と物理ページ(又は物理セクタ領域)の対応関係を把握するのでは、処理効率が良くない。 However, the information specifying the logical page (or logical sector area) is sequentially read from each physical page where data is written, and the correspondence between the logical page (or logical sector area) and the physical page (or physical sector area) is determined. To grasp, processing efficiency is not good.
そこで、本発明は、効率的に論理ページ(又は論理セクタ領域)と物理ページ(又は物理セクタ領域)の対応関係を把握することができる論理ページ(又は論理セクタ領域)と物理ページ(又は物理セクタ領域)の対応関係の管理技術を提供することを目的とする。 Therefore, the present invention provides a logical page (or logical sector area) and a physical page (or physical sector) that can efficiently grasp the correspondence between the logical page (or logical sector area) and the physical page (or physical sector area). The purpose is to provide the management technology of the correspondence relationship of (region).
本発明の第一の側面に従うメモリコントローラは、
ホストシステムから与えられるアクセス指示に基づいて、複数個の物理セクタ領域を含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理セクタ領域で構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
前記アクセス指示によりアクセス対象の領域として指定された論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理セクタ領域の先頭を検索する空きセクタ領域検索手段と、
前記アクセス指示により前記論理アクセス領域に対して書き込むことが指示された一連のデータを、前記空きセクタ領域検索手段によって検出されたデータが書き込まれていない先頭の前記物理セクタ領域から、末尾の前記物理セクタ領域に向かって順次書き込んでいくデータ書き込み手段と、
前記データ書き込み手段により前記一連のデータが書き込まれた前記物理ブロック内の前記物理セクタ領域と、前記物理ブロックに対応する前記論理ブロック内の前記論理セクタ領域との対応関係を示すセクタ管理情報を、前記一連のデータの末尾データが書き込まれた前記物理セクタ領域の次の前記物理セクタ領域に書き込むセクタ管理情報書き込み手段と、
を備える。
A memory controller according to the first aspect of the present invention comprises:
A memory controller that controls access to a flash memory that is erased in units of physical blocks including a plurality of physical sector areas, based on an access instruction given from a host system,
A block management means for managing a correspondence relationship between a logical block composed of a plurality of logical sector areas and the physical block;
Empty sector area search means for searching for the beginning of the physical sector area in which data in the physical block corresponding to the logical block to which the logical access area specified as the area to be accessed by the access instruction belongs is not written;
A series of data instructed to be written to the logical access area by the access instruction is transferred from the head physical sector area to which the data detected by the free sector area search means is not written, to the physical address at the end. Data writing means for sequentially writing toward the sector area;
Sector management information indicating a correspondence relationship between the physical sector area in the physical block in which the series of data is written by the data writing unit and the logical sector area in the logical block corresponding to the physical block, Sector management information writing means for writing to the physical sector area next to the physical sector area in which the end data of the series of data is written;
Is provided.
好適な実施形態では、前記セクタ管理情報書き込み手段は、前記データ書き込み手段により前記一連のデータが書き込まれた前記物理ブロック内のデータが書き込まれている全ての前記物理セクタ領域に対して、前記物理ブロックに対応する前記論理ブロック内の前記論理セクタ領域が先頭から順番に対応しているときには、前記一連のデータの末尾データが書き込まれた前記物理セクタ領域の次の前記物理セクタ領域に前記セクタ管理情報を書き込まない。 In a preferred embodiment, the sector management information writing means applies the physical management to all the physical sector areas to which data in the physical block in which the series of data has been written by the data writing means. When the logical sector areas in the logical block corresponding to the block correspond in order from the top, the sector management is performed in the physical sector area next to the physical sector area in which the end data of the series of data is written. Do not write information.
好適な実施形態では、前記セクタ管理情報書き込み手段は、セクタ管理情報作成手段を備える。前記セクタ管理情報作成手段は、前記アクセス指示により前記論理アクセス領域に対して前記一連のデータを書き込むことを指示されたときに、前記論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれている末尾の前記物理セクタ領域に前記セクタ管理情報が記憶されている場合は、前記セクタ管理情報に基づいて、前記一連のデータの末尾データが書き込まれる前記物理セクタ領域の次の前記物理セクタ領域に書き込む前記セクタ管理情報を作成する。 In a preferred embodiment, the sector management information writing means includes sector management information creating means. The sector management information creating means, when instructed to write the series of data to the logical access area by the access instruction, in the physical block corresponding to the logical block to which the logical access area belongs When the sector management information is stored in the physical sector area at the end where data is written, based on the sector management information, the next physical sector area to which the end data of the series of data is written The sector management information to be written in the physical sector area is created.
好適な実施形態では、前記セクタ管理情報作成手段は、前記アクセス指示により前記論理アクセス領域に対して前記一連のデータを書き込むことを指示されたときに、前記論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれている末尾の前記物理セクタ領域に前記セクタ管理情報が記憶されていない場合には、前記物理ブロック内のデータが書き込まれている前記物理セクタ領域に対して、前記物理ブロックに対応する前記論理ブロック内の前記論理セクタ領域が先頭から順番に対応しているとみなして、前記一連のデータの末尾データが書き込まれる前記物理セクタ領域の次の前記物理セクタ領域に書き込む前記セクタ管理情報を作成する。 In a preferred embodiment, the sector management information creating means corresponds to the logical block to which the logical access area belongs when the access instruction is instructed to write the series of data to the logical access area. If the sector management information is not stored in the physical sector area at the end where data in the physical block is written, the physical sector area in which data in the physical block is written is stored. The logical sector area in the logical block corresponding to the physical block is considered to correspond in order from the beginning, and the physical sector area next to the physical sector area in which the end data of the series of data is written The sector management information to be written in is created.
好適な実施形態では、前記アクセス指示により指定された前記論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内の前記物理セクタ領域に記憶されているデータを、前記物理ブロック内のデータが書き込まれている末尾の前記物理セクタ領域に記憶されている前記セクタ管理情報に基づいて読み出すデータ読み出し手段を更に備える。 In a preferred embodiment, the data stored in the physical sector area in the physical block corresponding to the logical block to which the logical access area specified by the access instruction belongs is written into the data in the physical block. And a data reading means for reading based on the sector management information stored in the last physical sector area.
好適な実施形態では、前記データ読み出し手段は、前記論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内に前記セクタ管理情報が記憶されていないときは、前記物理ブロック内のデータが書き込まれている前記物理セクタ領域に対して、前記物理ブロックに対応する前記論理ブロック内の前記論理セクタ領域が先頭から順番に対応しているとみなして、データの読み出しを行う。 In a preferred embodiment, the data reading means writes the data in the physical block when the sector management information is not stored in the physical block corresponding to the logical block to which the logical access area belongs. It is assumed that the logical sector area in the logical block corresponding to the physical block corresponds to the physical sector area corresponding to the physical block in order from the top, and data is read out.
本発明の第二の側面に従うメモリコントローラは、
ホストシステムから与えられるアクセス指示に基づいて、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
前記アクセス指示によりアクセス対象の論理ページとして指定された論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理ページの先頭を検索する空きページ検索手段と、
前記アクセス指示により前記論理アクセスページに対して書き込むことが指示された一連のデータを、前記空きページ検索手段によって検出されたデータが書き込まれていない先頭の前記物理ページから、末尾の前記物理ページに向かって順次書き込んでいくデータ書き込み手段と、
前記データ書き込み手段により前記一連のデータが書き込まれた前記物理ブロック内の前記物理ページと、前記物理ブロックに対応する前記論理ブロック内の前記論理ページとの対応関係を示すページ管理情報を、前記一連のデータの末尾データが書き込まれた前記物理ページの次の前記物理ページに書き込むページ管理情報書き込み手段と、
を備える。
A memory controller according to the second aspect of the present invention comprises:
A memory controller that controls access to a flash memory that is erased in units of physical blocks including a plurality of physical pages, based on an access instruction given from a host system,
Block management means for managing a correspondence relationship between a logical block composed of a plurality of logical pages and the physical block;
Empty page search means for searching for the top of the physical page in which data in the physical block corresponding to the logical block to which the logical access page designated as the logical page to be accessed belongs by the access instruction belongs,
A series of data instructed to be written to the logical access page by the access instruction is transferred from the first physical page to which the data detected by the empty page search unit is not written to the last physical page. Data writing means for sequentially writing toward the
Page management information indicating a correspondence relationship between the physical page in the physical block in which the series of data is written by the data writing unit and the logical page in the logical block corresponding to the physical block; Page management information writing means for writing to the physical page next to the physical page in which the end data of the data is written;
Is provided.
好適な実施形態では、前記ページ管理情報書き込み手段は、前記データ書き込み手段により前記一連のデータが書き込まれた前記物理ブロック内のデータが書き込まれている全ての前記物理ページに対して、前記物理ブロックに対応する前記論理ブロック内の前記論理ページが先頭から順番に対応しているときには、前記一連のデータの末尾データが書き込まれた前記物理ページの次の前記物理ページに前記ページ管理情報を書き込まない。 In a preferred embodiment, the page management information writing unit is configured to apply the physical block to all the physical pages in which data in the physical block in which the series of data is written by the data writing unit is written. The page management information is not written to the physical page next to the physical page in which the end data of the series of data is written when the logical pages in the logical block corresponding to .
好適な実施形態では、前記ページ管理情報書き込み手段は、ページ管理情報作成手段を備える。前記ページ管理情報作成手段は、前記アクセス指示により前記論理アクセスページに対して前記一連のデータを書き込むことを指示されたときに、前記論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれている末尾の前記物理ページに前記ページ管理情報が記憶されている場合は、前記ページ管理情報に基づいて、前記一連のデータの末尾データが書き込まれる前記物理ページの次の前記物理ページに書き込む前記ページ管理情報を作成する。 In a preferred embodiment, the page management information writing means includes page management information creating means. The page management information creation means, when instructed to write the series of data to the logical access page by the access instruction, in the physical block corresponding to the logical block to which the logical access page belongs When the page management information is stored in the last physical page in which data is written, the physical next to the physical page in which the last data of the series of data is written based on the page management information The page management information written on the page is created.
好適な実施形態では、前記ページ管理情報作成手段は、前記アクセス指示により前記論理アクセスページに対して前記一連のデータを書き込むことを指示されたときに、前記論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれている末尾の前記物理ページに前記ページ管理情報が記憶されていない場合には、前記物理ブロック内のデータが書き込まれている前記物理ページに対して、前記物理ブロックに対応する前記論理ブロック内の前記論理ページが先頭から順番に対応しているとみなして、前記一連のデータの末尾データが書き込まれる前記物理ページの次の前記物理ページに書き込む前記ページ管理情報を作成する。 In a preferred embodiment, the page management information creation means corresponds to the logical block to which the logical access page belongs when the access instruction is instructed to write the series of data to the logical access page. When the page management information is not stored in the last physical page in which the data in the physical block is written, the physical page in which the data in the physical block is written The page management that considers that the logical pages in the logical block corresponding to the physical block correspond in order from the top, and writes to the physical page next to the physical page to which the end data of the series of data is written Create information.
好適な実施形態では、前記アクセス指示により指定された前記論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内の前記物理ページに記憶されているデータを、前記物理ブロック内のデータが書き込まれている末尾の前記物理ページに記憶されている前記ページ管理情報に基づいて読み出すデータ読み出し手段を更に備える。 In a preferred embodiment, data stored in the physical page in the physical block corresponding to the logical block to which the logical access page specified by the access instruction belongs is written into the data in the physical block. And a data reading means for reading based on the page management information stored in the last physical page.
好適な実施形態では、前記データ読み出し手段は、前記論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内に前記ページ管理情報が記憶されていないときは、前記物理ブロック内のデータが書き込まれている前記物理ページに対して、前記物理ブロックに対応する前記論理ブロック内の前記論理ページが先頭から順番に対応しているとみなして、データの読み出しを行う。 In a preferred embodiment, the data reading means writes the data in the physical block when the page management information is not stored in the physical block corresponding to the logical block to which the logical access page belongs. For the physical page, the logical pages in the logical block corresponding to the physical block are considered to correspond in order from the top, and data is read out.
本発明の第三の側面に従うフラッシュメモリシステムは、第一及び第二の側面のいずれかの側面に従うメモリコントローラと、前記メモリコントローラによってアクセスされるフラッシュメモリとを備える。 A flash memory system according to a third aspect of the present invention includes a memory controller according to any one of the first and second aspects, and a flash memory accessed by the memory controller.
本発明の第四の側面に従うフラッシュメモリの制御方法は、
ホストシステムから与えられるアクセス指示に基づいて、複数個の物理セクタ領域を含む物理ブロック単位で消去が行われるフラッシュメモリの制御方法であって、
複数個の論理セクタ領域で構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
前記アクセス指示によりアクセス対象の領域として指定された論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理セクタ領域の先頭を検索する空きセクタ領域検索ステップと、
前記アクセス指示により前記論理アクセス領域に対して書き込むことが指示された一連のデータを、前記空きセクタ領域検索ステップで検出されたデータが書き込まれていない先頭の前記物理セクタ領域から、末尾の前記物理セクタ領域に向かって順次書き込んでいくデータ書き込みステップと、
前記データ書き込みステップで前記一連のデータが書き込まれた前記物理ブロック内の前記物理セクタ領域と、前記物理ブロックに対応する前記論理ブロック内の前記論理セクタ領域との対応関係を示すセクタ管理情報を、前記一連のデータの末尾データが書き込まれた前記物理セクタ領域の次の前記物理セクタ領域に書き込むセクタ管理情報書き込みステップと、
を備える。
A method for controlling a flash memory according to the fourth aspect of the present invention includes:
A flash memory control method in which erasure is performed in units of physical blocks including a plurality of physical sector areas based on an access instruction given from a host system,
A block management step for managing a correspondence relationship between a logical block composed of a plurality of logical sector areas and the physical block;
A free sector area search step for searching for the beginning of the physical sector area in which data in the physical block corresponding to the logical block to which the logical access area designated as the access target area by the access instruction belongs is not written;
A series of data instructed to be written to the logical access area by the access instruction is transferred from the first physical sector area to which the data detected in the free sector area search step is not written to the last physical sector. A data writing step of sequentially writing toward the sector area;
Sector management information indicating a correspondence relationship between the physical sector area in the physical block in which the series of data is written in the data writing step and the logical sector area in the logical block corresponding to the physical block, Sector management information writing step for writing to the physical sector area next to the physical sector area in which the end data of the series of data is written;
Is provided.
本発明の第五の側面に従うフラッシュメモリの制御方法は、
ホストシステムから与えられるアクセス指示に基づいて、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリの制御方法であって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
前記アクセス指示によりアクセス対象の論理ページとして指定された論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理ページの先頭を検索する空きページ検索ステップと、
前記アクセス指示により前記論理アクセスページに対して書き込むことが指示された一連のデータを、前記空きページ検索ステップで検出されたデータが書き込まれていない先頭の前記物理ページから、末尾の前記物理ページに向かって順次書き込んでいくデータ書き込みステップと、
前記データ書き込みステップで前記一連のデータが書き込まれた前記物理ブロック内の前記物理ページと、前記物理ブロックに対応する前記論理ブロック内の前記論理ページとの対応関係を示すページ管理情報を、前記一連のデータの末尾データが書き込まれた前記物理ページの次の前記物理ページに書き込むページ管理情報書き込みステップと、
を備える。
A control method of a flash memory according to the fifth aspect of the present invention is:
A flash memory control method in which erasure is performed in units of physical blocks including a plurality of physical pages based on an access instruction given from a host system,
A block management step for managing a correspondence relationship between a logical block composed of a plurality of logical pages and the physical block;
A free page search step of searching for the top of the physical page in which data in the physical block corresponding to the logical block to which the logical access page designated as the logical page to be accessed by the access instruction belongs is not written;
A series of data instructed to be written to the logical access page by the access instruction is transferred from the first physical page to which the data detected in the empty page search step is not written to the last physical page. A data writing step of sequentially writing toward the
Page management information indicating a correspondence relationship between the physical page in the physical block in which the series of data is written in the data writing step and the logical page in the logical block corresponding to the physical block; A page management information writing step for writing to the physical page next to the physical page in which the end data of the data is written;
Is provided.
効率的に論理ページ(又は論理セクタ領域)と物理ページ(又は物理セクタ領域)の対応関係を把握することができる論理ページ(又は論理セクタ領域)と物理ページ(又は物理セクタ領域)の対応関係の管理技術を提供することができる。 Correspondence between logical page (or logical sector area) and physical page (or physical sector area) that can efficiently grasp the correspondence between logical page (or logical sector area) and physical page (or physical sector area) Management technology can be provided.
以下、本発明の幾つかの実施の形態を、図面を参照しながら詳細に説明する。 Hereinafter, some embodiments of the present invention will be described in detail with reference to the drawings.
<第1の実施形態>。 <First Embodiment>.
図1は、本発明の第1の実施形態に係るフラッシュメモリシステム1を概略的に示すブロック図である。
FIG. 1 is a block diagram schematically showing a
図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。
As shown in FIG. 1, the
フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続されている。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
The
メモリコントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(Error Collection Code)ブロック11と、ROM(Read Only Memory)12とから構成される。メモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続されている。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
As shown in FIG. 1, the
ホストインターフェースブロック7は、ホストシステム4との間でデータ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
The
ホストインターフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えている。コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタR2にはアクセス対象領域のセクタ数が書き込まれる。LBAレジスタR3には、アクセス対象領域の先頭のLBA(Logical Block Address)(後述)が書き込まれる。
The
ワークエリア8は、フラッシュメモリ2の制御に必要なデータを一時的に格納する作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成されている。ワークエリア8には、例えば、論理ブロックと物理ブロックとの対応関係を示したアドレス変換テーブル(後述)等が記憶される。
The
バッファ9は、フラッシュメモリ2から読み出したデータを、ホストシステム4が受け取り可能な状態となるまで保持する。また、バッファ9は、フラッシュメモリ2に書き込むデータを、フラッシュメモリ2が書き込み可能な状態となるまで保持する。
The
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2との間でデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンドに従って動作する。
The flash
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加される誤り訂正符号(ECC:Error Collection Code)を生成するとともに、読み出したデータに付加されている誤り訂正符号に基づいて、読み出したデータに含まれる誤りを検出・訂正する。
The
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムが格納されている。
The
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、メモリコントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、ROM12から読み出した各種処理を定義したコマンドセットに基づいてフラッシュメモリインターフェースブロック10に処理を実行させる。
The
フラッシュメモリ2はNAND型フラッシュメモリからなる。NAND型フラッシュメモリは、レジスタと、複数のメモリセルが2次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。
The
NAND型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ(物理ページ)単位で行われ、データ消去動作はブロック(物理ブロック)単位で行われる。物理ブロックは、複数のページ(物理ページ)で構成される。例えば、1個の物理ページは、所定サイズ(例えば2048バイト)のユーザ領域と、所定サイズ(例えば64バイト)の冗長領域とで構成され、1個の物理ブロックが、所定個数(例えば64個)の物理ページで構成されている。ユーザ領域は、ホストシステム4から与えられるデータを記憶するための領域であり、所定個数(例えば4個)の物理セクタ領域(512バイト単位の記憶領域)で構成されている。冗長領域は、誤り訂正符号(ECC:Error Collection Code)、論理アドレス情報、ブロックステータス(フラグ)等の付加データを記憶するための領域である。
In the NAND flash memory, a data read operation and a data write operation are performed in units of pages (physical pages), and a data erase operation is performed in units of blocks (physical blocks). A physical block is composed of a plurality of pages (physical pages). For example, one physical page includes a user area of a predetermined size (for example, 2048 bytes) and a redundant area of a predetermined size (for example, 64 bytes), and one physical block has a predetermined number (for example, 64). It consists of physical pages. The user area is an area for storing data given from the
図2は、本実施形態で用いるNAND型フラッシュメモリの1個の物理ページに含まれる記憶領域を示している。 FIG. 2 shows a storage area included in one physical page of the NAND flash memory used in this embodiment.
ユーザ領域25は、ホストシステム4から与えられるデータを記憶するための領域である。冗長領域26は、誤り訂正符号(ECC:Error Collection Code)、論理アドレス情報、ブロックステータス(フラグ)等の付加データを記憶するための領域である。
The
本実施形態では、図2に示すようにユーザ領域25は、1セクタ(例えば512バイト)の物理セクタ領域60(60a−60d)に分割して使用される。冗長領域26は、所定サイズ(例えば8バイト)の共通冗長領域50と、所定サイズ(例えば14バイト)の分割冗長領域70(70a−70d)に分割して使用される。各物理ブロックの先頭物理ページの共通冗長領域50には、論理アドレス情報、ブロックステータス(フラグ)等の物理ブロック毎で管理される情報が書き込まれる。
In the present embodiment, as shown in FIG. 2, the
4個の物理セクタ領域60a−60dと4個の分割冗長領域70a−70dは、1対1の対応関係が予め設定されている。本実施形態では、物理セクタ領域60aが分割冗長領域70aに、物理セクタ領域60bが分割冗長領域70bに、物理セクタ領域60cが分割冗長領域70cに、物理セクタ領域60dが分割冗長領域70dに、それぞれ対応している。分割冗長領域70a−70dには、対応関係にある物理セクタ領域60a−60dに記憶されるデータに付加される誤り訂正符号等の物理セクタ領域60(60a−60d)毎で管理される情報が書き込まれる。
The four
このように、1個の物理ページがmセクタのユーザ領域で構成され、1個の物理ブロックがn個の物理ページで構成されているNAND型フラッシュメモリでは、1個の物理ブロックは、m×n個の物理セクタ領域(1セクタ単位の領域)で構成されているNAND型フラッシュメモリとして取り扱うこともできる。つまり、本実施形態で用いたNAND型フラッシュメモリの場合には、256個の物理セクタ領域(1セクタ単位の領域)で構成されているNAND型フラッシュメモリとして取り扱うことができる。以下の説明で、物理ブロック内の物理セクタ領域に付けた通し番号を物理セクタ番号(PSN)と言う。例えば、1個の物理ブロックが256個の物理セクタ領域で構成されている場合、各物理ブロック内の256個の物理セクタ領域には、PSNとして#0−#255が付与される。 As described above, in a NAND flash memory in which one physical page is configured by a user area of m sectors and one physical block is configured by n physical pages, one physical block is m × It can also be handled as a NAND flash memory composed of n physical sector areas (areas per sector). In other words, the NAND flash memory used in the present embodiment can be handled as a NAND flash memory composed of 256 physical sector areas (areas of one sector unit). In the following description, a serial number assigned to a physical sector area in a physical block is referred to as a physical sector number (PSN). For example, when one physical block is composed of 256 physical sector areas, # 0 to # 255 are assigned as PSNs to 256 physical sector areas in each physical block.
論理アドレス情報は、物理ブロックと論理ブロックの対応関係を判別するための情報である。従って、記憶データが消去された物理ブロックのような、対応する論理ブロックの無い物理ブロックについては、その冗長領域26に(先頭物理ページの共通冗長領域50に)、論理アドレス情報は格納されていない。
The logical address information is information for determining the correspondence between physical blocks and logical blocks. Therefore, for a physical block having no corresponding logical block such as a physical block from which stored data has been erased, logical address information is not stored in the redundant area 26 (in the common
ブロックステータス(フラグ)は、物理ブロックの良否を示すフラグである。尚、初期不良の物理ブロックについては、不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であることを示すブロックステータス(フラグ)が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス(フラグ)を、ユーザ領域に書き込んでいる製造メーカもある。 The block status (flag) is a flag indicating pass / fail of the physical block. For the initial defective physical block, a block status (flag) indicating a defective block (physical block in which data cannot be normally written) is written by the manufacturer. Some manufacturers also write a block status (flag) indicating the initial defective physical block in the user area.
ホストシステム4側のアドレス空間は、セクタ(512バイト)単位で分割した領域(以下、論理セクタ領域と言う)に付けた通番であるLBA(Logical Block Address)で管理されている。又、メモリコントローラ内で行われるアドレス管理では、複数個の論理セクタ領域で論理ブロックを形成し、この論理ブロックに対して、1個又は複数個の物理ブロックが割り当てている。
The address space on the
本実施形態では、図3に示したようにLBAが連続する256個の論理セクタ領域をまとめたものを論理ブロックとし、この論理ブロックに通し番号を付している。以下、論理ブロックに付した通し番号を論理ブロック番号(LBN)と言う。例えば、LBA#0−#255の256個の論理セクタ領域は、LBN#0の論理ブロックに属し、LBA#256−#511の256個の論理セクタ領域はLBN#1の論理ブロックに属している。このように、LBA#0−#2047999の2048000個の論理セクタ領域は、LBN#0−#7999の8000個の論理ブロックのいずれかに属している。
In the present embodiment, as shown in FIG. 3, a group of 256 logical sector areas with continuous LBAs is defined as a logical block, and a serial number is assigned to this logical block. Hereinafter, a serial number assigned to a logical block is referred to as a logical block number (LBN). For example, the 256 logical sector areas of LBA # 0- # 255 belong to the logical block of
更に、この論理ブロックを複数個まとめたものを論理ゾーンとし、この論理ゾーンに通し番号を付している。以下、論理ゾーンに付した通し番号を論理ゾーン番号(LZN)と言う。図3の例では、LBNが連続する論理ブロックを、異なる論理ゾーンに順次振り分けるようにして論理ゾーンを形成する。例えば、LBN#0の論理ブロックはLZN#0の論理ゾーンに、LBN#1の論理ブロックはLZN#1の論理ゾーンに、LBN#2の論理ブロックはLZN#2の論理ゾーンにという順番でLZN#7の論理ゾーンまで振り分けていく。以下同様に、LBN#8の論理ブロックをLZN#0の論理ゾーンに、LBN#9の論理ブロックをLZN#1の論理ゾーンに、LBN#10の論理ブロックをLZN#2の論理ゾーンに振り分けていく。このようにして、1000個の論理ブロックからなる8個の論理ゾーンが形成される。
Further, a logical zone is formed by collecting a plurality of logical blocks, and serial numbers are assigned to the logical zones. Hereinafter, the serial number assigned to the logical zone is referred to as a logical zone number (LZN). In the example of FIG. 3, logical zones are formed by sequentially allocating logical blocks having consecutive LBNs to different logical zones. For example, the logical block of
また、図3の例では、論理ゾーンは形成するが、物理ゾーンは形成しない。そして、どの論理ゾーンであるかに関わらず、各論理ゾーンに対して、全範囲の物理ブロックを割り当てている。従って、論理ゾーンは単なるアドレス変換テーブルの作成単位であり、どの論理ブロックがどの物理ブロックに割り当てられても良い。 In the example of FIG. 3, a logical zone is formed, but a physical zone is not formed. Regardless of which logical zone, the entire range of physical blocks is assigned to each logical zone. Therefore, the logical zone is simply a unit for creating an address conversion table, and any logical block may be assigned to any physical block.
このアドレス変換テーブルは、論理ブロックと物理ブロックとの対応関係を記述したテーブルであり、各論理ゾーンに割り当てられている論理ブロックのグループ単位で作成される。このアドレス変換テーブルは、フラッシュメモリ2内に保存される。また、対応関係にある論理ブロック内の領域と物理ブロック内の領域を管理するために、論理セクタ領域と物理セクタ領域60の対応関係が後述する方法によって把握される(なお、後述の第2の実施形態では、論理ページ(後述)と物理ページの対応関係が把握される)。
This address conversion table is a table describing the correspondence between logical blocks and physical blocks, and is created in units of logical blocks assigned to each logical zone. This address conversion table is stored in the
尚、フラッシュメモリ内の物理ブロックには、出荷時から不良である先天性の不良ブロックが含まれている。更に、出荷時に良品の物理ブロックであっても、使用開始後に劣化して不良ブロックになる物理ブロック(後天性の不良ブロック)もある。従って、本実施形態では、8000個の論理ブロックに対し、8192個の物理ブロックを割り当てている。 Note that the physical blocks in the flash memory include innate defective blocks that are defective from the time of shipment. Furthermore, even if a physical block is a non-defective product at the time of shipment, there is a physical block (acquired defective block) that deteriorates after use and becomes a defective block. Therefore, in this embodiment, 8192 physical blocks are assigned to 8000 logical blocks.
第1の実施形態では、論理ブロックに含まれる256個の論理セクタ領域と物理ブロックに含まれる256個の物理セクタ領域60との対応関係をセクタ単位で管理している。1個の物理ページに4個の物理セクタ領域60が含まれている。第1の実施形態におけるNAND型フラッシュメモリは、各物理ページに対するデータの書き込みを物理セクタ領域60毎に分けて実行することのできるNAND型フラッシュメモリである。つまり、1個の物理ページに含まれる4個の物理セクタ領域60に対するデータの書き込みを4回に分けて実行することができる。
In the first embodiment, the correspondence between 256 logical sector areas included in a logical block and 256
第1の実施形態の書き込み処理では、ホストシステム4によって、コマンドレジスタR1に、書き込みコマンドを示すコマンドコードが書き込まれ、セクタ数レジスタR2に、書き込むデータのセクタ数が書き込まれ、LBAレジスタR3には、書き込みを開始する先頭データに対応するLBAが書き込まれる。セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて、アクセス対象の領域である論理アクセス領域が判別され、その論理アクセス領域が含まれる論理ブロックに対応する物理ブロック内のデータが書き込まれていない物理セクタ領域60の先頭から、ホストシステム4から与えられるデータが書き込まれる。
In the write process of the first embodiment, the
セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて判別される論理アクセス領域が複数個の論理ブロックに跨っている場合は、データの書き込み先になる物理ブロックも複数個になる。従って、論理アクセス領域が複数個の論理ブロックに跨っている場合は、論理アクセス領域が属する論理ブロック毎に領域を分割してデータの書き込み処理が行われる。例えば、論理アクセス領域が2個の論理ブロック(第1の論理ブロックと第2の論理ブロック)に跨っている場合は、第1の論理ブロックに対応する物理ブロックに対する書き込み処理と、第2の論理ブロックに対応する物理ブロックに対する書き込み処理とが行われる。第1の論理ブロックに属する論理アクセス領域に対して書き込むことが指示されたデータについては、第1の論理ブロックに対応する物理ブロック内のデータが書き込まれていない物理セクタ領域60に書き込まれる。第2の論理ブロックに属する論理アクセス領域に対して書き込むことが指示されたデータについては、第2の論理ブロックに対応する物理ブロック内のデータが書き込まれていない物理セクタ領域60に書き込まれる。
When the logical access area determined based on the information written in the sector number register R2 and the LBA register R3 extends over a plurality of logical blocks, there are a plurality of physical blocks to which data is written. Therefore, when the logical access area extends over a plurality of logical blocks, the area is divided for each logical block to which the logical access area belongs, and data write processing is performed. For example, when the logical access area extends over two logical blocks (the first logical block and the second logical block), the write processing for the physical block corresponding to the first logical block and the second logical block Write processing is performed on the physical block corresponding to the block. Data instructed to be written to the logical access area belonging to the first logical block is written to the
以下の説明で、ホストシステム4から与えられる情報(つまり、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3に書き込まれる情報)に基づいて実行される1セクタ又は複数セクタのデータの書き込み処理において、書き込まれるデータを、「一連のデータ」と言う。例えば、セクタ数レジスタR2に書き込まれた値がnの場合(nは1以上の整数)、nセクタ分のLBAが連続するデータが、一連のデータに対応する。尚、論理アクセス領域が複数個の論理ブロックに跨っている場合は、論理ブロック毎に一連のデータは分割される。例えば、論理アクセス領域が2個の論理ブロック(第1の論理ブロックと第2の論理ブロック)に跨っている場合に、第1の論理ブロックに属する論理アクセス領域のセクタ数がpセクタで、第2の論理ブロックに属する論理アクセス領域のセクタ数がqセクタであれば、セクタ数レジスタR2に書き込まれた値がn(n=p+q)であっても、一連のデータは、pセクタの一連のデータとqセクタの一連のデータとに分割される。
In the following description, in the data writing process of one sector or a plurality of sectors executed based on information given from the host system 4 (that is, information written in the command register R1, the sector number register R2, and the LBA register R3), The data to be written is called “a series of data”. For example, when the value written in the sector number register R2 is n (n is an integer of 1 or more), data in which LBAs for n sectors are continuous corresponds to a series of data. When the logical access area extends over a plurality of logical blocks, a series of data is divided for each logical block. For example, when the logical access area extends over two logical blocks (the first logical block and the second logical block), the number of sectors in the logical access area belonging to the first logical block is p sectors, If the number of sectors in the logical access area belonging to the
ホストシステム4は、書き込むデータのアドレス又は読み出すデータのアドレスをLBAで指示する。つまり、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて判別されるLBA(セクタ数レジスタR2に書き込まれた値が1の場合)、又は、LBAが連続する範囲(セクタ数レジスタR2に書き込まれた値が2以上の場合)が、書き込むデータの書き込み先を指示するアドレス又は読み出すデータの読み出し元を指示するアドレスになる。
The
ここで、1個の論理ブロックに含まれる論理セクタ領域の個数が2i個(例えば、i=8のときは256個)の場合、LBAの下位iビット(例えば、i=8のときは下位8ビット)が、論理ブロック内の論理セクタ領域に付けた通し番号に対応する。以下、論理ブロック内の論理セクタ領域に付けた通し番号を、「論理セクタ番号(LSN)」と言う。それに対し、物理ブロック内の物理セクタ領域60に付けた通し番号を、「物理セクタ番号(PSN)」と言う。又、LBAの下位iビット(例えば、i=8のときは下位8ビット)を除いた、LBAの上位側のビットが、前述したLBN(論理ブロック番号)に対応する。従って、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて判別される論理アクセス領域(LBAが連続する範囲)内の先頭の論理セクタ領域と末尾の論理セクタ領域のLBAのLBNに対応する部分のビットが示す値が同一であれば、論理アクセス領域は複数個の論理ブロックに跨っていない。
Here, when the number of logical sector areas included in one logical block is 2 i (for example, 256 when i = 8), the lower i bits of the LBA (for example, lower when i = 8) 8 bits) corresponds to the serial number assigned to the logical sector area in the logical block. Hereinafter, the serial number assigned to the logical sector area in the logical block is referred to as “logical sector number (LSN)”. On the other hand, the serial number assigned to the
以下、本実施形態での書き込みの概要を説明する。 Hereinafter, an outline of writing in the present embodiment will be described.
メモリコントローラ3は、ホストシステム4から与えられる書き込み指示(書き込みコマンド及び書き込み先のアドレス)に従って、この書き込み指示と共に与えられる一連のデータを、フラッシュメモリ2に書き込む。この書き込み処理では、書き込み先の論理セクタ領域が属する論理ブロックが特定され、その論理ブロックに対応する物理ブロック(又は、この論理ブロックに対して新たに割り当てた物理ブロック)に、一連のデータが書き込まれる。物理ブロック内の物理セクタ領域60には、先頭から順番に(つまりPSNが小さいほうから順番に)一連のデータが書き込まれていく。従って、一連のデータを書き込むときには、物理ブロック内のデータが書き込まれている物理セクタ領域の末尾の検索が行われる。そして、その末尾の物理セクタ領域60の次の物理セクタ領域60から一連のデータが順次書き込まれていく。言い換えれば、物理ブロック内のデータが書き込まれていない先頭の物理セクタ領域から一連のデータが順次書き込まれていく。
The
本実施形態では、一連のデータの末尾データが書き込まれた物理セクタ領域60の次の物理セクタ領域60に、論理セクタ領域と物理セクタ領域60の対応関係を示す情報(以下、「セクタ管理情報」と言う)、例えば、論理セクタ領域と物理セクタ領域60の対応関係を示すテーブルを書き込んでいる。つまり、セクタ管理情報は、ホストシステム4から書き込み指示と共に与えられる一連のデータと同様に、ユーザ領域25(物理セクタ領域60)に書き込まれる。従って、物理ブロック内のデータが書き込まれている物理セクタ領域60の末尾を検索し、その物理セクタ領域60からセクタ管理情報を読み出すことにより、論理セクタ領域と物理セクタ領域60の対応関係を把握することができる。本実施形態では、セクタ管理情報は、例えば、256個の論理セクタ領域の論理セクタ番号にそれぞれ対応する256個のレコードを有するテーブルである(例えば、後述の図5(A)参照)。
In the present embodiment, information indicating the correspondence between the logical sector area and the physical sector area 60 (hereinafter referred to as “sector management information”) in the
尚、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60には、論理セクタ領域と物理セクタ領域60の対応関係に関する最新のセクタ管理情報を保存しておく必要がある。従って、一連のデータを書き込む際には、その一連のデータを書き込む物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60からセクタ管理情報を読み出し、このセクタ管理情報を更新した最新のセクタ管理情報を、その一連のデータの末尾データが書き込まれた物理セクタ領域60の次の物理セクタ領域60に書き込む。このセクタ管理情報の更新では、書き込む一連のデータに対応する部分について、読み出されたセクタ管理情報の内容が更新される。尚、物理セクタ領域60にセクタ管理情報を書き込む場合、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60に記憶されているデータがセクタ管理情報であるか否かを判別可能にするために、本実施形態では、セクタ管理情報の書込み先の物理セクタ領域60に対応する分割冗長領域70に、セクタ管理情報が書き込まれたことを意味するフラグ(以下、「管理フラグ」と言う)を書き込む。これにより、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60に対応した分割冗長領域70に、管理フラグが記憶されていれば、その末尾の物理セクタ領域60に記憶されているデータは、セクタ管理情報であり、管理フラグが記憶されていなければ、その末尾の物理セクタ領域60に記憶されているデータは、一連のデータの末尾データであることがわかる。
It should be noted that the latest sector management information regarding the correspondence between the logical sector area and the
また、同一の物理ブロックに複数の一連のデータを連続的に書き込むような場合には、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60からセクタ管理情報を読み出さずに、ワークエリア8に保持されている、論理セクタ領域と物理セクタ領域60の対応関係に関する情報を、そのまま使用するようにしてもよい。
Further, when a plurality of series of data is continuously written in the same physical block, the work area is not read out from the last
また、物理ブロック内に書き込まれている全てのデータが、先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LSNの順番)で各物理セクタ領域60に格納されている場合には、一連のデータの末尾データが書き込まれた物理セクタ領域60の次の物理セクタ領域60に、セクタ管理情報を書き込まないようにしてもよい。そして、このように物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60にセクタ管理情報が書き込まれていない場合、つまり、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60に一連のデータの末尾データが書き込まれている場合、その物理ブロックには先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LSNの順番)でデータが格納されていると判断して、論理セクタ領域と物理セクタ領域60の対応関係を把握する。
Further, when all the data written in the physical block is stored in each
ホストシステム4から与えられる書き込み指示と共に与えられる複数セクタ領域分のデータを書き込み先の物理ブロック内の空きセクタ領域に全て書き込むことができない場合には、その物理ブロック内の最後尾の物理セクタ領域60の1セクタ領域前の物理セクタ領域60まで、ホストシステム4から与えられるデータを書き込み、最後尾の物理セクタ領域60には、その時点での論理セクタ領域と物理セクタ領域60の対応関係を示すセクタ管理情報を書き込む。残りのデータについては、別の物理ブロックを新たに割り当て、その物理ブロック内の物理セクタ領域60に書き込み、残りのデータの末尾データが書き込まれた物理セクタ領域60の次の物理セクタ領域60に、その時点での論理セクタ領域と物理セクタ領域60の対応関係を示すセクタ管理情報を書き込む。このように1個の論理ブロックに対して2個の物理ブロックが割り当てられたような場合、後から割り当てられた物理ブロック(2個目の物理ブロック)には、2個の物理ブロックを合わせた論理セクタ領域と物理セクタ領域60の対応関係を示すセクタ管理情報、つまり、1個目の物理ブロック内の論理セクタ領域と物理セクタ領域60の対応関係を示す情報を含めたセクタ管理情報が書き込まれる。尚、1個目の物理ブロックにおいて、一連のデータの末尾データが書き込まれた物理セクタ領域60の次の物理セクタ領域60が、1個目の物理ブロックの最後尾の物理セクタ領域60の1セクタ前の物理セクタ領域60である場合、次の一連のデータは、その最後尾の物理セクタ領域60からではなく、2個目の物理ブロックの先頭の物理セクタ領域60から書き込む。
When all of the data for a plurality of sector areas given together with the write instruction given from the
上述のようにホストシステム4から与えられる書き込み指示と共に与えられる複数セクタ領域分のデータを、書き込み先の物理ブロック(1個目の物理ブロック)内の空きセクタ領域に全て書き込むことができない場合には、その物理ブロック(1個目の物理ブロック)に書き込むことができなかったデータは、新たに割り当てた物理ブロック(2個目の物理ブロック)に書き込まれる。このような場合、新たに割り当てた物理ブロック(2個目の物理ブロック)に書き込まれる先頭データが先頭の論理セクタ領域に対応することはないので、新たに割り当てた物理ブロック(2個目の物理ブロック)に対する書き込み処理では、必ずセクタ管理情報が書き込まれる。従って、ホストシステム4から与えられる書き込み指示と共に与えられる複数セクタ領域分のデータを、2個の物理ブロックに跨って書き込む場合には、1個目の物理ブロックの最後尾の物理セクタ領域60にセクタ管理情報を書き込まなくてもよい。物理ブロックから各物理セクタ領域60に格納されているデータを読み出すときには、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60からセクタ管理情報を読み出し、このセクタ管理情報に基づいて論理セクタ領域と物理セクタ領域60の対応関係を把握する。
As described above, when all of the data for a plurality of sector areas given together with the write instruction given from the
以下、図4乃至図6を参照して、本実施形態での書き込みの具体例を説明する。なお、一連のデータは、前述したように、PSNが小さい方から順番に書き込まれるが、以下、n番目(nは自然数)に書き込まれる一連のデータを「第nの一連のデータ」と言う。 A specific example of writing in the present embodiment will be described below with reference to FIGS. As described above, a series of data is written in order from the smallest PSN. Hereinafter, a series of data written in the nth (n is a natural number) is referred to as an “nth series of data”.
まず、ホストシステム4からの第1の書き込み指示から、論理アクセス領域として、LBA#0−#15の16個の論理セクタ領域(LBN#0の論理ブロック内のLSN#0−#15の論理セクタ領域)を特定する。また、この論理アクセス領域が属する論理ブロックと対応する物理ブロックが無いため、この論理ブロックに対して新たな物理ブロックを割り当てる。この物理ブロックには未だデータが書き込まれていないため、物理ブロック内のデータが書き込まれていない先頭の物理セクタ領域60として、物理ブロック内の先頭の物理セクタ領域60(PSN#0の物理セクタ領域60)を特定する。この先頭の物理セクタ領域60(PSN#0の物理セクタ領域60)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LSN#0−#15の16個の論理セクタ領域に対応する第1の一連のデータが、PSN#0−#15の16個の物理セクタ領域60に書き込まれる(図4(A)参照)。この書き込み処理を開始するときに、一連のデータの先頭データに対応する論理セクタ領域のLSNの値と、この先頭データが書き込まれる物理セクタ領域のPSNの値が一致しているため、この書き込み処理で、先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LSNの順番)で一連のデータが書き込まれる判断することができる。
First, from the first write instruction from the
この段階では、物理ブロック内に書き込まれている全てのデータが、先頭の論理セクタ領域(LSN#0の論理セクタ領域)に対応するデータからLSNの小さい順で各物理セクタ領域60に格納されている。つまり、物理ブロック内のデータが書き込まれている全ての物理セクタ領域60で、物理セクタ領域60のPSNとその物理セクタ領域60に記憶されているデータに対応した論理セクタ領域のLSNとが同じ番号である。従って、第1の一連のデータの末尾データが記憶されている物理セクタ領域60(PSN#15の物理セクタ領域60)の次の物理セクタ領域60(PSN#16の物理セクタ領域60)に、セクタ管理情報を書き込まない。
At this stage, all the data written in the physical block is stored in each
次に、ホストシステム4からの第2の書き込み指示から、論理アクセス領域として、LBA#16−#31の16個の論理セクタ領域(LBN#0の論理ブロック内のLSN#16−#31の論理セクタ領域)を特定する。また、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60として、PSN#15の物理セクタ領域60を特定する。特定された末尾の物理セクタ領域60(PSN#15の物理セクタ領域60)の次の物理セクタ領域60(PSN#16の物理セクタ領域60)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LSN#16−#31の16個の論理セクタ領域に対応する第2の一連のデータが、PSN#16−#31の16個の物理セクタ領域60に書き込まれる(図4(A)参照)。この書き込み処理を開始するときに、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#15の物理セクタ領域60)にセクタ管理情報が書き込まれていないため、この時点で、物理ブロック内の物理セクタ領域60に先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LSNの順番)で一連のデータが書き込まれていると判断することができる。更に、この書き込み処理で書き込まれる一連のデータの先頭データに対応する論理アクセス領域のLSNの値と、この先頭データが書き込まれる物理セクタ領域のPSNの値が一致しているため、この一連のデータを書き込んだ後も、この状態が維持されると判断することができる。
Next, from the second write instruction from the
この段階でも、物理ブロック内のデータが書き込まれている全ての物理セクタ領域60で、物理セクタ領域60のPSNとその物理セクタ領域60に記憶されているデータに対応した論理セクタ領域のLSNとが同じ番号である。従って、第2の一連のデータの末尾データが記憶されている物理セクタ領域60(PSN#31の物理セクタ領域60)の次の物理セクタ領域60(PSN#32の物理セクタ領域60)にも、セクタ管理情報を書き込まない。
Even at this stage, the PSN of the
次に、ホストシステム4からの第3の書き込み指示から、論理アクセス領域として、LBA#48−#79の32個の論理セクタ領域(LBN#0の論理ブロック内のLSN#48−#79の論理セクタ領域)を特定する。また、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60として、PSN#31の物理セクタ領域60を特定する。特定された末尾の物理セクタ領域60(PSN#31の物理セクタ領域60)の次の物理セクタ領域60(PSN#32の物理セクタ領域60)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LSN#48−#79の32個の論理セクタ領域に対応する第3の一連のデータが、PSN#32−#63の32個の物理セクタ領域60に書き込まれる(図4(A)参照)。この書き込み処理を開始するときに、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#31の物理セクタ領域60)にセクタ管理情報が書き込まれていないため、この時点で、物理ブロック内の物理セクタ領域60に先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LSNの順番)で一連のデータが書き込まれていると判断することができる。しかし、この書き込み処理で書き込まれる一連のデータの先頭データに対応する論理アクセス領域のLSNの値と、この先頭データが書き込まれる物理セクタ領域のPSNの値が一致していないため、この一連のデータを書き込んだ後は、この状態が維持されないと判断することができる。
Next, from the third write instruction from the
この段階になって、物理ブロック内のデータが書き込まれている全ての物理セクタ領域60の一部(すなわち、第3の一連のデータが記憶されているPSN#32−#63の32個の物理セクタ領域60)で、物理セクタ領域60のPSNとその物理セクタ領域60に記憶されているデータに対応した論理セクタ領域のLSNとが異なる番号となる。この場合、メモリコントローラ3が、物理ブロック内のデータが書き込まれている全ての物理セクタ領域60(PSN#0−#63の物理セクタ領域60)と論理セクタ領域との対応関係を示すセクタ管理情報#0を作成する。ここでは、第3の一連のデータを書き込む前の末尾の物理セクタ領域60(PSN#31の物理セクタ領域60)に、セクタ管理情報が書き込まれていないため(その末尾の物理セクタ領域60に対応した分割冗長領域70に管理フラグが書き込まれていないため)、新規にセクタ管理情報を作成する。具体的には、ワークエリア8上にLSN#0−255にそれぞれ対応する256個のレコードを有するテーブル作成領域を確保し、このテーブル作成領域にPSNを書き込んでいく。セクタ管理情報#0の場合には、図5(A)に示すように、LSN#48−79に対応した32個のレコードに、第3の一連のデータが書き込まれた32個の物理セクタ領域60に対応するPSN#32−#63を書き込む。また、第3の一連のデータの先頭データが書き込まれているPSN#32の物理セクタ領域60よりも前の物理セクタ領域60には先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番でデータが格納されていると判断して、LSN#0−#31に対応した32個のレコードに、PSN#0−31を書き込む。これにより、セクタ管理情報#0の作成が完了する。メモリコントローラ3は、作成したセクタ管理情報#0を、第3の一連のデータの末尾データが書き込まれている物理セクタ領域60(PSN#63の物理セクタ領域60)の次の物理セクタ領域60(PSN#64の物理セクタ領域60)に書き込む。また、セクタ管理情報#0が書き込まれた物理セクタ領域60(PSN#64の物理セクタ領域60)に対応した分割冗長領域70に、管理フラグを書き込む。
At this stage, a part of all
尚、後述するように、一度でもセクタ管理情報を書き込んだ物理ブロックについては、その物理ブロックに一連のデータを書き込む都度に、一連のデータの末尾データが書き込まれている物理セクタ領域60の次の物理セクタ領域60に、セクタ管理情報を書き込む。
As will be described later, for the physical block in which the sector management information has been written even once, each time a series of data is written to the physical block, the next to the
次に、ホストシステム4からの第4の書き込み指示から、論理アクセス領域として、LBA#16−#47の32個の論理セクタ領域(LBN#0の論理ブロック内のLSN#16−#47の論理セクタ領域)を特定する。また、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60として、PSN#64の物理セクタ領域60を特定する。特定された末尾の物理セクタ領域60(PSN#64の物理セクタ領域60)の次の物理セクタ領域60(PSN#65の物理セクタ領域60)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LSN#16−#47の32個の論理セクタ領域に対応する第4の一連のデータが、PSN#65−#96の32個の物理セクタ領域60に書き込まれる(図4(A)参照)。この書き込み処理を開始するときに、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#64の物理セクタ領域60)にセクタ管理情報が書き込まれているため、この時点で、物理ブロック内の物理セクタ領域60に先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LSNの順番)で一連のデータが書き込まれていないと判断することができる。
Next, from the fourth write instruction from the
また、第4の一連のデータが書き込まれる前の末尾の物理セクタ領域60(PSN#64の物理セクタ領域60)に、セクタ管理情報#0が書き込まれているため(その末尾の物理セクタ領域60に対応した分割冗長領域70に管理フラグが書き込まれているため)、セクタ管理情報#0を読み出し、セクタ管理情報#0に基づいてセクタ管理情報#1を作成する。つまり、第4の一連のデータに対応する部分について、セクタ管理情報#0の内容を更新する。具体的には、図5(B)に示すように、セクタ管理情報#0における、LSN#16−#47に対応するレコードに、第4の一連のデータが書き込まれた32個の物理セクタ領域60に対応したPSN#65−#96を書き込むことで、セクタ管理情報#1を作成する。作成したセクタ管理情報#1を、第4の一連のデータの末尾データが書き込まれている物理セクタ領域60(PSN#96の物理セクタ領域60)の次の物理セクタ領域60(PSN#97の物理セクタ領域60)に書き込む。また、セクタ管理情報#1が書き込まれた物理セクタ領域60(PSN#97の物理セクタ領域60)に対応した分割冗長領域70に、管理フラグを書き込む。
Further, since the sector
以後、同様にして、第5〜第8の一連のデータ及びセクタ管理情報#2〜#5がそれぞれ同一の物理ブロックに書き込まれる。
Thereafter, similarly, the fifth to eighth series of data and the sector
すなわち、LBA#0−#31の32個の論理セクタ領域(LBN#0の論理ブロック内のLSN#0−#31の論理セクタ領域)に対応する第5の一連のデータを、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#97の物理セクタ領域60)の次の物理セクタ領域60(PSN#98の物理セクタ領域60)から書き込む(図4(A)及び図4(B)参照)。また、第5の一連のデータが書き込まれる前の末尾の物理セクタ領域60(PSN#97の物理セクタ領域60)に書き込まれているセクタ管理情報#1に基づいて、セクタ管理情報#2を作成する。具体的には、図5(C)に示すように、セクタ管理情報#1における、LSN#0−#31に対応するレコードに、第5の一連のデータが書き込まれた32個の物理セクタ領域60に対応したPSN#98−129を書き込むことで、セクタ管理情報#2を作成する。作成したセクタ管理情報#2を、第5の一連のデータの末尾データが書き込まれている物理セクタ領域60(PSN#129の物理セクタ領域60)の次の物理セクタ領域60(PSN#130の物理セクタ領域60)に書き込む。
That is, the fifth series of data corresponding to the 32 logical sector areas of
次に、LBA#16−#31の16個の論理セクタ領域(LBN#0の論理ブロック内のLSN#16−#31の論理セクタ領域)に対応した第6の一連のデータを、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#130の物理セクタ領域60)の次の物理セクタ領域60(PSN#131の物理セクタ領域60)から書き込む(図4(B)参照)。また、第6の一連のデータが書き込まれる前の末尾の物理セクタ領域60(PSN#130の物理セクタ領域60)に書き込まれているセクタ管理情報#2に基づいて、セクタ管理情報#3を作成する。具体的には、図6(A)に示すように、セクタ管理情報#2における、LSN#16−#31に対応するレコードに、第6の一連のデータが書き込まれた16個の物理セクタ領域60に対応したPSN#131−146を書き込むことで、セクタ管理情報#3を作成する。作成したセクタ管理情報#3を、第6の一連のデータの末尾データが書き込まれている物理セクタ領域60(PSN#146の物理セクタ領域60)の次の物理セクタ領域60(PSN#147の物理セクタ領域60)に書き込む。
Next, a sixth series of data corresponding to the 16 logical sector areas of LBA # 16- # 31 (the logical sector area of LSN # 16- # 31 in the logical block of LBN # 0) is stored in the physical block. Is written from the physical sector area 60 (
次に、LBA#64−#79の16個の論理セクタ領域(LBN#0の論理ブロック内のLSN#64−#79の論理セクタ領域)に対応する第7の一連のデータを、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#147の物理セクタ領域60)の次の物理セクタ領域60(PSN#148の物理セクタ領域60)から書き込む(図4(B)参照)。また、第7の一連のデータが書き込まれる前の末尾の物理セクタ領域60(PSN#147の物理セクタ領域60)に書き込まれているセクタ管理情報#3に基づいて、セクタ管理情報#4を作成する。具体的には、図6(B)に示すように、セクタ管理情報#3における、LSN#64−#79に対応するレコードに、第7の一連のデータが書き込まれた16個の物理セクタ領域60に対応したPSN#148−163を書き込むことで、セクタ管理情報#4を作成する。作成したセクタ管理情報#4を、第7の一連のデータの末尾データが書き込まれている物理セクタ領域60(PSN#163の物理セクタ領域60)の次の物理セクタ領域60(PSN#164の物理セクタ領域60)に書き込む。
Next, the seventh series of data corresponding to the 16 logical sector areas of LBA # 64- # 79 (the logical sector area of LSN # 64- # 79 in the logical block of LBN # 0) is stored in the physical block. Is written from the physical sector area 60 (
次に、LBA#80−#95の16個の論理セクタ領域(LBN#0の論理ブロック内のLSN#80−#95の論理セクタ領域)に対応する第8の一連のデータを、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#164の物理セクタ領域60)の次の物理セクタ領域60(PSN#165の物理セクタ領域60)から書き込む(図4(B)参照)。また、第8の一連のデータが書き込まれる前の末尾の物理セクタ領域60(PSN#164の物理セクタ領域60)に書き込まれているセクタ管理情報#4に基づいて、セクタ管理情報#5を作成する。具体的には、図6(C)に示すように、セクタ管理情報#4における、LSN#80−#95に対応するレコードに、第8の一連のデータが書き込まれた16個の物理セクタ領域60に対応したPSN#165−#180を書き込むことで、セクタ管理情報#5を作成する。作成したセクタ管理情報#5を、第8の一連のデータの末尾データが書き込まれている物理セクタ領域60(PSN#180の物理セクタ領域60)の次の物理セクタ領域60(PSN#181の物理セクタ領域60)に書き込む。
Next, the eighth series of data corresponding to the 16 logical sector areas of LBA # 80- # 95 (the logical sector area of LSN # 80- # 95 in the logical block of LBN # 0) is stored in the physical block. Is written from the physical sector area 60 (
さて、この後、物理ブロックから各物理セクタ領域60に格納されているデータを読み出すときには、メモリコントローラ3は、物理ブロック内のデータが書き込まれている末尾の物理セクタ領域60(PSN#181の物理セクタ領域60)からセクタ管理情報#5を読み出し、このセクタ管理情報#5に基づいて論理セクタ領域と物理セクタ領域60の対応関係を把握する。ここでは、PSN#181の物理セクタ領域60に書き込まれているセクタ管理情報#5が、論理セクタ領域と物理セクタ領域60の最新の対応関係を示しているため、そのセクタ管理情報#5を参照するだけで、論理セクタ領域と物理セクタ領域60の最新の対応関係を把握することができる。つまり、本実施形態によれば、効率的に、論理セクタ領域と物理セクタ領域60の対応関係を把握することができる。
After that, when reading data stored in each
尚、もし、第1の一連のデータが書き込まれてから第3の一連のデータが書き込まれる前までの間に(つまりセクタ管理情報が全く書き込まれていない場合に)、物理ブロックからデータを読み出すときには、メモリコントローラ3は、先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番でデータが格納されていると判断して、論理セクタ領域と物理セクタ領域60の対応関係を把握することができる。
If the first series of data is written and before the third series of data is written (that is, when no sector management information is written), the data is read from the physical block. Sometimes, the
以上が、第一の実施形態の説明である。 The above is the description of the first embodiment.
なお、セクタ管理情報は、前述したような、論理セクタ領域と物理セクタ領域60の対応関係を示すテーブルであることが好ましいが、一変形例として、物理ブロックに書き込まれているそれぞれの一連のデータの先頭データに対応する論理セクタ領域の論理セクタ番号であるスタート論理セクタ番号(以下、「SLSN」と言う)とその一連のデータが書き込まれるセクタ領域数(先頭データが書き込まれるセクタ領域から末尾データが書き込まれるセクタ領域までのセクタ領域の個数であるセクタカウント値、以下、「SCNT」と言う)とを示す情報であってもよい。更に、これらの情報に、それぞれの一連のデータの先頭データが書き込まれる物理セクタ領域の物理セクタ番号(PSN)を示す情報を加えてもよい。このような情報が書き込まれている場合には、この情報に基づいて、論理セクタ領域と物理セクタ領域60の対応関係を示すテーブルが作成される。
The sector management information is preferably a table showing the correspondence between the logical sector area and the
例えば、図7(A)〜(F)に、セクタ管理情報#0〜#5のそれぞれの変形例であるセクタ管理情報#0´〜#5´をそれぞれ示す。セクタ管理情報#0´〜#5´において、第nのSLSN及びSCNTの組は、第nの一連のデータに対応する。尚、物理ブロック内の物理セクタ領域60に先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LSNの順番)で一連のデータが書き込まれている部分については、複数個の一連のデータに対応する部分を1つにまとめた情報にしてもよい。例えば、第1−2の一連のデータに対応する部分を1つにまとめて、SLSNが#0、SCNTが32としてもよい。
For example, FIGS. 7A to 7F show sector
この変形例では、論理セクタ領域と物理セクタ領域60の最新の対応関係を示すテーブルは、最新のセクタ管理情報に基づいて作成される。具体的には、後から書き込まれた一連のデータに対応する論理セクタ領域と物理セクタ領域60の対応関係を優先して、LSN#0−#255の256個の論理セクタ番号に対応したレコードに物理セクタ番号(PSN)を書き込んでいく。尚、論理セクタ領域と物理セクタ領域60の対応関係は、SLPN及びSCNTの組に基づいて把握する。
In this modification, a table indicating the latest correspondence relationship between the logical sector area and the
例えば、セクタ管理情報#5´に基づいて、図6(C)に示したような対象テーブルが作成される。このテーブル作成では、それぞれの一連のデータに対応する論理セクタ領域と物理セクタ領域60の対応関係に基づいて、各レコードに物理セクタ番号(PSN)を書き込んでいく。この物理セクタ番号(PSN)の書き込みは、先に書き込まれた一連のデータに対応する方から順番に行われ、書き込み先のレコードに既に物理セクタ番号(PSN)が書き込まれていても、後から物理セクタ番号(PSN)を上書きする。従って、後から書き込まれた一連のデータに対応する論理セクタ領域と物理セクタ領域60の対応関係を優先したテーブルが作成される。
For example, a target table as shown in FIG. 6C is created based on the sector
<第2の実施形態>。 <Second Embodiment>.
以下、本発明の第2の実施形態を説明する。その際、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については説明を省略或いは簡略する。 Hereinafter, a second embodiment of the present invention will be described. In that case, the difference from the first embodiment will be mainly described, and the description of the common points with the first embodiment will be omitted or simplified.
第2の実施形態では、論理ブロック内の論理セクタ領域を先頭から順番に1個の物理ページ60に含まれるユーザ領域25の容量と等しいセクタ数単位でまとめたものを論理ページとして取り扱い、ページ単位(1個の物理ページに含まれるユーザ領域25の容量と等しいセクタ数単位)で論理ブロックに含まれる論理ページと物理ブロックに含まれる物理ページとの対応関係を管理する。以下の説明で、各物理ブロック内の物理ページに付けた通し番号を物理ページ番号(PPN)と言う。又、各論理ブロック内の論理ページに付けた通し番号を論理ページ番号(LPN)と言う。
In the second embodiment, logical sector areas in a logical block, which are grouped in units of sectors equal to the capacity of the
本実施形態では、1個の物理ページが4セクタ(2048バイト)のユーザ領域25で構成され(1個の物理ページに4個の物理セクタ領域60含まれ)、1個の物理ブロックが64個の物理ページで構成されているNAND型フラッシュメモリを用いる。尚、図2に示したように、各物理ページに含まれる4個の物理セクタ領域60については、先頭から順番に(カラムアドレスが小さい方から順番に)、第1物理セクタ領域60a、第2物理セクタ領域60b、第3物理セクタ領域60c、第4物理セクタ領域60dと言う。ここで、PPN#0の物理ページに含まれる第1物理セクタ領域60aがPSN#0の物理セクタ領域に対応し、PPN#0の物理ページに含まれる第2物理セクタ領域60bがPSN#1の物理セクタ領域に対応し、PPN#0の物理ページに含まれる第3物理セクタ領域60cがPSN#2の物理セクタ領域に対応し、PPN#0の物理ページに含まれる第4物理セクタ領域60dがPSN#3の物理セクタ領域に対応する。PPN#1の物理ページに含まれる第1物理セクタ領域60a、第2物理セクタ領域60b、第3物理セクタ領域60c及び第4物理セクタ領域60dには、PSN#4−#7の物理セクタ領域がそれぞれ対応し、以下同様の対応関係で、PPN#63の物理ページに含まれる第1物理セクタ領域60a、第2物理セクタ領域60b、第3物理セクタ領域60c及び第4物理セクタ領域60dには、PSN#252−#255の物理セクタ領域がそれぞれ対応する。
In the present embodiment, one physical page is configured by the
また、各論理ページには4個の論理セクタ領域が含まれる。LPN#0の論理ページには、LSN#0−#3の論理セクタ領域が含まれ、LPN#1の論理ページには、LSN#4−#7の論理セクタ領域が含まれ、以下同様に順次割り当てられ、LPN#63の論理ページには、LSN#252−#255の論理セクタ領域が含まれる。各論理ページに含まれる4個の論理セクタ領域は、各物理ページに含まれる4個の物理セクタ領域(第1物理セクタ領域60a、第2物理セクタ領域60b、第3物理セクタ領域60c及び第4物理セクタ領域60d)に対して、LSNが小さい方から順番に割り当てられる。
Each logical page includes four logical sector areas. The
第2の実施形態では、論理ページと物理ページとの対応関係は変化するが、物理ページ内の4個の物理セクタ領域60と論理ページ内の4個の論理セクタ領域の相対的な関係は変化しない。従って、第2の実施形態では、論理ページと物理ページとの対応関係を管理することにより、論理ブロックに含まれる256個の論理セクタ領域と物理ブロックに含まれる256個の物理セクタ領域60との対応関係を管理することができる。つまり、本実施形態のように、1個の物理ページに4個の物理セクタ領域60が含まれる場合であれば、PSNの下位2ビットとLSNの下位2ビットが常に一致するように物理セクタ領域60と論理セクタ領域との対応関係が定められている。即ち、下位2ビットが00のLSNに対応したデータは、第1物理セクタ60aに保存され、下位2ビットが01のLSNに対応したデータは第2物理セクタ60bに保存され、下位2ビットが10のLSNに対応したデータは第3物理セクタに保存され、下位2ビットが11のLSNに対応したデータは第4物理セクタに保存される。尚、論理ページ番号(LPN)は、8ビットのLSNの上位6ビットに対応し、物理ページ番号は8ビットのPSNの上位6ビットに対応する。
In the second embodiment, the correspondence relationship between the logical page and the physical page changes, but the relative relationship between the four
以下、本実施形態での書き込みの概要を説明する。 Hereinafter, an outline of writing in this embodiment will be described.
メモリコントローラ3は、ホストシステム4から与えられる書き込み指示(書き込みコマンド及び書き込み先のアドレス)に従って、この書き込み指示と共に与えられる一連のデータを、フラッシュメモリ2に書き込む。この書き込み処理では、書き込み先の論理ページが属する論理ブロックが特定され、その論理ブロックに対応する物理ブロック(又は、この論理ブロックに対して新たに割り当てた物理ブロック)に、一連のデータが書き込まれる。物理ブロック内の物理ページには、先頭から順番に(つまりPPNが小さいほうから順番に)一連のデータが書き込まれていく。従って、一連のデータを書き込むときには、物理ブロック内のデータが書き込まれている物理ページの末尾の検索が行われる。そして、その末尾の物理ページの次の物理ページから一連のデータが順次書き込まれていく。言い換えれば、物理ブロック内のデータが書き込まれていない先頭の物理ページから一連のデータが順次書き込まれていく。
The
本実施形態では、一連のデータの末尾データが書き込まれた物理ページの次の物理ページに、論理ページと物理ページの対応関係を示す情報(以下、「ページ管理情報」と言う)、例えば、論理ページと物理ページの対応関係を示すテーブルを書き込んでいる。つまり、ページ管理情報は、ホストシステム4から書き込み指示と共に与えられる一連のデータと同様に、物理ページのユーザ領域25に書き込まれる。従って、物理ブロック内のデータが書き込まれている物理ページの末尾の検索し、その物理ページからページ管理情報を読み出すことにより、論理ページと物理ページの対応関係を把握することができる。本実施形態では、ページ管理情報は、例えば、64個の論理ページの論理ページ番号にそれぞれ対応する64個のレコードを有するテーブルである(例えば、後述の図9(A)参照)。
In the present embodiment, information indicating the correspondence between a logical page and a physical page (hereinafter referred to as “page management information”), such as logical A table indicating the correspondence between pages and physical pages is written. That is, the page management information is written in the
尚、物理ブロック内のデータが書き込まれている末尾の物理ページには、論理ページと物理ページの対応関係に関する最新のページ管理情報を保存しておく必要がある。従って、一連のデータを書き込む際には、その一連のデータを書き込む物理ブロック内のデータが書き込まれている末尾の物理ページからページ管理情報を読み出し、このページ管理情報を更新した最新のページ管理情報を、その一連のデータの末尾データが書き込まれた物理ページの次の物理ページに書き込む。このページ管理情報の更新では、書き込む一連のデータに対応する部分について、読み出されたページ管理情報の内容が更新される。尚、物理ページにページ管理情報を書き込む場合、物理ブロック内のデータが書き込まれている末尾の物理ページに記憶されているデータがページ管理情報であるか否かを判別可能にするために、本実施形態では、ページ管理情報の書込み先の物理ページの共通冗長領域50に、ページ管理情報が書き込まれたことを意味するフラグ(以下、「管理フラグ」と言う)を書き込む。これにより、物理ブロック内のデータが書き込まれている末尾の物理ページの共通冗長領域50に、管理フラグが記憶されていれば、その末尾の物理ページに記憶されているデータは、ページ管理情報であり、管理フラグが記憶されていなければ、その末尾の物理ページに記憶されているデータは、一連のデータの末尾データであることがわかる。
Note that the latest page management information related to the correspondence between the logical page and the physical page needs to be stored in the last physical page in which the data in the physical block is written. Therefore, when writing a series of data, the page management information is read from the last physical page in which the data in the physical block to which the series of data is written is written, and the latest page management information updated with this page management information Are written in the physical page next to the physical page in which the end data of the series of data is written. In the update of the page management information, the content of the read page management information is updated for a portion corresponding to a series of data to be written. Note that when page management information is written to a physical page, in order to be able to determine whether or not the data stored in the physical page at the end where the data in the physical block is written is page management information. In the embodiment, a flag (hereinafter referred to as “management flag”) indicating that page management information has been written is written in the common
また、同一の物理ブロックに複数の一連のデータを連続的に書き込むような場合には、物理ブロック内のデータが書き込まれている末尾の物理ページからページ管理情報を読み出さずに、ワークエリア8に保持されている、論理ページと物理ページの対応関係に関する情報を、そのまま使用するようにしてもよい。
Further, when a plurality of series of data is continuously written in the same physical block, the page management information is not read from the last physical page in which the data in the physical block is written, and the
また、物理ブロック内に書き込まれている全てのデータが、先頭の論理ページに対応するデータから論理ページの順番(LPNの順番)で各物理ページに格納されている場合には、一連のデータの末尾データが書き込まれた物理ページの次の物理ページに、ページ管理情報を書き込まないようにしてもよい。そして、このように物理ブロック内のデータが書き込まれている末尾の物理ページにページ管理情報が書き込まれていない場合、つまり、物理ブロック内のデータが書き込まれている末尾の物理ページに一連のデータの末尾データが書き込まれている場合、その物理ブロックには先頭の論理ページに対応するデータから論理ページの順番(LPNの順番)でデータが格納されていると判断して、論理ページと物理ページの対応関係を把握する。 If all data written in a physical block is stored in each physical page in the order of logical pages (LPN order) from the data corresponding to the first logical page, a series of data The page management information may not be written in the physical page next to the physical page in which the tail data is written. If page management information is not written to the last physical page in which data in the physical block is written in this way, that is, a series of data in the last physical page in which data in the physical block is written. Is written in the physical block, it is determined that data is stored in the logical page order (LPN order) from the data corresponding to the first logical page. To understand the correspondence of
ホストシステム4から与えられる書き込み指示と共に与えられる複数ページ分のデータを書き込み先の物理ブロック内の空きページに全て書き込むことができない場合には、その物理ブロック内の最後尾の物理ページの1ページ前の物理ページまで、ホストシステム4から与えられるデータを書き込み、末尾の物理ページには、その時点での論理ページと物理ページの対応関係を示すページ管理情報を書き込む。残りのデータについては、別の物理ブロックを新たに割り当て、その物理ブロック内の物理ページに書き込み、残りのデータの末尾データが書き込まれた物理ページの次の物理ページに、その時点での論理ページと物理ページの対応関係を示すページ管理情報を書き込む。このように1個の論理ブロックに対して2個の物理ブロックが割り当てられたような場合、後から割り当てられた物理ブロック(2個目の物理ブロック)には、2個の物理ブロックを合わせた論理ページと物理ページの対応関係を示すページ管理情報、つまり、1個目の物理ブロック内の論理ページと物理ページの対応関係を示す情報を含めたページ管理情報が書き込まれる。尚、1個目の物理ブロックにおいて、一連のデータの末尾データが書き込まれた物理ページの次の物理ページが、1個目の物理ブロックの最後尾の物理ページの1ページ前の物理ページである場合、次の一連のデータは、その最後尾の物理ページからではなく、2個目の物理ブロックの先頭の物理ページから書き込む。
If all of the data for a plurality of pages given together with the write instruction given from the
物理ブロックから各物理ページに格納されているデータを読み出すときには、物理ブロック内のデータが書き込まれている末尾の物理ページからページ管理情報を読み出し、このページ管理情報に基づいて論理ページと物理ページの対応関係を把握する。 When reading the data stored in each physical page from the physical block, the page management information is read from the last physical page where the data in the physical block is written, and the logical page and physical page are read based on this page management information. Know the correspondence.
以下、図8乃至図10を参照して、本実施形態での書き込みの具体例を説明する。なお、一連のデータは、前述したように、PPNが小さい方から順番に書き込まれるが、以下、n番目(nは自然数)に書き込まれる一連のデータを「第nの一連のデータ」と言う。また、以下の説明では、アクセス対象の論理ページ(一連のデータの先頭データに対応する論理セクタ領域が属する論理ページから一連のデータの末尾データに対応する論理セクタ領域が属する論理ページまでの1個または複数個の論理ページ)を「論理アクセスページ」と言う。また、この具体例では、図8(A)に示すように、論理ブロックにPBA#7の物理ブロックが割り当てられているとする。
A specific example of writing in the present embodiment will be described below with reference to FIGS. As described above, a series of data is written in order from the smallest PPN. Hereinafter, a series of data written in the nth (n is a natural number) is referred to as an “nth series of data”. Further, in the following description, one logical page to be accessed (one logical page from the logical page to which the logical sector area corresponding to the first data of the series of data belongs to the logical page to which the logical sector area corresponding to the last data of the series of data belongs) Or a plurality of logical pages) is called a “logical access page”. In this specific example, it is assumed that a physical block of
まず、ホストシステム4からの第1の書き込み指示から、論理アクセスページとして、LBN#0の論理ブロック内のLPN#0−#7の8個の論理ページを特定する。また、LBN#0の論理ブロックに対応する物理ブロックが無いため、LBN#0の論理ブロックに対応してPBA#7の物理ブロックが割り当てる。この物理ブロックには未だデータが書き込まれていないため、物理ブロック内のデータが書き込まれていない先頭の物理ページとして、PBA#7の物理ブロック内の先頭の物理ページ(PPN#0の物理ページ)を特定する。この先頭の物理ページ(PPN#0の物理ページ)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LPN#0−#7の8個の論理ページに対応する第1の一連のデータが、PPN#0−#7の8個の物理ページに書き込まれる(図8(A)参照)。この書き込み処理を開始するときに、一連のデータの先頭データに対応する論理ページのLPNの値と、この先頭データが書き込まれる物理ページのPPNの値が一致しているため、この書き込み処理で、先頭の論理ページに対応するデータから論理ページの順番(LPNの順番)で一連のデータが書き込まれる判断することができる。
First, eight logical pages LPN # 0- # 7 in a logical block of
この段階では、PBA#7の物理ブロック内に書き込まれている全てのデータが、先頭の論理ページ(LPN#0の論理ページ)に対応するデータからLPNの小さい順で各物理ページに格納されている。従って、第1の一連のデータの末尾データが記憶されている物理ページ(PPN#7の物理ページ)の次の物理ページ(PPN#8の物理ページ)に、ページ管理情報を書き込まない。
At this stage, all the data written in the physical block of
次に、ホストシステム4からの第2の書き込み指示から、論理アクセスページとして、LBN#0の論理ブロック内のLPN#8−#15の8個の論理ページを特定する。また、LBN#0の論理ブロックと対応するPBA#7の物理ブロック内のデータが書き込まれている末尾の物理ページとして、PPN#7の物理ページを特定する。特定された末尾の物理ページ(PPN#7の物理ページ)の次の物理ページ(PPN#8の物理ページ)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LPN#8−#15の8個の論理ページに対応する第2の一連のデータが、PPN#8−#15の8個の物理ページに書き込まれる(図8(A)参照)。この書き込み処理を開始するときに、物理ブロック内のデータが書き込まれている末尾の物理ページ(PPN#7の物理ページ)にページ管理情報が書き込まれていないため、この時点で、物理ブロック内の物理ページに先頭の論理ページに対応するデータから論理ページの順番(LPNの順番)で一連のデータが書き込まれていると判断することができる。更に、この書き込み処理で書き込まれる一連のデータの先頭データに対応する論理ページのLPNの値と、この先頭データが書き込まれる物理ページのPPNの値が一致しているため、この一連のデータを書き込んだ後も、この状態が維持されると判断することができる。
Next, from the second write instruction from the
この段階でも、PBA#7の物理ブロック内のデータが書き込まれている全ての物理ページで、物理ページのPPNとその物理ページに記憶されているデータに対応した論理ページのLPNとが同じ番号である。従って、第2の一連のデータの末尾データが記憶されている物理ページ(PPN#15の物理ページ)の次の物理ページ(PPN#16の物理ページ)にも、ページ管理情報を書き込まない。
Even at this stage, in all the physical pages in which data in the physical block of
次に、ホストシステム4からの第3の書き込み指示から、論理アクセスページとして、LBN#0の論理ブロック内のLPN#16−#31の16個の論理ページを特定する。また、LBN#0の論理ブロックと対応するPBA#7の物理ブロック内のデータが書き込まれている末尾の物理ページとして、PPN#15の物理ページを特定する。特定された末尾の物理ページ(PPN#15の物理ページ)の次の物理ページ(PPN#16の物理ページ)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LPN#16−#31の16個の論理ページに対応する第3の一連のデータが、PPN#16−#31の16個の物理ページに書き込まれる(図8(A)参照)。この書き込み処理を開始するときに、物理ブロック内のデータが書き込まれている末尾の物理ページ(PPN#15の物理ページ)にページ管理情報が書き込まれていないため、この時点で、物理ブロック内の物理ページに先頭の論理ページに対応するデータから論理ページの順番(LPNの順番)で一連のデータが書き込まれていると判断することができる。更に、この書き込み処理で書き込まれる一連のデータの先頭データに対応する論理ページのLPNの値と、この先頭データが書き込まれる物理ページのPPNの値が一致しているため、この一連のデータを書き込んだ後も、この状態が維持されると判断することができる。
Next, from the third write instruction from the
この段階でも、PBA#7の物理ブロック内のデータが書き込まれている全ての物理ページで、物理ページのPPNとその物理ページに記憶されているデータに対応した論理ページのLPNとが同じ番号である。従って、第3の一連のデータの末尾データが記憶されている物理ページ(PPN#31の物理ページ)の次の物理ページ(PPN#32の物理ページ)にも、ページ管理情報を書き込まない。
Even at this stage, in all the physical pages in which data in the physical block of
次に、ホストシステム4からの第4の書き込み指示から、論理アクセスページとして、LBN#0の論理ブロック内のLPN#48−#63の16個の論理ページを特定する。また、LBN#0の論理ブロックに対応するPBA#7の物理ブロック内のデータが書き込まれている末尾の物理ページとして、PPN#31の物理ページを特定する。特定された末尾の物理ページ(PPN#31の物理ページ)の次の物理ページ(PPN#32の物理ページ)から、ホストシステム4から与えられた一連のデータを書き込む。この結果、LPN#48−#63の16個の論理ページに対応する第4の一連のデータが、PPN#32−#47の16個の物理ページに書き込まれる(図8(A)参照)。この書き込み処理を開始するときに、物理ブロック内のデータが書き込まれている末尾の物理ページ(PPN#31の物理ページ)にページ管理情報が書き込まれていないため、この時点で、物理ブロック内の物理ページに先頭の論理ページに対応するデータから論理ページの順番(LPNの順番)で一連のデータが書き込まれていると判断することができる。しかし、この書き込み処理で書き込まれる一連のデータの先頭データに対応する論理ページのLPNの値と、この先頭データが書き込まれる物理ページのPPNの値が一致していないため、この一連のデータを書き込んだ後は、この状態が維持されないと判断することができる。
Next, from the fourth write instruction from the
この段階になって、PBA#7の物理ブロック内のデータが書き込まれている全ての物理ページの一部(すなわち、第4の一連のデータが記憶されているPPN#32−#47の16個の物理ページ)で、物理ページのPPNとその物理ページに記憶されているデータに対応した論理ページのLPNとが異なる番号となる。この場合、メモリコントローラ3が、物理ブロック内のデータが書き込まれている全ての物理ページ(PPN#0−#47の物理ページ)と論理ページとの対応関係を示すページ管理情報#0を作成する。ここでは、第4の一連のデータを書き込む前の末尾の物理ページ(PPN#31の物理ページ)に、ページ管理情報が書き込まれていないため(その末尾の物理ページの共通冗長領域50に管理フラグが書き込まれていないため)、新規にページ管理情報を作成する。具体的には、ワークエリア8上にLPN#0−63にそれぞれ対応する64個のレコードを有するテーブル作成領域を確保し、このテーブル作成領域にPPNを書き込んでいく。ページ管理情報#0の場合には、図9(A)に示すように、LPN#48−63に対応した16個のレコードに、第4の一連のデータが書き込まれた16個の物理ページに対応するPPN#32−#47を書き込む。また、第4の一連のデータの先頭データが書き込まれているPPN#32の物理ページよりも前の物理ページには先頭の論理ページに対応するデータから論理ページの順番でデータが格納されていると判断して、LPN#0−#31に対応した32個のレコードに、PPN#0−31を書き込む。これにより、ページ管理情報#0の作成が完了する。メモリコントローラ3は、作成したページ管理情報#0を、第4の一連のデータの末尾データが書き込まれている物理ページ(PPN#47の物理ページ)の次の物理ページ(PPN#48の物理ページ)に書き込む。また、ページ管理情報#0が書き込まれた物理ページ(PPN#48の物理ページ)の共通冗長領域50に、管理フラグを書き込む。
At this stage, a part of all physical pages in which data in the physical block of
尚、後述するように、一度でもページ管理情報を書き込んだ物理ブロックについては、その物理ブロックに一連のデータを書き込む都度に、一連のデータの末尾データが書き込まれている物理ページの次の物理ページに、ページ管理情報を書き込む。 As will be described later, for a physical block in which page management information has been written even once, each time a series of data is written to the physical block, the physical page next to the physical page in which the end data of the series of data is written To write page management information.
次に、ホストシステム4からの第5の書き込み指示から、論理アクセスページとして、LBN#0の論理ブロック内のLPN#32−#47の16個の論理ページを特定する。また、LBN#0の論理ブロックに対応するPBA#7の物理ブロック内のデータが書き込まれている末尾の物理ページとして、PPN#48の物理ページを特定する。特定された末尾の物理ページ(PPN#48の物理ページ)の次の物理ページ(PPN#49の物理ページ)から、ホストシステム4から与えられた一連のデータを書き込む。
Next, from the fifth write instruction from the
しかし、ここでは、ホストシステム4から与えられた一連のデータをPBA#7の物理ブロック内の空きページに全て書き込むことはできない。なぜなら、ホストシステム4かから与えられる一連のデータは、16ページ分のデータであるのに対し、PBA#7の物理ブロック内の空きページの数は、PPN#49−#63の15ページと、1ページ不足するからである。更に、物理ブロック内のデータが書き込まれている末尾の物理ページ(PSN#48の物理ページ)にページ管理情報が書き込まれているため、この時点で、物理ブロック内の物理セクタ領域60に先頭の論理セクタ領域に対応するデータから論理セクタ領域の順番(LPNの順番)で一連のデータが書き込まれていないと判断することができる。従って、ページ管理情報を書き込む物理ページを考慮すれば2ページ不足していると判断することができる。
However, in this case, a series of data given from the
そこで、この場合、PBA#7の物理ブロック内の最後尾の物理ページ(PPN#63の物理ページ)の1ページ前の物理ページ(PPN#62の物理ページ)まで、ホストシステム4から与えられるデータを書き込む。PBA#7の物理ブロック内の最後尾の物理ページ(PPN#63の物理ページ)には、その時点での論理ページと物理ページの対応関係を表すページ管理情報#1を書き込む。残りのデータについては、図8(B)に示すように、LBN#0の論理ブロックに別の物理ブロック(PBA#16の物理ブロック)を新たに割り当て、そのPBA#16の物理ブロック内の先頭の物理ページ(PPN#0の物理ページ)から書き込み、残りのデータの末尾データが書き込まれた物理ページ(PPN#1の物理ページ)の次の物理ページ(PPN#2の物理ページ)に、その時点での論理ページと物理ページの対応関係を表すページ管理情報#2を書き込む。この結果、ホストシステム4から与えられた16ページ分の一連のデータのうち、14ページ分の一連のデータが、PBA#7の物理ブロック内のPPN#49−#62の物理ページに第5の一連のデータとして書き込まれ(図8(A)参照)、残りの2ページ分の一連のデータが、PBA#16の物理ブロック内のPPN#0−#1の物理ページに第6の一連のデータとして書き込まれる(図8(B)参照)。尚、上述のようにPBA#7の物理ブロック内の空きページに、ホストシステム4から書き込み指示と共に与えられる全てのデータを書き込むことができない場合、その全てのデータを新たに割り当てたPBA#16の物理ブロックに書き込むようにしてもよい。
Therefore, in this case, the data given from the
尚、前述したページ管理情報#1及び#2は、それぞれ、以下のようにして作成される。
The page
すなわち、第5の一連のデータが書き込まれる前の末尾の物理ページ(PPN#48の物理ページ)に、ページ管理情報#0が書き込まれているため(その末尾の物理ページの共通冗長領域50に管理フラグが書き込まれているため)、ページ管理情報#0を読み出し、ページ管理情報#0に基づいてページ管理情報#1を作成する。具体的には、図9(B)に示すように、ページ管理情報#0における、LPN#32−#45に対応するレコードに、第5の一連のデータが書き込まれた14個の物理ページ60に対応したPPN#49−62を書き込むことで、ページ管理情報#1を作成する。尚、作成されたページ管理情報#1は、第5の一連のデータの末尾データが書き込まれている物理ページ(PPN#62の物理ページ)の次の物理ページ(PPN#63の物理ページ)に書き込まれ、ページ管理情報#1が書き込まれた物理ページ(PPN#63の物理ページ)の共通冗長領域50には、管理フラグが書き込まれる。
That is, since page
また、ページ管理情報#2については、ワークエリア8に保持されているページ管理情報#1を用いて作成する。具体的には、図10(A)に示すように、ページ管理情報#1における、LPN#46−#47に対応するレコードに、第6の一連のデータが書き込まれた2個の物理ページ60に対応したPPN#0−1を書き込む。また、それらLPN#46−#47に対応するレコード以外の全てのレコードに、旧ブロックフラグ(図では、「旧ブロックF」と記載する)を書き込む。旧ブロックフラグは、各レコードに書き込まれているPPNが、旧ブロック(本具体例ではPBA#7の物理ブロック)内の物理ページのPPNであるか、又は新ブロック(本具体例ではPBA#16の物理ブロック)内の物理ページのPPNであるかを判断するための情報である。つまり、旧ブロックフラグが書き込まれているレコードに書き込まれているPPNは、旧ブロック(本具体例ではPBA#7の物理ブロック)内の物理ページのPPNであると判断される。つまり、ページ管理情報#2を参照することで、LPN#46−#47の論理ページに対応するデータは、新ブロック(本具体例ではPBA#16の物理ブロック)に書き込まれているが、他の論理ページに対応するデータは、旧ブロックに書き込まれていることがわかる。尚、以上のようにして作成されたページ管理情報#2は、第6の一連のデータの末尾データが書き込まれている物理ページ(新ブロック内のPPN#1の物理ページ)の次の物理ページ(新ブロック内のPPN#2の物理ページ)に書き込まれ、ページ管理情報#2が書き込まれた物理ページ(新ブロック内のPPN#2の物理ページ)の共通冗長領域50には、管理フラグが書き込まれる。
The page
尚、本具体例において、PBA#7の物理ブロックとPBA#16の物理ブロックが同一の論理ブロック(LBN#0の論理ブロック)に対応することは、これらの物理ブロックに書き込まれている論理アドレス情報を参照することにより判断することができる。また、これらの物理ブロックの新旧関係を判断するために、先頭物理ページの共通冗長領域50に新旧関係を判断するためシリアル番号を書き込むようにすることが好ましい。また、新ブロックの先頭物理ページの共通冗長領域50や、ページ管理情報が書き込まれた物理ページの共通冗長領域50に、旧ブロックのPBAを書き込むようにしてもよい。このようにすれば、それらの共通冗長領域50を参照することにより、旧ブロックのPBAを把握することができる。
In this specific example, the fact that the physical block of
以後、ホストシステム4から一連のデータの与えられた場合には、新ブロックであるPBA#16の物理ブロックに、その一連のデータと、最新のページ管理情報とが書き込まれる。
Thereafter, when a series of data is given from the
例えば、LBA#0−#15の16個の論理ページに対応する第7の一連のデータを、PBA#16の物理ブロック内のデータが書き込まれている末尾の物理ページ(PPN#2の物理ページ)の次の物理ページ(PPN#3の物理ページ)から書き込む。また、第7の一連のデータが書き込まれる前の末尾の物理ページ(PPN#2の物理ページ)に書き込まれているページ管理情報#2に基づいて、ページ管理情報#3を作成する。具体的には、図10(B)に示すように、ページ管理情報#2における、LPN#0−#15に対応するレコードに、第7の一連のデータが書き込まれた16個の物理ページに対応したPPN#3−18を書き込み、且つ、それらLPN#0−#15に対応するレコードに書き込まれている旧ブロックフラグを消去する。このようにして作成されたページ管理情報#3を、第7の一連のデータの末尾データが書き込まれている物理ページ(PPN#18の物理ページ)の次の物理ページ(PPN#19の物理ページ)に書き込む。
For example, the seventh series of data corresponding to the 16 logical pages of
さて、この後、論理ブロックに割り当てられた旧ブロック又は新ブロックからデータを読み出すときには、メモリコントローラ3は、新ブロック内のデータが書き込まれている末尾の物理ページ(PPN#19の物理ページ)からページ管理情報#3を読み出し、このページ管理情報#3に基づいて論理ページと物理ページの対応関係を把握する。ここでは、新ブロック内のPPN#3の物理ページに書き込まれているページ管理情報#3が、論理ページと物理ページの最新の対応関係を示しているため、そのページ管理情報#3を参照するだけで、論理ページと物理ページの最新の対応関係を把握することができる。具体的には、LPN#0−#15及び#46−#47の論理ページに対応したデータは、新ブロックに書き込まれており、他の論理ページに対応したデータは、旧ブロックに書き込まれていることを把握することができる。つまり、本実施形態によれば、効率的に、論理ページと物理ページの対応関係を把握することができる。
After that, when data is read from the old block or new block assigned to the logical block, the
尚、もし、第1の一連のデータが書き込まれてから第4の一連のデータが書き込まれる前までの間に(つまりページ管理情報が全く書き込まれていない場合に)、物理ブロック(旧ブロック又は新ブロック)からデータを読み出すときには、メモリコントローラ3は、先頭の論理ページに対応するデータから論理ページの順番でデータが格納されていると判断して、論理ページと物理ページの対応関係を把握することができる。
If the first series of data is written and before the fourth series of data is written (that is, if no page management information is written), the physical block (the old block or When reading data from the new block), the
以上が、第二の実施形態の説明である。 The above is the description of the second embodiment.
なお、ページ管理情報は、前述したような、論理ページと物理ページの対応関係を示すテーブルであることが好ましいが、一変形例として、物理ブロックに書き込まれているそれぞれの一連のデータの先頭データに対応する論理ページのLPN(以下、「SLPN」と言う)と、その一連のデータが書き込まれるページ数(先頭データが書き込まれるページから末尾データが書き込まれるページまでのページの個数であるページカウント値、以下、「PCNT」と言う)と、その一連のデータが書き込まれる物理ページが属する物理ブロックを示す情報であってもよい。更に、それぞれの一連のデータの先頭データが書き込まれる物理ページの物理ページ番号(PPN)を示す情報を加えてもよい。このような情報が書き込まれている場合には、この情報に基づいて、論理ページと物理ページの対応関係を示すテーブルが作成される。 The page management information is preferably a table indicating the correspondence between logical pages and physical pages as described above, but as a modification, the top data of each series of data written in the physical block LPN (hereinafter referred to as “SLPN”) of the logical page corresponding to, and the number of pages in which the series of data is written (the page count which is the number of pages from the page where the first data is written to the page where the last data is written) Value (hereinafter referred to as “PCNT”), it may be information indicating a physical block to which a physical page to which the series of data is written belongs. Furthermore, information indicating the physical page number (PPN) of the physical page in which the top data of each series of data is written may be added. When such information is written, a table indicating the correspondence between logical pages and physical pages is created based on this information.
例えば、図11(A)〜(D)に、ページ管理情報#0〜#3のそれぞれの変形例であるページ管理情報#0´〜#3´をそれぞれ示す。ページ管理情報#0´〜#3´において、第nのSLPN及びPCNTの組は、第nの一連のデータに対応する。また、新ブロックに書き込まれたページ管理情報#2´及び3´において、旧ブロックに書き込まれている一連のデータに対応するSLPN及びPCNTの組には、旧ブロックフラグが関連付けられる。尚、物理ブロック内の物理ページに先頭の論理ページに対応するデータから論理ページの順番(LPNの順番)で一連のデータが書き込まれている部分については、複数個の一連のデータに対応する部分を1つにまとめた情報にしてもよい。例えば、第1−3の一連のデータに対応する部分を1つにまとめて、SLPNが#0、PCNTが32としてもよい。
For example, FIGS. 11A to 11D show page
この変形例では、論理ページと物理ページの最新の対応関係を示すテーブルは、最新のページ管理情報に基づいて作成される。具体的には、後から書き込まれた一連のデータに対応する論理ページと物理ページの対応関係を優先して、LPN#0−#63の64個の論理ページ番号(LPN)に対応したレコードに物理ページ番号(PPN)を書き込んでいく。尚、論理ページと物理ページの対応関係は、SLPN及びPCNTの組に基づいて把握する。
In this modification, a table indicating the latest correspondence between logical pages and physical pages is created based on the latest page management information. Specifically, the records corresponding to the 64 logical page numbers (LPN) of
例えば、ページ管理情報#3´に基づいて、図10(B)に示したようなテーブルが作成される。このテーブル作成では、それぞれの一連のデータに対応する論理ページと物理ページの対応関係に基づいて、各レコードに物理ページ番号(PPN)を書き込んでいく。この物理ページ番号(PPN)の書き込みは、先に書き込まれた一連のデータに対応する方から順番に行われ、書き込み先のレコードに既に物理ページ番号(PPN)が書き込まれていても、後から物理ページ番号(PPN)を上書きする。従って、後から書き込まれた一連のデータに対応する論理ページと物理ページの対応関係を優先したテーブルが作成される。
For example, a table as shown in FIG. 10B is created based on the page
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。 As mentioned above, although several embodiment of this invention was described, these are the illustrations for description of this invention, Comprising: It is not the meaning which limits the scope of the present invention only to these embodiment. Of course, various modifications can be made without departing from the scope of the present invention.
例えば、上記の実施の形態では、論理ブロックに含まれる論理セクタ領域と物理ブロックとに含まれる物理セクタ領域の数は一致していた。しかしながら、論理ブロックに含まれる論理セクタ領域の数を物理ブロックに含まれる物理セクタ領域の数より少なくしてもよい。こうすることで、論理ブロックに含まれる全ての論理セクタ領域に対応するデータを物理ブロックに保存した後であっても、そのデータの書き替えデータを、当該物理ブロックの空き領域(データが書き込まれていない物理セクタ領域又は物理ページ)にデータを保存することができる。これにより効率的なデータの書き換えが可能となる。例えば、論理ブロックに含まれる論理セクタ領域の数と、物理ブロックに含まれる物理セクタ領域の数を、共に2のべき乗で与えられる数にする場合には、論理ブロックに含まれる論理セクタ領域の数を128とし、物理ブロックに含まれる物理セクタ領域の数を256とする。 For example, in the above embodiment, the number of physical sector areas included in the logical block area and the physical block included in the logical block is the same. However, the number of logical sector areas included in the logical block may be smaller than the number of physical sector areas included in the physical block. In this way, even after data corresponding to all logical sector areas included in the logical block is stored in the physical block, the rewrite data of the data is changed to the empty area (data is written in the physical block). The data can be stored in a physical sector area or physical page that is not present. This makes it possible to efficiently rewrite data. For example, when the number of logical sector areas included in the logical block and the number of physical sector areas included in the physical block are both given by powers of 2, the number of logical sector areas included in the logical block Is 128, and the number of physical sector areas included in the physical block is 256.
また、例えば、電源遮断により、セクタ管理情報(ページ管理情報)を書き込む前に書き込み処理が終了してしまうことがあり得るので、セクタ管理情報を書き込んだ物理セクタ領域60に対応する分割冗長領域70(ページ管理情報を書き込んだ物理ページの共通冗長領域50)には、書き込み処理が正常終了したことを示す終了マークを書き込むことが好ましい。また、セクタ管理情報(ページ管理情報)を書き込む必要のない場合(物理ブロック内のデータが書き込まれている全ての物理セクタ領域60(物理ページ)が、その物理ブロックに対応する論理ブロック内の論理セクタ領域(論理ページ)と先頭から順番に対応している場合)には、一連のデータの末尾データが書き込まれた物理セクタ領域60に対応する分割冗長領域70(一連のデータの末尾データが書き込まれた物理ページの共通冗長領域50)に、この終了マークを書き込む。
In addition, for example, the write process may end before the sector management information (page management information) is written due to power shutdown, so the divided
1…フラッシュメモリシステム、2…フラッシュメモリ、3…メモリコントローラ、6…マイクロプロセッサ
DESCRIPTION OF
Claims (11)
複数個の論理セクタ領域で構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
前記アクセス指示によりアクセス対象の領域として指定された論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理セクタ領域の先頭を検索する空きセクタ領域検索手段と、
前記アクセス指示により前記論理アクセス領域に対して書き込むことが指示された一連のデータを、前記空きセクタ領域検索手段によって検出されたデータが書き込まれていない先頭の前記物理セクタ領域から、末尾の前記物理セクタ領域に向かって順次書き込んでいくデータ書き込み手段と、
前記データ書き込み手段により前記一連のデータが書き込まれた前記物理ブロック内の前記物理セクタ領域と、前記物理ブロックに対応する前記論理ブロック内の前記論理セクタ領域との対応関係を示すセクタ管理情報を、前記一連のデータの末尾データが書き込まれた前記物理セクタ領域の次の前記物理セクタ領域に書き込むセクタ管理情報書き込み手段と、
を備えることを特徴とするメモリコントローラ。 A memory controller that controls access to a flash memory that is erased in units of physical blocks including a plurality of physical sector areas, based on an access instruction given from a host system,
A block management means for managing a correspondence relationship between a logical block composed of a plurality of logical sector areas and the physical block;
Empty sector area search means for searching for the beginning of the physical sector area in which data in the physical block corresponding to the logical block to which the logical access area specified as the area to be accessed by the access instruction belongs is not written;
A series of data instructed to be written to the logical access area by the access instruction is transferred from the head physical sector area to which the data detected by the free sector area search means is not written, to the physical address at the end. Data writing means for sequentially writing toward the sector area;
Sector management information indicating a correspondence relationship between the physical sector area in the physical block in which the series of data is written by the data writing unit and the logical sector area in the logical block corresponding to the physical block, Sector management information writing means for writing in the physical sector area next to the physical sector area in which the end data of the series of data is written;
A memory controller comprising:
ことを特徴とする請求項1に記載のメモリコントローラ。 The sector management information writing unit is configured to output the logical block corresponding to the physical block to all the physical sector areas in which data in the physical block in which the series of data has been written by the data writing unit is written. When the logical sector areas in the block correspond in order from the top, the sector management information is not written in the physical sector area next to the physical sector area in which the end data of the series of data is written,
The memory controller according to claim 1.
ことを特徴とする請求項1又は2に記載のメモリコントローラ。 The data stored in the physical sector area in the physical block corresponding to the logical block to which the logical access area specified by the access instruction belongs is changed to the end of the data in which the data in the physical block is written. Further comprising data reading means for reading based on the sector management information stored in the physical sector area,
The memory controller according to claim 1, wherein the memory controller is a memory controller.
ことを特徴とする請求項3に記載のメモリコントローラ。 When the sector read information is not stored in the physical block corresponding to the logical block to which the logical access area belongs, the physical read area is written with data in the physical block. On the other hand, the logical sector area in the logical block corresponding to the physical block is considered to correspond in order from the top, and data is read.
The memory controller according to claim 3.
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
前記アクセス指示によりアクセス対象の論理ページとして指定された論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理ページの先頭を検索する空きページ検索手段と、
前記アクセス指示により前記論理アクセスページに対して書き込むことが指示された一連のデータを、前記空きページ検索手段によって検出されたデータが書き込まれていない先頭の前記物理ページから、末尾の前記物理ページに向かって順次書き込んでいくデータ書き込み手段と、
前記データ書き込み手段により前記一連のデータが書き込まれた前記物理ブロック内の前記物理ページと、前記物理ブロックに対応する前記論理ブロック内の前記論理ページとの対応関係を示すページ管理情報を、前記一連のデータの末尾データが書き込まれた前記物理ページの次の前記物理ページに書き込むページ管理情報書き込み手段と、
を備えることを特徴とするメモリコントローラ。 A memory controller that controls access to a flash memory that is erased in units of physical blocks including a plurality of physical pages, based on an access instruction given from a host system,
Block management means for managing a correspondence relationship between a logical block composed of a plurality of logical pages and the physical block;
Empty page search means for searching for the top of the physical page in which data in the physical block corresponding to the logical block to which the logical access page designated as the logical page to be accessed belongs by the access instruction belongs,
A series of data instructed to be written to the logical access page by the access instruction is transferred from the first physical page to which the data detected by the empty page search unit is not written to the last physical page. Data writing means for sequentially writing toward the
Page management information indicating a correspondence relationship between the physical page in the physical block in which the series of data is written by the data writing unit and the logical page in the logical block corresponding to the physical block; Page management information writing means for writing to the physical page next to the physical page in which the end data of the data is written;
A memory controller comprising:
ことを特徴とする請求項5に記載のメモリコントローラ。 The page management information writing unit includes the logical block corresponding to the physical block for all the physical pages in which data in the physical block in which the series of data has been written by the data writing unit is written. The page management information is not written to the physical page next to the physical page in which the end data of the series of data is written,
The memory controller according to claim 5.
ことを特徴とする請求項5又は6に記載のメモリコントローラ。 The data stored in the physical page in the physical block corresponding to the logical block to which the logical access page specified by the access instruction belongs is changed to the last physical in which the data in the physical block is written. Data reading means for reading based on the page management information stored in the page;
The memory controller according to claim 5, wherein the memory controller is a memory controller.
ことを特徴とする請求項7に記載のメモリコントローラ。 When the page management information is not stored in the physical block corresponding to the logical block to which the logical access page belongs, the data reading means is stored in the physical page in which data in the physical block is written. On the other hand, it is assumed that the logical pages in the logical block corresponding to the physical block correspond in order from the top, and data is read.
The memory controller according to claim 7.
前記メモリコントローラによってアクセスされるフラッシュメモリと
を備えるフラッシュメモリシステム。 A memory controller according to any one of claims 1 to 8,
And a flash memory system accessed by the memory controller.
複数個の論理セクタ領域で構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
前記アクセス指示によりアクセス対象の領域として指定された論理アクセス領域が属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理セクタ領域の先頭を検索する空きセクタ領域検索ステップと、
前記アクセス指示により前記論理アクセス領域に対して書き込むことが指示された一連のデータを、前記空きセクタ領域検索ステップで検出されたデータが書き込まれていない先頭の前記物理セクタ領域から、末尾の前記物理セクタ領域に向かって順次書き込んでいくデータ書き込みステップと、
前記データ書き込みステップで前記一連のデータが書き込まれた前記物理ブロック内の前記物理セクタ領域と、前記物理ブロックに対応する前記論理ブロック内の前記論理セクタ領域との対応関係を示すセクタ管理情報を、前記一連のデータの末尾データが書き込まれた前記物理セクタ領域の次の前記物理セクタ領域に書き込むセクタ管理情報書き込みステップと、
を備えることを特徴とするフラッシュメモリの制御方法。 A flash memory control method in which erasure is performed in units of physical blocks including a plurality of physical sector areas based on an access instruction given from a host system,
A block management step for managing a correspondence relationship between a logical block composed of a plurality of logical sector areas and the physical block;
A free sector area search step for searching for the beginning of the physical sector area in which data in the physical block corresponding to the logical block to which the logical access area designated as the access target area by the access instruction belongs is not written;
A series of data instructed to be written to the logical access area by the access instruction is transferred from the first physical sector area to which the data detected in the free sector area search step is not written to the last physical sector. A data writing step of sequentially writing toward the sector area;
Sector management information indicating a correspondence relationship between the physical sector area in the physical block in which the series of data is written in the data writing step and the logical sector area in the logical block corresponding to the physical block, Sector management information writing step for writing to the physical sector area next to the physical sector area in which the end data of the series of data is written;
A method of controlling a flash memory, comprising:
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
前記アクセス指示によりアクセス対象の論理ページとして指定された論理アクセスページが属する前記論理ブロックと対応する前記物理ブロック内のデータが書き込まれていない前記物理ページの先頭を検索する空きページ検索ステップと、
前記アクセス指示により前記論理アクセスページに対して書き込むことが指示された一連のデータを、前記空きページ検索ステップで検出されたデータが書き込まれていない先頭の前記物理ページから、末尾の前記物理ページに向かって順次書き込んでいくデータ書き込みステップと、
前記データ書き込みステップで前記一連のデータが書き込まれた前記物理ブロック内の前記物理ページと、前記物理ブロックに対応する前記論理ブロック内の前記論理ページとの対応関係を示すページ管理情報を作成し、前記一連のデータの末尾データが書き込まれた前記物理ページの次の前記物理ページに書き込むページ管理情報書き込みステップと、
を備えることを特徴とするフラッシュメモリの制御方法。 A flash memory control method in which erasure is performed in units of physical blocks including a plurality of physical pages based on an access instruction given from a host system,
A block management step for managing a correspondence relationship between a logical block composed of a plurality of logical pages and the physical block;
A free page search step of searching for the top of the physical page in which data in the physical block corresponding to the logical block to which the logical access page designated as the logical page to be accessed by the access instruction belongs is not written;
A series of data instructed to be written to the logical access page by the access instruction is transferred from the first physical page to which the data detected in the empty page search step is not written to the last physical page. A data writing step of sequentially writing toward the
Creating page management information indicating a correspondence relationship between the physical page in the physical block in which the series of data is written in the data writing step and the logical page in the logical block corresponding to the physical block; A page management information writing step for writing to the physical page next to the physical page in which tail data of the series of data is written;
A method of controlling a flash memory, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007337524A JP4760826B2 (en) | 2007-12-27 | 2007-12-27 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007337524A JP4760826B2 (en) | 2007-12-27 | 2007-12-27 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009157807A true JP2009157807A (en) | 2009-07-16 |
JP4760826B2 JP4760826B2 (en) | 2011-08-31 |
Family
ID=40961733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007337524A Active JP4760826B2 (en) | 2007-12-27 | 2007-12-27 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4760826B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013174975A (en) * | 2012-02-23 | 2013-09-05 | Toshiba Corp | Memory system and data writing method for the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6045994A (en) * | 1983-08-22 | 1985-03-12 | Tokyo Electric Co Ltd | Information storing method by prom |
JP2005135007A (en) * | 2003-10-28 | 2005-05-26 | Sony Corp | Memory management device and memory management method |
JP2008299455A (en) * | 2007-05-30 | 2008-12-11 | Sony Corp | Data storage device and data management method |
-
2007
- 2007-12-27 JP JP2007337524A patent/JP4760826B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6045994A (en) * | 1983-08-22 | 1985-03-12 | Tokyo Electric Co Ltd | Information storing method by prom |
JP2005135007A (en) * | 2003-10-28 | 2005-05-26 | Sony Corp | Memory management device and memory management method |
JP2008299455A (en) * | 2007-05-30 | 2008-12-11 | Sony Corp | Data storage device and data management method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013174975A (en) * | 2012-02-23 | 2013-09-05 | Toshiba Corp | Memory system and data writing method for the same |
Also Published As
Publication number | Publication date |
---|---|
JP4760826B2 (en) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4844639B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP5087347B2 (en) | Semiconductor memory device and method for controlling semiconductor memory device | |
JP4666080B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
US8214579B2 (en) | Memory controller, flash memory system with memory controller, and method of controlling flash memory | |
US8667348B2 (en) | Data writing method for non-volatile memory module and memory controller and memory storage apparatus using the same | |
JP4666081B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4702387B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4488048B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4737223B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4366420B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4687720B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4636005B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4743185B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4153535B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4760826B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4702703B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2012068765A (en) | Memory controller, flash memory system with memory controller, and control method of flash memory | |
JP4241741B2 (en) | Memory controller and flash memory system | |
JP2010026878A (en) | Memory controller, flash memory system equipped with memory controller, and control method of flash memory | |
JP4636046B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2012068764A (en) | Memory controller, nonvolatile memory system with memory controller, and control method of nonvolatile memory | |
JP4952741B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2009199242A (en) | Memory controller, flash memory system equipped with memory controller, and control method for flash memory | |
JP4235646B2 (en) | Memory controller and flash memory system | |
JP4952742B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110224 |
|
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: 20110510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110523 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140617 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4760826 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |