(57)【要約】【課題】動作速度を向上出来る半導体記憶装置及びその制御方法を提供すること。【解決手段】実施形態の半導体記憶装置30は、第１動作モードと第２動作モードとを備える。半導体記憶装置30は、メモリセルを複数備えたメモリセルアレイ40と、メモリセルアレイからページ単位で読み出されたデータを保持するバッファメモリ60とを具備する。バッファメモリは、ｎ回（ｎは２以上の自然数）のアドレス入力によって全ビットを指定可能なサイズを有し、第１モードではｎ回のアドレス入力を受け付け、第２モードで受け付けるアドレス入力は、はｎ回よりも少ないｍ回（ｍは自然数）に制限される。【選択図】図８
2013196751.tif 000002
【特許請求の範囲】
【請求項１】
第１動作モードと第２動作モードとを備えた半導体記憶装置であって、
メモリセルを複数備えたメモリセルアレイと、
前記メモリセルアレイからページ単位で読み出されたデータを保持するバッファメモリと、
前記バッファメモリ内のデータを外部へ出力し、パイプライン化されたデータ出力部と
を具備し、前記バッファメモリは、ｎ回（ｎは２以上の自然数）のアドレス入力によって全ビットを指定可能なサイズを有し、
前記第１モードでは前記ｎ回のアドレス入力を受け付け、
前記第２モードで受け付けるアドレス入力は、前記ｎ回よりも少ないｍ回（ｍは自然数）に制限され、
前記第２動作モードにおいて、前記パイプラインのステージ数は第１動作モードよりも少なく、
前記第２動作モードにおいて、前記バッファメモリ内の領域を指定するコマンドを受信し、該コマンドと前記ｍ回のアドレス入力とにより、前記バッファメモリ内のデータが特定される
ことを特徴とする半導体記憶装置。
【請求項２】
第１動作モードと第２動作モードとを備えた半導体記憶装置であって、
メモリセルを複数備えたメモリセルアレイと、
前記メモリセルアレイからページ単位で読み出されたデータを保持するバッファメモリと
を具備し、前記バッファメモリは、ｎ回（ｎは２以上の自然数）のアドレス入力によって全ビットを指定可能なサイズを有し、
前記第１モードでは前記ｎ回のアドレス入力を受け付け、
前記第２モードで受け付けるアドレス入力は、前記ｎ回よりも少ないｍ回（ｍは自然数）に制限される
ことを特徴とする半導体記憶装置。
【請求項３】
前記バッファメモリ内のデータを外部へ出力し、パイプライン化されたデータ出力部を更に備え、
前記第２動作モードにおいて、前記パイプラインのステージ数は第１動作モードよりも少ない
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記第２動作モードにおいて、前記バッファメモリ内の領域を指定するコマンドを受信し、
該コマンドと前記ｍ回のアドレス入力とにより、前記バッファメモリ内のデータが特定される
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
データを保持可能なメモリセルアレイと、該メモリセルアレイからページ単位で読み出されたデータを保持可能なバッファメモリとを備えた半導体記憶装置の制御方法であって、
第１コマンドを入力することにより、前記半導体記憶装置を第１動作モードから第２動作モードに遷移させるステップと、
前記第１コマンドを入力した後、ｍ回（ｍは自然数）のアドレス入力により前記バッファメモリ内の領域を指定して、該領域にアクセスするステップと
を備え、前記バッファメモリは、ｎ回（ｎは２以上の自然数であり、ｎ＞ｍ）のアドレス入力により全領域を指定可能なサイズを有する
ことを特徴とする半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は半導体記憶装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、ストレージデバイスとしてＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２１１２２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作速度を向上出来る半導体記憶装置及びその制御方法を提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、第１動作モードと第２動作モードとを備える。半導体記憶装置は、メモリセルを複数備えたメモリセルアレイと、メモリセルアレイからページ単位で読み出されたデータを保持するバッファメモリとを具備する。バッファメモリは、ｎ回（ｎは２以上の自然数）のアドレス入力によって全ビットを指定可能なサイズを有し、第１モードではｎ回のアドレス入力を受け付け、第２モードで受け付けるアドレス入力は、はｎ回よりも少ないｍ回（ｍは自然数）に制限される。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムのブロック図。
【図２】第１実施形態に係るＮＡＮＤ型フラッシュメモリのブロック図。
【図３】第１実施形態に係るＮＡＮＤ型フラッシュメモリの動作モードを示すブロック図。
【図４】第１実施形態に係る半導体装置における各種信号のタイミングチャート。
【図５】第１実施形態に係るメモリコントローラの動作を示すフローチャート。
【図６】第１実施形態に係るＮＡＮＤ型フラッシュメモリの動作を示すフローチャート。
【図７】第１実施形態に係るメモリコントローラとＮＡＮＤ型フラッシュメモリとの間で送信される信号のタイミングチャート。
【図８】第１実施形態に係るメモリコントローラとＮＡＮＤ型フラッシュメモリとの間で送信される信号のタイミングチャート。
【図９】第１実施形態に係るメモリコントローラとＮＡＮＤ型フラッシュメモリとの間で送信される信号のタイミングチャート。
【図１０】メモリコントローラとＮＡＮＤ型フラッシュメモリとの間で送信される信号のタイミングチャート。
【図１１】メモリコントローラとＮＡＮＤ型フラッシュメモリとの間で送信される信号のタイミングチャート。
【図１２】第２実施形態に係るキャッシュレジスタの概念図。
【図１３】第２実施形態に係るコマンドテーブルの概念図。
【図１４】第２実施形態に係るＮＡＮＤ型フラッシュメモリの動作を示すフローチャート。
【図１５】第２実施形態に係るコマンドと、キャッシュレジスタにおいてアクセスされる領域との関係を示す模式図。
【図１６】第３実施形態に係るメモリシステムのブロック図。
【図１７】第３実施形態に係る半導体装置のブロック図。
【図１８】第１乃至３実施形態の変形例に係るコマンドと、キャッシュレジスタにおいてアクセスされる領域との関係を示す模式図。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係る半導体記憶装置及びその制御方法について説明する。以下では、ＮＡＮＤ型フラッシュメモリを制御するメモリコントローラを例に挙げて説明する。
【０００９】
１．１  メモリシステムの構成について  
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリコントローラを含むメモリシステムの構成について説明する。
【００１０】
図示するようにメモリシステム１は、ホスト機器１０、メモリコントローラ２０、及びＮＡＮＤ型フラッシュメモリ３０を備えている。
【００１１】
ホスト機器１０は、メモリコントローラ２０に対して命令を与えることでＮＡＮＤ型フラッシュメモリ３０にアクセスする。そして、メモリコントローラ２０を介して、ＮＡＮＤ型フラッシュメモリ３０にデータを書き込み、ＮＡＮＤ型フラッシュメモリ３０からデータを読み出し、またはＮＡＮＤ型フラッシュメモリ３０のデータを消去する。ホスト機器１０は、例えばパーソナルコンピュータ、デジタルカメラ、または携帯電話等である。あるいは、ホスト機器１０はこれらの他に、テレビ、ＤＶＤプレーヤ、またはゲーム機器などの、ＳＤカードメディアに記録した動画を再生可能な装置であっても良い。
【００１２】
メモリコントローラ２０は、ホスト機器１０からの命令に応答して、ＮＡＮＤ型フラッシュメモリ３０に対して読み出し、書き込み、消去を命令する。また、ＮＡＮＤ型フラッシュメモリ３０のメモリ空間を管理する。
【００１３】
ＮＡＮＤ型フラッシュメモリ３０は、不揮発にデータを保持する。
【００１４】
メモリコントローラ２０とＮＡＮＤ型フラッシュメモリ３０は、例えば同一の半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１５】
１．１．２  メモリコントローラ２０の構成について  
次に、上記メモリコントローラ２０の構成について、引き続き図１を用いて説明する。図示するようにメモリコントローラ２０は、ホストインターフェイス回路２１、内蔵メモリ２２、プロセッサ（ＣＰＵ）２３、バッファメモリ２４、及びＮＡＮＤインターフェイス回路２５を備えている。
【００１６】
ホストインターフェイス回路２１は、ホストインターフェイスを介してホスト機器１０と接続され、ホスト機器１０との通信を司る。そして、ホスト機器１０から受信した命令及びデータを、それぞれＣＰＵ２３及びバッファメモリ２４に転送する。またＣＰＵ２３の命令に応答して、バッファメモリ２４内のデータをホスト機器１０へ転送する。
【００１７】
ＮＡＮＤインターフェイス回路２５は、ＮＡＮＤインターフェイスを介してＮＡＮＤ型フラッシュメモリ３０と接続され、ＮＡＮＤ型フラッシュメモリ３０との通信を司る。そして、ＣＰＵ２３から受信した命令をＮＡＮＤ型フラッシュメモリ３０に転送し、また書き込み時にはバッファメモリ２４内の書き込みデータをＮＡＮＤ型フラッシュメモリ３０へ転送する。更に読み出し時には、ＮＡＮＤ型フラッシュメモリ３０から読み出されたデータをバッファメモリ２４へ転送する。
【００１８】
ＣＰＵ２３は、メモリコントローラ２０全体の動作を制御する。例えばホスト機器１０から読み出し命令を受信した際には、それに従ってＮＡＮＤインターフェイスに基づく読み出し命令を発行する。書き込み及び消去の際も同様である。またＣＰＵ２３は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ３０を管理するための様々な処理を実行する。更にＣＰＵ２３は、各種の演算を実行する。その際にＣＰＵ２３は、ＮＡＮＤ型フラッシュメモリ３０内のキャッシュレジスタ（後述する）を作業領域として用いて演算を実行することが出来る。
【００１９】
内蔵メモリ２２は、例えばＤＲＡＭ等の半導体メモリであり、ＣＰＵ２３の作業領域として使用される。そして内蔵メモリ２２は、ＮＡＮＤ型フラッシュメモリを管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００２０】
１．１．３  ＮＡＮＤ型フラッシュメモリ３０の構成について  
次に、ＮＡＮＤ型フラッシュメモリ３０の構成について、図２を用いて説明する。図２はＮＡＮＤ型フラッシュメモリ３０のブロック図である。図示するようにＮＡＮＤ型フラッシュメモリ３０は、メモリセルアレイ４０、ページバッファ５０、キャッシュレジスタ６０、カラムセレクタ７０、入出力回路８０、コマンドバッファ９０、アドレスバッファ９１、第１カラムデコーダ１００、第２カラムデコーダ１１０、制御部１２０、及び入出力パッド１３０を備えている。
【００２１】
まず、メモリセルアレイ４０について説明する。図示するようにメモリセルアレイ４０は、複数のＮＡＮＤセル４１を備えている。ＮＡＮＤセル４１の各々は、例えば３２個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ３１）と、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルトランジスタＭＴの個数は３２個に限られず、８個や１６個、６４個、１２８個、２５６個等であってもよく、その数は限定されるものではない。また、電荷蓄積層は絶縁物を材料に用いて形成されても良い。メモリセルトランジスタＭＴは、隣接するもの同士でソース、ドレインを共有しており、選択トランジスタＳＴ１、ＳＴ２間にその電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルトランジスタＭＴの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２２】
同一行にあるメモリセルトランジスタＭＴの制御ゲートはワード線ＷＬ（ＷＬ０〜ＷＬ３１）のいずれかに共通接続され、同一行にある選択トランジスタＳＴ１、ＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＤ、ＳＧＳに共通接続されている。更に、選択トランジスタＳＴ１のドレインはビット線ＢＬ（ＢＬ０〜ＢＬｎ（ｎは２以上の自然数））のいずれかに接続され、選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続される。
【００２３】
以上の構成において、ワード線ＷＬ及びセレクトゲート線ＳＧＤ、ＳＧＳを共通にする複数のＮＡＮＤセル４１によって、１つのブロックと呼ばれる単位が形成される。同一のブロック内のメモリセルトランジスタＭＴは、一括してデータが消去される。更に、同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴには、一括してデータが書き込まれ、この単位はページと呼ばれる。
【００２４】
次に、ページバッファ５０について説明する。ページバッファ５０は、データの読み出し時には、ページ単位で読み出されたデータを一時的に保持する。またデータの書き込み時には、ページ単位の書き込みデータを一時的に保持し、この書き込みデータをビット線ＢＬに転送する。
【００２５】
次にキャッシュレジスタ６０について説明する。キャッシュレジスタ６０は、（ｋ＋１）個のラッチ回路ＣＤ（ＣＤ０〜ＣＤｋ）を備えている（ｋは自然数）。ラッチ回路ＣＤの各々は、例えば１バイトのデータを保持可能である。そしてラッチ回路ＣＤ０〜ＣＤｋは、ページバッファ５０の先頭から順次関連付けられて、全体としてページサイズのデータを保持可能である。そしてラッチ回路ＣＤは、データの書き込み時には、メモリコントローラ２０から与えられたデータを、ページバッファ５０において対応する領域に転送する。他方、データの読み出し時には、ページバッファ５０において対応する領域から転送されるデータを保持する。
【００２６】
次にカラムセレクタ７０について説明する。カラムセレクタ７０は、キャッシュレジスタ６０の各ラッチ回路ＣＤに対応付けられたトランスファーゲートを備えている。トランスファーゲートの各々は、ソース及びドレインが共通に接続されたｎチャネルＭＯＳトランジスタとｐチャネルＭＯＳトランジスタを備える。そして、ソース及びドレインの一方は対応するラッチ回路ＣＤに接続され、他方は共通に接続されて入出力回路８０に接続される。ラッチ回路ＣＤ０〜ＣＤｋにそれぞれ対応するｎチャネルＭＯＳトランジスタのゲートには信号Ａ０〜Ａｋが入力され、ｐチャネルＭＯＳトランジスタのゲートには信号Ａ０ｎ〜Ａｋｎが入力される。なお、Ａ０ｎ〜Ａｋｎは、Ａ０〜Ａｋの反転信号である。
【００２７】
次に入出力回路８０について説明する。入出力回路８０は、入力回路８１と出力回路８２を備えている。入力回路８１は、入出力パッド１３０で受信したメモリコントローラ２０からのデータを、カラムセレクタ７０を介してキャッシュレジスタ６０に転送する。すなわち入力回路８１は、バッファ８３、複数のフリップフロップ８４、及び選択回路８５を備えている。バッファ８３は、信号ＤＩＮがアサートされた際に動作状態となり、入出力パッド１３０に与えられたデータを出力する。複数のフリップフロップ（Ｄ−Ｆ／Ｆ）８４は直列に接続され、信号ＷＥをクロックとして動作する。本例ではフリップフロップ８４の段数は４段であるが、この数に限られるものではない。選択回路８５は、１段目のフリップフロップ８４の出力と、最終段のフリップフロップ８４の出力とのいずれかを選択して、選択した信号をカラムセレクタ７０に転送する。より具体的には、信号ＲＡＭＭＭＯＤＥがアサート（本例では“Ｈ”レベル）された際には１段目のフリップフロップ８４の出力を選択し、信号ＲＡＭＭＯＤＥがネゲートされた際には最終段のフリップフロップ８８の出力を選択する。
【００２８】
出力回路８２は、カラムセレクタ７０を介してキャッシュレジスタ６０から与えられるデータを、入出力パッド１３０からメモリコントローラ２０に転送する。すなわち出力回路８２は、バッファ８６、複数のフリップフロップ８８、及び選択回路８７を備えている。複数のフリップフロップ（Ｄ−Ｆ／Ｆ）８８は直列に接続され、信号ＲＥをクロックとして動作する。本例ではフリップフロップ８８の段数は４段であるが、この数に限られるものではない。選択回路８７は、１段目のフリップフロップ８８の出力と、最終段のフリップフロップ８８の出力とのいずれかを選択して、選択した信号をバッファ８６に転送する。より具体的には、信号ＲＡＭＭＭＯＤＥがアサートされた際には１段目のフリップフロップ８８の出力を選択し、信号ＲＡＭＭＯＤＥがネゲートされた際には最終段のフリップフロップ８８の出力を選択する。バッファ８６は、信号ＤＯＵＴがアサートされた際に動作状態となり、選択回路８７で選択されたデータを、入出力パッド１３０に出力する。
【００２９】
なお、信号ＲＥ及びＷＥはそれぞれ読み出し時及び書き込み時にアサートとされる信号であり、メモリコントローラ２０から与えられる。信号ＤＯＵＴ及びＤＩＮも同様である。また信号ＲＡＭＭＯＤＥは、メモリコントローラ２０から与えられるコマンドに従って制御部１２０が生成する。信号ＲＡＭＭＯＤＥの詳細に関しては後述する。
【００３０】
次にコマンドバッファ９０及びアドレスバッファ９１について説明する。コマンドバッファ９０は、メモリコントローラ２０から与えられる各種のコマンドを保持する。アドレスバッファ９１は、メモリコントローラ２０から与えられる各種のアドレスを保持する。
【００３１】
次に第１、第２カラムデコーダ１００、１１０について説明する。第１カラムデコーダ１００は、信号ＲＡＭＭＯＤＥがネゲートされている際に動作状態とされ、第２カラムデコーダ１１０は、信号ＲＡＭＭＯＤＥがアサートされている際に動作状態とされる。そして第１、第２カラムデコーダ１００、１１０はそれぞれ、アドレスバッファ９１内のカラムアドレスをデコードして、信号Ａ０〜Ａｋを生成する。
【００３２】
次に制御部１２０について説明する。制御部１２０は、メモリコントローラ２０からのコマンドに従って、ＮＡＮＤ型フラッシュメモリ３０全体の動作を制御する。また、信号ＲＡＭＭＯＤＥを生成する。
【００３３】
１．１．４  ＮＡＮＤ型フラッシュメモリの動作モードについて  
次に、上記説明したＮＡＮＤ型フラッシュメモリ３０の動作モードについて、図３を用いて説明する。本実施形態に係るＮＡＮＤ型フラッシュメモリ３０は、通常モードとＲＡＭモードとの２つの動作モードを有している。
【００３４】
図３に示すように、通常モードでは、メモリコントローラ２０から書き込みアクセスがあった場合、メモリコントローラ２０から転送されたデータはメモリセルアレイ４０のいずれかのページに書き込まれる。読み出しアクセスの際も同様であり、メモリコントローラ２０から転送されたアドレスに対応する、メモリセルアレイ４０のいずれかのページからデータが読み出される。通常モードでは、信号ＲＡＭＭＯＤＥは“Ｌ”レベルとされる。
【００３５】
他方で、ＲＡＭモードではメモリセルアレイ４０にはアクセスされない。ＲＡＭモードでは、メモリコントローラ２０から書き込みアクセスがあった場合、メモリコントローラ２０から転送されたデータは、キャッシュレジスタ５０のいずれかのラッチ回路ＣＤに書き込まれる。読み出しアクセスの際には、メモリコントローラ２０から転送されたカラムアドレスに対応するラッチ回路ＣＤからデータが読み出される。ＲＡＭモードでは、信号ＲＡＭＭＯＤＥは“Ｈ”レベルとされる。つまりＲＡＭモードは、キャッシュレジスタ６０に対してアクセスするための動作モードである。
【００３６】
図４は、メモリコントローラ２０がＮＡＮＤ型フラッシュメモリ３０をＲＡＭモードに設定する際の、クロックＣＬＫ、コマンドＣＸ、ＣＹ、及び信号ＲＡＭＭＯＤＥのタイミングチャートである。
【００３７】
クロックＣＬＫは、メモリコントローラ２０からＮＡＮＤ型フラッシュメモリ３０に与えられる。そして、メモリコントローラ２０の例えばＣＰＵ２３はコマンドＣＸを発行し、これをクロックＣＬＫに同期してＮＡＮＤ型フラッシュメモリ３０に出力する（時刻ｔ０）。コマンドＣＸは、ＮＡＮＤ型フラッシュメモリ３０を通常モードからＲＡＭモードに遷移させるためのコマンドである。コマンドＣＸは、ＮＡＮＤ型フラッシュメモリ３０においてアドレスバッファ９０に格納される。これに応答して制御部１２０は、信号ＲＡＭＭＯＤＥをアサートする（“Ｈ”レベル、時刻ｔ１）。
【００３８】
ＮＡＮＤ型フラッシュメモリ３０をＲＡＭモードから通常モードに遷移させる際には、メモリコントローラ２０のＣＰＵ２３は、コマンドＣＹを発行する（時刻ｔ２）。すると、アドレスバッファ９０においてコマンドＣＸがキャンセルされて、ＮＡＮＤ型フラッシュメモリ３０は通常モードに遷移し、制御部１２０は信号ＲＡＭＭＯＤＥをネゲートする（“Ｌ”レベル、時刻ｔ３）。
【００３９】
１．２  メモリシステム１の動作について  
次に、上記構成のメモリシステム１の動作について説明する。
【００４０】
１．２．１  メモリコントローラ２０の動作について  
まず、メモリコントローラ２０の動作について、図５を用いて説明する。図５はメモリコントローラ２０の動作を示すフローチャートである。
【００４１】
ＮＡＮＤ型フラッシュメモリ３０を通常モードで動作させる際には（ステップＳ１０、ＮＯ）、ＣＰＵ２３は、第１のタイミングでデータの入出力を行うことを決定する（ステップＳ１１）。このタイミングとは、例えばＮＡＮＤ型フラッシュメモリ３０にデータを連続して送信する際の待ち時間であり、あるいはＮＡＮＤ型フラッシュメモリ３０からデータを連続して受信する際の待ち時間である。
【００４２】
そしてＣＰＵ２３は、ｎ回（ｎは２以上の自然数）にわたってカラムアドレスをＮＡＮＤ型フラッシュメモリ３０へ入力する（ステップＳ１２）。このｎ回とは、ページサイズのメモリ空間のあらゆる領域を指定するために必要な回数である。具体的には、ページサイズが１６Ｋバイトであり、１回に入力されるカラムアドレスのビット数が８ビットであったとする。すると、８ビットで表現出来るメモリ空間は２５６バイトの範囲である。つまり、１回のカラムアドレス入力では、２５６バイトの範囲内しか指定できない。従って、カラムアドレスを再度入力する（ｎ＝２）。これにより、２１６で表現されるメモリ空間を指定出来、ページバッファ５０（及びキャッシュレジスタ）の任意の場所を指定出来る。更にＣＰＵ２３は、ロウアドレス（ページアドレス、及び／またはブロックアドレス、プレーンアドレス、チップアドレス）をＮＡＮＤ型フラッシュメモリ３０へ入力する。なお、以下の説明においてカラムアドレスの入力回数としての変数ｎは、図２においてビット線ＢＬの本数の説明で用いたｎとは異なる変数である。
【００４３】
引き続きＣＰＵ２３は、書き込みコマンドまたは読み出しコマンドを発行して、これをＮＡＮＤ型フラッシュメモリ３０に出力する（ステップＳ１３）。なお、書き込み時には、書き込みコマンドの発行の前に、書き込みデータがＮＡＮＤ型フラッシュメモリ３０へ転送される。
【００４４】
ＮＡＮＤ型フラッシュメモリ３０をＲＡＭモードで動作させる際には（ステップＳ１０、ＹＥＳ）、ＣＰＵ２３は、前述のコマンドＣＸを発行して、これをＮＡＮＤ型フラッシュメモリ３０に出力する（ステップＳ１４）。またＣＰＵ２３は、第２のタイミングでデータの入出力を行うことを決定する（ステップＳ１５）。第２のタイミングは、通常モードにおける第１のタイミングよりも緩和されたタイミングである。つまり、データを連続して送受信する際の待ち時間は、通常モードよりも長くされる。
【００４５】
そしてＣＰＵ２３は、ｍ回（ｍ＜ｎであり、ｍは自然数）にわたってカラムアドレスをＮＡＮＤ型フラッシュメモリ３０へ入力する（ステップＳ１６）。ページアドレス及びブロックアドレスの入力は行われない。必要に応じてプレーンアドレス及び／またはチップアドレスが入力されても良い。引き続きＣＰＵ２３は、書き込みコマンドまたは読み出しコマンドを発行して、これをＮＡＮＤ型フラッシュメモリ３０に出力する（ステップＳ１７）。なお、書き込み時には、書き込みコマンドの発行の前に、書き込みデータがＮＡＮＤ型フラッシュメモリ３０へ転送される。また、ここで発行される書き込みコマンド及び読み出しコマンドは、それぞれキャッシュレジスタ６０に対するものである。
【００４６】
１．２．２  ＮＡＮＤ型フラッシュメモリ３０の動作について  
次に、ＮＡＮＤ型フラッシュメモリ３０の動作について、図６を用いて説明する。図６はＮＡＮＤ型フラッシュメモリ３０の動作を示すフローチャートである。
【００４７】
図示するように、コマンドＣＸを受信していない場合（ステップＳ２０、ＮＯ）、すなわちコマンドバッファ９０にコマンドＣＸが格納されていなければ、制御部１２０は信号ＲＡＭＭＯＤＥを“Ｌ”レベルとする（ステップＳ２１）。よってＮＡＮＤ型フラッシュメモリ３０は通常モードで動作する。
【００４８】
引き続きＮＡＮＤ型フラッシュメモリ３０は、メモリコントローラ２０からｎ回にわたってカラムアドレスを受信する（ステップＳ２２）。受信したカラムアドレスは、アドレスバッファ９１に格納される。ロウアドレスも同様である。更にＮＡＮＤ型フラッシュメモリ３０は、書き込みコマンド（及び書き込みデータ）または読み出しコマンドを受信する（ステップＳ２２）。受信したコマンドは、コマンドバッファ９０に格納される。
【００４９】
制御部１２０は、書き込みコマンドを受信した際には書き込み動作を実行して、メモリセルアレイ４０に対してページ単位でデータを書き込む。他方、読み出しコマンドを受信した際には読み出し動作を実行して、メモリセルアレイ４０からページ単位でデータを読み出す。（ステップＳ２４）。
【００５０】
上記動作の具体例を、再度図２を参照しつつ説明する。書き込み動作時には、信号ＤＩＮ及びＷＥがアサートされ、信号ＤＯＵＴ及びＲＥがネゲートされる。そして入力回路８１では、選択回路８５は、最終段のフリップフロップ８４の出力を選択する。従って入力回路８１は、メモリコントローラ２０からの書き込みデータを複数段のフリップフロップ８４を介して、換言すれば複数のパイプラインステージを介して、カラムセレクタ７０に転送する。書き込みデータは、例えば１バイト単位で転送される。
【００５１】
また第１カラムデコーダ１００が活性化され、第１カラムデコーダ１００はアドレスバッファ９１内のカラムアドレスをデコードする。これにより、信号Ａ０〜Ａｋのいずれかがアサートされて、対応するトランスファーゲートがオン状態とされる。この結果、入力回路８０からのデータは、カラムアドレスに対応するラッチ回路ＣＤ０〜ＣＤｋのいずれかに転送され、更にページバッファ５０に転送される。
【００５２】
上記の転送動作を繰り返して、書き込むべきデータがページバッファ５０に転送されると、ページバッファ５０内のデータはページ単位で一括してメモリセルアレイ４０に書き込まれる。
【００５３】
読み出し動作時には、メモリセルアレイ４０からページ単位でデータが一括してページバッファ５０に読み出され、データは１バイト単位で対応するラッチ回路ＣＤ０〜ＣＤｋに転送される。
【００５４】
また第１カラムデコーダ１００が活性化され、第１カラムデコーダ１００はアドレスバッファ９１内のカラムアドレスをデコードする。これにより、カラムアドレスに対応するトランスファーゲートがオン状態とされ、このトランスファーゲートに対応するラッチ回路ＣＤ０〜ＣＤｋのいずれかのデータが、出力回路８２に転送される。
【００５５】
出力回路８２では、信号ＤＩＮ及びＷＥがネゲートされ、信号ＤＯＵＴ及びＲＥがアサートされる。そして選択回路８７は、最終段のフリップフロップ８８の出力を選択する。従って出力回路８２は、キャッシュレジスタ６０からの読み出しデータを複数段のフリップフロップ８８を介して、換言すれば複数のパイプラインステージを介して、入出力パッド１３０からメモリコントローラ２０に出力する。
【００５６】
再び図６に戻り、次にコマンドＣＸを受信した場合（ステップＳ２０、ＹＥＳ）について説明する。受信したコマンドＣＸはコマンドバッファ９０に格納され、制御部１２０は信号ＲＡＭＭＯＤＥを“Ｈ”レベルとする（ステップＳ２５）。よってＮＡＮＤ型フラッシュメモリ３０はＲＡＭモードで動作する。
【００５７】
そしてＮＡＮＤ型フラッシュメモリ３０は、メモリコントローラ２０からのカラムアドレスの受信回数を、通常のｎ回より少ないｍ回に制限して（ステップＳ２６）、これを受信する。受信されたカラムアドレスはアドレスバッファ９１に格納される。更にＮＡＮＤ型フラッシュメモリ３０は、書き込みコマンド（及び書き込みデータ）または読み出しコマンドを受信する（ステップＳ２７）。受信したコマンドは、コマンドバッファ９０に格納される。
【００５８】
制御部１２０は、書き込みコマンドを受信した際には、キャッシュレジスタ６０にデータを書き込む。他方、読み出しコマンドを受信した際には、キャッシュレジスタ６０からデータを読み出す。（ステップＳ２８）。
【００５９】
上記動作の具体例を、再度図２を参照しつつ説明する。以下では、通常モードと異なる点についてのみ説明する。制御回路１２０は、信号ＲＡＭＭＯＤＥを“Ｈ”レベルにする。従って入力回路８１では、選択回路８５は初段のフリップフロップ８４の出力を選択する。よって入力回路８１は、パイプラインステージをバイパスして、メモリコントローラ２０からの書き込みデータをカラムセレクタ７０に転送する。また第２カラムデコーダ１１０が活性化され、第２カラムデコーダ１１０はアドレスバッファ９１内のカラムアドレスをデコードする。これにより、カラムアドレスに対応するトランスファーゲートがオン状態とされ、対応するラッチ回路ＣＤにデータが転送される。メモリセルアレイ４０へのデータの書き込みは行われない。そして、上記の転送動作を繰り返すことにより、メモリコントローラ２０からのデータの全てがキャッシュレジスタ６０に書き込まれる。
【００６０】
読み出し動作時には、第２カラムデコーダ１１０によっていずれかのトランスファーゲートがオン状態とされ、いずれかのラッチ回路ＣＤ内のデータが出力回路８２に転送される。出力回路８２では、選択回路８７は、初段のフリップフロップ８８の出力を選択する。従って出力回路８２は、パイプラインステージをバイパスして、キャッシュレジスタ６０からの読み出しデータをメモリコントローラ２０に出力する。
【００６１】
１．２．３  コマンド及びデータの送受信の具体例について  
次に、上記動作時におけるコマンド及びデータの送受信の具体例について説明する。
【００６２】
＜通常モードの書き込み動作＞  
まず、通常モードにおける書き込み動作を、図７を用いて説明する。図７は、メモリコントローラ２０からＮＡＮＤ型フラッシュメモリ３０に送信されるコマンド及びデータを示す。
【００６３】
図示するように、まずメモリコントローラ２０はコマンド８０ｈを発行する。このコマンド８０ｈは、シリアルデータ入力を意味するコマンドである。その後、メモリコントローラ２０は２サイクルかけてカラムアドレスＣＡ１、ＣＡ２を送信し、引き続き３サイクルかけてロウアドレスＰＡ１〜ＰＡ３を送信する。より具体的にはアドレスＰＡ１はページアドレスである。またアドレスＰＡ２とＰＡ３はブロック、プレーン、及びチップアドレスを指定するアドレスであり、これらは必要に応じて送信される。その後、メモリコントローラ２０は書き込みデータを送信し、最後にコマンド１０ｈを送信する。コマンド１０ｈは、自動ページプログラムコマンドである。これにより、書き込みデータがメモリセルアレイ４０に書き込まれる。
【００６４】
＜ＲＡＭモードの書き込み動作＞  
次に、ＲＡＭモードにおける書き込み動作を、図８を用いて説明する。図８は、メモリコントローラ２０からＮＡＮＤ型フラッシュメモリ３０に送信されるコマンド及びデータを示し、一例として２回の書き込み動作を示している。なお図８は、コマンドＣＸが既に発行された後の動作を示す。
【００６５】
図示するように、まずメモリコントローラ２０はコマンド８５ｈを発行する。コマンド８５ｈは、シリアルデータ入力におけるカラムアドレスの変更を意味するコマンドである。その後、メモリコントローラ２０は１サイクルでカラムアドレスＣＡ１を送信し、引き続き書き込みデータを送信する。これにより、書き込みデータがキャッシュレジスタ６０に書き込まれる。
【００６６】
＜ＲＡＭモードの読み出し動作＞  
次に、ＲＡＭモードにおける読み出し動作を、図９を用いて説明する。図９は、メモリコントローラ２０からＮＡＮＤ型フラッシュメモリ３０に送信されるコマンドと、ＮＡＮＤ型フラッシュメモリ３０からメモリコントローラ２０に送信されるデータを示す。図９も、コマンドＣＸが既に発行された後の動作を示す。
【００６７】
図示するように、まずメモリコントローラ２０はコマンド０５ｈを発行する。その後、メモリコントローラ２０は１サイクルでカラムアドレスＣＡ１を送信し、引き続きコマンドＥ０ｈを送信する。コマンド０５ｈ及びＥ０ｈは、シリアルデータ出力におけるカラムアドレスの変更を意味するコマンドである。すると、コマンドＥ０ｈに応答してＮＡＮＤ型フラッシュメモリは、キャッシュレジスタ６０からの読み出しデータをメモリコントローラ２０に転送する。
【００６８】
１．３  本実施形態に係る効果  
上記のように、本実施形態に係る構成であると、動作速度を向上出来る。本効果につき、以下説明する。
【００６９】
ＮＡＮＤ型フラッシュメモリは、ワード線に多数のメモリセルが接続された構造を有する。また、ワード線と垂直な方向にビット線が配置され、全てのビット線に対して、データをセンスするためのセンスアンプ（ページバッファ；ページレジスタ）とキャッシュレジスタが設けられている。キャッシュレジスタは、ＮＡＮＤ型フラッシュメモリとホスト機器との間でデータをやり取りするのに使用される。キャッシュレジスタは揮発性のラッチであり、チップの電源が落ちるとそのデータは消えてしまう。
【００７０】
ＮＡＮＤ型フラッシュメモリでは、これらの多数のセンスアンプとバッファを備えていることと、ワード線に接続されたセルに一度に電圧がかけられることから、一度の書き込み動作でこれらのメモリセルすべてに対して書き込みが行われる。読み出し動作も同様であり、ワード線に接続されている多数のセルに対して一度に読み出し動作が行われる。この単位がページである。
【００７１】
近年のＮＡＮＤ型フラッシュメモリのページ長は、例えば８ＫＢまたは１６ＫＢである。このようにページの容量が大きいという特徴により、連続したデータ（シリアルデータ）を扱う場合には、ビットあたりの書き込み/読み出し速度が大きくなる。すなわち、連続しているデータサイズがページ長の範囲内で大きいほど、ビットあたりの書き込み/読み出し速度は大きくなるというのがＮＡＮＤ型フラッシュメモリの特徴である。
【００７２】
逆に、サイズの小さいデータをランダムに（アドレスを変えながら）読み書きする動作は、連続データを扱う場合に比べて遅くなる。なぜなら、アクセスの度にアドレスとデータを入れ直す必要があるからである。
【００７３】
ここで、ＮＡＮＤ型フラッシュメモリとコントローラとを含むシステムを考える。ＮＡＮＤ型フラッシュメモリには非常に大きなサイズのキャッシュレジスタ（あるいはページバッファ）があり、この領域は、データを展開する領域として魅力的である。
【００７４】
他方で、近年、ＮＡＮＤ型フラッシュメモリの微細化に伴う課題を解決するための種々の処理がコントローラに課されることも多い。その際には、ある程度の大きさのデータを展開する領域が求められることがある。この領域を確保するためにコントローラの中に大容量のＲＡＭを設けることも出来るが、この場合にはコントローラ面積の増大を招き、コストが増加する懸念がある。
【００７５】
従って、ＮＡＮＤ型フラッシュメモリのキャッシュレジスタをコントローラの作業領域として使用することが求められる。しかし、一般的なＲＡＭに比べて、キャッシュレジスタにアクセスするには時間がかかり、コントローラの動作性能が低下する場合があった。そしてこのことが、キャッシュレジスタをコントローラのＲＡＭとして使用することを妨げる原因ともなっていた。
【００７６】
図１０は、一般的なＮＡＮＤ型フラッシュメモリにおいて、キャッシュレジスタからデータをリードアウトするときのタイミングシーケンスである。キャッシュレジスタにアクセスするためには、最低カラムアドレス２サイクルを入力することが必要である。ワード線及びブロックのアドレスは不要であり、これらのアドレスは、キャッシュレジスタにアクセスする前の値に設定されている。アクセスするプレーンまたはチップを変えたければプレーンアドレスまたはチップアドレスを入力しなおす必要がある。
【００７７】
図１０に示すように、ＮＡＮＤ型フラッシュメモリにレジスタリードコマンド０５ｈを入力してから、実際にデータがリードアウトされるまでの間には、待ち時間（ｔＷＨＲ２）が必要である。また、現在のＮＡＮＤ型フラッシュメモリの読み出しシーケンスでは、カラムアドレスは２サイクルで入力される（ＣＡ１、ＣＡ２）。そして、待ち時間ｔＷＨＲ２は、例えば３００nsecと定義されている。この待ち時間は、キャッシュレジスタから外部に達する経路をデータが伝播するのに必要な時間である。更に、コマンド及びアドレスの入力にはそれぞれ約２０nsecの時間がかかるため、シーケンス全体では約４００nsecの時間がかかる。
【００７８】
図１１は、キャッシュレジスタへの書き込みシーケンスを示す。図示するように、書き込み時においても、コマンド８５ｈからアドレスを入力するまでには待ち時間ｔＣＷＡＷが必要である。この待ち時間ｔＣＷＡＷは、データの入力パスにパイプラインが設置されている場合に、パイプラインを通じてデータをキャッシュレジスタまで転送するのに必要な時間である。待ち時間ｔＣＷＡＷは、例えば３００nsecである。コマンドとアドレスの入力にそれぞれ２０nsecかかるとすると、１バイトのデータを書き込むためのシーケンスには４００nsecの時間がかかる。
【００７９】
この点、本実施形態に係る構成であると、キャッシュレジスタ６０に高速にアクセスするために、通常のデータ入出力のモード以外に、キャッシュレジスタ６０にランダムアクセスするモードを有する（ＲＡＭモード）。そして、このＲＡＭモードでは、入出力回路８０は、パイプラインステージをショートカットしてデータを転送する。そのため、ＲＡＭモードでは上記説明した待ち時間が不要となる。その結果、キャッシュレジスタ６０へのランダムアクセスのシーケンスに要する時間を短縮し、ランダムアクセスのパフォーマンスを向上出来る。
【００８０】
更に本実施形態では、ＲＡＭモードにおけるアドレス入力サイクルを、通常モードの２サイクルから１サイクルに減らしている。これによっても、ランダムアクセス速度を向上出来る。
【００８１】
なお、前述の通り、ページサイズが１６バイトで、１サイクルで入力されるカラムアドレスが８ビットならば、１サイクルで入力されたカラムアドレスで指定可能な範囲は２５６バイトの範囲に過ぎない（つまり、アクセス可能な範囲は、キャッシュレジスタ６０の全メモリ領域の約１．６％となる）。従って、ＲＡＭモードにおいてアクセスされるデータは、最大でも２５６バイト程度の小さなデータであることが好ましい。
【００８２】
また、ＲＡＭモードでは通常モードよりもカラムアドレスのビット数が少ない。従ってＲＡＭモードでは、第２カラムデコーダ１１０がカラムアドレスをデコードする。これにより、キャッシュレジスタ６０内のいずれかの２５６バイトの領域内におけるいずれかのカラムが選択される。
【００８３】
なお、入出力回路８０をパイプライン化する理由は、データを連続して高速に入力するためである。しかしＲＡＭモードでは、入出力回路８０におけるパイプラインをショートカットしてデータが転送される。よって、データが連続して転送される際には、データの入出力タイミングを通常モードに比べて緩和することが望ましい。この点、データの転送回数が１回であれば（本例では、転送データサイズが１バイトであれば）、タイミングを緩和した影響を受けることなくデータを転送出来るため、本実施形態の効果が最も顕著になるケースと言うことが出来る。
【００８４】
複数回にわたってデータが入力されるケースでは、上記タイミングを緩和した影響が無視出来ない。この場合、タイミングを緩和したことによるデータ入出力待ち時間の増加と、パイプラインをショートカットすることによる待ち時間の減少とを比較し、後者の方が大きい場合に、本実施形態は効果があると言える。
【００８５】
２．第２実施形態  
次に、第２実施形態に係る半導体記憶装置及びその制御方法について説明する。本実施形態は、複数の種類のコマンドを用意することで、ＲＡＭモードにおいてキャッシュレジスタ６０の任意の領域にアクセスしようとするものである。以下では、第１実施形態と異なる点についてのみ説明する。
【００８６】
２．１  キャッシュレジスタ６０の管理方法について  
まず、メモリコントローラ２０によるキャッシュレジスタ６０の管理方法について説明する。図１２はキャッシュレジスタ６０の概念図である。
【００８７】
図示するようにメモリコントローラ２０は、例えば１６ＫＢのキャッシュレジスタ６０を、先頭から順番に２５６バイト毎の６４個の領域Ａ、領域Ｂ、領域Ｃ、…に分割して管理する。
【００８８】
そしてメモリコントローラ２０は、図１３に示すようなコマンドテーブルを、例えば内蔵メモリ２２に保持する。図１３は、コマンドテーブルの概念図である。図示するように、コマンドＣＸ１、ＣＸ２、ＣＸ３、…は、第１実施形態で説明した例えばコマンド０５ｈに相当する機能に加えて、コマンドテーブルで対応付けられた領域Ａ、領域Ｂ、領域Ｃ、…を選択する機能を有する。すなわち、ＲＡＭモードにおいてキャッシュレジスタ６０の領域Ａにアクセスする際にはコマンドＣＸ１を発行し、領域Ｂにアクセスする際にはコマンドＣＸ２を発行し、以下同様である。なお、図１３ではデータを読み出す際の０５ｈに対応するコマンドについてのみ図示したが、データを書き込む際の８５ｈについても、複数のコマンドを用意しても良い。また、ＮＡＮＤ型フラッシュメモリ３０も同様のテーブルを保持し、これは制御部１２０内に記憶されていても良いし、あるいはメモリセルアレイ４０に書き込まれていても良い。
【００８９】
２．２  ＮＡＮＤ型フラッシュメモリ３０の動作について  
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ３０の動作について図１４を用いて説明する。図１４は、ＮＡＮＤ型フラッシュメモリの動作を示すフローチャートである。
【００９０】
図示するように、第１実施形態で説明したようにステップＳ２５の後、ＮＡＮＤ型フラッシュメモリ３０は書き込みコマンドまたは読み出しコマンドを受信する（ステップＳ３０）。このコマンドは、データの読み出しの際には、図１３で説明したコマンドＣＸ１、ＣＸ２、ＣＸ３、…のいずれかである。もちろん、書き込みの際も同様である。受信したコマンドは、コマンドレジスタ９０に格納される。
【００９１】
すると、制御部１２０はコマンドテーブルを参照して、受信したコマンドによっていずれの領域が指定されるのかを判断する（ステップＳ３１）。そして、決定された領域において、カラムアドレスに対応する領域にアクセスし（ステップＳ３２）、ステップＳ２８に進む。
【００９２】
図１５は、ＲＡＭモードにおけるコマンドＣＸ１〜ＣＸ３と、キャッシュレジスタ６０においてアクセスされる領域との関係を示す模式図である。図示するように、コマンドＣＸ１が発行された際には、キャッシュレジスタ６０の先頭の領域ＡのいずれかのラッチＣＤからデータが読み出される。コマンドＣＸ２が発行された際には、キャッシュレジスタ６０の先頭から２５７バイト目から始まる領域ＢのいずれかのラッチＣＤからデータが読み出される。コマンドＣＸ３が発行された際には、キャッシュレジスタ６０の先頭から５１３バイト目から始まる領域ＣのいずれかのラッチＣＤからデータが読み出される。
【００９３】
２．３  本実施形態に係る効果
本実施形態に係る構成であると、コマンドの数だけ、キャッシュレジスタ６０においてアクセス可能な領域を増やすことが出来る。従って、キャッシュレジスタ６０をより効率良く使用出来る。
【００９４】
なお、上記のコマンドＣＸ１、ＣＸ２、ＣＸ３…は、第１実施形態で説明したコマンドＣＸの機能を更に有していても良い。つまり、これらのコマンドを入力することで、ＮＡＮＤ型フラッシュメモリ３０がＲＡＭモードに遷移するような構成であっても良い。
【００９５】
３．第３実施形態  
次に、第３実施形態に係る半導体記憶装置及びその制御方法について説明する。本実施形態は、上記第１、第２実施形態で説明したＲＡＭモードにおけるメモリコントローラ２０の処理の具体例を示すものである。
【００９６】
３．１  メモリコントローラ２０の構成について  
まず、本実施形態に係るメモリコントローラ２０の構成について、図１６を用いて説明する。図１６は、本実施形態に係るメモリシステム１のブロック図である。
【００９７】
図示するようにメモリコントローラ２０は、第１実施形態で説明した図１において、暗号化回路２６、ランダマイズ回路２７、及びＥＣＣ（Error Checking and Correcting）回路２８の少なくともいずれかを備えている。
【００９８】
暗号化回路２６は、ＮＡＮＤ型フラッシュメモリ３０への書き込みデータを暗号化したり、ＮＡＮＤ型フラッシュメモリ３０から読み出しデータを復号化したりする。あるいは暗号化回路２６は、ＮＡＮＤ型フラッシュメモリ３０が正当なメディアであるか否かの認証処理を行う。
【００９９】
ランダマイズ回路２７は、ＮＡＮＤ型フラッシュメモリ３０への書き込みデータをランダマイズする。ランダマイズは、例えばあるスクランブル・シードに基づいて疑似乱数を発生し、これを用いて書き込みデータをスクランブルすることによって行われる。このランダマイズにより、特定のデータ（“０”または“１”）が特定の箇所に集中することを抑制出来る。
【０１００】
ＥＣＣ回路２８は、書き込みデータ及び読み出しデータにつき、エラーの検出及び訂正を行う。すなわち、データの書き込み時には、書き込みデータに基づいてパリティを生成する。他方、読み出し時には、読み出しデータに基づいてシンドロームを生成してエラーを検出し、エラーが発見された際にはこれを訂正する。
【０１０１】
３．２  暗号化回路２６の例について  
次に、上記暗号化回路２６がＮＡＮＤ型フラッシュメモリ３０のキャッシュレジスタ６０を作業領域として処理を実行する例について、図１７を用いて説明する。図１７は、メモリシステム１のブロック図であり、特に認証処理に関わる部分を示している。
【０１０２】
図示するように、ＮＡＮＤ型フラッシュメモリ３０は、認証用の鍵４２を記憶している。メモリコントローラ２０は、この鍵４２を基にしてＮＡＮＤ型フラッシュメモリ３０の認証処理を行う。
【０１０３】
メモリコントローラ２０の暗号化回路２０は、計算部２００及び比較部２１０を備えている。計算部２００は、ある乱数を生成し、この乱数ｍと鍵４２（Key）とに基づいて計算（Ｒ＝ｆ(ｍ, Key)）する。比較部２１０は、計算部２００における算出結果Ｒと、所定の期待値とを比較する。比較の結果、両者が一致すれば、ＣＰＵ２３は、メモリセルアレイ４０内のデータに対するアクセスを許可する。不一致であれば、アクセスを禁止する。
【０１０４】
以上の認証処理において、鍵４２は、キャッシュレジスタ６０に読み出される。そして計算部２００は、キャッシュレジスタ６０内の鍵４２にアクセスし、キャッシュレジスタ６０を作業領域に用いて種々の計算を実行する。この際、鍵４２がメモリコントローラ２０に読み出されることは無い。従って、ＮＡＮＤ型フラッシュメモリ３０内のコンテンツの流出（不正コピー品等の氾濫）を防止しつつ、且つ秘匿性の高い鍵４２が外部に漏れることを抑制出来る。
【０１０５】
また、メモリコントローラ２０がキャッシュレジスタ６０を作業領域として使用出来るため、暗号化回路２６をＮＡＮＤ型フラッシュメモリ３０では無くメモリコントローラ２０に設けることが出来る。
【０１０６】
３．３  その他の例  
次に、ランダマイズ回路２７及びＥＣＣ回路２８の例について簡単に説明する。
【０１０７】
ランダマイズ回路２７は、例えばスクランブル・シードを生成する際に、必要なデータをキャッシュレジスタ６０に格納して、種々の計算を実行する。またＥＣＣ回路２８は、パリティの生成やシンドロームの生成において種々の計算を行う。ＥＣＣ回路２８は、この計算の際に必要なデータをキャッシュレジスタ６０に格納する。
【０１０８】
ランダマイズ回路２７及びＥＣＣ回路２８は複雑な計算を実行するため、比較的大きな作業領域が必要である。この作業領域としてキャッシュレジスタ６０を用いることが出来る。これにより、内蔵メモリ２２のサイズを大きくする必要が無く、またランダマイズ機能及びＥＣＣ機能をＮＡＮＤ型フラッシュメモリ３０では無くメモリコントローラ２０に持たせることが出来る。
【０１０９】
３．４  本実施形態に係る効果  
以上のように、第１、第２実施形態で説明したＲＡＭモードは、暗号化、ランダマイズ、及びＥＣＣ処理においてキャッシュレジスタ６０をＲＡＭとして使用する際に用いることが出来る。もちろん、この他の処理に適用しても構わない。また、これらの機能は、ＣＰＵ２３によって実行されても良い。
【０１１０】
４．変形例等  
以上のように、上記実施形態に係る半導体記憶装置(30)は、第１動作モードと第２動作モード(RAM mode)とを備える。半導体記憶装置(30)は、メモリセルを複数備えたメモリセルアレイ(40 in FIG2)と、メモリセルアレイからページ単位で読み出されたデータを保持するバッファメモリ(page buffer 50 or cache register 60 in FIG2)とを具備する。バッファメモリは、ｎ回（ｎは２以上の自然数）のアドレス入力によって全ビットを指定可能なサイズを有し、第１モードではｎ回のアドレス入力を受け付け(S22 in FIG6)、第２モードで受け付けるアドレス入力はｎ回よりも少ないｍ回（ｍは自然数）に制限される(S26 in FIG6)。
【０１１１】
本構成により、バッファメモリ（キャッシュレジスタ６０またはページバッファ５０）へのアクセス速度を向上出来る。
【０１１２】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施形態において、ＲＡＭモードの他に、通常のレジスタリード機能（図１０及び図１１で説明した動作）を有していても良い。この場合においてキャッシュレジスタ６０にアクセスされる領域を図１８に示す。
【０１１３】
図示するように、通常のレジスタリード機能を実行する際には、２サイクルでカラムアドレスＣＡ１、ＣＡ２が入力される。これにより、キャッシュレジスタ６０における任意のカラムを選択することが出来る。このように、アクセスすべきデータサイズ等に応じて、通常のレジスタリードとＲＡＭモードによるキャッシュレジスタアクセスとを使い分けても良い。
【０１１４】
また、上記実施形態では、２回のアドレス入力によってキャッシュレジスタ６０の全カラムが選択可能な場合について説明した。従ってＲＡＭモードにおけるアドレス入力は１回であった。しかしキャッシュレジスタ６０は、３回以上のアドレス入力によって全カラムが選択可能なサイズを有していても良い。この場合、ＲＡＭモードにおけるアドレス入力回数も２回以上であっても良い。
【０１１５】
更に、上記で具体的な数値を挙げて説明したページサイズ等は一例に過ぎず、その他のサイズであっても良い。
【０１１６】
また、図２の例では、入力回路８１と出力回路８２の両方がパイプライン化されている場合を例に説明した。しかし、入力回路８１のみがパイプライン化されている場合や、逆に出力回路８２のみがパイプライン化されている場合であっても良い。その場合、読み出しまたは書き込み動作時における待ち時間は不要になる。しかしながら、種々の製品に対応するためには、メモリコントローラ２０は、読み出し及び書き込み動作の両方において待ち時間を設定することが望ましい。また、パイプラインのステージ数も任意である。上記の例では、ＲＡＭモードではパイプラインの全てをショートカットする例を示したが、ＲＡＭモードにおけるパイプラインステージ数が通常モードにおけるステージ数より少なければ良い。
【０１１７】
更に、図５のステップＳ１０の前に、メモリコントローラ２０はＮＡＮＤ型フラッシュメモリ３０がＲＡＭモードに対応するか否かを判断しても良い。対応していれば、メモリコントローラ２０はステップＳ１０の処理に進む。対応していなければ、ステップＳ１０を省略してステップＳ１１の処理に進むか、あるいは通常のレジスタリードを実行する。
【０１１８】
更に、メモリコントローラ２０によって制御される半導体メモリはＮＡＮＤ型フラッシュメモリに限らず、ＮＯＲ型フラッシュメモリ、ＡＮＤ型フラッシュメモリ、磁気ランダムアクセスメモリ（ＭＲＡＭ）、強誘電体メモリ（Ferroelectric ＲＡＭ）、ＲｅＲＡＭ（Resistive RAM）などのその他の半導体メモリ全般であって良い。
【０１１９】
更に、上記実施形態で説明したメモリコントローラ２０によって実行される機能の一部または全ては、ホスト機器１０で行っても良い。また、上記説明したフローチャートは、図示した順序には限らず、可能な限り順序を入れ替えても良いし、または複数の処理を同時に行っても良い。
【０１２０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１２１】
１…メモリシステム、１０…ホスト機器、２０…メモリコントローラ、２１…ホストインターフェイス、２２…内蔵メモリ、２３…ＣＰＵ、２４…バッファメモリ２４…ＮＡＮＤインターフェイス、２６…暗号化回路、２７…ランダマイズ回路、２８…ＥＣＣ回路、３０…ＮＡＮＤ型フラッシュメモリ、４０…メモリセルアレイ、５０…ページバッファ、６０…キャッシュレジスタ、７０…カラムセレクタ、８０…入出力回路、８１…入力回路、８２…出力回路、８４、８８…フリップフロップ、８５、８７…選択回路、９０…コマンドバッファ、９１…アドレスバッファ、１００、１１０…カラムデコーダ、１２０…制御部
【図１】
2013196751.tif 000003
【図２】
2013196751.tif 000004
【図３】
2013196751.tif 000005
【図４】
2013196751.tif 000006
【図５】
2013196751.tif 000007
【図６】
2013196751.tif 000008
【図７】
2013196751.tif 000009
【図８】
2013196751.tif 000010
【図９】
2013196751.tif 000011
【図１０】
2013196751.tif 000012
【図１１】
2013196751.tif 000013
【図１２】
2013196751.tif 000014
【図１３】
2013196751.tif 000015
【図１４】
2013196751.tif 000016
【図１５】
2013196751.tif 000017
【図１６】
2013196751.tif 000018
【図１７】
2013196751.tif 000019
【図１８】
2013196751.tif 000020