(57)【特許請求の範囲】
【請求項１】
フラッシュ・メモリ・デバイスにおいて：
書き込みデータを受け得るようホスト・バスへ結合され且つ内部のバスへ結合されたページ・バッファー回路にして、複数のページ・プレーンおよびモード制御回路を有しているページ・バッファー回路を備え、そのモード制御回路は、ページ・プレーンに対するアクセスを、ユーザ・モードではホスト・バスを介して、フラッシュ・アレイ・コントローラー・モードでは内部のバスを介して、それぞれ可能とし、ユーザ・モードとフラッシュ・アレイ・コントローラー・モードは少なくとも１つの制御信号によって決定され；
コマンド・バスを介してページ・バッファー回路に結合され且つホスト・バスに結合されているインタフェース回路を備え、このインタフェース回路は、ホスト・バスを介してコマンドを受けて、そのコマンドに応じてページ・プレーンをユーザ・モードとフラッシュ・アレイ・コントローラー・モードとに割り当てる少なくとも１つの制御信号をコマンド・バス上に発生し；
ページ・バッファー回路に内部のバスを介して結合されたフラッシュ・アレイ・コントローラー回路を備え、このフラッシュ・アレイ・コントローラー回路は、フラッシュ・アレイ・コントローラー・モードではページ・バッファー回路に対して内部のバスを介してアクセスできる
ことを特徴とする、フラッシュ・メモリ・デバイス。
【請求項２】
請求項１記載のフラッシュ・メモリ・デバイスにおいて、ホスト・バスに結合され、フラッシュ・セル・アレイからのフラッシュ・アレイ・データまたはページ・バッファー回路からのページ・バッファー・データを選択的にホストバスへと送る出力データ・マルチプレクサーを備えていることを特徴とする、フラッシュ・メモリ・デバイス。
【請求項３】
請求項２記載のフラッシュ・メモリ・デバイスにおいて、出力データ・マルチプレクサーには、その制御のためにインタフェース回路が結合されていることを特徴とする、フラッシュ・メモリ・デバイス。
【請求項４】
請求項３記載のフラッシュ・メモリ・デバイスにおいて、出力データ・マルチプレクサーは、一組のブロック・ステータス・レジスターからのブロック・ステータス・レジスター（ＢＳＲ）データを選択的に出力できるよう結合され、一組のブロック・ステータス・レジスターのそれぞれはフラッシュ・セル・アレイのブロックの１つに対応していることを特徴とする、フラッシュ・メモリ・デバイス。
【請求項５】
フラッシュ・メモリ・デバイスにおいて、ホスト・バスへ結合され且つ内部のバスに結合されているページ・バッファー資源の割り当てをする方法であって：
書き込みページ・バッファー・シーケンス・コマンドをホスト・バスを介して受け、ページ・バッファー資源の第１のページ・プレーンを、ユーザ・モードにおいてホスト・バスを介してアクセス可能とするように、ユーザ・モードに割り当て；
書き込みデータ・ブロックをホスト・バスを介して受け、それを第１のページ・プレーンへと転送し、
ページ・バッファー・コマンドを受け、ページ・バッファー資源の第１のページ・プレーンを、フラッシュ・アレイ・コントローラー・モードにおいてフラッシュ・アレイ・コントローラーから内部のバスを介してアクセス可能とするように、フラッシュ・アレイ・コントローラー・モードに割り当て、
ページ・バッファー資源の第２のページ・プレーンを、それがフラッシュ・アレイ・コントローラー・モードに割り当てられていなければ、ユーザ・モードに割り当てる
過程を備えることを特徴とする、ページ・バッファー資源の割り当てをする方法。
【請求項６】
請求項５記載の方法において、２番目の書き込みページ・バッファー・シーケンス・コマンドをホスト・バスを介して受け、ホスト・バスを介して２番目の書き込みデータ・ブロックを受け、それを第２のページ・プレーンへと転送する過程を更に備えることを特徴とする、ページ・バッファー資源の割り当てをする方法。
【請求項７】
請求項５記載の方法において、フラッシュ・セル・アレイを第１ページ・プレーンからの書き込みデータ・ブロックでプログラムする動作を、２番目の書き込みページ・バッファー・シーケンス・コマンドをホスト・バス介して受け、２番目の書き込みデータ・ブロックをホスト・バス介して受け、その２番目の書き込みデータ・ブロックを第２のページ・プレーンに転送する動作と並行的に、行う過程を更に備えていることを特徴とする、ページ・バッファー資源の割り当てをする方法。
【請求項８】
フラッシュ・メモリ・デバイスにあって、ページ・バッファー資源は、ページ・プレーンＡおよびページ・プレーンＢを含み、ホスト・バスに結合され且つ内部のバスに結合されており、そのページ・バッファー資源の割り当てをする方法であって：
書き込みページ・バッファー・シーケンス・コマンドをホスト・バスを介して受け、ページ・バッファー資源のページ・プレーンＡを、ユーザ・モードにおいてホスト・バスを介してアクセス可能とするように、ユーザ・モードに割り当て；
書き込みデータ・ブロックをホスト・バスを介して受け、それをページ・プレーンＡへと転送し；
ページ・バッファー・コマンドを受け、ページ・バッファー資源のページ・プレーンＡを、フラッシュ・アレイ・コントローラー・モードにおいてフラッシュ・アレイ・コントローラーから内部のバスを介してアクセス可能とするように、フラッシュ・アレイ・コントローラー・モードに割り当て；
スワップ・ページ・バッファー・コマンドをホスト・バスを介して受け、ユーザ・モードとフラッシュ・アレイ・コントローラー・モードを、ページ・プレーンＡとページ・プレーンＢとの間で交換する
過程を備えることを特徴とする、ページ・バッファー資源の割り当てをする方法。
【請求項９】
フラッシュ・メモリ・デバイスにおいて、ホスト・バスへ結合され且つ内部のバスに結合されているページ・バッファー資源の割り当てをする回路であって：
書き込みページ・バッファー・シーケンス・コマンドをホスト・バスを介して受け、ページ・バッファー資源の第１のページ・プレーンを、ユーザ・モードにおいてホスト・バスを介してアクセス可能とするように、ユーザ・モードに割り当てる回路と；
書き込みデータ・ブロックをホスト・バスを介して受け、それを第１のページ・プレーンへと転送する回路と；
ページ・バッファー・コマンドを受け、ページ・バッファー資源の第１のページ・プレーンを、フラッシュ・アレイ・コントローラー・モードにおいてフラッシュ・アレイ・コントローラーから内部のバスを介してアクセス可能とするように、フラッシュ・アレイ・コントローラー・モードに割り当てる回路と；
ページ・バッファー資源の第２のページ・プレーンを、それがフラッシュ・アレイ・コントローラー・モードに割り当てられていなければ、ユーザ・モードに割り当てる回路と
を備えることを特徴とする、ページ・バッファー資源の割り当てをする回路。
【請求項１０】
請求項９記載の回路において、２番目の書き込みページ・バッファー・シーケンス・コマンドをホスト・バスを介して受け、ホスト・バスを介して２番目の書き込みデータ・ブロックを受け、それを第２のページ・プレーンへと転送する過程を更に備えることを特徴とする、ページ・バッファー資源の割り当てをする回路。
【請求項１１】
請求項９記載の回路において、フラッシュ・セル・アレイを第１ページ・プレーンからの書き込みデータ・ブロックでプログラムする動作を、２番目の書き込みページ・バッファー・シーケンス・コマンドをホスト・バス介して受け、２番目の書き込みデータ・ブロックをホスト・バス介して受け、その２番目の書き込みデータ・ブロックを第２のページ・プレーンに転送する動作と並行的に、行う過程を更に備えていることを特徴とする、ページ・バッファー資源の割り当てをする回路。
【請求項１２】
コンピュータ・システムであって、
コマンドおよび書き込みデータ・ブロックをホスト・バスを介して送る中央処理装置と、
フラッシュ・メモリ・デバイスとを備え、このフラッシュ・メモリ・デバイスには：
ホスト・バスに結合され且つ内部のバスに結合されたページ・バッファー資源が備えられ、フラッシュ・メモリ・デバイスが、(1) ホスト・バスを介してコマンドを受けてそのコマンドに応じてページ・バッファー資源を割り当てる動作をなし、(2) 書き込みデータ・ブロックの受信およびページ・バッファー資源でのバッファを、他の書き込みデータ・ブロックのフラッシュ・メモリ・セル・アレイへのロード中に、行う動作をなすよう構成され、
内部のバスに結合されたフラッシュ・アレイ・コントローラー回路が備えられ、
ホスト・バスと、ページ・バッファー資源とに結合されたインタフェース回路が備えられ、このインタフェース回路は、コマンドを受けて、ページ・バッファー資源のページ・プレーンをコマンドに応じてユーザ・モードとフラッシュ・アレイ・コントローラー・モードとに割り当てる制御信号を生成するよう構成されている
ことを特徴とするコンピュータ・システム。
【請求項１３】
コンピュータ・システムであって、
コマンドおよび書き込みデータ・ブロックをホスト・バスを介して送る中央処理装置と、
第１および第２のポートを有し、第１のポートを介してホスト・バスに結合されたページ・バッファー資源と、
ホスト・バスとページ・バッファー資源の第２のポートとに結合された回路にして、コマンドを受けてページ・バッファー資源を割り当てて、書き込みデータ・ブロックの受信およびバッファを、他の書き込みデータ・ブロックのフラッシュ・メモリ・セル・アレイへのロード中に、行うよう構成された回路
とを備え、この回路には、
書き込みページ・バッファー・シーケンス・コマンドをホスト・バスを介して受け、ページ・バッファー資源の第１のページ・プレーンを、ユーザ・モードにおいてホスト・バスを介してアクセス可能であるように、ユーザ・モードに割り当てる回路と、
書き込みデータ・ブロックをホスト・バスを介して受け、それを第１のページ・プレーンへと転送する回路と、
ページ・バッファー・コマンドを受け、ページ・バッファー資源の第１のページ・プレーンを、フラッシュ・アレイ・コントローラー・モードにおいてフラッシュ・アレイ・コントローラーから内部のバスを介してアクセス可能であるように、フラッシュ・アレイ・コントローラー・モードに割り当てる回路と、
ページ・バッファー資源の第２のページ・プレーンを、それがフラッシュ・アレイ・コントローラー・モードに割り当てられていなければ、ユーザ・モードに割り当てる回路とが備えられていることを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は集積回路メモリ・デバイスの分野に関する。特に、本発明はフラッシュ・メモリ・デバイスのシェア・ページ・バッファー資源に関する。
【０００２】
【従来の技術】
フラッシュ・メモリ・デバイスは、コンピュータ・システムの不揮発性ランダム・アクセス・データ記憶のためのフラッシュ・セル・アレイを搭載している。従来のフラッシュ・メモリ・デバイスは、フラッシュ・セル・アレイのエリアをプログラム設定し且つ消去する書き込み制御回路を有している。書き込み制御回路は、予め設定されたシーケンスのプログラム・レベル電圧をフラッシュ・セルに印加して、フラッシュ・セルをプログラム設定している。
【０００３】
従来のフラッシュ・メモリ・デバイスは、オンチップ・プログラミング・データ・バッファーを採用して、フラッシュ・セル・アレイに対するプログラミング処理能力に高めていた。データ・バッファーは、一組のプログラミング・データをバッファーして、プログラミング速度の向上を可能にしている。データ・バッファーは、書き込み制御回路を用いて、プログラミング・データに対する高速アクセスを可能にしている。プログラミング・データに対する高速アクセスは、書き込み制御回路が、フラッシュ・セル・アレイの複数のバイトに対するプログラム・レベル電圧のサイクル化を解消している。
【０００４】
このような従来のフラッシュ・メモリ・デバイスにおいて、ユーザは、一般的にプログラミング・データ・ブロックをデータ・バッファーにロードする入力／出力ドライバーを用いている。入力／出力ドライバーはフラッシュ・アレイ・プログラム・コマンドを書き込み制御回路に送り、その後、書き込み制御回路は、プログラミング・データをデータ・バッファーにアクセスして、フラッシュ・セル・アレイをプログラム設定する。入力／出力ドライバーは、書き込み制御回路が前のプログラミング・データ・ブロックからのプログラミングを終了した後に、次のプログラミング・データ・ブロックをデータ・バッファーにロードする。
【０００５】
【発明が解決しようとする課題】
このような従来のフラッシュ・メモリ・デバイスでは、通常、書き込み制御回路がフラッシュ・セル・アレイをデータ・バッファーからプログラム設定している間に、入力／出力ドライバーがデータ・バッファーにアクセスできない欠陥があった。その結果、入力／出力ドライバーは、プログラム・オペレーションが終了するまでアイドル状態になる。この入力／出力ドライバーのアイドル時間は、プログラミングの性能をフラッシュ・メモリ・デバイスに対して低下させる結果になっていた。
【０００６】
本発明の１つの目的は、フラッシュ・メモリ・デバイスのフラッシュ・アレイ・コントローラーとユーザの間にページ・バッファー資源を共有することによって、フラッシュ・メモリ・デバイスに対するプログラミング処理能力を改善することにある。
【０００７】
本発明の別の目的は、各々ページ・プレーンがユーザ・モードまたはフラッシュ・アレイ・コントローラー・モードの何れかで機能する、複数のページ・プレーン・ページ・バッファーをフラッシュ・メモリ・デバイスのために提供することにある。
【０００８】
本発明の別の目的は、プレーンがユーザ・モードの時に、ユーザがページ・プレーンにアクセスできるようにし、なおかつ、プレーンがフラッシュ・アレイ・コントローラー・モードの時に、フラッシュ・アレイ・コントローラーがページ・プレーンにアクセスできるようにすることにある。
【０００９】
本発明の更なる目的は、ユーザがデータを他のページ・プレーンにロードしている間に、フラッシュ・アレイ・コントローラーが或るページ・プレーンからのデータによってフラッシュ・アレイをプログラム設定するようにして、ページ・バッファー・ページ・プレーンのなかでユーザ・モードとフラッシュ・アレイ・コントローラー・モードの割当を調整することにある。
【００１０】
【課題を解決するための手段】
発明のこれらと他の目的は、フラッシュ・セル・アレイを備えたフラッシュ・メモリ・デバイスと、フラッシュ・セル・アレイをプログラム設定するフラッシュ・アレイ・コントローラー回路と、フラッシュ・アレイ・コントローラー回路とユーザの間で共有される資源を与えるページ・バッファー回路によって達成される。ページ・バッファー回路は、ページ・プレーンが各々スタティック・ランダム・アクセス・メモリ・アレイからなる一組のページ・プレーンを搭載している。ページ・バッファー回路は、ユーザ・モードにおいてホスト・バスでページ・プレーンに対するアクセスと、フラッシュ・アレイ・コントローラー・モードにおいてフラッシュ・アレイ・コントローラーによるページ・プレーンに対するアクセスを可能にするモード制御回路を更に搭載している。各々ページ・プレーンのためのユーザ・モードとフラッシュ・アレイ・コントローラー・モードは、複数の制御信号によって決定される。フラッシュ・メモリ・デバイスは、コマンドをホスト・バスで処理するインタフェース回路を更に搭載している。インタフェース回路は、制御信号を生成して、ページ・プレーンをユーザとフラッシュ・アレイ・コントローラー・モードに、ユーザからのコマンドの要求に基づいて割り当てている。
【００１１】
本発明の他の目的と特徴と長所は、添付図面と次に示す詳細な説明から明らかになる。
【００１２】
【実施例】
図１は、コンピュータ・システム３００のブロック図である。コンピュータ・システム３００は、中央処理装置（ＣＰＵ）３０２と主記憶装置サブシステム３０４と一組のフラッシュ・メモリ・デバイス  ３１０−３１４  から構成している。ＣＰＵ３０２は主記憶装置サブシステム３０４とフラッシュ・メモリ・デバイス３１０−３１４とホスト・バス３０６で通信している。
【００１３】
フラッシュ・メモリ・デバイス３１０−３１４はコンピュータ・システム３００のランダム・アクセス不揮発性大型データ記憶を構成している。ＣＰＵ３０２は、読取メモリ・サイクルをホスト・バス３０６上に生成して、フラッシュ・メモリ・デバイス３１０−３１４の内容を読み取る。ＣＰＵ３０２は、書き込みコマンドと書き込みデータ・ブロックをフラッシュ・デバイス３１０−３１４にホスト・バス３０６で転送して、フラッシュ・メモリ・デバイス３１０−３１４に書き込む。
【００１４】
図２は、フラッシュ・メモリ・デバイス３１０のブロック図である。フラッシュ・メモリ・デバイス３１０は、フラッシュ・セル・アレイ２０とインタフェース回路４０とフラッシュ・アレイ・コントローラー５０と一組のページ・バッファー回路７０と一組の制御レジスター回路８０−８５と一組の読取／書き込みパス回路３０から構成している。
【００１５】
フラッシュ・セル・アレイ２０は、ランダム・アクセス不揮発性大型データ記憶を構成する。或る実施態様に対して、フラッシュ・セル・アレイ２０は、一組の３２個のフラッシュ・アレイ・ブロックとして構成されている。各々フラッシュ・アレイ・ブロックは６４Ｋバイトのデータを記憶する。
【００１６】
フラッシュ・メモリ・デバイス３１０が、ホスト・バス３０６に結合された状態で図示されている。ホスト・バス３０６は、ユーザ・アドレス・バス１０２と、ユーザ・データ・バス１０４と、ユーザ・コントロール・バス１０６を有している。
【００１７】
読取／書き込みパス回路３０は、フラッシュ・アレイ２０にアクセスする読取／書き込み回路を備えている。例えば、読取／書き込みパス回路３０は、フラッシュ・アレイ２０のための列及び行アドレス・デコード回路を含んでいる。読取／書き込みパス回路３０は、不具合なフラッシュ・セルがフラッシュ・アレイ２０で検出される時に、アドレスをオーバーライドする冗長回路も含んでいる。読取／書き込みパス回路３０は、参照フラッシュ・ビットを生成するミニ・アレイ回路と、参照フラッシュ・ビットとフラッシュ・アレイ２０のビットを比較して、ビットがロジック・ステート１またはロジック・ステート０であるかについて決定するセンスパス回路も含んでいる。
【００１８】
読取／書き込みパス回路３０は、フラッシュ・アレイ２０のビットと冗長ビットを選択するマルチプレクサー回路と、フラッシュ・アレイ２０のハイとロー・バイトを選択して８ビット・アクセスと１６ビット・アクセスを決めるマルチプレクサー回路も含んでいる。読取／書き込みパス回路３０は、フラッシュ・アレイ２０からフラッシュ・メモリ・デバイス３１０の出力パッドに対してデータを与える出力バッファー回路を含んでいる。
【００１９】
読取／書き込みパス回路３０はアドレス変更検出回路を含んでいる。アドレス変更検出回路は、アドレス変更が検出される時に制御パルスを生成する。制御パルスは、データが準備される前に、フラッシュ・アレイ２０の出力に列をチャージする速度をはやくするために採用されている。
【００２０】
読取／書き込みパス回路３０は、フラッシュ・アレイ２０にアクセスするための高電圧回路を含んでいる。例えば、読取／書き込みパス回路３０は、フラッシュ・アレイ２０のプログラミング・データのためにワードライン電圧を設定するＶＰＸスイッチング回路と、プログラミング・ロード・ラインを設定するＶＰＹゼネレーター回路を含んでいる。読取／書き込みパス回路３０は、プログラミング中にフラッシュ・アレイ２０の選択されていないブロックのソース電圧を設定するＶＳＩゼネレーター回路も含んでいる。
【００２１】
読取／書き込みパス回路３０は、消去確認と消去後修復オペレーションだけでなく、プログラム確認オペレーションのために参照電圧レベルを生成するデジタル／アナログ変換回路も含んでいる。読取／書き込みパス回路３０は、消去オペレーション中にソース電圧レベルをＶＰＰに設定するＶＰＳスイッチ回路も含んでいる。
【００２２】
制御レジスター回路８０−８５は、一組の特殊制御レジスターと、読取／書き込みパス３０を制御する付随回路を含んでいる。特殊制御レジスターは、中央制御バス１００を介してプログラム設定されてアクセスされる。
【００２３】
インタフェース回路４０は、ホスト・バス３０６のコマンドを受けて処理して、フラッシュ・セル・アレイ２０へのアクセスをホスト・バス３０６で可能にする。インタフェース回路４０は、コマンドをユーザ・データ・バス１０４から受けて、コマンドを確認し、キュー・バス４１でフラッシュ・アレイ・コントローラー５０にコマンドを登録する。その後、フラッシュ・アレイ・コントローラー５０は、フラッシュ・メモリ・デバイス３１０の適切な部分を用いて、コマンドを実行する。
【００２４】
フラッシュ・アレイ・コントローラー５０は、書き込みオペレーションをフラッシュ・アレイ２０で実行するために特別に減少された命令セット・プロセッサーである。フラッシュ・アレイ・コントローラー５０は、演算ロジック・ユニットと汎用レジスターと制御記憶装置と制御シーケンサーを含んでいる。フラッシュ・アレイ・コントローラー５０は、キュー・バス４１から受けたコマンドを用いて、制御記憶装置の適切なロケーションに送ってコマンドを実行する。
【００２５】
制御アクセス回路６０は、インタフェース回路４０とフラッシュ・アレイ・コントローラー５０の両方が中央制御バス１００で制御レジスター回路８０−８５にアクセスできるようにする。フラッシュ・メモリ・デバイス３１０のノーマル・モード中に、フラッシュ・アレイ・コントローラー５０は、制御アクセス回路６０を制御して、中央制御バス１００で制御レジスター回路８０−８５にアクセスする。
【００２６】
フラッシュ・アレイ・コントローラー５０は、書き込み制御信号とレジスター・アドレスを対応する書き込みデータと共に、制御アクセス回路６０にバス５２で転送して、特殊制御レジスターに書き込む。制御アクセス回路６０は、書き込みサイクルを中央制御バス１００で生成して、アドレス指定された特殊制御レジスターのプログラムを作成する。フラッシュ・アレイ・コントローラー５０は、レジスター・アドレスと読取制御信号を制御アクセス回路６０にバス５２で転送して、特殊制御レジスターを読み取る。制御アクセス回路６０は、読取アクセス・サイクルを中央制御バス１００で生成して、アドレス指定された特殊制御レジスターを読み取る。
【００２７】
制御レジスター回路８０は、特殊制御レジスターと、一組の制御信号９０に基づいて読取／書き込みパス３０の高電圧回路を制御する回路を含んでいる。高電圧制御レジスターは、ソース・スイッチ・インタフェース・レジスターと、ＶＰＸとＶＰＩＸマルチプレクサーを制御するインタフェース・レジスターと、ＶＰＰ／ＶＣＣスイッチ・インタフェース・レジスターと、参照ゼネレーターとマルチプレクサーとコンパレータを制御するインタフェース・レジスターと、プログラミング・データ・パス・インタフェース・レジスターを含んでいる。
【００２８】
制御レジスター回路８１は、一組の制御信号９１に基づいて読取／書き込みパス３０の特殊カラム・アクセス回路を制御する制御レジスターと回路を含んでいる。特殊カラム・アクセス制御レジスターは、ミニアレイ・インタフェース・レジスターと冗長インタフェース・レジスターと転写インタフェース・レジスターと内容アドレス指定可能メモリ・インタフェース・レジスターを含んでいる。
【００２９】
制御レジスター回路８２は、読取／書き込みパス３０から一組のステータス信号９２をセンスしてラッチする一組の読取専用レジスターを含んでいる。ステータス信号９２は、フラッシュ・メモリ・デバイス３１０の入力パッドに対応するＴＴＬバッファーの出力と、フラッシュ・セル・アレイ２０の感知増幅器の出力と、ページ・バッファー・カウンター出力と、読取／書き込みパス３０とフラッシュ・アレイ・コントローラー５０プログラム・カウンターの出力とを含んでいる。
【００３０】
制御レジスター回路８３は、一組の制御信号９３に基づいて読取／書き込みパス３０の読み取られたパスを制御する制御レジスターと回路を含んでいる。読取パス制御レジスターは、自動変更検出インタフェース・レジスターと、感知インタフェース・レジスターｘ，ｙ，ｚパス・インタフェース・レジスターと、ｃパス・インタフェース・レジスターとを含んでいる。
【００３１】
制御レジスター回路８４は、ページ・バッファー回路７０の一組のテスト・モードを制御するレジスターを含んでいる。制御レジスター回路８４の制御レジスターは、一組のテスト・モード制御信号９４を生成する。制御レジスター回路８４の制御レジスターは、フラッシュ・アレイ・コントローラー５０またはインタフェース回路４０によって中央制御バス１００を介してプログラム設定される。
【００３２】
制御レジスター回路８５は、一組の制御信号９５に基づいてフラッシュ・メモリ・デバイス３１０の特殊なテストの特徴を制御するレジスターを含んでいる。特殊テスト・レジスターは、テスト・モード・アクセス・レジスターと、ＶＰＰ捕獲レジスターと、レディ・ビジィ調整レジスターと、アドレス割当レジスターを含んでいる。
【００３３】
インタフェース回路４０は、入力アドレス・マルチプレクサー３５を制御して、読取／書き込みパス３０の入力アドレス３６を選択する。選択された入力アドレス３６は、ユーザ・アドレス・バス１０２でＴＴＬバッファー（図示されていない）によって選択されるアドレス、またはインタフェース回路４０からラッチされるアドレス３７になる。
【００３４】
インタフェース回路４０は、出力データ・マルチプレクサー４５を制御して、ユーザ・データ・バス１０４への出力データ転送のためのソースを選択する。選択された出力データは、読取／書き込みパス３０からのフラッシュ・アレイ・データ４６、またはページ・バッファー回路７０からのページ・バッファー・データ４７、またはインタフェース回路４０内に搭載されている一組のブロック・ステータス・レジスターからのブロック・ステータス・レジスター（ＢＳＲ）データ４８の何れかになる。
【００３５】
ＣＰＵ３０２は、ユーザ制御バス１０６で読取サイクルを送信しながら、ユーザ・アドレス・バス１０２でアドレスを転送して、フラッシュ・セル・アレイ２０を読み取る。インタフェース回路４０は、読取りサイクルを検出して、入力アドレス・マルチプレクサー３５にアドレスをユーザ・アドレス・バス１０２から読取／書き込みパス３０のｘとｙデコード回路に転送させる。インタフェース回路４０も、出力データ・マルチプレクサー４５に、アドレス指定された読取データを読取／書き込みパス３０からユーザ・データ・バス１０４で転送させる。
【００３６】
ＣＰＵ３０２は、プログラミング・データ・ブロックをページ・バッファー回路７０に転送するためにＩ／Ｏ書き込みサイクルをホスト・バス３０６で生成して、データをフラッシュ・セル・アレイ２０に書き込む。インタフェース回路４０は、書き込みコマンドを確認して、書き込みコマンドをフラッシュ・アレイ・コントローラー５０に登録する。フラッシュ・アレイ・コントローラー５０は、プログラミング・データをページ・バッファーからコントローラー・バス５１で読み取り、なおかつ、フラッシュ・アレイ２０の適切なエリアをプログラム設定して、書き込みコマンドを実行する。
【００３７】
フラッシュ・アレイ・コントローラー５０は、フラッシュ・セル・アレイ２０のフラッシュ・セルにチャージを加え且つチャージを取り除くために、読取／書き込みパス３０の高電圧回路のシーケンスを設定するアルゴリズムを実行する。フラッシュ・アレイ・コントローラー５０は、制御レジスター回路８０−８５に中央制御バス１００でアクセスして、高電圧回路を制御し且つフラッシュ・アレイ２０のアドレスを指定する。
【００３８】
読取／書き込みパス３０は、フラッシュ・セル・アレイ２０に消去機能のために適切な電圧レベルを印加するソース・スイッチ回路を含んでいる。読取／書き込みパス３０は、プログラム作成中に、プログラム・レベル電圧をフラッシュ・セル・アレイ２０のビット・ラインに加えるプログラム・ロード回路も含んでいる。
【００３９】
インタフェース回路４０は、３２のブロック・ステータス・レジスターを含んでいる。各々のブロック・ステータス・レジスターは、フラッシュ・セル・アレイ２０のブロックの１つに対応している。フラッシュ・アレイ・コントローラー５０は、ブロック・ステータス・レジスターのステータス・ビットを保持して、フラッシュ・セル・アレイ２０の各々ブロックのステータスを示す。ＣＰＵ３０２はブロック・ステータス・レジスターの内容をホスト・バス３０６で読み取る。
【００４０】
図３はインタフェース回路４０のブロック図である。インタフェース回路４０は、コマンド・ステート・マシン２１０と、データ／アドレス・キュー２１２と、オペレーション・キュー２１４と、一組のブロック・ステータス・レジスター（ＢＳＲ）２１６とから構成されている。
【００４１】
コマンド・ステート・マシン２１０は、コマンドをＣＰＵ３０２からホスト・バス３０６で受け取る。ＣＰＵ３０２からのコマンドは、ページ・バッファー回路７０に記憶されているデータをプログラムし、消去するコマンドだけでなく、フラッシュ・アレイ２０の個々のバイトまたはワードをプログラムし、消去するコマンドを含んでいる。
【００４２】
コマンド・ステート・マシン２１０は、コマンドを確認して、コマンドと付随するパラメーターをフラッシュ・アレイ・コントローラー５０にオペレーション・キュー２１４を経由して転送する。コマンド・ステート・マシン２１０は、制御信号をコマンド・バス２２０で転送して、ページ・バッファー回路７０の一組のモードも制御する。
【００４３】
コマンド・ステート・マシン２１０はＢＳＲ２１６のステータス・レジスターを読み取るコマンドを処理する。コマンド・ステート・マシン２１０は、アドレスと制御信号をＢＳＲ２１６にコマンド・バス２２０で転送して、ＢＳＲ  ２１６  のステータス・レジスターを選択する。ＢＳＲ２１６のステータス・レジスターは、ページ・バッファー回路７０のステータスを示すグローバル・ステータス・レジスターを含んでいる。
【００４４】
オペレーション・キュー２１４は、ラッチされたアドレス３７をデータ／アドレス／キュー２１２から入力マルチプレクサー３５に転送する。オペレーション・キュー２１４は、ラッチされたアレイ・データ３８もデータ／アドレス・キュー２１２から読取／書き込みパス３０に転送する。オペレーション・キュー２１４は、確認されたコマンドと付随するパラメーターをフラッシュ・アレイ・コントローラー５０にキュー・バス４１で転送する。
【００４５】
ＢＳＲ２１６は、フラッシュ・アレイ２０のフラッシュ・アレイ・ブロックの各々用のブロック・ステータス・レジスターを含んでいる。ＢＳＲ２１６の各々のブロック・ステータス・レジスターは、ブロック指定ステータス・インフォーメーションをユーザに与えるステータス・ビットを記憶する。
【００４６】
フラッシュ・アレイ・コントローラー５０はＢＳＲ２１６のステータス・レジスターのステータス・ビットを保持する。フラッシュ・アレイ・コントローラー５０は、ＢＳＲ２１６のステータス・レジスターに中央制御バス１００でアクセスする。フラッシュ・アレイ・コントローラー５０はＢＳＲ２１６に対する読取と書き込みの両方を中央制御バス１００で実施する。
【００４７】
インタフェース回路４０は、ステータス・レジスターの読み取られたアクセスをホスト・バス３０６でイネーブルする。ＣＰＵ３０２は、読取ステータス・レジスター・コマンドをコマンド・ステート・マシン２１０にホスト・バス３０６で転送して、ＢＳＲ２１６のステータス・レジスターを読み取る。読取ブロック・ステータス・レジスター・コマンドは、ＢＳＲ２１６の３２個のブロック・ステータス・レジスターを選択するステータス・レジスター・アドレスを含んでいる。
【００４８】
コマンド・ステート・マシン２１０は、ステータス・レジスター・アドレスをコマンド・バス２２０で転送して、ＢＳＲ２１６のステータス・レジスターを選択する。選択されたステータス・レジスターの内容はＢＳＲ２１６から出力マルチプレクサー４５にＢＳＲデータ・バス４８で転送される。コマンド・ステート・マシン２１０は、出力マルチプレクサー４５に、ユーザ・データ・バス１０４上の  ＢＳＲ  データ・バス４８のステータス・レジスター読取データを転送させる。
【００４９】
図４は、ページ・バッファー回路７０を示すブロック図である。ページ・バッファー回路７０は、２つの別々の２５６×８ビットスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）プレーンを有している。２つのＳＲＡＭプレーンは、プレーンＡ３１０とプレーンＢ３２０とからなる。
【００５０】
コマンド・バス２２０は、インタフェース回路（ＩＣ）アドレス・バス２２２と一組のＩＣ制御信号２２６とＩＣバイト信号３４４と初期化ページ・バッファー信号３３１を有する図示されている。コントローラー・バス５１は、フラッシュ・アレイ・コントローラー（ＦＡＣ）データ・バス２３２とＦＡＣアドレス・バス２３６とＦＡＣプログラム・カウンター・バス２３８とＦＡＣ命令バス２３０と一組のＦＡＣ制御信号２３４からなるように図示されている。
【００５１】
プレーンＡ３１０とプレーンＢ３２０の列は、ＩＣアドレス・バス２２２とＦＡＣアドレス・バス２３６とＦＡＣプログラム・カウンター・バス２３８でアドレス指定される。コマンド・ステート・マシン２１０は、プレーンＡ３１０とプレーンＢ３２０のアドレスをＩＣアドレス・バス２２２で指定する。フラッシュ・アレイ・コントローラー５０は、プレーンＡ３１０とプレーンＢ３２０のアドレスをデータ・アクセス中にＦＡＣアドレス・バス２３６で指定する。フラッシュ・アレイ・コントローラー５０は、プレーンＡ３１０とプレーンＢ３２０のアドレスを命令フェッチ中にＦＡＣプログラム・カウンター・バス２３８で指定する。
【００５２】
ページ・バッファー回路７０は、モード検出回路３００とカラム選択回路３０２とペアの入力マルチプレクサー３０４と３０６と出力データ整列回路３１５も有している。
【００５３】
図５は、プレーンＡ３１０とプレーンＢ３２０のアーキテクチャーを示している。プレーンＡ３１０とプレーンＢ３２０は、２つの１２８×８ビット・カラム（カラムＡとカラムＢ）と１つの１２８×３ビット・カラム（カラムＣ）から各々構成されている。カラムＡとＢはバイトまたはワードの値を記憶する。カラムＣは、ページ・バッファー回路７０の特殊テスト・モードの残りのビットを記憶する。
【００５４】
図６は、或る実施態様のページ・バッファー回路７０のモードを示している。ページ・バッファー回路７０のオペレーション・モードは、モード０〜７からなる。
【００５５】
モード０において、ページ・バッファー回路７０に対するアクセスは禁止される。ページ・バッファー回路７０は、ユーザまたはフラッシュ・アレイ・コントローラー５０によってアクセスできない。
【００５６】
モード１において、ページ・バッファー回路７０は、特殊テスト・モードにおけるフラッシュ・アレイ・コントローラー５０の制御記憶装置として機能する。フラッシュ・アレイ・コントローラー５０は、命令アドレスをページ・バッファー回路７０にＦＡＣアドレス・バス２３６で転送して、命令をフェッチする。フラッシュ・アレイ・コントローラー５０は、対応する命令をページ・バッファー回路７０からＦＡＣ命令バス２３０で受け取る。
【００５７】
モード２において、インタフェース回路４０はページ・バッファー回路７０をユーザ・モードで読み取る。インタフェース回路４０は、読み取られたページ・バッファー・コマンドをホスト・バス３０６で受け取る。読み取られたページ・バッファー・コマンドは、ページ・バッファー回路７０の読み取たれたアドレスを指定する。コマンド・ステート・マシン２１０は、読み取られたアドレスをページ・バッファー回路７０にＩＣアドレス・バス２２２で転送する。ページ・バッファー回路７０は対応する読取りデータをページ・バッファー・データ・バス４７で転送する。インタフェース回路４０は、マルチプレクサー４５に、読取りデータをユーザ・データ・バス１０４で転送させる。
【００５８】
モード３において、インタフェース回路４０はページ・バッファー回路７０にユーザ・モードで書き込む。ページ・バッファー回路７０に対するユーザ・モード書き込みは、書き込みバイト／ワード・トランザクションまたは書き込みシーケンス・トランザクションの何れかになる。ページ・バッファー回路７０に対する書き込みバイト／ワード・トランザクションは、インタフェース回路４０が書き込みページ・バッファー・コマンドをホスト・バス３０６で受ける時に始まる。書き込みページ・バッファー・コマンドは、書き込みデータ値だけでなく、ページ・バッファー回路７０のための書き込みアドレスを指定する。コマンド・ステート・マシン２１０は、書き込みアドレスをページ・バッファー回路７０にＩＣアドレス・バス２２２で転送する。ページ・バッファー回路７０は、書き込みデータ値をユーザ・データ・バス１０４で受け取る。
【００５９】
ページ・バッファー回路７０に対する書き込みシーケンス・トランザクションは、インタフェース回路４０が書き込みページ・バッファー・シーケンス・コマンドをホスト・バス３０６で受ける時に始まる。書き込みページ・バッファー・シーケンス・コマンドは、バイト・カウントだけでなく、ページ・バッファー回路７０のためのスタート・アドレスも指定する。インタフェース回路４０は書き込みカウンター回路（図示されていない）を搭載している。書き込みカウンター回路には、書き込みページ・バッファー・シーケンス・コマンドの受信時にバイト・カウントが送られる。その後、書き込みカウンター回路は、ページ・バッファー回路７０が書き込みデータ値をユーザ・データ・バス１０４で受けると、カウント・ダウンする。書き込みデータ値が受信されている間、コマンド・ステート・マシン２１０は、書き込みカウンター回路に基づいてＩＣアドレス・バス２２２でページ・バッファー回路７０のアドレスを指定する。
【００６０】
モード４において、フラッシュ・アレイ・コントローラー５０はユーザ・モードでページ・バッファー回路７０から読み取る。例えば、フラッシュ・アレイ・コントローラー５０は、プログラミング・データをページ・バッファー回路７０からページ・バッファー・オペレーションによるプログラム中に読み取る。フラッシュ・アレイ・コントローラー５０はページ・バッファー回路７０のアドレスをＦＡＣアドレス・バス２３６で指定する。フラッシュ・アレイ・コントローラー５０は、対応するプログラミング・データをページ・バッファー回路７０からＦＡＣデータ・バス２３２で受け取る。
【００６１】
モード５において、フラッシュ・アレイ・コントローラー５０は、ページ・バッファー回路７０にユーザ・モードで書き込む。フラッシュ・アレイ・コントローラー５０は、ページ・バッファー回路７０のアドレスをＦＡＣアドレス・バス２３６で指定し、なおかつ、対応する書き込みデータをページ・バッファー回路７０にＦＡＣデータ・バス２３２で転送する。
【００６２】
モード６において、インタフェース回路４０は、拡大されたスペースを備えた特殊テスト・モードでページ・バッファー回路７０を読み取る。インタフェース回路４０は、ホスト・バス３０６で読み取られるアドレスを指定する読取ページ・バッファー・コマンドを受け取る。コマンド・ステート・マシン２１０は、読み取られたアドレスをページ・バッファー回路７０にＩＣアドレス・バス２２２で転送し、なおかつ、ページ・バッファー回路７０は対応して読取りデータをページ・バッファー・データ・バス４７で転送する。
【００６３】
モード７において、インタフェース回路４０は、拡大されたスペースを備えた特殊テスト・モードでページ・バッファー回路７０に書き込む。インタフェース回路４０は、ホスト・バス３０６で書き込みアドレスと書き込みデータ値を指定する書き込みページ・バッファー・コマンドを受ける。コマンド・ステート・マシン２１０は、書き込みアドレスをページ・バッファー回路７０にＩＣアドレス・バス２２２で転送する。ページ・バッファー回路７０は書き込みデータ値をユーザ・データ・バス１０４で受け取る。
【００６４】
図７は、各々モードに相応するページ・バッファー回路７０のアドレス・マッピングを示している。モード１において、プレーンＡ３１０の行Ａ，Ｂ，ＣとプレーンＢ３２０の行Ａ，Ｂ，Ｃを搭載する全体のページ・バッファーは、２５６×１９ビットの制御記憶装置にマップされる。モード１において、ページ・バッファー回路７０は、フラッシュ・アレイ・コントローラー５０の２５６エントリ制御記憶装置として機能する。
【００６５】
モード２〜５において、ページ・バッファー回路７０は、２つの独自のプレーン（ＰＬＡＮＥ  ＡとＰＬＡＮＥ  Ｂ）にマップされる。ＰＬＡＮＥ  ＡとＰＬＡＮＥ  Ｂは各々２５６×８ビットである。ＰＬＡＮＥ  ＡとＰＬＡＮＥ  Ｂは、インタフェース回路４０またはフラッシュ・アレイ・コントローラー５０によって８ビット・モードまたは１６ビット・モードでアクセスされる。モード２〜５において、インタフェース回路４０は、ホスト・バス３０６で受信されたコマンドに基づいてＰＬＡＮＥ  ＡとＰＬＡＮＥ  Ｂに対するアクセスを調整する。インタフェース回路４０は、インタフェース回路４０とフラッシュ・アレイ・コントローラー５０が共に同じプレーンにアクセスしないことを保証している。
【００６６】
モード６と７において、ＰＬＡＮＥ  ＡとＰＬＡＮＥ  Ｂは１つの連続して拡大されたメモリ・スペースにマップされる。拡大されたメモリ・スペースはプレーンＡ  ３１０の行Ａ，Ｂ，Ｃ  とプレーンＢ３２０の行Ａ，Ｂ，Ｃを含んでいる。モード６と７はページ・バッファー回路７０をテストする特殊テスト・モードである。
【００６７】
図８は、ページ・バッファー回路７０にアクセスするアドレス・ビット・フィールドを示している。図示されているアドレス・ビットは、モードに応じて、ＦＡＣアドレス・バス２３６、ＩＣアドレス・バス２２２、またはＦＡＣプログラム・カウンター・バス２３８で転送される。
【００６８】
アドレス・ビットＡ９はモード１とモード６〜７のプレーンＡ３１０とプレーンＢ３２０のカラムＣを選択する残りのデータ選択として機能する。アドレス・ビットＡ８はプレーンＡ３１０またはプレーンＢ３２０を選択するプレーン選択として機能する。アドレス・ビットＡ７〜Ａ１は、プレーンＡ３１０とプレーンＢ３２０の列を選択する。アドレス・ビットＡ０は上位バイトまたは下位ビットの列を選択する。
【００６９】
モード検出回路３００は、ページ・バッファー回路７０のためのモードを決定する。モード検出回路３００はｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ｂモード３３５を生成する。ｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ｂモード３３５は各々３つのビットからなる。ｐｌａｎｅ＿Ａモード３３３はプレーンＡ３１０のモードを決定する。ｐｌａｎｅ＿Ｂモード３３５はプレーンＢ３２０のモードを決定する。
【００７０】
モード検出回路３００は、フラッシュ・アレイ・コントローラー５０からのＦＡＣ制御信号２３４と、コマンド・ステート・マシン２１０からのＩＣ制御信号２２４、およびテスト・モード制御信号９４に基づいて、ｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ｂモード３３５を生成する。
【００７１】
ＦＡＣ制御信号２３４は、ＦＡＣプログラム・カウンターのビット７と、ＦＡＣアドレス・バス２３６のビット８と、カレントＦＡＣ命令とからなる。
【００７２】
ＩＣ制御信号２２４は、ＩＣアドレス・バス２２２のビット８と、ＩＣプレーン・ステータス信号と、ＩＣプレーン選択信号からなる。ＩＣ制御信号２２４も、ＦＡＣプレーン・ステータス信号と、ＦＡＣプレーン選択信号と、シングル・バイト／ワード書き込み信号と、書き込みシーケンス信号からなる。
【００７３】
テスト・モード制御信号９４は、ＦＡＣ制御記憶作動信号とテスト・モード拡大信号と２ビットＦＡＣオーバーライド信号を含んでいる。ＦＡＣ制御記憶作動信号は、ページ・バッファー回路７０がフラッシュ・アレイ・コントローラー５０の制御記憶装置として機能するかどうかについて決定する。テスト・モード拡大信号は、ページ・バッファー回路７０が拡大されたモード６−７で機能するかどうかについて決定する。
【００７４】
図９は、フラッシュ・アレイ・コントローラー５０に依るアクセスのためのプレーンＡ３１０とプレーンＢ３２０の割当構成を示している。ＦＡＣプレーン割当構成は、ＦＡＣプレーン選択信号とＦＡＣプレーン・ステータス信号とＦＡＣオーバーライド信号によって決定される。
【００７５】
ＦＡＣオーバーライド信号のビット０と１が共にゼロの時に、ＦＡＣプレーン選択信号は、フラッシュ・アレイ・コントローラー５０がプレーンＡ３１０またはプレーンＢ３２０に指定されているかどうかについて決定する。ＦＡＣプレーン・ステータス信号は、ＦＡＣプレーン選択信号によって決定されたプレーンが使用可能であるかどうかについて示す。
【００７６】
ＦＡＣオーバーライド信号は、ノーマル・プレーン指定メカニズムをオーバーライドして、プレーンＡ３１０またはプレーンＢ３２０をフラッシュ・アレイ・コントローラー５０に指定する。
【００７７】
図１０は、インタフェース回路４０に依るアクセスのためのプレーンＡ３１０とプレーンＢ３２０の割当構成を示している。インタフェース回路４０のためのプレーン割当構成は、ＩＣプレーン・ステータス信号とＩＣプレーン選択信号とテスト・モード拡大信号によって決定される。
【００７８】
テスト・モード拡大信号が示される時に、インタフェース回路４０は、拡大されたメモリ・スペースに残っているビットを含めてプレーンＡ３１０とプレーンＢ３２０にアクセスする。
【００７９】
テスト・モード拡大信号が示されない時に、ＩＣプレーン選択信号は、インタフェース回路４０がプレーンＡ３１０またはプレーンＢ３２０に指定されているかどうかについて決定する。ＩＣプレーン・ステータス信号は、ＩＣプレーン選択信号によって選択されたプレーンが使用可能であるかどうかについて示す。
【００８０】
コマンド・ステート・マシン２１０は、ＩＣプレーン・ステータス信号とＩＣプレーン選択信号とＦＡＣプレーン・ステータス信号とＦＡＣプレーン選択信号を生成して、プレーンＡ３１０とプレーンＢ３２０をフラッシュ・アレイ・コントローラー５０とインタフェース回路４０に割り当てる。コマンド・ステート・マシン２１０は、ＩＣとＦＡＣプレーン・ステータスとプレーン選択信号を生成して、プレーンＡ３１０がフラッシュ・アレイ・コントローラー５０とインタフェース回路４０の両方に同時に割り当てられないことを保証する。同様に、コマンド・ステート・マシン２１０は、ＩＣとＦＡＣプレーン・ステータスとプレーン選択信号を生成して、プレーンＢ３２０がフラッシュ・アレイ・コントローラー５０とインタフェース回路４０の両方に同時に割り当てられないことを保証する。
【００８１】
モード検出回路３００はＦＡＣバイト信号３５２も生成する。ＦＡＣバイト信号３５２は、フラッシュ・アレイ・コントローラー５０がページ・バッファー回路７０に対するバイトまたはワード・アクセスを実施しているかどうかについて示す。モード検出回路３００は、カレントＦＡＣ命令をデコードして、バイトまたはワード・アクセスを決定する。
【００８２】
カラム選択回路３０２は、ｐｌａｎｅ＿Ａモード３３３と、ｐｌａｎｅ＿Ｂモード３３５、およびモード検出回路３００からのＦＡＣバイト信号３５２を受ける。カラム選択回路３０２はＩＣバイト信号３４４も受ける。ＩＣバイト信号３４４は、ユーザが、ページ・バッファー回路７０のバイトまたはワード・アクセスを実施しているかどうかについて示す。ユーザからのバイトまたはワード・アクセスは、ユーザ・コントロール・バス１０６に結合されている制御信号ピンによって決定される。
【００８３】
カラム選択回路３０２は、ＩＣアドレス・バス２２２のビット０を信号ライン３４６で、なおかつ、ＩＣアドレス・バス２２２のビット９を信号ライン３４８で受ける。カラム選択回路３０２は、ＦＡＣアドレス・バス２３６のビット０を信号ライン３５０で受ける。更に、カラム選択回路３０２は初期化ページ・バッファー信号３３１も受ける。
【００８４】
カラム選択回路３０２は、３ビットのｐｌａｎｅ＿Ａ選択３３７と３ビットのｐｌａｎｅ＿Ｂ選択３３９を生成する。ｐｌａｎｅ＿Ａ選択３３７はプレーンＡ３１０のカラム選択信号を生成する。ｐｌａｎｅ＿Ｂ選択３３９はプレーンＢ３２０のカラム選択信号を生成する。
【００８５】
図１１は、カラム選択回路３０２によって生成されるｐｌａｎｅ＿Ｂ選択３３９のステートを示す真理値表である。ｐｌａｎｅ＿Ｂ選択３３９は、ｐｌａｎｅ＿Ｂモード３３５、ＦＡＣオーバーライド信号、初期化ページ・バッファー（ＩＮＩＴ  ＰＢ）信号３３１、ＦＡＣアドレス・ビット０、ＩＣアドレス・ビット９と０、ＦＡＣバイト信号３５２、ＩＣバイト信号３４４によって決定される。
【００８６】
図１２は、カラム選択回路３０２によって生成されるｐｌａｎｅ＿Ａ選択３３７のステートを示す真理値表である。ｐｌａｎｅ＿Ａ選択  ３３７は、ｐｌａｎｅ＿Ａモード３３３、ＦＡＣオーバーライド信号、初期化ページ・バッファー信号３３１、ＦＡＣアドレス・ビット０、ＩＣアドレス・ビット９と０、ＦＡＣバイト信号３５２、ＩＣバイト信号３４４から決定される。
【００８７】
プレーンＡ３１０は入力データを入力マルチプレクサー３０４を経由して受ける。入力マルチプレクサー３０４は、データを、ＦＡＣデータ・バス２３２でフラッシュ・アレイ・コントローラー５０から、なおかつ、ユーザ・データ・バス１０４でユーザから受ける。入力マルチプレクサー３０４は、ｐｌａｎｅ＿Ａモード３３３と初期化ページ・バッファー信号３３１によって制御される。
【００８８】
モード２と３と６と７において、ｐｌａｎｅ＿Ａモード３３３は、入力マルチプレクサー３０４に、入力データをユーザ・データ・バス１０４からプレーンＡ３１０の入力に転送させる。モード４と５において、ｐｌａｎｅ＿Ａモード３３３は、入力マルチプレクサー３０４に、入力データをＦＡＣデータ・バス２３２からプレーンＡ３１０の入力に転送させる。
【００８９】
プレーンＢ３２０は入力データを入力マルチプレクサー３０６を経由して受ける。入力マルチプレクサー３０６は、データを、ＦＡＣデータ・バス２３２でフラッシュ・アレイ・コントローラー５０から、なおかつ、ユーザ・データ・バス１０４でユーザから受ける。入力マルチプレクサー３０６は、ｐｌａｎｅ＿Ｂモード３３５と初期化ページ・バッファー信号３３１によって制御される。
【００９０】
モード２と３と６と７において、ｐｌａｎｅ＿Ｂモード３３５は、入力マルチプレクサー３０６に、入力データをユーザ・データ・バス１０４からプレーンＢ３２０の入力に転送させる。モード４と５において、ｐｌａｎｅ＿Ｂモード３３５は、入力マルチプレクサー３０６に、入力データをＦＡＣデータ・バス２３２からプレーンＢ３２０の入力に転送させる。
【００９１】
プレーンＡ３１０は、出力データをｐｌａｎｅ＿Ａデータ・バス３４０で転送する。ｐｌａｎｅ＿Ａデータ・バス３４０はカラムＡの上位バイトと、カラムＢの下位バイトと、カラムＣの３つの残りのビットを含む１９ビットのデータを送ることができる。
【００９２】
プレーンＢ３２０は、出力データをｐｌａｎｅ＿Ｂデータ・バス３４２で転送する。ｐｌａｎｅ＿Ｂデータ・バス３４２は、カラムＡの上位バイトと、カラムＢの下位バイトと、カラムＣの３つの残りのビットを含めて、１９ビットのデータを含む。
【００９３】
図１３は出力データ整列回路３１５を示す。出力データ整列回路３１５は、出力データを、プレーンＡ３１０とプレーンＢ３２０からＦＡＣ命令バス２３０とＦＡＣデータ・バス２３２とページ・バッファー・データ・バス４７で、ｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ｂモード３３５とｐｌａｎｅ＿Ａ選択３３７とｐｌａｎｅ＿Ｂ選択３３９に基づいて転送する。
【００９４】
出力データ整列回路３１５は、出力データをｐｌａｎｅ＿Ａ  データ・バス３４０とｐｌａｎｅ＿Ｂデータ・バス３４２で受ける。出力データ整列回路３１５は、マルチプレクサー制御回路３６０とデコード回路３７２を一組のマルチプレクサー３６２−３７０とから構成されている。
【００９５】
マルチプレクサー制御回路３６０は、ｐｌａｎｅ＿Ａ選択３３７とｐｌａｎｅ＿Ｂ選択３３９とｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ｂモード３３５を受ける。マルチプレクサー制御回路３６０はペアのマルチプレクサー制御信号３８０と３８１を生成する。
【００９６】
デコード回路３７２はｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ｂモード３３５を受ける。デコード回路３７２は、マルチプレクサー制御信号３８２を生成する。
【００９７】
マルチプレクサー３６２は、ｐｌａｎｅ＿Ａデータ・バス３４０とｐｌａｎｅ＿Ｂデータ・バス３４２をマルチプレクサー３６６の入力に選択して結合する。ｐｌａｎｅ＿Ａデータ・バス３４０はプレーンＡ３１０の上位バイトと下位バイトと残りのビットをキャリーする。ｐｌａｎｅ＿Ｂデータ・バス３４２は、プレーンＢ３２０の上位バイトと下位バイトと残りのビットをキャリーする。マルチプレクサー３６２は、ｐｌａｎｅ＿Ａデータ・バス３４０とｐｌａｎｅ＿Ｂデータ・バス３４２をマルチプレクサー３６６にマルチプレクサー制御信号３８０の制御のもとで選択して結合する。
【００９８】
マルチプレクサー３６６は、受信された上位バイトと受信された下位バイトと受信された残りのビットをページ・バッファー・データ・バス４７にマルチプレクサー制御信号３８０の制御のもとで結合する。ある実施態様の場合、ページ・バッファー・データ・バス４７は１６ビットを搭載している。
【００９９】
マルチプレクサー３６４は、ｐｌａｎｅ＿Ａ  データ・バス３４０とｐｌａｎｅ＿Ｂデータ・バス３４２をマルチプレクサー３６８の入力に選択して結合する。マルチプレクサー３６４は、ｐｌａｎｅ＿Ａデータ・バス３４０とｐｌａｎｅ＿Ｂデータ・バス３４２をマルチプレクサー３６８にマルチプレクサー制御信号３８１の制御のもとで選択して結合する。
【０１００】
マルチプレクサー３６８は、受信された上位バイトと受信された下位バイトと受信された残りのビットをＦＡＣデータ・バス２３２にマルチプレクサー制御信号３８１の制御のもとで結合する。ある実施態様の場合、ＦＡＣデータ・バス２３２は１６ビットからなる。
【０１０１】
マルチプレクサー３７０は、プレーンＡ３１０の出力データをｐｌａｎｅ＿Ａ  データ・バス３４０で、なおかつプレーンＢ３２０の出力データをｐｌａｎｅ＿Ｂ  データ・バス３４２で受ける。マルチプレクサー３７０は、プレーンＡまたはプレーンＢ出力データをＦＡＣ命令バス２３０にマルチプレクサー制御信号３８２の制御のもとで選択して結合する。或る実施態様の場合、ＦＡＣ命令バス２３０は、カラムＡとＢの上位と下位のバイトとカラムＣの３つの残りのビットを含めて１９ビットからなる。
【０１０２】
図１４は、ページ・バッファー・データ・バス４７で転送されるデータを示す出力データ整列回路３１５の真理値表である。ページ・バッファー・データ・バス４７で転送されるデータは、ｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ａ選択３３７とｐｌａｎｅ＿Ｂモード３３５とｐｌａｎｅ＿Ｂ選択３３９によって決定される。
【０１０３】
図１５は、ＦＡＣデータ・バス２３２で転送されるデータを示す出力データ整列回路３１５の真理値表である。ＦＡＣデータ・バス２３２で転送されるデータは、ｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ａ選択３３７とｐｌａｎｅ＿Ｂモード３３５とｐｌａｎｅ＿Ｂ選択３３９によって決定される。
【０１０４】
図１６は、ＦＡＣ命令バス２３０で転送されるデータを示す出力データ整列回路３１５の真理値表である。ＦＡＣ命令バス２３０で転送されるデータは、ｐｌａｎｅ＿Ａモード３３３とｐｌａｎｅ＿Ｂモード３３５によって決定される。
【０１０５】
図１７ａは、フラッシュ・メモリ・デバイス３１０のグローバル・ステータス・レジスターを示す。グローバル・ステータス・レジスターは、ページ・バッファー回路７０のステータスを示すステータス・ビットを有している。グローバル・ステータス・レジスターはインタフェース回路４０の内部に含まれている。ユーザは、グローバル・ステータス・レジスターをホスト・バス３０６で読み取って、モード２−５に於けるプレーンＡ３１０とプレーンＢ３２０のステータスを決定する。
【０１０６】
グローバル・ステータス・レジスターは、ページ・バッファー使用可能ビット（ＰＢ  ＡＶＡＩＬ）とページ・バッファー選択ビット（ＰＢ  ＳＥＬ）とページ・バッファー・ステータス・ビット（ＰＢ  ＳＴＡＴ）を記憶する。
【０１０７】
ページ・バッファー使用可能ビットは、ページ・バッファー・プレーン（プレーンＡまたはＢ）の１つがユーザ・アクセスに使用できるかどうかについて示す。ページ・バッファー・プレーンは、ページ・バッファー・プレーンの１つがフラッシュ・アレイ・コントローラー５０に割り当てられていない時に、ユーザ・アクセスに使用できる。
【０１０８】
ページ・バッファー選択ビットは、どのページ・バッファー・プレーン（プレーンＡまたはＢ）がユーザ・アクセスに割り当てられているかについて示す。
【０１０９】
ページ・バッファー・ステータス・ビットは、ページ・バッファー選択ビットによって示されたページ・バッファー・プレーンがユーザ・アクセスに使用できるかどうかについて示す。
【０１１０】
図１７ｂは、ページ・バッファー回路７０を採用するフラッシュ・アレイ２０のプログラム・シーケンスを示している。時間１において、ユーザは、グローバル・ステータス・レジスターを読み取って、ページ・バッファー・プレーンがユーザ・アクセスに使用できるかどうかについて決定する。図示されている例の場合、グローバル・ステータス・レジスターは、プレーンＡがユーザ・アクセスに使用できることを示している。
【０１１１】
その後、ユーザは、ユーザ・データ・バス３０６で書き込みデータ・ブロックの前に書き込みシーケンス・コマンドを転送して、プログラム・データを割り当てられていたプレーンＡに転送する。ページ・バッファー回路は、書き込みデータ・ブロックをプレーンＡ３１０に前述のように自動的に送る。
【０１１２】
時間２において、ユーザは、プログラムをページ・バッファー・コマンドによってフラッシュ・メモリ・デバイス３１０に送る。コマンド・ステート・マシン２１０は、プログラムをページ・バッファー・コマンドによって受け、プログラムをページ・バッファー・コマンドによってフラッシュ・アレイ・コントローラー５０に登録し、ＩＣ制御信号２２４を生成して、プレーンＡ３１０をフラッシュ・アレイ・コントローラー５０に、プレーンＢ３２０をユーザ・アクセスに指定する。その後、フラッシュ・アレイ・コントローラー５０は、プレーンＡのデータによってフラッシュ・アレイ２０のプログラムを設定する。
【０１１３】
時間２と３の間で、フラッシュ・アレイ・コントローラー５０がプレーンＡからプログラム設定している時に、ユーザはプレーンＢをロードする。ユーザは、ユーザ・データ・バス３０６で書き込みデータ・ブロックの前に書き込みシーケンス・コマンドを転送して、プログラム・データを指定されたプレーンＢに転送する。ページ・バッファー回路は、書き込みデータ・ブロックをプレーンＢ３２０に自動的に送る。
【０１１４】
時間３において、ユーザは、プログラムをページ・バッファー・コマンドによってフラッシュ・メモリ・デバイス３１０に送る。コマンド・ステート・マシン２１０は、プログラムをページ・バッファー・コマンドによって受け、プログラムをページ・バッファー・コマンドによってフラッシュ・アレイ・コントローラー５０に登録して、ＩＣ制御信号２２４を生成し、なおかつ、フラッシュ・アレイ・コントローラー５０がプレーンＡからのプログラム・オペレーションを終了した後に、プレーンＢ３２０をフラッシュ・アレイ・コントローラー５０に、プレーンＡ３１０をユーザ・アクセスに指定する。その後、フラッシュ・アレイ・コントローラー５０は、ユーザがプレーンＡに新しいプログラム・データ・ブロックをロードしている間に、プレーンＢからのデータによってフラッシュ・アレイ２０のプログラムを設定する。
【０１１５】
ユーザは、スワップ・ページ・バッファー・コマンドを発行して、ページ・バッファー・プレーンＡとＢの指定を交換する。スワップ・ページ・バッファー・コマンドは、コマンド・ステート・マシン２１０に、プレーンＡとＢの指定をフラッシュ・アレイ・コントローラー５０とユーザ・アクセスの間で切り替えさせる。
【０１１６】
前述の明細な説明において、発明は、その特定の実施態様を参照して説明されてきた。しかし、種々の修正と変更は、添付する請求の範囲で指摘される発明の幅広い範囲と精神を逸脱せずに、そこに加えられることできることが明らかである。明細書と図面は、そこで、限定というよりも、むしろ図解するものと見なされる。
【図面の簡単な説明】
【図１】  中央処理装置（ＣＰＵ）と主記憶サブシステムと一組のフラッシュ・メモリ・デバイスを含むコンピュータ・システムのブロック図である。
【図２】  フラッシュ・セル・アレイとインタフェース回路とフラッシュ・アレイ・コントローラーと一組のページ・バッファーと一組の制御レジスター回路と一組の読取／書き込みパス回路を含んでいるフラッシュ・メモリ・デバイスのブロック図である。
【図３】  コマンド・ステート・マシンとデータ／アクセス・キューとオペレーション・キューと一組のブロック・ステータス・レジスター（ＢＳＲ）を搭載するインタフェース回路のブロック図である。
【図４】  ２つの別の２５６×８ビットスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）プレーンと残りのビットから構成するページ・バッファー回路を示すブロック図である。
【図５】  ２つの１２８×８ビット・カラム（カラムＡとＢ）と１つの１２８×３ビット・カラム（カラムＣ）から各々構成するプレーンＡとプレーンＢのアーキテクチャーを示す。
【図６】  モードがモード０〜７を搭載しているページ・バッファー回路のモードを示す。
【図７】  モード１〜７のためのページ・バッファー回路のアドレス・マッピングを示す。
【図８】  ページ・バッファー回路にアクセスするためのアドレス・ビット・フィールドを図示していて、そこでは、図示されているアドレス・ビットはＦＡＣアドレス・バスまたはＩＣアドレス・バスまたはＦＡＣプログラム・カウンターでモードに基づいて転送される。
【図９】  フラッシュ・アレイ・コントローラーに依るアクセスのためのプレーンＡとプレーンＢのＦＡＣプレーン構成を示す。
【図１０】  インタフェース回路に依るアクセスのためのプレーンＡとプレーンＢの構成を示す。
【図１１】  カラム選択回路によって生成されるｐｌａｎｅ＿Ｂ選択のステートを示す真理値表である。
【図１２】  カラム選択回路によって生成されるｐｌａｎｅ＿Ａ選択のステートを示す真理値表である。
【図１３】  モードに基づいてＦＡＣ命令バスとＦＡＣデータ・バスとページ・バッファー・データ・バスでプレーンＡとプレーンＢから出力データを転送する出力データ整列回路を示す。
【図１４】  モードに基づいてＩＣデータ・バスで転送されるデータを示す出力データ整列回路の真理値表である。
【図１５】  モードに基づいてＦＡＣデータ・バスで転送されるデータを示す出力データ整列回路の真理値表である。
【図１６】  モードに基づいてＦＡＣ命令バスで転送されるデータを示す出力データ整列回路の真理値表である。
【図１７】  フラッシュ・メモリ・デバイスのためのページ・バッファー回路のステータスを表すステータス・ビットを搭載しているグローバル・ステータス・レジスターページ・バッファー回路を採用しているフラッシュ・アレイのプログラム・シーケンスとを示す。
【符号の説明】
２０...フラッシュ・アレイ、３０...読取／書き込みパス、４０...インタフェース回路、５０...フラッシュ・アレイ・コントローラー、６０...制御アクセス回路、７０...ページ・バッファー、３０２...ＣＰＵ、３０４...主記憶装置、３１０...フラッシュ・チップ０、３１２...フラッシュ・チップ１、３１４...フラッシュ・チップＮ。
【図１】
0003737528.tif 000002
【図２】
0003737528.tif 000003
【図３】
0003737528.tif 000004
【図４】
0003737528.tif 000005
【図５】
0003737528.tif 000006
【図６】
0003737528.tif 000007
【図７】
0003737528.tif 000008
【図８】
0003737528.tif 000009
【図９】
0003737528.tif 000010
【図１０】
0003737528.tif 000011
【図１１】
0003737528.tif 000012
【図１２】
0003737528.tif 000013
【図１３】
0003737528.tif 000014
【図１４】
0003737528.tif 000015
【図１５】
0003737528.tif 000016
【図１６】
0003737528.tif 000017
【図１７】
0003737528.tif 000018