(57)【特許請求の範囲】
【請求項１】
不揮発性メモリセルのアレイと、
フラッシュメモリ処理に使用されるコマンドデータを格納するコマンドレジスタとを含み、
前記コマンドレジスタが、ロードコマンドレジスタ処理モードの際、メモリアドレス接続端子を通じて前記コマンドデータを受け取ることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項２】
請求項１記載のシンクロナスフラッシュメモリデバイスにおいて、前記ロードコマンドレジスタ処理モードが、列アドレスストローブ（ＣＡＳ＃）信号、行アドレスストローブ（ＲＡＳ＃）信号、および書き込みイネーブル（ＷＥ＃）信号の所定の組み合わせを用いて開始されることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項３】
請求項２記載のシンクロナスフラッシュメモリデバイスにおいて、前記ロードコマンドレジスタ処理モードが、前記ＣＡＳ＃信号がＬＯＷ，前記ＲＡＳ＃信号がＬＯＷ、さらに、前記ＷＥ＃信号がＨＩＧＨであるときに開始されることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項４】
請求項１記載のシンクロナスフラッシュメモリデバイスにおいて、前記フラッシュメモリ処理が、
メモリデバイスコンフィグレーションレジスタの読み出しと、
前記メモリデバイスのステータスレジスタの読み出しと、
前記ステータスレジスタのクリアと、
消去セットアップ処理の実行と、
書き込みセットアップ処理の実行と、
メモリセルアレイのブロックの保護と、
メモリデバイス書き込み保護処理の実行と、
前記メモリセルアレイの前記ブロックの保護解除と、
前記メモリデバイスのモードレジスタに対するデータ書き込みと、
前記モードレジスタからのデータ消去とを含む群から選択される処理を少なくとも１つ含むことを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項５】
アドレス指定可能なブロックに設けられた不揮発性メモリセルのアレイと、
外部から供給されるアドレスデータを受け取る外部アドレス接続端子と、
メモリデバイスステータスデータを格納するステータスレジスタと、
シンクロナスフラッシュメモリデバイスのモードを設定するために使用されるモードデータを格納するモードレジスタと、
フラッシュメモリ処理の制御に使用されるコマンドデータを格納するコマンドレジスタとを含み、
前記コマンドレジスタは、ロードコマンドに応答してメモリアドレス接続端子を通じて前記コマンドデータを受け取ることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項６】
請求項５記載のシンクロナスフラッシュメモリデバイスにおいて、前記ロードコマンドが、列アドレスストローブ（ＣＡＳ＃）信号、行アドレスストローブ（ＲＡＳ＃）信号、さらに、書き込みイネーブル（ＷＥ＃）信号の所定の組み合わせであることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項７】
請求項５記載のシンクロナスフラッシュメモリデバイスにおいて、前記ロードコマンドが、アサート済の列アドレスストローブ（ＣＡＳ＃）信号、アサート済の行アドレスストローブ（ＲＡＳ＃）信号、さらに、アサート済の書き込みイネーブル（ＷＥ＃）信号の組み合わせであることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項８】
請求項５記載のシンクロナスフラッシュメモリデバイスにおいて、前記ロードコマンドは、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）のリフレッシュコマンドに相当するコマンドであることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項９】
請求項５記載のシンクロナスフラッシュメモリデバイスにおいて、前記フラッシュメモリ処理が、
前記ステータスレジスタの読み出し処理の実行と、
前記ステータスレジスタのクリアと、
消去セットアップ処理の実行と、
書き込みセットアップ処理の実行と、
前記不揮発性メモリセルのアレイの書き込み保護制御と、
前記モードレジスタの制御とを含む群から選択される処理を少なくとも１つ含むことを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項１０】
不揮発性メモリセルのアレイと、
フラッシュメモリ処理の制御に使用されるコマンドデータを格納するコマンドレジスタとを含み、前記コマンドレジスタは、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）のリフレッシュコマンドに相当するロードコマンドに応答してメモリアドレス接続端子を通じて前記コマンドデータを受け取ることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項１１】
請求項１０記載のシンクロナスフラッシュメモリデバイスにおいて、前記ロードコマンドが、アサート済の列アドレスストローブ（ＣＡＳ＃）信号、アサート済の行アドレスストローブ（ＲＡＳ＃）信号、さらに、アサート済の書き込みイネーブル（ＷＥ＃）信号の組み合わせであることを特徴とするシンクロナスフラッシュメモリデバイス。
【請求項１２】
外部のメモリアドレス接続端子に接続されたメモリコントローラと、ＳＤＲＡＭにおける列アドレスストローブ（ＣＡＳ）信号、行アドレスストローブ（ＲＡＳ）信号及び書き込みイネーブル（ＷＥ）信号に接続されたシンクロナスフラッシュメモリデバイスとを含むシンクロナスデータシステムにおいて、前記シンクロナスフラッシュメモリデバイスは、
不揮発性メモリのアレイと、
前記メモリコントローラによって前記メモリアドレス接続端子に対して提供されるコマンドデータを格納するコマンドレジスタとを含み、
前記コマンドデータは、フラッシュメモリ処理を行うための付加的かつ外部の専用制御信号を要しないようにするために、ＳＤＲＡＭにおけるリフレッシュコマンドコンフィグレーションに含まれる前記ＣＡＳ信号、前記ＲＡＳ信号及び前記ＷＥ信号に対応するロードコマンドに応じて、フラッシュメモリ処理を制御するために使用されることを特徴とするシンクロナスデータシステム。
【請求項１３】
請求項１２記載のシンクロナスデータシステムにおいて、前記コマンドレジスタは、前記メモリコントローラに接続されたメモリアドレス接続端子を通じて前記コマンドデータを受け取り、前記コマンドデータは、前記コマンドコントローラからのロードコマンドに応答してロードされることを特徴とするシンクロナスデータシステム。
【請求項１４】
請求項１３記載のシンクロナスデータシステムにおいて、前記ロードコマンドが、アサート済の列アドレスストローブ（ＣＡＳ＃）信号、アサート済の行アドレスストローブ（ＲＡＳ＃）信号、さらに、アサート済の書き込みイネーブル（ＷＥ＃）信号の組み合わせであることを特徴とするシンクロナスデータシステム。
【請求項１５】
請求項１２記載のシンクロナスデータシステムにおいて、前記シンクロナスフラッシュメモリが、さらに、
メモリデバイスステータスデータを格納するステータスレジスタと、
前記シンクロナスフラッシュメモリデバイスのモード設定に使用されるモードデータを格納するモードレジスタとを含むことを特徴とするシンクロナスデータシステム。
【請求項１６】
請求項１５記載のシンクロナスデータシステムにおいて、前記フラッシュメモリ処理は、
前記ステータスレジスタの読み出し処理の実行と、
前記ステータスレジスタのクリアと、
消去セットアップ処理の実行と、
書き込みセットアップ処理の実行と、
前記不揮発性メモリセルのアレイの書き込み保護制御と、
前記モードレジスタの制御とを含む群から選択される処理を少なくとも１つ含むことを特徴とするシンクロナスデータシステム。
【請求項１７】
シンクロナスフラッシュメモリにおけるコマンド提供方法において、
列アドレスストローブ（ＣＡＳ＃）信号、行アドレスストローブ（ＲＡＳ＃）信号、さらに、書き込みイネーブル（ＷＥ＃）信号の所定の組み合わせを使用してコマンドレジスタロード処理を開始するステップと、
前記コマンドレジスタロード処理に応答して前記シンクロナスフラッシュメモリのアドレス接続端子を使用して前記コマンドレジスタにコマンドデータをロードするステップとを含むことを特徴とするシンクロナスフラッシュメモリにおけるコマンド提供方法。
【請求項１８】
請求項１７記載の方法において、前記ＣＡＳ＃信号がアサートされ、前記ＲＡＳ＃信号がアサートされ、前記ＷＥ＃信号がデアサートされたとき、前記コマンドレジスタがロードされることを特徴とするシンクロナスフラッシュメモリにおけるコマンド提供方法。
【請求項１９】
請求項１７記載の方法において、前記所定の組み合わせが、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）のリフレッシュ処理の実行に使用されるＲＡＳ＃、ＣＡＳ＃、およびＷＥ＃の組み合わせに相当することを特徴とするシンクロナスフラッシュメモリにおけるコマンド提供方法。
【請求項２０】
請求項１７記載の方法において、さらに、前記コマンドデータに応答してメモリ処理を実行するステップを含み、前記メモリ処理が、
メモリステータスレジスタの読み出し処理の実行と、
前記ステータスレジスタのクリアと、
消去セットアップ処理の実行と、
書き込みセットアップ処理の実行と、
不揮発性メモリセルのアレイの書き込み保護制御と、
モードレジスタの制御とを含む群より選択されることを特徴とするシンクロナスフラッシュメモリにおけるコマンド提供方法。
【請求項２１】
アサート済の列アドレスストローブ（ＣＡＳ＃）信号と、アサート済の行アドレスストローブ（ＲＡＳ＃）信号と、デアサート済の書き込みイネーブル（ＷＥ＃）信号の組み合わせを使用してコマンドレジスタロード処理を開始するステップと、
前記コマンドレジスタロード処理に応答して前記シンクロナスフラッシュメモリのアドレス接続端子を使用して前記コマンドレジスタにコマンドデータをロードするステップと、
前記コマンドデータに応答してメモリ処理を実行するステップとを含むことを特徴とするシンクロナスフラッシュメモリにおける処理の実行方法。
【請求項２２】
請求項２１記載の方法において、前記メモリ処理は、
メモリデバイスコンフィグレーションレジスタの読み出しと、
前記メモリデバイスのステータスレジスタの読み出しと、
前記ステータスレジスタのクリアと、
消去セットアップ処理の実行と、
書き込みセットアップ処理の実行と、
前記メモリセルのアレイのブロック保護と、
メモリデバイス書き込み保護処理の実行と、
前記メモリセルのアレイの前記ブロックの保護解除と、
前記メモリデバイスのモードレジスタに対するデータ書き込みと、
前記モードレジスタからのデータ消去とを含む群より選択されることを特徴とするシンクロナスフラッシュメモリにおける処理の実行方法。
【発明の詳細な説明】
【０００１】
発明の技術分野
本発明は、不揮発性メモリに関し、特に、同期式（シンクロナス）の不揮発性フラッシュメモリに関する。
【０００２】
発明の背景
通常、メモリデバイスは、コンピュータの内部記憶領域用として提供される。用語「メモリ」は、データの記録媒体として用いられる集積回路チップを示す。メモリには幾つかの種類がある。例えば、ＲＡＭ（random-access memory）は、コンピュータのメインメモリとして用いられる。ＲＡＭは、読み書き可能なメモリである。つまり、データをＲＡＭに書き込んだり、データをＲＡＭから読み出したりすることができる。これに対し、ＲＯＭは、データの読み出ししかできないメモリである。ＲＡＭの多くは揮発性であり、コンテンツを記憶した状態を維持するためには、保持電流を必要とする。電源が切れれば、ＲＡＭに記録されたデータが失われる。
【０００３】
ほとんどのコンピュータは、コンピュータを起動するための命令コード群が記録された小容量のＲＯＭを内蔵している。ＲＡＭとは異なり、ＲＯＭに書き込みを行うことはできない。ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）は、特別な不揮発性メモリであり、電荷を与えることによって（電気的に）データを消去することができる。他のＲＯＭと同様に、本来、ＥＥＰＲＯＭはＲＡＭのように高速なメモリではない。ＥＥＰＲＯＭは、多数のメモリセルを備え、各メモリセルは、電気的に絶縁された複数のゲート（フローティングゲート）を有する。フローティングゲートの電荷の有無に応じてメモリセルにデータが記録される。プログラミングや消去処理によって、フローティングゲートに対して電荷が供給されたり除去されたりする。
【０００４】
また、別の不揮発性メモリの例として、フラッシュメモリが挙げられる。フラッシュメモリは、ＥＥＰＲＯＭの一種であり、データの消去やプログラムの更新は、バイト単位ではなく、ブロック単位で行われる。最近のパーソナルコンピュータの多くは、フラッシュメモリチップにＢＩＯＳを記録しており、ＢＩＯＳの更新を必要に応じて簡単に行うことができる。このようなＢＩＯＳは、フラッシュＢＩＯＳとも呼ばれる。フラッシュメモリは、モデムにも使用されることが多い。フラッシュメモリを使用することによって、新しいプロトコルが標準化された際に、モデムの製造元から提供されるファームウェアを更新して、このプロトコールをモデムがサポートするようにすることができる。
【０００５】
通常、フラッシュメモリは、メモリアレイを備え、このメモリアレイは、行アドレスおよび列アドレスによって指定される多数のメモリセルで構成される。メモリセルの各々には、フローティングゲートを有して電荷を保持する電界効果トランジスタが設けられる。これらのセルは、ブロック単位のグループに分けられる。ブロックにおける各セルは、フローティングゲートに電荷を与えることによって、電気的に、ランダムにプログラムすることができる。蓄積電荷は、ブロック単位の消去処理によって、フローティングゲートから抜き出される。フローティングゲートにおける電荷の有無によってセルのデータが決定する。
【０００６】
シンクロナスＤＲＡＭ（ＳＤＲＡＭ）は、従来のＤＲＡＭメモリよりも高速で動作するＤＲＡＭである。ＳＤＲＡＭは、ＣＰＵのバスと同期して動作する。ＳＤＲＡＭは、従来のＦＰＭ（Fast Page Mode）ＲＡＭの約３倍、ＥＤＯ（Extended Data Output）ＤＲＡＭやＢＥＤＯ（Burst Extended Data Output）ＤＲＡＭの約２倍の周波数である、１００ＭＨｚで動作する。ＳＤＲＡＭは、高速アクセスが可能であるが、揮発性である。多くのコンピュータシステムは、ＳＤＲＡＭを使用して動作するように設計されているが、不揮発性メモリの利用も期待されている。
【０００７】
上述した理由、または以下に述べる理由により、本技術分野において、ＳＤＲＡＭと同じように動作する不揮発性メモリデバイスに対する要求が存在する。これらの理由は、当業者であれば、明細書に記載された内容を理解することによって、明らかとなるであろう。
【０００８】
発明の要旨
本発明は、上述したメモリデバイスの問題等を解決するためのものであり、以下の記載内容を検討することによって、理解可能となるであろう。
【０００９】
一実施の形態においては、本発明は、既存のＳＤＲＡＭのパッケージピン配列に互換性のある不揮発性シンクロナスフラッシュメモリを提供する。詳細な明細書の記載により、ＳＤＲＡＭ分野の知識を有するシステムデザイナであれば、システム処理を改良するために本発明を容易に実施可能であることは明らかであろう。
【００１０】
一実施の形態においては、シンクロナスフラッシュメモリデバイスは、不揮発性メモリセルのアレイと、フラッシュメモリ処理に使用されるコマンドデータを格納するコマンドレジスタとを含む。コマンドレジスタは、ロードコマンドレジスタ処理モードを用いてロードされる。ロードコマンドレジスタ処理モードは、列アドレスストローブ（ＣＡＳ＃）信号、行アドレスストローブ（ＲＡＳ＃）信号、および書き込みイネーブル（ＷＥ＃）信号の所定の組み合わせを用いて開始される。
【００１１】
別の実施の形態においては、シンクロナスフラッシュメモリデバイスは、不揮発性メモリセルのアレイと、フラッシュメモリ処理の制御に使用されるコマンドデータを格納するコマンドレジスタとを含む。コマンドレジスタは、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）のリフレッシュコマンドに相当するロードコマンドに応答してコマンドデータを受け取る。
【００１２】
また、シンクロナスフラッシュメモリにおけるコマンドを提供する方法は、列アドレスストローブ（ＣＡＳ＃）信号、行アドレスストローブ（ＲＡＳ＃）信号、さらに、書き込みイネーブル（ＷＥ＃）信号の所定の組み合わせを使用してコマンドレジスタロード処理を開始するステップと、コマンドレジスタロード処理に応答してシンクロナスフラッシュメモリのアドレス接続端子を使用してコマンドレジスタにコマンドデータをロードするステップとを含む。
【００１３】
発明の実施の形態の説明
添付図面を参照して本発明の実施の形態を詳細に説明する。添付図面は、本明細書の一部を構成するものであり、本発明の具体的な実施の形態を例示的に示している。実施の形態の各々は、当業者が発明を実施できるように十分に説明されている。なお、本発明の精神および範囲を逸脱することなく、論理的、機械的、電気的な変更を加えて発明を実施してもよいことが理解されよう。従って、以下の詳細な説明は、限定的に解釈されるべきではない。本発明の範囲は、クレームによってのみ定義されるものである。
【００１４】
以下の詳細な説明は、２つの主項目に分かれる。第１の項目（インタフェースの機能説明）では、ＳＤＲＡＭメモリとの互換性について詳細に説明されている。第２の項目（機能説明）では、フラッシュアーキテクチャにおける機能的コマンドが定められている。
【００１５】
インタフェースの機能説明
図１Ａは、本発明の一実施の形態を示すブロック図である。メモリデバイス１００は、不揮発性のフラッシュメモリセル１０２のアレイを含む。このアレイは、アドレス指定が可能な複数のバンクに配列されている。本実施の形態においては、４つのメモリバンク１０４、１０６、１０８、１１０がメモリに含まれている。各メモリバンクは、メモリセルからなるアドレス指定が可能な複数のセクタを含む。メモリに保存されたデータは、ロケーションアドレスを用いることによってアクセスすることができる。このロケーションアドレスは、外部から供給され、アドレスレジスタ１１２によって受け取られる。該アドレスは、行アドレスマルチプレクサ１１４によって解読される。また、前記アドレスは、バンク制御ロジック１１６および行アドレスラッチ/デコーダ１１８によって解読される。メモリにおける所望の列にアクセスすることを可能にするために、列アドレスカウンタ／ラッチ１２０は、受け取った複数のアドレスを結合し、列デコーダ１２２に出力する。回路１２４は、入出力ゲート、データマスクロジック、読出しデータラッチ、さらに、書き込みドライバとしての機能を有する。データは、データ入力レジスタ１２６を通じて入力され、データ出力レジスタ１２８を通じて出力される。コマンド実行ロジック１３０は、メモリデバイスの基本動作を制御する。また、ステートマシン１３２は、メモリアレイおよびセル上で実行される特定の処理を制御する。さらに、データ出力のため、ステータスレジスタ１３４およびＩＤレジスタ１３６が設けられる。
【００１６】
図１Ｂは、本発明の一実施の形態における接続ピン配列（入出力コネクタピンアサイン）を示す。メモリパッケージ１５０は、５４個の接続ピンを有する。ピン構成は、既存のＳＤＲＡＭパッケージのものと概ね同じである。本発明独自の接続ピンは、ＲＰ＃１５２およびＶｃｃｐ１５４の２つである。本発明は、ＳＤＲＡＭのものと同じ接続ピンラベルを使用するが、本明細書において、接続ピンを通じて入出力される信号の機能は、特に説明がない限りは、ＳＤＲＡＭのものと同じではない。図１Ｃは、一実施の形態におけるメモリパッケージ１６０を示す。メモリパッケージ１６０は、ピンによる接続端子ではなく、バンプによる接続端子を有する。従って、本発明は、特定のパッケージ構成に限定されるものではない。
【００１７】
メモリデバイスの処理の特徴を説明する前に、接続ピンおよび各接続ピンを通じて入出力される信号について説明する。入力クロック端子は、クロック信号（ＣＬＫ）を供給する。クロック信号は、システムクロックによってドライブされる。シンクロナスフラッシュメモリの入力信号は、全て、ＣＬＫの立ち上がりエッジ（ポジティブエッジ）でサンプリングされる。また、ＣＬＫは、内部バーストカウンタのカウント値を増加させ、更に、出力レジスタを制御する。
【００１８】
入力クロックイネーブル（ＣＫＥ）端子は、ＣＬＫ信号入力をアクティブ（活性化したＨＩＧＨ状態）、非アクティブ（活性化していないＬＯＷ状態）にするために使用される。クロック入力を非アクティブにすることによって、ＰＯＷＥＲ−ＤＯＷＮ＿ＳＴＡＮＤＢＹ処理（全てのメモリバンクがアイドル状態になる）、ＡＣＴＩＶＥ＿ＰＯＷＥＲ−ＤＯＷＮ処理（メモリ行がいずれかのバンクにおいてＡＣＴＩＶＥになる）、または、ＣＬＯＣＫ＿ＳＵＳＰＥＮＤ処理（バースト／アクセスが続行中である）が可能になる。ＣＫＥは、メモリデバイスがパワーダウンモードに入っているとき以外は、同期状態になっている。メモリデバイスがパワーダウンモードに入っているときは、ＣＫＥは、非同期状態になっている。ＣＬＫ等の入力バッファは、パワーダウンモードでは、無効になっており、低消費電力のスタンバイ状態になっている。ＣＫＥは、ＲＰ＃がディープパワーダウンであるときを除き、パワーダウンモードが要求されていない場合は、システムにおいてＨＩＧＨ状態に維持されていてもよい。
【００１９】
チップセレクト（ＣＳ＃）入力端子には、コマンド実行ロジックに設けられたコマンドデコーダを有効、無効にするための信号が入力される。信号がＬＯＷであれば、コマンドデコーダが有効となり、信号がＨＩＧＨであれば、コマンドデコーダが無効となる。つまり、ＣＳ＃がＨＩＧＨであれば、全てのコマンドがマスクされる。さらに、システムにおいて複数のバンクが存在する場合、ＣＳ＃によって外部からバンクを選択できるようになる。従って、ＣＳ＃は、コマンドコードの一部であるとみなすことができる。しかしながら、このＣＳ＃は、必須のものではない。
【００２０】
入力コマンドを入力するための接続端子ＲＡＳ＃、ＣＡＳ＃およびＷＥ＃は（ＣＡＳ＃、ＣＳ＃と共に）、後述するように、メモリによって実行されるコマンドを定義する。入出力マスク（ＤＱＭ）端子は、書き込みアクセスのためのマスク信号を入力し、読み出しアクセスのためのイネーブル信号を出力するために使用される。ＷＲＩＴＥサイクルの間にサンプリングされたＤＱＭがＨＩＧＨであった場合には、入力データがマスクされる。ＲＥＡＤサイクルの間にサンプリングされたＤＱＭがＨＩＧＨであった場合には、２クロックのレイテンシが経過後、出力バッファが高インピーダンス（Ｈｉｇｈ−Ｚ）状態になる。ＤＱＭＬは、データ端子ＤＱ０〜ＤＱ７に対応し、ＤＱＭＨは、データ端子ＤＱ８〜ＤＱ１５に対応する。ＤＱＭＬおよびＤＱＭＨは、ＤＱＭとして参照されたとき、同一の状態であると考えられる。
【００２１】
アドレス入力部（接続端子）１３３は、主に、アドレス信号を入力するために使用される。図示した実施の形態においては、メモリは１２のライン（Ａ０〜Ａ１１）を有する。また、後述するように、アドレス端子を通じて他の信号を入力するようにしてもよい。メモリバンクのあるロケーションを選択するために、ＡＣＴＩＶＥコマンド（行アドレスＡ０〜Ａ１１）やＲＥＡＤ／ＷＲＩＴＥコマンド（列アドレスＡ０〜Ａ７）が発行された際、アドレス入力部の信号がサンプリングされる。アドレス入力部は、後述するＬＯＡＤ＿ＣＯＭＭＡＮＤ＿ＲＥＧＩＳＴＥＲ処理の際、処理コード（ＯｐＣｏｄｅ）を入力するためにも使用される。また、アドレスラインＡ０−Ａ１１は、ＬＯＡＤ＿ＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理の際に、モード設定を入力するために使用される。
【００２２】
入力リセット／パワーダウン（ＲＰ＃）端子１４０は、リセット処理やパワーダウン処理を行うために使用される。一実施の形態においては、デバイスを立ち上げる（initial device power-up）ときには、ＲＰ＃がＬＯＷからＨＩＧＨになった後、実行可能なコマンドを発行する前に、デバイス内部での初期動作のため、１００μｓの遅延時間が必要となる。ＲＰ＃信号がＬＯＷになると、ステータスレジスタがクリアされ、デバイス内のステートマシン（ＩＳＭ）１３２がアレイ読み出しモードに設定される。また、デバイスがディープパワーダウンモードになる。パワーダウンによって、ＣＳ＃１４２を含む全ての入力端子が「ドントケア（Don't Care）」に設定され、全ての出力がＨｉｇｈ−Ｚ状態になる。ＲＰ＃信号がＶＨＨ電圧（５Ｖ）と同じになると、ＷＲＩＴＥ処理、ＥＲＡＳＥ処理の間、全ての保護モードが解除される。ＲＰ＃信号によって、デバイス保護ビットが「１（保護モード）」に設定されるが、ＲＰ＃信号がＶＨＨになったときは、１６ビットレジスタのロケーション０および１５に存在するブロック保護ビットの各々が、「０（非保護モード）」に設定される。保護ビットについては後述する。他の処理モードの全てにおいて、ＲＰ＃は、ＨＩＧＨに維持される。
【００２３】
バンクアドレス入力端子ＢＡ０およびＢＡ１は、どのバンクに対し、ＡＣＴＩＶＥコマンド、ＲＥＡＤコマンド、ＷＲＩＴＥコマンド、または、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴコマンドを発行するかどうかを定義する。ＤＱ０〜ＤＱ１５端子１４３は、双方向データ通信に使用されるデータバス接続端子である。図１Ｂに示すＶＣＣＱ端子は、ノイズの干渉を受けにくくなるように、ＶＣＣ端子と絶縁された電源をＤＱ端子に供給するために使用される。一実施の形態においては、ＶＣＣＱ＝Ｖｃｃ、即ち、１．８Ｖ±０．１５Ｖである。ＶＳＳＱ端子は、ノイズの干渉を受けにくくなるように、ＤＱ端子に対してＶＳＳ端子と絶縁されたグラウンドとして使用される。ＶＣＣ端子は、例えば、３Ｖの電源供給用である。グラウンドへの接続は、Ｖｓｓ端子を通じて行われる。また、ＶＣＣＰ端子１４４を通じて別のオプション電圧を供給してもよい。ＶＣＣＰ端子は、デバイスの外部でＶＣＣ端子に接続され、デバイスの初期動作、ＷＲＩＴＥ処理、ＥＲＡＳＥ処理に使用される電流を供給する。つまり、メモリデバイスの書き込み処理や消去処理は、ＶＣＣＰ端子を通じて供給された電圧を用いて行われ、他の処理は、全て、ＶＣＣ端子を通じて供給された電圧を用いて行われる。Ｖｃｃｐ端子は、高圧スイッチ／ポンプ回路１４５に接続される。
【００２４】
以下、シンクロナスフラッシュメモリの動作に関するより詳細な説明を行う。本発明の一実施の形態は、不揮発性であり、セクタ単位で電気的にデータを消去（フラッシュ）可能であり、プログラム可能なＲＯＭに関する。このメモリは、１６ビット単位の４，１９４，３０４ワードとして構成される６７，１０８，８６４ビットのデータ容量を有する。他のデータ容量でもよく、本発明は、例として示したデータ容量に限定されない。メモリバンクの各々は、４つの別個に消去可能なブロックで構成される。つまり、合計１６のブロックが存在する。不慮の消去処理や上書き処理を防いで重要なファームウエアを確実に保護するために、メモリは、ハードウエアおよびソフトウエアによってロック可能な１６個のブロックを含み、各ブロックは、２５６Ｋワードのデータ容量を有する。メモリには４つのバンクが含まれているため、真の並列処理を実現することができる。
【００２５】
バンクに対する読み出しアクセスは、バックグラウンドで他のバンクに対してＷＲＩＴＥ処理またはＥＲＡＳＥ処理を行っているときに行うことができる。シンクロナスフラッシュメモリは、シンクロナスインタフェースを有し、クロック信号ＣＬＫの立ち上がりエッジ上で全ての信号を登録することができる。また、メモリの読み出しは、バーストモードで行うことができる。つまり、メモリアクセスは、選択されたロケーションから開始され、アクセスするロケーションの数は、予めプログラムされている。メモリアクセスは、予めプログラムされたシーケンスに従って行われる。読み出しアクセスは、ＡＣＴＩＶＥコマンドの登録で開始し、ＲＥＡＤコマンドによって続行される。ＡＣＴＩＶＥコマンドと同時に登録されたアドレスビットは、アクセス対象のバンクと行を選択するために使用される。ＲＥＡＤコマンドと同時に登録されたアドレスビットは、バーストアクセスを開始する列のロケーションとバンクを選択するために使用される。
【００２６】
シンクロナスフラッシュメモリは、１つのロケーション、２つのロケーション、４つのロケーション、８つのロケーション、または、フルページに対応するプログラム可能な読み出しバースト長を提供する。オプションとしてバースト終端を提供するようにしてもよい。また、シンクロナスフラッシュメモリは、高速処理を達成するために、内部パイプラインアーキテクチャを採用している。シンクロナスフラッシュメモリは、低電力のメモリシステム、例えば、３Ｖで駆動するシステムで動作する。メモリの動作モードとしては、ディープパワーダウンモードが省電力スタンバイモードとして提供される。全ての入出力は、ＬＶＴＴＬ（low voltage transistor-transistor logic）互換である。シンクロナスフラッシュメモリは、フラッシュ処理性能を大幅に向上させることができる。ここで、フラッシュ処理性能とは、自動的に列アドレスを生成しながら高速にデータを転送する能力と、バーストアクセス期間にクロックサイクル毎に列アドレスをランダムに切り換える能力を含む。
【００２７】
一般的に、シンクロナスフラッシュメモリは、低電圧で駆動し、複数のバンクを備えたＤＲＡＭと同様の構成を有する。バンクの各々は、複数の行と複数の列とで構成される。シンクロナスフラッシュメモリは、通常の処理を行う前に初期化される。以下、デバイスの初期化、レジスタの定義、コマンドの内容、およびデバイスの動作について詳細に説明する。
【００２８】
シンクロナスフラッシュは、所定の方法で起動され（powered up）、初期化される。ＶＣＣ、ＶＣＣＱ、およびＶＣＣＰに対して（同時に）電源が供給されると、クロック信号が安定し、ＲＰ＃１４０がＬＯＷ状態からＨＩＧＨ状態になる。デバイス内部の初期化を完了するまでには、ＲＰ＃がＨＩＧＨ状態に移行した後、例えば、１００μｓの遅延時間が必要である。遅延時間が経過した後、メモリは、アレイ読み出しモードになり、モードレジスタへのプログラミング、または、コマンドの実行可能状態となる。不揮発性モードレジスタ（ＮＶモードレジスタ）１４７に対する最初のプログラミングの後、初期化処理の間、コンテンツが自動的に揮発性モードレジスタにロードされる。デバイスは、予めプログラムされた状態で起動し（power-up）、処理コマンドを発行する前に再度不揮発性モードレジスタ１４７のリロードを行う必要はない。これについては後述する。
【００２９】
モードレジスタ１４８は、シンクロナスフラッシュメモリの特定の処理モードを定義するために使用される。この定義には、図２に示すように、バースト長、バーストタイプ、ＣＡＳレイテンシ、処理モードの選択が含まれる。モードレジスタは、ＬＯＡＤ＿ＭＯＤＥ＿ＲＥＳＩＳＴＯＲコマンドに基づいてプログラミングを行い、再プログラミングが行われるまで、格納された情報を保持する。モードレジスタのコンテンツをＮＶモードレジスタ１４７にコピーしてもよい。ＮＶモードレジスタの設定に基づいて、初期化処理の間、モードレジスタ１４８が自動的にロードされる。ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲコマンド、ＷＲＩＴＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲコマンドの詳細については後述する。当業者であれば、ＳＤＲＡＭにおいては、初期化処理毎に、モードレジスタが外部からロードされる必要があることを理解できるであろう。本発明によればデフォルトモードの設定がＮＶモードレジスタ１４７に登録される。ＮＶモードレジスタのコンテンツは、揮発性モードレジスタ１４８にコピーされ、メモリで各処理が実行されている間にアクセスされる。
【００３０】
モードレジスタビットＭ０〜Ｍ２は、バースト長を定義する。モードレジスタビットＭ３は、バーストタイプ（シーケンシャル、インターリーブ）を定義する。モードレジスタビットＭ４〜６は、ＣＡＳレイテンシを定義する。モードレジスタビットＭ７およびＭ８は、処理モードを定義する。モードレジスタビットＭ９は１に設定される。モードレジスタビットＭ１０およびＭ１１は、本実施の形態では予備とされている。本実施の形態では、ＷＲＩＴＥバーストは、実行されないため、Ｍ９は、論理１に設定され、書き込みアクセスは、１つのロケーション（非バースト）で行われる。モードレジスタは、全てのバンクがアイドル状態にあるときにロードされる必要がある。コントローラは、後続の処理を開始するためには、所定の時間待機しなければならない。
【００３１】
シンクロナスフラッシュメモリに対する読み出しアクセスは、バーストモードで行われる。バースト長は表１に示すようにプログラム可能である。バースト長は、所定のＲＥＡＤコマンドによって自動的にアクセス可能な列ロケーションの最大の数を定義する。バーストタイプがシーケンシャルの場合でも、インターリーブの場合でも、１つのロケーション、２つのロケーション、４つのロケーション、８つのロケーションに対応するバースト長を有する。また、バーストタイプがシーケンシャルである場合には、フルページに対応するバースト長を利用できる。バースト長がフルページである場合、ＢＵＲＳＴ＿ＴＥＲＭＩＮＡＴＥコマンドを使用して任意のバースト長を作成してもよい。つまり、バーストを選択的に終了させることによって、バースト長をカスタマイズすることができる。ＲＥＡＤコマンドが発行されたとき、バースト長に相当する数の列を含むブロックを選択することができる。このバーストモードで行われるアクセスは、全て、選択されたブロック内で行われる。つまり、境界に達するまでそのブロック内を連続してアクセスする。バースト長が２に設定されている場合は、Ａ１〜Ａ７によってブロックが独自に選択される。バースト長が４に設定されている場合は、Ａ２〜Ａ７によってブロックが選択される。バースト長が８に設定されている場合は、Ａ３〜Ａ７によってブロックが選択される。残余の下位アドレスビット（最下位ビットを含む）は、ブロック内での開始位置を選択するために使用される。フルページバーストは、境界に達するまでそのページ内を連続してアクセスする。
【００３２】
所定のバースト内で行われるアクセスは、ビットＭ３によって、シーケンシャル、またはインターリーブのバーストタイプにプログラムされる。バースト内でのアクセスの順序は、表１に示すように、バースト長、バーストタイプ、開始列アドレスによって決定される。
【００３３】
【表１】
0003725479.tif 000002
【００３４】
ＣＡＳ（Column Address Strobe）レイテンシは、ＲＥＡＤコマンドを登録した後、最初の出力データをＤＱ端子で利用できるまでの遅延時間をクロックサイクルで示している。レイテンシは、１、２、または３クロックサイクルに設定することができる。例えば、ＲＥＡＤコマンドがクロックエッジｎで登録され、レイテンシがｍクロックである場合、クロックエッジｎ＋ｍでデータを利用可能になる。ＤＱ接続部は、１サイクル前（ｎ＋ｍ−１）のクロックエッジでデータのドライブを開始し、アクセスタイムが適切である場合には、クロックエッジｎ＋ｍで有効なデータが得られる。例えば、アクセスタイムが適当となるようにクロックサイクル時間が設定されていると仮定すると、ＲＥＡＤコマンドがＴ０で登録され、レイテンシが２クロックである場合には、図３に示すように、ＤＱは、Ｔ１以降にデータのドライブを開始し、Ｔ２で有効なデータが得られる。図３は、異なるクロックのレイテンシの設定を使用した場合の動作周期の例を示す。通常の処理モードは、Ｍ７およびＭ８を０に設定することによって選択される。予めプログラムされたバースト長がＲＥＡＤバーストに適用される。
【００３５】
以下の真理値表は、本発明のメモリの処理コマンドをより詳細に示している。各コマンドおよび真理値表２について説明する。
【００３６】
【表２】
0003725479.tif 000003
【００３７】
【表３】
0003725479.tif 000004
【００３８】
ＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴ機能は、ＣＬＫ信号が有効であるかどうかにかかわらず、シンクロナスフラッシュメモリによって新しいコマンドが実行されるのを禁止する。シンクロナスフラッシュメモリは、非選択状態となるが、既に実行中の処理には影響を与えない。
【００３９】
ＮＯ＿ＯＰＥＲＡＴＩＯＮ（ＮＯＰ）コマンドは、ＣＳ＃がＬＯＷとされて選択されたシンクロナスフラッシュメモリに対してＮＯＰを実行するために使用される。ＮＯＰの実行によって、アイドル状態、または待機状態の間に希望しないコマンドが登録されることを防ぐことができる。但し、既に実行中の処理には影響を与えない。
【００４０】
モードレジスタに対するデータは、入力端子Ａ０〜Ａ１１を通じてロードされる。全てのアレイバンクがアイドル状態にあるときにのみ、ＬＯＡＤ＿ＭＯＤＥ＿ＲＥＧＩＳＴＥＲコマンドが発行され、所定の遅延時間（ＭＲＤ）が経過した後、次に実行されるべき処理のコマンドが発行される。ＮＶモードレジスタ１４７が保持するデータは、ＬＯＡＤ＿ＭＯＤＥ＿ＲＥＧＩＳＴＥＲコマンドによって動的に変更されない限り、電源立ち上げ時の初期化処理の際(upon power-up initialization)、自動的にモードレジスタ１４８にデフォルトデータとしてロードされる。
【００４１】
ＡＣＴＩＶＥコマンドは、アクセスが可能となるように、特定のアレイバンクの行を開く（アクティブにする）。入力端子ＢＡ０、ＢＡ１からの入力値によって、バンクが選択され、入力端子Ａ０〜Ａ１１から入力されるアドレスによって行が選択される。次のＡＣＴＩＶＥコマンド、パワーダウンコマンド、または、ＲＥＳＥＴコマンドが登録されるまで、この行は、アクセスが可能となるようにアクティブになっている。
【００４２】
ＲＥＡＤコマンドは、アクティブな行に対してバーストモードで読み出しアクセスを開始するために使用される。入力端子ＢＡ０、ＢＡ１からの入力値によってバンクが選択され、入力端子Ａ０〜Ａ７から入力されるアドレスによって開始列ロケーションが選択される。ＤＱ端子上の読み出しデータは、２クロック前におけるデータマスク（ＤＱＭ）入力端子上でのロジックレベルに依存する。与えられたＤＱＭ信号の登録がＨＩＧＨであった場合には、２クロック後の対応するＤＱ端子は、Ｈｉｇｈ−Ｚ（高インピーダンス）になる。与えられたＤＱＭ信号の登録がＬＯＷであった場合には、ＤＱ端子は有効なデータを保持する。従って、読み出し処理の間、ＤＱＭ入力端子を用いて出力データをマスクすることができる。
【００４３】
ＷＲＩＴＥコマンドは、アクティブな行の１つのロケーションで行われる書き込みアクセスを開始するために使用される。ＷＲＩＴＥコマンドを発行する前に、ＷＲＩＴＥ＿ＳＥＴＵＰコマンドを発行する必要がある。入力端子ＢＡ０、ＢＡ１からの入力値によってバンクが選択され、入力端子Ａ０〜Ａ７から入力されるアドレスによって、列ロケーションが選択される。ＤＱ端子上の入力データは、メモリアレイに書き込まれる。入力データは、該入力データと同時に現れるＤＱＭ入力のロジックレベルに依存する。与えられたＤＱＭ信号の登録がＬＯＷであった場合には、対応するデータがメモリに書き込まれる。ＤＱＭ信号の登録がＨＩＧＨであった場合には、対応するデータの入力が無視され、書き込み対象となっているワード／列ロケーションでのＷＲＩＴＥ処理は実行されない。ＷＲＩＴＥコマンドが発行され、ＤＱＭ信号の登録がＨＩＧＨであった場合には、ＮＯＰコマンドが発行されたものとみなされる。
【００４４】
ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンドは、シンクロナスフラッシュメモリに必須のものではないが、ＳＤＲＡＭのＰＲＥＣＨＡＲＧＥコマンドと同様の方法で読み出し処理を終了させるために用いることができる。ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンドは、実行中のＢＵＲＳＴ＿ＲＥＡＤを終了させるために発行されるが、特定のバンクに対して発行されてもよいし、特定のバンクに対して発行されなくてもよい。
【００４５】
ＢＵＲＳＴ＿ＴＥＲＭＩＮＡＴＥコマンドは、固定長、またはフルページにわたるバーストをトランケートする（truncate）ために使用される。ＢＵＲＳＴ＿ＴＥＲＭＩＮＡＴＥコマンドを登録する直前に登録されたＲＥＡＤコマンドがトランケートされる。ＢＵＲＳＴ＿ＴＥＲＭＩＮＡＴＥコマンドは、特定のバンクに対して発行されるものではない。
【００４６】
ロードコマンドレジスタ処理は、コマンド実行ロジック（ＣＥＬ）１３０に対するフラッシュメモリの制御コマンドの出力を開始するために使用される。ＣＥＬは、デバイスに対するコマンドの受け取りおよび解読を行う。このコマンドによって内部ステートマシン（ＩＳＭ）１３２の動作、読み出しパス（即ち、メモリアレイ１０２、ＩＤレジスタ１３６、またはステータスレジスタ１３４）に対する制御が行われる。
【００４７】
シンクロナスフラッシュメモリ内でバンクに対するＲＥＡＤコマンドまたはＷＲＩＴＥコマンドが発行される前に、このバンクにおいて処理の対象となる行が「開かれる（アクティブにする）」必要がある。これは、図４に示すように、ＣＳ＃、ＷＥ＃、ＲＡＳ＃、ＣＡＳ＃によって定義されるＡＣＴＩＶＥコマンドによって行われ、アクティブにするバンクや行の双方が選択される。
【００４８】
ＡＣＴＩＶＥコマンドを発行して行を開いた後、この行に対し、ＲＥＡＤコマンドやＷＲＩＴＥコマンドが発行される。ＲＥＡＤコマンドやＷＲＩＴＥコマンドを発行するまでの時間は、所定の期間（ｔＲＣＤの仕様）に基づいて決められる。ｔＲＣＤ（ＭＩＮ）をクロック周期で分割した値を切り上げ、整数にする。この整数に基づいて、ＡＣＴＩＶＥコマンドが発行された後、ＲＥＡＤコマンドやＷＲＩＴＥコマンドが発行される最初のクロックエッジが求められる。例えば、ｔＲＣＤの仕様が３０ｎｓであり、クロックが９０ＭＨＺ（１１．１１ｎｓクロック周期）であれば、計算された値は２．７クロックであるため、「３」に切り上げられる。この場合、つまり、２＜ｔＲＣＤ（ＭＩＮ）／ｔＣＫ≦３の場合を図５に示す（ｔＲＣＤの仕様条件が異なる場合にも、同様の方法を用いて時間の単位をクロックサイクルに変換することができる）。
【００４９】
同一のバンクにおける異なる行に対する次のＡＣＴＩＶＥコマンドの発行は、このバンクに対する連続するＡＣＴＩＶＥコマンドの最小間隔がｔＲＣＤで定義されていれば、前回アクティブにした行を閉じることなく行うことができる。
【００５０】
別のバンクに対する次のＡＣＴＩＶＥコマンドは、最初のバンクがアクセスされている間に発行することができる。従って、行のアクセスにおける合計のオーバーヘッドを減らすことができる。異なるバンクに対する連続するＡＣＴＩＶＥコマンドの最小間隔は、期間ｔＲＣＤで定義される。
【００５１】
ＲＥＡＤバーストは、図６に示すＣＳ＃、ＷＥ＃、ＲＡＳ＃、ＣＡＳ＃によって定義されるＲＥＡＤコマンドによって開始される。ＲＥＡＤコマンドによって、開始列とバンクアドレスが選択される。ＲＥＡＤバーストの間において、ＲＥＡＤコマンドの発行後、ＣＡＳレイテンシが経過した後、開始列のアドレスからの有効なデータ出力要素（data-out element）を利用できる。続くデータ出力要素の各々は、それぞれ次のポジティブクロックエッジで有効となる。バースト終了後、他のコマンドが開始されていなければ、ＤＱ端子はＨＩＧＨ−Ｚ状態になる。フルページバーストは、終了まで継続的に実行される（ページの最後で列０に戻り、処理が継続する）。ＲＥＡＤバーストからのデータは、次のＲＥＡＤコマンドが発行されるとトランケート（truncate）される。固定長ＲＥＡＤバーストからのデータの直後には、次のＲＥＡＤコマンドからのデータが続いている。いずれの場合であっても、継続的なデータの流れが保たれる。新たなバーストの第１番目のデータ要素は、終了したバーストの最後のデータ要素、または、固定長よりも長いバースト（途中でトランケートされている）の場合は、最後の所望のデータ要素の後に続く。新たなＲＥＡＤコマンドは、最後の所望のデータ要素が有効となるクロックエッジのｘサイクル前に発行される。ｘは、ＣＡＳレイテンシより１だけ少ない。図７において、ＣＡＳレイテンシが１、２、３の場合、データ要素ｎ＋３は、４つのバーストの最後であるか、固定長よりも長いバーストの最後である。シンクロナスフラッシュメモリは、パイプライン・アーキテクチャを採用しているため、プリフェッチ・アーキテクチャのように２ｎルールを必要としない。前回のＲＥＡＤコマンドの後、どのクロックサイクルにおいてもＲＥＡＤコマンドを開始することができる。ページ内における最高速度のランダム読み出しアクセスは、図８に示すように行われる。後続する各ＲＥＡＤ処理を異なるバンクに対して実行してもよい。
【００５２】
ＲＥＡＤバーストからのデータは、次のＷＲＩＴＥコマンドによってトランケートされる。なお、ＷＲＩＴＥコマンドの前には、ＷＲＩＴＥ＿ＳＥＴＵＰを実行する必要がある。固定長ＲＥＡＤバーストからのデータの直後には、次のＷＲＩＴＥコマンドからのデータが続いている。ＷＲＩＴＥコマンドは、バスのターンアラウンドの制約を受ける。入出力の競合を回避することができれば、ＲＥＡＤバーストからの最後の（最後の所望の）データ要素の直後のクロックエッジでＷＲＩＴＥ処理が開始する。システムの設計によっては、シンクロナスフラッシュメモリのＤＱ端子がＨｉｇｈ−Ｚになる前に、入力データをドライブする装置がＬｏｗ−Ｚになることがある。この場合、少なくとも１サイクルの遅延が最後に読み出したデータとＷＲＩＴＥコマンドとの間に発生する。
【００５３】
ＤＱＭ入力は、図９に示す入出力の競合を回避するために使用される。ＤＱＭ信号は、ＷＲＩＴＥコマンド（出力バッファに対するＤＱＭレイテンシは２クロックである）の少なくとも２クロック前にアサートされ（ＨＩＧＨ）、ＲＥＡＤからのデータ出力が抑制される。ＷＲＩＴＥコマンドが登録されると、ＤＱＭ信号の状態に関わらず、ＤＱ端子は、Ｈｉｇｈ−Ｚになる（または、Ｈｉｇｈ−Ｚの状態を維持する）。ＷＲＩＴＥコマンド（入力バッファに対するＤＱＭレイテンシはゼロクロックである）の前にＤＱＭ信号のアサート状態を解除し、書き込みデータのマスクを解除しなければならない。図９は、クロック周波数がＮＯＰサイクルを付加することなくバスの競合を回避できるように設定されている場合を示す。
【００５４】
固定長またはフルページのＲＥＡＤバーストは、ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンド（特定のバンクに対するものでもよく、特定のバンクに対するものでなくともよい）、ＢＵＲＳＴ＿ＴＥＲＭＩＮＡＴＥコマンド（特定のバンクに対するものではない）のいずれによってもトランケートされる。ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンドやＢＵＲＳＴ＿ＴＥＲＭＩＮＡＴＥコマンドは、最後の所望のデータ要素が有効であるクロックエッジのｘサイクル前に発行される。ｘは、ＣＡＳレイテンシより１少ない。これを、異なるＣＡＳレイテンシの場合の各々について、図１０に示す。データ要素ｎ＋３は、４つのバーストのうち最後の望ましいデータ要素でもよく、固定長よりも長いバーストにおける最後の所望のデータ要素でもよい。
【００５５】
１つのロケーションでのＷＲＩＴＥ処理は、図１１に示すＣＳ＃、ＷＥ＃、ＲＡＳ＃、ＣＡＳ＃によって定義されるＷＲＩＴＥコマンドによって開始される。ＷＲＩＴＥコマンドによって、開始列とバンクアドレスが選択される。ＷＲＩＴＥコマンドが登録されると、真理値表４および５によって定義されるようにＲＥＡＤコマンドが実行される。図１２に一例を示す。ＷＲＩＴＥ処理の間、ＷＲＩＴＥコマンドと同時に有効なデータ入力（data-in）が登録される。
【００５６】
ＳＤＲＡＭとは異なり、シンクロナスフラッシュメモリは、特定のバンクの開いている行、あるいは全てのバンクにおける開いている行を非アクティブにするのにＰＲＥＣＨＡＲＧＥコマンドを必要としない。ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンドは、ＢＵＲＳＴ＿ＴＥＲＭＩＮＡＴＥコマンドに類似するが、ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンドは、特定のバンクに対するものでもよく、特定のバンクに対するものでなくてもよい。ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンドの実行中に入力Ａ１０がアサートされてＨＩＧＨになっていれば、どのバンクにおいてもＢＵＲＳＴ＿ＲＥＡＤが終了する。ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥコマンドの実行中に入力Ａ１０がＬＯＷであれば、ＢＡ０、ＢＡ１によってどのバンクを終了するかが指定される。ＡＣＴＩＶＥ＿ＴＥＲＭＩＮＡＴＥは、Ａ１０、ＢＡ０、ＢＡ１によってアドレス指定されないバンクに対するＮＯＰであるとみなされる。
【００５７】
アクセスが行われていないときに、ＮＯＰまたはＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴに一致するクロックイネーブルＣＫＥがＬＯＷに登録されると、パワーダウンが発生する。パワーダウンが発生すると、ＷＲＩＴＥ処理を含む内部ステートマシンによる処理の後、ＣＫＥを除き、入力バッファと出力バッファが非アクティブになる。つまり、省電力モードのスタンバイ状態となる。
【００５８】
パワーダウン状態は、ＮＯＰまたはＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴが登録され、所望のクロックエッジでＣＫＥがＨＩＧＨになる（ｔＣＫＳを満たす）と終了する。図１３にパワーダウン処理の例を示す。
【００５９】
列アクセス／バーストの実行中にＣＫＥ端子がＬＯＷに登録されるとクロックサスペンドモードになる。クロックサスペンドモードにおいては、内部クロックが非アクティブになり、シンクロナスロジックが「フリーズ」する。それぞれのクロックの立ち上がりエッジにおいてＣＫＥがＬＯＷにサンプリングされると、次の内部クロックの立ち上がりエッジがサスペンドされる。内部クロックエッジがサスペンドされているときには、入力端子に保持されているコマンドやデータは無視される。クロックがサスペンドされている限り、図１４の例に示すように、ＤＱ端子が保持するデータは、そのドライブされた状態を維持し、バーストカウンタは増加されない。クロックサスペンドモードは、ＣＫＥ端子がＨＩＧＨに登録されると終了し、次のクロックの立ち上がりエッジで内部クロックによる処理が再開する。
【００６０】
バースト読み出し／シングル書き込みモードは、一実施の形態におけるデフォルトモードである。ＷＲＩＴＥコマンドの全ては、単一の列ロケーションでのアクセス（１つのバースト）を発生させるものであり、ＲＥＡＤコマンドは、予めプログラムされたバースト長、シーケンスに従って各列に対するアクセスを発生させるものである。次の真理値表３は、ＣＫＥ信号を用いたメモリ処理を示す。
【００６１】
【表４】
0003725479.tif 000005
【００６２】
【表５】
0003725479.tif 000006
【００６３】
【表６】
0003725479.tif 000007
【００６４】
機能説明
シンクロナスフラッシュメモリは、多くの機能を有し、ＳＤＲＡＭバス上でのコードの格納や、ＸＩＰ技術（execute in place）技術を利用したアプリケーションに最適である。メモリアレイは、個々の消去ブロックに細分化される。各々のブロックに保持されたデータは、他のブロックに保持されたデータに影響を与えることなく消去することができる。これらのメモリブロックの読み出し、書き込み、消去は、コマンド実行ロジック（ＣＥＬ）１３０に対するコマンドの発行によって実行することができる。ＣＥＬは、内部ステートマシン（ＩＳＭ）１３２の処理を制御する。ＣＥＬは、ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理、ＷＲＩＴＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理、ＷＲＩＴＥ処理、ＢＬＯＣＫ＿ＥＲＡＳＥ処理、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理、ＤＥＶＩＣＥ＿ＰＲＯＴＥＣＴ処理、ＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳ処理、およびＶＥＲＩＦＹ処理の全てを完全に制御する。ＩＳＭ１３２は、各々のメモリロケーションで過剰消去がなされないように保護し、各々のメモリロケーションでデータの保持が最大限に行われるように最適化する。さらに、ＩＳＭによって、システム内でのデバイスの書き込み、または、外部のプログラマによるデバイスの書き込みに必要な制御が大幅に簡略化する。
【００６５】
シンクロナスフラッシュメモリは、１６個の別個の消去可能なブロックで構成される。メモリブロックに保持されたデータは、他のメモリブロックに保持されたデータに影響を与えることなく、部分的に消去可能である。メモリブロックは、ハードウエアによって不慮のデータ消去や書き込みから保護されるようにしてもよい。ブロックを保護する場合には、当該ブロックのデータが改変される前に、ＲＰ＃端子の電圧をＶＨＨ（比較的に高電圧）にドライブする必要がある。ロケーション０および１５の２５６Ｋワードの容量を有するブロックは、別のハードウエアによる保護手段を備えていてもよい。これらのブロックに対してＰＲＯＴＥＣＴコマンドが一旦実行されると、ＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳコマンドによって、ＲＰ＃がＶＨＨでなければ、ロケーション０およびロケーション１５以外の全てのブロックの保護を解除する。これにより、システム内でのファームウエアのアップデートの際、不慮の電力障害やシステムリセットが発生した場合であっても、重要なコードに対するセキュリティが高められる。
【００６６】
電源立ち上げ時の初期化、ＥＲＡＳＥ処理、ＷＲＩＴＥ処理およびＰＲＯＴＥＣＴ処理のタイミングは、メモリアレイ内の全てのプログラミングのアルゴリズムを制御するＩＳＭを用いることによって簡略化される。ＩＳＭによって、過剰消去を防止してデータが保護され、各セルに対する書き込みマージンが最適化される。ＷＲＩＴＥ処理の間、ＩＳＭは、自動的に、ＷＲＩＴＥ処理の試行回数のインクリメントおよび監視を行い、各メモリセルにおける書き込みマージンを認証し、ＩＳＭステータスレジスタを更新する。ＢＬＯＣＫ＿ＥＲＡＳＥ処理を実行するとき、ＩＳＭは、自動的にアドレスブロック全体を上書きして過剰消去を防止し、ＷＲＩＴＥ処理の試行回数のインクレメントおよび監視を行い、ＩＳＭステータスレジスタのビットをセットする。
【００６７】
８ビットのＩＳＭステータスレジスタ１３４は、外部プロセッサ２００にＷＲＩＴＥ処理、ＥＲＡＳＥ処理、ＰＲＯＴＥＣＴ処理時のＩＳＭのステータスを監視させる。８ビットのステータスレジスタのうち、１ビット（ＳＲ７）のセットおよびクリア（設定解除）は、ＩＳＭによって完全に行われる。このビットは、ＩＳＭがＥＲＡＳＥ処理、ＷＲＩＴＥ処理、または、ＰＲＯＴＥＣＴ処理でビジーになっているか否かを示す。また、他のエラー情報、即ち、書き込み保護ブロックエラー、消去非保護全ブロックエラー、デバイス保護エラーは、別の３つのビット（ＳＲ３、ＳＲ４、ＳＲ５）で設定する。ステータスレジスタビットＳＲ０、ＳＲ１およびＳＲ２により、実行中のＩＳＭの処理の詳細な情報が得られる。ユーザは、デバイスレベルでのＩＳＭの処理が進行中であるのか、バンクレベルでのＩＳＭ処理が進行中であるのかを確認でき、どのバンクがＩＳＭによって制御されているかも確認できる。これらの６個のビット（ＳＲ３〜ＳＲ５）は、ホストシステムによってクリアされなければならない。表２を参照してステータスレジスタについてより詳細に説明する。
【００６８】
ＣＥＬ１３０は、デバイスに対するコマンドの受け取りおよび解読を行う。各コマンドは、ＩＳＭの処理および読み出しパス（即ち、メモリアレイ、デバイス構成、または、ステータスレジスタ）を制御する。ＩＳＭがアクティブになっているとき、ＣＥＬに対するコマンドが発行される。
【００６９】
節電効果を高めるために、シンクロナスフラッシュは、極めて低電流のディープパワーダウンモードに対応している。このモードに入るためには、ＲＰ＃端子１４０（リセット／パワーダウン）をＶＳＳ±０．２Ｖにする必要がある。不慮のＲＥＳＥＴを回避するため、ＲＰ＃がＶｓｓで１００ｎｓの間維持されなければデバイスはリセットモードに入らない。ＲＰ＃がＶｓｓに維持されると、デバイスは、ディープパワーダウンモードに入る。デバイスがディープパワーダウンモードに入った後にＲＰ＃がＬＯＷからＨＩＧＨに変化すると、本明細書中で概略説明しているように、デバイスの起動初期化シーケンスが実行される。リセットモードに入った後にＲＰ＃がＬＯＷからＨＩＧＨに変化しても、ディープパワーダウンモードに入っていなかった場合には、実行可能なコマンドの発行までに１μｓの遅延時間が必要となる。デバイスがディープパワーダウンモードに入ると、ＲＰ＃バッファを除く全てのバッファが不作動（disable）になり、電流量が少なくなり、例えば、３．３ＶのＶＣＣで最大５０μＡになる。ディープパワーダウンモードの間、ＲＰ＃への入力はＶｓｓに維持されなければならない。ＲＥＳＥＴモードに入ると、ステータスレジスタ１３４がクリアされ、ＩＳＭ１３２がアレイ読み出しモードにセットされる。
【００７０】
シンクロナスフラッシュメモリアーキテクチャによれば、各セクタのデータを消去する際、アレイの他の部分に影響を与えることがない。アレイは、１６個のアドレス指定可能な「ブロック」に分けられており、これらのブロックは、別個に消去可能である。アレイ全体ではなく、ブロック単位でデータの消去が可能であるため、デバイス全体の耐久性およびシステムの柔軟性が向上する。ＥＲＡＳＥ機能およびＢＬＯＣＫ＿ＰＲＯＴＥＣＴ機能のみがブロック単位で実行される。１６個のアドレス指定可能なブロックは、４つのバンク１０４、１０６、１０８、１１０に等分される。つまり、各バンク１０４、１０６、１０８、１１０は、４つのブロックからなる。４つのバンクに対し、一方では読み出し、他方では書き込みを同時に行うことができる。あるバンクに対し、ＩＳＭによるＷＲＩＴＥ処理またはＥＲＡＳＥ処理を行っているときに別のバンクに対してＲＥＡＤ処理を行うことができる。ステータスレジスタ１３４をポーリングすることによって、どのバンクに対してＩＳＭの処理が実行されているかを判定することができる。シンクロナスフラッシュメモリは、単一のバックグランド処理を行うＩＳＭを備える。このＩＳＭは、電源立ち上げ時の初期化処理、ＥＲＡＳＥ処理、ＷＲＩＴＥ処理およびＰＲＯＴＥＣＴ処理を制御する。どのような場合であっても、ＩＳＭによる処理は1つしか実行することができない。しかしながら、ＲＥＡＤ処理を含む他の特定のコマンドは、ＩＳＭ処理を行っている間に実行することができる。ＩＳＭによって制御される処理コマンドは、バンクレベルの処理、またはデバイスレベルの処理である。ＷＲＩＴＥ処理やＥＲＡＳＥ処理は、バンクレベルで行われるＩＳＭ処理である。バンクレベルで行われるＩＳＭ処理が開始されると、このバンクにおいては、どのロケーションに対してＲＥＡＤ処理が行われても無効データが出力されるが、他のバンクに対してＲＥＡＤ処理が行われると、そのアレイが読み出される。ＲＥＡＤ＿ＳＴＡＴＵＳ＿ＲＥＧＩＳＴＥＲコマンドが実行されると、ステータスレジスタ１３４が保持するコンテンツが出力される。ＩＳＭステータスビットは、ＩＳＭ処理の終了を示す（ＳＲ７＝１）。ＩＳＭ処理が終了すると、バンクが自動的にアレイ読み出しモードに入る。ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理、ＷＲＩＴＥ＿ＮＶＭＯＤＥ ＲＥＧＩＳＴＥＲ処理、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理、ＤＥＶＩＣＥ＿ＰＲＯＴＥＣＴ処理、およびＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳ処理は、デバイスレベルで行われるＩＳＭ処理である。デバイスレベルで行われるＩＳＭ処理が一旦開始されると、どのバンクに対してＲＥＡＤ処理が行われてもアレイが保持するコンテンツが出力される。ＲＥＡＤ＿ＳＴＡＴＵＳ＿ＲＥＧＩＳＴＥＲコマンドは、ＩＳＭ処理の終了を判定するために発行される。ＳＲ７＝１であるとき、ＩＳＭ処理は終了し、次のＩＳＭ処理が開始される。ハードウエア回路によって意図しないＥＲＡＳＥ処理またはＷＲＩＴＥ処理が行われるのを防いでブロックのデータを保護する場合には、以下に述べるように、ＷＲＩＴＥ処理またはＥＲＡＳＥ処理が行われる前にＲＰ＃をＶＨＨにドライブする必要がある。
【００７１】
ファームウエアの最も重要な部分に対するセキュリティを高めるために、ブロックのデータをハードウエアによって保護する場合がある。ハードウエアによって保護されているブロックに対してＷＲＩＴＥ処理またはＥＲＡＳＥ処理が行われている間には、即ち、ＷＲＩＴＥ処理またはＥＲＡＳＥ処理が終了するまでは、ＲＰ＃は、ＶＨＨに維持されなければならない。ＲＰ＃＝ＶＨＨでない場合、保護されたブロックに対するＷＲＩＴＥ処理またはＥＲＡＳＥ処理は禁止され、書き込みエラーまたは消去エラーとなる。ロケーション０および１５のブロックは、予期しないＷＲＩＴＥ処理あるいはＥＲＡＳＥ処理を保護するために、別のハードウエア保護機能を有する。本実施の形態において、これらのブロックは、ＲＰ＃＝ＶＨＨでない場合には、ＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳコマンドの発行に基づくソフトウエアによる保護解除ができないようになっている。ブロックの保護ステータスは、ＲＥＡＤ＿ＳＴＡＴＵＳ＿ＲＥＧＩＳＴＥＲコマンドを発行し、ブロックの保護ビットを読み取ることによって確認することができる。また、ブロックを保護するためには、対象となるブロックアドレスに対し、３サイクルのコマンドシーケンスを発行しなければならない。
【００７２】
シンクロナスフラッシュメモリは、３つの異なるモードのＲＥＡＤ処理に対応している。モードに応じたＲＥＡＤ処理によって、メモリアレイ、ステータスレジスタ、または、デバイスコンフィグレーションレジスタの1つからデータが作成される。デバイスコンフィグレーションレジスタまたはステータスレジスタに対するＲＥＡＤ処理は、ＬＣＲ−ＡＣＴＩＶＥサイクルの後に行われる。データ出力（data out）のバースト長は、モードレジスタの設定によって定義される。ＬＣＲ−ＡＣＴＩＶＥサイクルの後のＲＥＡＤ処理、またはＬＣＲ−ＡＣＴＩＶＥサイクルを必要としないで行われるＲＥＡＤ処理によって、アレイが読み出される。しかしながら、読み出し動作には幾つかのバリエーションが存在するため、以下の項目で説明する。
【００７３】
バンクに対するＲＥＡＤコマンドの実行によって、メモリアレイのコンテンツが出力される。ＩＳＭによるＷＲＩＴＥ処理またはＥＲＡＳＥ処理が行われている間は、ＩＳＭの制御下にあるバンク内のどのロケーションに対してＲＥＡＤ処理が行われても無効データが出力される。ＲＥＳＥＴ処理を終了すると、デバイスが自動的にアレイ読み出しモードに入る。
【００７４】
ステータスレジスタ１３４のＲＥＡＤ処理を実行するためには、アレイの読み出し時と同様の入力シーケンスが必要であるが、ＬＣＲ＿ＲＥＡＤ＿ＳＴＡＴＵＳ＿ＲＥＧＩＳＴＥＲ（７０Ｈ）サイクルがＡＣＴＩＶＥ ＲＥＡＤサイクルの前でなければならない。ステータスレジスタによるデータ出力（data out）のバースト長は、モードレジスタ１４８によって定義される。ステータスレジスタが保持するコンテンツは、ＣＡＳレイテンシが経過した後、クロックの次の立ち上がりエッジで更新され、ラッチされる。デバイスは、自動的にアレイ読み出しモードに入り、次のＲＥＡＤ処理が可能な状態になる。
【００７５】
デバイスコンフィグレーションレジスタ１３６の読み出しには、ステータスレジスタの読み出しと同様の入力シーケンスが必要であるが、特定のアドレスを指定しなければならない。ＷＥ＃は、ＨＩＧＨでなければならず、ＤＱＭおよびＣＳ＃はＬＯＷでなければならない。メーカ互換ＩＤを読み出すためには、アドレスは、００００００Ｈに指定されていなければならない。デバイスＩＤを読み出すためには、アドレスは、０００００１Ｈに指定されていなければならない。各消去ブロック（ｘｘ０００２Ｈ）内での第三のアドレスロケーションでブロック保護ビットは読み出され、デバイス保護ビットは、ロケーション０００００３Ｈから読み出される。
【００７６】
ＤＱ端子は、アレイにデータを入力するためにも用いられる。アドレス端子は、アドレスロケーションを指定するため、または、ＬＯＡＤ＿ＣＯＭＭＡＮＤ＿ＲＥＧＩＳＴＥＲサイクルの間にＣＥＬに対してコマンドを入力するために用いられる。コマンド入力によって、ＣＥＬに対して８ビットのコマンドが発行され、デバイスの処理モードが制御される。ＷＲＩＴＥ処理は、メモリアレイにデータを入力するために使用される。以下、入力タイプの両方について説明する。
【００７７】
コマンド入力を実行するためには、ＤＱＭはＬＯＷでなければならず、ＣＳ＃およびＷＥ＃も、ＬＯＷでなければならない。アドレス端子やＤＱ端子は、各コマンドの入力に用いられる。コマンドの入力に使用されないアドレス端子は「ドントケア」であって、状態が維持されていなければならない。８ビットコマンドは、ＤＱ０〜ＤＱ７、または、Ａ０〜Ａ７に対する入力であり、クロックの立ち上がりエッジでラッチされる。
【００７８】
メモリアレイに対するＷＲＩＴＥ処理によって、所望のビットが論理０に設定されるが、論理０に設定されているビットを論理１に変更することはできない。いずれかのビットを論理１に設定すると、ブロック全体のデータが消去される。ＷＲＩＴＥ処理を実行するためには、ＤＯＱは、ＬＯＷでなければならず、ＣＳ＃およびＷＥ＃も、ＬＯＷでなければならない。また、ＶＣＣＰをＶＣＣに保持しなければならない。保護されたブロックに対して書き込みを行うには、ＲＰ＃をＶＨＨにする必要がある。Ａ０〜Ａ１１によって書き込みアドレスが指定され、アレイに書き込まれるデータは、ＤＱ端子に入力される。データおよびアドレスは、クロックの立ち上がりエッジでラッチされる。ＷＲＩＴＥ処理の前には、ＷＲＩＴＥ＿ＳＥＴＵＰコマンドを発行する必要がある。
【００７９】
メモリブロックの書き込みを簡略化するために、シンクロナスフラッシュメモリのＩＳＭは、ＷＲＩＴＥサイクルおよびＥＲＡＳＥサイクルの内部アルゴリズムの全てを制御する。デバイスの制御には、８ビットのコマンドセットが使用される。真理値表１および２に有効なコマンドのリストを示す。
【００８０】
８ビットのＩＳＭステータスレジスタ１３４（表２）に対してポーリングを行うことによって、ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理、ＷＲＩＴＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理、ＷＲＩＴＥ処理、ＥＲＡＳＥ処理、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理、ＤＥＶＩＣＥ＿ＰＲＯＴＥＣＴ処理、または、ＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳ処理が終了されたかどうか、また、これらの処理の際にエラーが発生したかどうかがチェックされる。ＩＳＭ処理の終了は、ＲＥＡＤ＿ＳＴＡＴＵＳ＿ＲＥＧＩＳＴＥＲ（７０Ｈ）コマンドの発行によって監視される。ステータスレジスタのコンテンツは、ＤＱ０〜ＤＱ７に出力され、ＣＡＳレイテンシが経過した後、次のクロックの立ち上がりエッジで、モードレジスタの設定によって定義される固定バースト長の分だけ更新される。ＩＳＭ処理は、ＳＲ７＝１となったときに終了する。ビットで定義されるブロックは全てＩＳＭによって設定されるが、ＩＳＭのステータスビットのみがＩＳＭによってリセットされる。消去／非保護ブロック、書き込み／保護ブロック、デバイス保護は、ＣＬＥＡＲ＿ＳＴＡＴＵＳ＿ＲＥＧＩＳＴＥＲ（５０Ｈ）コマンドによってクリアされなければならない。これによってユーザがポーリングを行ってステータスレジスタをクリアするタイミングを選択することができる。例えば、ホストシステムは、個々のＷＲＩＴＥ処理が行われた後にステータスレジスタをチェックするのではなく、複数のＷＲＩＴＥ処理が行われた後にステータスレジスタをチェックすることができる。ＲＰ＃信号のアサート、デバイスのパワーダウンによってもステータスレジスタがクリアされる。
【００８１】
【表７】
0003725479.tif 000008
【００８２】
デバイスＩＤ、製造メーカー互換ＩＤ、デバイス保護ステータス、およびブロック保護ステータスは、全て、ＲＥＡＤ＿ＤＥＶＩＣＥ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮ（９０Ｈ）コマンドを発行することによって読み出される。所望のレジスタを読み出すために、特定のアドレスがアサートされなければならない。様々なデバイスのコンフィグレーションレジスタ１３６についての詳細を表３に示す。
【００８３】
【表８】
0003725479.tif 000009
【００８４】
デバイスの処理モードを変更するためのコマンドを発行することもできる。各モードでは、そのモード特有の処理が行われる。幾つかのモードでは、処理の実行の前に、一連のコマンドを書き込む必要がある。以下、各モードの特性について説明する。真理値表１および２は、所望の処理を行うために必要なコマンドシーケンスのリストである。読み出しと書き込みを同時に行う機能によって、バックグランド処理であるバンクに対して書き込み処理または消去処理を行っている間に他のバンクに読み出し処理を行うことができる。書き込み処理では、真理値表２に記載されたＬＣＲ−ＡＣＴＩＶＥ−ＷＲＩＴＥコマンドシーケンスを連続したクロックサイクルで終了させなければならない。しかしながら、シンクロナスフラッシュコントローラの処理を簡略化するために、このコマンドシーケンスの間、ＮＯＰコマンドまたはＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴコマンドを数に制限なく発行するようにしている。さらに、データの保護機能を高めるために、これらのコマンドシーケンスは、３サイクルの間、同一のバンクアドレスに指定しなければならない。ＬＣＲ−ＡＣＴＩＶＥ−ＷＲＩＴＥコマンドシーケンスの間にバンクアドレスが変更される場合、または、コマンドシーケンスが連続していない場合（コマンドシーケンスの間に、コマンドの発行が許されているＮＯＰコマンドおよびＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴコマンド以外のコマンドが発行された場合）、書き込みステータスビットおよび消去ステータスビット（ＳＲ４およびＳＲ５）が設定され、処理が禁止される。
【００８５】
パワーアップ（電源立ち上げ）後、処理コマンドがデバイスに対して発行される前に、シンクロナスフラッシュメモリが初期化される。ＶＣＣ、ＶＣＣＱ、およびＶＣＣＰに対して（同時に）電源が供給された後、クロックが安定し、ＲＰ＃がＬＯＷからＨＩＧＨに変化する。ＲＰ＃がＨＩＧＨに移行した後、デバイス内部の初期化が終了するには、遅延時間（一実施の形態においては、１００μｓの遅延時間）が必要である。デバイスの初期化が終了すると、デバイスは、アレイ読み取りモードになり、実行可能なコマンドがデバイスに対して発行される。
【００８６】
デバイスＩＤ、メーカー互換ＩＤ、デバイス保護ビットおよびブロック保護ビットの各々を読み出すためには、ＲＥＡＤ＿ＤＥＶＩＣＥ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮ（９０Ｈ）コマンドが発行される。このモードにおいては、所望の情報を読み出すために特定のアドレスが指定される。メーカー互換ＩＤは、００００００Ｈで読み出される。デバイスＩＤは、０００００１Ｈで読み出される。メーカー互換およびデバイスＩＤは、ＤＱ０〜ＤＱ７に出力される。デバイス保護ビットは、０００００３Ｈで読み出される。ブロック保護ビットの各々は、各ブロックにおける３番目のアドレスロケーション（ｘｘ０００２Ｈ）で読み出される。デバイス保護ビットおよびブロック保護ビットは、ＤＱ０に出力される。
【００８７】
アレイに対してデータを入力するには、連続的なクロックエッジで３つの連続的なコマンドを発行する必要がある（各サイクルの間において、ＮＯＰコマンドおよびＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴコマンドの発行が許されている）。初めのサイクルにおいては、Ａ０〜Ａ７に対し、ＬＯＡＤ＿ＣＯＭＭＡＮＤ＿ＲＥＧＩＳＴＥＲコマンドがＷＲＩＴＥ＿ＳＥＴＵＰコマンド（４０Ｈ）とともに発行され、ＢＡ０、ＢＡ１に対し、バンクアドレスが発行される。次のサイクルにおいては、ＡＣＴＩＶＥコマンドが発行され、行アドレスがアクティブとなり、バンクアドレスが確認される。３番目のサイクルは、ＷＲＩＴＥコマンドであり、開始列、バンクアドレスおよびデータが発行される。ＣＡＳレイテンシが経過した後、次のクロックエッジでＩＳＭステータスビットが設定される。ＩＳＭがＷＲＩＴＥ処理を実行している間、ＩＳＭステータスビット（ＳＲ７）は０になる。ＩＳＭの制御下では、バンクに対してＲＥＡＤ処理が行われると、無効なデータが作成される。ＩＳＭステータスビット（ＳＲ７）が論理１に設定されると、ＷＲＩＴＥ処理が終了し、このバンクはアレイ読み出しモードとなり、コマンドの実行が可能となる。ハードウエアによって保護されたブロックに書き込みをする場合にも、第３のサイクルであるＷＲＩＴＥ処理を実行する前にＲＰ＃がＶＨＨに設定される必要があり、ＩＳＭによるＷＲＩＴＥ処理が終了するまで、ＲＰ＃は、ＶＨＨに保持されなければならない。連続するサイクルでＬＣＲ−ＡＣＴＩＶＥ−ＷＲＩＴＥコマンドシーケンスが終了していない場合、または、バンクアドレスが３サイクルのいずれかにおいて変更された場合には、書き込みステータスビットおよび消去ステータスビット（ＳＲ４およびＳＲ５）が設定される。ＩＳＭがＷＲＩＴＥ処理を開始すると、このＷＲＩＴＥ処理は、ＲＥＳＥＴ処理が行われるか、パワーダウンが行われることがない限り、中止することはない。ＲＥＳＥＴ処理が行われたり、パワーダウンが行われたりすると、いずれの場合にも、書き込み中のデータが破壊される可能性がある。
【００８８】
ＥＲＡＳＥシーケンスを実行すると、ブロック内の全てのビットが論理１に設定される。ＥＲＡＳＥ処理を実行するのに必要なコマンドシーケンスは、ＷＲＩＴＥ処理を実行するためのものと同様である。予期しないブロック消去が行われるのを防止してセキュリティを高めるために、あるブロックのＥＲＡＳＥ処理を開始するには、連続的なクロックエッジで３つの連続的なコマンドを発行する必要がある。初めのサイクルにおいては、Ａ０〜Ａ７に対してＬＯＡＤ＿ＣＯＭＭＡＮＤ＿ＲＥＧＩＳＴＥＲコマンドがＥＲＡＳＥ＿ＳＥＴＵＰコマンド（２０Ｈ）と共に発行され、ＢＡ０、ＢＡ１に対して消去されるブロックのバンクアドレスが発行される。次のサイクルにおいては、ＡＣＴＩＶＥコマンドが発行され、Ａ１０、Ａ１１、ＢＡ０、ＢＡ１によって消去されるブロックのアドレスが指定される。３番目のサイクルではＷＲＩＴＥコマンドが発行され、その間に、ＤＱ０〜ＤＱ７に対してＥＲＡＳＥ＿ＣＯＮＦＩＲＭコマンド（Ｄ０Ｈ）が発行され、バンクアドレスが再発行される。ＣＡＳレイテンシが経過した後、次のクロックエッジでＩＳＭステータスビットが設定される。ＥＲＡＳＥ＿ＣＯＮＦＩＲＭコマンド（Ｄ０Ｈ）が発行された後、ＩＳＭは、アドレスが指定されたブロックのＥＲＡＳＥ処理を開始する。アドレスが指定されているブロックが存在するバンクに対してＲＥＡＤ処理が行われると、無効なデータが出力される。ＥＲＡＳＥ処理が終了すると、バンクはアレイ読み出しモードになり、コマンドの実行が可能となる。ハードウエアによって保護されたブロックを消去する場合にも、第３のサイクルであるＷＲＩＴＥ処理を実行する前にＲＰ＃がＶＨＨに設定される必要があり、ＩＳＭによるＥＲＡＳＥ処理が終了する（ＳＲ７＝１）まで、ＲＰ＃は、ＶＨＨに保持されなければならない。連続的なサイクルでＬＣＲ−ＡＣＴＩＶＥ−ＷＲＩＴＥコマンドシーケンスが終了していない場合（各サイクルの間において、ＮＯＰコマンドおよびＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴコマンドの発行が許されている）、または、１つ以上のコマンドサイクルでバンクアドレスが変更されている場合には、書き込みステータスビットおよび消去ステータスビット（ＳＲ４およびＳＲ５）が設定され、処理が禁止される。
【００８９】
モードレジスタ１４８のコンテンツをＷＲＩＴＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲコマンドによってＮＶモードレジスタにコピーしてもよい。ＮＶモードレジスタに対して書き込みを行う前に、ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲコマンドシーケンスを終了させ、ＮＶモードレジスタ内の全てのビットを論理１に設定する必要がある。ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理およびＷＲＩＴＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理を実行するのに必要なコマンドシーケンスは、ＷＲＩＴＥ処理を実行するためのものと同様である。ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理およびＷＲＩＴＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲ処理を終了させるのに必要なＬＣＲ−ＡＣＴＩＶＥ−ＷＲＩＴＥコマンドについての詳細な情報は、真理値表２に示されている。ＥＲＡＳＥ＿ＮＶＭＯＤＥ＿ＲＥＧＩＳＴＥＲコマンドシーケンスまたはＷＲＩＴＥ＿ＮＶＭＯＤＥＲＥＧＩＳＴＥＲコマンドシーケンスのＷＲＩＴＥサイクルが登録された後、ＲＥＡＤコマンドがアレイに対して発行される。現在実行中のＩＳＭ処理が終了し、ＳＲ７＝１となるまでは、新たなＷＲＩＴＥ処理は許可されない。
【００９０】
ＢＬＯＣＫ＿ＰＲＯＴＥＣＴシーケンスを実行することにより、所定のブロックに対する第１レベルのソフトウエア／ハードウエア保護を行うことができる。メモリは、１つのビットで１６個のブロックを保護する１６ビットレジスタを有する。また、メモリは、書き込み処理や消去処理を防止してデバイス全体のデータを保護するためのデバイスビットを提供するレジスタを備える。ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理を実行するのに必要なコマンドシーケンスは、ＷＲＩＴＥ処理を実行するためのものと同様である。予期しないブロック消去が行われるのを防止してセキュリティを高めるために、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理を開始するには、３つの連続的なコマンドを発行する必要がある。初めのサイクルにおいては、Ａ０〜Ａ７に対してＬＯＡＤ＿ＣＯＭＭＡＮＤ＿ＲＥＧＩＳＴＥＲコマンドがＰＲＯＴＥＣＴ＿ＳＥＴＵＰコマンド（６０Ｈ）と共に発行され、ＢＡ０、ＢＡ１に対して保護すべきブロックのバンクアドレスが発行される。次のサイクルにおいては、ＡＣＴＩＶＥコマンドが発行され、保護されるべきブロックの行がアクティブになり、バンクアドレスが確認される。３番目のサイクルでは、ＷＲＩＴＥコマンドが発行され、その間に、ＤＱ０〜ＤＱ７に対してＢＬＯＣＫ＿ＰＲＯＴＥＣＴ＿ＣＯＮＦＩＲＭコマンド（０１Ｈ）が発行され、バンクアドレスが再発行される。ＣＡＳレイテンシが経過した後、次のクロックエッジでＩＳＭステータスビットが設定される。そして、ＩＳＭは、ＰＲＯＴＥＣＴ処理を開始する。連続的なサイクルでＬＣＲ−ＡＣＴＩＶＥ−ＷＲＩＴＥコマンドシーケンスが終了していない場合、（各サイクルの間において、ＮＯＰコマンドおよびＣＯＭＭＡＮＤ＿ＩＮＨＩＢＩＴコマンドの発行が許されている）、または、バンクアドレスが変更された場合には、ＷＲＩＴＥステータスビットおよび消去ステータスビット（ＳＲ４およびＳＲ５）が設定され、処理が禁止される。ＩＳＭステータスビット（ＳＲ７）が論理１に設定されると、ＰＲＯＴＥＣＴ処理が終了し、そのバンクはアレイ読み出しモードとなり、コマンドの実行が可能となる。ブロック保護ビットが一旦１（保護）に設定されると、ＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳコマンドによって０にリセットする以外には、この保護ビットを変更できなくなる。ＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳコマンドシーケンスは、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴコマンドに類似しているが、第３のサイクルでは、ＷＲＩＴＥコマンドがＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳ＿ＣＯＮＦＩＲＭコマンド（Ｄ０Ｈ）と共に発行され、アドレスが「ドントケア」に指定される。真理値表２には、さらに他の情報も含まれている。ロケーション０および１５のブロックでは、さらにセキュリティが高まっている。ロケーション０および１５のブロック保護ビットが一旦１（保護）に設定されると、各ビットは、ＵＮＰＲＯＴＥＣＴ処理の３番目のサイクルの前にＲＰ＃をＶＨＨにし、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理またはＵＮＰＲＯＴＥＣＴ ＡＬＬ＿ＢＬＯＣＫＳ処理が終了するまで（ＳＲ７＝１）ＶＨＨに保持されなければ、ビットが０にリセットされない。さらに、デバイス保護ビットがセットされた場��、前記３番目のサイクルの前にＲＰ＃をＶＨＨにし、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理又はＵＮＰＲＯＴＥＣＴ＿ＡＬＬ＿ＢＬＯＣＫＳ処理が終了するまでＶＨＨに保持させる必要がある。ブロックの保護ステータスの確認は、ＲＥＡＤ＿ＤＥＶＩＣＥ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮコマンド（９０Ｈ）を発行することによって行われる。
【００９１】
ＤＥＶＩＣＥ＿ＰＲＯＴＥＣＴシーケンスを実行すると、デバイスの保護ビットが１に設定され、ブロック保護ビットの変更が防止される。ＤＥＶＩＣＥ＿ＰＲＯＴＥＣＴ処理を実行するのに必要なコマンドシーケンスは、ＷＲＩＴＥ処理を実行するためのものと同様である。ＤＥＶＩＣＥ＿ＰＲＯＴＥＣＴシーケンスを開始するには３つの連続したコマンドサイクルが必要となる。初めのサイクルでは、Ａ０〜Ａ７に対してＬＯＡＤ＿ＣＯＭＭＡＮＤ＿ＲＥＧＩＳＴＥＲコマンドがＰＲＯＴＥＣＴ＿ＳＥＴＵＰコマンド（６０Ｈ）と共に発行され、ＢＡ０、ＢＡ１に対してバンクアドレスが発行される。バンクアドレスは、「ドントケア」であるが、３つのサイクルの全てに対して同一のバンクアドレスを使用しなければならない。次のコマンドは、ＡＣＴＩＶＥである。３番目のサイクルは、ＷＲＩＴＥサイクルである。ＷＲＩＴＥサイクルの間、ＤＱ０〜ＤＱ７に対してＤＥＶＩＣＥ＿ＰＲＯＴＥＣＴコマンド（Ｆ１Ｈ）が発行され、ＲＰ＃がＶＨＨになる。ＣＡＳレイテンシが経過した後、次のクロックエッジでＩＳＭステータスビットが設定される。デバイスに対して実行可能なコマンドを発行することが可能になる。ＲＰ＃は、ＷＲＩＴＥ処理が終了する（ＳＲ７＝１）までは、ＶＨＨに保持されなければならない。現在実行中のＩＳＭ処理が終了するまでは、新たなＷＲＩＴＥ処理の実行は許されない。デバイス保護ビットが一旦１に設定されると、ＲＰ＃がＶＨＨにならない限り、ＢＬＯＣＫ＿ＰＲＯＴＥＣＴ処理やＢＬＯＣＫ＿ＵＮＰＲＯＴＥＣＴ処理は実行することができない。デバイス保護ビットは、ＷＲＩＴＥ処理またはＥＲＡＳＥ処理に影響を与えない。ブロック保護処理およびデバイス保護処理についてのより詳細な情報を表４に示す。
【００９２】
【表９】
0003725479.tif 000010
【００９３】
ＩＳＭステータスビット（ＳＲ７）が設定された後、デバイス／バンク（ＳＲ０）、デバイス保護（ＳＲ３）、バンクＡ０（ＳＲ１）、バンクＡ１（ＳＲ２）、書き込み／保護ブロック（ＳＲ４）および消去／非保護（ＳＲ５）の各ステータスビットがチェックされる。ＳＲ３、ＳＲ４、ＳＲ５のステータスビットのうちの1つ、またはこれらのステータスビットの組み合わせ（幾つか）が設定されている場合には、処理の際にエラーが発生する。ＩＳＭはＳＲ３、ＳＲ４、ＳＲ５のビットをリセットすることはできない。これらのビットをクリアするためには、ＣＬＥＡＲ＿ＳＴＡＴＵＳ＿ＲＥＧＩＳＴＥＲコマンド（５０Ｈ）を発行する必要がある。表５は、ＳＲ３、ＳＲ４、ＳＲ５の組み合わせによるエラーを示す。
【００９４】
【表１０】
0003725479.tif 000011
【００９５】
シンクロナスフラッシュメモリは、コードおよびデータストレージの高度な要求を満たすように設計、製造される。このようなレベルの信頼性を確保するため、ＷＲＩＴＥサイクル間またはＥＲＡＳＥサイクル間において、ＶＣＣＰは、Ｖｃｃに保持されなければならない。この制約が満たされることなく処理が実行される場合には、デバイスにおいて実行されるＷＲＩＴＥサイクルの回数やＥＲＡＳＥサイクルの回数が減少する。各ブロックは、最低で１００，０００回の書き込み／消去が可能なように設計、製造される。
【００９６】
シンクロナスフラッシュメモリは、幾つかの省電力機能を有し、この省電力機能はアレイ読み出しモードで使用することで、電力を節約することができる。ディープパワーダウンモードは、ＲＰ＃をＶＳＳ±０．２Ｖにすることによって実行することができる。このモードでは、電流量（ＩＣＣ）が小さく、例えば、最大で５０μＡである。ＣＳ＃がＨＩＧＨになると、デバイスは、アクティブスタンバイモードに入る。このモードにおいても、低電流であり、電流量（ＩＣＣ）は、例えば、最大で３０ｍＡである。ＣＳ＃が書き込み処理、消去処理、または、保護処理中にＨＩＧＨになると、ＩＳＭはＷＲＩＴＥ処理を続行し、デバイスは、処理が終了するまでアクティブＩｃｃｐ電力を消費する。
【００９７】
図１６は、本発明の一実施の形態に係る自己同期（self-timed）書き込みシーケンスのフローチャートである。このシーケンスは、コマンドレジスタ（コード４０Ｈ）のロード、アクティブコマンドおよび行アドレスの受け取り、書き込みコマンドおよび列アドレスの受け取りを含む。そして、このシーケンスでは、ステータスレジスタに対してポーリングが行われ、書き込みが終了しているかどうかが判定される。ポーリングによってステータスレジスタビット７（ＳＲ７）が監視され、ステータスレジスタビット７が１に設定されているかどうかが判定される。また、オプションとして、ステータスチェックを実行するようにしてもよい。書き込み処理が終了すると、アレイがアレイ読み出しモードに入る。
【００９８】
図１７は、本発明の一実施の形態に係る完全な読み出しステータスチェックシーケンスのフローチャートを示す。このシーケンスでは、ステータスレジスタビット４（ＳＲ４）がチェックされ、０に設定されているかどうか判定される。ＳＲ４が１であれば、書き込み処理の際にエラーが発生したとされる。そして、このシーケンスでは、ステータスレジスタビット３（ＳＲ３）がチェックされ、０に設定されているかどうかが判定される。ＳＲ３が１であれば、書き込み処理の際に無効書き込みエラーが発生したとされる。
【００９９】
図１８は、本発明の一実施の形態に係る自己同期ブロック消去シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタ（コード２０Ｈ）のロード、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、ブロックが保護されているかどうかを判定する。ブロックが保護されていなければ、メモリはブロックに対して書き込み処理（Ｄ０Ｈ）を実行し、ステータスレジスタを監視し、処理が終了しているかどうかを判定する。また、オプションとして、ステータスチェックを実行するようにしてもよい。消去処理が終了すると、メモリはアレイ読み出しモードに入る。ブロックが保護されていれば、ＲＰ＃信号が高電圧（ＶＨＨ）になっていない限り、消去処理を実行することはできない。
【０１００】
図１９は、本発明の一実施の形態に係る完全なブロック消去ステータスチェックシーケンスのフローチャートを示す。このシーケンスでは、ステータスレジスタが監視され、コマンドシーケンスエラーが発生したかどうかが確認される（ＳＲ４＝１またはＳＲ５＝１）。ＳＲ３が１に設定されていれば、無効消去エラーまたは非保護エラー（保護違反エラー）が発生する。ＳＲ５が１に設定されていれば、ブロック消去エラーまたは非保護エラー（保護違反エラー）が発生する。
【０１０１】
図２０は、本発明の一実施の形態に係るブロック保護シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタ（コード６０Ｈ）のロード、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、ブロックが保護されているかどうかを判定する。ブロックが保護されていなければ、ブロックに対してメモリは書き込み処理（０１Ｈ）を実行し、ステータスレジスタを監視し、処理が終了しているかどうかをチェックする。また、オプションとして、ステータスチェックを実行するようにしてもよい。ブロック保護処理が終了すると、メモリはアレイ読み出しモードに入る。ブロックが保護されていれば、ＲＰ＃信号が高電圧（ＶＨＨ）になっていない限り、消去処理を実行することはできない。
【０１０２】
図２１は、本発明の一実施の形態に係る完全なブロックステータスチェックシーケンスのフローチャートを示す。このシーケンスでは、ステータスレジスタビット３、４、５が監視され、エラーが検出されたかどうかが判定される。
【０１０３】
図２２は、本発明の一実施の形態に係るデバイス保護シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタ（コード６０Ｈ）のロード、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、ＲＰ＃がＶＨＨになっているかどうかを判定する。メモリは、書き込み処理（Ｆ１Ｈ）を実行し、ステータスレジスタを監視し、書き込み処理が終了しているかどうかをチェックする。また、オプションとして、ステータスチェックを実行するようにしてもよい。デバイス保護処理が終了すると、メモリはアレイ読み出しモードに入る。
【０１０４】
図２３は、本発明の一実施の形態に係るブロック保護解除シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタのロード（コード６０Ｈ）、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、当該メモリデバイスが保護されているかどうかを判定する。保護されていない場合、メモリは、ブートロケーション（ブロック０および１５）が保護されているかどうかを判定する。いずれのブロックも保護されていない場合、メモリはブロックに対して書き込み処理（Ｄ０Ｈ）を実行し、ステータスレジスタを監視し、書き込み処理が終了しているかどうかをチェックする。オプションとして、ステータスチェックを実行するようにしてもよい。全ブロック保護解除処理が終了すると、メモリはアレイ読み出しモードになる。デバイスが保護されている場合、ＲＰ＃信号が高電圧（ＶＨＨ）になっていない限り、消去処理を実行することはできない。同様に、各ブートロケーションが保護されている場合には、メモリは、全てのブロックの保護を解除するべきかどうかを判定する。
【０１０５】
図２４は、モードレジスタを初期化およびロードする処理のタイミングを示す。モードレジスタは、ロードモードレジスタコマンドの発行と、アドレスラインに対する処理コード（オペコード：opcode）の発行によってプログラムされる。オペコードは、モードレジスタにロードされる。上述したように、不揮発性モードレジスタのコンテンツは、立ち上がり（power-up）の際に、自動的にモードレジスタにロードされ、ロードモードレジスタ処理が必要とならない場合もある。
【０１０６】
図２５は、クロックサスペンドモード処理のタイミングを示し、図２６は、別のバースト読み出し処理のタイミングを示している。図２７は、バンク読み出しアクセスを交互に行う際のタイミングを示している。ここで、バンクアドレスを変更するためには、アクティブコマンドが必要である。図２８は、フルページバースト読み出し処理を示す。フルページバーストは、自己同期方式で行われることなく、終了コマンドの発行を必要とする。
【０１０７】
図２９は、データマスク信号を使用した読み出し処理のタイミングを示す。ＤＱＭ信号は、ＤＱ端子にＤｏｕｔ  ｍ＋ｌが出力されないように、データ出力をマスクするために使用される。
【０１０８】
図３０は、書き込み処理を行った後、異なるバンクに対して読み出し処理を行う場合のタイミングを示している。この処理においては、書き込み処理が、バンクａに対して行われ、その後、読み出し処理が、バンクｂに対して行われる。各々のバンクにおいて同一の行がアクセスされる。
【０１０９】
図３１は、書き込み処理を行った後、同一のバンクに対して読み出し処理を行う場合のタイミングを示している。この処理においては、書き込み処理が、バンクａに対して行われ、その後、読み出し処理が、バンクａに対して行われる。読み出し処理において、別の行がアクセスされ、メモリは、書き込み処理が終了するのを待機する必要がある。これは、図３０に示すような読み出し処理の場合、即ち、読み出し処理の開始の際に書き込み処理による遅延時間が生じない場合とは異なる。
【０１１０】
インタフェースコマンドアーキテクチャ
ＳＤＲＡＭでは、コマンドのデコードに３つのコマンドラインＲＡＳ、ＣＡＳ，およびＷＥを用いている。当業者であれば周知のことであるが、３つのラインを用いることにより、８つの異なるＤＲＡＭタイプのコマンド、具体的には、ＮＯＰ、アクティブ、読み出し、書き込み、リフレッシュ、プリチャージ、ロードモードレジスタ、およびバースト終了をデコードすることが可能である。本発明のフラッシュメモリは、ＳＤＲＡＭと同様の読み出し処理を行うため、ＳＤＲＡＭで使用されるこれらのコマンドの多くを使用する。また、ＳＤＲＡＭでは使用しないが、フラッシュメモリで使用される処理が幾つか存在する。これらの処理の例として、プログラムセットアップ、消去セットアップ、消去確認、アレイ読み出し、ステータス読み出し、インテリジェントアイデンティファイアー読み出し（Read Intelligent Identifier）、ステータスレジスタクリア、さらに、フラッシュメモリのブロック保護スキームに関連するコマンドが挙げられる。
【０１１１】
本発明は、ＳＤＲＡＭのコマンドアーキテクチャをできるだけ維持し、フラッシュメモリ独自のコマンドのデコードも可能とする。ＳＤＲＡＭで使用されるが、フラッシュメモリで必要とされないコマンドの１つは、リフレッシュコマンドである。ＤＲＡＭは動的なメモリであるため、データを保持するためには定期的にリフレッシュされる必要がある。これに対し、本発明のフラッシュメモリセルは不揮発性を有するため、リフレッシュ処理を必要としない。本発明のコマンドアーキテクチャによれば、ＳＤＲＡＭにおいてリフレッシュコマンドとして使用している３つのコマンドピンを、フラッシュメモリのロードコマンドレジスタ（ＬＣＲ）コマンドのために使用している。このピンの組み合わせをアサートすることによって、メモリは、各アドレスラインを読み出し、コマンドレジスタをロードする。メモリは、コマンドレジスタ１３３（図１Ａ）のコンテンツをフラッシュ関連の処理の実行のために使用する。
【０１１２】
このようにしてＳＤＲＡＭコマンドインタフェースに若干の変更を行うことによって、フラッシュ処理の全てを実行可能にする第２のデコード機構を構築することができる。フラッシュ処理において使用されるこのコマンドは、現在一般的に使用されているフラッシュコマンドと互換性を有する。つまり、本発明は、他のフラッシュメモリインタフェースとの互換性を維持した上で、ＳＤＲＡＭコマンドに新たなコマンドスキームを追加するものである。アドレスライン上に供給されるコマンドコードの例を真理値表２に示す。従って、本発明においては、アドレスライン（コマンドライン）に供給されたデータを利用してフラッシュコマンドレジスタ１３３をロードする。フラッシュコマンドレジスタ１３３のロードは、このコマンドラインがＤＲＡＭにおけるリフレッシュコマンドシーケンスに相当するデータを保持している場合に行われる。
【０１１３】
一般的なフラッシュメモリにおいては、データやＩ/Ｏ接続端子を用いてコマンドのデコード処理が行われるが、この処理によってシンクロナスメモリでは問題が発生する。つまり、バースト読み出しの実行中に、Ｉ/Ｏ接続端子がコマンドの提供に使用された場合には、システムはバースト読み出しが終了するまで待機しなければならない。このような場合、データバスの競合が発生する可能性もある。従って、本発明では、アドレスラインに供給されたデータを用いてフラッシュコマンドレジスタ１３３をロードする。
【０１１４】
結論
シンクロナスフラッシュメモリは、不揮発性メモリセルのアレイを含む。メモリデバイスのパッケージコンフィグレーションは、ＳＤＲＡＭと互換性を有する。メモリデバイスは、不揮発性メモリセルのアレイと、フラッシュメモリの各処理の制御に使用されるコマンドデータを格納するコマンドレジスタとを含む。コマンドレジスタは、列アドレスストローブ（ＣＡＳ＃）信号、行アドレスストローブ（ＲＡＳ＃）信号、書き出しイネーブル（ＷＥ＃）信号の所定の組み合わせを用いてコマンドレジスタロード処理を開始することによってロードされる。
【図面の簡単な説明】
【図１】  図１Ａは、本発明に係るシンクロナスフラッシュメモリを示すブロック図であり、図１Ｂは、本発明の一実施の形態に係る集積回路の端子接続を示す図であり、図１Ｃは、本発明の一実施の形態に係る集積回路のバンプグリッドアレイの配列を示す図である。
【図２】  本発明の一実施の形態に係るモードレジスタを示す説明図である。
【図３】  ＣＡＳレイテンシが１、２、３クロックサイクルのときの読み出し処理を示す動作説明図である。
【図４】  本発明の一実施の形態に係るメモリのバンクの特定の行を活性化する処理を示す動作説明図である。
【図５】  活性化コマンドと読み出しコマンドまたは書き込みコマンドとの間のタイミングを示す説明図である。
【図６】  読み出しコマンドを示す説明図である。
【図７】  本発明の一実施の形態に係る連続した読み出しバーストのタイミングを示す図である。
【図８】  本発明の一実施の形態に係るページ内でのランダム読み取りアクセスのタイミングを示す図である。
【図９】  読み出し処理に続いて行われる書き込み処理のタイミングを示す図である。
【図１０】  本発明の一実施の形態において、バーストターミネートコマンドを用いて読み出しバースト処理が終了するタイミングを示す図である。
【図１１】  書き込みコマンドを示す説明図である。
【図１２】  書き込み処理に続いて行われる読み出し処理のタイミングを示す図である。
【図１３】  本発明の一実施の形態に係るパワーダウン処理のタイミングを示す図である。
【図１４】  バースト読み出しの際のクロックサスペンド処理のタイミングを示す図である。
【図１５】  メモリが２つのブートセクタを有する実施の形態におけるメモリアドレスマップを示す説明図である。
【図１６】  本発明の一実施の形態に係る自己同期書き込みシーケンスを示すフローチャートである。
【図１７】  本発明の一実施の形態に係る完全な書き込みステータスチェックシーケンスを示すフローチャートである。
【図１８】  本発明の一実施の形態に係る自己同期消去シーケンスを示すフローチャートである。
【図１９】  本発明の一実施の形態に係る完全なブロック消去ステータスチェックシーケンスを示すフローチャートである。
【図２０】  本発明の一実施の形態に係るブロック保護シーケンスを示すフローチャートである。
【図２１】  本発明の一実施の形態に係る完全なブロックステータスチェックシーケンスを示すフローチャートである。
【図２２】  本発明の一実施の形態に係るデバイス保護シーケンスを示すフローチャートである。
【図２３】  本発明の一実施の形態に係るブロック保護解除シーケンスを示すフローチャートである。
【図２４】  モードレジスタの初期化、ロード処理のタイミングを示す図である。
【図２５】  クロックサスペンドモード処理のタイミングを示す図である。
【図２６】  バースト読み出し処理のタイミングを示す図である。
【図２７】  バンク読み出しアクセスを交互に行うタイミングを示す図である。
【図２８】  フルページバースト読み出し処理のタイミングを示す図である。
【図２９】  データマスク信号を用いて行われるバースト読み出し処理のタイミングを示す図である。
【図３０】  読み出し処理に続いて異なるバンクに対して読み出し処理を行うタイミングを示す図である。
【図３１】  書き込み処理に続いて同一のバンクに対して読み出し処理を行うタイミングを示す図である。
【図１】
0003725479.tif 000012
0003725479.tif 000013
0003725479.tif 000014
【図２】
0003725479.tif 000015
0003725479.tif 000016
【図３】
0003725479.tif 000017
【図４】
0003725479.tif 000018
【図５】
0003725479.tif 000019
【図６】
0003725479.tif 000020
【図７】
0003725479.tif 000021
【図８】
0003725479.tif 000022
【図９】
0003725479.tif 000023
【図１０】
0003725479.tif 000024
【図１１】
0003725479.tif 000025
【図１２】
0003725479.tif 000026
【図１３】
0003725479.tif 000027
【図１４】
0003725479.tif 000028
【図１５】
0003725479.tif 000029
【図１６】
0003725479.tif 000030
【図１７】
0003725479.tif 000031
【図１８】
0003725479.tif 000032
【図１９】
0003725479.tif 000033
【図２０】
0003725479.tif 000034
【図２１】
0003725479.tif 000035
【図２２】
0003725479.tif 000036
【図２３】
0003725479.tif 000037
【図２４】
0003725479.tif 000038
【図２５】
0003725479.tif 000039
【図２６】
0003725479.tif 000040
【図２７】
0003725479.tif 000041
【図２８】
0003725479.tif 000042
【図２９】
0003725479.tif 000043
【図３０】
0003725479.tif 000044
【図３１】
0003725479.tif 000045