JP2019040470A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2019040470A JP2019040470A JP2017162728A JP2017162728A JP2019040470A JP 2019040470 A JP2019040470 A JP 2019040470A JP 2017162728 A JP2017162728 A JP 2017162728A JP 2017162728 A JP2017162728 A JP 2017162728A JP 2019040470 A JP2019040470 A JP 2019040470A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- memory chips
- controller
- nand
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50012—Marginal testing, e.g. race, voltage or current testing of timing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Abstract
【課題】処理能力を向上できる。【解決手段】実施形態によれば、メモリシステムは、第1バスNBUS0に接続された複数の第1メモリチップCPと、 第2バスNBUS1に接続された複数の第2メモリチップCPと、第1及び第2バスNBUS0及びNBUS1に接続され、複数の第1メモリチップのデータ読み出し速度及び/またはデータ書き込み速度の情報に基づいて、複数の第1メモリチップCPの1つを選択し、複数の第2メモリチップの情報に基づいて、複数の第2メモリチップCPの1つを選択して、書き込み動作を実行可能なコントローラ200とを含む。コントローラ200は、複数の第1メモリチップ及び複数の第2メモリチップの情報を保持するレジスタ280を含む。【選択図】図8
Description
本発明の実施形態は、メモリシステムに関する。
例えばメモリシステムとして、NAND型フラッシュメモリなどの不揮発性半導体メモリを搭載したSSD(Solid State Drive)が知られている。
処理能力を向上したメモリシステムを提供する。
実施形態に係るメモリシステムは、第1バスに接続された複数の第1メモリチップと、 第2バスに接続された複数の第2メモリチップと、第1及び第2バスに接続され、複数の第1メモリチップのデータ読み出し速度及び/またはデータ書き込み速度の情報に基づいて、複数の第1メモリチップの1つを選択し、複数の第2メモリチップの情報に基づいて、複数の第2メモリチップの1つを選択して、書き込み動作を実行可能なコントローラとを含む。コントローラは、複数の第1メモリチップ及び複数の第2メモリチップの情報を保持するレジスタを含む。
以下に、実施形態について図面を参照して説明する。図面は模式的なものである。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。参照符号を構成する文字の後の数字は、同じ文字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ文字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は同じ文字のみを含んだ参照符号により参照される。
1.第1実施形態
以下に、第1実施形態に係るメモリシステムについて説明する。なお、以下の説明では、メモリシステムがSSD(Solid State Drive)である場合を例に説明する。
以下に、第1実施形態に係るメモリシステムについて説明する。なお、以下の説明では、メモリシステムがSSD(Solid State Drive)である場合を例に説明する。
1.1 構成について
1.1.1 メモリシステムの構成について
まず、メモリシステム1の構成について、図1を用いて説明する。
1.1.1 メモリシステムの構成について
まず、メモリシステム1の構成について、図1を用いて説明する。
図1に示すように、メモリシステム1は、記憶媒体100及びコントローラ200を備えている。
記憶媒体100は、複数の独立したチップを含む。本実施形態では、チップが、三次元積層型NAND型フラッシュメモリである場合について説明する。以下、チップを「NANDチップCP」と呼ぶ。図1の例では、記憶媒体100は、16個のNANDチップCP0〜CP15を含む。なお、記憶媒体100に含まれるNANDチップ数は、任意に設定可能である。NANDチップCPは、バスNBUSを介してコントローラ200と接続される。より具体的には、NANDチップCP0、CP4、CP8、及びCP12が、バスNBUS0を介してコントローラ200のチャネルCH0に接続される。同様に、NANDチップCP1、CP5、CP9、及びCP13が、バスNBUS1を介してコントローラ200のチャネルCH1に接続され、NANDチップCP2、CP6、CP10、及びCP14が、バスNBUS2を介してコントローラ200のチャネルCH2に接続され、NANDチップCP3、CP7、CP11、及びCP15が、バスNBUS3を介してコントローラ200のチャネルCH3に接続される。なお、バスNBUSの本数及び1つのバスNBUSに接続されるNANDチップCPの個数は任意である。
コントローラ200は、ホスト機器2から命令を受け取り、受け取られた命令に基づいて記憶媒体100を制御する。具体的には、コントローラ200は、ホスト機器2から書き込み命令を受信した場合、データを記憶媒体100に書き込み、ホスト機器2から読み出し命令を受信した場合、データを記憶媒体100から読み出してホスト機器2に送信する。また、コントローラ200は、記憶媒体100のメモリ空間を管理する。
コントローラ200は、ホストインターフェイス回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェイス回路250、ECC回路260、HWタイマ270、及びHWレジスタ280を含む。コントローラ200は、例えばSoC(system on chip)であっても良い。
ホストインターフェイス回路210は、コントローラバスを介してホスト機器2と接続され、ホスト機器2との通信を司る。ホストインターフェイス回路210とホスト機器2との間のコントローラバスの例は、SATA(serial advanced technology attachment)、SAS(serial attached small computer system interface)、PCI(peripheral component interconnect) expressTMを含み、その他のバスであっても良い。ホストインターフェイス回路210は、プロセッサ230及びバッファメモリ240に、ホスト機器2から受信した命令及びデータを転送する。また、ホストインターフェイス回路210は、プロセッサ230の命令に応答して、バッファメモリ240内のデータをホスト機器2へ転送する。
NANDインターフェイス回路250は、バスNBUSを介して記憶媒体100と接続され、記憶媒体100との通信を司る。図1の例では、NANDインターフェイス回路250は、4つのチャネルCH0〜CH3を有している。そしてチャネルCH0〜CH3にバスNBUS0〜NBUS3がそれぞれ接続される。NANDインターフェイス回路250は、書き込み時には、記憶媒体100に、バッファメモリ240内の書き込みデータを転送する。更に、NANDインターフェイス回路250は、読み出し時には、バッファメモリ240に、記憶媒体100から読み出されたデータを転送する。
プロセッサ(CPU)230は、コントローラ200全体の動作を制御する。また、プロセッサ230は、ホスト機器2の命令に応じて、各種コマンドを発行し、記憶媒体100の対応するNANDチップCPに送信する。例えば、プロセッサ230は、ホスト機器2から書き込み命令を受信した際には、それに応答して、記憶媒体100の対応するNANDチップCPに書き込み命令を送信する。読み出し及び消去の際も同様である。また、プロセッサ230は、ウェアレベリング等、記憶媒体100を管理するための様々な処理を実行する。更に、プロセッサ230は、各種の演算を実行する。例えば、プロセッサ230は、データの暗号化処理やランダマイズ処理等を実行する。
また、プロセッサ230は、ホスト機器2から受信した論理アドレスと、当該論理アドレスに対応する記憶媒体100の物理アドレスとを互いに変換する。論理アドレスは、ホスト機器2からアクセス(読み出し、書き込み、消去等)を要求されたデータに付される。物理アドレスは、記憶媒体100のメモリ空間のある一部を特定する。
例えば、プロセッサ230は、ホスト機器2から読み出し命令を受信すると、記憶媒体100内に格納された論理アドレスと物理アドレスとを関連付けたテーブル(以下、「ルックアップテーブルLUT」と呼ぶ)から、対象の論理アドレスに対応する物理アドレスのデータ(以下、「論物変換データ」と呼ぶ)をRAM220に読み出す。そして、プロセッサ230は、RAM220に格納された論物変換データを用いて、論理アドレスを物理アドレスに変換した後、記憶媒体100の対応するNANDチップCPに読み出し命令を送信する。また、プロセッサ230は、ホスト機器2から書き込み命令を受信した場合、論理アドレスに対応する物理アドレスを割り当て、記憶媒体100の対応するNANDチップCPに書き込み命令を送信する。そして、プロセッサ230は、RAM220に保持されている新規に割り当てた論物変換データを記憶媒体100に送信し、ルックアップテーブルLUTを更新する。
内蔵メモリ(RAM)220は、例えばDRAM(dynamic RAM)等の半導体メモリであり、プロセッサ230の作業領域として使用される。そして内蔵メモリ220は、記憶媒体100を管理するためのファームウェアや、各種の管理テーブル等を保持する。また、RAM220は、ルックアップテーブルLUTから読み出した論物変換データ、あるいは新規に作成された論物変換データを、一時的に保持する。
バッファメモリ240は、記憶媒体100に書き込まれるデータ(書き込みデータ)、及び記憶媒体100から読み出されたデータ(読み出しデータ)等のデータを保持する。バッファメモリ240は、例えばDRAMとDRAMのコントローラ、及び/またはSRAM(static RAM)を含む。
ECC回路260は、データの誤り訂正(ECC:Error Checking and Correcting)処理を実行する。ECC回路260は、エラービット数をカウントし、ビットの不良率(以下、「ビットエラーレートBER(bit error rate)」と呼ぶ)を、HWレジスタ280に送信しても良い。
HWタイマ270は、各NANDチップCPにおけるデータの読み出し動作期間及び/またはデータの書き込み動作期間を測定する。以下、読み出し動作期間を測定した結果を「読み出し速度」と呼び、書き込み動作期間を測定した結果を「書き込み速度」と呼ぶ。より具体的には、読み出し動作及び/または書き込み動作の際、NANDチップCPから送信されるレディ/ビジー信号R/Bnがビジー状態を示す期間を測定し、その結果をHWレジスタ280に送信する。レディ/ビジー信号R/Bnについては後述する。
HWレジスタ280には、各NANDチップCPと読み出し速度情報及び/または書き込み速度情報とを関連付けるテーブルが格納されている。なお、HWレジスタ280には、各NANDチップCPとビットエラーレートBERとを関連付けるテーブルが格納されていても良い。
1.1.2 NANDチップの構成について
次に、NANDチップCPの構成について、図2を用いて説明する。なお、図2では、各ブロック間の接続の一部が矢印線で示されているが、ブロック間の接続はこれに限定されない。
次に、NANDチップCPの構成について、図2を用いて説明する。なお、図2では、各ブロック間の接続の一部が矢印線で示されているが、ブロック間の接続はこれに限定されない。
図2に示すように、NANDチップCPは、バスNBUSによってコントローラ200と接続され、コントローラ200からの命令に基づいて動作する。より具体的には、NANDチップCPは、コントローラ200と、例えば8ビットの信号DQ0〜DQ7の送受信を行う。信号DQ0〜DQ7には、例えばデータ、アドレス、及びコマンドが含まれる。また、NANDチップCPは、コントローラ200から、例えばチップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、及びリードイネーブル信号REnを受信する。そして、NANDチップCPは、コントローラ200に、レディ/ビジー信号R/Bnを送信する。
チップイネーブル信号CEnは、NANDチップCPをイネーブルにするための信号であり、例えばLow(“L”)レベルでアサートされる。コマンドラッチイネーブル信号CLEは、信号DQがコマンドであることを示す信号であり、例えばHigh(“H”)レベルでアサートされる。アドレスラッチイネーブル信号ALEは、信号DQがアドレスであることを示す信号であり、例えば“H”レベルでアサートされる。ライトイネーブル信号WEnは、受信した信号をNANDチップCP内へ取り込むための信号であり、コントローラ200よりコマンド、アドレス、及びデータ等を受信する度に、例えば“L”レベルでアサートされる。よって、WEnがトグルされる度に、信号DQがNANDチップCPに取り込まれる。リードイネーブル信号REnは、コントローラ200が、NANDチップCPからデータを読み出すための信号である。リードイネーブル信号REnは、例えば“L”レベルでアサートされる。レディ/ビジー信号R/Bnは、NANDチップCPがビジー状態であるかレディ状態であるか(コントローラ200からコマンドを受信不可能な状態か可能な状態か)を示す信号であり、例えばNANDチップCPがビジー状態の際に“L”レベルとされる。
NANDチップCPは、入出力回路10、ロジック制御回路11、ステータスレジスタ12、アドレスレジスタ13、コマンドレジスタ14、シーケンサ15、レディ/ビジー回路16、電圧発生回路17、メモリセルアレイ18、ロウデコーダ19、センスアンプ20、データレジスタ21、及びカラムデコーダ22を含む。
入出力回路10は、コントローラ200との信号DQの入出力を制御する。より具体的には、入出力回路10は、入力回路と出力回路を備える。入力回路は、コントローラ200から受信したデータDAT(書き込みデータWD)を、データレジスタ21に送信し、アドレスADDをアドレスレジスタ13に送信し、コマンドCMDをコマンドレジスタ14に送信する。出力回路は、ステータスレジスタ12から受信したステータス情報STS、データレジスタ21から受信したデータDAT(読み出しデータRD)、及びアドレスレジスタ13から受信したアドレスADDをコントローラ200に送信する。
ロジック制御回路11は、コントローラ200から例えばチップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、及びリードイネーブル信号REnを受信する。そしてロジック制御回路11は、受信した信号に応じて、入出力回路10及びシーケンサ15を制御する。
ステータスレジスタ12は、例えばデータの書き込み、読み出し、及び消去動作におけるステータス情報STSを一時的に保持し、コントローラ200に動作が正常に終了したか否かを通知する。
アドレスレジスタ13は、入出力回路10を介してコントローラ200から受信したアドレスADDを一時的に保持する。そしてアドレスレジスタ13は、ロウアドレスRAをロウデコーダ19へ転送し、カラムアドレスCAをカラムデコーダ22に転送する。
コマンドレジスタ14は、入出力回路10を介してコントローラ200から受信したコマンドCMDを一時的に保存し、シーケンサ15に転送する。
シーケンサ15は、NANDチップCP全体の動作を制御する。より具体的には、シーケンサ15は、コマンドレジスタ14が保持するコマンドCMDに応じて、例えばステータスレジスタ12、レディ/ビジー回路16、電圧発生回路17、ロウデコーダ19、センスアンプ20、データレジスタ21、及びカラムデコーダ22等を制御し、書き込み動作、読み出し動作、及び消去動作等を実行する。
レディ/ビジー回路16は、シーケンサ15の動作状況に応じて、レディ/ビジー信号R/Bnをコントローラ200に送信する。
電圧発生回路17は、シーケンサ15の制御に応じて、書き込み動作、読み出し動作、及び消去動作に必要な電圧を発生させ、この発生した電圧を例えばメモリセルアレイ18、ロウデコーダ19、及びセンスアンプ20等に供給する。ロウデコーダ19及びセンスアンプ20は、電圧発生回路17より供給された電圧をメモリセルアレイ18内のメモリセルトランジスタに印加する。
メモリセルアレイ18は、ロウ及びカラムに対応付けられた不揮発性のメモリセルトランジスタ(以下、「メモリセル」とも表記する)を含む複数のブロックBLK(BLK0、BLK1、…、BL(L−1))(Lは2以上の整数)を備えている。各々のブロックBLKは、複数のストリングユニットSU(SU0、SU1、SU2、SU3、…)を含む。そして各々のストリングユニットSUは、複数のNANDストリングSRを含む。なお、メモリセルアレイ18内のブロックBLK数及びブロックBLK内のストリングユニットSU数は任意である。メモリセルアレイ18の詳細については後述する。
ロウデコーダ19は、ロウアドレスRAをデコードする。ロウデコーダ19は、デコード結果に基づき、ブロックBLKのいずれかを選択し、更にいずれかのストリングユニットSUを選択する。そして、ロウデコーダ19は、必要な電圧をブロックBLKに印加する。
センスアンプ20は、読み出し動作のときには、メモリセルアレイ18から読み出されたデータをセンスする。そして、センスアンプ20は、読み出しデータRDをデータレジスタ21に送信する。また、センスアンプ20は、書き込み動作のときには、書き込みデータWDをメモリセルアレイ18に送信する。
データレジスタ21は、複数のラッチ回路を備える。ラッチ回路は、書き込みデータWD及び読み出しデータRDを保持する。例えば書き込み動作において、データレジスタ21は、入出力回路10から受信した書き込みデータWDを一時的に保持し、センスアンプ20に送信する。また例えば、読み出し動作において、データレジスタ21は、センスアンプ20から受信した読み出しデータRDを一時的に保持し、入出力回路10に送信する。
カラムデコーダ22は、例えば書き込み動作、読み出し動作、及び消去動作の際、カラムアドレスCAをデコードし、デコード結果に応じてデータレジスタ21内のラッチ回路を選択する。
1.1.3 メモリセルアレイの構成について
次に、メモリセルアレイ18の構成について、図3を用いて説明する。図3の例は、ブロックBLK0を示しているが、他のブロックBLKの構成も同じである。
次に、メモリセルアレイ18の構成について、図3を用いて説明する。図3の例は、ブロックBLK0を示しているが、他のブロックBLKの構成も同じである。
図3に示すように、ブロックBLK0は、例えば4つのストリングユニットSU(SU0〜SU3)を含む。そして、各々のストリングユニットSUは、複数のNANDストリングSRを含む。NANDストリングSRの各々は、例えば8個のメモリセルトランジスタMT0〜MT7、並びに選択トランジスタST1及びST2を含んでいる。以下、メモリセルトランジスタMT0〜MT7を限定しない場合は、メモリセルトランジスタMTと表記する。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。
なお、メモリセルトランジスタMTは、電荷蓄積層に絶縁膜を用いたMONOS型であっても良いし、電荷蓄積層に導電層を用いたFG型であっても良い。以下、本実施形態では、MONOS型を例として説明する。また、メモリセルトランジスタMTの個数は8個に限られず、16個や32個、64個、128個等であっても良く、その数は限定されるものではない。更に、選択トランジスタST1及びST2の個数は、任意であり、それぞれ1個以上あれば良い。
メモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。より具体的には、メモリセルトランジスタMT0〜MT7は、その電流経路が直列に接続される。そしてメモリセルトランジスタMT7のドレインは、選択トランジスタST1のソースに接続され、メモリセルトランジスタMT0のソースは、選択トランジスタST2のドレインに接続されている。
ストリングユニットSU0〜SU3の各々における選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0〜SGD3を介してロウデコーダ19に接続される。同様に、ストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、それぞれ選択ゲート線SGS0〜SGS3を介してロウデコーダ19に接続される。以下、選択ゲート線SGD0〜SGD3を限定しない場合は、選択ゲート線SGDと表記する。選択ゲート線SGS0〜SGS3を限定しない場合は、選択ゲート線SGSと表記する。なお、各ストリングユニットSUの選択ゲート線SGS0〜SGS3は共通に接続されても良い。
ブロックBLK内にあるメモリセルトランジスタMT0〜MT7の制御ゲートは、それぞれワード線WL0〜WL7に共通接続される。ワード線WL0〜WL7はロウデコーダ19に接続される。以下、ワード線WL0〜WL7を限定しない場合は、ワード線WLと表記する。
ストリングユニットSU内にある各NANDストリングSRの選択トランジスタST1のドレインは、それぞれ異なるビット線BL0〜BL(N−1)(Nは2以上の整数)に接続される。以下、ビット線BL0〜BL(N−1)を限定しない場合は、ビット線BLと表記する。各ビット線BLは、センスアンプ20に接続される。各ビット線BLは、複数のブロックBLK間で各ストリングユニットSU内にある1つのNANDストリングSRを共通に接続する。更に、複数の選択トランジスタST2のソースは、ソース線SLに共通に接続されている。つまり、ストリングユニットSUは、異なるビット線BLに接続され、且つ同一の選択ゲート線SGD及びSGSに接続されたNANDストリングSRの集合体である。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUの集合体である。そしてメモリセルアレイ18は、ビット線BLを共通にする複数のブロックBLKの集合体である。
データの書き込み及び読み出しは、いずれかのストリングユニットSUにおけるいずれかのワード線WLに接続されたメモリセルトランジスタMTに対して、一括して行われる。以下、データの書き込み及び読み出しの際、一括して選択されるメモリセルトランジスタMTの群を「メモリセルグループMCG」と呼ぶ。そして、1つのメモリセルグループMCGに書き込まれる、または読み出される各メモリセルトランジスタMTの1ビットのデータの集まりを「ページ」と呼ぶ。
1.1.4 メモリセルアレイの断面構成について
次に、メモリセルアレイ18の断面構成について、図4を用いて説明する。図4の例は、ストリングユニットSU0及びSU1の断面を示しており、ストリングユニットSU2及びSU3の構成も同様である。なお、図4において、層間絶縁膜は省略されている。
次に、メモリセルアレイ18の断面構成について、図4を用いて説明する。図4の例は、ストリングユニットSU0及びSU1の断面を示しており、ストリングユニットSU2及びSU3の構成も同様である。なお、図4において、層間絶縁膜は省略されている。
図4に示すように、半導体基板30に平行な第1方向D1に沿って、半導体基板30に平行で第1方向D1に垂直な第2方向D2に延びる複数のソース線コンタクトLIが設けられている。2つのソース線コンタクトLIの間には、1つのストリングユニットSUが配置されている。ソース線コンタクトLIは、半導体基板30とNANDストリングSRよりも上方に設けられる図示せぬソース線SLとを接続する。なお、ソース線コンタクトLI及びNANDストリングSRの配置は任意に設定可能である。例えば2つのソース線コンタクトLIの間に複数のストリングユニットSUが設けられても良い。更に図4の例では、説明を簡略化するために1つのストリングユニットSUにおいて、複数のNANDストリングSRが、第2方向D2に沿って1列に配列されている場合を示しているが、1つのストリングユニットSUにおけるNANDストリングSRの配列は任意に設定可能である。例えば、第2方向D2に沿って、2列並行に配置されても良く、4列の千鳥配置に配列されても良い。
各ストリングユニットSUにおいて、NANDストリングSRは、半導体基板30に垂直な第3方向D3に沿って形成されている。より具体的には、半導体基板30の表面領域には、n型ウェル31が設けられている。そして、n型ウェル31の表面領域には、p型ウェル32が設けられている。また、p型ウェル32の表面領域の一部には、n+型拡散層33が設けられている。そしてp型ウェル32の上方には、選択ゲート線SGS、ワード線WL、及び選択ゲート線SGDとして機能する10層の配線層34が、それぞれ図示せぬ層間絶縁膜を介して順次積層されている。
そして、10層の配線層34を貫通してp型ウェル32に達するピラー状の半導体層35が形成されている。半導体層35の側面には、トンネル絶縁膜36、電荷蓄積層37、及びブロック絶縁膜38が順次形成される。半導体層35には、例えば多結晶シリコンが用いられる。トンネル絶縁膜36及びブロック絶縁膜38には、例えばシリコン酸化膜が用いられる。電荷蓄積層37には、例えばシリコン窒化膜が用いられる。以下、半導体層35、トンネル絶縁膜36、電荷蓄積層37、及びブロック絶縁膜38によって形成されるピラーを「メモリピラーMP」と呼ぶ。半導体層35は、NANDストリングSRの電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして半導体層35の上端は、ビット線BLとして機能する配線層(不図示)に接続される。メモリピラーMPと配線層34とにより、メモリセルトランジスタMT、並びに選択トランジスタST1及びST2が形成される。
図4の例では、メモリピラーMPの上面(開口部)の直径は、半導体基板30に接する底面の直径よりも大きい。そしてメモリピラーMPの側面は、半導体基板30の平面に対して傾斜角度が90度以下となっている(以下、このような形状を「テーパー形状」と呼ぶ)。このような場合、メモリピラーMPの形状に応じて、配線層34(レイヤ)毎にメモリセルトランジスタMT(MT0〜MT7)のセルサイズが異なる。より具体的には、図4の例では、メモリセルトランジスタMT0のセルサイズが最も小さく、メモリセルトランジスタMT7のセルサイズが最も大きくなる。
セルサイズが異なると、例えば、1回のプログラムによるメモリセルトランジスタMTの閾値電圧の変動量が異なる場合がある。図4の例では、上層に位置するメモリセルトランジスタMTほど、1回のプログラムによる閾値電圧の変動量が大きくなる。1回のプログラムによる閾値電圧の変動量が大きくなると、閾値電圧をターゲットレベルまで上昇されるのに必要なプログラム回数が少なるため、書き込み動作の期間が短くなる。すなわち、書き込み速度が速くなる。
なお、メモリピラーMPの形状はテーパー形状に限定されない。例えば、メモリピラーMPは、上面から底面まで直径が同じ円柱形状をしていても良く、底面の直径が上面の直径よりも大きくても良い。
更に、図4の例では、選択ゲート線SGD及びSGSとして機能する配線層34は、それぞれ1層設けられているが、複数層設けられても良い。
ソース線コンタクトLIは、第2方向D2に沿ってライン形状を有する。ソース線コンタクトLIには、例えば多結晶シリコンが用いられる。そしてソース線コンタクトLIの底面はn+型拡散層33に接続され、上面はソース線SLとして機能する配線層(不図示)に接続される。
1.2 読み出し動作について
次に、読み出し動作について説明する。
次に、読み出し動作について説明する。
1.2.1 メモリシステムにおける読み出し動作の全体の流れについて
まず、メモリシステム1における読み出し動作の全体の流れについて、図5を用いて説明する。
まず、メモリシステム1における読み出し動作の全体の流れについて、図5を用いて説明する。
図5に示すように、まずコントローラ200は、ホスト機器2から読み出し命令を受信する(ステップS101)
コントローラ200は、読み出し命令で要求された論理アドレスに基づいて、対応するNANDチップCPを選択する(ステップS102)。より具体的には、コントローラ200は、記憶媒体100内のルックアップテーブルLUTを参照して、対象の論理アドレスに関する論物変換データを読み出す。次にコントローラ200は、対象の論理アドレスを物理アドレスに変換する。そして、コントローラ200は、変換された物理アドレスに対応するチャネルCHとNANDチップCPを選択して、読み出し命令を選択NANDチップCPに送信する。以下、選択されたNANDチップCPを、「選択NANDチップCP」と表記する。
コントローラ200は、読み出し命令で要求された論理アドレスに基づいて、対応するNANDチップCPを選択する(ステップS102)。より具体的には、コントローラ200は、記憶媒体100内のルックアップテーブルLUTを参照して、対象の論理アドレスに関する論物変換データを読み出す。次にコントローラ200は、対象の論理アドレスを物理アドレスに変換する。そして、コントローラ200は、変換された物理アドレスに対応するチャネルCHとNANDチップCPを選択して、読み出し命令を選択NANDチップCPに送信する。以下、選択されたNANDチップCPを、「選択NANDチップCP」と表記する。
選択NANDチップCPは、コントローラ200から読み出し命令を受信すると、読み出し動作を実行する(ステップS103)。選択NANDチップCPは、読み出し動作を実行している間、コントローラ200に、“L”レベルのレディ/ビジー信号R/Bnを送信する。
コントローラ200のHWタイマ270は、レディ/ビジー信号R/Bnが“L”レベルとされている期間(読み出し速度)を測定する(ステップS104)。
HWタイマ270は、読み出し速度の測定結果をHWレジスタ280に送信する。HWレジスタ280は、HWタイマ270から受信した読み出し速度の測定結果に基づいて、対応するNANDチップCPの読み出し速度情報を更新する(ステップS105)。
1.2.2 読み出し動作における各種信号の送受信について
次に、読み出し動作における各種信号の送受信について、図6を用いて説明する。図6は、読み出し動作時にコントローラ200とNANDチップCPとの間で送受信される各種信号のタイミングチャートである。なお、図6の例では、ルックアップテーブルLUT参照後の読み出し動作における信号の送受信が示されている。
次に、読み出し動作における各種信号の送受信について、図6を用いて説明する。図6は、読み出し動作時にコントローラ200とNANDチップCPとの間で送受信される各種信号のタイミングチャートである。なお、図6の例では、ルックアップテーブルLUT参照後の読み出し動作における信号の送受信が示されている。
図6に示すように、まず、コントローラ200は、選択NANDチップCPのチャネルCHを選択し、選択NANDチップCPのチップイネーブル信号CEnを“L”レベルにしてアサートする。より具体的には、例えば、各チャネルCHにおいて、対応する4つのNANDチップCPは、それぞれ異なる信号線を介してコントローラ200からチップイネーブル信号CEnを受信する。コントローラ200は、選択NANDチップCPに接続された信号線に対応するチップイネーブル信号CEnを“L”レベルにしてアサートする。
次に、コントローラ200は、ライトイネーブル信号WEnをトグルし、読み出しを実行することを通知するコマンド“00h”をNANDチップCPに送信するとともに、コマンドラッチイネーブル信号CLEを“H”レベルにしてアサートする。
次に、コントローラ200は、ライトイネーブル信号WEnをトグルし、アドレスADDを送信すると共に、アドレスラッチイネーブル信号ALEを“H”レベルにしてアサートする。図6の例では、カラムアドレスCAを2サイクル送信した後、ロウアドレスRAを3サイクル送信する場合を示しているが、カラムアドレスCA及びロウアドレスRAのサイクルは任意に設定可能である。
次に、コントローラ200は、ライトイネーブル信号WEnをトグルし、読み出しの実行を指示するリードコマンド“30h”を送信すると共に、コマンドラッチイネーブル信号CLEを“H”レベルにしてアサートする。
NANDチップCPは、リードコマンド“30h”に応じて、読み出しを開始する。このとき、レディ/ビジー信号R/Bnは、“L”レベル(ビジー状態)とされる。NANDチップCP内のセンスアンプ20は、メモリセルアレイ18からデータを読み出し、データレジスタ21に転送する。そして、データレジスタ21へのデータの転送が終了すると、レディ/ビジー信号R/Bnは、“H”レベル(レディ状態)とされる。以下、読み出し動作において、レディ/ビジー信号R/Bnが“L”レベルとされる期間を「期間tR」と表記する。読み出し速度情報を更新する場合、コントローラ200のHWタイマ270は、期間tRを測定し、その結果をHWレジスタ280に送信する。HWレジスタ280では、期間tRの測定結果が、読み出し速度情報として、NANDチップCP毎に格納される。
また、コントローラ200は、レディ/ビジー信号R/Bnが“H”レベル(レディ状態)に復帰したのを確認すると、リードイネーブル信号REnを“L”レベルにしてアサートする。NANDチップCPは、トグルされるリードイネーブル信号REnに基づいて、コントローラ200に読み出しデータRDを送信する。なお、コントローラ200は、期間tR後、データレジスタ21からコントローラ200へのデータ読み出しを命令するキャッシュ読み出し命令をNANDチップCPに送信した後、リードイネーブル信号REnを“L”レベルにしてアサートしても良い。
1.3 書き込み動作について
次に、書き込み動作について説明する。本実施形態では、3種類のデータに対応する3つの書き込み動作について説明する。3つの書き込み動作は、記憶媒体100におけるNANDチップCPの選択方法がそれぞれ異なり、NANDチップCPにおける書き込み動作は同じである。
次に、書き込み動作について説明する。本実施形態では、3種類のデータに対応する3つの書き込み動作について説明する。3つの書き込み動作は、記憶媒体100におけるNANDチップCPの選択方法がそれぞれ異なり、NANDチップCPにおける書き込み動作は同じである。
1つ目は、ホスト機器2から受信したデータ(以下、「ユーザデータ」と呼ぶ)を書き込む動作(以下、「通常の書き込み」と呼ぶ)である。この場合、メモリシステム1は、ホスト機器から受信した書き込み命令に基づいて、書き込み動作を実行する。ECC回路260は、ユーザデータに対して、一定のデータサイズ毎(以下、「ECCフレームサイズ毎」と呼ぶ)にECCデータを付与する。そして、記憶媒体100には、ユーザデータと付与されたECCデータとが書き込まれる。通常の書き込みでは、コントローラ200は、各チャネルCHのNANDチップCPを順番に選択する。より具体的には、例えば、コントローラ200は、チャネルCH0のNANDチップCP0、チャネルCH1のNANDチップCP1、チャネルCH2のNANDチップCP2、チャネルCH3のNANDチップCP3、チャネルCH0のNANDチップCP4、…、チャネルCH3のNANDチップCP15の順に選択する。
2つ目は、記憶媒体100のルックアップテーブルLUTに更新された論物変換データを書き込む動作(以下「LUT書き込み」と呼ぶ)である。コントローラ200は、通常の書き込み動作に対応して、論物変換データを更新し、RAM220に一時的に格納する。そして、RAM220内の更新された論物変換データが一定のデータサイズ(例えばページサイズ)になると、コントローラ200は、ルックアップテーブルLUTの書き込み動作を実行する。LUT書き込みでは、ユーザデータを除く参照頻度が比較的高いデータが書き込まれる。このため、コントローラ200は、読み出し速度情報及び/または書き込み速度情報に基づいて各チャネルCHの読み出し速度及び/または書き込み速度の速いNANDチップCPを選択して書き込みを実行する。なお、LUT書き込みの対象となるデータは、論物変換データに限定されず、ユーザデータを除いた参照頻度が比較的高いデータであれば良い。
3つ目は、復旧用システムデータまたはパリティデータを書き込む動作(以下、「パリティ書き込み」と呼ぶ)である。復旧用システムデータは、例えば電源遮断等のトラブルに備えて記憶されるデータであり、記憶媒体100の使用状況(例えば、書き込み済みのアドレス等)についての情報が含まれる。このため、復旧用システムデータは、定期的、またはホスト機器2の要求により記憶(不揮発化)される。復旧用システムデータは、電源遮断等のトラブルが無ければ使用されないため、参照頻度が低い。図7に示すように、パリティデータは、ユーザデータの複数のECCフレームサイズに含まれる1部のデータを用いて作成される。パリティデータは、読み出し動作において1つのECCフレームサイズに対して付与されたECCデータではECC処理ができなかった場合に使用される。このため、パリティデータは、参照頻度が低い。パリティ書き込みではユーザデータを除く参照頻度が比較的低いデータが書き込まれる。このため、コントローラ200は、読み出し速度情報及び/または書き込み速度情報に基づいて各チャネルCHの読み出し速度及び/または書き込み速度の遅いチップを選択して書き込みを実行する。なお、パリティ書き込みの対象となるデータは、復旧用システムデータ及びパリティデータに限定されず、ユーザデータを除いた参照頻度が比較的低いデータであれば良い。
1.3.1 メモリシステムにおける書き込み動作の全体の流れについて
次に、メモリシステム1における書き込み動作の全体の流れについて、図8を用いて説明する。図8の例では、読み出し速度情報を参照してNANDチップCPが選択される場合を示している。この場合、書き込み速度情報の更新が省略されている。
次に、メモリシステム1における書き込み動作の全体の流れについて、図8を用いて説明する。図8の例では、読み出し速度情報を参照してNANDチップCPが選択される場合を示している。この場合、書き込み速度情報の更新が省略されている。
図8に示すように、メモリシステム1は、例えばホスト機器2からの書き込み命令に基づいて、書き込み動作を開始する(ステップS201)。より具体的には、ホスト機器2から書き込み命令を受信した場合、通常の書き込みが開始される。また、更新された論物変換データの書き込みが必要とコントローラ200が判断した場合、LUT書き込みが開始される。更に、復旧用システムデータのバックアップが必要とコントローラ200が判断した場合、また、通常の書き込みにともないパリティデータが発生した場合、パリティ書き込みが開始される。
LUT書き込みの場合(ステップS202_Yes)、コントローラ200は、読み出し速度情報を参照して(ステップS205)、各チャネルCHの読み出し速度が速いNANDチップCPを選択する(ステップS206)。
コントローラ200は、例えばチャネルCH0〜CH3の順に、各選択NANDチップCPに書き込み命令を送信する。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS207)。
パリティ書き込みの場合(ステップS202_No、ステップS203_Yes)、コントローラ200は、読み出し速度情報を参照して(ステップS208)、各チャネルCHの読み出し速度が遅いNANDチップCPを選択する(ステップS209)。
コントローラ200は、例えばチャネルCH0〜CH3の順に、各選択NANDチップCPに書き込み命令を送信する。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS210)。
LUT書き込み及びパリティ書き込みではない場合(ステップS202_No、ステップS203_No)、通常の書き込み動作が実行される(ステップS204)。
1.3.2 書き込み動作における各種信号の送受信について
次に、書き込み動作における各種信号の送受信について、図9を用いて説明する。図9は、書き込み動作時にコントローラ200とNANDチップCPとの間で送受信される各種信号のタイミングチャートである。
次に、書き込み動作における各種信号の送受信について、図9を用いて説明する。図9は、書き込み動作時にコントローラ200とNANDチップCPとの間で送受信される各種信号のタイミングチャートである。
図9に示すように、まず、コントローラ200は、選択NANDチップCPのチャネルCHを選択し、選択NANDチップCPのチップイネーブル信号CEnを“L”レベルにしてアサートする。より具体的には、例えば、各チャネルCHにおいて、対応する4つのNANDチップCPは、それぞれ異なる信号線を介してコントローラ200からチップイネーブル信号CEnを受信する。コントローラ200は、選択NANDチップCPに接続された信号線に対応するチップイネーブル信号CEnを“L”レベルにしてアサートする。
次に、コントローラ200は、ライトイネーブル信号WEnをトグルし、書き込み動作を実行することを通知するコマンド“80h”を記憶媒体100に送信するとともに、コマンドラッチイネーブル信号CLEを“H”レベルにしてアサートする。
次に、コントローラ200は、ライトイネーブル信号WEnをトグルし、アドレス“ADD”を送信すると共に、アドレスラッチイネーブル信号ALEを“H”レベルにしてアサートする。なお、図9の例では、カラムアドレスCAを2サイクル送信した後、ロウアドレスRAを3サイクル送信する場合を示しているが、カラムアドレス及びロウアドレスのサイクルは任意に設定可能である。
次に、コントローラ200は、ライトイネーブル信号WEnをトグルするとともに、書き込みデータWDを必要なサイクル数送信する。
更に、コントローラ200は、ライトイネーブル信号WEnをトグルし、書き込み実行を指示するライトコマンド“10h”を送信すると共に、コマンドラッチイネーブル信号CLEを“H”レベルにしてアサートする。ライトコマンド“10h”に応答して、NANDチップCPは、書き込み動作を開始し、ビジー状態となる(R/Bn=“L”)。そして、メモリセルアレイ18への書き込みが終了すると、レディ/ビジー信号R/Bnは“H”レベルとされる。以下、書き込み動作において、レディ/ビジー信号R/Bnが“L”レベルとされる期間を「期間tPROG」と表記する。書き込み速度情報を更新する場合、コントローラ200のHWタイマ270は、期間tPROGを測定し、その結果をHWレジスタ280に送信する。HWレジスタ280では、期間tPROGの測定結果が、書き込み速度情報として、NANDチップCP毎に格納される。
1.3.3 NANDチップにおける書き込み動作について
次に、NANDチップにおける書き込み動作について説明する。NANDチップCPにおける書き込み動作は、大まかにはプログラムとベリファイとを含む。プログラムは、電子を電荷蓄積層に注入することにより閾値電圧を上昇させる(または注入を禁止することで閾値電圧を維持させる)動作のことである。また、ベリファイは、プログラムの後、データを読み出し、メモリセルトランジスタMTの閾値電圧が目標とするターゲットレベルに達したか否かを判定する動作である。そして、プログラムとベリファイとの組み合わせ(以下、「プログラムループ」と呼ぶ)を繰り返すことで、メモリセルトランジスタMTの閾値電圧がターゲットレベルまで上昇される。従って、書き込み速度が速くなると、より少ないループ回数で、閾値電圧がターゲットレベルまで達するようになる。このため、書き込み速度が速い場合、書き込み動作の期間tPROGは短くなる。
次に、NANDチップにおける書き込み動作について説明する。NANDチップCPにおける書き込み動作は、大まかにはプログラムとベリファイとを含む。プログラムは、電子を電荷蓄積層に注入することにより閾値電圧を上昇させる(または注入を禁止することで閾値電圧を維持させる)動作のことである。また、ベリファイは、プログラムの後、データを読み出し、メモリセルトランジスタMTの閾値電圧が目標とするターゲットレベルに達したか否かを判定する動作である。そして、プログラムとベリファイとの組み合わせ(以下、「プログラムループ」と呼ぶ)を繰り返すことで、メモリセルトランジスタMTの閾値電圧がターゲットレベルまで上昇される。従って、書き込み速度が速くなると、より少ないループ回数で、閾値電圧がターゲットレベルまで達するようになる。このため、書き込み速度が速い場合、書き込み動作の期間tPROGは短くなる。
1.4 各書き込み動作におけるNANDチップ選択の具体例について
次に、各書き込み動作におけるNANDチップ選択の具体例について説明する。
次に、各書き込み動作におけるNANDチップ選択の具体例について説明する。
1.4.1 LUT書き込みの例について
まず、LUT書き込みの場合のNANDチップCPの選択の例について、図10を用いて説明する。図10の例は、読み出し速度情報に基づいてNANDチップCPを選択する場合を示している。なお、図10の例では、HWレジスタ280内に、読み出し速度情報として、各チャネルCHにおけるNANDチップCPの読み出し速度の順位(参照符号“順位”)が、各NANDチップCPに対応して格納されている場合を示している。
まず、LUT書き込みの場合のNANDチップCPの選択の例について、図10を用いて説明する。図10の例は、読み出し速度情報に基づいてNANDチップCPを選択する場合を示している。なお、図10の例では、HWレジスタ280内に、読み出し速度情報として、各チャネルCHにおけるNANDチップCPの読み出し速度の順位(参照符号“順位”)が、各NANDチップCPに対応して格納されている場合を示している。
図10に示すように、コントローラ200のHWレジスタ280には、各NANDチップCPの読み出し速度情報が格納されている。そして、LUT書き込みの場合、プロセッサ230は、HWレジスタ280の読み出し速度情報を参照し、各チャネルCHにおいて読み出し速度が速い、すなわち読み出し速度の順位が1番のNANDチップCPを選択する。図10の例では、選択されたNANDチップCP(及び対応する順位)が斜線のハッチングで示されており、チャネルCH0のNANDチップCP4、チャネルCH1のNANDチップCP13、チャネルCH2のNANDチップCP2、及びチャネルCH3のNANDチップCP7が選択される。LUT書き込みの場合、他のNANDチップCPは使用されず、この4つのNANDチップCPが使用される。この結果、NANDチップCP4、CP13、CP2、及びCP7によるループがチップインターリーブの単位となる。例えば、NANDチップCP4、CP13、CP2、及びCP7内の1つのブロックBLKがLUT書き込みにそれぞれ割り当てられる。コントローラ200は、NANDチップCP4、CP13、CP2、及びCP7の順に選択を繰り返しながら、論物変換データ、すなわちユーザデータを除いた参照頻度が比較的高いデータを各NANDチップCPのメモリセルアレイ18に格納する。
1.4.2 パリティ書き込みの例について
次に、パリティ書き込みの場合のNANDチップCPの選択の例について、図11を用いて説明する。図11の例は、図10の例と同様に、読み出し速度情報に基づいてNANDチップCPを選択する場合を示している。
次に、パリティ書き込みの場合のNANDチップCPの選択の例について、図11を用いて説明する。図11の例は、図10の例と同様に、読み出し速度情報に基づいてNANDチップCPを選択する場合を示している。
図11に示すように、パリティ書き込みの場合、プロセッサ230は、HWレジスタ280の読み出し速度情報を参照し、各チャネルCHにおいて読み出し速度が遅い、すなわち読み出し速度の順位が4番のNANDチップCPを選択する。図11の例では、選択されたNANDチップCP(及び対応する順位)が斜線のハッチングで示されており、チャネルCH0のNANDチップCP12、チャネルCH1のNANDチップCP5、チャネルCH2のNANDチップCP10、及びチャネルCH3のNANDチップCP3が選択される。パリティ書き込みの場合、他のNANDチップCPは使用されず、この4つのNANDチップCPが使用される。この結果、NANDチップCP12、CP5、CP10、及びCP3によるループがチップインターリーブの単位となる。例えば、NANDチップCP12、CP5、CP10、及びCP3内の1つのブロックBLKがパリティ書き込みにそれぞれ割り当てられる。コントローラ200は、NANDチップCP12、CP5、CP10、及びCP3の順に選択を繰り返しながら、復旧用システムデータまたはパリティデータ、すなわちユーザデータを除いた参照頻度が比較的低いデータを各NANDチップCPのメモリセルアレイ18に格納する。
1.4.3 通常の書き込みの例について
次に、通常の書き込みの場合のNANDチップCPの選択の例について、図12を用いて説明する。
次に、通常の書き込みの場合のNANDチップCPの選択の例について、図12を用いて説明する。
図12に示すように、通常の書き込みの場合、プロセッサ230は、HWレジスタ280の読み出し速度情報を参照せずに、NANDチップCPを順次選択する。図12の例では、コントローラ200は、チャネルCH0のNANDチップCP0、チャネルCH1のNANDチップCP1、チャネルCH2のNANDチップCP2、チャネルCH3のNANDチップCP3、チャネルCH0のNANDチップCP4、…、チャネルCH3のNANDチップCP15の順に選択を繰り返しながら、ユーザデータを各NANDチップCPのメモリセルアレイ18に格納する。
1.5 本実施形態に係る効果について
本実施形態に係る構成であれば、メモリシステムの処理能力を向上できる。以下、本効果について詳述する。
本実施形態に係る構成であれば、メモリシステムの処理能力を向上できる。以下、本効果について詳述する。
記憶媒体として複数のNANDチップを有するメモリシステムにおいては、例えば、レイアウト等の設計起因、製造起因、または、書き込み/消去の繰り返しによる特性の劣化等によるバラつきにより、NANDチップ間で読み出し速度及び/または書き込み速度が異なる場合がある。
そこで、本実施形態に係る構成は、読み出し速度を測定するHWタイマ270及び各NANDチップCPの読み出し速度情報を保持可能なHWレジスタ280を備える。そして、参照頻度が比較的高いデータは、読み出し速度が比較的速いNANDチップCPに書き込み、参照頻度が比較的低いデータは、読み出し速度が比較的遅いNANDチップCPに書き込むことができる。これにより、書き込み動作及び読み出し動作の効率を改善できる。従って、メモリシステムの処理能力を向上できる。
2.第2実施形態
次に、第2実施形態について説明する。第2実施形態では、書き込み速度を測定する場合について説明する。以下、第1実施形態と異なる点についてのみ説明する。
次に、第2実施形態について説明する。第2実施形態では、書き込み速度を測定する場合について説明する。以下、第1実施形態と異なる点についてのみ説明する。
2.1 メモリシステムにおける書き込み動作の全体の流れについて
メモリシステム1における書き込み動作の全体の流れについて、図13を用いて説明する。
メモリシステム1における書き込み動作の全体の流れについて、図13を用いて説明する。
図13に示すように、LUT書き込みの場合(ステップS202_Yes)、コントローラ200は、書き込み速度情報を参照して(ステップS222)、各チャネルCHにおいて書き込み速度が速いNANDチップCPを選択する(ステップS223)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS224)。
パリティ書き込みの場合(ステップS202_No、ステップS203_Yes)、コントローラ200は、書き込み速度情報を参照して(ステップS225)、各チャネルCHにおいて書き込み速度が遅いNANDチップCPを選択する(ステップS226)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS227)。
LUT書き込み及びパリティ書き込みではない場合(ステップS202_No、ステップS203_No)、通常の書き込み動作が実行される(ステップS204)。
選択NANDチップCPが書き込み動作を実行している間(ステップS204、S224、またはS227)、HWタイマ270は、書き込み動作の期間tPROG(書き込み速度)を測定する(ステップS220)。
HWレジスタ280は、HWタイマ270から受信した書き込み速度の測定結果に基づいて、対応するNANDチップCPの書き込み速度情報を更新する(ステップS221)。
なお、LUT書き込みでは、論物変換データに限定されず、書き込み頻度が高いなどの理由で速いNANDチップCPに書くことによって書き込み性能の向上が見込めるデータが書き込まれても良い。また、パリティ書き込みでは、復旧用システムデータまたはパリティデータに限定されず、書き込み頻度が低いなどの理由で速いNANDチップCPに書いても書き込み性能向上がそれほど見込めないデータが書き込まれても良い。
2.2 本実施形態に係る効果について
本実施形態に係る構成であれば、第1実施形態と同様の効果が得られる。より具体的には、書き込み速度を測定するHWタイマ270及び各NANDチップCPの書き込み速度情報を保持可能なHWレジスタ280を備える。そして、参照頻度が比較的高いデータ、または書き込み頻度が高いなどの理由で速いNANDチップCPに書くことによって書き込み性能の向上が見込めるデータは、書き込み速度が比較的速いNANDチップCPに書き込み、参照頻度が比較的低いデータ、または書き込み頻度が低いなどの理由で速いNANDチップCPに書いても書き込み性能向上がそれほど見込めないデータは、書き込み速度が比較的遅いNANDチップCPに書き込むことができる。これにより、書き込み動作及び読み出し動作の効率を改善できる。従って、メモリシステムの処理能力を向上できる。
本実施形態に係る構成であれば、第1実施形態と同様の効果が得られる。より具体的には、書き込み速度を測定するHWタイマ270及び各NANDチップCPの書き込み速度情報を保持可能なHWレジスタ280を備える。そして、参照頻度が比較的高いデータ、または書き込み頻度が高いなどの理由で速いNANDチップCPに書くことによって書き込み性能の向上が見込めるデータは、書き込み速度が比較的速いNANDチップCPに書き込み、参照頻度が比較的低いデータ、または書き込み頻度が低いなどの理由で速いNANDチップCPに書いても書き込み性能向上がそれほど見込めないデータは、書き込み速度が比較的遅いNANDチップCPに書き込むことができる。これにより、書き込み動作及び読み出し動作の効率を改善できる。従って、メモリシステムの処理能力を向上できる。
3.第3実施形態
次に、第3実施形態について説明する。第3実施形態では、HWレジスタ280に製造時に測定された読み出し速度情報及び/または書き込み速度情報が格納されている場合について説明する。なお、本実施形態では、読み出し速度及び/または書き込み速度を測定するためのHWタイマ270は廃されている。以下、第1及び第2実施形態と異なる点についてのみ説明する。
次に、第3実施形態について説明する。第3実施形態では、HWレジスタ280に製造時に測定された読み出し速度情報及び/または書き込み速度情報が格納されている場合について説明する。なお、本実施形態では、読み出し速度及び/または書き込み速度を測定するためのHWタイマ270は廃されている。以下、第1及び第2実施形態と異なる点についてのみ説明する。
3.1 メモリシステムにおける読み出し動作の全体の流れについて
まず、メモリシステム1における読み出し動作の全体の流れについて、図14を用いて説明する。
まず、メモリシステム1における読み出し動作の全体の流れについて、図14を用いて説明する。
図14に示すように、第1実施形態の図5と異なる点は、読み出し速度情報を更新するためのステップS104及びS105が廃されている点である。
3.2 メモリシステムにおける書き込み動作の全体の流れについて
次に、メモリシステム1における書き込み動作の全体の流れについて、図15を用いて説明する。なお、図15の例は、読み出し速度情報に基づいてNANDチップCPを選択する場合を示しているが、書き込み速度情報、または読み出し速度情報及び書き込み速度情報の両方、に基づいてNANDチップCPを選択しても良い。
次に、メモリシステム1における書き込み動作の全体の流れについて、図15を用いて説明する。なお、図15の例は、読み出し速度情報に基づいてNANDチップCPを選択する場合を示しているが、書き込み速度情報、または読み出し速度情報及び書き込み速度情報の両方、に基づいてNANDチップCPを選択しても良い。
図15に示すように、LUT書き込みの場合(ステップS202_Yes)、コントローラ200は、製造時に測定された読み出し速度情報を参照して(ステップS230)、各チャネルCHにおいて読み出し速度が速いNANDチップCPを選択する(ステップS206)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS207)。
パリティ書き込みの場合(ステップS202_No、ステップS203_Yes)、コントローラ200は、製造時に測定された読み出し速度情報を参照して(ステップS231)、各チャネルCHにおいて読み出し速度が遅いNANDチップCPを選択する(ステップS209)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS210)。
ステップS204の通常の書き込み動作は、第1実施形態と同じである。
なお、本実施形態では、HWレジスタ280内の読み出し速度情報を参照する場合について説明したが、HWレジスタ280を廃しても良い。そして、HWレジスタ280に読み出し速度情報を格納する代わりに、読み出し速度情報に基づいてコントローラ200に実装されたeFuseを出荷時にカットしておき、これに基づいてNANDチップCPが選択されても良い。
3.3 本実施形態に係る効果について
本実施形態に係る構成であれば、第1及び第2実施形態と同様の効果が得られる。
本実施形態に係る構成であれば、第1及び第2実施形態と同様の効果が得られる。
4.第4実施形態
次に、第4実施形態について説明する。第4実施形態では、HWレジスタ280に、各NANDチップCPのブロックBLK毎に、読み出し速度情報及び/または書き込み速度情報が格納され、読み出し速度及び/または書き込み速度が速いブロックBLKが含まれるNANDチップCPが選択される場合を示す。以下、第1乃至第3実施形態と異なる点についてのみ説明する。
次に、第4実施形態について説明する。第4実施形態では、HWレジスタ280に、各NANDチップCPのブロックBLK毎に、読み出し速度情報及び/または書き込み速度情報が格納され、読み出し速度及び/または書き込み速度が速いブロックBLKが含まれるNANDチップCPが選択される場合を示す。以下、第1乃至第3実施形態と異なる点についてのみ説明する。
4.1 メモリシステムにおける書き込み動作の全体の流れについて
メモリシステム1における書き込み動作の全体の流れについて、図16を用いて説明する。なお、図16の例は、読み出し速度情報に基づいてブロックBLKを選択する場合を示す。
メモリシステム1における書き込み動作の全体の流れについて、図16を用いて説明する。なお、図16の例は、読み出し速度情報に基づいてブロックBLKを選択する場合を示す。
図16に示すように、LUT書き込みの場合(ステップS202_Yes)、コントローラ200は、各ブロックBLKの読み出し速度情報を参照して(ステップS240)、各チャネルCHにおいて読み出し速度が速いブロックBLKが含まれるNANDチップCPを選択する(ステップS241)。そして、選択NANDチップCPは、書き込み命令に基づいて、読み出し速度が速いブロックBLKに、書き込み動作を実行する(ステップS242)。
パリティ書き込みの場合(ステップS202_No、ステップS203_Yes)、コントローラ200は、各ブロックBLKの読み出し速度情報を参照して(ステップS243)、各チャネルCHにおいて読み出し速度が遅いブロックBLKが含まれるNANDチップCPを選択する(ステップS244)。そして、選択NANDチップCPは、書き込み命令に基づいて、読み出し速度が遅いブロックBLKに、書き込み動作を実行する(ステップS245)。
ステップS204の通常の書き込み動作は、第1及び第3実施形態と同じである。
4.2 本実施形態に係る効果について
本実施形態に係る構成であれば、第1乃至第3実施形態と同様の効果が得られる。
本実施形態に係る構成であれば、第1乃至第3実施形態と同様の効果が得られる。
5.第5実施形態
次に、第5実施形態について説明する。第5実施形態では、HWレジスタ280に、各NANDチップCPの各ブロックBLKのワード線WL毎に、読み出し速度情報及び/または書き込み速度情報が格納され、書き込み速度及び/または読み出し速度が速いメモリセルトランジスタMTが接続されるワード線WLが含まれるNANDチップCPが選択される場合を示す。以下、第1乃至第4実施形態と異なる点についてのみ説明する。
次に、第5実施形態について説明する。第5実施形態では、HWレジスタ280に、各NANDチップCPの各ブロックBLKのワード線WL毎に、読み出し速度情報及び/または書き込み速度情報が格納され、書き込み速度及び/または読み出し速度が速いメモリセルトランジスタMTが接続されるワード線WLが含まれるNANDチップCPが選択される場合を示す。以下、第1乃至第4実施形態と異なる点についてのみ説明する。
5.1 メモリシステムにおける書き込み動作の全体の流れについて
メモリシステム1における書き込み動作の全体の流れについて、図17を用いて説明する。なお、図17の例は、読み出し速度情報に基づいてワード線WLを選択する場合を示す。
メモリシステム1における書き込み動作の全体の流れについて、図17を用いて説明する。なお、図17の例は、読み出し速度情報に基づいてワード線WLを選択する場合を示す。
図17に示すように、LUT書き込みの場合(ステップS202_Yes)、コントローラ200は、各ワード線WLの読み出し速度情報を参照して(ステップS250)、各チャネルCHにおいて読み出し速度が速い(メモリセルトランジスタMTに接続された)ワード線WLが含まれるNANDチップCPを選択する(ステップS251)。そして、選択NANDチップCPは、書き込み命令に基づいて、読み出し速度が速いワードWLに対応するメモリセルグループMCGに、書き込み動作を実行する(ステップS252)。より具体的には、例えば第1実施形態の図3及び図4で説明したメモリセルアレイ18において、ブロックBLK0のワード線WL7が選択された場合、ワード線WL7が接続されたストリングユニットSU0〜SU3の各メモリセルグループMCGが、書き込み対象となる。
パリティ書き込みの場合(ステップS202_No、ステップS203_Yes)、コントローラ200は、各ワード線WLの読み出し速度情報を参照して(ステップS253)、各チャネルCHにおいて読み出し速度が遅いワード線WLが含まれるNANDチップCPを選択する(ステップS254)。そして、選択NANDチップCPは、書き込み命令に基づいて、読み出し速度が遅いワードWLに対応するメモリセルグループMCGに、書き込み動作を実行する(ステップS255)。より具体的には、例えばブロックBLK0のワード線WL0が選択された場合、ワード線WL0が接続されたストリングユニットSU0〜SU4の各メモリセルグループMCGが、書き込み対象となる。
ステップS204の通常の書き込み動作は、第1乃至第4実施形態と同じである。
5.2 本実施形態に係る効果について
本実施形態に係る構成であれば、第1乃至第4実施形態と同様の効果が得られる。
本実施形態に係る構成であれば、第1乃至第4実施形態と同様の効果が得られる。
6.第6実施形態
次に、第6実施形態について説明する。第6実施形態では、HWレジスタ280にNANDチップCPの設計情報(以下、「NAND設計情報」と表記する)が格納されている場合について説明する。NAND設計情報は、例えば、コントローラ200と各NANDチップCPとを接続する配線のレイアウト、NANDチップCP内のメモリセルアレイ18と周辺回路(センスアンプ20、ロウデコーダ19等)とを接続する配線のレイアウト、またはメモリセルトランジスタMTの三次元構造等の設計情報から、各NANDチップCPの読み出し速度及び/または書き込み速度を予測した情報である。なお、本実施形態では、第3実施形態と同様に、書き込み速度及び/または読み出し速度を測定するためのHWタイマ270は廃されている。以下、第1乃至第5実施形態と異なる点についてのみ説明する。
次に、第6実施形態について説明する。第6実施形態では、HWレジスタ280にNANDチップCPの設計情報(以下、「NAND設計情報」と表記する)が格納されている場合について説明する。NAND設計情報は、例えば、コントローラ200と各NANDチップCPとを接続する配線のレイアウト、NANDチップCP内のメモリセルアレイ18と周辺回路(センスアンプ20、ロウデコーダ19等)とを接続する配線のレイアウト、またはメモリセルトランジスタMTの三次元構造等の設計情報から、各NANDチップCPの読み出し速度及び/または書き込み速度を予測した情報である。なお、本実施形態では、第3実施形態と同様に、書き込み速度及び/または読み出し速度を測定するためのHWタイマ270は廃されている。以下、第1乃至第5実施形態と異なる点についてのみ説明する。
なお、本実施形態では、HWレジスタ280内のNAND設計情報を参照する場合について説明したが、HWレジスタ280を廃しても良い。そして、HWレジスタ280にNAND設計情報を格納する代わりに、NAND設計情報に基づいてコントローラ200に実装されたeFuseを出荷時にカットしておき、これに基づいてNANDチップCPが選択されても良い。
6.1 メモリシステムにおける書き込み動作の全体の流れについて
メモリシステム1における書き込み動作の全体の流れについて、図18を用いて説明する。
メモリシステム1における書き込み動作の全体の流れについて、図18を用いて説明する。
図18に示すように、LUT書き込みの場合(ステップS202_Yes)、コントローラ200は、NAND設計情報を参照して(ステップS260)、各チャネルCHにおいて読み出し速度が速いNANDチップCPを選択する(ステップS206)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS207)。
パリティ書き込みの場合(ステップS202_No、ステップS203_Yes)、コントローラ200は、NAND設計情報を参照して(ステップS261)、各チャネルCHにおいて読み出し速度が遅いNANDチップCPを選択する(ステップS209)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS210)。
ステップS204の通常の書き込み動作は、第1乃至第5実施形態と同じである。
6.2 本実施形態に係る効果について
本実施形態に係る構成であれば、第1乃至第5実施形態と同様の効果が得られる。
本実施形態に係る構成であれば、第1乃至第5実施形態と同様の効果が得られる。
7.第7実施形態
次に、第7実施形態について説明する。第7実施形態では、HWレジスタ280にビットエラーレートBERの情報(以下、「BER情報」と表記する)が格納されている場合について説明する。例えば、ビットエラーレートBERが高いNANDチップCPの場合、ECC回路260におけるECC処理期間が長くなるため、NANDチップCPの読み出し速度に関わらず、ECC処理を含めた全体の読み出し動作の処理期間が長くなる。なお、本実施形態では、第3実施形態と同様に、書き込み速度及び/または読み出し速度を測定するためのHWタイマ270は廃されている。以下、第1乃至第6実施形態と異なる点についてのみ説明する。
次に、第7実施形態について説明する。第7実施形態では、HWレジスタ280にビットエラーレートBERの情報(以下、「BER情報」と表記する)が格納されている場合について説明する。例えば、ビットエラーレートBERが高いNANDチップCPの場合、ECC回路260におけるECC処理期間が長くなるため、NANDチップCPの読み出し速度に関わらず、ECC処理を含めた全体の読み出し動作の処理期間が長くなる。なお、本実施形態では、第3実施形態と同様に、書き込み速度及び/または読み出し速度を測定するためのHWタイマ270は廃されている。以下、第1乃至第6実施形態と異なる点についてのみ説明する。
7.1 メモリシステムにおける読み出し動作の全体の流れについて
まず、メモリシステム1における読み出し動作の全体の流れについて、図19を用いて説明する。
まず、メモリシステム1における読み出し動作の全体の流れについて、図19を用いて説明する。
図19に示すように、ステップS101〜103の動作は、第1実施形態の図5と同じである。
コントローラ200は、選択NANDチップCPから読み出しデータRDを受信すると、読み出しデータRDをバッファメモリ240に一旦格納した後、ECC回路260において、読み出しデータRDのECC処理を実行する。このとき、ECC回路260は、不良ビット数をカウントしてビットエラーレートBERを測定し、その結果をHWレジスタ280に送信する(ステップS110)。
HWレジスタ280は、ECC回路260からBER情報を受信すると、対応するNANDチップCPのBER情報を更新する(ステップS111)。
7.2 メモリシステムにおける書き込み動作の全体の流れについて
メモリシステム1における書き込み動作の全体の流れについて、図20を用いて説明する。
メモリシステム1における書き込み動作の全体の流れについて、図20を用いて説明する。
図20に示すように、LUT書き込みの場合(ステップS202_Yes)、コントローラ200は、BER設計情報を参照して(ステップS270)、各チャネルCHにおいてビットエラーレートBERが低いNANDチップCPを選択する(ステップS271)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS272)。
パリティ書き込みの場合(ステップS202_No、ステップS203_Yes)、コントローラ200は、BER設計情報を参照して(ステップS273)、各チャネルCHにおいてビットエラーレートBERが高いNANDチップCPを選択する(ステップS274)。そして、選択NANDチップCPは、書き込み命令に基づいて、書き込み動作を実行する(ステップS275)。
ステップS204の通常の書き込み動作は、第1乃至第6実施形態と同じである。
7.3 本実施形態に係る効果について
本実施形態に係る構成であれば、第1乃至第6実施形態と同様の効果が得られる。
本実施形態に係る構成であれば、第1乃至第6実施形態と同様の効果が得られる。
8.変形例等
上記実施形態に係るメモリシステムは、第1バス(NBUS0)に接続された複数の第1メモリチップ(CP)と、 第2バス(NBUS1)に接続された複数の第2メモリチップ(CP)と、第1及び第2バスに接続され、複数の第1メモリチップのデータ読み出し速度及び/またはデータ書き込み速度の情報に基づいて、複数の第1メモリチップの1つを選択し、複数の第2メモリチップの情報に基づいて、複数の第2メモリチップの1つを選択して、書き込み動作を実行可能なコントローラ(200)とを含む。コントローラは、複数の第1メモリチップ及び複数の第2メモリチップの情報を保持するレジスタ(280)を含む。
上記実施形態に係るメモリシステムは、第1バス(NBUS0)に接続された複数の第1メモリチップ(CP)と、 第2バス(NBUS1)に接続された複数の第2メモリチップ(CP)と、第1及び第2バスに接続され、複数の第1メモリチップのデータ読み出し速度及び/またはデータ書き込み速度の情報に基づいて、複数の第1メモリチップの1つを選択し、複数の第2メモリチップの情報に基づいて、複数の第2メモリチップの1つを選択して、書き込み動作を実行可能なコントローラ(200)とを含む。コントローラは、複数の第1メモリチップ及び複数の第2メモリチップの情報を保持するレジスタ(280)を含む。
上記実施形態を適用することにより、処理能力を向上できる半導体記憶装置を提供できる。
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
例えば、上記実施形態は、可能な限り組み合わせることができる。例えば、第4実施形態において、第3実施形態で説明したように、書き込み速度情報に基づいてブロックBLKを選択しても良い。
更に、上記第1乃至第6実施形態において、読み出し速度情報と書き込み速度情報の両方を用いて、NANDチップCPを選択しても良い。
更に、上記実施形態は、三次元積層型NAND型フラッシュメモリを用いたNANDチップに限定されず、半導体基板上にメモリセルが配置された平面型NAND型フラッシュメモリを用いたNANDチップにも適用できる。更には、NAND型フラッシュメモリに限定されず、他の不揮発性のメモリを用いたチップにも適用できる。
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、2…ホスト機器、10…入出力回路、11…ロジック制御回路、12…ステータスレジスタ、13…アドレスレジスタ、14…コマンドレジスタ、15…シーケンサ、16…レディ/ビジー回路、17…電圧発生回路、18…メモリセルアレイ、19…ロウデコーダ、20…センスアンプ、21…データレジスタ、22…カラムデコーダ、30…半導体基板、31…n型ウェル、32…p型ウェル、33…n+型拡散層、34…配線層、35…半導体層、36…トンネル絶縁膜、37…電荷蓄積層、38…ブロック絶縁膜、100…記憶媒体、200…コントローラ、210…ホストインターフェイス回路、220…内蔵メモリ、230…プロセッサ、240…バッファメモリ、250…NANDインターフェイス回路、260…ECC回路、270…HWタイマ、280…HWレジスタ。
Claims (7)
- 第1バスに接続された複数の第1メモリチップと、
第2バスに接続された複数の第2メモリチップと、
前記第1及び第2バスに接続され、前記複数の第1メモリチップのデータ読み出し速度及び/またはデータ書き込み速度の情報に基づいて、前記複数の第1メモリチップの1つを選択し、前記複数の第2メモリチップの前記情報に基づいて、前記複数の第2メモリチップの1つを選択して、書き込み動作を実行可能なコントローラと
を備え、前記コントローラは、前記複数の第1メモリチップ及び前記複数の第2メモリチップの前記情報を保持するレジスタを含むメモリシステム。 - 前記コントローラは、第1データを書き込む場合、前記複数の第1メモリチップから前記データ読み出し速度及び/または前記データ書き込み速度が最も速い第1メモリチップを選択し、前記複数の第2メモリチップから前記データ読み出し速度及び/または前記データ書き込み速度が最も速い第2メモリチップを選択し、
第2データを書き込む場合、前記複数の第1メモリチップから前記データ読み出し速度及び/または前記データ書き込み速度が最も遅い第1メモリチップを選択し、前記複数の第2メモリチップから前記データ読み出し速度及び/または前記データ書き込み速度が最も遅い第2メモリチップを選択する請求項1記載のメモリシステム。 - 前記コントローラは、前記データ読み出し速度及び/または前記データ書き込み速度を測定する測定回路を更に備える請求項1または2記載のメモリシステム。
- 前記測定回路は、前記複数の第1メモリチップ及び前記複数の第2メモリチップから受信するレディ/ビジー信号がビジー状態にある期間を測定する請求項3記載のメモリシステム。
- 前記第1データは、外部機器から受信した論理アドレスを、前記複数の第1メモリチップ及び前記複数の第2メモリチップに割り当てられた物理アドレスに変換するためのデータである請求項2記載のメモリシステム。
- 前記第2データは、前記複数の第1メモリチップ及び前記複数の第2メモリチップから読み出されたデータの誤り訂正処理に用いられる請求項2記載のメモリシステム。
- 第1バスに接続された複数の第1メモリチップと、
第2バスに接続された複数の第2メモリチップと、
前記第1及び第2バスに接続され、前記複数の第1メモリチップのビットエラーレートの情報に基づいて、前記複数の第1メモリチップの1つを選択し、前記複数の第2メモリチップの前記情報に基づいて、前記複数の第2メモリチップの1つを選択して、書き込み動作を実行可能なコントローラと
を備え、前記コントローラは、
前記複数の第1メモリチップ及び前記複数の第2メモリチップから読み出されたデータの誤り訂正処理を実行し、前記ビットエラーレートを測定するECC回路と、
前記複数の第1メモリチップ及び前記複数の第2メモリチップの前記情報を保持するレジスタとを含むメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017162728A JP2019040470A (ja) | 2017-08-25 | 2017-08-25 | メモリシステム |
US15/952,613 US10877692B2 (en) | 2017-08-25 | 2018-04-13 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017162728A JP2019040470A (ja) | 2017-08-25 | 2017-08-25 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019040470A true JP2019040470A (ja) | 2019-03-14 |
Family
ID=65434269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017162728A Pending JP2019040470A (ja) | 2017-08-25 | 2017-08-25 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10877692B2 (ja) |
JP (1) | JP2019040470A (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019139824A (ja) * | 2018-02-09 | 2019-08-22 | 東芝メモリ株式会社 | メモリシステム |
US11115056B2 (en) * | 2018-06-12 | 2021-09-07 | International Business Machines Corporation | Location selection based on erasure code techniques |
US10593730B1 (en) | 2018-10-10 | 2020-03-17 | Micron Technology, Inc. | Three-dimensional memory array |
US11342044B2 (en) * | 2019-05-28 | 2022-05-24 | Nuvoton Technology Corporation | System and method for prioritization of bit error correction attempts |
KR20210048349A (ko) * | 2019-10-23 | 2021-05-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
WO2021159494A1 (zh) * | 2020-02-14 | 2021-08-19 | 华为技术有限公司 | 固态存储硬盘和固态存储硬盘的控制方法 |
CN112185455B (zh) * | 2020-10-16 | 2024-06-25 | 天津津航计算技术研究所 | Sram通用测速电路 |
US11763910B2 (en) * | 2021-10-20 | 2023-09-19 | Micron Technology, Inc. | Multi-command memory accesses |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100271701B1 (ko) | 1995-03-15 | 2000-11-15 | 가나이 쓰도무 | 열화진단기능을 구비한 반도체기억장치 |
JP2002288105A (ja) * | 2001-03-26 | 2002-10-04 | Hitachi Ltd | ストレージエリアネットワークシステム、その運用方法、ストレージ、データ転送量監視装置 |
US20050041453A1 (en) * | 2003-08-22 | 2005-02-24 | Brazis Paul W. | Method and apparatus for reading and writing to solid-state memory |
KR100843546B1 (ko) * | 2006-11-21 | 2008-07-04 | 삼성전자주식회사 | 멀티 칩 패키지 플래시 메모리 장치 및 그것의 상태 신호독출 방법 |
US8661184B2 (en) * | 2010-01-27 | 2014-02-25 | Fusion-Io, Inc. | Managing non-volatile media |
US20120117303A1 (en) * | 2010-11-04 | 2012-05-10 | Numonyx B.V. | Metadata storage associated with flash translation layer |
JP5603895B2 (ja) | 2012-03-21 | 2014-10-08 | 株式会社東芝 | 半導体記憶装置の駆動方法および半導体記憶装置 |
US9465692B2 (en) * | 2014-06-25 | 2016-10-11 | Quantum Corporation | High reliability erasure code distribution |
US9594632B2 (en) * | 2014-07-09 | 2017-03-14 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
US9496018B2 (en) * | 2015-04-01 | 2016-11-15 | International Business Machines Corporation | Nonvolatile memory interface for metadata shadowing |
US9431054B1 (en) * | 2015-06-02 | 2016-08-30 | Quantum Corporation | Doubly distributed erasure codes |
KR102379167B1 (ko) * | 2015-10-26 | 2022-03-25 | 삼성전자주식회사 | 레지스터 세트들을 포함하는 반도체 장치와 이를 포함하는 데이터 저장 장치 |
US10340022B2 (en) * | 2017-05-16 | 2019-07-02 | Samsung Electronics Co., Ltd. | Nonvolatile memory including on-die-termination circuit and storage device including the nonvolatile memory |
KR102479483B1 (ko) * | 2017-10-19 | 2022-12-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US11115056B2 (en) * | 2018-06-12 | 2021-09-07 | International Business Machines Corporation | Location selection based on erasure code techniques |
-
2017
- 2017-08-25 JP JP2017162728A patent/JP2019040470A/ja active Pending
-
2018
- 2018-04-13 US US15/952,613 patent/US10877692B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190065114A1 (en) | 2019-02-28 |
US10877692B2 (en) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12029031B2 (en) | Memory system | |
JP2019040470A (ja) | メモリシステム | |
US11862263B2 (en) | Storage device and method of operating the same | |
KR101678909B1 (ko) | 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법 | |
US10910023B2 (en) | Semiconductor storage device and memory system | |
US10680005B2 (en) | Nonvolatile memory device, method of operating nonvolatile memory device and storage device including the same | |
US8363482B2 (en) | Flash memory devices with selective bit line discharge paths and methods of operating the same | |
US10002676B2 (en) | Nonvolatile memory device detecting defective bit line at high speed and test system thereof | |
US11231874B2 (en) | Memory system and storage system | |
KR102140512B1 (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 시스템 및 불휘발성 메모리 시스템의 동작 방법 | |
US20180211707A1 (en) | Semiconductor memory device and method of controlling semiconductor memory device | |
CN112908374A (zh) | 存储器控制器及其操作方法 | |
US11908535B2 (en) | Memory device and memory controller and storage device including the memory device and memory controller | |
CN110660436B (zh) | 半导体存储装置及存储器控制器 | |
JP2020047322A (ja) | メモリシステム | |
US20240363173A1 (en) | Modulation of source voltage in nand-flash array read | |
JP2021039810A (ja) | メモリシステム | |
JP2022018404A (ja) | 半導体記憶装置 | |
JP2021140311A (ja) | メモリシステム | |
US11404137B1 (en) | Memory system and operating method of memory system | |
US12087390B2 (en) | Storage device based on daisy chain topology | |
US20240201903A1 (en) | Semiconductor integrated circuit, semiconductor storage device, and memory system | |
JP2024122553A (ja) | メモリシステム | |
CN116798490A (zh) | 存储器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180831 |