JP2013069210A - Memory system - Google Patents
Memory system Download PDFInfo
- 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
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
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.
本発明の一つの実施形態は、不良チップあるいは不良ブロックが発生した場合でも、並列駆動可能な組み合わせ数を最大限確保可能なメモリシステムを提供することを目的とする。 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.
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
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
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
ドライブ制御回路4は、ホスト1とNANDフラッシュ10との間でRAM20を介してデータ転送制御を行うとともに、SSD100内の各構成要素を制御する。
The
ドライブ制御回路4は、データアクセス用バス101、回路制御用バス102を備えている。回路制御用バス102には、ドライブ制御回路4全体を制御するプロセッサ104が接続されている。回路制御用バス102には、NANDフラッシュ10に記憶された各管理プログラム(FW:ファームウエア)をブートするブート用プログラムが格納されたブートROM105がROMコントローラ106を介して接続されている。
The
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
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
図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
図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
図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
レーン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
レーン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
図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 /
同様に、各チャネルにおいて、NANDフラッシュ10の各バンクからは、自身がビジー状態であるかレディ状態であるかを示すレディビジー信号RyBy0−3(RyBy00〜RyBy33)がNANDI/Fに入力されている。各チャネルの各バンクに含まれる複数のメモリチップのRyBy信号線は共通接続されている。
Similarly, in each channel, from each bank of the
レーン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
セクタデータのリードを考えた場合、図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
つぎに、レーン0コントローラ33aについて説明する。レーン1コントローラ33bも同様の構成を有している。レーン0コントローラ33aのコントローラ38aには、回路制御用バス102を介して上位のプロセッサ104からNANDフラッシュ10のレーン0を駆動制御するための制御情報が入力される。コントローラ38aは、プロセッサ104から入力される制御情報に基づいてレーン0コントローラ33aの内部構成回路を制御する。プロセッサ104から入力される制御情報には、レーン0(チャネル0及びチャネル1)のNANDフラッシュ10にアクセスするためのアクセス情報が含まれる。
Next, the
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
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
つぎに、図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
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 /
前述したように、プロセッサ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
不良チップがどのメモリチップで発生しているかを示す不良チップ情報が、製品出荷時に管理情報としてNANDフラッシュ10に登録されている。また、製品出荷後に後発的に発生した不良チップ(例えば、不良ブロックが所定の閾値以上発生したチップ)もプロセッサ104によって検出され、後発的に発生した不良チップ情報も管理情報として更新追加される。プロセッサ104は、このような不良チップ情報に基づき、並列アクセス可能な組み合わせ数を最大限確保可能な物理バンクBank0〜3の組み合わせを動的に設定する。その詳細については後述する。
Defective chip information indicating in which memory chip the defective chip is generated is registered in the
つぎに、図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,
図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
図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 (
図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
一方、図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 (
図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
図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
図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
例えば、図13の22個目の書き込み動作を例にとって、レーン0用NANDコントローラ110aの動作を説明する。
For example, taking the 22nd write operation of FIG. 13 as an example, the operation of the
(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
つぎに、プロセッサ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
決定された論理バンクと物理バンクとの対応関係を示す論物バンク情報は、管理情報として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
また、製品出荷後に後発的に発生した不良チップもプロセッサ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,
なお、図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
(26th writing operation)
Bank number = 0, Chip number = 2, and Block number = 3 are set in the CH0 access
図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
図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
これに対し、図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
この結果、図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
つぎに、プロセッサ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
決定された論理バンクと物理バンクとの対応関係を示す論物バンク情報は、管理情報として記憶登録され、新たな不良チップが発生するまでは、この論物バンク情報を用いて図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
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 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,
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170134704A (en) * | 2015-04-23 | 2017-12-06 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Access methods, devices and systems for extended memory |
-
2011
- 2011-09-26 JP JP2011208808A patent/JP2013069210A/en not_active Withdrawn
Cited By (4)
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 |