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

メモリシステム Download PDF

Info

Publication number
JP2017045415A
JP2017045415A JP2015169678A JP2015169678A JP2017045415A JP 2017045415 A JP2017045415 A JP 2017045415A JP 2015169678 A JP2015169678 A JP 2015169678A JP 2015169678 A JP2015169678 A JP 2015169678A JP 2017045415 A JP2017045415 A JP 2017045415A
Authority
JP
Japan
Prior art keywords
command
block
memory system
host device
signal
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
Application number
JP2015169678A
Other languages
English (en)
Inventor
俊輔 小寺
Shunsuke Kodera
俊輔 小寺
敏彦 北爪
Toshihiko Kitazume
敏彦 北爪
加田 憲一郎
Kenichiro Kada
憲一郎 加田
伸広 辻
Nobuhiro Tsuji
伸広 辻
武田 慎也
Shinya Takeda
慎也 武田
哲也 岩田
Tetsuya Iwata
哲也 岩田
良雄 古山
Yoshio Furuyama
良雄 古山
洋介 奈良井
Yosuke Narai
洋介 奈良井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2015169678A priority Critical patent/JP2017045415A/ja
Priority to TW105103845A priority patent/TWI633459B/zh
Priority to US15/051,882 priority patent/US10310755B2/en
Priority to US15/439,859 priority patent/US10235070B2/en
Publication of JP2017045415A publication Critical patent/JP2017045415A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/066Means for reducing external access-lines for a semiconductor memory clip, e.g. by multiplexing at least address and data signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)

Abstract

【課題】ブロックに対する保護処理を単独の処理として実行することができるメモリシステムを提供する。
【解決手段】一実施形態のメモリシステムは、ホスト機器からのチップセレクト信号/CSの受信直後に受信される信号をコマンドとして認識するインターフェース回路210,220と、メモリ100と、インターフェース回路210,220により認識されたコマンドがメモリ100上のあるブロックの保護を要求する特定コマンドである場合に、当該ブロックを保護するための処理を実行する制御部250とを備える。
【選択図】図21

Description

実施形態は、メモリシステムに関する。
記憶デバイスとして、NAND型フラッシュメモリが広く知られている。
Toshiba Datasheet, TC58NVG0S3HTA00, 2012年8月31日 Toshiba Datasheet, TC58BVG0S3HTA00, 2012年8月31日
ブロックに対する保護処理を単独の処理として実行することができるメモリシステムを提供する。
実施形態のメモリシステムは、ホスト機器からのチップセレクト信号の受信直後に受信される信号をコマンドとして認識するインターフェース回路と、メモリと、前記インターフェース回路により認識されたコマンドが前記メモリ上のあるブロックの保護を要求する特定コマンドである場合に、当該ブロックを保護するための処理を実行する制御部とを備える。
図1は、第1実施形態に係るメモリシステムの外観図である。 図2は、第1実施形態に係るメモリシステムの断面図である。 図3は、第1実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。 図4は、第1実施形態に係るメモリシステムの外観図である。 図5は、第1実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。 図6は、第1実施形態に係るメモリシステムのブロック図である。 図7は、第1実施形態に係る半導体記憶装置のブロック図である。 図8は、第1実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図9は、第1実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図10は、第1実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図11は、第1実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。 図12は、第1実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。 図13は、第1実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。 図14は、第1実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。 図15は、第1実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。 図16は、第1実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。 図17は、第1実施形態に係るメモリシステムのNAND型フラッシュメモリにおける保護対象のブロックを示す情報の記憶方法の一例を示す概念図である。 図18は、第1実施形態に係るメモリシステムのブロック保護時における各種信号のタイミングチャートである。 図19は、第1実施形態に係るメモリシステムのブロック保護動作を示すフローチャートである。 図20は、第1実施形態に係るメモリシステムのブロック保護動作時におけるコマンドシーケンスである。 図21は、第1実施形態に係るメモリシステムのブロック保護動作におけるコマンド識別処理を示すフローチャートである。 図22は、第1実施形態に係るメモリシステムのブロック保護動作完了後の動作を示すフローチャートである。 図23は、第1及び第2実施形態の変形例に係るメモリシステムのブロック図である。 図24は、第1及び第2実施形態に係るメモリシステムを利用したシステムの概念図である。 図25は、第1及び第2実施形態に係るメモリシステムを利用したシステムの概念図である。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
1.第1実施形態
第1実施形態に係るメモリシステムについて説明する。
1.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.1.2 コントローラ200の構成について
次に、コントローラ200の構成の詳細につき、引き続き図6を用いて説明する。図示するようにコントローラ200は、ホスト入出力回路210、ホストインターフェース回路220、NANDインターフェース回路230、NAND入出力回路240、シーケンサ(ステートマシン)250、データバッファ260、270、ステータスレジスタ280、アドレスレジスタ290、ブロックプロテクションレジスタ700、及び周辺回路600を備えている。
ホスト入出力回路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内の特徴テーブルを更新する。
ブロックプロテクションレジスタ700は、ブロックの保護情報を保存する。例えば、ホスト機器500からブロック保護要求があった際には、保護対象ブロックを示すエントリに、フラグ情報を書き込む。フラグ情報は、ブロックを保護する場合“1”、保護しない場合は“0”といった設定となる。
周辺回路600は、外部から電源電圧Vccを受信し、各回路ブロックへ転送すると共に、コントローラ200の動作に必要なその他の制御を行う。
1.1.3 NAND型フラッシュメモリ100の構成について
次に、NAND型フラッシュメモリ100の構成について、図7を用いて説明する。図7は、NAND型フラッシュメモリ100のブロック図である。
図示するようにNAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、センスアンプ130、データレジスタ140、カラムデコーダ150、ECC回路400、ステータスレジスタ410、アドレスレジスタ420、コマンドレジスタ430、制御回路440、電圧発生回路450、入出力制御回路460、ロジック回路470、及びデータレジスタ480を備えている。
メモリセルアレイ110は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを備えている。そして、同一行にあるメモリセルは同一のワード線に接続され、同一列にあるメモリセルは同一のビット線に接続される。データの読み出し及び書き込みは、同一のワード線に接続された複数のメモリセルに対して一括して行われる。この単位をページと呼ぶ。1ページ分のデータは、正味のデータと管理データとを含む。正味のデータは、セクタと呼ばれる単位で管理される。例えば本例では、1ページは4つのセクタを含み、各セクタは512バイトのデータサイズを有する。管理データは、例えばエラー訂正のためのECCデータ(パリティ)を含む。エラー訂正はセクタ毎に行われる。従って管理データは、セクタ毎に用意されたECCデータを含む。また、データの消去は、複数のページ単位で一括して行われる。この単位をブロックと呼ぶ。
ロウデコーダ120は、メモリセルアレイ110のロウ方向を指定するロウアドレスをデコードする。そして、デコード結果に応じてワード線を選択し、データの書き込み、読み出し、及び消去に必要な電圧を印加する。
センスアンプ130は、データの読み出し時には、メモリセルアレイ110から読み出されたデータをセンスし、データレジスタ140に転送する。データの書き込み時には、データレジスタ140内のデータをメモリセルアレイ110に転送する。
データレジスタ140は、1ページ分の書き込みデータまたは読み出しデータを一時的に保持する。
カラムデコーダ150は、メモリセルアレイ110のカラム方向を指定するカラムアドレスをデコードする。そしてデコード結果に応じて、書き込み時にはデータをデータレジスタに転送し、読み出し時にはデータレジスタからデータを読み出す。
ECC回路400は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書き込み時には、コントローラ200から受信したデータに基づいて、セクタ毎にパリティを生成し、このパリティと正味のデータとをデータレジスタ140に転送する。データの読み出し時には、データレジスタ140から転送されたデータに含まれるパリティに基づき、セクタ毎にシンドロームを生成し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。1セクタにつき訂正可能なエラービット数は、本例では例えば1セクタあたり8ビットである。またECC回路400は、各セクタにおいて検出されたエラービット数を、ステータス情報としてステータスレジスタ410に出力可能である。
ロジック回路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”の場合)には、これをデータレジスタ480に保持させる。
ステータスレジスタ410は、NAND型フラッシュメモリ100の各種ステータス情報を保持する。ステータス情報には、前述のECC回路400から与えられるエラービット数、また制御回路440から与えられる書き込み動作及び消去動作が成功(パス)したか失敗(フェイル)したかを示す情報等が含まれる。
制御回路470は、コマンドレジスタ430に保持されたコマンドと、ロジック回路470に入力された各種信号に基づいて、NAND型フラッシュメモリ100全体を制御する。また制御回路470は、レディ・ビジー信号/RBを発生して、コントローラ200へ出力する。
電圧発生回路450は、制御回路470の命令に基づいて、データの書き込み、読み出し、及び消去動作に必要な電圧を生成し、これをメモリセルアレイ110、ロウデコーダ120、及びセンスアンプ130に供給する。
1.2 動作について
次に、本実施形態に係るメモリシステムにおけるデータの読み出し動作、書き込み動作、及び消去動作につき、SPIバス及びNANDバスで送受信される信号に着目して、以下簡単に説明する。
1.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へ転送される。
1.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に読み出される。
1.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に読み出される。
1.3 ブロック保護について
次に、本実施形態に係るブロック保護について説明する。
1.3.1 ブロック保護の機能について
本実施形態に係るメモリシステム1は、ホスト機器500からNAND型フラッシュメモリ100内のあるユーザブロックの保護を要求する特定コマンドを受けた場合に、当該ブロックを保護するための制御機能を有する。上記特定コマンドをブロック保護コマンドと呼ぶ。また、この場合の保護とは、ホスト機器500が保護対象として指定したユーザブロックに対するデータの消去もしくは書き込みを禁止することである。上記制御機能は、例えばコントローラ200内のシーケンサ250とブロックプロテクションレジスタ700により実現される。この場合、シーケンサ250は、ホストインターフェース回路220により認識されるコマンドがブロック保護コマンドである場合に、当該ブロックを保護するための処理を実行する。
ブロック保護コマンドは、NAND型フラッシュメモリ100内のあるユーザブロックに対するデータの消去もしくは書き込みの禁止を要求するコマンドである。そのコマンドシーケンスに含まれるアドレスは保護対象のブロックを示す。シーケンサ250は、ブロックを保護するための処理を行った後、保護対象のブロックに対する消去コマンドもしくは書き込みコマンドがあった場合には、当該保護対象のブロックに対するデータの消去もしくは書き込みを禁止する。
1.3.2 保護対象のブロックを示す情報の記憶について
コントローラ200には、当該NAND型フラッシュメモリ100上の保護対象のブロックを示す情報を記憶するための記憶領域(ブロックプロテクションレジスタ700)が設けられる。この記憶領域は、例えばホスト機器500側からアクセスすることができない領域である。保護対象のブロックを示す情報は、例えば図17に示すようにブロックプロテクションレジスタ700に記憶される。この場合、保護対象のブロックであるか否かを示す情報として、保護対象のブロックのアドレスに対応したエントリに、フラグが書き込まれる。保護対象となるブロックに対応したエントリには例えば“1”を記憶させ、保護対象でないブロックに対応したエントリには例えば“0”を記憶させるようにしてもよい。
1.3.3 ブロック保護コマンドの種類について
本実施形態では、ブロック保護コマンドとして、Protect Execute コマンド“11h”が用意されている。
Protect execute コマンドは、ホスト機器500が予めコントローラ200で定められた一部のユーザブロックのみを保護対象とすることができるが、それ以外のユーザブロックを保護対象とすることができないコマンドである。
シーケンサ250は、Protect execute コマンドがあった場合、当該Protect execute コマンドが保護を要求するブロックが保護可能なユーザブロックに該当するか否かを判定し、該当しない場合には、当該Protect execute コマンドが要求する処理を実行せずに中止する。
なお、シーケンサ250は、Protect execute コマンドに対し、保護可能なユーザブロックを設定・変更することが可能である。その設定情報は、コントローラ200内の所定の領域に記憶され、ステータスレジスタ280内の特徴テーブルの所定の領域にも記憶される。
また、Protect execute コマンドを使用できるホスト機器500を、シーケンサ250が予め設定できるように構築してもよい。
本実施形態では、処理可能なブロック保護コマンドとしてProtect execute コマンドを処理できるメモリシステムの例を示す。
1.3.4 ブロック保護動作
次にブロック保護動作について説明する。ブロック保護動作は、大まかには以下の2ステップを含む。すなわち、
(1)コントローラ200によるブロック保護動作。
(2)特徴テーブル読み出し(Get feature):本動作により、ブロック保護動作がパスしたかフェイルしたかが判定される。
図18は、上記(1)実行時におけるSPI信号上の各種信号のタイムチャートである。図示するようにホスト機器500は、信号/CSをアサートすると共に、ブロック保護コマンドCMD_BP(“11h”)を信号SIとして発行し、更にクロックSCKを発行する。ブロック保護コマンドCMD_BPを受信したことで、シーケンサ250はブロック保護シーケンスを開始する。
引き続きホスト機器500は、例えば8クロックサイクルにわたって8ビットのダミービットDMY_BITをコントローラ200へ送信し、その後例えば16サイクルにわたって16ビットのアドレスADDをコントローラ200へ送信する。このアドレスADDは、メモリセルアレイ110においてブロック保護対象となるブロックを指定するためのアドレスであり、アドレスレジスタ290に保持される。その後、ホスト機器500は信号/CSをデアサートする。
ブロック保護コマンドCMD_BPを受信したコントローラ200では、例えばシーケンサ250の制御に従って、コントローラ200のブロックプロテクションレジスタ700の対象エントリに対し、ブロック保護を示すフラグを書き込む。
コントローラ200におけるブロック保護動作が完了すると、メモリシステム100はレディ状態となる。ホスト機器500はGet Featureコマンドによって、メモリシステム100がレディ状態となったことを知ることができる。
1.3.5 ブロック保護動作の流れについて
次に、ブロック保護動作の流れの詳細について、図19及び図20を用いて説明する。図19は、ブロック保護動作時におけるホスト機器500、コントローラ200、及びNAND型フラッシュメモリ100の動作を示すフローチャートであり、図20はコマンドシーケンスである。
なお、これからブロック保護を行うNAND型フラッシュメモリ100上のブロックには、すでに前述した書き込み動作によりデータの書き込みがなされているものとする。
図示するように、ホスト機器500は、ブロック保護コマンドであるProtect execute コマンド“11h”を発行する前に、特徴テーブルセットコマンド(Set featureコマンド)“1Fh”を発行すると共に、ライトイネーブルコマンド(Write enableコマンド)“06h”を発行する。
具体的には、ホスト機器500は、Set featureコマンド“1Fh”を発行し、引き続きブロック保護コマンドの有効/無効のいずれかの設定を指示する情報(以下、「B0設定情報」と呼ぶ)を発行する。B0設定情報は、例えばステータスレジスタ280内における特徴テーブル内のアドレス“B0”、及び、このアドレス“B0”に対応するエントリに保持させる情報としてブロック保護コマンドの有効/無効のいずれかの状態を示す値“1”又は“0”を含む。
ここでは、ブロック保護コマンドを有効な状態にするため、ホスト機器500は、B0設定情報として例えば「PRT_E[7]=1」を発行する。するとシーケンサ250は、ブロック保護コマンドの有効を示す値“1”を特徴テーブルの指定されたエントリに反映させる。引き続きホスト機器500は、Write enableコマンド“06h”を発行する。するとシーケンサ250は、データの書き込みがenableであることを示す値“1”を特徴テーブルの指定されたエントリに反映させる。これにより、ホスト機器500はブロック保護コマンドの使用が可能な状態となる。
そしてホスト機器500は、ブロック保護コマンドとしてProtect execute コマンド“11h”を発行し、引き続きアドレスADDを発行する。このアドレスに応答して、メモリシステム1はビジー状態となり、特徴テーブルにおけるOIP(Operation in Progress)は“1”となる。なお、OIPは、メモリシステム1がレディ状態であるかビジー状態であるかを示すフラグであり、“0”でレディ状態、“1”でビジー状態を示す。またホスト機器500は、Get featureコマンド“0Fh”及びアドレス“C0”を発行し、特徴テーブルからOIPを含むエントリの情報(1バイトデータ)を読み出す。このエントリ情報は、クロックSCKが入力されている限り、OIPが“0”になるまで繰り返しホスト機器500へ送信される(Get featureコマンドを繰り返し発行しても良い)。
メモリシステム1がビジー状態となると共に、コントローラ200はホスト機器500から受けたブロック保護コマンドが適正か否かを判定し(ステップS10)、適正ならば、ブロックプロテクションレジスタ700の対象エントリにフラグ情報を書き込む(ステップS20)。
その後、コントローラ200におけるブロック保護設定が完了し、メモリシステム1がレディ状態となり、例えばシーケンサ250は、特徴テーブル内のOIPを“1”から“0”にセットする。
またコントローラ200はブロック保護の実行がパスしたかフェイルしたかを示すステータスデータST_DATを特徴テーブルに記憶させ(ステップS30)、ホスト機器500からGet Featureを受けた場合に、出力する。
一方、上記ステップS10において、ホスト機器500から受けたブロック保護コマンドが適正でなかった場合、コントローラ200はブロックプロテクションレジスタ700へのフラグ書き込みを実行することなく、例えばブロック保護動作がフェイルしたことを示すステータスデータST_DATを特徴テーブルに記憶させる(ステップS30)。そしてメモリシステム1はレディ状態となり、例えばシーケンサ250は、特徴テーブル内のOIPを“1”から“0”にセットする。ホスト機器500からGet Featureを受けた場合、その情報を出力できる。
最後に、ホスト機器500は、Set featureコマンド“1Fh”を発行し、ブロック保護コマンドを無効な状態にするため、B0設定情報として例えば「PRT_E[7]=0」を発行する。するとシーケンサ250は、ブロック保護コマンドの無効を示す値“0”を特徴テーブルの指定されたエントリに反映させる。
これにより、ブロック保護のための一連の動作が完了する。
次に、図21を参照して、図19のフローチャートにおけるステップS10の処理の中で行われるコマンド識別処理について説明する。
コントローラ200は、ホスト機器500から受けたブロック保護コマンドがProtect execute コマンド“11h”であることを認識した場合(ステップS11のYES)、ホスト機器500が指定しているユーザブロックが予め定められた保護可能なブロックに該当するか否かを判定する(ステップS12)。具体的には、そのProtect execute コマンドのコマンドシーケンスに含まれるアドレスが、特徴テーブルの所定の領域に予め定めている保護可能なブロックのアドレスに該当するか否かを判定する。保護可能なブロックに該当する場合(ステップS12のYes)、当該コマンドが適正であるとみなして、ホスト機器500が指定しているユーザブロックに対するブロック保護を許可し(ステップS13)、ブロックプロテクションレジスタ700に対してブロック保護の実行を指示する。すなわち、ブロックプロテクションレジスタ700の対象エントリにフラグ情報を書き込む。
一方、上記ステップS12において、ホスト機器500が指定しているユーザブロックが予め定められた保護可能なブロックに該当しない場合(ステップS12のNo)、コントローラ200は当該コマンドが適正でないとみなし、ホスト機器500が指定しているユーザブロックに対するブロック保護処理を実行しない。すなわち、ブロックプロテクションレジスタ700に対してブロック保護の指示を行わない。この場合、例えばブロック保護動作がフェイルした旨を示すステータスデータもしくはコマンドが適正でない旨を示すステータスデータを特徴テーブルに記憶させ、更にそれをホスト機器500に通知するようにしてもよい。
1.3.6 ブロック保護動作完了後の動作の流れについて
次に、ブロック保護動作完了後の動作について、図22を用いて説明する。図22は、ブロック保護動作完了後におけるホスト機器500、コントローラ200、及びNAND型フラッシュメモリ100の動作を示すフローチャートである。
図示するように、ホスト機器500は、例えば消去コマンドもしくは書き込みコマンドを発行する。これに応答して、メモリシステム1はビジー状態となる。またホスト機器500は、Get featureコマンドを発行する。
メモリシステム1がビジー状態となると共に、コントローラ200はホスト機器500から受けたコマンドが、ブロックプロテクションレジスタ700で保護設定されたブロックに対する消去コマンドもしくは書き込みコマンドであるか否かを判定する(ステップS40)。保護設定されたブロックに対する消去コマンドもしくは書き込みコマンドでなければ、ホスト機器500から受けたコマンドの受け入れを許可し、対応するコマンドをNAND型フラッシュメモリ100に対して発行する。これによりNAND型フラッシュメモリ100はビジー状態となる。そして、メモリセルアレイ110におけるデータの消去もしくは書き込みが実行される(ステップS50)。
その後、メモリセルアレイ110におけるデータの消去もしくは書き込みが完了し、NAND型フラッシュメモリ100がレディ状態になる。これに応答してコントローラ200がステータス読み出しコマンドを発行すると、NAND型フラッシュメモリ100側から消去動作もしくは書き込み動作がパスしたかフェイルしたかを示すステータスデータがコントローラ200に転送される。コントローラ200はこのステータスデータを特徴テーブルに記憶させ(ステップS60)、更にそれをホスト機器500に通知する。
一方、上記ステップS40において、ホスト機器500から受けたコマンドが、保護設定されたブロックに対する消去コマンドもしくは書き込みコマンドであった場合、コントローラ200はNAND型フラッシュメモリ100に対して消去コマンドもしくは書き込みコマンドを発行することなく、例えば消去コマンドもしくは書き込みコマンドがフェイルしたことを示すステータスデータを特徴テーブルに記憶させ(ステップS60)、更にそれをホスト機器500に通知する。
1.4 本実施形態に係る効果
本実施形態によれば、ブロックに対する保護処理を単独の処理として実行することができる。本効果につき、以下説明する。
一般にブロック保護を図るためには、ブロック保護モードもしくはOTP(One Time Program)モードに遷移させた状態において、通常の動作モードにおける書き込み動作を実行する。すなわち、データの書き込みと同時にそのデータが書き込まれたブロックに対する保護処理が行われる。この場合、データを書き込む前から、保護対象のブロックを決めておかなければならない。
この点で本実施形態に係る構成によれば、ブロックの保護を要求する特定コマンドに従ってNAND型フラッシュメモリ100におけるブロック保護を単独の処理として実行するようにしている。すなわち、ブロック保護の動作は、通常の動作(書き込み動作など)とは独立した動作となる。そのため、ホスト機器500は、例えば既にデータを書き込んだいくつかのブロックのうち、所望のブロックに対する保護処理のみを、単独で実施することを指示することが可能となる。
また、本実施形態に係る構成によれば、コントローラ200にて保護対象とするブロックを制限することができる。この場合、保護可能なユーザブロックが制限されるため、ホスト機器500による過剰なブロック保護設定を抑制することができ、書き込み等のために使用できる記憶領域が減少することを防止することができる。更に、コントローラ200にて保護対象とするブロックを全ブロックと設定した場合、保護可能なユーザブロックが制限されないため、ホスト機器500は自由に任意のユーザブロックを保護対象とすることができ、保護する記憶領域の範囲・サイズを自由に決めることができる。
2.変形例等
実施形態では、処理可能なブロック保護コマンドとしてProtect execute コマンドを処理できるメモリシステムの例を示したが、これに限定されるものではない。例えばブロック保護コマンドを複数種類持たせたメモリシステムを構築してもよい。この場合、ブロック保護設定可能な対象ブロックごとに専用コマンドを用意してもよい。
また、上記実施形態では、図22で説明したように、非保護対象ブロックに対するアクセスコマンドを受信し、且つ動作がフェイルした場合(第1のケース)と、保護対象ブロックに対するアクセスコマンドを受信した場合(第2のケース)には、共に同じくフェイルが特徴テーブルにステータスデータとして記憶される。この際、上記第1のケースと第2のケースとを区別して、ステータスデータを特徴テーブルに記憶させても良い。すなわち、第1のケースと第2のケースについてのパス/フェイル情報が、異なるエントリに記憶され、または同じエントリであるが異なるビットに記憶されても良い。
なお、実施形態は上記説明した形態に限られず、種々の変形が可能である。例えば上記実施形態では、NAND型フラッシュメモリ100とコントローラ200とが別々の半導体チップである場合を例に説明した。しかし、これらはワンチップで形成されても良い。この場合のメモリシステム1のブロック図を図30に示す。
図示するように、ブロック構成は、図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等に保持される。
また、上記実施形態で説明したフローチャートにおける各処理は、可能な限りその順番を入れ替えることが出来る。例えば図19等に記載されるGet featureコマンドは、任意のタイミングで発行されて良く、例えばステップS10の処理が行われる前に発行されても良い。
更に、上記実施形態で説明したタイミングチャートも一例に過ぎず、信号SIを入力する際に必要なクロック数や、信号SOを出力する際に必要なクロック数も、上記実施形態に限定されるものでは無い。また、コマンドによっては、直後にダミービットが入力される例を示しているが、この場合に限定されるものでは無い。これは特徴テーブルについても同様であり、上記実施形態で説明した情報を保持出来るものであれば、上記実施形態で説明した形式に限定されない。
また、上記実施形態で説明したメモリシステムは、例えばテレビやセットトップボックス等のアプリケーションを起動するために用いることも出来る。図31はそのようなシステムの例を示す。本例であると、メモリシステム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のコマンド情報が保持されていれば、図32に示すようにNOR型フラッシュメモリ2が廃されても良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、100…NAND型フラッシュメモリ、200…コントローラ、210…ホスト入出力回路、220…ホストインターフェース回路、230…NANDインターフェース回路、240…NAND入出力回路、250…シーケンサ、260、270…データバッファ、280,410…ステータスレジスタ、290,420…アドレスレジスタ、400…ECC回路、300…リードフレーム、340…ボンディングワイヤ、350…封止樹脂、430…コマンドレジスタ、440…制御回路、450…電圧発生回路、460…入出力制御回路、470…ロジック回路、480…データレジスタ、500…ホスト機器、600…周辺回路、700…ブロックプロテクションレジスタ。

Claims (13)

  1. ホスト機器からのチップセレクト信号の受信直後に受信される信号をコマンドとして認識するインターフェース回路と、
    メモリと、
    前記インターフェース回路により認識されたコマンドが前記メモリ上のあるブロックの保護を要求する特定コマンドである場合に、当該ブロックを保護するための処理を実行する制御部と、
    を具備することを特徴とするメモリシステム。
  2. 前記特定コマンドは、あるユーザブロックに対するデータの消去もしくは書き込みの禁止を要求するコマンドであり、
    前記特定コマンドのコマンドシーケンスに含まれるアドレスは、保護対象のブロックを示す
    ことを特徴とする請求項1に記載のメモリシステム。
  3. 前記制御部は、保護対象のブロックに対する消去コマンドもしくは書き込みコマンドがあった場合に、当該保護対象のブロックに対するデータの消去もしくは書き込みを禁止する
    ことを特徴とする請求項1又は2に記載のメモリシステム。
  4. 前記制御部は、保護対象のブロックに対する消去コマンドもしくは書き込みコマンドがあった場合に、ブロック保護動作がフェイルした旨を前記ホスト機器に通知する
    ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリシステム。
  5. 保護対象のブロックを示す情報を記憶する記憶領域を有する
    ことを特徴とする請求項1乃至4のいずれか1項に記載のメモリシステム。
  6. 前記制御部は、保護対象のブロックを示す情報を所定の記憶領域に記憶させる
    ことを特徴とする請求項1乃至5のいずれか1項に記載のメモリシステム。
  7. 前記制御部は、保護可能なユーザブロックの設定を行うことが可能である
    ことを特徴とする請求項6に記載のメモリシステム。
  8. 前記制御部は、前記特定コマンドがあった場合、当該コマンドが保護を要求するブロックが保護可能なユーザブロックに該当するか否かを判定し、該当しない場合に当該コマンドが要求する処理を実行しないで中止する
    ことを特徴とする請求項1乃至7のいずれか1項に記載のメモリシステム。
  9. 前記ホスト機器から前記チップセレクト信号を受信可能な第1ピンと、
    前記ホスト機器へ第1信号を出力可能な第2ピンと、
    前記ホスト機器から第2信号を受信可能な第3ピンと、
    前記ホスト機器からクロックを受信可能な第4ピンと、
    を更に具備することを特徴とする請求項1乃至8のいずれか1項に記載のメモリシステム。
  10. 前記インターフェース回路は、前記クロックに同期して前記第2信号を受信し、前記チップセレクト信号がアサートされた後の最初のクロックに同期して受信した前記第2信号を前記コマンドと認識する
    ことを特徴とする請求項9に記載のメモリシステム。
  11. 前記インターフェース回路は、SPI(Serial Peripheral Interface)に準拠したバスにより前記ホスト機器と接続可能である
    ことを特徴とする請求項1乃至10のいずれか1項に記載のメモリシステム。
  12. 前記インターフェース回路及び前記制御部は、第1半導体チップに実装され、
    前記メモリは、前記第1半導体チップと異なる第2半導体チップに実装される
    ことを特徴とする請求項1乃至11のいずれか1項に記載のメモリシステム。
  13. 前記インターフェース回路、前記メモリ、及び前記制御部は、同一の半導体チップ内に実装される
    ことを特徴とする請求項1乃至11のいずれか1項に記載のメモリシステム。
JP2015169678A 2015-08-28 2015-08-28 メモリシステム Pending JP2017045415A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015169678A JP2017045415A (ja) 2015-08-28 2015-08-28 メモリシステム
TW105103845A TWI633459B (zh) 2015-08-28 2016-02-04 Memory system and method for protecting memory cells
US15/051,882 US10310755B2 (en) 2015-08-28 2016-02-24 Memory system having a semiconductor memory device with protected blocks
US15/439,859 US10235070B2 (en) 2015-08-28 2017-02-22 Memory system having a semiconductor memory device with protected blocks

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
JP2017045415A true JP2017045415A (ja) 2017-03-02

Family

ID=58095481

Family Applications (1)

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

Country Status (3)

Country Link
US (2) US10310755B2 (ja)
JP (1) JP2017045415A (ja)
TW (1) TWI633459B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6453492B1 (ja) * 2018-01-09 2019-01-16 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018014050A (ja) 2016-07-22 2018-01-25 東芝メモリ株式会社 メモリシステム
JP2022143741A (ja) * 2021-03-18 2022-10-03 キオクシア株式会社 半導体集積回路及びその動作方法
CN113343319B (zh) * 2021-06-29 2024-04-02 珠海一微半导体股份有限公司 一种flash的类型识别方法及类型识别系统
IT202100021944A1 (it) * 2021-08-17 2023-02-17 St Microelectronics Srl Schermatura di registri in dispositivi a semiconduttore

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10106275A (ja) * 1996-09-30 1998-04-24 Hitachi Ltd 半導体記憶装置
JP2000215108A (ja) * 1999-01-22 2000-08-04 Toshiba Corp 半導体集積回路
US20010011318A1 (en) * 1997-02-27 2001-08-02 Vishram P. Dalvi Status indicators for flash memory
US20040205314A1 (en) * 2003-02-18 2004-10-14 Stmicroelectronics S.R.L. Semiconductor memory with access protection scheme
US20050071592A1 (en) * 2003-09-26 2005-03-31 Decaro Richard V. Selectable block protection for non-volatile memory
JP2005108273A (ja) * 2003-09-26 2005-04-21 Toshiba Corp 不揮発性半導体記憶装置
US20090113118A1 (en) * 2007-10-26 2009-04-30 Sunplus Technology Co., Ltd. Memory module and control method of serial peripheral interface using address cache
JP2010003909A (ja) * 2008-06-20 2010-01-07 Renesas Technology Corp 半導体装置の製造方法
JP2015134061A (ja) * 2014-01-17 2015-07-27 株式会社藤商事 遊技機

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3487690B2 (ja) 1995-06-20 2004-01-19 シャープ株式会社 不揮発性半導体記憶装置
ITMI20022192A1 (it) * 2002-10-16 2004-04-17 Simicroelectronics S R L Struttura per modificare un blocco di celle di memoria in un dispositivo di memoria flash con riduzione delle operazioni di cancellazione e di programmazione.
JP2005317127A (ja) 2004-04-28 2005-11-10 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置
DE112004002860T5 (de) 2004-05-12 2007-04-12 Spansion Llc, Sunnyvale Halbleitervorrichtung und Steuerverfahren derselben
JP2006127648A (ja) 2004-10-29 2006-05-18 Sharp Corp 不揮発性記憶装置及び電子機器
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10106275A (ja) * 1996-09-30 1998-04-24 Hitachi Ltd 半導体記憶装置
US20010011318A1 (en) * 1997-02-27 2001-08-02 Vishram P. Dalvi Status indicators for flash memory
JP2000215108A (ja) * 1999-01-22 2000-08-04 Toshiba Corp 半導体集積回路
US20040205314A1 (en) * 2003-02-18 2004-10-14 Stmicroelectronics S.R.L. Semiconductor memory with access protection scheme
US20050071592A1 (en) * 2003-09-26 2005-03-31 Decaro Richard V. Selectable block protection for non-volatile memory
JP2005108273A (ja) * 2003-09-26 2005-04-21 Toshiba Corp 不揮発性半導体記憶装置
US20060164886A1 (en) * 2003-09-26 2006-07-27 Tomoharu Tanaka Nonvolatile semiconductor memory device having protection function for each memory block
US20090113118A1 (en) * 2007-10-26 2009-04-30 Sunplus Technology Co., Ltd. Memory module and control method of serial peripheral interface using address cache
JP2010003909A (ja) * 2008-06-20 2010-01-07 Renesas Technology Corp 半導体装置の製造方法
JP2015134061A (ja) * 2014-01-17 2015-07-27 株式会社藤商事 遊技機

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6453492B1 (ja) * 2018-01-09 2019-01-16 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Also Published As

Publication number Publication date
TWI633459B (zh) 2018-08-21
US20170060484A1 (en) 2017-03-02
US10235070B2 (en) 2019-03-19
US10310755B2 (en) 2019-06-04
US20170160972A1 (en) 2017-06-08
TW201709103A (zh) 2017-03-01

Similar Documents

Publication Publication Date Title
JP6527054B2 (ja) メモリシステム
JP6577302B2 (ja) メモリシステム
JP6542076B2 (ja) メモリシステム
US10732863B2 (en) Memory system storing block protection information
US10235070B2 (en) Memory system having a semiconductor memory device with protected blocks
US9959937B2 (en) Memory system including test circuit
US10353852B2 (en) Memory system that stores data redundantly
US9728275B2 (en) Memory system that handles access to bad blocks
US9747994B2 (en) Memory system
TWI780348B (zh) 記憶體系統
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: 20180316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180622

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181127