JP6542076B2 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP6542076B2
JP6542076B2 JP2015169449A JP2015169449A JP6542076B2 JP 6542076 B2 JP6542076 B2 JP 6542076B2 JP 2015169449 A JP2015169449 A JP 2015169449A JP 2015169449 A JP2015169449 A JP 2015169449A JP 6542076 B2 JP6542076 B2 JP 6542076B2
Authority
JP
Japan
Prior art keywords
data
host device
information
memory system
memory
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.)
Active
Application number
JP2015169449A
Other languages
English (en)
Other versions
JP2017045394A (ja
Inventor
俊輔 小寺
俊輔 小寺
敏彦 北爪
敏彦 北爪
加田 憲一郎
憲一郎 加田
伸広 辻
伸広 辻
武田 慎也
慎也 武田
哲也 岩田
哲也 岩田
良雄 古山
良雄 古山
洋介 奈良井
洋介 奈良井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2015169449A priority Critical patent/JP6542076B2/ja
Priority to TW105104792A priority patent/TWI618077B/zh
Priority to US15/062,011 priority patent/US10289482B2/en
Publication of JP2017045394A publication Critical patent/JP2017045394A/ja
Application granted granted Critical
Publication of JP6542076B2 publication Critical patent/JP6542076B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • G06F11/1052Bypassing or disabling error detection or correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Description

実施形態は、メモリシステムに関する。
記憶デバイスとして、NAND型フラッシュメモリが広く知られている。
Toshiba Datasheet, TC58NVG0S3HTA00, 2012年8月31日 Toshiba Datasheet, TC58BVG0S3HTA00, 2012年8月31日
動作信頼性を向上出来るメモリシステムを提供する。
実施形態のメモリシステムは、ホスト機器からチップセレクト信号を受信可能な第1ピンと、ホスト機器へ第1信号を出力可能な第2ピンと、ホスト機器から第2信号を受信可能な第3ピンと、ホスト機器からクロックを受信可能な第4ピンと、データを保持可能なメモリセルを含み、ページ単位でデータが読み出されるメモリセルアレイを含むNANDフラッシュメモリと、SPI(Serial Peripheral Interface)に準拠したバスにより前記ホスト機器と接続可能であり、且つNANDインターフェースに準拠したバスにより前記NANDフラッシュメモリと接続されており、アサートされたチップセレクト信号が受信された直後に第3ピンで受信された第2信号をコマンドとして認識するインターフェース回路と、メモリシステムの設定情報を保持するテーブルと、メモリシステムの第1データを保持するレジスタと、を含み、レジスタから読み出された第1データを、テーブル内の設定情報に基づいて更新し、更新された第1データをホスト機器へ送信可能であるコントローラとを備え、前記第1データは、前記メモリシステムに固有の情報である。
図1は、実施形態に係るメモリシステムの外観図である。 図2は、実施形態に係るメモリシステムの断面図である。 図3は、実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。 図4は、実施形態に係るメモリシステムの外観図である。 図5は、実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。 図6は、実施形態に係るメモリシステムのブロック図である。 図7は、実施形態に係る半導体記憶装置のブロック図である。 図8は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図9は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図10は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図11は、実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図12は、実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。 図13は、実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。 図14は、実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。 図15は、実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。 図16は、実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。 図17は、実施形態に係る特徴テーブルの模式図である。 図18は、実施形態に係る特徴テーブルに情報を設定する際における各種信号のタイミングチャートである。 図19は、実施形態に係るパラメータテーブルに保持される情報の内容を示すダイアグラム。 図20は、実施形態に係るメモリシステムの読み出し動作を示すフローチャートである。 図21は、実施形態に係るメモリシステムの読み出し動作時におけるコマンドシーケンスである。 図22は、実施形態に係るメモリシステムの読み出し動作の具体例を示す模式図である。 図23は、実施形態の変形例に係るメモリシステムのブロック図である。 図24は、実施形態に係るメモリシステムを利用したシステムの概念図である。 図25は、実施形態に係るメモリシステムを利用したシステムの概念図である。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
第1実施形態に係るメモリシステムについて説明する。
1.構成について
1.1 メモリシステムの全体構成について
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図1及び図2を用いて説明する。図1は、本実施形態に係るメモリシステムの外観図であり、特に上面から見た様子を示し、図2は図1における2−2線に沿った断面図である。
図示するように、メモリシステム1は2つの半導体チップ100、200を含む。半導体チップ(メモリチップ)100はNAND型フラッシュメモリ等の半導体メモリを含み、半導体チップ200(コントローラチップ)は、メモリチップ100を制御するコントローラを含む。これらの半導体チップ100及び200はリードフレーム300に実装され、更に樹脂350によって封止されてパッケージングされている。
より具体的には、図2に示すように、リードフレーム300のダイパッド310上にメモリチップ100が搭載され、メモリチップ100上にコントローラチップ200が重ねられている。
コントローラチップ200は、例えばボンディングワイヤ340により、リードフレームのインナーリード320に接続され、更に図示せぬボンディングワイヤによりメモリチップ100とも接続されている。そして、メモリチップ100、コントローラチップ200、ダイパッド310、インナーリード320、及びボンディングワイヤ340が、例えば樹脂350によって封止されている。
インナーリード320は、樹脂350外部に露出されたアウターリード330に接続されている。そしてアウターリード330は、メモリシステム1の外部接続端子(外部接続ピン)として機能する。図1の例であると、第1ピンから第16ピンまでの16個の外部接続端子が用意されている。そしてメモリシステム1は、これらのピンを介して、メモリシステム1を制御する(より具体的には、メモリチップにアクセスする)ホスト機器と通信する。
図3は、各ピンの機能を示すダイアグラムである。図示するように、第1ピンは、制御信号/HOLDの入力用、またはシリアルデータSO3の出力用に用いられる。制御信号/HOLDは、ホスト機器とメモリシステム1との間の通信を一時的に停止する際にアサート(“L”レベル)される。第2ピンは、電源電圧Vccを受信する。第3ピンから第6ピン、及び第11ピンから第14ピンは未使用ピンであり、例えば将来的に何らかの信号やデータの送受信が必要になった際に使用することが出来る。第7ピンは、チップセレクト信号/CSを受信する。チップセレクト信号/CSは、メモリチップ100及びコントローラチップ200を活性化させるための信号(言い換えれば、メモリシステム1にアクセスする際に活性化される信号)であり、例えばホスト機器がメモリシステム1にコマンドを入力するタイミングでアサート(“L”レベル)される。第8ピンは、シリアルデータ(SOまたはSO1)の出力用に用いられる。第9ピンは、制御信号/WPの入力用、またはシリアルデータ(SO2)の出力用に用いられる。制御信号/WPはライトプロテクト信号であり、メモリチップへの書き込みを禁止する際にアサート(“L”レベル)される。第10ピンは、基準電位Vssを受信する。第15ピンは、シリアルデータ(SI)の入力用、またはシリアルデータ(SO0)の出力用に用いられる。第16ピンは、シリアルクロック信号SCKを受信する。
上記ピン構成は、SPI(Serial Peripheral Interface)に準拠している。そして、第1ピン、第8ピン、第9ピン、及び第15ピンをシリアルデータ出力用として任意に選択することで、1倍速、2倍速、または4倍速でデータをホスト機器へ出力することが出来る。
図4は、図1とは別のパッケージ構成の例を示している。図4の例では、第1ピンから第8ピンまでの8個の外部接続端子が設けられている。図5は、図4の例における各ピンの機能を示すダイアグラムである。
図示するように、第1ピンはチップセレクト信号/CSを受信し、第2ピンはシリアルデータSO、SO1を出力し、第3ピンはライトプロテクト信号/WPを受信、またはシリアルデータSO2を出力し、第4ピンは基準電位Vssを受信し、第5ピンはシリアルデータSIを受信、またはシリアルデータSO0を出力し、第6ピンはシリアルクロックを受信し、第7ピンは制御信号/HOLDを受信、またはシリアルデータSO3を出力し、第8ピンは電源電圧Vccを受信する。
この場合でも、ピン構成はSPIに準拠している。
図6は、メモリシステム1の内部構成を示す機能ブロック図である。以下では、メモリチップ100をNAND型フラッシュメモリ100と呼び、コントローラチップ200を単にコントローラ200と呼ぶ。
図示するように、メモリシステム1はNAND型フラッシュメモリ100とコントローラ200とを備えている。
NAND型フラッシュメモリ100は、複数のメモリセルを備え、データを不揮発に記憶する。コントローラ200は、NANDバスによってNAND型フラッシュメモリ100に接続され、SPIバスによってホスト機器500に接続される。そしてコントローラ200は、NAND型フラッシュメモリ100へのアクセスを制御する。
NANDバスは、NANDインターフェースに従った信号の送受信を行う。この信号の具体例は、チップイネーブル信号/CE、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE、ライトイネーブル信号/WE、リードイネーブル信号/RE、レディ・ビジー信号/RB、入出力信号I/O、及びライトプロテクト信号/WPである。
信号/CEはlowレベルでアサートされ、NAND型フラッシュメモリ100を活性化させるための信号であり、NAND型フラッシュメモリ100にアクセスする際にアサートされる。信号CLE及びALEは、NAND型フラッシュメモリ100への入力信号I/Oがそれぞれコマンド及びアドレスであることをNAND型フラッシュメモリ100に通知する信号である。信号/WEはlowレベルでアサートされ、入力信号I/OをNAND型フラッシュメモリ100に取り込ませるための信号である。信号/REもlowレベルでアサートされ、NAND型フラッシュメモリ100から出力信号I/Oを読み出すための信号である。レディ・ビジー信号/RBは、NAND型フラッシュメモリ100がレディ状態(コントローラ200からの命令を受信出来る状態)であるか、それともビジー状態(コントローラ200からの命令を受信出来ない状態)であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号I/Oは、例えば8ビット(n=8)の信号である。そして入出力信号I/Oは、NAND型フラッシュメモリ100とコントローラ200との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、及び読み出しデータ等である。信号/WPは、NAND型フラッシュメモリ100への書き込みを禁止するための信号である。
SPIバスは、図3及び図5で説明した通りである。
1.2 コントローラ200の構成について
次に、コントローラ200の構成の詳細につき、引き続き図6を用いて説明する。図示するようにコントローラ200は、ホスト入出力回路210、ホストインターフェース回路220、NANDインターフェース回路230、NAND入出力回路240、シーケンサ(ステートマシン)250、データバッファ260、270、ステータスレジスタ280、アドレスレジスタ290、周辺回路600、パラメータデータレジスタ610、及びECC回路620を備えている。
ホスト入出力回路210は、ホスト機器500との間で送受信される信号のバッファとして機能する。信号SCK、SI、/CS、/HOLD、及び/WPはまずホスト入出力回路210で受信され、その後、ホストインターフェース回路220に出力される。
ホストインターフェース回路220は、信号SCKに同期して信号SIを内部に取り込む。またホストインターフェース回路220は、信号SCKに同期して出力される信号SOを、ホスト入出力回路210を介してホスト機器500へ送信する。
ホストインターフェース回路220は、ホスト入出力回路210を介したホスト機器500との間の信号の送受信制御を司る。またホストインターフェース回路220は、シリアル/パラレル変換器及びパラレル/シリアル変換器として機能する。例えば、ホスト機器500からの入力信号SIをシリアル信号からパラレル信号に変換し、NAND型フラッシュメモリ100から読み出されたデータをパラレル信号からシリアル信号に変換する。更にホストインターフェース回路220は、入力信号SIがコマンドであった場合にコマンドデコーダとして機能し、受信したコマンドをデコードする。そしてデコード結果を例えばシーケンサ250に出力する。
データバッファ260、270は、ホスト機器500から受信した書き込みデータを、ホストインターフェース回路220を介して一時的に保持する。更に、NAND型フラッシュメモリ100から読み出されたデータを、NANDインターフェース回路230を介して一時的に保持する。
ステータスレジスタ280は、メモリシステム1の種々のステータス情報を保持する。例えば、後述する特徴テーブルを保持する。
アドレスレジスタ290は、ホスト機器500から受信したアドレスを、ホストインターフェース回路220を介して保持する。
NANDインターフェース回路230は、NAND入出力回路240を介したNAND型フラッシュメモリ100との間の信号の送受信制御を司る。そしてNANDインターフェース回路230は、シーケンサ250の命令に従って、NANDインターフェースに準拠した各種コマンドを発行し、アドレスレジスタ290内のアドレスと共にNAND入出力回路240を介してNAND型フラッシュメモリ100へ出力する。データの書き込み時には、データバッファ260及び/または270内のデータを、NAND入出力回路240を介してNAND型フラッシュメモリ100へ出力する。更にデータの読み出し時には、NAND型フラッシュメモリ100から読み出されたデータを、データバッファ260及び/または270に転送する。
NAND入出力回路240は、NAND型フラッシュメモリ100との間で送受信される信号のバッファとして機能する。また、NANDインターフェース回路230の命令に従って、信号/CE、CLE、ALE、/WE、/RE、/WPをアサートまたはデアサートする。更に、データの読み出し時には、信号IO(読み出しデータ)を一時的に保持し、NANDインターフェース回路230へ転送し、書き込み時には信号IO(書き込みデータ)を一時的に保持し、NAND型フラッシュメモリ100へ送信する。また、NAND型フラッシュメモリ100からレディ・ビジー信号/RBを受信し、これをNANDインターフェース回路230へ転送する。
シーケンサ250は、コントローラ200全体の動作を制御する。例えば、ホスト機器500からデータの読み出し要求があった際には、NANDインターフェース回路230に対して読み出し動作を実行するためのシーケンスを実行するよう命令する。またホスト機器500からデータの書き込み要求があった際には、NANDインターフェース回路230に対して読み出し動作を実行するためのシーケンスを実行するよう命令する。更に、NAND型フラッシュメモリ100から受信したステータス情報に従って、ステータスレジスタ280内の特徴テーブルを更新する。
ECC回路620は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書込み時には、ホスト機器500から受信したデータに基づいて、セクタ及び当該セクタに用意されたスペア領域の組(以下、「データペア」という。)毎にECC符号を生成する。また、ECC回路620は、このECC符号と、データペアとをNAND型フラッシュメモリ100のデータレジスタ140に転送する。データの読出し時には、データレジスタ140からコントローラ200に転送されたデータに含まれるECC符号に基づき、データペア毎にECC復号し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。1データペアにつき訂正可能なエラービット数は、本例では例えば1データペアあたり8ビットである。また、ECC回路620は、各データペアにおいて検出されたエラービット数を、ステータス情報としてステータスレジスタに出力可能である。
パラメータページデータレジスタ610は、後述するパラメータページデータを保持する。パラメータページデータは、メモリシステム1に固有の情報である。
周辺回路600は、外部から電源電圧Vccを受信し、各回路ブロックへ転送すると共に、コントローラ200の動作に必要なその他の制御を行う。
1.3 NAND型フラッシュメモリ100の構成について
次に、NAND型フラッシュメモリ100の構成について、図7を用いて説明する。図7は、NAND型フラッシュメモリ100のブロック図である。
図示するようにNAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、センスアンプ130、データレジスタ140、カラムデコーダ150、ステータスレジスタ410、アドレスレジスタ420、コマンドレジスタ430、制御回路440、電圧発生回路450、入出力制御回路460、及びロジック回路470を備えている。
メモリセルアレイ110は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを備えている。そして、同一行にあるメモリセルは同一のワード線に接続され、同一列にあるメモリセルは同一のビット線に接続される。データの読み出し及び書き込みは、同一のワード線に接続された複数のメモリセルに対して一括して行われる。この単位をページと呼ぶ。1ページ分のデータは、正味のデータと管理データとを含む。正味のデータは、セクタと呼ばれる単位で管理される。例えば本例では、1ページは4つのセクタを含み、各セクタは512バイトのデータサイズを有する。管理データは、例えばエラー訂正のためのECCデータ(パリティ)を含む。エラー訂正はセクタ毎に行われる。従って管理データは、セクタ毎に用意されたECCデータを含む。また、データの消去は、複数のページ単位で一括して行われる。この単位をブロックと呼ぶ。
ロウデコーダ120は、メモリセルアレイ110のロウ方向を指定するロウアドレスをデコードする。そして、デコード結果に応じてワード線を選択し、データの書き込み、読み出し、及び消去に必要な電圧を印加する。
センスアンプ130は、データの読み出し時には、メモリセルアレイ110から読み出されたデータをセンスし、データレジスタ140に転送する。データの書き込み時には、データレジスタ140内のデータをメモリセルアレイ110に転送する。
データレジスタ140は、1ページ分の書き込みデータまたは読み出しデータを一時的に保持する。
カラムデコーダ150は、メモリセルアレイ110のカラム方向を指定するカラムアドレスをデコードする。そしてデコード結果に応じて、書き込み時にはデータをデータレジスタに転送し、読み出し時にはデータレジスタからデータを読み出す。
ロジック回路470は、コントローラ200から信号/CE、CLE、ALE、/WE、/RE、及び/WPを受信する。
入出力制御回路460は、信号IO[n:0]を受信する。そして入出力制御回路460は、信号IOがアドレスであった場合(ALE=“H”の場合)には、これをアドレスレジスタ420に保持させる。また信号IOがコマンドであった場合(CLE=“H”の場合)には、これをコマンドレジスタ430に保持させる。更に信号IOがデータであった場合(ALE=CLE=“L”の場合)には、これをデータレジスタ140に保持させる。
ステータスレジスタ410は、NAND型フラッシュメモリ100の各種ステータス情報を保持する。ステータス情報には、前述のECC回路400から与えられるエラービット数、また制御回路440から与えられる書き込み動作及び消去動作が成功(パス)したか失敗(フェイル)したかを示す情報等が含まれる。
制御回路470は、コマンドレジスタ430に保持されたコマンドと、ロジック回路470に入力された各種信号に基づいて、NAND型フラッシュメモリ100全体を制御する。また制御回路470は、レディ・ビジー信号/RBを発生して、コントローラ200へ出力する。
電圧発生回路450は、制御回路470の命令に基づいて、データの書き込み、読み出し、及び消去動作に必要な電圧を生成し、これをメモリセルアレイ110、ロウデコーダ120、及びセンスアンプ130に供給する。
2.動作について
次に、本実施形態に係るメモリシステムにおけるデータの読み出し動作、書き込み動作、及び消去動作につき、SPIバス及びNANDバスで送受信される信号に着目して、以下簡単に説明する。
2.1 読み出し動作
まず、読み出し動作について説明する。読み出し動作は、大まかには以下の3ステップを含む。すなわち、
(1)NAND型フラッシュメモリからのデータ読み出し:本動作により、NAND型フラッシュメモリ100からコントローラ200にデータが読み出される。
(2)特徴テーブル読み出し(Get featureと呼ぶことがある):本動作により、メモリシステム1がビジー状態であるかレディ状態であるか、すなわち上記(1)の動作が完了したか否かが判定される。
(3)コントローラ200からのデータ読み出し:本動作により、(1)でコントローラ200に読み出されたデータがホスト機器500に読み出される。
図8は、上記(1)実行時におけるSPIバス上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSをアサートすると共に、第1読み出しコマンドCMD_RD1を信号SIとして発行し、更にクロックSCKを発行する。
コントローラ200のホストインターフェース回路220は、信号/CSがアサートされて最初のクロックSCKを受信した際の信号SIをコマンドとして認識する。このコマンドは、例えば8クロックサイクルにわたって入力される8ビット信号である。第1読み出しコマンドCMD_RD1を受信したことで、シーケンサ250はデータ読み出しシーケンスを開始する。
引き続きホスト機器500は、例えば8クロックサイクルにわたってダミービットDMY_BITをコントローラ200へ送信し、その後例えば16サイクルにわたってアドレスADDをコントローラ200へ送信する。そしてアドレスADDの送信後、ホスト機器500は信号/CSをデアサートする。アドレスADDは、NAND型フラッシュメモリ100におけるブロック及びページを指定するアドレスであり、アドレスレジスタ290に保持される。
このように、特定のコマンドを受信した際に、その後にどのような信号が入力されるか(コマンドシーケンス)は予め定められている。つまりコントローラ200は、例えば第1読み出し命令を受信した際には、その後の8クロックサイクルで入力される信号SIは意味の無いダミーデータであり、その後の16クロックサイクルで入力される信号SIが、実体的なアドレス信号であることを把握している。
上記(1)の動作に引き続いて上記(2)の動作が実行される。図9は、上記(2)実行時におけるSPIバス上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSを再度アサートすると共に、Get featureコマンドCMD_GFを信号SIとして発行し、更にクロックSCKを発行する。
引き続きホスト機器500は、例えば8クロックサイクルにわたってアドレスADDをコントローラ200へ送信する。このアドレスADDは、特徴テーブル内のアドレスであり、当然ながらレディ・ビジー情報が格納された領域を指定するアドレスである。コントローラ200では、アドレスADDの受信後、例えばシーケンサ250の命令に従ってホストインターフェース回路220がステータスレジスタ280から特徴テーブルの指定のエントリを読み出し、これを8サイクルにわたって8ビットのステータスデータST_DATとしてホスト機器500に送信する。このステータスデータST_DATには、レディ・ビジー情報が含まれている。そしてステータスデータST_DATの受信後、ホスト機器500は信号/CSをデアサートする。
受信したステータスデータST_DATにおいて、メモリシステム1がレディ状態であることが示されていれば、上記(3)の動作が実行される。図10は、上記(3)実行時におけるSPIバス上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSをアサートすると共に、第2読み出しコマンドCMD_RD2を信号SIとして発行し、更にクロックSCKを発行する。
引き続きホスト機器500は、例えば4クロックサイクルにわたってダミービットDMY_BITをコントローラ200へ送信し、その後例えば12サイクルにわたってアドレスADDをコントローラ200へ送信する。このアドレスADDは、コントローラ200において、データバッファ260または270における領域を指定するためのアドレスであり、NANDフラッシュメモリ100におけるページ内のカラムを指定するアドレスである。アドレスADDは、アドレスレジスタ290に保持される。すると、例えばシーケンサ250の制御に従い、ホストインターフェース回路220はデータバッファ260または270からデータを読み出す。そして、8クロックサイクル経過の後、ホストインターフェース回路220は、データバッファ260または270から読み出したデータRD_DATをホスト機器500へ送信する。
図11は、上記(1)の動作時におけるNANDバス上の各種信号のタイムチャートである。第1読み出しコマンドCMD_RD1を受信したコントローラ200では、例えばシーケンサ230の制御に従って、NANDインターフェース回路230がアドレス入力コマンド“00h”を発行し、NAND型フラッシュメモリ100へ送信する。引き続き、例えば5サイクルにわってアドレスADDをNAND型フラッシュメモリ100へ送信し、その後読み出しコマンド“30h”を発行して、これをNAND型フラッシュメモリ100へ送信する。なお、このアドレスADDは、図8及び図10で示された動作においてアドレスレジスタ290に保持されたブロック、ページ、及びカラムを示すアドレスを含む。
コマンド“30h”に応答して、NAND型フラッシュメモリ100内では、メモリセルアレイ110からのデータの読み出し動作が開始され、NAND型フラッシュメモリ100はビジー状態となる(/RB=“L”)となる。
データのメモリセルアレイ110からの読み出しが完了すると、NAND型フラッシュメモリ100はレディ状態となる。これに応答してコントローラ200は、信号/REをトグルさせる。すると、信号/REに同期して、データがNAND型フラッシュメモリ100からコントローラ200へ転送される。
2.2 書き込み動作
次に書き込み動作について説明する。書き込み動作は、大まかには以下の3ステップを含む。すなわち、
(1)ホスト機器500からコントローラ200へのデータ転送。
(2)転送したデータのNAND型フラッシュメモリ100への書き込み。
(3)特徴テーブル読み出し(Get feature):本動作により、NAND型フラッシュメモリ100への書き込みがパスしたかフェイルしたかが判定される。
図12は、上記(1)実行時におけるSPIバス上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSをアサートすると共に、第1書き込みコマンドCMD_WR1を信号SIとして発行し、更にクロックSCKを発行する。第1書き込みコマンドCMD_WR1を受信したことで、シーケンサ250はデータ書き込みシーケンスを開始する。
引き続きホスト機器500は、例えば4クロックサイクルにわたってダミービットDMY_BITをコントローラ200へ送信し、その後例えば12サイクルにわたってアドレスADDをコントローラ200へ送信する。このアドレスADDは、データバッファ260または270における領域を指定するためのアドレスであり、NANDフラッシュメモリ100におけるページ内のカラムを指定するアドレスである。アドレスADDは、アドレスレジスタ290に保持される。更にホスト機器500は、書き込みデータWR_DATをコントローラ200へ送信する。この書き込みデータWR_DATは、データバッファ260または270において、直前に受信したADDに対応する領域に保持される。そしてデータWR_DATの送信後、ホスト機器500は信号/CSをデアサートする。
上記(1)の動作に引き続いて上記(2)の動作が実行される。図13は、上記(2)実行時におけるSPIバス上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSを再度アサートすると共に、第2書き込みコマンドCMD_WR2を信号SIとして発行し、更にクロックSCKを発行する。第2書き込みコマンドCMD_WR2を受信したことで、シーケンサ250は上記(2)の動作命令を受信したことを認識する。
引き続きホスト機器500は、例えば8クロックサイクルにわたって8ビットのダミービットDMY_BITをコントローラ200へ送信し、その後例えば16サイクルにわたって16ビットのアドレスADDをコントローラ200へ送信する。このアドレスADDは、NAND型フラッシュメモリ100におけるブロック及びページを指定するアドレスであり、アドレスレジスタ290に保持される。そしてアドレスADDの送信後、ホスト機器500は信号/CSをデアサートする。
上記(2)の動作に引き続いて、上記(3)の動作が行われる。本動作におけるコマンドシーケンスは、読み出し動作時に説明した図9と同様である。またホスト機器500は、受信したステータスデータST_DATにおいて、メモリシステム1がレディ状態であることが示されていれば、続いてデータの書き込みがフェイルしたか否かに関する情報を要求する。
図14は、上記(2)の動作時におけるNANDバス上の各種信号のタイムチャートである。第2書き込みコマンドCMD_WR2を受信したコントローラ200では、例えばシーケンサ250の制御に従って、NANDインターフェース回路230が書き込みコマンド“80h”を発行し、NAND型フラッシュメモリ100へ送信する。引き続き、例えば5サイクルにわたってアドレスADDをNAND型フラッシュメモリ100へ送信し、更に書き込みデータDATが複数サイクルにわたってNAND型フラッシュメモリ100へ送信され、その後書き込みコマンド“10h”を発行して、これをNAND型フラッシュメモリ100へ送信する。なお、このアドレスADDは、図12及び図13で示された動作においてアドレスレジスタ290に保持されたブロック、ページ、及びカラムを示すアドレスを含む。
コマンド“10h”に応答して、NAND型フラッシュメモリ100内では、メモリセルアレイ110へのデータの書き込み動作が開始され、NAND型フラッシュメモリ100はビジー状態となる(/RB=“L”)となる。
データのメモリセルアレイ110への書き込みが完了すると、NAND型フラッシュメモリ100はレディ状態となる。これに応答してコントローラ200は、ステータス読み出しコマンド“70h”を発行し、信号/REをトグルさせる。すると、信号/REに同期して、書き込み動作がパスしたかフェイルしたかを示すステータスデータST_DATがコントローラ200に転送される。このステータスデータST_DATは特徴テーブルに保持され、上記(3)のGet featureコマンドによってホスト機器500に読み出される。
2.3 消去動作
次に消去動作について説明する。消去動作は、大まかには以下の2ステップを含む。すなわち、
(1)ホスト機器500からコントローラ200への消去命令。
(2)特徴テーブル読み出し(Get feature):本動作により、NAND型フラッシュメモリ100への消去動作がパスしたかフェイルしたかが判定される。
図15は、上記(1)実行時におけるSPIバス上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSをアサートすると共に、消去コマンドCMD_ERを信号SIとして発行し、更にクロックSCKを発行する。消去コマンドCMD_ERを受信したことで、シーケンサ250はデータ消去シーケンスを開始する。
引き続きホスト機器500は、例えば8クロックサイクルにわたって8ビットのダミービットDMY_BITをコントローラ200へ送信し、その後例えば16サイクルにわたって16ビットのアドレスADDをコントローラ200へ送信する。このアドレスADDは、メモリセルアレイ110において消去対象となるブロックを指定するためのアドレスであり、アドレスレジスタ290に保持される。その後、ホスト機器500は信号/CSをデアサートする。
上記(1)の動作に引き続いて上記(2)の動作が実行される。本動作におけるコマンドシーケンスは、読み出し動作時に説明した図9と同様である。またホスト機器500は、受信したステータスデータST_DATにおいて、メモリシステム1がレディ状態であることが示されていれば、続いてデータの消去がパスしたかフェイルしたかに関する情報を要求する。
図16は、上記(1)の動作時におけるNANDバス上の各種信号のタイムチャートである。消去コマンドCMD_ERを受信したコントローラ200では、例えばシーケンサ250の制御に従って、NANDインターフェース回路230が消去コマンド“60h”を発行し、NAND型フラッシュメモリ100へ送信する。引き続き、例えば3サイクルにわたってアドレスADDをNAND型フラッシュメモリ100へ送信し、更に消去コマンド“D0h”を発行して、これをNAND型フラッシュメモリ100へ送信する。
コマンド“D0h”に応答して、NAND型フラッシュメモリ100内では、メモリセルアレイ110のデータの消去動作が開始され、NAND型フラッシュメモリ100はビジー状態となる(/RB=“L”)となる。
データの消去が完了すると、NAND型フラッシュメモリ100はレディ状態となる。これに応答してコントローラ200は、ステータス読み出しコマンド“70h”を発行し、信号/REをトグルさせる。すると、信号/REに同期して、消去動作がパスしたかフェイルしたかを示すステータスデータST_DATがコントローラ200に転送される。このステータスデータST_DATは特徴テーブルに保持され、上記(2)のGet featureコマンドによってホスト機器500に読み出される。
3.特徴テーブルとパラメータページについて
3.1 特徴テーブルについて
次に、特徴テーブルについて説明する。図17は、本実施形態に係る特徴テーブルの一例を示す概念図である。図示するように、特徴テーブルは例えば3つのエントリを含み、各エントリは8ビット長である。そして、各エントリにはアドレス“B0h”、“C0h”、及び“10h”が割り当てられている。
アドレス“B0h”のエントリは、最下位ビットから順に以下の情報が割り当てられている。すなわち、
・ビット0:未使用
・ビット1=HSE(High Speed Mode Enable):NAND型フラッシュメモリ100におけるページ読み出しについての高速モードに関するフラグであり、“0”で通常モード、“1”で高速モードを示す。高速モードは、シーケンシャルなページ読み出し(ページアドレスの連続した複数のページに対する読み出し)において可能であり、通常モードに比べてメモリセルアレイ110から高速にデータを読み出すことが出来る。
・ビット2=BBI(Bad Block Inhibit):バッドブロック禁止機能が有効か否かを示すフラグであり、“0”は無効を示し、“1”でバッドブロックは使用禁止とされる。
・ビット3:未使用
・ビット4=ECC_E(ECC Enable):メモリシステム1内のECC機能(本例であると、ECC回路620)がイネーブルかディセーブルかを示すフラグであり、“0”はディセーブルを示し、“1”はイネーブルを示す。
・ビット5:未使用
・ビット6=IDR_E(ID Read Enable):パラメータページ読み出しを行うか否かを示すフラグであり、“0”は通常動作を示し、“1”はパラメータページ読み出しを示す。パラメータページの詳細については後述する。
・ビット7=PRT_E(Block Protect Enable):NAND型フラッシュメモリ100におけるブロックプロテクト機能が有効であるか否かを示すフラグであり、“0”で無効、“1”で有効を示す。有効の場合、メモリシステム1は、ホスト機器の発行するプロテクト実行コマンドを受信可能である。
アドレス“10h”のエントリは以下の通りである。すなわち、
・ビット0=OIP(Operation in Progress):メモリシステム1がレディ状態であるかビジー状態であるかを示すフラグであり、“0”でレディ状態、“1”でビジー状態を示す。
・ビット1=WEL(Write Enable Latch):データの書き込みがイネーブルであるかディセーブルであるかを示すフラグであり、“0”でディセーブル、“1”でイネーブルを示す。
・ビット2=ERS_F(Erase Fail):データの消去動作がフェイルしたか否かを示すフラグであり、“0”でパス、“1”でフェイルを示す。
・ビット3=PRG_F(Program Fail):データの書き込み動作がフェイルしたか否かを示すフラグであり、“0”でパス、“1”でフェイルを示す。
・ビット4、5=ECCS(ECC status):コントローラ200におけるエラー訂正結果を示し、“00”はエラーが検出されなかったことを示し、“01”及び“11”はエラーが訂正されたことを示し、“10”はエラーを訂正出来なかったことを示す。なお、“01”は、訂正されたエラービット数が、後述するBFDで指定された閾値未満であったことを示し、“11”は閾値以上であったことを示す。
・ビット6、7=未使用。
アドレス“10h”のエントリは以下の通りである。すなわち、
・ビット0〜3=未使用
・ビット4〜7=BFD0〜BFD3:ホスト機器500によって予め設定されたエラービット数の閾値。
3.2 Set Featureコマンドについて
上記図17で説明した各エントリの値は、特徴テーブルセットコマンド(Set feature コマンドと呼ぶ)によってホスト機器500が任意に設定出来る。
図18は、特徴テーブルのいずれかのエントリに値をセットする際のSPIバス上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSをアサートすると共に、Set featureコマンドCMD_SFを信号SIとして発行し、更にクロックSCKを発行する。
引き続きホスト機器500は、例えば8クロックサイクルにわたってアドレスADDをコントローラ200へ送信する。このアドレスADDは、特徴テーブル内において値が設定されるエントリを指定するアドレスであり、図17の例であると“B0h”、“C0h”、または“10h”である。引き続きホスト機器500は、指定されたエントリに保持させる8ビットデータST_DATを送信する。例えば、アドレスとして“B0h”を指定し、データST_DATの4ビット目を“0”とすれば、特徴テーブルにおけるフラグECC_Eが“0”に設定され、これに基づき例えばシーケンサ250はECC回路620をディセーブルとする。
3.3 パラメータページについて
次にパラメータページについて説明する。コントローラ200におけるパラメータページレジスタ610は、メモリシステム1に固有の情報を保持する。図19は、パラメータページに含まれる情報の一例を示している。
図示するように、パラメータページにおける各バイト位置には下記の情報が含まれる。すなわち、
・0〜31バイト:未使用
・32〜43バイト:NAND型フラッシュメモリ200の製造者情報
・44〜63バイト:デバイスモデル情報
・64バイト:製造者ID
・65〜79バイト:未使用
・80〜83バイト:1ページあたりのバイト数(すなわち1ページサイズ)
・84〜85バイト:1ページあたりのスペア領域のバイト数であり、スペア領域とは、1ページ内において、正味のユーザデータ以外の管理情報や制御情報等を保持可能な領域である。
・86〜89バイト:partialページあたりのバイト数
・90〜91バイト:partialページあたりのスペア領域のバイト数
・92〜95バイト:1ブロックあたりの総ページ数
・96〜99バイト:論理ユニットあたりの総ブロック数
・100バイト:論理ユニットの数
・101バイト:未使用
・102バイト:1メモリセルの保持可能なビット数
・103〜104バイト:ユニットあたりに許される最大バッドブロック数
・105〜106:ブロックの信頼性情報
・107バイト:使用開始時において保証される有効ブロック数
・108〜109バイト:未使用
・110バイト:1ページあたりのプログラム回数
・111バイト:未使用
・112バイト:ホスト側にて必要なECC訂正ビット数
・113〜127バイト:未使用
・128バイト:入出力ピン容量
・129〜132バイト:未使用
・131〜132バイト:プログラムキャッシュタイミング情報
・133〜134バイト:最大ページプログラム時間tPROG
・135〜136バイト:最大ブロック消去時間tBERS
・137〜138バイト:最大ページ読み出し時間tR
・139〜253バイト:未使用
・254〜255バイト:CRC情報
・256〜511バイト:0〜255バイトの値
・512〜767バイト:0〜255バイトの値
上記の情報は、例えばコントローラ200またはメモリシステム1製造時に、製造メーカーによって出荷前に例えばテスター等によって書き込まれる。
4.パラメータページの読み出し動作について
次に、ホスト機器500が上記パラメータページをメモリシステム1から読み出す際の動作について説明する。パラメータページの読み出し動作は、大まかには以下の6ステップを含む。すなわち、
(1)Set featureにより、IDR_Eを“1”にセットする:本動作により、パラメータページ読み出し動作がイネーブルとされる。
(2)パラメータページレジスタ610からのデータ読み出し:本動作により、パラメータページレジスタ610からパラメータページデータが読み出され、コントローラ200内のデータバッファ260及び/または270レジスタに格納される。
(3)特徴テーブル読み出し(Get featureと呼ぶことがある):本動作により、メモリシステム1がビジー状態であるかレディ状態であるか、すなわち上記(2)の動作が完了したか否かが判定される。
(4)コントローラ200によるパラメータページデータの更新:本動作により、パラメータページデータが、例えば特徴テーブル内の情報に基づき、必要に応じて更新される。
(5)コントローラ200からのデータ読み出し:本動作により、(4)で必要に応じて更新されたパラメータページデータがホスト機器500に読み出される。
(6)Set featureにより、IDR_Eを“0”にセットする:本動作により、パラメータページ読み出し動作がディセーブルとされる。
以下、図20及び図21を用いて説明する。図20は、読み出し動作時におけるホスト機器500、コントローラ200、及びNAND型フラッシュメモリ100の動作を示すフローチャートであり、図21はコマンドシーケンスである。
図示するように、まずホスト機器500がSet featureコマンドCMD_SFを発行し、アドレスADD(=“B0h”)を発行し、更にIDR_E=“1”を含むエントリデータを送信する。この結果、コントローラ200のシーケンサ250は、特徴テーブル内のIDR_Eを“0”から“1”に変更する。これにより、メモリシステム1はパラメータページ読み出しモードとなる。
次にホスト機器500は、第1読み出しコマンドCMD_RD1を発行し、引き続きアドレスADDを発行する。このアドレスに応答して、メモリシステム1はビジー状態となり、特徴テーブルにおけるOIPは“1”となる。またホスト機器500は、Get featureコマンドCMD_GF及びアドレスADD(=“C0h”)を発行し、特徴テーブルからOIPを含むエントリの情報(1バイトデータ)を読み出す。このエントリ情報は、クロックSCKが入力されている期間、OIPが“0”になるまで繰り返しホスト機器500へ送信される(Get featureコマンドを繰り返し発行しても良い)。
メモリシステム1がビジー状態となると共に、コントローラ200はパラメータページレジスタが保持しているパラメータページデータをデータバッファ260及び/または270に転送する。そして例えばシーケンサ250が、特徴テーブル内の情報と、データバッファ260または270内に保持するパラメータページデータとを比較し、両者の情報が一致しているか否かを確認する。そして、両者が一致していない場合、パラメータページデータを、特徴テーブル内の情報に一致するよう、更新する(ステップS12)。
例えばこの更新が完了するとメモリシステム1はレディ状態となり、例えばシーケンサ250は、特徴テーブル内のOIPを“1”から“0”にセットする。
OIPが“0”になったことに応答して、ホスト機器500は、第2読み出しコマンドCMD_RD2を発行して、データバッファ260または270内のパラメータページデータを、コントローラ200から読み出す。
その後、ホスト機器500は再度Set featureコマンドCMD_STを発行して、特徴テーブルにおけるIDR_Eを“1”から“0”に変更し、メモリシステムを通常モードに戻す。
図22は、上記パラメータページの読み出し動作の具体例を示している。本例では、特徴テーブルにおいてECC_Eはデフォルトで“1”、つまりECC回路620がイネーブルとされ、パラメータページでは“Number of ECC bits”は“0”である例を示す。つまり、原則としてメモリシステム1でECC処理が行われるため、ホスト機器500でECC処理が必要とされるビット数(ホスト機器に対して求められるエラー訂正ビット数)は0ビットとされている。
このような例において、Set featureコマンドにより、ECC_Eが“0”とされ、ECC回路620がdisableとされた場合を仮定する。そして図22では一例として、ホスト機器500がパラメータページの112バイト目に格納されている“Number of ECC bits”を読み出す場合を示している。
図示するように、パラメータページレジスタ610に保持されるパラメータページデータは、そのままデータバッファ260、270に転送される。この時点において、パラメータページデータにおける“Number of ECC bits”は“0”である。
しかしシーケンサ250は特徴テーブルのECC_Eを参照する。すると、ECC_Eは“0”であり、メモリシステム1におけるECC機能がディセーブルとされていることが分かる。つまり、この状況は、ホスト機器500においてECC処理が必要な状況だと分かる。そこでシーケンサ250は、読み出したパラメータページデータにおける“Number of bits”を“0”から“8”に更新する(本例では、セクタ毎のECCビット数が8ビットである場合を仮定する)。
そしてコントローラ200は、ホスト機器500からのコマンド入力に従い、“8”に更新された“Number of ECC bits”を送信する。これによりホスト機器500は、コントローラ200から読み出したデータにつき、ホスト機器500自身がセクタあたり最大8ビットのエラー訂正を行う必要があることを把握出来る。
5.本実施形態に係る効果
本実施形態によれば、ホスト機器500は常にメモリシステム1の最新の状態を把握し、最適な動作を実行出来る。本効果につき、以下説明する。
本実施形態に係る構成であると、メモリシステム1は、ページサイズやページ内の冗長部のサイズ、あるいはホスト側のプロセッサに要求されるECCの訂正能力、更には書き込み時間等のタイミング仕様に関する情報を保持している。これらの情報は、例えばメモリシステム1の出荷時に書き込まれ、更新されることは無い。そしてホスト機器500は、これらの情報が必要になった際、パラメータページの読み出し動作によって、これらの情報を読み出すことが出来る。
また本実施形態に係る構成であると、ホスト機器500は、Set featureコマンド等により、メモリシステム1の設定を変更することが出来る。すると、ホスト機器500がパラメータページデータをメモリシステム1に要求した際におけるメモリシステム1の設定と、パラメータページレジスタ610に保持されているパラメータページデータの設定とが一致しない場合があり得る。これは、図22の例で説明した通りである。
この点、本実施形態では、パラメータページレジスタ610から読み出したパラメータページデータを、コントローラ200は特徴テーブル内の情報に基づいて最新の情報に更新する。そして、ホスト機器500からの要求に従い、更新されたパラメータページデータを送信する。従って、ホスト機器500は常にメモリシステム1の最新の状態を把握し、最適な動作を実行出来る。
もちろん、パラメータページレジスタ610から読み出されたパラメータページデータが、特徴テーブル内の情報と一致する場合には、パラメータページデータを更新する必要は無い。
このように本実施形態によれば、パラメータページ内の設定情報を固定値としつつも、ホスト機器500には最新情報を提供出来る。
6.変形例等
以上のように、上記実施形態に係るメモリシステムは、ホスト機器からチップセレクト信号(/CS in 図4)を受信可能な第1ピン(Pin No.1 in 図4)と、ホスト機器へ第1信号(SO in 図4)を出力可能な第2ピン(Pin No.2 in 図4)と、ホスト機器から第2信号(SI in 図4)を受信可能な第3ピン(Pin No.5 in 図4)と、ホスト機器からクロック(SCK in 図4)を受信可能な第4ピン(Pin No.6 in 図4)と、アサートされたチップセレクト信号が受信された直後に第3ピンで受信された第2信号をコマンドとして認識するインターフェース回路(210,220 in 図6)と、データを保持可能なメモリセルを含み、ページ単位でデータが読み出されるメモリセルアレイ(100 in 図6)と、メモリシステムの設定情報を保持するテーブル(feature table in 図17)と、前記メモリシステムの第1データを保持するレジスタ(parameter page register in 図6)を備える。そしてメモリシステムは、レジスタから読み出された第1データ(parameter page in 図19)を、テーブル(feature table)内の設定情報に基づいて更新(S12 in 図20)し、更新された第1データを前記ホスト機器へ送信可能である。
本構成によれば、レジスタから読み出されたパラメータページデータを、特徴テーブル内の情報に基づいて更新し、更新されたパラメータページデータをホスト機器へ送信する。これにより、メモリシステムは正しい情報をホスト機器へ提供することが出来る。
なお、実施形態は、上記説明した実施形態が唯一のものでは無く、種々の変形が可能である。例えば上記実施形態では、特徴テーブルにおけるECC_Eに応じて、読み出したパラメータページデータにおける“Number of ECC bits”を更新する場合を例に説明した。しかし、このような例に限定されない。例えば、メモリシステム1のECC機能がディセーブルとされた場合、ECCデータ(パリティ等)をメモリセルアレイ110に書き込む必要が無い。従って、ECCデータ用の領域をユーザ領域として使用出来る可能性がある。すなわち、ECC_E=“0”の場合には、ECC_E=“1”の場合に比べて、ページサイズを大きく出来る可能性がある。従ってこのような場合には、図19で説明したパラメータページデータにおける80〜83バイトの“Number of data bytes per page”及び/または“Number of spare bytes per page”を更新しても良い。
また、メモリシステム1において読み出しモードが複数用意されている場合(例えば読み出し速度の異なる複数のモード)には、パラメータページデータにおける例えば129〜130バイトのタイミングモードや、137〜138バイトの最大読み出し時間が更新されても良い。また、133〜134バイトの最大書き込み時間が更新される場合であっても良く、メモリシステム1の特性に応じて、パラメータページデータの任意の情報が更新されて良い。
また、パラメータページデータには、固定値をとり続けるものと、変更可能であるものとが含まれる。そして、パラメータページデータを更新する際には、コントローラ200はパラメータページデータと特徴テーブルとが比較される。この際、シーケンサ250は、予め、パラメータページデータの各エントリと、特徴ページの各ビットとの対応関係を保持していても良い。例えばシーケンサ250は、特徴テーブルのECC_Eを、パラメータページデータの“Number of ECC bits”、“Number of data bytes per page”、及び“Number of spare bytes per page”に関連付ける。そして、ECC_Eが変更された場合に、これに関連付けられたパラメータページデータの情報を更新する。
更に上記実施形態では、パラメータページの読み出し時のシーケンスが、その他の通常データの読み出し時と同じである場合を例に説明した。しかしホスト機器500は、パラメータページの読み出し時には、通常データの読み出し時とは異なるコマンドを発行しても良いし、また異なる通常データの読み出し時とは異なるシーケンスにより読み出し動作が実行されても良い。
更に、図17を用いて説明した特徴テーブル及び図19を用いて説明したパラメータページは一例に過ぎず、図示した情報の一部のみを含む場合であっても良いし、またはその他の情報を含む場合であっても良い。
更に、上記実施形態ではパラメータページレジスタ610内のパラメータページデータは固定値であり、書き換えられない場合を例に説明した。しかし、コントローラ200においてパラメータページデータが更新された際には、これが新たなパラメータページデータとしてパラメータページレジスタ610に書き込まれる場合であっても良い。
また、例えば上記実施形態では、NAND型フラッシュメモリ100とコントローラ200とが別々の半導体チップである場合を例に説明した。しかし、これらはワンチップで形成されても良い。この場合のメモリシステム1のブロック図を図23に示す。
図示するように、ブロック構成は、図7と同様であるが、ホスト機器500からの信号SCK、/CS、/HOLD、及び/WPがロジック回路470に入力され、信号SI及びSOは入出力制御回路460を介して入出力される。そして、レジスタ410〜430、制御回路440及び460、並びにロジック回路470がコントローラ200の機能を果たす。すなわち、制御回路440がシーケンサ250及びホストインターフェース回路220としての機能を果たし、信号/CSによりホスト機器500からの命令を判別する。入出力制御回路460及びロジック回路470は、ホスト入出力回路210として機能する。レジスタ410及び420はレジスタ280及び290として機能し、特徴テーブルは、例えばステータスレジスタ410等に保持される。
また、パラメータページデータはNAND型フラッシュメモリ100に保持されていても良い。すなわち、コントローラ200がNAND型フラッシュメモリ100からパラメータページを読み出す構成であり、読み出しの際にECC回路620がパラメータページデータのECC復号を実施する構成であっても良い。
また、図6及び図7で説明した構成において、ECC回路620がNAND型フラッシュメモリ100に含まれていても良い。すなわち、NAND型フラッシュメモリ100がエラーの検出及び訂正を行う構成であっても良い。この際、例えばNAND型フラッシュメモリ100がパラメータページデータに対してECC処理を実行しても良い。
また、上記実施形態で説明したフローチャートにおける各処理は、可能な限りその順番を入れ替えることが出来る。更に、上記実施形態で説明したタイミングチャートも一例に過ぎず、信号SIを入力する際に必要なクロック数や、信号SOを出力する際に必要なクロック数も、上記実施形態に限定されるものでは無い。また、コマンドによっては、直後にダミービットが入力される例を示しているが、この場合に限定されるものでは無い。これは特徴テーブルについても同様であり、上記実施形態で説明した情報を保持出来るものであれば、上記実施形態で説明した形式に限定されない。
また、上記実施形態で説明したメモリシステムは、例えばテレビやセットトップボックス等のアプリケーションを起動するために用いることも出来る。図24はそのようなシステムの例を示す。本例であると、メモリシステム1の他に、NOR型フラッシュメモリ2が用意され、メモリシステム1及びNOR型フラッシュメモリ2は、共に共通にSPIインターフェースによって接続される。本例では、メモリシステム1を制御するためのコマンド(コマンドCMD_RD1、CMD_RD2、CMD_GF、CMD_SF等)がNOR型フラッシュメモリ2に保持されている。そして、ホスト機器500起動時に、ホスト機器500内のROMの保持するシーケンスによって、ホスト機器500はNOR型フラッシュメモリ2から上記コマンド情報を読み出す。そして、このコマンド情報を用いて、ホスト機器500はメモリシステム1から起動シーケンスを読み出し、これを実行してアプリケーションが起動される。
あるいは、ホスト機器500のROM内にメモリシステム1のコマンド情報が保持されていれば、図25に示すようにNOR型フラッシュメモリ2が廃されても良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、100…NAND型フラッシュメモリ、200…コントローラ、210…ホスト入出力回路、220…ホストインターフェース回路、230…NANDインターフェース回路、240…NAND入出力回路、250…シーケンサ、260、270…データバッファ、280,410…ステータスレジスタ、290,420…アドレスレジスタ、300…リードフレーム、340…ボンディングワイヤ、350…封止樹脂、430…コマンドレジスタ、440…制御回路、450…電圧発生回路、460…入出力制御回路、470…ロジック回路、500…ホスト機器、610…パラメータページレジスタ、620…ECC回路

Claims (11)

  1. メモリシステムであって、
    ホスト機器からチップセレクト信号を受信可能な第1ピンと、
    前記ホスト機器へ第1信号を出力可能な第2ピンと、
    前記ホスト機器から第2信号を受信可能な第3ピンと、
    前記ホスト機器からクロックを受信可能な第4ピンと、
    データを保持可能なメモリセルを含み、ページ単位でデータが読み出されるメモリセルアレイを含むNANDフラッシュメモリと、
    SPI(Serial Peripheral Interface)に準拠したバスにより前記ホスト機器と接続可能であり、且つNANDインターフェースに準拠したバスにより前記NANDフラッシュメモリと接続されており、アサートされた前記チップセレクト信号が受信された直後に前記第3ピンで受信された前記第2信号をコマンドとして認識するインターフェース回路と、前記メモリシステムの設定情報を保持するテーブルと、前記メモリシステムの第1データを保持するレジスタと、を含み、前記レジスタから読み出された前記第1データを、前記テーブル内の前記設定情報に基づいて更新し、前記更新された第1データを前記ホスト機器へ送信可能であるコントローラと
    を具備し、前記第1データは、前記メモリシステムに固有の情報であるメモリシステム。
  2. 前記ホスト機器によってイネーブルまたはディセーブルとされるECC回路を更に備え、
    前記テーブルは、前記ECC回路が前記ホスト機器によってイネーブルとされているかディセーブルとされているかを示す第1情報を含み、
    前記第1データは、前記ホスト機器に求めるエラー検出ビット数に関する第2情報を含み、
    前記レジスタから読み出された前記第1データにおける前記第2情報は、前記第1情報に基づいて更新されて、前記ホスト機器へ送信される、請求項1記載のメモリシステム。
  3. 前記レジスタに保持される前記第1データにおける前記第2情報は、前記ECC回路がイネーブルである際に前記ホスト機器に求めるエラー検出ビット数を示し、
    前記テーブルにおける前記第1情報が、前記ECC回路がディセーブルとされていることを示している場合、前記読み出された第1データにおける前記第2情報が更新される、請求項記載のメモリシステム。
  4. 前記ホスト機器によってイネーブルまたはディセーブルとされるECC回路を更に備え、
    前記テーブルは、前記ECC回路が前記ホスト機器によってイネーブルとされているかディセーブルとされているかを示す第1情報を含み、
    前記第1データは、前記NANDフラッシュメモリのページサイズを示す第2情報を含み、
    前記レジスタから読み出された前記第1データにおける前記第2情報は、前記第1情報に基づいて更新されて、前記ホスト機器へ送信される、請求項1記載のメモリシステム。
  5. 前記レジスタに保持される前記第1データにおける前記第2情報は、前記ECC回路がイネーブルである際におけるページサイズを示し、
    前記テーブルにおける前記第1情報が、前記ECC回路がディセーブルとされていることを示している場合、前記読み出された第1データにおける前記第2情報が更新される、請求項記載のメモリシステム。
  6. 前記レジスタの前記第1データは、前記ECC回路の状態が前記ホスト機器によって変更された場合であっても書き換えられない、請求項乃至いずれか1項記載のメモリシステム。
  7. 前記ホスト機器は、前記レジスタから前記第1データを読み出す際には第1コマンドを発行し、
    前記第1データと異なる第2データを読み出す際には、前記第1コマンドと異なる第2コマンドを発行する、請求項1乃至いずれか1項記載のメモリシステム。
  8. 前記コントローラは、前記クロックに同期して前記第2信号を受信し、前記チップセレクト信号がアサートされた後の最初のクロックに同期して受信した前記第2信号を前記コマンドと認識する、請求項1乃至いずれか1項記載のメモリシステム。
  9. 前記コントローラは第1半導体チップに実装され、
    前記NANDフラッシュメモリは、前記第1半導体チップと異なる第2半導体チップに実装される、請求項1乃至いずれか1項記載のメモリシステム。
  10. 前記コントローラ及び前記NANDフラッシュメモリは、同一の半導体チップ内に実装される、請求項1乃至いずれか1項記載のメモリシステム。
  11. 前記コントローラは、前記ホスト機器からの命令に応答して、前記テーブル内の前記設定情報を更新し、
    前記レジスタから前記第1データをバッファメモリに読み出し、前記レジスタ内の前記第1データはそのままに、前記バッファメモリ内の前記第1データの値を前記更新された設定情報に基づいて更新し、
    前記ホスト機器からの命令に応答して、前記更新された第1データを前記ホスト機器に送信する、請求項1記載のメモリシステム。
JP2015169449A 2015-08-28 2015-08-28 メモリシステム Active JP6542076B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015169449A JP6542076B2 (ja) 2015-08-28 2015-08-28 メモリシステム
TW105104792A TWI618077B (zh) 2015-08-28 2016-02-18 Memory system
US15/062,011 US10289482B2 (en) 2015-08-28 2016-03-04 Memory device that updates parameters transmitted to a host based on operational settings

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015169449A JP6542076B2 (ja) 2015-08-28 2015-08-28 メモリシステム

Publications (2)

Publication Number Publication Date
JP2017045394A JP2017045394A (ja) 2017-03-02
JP6542076B2 true JP6542076B2 (ja) 2019-07-10

Family

ID=58095534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015169449A Active JP6542076B2 (ja) 2015-08-28 2015-08-28 メモリシステム

Country Status (3)

Country Link
US (1) US10289482B2 (ja)
JP (1) JP6542076B2 (ja)
TW (1) TWI618077B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102532528B1 (ko) * 2016-04-07 2023-05-17 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
CN114035749B (zh) * 2018-01-12 2023-02-28 珠海极海半导体有限公司 电子设备和Flash存储器
KR20200060155A (ko) * 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102670866B1 (ko) * 2018-11-28 2024-05-30 삼성전자주식회사 복수의 메모리 플레인들을 포함하는 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템
US11200118B2 (en) * 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
US10963336B2 (en) 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
JP2021149998A (ja) * 2020-03-23 2021-09-27 キオクシア株式会社 メモリシステムおよび情報機器
KR20230062172A (ko) * 2021-10-29 2023-05-09 삼성전자주식회사 메모리 장치, 이를 포함하는 메모리 모듈 및 메모리 컨트롤러의 동작 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4261462B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 不揮発性メモリシステム
JP4695385B2 (ja) * 2004-11-30 2011-06-08 株式会社東芝 メモリカードおよびカードコントローラ
US20060218467A1 (en) * 2005-03-24 2006-09-28 Sibigtroth James M Memory having a portion that can be switched between use as data and use as error correction code (ECC)
US8102710B2 (en) * 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for setting access and modification for synchronous serial interface NAND
WO2012001917A1 (ja) * 2010-06-29 2012-01-05 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
JP2012203940A (ja) 2011-03-24 2012-10-22 Toshiba Corp 半導体記憶装置及びその動作環境設定方法
US8972826B2 (en) * 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
JP2014102867A (ja) * 2012-11-20 2014-06-05 Toshiba Corp 半導体記憶装置及びその制御方法
JP6047033B2 (ja) 2013-02-25 2016-12-21 ルネサスエレクトロニクス株式会社 Lsiおよび情報処理システム
US9436549B2 (en) * 2014-07-31 2016-09-06 Sandisk Technologies Llc Storage module and method for improved error correction by detection of grown bad bit lines
US9542269B1 (en) * 2015-06-29 2017-01-10 SK Hynix Inc. Controller controlling semiconductor memory device and operating method thereof

Also Published As

Publication number Publication date
US10289482B2 (en) 2019-05-14
TW201709214A (zh) 2017-03-01
JP2017045394A (ja) 2017-03-02
US20170060477A1 (en) 2017-03-02
TWI618077B (zh) 2018-03-11

Similar Documents

Publication Publication Date Title
JP6542076B2 (ja) メモリシステム
JP6527054B2 (ja) メモリシステム
US10445174B2 (en) Memory device that communicates error correction results to a host
US10353852B2 (en) Memory system that stores data redundantly
JP6542075B2 (ja) メモリシステム
US10732863B2 (en) Memory system storing block protection information
US10235070B2 (en) Memory system having a semiconductor memory device with protected blocks
JP2017045288A (ja) メモリシステム
US9747994B2 (en) Memory system
US10884668B2 (en) Memory system
US9620230B2 (en) Memory device that performs an advance reading operation

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170525

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180727

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190612

R150 Certificate of patent or registration of utility model

Ref document number: 6542076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350