JP2013069210A - Memory system - Google Patents

Memory system Download PDF

Info

Publication number
JP2013069210A
JP2013069210A JP2011208808A JP2011208808A JP2013069210A JP 2013069210 A JP2013069210 A JP 2013069210A JP 2011208808 A JP2011208808 A JP 2011208808A JP 2011208808 A JP2011208808 A JP 2011208808A JP 2013069210 A JP2013069210 A JP 2013069210A
Authority
JP
Japan
Prior art keywords
bank
defective
chip
memory
physical
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.)
Withdrawn
Application number
JP2011208808A
Other languages
Japanese (ja)
Inventor
Tomomi Kodama
智美 児玉
Koji Watanabe
幸治 渡辺
Takashi Oshima
貴志 大嶋
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
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Corp
Toshiba Information Systems Japan 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, Toshiba Information Systems Japan Corp filed Critical Toshiba Corp
Priority to JP2011208808A priority Critical patent/JP2013069210A/en
Publication of JP2013069210A publication Critical patent/JP2013069210A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a memory system capable of securing the maximum number of combinations allowing parallel driving even when a defective memory chip is generated.SOLUTION: The combination of a plurality of physical banks constituting a logical bank is dynamically set on the basis of defective memory chip information by which defective memory chips within physical banks can be identified so as to maximize the number of memory chips allowing parallel access within each lane without using the defective memory chips.

Description

本発明の実施形態は、不揮発性半導体メモリを備えるメモリシステムに関する。   Embodiments described herein relate generally to a memory system including a nonvolatile semiconductor memory.

近年のフラッシュメモリのパッケージは複数のメモリチップをスタックして構成されることが多くなっている。SSD(Solid State Drive)に代表されるように、フラッシュメモリを使用して大容量のストレージデバイスを構成する際には、このようなパッケージを更に複数使用することにより構成することが多い。   In recent years, flash memory packages are often configured by stacking a plurality of memory chips. As represented by SSD (Solid State Drive), when a large-capacity storage device is configured using a flash memory, it is often configured by using a plurality of such packages.

例えば、8スタックされたパッケージを8個使用してSSDを構成した場合、64チップで1システムを構成することとなり、単一チップの不良率を0.1%とした場合でも、システムとしての不良率約6%程度となり、単一チップの不良率に対してシステムとしての不良率は大きなものなる。   For example, when an SSD is configured by using 8 packages stacked in 8 stacks, one system is composed of 64 chips, and even if the defect rate of a single chip is 0.1%, the system is defective. The rate is about 6%, and the failure rate as a system is larger than the failure rate of a single chip.

特開2009−266125号公報JP 2009-266125 A

本発明の一つの実施形態は、不良チップあるいは不良ブロックが発生した場合でも、並列駆動可能な組み合わせ数を最大限確保可能なメモリシステムを提供することを目的とする。   An object of one embodiment of the present invention is to provide a memory system that can secure the maximum number of combinations that can be driven in parallel even when a defective chip or a defective block occurs.

本発明の一つの実施形態によれば、不揮発性半導体メモリは、並列動作可能なチャネル並列動作要素を複数個有し、各チャネル並列動作要素はバンクインタリーブ可能な複数の物理バンクを有し、各物理バンクは複数のメモリチップを有し、各メモリチップはデータ消去の単位である物理ブロックを複数個有する。メモリコントローラは、複数個備えられ、複数のチャネル並列動作要素から構成されるレーンに対応して1つ割り当てられる。メモリコントローラは、物理バンク単位に個別接続され、1つの物理バンク内の複数のメモリチップに共通接続される複数のチップイネーブル信号によって物理バンクの選択を行うことによってレーン内の複数のチャネル並列動作要素に含まれる各物理バンク内のメモリチップを並列駆動する。コントローラは、各物理バンク内の不良メモリチップが識別可能な不良メモリチップ情報に基づき、不良メモリチップを使用せずに各レーン内において並列アクセス可能なメモリチップ数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを示す論物バンク情報を動的に設定する。各メモリコントローラは、コントローラが設定した論物バンク情報に基づいてチップイネーブル信号を駆動制御する。   According to one embodiment of the present invention, a nonvolatile semiconductor memory has a plurality of channel parallel operation elements capable of parallel operation, each channel parallel operation element has a plurality of physical banks capable of bank interleaving, The physical bank has a plurality of memory chips, and each memory chip has a plurality of physical blocks which are data erasing units. A plurality of memory controllers are provided, and one memory controller is allocated corresponding to a lane composed of a plurality of channel parallel operation elements. A memory controller is connected individually to each physical bank, and a plurality of channel parallel operation elements in a lane are selected by selecting a physical bank by a plurality of chip enable signals commonly connected to a plurality of memory chips in one physical bank. The memory chips in each physical bank included in are driven in parallel. Based on the defective memory chip information that can identify the defective memory chip in each physical bank, the controller is configured to increase the number of memory chips that can be accessed in parallel in each lane without using the defective memory chip. The logical / physical bank information indicating the combination of a plurality of physical banks that constitutes is dynamically set. Each memory controller drives and controls a chip enable signal based on logical / physical bank information set by the controller.

図1は、SSDの構成例を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration example of an SSD. 図2は、1レーン内のNANDフラッシュの構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of the NAND flash in one lane. 図3は、1チャネルのNANDフラッシュの内部構成例を示す図である。FIG. 3 is a diagram illustrating an internal configuration example of a one-channel NAND flash. 図4は、NANDコントローラの内部構成例を示すブロック図である。FIG. 4 is a block diagram illustrating an internal configuration example of the NAND controller. 図5は、CH構成でのECC符号のデータ配置例とレーン構成でのECC符号のデータ配置例を示す図である。FIG. 5 is a diagram illustrating an example of data arrangement of ECC codes in the CH configuration and an example of data arrangement of ECC codes in the lane configuration. 図6は、各チャネルのNANDフラッシュに対するアクセス情報の構成例を示す図である。FIG. 6 is a diagram showing a configuration example of access information for the NAND flash of each channel. 図7は、1レーン内でのNANDフラッシュに対するアクセス動作手順例を示すフローチャートである。FIG. 7 is a flowchart showing an example of an access operation procedure for the NAND flash in one lane. 図8は、同じバンク番号を持つバンクからチャネル並列動作を行わせるチップを選択する場合にチップ故障がある場合のチップ選択例を示す図である。FIG. 8 is a diagram showing an example of chip selection when there is a chip failure when selecting a chip that performs channel parallel operation from banks having the same bank number. 図9は、チップ故障がある場合に第1の実施形態の手法を用いた場合のチップ選択例を示す図である。FIG. 9 is a diagram illustrating an example of chip selection when the technique of the first embodiment is used when there is a chip failure. 図10は、同じバンク番号を持つバンクからチャネル並列動作を行わせるチップを選択する場合にチップ故障がある場合のチップ選択例を示す図である。FIG. 10 is a diagram showing an example of chip selection when there is a chip failure when selecting a chip that performs channel parallel operation from banks having the same bank number. 図11は、図10のチップ選択を行う場合のアクセス情報などを示す図である。FIG. 11 is a diagram showing access information and the like when the chip selection of FIG. 10 is performed. 図12は、チップ故障がある場合に第1の実施形態の手法を用いた場合のチップ選択例を示す図である。FIG. 12 is a diagram showing an example of chip selection when the technique of the first embodiment is used when there is a chip failure. 図13は、図12のチップ選択を行う場合のアクセス情報などを示す図である。FIG. 13 is a diagram showing access information and the like when the chip selection of FIG. 12 is performed. 図14は、チップ故障及びブロック故障がある場合に第2の実施形態の手法を用いた場合のチップ選択例を示す図である。FIG. 14 is a diagram illustrating an example of chip selection when the method of the second embodiment is used when there is a chip failure and a block failure. 図15は、図14のチップ選択を行う場合のアクセス情報などを示す図である。FIG. 15 is a diagram showing access information and the like when the chip selection of FIG. 14 is performed. 図16は、同じバンク番号を持つバンクからチャネル並列動作を行わせるブロックを選択する場合にブロック故障がある場合のチャネル並列可能なブロック容量を示す図である。FIG. 16 is a diagram showing a block capacity capable of channel parallel when there is a block failure when a block for performing channel parallel operation is selected from banks having the same bank number. 図17は、ブロック故障がある場合に第2の実施形態の手法を用いた場合のチャネル並列可能なブロック容量を示す図である。FIG. 17 is a diagram illustrating a block capacity capable of channel paralleling when the method of the second embodiment is used when there is a block failure.

SSD(Solid State Drive)では、複数のチャネルによって複数のフラッシュメモリを並列接続し、複数のフラッシュメモリを並列駆動することで、高速アクセスを可能にしている。また、SSDでは、各チャネルのフラッシュメモリをバンクインタリーブ可能な複数のバンクで構成し、チャネル並列動作に加えバンクインタリーブを行うことで更なる高速アクセスを可能にしている。   In SSD (Solid State Drive), a plurality of flash memories are connected in parallel through a plurality of channels, and the plurality of flash memories are driven in parallel to enable high-speed access. In the SSD, the flash memory of each channel is composed of a plurality of banks capable of bank interleaving, and bank interleaving is performed in addition to the channel parallel operation to enable further high-speed access.

各チャネルのフラッシュメモリにおいて、各バンクは複数のメモリチップで構成され、各メモリチップはデータ消去の単位である物理ブロックを複数配列して構成される。このようなSSDにおいては、並列駆動される各チャネルの物理ブロックを組み合わせて論理ブロックと呼ばれる仮想的なブロックを構成し、論理ブロック単位のアクセスを可能としている。   In the flash memory of each channel, each bank is constituted by a plurality of memory chips, and each memory chip is constituted by arranging a plurality of physical blocks which are data erasing units. In such an SSD, a physical block of each channel driven in parallel is combined to form a virtual block called a logical block to enable access in units of logical blocks.

このように複数のチャネルから1つの物理ブロックを夫々選択することで論理ブロックを構成する場合、同一のバンク番号を持つ物理ブロックによって論理ブロックを構成するという制約を設けることで、論理ブロックの管理を容易にするとともに論理ブロックを構成する物理ブロックの個数の変化への対応を容易化させるという手法が採用される場合がある。   When a logical block is configured by selecting one physical block from a plurality of channels as described above, the logical block is managed by providing a constraint that the logical block is configured by physical blocks having the same bank number. There is a case where a method of facilitating the correspondence to the change in the number of physical blocks constituting the logical block is sometimes adopted.

一方、SSDでは、チャネル毎に1つのメモリコントローラを配し、1つのメモリコントローラで1つのチャネルのフラッシュメモリを駆動制御するのが一般的である。メモリコントローラが行う機能としては、接続されるチャネルのフラッシュメモリの駆動処理、誤り訂正処理(ECC処理)、バンクインタリーブ処理などがあり、これらの処理を上位コントローラの制御下で実行している。   On the other hand, in the SSD, generally, one memory controller is arranged for each channel, and one memory controller drives and controls the flash memory of one channel. Functions performed by the memory controller include driving processing of the flash memory of the connected channel, error correction processing (ECC processing), bank interleaving processing, and the like, and these processing are executed under the control of the host controller.

しかし、各チャネルに1つのメモリコントローラを配する場合、チャネル数の増加や誤り訂正処理の複雑化などに伴いメモリコントローラのゲート規模が増大する。そこで、複数のチャネルのフラシュメモリに1つのメモリコントローラを配し、1つのメモリコントローラで複数のチャネルのフラッシュメモリを並列駆動することが考えられている。1つのメモリコントローラに接続される複数チャネルを本明細書ではレーン(Lane)と呼ぶ。このレーンを利用した構成では、例えば、誤り訂正処理を複数のチャネルで共用化することができ、ゲート規模を縮小することが可能である。   However, when one memory controller is provided for each channel, the gate scale of the memory controller increases as the number of channels increases and error correction processing becomes complicated. Therefore, it is considered that one memory controller is arranged in a plurality of channels of flash memory, and a plurality of channels of flash memories are driven in parallel by one memory controller. In this specification, a plurality of channels connected to one memory controller is referred to as a lane. In the configuration using this lane, for example, error correction processing can be shared by a plurality of channels, and the gate scale can be reduced.

しかしながら、同一のバンク番号を持つ物理ブロックによって論理ブロックを構成するという制約を各レーンに適用した場合、不良チップあるいは不良ブロックが存在する場合、各レーンにおいて使用可能な物理ブロックを有効利用できず、使用可能な物理ブロックの組み合わせ容量が少なくなるという問題がある(図8参照)。   However, when the restriction that a logical block is configured by physical blocks having the same bank number is applied to each lane, if there is a defective chip or a defective block, the physical block that can be used in each lane cannot be effectively used. There is a problem that the combined capacity of usable physical blocks is reduced (see FIG. 8).

そこで、本実施形態では、レーン内部では、同一のバンク番号を持つ物理ブロックによって論理ブロックを構成するという制約を無くし、不良チップあるいは不良ブロックが存在する場合、使用可能な物理ブロックを有効利用し、使用可能な物理ブロックの組み合わせ容量を最大限確保できるようにする(図9参照)。すなわち、本実施形態では、レーン内において、複数の物理バンクから構成される仮想的な論理バンクという概念を導入し、不良メモリチップ情報に基づき、不良メモリチップを使用せずに各レーン内において並列アクセス可能なメモリチップ数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを動的に設定可能とする。なお、レーン間で、論理バンクをどのように組み合わせるかについては、本実施形態では言及しない。   Therefore, in this embodiment, within the lane, there is no restriction that a logical block is configured by physical blocks having the same bank number, and when a defective chip or a defective block exists, the usable physical block is effectively used. It is possible to ensure the maximum combined capacity of usable physical blocks (see FIG. 9). That is, in the present embodiment, the concept of a virtual logical bank composed of a plurality of physical banks is introduced in the lane, and the lanes are paralleled without using the defective memory chip based on the defective memory chip information. A combination of a plurality of physical banks constituting a logical bank can be dynamically set so that the number of accessible memory chips is maximized. Note that how to combine logical banks between lanes is not mentioned in the present embodiment.

以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。   Hereinafter, a memory system according to an embodiment will be described in detail with reference to the accompanying drawings. In addition, this invention is not limited by this embodiment.

(第1の実施形態)
図1は、メモリシステムとしてのSSD100の構成例を示すブロック図である。SSD100は、コントローラとしてのドライブ制御回路4と、不揮発性半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDフラッシュと略す)10と、ランダムアクセス可能な半導体メモリとしてのRAM20と、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースなどを備えている。SSD100は、ATA I/F2を介してパーソナルコンピュータあるいはCPUコアなどのホスト装置(以下、ホストと略す)1と接続され、ホスト1の外部メモリとして機能する。
(First embodiment)
FIG. 1 is a block diagram illustrating a configuration example of an SSD 100 as a memory system. The SSD 100 includes a drive control circuit 4 as a controller, a NAND flash memory (hereinafter abbreviated as a NAND flash) 10 as a nonvolatile semiconductor memory, a RAM 20 as a randomly accessible semiconductor memory, and an ATA interface (ATA I / O). F) A memory connection interface such as 2 is provided. The SSD 100 is connected to a host device (hereinafter abbreviated as “host”) 1 such as a personal computer or a CPU core via the ATA I / F 2 and functions as an external memory of the host 1.

NANDフラッシュ10は、ホスト1によって指定されたユーザデータを記憶したり、RAM20で管理される管理情報をバックアップ用に記憶したりする。NANDフラッシュ10は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有し、個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。NANDフラッシュ10は、複数のメモリチップによって構成され、各メモリチップは、データ消去の単位である物理ブロックを複数配列して構成される。また、NANDフラッシュ10では、物理ページごとにデータの書き込み及びデータの読み出しが行われる。物理ブロックは、複数の物理ページによって構成されている。図1では、NANDフラッシュ10は、4チャネル(4ch:CH0〜CH3)を介して、ドライブ制御回路4内部のNANDコントローラ110に並列接続されており、4つのチャネル並列動作要素10a〜10dを並列動作させることが可能である。チャネル数は4つに限らず、任意のチャネル数を採用可能である。   The NAND flash 10 stores user data designated by the host 1, and stores management information managed by the RAM 20 for backup. The NAND flash 10 has a memory cell array in which a plurality of memory cells are arranged in a matrix, and each memory cell can store multiple values using an upper page and a lower page. The NAND flash 10 is constituted by a plurality of memory chips, and each memory chip is constituted by arranging a plurality of physical blocks which are data erasing units. In the NAND flash 10, data is written and data is read for each physical page. A physical block is composed of a plurality of physical pages. In FIG. 1, the NAND flash 10 is connected in parallel to the NAND controller 110 in the drive control circuit 4 via four channels (4ch: CH0 to CH3), and the four channel parallel operation elements 10a to 10d are operated in parallel. It is possible to make it. The number of channels is not limited to four, and any number of channels can be employed.

RAM20としては、例えば揮発性半導体メモリを採用する。RAM20として、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase Change Random Access Memory)などを採用することができる。RAM20は、データ転送用、管理情報記録用または作業領域用の記憶部として使用される。具体的には、データ転送用の記憶部(データ転送用キャッシュ)としては、ホスト1から書込要求があったデータをNANDフラッシュ10に書込む前に一時的に保存したり、ホスト1から読出要求があったデータをNANDフラッシュ10から読出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、NANDフラッシュ10に記憶されるデータの格納位置などを管理するための管理情報(NANDフラッシュ10に記憶されている各種管理テーブルが起動時などに展開されたマスターテーブル、管理テーブルの変更差分情報であるログなど)を格納するために使用される。   For example, a volatile semiconductor memory is employed as the RAM 20. As the RAM 20, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetoresistive Random Access Memory), PRAM (Phase Change Random Access Memory), etc. can be adopted. . The RAM 20 is used as a storage unit for data transfer, management information recording, or work area. Specifically, as a data transfer storage unit (data transfer cache), data requested to be written from the host 1 is temporarily stored before being written to the NAND flash 10, or read from the host 1. It is used to read out requested data from the NAND flash 10 and store it temporarily. As a storage unit for recording management information, management information for managing the storage location of data stored in the NAND flash 10 (various management tables stored in the NAND flash 10 are expanded at the time of startup or the like). Used to store a master table, a log that is change difference information of a management table, and the like.

ドライブ制御回路4は、ホスト1とNANDフラッシュ10との間でRAM20を介してデータ転送制御を行うとともに、SSD100内の各構成要素を制御する。   The drive control circuit 4 controls data transfer between the host 1 and the NAND flash 10 via the RAM 20 and controls each component in the SSD 100.

ドライブ制御回路4は、データアクセス用バス101、回路制御用バス102を備えている。回路制御用バス102には、ドライブ制御回路4全体を制御するプロセッサ104が接続されている。回路制御用バス102には、NANDフラッシュ10に記憶された各管理プログラム(FW:ファームウエア)をブートするブート用プログラムが格納されたブートROM105がROMコントローラ106を介して接続されている。   The drive control circuit 4 includes a data access bus 101 and a circuit control bus 102. A processor 104 that controls the entire drive control circuit 4 is connected to the circuit control bus 102. A boot ROM 105 storing a boot program for booting each management program (FW: firmware) stored in the NAND flash 10 is connected to the circuit control bus 102 via a ROM controller 106.

ATAインタフェースコントローラ(ATAコントローラ)111、NANDコントローラ110、及びRAMコントローラ114は、データアクセス用バス101と回路制御用バス102との両方に接続されている。ATAコントローラ111は、ATAインタフェース2を介してホスト1との間でデータを送受信する。データアクセス用バス101には、データ作業領域及びファームウェア展開領域として使用されるSRAM115がSRAMコントローラ116を介して接続されている。NANDフラッシュ10に記憶されているファームウェアは起動時、ブートROM105に記憶されたブート用プログラムによってSRAM115に転送される。プロセッサ104は、SRAM115に転送されたファームウェアを実行することで、SSD100内での最上位のコントローラとして動作し、ドライブ制御回路4内の構成要素を制御する。   The ATA interface controller (ATA controller) 111, the NAND controller 110, and the RAM controller 114 are connected to both the data access bus 101 and the circuit control bus 102. The ATA controller 111 transmits and receives data to and from the host 1 via the ATA interface 2. An SRAM 115 used as a data work area and a firmware development area is connected to the data access bus 101 via an SRAM controller 116. The firmware stored in the NAND flash 10 is transferred to the SRAM 115 by a boot program stored in the boot ROM 105 at startup. The processor 104 operates as the highest controller in the SSD 100 by executing the firmware transferred to the SRAM 115, and controls the components in the drive control circuit 4.

RAMコントローラ114は、プロセッサ104とRAM20とのインタフェース処理、ATA I/F2−RAM20間のデータ転送制御、NANDフラッシュ10−RAM20間のデータ転送制御などを実行する。NANDコントローラ110は、プロセッサ104とNANDフラッシュ10とのインタフェース処理、NANDフラッシュ10−RAM20間のデータ転送制御、誤り訂正符号のエンコード/デコード処理などを実行する。   The RAM controller 114 executes interface processing between the processor 104 and the RAM 20, data transfer control between the ATA I / F2 and RAM 20, data transfer control between the NAND flash 10 and RAM 20, and the like. The NAND controller 110 executes interface processing between the processor 104 and the NAND flash 10, data transfer control between the NAND flash 10 and the RAM 20, encoding / decoding processing of error correction codes, and the like.

図2は、NANDフラッシュ10の内部構成例を示すものである。図2では、チャネル0(CH0)のチャネル並列動作要素10a、チャネル1(CH1)のチャネル並列動作要素10bを示している。図示を省略したチャネル2(CH2)のチャネル並列動作要素10c、チャネル3(CH3)のチャネル並列動作要素10dも同様の構成を有している。各チャネル並列動作要素10a〜10dは、バンクインターリーブが可能な複数の物理バンク(図2では4バンク、Bank0〜Bank3)によって構成されており、各々の物理バンクは、複数のメモリチップ(図2では、4メモリチップ、Chip0〜Chip3)によって構成されている。なお、バンク番号を示すBank0〜3は、NANDフラッシュ10上での物理的な位置を示す物理バンク番号を示している。バンクインタリーブとは、あるバンクのデータにアクセスしている遅延時間の最中に、すなわちあるバンクのレディビジー信号(RyBy)がビジー中に、次のバンクへアクセス要求を発行して時間を有効利用する手法である。   FIG. 2 shows an example of the internal configuration of the NAND flash 10. FIG. 2 shows a channel parallel operation element 10a for channel 0 (CH0) and a channel parallel operation element 10b for channel 1 (CH1). The channel parallel operation element 10c of the channel 2 (CH2) and the channel parallel operation element 10d of the channel 3 (CH3), which are not shown, have the same configuration. Each of the channel parallel operation elements 10a to 10d is configured by a plurality of physical banks (four banks in FIG. 2, Bank 0 to Bank 3) capable of bank interleaving, and each physical bank has a plurality of memory chips (in FIG. 2). 4 memory chips, Chip 0 to Chip 3). Banks 0 to 3 indicating bank numbers indicate physical bank numbers indicating physical positions on the NAND flash 10. Bank interleaving is an effective use of time by issuing an access request to the next bank during a delay time when data of a certain bank is being accessed, that is, when a ready busy signal (RyBy) of a certain bank is busy. It is a technique.

図3は、チャネル0(CH0)のチャネル並列動作要素10a内のある1つのバンク(この場合bank0)の内部構成例を示すものである。図3に示すように、1つのバンク内の各メモリチップ(chip0〜chip3)は、例えば、それぞれ複数の物理ブロックで構成されている(図4では、便宜上、4個の物理ブロックBlk0〜Blk3を示した)。   FIG. 3 shows an internal configuration example of one bank (in this case, bank0) in the channel parallel operation element 10a of channel 0 (CH0). As shown in FIG. 3, each memory chip (chip0 to chip3) in one bank is composed of, for example, a plurality of physical blocks (in FIG. 4, for convenience, four physical blocks Blk0 to Blk3 are arranged). Indicated).

図4は、NANDコントローラ110の内部構成例を示すものである。NANDコントローラ(NANDC)110は、レーン0のNANDフラッシュ10を駆動制御するレーン0用NANDコントローラ(NANDC−LN0)110aと、レーン1のNANDフラッシュ10を駆動制御するレーン1用NANDコントローラ(NANDC−LN0)110bとを有する。1つのレーン用NANDコントローラが駆動制御を行う複数のチャネルのことをレーンと呼称する。この実施形態では、4チャネルで構成されるNANDフラッシュ10を、レーン0(CH0及びCH1)とレーン1(CH2及びCH3)に分割し、レーン0のNANDフラッシュ10(チャネル並列動作要素10a及び10b)を一方のNANDC−LN0 110aによって駆動制御し、レーン1のNANDフラッシュ10(チャネル並列動作要素10c及び10d)を他方のNANDC−LN1 110bによって駆動制御することとする。すなわち、この実施の形態では、1レーンは2チャネルで構成される。   FIG. 4 shows an example of the internal configuration of the NAND controller 110. The NAND controller (NANDC) 110 includes a NAND controller for NAND 0 (NANDC-LN0) 110a that controls driving of the NAND flash 10 in Lane 0 and a NAND controller for NAND 1 (NANDC-LN0) that controls driving of the NAND flash 10 in Lane 1. 110b. A plurality of channels in which one lane NAND controller performs drive control is referred to as a lane. In this embodiment, a NAND flash 10 composed of four channels is divided into lane 0 (CH0 and CH1) and lane 1 (CH2 and CH3), and the NAND flash 10 in lane 0 (channel parallel operation elements 10a and 10b). Is controlled by one NANDC-LN0 110a, and the NAND flash 10 (channel parallel operation elements 10c and 10d) in lane 1 is controlled by the other NANDC-LN1 110b. That is, in this embodiment, one lane is composed of two channels.

レーン0用NANDコントローラ110aは、RAM20との間でDMA転送制御を行うDMAコントローラ(DMAC)30aと、誤り訂正回路(ECC回路)31aと、NANDI/F32aと、レーン0コントローラ33aとを備える。レーン0コントローラ33aは、CH0アクセス情報設定レジスタ34aと、CH1アクセス情報設定レジスタ35aと、動作許可レジスタ36aと、I/Fコントローラ37aと、コントローラ38aを有する。レーン1用NANDコントローラ110bも同様の構成を有し、DMAC30bと、ECC回路31bと、NANDI/F32bと、レーン1コントローラ33bとを備える。レーン1コントローラ33bも同様の構成を有し、CH2アクセス情報設定レジスタ34bと、CH3アクセス情報設定レジスタ35bと、動作許可レジスタ36bと、I/Fコントローラ37bと、コントローラ38bを有する。   The lane 0 NAND controller 110a includes a DMA controller (DMAC) 30a that performs DMA transfer control with the RAM 20, an error correction circuit (ECC circuit) 31a, a NAND I / F 32a, and a lane 0 controller 33a. The lane 0 controller 33a includes a CH0 access information setting register 34a, a CH1 access information setting register 35a, an operation permission register 36a, an I / F controller 37a, and a controller 38a. The lane 1 NAND controller 110b has the same configuration, and includes a DMAC 30b, an ECC circuit 31b, a NAND I / F 32b, and a lane 1 controller 33b. The lane 1 controller 33b has the same configuration, and includes a CH2 access information setting register 34b, a CH3 access information setting register 35b, an operation permission register 36b, an I / F controller 37b, and a controller 38b.

レーン0用NANDコントローラ110aのNAND/IF32aには、2チャネル(CH0、CH1)分の信号線が接続されている。すなわち、NAND/IF32aには、CH0のチャネル並列動作要素10aに接続されるコントロールI/O信号、チップイネーブル信号(CE00−03)及びレディビジー信号(RyBy00−03)と、CH1のチャネル並列動作要素10bに接続されるコントロールI/O信号、チップイネーブル信号(CE10−13)及びレディビジー信号(RyBy10−13)が接続されている。コントロールI/O信号は、CLE(コマンドラッチイネーブル)、ALE(アドレスラッチイネーブル)、WE(ライトイネーブル)、RE(リードイネーブル)、DQS(データストローブ信号)、I/O0〜I/O7(入出力端子)などを含む。同様に、レーン1用NANDコントローラ110bのNAND/IF32bには、2チャネル(CH2、CH3)分のコントロールI/O信号、チップイネーブル信号(CE20−23、CE30−33)及びレディビジー信号(RyBy20−23、RyBy30−33)が接続されている。   Signal lines for two channels (CH0, CH1) are connected to the NAND / IF 32a of the NAND controller 110a for lane 0. That is, the NAND / IF 32a includes a control I / O signal, a chip enable signal (CE00-03) and a ready / busy signal (RyBy00-03) connected to the CH0 channel parallel operation element 10a, and a CH1 channel parallel operation element 10b. A control I / O signal, a chip enable signal (CE10-13), and a ready / busy signal (RyBy10-13) are connected. Control I / O signals are CLE (command latch enable), ALE (address latch enable), WE (write enable), RE (read enable), DQS (data strobe signal), I / O0 to I / O7 (input / output). Terminal). Similarly, the NAND / IF 32b of the NAND controller 110b for lane 1 has control I / O signals for two channels (CH2, CH3), chip enable signals (CE20-23, CE30-33), and a ready busy signal (RyBy20-23). , RyBy30-33) are connected.

図2では、レーン0コントローラ33aのNANDI/F32aと、CH0のチャネル並列動作要素10a及びCH1のチャネル並列動作要素10bとの信号線の接続をより詳細に示している。図2に示すように、各チャネルにおいて、コントロールI/O信号は、複数のバンク(Bank0〜Bank3)間で共有されているが、チップイネーブル信号CE0−3とレディビジー信号RyBy0−3は各バンクに個別に接続されている。すなわち、各チャネルにおいて、チップイネーブル信号CE0(CE00、CE10、CE20、CE30)はバンク番号0のバンク(Bank0)の各メモリチップに共通接続され、チップイネーブル信号CE1(CE01、CE11、CE21、CE31)はバンク番号1のバンク(Bank1)の各メモリチップに共通接続され、チップイネーブル信号CE2(CE02、CE12、CE22、CE32)はバンク番号2のバンク(Bank2)の各メモリチップに共通接続され、チップイネーブル信号CE3(CE03、CE13、CE23、CE33)はバンク番号3のバンク(Bank3)の各メモリチップに共通接続されており、複数のバンク(Bank0〜Bank3)を複数のチップイネーブル信号(CE0−3)でバンク毎に個別に制御する。このように、各チャネルにおいてバンク番号nの物理バンクを選択する際には、チップイネーブル信号CEnをアサートとするような手法をとっている。   In FIG. 2, the signal line connection between the NAND I / F 32a of the lane 0 controller 33a and the channel parallel operation element 10a of CH0 and the channel parallel operation element 10b of CH1 is shown in more detail. As shown in FIG. 2, in each channel, the control I / O signal is shared among a plurality of banks (Bank 0 to Bank 3), but the chip enable signal CE0-3 and the ready busy signal RyBy0-3 are provided to each bank. Connected individually. That is, in each channel, the chip enable signal CE0 (CE00, CE10, CE20, CE30) is commonly connected to each memory chip of the bank (Bank0) with bank number 0, and the chip enable signal CE1 (CE01, CE11, CE21, CE31). Are commonly connected to each memory chip of the bank (Bank 1) of bank number 1, and the chip enable signal CE2 (CE02, CE12, CE22, CE32) is commonly connected to each memory chip of the bank (Bank 2) of bank number 2. The enable signal CE3 (CE03, CE13, CE23, CE33) is commonly connected to each memory chip of the bank (Bank3) with the bank number 3, and a plurality of banks (Bank0 to Bank3) are connected to the plurality of chip enable signals (CE0-3). ) Van To control individually for each. As described above, when selecting the physical bank of bank number n in each channel, a method is adopted in which the chip enable signal CEn is asserted.

同様に、各チャネルにおいて、NANDフラッシュ10の各バンクからは、自身がビジー状態であるかレディ状態であるかを示すレディビジー信号RyBy0−3(RyBy00〜RyBy33)がNANDI/Fに入力されている。各チャネルの各バンクに含まれる複数のメモリチップのRyBy信号線は共通接続されている。   Similarly, in each channel, from each bank of the NAND flash 10, a ready / busy signal RyBy0-3 (RyBy00 to RyBy33) indicating whether the bank is busy or ready is input to the NAND I / F. RyBy signal lines of a plurality of memory chips included in each bank of each channel are connected in common.

レーン0用NANDコントローラ110aには、1つのECC回路31aが搭載され、1つのECC回路31aで2チャネル分のECC処理を実行する。図5に示すように、512Bのセクタデータ毎にECC符号を付加するものとする。図5(a)は、1チャネルに1つのECC回路を設ける場合のECC処理を示すもので、この場合は、CH0のNANDフラッシュ10に対してライトする512BのセクタデータにECC符号が付加され、またCH1のNANDフラッシュ10に対してライトする512BのセクタデータにECC符号が付加されている。図5(b)は、2チャネルに1つのECC回路を設ける場合のECC処理を示すもので、この場合は、CH0のNANDフラッシュ10に対してライトする256Bのデータと、CH1のNANDフラッシュ10に対してライトする256Bのデータとで1セクタデータを構成し、CH0及びCH1に分散された512Bの1セクタデータに対しECC符号が付加されている。ECC回路31aでは、図5(b)に示すようなECC処理を実行する。   One ECC circuit 31a is mounted on the NAND controller 110a for lane 0, and ECC processing for two channels is executed by one ECC circuit 31a. As shown in FIG. 5, an ECC code is added to each 512B sector data. FIG. 5A shows an ECC process when one ECC circuit is provided for one channel. In this case, an ECC code is added to the 512B sector data to be written to the NAND flash 10 of CH0, An ECC code is added to 512B sector data to be written to the NAND flash 10 of CH1. FIG. 5B shows ECC processing when one ECC circuit is provided for two channels. In this case, 256B data to be written to the CH0 NAND flash 10 and CH1 NAND flash 10 are written. On the other hand, 256B data to be written constitutes one sector data, and an ECC code is added to 512B one sector data distributed to CH0 and CH1. The ECC circuit 31a executes ECC processing as shown in FIG.

セクタデータのリードを考えた場合、図5(a)の場合は、1チャネルから512Bのセクタデータをリードする必要があるが、図5(b)の場合は、並列動作可能な2チャネルから256Bずつデータをリードすればよく、リード所要時間が半分になるという利点がある。また、2チャネルに1つのECC回路を設ければよいので、NANDコントローラ110のゲート規模が少なくなるという利点もある。   In the case of reading sector data, in the case of FIG. 5A, it is necessary to read the sector data from 1 channel to 512B, but in the case of FIG. 5B, the data from 2 channels that can be operated in parallel is 256B. It is only necessary to read data one by one, and there is an advantage that the read time is halved. Further, since only one ECC circuit needs to be provided for two channels, there is an advantage that the gate scale of the NAND controller 110 is reduced.

つぎに、レーン0コントローラ33aについて説明する。レーン1コントローラ33bも同様の構成を有している。レーン0コントローラ33aのコントローラ38aには、回路制御用バス102を介して上位のプロセッサ104からNANDフラッシュ10のレーン0を駆動制御するための制御情報が入力される。コントローラ38aは、プロセッサ104から入力される制御情報に基づいてレーン0コントローラ33aの内部構成回路を制御する。プロセッサ104から入力される制御情報には、レーン0(チャネル0及びチャネル1)のNANDフラッシュ10にアクセスするためのアクセス情報が含まれる。   Next, the lane 0 controller 33a will be described. The lane 1 controller 33b has a similar configuration. Control information for driving and controlling lane 0 of the NAND flash 10 from the host processor 104 is input to the controller 38a of the lane 0 controller 33a from the upper processor 104. The controller 38a controls the internal configuration circuit of the lane 0 controller 33a based on the control information input from the processor 104. The control information input from the processor 104 includes access information for accessing the NAND flash 10 in lane 0 (channel 0 and channel 1).

CH0アクセス情報設定レジスタ34aには、プロセッサ104から入力されるCH0用のアクセス情報がコントローラ38aによって設定される。CH1アクセス情報設定レジスタ35aには、プロセッサ104から入力されるCH1用のアクセス情報がコントローラ38aによって設定される。CH0アクセス情報設定レジスタ34a及びCH1アクセス情報設定レジスタ35aはキュー構造を有しており、複数のアクセス情報を蓄積することが可能である。図6は、プロセッサ104から入力されるアクセス情報の一例を示すものである。チャネル0のアクセス情報には、バンク番号、チップ番号、ブロック番号及び命令(ライト、リード、消去など)が含まれる。同様に、チャネル1のアクセス情報には、バンク番号、チップ番号、ブロック番号及び命令(ライト、リード、消去など)が含まれる。   Access information for CH0 input from the processor 104 is set in the CH0 access information setting register 34a by the controller 38a. Access information for CH1 input from the processor 104 is set in the CH1 access information setting register 35a by the controller 38a. The CH0 access information setting register 34a and the CH1 access information setting register 35a have a queue structure and can store a plurality of access information. FIG. 6 shows an example of access information input from the processor 104. The access information of channel 0 includes a bank number, a chip number, a block number, and an instruction (write, read, erase, etc.). Similarly, the access information of channel 1 includes a bank number, a chip number, a block number, and an instruction (write, read, erase, etc.).

CH0アクセス情報設定レジスタ34a及びCH1アクセス情報設定レジスタ35aに設定された各チャネルのアクセス情報は、コントローラ38aによって動作許可レジスタ36aにセットされる。コントローラ38aは、RyBy信号(RyBy00−03,RyBy10−13)などに基づいて、チャネル0及びチャネル1の並列動作が可能になったときに、各チャネルのアクセス情報を動作許可レジスタ36aにセットする。I/Fコントローラ37aは、コントローラ38aの制御の基で、動作許可レジスタ36aにセットされたチャネル0及びチャネル1用のアクセス情報に基づいてNANDI/F32aを駆動制御することで、アクセス情報に対応するコントロールI/O信号、チップイネーブル信号(CE0−3)を各チャネル0,1に出力させる。   The access information of each channel set in the CH0 access information setting register 34a and the CH1 access information setting register 35a is set in the operation permission register 36a by the controller 38a. Based on the RyBy signal (RyBy00-03, RyBy10-13) and the like, the controller 38a sets the access information of each channel in the operation permission register 36a when the channel 0 and the channel 1 can be operated in parallel. The I / F controller 37a responds to the access information by controlling the NAND I / F 32a based on the access information for channel 0 and channel 1 set in the operation permission register 36a under the control of the controller 38a. A control I / O signal and a chip enable signal (CE0-3) are output to the channels 0 and 1.

つぎに、図7に従ってレーン0コントローラ33aの動作手順を説明する。まず、コントローラ38aは、CH0アクセス情報設定レジスタ34a及びCH1アクセス情報設定レジスタ35aに、プロセッサ104から入力されるチャネル0用のアクセス情報及びチャネル1用のアクセス情報を設定する(ステップS100、S110)。コントローラ38aは、プロセッサ104からの制御情報及びRyBy信号(RyBy0−3)などに基づいて、チャネル0及びチャネル1の並列動作を許可してもよいか否かを判定し(ステップS120)、並列動作を許可してもよいと判定すると、CH0アクセス情報設定レジスタ34a及びCH1アクセス情報設定レジスタ35aに設定された各チャネルのアクセス情報を動作許可レジスタ36aにセットする。   Next, the operation procedure of the lane 0 controller 33a will be described with reference to FIG. First, the controller 38a sets the access information for channel 0 and the access information for channel 1 input from the processor 104 in the CH0 access information setting register 34a and the CH1 access information setting register 35a (steps S100 and S110). The controller 38a determines whether or not the parallel operation of the channel 0 and the channel 1 may be permitted based on the control information from the processor 104, the RyBy signal (RyBy0-3), and the like (step S120). Is permitted, the channel access information set in the CH0 access information setting register 34a and the CH1 access information setting register 35a is set in the operation permission register 36a.

I/Fコントローラ37aは、コントローラ38aの制御の基で、動作許可レジスタ36aにセットされたチャネル0及びチャネル1用のアクセス情報に基づいてNANDI/F32aを駆動制御することで、アクセス情報に対応するコントロールI/O信号、チップイネーブル信号(CE0−3)を各チャネル0,1に出力させる。これにより、アクセス情報に対応するチャネル0、1のNANDフラッシュ10の各ブロックのデータに対するアクセスが行われる(ステップS130)。コントローラ38aは、このアクセスが終了したか否かをRyBy信号などに基づいて判定し(ステップS140)、アクセスが終了した場合は、CH0アクセス情報設定レジスタ34a及びCH1アクセス情報設定レジスタ35aに未処理命令が残っているか否かを判定し(ステップS150)、未処理命令が残っている場合は、上記の処理を繰り返す。未処理命令がなくなると、処理を終了する。   The I / F controller 37a responds to the access information by controlling the NAND I / F 32a based on the access information for channel 0 and channel 1 set in the operation permission register 36a under the control of the controller 38a. A control I / O signal and a chip enable signal (CE0-3) are output to the channels 0 and 1. As a result, access is made to the data of each block of the NAND flash 10 of channels 0 and 1 corresponding to the access information (step S130). The controller 38a determines whether or not this access is completed based on the RyBy signal or the like (step S140). If the access is completed, the unprocessed instruction is sent to the CH0 access information setting register 34a and CH1 access information setting register 35a. Is left (step S150), and if there is an unprocessed instruction, the above process is repeated. When there are no more unprocessed instructions, the process is terminated.

前述したように、プロセッサ104は、CH0アクセス情報設定レジスタ34a及びCH1アクセス情報設定レジスタ35aに設定されるアクセス情報をNANDコントローラ110に出力する動作を行う。プロセッサ104は、不良チップ情報に基づいて、不良チップが発生している場合でも、各レーン内において、できるだけ多くの良品チップを使用したチャネル並列及びバンクインタリーブを行うことができるようなチャネル間のバンクの組み合わせ(バンク番号の組み合わせ)を含むアクセス情報をNANDコントローラ110に出力する。プロセッサ104は、物理バンク内の不良チップが識別可能な不良チップ情報に基づき、不良チップを使用せずに各レーン内において並列アクセス可能なメモリチップ数が最大となるように、論理バンクを構成する複数の物理バンクBank0〜3の組み合わせを示す論物バンク情報を動的に設定する。設定された論物バンク情報に基づいて図6に示したアクセス情報が形成される。論理バンクとは、後で説明するが、複数の物理バンクの組み合わせによって形成される仮想的なバンクのことをいう。   As described above, the processor 104 performs an operation of outputting the access information set in the CH0 access information setting register 34a and the CH1 access information setting register 35a to the NAND controller 110. Based on the defective chip information, the processor 104 can perform bank parallel and bank interleaving using as many non-defective chips as possible in each lane even when a defective chip is generated. The access information including the combination (bank number combination) is output to the NAND controller 110. The processor 104 configures the logical bank so that the number of memory chips that can be accessed in parallel in each lane is maximized without using the defective chip, based on the defective chip information that can identify the defective chip in the physical bank. The logical / physical bank information indicating a combination of a plurality of physical banks Bank0 to Bank3 is dynamically set. The access information shown in FIG. 6 is formed based on the set logical / physical bank information. As will be described later, a logical bank refers to a virtual bank formed by a combination of a plurality of physical banks.

不良チップがどのメモリチップで発生しているかを示す不良チップ情報が、製品出荷時に管理情報としてNANDフラッシュ10に登録されている。また、製品出荷後に後発的に発生した不良チップ(例えば、不良ブロックが所定の閾値以上発生したチップ)もプロセッサ104によって検出され、後発的に発生した不良チップ情報も管理情報として更新追加される。プロセッサ104は、このような不良チップ情報に基づき、並列アクセス可能な組み合わせ数を最大限確保可能な物理バンクBank0〜3の組み合わせを動的に設定する。その詳細については後述する。   Defective chip information indicating in which memory chip the defective chip is generated is registered in the NAND flash 10 as management information at the time of product shipment. Further, a defective chip (for example, a chip in which a defective block is generated at a predetermined threshold value or more) after the product shipment is also detected by the processor 104, and the defective chip information generated later is also updated and added as management information. Based on such defective chip information, the processor 104 dynamically sets combinations of physical banks Bank 0 to 3 that can secure the maximum number of combinations that can be accessed in parallel. Details thereof will be described later.

つぎに、図8及び図9を用いてレーン内におけるチャネル間でのバンクの組み合わせについて説明する。図8では、同じバンク番号を持つチップからチャネル並列動作を行わせるチップを選択するという規約を有する場合を示している。一方、図9では、チャネル並列動作を行わせるチップの組み合わせを、同じバンク番号をもつチップとは規定せず、チャネル並列に使用されるチップ数を出来るだけ多く確保可能なバンク番号の組み合わせを選択している。図8、図9において、上方に存在する「#」が付されたバンク番号であるBank#0〜Bank#3は、前述した仮想的な論理バンクの番号を示している。   Next, a combination of banks between channels in a lane will be described with reference to FIGS. FIG. 8 shows a case where there is a rule of selecting a chip that performs channel parallel operation from chips having the same bank number. On the other hand, in FIG. 9, the combination of chips that perform channel parallel operation is not defined as a chip having the same bank number, and a combination of bank numbers that can secure as many chips as possible in parallel is selected. doing. In FIGS. 8 and 9, Bank # 0 to Bank # 3, which are bank numbers with “#” above, indicate the numbers of the above-described virtual logical banks.

図8及び図9では、白抜きが良品チップを示し、ハッチング付きが不良チップを示している。図8及び図9で、不良チップの発生状況は同じである。図8及び図9では、チャネル0のNANDフラッシュ10においては、バンク番号0の4チップから3つの不良チップが発生し、バンク番号1の4チップから2つの不良チップが発生し、バンク番号2の4チップから1つの不良チップが発生し、バンク番号3の4チップからは不良チップが発生していない。チャネル1のNANDフラッシュ10においては、バンク番号0の4チップからは不良チップが発生しておらず、バンク番号1の4チップから1つの不良チップが発生し、バンク番号2の4チップから2つの不良チップが発生し、バンク番号3の4チップからは3つの不良チップが発生している。   In FIG. 8 and FIG. 9, white indicates a non-defective chip, and hatched indicates a defective chip. 8 and 9, the occurrence of defective chips is the same. 8 and 9, in the NAND flash 10 of channel 0, three defective chips are generated from four chips of bank number 0, and two defective chips are generated from four chips of bank number 1. One defective chip is generated from four chips, and no defective chip is generated from four chips of bank number 3. In the NAND flash 10 of the channel 1, no defective chip is generated from the four chips of the bank number 0, one defective chip is generated from the four chips of the bank number 1, and two chips from the four chips of the bank number 2 are generated. A defective chip is generated, and three defective chips are generated from the four chips of the bank number 3.

図8の場合は、チャネル間で同じバンク番号を持つチップを選択するので、論理バンク番号(Bank#0〜#3)と物理バンク番号(Bank0〜3)は一致している。すなわち、チャネル0のチップイネーブル信号CE00をチャネル0のバンク番号0の4チップに接続し、チャネル1のチップイネーブル信号CE10をチャネル1のバンク番号0の4チップに接続している。同様に、チャネル0のチップイネーブル信号CE01をチャネル0のバンク番号1の4チップに接続し、チャネル1のチップイネーブル信号CE11をチャネル1のバンク番号1の4チップに接続し、…、チャネル0のチップイネーブル信号CE03をチャネル0のバンク番号3の4チップに接続し、チャネル1のチップイネーブル信号CE13をチャネル1のバンク番号3の4チップに接続している。   In the case of FIG. 8, since a chip having the same bank number is selected between channels, the logical bank number (Bank # 0 to # 3) and the physical bank number (Bank 0 to 3) match. That is, the chip enable signal CE00 of channel 0 is connected to 4 chips of bank number 0 of channel 0, and the chip enable signal CE10 of channel 1 is connected to 4 chips of bank number 0 of channel 1. Similarly, the channel 0 chip enable signal CE01 is connected to the four chips of the channel 0 bank number 1, the channel 1 chip enable signal CE11 is connected to the channel 1 bank number 1 of 4 chips, and so on. The chip enable signal CE03 is connected to the four chips of the bank number 3 of the channel 0, and the chip enable signal CE13 of the channel 1 is connected to the four chips of the bank number 3 of the channel 1.

図8の場合は、Bank#0に関しては、CH0のBank0の良品チップ数が1で、CH1のBank0の良品チップ数が4であるので、1スタック(1チップずつ)しかチャネル並列動作を行わすことができない。また、Bank#1に関しては、チャネル並列可能数は2スタックであり、Bank#2に関しては、チャネル並列可能数は2スタックであり、Bank#3に関しては、チャネル並列可能数は1スタックである。したがって、図8の場合の、チャネル並列可能数の合計は、6スタックである。   In the case of FIG. 8, with respect to Bank # 0, the number of non-defective chips in Bank 0 of CH0 is 1 and the number of non-defective chips in Bank 0 of CH1 is 4. I can't. For Bank # 1, the number of channels that can be paralleled is 2 stacks, for Bank # 2, the number of channels that can be paralleled is 2 stacks, and for Bank # 3, the number of channels that can be paralleled is 1 stack. Therefore, the total number of possible channels in the case of FIG. 8 is 6 stacks.

一方、図9では、前述したように、チャネル並列動作を行わせるチップの組み合わせを、同じバンク番号をもつチップとは規定せず、チャネル並列に使用されるチップ数を出来るだけ多く確保可能なバンク番号の組み合わせを選択している。したがって、論理バンク番号(Bank#0〜#3)と物理バンク番号(Bank0〜3)は一致していない場合もある。すなわち、チャネル0において、良品チップの個数はバンク番号3、バンク番号2,バンク番号1、バンク番号0の順に少なくなり、チャネル1において、良品チップの個数はバンク番号0、バンク番号1,バンク番号2、バンク番号3の順に少なくなるので、良品チップの個数の多いものから少ないものへとなるようにチャネル0,1のバンクを選択している。すなわち、Bank#0をCH0のBank3とCH1のBank0との組み合わせとし、Bank#1をCH0のBank2とCH1のBank1との組み合わせとし、Bank#2をCH0のBank1とCH1のBank2との組み合わせとし、Bank#3をCH0のBank0とCH1のBank3との組み合わせとしている。この結果、Bank#0のチャネル並列可能数は4スタックであり、Bank#1のチャネル並列可能数は3スタックであり、Bank#2のチャネル並列可能数は2スタックであり、Bank#3のチャネル並列可能数は1スタックであり、図9の場合のチャネル並列可能数は10スタックとなり、図8に比べ4スタック増加する。   On the other hand, in FIG. 9, as described above, a combination of chips that perform channel parallel operation is not defined as a chip having the same bank number, and a bank that can secure as many chips as possible in channel parallel is ensured. A combination of numbers is selected. Therefore, the logical bank number (Bank # 0 to # 3) and the physical bank number (Bank 0 to 3) may not match. That is, in channel 0, the number of good chips decreases in the order of bank number 3, bank number 2, bank number 1, and bank number 0. In channel 1, the number of good chips is bank number 0, bank number 1, and bank number. 2. Since the bank numbers are decreased in the order of bank number 3, the banks of channels 0 and 1 are selected so that the number of non-defective chips is increased from the largest. That is, Bank # 0 is a combination of Bank3 of CH0 and Bank0 of CH1, Bank # 1 is a combination of Bank2 of CH0 and Bank1 of CH1, Bank # 2 is a combination of Bank1 of CH0 and Bank2 of CH1, Bank # 3 is a combination of Bank0 of CH0 and Bank3 of CH1. As a result, the number of channels parallel to Bank # 0 is 4 stacks, the number of channels parallel to Bank # 1 is 3 stacks, the number of channels parallel to Bank # 2 is 2 stacks, and the channel of Bank # 3 The number of parallel possible is 1 stack, and the number of parallel channels possible in the case of FIG. 9 is 10 stacks, which is increased by 4 stacks compared to FIG.

図10は、レーンをCH0及びCH1の2チャネルで構成し、1チャネルを2バンクで構成し、1バンクを4チップで構成し、1チップを4ブロックで構成した場合に、各ブロックに書き込むデータ例を示すものである。同じデータ名(a0,b0など)を有する「x」、「y」の組(例えば、a0−xとa0−y)で並列動作を行うとする。図11は、図10に示すデータを書き込む場合のチャネル並列動作及びバンクインタリーブ動作を示している。このような構成において、図10に示すように、チャネル0のバンク0のチップ2と、チャネル1のバンク1のチップ2と、チャネル1のバンク1のチップ3に、チップ不良が発生したとする。   FIG. 10 shows data to be written to each block when the lane is composed of 2 channels of CH0 and CH1, 1 channel is composed of 2 banks, 1 bank is composed of 4 chips, and 1 chip is composed of 4 blocks. An example is given. It is assumed that parallel operation is performed with a pair of “x” and “y” (for example, a0-x and a0-y) having the same data name (a0, b0, etc.). FIG. 11 shows channel parallel operation and bank interleaving operation when the data shown in FIG. 10 is written. In such a configuration, as shown in FIG. 10, it is assumed that a chip defect has occurred in chip 2 in bank 0 of channel 0, chip 2 in bank 1 of channel 1, and chip 3 in bank 1 of channel 1. .

図10及び図11では、図8と同様、CH0及びCH1において、同一のバンク番号を選択して、チャネル並列動作を行わせた場合を示している。同一のバンク番号を選択するという制約を設けた場合、チップ不良が発生したチップと同一バンク番号を持つ他方チャネルのチップは不使用となるので、図11に示すように、チャネル並列書き込みの合計ブロック数は20ブロックとなる。   10 and FIG. 11, as in FIG. 8, shows the case where the same bank number is selected in CH0 and CH1 to perform channel parallel operation. When the restriction that the same bank number is selected is provided, the chip of the other channel having the same bank number as the chip in which the chip defect has occurred is not used. The number is 20 blocks.

図12は、同一のバンク番号を選択して、チャネル並列動作を行わせるという制約をなくし、不使用チップをできるだけ少なくするという方針に基づく場合の各ブロックに書き込むデータ例を示すものである。図13は、図12に示すデータを書き込む場合のチャネル並列動作及びバンクインタリーブ動作を示している。図12、図13では、同一のバンク番号、同一のチップ番号を選択して、チャネル並列動作を行わせる組み合わせを選択した後、不良チップの影響で余っていた良品チップが組になるようにバンク番号、チップ番号を選択している。したがって、この例では、図13に示すように、書き込みブロック数が21個目になる書き込み動作から24個目になる書き込み動作を追加することができる。21個目〜24個目の書き込み動作では、バンク番号が異なるチップの組み合わせを行っている。すなわち、チャネル0のバンク1のチップ2と、チャネル1のバンク0のチップ2とでチャネル並列及びバンクインタリーブを行わせており、チャネル並列書き込みの合計ブロック数は24ブロックに増加している。   FIG. 12 shows an example of data to be written in each block in the case where the same bank number is selected and the restriction that the channel parallel operation is performed is eliminated and the number of unused chips is reduced as much as possible. FIG. 13 shows a channel parallel operation and a bank interleave operation when the data shown in FIG. 12 is written. In FIG. 12 and FIG. 13, after selecting the same bank number and the same chip number and selecting the combination for performing the channel parallel operation, the bank is arranged so that the non-defective chips remaining due to the defective chip are combined. Number and chip number are selected. Therefore, in this example, as shown in FIG. 13, it is possible to add a write operation from the 21st write block to the 24th write operation. In the 21st to 24th write operations, combinations of chips having different bank numbers are performed. That is, channel parallel and bank interleaving are performed by chip 2 in bank 1 of channel 0 and chip 2 in bank 0 of channel 1, and the total number of blocks for channel parallel writing is increased to 24 blocks.

図11、図13に示したBank番号、Chip番号、Block番号は、プロセッサ104がNANDコントローラ110の例えばレーン0コントローラ33aに対し出力するアクセス情報の内容の一部を示している。すなわち、図11、図13に示したBank番号、Chip番号、Block番号は、図6に示したアクセス情報の内容の具体例を示している。   The bank number, chip number, and block number shown in FIGS. 11 and 13 indicate part of the contents of the access information that the processor 104 outputs to the lane 0 controller 33a of the NAND controller 110, for example. That is, the Bank number, Chip number, and Block number shown in FIGS. 11 and 13 show specific examples of the contents of the access information shown in FIG.

例えば、図13の22個目の書き込み動作を例にとって、レーン0用NANDコントローラ110aの動作を説明する。   For example, taking the 22nd write operation of FIG. 13 as an example, the operation of the NAND controller 110a for lane 0 will be described.

(22個目の書き込み動作)
CH0アクセス情報設定レジスタ34aには、Bank番号=1,Chip番号=2,Block番号=1がセットされ、CH1アクセス情報設定レジスタ35aには、Bank番号=0,Chip番号=2,Block番号=1がセットされ、その後、これらのセットデータが動作許可レジスタ36aにセットされる。I/Fコントローラ37aは、動作許可レジスタ36aのセット内容に基づき、NANDI/F32aを制御する。これにより、CH0のBank番号=1に対応するチップイネーブル信号CE01がアサートされ、CH1のBank番号=0に対応するチップイネーブル信号CE10がアサートされ、異なるバンク番号を持つブロックのチャネル並列駆動が行われる。
(22nd write operation)
Bank number = 1, Chip number = 2, and Block number = 1 are set in the CH0 access information setting register 34a, and Bank number = 0, Chip number = 2, Block number = 1 in the CH1 access information setting register 35a. Are set, and then these set data are set in the operation permission register 36a. The I / F controller 37a controls the NAND I / F 32a based on the set contents of the operation permission register 36a. As a result, the chip enable signal CE01 corresponding to the bank number = 1 of CH0 is asserted, the chip enable signal CE10 corresponding to the bank number = 0 of CH1 is asserted, and channel parallel drive of blocks having different bank numbers is performed. .

つぎに、プロセッサ104で行われるアクセス情報の設定について説明する。まず、プロセッサ104が管理する管理情報には、図12に示したようなチップ不良箇所を特定可能な不良チップテーブルが含まれている。このような不良チップテーブルには、不良チップを特定する情報が製品出荷前に予め登録されている。   Next, setting of access information performed by the processor 104 will be described. First, the management information managed by the processor 104 includes a defective chip table that can identify a chip defective portion as shown in FIG. In such a defective chip table, information for specifying a defective chip is registered in advance before product shipment.

プロセッサ104は、不良チップテーブルの登録内容に基づき、不良メモリチップを使用せずに各レーン内において並列アクセス可能なメモリチップが最大数となるように、図9、図12、図13に示したように、論理バンクを構成する複数の物理バンクBank0〜3の組み合わせを示す論物バンク情報を決定する。最大数を確保する手法としては、例えば、図9に示したように、良品チップの個数の多いものから少ないものへとなるように、あるいは良品チップの個数の少ないものから多いものへとなるように、並列駆動するチャネル0,1のバンクを順次選択する手法がある。   The processor 104 is shown in FIGS. 9, 12, and 13 so that the maximum number of memory chips that can be accessed in parallel in each lane without using a defective memory chip is based on the registered contents of the defective chip table. As described above, the logical / physical bank information indicating the combination of the plurality of physical banks Bank0 to 3 constituting the logical bank is determined. As a method for securing the maximum number, for example, as shown in FIG. 9, the number of good chips is changed from a large number to a small number, or the number of good chips is reduced to a large number. In addition, there is a method of sequentially selecting banks of channels 0 and 1 that are driven in parallel.

決定された論理バンクと物理バンクとの対応関係を示す論物バンク情報は、管理情報としてNANDフラッシュ10およびRAM20に記憶登録され、新たな不良チップが発生するまでは、この論物バンク情報を用いて図6に示したアクセス情報が形成される。   The logical / physical bank information indicating the determined relationship between the logical bank and the physical bank is stored and registered in the NAND flash 10 and the RAM 20 as management information, and this logical / physical bank information is used until a new defective chip is generated. Thus, the access information shown in FIG. 6 is formed.

また、製品出荷後に後発的に発生した不良チップもプロセッサ104によって検出される。例えば、チップ内の全ブロックが不良ブロックとなった場合、あるいはチップ内での閾値以上の不良ブロックが発生した場合に、後発的な不良チップが発生したと判断する。そして、プロセッサ104は、後発的な不良チップが発生した場合、その不良チップ情報を不良チップテーブルに追加登録する。   Further, the processor 104 also detects defective chips that occur later after product shipment. For example, when all the blocks in the chip become defective blocks, or when a defective block exceeding the threshold value in the chip occurs, it is determined that a later defective chip has occurred. Then, when a late defective chip occurs, the processor 104 additionally registers the defective chip information in the defective chip table.

また、不良チップが新たに発生した場合、プロセッサ104は、更新された不良チップテーブルの登録内容に基づき、前述と同様、不良メモリチップを使用せずに各レーン内において並列アクセス可能なメモリチップが最大数となるように再組み替えを行って、論理バンクと物理バンクとの対応関係を示す論物バンク情報を再度決定する。再決定された論理バンクと物理バンクとの対応関係を示す論物バンク情報は、管理情報として記憶登録され、新たな不良チップが発生するまでは、この論物バンク情報を用いて図6に示したアクセス情報が形成される。   In addition, when a new defective chip is generated, the processor 104 determines whether a memory chip that can be accessed in parallel in each lane without using the defective memory chip, based on the updated registered contents of the defective chip table. Re-combination is performed so that the maximum number is reached, and logical / physical bank information indicating the correspondence between the logical bank and the physical bank is determined again. The logical / physical bank information indicating the correspondence between the re-determined logical bank and physical bank is stored and registered as management information, and is shown in FIG. 6 using this logical / physical bank information until a new defective chip is generated. Access information is formed.

このように第1の実施形態においては、更新される不良チップ情報に基づき、各レーン内において並列アクセス可能なメモリチップ数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを示す論物バンク情報を動的に決定するようにしたので、不良チップが発生した場合でも、並列駆動可能な組み合わせチップ数を最大限確保可能なメモリシステムを提供することができる。   As described above, in the first embodiment, a combination of a plurality of physical banks constituting a logical bank is set so that the number of memory chips that can be accessed in parallel in each lane is maximized based on the updated defective chip information. Since the logical / physical bank information to be shown is dynamically determined, it is possible to provide a memory system capable of ensuring the maximum number of combination chips that can be driven in parallel even when a defective chip occurs.

(第2の実施形態)
第2の実施形態では、ブロック不良が発生した場合にも、不良ブロックを使用せずに各レーン内において並列アクセス可能なブロック数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを動的に決定するようにしている。
(Second Embodiment)
In the second embodiment, even when a block failure occurs, a plurality of physical banks constituting the logical bank are configured so that the number of blocks that can be accessed in parallel in each lane without using the defective block is maximized. The combination is determined dynamically.

図14は、図12に示したチップ不良への対処に対し、ブロック不良への対処をさらに追加した例を示すものである。図15は、図14に示すデータを書き込む場合のチャネル並列動作及びバンクインタリーブ動作を示している。図14の場合は、チャネル0のバンク0のチップ2におけるブロック0及びブロック1と、チャネル0のバンク1のチップ3と、チャネル1のバンク1のチップ2におけるブロック0及びブロック1と、チャネル1のバンク1のチップ3に、チップ不良が発生したとしている。図14、図15では、同一のバンク番号、同一のチップ番号を選択して、チャネル並列動作を行わせる組み合わせを選択した後、不良チップの影響で余っていた良品チップが組になるようにバンク番号、チップ番号を選択し、さらにこの後、不良ブロックの影響で余っていた良品ブロックが組になるようバンク番号、チップ番号及びブロック番号を選択している。したがって、この例では、書き込みブロック数が25個目になる書き込み動作から26個目になる書き込み動作を追加することができる。25個目〜26個目の書き込み動作では、バンク番号が異なるチップ内ブロックの組み合わせを行っている。すなわち、チャネル0のバンク0のチップ2のブロック2と、チャネル1のバンク1のチップ2のブロック2とでチャネル並列を行わせ、またチャネル0のバンク0のチップ2のブロック3と、チャネル1のバンク1のチップ2のブロック3とでチャネル並列を行わせており、チャネル並列書き込みの合計ブロック数は26ブロックに増加している。   FIG. 14 shows an example in which a countermeasure against a block defect is further added to the countermeasure against the chip defect shown in FIG. FIG. 15 shows a channel parallel operation and a bank interleave operation when the data shown in FIG. 14 is written. In the case of FIG. 14, block 0 and block 1 in chip 2 of channel 0 bank 0, chip 3 in bank 1 of channel 0, block 0 and block 1 in chip 2 of bank 1 of channel 1, and channel 1 It is assumed that a chip defect has occurred in the chip 3 of the bank 1. In FIG. 14 and FIG. 15, after selecting the same bank number and the same chip number and selecting the combination for performing the channel parallel operation, the bank is set so that the non-defective chips remaining due to the defective chip are combined. Then, the bank number, the chip number, and the block number are selected so that the non-defective blocks remaining due to the defective block are combined. Therefore, in this example, a write operation in which the number of write blocks is 25th to 26th can be added. In the 25th to 26th write operations, combinations of in-chip blocks having different bank numbers are performed. That is, the block 2 of the chip 2 in the bank 0 of the channel 0 and the block 2 of the chip 2 of the bank 1 of the channel 1 are channel-paralleled, and the block 3 of the chip 2 of the bank 0 of the channel 0 and the channel 1 Channel parallelism is performed with the block 3 of the chip 2 of the bank 1, and the total number of blocks for channel parallel writing is increased to 26 blocks.

なお、図14、15の場合は、25個目〜26個目の書き込み動作において、バンク番号は異なるがチップ番号が同じブロックをチャネル並列動作の組としたが、バンク番号及びチップ番号が異なるブロックをチャネル並列動作の組としてもよい。   14 and 15, in the 25th to 26th write operations, blocks having different bank numbers but the same chip number are set as a channel parallel operation group, but blocks having different bank numbers and chip numbers. May be a set of channel parallel operations.

図15の26個目の書き込み動作を例にとって、レーン0用NANDコントローラ110aの動作を説明する。
(26個目の書き込み動作)
CH0アクセス情報設定レジスタ34aには、Bank番号=0,Chip番号=2,Block番号=3がセットされ、CH1アクセス情報設定レジスタ35aには、Bank番号=1,Chip番号=2,Block番号=3がセットされ、その後、これらのセットデータが動作許可レジスタ36aにセットされる。I/Fコントローラ37aは、動作許可レジスタ36aのセット内容に基づき、NANDI/F32aを制御する。これにより、CH0のBank番号=0に対応するチップイネーブル信号CE00がアサートされ、CH1のBank番号=1に対応するチップイネーブル信号CE11がアサートされ、異なるバンク番号内のブロックのチャネル並列駆動が行われる。
Taking the 26th write operation of FIG. 15 as an example, the operation of the NAND controller 110a for lane 0 will be described.
(26th writing operation)
Bank number = 0, Chip number = 2, and Block number = 3 are set in the CH0 access information setting register 34a, and Bank number = 1, Chip number = 2, and Block number = 3 are set in the CH1 access information setting register 35a. Are set, and then these set data are set in the operation permission register 36a. The I / F controller 37a controls the NAND I / F 32a based on the set contents of the operation permission register 36a. As a result, the chip enable signal CE00 corresponding to the bank number = 0 of CH0 is asserted, the chip enable signal CE11 corresponding to the bank number = 1 of CH1 is asserted, and the channels in different bank numbers are channel-parallel driven. .

図16及び図17は、図14及び図15に示した動作例と同様、ブロック不良への対応例を示すものである。図16及び図17では、各バンクが1チップで構成されている場合を示している。図16及び図17では、図14,図15と同様、1つのレーン内の2チャネル(CH0、CH1)を示している。図16では、同じバンク番号を持つブロックからチャネル並列動作を行わせるチップを選択するという規約を有する場合を示している。一方、図17では、チャネル並列動作を行わせるブロックの組み合わせを、同じバンク番号をもつブロックとは規定せず、チャネル並列に使用されるブロック数を出来るだけ多く確保可能なバンク番号の組み合わせを選択している。   FIGS. 16 and 17 show examples of dealing with block failures, similar to the operation examples shown in FIGS. 14 and 15. 16 and 17 show a case where each bank is configured by one chip. 16 and 17, two channels (CH0, CH1) in one lane are shown as in FIGS. FIG. 16 shows a case where there is a rule of selecting a chip that performs channel parallel operation from blocks having the same bank number. On the other hand, in FIG. 17, the combination of blocks for performing channel parallel operation is not defined as a block having the same bank number, and a combination of bank numbers that can secure as many blocks as possible in parallel with the channel is selected. doing.

図16及び図17では、白抜き部分が良品ブロックを示し、ハッチング部分が不良ブロックを示している。図16及び図17で、不良チップの発生状況は同じである。1つのバンクの1チップの記憶容量が8000KBであるとする。図16及び図17では、チャネル0のNANDフラッシュ10においては、バンク番号0では不良ブロックが発生しておらず、バンク番号1では1000KBの不良ブロックが発生し、バンク番号2では2000KBの不良ブロックが発生し、バンク番号3では3000KBの不良ブロックが発生している。また、チャネル1のNANDフラッシュ10においては、バンク番号0では3000KBの不良ブロックが発生し、バンク番号1では2000KBの不良ブロックが発生し、バンク番号2は1000KBの不良ブロックが発生し、バンク番号3では不良ブロックが発生していない。   In FIG. 16 and FIG. 17, white portions indicate non-defective blocks, and hatched portions indicate defective blocks. In FIG. 16 and FIG. 17, the occurrence state of the defective chip is the same. Assume that the storage capacity of one chip in one bank is 8000 KB. 16 and 17, in the NAND flash 10 of the channel 0, no defective block is generated at the bank number 0, a defective block of 1000 KB is generated at the bank number 1, and a defective block of 2000 KB is generated at the bank number 2. In the bank number 3, a defective block of 3000 KB is generated. Further, in the NAND flash 10 of channel 1, a bad block of 3000 KB occurs at bank number 0, a bad block of 2000 KB occurs at bank number 1, a bad block of 1000 KB occurs at bank number 2, and a bank number 3 No bad block has occurred.

図16の場合は、Bank#0に関しては、チャネル並列可能なブロック容量は5000KBで、Bank#1に関しては、チャネル並列可能なブロック容量は6000KBで、Bank#2に関しては、チャネル並列可能なブロック容量は6000KBで、Bank#3に関しては、チャネル並列可能なブロック容量は5000KBである。これらの合計ブロック容量は、22000KBである。   In the case of FIG. 16, the block capacity capable of channel parallel is 5000 KB for Bank # 0, the block capacity capable of channel parallel is 6000 KB for Bank # 1, and the block capacity capable of channel parallel is for Bank # 2. Is 6000 KB, and with respect to Bank # 3, the block capacity capable of channel parallel is 5000 KB. Their total block capacity is 22000 KB.

これに対し、図17では、チャネル並列動作を行わせるブロックの組み合わせを、同じバンク番号をもつブロックとは規定せず、チャネル並列に使用されるブロック数を出来るだけ多く確保可能なバンク番号の組み合わせを選択している。すなわち、チャネル0において、良品ブロック容量はバンク番号3、バンク番号2,バンク番号1、バンク番号0の順に多くなり、チャネル1において、良品ブロック容量はバンク番号0、バンク番号1,バンク番号2、バンク番号3の順に多くなるので、良品チップの個数の多いものから少ないものへとなるようにチャネル0,1のバンクを選択している。すなわち、Bank#0をCH0のBank3とCH1のBank0との組み合わせとし、Bank#1をCH0のBank2とCH1のBank1との組み合わせとし、Bank#2をCH0のBank1とCH1のBank2との組み合わせとし、Bank#3をCH0のBank0とCH1のBank3との組み合わせとしている。   On the other hand, in FIG. 17, the combination of blocks for performing channel parallel operation is not defined as a block having the same bank number, and a combination of bank numbers that can secure as many blocks as possible used in channel parallel. Is selected. That is, in channel 0, the non-defective block capacity increases in the order of bank number 3, bank number 2, bank number 1, and bank number 0. In channel 1, the non-defective block capacity is bank number 0, bank number 1, bank number 2, Since the number increases in the order of bank number 3, the banks of channels 0 and 1 are selected so that the number of non-defective chips increases from the largest to the smallest. That is, Bank # 0 is a combination of Bank3 of CH0 and Bank0 of CH1, Bank # 1 is a combination of Bank2 of CH0 and Bank1 of CH1, Bank # 2 is a combination of Bank1 of CH0 and Bank2 of CH1, Bank # 3 is a combination of Bank0 of CH0 and Bank3 of CH1.

この結果、図17の場合は、Bank#0に関しては、チャネル並列可能なブロック容量は5000KBで、Bank#1に関しては、チャネル並列可能なブロック容量は6000KBとなり、図16の場合と同じであるが、Bank#2に関しては、チャネル並列可能なブロック容量は7000KBで、Bank#3に関しては、チャネル並列可能なブロック容量は8000KBとなり、図16の場合と比較して、計4000KBだけチャネル並列可能なブロック容量が増加している。   As a result, in the case of FIG. 17, the block capacity capable of channel parallel is 5000 KB for Bank # 0, and the block capacity capable of channel parallel is 6000 KB for Bank # 1, which is the same as in FIG. For Bank # 2, the block capacity capable of channel parallel is 7000KB, and for Bank # 3, the block capacity capable of channel parallel is 8000KB. Compared with the case of FIG. Capacity is increasing.

つぎに、プロセッサ104で行われるアクセス情報の設定について説明する。まず、プロセッサ104が管理する管理情報には、図14に示したようなチップ不良箇所及びチップ内ブロック故障箇所を特定可能な不良位置テーブルが含まれている。このような不良位置テーブルには、不良チップ及び不良ブロックを特定する情報が製品出荷前に予め登録されている。   Next, setting of access information performed by the processor 104 will be described. First, the management information managed by the processor 104 includes a defect position table as shown in FIG. 14 that can identify a chip defect location and an in-chip block failure location. In such a defective position table, information for specifying defective chips and defective blocks is registered in advance before product shipment.

プロセッサ104は、不良位置テーブルの登録内容に基づき、不良メモリチップ及び不良ブロックを使用せずに各レーン内において並列アクセス可能なブロックが最大数となるように、図14、図15、図17に示したように、論理バンクを構成する複数の物理バンクBank0〜3の組み合わせを示す論物バンク情報を決定する。最大数を確保する手法としては、例えば、図17に示したように、良品ブロックの個数の多いものから少ないものへとなるように、あるいは良品ブロックの個数の少ないものから多いものへとなるように、並列駆動するチャネル0,1のバンクを順次選択する手法がある。   Based on the registration contents of the defect location table, the processor 104 can change the maximum number of blocks that can be accessed in parallel in each lane without using a defective memory chip and a defective block. As shown, logical / physical bank information indicating a combination of a plurality of physical banks Bank0 to 3 constituting a logical bank is determined. As a technique for securing the maximum number, for example, as shown in FIG. 17, the number of non-defective blocks is changed from a large number to a small number, or the number of non-defective blocks is changed to a large number. In addition, there is a method of sequentially selecting banks of channels 0 and 1 that are driven in parallel.

決定された論理バンクと物理バンクとの対応関係を示す論物バンク情報は、管理情報として記憶登録され、新たな不良チップが発生するまでは、この論物バンク情報を用いて図6に示したアクセス情報が形成される。   The logical / physical bank information indicating the determined correspondence relationship between the logical bank and the physical bank is stored and registered as management information, and this logical / physical bank information is used to generate a new defective chip as shown in FIG. Access information is formed.

また、製品出荷後に後発的に発生した不良ブロックもプロセッサ104によって検出される。例えば、チップ内の全ブロックが不良ブロックとなった場合、あるいはチップ内での閾値以上の不良ブロックが発生した場合に、後発的な不良チップが発生したと判断する。また、閾値未満の不良ブロックが発生したチップについては、チップ不良とはせずに、後発的な不良ブロックが良品チップに発生したと判断する。そして、プロセッサ104は、後発的な不良チップが発生した場合、その不良チップ情報を不良位置テーブルに追加登録する。さらに、良品チップに後発的な不良ブロックが発生した場合は、この不良ブロック情報を不良位置テーブルに追加登録する。   Further, the processor 104 also detects defective blocks that occur later after product shipment. For example, when all the blocks in the chip become defective blocks, or when a defective block exceeding the threshold value in the chip occurs, it is determined that a later defective chip has occurred. In addition, for a chip in which a defective block less than the threshold has occurred, it is determined that a subsequent defective block has occurred in a non-defective chip without causing a chip defect. Then, when a later defective chip occurs, the processor 104 additionally registers the defective chip information in the defect position table. Further, when a later defective block occurs in the non-defective chip, this defective block information is additionally registered in the defect position table.

また、不良チップが新たに発生した場合、あるいは不良ブロックが新たに発生した場合、プロセッサ104は、更新された不良位置テーブルの登録内容に基づき、前述と同様、不良メモリチップ及び不良ブロックを使用せずに各レーン内において並列アクセス可能なブロックが最大数となるように再組み替えを行って、論理バンクと物理バンクとの対応関係を示す論物バンク情報を再度決定する。再決定された論理バンクと物理バンクとの対応関係を示す論物バンク情報は、管理情報として記憶登録され、新たな不良チップあるいは不良ブロックが発生するまでは、この論物バンク情報を用いて図6に示したアクセス情報が形成される。   Further, when a new defective chip occurs or when a new defective block occurs, the processor 104 uses the defective memory chip and the defective block as described above based on the registered contents of the updated defect position table. Instead, recombination is performed so that the maximum number of blocks that can be accessed in parallel in each lane is determined, and logical / physical bank information indicating the correspondence between the logical bank and the physical bank is determined again. The logical / physical bank information indicating the correspondence between the re-determined logical bank and the physical bank is stored and registered as management information, and the logical / bank information is used until new defective chips or defective blocks are generated. 6 is formed.

このように第2の実施形態においては、更新される不良チップ情報及び不良ブロック情報に基づき、各レーン内において並列アクセス可能なブロック数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを示す論物バンク情報を動的に決定するようにしたので、不良チップあるいは不良ブロックが発生した場合でも、並列駆動可能な組み合わせブロック数を最大限確保可能なメモリシステムを提供することができる。   As described above, in the second embodiment, a plurality of physical banks constituting a logical bank are set so that the number of blocks that can be accessed in parallel in each lane is maximized based on the updated defective chip information and defective block information. Since the logical / physical bank information indicating the combination of these is dynamically determined, even when a defective chip or a defective block occurs, it is possible to provide a memory system that can secure the maximum number of combination blocks that can be driven in parallel. it can.

なお、第2の実施形態において、不良チップが発生していない状況下、あるいは1バンクを1メモリチップで構成する場合は、プロセッサ104は、図17に示したように、不良ブロックを使用せずに各レーン内において並列アクセス可能なブロック数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを示す論物バンク情報を動的に決定し、この論物バンク情報に基づいてアクセス情報を設定する。   In the second embodiment, when no defective chip is generated, or when one bank is composed of one memory chip, the processor 104 does not use a defective block as shown in FIG. In order to maximize the number of blocks that can be accessed in parallel in each lane, logical / bank information indicating a combination of a plurality of physical banks constituting the logical bank is dynamically determined, and based on the logical / bank information. Set access information.

なお、第1、第2の実施形態においては、プロセッサ104(ファームウエア)が、論理バンクを構成する複数の物理バンクの組み合わせを示す論物バンク情報を動的に決定し、この論物バンク情報に基づいてアクセス情報を設定するようにしたが、NANDコントローラ110に、論物バンク情報を動的に決定し、この論物バンク情報に基づいてアクセス情報を設定する機能を搭載するようにしてもよい。   In the first and second embodiments, the processor 104 (firmware) dynamically determines logical / physical bank information indicating a combination of a plurality of physical banks constituting a logical bank. Although the access information is set based on the logical / physical bank information, the NAND controller 110 may be equipped with a function for dynamically determining the logical / physical bank information and setting the access information based on the logical / physical bank information. Good.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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 ホスト、2 ATAインタフェース、4 ドライブ制御回路、10 NANDフラッシュ、10a〜10d チャネル並列動作要素、20 RAM、31a,31b ECC回路、33a レーン0コントローラ、33b レーン1コントローラ、34a CH0アクセス情報設定レジスタ、32a,32b NANDI/F 35a CH1アクセス情報設定レジスタ、36a,36b 動作許可レジスタ、37a,37b I/Fコントローラ、38a,38b コントローラ、104 プロセッサ、110 NANDコントローラ、110a レーン0用NANDコントローラ、 110b レーン1用NANDコントローラ。   1 host, 2 ATA interface, 4 drive control circuit, 10 NAND flash, 10a to 10d channel parallel operation elements, 20 RAM, 31a, 31b ECC circuit, 33a lane 0 controller, 33b lane 1 controller, 34a CH0 access information setting register, 32a, 32b NAND I / F 35a CH1 access information setting register, 36a, 36b operation enable register, 37a, 37b I / F controller, 38a, 38b controller, 104 processor, 110 NAND controller, 110a NAND controller for lane 0, 110b lane 1 NAND controller.

Claims (6)

並列動作可能なチャネル並列動作要素を複数個有する不揮発性半導体メモリであって、各チャネル並列動作要素はバンクインタリーブ可能な複数の物理バンクを有し、各物理バンクは複数のメモリチップを有し、各メモリチップはデータ消去の単位である物理ブロックを複数個有する不揮発性半導体メモリと、
複数のチャネル並列動作要素から構成されるレーンに対応して1つ割り当てられ、物理バンク単位に個別接続され、1つの物理バンク内の複数のメモリチップに共通接続される複数のチップイネーブル信号によって前記物理バンクの選択を行うことによってレーン内の複数のチャネル並列動作要素に含まれる各物理バンク内のメモリチップを並列駆動する複数のメモリコントローラと、
各物理バンク内の不良メモリチップが識別可能な不良メモリチップ情報に基づき、不良メモリチップを使用せずに各レーン内において並列アクセス可能なメモリチップ数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを示す論物バンク情報を動的に設定するコントローラと、
を備え、前記複数のメモリコントローラは、コントローラが設定した論物バンク情報に基づいて前記チップイネーブル信号を駆動制御することを特徴とするメモリシステム。
Non-volatile semiconductor memory having a plurality of channel parallel operation elements capable of operating in parallel, each channel parallel operation element has a plurality of physical banks that can be bank interleaved, each physical bank has a plurality of memory chips, Each memory chip has a non-volatile semiconductor memory having a plurality of physical blocks which are data erasing units, and
One is assigned corresponding to a lane composed of a plurality of channel parallel operation elements, is individually connected in units of physical banks, and is connected by a plurality of chip enable signals that are commonly connected to a plurality of memory chips in one physical bank. A plurality of memory controllers that drive the memory chips in each physical bank included in the plurality of channel parallel operation elements in the lane in parallel by selecting a physical bank; and
Based on the defective memory chip information that can identify the defective memory chip in each physical bank, the logical bank is configured so that the number of memory chips that can be accessed in parallel in each lane without using the defective memory chip is maximized. A controller that dynamically sets logical / physical bank information indicating a combination of a plurality of physical banks;
The memory system, wherein the plurality of memory controllers drive and control the chip enable signal based on logical / physical bank information set by the controller.
前記コントローラは、各物理バンク内の不良メモリチップが識別可能な不良メモリチップ情報及び各メモリチップ内の不良ブロックが識別可能な不良ブロック情報に基づき、不良メモリチップ及び不良ブロックを使用せずに各レーン内において並列アクセス可能なブロック数が最大となるように、論理バンクを構成する複数の物理バンクの組み合わせを示す論物バンク情報を動的に設定することを特徴とする請求項1に記載のメモリシステム。   The controller is based on the defective memory chip information that can identify the defective memory chip in each physical bank and the defective block information that can identify the defective block in each memory chip, without using the defective memory chip and the defective block. The logical / physical bank information indicating a combination of a plurality of physical banks constituting a logical bank is dynamically set so that the number of blocks that can be accessed in parallel in the lane is maximized. Memory system. 前記コントローラは、1レーンを構成する複数のチャネル並列動作要素から、不良メモリチップ数がより少ない物理バンク同士あるいは不良メモリチップ数がより多い物理バンク同士を順番に選択することによって前記論物バンク情報を形成することを特徴とする請求項1または2に記載のメモリシステム。   The controller selects the physical bank information by sequentially selecting physical banks having a smaller number of defective memory chips or physical banks having a larger number of defective memory chips from a plurality of channel parallel operation elements constituting one lane. The memory system according to claim 1, wherein the memory system is formed. 前記コントローラは、1レーンを構成する複数のチャネル並列動作要素から、不良ブロック数がより少ないメモリチップ同士あるいは不良ブロック数がより多いメモリチップ同士を順番に選択することによって前記論物バンク情報を形成することを特徴とする請求項2に記載のメモリシステム。   The controller forms the logical / physical bank information by sequentially selecting memory chips having a smaller number of defective blocks or memory chips having a larger number of defective blocks from a plurality of channel parallel operation elements constituting one lane. The memory system according to claim 2, wherein: 前記各メモリコントローラは、1レーンを構成する複数のチャネル並列動作要素に対して並列アクセスする複数のデータ単位に誤り訂正符号が付加されていることを特徴とする請求項1乃至4のいずれか一つに記載のメモリシステム。   5. The memory controller according to claim 1, wherein an error correction code is added to a plurality of data units accessed in parallel to a plurality of channel parallel operation elements constituting one lane. Memory system described in one. 前記コントローラは、不良ブロックが所定の閾値以上発生したメモリチップを不良と判定し、不良と判定したメモリチップに関する情報を前記不良メモリチップ情報に更新追加することを特徴とする請求項1乃至5のいずれか一つに記載のメモリシステム。   6. The controller according to claim 1, wherein the controller determines that a memory chip having a defective block equal to or greater than a predetermined threshold is defective, and updates and adds information on the memory chip determined to be defective to the defective memory chip information. The memory system according to any one of the above.
JP2011208808A 2011-09-26 2011-09-26 Memory system Withdrawn JP2013069210A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011208808A JP2013069210A (en) 2011-09-26 2011-09-26 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011208808A JP2013069210A (en) 2011-09-26 2011-09-26 Memory system

Publications (1)

Publication Number Publication Date
JP2013069210A true JP2013069210A (en) 2013-04-18

Family

ID=48474827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011208808A Withdrawn JP2013069210A (en) 2011-09-26 2011-09-26 Memory system

Country Status (1)

Country Link
JP (1) JP2013069210A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170134704A (en) * 2015-04-23 2017-12-06 후아웨이 테크놀러지 컴퍼니 리미티드 Access methods, devices and systems for extended memory

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170134704A (en) * 2015-04-23 2017-12-06 후아웨이 테크놀러지 컴퍼니 리미티드 Access methods, devices and systems for extended memory
US10545672B2 (en) 2015-04-23 2020-01-28 Huawei Technologies Co., Ltd. Method for accessing extended memory, device, and system
KR102168017B1 (en) * 2015-04-23 2020-10-20 후아웨이 테크놀러지 컴퍼니 리미티드 How to access extended memory, devices and systems
US11237728B2 (en) 2015-04-23 2022-02-01 Huawei Technologies Co., Ltd. Method for accessing extended memory, device, and system

Similar Documents

Publication Publication Date Title
US9671962B2 (en) Storage control system with data management mechanism of parity and method of operation thereof
KR101421366B1 (en) Boot partitions in memory devices and systems
US8935465B1 (en) System and method of communicating command data in a master-slave environment
US8705302B2 (en) Semiconductor memory devices having self-refresh capability
US12050809B2 (en) Multi-pass data programming in a memory sub-system having multiple dies and planes
US20210133096A1 (en) Memory system and operating method thereof
US20140032820A1 (en) Data storage apparatus, memory control method and electronic device with data storage apparatus
WO2020227293A1 (en) Dynamic data placement for collision avoidance among concurrent write streams
US20090204748A1 (en) Multi-channel flash memory system and access method
US10871919B2 (en) Memory system and wear-leveling method using the same
US20160062883A1 (en) Data storage device and operating method thereof
US20150089327A1 (en) Semiconductor memory devices and memory systems including the same
JP2012221038A (en) Memory system
KR20090024495A (en) Semiconductor memory devices and block management method thereof
US9990145B2 (en) Memory system and method for increasing read parallelism of translation pages
US20150339223A1 (en) Memory system and method
WO2020263586A1 (en) Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
US20120144134A1 (en) Nonvolatile semiconductor memory and storage device
CN113093988A (en) Memory device including memory controller
US9569117B2 (en) Memory system controlling interleaving write to memory chips
JP2013033337A (en) Information processing apparatus and semiconductor memory device
US8533549B2 (en) Memory system and computer system
US10783034B2 (en) Memory system and control method
JP2013069210A (en) Memory system
JP4710918B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141202