[go: up one dir, main page]

JP5694212B2 - Management information generation method and memory system - Google Patents

Management information generation method and memory system Download PDF

Info

Publication number
JP5694212B2
JP5694212B2 JP2012037949A JP2012037949A JP5694212B2 JP 5694212 B2 JP5694212 B2 JP 5694212B2 JP 2012037949 A JP2012037949 A JP 2012037949A JP 2012037949 A JP2012037949 A JP 2012037949A JP 5694212 B2 JP5694212 B2 JP 5694212B2
Authority
JP
Japan
Prior art keywords
group
physical
block address
physical block
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012037949A
Other languages
Japanese (ja)
Other versions
JP2013174970A (en
Inventor
オレリアン ナム フォング トラン
オレリアン ナム フォング トラン
矢野 浩邦
浩邦 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012037949A priority Critical patent/JP5694212B2/en
Priority to US13/609,991 priority patent/US8924636B2/en
Publication of JP2013174970A publication Critical patent/JP2013174970A/en
Application granted granted Critical
Publication of JP5694212B2 publication Critical patent/JP5694212B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明の実施形態は、管理情報生成方法およびメモリシステムに関する。   Embodiments described herein relate generally to a management information generation method and a memory system.

近年、不揮発性半導体記憶装置であるNANDフラッシュメモリの大容量化が進行し、このNANDフラッシュメモリを搭載したSSD(Solid State Drive)が注目されている。   In recent years, the capacity of a NAND flash memory, which is a nonvolatile semiconductor memory device, has increased, and an SSD (Solid State Drive) equipped with this NAND flash memory has attracted attention.

従来、SSDでは、揮発性メモリ上の管理テーブルをそのままを不揮発性メモリであるNANDフラッシュメモリへ記憶させていた。しかしながら、管理テーブルのサイズが大きい場合、大きなメモリサイズの揮発性メモリが必要となる。また、管理テーブルのサイズが大きい場合、NANDフラッシュメモリから揮発性メモリへの読み込みに長時間を要する。このため、管理テーブルのサイズを縮小化することが望まれている。   Conventionally, an SSD stores a management table in a volatile memory as it is in a NAND flash memory that is a nonvolatile memory. However, when the size of the management table is large, a volatile memory having a large memory size is required. Further, when the size of the management table is large, it takes a long time to read from the NAND flash memory to the volatile memory. For this reason, it is desired to reduce the size of the management table.

特開2009−211232号公報JP 2009-211122 A

本発明が解決しようとする課題は、小さいサイズの管理テーブルで不揮発性メモリ内のデータを管理できる管理情報生成方法およびメモリシステムを提供することである。   The problem to be solved by the present invention is to provide a management information generation method and a memory system capable of managing data in a nonvolatile memory with a management table having a small size.

実施形態によれば、コンピュータシステムの外部記憶装置として用いられる半導体記憶装置内に配置された不揮発性メモリ内における物理ブロックアドレスを、アドレス値の小さい値から順番に第1の所定数ずつ抽出して物理ブロックアドレスグループを生成する。さらに、前記物理ブロックアドレスグループの中にバッドブロックの物理ブロックアドレスが含まれている場合に、前記バッドブロックよりも後の最初のグッドブロックの物理ブロックアドレスを次の物理ブロックアドレスグループの先頭の物理ブロックアドレスに設定して、前記次の物理ブロックアドレスグループを生成する。そして、前記物理ブロックアドレスグループのそれぞれに対し、最初のバッドブロック以降の物理ブロックアドレスを全て第1のバッドブロックに設定する。さらに、前記物理ブロックアドレスグループの全体から前記グッドブロックの多い順番で前記物理ブロックアドレスグループを第2の所定数ずつ抽出して物理ブロックアドレスグループ群を生成する。生成した物理ブロックアドレスグループ群のそれぞれに対し、各物理ブロックアドレスグループ内におけるバッドブロックの連続数および先頭からのグッドブロックの連続数が、前記物理ブロックアドレスグループ群内の中で最もグッドブロックが少ない物理ブロックアドレスグループと同じ値となるよう前記各物理ブロックアドレスグループに第2のバッドブロックを設定する。ホスト装置から指定される論理アドレスに対応する前記不揮発性メモリ内の論理ブロックアドレスを用いて設定された複数の連続した論理ブロックアドレスである論理ブロックアドレスグループと、前記物理ブロックアドレスグループ群と、を対応付けしたアドレス管理テーブルを生成する。   According to the embodiment, a first predetermined number of physical block addresses in a non-volatile memory arranged in a semiconductor memory device used as an external storage device of a computer system are extracted in order from a small address value. Create a physical block address group. Furthermore, when the physical block address of the bad block is included in the physical block address group, the physical block address of the first good block after the bad block is changed to the first physical block address of the next physical block address group. The next physical block address group is generated by setting the block address. Then, for each of the physical block address groups, all the physical block addresses after the first bad block are set to the first bad block. Further, a second predetermined number of physical block address groups are extracted from the entire physical block address group in order of increasing number of good blocks to generate a physical block address group group. For each of the generated physical block address groups, the number of consecutive bad blocks in each physical block address group and the number of consecutive good blocks from the top are the least in the physical block address group. A second bad block is set in each physical block address group so as to have the same value as the physical block address group. A logical block address group that is a plurality of continuous logical block addresses set by using a logical block address in the nonvolatile memory corresponding to a logical address specified by a host device, and the physical block address group group. An associated address management table is generated.

図1は、第1の実施形態に係るSSDの構成例を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration example of an SSD according to the first embodiment. 図2は、SSD内で行われるアドレス変換を説明するための図である。FIG. 2 is a diagram for explaining address conversion performed in the SSD. 図3は、第1の実施形態に係るBA変換テーブルと有効性管理テーブルの構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of the BA conversion table and the validity management table according to the first embodiment. 図4は、NANDメモリ内からのデータ読み出し処理手順を示すフローチャートである。FIG. 4 is a flowchart showing a procedure for reading data from the NAND memory. 図5は、第2の実施形態に係るBA変換テーブルの構築処理手順を示すフローチャートである。FIG. 5 is a flowchart showing a procedure for constructing a BA conversion table according to the second embodiment. 図6は、第2の実施形態に係るBA変換テーブルの構築前段処理を説明するための図である。FIG. 6 is a diagram for explaining the pre-construction process of the BA conversion table according to the second embodiment. 図7は、第2の実施形態に係るBA変換テーブルの構築後段処理を説明するための図である。FIG. 7 is a diagram for explaining the post-construction process of the BA conversion table according to the second embodiment. 図8は、第2の実施形態に係るBA変換テーブルと有効性管理テーブルの構成例を示す図である。FIG. 8 is a diagram illustrating a configuration example of the BA conversion table and the validity management table according to the second embodiment. 図9は、SSDを搭載したパーソナルコンピュータの一例を示す斜視図である。FIG. 9 is a perspective view showing an example of a personal computer equipped with an SSD. 図10は、SSDを搭載したパーソナルコンピュータのシステム構成例を示す図である。FIG. 10 is a diagram illustrating a system configuration example of a personal computer equipped with an SSD.

以下に添付図面を参照して、実施形態に係る管理情報生成方法およびメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。   Hereinafter, a management information generation method and a memory system according to embodiments will be described in detail with reference to the accompanying drawings. Note that the present invention is not limited to these embodiments.

(第1の実施形態) (First embodiment)

図1は、第1の実施形態に係るSSDの構成例を示すブロック図である。半導体記憶装置(メモリシステム)としてのSSD(Solid State Drive)1は、コンピュータシステムに用いられる外部記憶装置であり、RAM2と、実際にデータを記憶するNANDメモリ4(不揮発性メモリ)と、コントローラ3と、を備えている。   FIG. 1 is a block diagram illustrating a configuration example of an SSD according to the first embodiment. An SSD (Solid State Drive) 1 as a semiconductor storage device (memory system) is an external storage device used in a computer system, and includes a RAM 2, a NAND memory 4 (nonvolatile memory) that actually stores data, and a controller 3. And.

RAM2は、ホスト装置10、コントローラ3、NANDメモリ4に接続されている。また、NANDメモリ4は、コントローラ3、RAM2に接続されている。そして、コントローラ3は、ホスト装置10、RAM2、NANDメモリ4に接続されている。   The RAM 2 is connected to the host device 10, the controller 3, and the NAND memory 4. The NAND memory 4 is connected to the controller 3 and the RAM 2. The controller 3 is connected to the host device 10, the RAM 2, and the NAND memory 4.

RAM2は、例えばSRAM、DRAM、FERAMなどのメモリである。RAM2は、ホスト装置10から送られてくるデータを一時的に記憶するとともに、記憶したデータをNANDメモリ4に送る。また、RAM2は、ホスト装置10から読み出し要求のあったデータがNANDメモリ4から読み出されると、読み出したデータを一時的に記憶しておく。NANDメモリ4から読み出されてRAM2に一時的に記憶されたデータは、ホスト装置10に送られる。   The RAM 2 is a memory such as SRAM, DRAM, or FERAM. The RAM 2 temporarily stores data sent from the host device 10 and sends the stored data to the NAND memory 4. Further, when the data requested to be read from the host device 10 is read from the NAND memory 4, the RAM 2 temporarily stores the read data. Data read from the NAND memory 4 and temporarily stored in the RAM 2 is sent to the host device 10.

RAM2は、ホストアドレス変換テーブル21、リード・ライトバッファ22、管理テーブルとしてのBA(Block Address)変換テーブル23Aおよび有効性管理テーブル24Aなどを記憶する。ホストアドレス変換テーブル21は、ホスト装置10から与えられる論理アドレスと、NANDメモリ4の論理ブロックアドレスとの間の対応関係を示す変換テーブルである。NANDメモリ4の論理ブロックは、SSD1内で設定される消去単位であり、1以上の物理ブロックに対応付けられている。   The RAM 2 stores a host address conversion table 21, a read / write buffer 22, a BA (Block Address) conversion table 23A as a management table, an effectiveness management table 24A, and the like. The host address conversion table 21 is a conversion table that indicates the correspondence between the logical address given from the host device 10 and the logical block address of the NAND memory 4. The logical block of the NAND memory 4 is an erasing unit set in the SSD 1 and is associated with one or more physical blocks.

BA変換テーブル23Aは、NANDメモリ4の論理ブロックアドレスと、NANDメモリ4の物理ブロックアドレス(記憶位置)との間の対応関係を示す変換テーブル(アドレス管理テーブル)であり、アドレス管理(読み出し/書き込み制御)に用いられる。物理ブロックは、NANDメモリ4内において独立して消去可能な最小単位のことであり、複数の物理ページから構成される。なお、以下では論理ブロックアドレスを論理BAといい、物理ブロックアドレスを物理BAという。   The BA conversion table 23A is a conversion table (address management table) indicating a correspondence relationship between the logical block address of the NAND memory 4 and the physical block address (storage position) of the NAND memory 4, and addresses management (read / write) Control). The physical block is a minimum unit that can be independently erased in the NAND memory 4 and is composed of a plurality of physical pages. Hereinafter, the logical block address is referred to as a logical BA, and the physical block address is referred to as a physical BA.

本実施形態のBA変換テーブル23Aでは、アドレス番号が連続している論理BAがグループ化されている。また、アドレス番号が連続している物理BAがグループ化されている。そして、グループ化された論理BAとグループ化された物理BAとが対応付けされている。有効性管理テーブル24Aは、論理BAの有効性や消去回数などを論理BA毎に示すテーブルである。   In the BA conversion table 23A of this embodiment, logical BAs having consecutive address numbers are grouped. In addition, physical BAs having consecutive address numbers are grouped. Then, the grouped logical BA and the grouped physical BA are associated with each other. The validity management table 24A is a table indicating the validity of the logical BA, the number of erasures, etc. for each logical BA.

ホストアドレス変換テーブル21、BA変換テーブル23A、有効性管理テーブル24Aは、SSD1の起動時等の所定タイミングで、NANDメモリ4からRAM2に展開される。   The host address conversion table 21, BA conversion table 23A, and validity management table 24A are expanded from the NAND memory 4 to the RAM 2 at a predetermined timing such as when the SSD 1 is activated.

また、NANDメモリ4内のデータ書き込みやデータ消去等に伴い、ホスト装置10から与えられる論理アドレスとNANDメモリ4の論理BAとの間の対応関係が更新された場合、RAM2に展開されたホストアドレス変換テーブル21が更新される。   When the correspondence between the logical address given from the host device 10 and the logical BA of the NAND memory 4 is updated due to data writing or data erasing in the NAND memory 4, the host address developed in the RAM 2 is updated. The conversion table 21 is updated.

BA変換テーブル23A、有効性管理テーブル24Aは、例えば、SSD1を最初に使用する際などに構築される。また、論理BAの有効性や書き換え回数などが更新された場合、RAM2に展開された有効性管理テーブル24Aが更新される。   The BA conversion table 23A and the validity management table 24A are constructed, for example, when the SSD 1 is used for the first time. In addition, when the validity of the logical BA, the number of rewrites, and the like are updated, the validity management table 24A expanded in the RAM 2 is updated.

リード・ライトバッファ22は、NANDメモリ4とホスト装置10との間でデータ転送を行う際に用いられるバッファメモリである。NANDメモリ4から読み出されたデータは、リード・ライトバッファ22でバッファリングされてホスト装置10に送られる。また、ホスト装置10から書き込み要求のあったデータは、リード・ライトバッファ22でバッファリングされてNANDメモリ4に書き込まれる。   The read / write buffer 22 is a buffer memory used when data is transferred between the NAND memory 4 and the host device 10. Data read from the NAND memory 4 is buffered by the read / write buffer 22 and sent to the host device 10. The data requested to be written from the host device 10 is buffered by the read / write buffer 22 and written to the NAND memory 4.

コントローラ3は、NANDメモリ4が記憶しているテーブル群(ホストアドレス変換テーブル21、BA変換テーブル23A、有効性管理テーブル24A)を、所定のタイミング(起動時など)でRAM2に取込むとともに、RAM2内のテーブル群を所定のタイミングでNANDメモリ4に記憶させる。また、コントローラ3は、ホスト装置10とNANDメモリ4との間でRAM2を介してデータ転送を行う。   The controller 3 fetches the table group (the host address conversion table 21, the BA conversion table 23A, the validity management table 24A) stored in the NAND memory 4 into the RAM 2 at a predetermined timing (such as at the time of activation), and the RAM 2 The table group is stored in the NAND memory 4 at a predetermined timing. The controller 3 performs data transfer between the host device 10 and the NAND memory 4 via the RAM 2.

コントローラ3は、BA変換テーブル23A、有効性管理テーブル24Aを用いて、RAM2、NANDメモリ4を制御することにより、NANDメモリ4に対してデータの読み出し/書き込み制御を行う。コントローラ3は、テーブル構築部(Generator)31、書き込み制御部32、読み出し制御部33、ホストアドレス変換部34、ブロックアドレス変換部35を有している。   The controller 3 controls the RAM 2 and the NAND memory 4 by using the BA conversion table 23A and the validity management table 24A, thereby performing data read / write control on the NAND memory 4. The controller 3 includes a table construction unit (Generator) 31, a write control unit 32, a read control unit 33, a host address conversion unit 34, and a block address conversion unit 35.

テーブル構築部31は、論理BAや物理BAのアドレス番号の連続性を利用して、BA変換テーブル23A、有効性管理テーブル24Aを構築する。テーブル構築部31は、何れのタイミングでBA変換テーブル23A、有効性管理テーブル24Aを構築してもよい。また、テーブル構築部31は、必要に応じてBA変換テーブル23A、有効性管理テーブル24Aを再構築してもよい。   The table construction unit 31 constructs the BA conversion table 23A and the validity management table 24A using the continuity of the logical BA and physical BA address numbers. The table construction unit 31 may construct the BA conversion table 23A and the validity management table 24A at any timing. The table construction unit 31 may reconstruct the BA conversion table 23A and the validity management table 24A as necessary.

書き込み制御部32は、RAM2内のホストアドレス変換テーブル21、BA変換テーブル23A、有効性管理テーブル24Aを用いて、NANDメモリ4内へのデータの書き込みを行う。   The write control unit 32 writes data into the NAND memory 4 using the host address conversion table 21, the BA conversion table 23A, and the validity management table 24A in the RAM 2.

読み出し制御部33は、RAM2内のホストアドレス変換テーブル21、BA変換テーブル23A、有効性管理テーブル24Aを用いて、NANDメモリ4からのデータの読み出しを行なう。   The read control unit 33 reads data from the NAND memory 4 using the host address conversion table 21, the BA conversion table 23A, and the validity management table 24A in the RAM 2.

また、書き込み制御部32、読み出し制御部33は、データ転送の際に、テーブル群をRAM2およびNANDメモリ4で更新しながらテーブル群に基づいてRAM2およびNANDメモリ4でのデータ管理を行なう。   The write control unit 32 and the read control unit 33 perform data management in the RAM 2 and the NAND memory 4 based on the table group while updating the table group in the RAM 2 and the NAND memory 4 at the time of data transfer.

ホストアドレス変換部34は、ホストアドレス変換テーブル21を用いて論理アドレスを論理BAに変換する。また、ホストアドレス変換部34は、ホストアドレス変換テーブル21を用いて論理アドレスを論理BAに変換する。   The host address conversion unit 34 converts a logical address into a logical BA using the host address conversion table 21. The host address conversion unit 34 converts the logical address into a logical BA using the host address conversion table 21.

ブロックアドレス変換部35は、BA変換テーブル23A、有効性管理テーブル24Aを用いて、論理BAをNANDメモリ4内の記憶位置である物理BAに変換する。また、ブロックアドレス変換部35は、BA変換テーブル23A、有効性管理テーブル24Aを用いて、物理BAを論理BAに変換する。   The block address conversion unit 35 converts the logical BA into a physical BA that is a storage position in the NAND memory 4 using the BA conversion table 23A and the validity management table 24A. The block address conversion unit 35 converts the physical BA into a logical BA using the BA conversion table 23A and the validity management table 24A.

例えば、NANDメモリ4内にデータを書き込む場合、書き込み制御部32は、有効性管理テーブル24Aを参照して、利用されていない有効な論理ブロック(書き込み可能な論理ブロック)を選択する。そして、書き込み制御部32は、選択した論理ブロックに論理アドレスで指定されたデータを書き込む。さらに、書き込み制御部32は、選択した論理ブロックの論理BAと論理アドレスとの対応関係を、ホストアドレス変換テーブル21に登録する。   For example, when data is written in the NAND memory 4, the write control unit 32 refers to the validity management table 24A and selects a valid logical block (a writable logical block) that is not used. Then, the write control unit 32 writes the data designated by the logical address to the selected logical block. Furthermore, the write control unit 32 registers the correspondence between the logical BA and logical address of the selected logical block in the host address conversion table 21.

また、NANDメモリ4内からデータを読み出す場合、読み出し制御部33は、ホストアドレス変換部34、ブロックアドレス変換部35にデータ変換指示を送る。これにより、ホストアドレス変換部34は、ホストアドレス変換テーブル21を用いて論理アドレスを論理BAに変換する。   When reading data from the NAND memory 4, the read control unit 33 sends a data conversion instruction to the host address conversion unit 34 and the block address conversion unit 35. As a result, the host address conversion unit 34 converts the logical address into a logical BA using the host address conversion table 21.

SSD1は、図示しないインタフェースを介して、ホスト装置10からの読み書き指示を受ける。ホスト装置10とSSD1との間のインタフェースは、例えば、SATA(Serial ATA)規格に準拠するが、これに限定されるものではない。   The SSD 1 receives a read / write instruction from the host device 10 via an interface (not shown). The interface between the host device 10 and the SSD 1 conforms to, for example, the SATA (Serial ATA) standard, but is not limited thereto.

NANDメモリ4は、NAND型フラッシュメモリなどの不揮発性半導体メモリである。NANDメモリ4は、複数の不揮発性メモリセルが行列上に配置されたメモリセルアレイ及び当該メモリセルアレイに対する書き込み、読み出し、消去動作を制御するための周辺回路を含んでいる。メモリセルアレイは、データ消去の最小単位であるブロックを複数配列して構成されている。各々のブロックは、データ書き込み及び読み出しの最小単位であるページを複数配列して構成されている。各々のメモリセルは、1ビットを記憶するように構成されていてもよいし、2ビット以上を記憶するように構成されていてもよい。NANDメモリ4では、ブロック内の同一ページに対する再書き込みは、一度当該ページを含むブロック全体を消去した後でなければ許可されない。   The NAND memory 4 is a nonvolatile semiconductor memory such as a NAND flash memory. The NAND memory 4 includes a memory cell array in which a plurality of nonvolatile memory cells are arranged in a matrix and a peripheral circuit for controlling write, read, and erase operations for the memory cell array. The memory cell array is configured by arranging a plurality of blocks which are the minimum unit of data erasure. Each block is configured by arranging a plurality of pages which are the minimum unit of data writing and reading. Each memory cell may be configured to store 1 bit, or may be configured to store 2 bits or more. In the NAND memory 4, rewriting to the same page in the block is permitted only after the entire block including the page is once erased.

ホスト装置10からSSD1に書き込まれたデータは、所定の管理単位でNANDメモリ4に記憶される。論理BA空間上の連続したアドレスを論物変換(論理BAと物理BAとの変換)の単位として、当該連続したアドレスがまとめてNANDメモリ4上の物理的な領域に割り当てられる。管理単位内においては、論理BAが連続する複数のセクタが順に配置されている。管理単位の大きさは任意であるが、例えば、NANDメモリ4のページサイズやブロックサイズ、あるいはホスト装置10が採用するファイルシステムのクラスタサイズ等に一致させることができる。なお、クラスタサイズは、セクタサイズ以上でブロックサイズ以下である。   Data written from the host device 10 to the SSD 1 is stored in the NAND memory 4 in a predetermined management unit. Using consecutive addresses on the logical BA space as units of logical-physical conversion (conversion between logical BA and physical BA), the continuous addresses are collectively allocated to a physical area on the NAND memory 4. Within a management unit, a plurality of sectors with consecutive logical BAs are arranged in order. Although the size of the management unit is arbitrary, it can be matched with, for example, the page size or block size of the NAND memory 4 or the cluster size of the file system adopted by the host device 10. Note that the cluster size is not less than the sector size and not more than the block size.

ホスト装置10から書き込まれた更新データが管理単位にアラインされていない場合には、NANDメモリ4上の管理単位の大きさの領域に既に記憶されているデータと、管理単位の大きさに満たない新たに書き込まれた更新データと、がRAM2上でマージされ、管理単位のデータが作成されたうえでNANDメモリ4の空き領域に書き込まれる(リードモディファイライト)。ホスト装置10から書き込まれたデータがNANDメモリ4上のどの論理BAに書き込まれるかは動的に変化するものであり、その対応関係がホストアドレス変換テーブル21によって管理される。論理アドレスとしては、例えば、論理容量に対してセクタ単位で0から通し番号が付されたLBA(Logical Block Address)が採用される。   When the update data written from the host device 10 is not aligned with the management unit, the data already stored in the area of the management unit size on the NAND memory 4 and the size of the management unit are not reached. The newly written update data is merged on the RAM 2 to create management unit data, which is then written into the empty area of the NAND memory 4 (read-modify-write). The logical BA on the NAND memory 4 to which the data written from the host device 10 is written changes dynamically, and the corresponding relationship is managed by the host address conversion table 21. As the logical address, for example, an LBA (Logical Block Address) in which a serial number from 0 to the sector is assigned to the logical capacity is employed.

ここで、管理単位でアラインされたLBAとNANDメモリ4上において管理単位に割り振られているデータ領域との対応関係について説明する。ホスト装置10が書き込み要求で指定する論理アドレスはセクタ単位であるが、SSD1内部では論理アドレスは管理単位の大きさ(例えば、クラスタサイズ)でアラインされる。そして、管理単位内の連続するLBAに対応するセクタが、NANDメモリ4の管理単位の領域にまとめて記憶される。例えば、管理単位の大きさがクラスタサイズに等しい場合、クラスタサイズでアラインされたLBAに対応する複数のセクタが、NANDメモリ4のクラスタサイズ分の領域に書き込まれる。   Here, a correspondence relationship between the LBA aligned in the management unit and the data area allocated to the management unit on the NAND memory 4 will be described. The logical address specified by the host device 10 in the write request is in units of sectors, but in the SSD 1, the logical addresses are aligned in the size of the management unit (for example, cluster size). Then, sectors corresponding to consecutive LBAs in the management unit are collectively stored in the management unit area of the NAND memory 4. For example, when the size of the management unit is equal to the cluster size, a plurality of sectors corresponding to the LBAs aligned with the cluster size are written into the area of the cluster size of the NAND memory 4.

図2は、SSD内で行われるアドレス変換を説明するための図である。論理アドレスで指定されるデータが何れの論理BAに書き込まれているかを示すテーブルがホストアドレス変換テーブル21である。また、論理BAで示されるデータが、NANDメモリ4内の何れの物理BAに書き込まれているかを示すテーブルがBA変換テーブル23Aである。   FIG. 2 is a diagram for explaining address conversion performed in the SSD. A table indicating in which logical BA the data designated by the logical address is written is the host address conversion table 21. A table indicating which physical BA in the NAND memory 4 is written with data indicated by the logical BA is the BA conversion table 23A.

例えば、NANDメモリ4内にデータを書き込む場合、ホスト装置10から論理アドレス41が指定される。書き込み制御部32は、有効性管理テーブル24Aを参照して、利用されていない有効な論理ブロックを選択する。そして、書き込み制御部32は、選択した論理ブロックに論理アドレスで指定されたデータを書き込む。さらに、書き込み制御部32は、選択した論理ブロックの論理BAと論理アドレスとの対応関係を、ホストアドレス変換テーブル21に登録する。さらに、ブロックアドレス変換部35は、BA変換テーブル23Aを用いて、論理BA42を物理BA43に変換する。そして、書き込み制御部32は、物理BA43を含むライトコマンドをNANDメモリ4に送る。これにより、論理アドレス41に対応する物理BA43にデータが書き込まれる。   For example, when writing data into the NAND memory 4, the logical address 41 is designated from the host device 10. The write control unit 32 refers to the validity management table 24A and selects a valid logical block that is not used. Then, the write control unit 32 writes the data designated by the logical address to the selected logical block. Furthermore, the write control unit 32 registers the correspondence between the logical BA and logical address of the selected logical block in the host address conversion table 21. Further, the block address conversion unit 35 converts the logical BA 42 into the physical BA 43 using the BA conversion table 23A. Then, the write control unit 32 sends a write command including the physical BA 43 to the NAND memory 4. As a result, data is written to the physical BA 43 corresponding to the logical address 41.

同様に、NANDメモリ4内からデータを読み出す場合、ホスト装置10から論理アドレス41が指定される。ホストアドレス変換部34は、ホストアドレス変換テーブル21を用いて論理アドレス41を論理BA42に変換する。さらに、ブロックアドレス変換部35は、BA変換テーブル23Aを用いて、論理BA42を物理BA43に変換する。そして、読み出し制御部33は、物理BA43を含むリードコマンドをNANDメモリ4に送る。これにより、論理アドレス41に対応する物理BA43からデータが読み出される。   Similarly, when data is read from the NAND memory 4, the logical address 41 is designated from the host device 10. The host address conversion unit 34 converts the logical address 41 into the logical BA 42 using the host address conversion table 21. Further, the block address conversion unit 35 converts the logical BA 42 into the physical BA 43 using the BA conversion table 23A. Then, the read control unit 33 sends a read command including the physical BA 43 to the NAND memory 4. As a result, data is read from the physical BA 43 corresponding to the logical address 41.

このように、SSD1を有したコンピュータシステムでは、NANDメモリ4内のデータにアクセスする際に、BA変換テーブル23Aを用いて、論理BAが物理BAに変換される。   Thus, in the computer system having the SSD 1, when accessing the data in the NAND memory 4, the logical BA is converted into the physical BA using the BA conversion table 23A.

つぎに、本実施形態の特徴の1つであるBA変換テーブル23Aについて説明する。図3は、第1の実施形態に係るBA変換テーブルと有効性管理テーブルの構成例を示す図である。図3の(a)は、BA変換テーブル23Aを示し、図3の(b)は、有効性管理テーブル24Aを示している。   Next, the BA conversion table 23A, which is one of the features of this embodiment, will be described. FIG. 3 is a diagram illustrating a configuration example of the BA conversion table and the validity management table according to the first embodiment. 3A shows the BA conversion table 23A, and FIG. 3B shows the validity management table 24A.

BA変換テーブル23Aでは、アドレスが連続している論理BAと、アドレスが連続している物理BAと、が対応付けされている。具体的には、BA変換テーブル23Aでは、連続した16ブロック分の論理BAと、連続した16ブロック分の物理BAと、が対応付けされている。   In the BA conversion table 23A, logical BAs having consecutive addresses are associated with physical BAs having consecutive addresses. Specifically, in the BA conversion table 23A, a continuous 16-block logical BA and a continuous 16-block physical BA are associated with each other.

例えば、テーブル構築部31は、16ブロック分の論理BA「00」〜「15」を1つの論理BAグループに設定する。換言すると、複数の論理BAが、BA変換テーブル23A内の1つのエントリに設定される。図3のBA変換テーブル23Aでは、論理BA「00」〜「15」のグループを「論理BA 00/15」で示している。   For example, the table construction unit 31 sets 16 blocks of logical BAs “00” to “15” in one logical BA group. In other words, a plurality of logical BAs are set in one entry in the BA conversion table 23A. In the BA conversion table 23A of FIG. 3, the group of logical BAs “00” to “15” is indicated by “logical BA 00/15”.

また、テーブル構築部31は、論理BA「00」〜「15」に対応する64Slot数分の物理BAの組(物理BAグループ群)を論理BA「00」〜「15」に対応付けする。物理BAグループ群内の各物理BAグループは、16ブロック分の物理BAである。したがって、テーブル構築部31は、例えば16ブロック分の物理BAを1つの物理BAグループに設定する。   In addition, the table construction unit 31 associates a set of physical BAs (physical BA group group) corresponding to the number of 64 slots corresponding to the logical BAs “00” to “15” with the logical BAs “00” to “15”. Each physical BA group in the physical BA group group is a physical BA for 16 blocks. Accordingly, the table construction unit 31 sets, for example, 16 blocks of physical BAs in one physical BA group.

テーブル構築部31は、例えば、16ブロック分の物理BA「x+0」〜「x+15」を1つの物理BAグループに設定し、16ブロック分の物理BA「v+0」〜「v+15」を1つの物理BAグループに設定する。   For example, the table construction unit 31 sets 16 blocks of physical BAs “x + 0” to “x + 15” to one physical BA group, and sets 16 blocks of physical BAs “v + 0” to “v + 15” to one physical BA group. Set to.

そして、テーブル構築部31は、論理BA「00」〜「15」のSlot「00」に対応する物理BAグループに物理BA「x+0」〜「x+15」を割り当てる。また、テーブル構築部31は、論理BA「00」〜「15」のSlot「63」に対応する物理BAグループに物理BA「v+0」〜「v+15」を割り当てる。   Then, the table construction unit 31 assigns physical BAs “x + 0” to “x + 15” to the physical BA groups corresponding to the slot “00” of the logical BAs “00” to “15”. Further, the table construction unit 31 assigns physical BAs “v + 0” to “v + 15” to the physical BA group corresponding to the slot “63” of the logical BAs “00” to “15”.

BA変換テーブル23Aには、例えば、物理BA「x+0」〜「x+15」や物理BA「v+0」〜「v+15」の先頭アドレスが登録される。図3の(a)では、物理BA「x+0」〜「x+15」の物理BAグループを物理BA「x」で示している。また、図3の(a)では物理BA「v+0」〜「v+15」の物理BAグループを物理BA「v」で示している。   For example, the head addresses of physical BAs “x + 0” to “x + 15” and physical BAs “v + 0” to “v + 15” are registered in the BA conversion table 23A. In FIG. 3A, physical BA groups of physical BAs “x + 0” to “x + 15” are indicated by physical BA “x”. In FIG. 3A, physical BA groups of physical BAs “v + 0” to “v + 15” are indicated by physical BA “v”.

同様に、テーブル構築部31は、16ブロック分の論理BA「N」〜「N+15」(Nは16の倍数)を1つの論理BAグループに設定する。そして、テーブル構築部31は、BA変換テーブル23A内の各Slotに、16ブロック分の物理BAを1つの物理BAグループとして登録する。このように、テーブル構築部31は、各Slotの物理BAグループと、論理BAグループと、を対応付けしてBA変換テーブル23Aに登録する。   Similarly, the table construction unit 31 sets 16 blocks of logical BAs “N” to “N + 15” (N is a multiple of 16) in one logical BA group. Then, the table construction unit 31 registers 16 blocks of physical BAs as one physical BA group in each slot in the BA conversion table 23A. Thus, the table construction unit 31 associates the physical BA group of each slot with the logical BA group and registers them in the BA conversion table 23A.

なお、図3のBA変換テーブル23Aでは、論理BA「00」〜「15」やSlot「00」などのインデックスを示したが、インデックスは省略してもよい。この場合、各論理BAグループが16ブロック分の論理BAを含み、かつ各論理BAグループのSlot数が64であることを前提に、BA変換テーブル23A内から物理BAが読み出される。   In the BA conversion table 23A of FIG. 3, indexes such as logical BAs “00” to “15” and Slot “00” are shown, but the indexes may be omitted. In this case, the physical BA is read from the BA conversion table 23A on the assumption that each logical BA group includes 16 blocks of logical BA and the number of slots in each logical BA group is 64.

物理BAの中には、誤りが多いなど記憶領域として使用できないバッドブロックが含まれている。例えば、消去エラーやプログラムエラー(書き込み失敗)によって、物理ブロックがバッドブロックとなる場合がある。   The physical BA includes bad blocks that cannot be used as a storage area due to many errors. For example, a physical block may become a bad block due to an erase error or a program error (write failure).

図3の(b)に示す有効性管理テーブル24Aは、各論理ブロックの有効性を管理するテーブルである。有効性管理テーブル24Aでは、各論理ブロックの論理BAと、有効性を示す情報(有効性情報)と、が対応付けされている。有効性を示す情報が「有効」である論理ブロックは、正常な論理ブロック(グッドブロック)であり、有効性を示す情報が「無効」である論理ブロックは、バッドブロックである。   The validity management table 24A shown in FIG. 3B is a table for managing the validity of each logical block. In the validity management table 24A, the logical BA of each logical block is associated with information indicating validity (validity information). A logical block whose information indicating validity is “valid” is a normal logical block (good block), and a logical block whose information indicating validity is “invalid” is a bad block.

例えば、物理BA「00」〜「15」のSlot「63」に対応する物理BA「v+1」がバッドブロックである場合、物理BA「v+1」に対応する論理BA「01」が有効性管理テーブル24A内に「無効」として登録される。なお、有効性管理テーブル24Aには、各論理BAグループの消去回数などを登録しておいてもよい。   For example, when the physical BA “v + 1” corresponding to the slot “63” of the physical BA “00” to “15” is a bad block, the logical BA “01” corresponding to the physical BA “v + 1” is the validity management table 24A. Registered as “invalid”. The validity management table 24A may register the number of erasures of each logical BA group.

ここで、NANDメモリ4内からのデータ読み出し処理手順について説明する。図4は、NANDメモリ内からのデータ読み出し処理手順を示すフローチャートである。ホスト装置10は、リードコマンドと、データ読み出し対象の論理アドレス41を、SSD1のコントローラ3に送る。   Here, a procedure for reading data from the NAND memory 4 will be described. FIG. 4 is a flowchart showing a procedure for reading data from the NAND memory. The host device 10 sends a read command and a logical address 41 to be read out to the controller 3 of the SSD 1.

コントローラ3のホストアドレス変換部34は、ホストアドレス変換テーブル21を用いて論理アドレス41を論理BA42に変換する(ステップS10)。このとき、ホストアドレス変換部34は、論理アドレス41を、論理BA42と論理ブロック内のオフセットと、に変換する。オフセットの値は、Slotの位置を算出される際に用いられる値であり、オフセットの単位は、SSD1内のデータ管理単位である。ホストアドレス変換部34は、オフセットの値を用いてSlot位置C(Cは、00〜63の何れか)を算出しておく。   The host address conversion unit 34 of the controller 3 converts the logical address 41 into the logical BA 42 using the host address conversion table 21 (step S10). At this time, the host address conversion unit 34 converts the logical address 41 into a logical BA 42 and an offset within the logical block. The offset value is a value used when the slot position is calculated, and the offset unit is a data management unit in the SSD 1. The host address conversion unit 34 calculates the slot position C (C is any of 00 to 63) using the offset value.

さらに、ブロックアドレス変換部35は、BA変換テーブル23Aを用いて、論理BA42を物理BA43に変換する。具体的には、ブロックアドレス変換部35は、論理BAを16で割った値「A」と余り「B」を算出する(ステップS20)。そして、ブロックアドレス変換部35は、BA変換テーブル23Aの「A+1」段目を物理BAの読み出し対象位置に設定する。ブロックアドレス変換部35は、BA変換テーブル23Aから「A+1」段目でSlot位置Cの物理BAを読み出す(ステップS30)。ブロックアドレス変換部35は、読み出した物理BAに「B」を足した値を、読み出し対象の物理BA43として算出する(ステップS40)。   Further, the block address conversion unit 35 converts the logical BA 42 into the physical BA 43 using the BA conversion table 23A. Specifically, the block address conversion unit 35 calculates a value “A” and a remainder “B” obtained by dividing the logical BA by 16 (step S20). Then, the block address conversion unit 35 sets the “A + 1” level of the BA conversion table 23A as a physical BA read target position. The block address conversion unit 35 reads the physical BA at the slot position C at the “A + 1” level from the BA conversion table 23A (step S30). The block address conversion unit 35 calculates a value obtained by adding “B” to the read physical BA as the read-out physical BA 43 (step S40).

ブロックアドレス変換部35によって算出された物理BA43が、ホスト装置10から送られてきた論理アドレス41に対応する物理BAとなる。読み出し制御部33は、物理BA43を含むリードコマンドをNANDメモリ4に送る。これにより、論理アドレス41に対応する物理BA43のデータが読み出される。   The physical BA 43 calculated by the block address conversion unit 35 is a physical BA corresponding to the logical address 41 sent from the host device 10. The read control unit 33 sends a read command including the physical BA 43 to the NAND memory 4. Thereby, the data of the physical BA 43 corresponding to the logical address 41 is read.

なお、本実施の形態では、論理BAグループや物理BAグループを16個のブロックアドレス群で構成する場合について説明したが、論理BAグループや物理BAグループは、2個以上のブロックアドレス群で構成すればよい。   In this embodiment, the logical BA group and the physical BA group are configured by 16 block address groups. However, the logical BA group and the physical BA group may be configured by two or more block address groups. That's fine.

また、本実施の形態では、論理BAグループに64個のSlotを割り当てる場合について説明したが、論理BAグループに割り当てるSlotは、64個未満であってもよいし、65個以上であってもよい。   Further, in this embodiment, the case where 64 slots are allocated to the logical BA group has been described, but the number of slots allocated to the logical BA group may be less than 64, or may be 65 or more. .

このように第1の実施形態によれば、BA変換テーブル23A内で、アドレスが連続している論理BAと、アドレスが連続している物理BAと、が対応付けされているので、BA変換テーブル23Aを効率良く圧縮できる。したがって、SSD1に必要なRAM2のメモリ容量を減らすことが可能となる。   As described above, according to the first embodiment, in the BA conversion table 23A, the logical BA having consecutive addresses and the physical BA having consecutive addresses are associated with each other. 23A can be efficiently compressed. Therefore, the memory capacity of the RAM 2 necessary for the SSD 1 can be reduced.

また、NANDメモリ4やRAM2内に記憶させるBA変換テーブル23Aのサイズが小さくなるので、SSD1を長寿命化することが可能となる。また、NANDメモリ4に記憶させるBA変換テーブル23Aのサイズが小さくなるので、BA変換テーブル23Aの、NANDメモリ4への書き込み、読み出しに必要な時間を短縮することが可能となる。   In addition, since the size of the BA conversion table 23A stored in the NAND memory 4 or RAM 2 is reduced, the life of the SSD 1 can be extended. In addition, since the size of the BA conversion table 23A stored in the NAND memory 4 is reduced, it is possible to reduce the time required for writing and reading the BA conversion table 23A to the NAND memory 4.

また、BA変換テーブル23Aのサイズが小さくなるので、SSD1の起動時間やスタンバイ状態への移行時間を短縮することが可能となる。また、論理BAから物理BAへのブロックアドレス変換コストを抑制することが可能となる。また、論理ブロックの数を増やすことなく、BA変換テーブル23Aを構築できる。   In addition, since the size of the BA conversion table 23A is reduced, it is possible to shorten the startup time of the SSD 1 and the transition time to the standby state. In addition, it is possible to reduce the cost of block address conversion from the logical BA to the physical BA. Further, the BA conversion table 23A can be constructed without increasing the number of logical blocks.

また、BA変換テーブル23Aを用いることにより、論理BAと物理BAとの間のアドレス変換が速くなる(圧縮していない場合と比べてアドレス変換が遅くならない)。   Further, by using the BA conversion table 23A, the address conversion between the logical BA and the physical BA is accelerated (the address conversion is not delayed as compared with the case where the compression is not performed).

(第2の実施形態)
つぎに、図5〜図9を用いてこの発明の第2の実施形態について説明する。第2の実施形態では、グッドブロック数が略同数の物理BAグループを集めて1つの論理BAグループに対応付ける。
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIGS. In the second embodiment, physical BA groups having substantially the same number of good blocks are collected and associated with one logical BA group.

図5は、第2の実施形態に係るBA変換テーブルの構築処理手順を示すフローチャートである。また、図6は、第2の実施形態に係るBA変換テーブルの構築処理(前段処理)を説明するための図であり、図7は、第2の実施形態に係るBA変換テーブルの構築処理(後段処理)を説明するための図である。   FIG. 5 is a flowchart showing a procedure for constructing a BA conversion table according to the second embodiment. FIG. 6 is a diagram for explaining a BA conversion table construction process (previous process) according to the second embodiment. FIG. 7 is a diagram illustrating a BA conversion table construction process according to the second embodiment. It is a figure for demonstrating latter process.

図6に示すように、テーブル構築部31は、NANDメモリ4にアクセスし、NANDメモリ4の物理ブロックの状態(有効/無効)を示す物理ブロック状態51を、物理BA毎に読み出す(ステップS110)。を読み出す。物理ブロック状態51では、物理BAの順番で各物理ブロックの有効/無効が示されている。図6では、物理ブロック状態51において、物理BA「02」,「24」,「31」の各物理ブロックがバッドブロック(無効)である場合を示している。   As illustrated in FIG. 6, the table construction unit 31 accesses the NAND memory 4 and reads a physical block state 51 indicating a physical block state (valid / invalid) of the NAND memory 4 for each physical BA (step S110). . Is read. In the physical block state 51, the validity / invalidity of each physical block is shown in the order of the physical BA. FIG. 6 shows a case where the physical blocks “02”, “24”, and “31” in the physical block state 51 are bad blocks (invalid).

テーブル構築部31は、物理ブロック状態51に基づいて、物理BAグループを生成し、物理BAグループを整理する(ステップS120)。例えば、テーブル構築部31は、物理BAグループとして、物理ブロック状態51から16個ずつの物理BAをアドレス値の小さい順番で抽出する。このとき、テーブル構築部31は、16個の物理BAで構成される物理BAグループにバッドブロックの物理BAが含まれていると、バッドブロックの次のグッドブロックの物理BAを次の物理BAグループの先頭の物理BAとする。なお、以下では、バッドブロックの物理BAをバッド物理BAといい、グッドブロックの物理BAをグッド物理BAという。   Based on the physical block state 51, the table construction unit 31 generates a physical BA group and arranges the physical BA group (step S120). For example, the table construction unit 31 extracts 16 physical BAs from the physical block state 51 in order of increasing address values as physical BA groups. At this time, if the physical BA group composed of 16 physical BAs includes a bad block physical BA, the table construction unit 31 changes the physical block of the next good block after the bad block to the next physical BA group. Of the first physical BA. In the following, the bad block physical BA is referred to as a bad physical BA, and the good block physical BA is referred to as a good physical BA.

例えば、図6に示す物理ブロック状態51から物理BAグループを生成する場合、テーブル構築部31は、物理BA「00」〜「15」を、1つの物理BAグループとして抽出する。具体的には、テーブル構築部31は、物理BA「00」〜「15」を、第1の物理BAグループG1として抽出する(図6のs1)。   For example, when generating a physical BA group from the physical block state 51 shown in FIG. 6, the table construction unit 31 extracts physical BAs “00” to “15” as one physical BA group. Specifically, the table construction unit 31 extracts the physical BAs “00” to “15” as the first physical BA group G1 (s1 in FIG. 6).

ここでは、物理BA「02」がバッド物理BAなので、テーブル構築部31は、次に抽出する物理BAグループの先頭の物理BAを、物理BA「02」の次のグッド物理BAである物理BA「03」とする。そして、テーブル構築部31は、物理BA「03」からスタートして連続した合計16個の物理BAを1つの物理BAグループとして抽出する。具体的には、テーブル構築部31は、物理BA「03」〜「19」を、1つの物理BAグループG2として抽出する(図6のs2)。   Here, since the physical BA “02” is a bad physical BA, the table construction unit 31 sets the next physical BA “02” to be the physical BA “02” which is the next good physical BA of the physical BA “02”. 03 ". Then, the table construction unit 31 extracts a total of 16 physical BAs starting from the physical BA “03” as one physical BA group. Specifically, the table construction unit 31 extracts physical BAs “03” to “19” as one physical BA group G2 (s2 in FIG. 6).

なお、テーブル構築部31は、バッド物理BAが複数連続する場合は、連続するバッド物理BAが途切れた後の次のグッド物理BAを、次の物理BAグループの先頭の物理BAとする。   When a plurality of bad physical BAs are consecutive, the table construction unit 31 sets the next good physical BA after the continuous bad physical BA is interrupted as the top physical BA of the next physical BA group.

テーブル構築部31は、第2の物理BAグループG2として、物理BA「03」〜「19」を抽出した後、3つ目の物理BAグループを抽出する。ここでは、物理BA「03」〜「19」にバッド物理BAが含まれていないので、テーブル構築部31は、次の物理BAグループの先頭の物理BAを物理BA「20」とする。そして、テーブル構築部31は、物理BA「20」からスタートして連続した合計16個の物理BAを1つの物理BAグループとして抽出する。具体的には、テーブル構築部31は、物理BA「20」〜「35」を、第3の物理BAグループG3として抽出する(図6のs3)。   The table construction unit 31 extracts the physical BAs “03” to “19” as the second physical BA group G2, and then extracts the third physical BA group. Here, since the bad physical BA is not included in the physical BAs “03” to “19”, the table constructing unit 31 sets the first physical BA of the next physical BA group as the physical BA “20”. Then, the table construction unit 31 extracts a total of 16 physical BAs starting from the physical BA “20” as one physical BA group. Specifically, the table construction unit 31 extracts the physical BAs “20” to “35” as the third physical BA group G3 (s3 in FIG. 6).

ここでは、物理BA「24」がバッド物理BAなので、テーブル構築部31は、次の物理BAグループの先頭の物理BAを物理BA「25」とする。そして、テーブル構築部31は、物理BA「25」からスタートして連続した合計16個の物理BAを1つの物理BAグループとして抽出する。具体的には、テーブル構築部31は、物理BA「25」〜「40」を、第4の物理BAグループG4として抽出する(図6のs4)。   Here, since the physical BA “24” is a bad physical BA, the table constructing unit 31 sets the top physical BA of the next physical BA group as the physical BA “25”. Then, the table construction unit 31 extracts a total of 16 physical BAs starting from the physical BA “25” as one physical BA group. Specifically, the table construction unit 31 extracts physical BAs “25” to “40” as the fourth physical BA group G4 (s4 in FIG. 6).

ここでは、物理BA「31」がバッド物理BAなので、テーブル構築部31は、次の物理BAグループの先頭の物理BAを物理BA「32」とする。そして、テーブル構築部31は、物理BA「32」からスタートして連続した合計16個の物理BAを第5の物理BAグループG5として抽出する(図6のs5)。   Here, since the physical BA “31” is a bad physical BA, the table construction unit 31 sets the first physical BA of the next physical BA group as the physical BA “32”. The table construction unit 31 then extracts a total of 16 physical BAs starting from the physical BA “32” as a fifth physical BA group G5 (s5 in FIG. 6).

テーブル構築部31は、全ての物理BAに対して物理BAグループへのグループ分けを行う。すなわち、テーブル構築部31は、以下の処理を繰り返す。
(1)テーブル構築部31は、合計16個の連続した物理BAを1つの物理BAグループとして抽出する。
(2)抽出した物理BAグループにバッド物理BAが含まれていれば、テーブル構築部31は、バッド物理BAの後の最初のグッド物理BAを次の物理BAグループの先頭の物理BAに設定する。
The table construction unit 31 groups all physical BAs into physical BA groups. That is, the table construction unit 31 repeats the following process.
(1) The table construction unit 31 extracts a total of 16 consecutive physical BAs as one physical BA group.
(2) If a bad physical BA is included in the extracted physical BA group, the table construction unit 31 sets the first good physical BA after the bad physical BA as the first physical BA in the next physical BA group. .

さらに、テーブル構築部31は、各物理BAグループ内において最初のバッド物理BA以降の物理BAを全てバッド物理BAに設定する。例えば、物理BA「00」〜「15」からなる物理BAグループG1では、物理BA「02」がバッド物理BAなので、テーブル構築部31は、物理BAグループG1内の物理BA「02」〜「15」を全てバッド物理BAに設定する。   Furthermore, the table construction unit 31 sets all physical BAs after the first bad physical BA in each physical BA group as bad physical BAs. For example, in the physical BA group G1 composed of the physical BAs “00” to “15”, the physical BA “02” is a bad physical BA, so the table construction unit 31 uses the physical BAs “02” to “15” in the physical BA group G1. Are all set to the bad physical BA.

これにより、物理BA「00」〜「15」からなる物理BAグループG1のバッド物理BA数は、14個に設定される。また、物理BAグループG2のバッド物理BA数は、0個に設定され、物理BAグループG3のバッド物理BA数は、12個に設定される。   As a result, the number of bad physical BAs of the physical BA group G1 including the physical BAs “00” to “15” is set to 14. The number of bad physical BAs in the physical BA group G2 is set to 0, and the number of bad physical BAs in the physical BA group G3 is set to 12.

そして、テーブル構築部31は、物理BAグループを整理する。具体的には、テーブル構築部31は、各物理BAグループを、バッド物理BA数でグループ分けすることにより、バッドブロック数情報52を生成する(図6のs11〜s14)。バッドブロック数情報52は、各物理BAグループを、バッド物理BA数でグループ分けした情報である。バッドブロック数情報52では、バッド物理BA数と、物理BAグループ(グループリスト)と、が対応付けされている。   Then, the table construction unit 31 organizes physical BA groups. Specifically, the table construction unit 31 generates bad block number information 52 by grouping each physical BA group by the number of bad physical BAs (s11 to s14 in FIG. 6). The bad block number information 52 is information obtained by grouping each physical BA group by the number of bad physical BAs. In the bad block number information 52, the number of bad physical BAs is associated with a physical BA group (group list).

例えば、バッドブロック数情報52では、バッド物理BA数が0個の物理BAグループに、物理BA「03」〜「19」からなる物理BAグループG2が登録される。なお、バッドブロック数情報52へは、物理BAグループG2を示す情報として、物理BAグループG2内の先頭の物理BAである物理BA「03」を登録しておけばよい。   For example, in the bad block number information 52, a physical BA group G2 composed of physical BAs “03” to “19” is registered in a physical BA group having zero bad physical BA numbers. In the bad block number information 52, the physical BA “03” that is the first physical BA in the physical BA group G2 may be registered as information indicating the physical BA group G2.

同様に、バッドブロック数情報52では、バッド物理BA数が14個の物理BAグループに、物理BAグループG1が登録される。バッドブロック数情報52へは、物理BAグループG1を示す情報として、物理BAグループG1内の先頭の物理BAである物理BA「00」が登録される。   Similarly, in the bad block number information 52, the physical BA group G1 is registered in the physical BA group having 14 bad physical BA numbers. In the bad block number information 52, the physical BA “00”, which is the first physical BA in the physical BA group G1, is registered as information indicating the physical BA group G1.

この後、テーブル構築部31は、バッドブロック数情報52を用いて、後述するBA変換テーブル23Bを構築する。BA変換テーブル23Bは、BA変換テーブル23Aと同様の構成を有したテーブルである。すなわち、BA変換テーブル23Bでは、64Slot数分の物理BAグループが、1つの論理BAグループに対応付けされている。   Thereafter, the table construction unit 31 constructs a BA conversion table 23B described later using the bad block number information 52. The BA conversion table 23B is a table having the same configuration as the BA conversion table 23A. That is, in the BA conversion table 23B, the physical BA groups for 64 slots are associated with one logical BA group.

BA変換テーブル23Bを構築するため、テーブル構築部31は、バッドブロック数情報52から、バッド物理BA数の少ない物理BAグループを、64Slot数分ずつ順番に抽出する(図7のs21)。換言すると、物理BAグループの全体からグッドブロックの多い順番で物理BAグループを64Slot数分ずつ抽出する。図7では、バッド物理BA数が4個〜3個である物理BAグループが64Slot数分だけ抽出された場合を示している。以下では、s21の処理によって抽出された64Slot数分の物理BAグループを、物理BAグループ群Hxという。   In order to construct the BA conversion table 23B, the table construction unit 31 sequentially extracts, from the bad block number information 52, physical BA groups having a small number of bad physical BAs by the number of 64 slots (s21 in FIG. 7). In other words, the physical BA groups are extracted from the entire physical BA group by 64 slots in the order of the number of good blocks. FIG. 7 shows a case where physical BA groups having 4 to 3 bad physical BAs are extracted by the number of 64 slots. Hereinafter, the physical BA groups for 64 slots extracted by the processing of s21 are referred to as physical BA group group Hx.

テーブル構築部31は、物理BA「W」〜「W+15」を1つの物理BAグループとして抽出し、物理BA「X」〜「X+15」を1つの物理BAグループとして抽出する。同様に、テーブル構築部31は、物理BA「Y」〜「Y+15」を1つの物理BAグループとして抽出し、物理BA「Z」〜「Z+15」を1つの物理BAグループとして抽出する。このように、テーブル構築部31は、16個の物理BAを1つの物理BAグループとして、64グループ(64Slot数)分の物理BAグループ群Hxを抽出する。   The table construction unit 31 extracts the physical BAs “W” to “W + 15” as one physical BA group, and extracts the physical BAs “X” to “X + 15” as one physical BA group. Similarly, the table construction unit 31 extracts the physical BAs “Y” to “Y + 15” as one physical BA group and extracts the physical BAs “Z” to “Z + 15” as one physical BA group. In this way, the table construction unit 31 extracts 64 physical BA group groups Hx for 64 groups (the number of 64 slots) with 16 physical BAs as one physical BA group.

そして、テーブル構築部31は、抽出した64Slot数分の物理BA毎に論理BAグループを組んでいく。具体的には、テーブル構築部31は、抽出した64Slot数分の物理BAグループを用いて論理BAグループ(16個の論理BAからなるグループ)を組むことができるか否かを判断する(ステップS130)。テーブル構築部31は、64Slot数分の論理BAを抽出できた場合に、64Slot数分の物理BAグループを用いて論理BAグループを組むことができると判断する。   Then, the table construction unit 31 forms a logical BA group for each physical BA corresponding to the extracted 64 slots. Specifically, the table construction unit 31 determines whether or not a logical BA group (a group of 16 logical BAs) can be formed using the extracted physical BA groups for the 64 slots (step S130). ). The table construction unit 31 determines that the logical BA groups can be formed using the physical BA groups for the 64 slots when the logical BAs for the 64 slots are extracted.

論理BAグループを組むことができる場合(ステップS130、Yes)、テーブル構築部31は、論理BAグループを組んで、BA変換テーブル23Bに登録する(ステップS140)。BA変換テーブル23Bに登録された物理BAグループは、バッドブロック数情報52から削除される。   When a logical BA group can be formed (step S130, Yes), the table construction unit 31 forms a logical BA group and registers it in the BA conversion table 23B (step S140). The physical BA group registered in the BA conversion table 23B is deleted from the bad block number information 52.

テーブル構築部31は、論理BAグループをBA変換テーブル23Bに登録する際に、論理BAグループ内の各論理BAに有効性を設定する。このとき、テーブル構築部31は、物理BAグループ群Hxの中から、バッド物理BA数が最も多いSlotの物理BAグループを選択する。テーブル構築部31は、バッド物理BA数の少ない順番で物理BAグループを抽出しているので、最後のSlotであるSlot63の物理BAグループ(物理BA「Z」の物理BAグループ)を選択する。そして、選択した物理BAグループのバッド物理BAと同じ段に設定されている物理BAを全てバッド物理BAに設定する。   The table construction unit 31 sets validity for each logical BA in the logical BA group when registering the logical BA group in the BA conversion table 23B. At this time, the table construction unit 31 selects the physical BA group of the slot with the largest number of bad physical BAs from the physical BA group group Hx. Since the table construction unit 31 extracts the physical BA groups in the order from the smallest number of bad physical BAs, the table construction unit 31 selects the physical BA group of the slot 63 which is the last slot (the physical BA group of the physical BA “Z”). Then, all the physical BAs set in the same stage as the bad physical BA of the selected physical BA group are set as the bad physical BA.

換言すると、テーブル構築部31は、物理BAグループ群内において、各物理BAグループ内におけるバッドブロックの連続数および先頭からのグッドブロックの連続数が、物理BAグループ群の中で最もグッドブロックが少ない物理BAグループと同じ値となるよう各物理BAグループにバッドブロックを設定する。   In other words, in the physical BA group group, the table construction unit 31 has the least number of good blocks in the physical BA group group, and the number of consecutive bad blocks in each physical BA group and the number of consecutive good blocks from the top. A bad block is set in each physical BA group so as to have the same value as the physical BA group.

例えば、Slot63の物理BAグループにおいて、第M(Mは自然数)段目以降がバッド物理BAである場合、他のSlotの物理BAグループも、全て第M段目以降をバッド物理BAに設定する。図7の場合、物理BA「Z」の物理BAグループにおいて、c3段目までがグッド物理BAであり、c4段目以降はバッド物理BAである。このため、テーブル構築部31は、Slot00〜63の全ての物理BAグループに対して、c3段目までをグッド物理BAに設定し、c4段目以降をバッド物理BAに設定した論理BAグループ群Hx2(図示せず)を生成する。   For example, in the physical BA group of Slot 63, when the Mth (M is a natural number) level or later is a bad physical BA, all the physical BA groups of other Slots are also set as the bad physical BA after the Mth level. In the case of FIG. 7, in the physical BA group of the physical BA “Z”, the c3th level is a good physical BA, and the c4th level and later are bad physical BAs. For this reason, the table construction unit 31 sets the logical BA group group Hx2 in which all the physical BA groups of Slot 00 to 63 are set as the good physical BA and the c4th and subsequent stages are set as the bad physical BAs. (Not shown).

図7のs21で抽出された物理BAグループ群Hxの場合、物理BA「W+4」や物理BA「X+4」は、c4段目の物理BAである。このため、テーブル構築部31は、物理BA「W+4」や物理BA「X+4」をバッド物理BAに設定した論理BAグループ群Hx2を生成する。   In the case of the physical BA group group Hx extracted in s21 of FIG. 7, the physical BA “W + 4” and the physical BA “X + 4” are c4th-stage physical BAs. Therefore, the table construction unit 31 generates a logical BA group group Hx2 in which the physical BA “W + 4” or the physical BA “X + 4” is set as the bad physical BA.

そして、c0段目のSlot00〜63の物理BAが1つの論理BAに設定され、c1段目のSlot00〜63の物理BAが1つの論理BAに設定される。同様に、c3段目のSlot00〜63の物理BA、c4段目のSlot00〜63の物理BA、・・・、c15段目のSlot00〜63の物理BAが、それぞれ1つの論理BAに設定される。そして、テーブル構築部31は、各論理BAに有効性を設定する。   Then, the physical BAs of slots 00 to 63 in the c0 stage are set as one logical BA, and the physical BAs of slots 00 to 63 in the c1 stage are set as one logical BA. Similarly, the physical BAs of slots 00 to 63 in the c3 stage, the physical BAs of slots 00 to 63 in the c4 stage,..., And the physical BAs of slots 00 to 63 in the c15 stage are set as one logical BA. . Then, the table construction unit 31 sets validity for each logical BA.

図8は、第2の実施形態に係るBA変換テーブルと有効性管理テーブルの構成例を示す図である。図8の(a)は、BA変換テーブル23Bを示し、図8の(b)は、有効性管理テーブル24Bを示している。BA変換テーブル23Bは、BA変換テーブル23Aと同様の構成を有したテーブルであり、有効性管理テーブル24Bは、有効性管理テーブル24Aと同様の構成を有したテーブルである。   FIG. 8 is a diagram illustrating a configuration example of the BA conversion table and the validity management table according to the second embodiment. FIG. 8A shows the BA conversion table 23B, and FIG. 8B shows the validity management table 24B. The BA conversion table 23B is a table having the same configuration as the BA conversion table 23A, and the validity management table 24B is a table having the same configuration as the validity management table 24A.

BA変換テーブル23Bへは、論理BAグループに対応する物理BAグループ郡Hx2が登録される。物理BAグループ群Hx2の場合、c0段目の物理BA「W」〜「Z」が論理BA「P」に設定され、c1段目の物理BA「W+1」〜「Z+1」が論理BA「P+1」に設定される。同様に、c3段目の物理BA「W+3」〜「Z+3」、c4段目の物理BA「W+4」〜「Z+4」、・・・、c15段目の物理BA「W+15」〜「Z+15」が、それぞれ論理BA「P+3」,「P+4」〜「P+15」に設定される。   A physical BA group group Hx2 corresponding to the logical BA group is registered in the BA conversion table 23B. In the case of the physical BA group group Hx2, the physical BAs “W” to “Z” in the c0 stage are set to the logical BA “P”, and the physical BAs “W + 1” to “Z + 1” in the c1 stage are the logical BA “P + 1”. Set to Similarly, c3 stage physical BAs “W + 3” to “Z + 3”, c4 stage physical BAs “W + 4” to “Z + 4”,..., C15 stage physical BAs “W + 15” to “Z + 15” The logical BAs are set to “P + 3”, “P + 4” to “P + 15”, respectively.

そして、16ブロック分の論理BA「P」〜「P+15」が、1つの論理BAグループに設定され、16ブロック分×64Slot数分の物理BAグループ群Hx2に対応付けされて、BA変換テーブル23Bに登録される。   Then, 16 blocks of logical BA “P” to “P + 15” are set in one logical BA group, and are associated with the physical BA group group Hx2 of 16 blocks × 64 slots, and are stored in the BA conversion table 23B. be registered.

図8(a)のBA変換テーブル23Bでは、論理BA「P」〜「P+15」の論理BAグループを「論理BA P/(P+15)」で示している。また、各Slotの物理BAグループには、物理BAグループの先頭の物理BAが登録される。これにより、BA変換テーブル23Bには、物理BA「W」〜「Z」が、「論理BA P/(P+15)」に対応付けされて登録される(図7のs22)。   In the BA conversion table 23B of FIG. 8A, logical BA groups of logical BAs “P” to “P + 15” are indicated by “logical BA P / (P + 15)”. Also, the first physical BA of the physical BA group is registered in the physical BA group of each slot. Accordingly, the physical BAs “W” to “Z” are registered in the BA conversion table 23B in association with “logical BA P / (P + 15)” (s22 in FIG. 7).

また、テーブル構築部31は、論理BAグループ内の各論理BAの有効性を有効性管理テーブル24Bに登録する(ステップS150)。ここでは、c0〜c3段目までの論理BA「P」〜「P+3」がグッド物理BAに設定されているので、論理BA「P」〜「P+3」には、「有効」が設定される。また、c4〜c15段目がバッド物理BAに設定されているので、c4〜c15段目までの論理BA「P+4」〜「P+15」には、「無効」が設定される。   The table construction unit 31 registers the validity of each logical BA in the logical BA group in the validity management table 24B (step S150). Here, since the logical BAs “P” to “P + 3” up to the c0 to c3 stages are set as the good physical BA, “valid” is set to the logical BAs “P” to “P + 3”. In addition, since the c4 to c15th stages are set as bad physical BAs, “invalid” is set to the logical BAs “P + 4” to “P + 15” from the c4th to c15th stages.

この後、無効な論理BAのグッドブロックを物理BAグループに変更して、整理する(ステップS160)。具体的には、テーブル構築部31は、物理BAグループ群Hxのうち、物理BAグループ群Hx2を生成する際にグッド物理BAからバッド物理BAに変換された物理BAを有した物理BAグループを抽出する。換言すると、テーブル構築部31は、物理BAグループ群Hxのうち、BA変換テーブル23Bに登録されなかったグッド物理BAを有した物理BAグループを抽出する。   Thereafter, the good block of the invalid logical BA is changed to the physical BA group and arranged (step S160). Specifically, the table construction unit 31 extracts a physical BA group having a physical BA converted from a good physical BA to a bad physical BA when generating the physical BA group group Hx2 from the physical BA group group Hx. To do. In other words, the table construction unit 31 extracts a physical BA group having a good physical BA that has not been registered in the BA conversion table 23B from the physical BA group group Hx.

ここでは、物理BAグループ群Hxの論理BAグループを組む際に、物理BA「W+4」〜「X+4」のグッドブロックが利用されていないので、テーブル構築部31は、物理BA「W+4」〜「X+4」を用いて新しい論理BAグループを生成する。このとき、論理BAグループの先頭は、物理BA「W+4」となり、バッドブロック数は15となる。   Here, since the good blocks of the physical BAs “W + 4” to “X + 4” are not used when forming the logical BA group of the physical BA group group Hx, the table construction unit 31 uses the physical BAs “W + 4” to “X + 4”. To create a new logical BA group. At this time, the top of the logical BA group is the physical BA “W + 4”, and the number of bad blocks is 15.

換言すると、物理BAグループ群Hx2を生成する際に、物理BA「W+4」〜「X+4」がバッド物理BAに変換されたので、物理BA「W」〜「X」の物理BAグループが抽出される(図7のs23)。   In other words, when the physical BA group group Hx2 is generated, the physical BAs “W + 4” to “X + 4” are converted into bad physical BAs, so the physical BA groups of the physical BAs “W” to “X” are extracted. (S23 in FIG. 7).

そして、テーブル構築部31は、抽出した各物理BAグループに対し、BA変換テーブル23Bに登録されなかったグッド物理BA(以下、未登録物理BAという)を用いた新たな物理BAグループを生成する。このとき、テーブル構築部31は、抽出した各物理BAグループの中で最も小さな値の未登録物理BAを、新たな物理BAグループの先頭の物理BAに設定する。テーブル構築部31は、抽出した全ての物理BAグループに対して、新たな物理BAグループを生成する。   Then, the table construction unit 31 generates a new physical BA group using a good physical BA that has not been registered in the BA conversion table 23B (hereinafter referred to as an unregistered physical BA) for each extracted physical BA group. At this time, the table construction unit 31 sets the unregistered physical BA having the smallest value among the extracted physical BA groups as the first physical BA of the new physical BA group. The table construction unit 31 generates a new physical BA group for all the extracted physical BA groups.

ここでは、物理BA「W+4」〜「W+19」からなる物理BAグループや、物理BA「X+4」〜「X+19」からなる物理BAグループが、新たな物理BAグループとして生成される。   Here, a physical BA group consisting of physical BAs “W + 4” to “W + 19” and a physical BA group consisting of physical BAs “X + 4” to “X + 19” are generated as new physical BA groups.

そして、テーブル構築部31は、生成した新たな物理BAグループを、バッドブロック数情報52に登録する(図7のs24)。例えば、物理BA「W+4」〜「W+19」からなる物理BAグループは、グッド物理BA数が1個なので、バッド物理BA数が15個のグループリストに登録される。   Then, the table construction unit 31 registers the generated new physical BA group in the bad block number information 52 (s24 in FIG. 7). For example, a physical BA group composed of physical BAs “W + 4” to “W + 19” has one good physical BA number, and is registered in a group list with 15 bad physical BA numbers.

テーブル構築部31は、新たに登録されたバッドブロック数情報52を用いて、上述した図7のs21〜s24と同様の処理を繰り返す。これにより、バッドブロック数情報52に新たに登録された物理BAグループもBA変換テーブル23Bに登録される。このとき、新たに登録された物理BAグループは、他の物理BAグループとともに64Slot数分の物理BAグループ群を構成し、物理BAグループ群としてBA変換テーブル23Bに登録される。   The table construction unit 31 repeats the same processing as s21 to s24 of FIG. 7 described above using the newly registered bad block number information 52. As a result, the physical BA group newly registered in the bad block number information 52 is also registered in the BA conversion table 23B. At this time, the newly registered physical BA group forms a physical BA group group for 64 slots together with other physical BA groups, and is registered in the BA conversion table 23B as the physical BA group group.

具体的には、d0段目の物理BA「W+4」〜「X+4」が論理BA「Q」に設定され、d1段目の物理BA「W+5」〜「X+5」が論理BA「Q+1」に設定され、d15段目の物理BA「W+19」〜「X+19」が、論理BA「Q+15」に設定される。同様に、他の物理BAグループのd0段目の物理BA「S」〜「T」が、論理BA「Q」に設定される。   Specifically, the physical BAs “W + 4” to “X + 4” in the d0 stage are set to the logical BA “Q”, and the physical BAs “W + 5” to “X + 5” in the d1 stage are set to the logical BA “Q + 1”. , D15th-stage physical BAs “W + 19” to “X + 19” are set to the logical BA “Q + 15”. Similarly, the physical BA “S” to “T” in the d0 stage of the other physical BA group are set to the logical BA “Q”.

なお、BA変換テーブル23Bに登録される物理BAグループは、16個の物理BAである必要はない。例えば、12個の物理BA「W+4」〜「W+19」からなる新しい物理BAグループを、BA変換テーブル23Bに登録してもよい。この場合、13個目以降の物理BAに対応する論理BAは、バッドブロック数情報52において「無効」に設定される。換言すると、新たな物理BAグループにおいて、物理BAが16個に満たない場合は、足りない物理BAの箇所にバッドブロックが存在するものとして扱われる。   The physical BA group registered in the BA conversion table 23B does not have to be 16 physical BAs. For example, a new physical BA group composed of 12 physical BAs “W + 4” to “W + 19” may be registered in the BA conversion table 23B. In this case, logical BAs corresponding to the 13th and subsequent physical BAs are set to “invalid” in the bad block number information 52. In other words, in a new physical BA group, when the number of physical BAs is less than 16, it is treated that a bad block exists at the location of the missing physical BA.

論理BAが設定された後、16ブロック分の論理BA「Q」〜「Q+15」が、1つの論理BAグループに設定され、16ブロック分×64Slot数分の物理BAグループ群Hx3(図示せず)に対応付けされて、BA変換テーブル23Bに登録される。   After the logical BA is set, the logical BA “Q” to “Q + 15” for 16 blocks are set in one logical BA group, and the physical BA group group Hx3 (16 blocks × 64 slots) (not shown) Are registered in the BA conversion table 23B.

図8(a)のBA変換テーブル23Bでは、論理BA「Q」〜「Q+15」のグループを「論理BA Q/(Q+15)」で示している。また、各Slotの物理BAには、物理BAグループの先頭の物理BAが登録される。これにより、BA変換テーブル23Bには、物理BA「W+4」〜「X+4」,「S」〜「T」が、「論理BA Q/(Q+15)」に対応付けされて登録される。   In the BA conversion table 23B of FIG. 8A, a group of logical BAs “Q” to “Q + 15” is indicated by “logical BA Q / (Q + 15)”. In addition, the first physical BA of the physical BA group is registered in the physical BA of each slot. Thereby, the physical BAs “W + 4” to “X + 4” and “S” to “T” are registered in the BA conversion table 23B in association with “logical BA Q / (Q + 15)”.

そして、テーブル構築部31は、論理BAグループ内の各論理BAの有効性を有効性管理テーブル24Bに登録する。ここでは、d0段目の論理BA「Q」がグッド物理BAに設定されているので、論理BA「Q」には、「有効」が設定される。また、d1〜d11段目がバッド物理BAに設定され、d12段目〜d15段目には物理BAが存在しないので、d1〜d15段目までの論理BA「Q+1」〜「Q+15」には、「無効」が設定される。   Then, the table construction unit 31 registers the validity of each logical BA in the logical BA group in the validity management table 24B. Here, since the logical BA “Q” in the d0 stage is set to the good physical BA, “valid” is set to the logical BA “Q”. In addition, since the d1 to d11 stages are set as bad physical BAs and there are no physical BAs in the d12 to d15 stages, the logical BAs “Q + 1” to “Q + 15” up to the d1 to d15 stages have “Invalid” is set.

この後、論理BAグループを組むことができなくなるまで、ステップS130〜S160の処理が繰り返される。論理BAグループを組むことができなくなると(ステップS130、No)、BA変換テーブル23Bの生成処理は終了する。   Thereafter, the processes of steps S130 to S160 are repeated until a logical BA group cannot be formed. When it becomes impossible to form a logical BA group (step S130, No), the generation process of the BA conversion table 23B ends.

なお、64Slot数未満の物理BAグループが余った場合、テーブル構築部31は、64Slot数未満のまま物理BAグループ群をBA変換テーブル23Bに登録する。この場合において、物理BAグループ内に複数のグッドブロックがある場合、物理BAグループを複数に分割し、分割した物理BAグループにグッドブロックを分配してもよい。例えば、2つのグッドブロックを有した物理BAグループが残った場合、テーブル構築部31は、1つのグッドブロックを有した物理BAグループと1つのグッドブロックを有した物理BAグループとの2つの物理BAグループを生成する。そして、テーブル構築部31は、2つの物理BAグループを用いて物理BAグループ群を生成するとともに、論理BAグループと対応付けしてBA変換テーブル23Bに登録する。   If there are more physical BA groups than the number of 64 slots, the table construction unit 31 registers the physical BA group group in the BA conversion table 23B while maintaining the number less than 64 slots. In this case, when there are a plurality of good blocks in the physical BA group, the physical BA group may be divided into a plurality of blocks and the good blocks may be distributed to the divided physical BA groups. For example, when a physical BA group having two good blocks remains, the table construction unit 31 has two physical BAs, a physical BA group having one good block and a physical BA group having one good block. Create a group. Then, the table construction unit 31 generates a physical BA group group using two physical BA groups, and registers the physical BA group group in association with the logical BA group in the BA conversion table 23B.

BA変換テーブル23Bを構成する際に、バッドブロックがあると、バッドブロックに対応する論理ブロックを利用することができなくなる。本実施形態では、バッドブロックを整理しながら、BA変換テーブル23Bを構築することにより、BA変換テーブル23Bの圧縮度を上げ、これによりSSD1に必要なRAM2のメモリ容量を減らしている。   When the BA conversion table 23B is configured, if there is a bad block, a logical block corresponding to the bad block cannot be used. In this embodiment, the BA conversion table 23B is constructed while organizing the bad blocks, thereby increasing the degree of compression of the BA conversion table 23B, thereby reducing the memory capacity of the RAM 2 necessary for the SSD 1.

このように、テーブル構築部31は、BA変換テーブル23Bを構築する際に、グッドブロック数が略同数の物理BAグループを集めて1つの論理BAグループに対応付けしている。これにより、BA変換テーブル23Bの圧縮率を高めることが可能となる。   As described above, when the table construction unit 31 constructs the BA conversion table 23B, the physical BA groups having substantially the same number of good blocks are collected and associated with one logical BA group. As a result, the compression rate of the BA conversion table 23B can be increased.

図9は、SSDを搭載したパーソナルコンピュータの一例を示す斜視図である。パーソナルコンピュータ1200は、SSD1と、本体1201と、表示ユニット1202と、を備えている。なお、ここでは、パーソナルコンピュータ1200がSSD1を備えている場合について説明する。表示ユニット1202は、ディスプレイハウジング1203と、このディスプレイハウジング1203に収容された表示装置1204と、を備えている。   FIG. 9 is a perspective view showing an example of a personal computer equipped with an SSD. The personal computer 1200 includes an SSD 1, a main body 1201, and a display unit 1202. Here, a case where the personal computer 1200 includes the SSD 1 will be described. The display unit 1202 includes a display housing 1203 and a display device 1204 accommodated in the display housing 1203.

本体1201は、筐体1205と、キーボード1206と、ポインティングデバイスであるタッチパッド1207とを備えている。筐体1205内部には、メイン回路基板、ODD(optical disk device)ユニット、カードスロット、及びSSD1等が収容されている。   The main body 1201 includes a housing 1205, a keyboard 1206, and a touch pad 1207 that is a pointing device. The housing 1205 accommodates a main circuit board, an ODD (optical disk device) unit, a card slot, an SSD 1 and the like.

カードスロットは、筐体1205の周壁に隣接して設けられている。周壁には、カードスロットに対向する開口部1208が設けられている。ユーザは、この開口部1208を通じて筐体1205の外部から追加デバイスをカードスロットに挿抜することが可能である。   The card slot is provided adjacent to the peripheral wall of the housing 1205. An opening 1208 facing the card slot is provided on the peripheral wall. The user can insert / remove an additional device into / from the card slot from the outside of the housing 1205 through the opening 1208.

SSD1は、従来のHDDの置き換えとして、パーソナルコンピュータ1200内部に実装された状態として使用してもよいし、パーソナルコンピュータ1200が備えるカードスロットに挿入した状態で、追加デバイスとして使用してもよい。   The SSD 1 may be used as a state of being mounted inside the personal computer 1200 as a replacement for a conventional HDD, or may be used as an additional device while being inserted into a card slot included in the personal computer 1200.

図10は、SSDを搭載したパーソナルコンピュータのシステム構成例を示している。パーソナルコンピュータ1200は、CPU1301、ノースブリッジ1302、主メモリ1303、ビデオコントローラ1304、オーディオコントローラ1305、サウスブリッジ1309、BIOS−ROM1310、SSD1、ODDユニット1311、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)1312、及びネットワークコントローラ1313等を備えている。   FIG. 10 shows a system configuration example of a personal computer equipped with an SSD. The personal computer 1200 includes a CPU 1301, a north bridge 1302, a main memory 1303, a video controller 1304, an audio controller 1305, a south bridge 1309, a BIOS-ROM 1310, an SSD 1, an ODD unit 1311, an embedded controller / keyboard controller IC (EC / KBC) 1312, And a network controller 1313 and the like.

CPU1301は、パーソナルコンピュータ1200の動作を制御するために設けられたプロセッサであり、SSD1から主メモリ1303にロードされるオペレーティングシステム(OS)を実行する。更に、ODDユニット1311が、装填された光ディスクに対して読み出し処理及び書き込み処理の少なくとも1つの処理の実行を可能にした場合に、CPU1301は、それらの処理の実行をする。   The CPU 1301 is a processor provided to control the operation of the personal computer 1200, and executes an operating system (OS) loaded from the SSD 1 to the main memory 1303. Further, when the ODD unit 1311 enables execution of at least one of read processing and write processing on the loaded optical disc, the CPU 1301 executes those processing.

また、CPU1301は、BIOS−ROM1310に格納されたシステムBIOS(Basic Input Output System)も実行する。尚、システムBIOSは、パーソナルコンピュータ1200内のハードウェア制御のためのプログラムである。   The CPU 1301 also executes a system BIOS (Basic Input Output System) stored in the BIOS-ROM 1310. The system BIOS is a program for hardware control in the personal computer 1200.

ノースブリッジ1302は、CPU1301のローカルバスとサウスブリッジ1309との間を接続するブリッジデバイスである。ノースブリッジ1302には、主メモリ1303をアクセス制御するメモリコントローラも内蔵されている。   The north bridge 1302 is a bridge device that connects the local bus of the CPU 1301 and the south bridge 1309. The north bridge 1302 also includes a memory controller that controls access to the main memory 1303.

また、ノースブリッジ1302は、AGP(Accelerated Graphics Port)バス等を介してビデオコントローラ1304との通信、及びオーディオコントローラ1305との通信を実行する機能も有している。   The north bridge 1302 also has a function of executing communication with the video controller 1304 and communication with the audio controller 1305 via an AGP (Accelerated Graphics Port) bus or the like.

主メモリ1303は、プログラムやデータを一時的に記憶し、CPU1301のワークエリアとして機能する。主メモリ1303は、例えばDRAMから構成される。ビデオコントローラ1304は、パーソナルコンピュータ1200のディスプレイモニタとして使用される表示ユニット1202を制御するビデオ再生コントローラである。   The main memory 1303 temporarily stores programs and data and functions as a work area for the CPU 1301. The main memory 1303 is constituted by a DRAM, for example. A video controller 1304 is a video playback controller that controls a display unit 1202 used as a display monitor of the personal computer 1200.

オーディオコントローラ1305は、パーソナルコンピュータ1200のスピーカ1306を制御するオーディオ再生コントローラである。サウスブリッジ1309は、LPC(Low Pin Count)バス1314上の各デバイス、及びPCI(Peripheral Component Interconnect)バス1315上の各デバイスを制御する。また、サウスブリッジ1309は、各種ソフトウェア及びデータを格納する記憶装置であるSSD1を、ATAインタフェースを介して制御する。   The audio controller 1305 is an audio playback controller that controls the speaker 1306 of the personal computer 1200. The south bridge 1309 controls each device on an LPC (Low Pin Count) bus 1314 and each device on a PCI (Peripheral Component Interconnect) bus 1315. The south bridge 1309 controls the SSD 1 that is a storage device for storing various software and data via the ATA interface.

パーソナルコンピュータ1200は、セクタ単位でSSD1へのアクセスを行う。ATAインタフェース(I/F)を介して、書き込みコマンド、読み出しコマンド、フラッシュコマンド等がSSD1に入力される。   The personal computer 1200 accesses the SSD 1 on a sector basis. A write command, a read command, a flash command, and the like are input to the SSD 1 via the ATA interface (I / F).

また、サウスブリッジ1309は、BIOS−ROM1310、及びODDユニット1311をアクセス制御するための機能も有している。EC/KBC1312は、電力管理のためのエンベデッドコントローラと、キーボード(KB)1206及びタッチパッド1207を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このEC/KBC1312は、ユーザによるパワーボタンの操作に応じてパーソナルコンピュータ1200の電源をON/OFFする機能を有している。ネットワークコントローラ1313は、例えばインターネット等の外部ネットワークとの通信を実行する通信装置である。   The south bridge 1309 also has a function for controlling access to the BIOS-ROM 1310 and the ODD unit 1311. The EC / KBC 1312 is a one-chip microcomputer in which an embedded controller for power management and a keyboard controller for controlling the keyboard (KB) 1206 and the touch pad 1207 are integrated. The EC / KBC 1312 has a function of turning on / off the power of the personal computer 1200 according to the operation of the power button by the user. The network controller 1313 is a communication device that executes communication with an external network such as the Internet.

パーソナルコンピュータ1200は、SSD1に電源供給を行い、また、SSD1に停止要求(Standby要求)を発行する。仮にパーソナルコンピュータ1200からSSD1への電源供給が不正に断たれた場合であっても、書き込みエラーの発生を未然に防ぐことができる。   The personal computer 1200 supplies power to the SSD 1 and issues a stop request (Standby request) to the SSD 1. Even if the power supply from the personal computer 1200 to the SSD 1 is illegally cut off, it is possible to prevent a write error from occurring.

このように第2の実施形態によれば、連続した物理BAで構成された物理BAグループをBA変換テーブル23Bに登録しているので、BA変換テーブルの構築処理時間を短縮できる。また、論理BAから物理BAへの変換を短時間で行うことが可能となる。   As described above, according to the second embodiment, since the physical BA group constituted by continuous physical BAs is registered in the BA conversion table 23B, the construction time of the BA conversion table can be shortened. Also, conversion from logical BA to physical BA can be performed in a short time.

また、バッド物理ブロック数が少ない順番で、物理BAグループを組んでいるので、バッド物理ブロックを集めることが可能となる。したがって、BA変換テーブル23Bの圧縮率を上げることが可能となる。   In addition, since the physical BA groups are assembled in the order of decreasing number of bad physical blocks, it is possible to collect bad physical blocks. Accordingly, the compression rate of the BA conversion table 23B can be increased.

また、バッド物理BA数の少ない物理BAグループを順番に抽出してBA変換テーブル23Bを構築していくので、グッドブロック同士の組み合わせやバッドブロック同士の組み合わせなどを探索することなく、BA変換テーブル23Bを構築できる。したがって、BA変換テーブル23Bの構築処理は、物理ブロック数のリニアオーダーに応じた短い時間で行うことが可能となる。   Further, since the BA conversion table 23B is constructed by sequentially extracting the physical BA groups having a small number of bad physical BAs, the BA conversion table 23B can be searched without searching for a combination of good blocks or a combination of bad blocks. Can be built. Therefore, the construction process of the BA conversion table 23B can be performed in a short time according to the linear order of the number of physical blocks.

このように第1および第2の実施形態によれば、小さいサイズの管理テーブルで不揮発性メモリ内のデータを管理することが可能となる。   As described above, according to the first and second embodiments, data in the nonvolatile memory can be managed with a management table having a small size.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

1…SSD、3…コントローラ、4…NANDメモリ、10…ホスト装置、23A,23B…BA変換テーブル、24A,24B…有効性管理テーブル、31…テーブル構築部、35…ブロックアドレス変換部、51…物理ブロック状態、52…バッドブロック数情報、Hx…物理BAグループ群。   DESCRIPTION OF SYMBOLS 1 ... SSD, 3 ... Controller, 4 ... NAND memory, 10 ... Host apparatus, 23A, 23B ... BA conversion table, 24A, 24B ... Effectiveness management table, 31 ... Table construction part, 35 ... Block address conversion part, 51 ... Physical block state, 52 ... bad block number information, Hx ... physical BA group group.

Claims (5)

コンピュータシステムの外部記憶装置として用いられる半導体記憶装置内に配置された不揮発性メモリ内における物理ブロックアドレスを、アドレス値の小さい値から順番に第1の所定数ずつ抽出して物理ブロックアドレスグループを生成する第1のグループ生成ステップと、
前記物理ブロックアドレスグループの中にバッドブロックの物理ブロックアドレスが含まれている場合に、前記バッドブロックよりも後の最初のグッドブロックの物理ブロックアドレスを次の物理ブロックアドレスグループの先頭の物理ブロックアドレスに設定して、前記次の物理ブロックアドレスグループを生成する第2のグループ生成ステップと、
前記物理ブロックアドレスグループのそれぞれに対し、最初のバッドブロック以降の物理ブロックアドレスを全てバッドブロックに設定する第1のバッドブロック設定ステップと、
前記物理ブロックアドレスグループの全体から前記グッドブロックの多い順番で前記物理ブロックアドレスグループを第2の所定数ずつ抽出して物理ブロックアドレスグループ群を生成するグループ群生成ステップと、
生成した物理ブロックアドレスグループ群のそれぞれに対し、各物理ブロックアドレスグループ内におけるバッドブロックの連続数および先頭からのグッドブロックの連続数が、前記物理ブロックアドレスグループ群内の中で最もグッドブロックが少ない物理ブロックアドレスグループと同じ値となるよう前記各物理ブロックアドレスグループにバッドブロックを設定する第2のバッドブロック設定ステップと、
ホスト装置から指定される論理アドレスに対応する前記不揮発性メモリ内の論理ブロックアドレスを用いて設定された複数の連続した論理ブロックアドレスである論理ブロックアドレスグループと、前記物理ブロックアドレスグループ群と、を対応付けしたアドレス管理テーブルを生成するテーブル生成ステップと、
前記論理ブロックアドレスグループ内の各論理ブロックアドレスがグッドブロックであるか否かを示す有効性情報を前記論理ブロックアドレスに設定した有効性管理テーブルを、前記物理ブロックアドレスがグッドブロックであるか否かに基づいて生成する有効性設定ステップと、
前記第2のバッドブロック設定ステップでバッドブロックに設定された物理ブロックアドレスを用いて、前記物理ブロックアドレスグループを生成する第3のグループ生成ステップと、
を含み、
前記第3のグループ生成ステップで生成した物理ブロックアドレスグループに対し、前記第2のグループ生成ステップ、前記第1のバッドブロック設定ステップ、前記グループ群生成ステップ、前記第2のバッドブロック設定ステップ、前記テーブル生成ステップ、前記有効性設定ステップおよび前記第3のグループ生成ステップを繰り返すことを特徴とする管理情報生成方法。
A physical block address group is generated by extracting a first predetermined number of physical block addresses in a non-volatile memory arranged in a semiconductor storage device used as an external storage device of a computer system, in order from the smallest address value. A first group generation step,
When the physical block address of the bad block is included in the physical block address group, the physical block address of the first good block after the bad block is changed to the first physical block address of the next physical block address group. And a second group generation step for generating the next physical block address group,
A first bad block setting step for setting all physical block addresses after the first bad block to bad blocks for each of the physical block address groups;
A group group generating step of generating a physical block address group group by extracting the physical block address group by a second predetermined number in order of increasing the number of good blocks from the whole of the physical block address group;
For each of the generated physical block address groups, the number of consecutive bad blocks in each physical block address group and the number of consecutive good blocks from the top are the least in the physical block address group. A second bad block setting step for setting a bad block in each physical block address group so as to have the same value as the physical block address group;
A logical block address group that is a plurality of continuous logical block addresses set by using a logical block address in the nonvolatile memory corresponding to a logical address specified by a host device, and the physical block address group group. A table generation step for generating an associated address management table;
The validity management table in which validity information indicating whether or not each logical block address in the logical block address group is a good block is set in the logical block address, whether or not the physical block address is a good block A validity setting step to generate based on
A third group generation step of generating the physical block address group using the physical block address set in the bad block in the second bad block setting step;
Including
For the physical block address group generated in the third group generation step, the second group generation step, the first bad block setting step, the group group generation step, the second bad block setting step, A management information generation method comprising repeating the table generation step, the validity setting step, and the third group generation step.
コンピュータシステムの外部記憶装置として用いられる半導体記憶装置内に配置された不揮発性メモリ内における物理ブロックアドレスを、アドレス値の小さい値から順番に第1の所定数ずつ抽出して物理ブロックアドレスグループを生成する第1のグループ生成ステップと、
前記物理ブロックアドレスグループの中にバッドブロックの物理ブロックアドレスが含まれている場合に、前記バッドブロックよりも後の最初のグッドブロックの物理ブロックアドレスを次の物理ブロックアドレスグループの先頭の物理ブロックアドレスに設定して、前記次の物理ブロックアドレスグループを生成する第2のグループ生成ステップと、
前記物理ブロックアドレスグループのそれぞれに対し、最初のバッドブロック以降の物理ブロックアドレスを全てバッドブロックに設定する第1のバッドブロック設定ステップと、
前記物理ブロックアドレスグループの全体から前記グッドブロックの多い順番で前記物理ブロックアドレスグループを第2の所定数ずつ抽出して物理ブロックアドレスグループ群を生成するグループ群生成ステップと、
生成した物理ブロックアドレスグループ群のそれぞれに対し、各物理ブロックアドレスグループ内におけるバッドブロックの連続数および先頭からのグッドブロックの連続数が、前記物理ブロックアドレスグループ群内の中で最もグッドブロックが少ない物理ブロックアドレスグループと同じ値となるよう前記各物理ブロックアドレスグループにバッドブロックを設定する第2のバッドブロック設定ステップと、
ホスト装置から指定される論理アドレスに対応する前記不揮発性メモリ内の論理ブロックアドレスを用いて設定された複数の連続した論理ブロックアドレスである論理ブロックアドレスグループと、前記物理ブロックアドレスグループ群と、を対応付けしたアドレス管理テーブルを生成するテーブル生成ステップと、
を含むことを特徴とする管理情報生成方法。
A physical block address group is generated by extracting a first predetermined number of physical block addresses in a non-volatile memory arranged in a semiconductor storage device used as an external storage device of a computer system, in order from the smallest address value. A first group generation step,
When the physical block address of the bad block is included in the physical block address group, the physical block address of the first good block after the bad block is changed to the first physical block address of the next physical block address group. And a second group generation step for generating the next physical block address group,
A first bad block setting step for setting all physical block addresses after the first bad block to bad blocks for each of the physical block address groups;
A group group generating step of generating a physical block address group group by extracting the physical block address group by a second predetermined number in order of increasing the number of good blocks from the whole of the physical block address group;
For each of the generated physical block address groups, the number of consecutive bad blocks in each physical block address group and the number of consecutive good blocks from the top are the least in the physical block address group. A second bad block setting step for setting a bad block in each physical block address group so as to have the same value as the physical block address group;
A logical block address group that is a plurality of continuous logical block addresses set by using a logical block address in the nonvolatile memory corresponding to a logical address specified by a host device, and the physical block address group group. A table generation step for generating an associated address management table;
A management information generation method comprising:
前記論理ブロックアドレスグループ内の各論理ブロックアドレスがグッドブロックであるか否かを示す有効性情報を前記論理ブロックアドレスに設定した有効性管理テーブルを、前記物理ブロックアドレスがグッドブロックであるか否かに基づいて生成する有効性設定ステップと、
前記第2のバッドブロック設定ステップでバッドブロックに設定された物理ブロックアドレスを用いて、前記物理ブロックアドレスグループを生成する第3のグループ生成ステップと、
をさらに含み、
前記第3のグループ生成ステップで生成した物理ブロックアドレスグループに対し、前記第2のグループ生成ステップ、前記第1のバッドブロック設定ステップ、前記グループ群生成ステップ、前記第2のバッドブロック設定ステップおよび前記テーブル生成ステップを行うことを特徴とする請求項2に記載の管理情報生成方法。
The validity management table in which validity information indicating whether or not each logical block address in the logical block address group is a good block is set in the logical block address, whether or not the physical block address is a good block A validity setting step to generate based on
A third group generation step of generating the physical block address group using the physical block address set in the bad block in the second bad block setting step;
Further including
For the physical block address group generated in the third group generation step, the second group generation step, the first bad block setting step, the group group generation step, the second bad block setting step, and the The management information generation method according to claim 2, wherein a table generation step is performed.
前記論理ブロックアドレスグループ内の各論理ブロックアドレスがグッドブロックであるか否かを示す有効性情報を前記論理ブロックアドレスに設定した有効性管理テーブルを、前記物理ブロックアドレスがグッドブロックであるか否かに基づいて生成する有効性設定ステップと、
前記第2のバッドブロック設定ステップでバッドブロックに設定された物理ブロックアドレスを用いて、前記物理ブロックアドレスグループを生成する第3のグループ生成ステップと、
をさらに含み、
前記第3のグループ生成ステップで生成した物理ブロックアドレスグループに対し、前記第2のグループ生成ステップ、前記第1のバッドブロック設定ステップ、前記グループ群生成ステップ、前記第2のバッドブロック設定ステップ、前記テーブル生成ステップ、前記有効性設定ステップおよび前記第3のグループ生成ステップを繰り返すことを特徴とする請求項2に記載の管理情報生成方法。
The validity management table in which validity information indicating whether or not each logical block address in the logical block address group is a good block is set in the logical block address, whether or not the physical block address is a good block A validity setting step to generate based on
A third group generation step of generating the physical block address group using the physical block address set in the bad block in the second bad block setting step;
Further including
For the physical block address group generated in the third group generation step, the second group generation step, the first bad block setting step, the group group generation step, the second bad block setting step, The management information generation method according to claim 2, wherein the table generation step, the validity setting step, and the third group generation step are repeated.
不揮発性メモリと、
ホスト装置から指定された論理アドレスに基づいて、前記不揮発性メモリに対してデータの読み出し/書き込み制御を行うコントローラと、
を備え、
前記コントローラは、
前記論理アドレスに対応する前記不揮発性メモリ内の論理ブロックアドレスと当該論理ブロックアドレスに対応する前記不揮発性メモリ内の物理ブロックアドレスとが対応付けされたアドレス管理テーブルを構築するテーブル構築部を有し、
前記不揮発性メモリは、前記アドレス管理テーブルを記憶するとともに、前記コントローラは、前記アドレス管理テーブルを用いて前記不揮発性メモリに対するデータの読み出し/書き込み制御を行ない、
前記テーブル構築部は、
前記物理ブロックアドレスを、アドレス値の小さい値から順番に第1の所定数ずつ抽出して物理ブロックアドレスグループを生成し、
前記物理ブロックアドレスグループの中にバッドブロックの物理ブロックアドレスが含まれている場合に、前記バッドブロックよりも後の最初のグッドブロックの物理ブロックアドレスを次の物理ブロックアドレスグループの先頭の物理ブロックアドレスに設定して、前記次の物理ブロックアドレスグループを生成し、
前記物理ブロックアドレスグループのそれぞれに対し、最初のバッドブロック以降の物理ブロックアドレスを全てバッドブロックに設定し、
前記物理ブロックアドレスグループの全体から前記グッドブロックの多い順番で前記物理ブロックアドレスグループを第2の所定数ずつ抽出して物理ブロックアドレスグループ群を生成し、
生成した物理ブロックアドレスグループ群のそれぞれに対し、前記物理ブロックアドレスグループ群の各物理ブロックアドレスグループの先頭からのグッドブロックの連続数およびバッドブロックの連続数が、前記物理ブロックアドレスグループ群の中で最もグッドブロックが少ない物理ブロックアドレスグループと同じ値となるよう前記各物理ブロックアドレスグループにバッドブロックを設定し、
ホスト装置から指定される論理アドレスに対応する前記不揮発性メモリ内の論理ブロックアドレスを用いて設定された複数の連続した論理ブロックアドレスである論理ブロックアドレスグループと、前記物理ブロックアドレスグループ群と、を対応付けしたアドレス管理テーブルを生成することを特徴とするメモリシステム。
Non-volatile memory;
A controller that performs data read / write control on the nonvolatile memory based on a logical address designated by a host device;
With
The controller is
A table construction unit for constructing an address management table in which a logical block address in the nonvolatile memory corresponding to the logical address is associated with a physical block address in the nonvolatile memory corresponding to the logical block address; ,
The nonvolatile memory stores the address management table, and the controller performs data read / write control with respect to the nonvolatile memory using the address management table,
The table construction unit
The physical block address is extracted by a first predetermined number in order from a smaller address value to generate a physical block address group,
When the physical block address of the bad block is included in the physical block address group, the physical block address of the first good block after the bad block is changed to the first physical block address of the next physical block address group. To generate the next physical block address group,
For each of the physical block address groups, all physical block addresses after the first bad block are set as bad blocks,
The physical block address group is generated by extracting a second predetermined number of the physical block address groups in order of increasing number of the good blocks from the entire physical block address group,
For each of the generated physical block address groups, the number of consecutive good blocks and the number of consecutive bad blocks from the beginning of each physical block address group of the physical block address group Set a bad block in each physical block address group so that it has the same value as the physical block address group with the fewest good blocks,
A logical block address group that is a plurality of continuous logical block addresses set by using a logical block address in the nonvolatile memory corresponding to a logical address specified by a host device, and the physical block address group group. A memory system that generates an associated address management table.
JP2012037949A 2012-02-23 2012-02-23 Management information generation method and memory system Expired - Fee Related JP5694212B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012037949A JP5694212B2 (en) 2012-02-23 2012-02-23 Management information generation method and memory system
US13/609,991 US8924636B2 (en) 2012-02-23 2012-09-11 Management information generating method, logical block constructing method, and semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012037949A JP5694212B2 (en) 2012-02-23 2012-02-23 Management information generation method and memory system

Publications (2)

Publication Number Publication Date
JP2013174970A JP2013174970A (en) 2013-09-05
JP5694212B2 true JP5694212B2 (en) 2015-04-01

Family

ID=49267832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012037949A Expired - Fee Related JP5694212B2 (en) 2012-02-23 2012-02-23 Management information generation method and memory system

Country Status (1)

Country Link
JP (1) JP5694212B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6180271B2 (en) * 2013-10-09 2017-08-16 日本放送協会 Video recording apparatus and video recording method
CN114968106B (en) * 2022-05-27 2024-11-05 芯天下技术股份有限公司 NAND FLASH group swap method, device, equipment and medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
JP4173410B2 (en) * 2003-06-26 2008-10-29 Tdk株式会社 Memory controller and flash memory system including the memory controller
JP4702703B2 (en) * 2007-04-26 2011-06-15 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Also Published As

Publication number Publication date
JP2013174970A (en) 2013-09-05

Similar Documents

Publication Publication Date Title
US9928167B2 (en) Information processing system and nonvolatile storage unit
JP4439578B1 (en) Nonvolatile semiconductor memory drive device and data management method for nonvolatile semiconductor memory drive device
US8924636B2 (en) Management information generating method, logical block constructing method, and semiconductor memory device
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US9146691B2 (en) Method for managing commands in command queue, memory control circuit unit and memory storage apparatus
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
US9021218B2 (en) Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same
US9058256B2 (en) Data writing method, memory controller and memory storage apparatus
US9292435B2 (en) Memory device and method of operation
JP2010152909A (en) Nonvolatile semiconductor memory drive device, information management device, management method of storage area in nonvolatile semiconductor memory drive device
KR20100094241A (en) Nonvolatile memory device not including reserved blocks
JP2013174975A (en) Memory system and data writing method for the same
TWI459198B (en) Memory storage device, memory controller thereof, and method for identifying valid data
TW201403319A (en) Memory storage device, memory controller thereof, and method for programming data thereof
US8943289B2 (en) Data moving method for flash memory module, and memory controller and memory storage apparatus using the same
JP2015053075A (en) Memory system, information processing device, and storage device
US8527733B2 (en) Memory system
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
CN102567221A (en) Data management method, memory controller and memory storage device
JP5694212B2 (en) Management information generation method and memory system
US9009389B2 (en) Memory management table processing method, memory controller, and memory storage apparatus
JP2012068765A (en) Memory controller, flash memory system with memory controller, and control method of flash memory
JP2012037971A (en) Memory controller, nonvolatile memory system provided with memory controller, and method for controlling nonvolatile memory
CN109002265B (en) Data processing method and related device
US20140281160A1 (en) Non-volatile semiconductor storage apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140805

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: 20150106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150204

R151 Written notification of patent or utility model registration

Ref document number: 5694212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees