(57)【要約】【課題】リアルタイムな応答性を要求する割り込み処理を簡便・確実・高速で処理可能な不揮発性半導体記憶装置およびこの不揮発性半導体記憶装置を用いたデータ処理装置を提供すること【解決手段】本発明のフラッシュメモリでは、割り込み入力端子［Ａ］に外部入力された割り込み信号を検知する。割り込み信号を検知した時に、フラッシュメモリにおいて書き込み・消去動作が実行している場合には、書き込み・消去動作を中断するサスペンド処理を実行する。フラッシュメモリのアレイ読み出しモードへの切り替えが終了した後、このフラッシュメモリは、割り込み出力端子［Ｂ］を通じてプロセッサに割り込み信号を出力する。【選択図】  図１
2005018650.tif 000002
【特許請求の範囲】
【請求項１】
電気的にデータの書き込み、消去または読み出し可能な不揮発性半導体記憶装置において、
外部から割り込み信号が入力される割り込み信号入力部と、入力割り込み信号に応答して所定の割り込み準備処理の後に割り込み信号を外部に出力するための割り込み信号出力部とを有した不揮発性半導体記憶装置。
【請求項２】
前記所定の割り込み準備処理を実行する制御部を有し、該制御部は、該所定の割り込み準備処理として、データの書き込み動作または消去動作の実行中に、入力された割り込み信号に応答して、少なくとも、該データの書き込み動作または消去動作を中断するサスペンド処理と、該サスペンド処理後に、データの読み出しモードに移行させる処理とを実行する請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記割り込み信号の外部への出力後に、外部からの指示により割り込み処理が為され、データの書き込み動作または消去動作を再開させるためのレジューム命令の入力検知後に、外部での割り込み処理終了からデータの書き込みまたは消去動作への復帰処理を行うための所定期間として、データの読み出し動作を継続させる期間が設けられている請求項２に記載の不揮発性半導体記憶装置。
【請求項４】
前記制御部は、前記中断された書き込み動作または消去動作への復帰処理が終了すると、該中断された書き込み動作または消去動作を再開させるように制御する請求項３に記載の不揮発性半導体記憶装置。
【請求項５】
前記制御部は、前記割り込み処理の終了時を示す外部からの所定の信号を検知した場合に前記書き込み動作または消去動作を再開させるように制御する請求項３に記載の不揮発性半導体記憶装置。
【請求項６】
前記制御部は、前記割り込み処理のプログラムコードに記録された最終アドレスをメモリアレイに格納し、該最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、前記書き込み動作または消去動作を再開させるように制御する請求項１〜５の何れかに記載の不揮発性半導体記憶装置。
【請求項７】
前記不揮発性半導体記憶装置はランダムアクセスメモリをさらに有し、前記制御部は、前記割り込み処理のプログラムコードに記録された最終アドレスを該ランダムアクセスメモリに格納し、該最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、前記書き込み動作または消去動作を再開させるように制御する請求項１〜５の何れかに記載の不揮発性半導体記憶装置。
【請求項８】
前記制御部はハードウェアで構成された請求項１〜７の何れかに記載の不揮発性半導体記憶装置。
【請求項９】
請求項１〜８の何れかに記載の不揮発性半導体記憶装置と、該不揮発性半導体記憶装置に対するデータの書き込み処理、消去処理または読み出し処理を制御し、割り込み処理を実行可能とするメモリ制御手段とを有するデータ処理装置において、
該不揮発性半導体記憶装置は、入力割り込み信号に応答して書き込み動作または消去動作を中断してデータの読み出しモードに移行した後に、該割り込み信号を該メモリ制御手段に出力する制御部を有するデータ処理装置。
【請求項１０】
前記メモリ制御手段は、前記割り込み信号の入力により割り込み処理を前記不揮発性半導体記憶装置に対して実行し、該割り込み処理の終了時に、該不揮発性半導体記憶装置にレジューム命令を出力する請求項９に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばハンドヘルドコンピュータ、電子手帳、携帯電話装置およびメモリカードリーダなどに用いられ、データの書き込み、消去または読み出しを可能とする不揮発性半導体装置、これをデータ記憶媒体として用いたデータ処理装置に関に関する。
【０００２】
【従来の技術】
この種の不揮発性半導体装置は、コードストレージ型メモリとして、ＮＯＲ型と称されるメモリアレイ構造を有するフラッシュメモリとして、例えばハンドヘルドコンピュータ、電子手帳、携帯電話装置およびメモリカードリーダなどに用いられて全盛である。フラッシュメモリは、不揮発でかつ書き換え可能という特性を持っており、この特性からメモリ内容を容易に修正することができる。この結果、フラッシュメモリは、メモリ内容の修正が困難であるマスクＲＯＭに取って代わり、コードストレージ型メモリとして急速に浸透していった。
【０００３】
図１０は、フラッシュメモリをコードストレージ形メモリとして用いた従来のデータ処理装置の要部構成を示すブロック図である。
【０００４】
図１０において、データ処理装置３０は、データの書き込み、消去または読み出しを可能とする不揮発性半導体装置であるフラッシュメモリ３１と、フラッシュメモリ３１に対して書き込み処理、消去処理および読み出し処理を実行するプロセッサ３２と、フラッシュメモリ３１とプロセッサ３２間には各種データを送信するたに接続された複数のバスとを備えている。
【０００５】
フラッシュメモリ３１は、メモリアレイと、メモリアレイに対して書き込み動作および消去動作を制御する書き込み／消去制御回路（ＷＳＭ、Ｗｒｉｔｅ  Ｓｔａｔｅ  Ｍｃｈｉｎｅ）とを有している。
【０００６】
プロセッサ３２は、該割り込み信号入力部３２ａを備え、書き込み／消去ルーチン処理部３２ｂと、割り込みルーチン処理部３２ｃとを実行する。この際にサスペンドコマンドをフラッシュメモリ３１に与えて書き換え動作を一時的に中断させ、読み出しモードに切り替える後述のソフトウェア・デュアルワーク方式を用いている。
【０００７】
バスは、コードストレージ型メモリとしてＳＲＡＭを用いた場合のバスに等しい。このバス構成により、プロセッサ３２は、フラッシュメモリ３１より、直接、自らが動作する命令の種類を表すインストラクション・コード（命令コード）を取り込むとともに、このインストラクション・コードに応じた命令処理を実行する。
【０００８】
以下に、ここで用いられるソフトウェア・デュアルワーク方式について、その前提となるフラッシュメモリの問題点から説明する。
【０００９】
フラッシュメモリをコードストレージ型メモリとして用いる場合には、プロセッサが要求するタイミングで常にプログラムコードにアクセスできることが要求される。フラッシュメモリをＲＯＭ（コードストレージ型メモリ）として使用する限り、この点については全く問題がない。
【００１０】
しかしながら、データ処理装置３０において、コードストレージ機能だけではなく、フラッシュメモリ３１の書き換え機能（書き込み機能および消去機能）を利用してデータストレージ機能をフラッシュメモリ３１に併せ持たせようとするニーズがある。
【００１１】
フラッシュメモリ３１をデータストレージ型メモリとして使用する場合、以下の第１および第２の問題が発生する。
【００１２】
第１に、フラッシュメモリ３１の書き換え処理はＳＲＡＭやＤＲＡＭに比して非常に長いレイテンシを必要とする（時間がかかる）。
【００１３】
第２に、プロセッサ３２はフラッシュメモリ３１の書換え動作中にフラッシュメモリ３１のメモリアレイに記憶されたデータを読み出すことができない。書換え動作中にメモリアレイのデータを読み出すことができないのは、フラッシュメモリ３１では、書き換え動作中にフラッシュメモリ３１内部のレジスタの格納内容が出力されるためである。
【００１４】
上記理由から、フラッシュメモリ３１をデータストレージ型メモリとして使用する書き換えを前提としたデータ処理装置３０では、ｉ）書換え動作中に、フラッシュメモリ３１上のメモリアレイに対する読み出し（すなわち割り込み処理）を発生させてはならないこと、およびｉｉ）書き換え用のプログラムコードを含め、書き換え中に実行しなければならないプログラムをフラッシュメモリ３１に配置してはならないことなどの制約を受ける。
【００１５】
ｉ）は、書き換え動作中に外部からフラッシュメモリ３１にアクセス要求があった場合には、アクセス要求に対するフラッシュメモリ３１の応答時間が長くなることを意味し、ｉｉ）は、データ処理装置３０のシステム設計の自由度が著しく損なわれることを意味する。
【００１６】
上記制約ｉ）およびｉｉ）を緩和する方法としては、１）ハードウェア・デュアルワーク方式と、２）ソフトウェア・デュアルワーク方式がある。
【００１７】
１）ハードウェア・デュアルワーク方式
フラッシュメモリ３１のメモリアレイ部を複数のバンクに分割する。書き換えによってアクセス不可能になるメモリアレイを同じバンク内のメモリアレイにのみ限定することにより、別のバンク内のメモリアレイからの任意の読み出し動作を可能にする。このように、メモリアレイ部を複数のバンクに分割することにより、データの書き換えを行うメモリアレイと、プログラムコードが記憶されるメモリアレイとを互いに独立動作させることができる。これにより、書き換え動作と読み出し動作との同時性が保障される。さらに、バンク構成に合わせてコードおよびデータ配置を切り分けることにより、上述したように書き換え動作と読み出し動作との同時性が保障され、データの書き換えに際してコードフェッチ（命令読み出し動作）が阻害されることは決してない。この方式の一例は、特許文献１に開示されている。
【００１８】
２）ソフトウェア・デュアルワーク方式
ソフトウェアを用いてフラッシュメモリ３１の動作状態を動的に制御することにより、外部入力されてから応答までのレスポンスを向上させる。具体的には、フラッシュメモリ素子の動作を中断するサスペンドコマンドと、中断された動作を再開するレジュームコマンドとをフラッシュメモリ３１に活用する。ソフトウェアにより、書き換え中のフラッシュメモリ３１の状態と、データを読み出すためのフラッシュメモリ３１に対するアクセス要求とを同時にモニタリングさせる。ソフトウェアは、フラッシュメモリ３１へのアクセス要求を検知すると、サスペンドコマンドをフラッシュメモリ３１に与え、これにより書き換え動作を一時的に中断させ、次いで、読み出しモードに切り替えさせるように制御が為される。
【００１９】
このソフトウェア・デュアルワーク方式の動作について図１１を用いて説明する。
【００２０】
図１１は、従来のソフトウェア・デュアルワーク方式の動作を示すシーケンス図である。ここでは、プロセッサ３２の書き込み／消去ルーチン処理部）がアクセス要求および、フラッシュメモリ３１の書き込み処理、消去処理および読み出し処理など一切を制御し、プロセッサ３２の割り込みルーチン処理部が割り込み処理の実行および、この割り込み処理の実行に関連する処理（例えば、割り込み処理のプログラムコードをフラッシュメモリ３１から読み出す処理など）を制御する。
【００２１】
このソフトウェア・デュアルワーク方式の動作（１）〜（８）は以下の通りである。
【００２２】
（１）フラッシュメモリ３１の動作状態を一元管理するため、書き込み・消去前には、ソフトウェア・デュアルワーク方式による割り込み処理やタスク切り替え処理を禁止する。この禁止期間中のアクセス要求は、書き込み・消去ルーチン処理部３２ｂでソフトウェア的に監視するものとする。
【００２３】
（２）外部からのアクセス要求は先ず、書き込み・消去ルーチン処理部３２ｂにおける監視処理で検出され、一旦ここでホールド（記憶保持）される。
【００２４】
（３）アクセス要求をトリガーとして、フラッシュメモリ３１に対しサスペンドコマンドを発行する。
【００２５】
（４）フラッシュメモリ３１にてサスペンド処理を終了させた後、フラッシュメモリ３１をアレイ読み出しモードに移行させる。
【００２６】
（５）アレイ読み出しモードへの移行を確認後、割り込み、およびタスク切り替え処理の禁止を解除する。その後、ホールドしていたアクセス要求を開放し、アクセス要求のある処理に必要なプログラムコードをフラッシュメモリ３４１から読み出し、アクセス要求のある処理への分岐を実施する。
【００２７】
（６）アクセス要求のあった処理が終了した後、再びフラッシュメモリ３１の書き込み・消去ルーチン処理部３２ｂが再び割り込み・タスク切り替え処理を禁止する。
【００２８】
（７）フラッシュメモリ３１に対して、中断された動作を再開するレジュームコマンドを発行し、書き込み・消去動作を再開する。
【００２９】
（８）  （２）〜（７）の動作を必要なだけ繰り返し、書き込み・消去の終了後、割り込みを許可して処理を終了する。
【００３０】
このようなソフトウェア・デュアルワーク方式では、書き換え動作の中断に要するレイテンシが書き換え動作の終了に要するレイテンシより遥かに短いために、外部からのアクセス要求に対するシステムの応答速度を向上できる。
【００３１】
また、ソフトウェア・デュアルワーク方式は、ハードウェア・デュアルワーク方式と比較すると、コード／データの配置に関してシステム設計をより柔軟に構築することが可能である（ただし、書き換え用のモニタリング・コードを配置／実行するメモリには排他アクセスが必須となる）。
【００３２】
このソフトウェア・デュアルワーク方式の一例は、特許文献２に開示されている。
【００３３】
このようなハードウェア・デュアルワーク方式およびソフトウェア・デュアルワーク方式は、携帯電話装置に代表される低コストかつ高い応答性が必要な分野で採用されて実績を上げている。
【００３４】
【特許文献１】
特開平６−１８０９９９公報
【特許文献２】
特開平２−６１８９６公報
【００３５】
【発明が解決しようとする課題】
しかしながら、上記従来のハードウェア・デュアルワーク方式およびソフトウェア・デュアルワーク方式では以下に述べる問題がある。
【００３６】
ハードウェア・デュアルワーク方式では、書き換え動作中のバンクにアクセス要求があった場合に対応できない。ハードウェア・デュアルワーク方式によって対応できない場合として、例えば、ｉ）ユーザが用いるシステムがフラッシュメモリのバンクサイズに不適合なために、インストラクション・コードの一部がデータ書換え用のバンク内のメモリアレイに及んで書き込まれている場合、ｉｉ）インストラクション・コードへのアクセス要求だけでなく、書換え用のバンク内のメモリアレイに記録されたデータ自体へのアクセス要求がある場合が挙げられる。このようなデータ処理装置ではソフトウェア・デュアルワーク方式の併用が必須となる。
【００３７】
ソフトウェア・デュアルワーク方式では、フラッシュメモリ３１のサスペンド動作に要する時間と比較して、ソフトウェア部分のオーバーヘッドが非常に大きく、データ処理装置３０における実装の方法にも依るが、データ処理装置３０の応答速度が結果として要求される応答速度より低くなるおそれがある。ソフトウェア・デュアルワーク方式によって対応できない場合として、例えば、ｉ）データ処理装置が応答時間に対して厳しい制約のあるリアルタイム系のシステムである場合、およびｉｉ）データ処理装置がハードウェアによる割り込み処理等のアクセス要求に対してソフトウェアによって制御できない処理系である場合がある。
【００３８】
上記について整理すると、ハードウェア・デュアルワーク方式およびソフトウェア・デュアルワーク方式には、（ａ）書き換え動作が生じるバンク内のメモリアレイに高速処理する必要のあるコードがあり、かつ（ｂ）このコードへのアクセスをソフトウェア的に制限できない場合、または（ｃ）ソフトウェア・デュアルワーク処理の遅延が許容されない場合に対応できないという問題がある。
【００３９】
このような問題を本質的に含むのが割り込み処理におけるデュアルワーク動作の保障である。
【００４０】
割り込み処理とは、コンピュータにおいて現在実行中の処理とは全く別に、突発的に発生して優先的に実行される処理をいう。
【００４１】
通常、プロセッサは、一つないし複数の割り込み信号入力端子を有しており、この割り込み信号入力端子に入力された割り込み信号をトリガーとして割り込み処理を実行する。割り込み処理の手順は以下の通りである。
【００４２】
１）プロセッサ３２は、入力された割り込み信号をトリガーとして現在実行中の処理を中断して、中断された処理を退避する。
【００４３】
２）プロセッサ３２は、割り込みベクトルテーブルから割り込み信号に応じた分岐先のアドレスを読み出し、このアドレスで指定された分岐先に記憶された割り込みサブルーチンを読み出して最優先で実行する。割り込みベクトルテーブルとは、割り込み処理への分岐先を記した記録領域をいい、割り込みサブルーチンとは、割り込み処理自体のプログラムコードをいう。
【００４４】
３）プロセッサ３２は、割り込み処理が終了した後、一旦退避した処理に復帰して再びこれを実行する。
【００４５】
このような割り込み処理では、書き換え動作が生じるバンク内のメモリアレイに、処理を実行するのに必要なコードが記録されている場合もある（上記問題の（ａ）に相当）。
【００４６】
また、上記１），２）の処理は、プロセッサ３２によって自動的に行われるため、ユーザ・システムを問わず、ソフトウェアでこれらの処理に干渉することは通常できない。さらに、このような割り込み処理は偶発的な性質の処理であるため、事前に割り込み処理の発生を予測して分岐先で、上記１），２）の処理を実行することによって書換え動作中のメモリに対するアクセスをソフトウェア的に制限することはできない（上記問題の（ｂ）に相当）。
【００４７】
また、割り込み信号をマスクするなどの方法で割り込み処理の開始前にソフトウェアの介在が可能である場合でも、一般に割り込み操作系のプログラムはオーバーヘッドが大きいために割り込み処理の実行を大幅に遅延させるケースが多い。割り込み処理は高速で処理されることが要求されており、割り込み処理にはソフトウェア・デュアルワーク方式による遅延が許容されない（上記問題の（ｃ）に相当）。
【００４８】
したがって、フラッシュメモリ３１をコードストレージ型メモリおよびデータストレージ型メモリとして使用するデータ処理装置３０では、プロセッサ３２の割り込み信号入力端子（割り込み信号入力部）に割り込み信号が入力される前に、割り込みベクトルおよびその分岐先に必ずアクセスできる状態にする必要がある。
【００４９】
本発明は、上記従来の問題を解決して、リアルタイムな応答性を要求する割り込み処理を簡便・確実・高速で処理可能な不揮発性半導体記憶装置およびこの不揮発性半導体記憶装置を用いたデータ処理装置を提供することを目的とする。
【００５０】
【課題を解決するための手段】
本発明の不揮発性半導体記憶装置は、電気的にデータの書き込み、消去または読み出し可能な不揮発性半導体記憶装置において、外部から割り込み信号が入力される割り込み信号入力部と、入力割り込み信号に応答して所定の割り込み準備処理の後に割り込み信号を外部に出力するための割り込み信号出力部とを有し、これにより上記目的が達成される。
【００５１】
上記所定の割り込み準備処理を実行する制御部を有し、上記制御部は、上記所定の割り込み準備処理として、データの書き込み動作または消去動作の実行中に、入力された割り込み信号に応答して、少なくとも、上記データの書き込み動作または消去動作を中断するサスペンド処理と、上記サスペンド処理後に、データの読み出しモードに移行させる処理とを実行してもよい。
【００５２】
上記割り込み信号の外部への出力後に、割り込み処理が為され、データの書き込み動作または消去動作を再開させるためのレジューム命令の入力検知後に、割り込み処理終了からデータの書き込みまたは消去動作への復帰処理を行うための所定期間として、データの読み出し動作を継続させる期間が設けられていてもよい。
【００５３】
上記制御部は、上記割り込み処理の終了時を示す外部からの所定の信号を検知した場合に上記書き込み動作または消去動作を再開させるように制御してもよい。
【００５４】
上記制御部は、上記割り込み処理のプログラムコードに記録された最終アドレスをメモリアレイに格納し、上記最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、上記書き込み動作または消去動作を再開させるように制御してもよい。
【００５５】
上記不揮発性半導体記憶装置はランダムアクセスメモリをさらに有し、上記制御部は、上記割り込み処理のプログラムコードに記録された最終アドレスを上記ランダムアクセスメモリに格納し、上記最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、上記書き込み動作または消去動作を再開させるように制御してもよい。
【００５６】
上記制御部はハードウェアで構成されてもよい。
【００５７】
上記不揮発性半導体記憶装置と、上記不揮発性半導体記憶装置に対するデータの書き込み処理、消去処理または読み出し処理を制御し、割り込み処理を実行可能とするメモリ制御手段とを有するデータ処理装置において、上記不揮発性半導体記憶装置は、入力割り込み信号に応答して書き込み動作または消去動作を中断してデータの読み出しモードに移行した後に、上記割り込み信号を上記メモリ制御手段に出力する制御部を有し、これにより上記目的が達成される。
【００５８】
上記メモリ制御手段は、上記割り込み信号の入力により割り込み処理を上記不揮発性半導体記憶装置に対して実行し、上記割り込み処理の終了時に、上記不揮発性半導体記憶装置にレジューム命令を出力してもよい。
【００５９】
上記構成により、以下、本発明の作用について説明する。
【００６０】
本発明において、割り込み処理に際して、プロセッサに先んじて割り込み信号が入力される割り込み信号入力部（入力端子）、および、メモリ側の準備処理終了後にプロセッサに対して割り込み信号を与える割り込み信号出力部（出力端子）または配線ラインなどをフラッシュメモリ側に設ける。
【００６１】
外部より与えられる割り込み信号入力は、先ずフラッシュメモリ側の割り込み入力端子へ入力する。フラッシュメモリからの割り込み信号出力はプロセッサ側の割り込み入力端子に入力する。これによりフラッシュメモリは、常にプロセッサに先んじて割り込み処理の発生を知ることができる。つまりプロセッサが割り込み処理を開始する前に、フラッシュメモリは割り込みに対する準備処理動作に入ることが可能になる。
【００６２】
割り込みに対する準備動作とは、以下の項目を必ず含む。すなわち、１）サスペンドによる書き込み・消去動作の中断、２）アレイ読み出しモードへの切り替え、である。これらの操作はソフトウェア制御とは無関係に、フラッシュメモリ側のハードウェア・ロジックによって自動的に行われ得る。フラッシュメモリは、少なくとも上記の二項目を実施した後、プロセッサ側に割り込み信号を出力、プロセッサは通常の割り込み処理を開始する。
【００６３】
割り込み処理が終了した場合、フラッシュメモリは本来の書き込み・消去動作に戻らなければならない。つまり割り込み処理を終了して元の処理へ復帰する際に、何らかの手段を用いてフラッシュメモリのレジュームを実行する必要がある。
【００６４】
したがって、割り込み信号入力部と割り込み信号出力部をフラッシュメモリ側に設けることにより、容易に割り込み信号を検出でき、その検出によりフラッシュメモリでの各種準備処理をメモリ制御手段からの割り込み処理に先立って行うことが可能になる。これにより、本発明は、リアルタイムな応答性を要求する割り込み処理を簡便・確実・高速で処理可能な不揮発性半導体記憶装置およびこの不揮発性半導体記憶装置を用いたデータ処理装置を提供することが可能になる。
【００６５】
【発明の実施の形態】
以下、データ処理装置の本発明の実施形態１〜３について図面に基づいて説明する。
【００６６】
［実施形態１］
図１は、本実施形態１のデータ処理装置の構成要部の概略図である。
【００６７】
図１において、本実施形態１のデータ処理装置１０は、電気的にデータの書き込み、消去または読み出しを可能とする不揮発性半導体装置であるフラッシュメモリ１１と、フラッシュメモリ１１に対して書き込み処理、消去処理および読み出し処理を実行するメモリ制御手段であるプロセッサ１２と、フラッシュメモリ１１とプロセッサ１２間には各種データを送信するたに接続された複数のバスとを備えている。
【００６８】
フラッシュメモリ１１は、メモリアレイと、メモリアレイに対して書き込み動作および消去動作を制御する制御部としての書き込み／消去制御回路（ＷＳＭ）と、割り込み入力部１１ａと、割り込み信号が外部入力される割り込み信号入力入力部としての入力端子［Ａ］と、外部入力された割り込み信号をホールドするレジスタと、レジスタにホールドされた割り込み信号をプロセッサに出力する割り込み信号出力部としての出力端子［Ｂ］とを含む。
【００６９】
プロセッサ１２は、書き込み処理および消去処理を制御する書き込み／消去ルーチン処理部１２ａと、フラッシュメモリ１１から入力される割り込み信号に応じて割り込み処理を実行する割り込みルーチン処理部１２ｂとを実行する。
【００７０】
フラッシュメモリ１１とプロセッサ１２との間に配置されたバス構成により、プロセッサ１２は、フラッシュメモリ１１にアドレスを送信するアドレスバスと、プロセッサとフラッシュメモリとの間でデータを送受信するデータバスと、フラッシュメモリの処理を制御する制御信号（例えば、チップイネーブル信号、アウトプットイネーブル信号およびライトイネーブル信号）を送信する制御バスを含む。なお、図１において、ＣＥはチップイネーブル信号、ＯＥはアウトプットイネーブル信号、ＷＥはライトイネーブル信号、Ａｄｄｒｅｓｓはアドレス信号、ＤＱはデータを表している。
【００７１】
以下に、本実施形態１の特徴を説明する。
【００７２】
本実施形態１の特徴は、割り込み信号の外部入力に応じて、書き込み動作および消去動作の中断処理（サスペンド処理）およびフラッシュメモリのアレイ読み出しモードへの切り替え等の割り込み準備処理をフラッシュメモリ側（ハードウェア側）に委ね、割り込み処理を終了した後に中断された書き込み動作または消去動作を再開させる（レジューム処理）レジュームコマンド（命令）の発行をソフトウェア側に委ねることにある。すなわち、サスペンド処理に関してはハードウェアで、レジューム処理についてはソフトウェア側で対応する。
【００７３】
その理由は、以下の通りである。
【００７４】
ソフトウェア的に見たとき、割り込み処理は一種のサブルーチンコールである。その起動は外部応答による不定期呼び出しであり、開始タイミングや開始アドレスは一意に決まらない。このためソフトウェアにより、割り込み処理の起動を制御することは困難である。逆に、割り込み処理の終了は、ユーザが記述したプログラムコードに明示的に記されたリターンコードによって決定され、復帰アドレスは一意的である。このためソフトウェアにより、割り込み処理の終了を制御することは容易である。したがって、レジュームコマンドの発行は、ハードウェア側に委ねるのではなく、ソフトウェア側に委ねる方が望ましい。
【００７５】
さらに、レジュームコマンドの発行をソフトウェア側に委ねることにより、ハードウェア側にはレジュームコマンドを発行するタイミングを監視するための特別な機構が不要になり、ハードウェア・ロジックを簡略化することができる。また、レジュームタイミングの監視によって生じる処理負荷を軽減することにもつながる。
【００７６】
一方ハードウェア的に見ると、割り込み処理の起動時は専用の入力端子への入力であるから検出は容易である。逆に割り込み処理の終了時は、復帰アドレスが分岐先次第であり、一意的ではないために検出することが困難である。したがって、割り込み信号の外部入力に応じた、書き込み動作および消去動作の中断は、ハードウェア側（すなわちフラッシュメモリ側）に委ねる方が望ましい。
【００７７】
以下に、本実施形態１のデータ処理装置１０による割り込み処理の動作を説明する。
【００７８】
図２は、本実施形態１のデータ処理装置による割り込み処理のシーケンス図を示す。
【００７９】
この割り込み処理の動作（１）〜（８）は以下の通りである。
【００８０】
（１）フラッシュメモリ１１の書き込み／消去制御回路は、割り込み入力端子［Ａ］に割り込み信号が外部入力されると、書き込み・消去動作のサスペンド動作を実行する。
【００８１】
（２）フラッシュメモリ１１の書き込み／消去制御回路は、サスペンド動作の終了後、アレイ読み出しモードへの切り替えを行う。
【００８２】
（３）フラッシュメモリの書き込み／消去制御回路は、アレイ読み出しモードへの切り替え終了後、割り込み信号出力端子［Ｂ］からプロセッサに割り込み信号ＩＮＴを出力させる。
【００８３】
（４）プロセッサ１２は、割り込み処理終了時のリターン命令直前に、必ずレジュームコマンドをフラッシュメモリ１１に発行するものとする。フラッシュメモリ１１の書き込み／消去制御回路は、このレジュームコマンドの入力に応答してレジューム処理に入る前に、リターン命令のフェッチに必要な期間だけ、アレイ読み出しモードを継続させる。
【００８４】
フラッシュメモリ１１は、レジュームコマンドの入力に対して、レジューム動作に入る前に、リターン命令のフェッチに必要な期間［Ｃ］だけ、アレイ読み出しモードを維持して、その後レジューム動作を行う。これにより、プロセッサ１２は、レジューム動作直後のリターン命令の実行を確実なものと
する。
【００８５】
図３は、フラッシュメモリ１１にて実行される自動サスペンド動作に関するフローチャートを示す図である。
【００８６】
このフラッシュメモリ１１は、割り込み入力端子［Ａ］に外部入力された割り込み信号を検知する。割り込み信号を検知した時に、フラッシュメモリ１１において書き込み・消去動作が実行している場合には、割り込み信号をホールド（記録保持）し（Ｓ１）、次いで、書き込み・消去動作を中断するサスペンド処理を実行する（Ｓ２）。次いで、フラッシュメモリ１１は、書き込み／消去制御回路によって書き込み・消去動作に関するデータを所定のバッファに退避させてアレイ読み出しモードへの切り替えを実行する（Ｓ３）。この段階までは、外部入力された割り込み信号はフラッシュメモリ１１にてホールド（記録保持）され、プロセッサ１２には出力されない。フラッシュメモリ１１のアレイ読み出しモードへの切り替えが終了した後、このフラッシュメモリ１１は、割り込み出力端子［Ｂ］を通じてプロセッサ１２に割り込み信号を出力する。
【００８７】
一方、フラッシュメモリ１１が割り込み入力端子［Ａ］に外部入力された割り込み信号を検知した時に、フラッシュメモリ１１がすでにアレイ読み出しモードにある場合、フラッシュメモリ１１は、割り込み信号をホールドせずに、割り込み信号を割り込み信号出力端子からプロセッサにスルー出力する。
【００８８】
図４は、図２に示されるレジューム処理（５）の手順を示すフローチャートである。
【００８９】
フラッシュメモリ１１は、レジュームコマンドの入力からレジューム処理の開始までの間（すなわち図２に示されたリターン命令のフェッチ期間［Ｃ］）、数サイクルのアレイ読み出しモードを維持する（Ｓ１１）。［Ｃ］の期間が経過した場合（ＹＥＳの場合）（Ｓ１２）、フラッシュメモリは、レジューム動作を実行する（Ｓ１３）。［Ｃ］の期間が経過していない場合（ＮＯの場合）（Ｓ１２）、フラッシュメモリ１１は、アレイ読み出しモードを維持する
プロセッサ１２は、リターン命令のフェッチ期間において、リターン命令（すなわちリターンコード）をフェッチするとともに、割り込み処理を終了させて割り込みルーチン処理部１２ｂから書き込み・消去ルーチン処理部１２ａへの復帰を実行する。
【００９０】
このリターン命令のフェッチ期間に割り込み信号が入力された場合、この割り込み信号は、フラッシュメモリ１１がレジューム処理を終了するまでホールドされる。ホールドされた割り込み信号は、レジューム処理終了後に行われる次のサスペンド処理のトリガーとなる。
【００９１】
プロセッサ１２が割り込み処理から復帰するのと平行して、または復帰が終了してから、フラッシュメモリ１１はレジューム処理を開始し、書き込み・消去動作を再開する。
【００９２】
［実施形態２］
本実施形態２のデータ処理装置１０Ａの構成は、フラッシュメモリの内部構成を除いて上記実施形態１のデータ処理装置１０の構成と同じである。上記実施形態１の構成要素と同一の本実施形態２の構成要素は、上記実施形態１と同一の参照番号によって示される。また上記実施形態１と同一の構成要素の説明は省略する。
【００９３】
本実施形態２のフラッシュメモリ１１Ａは、上記実施形態１のフラッシュメモリ１１の構成要素に加えて、さらに、内部に任意のアドレスを記憶させるバッファ（バッファ上のアドレス値はユーザによって任意値に変更できるものとする）と、アドレスバス上のアドレス（このアドレスを示すアドレス信号）とバッファ（メモリアレイ）に格納されたアドレス（このアドレスを示すアドレス信号）とが一致しているか否かを判定する比較器とを含む。この一致判定は、比較器の他にデータ一致手段を用いることができ、データ一致手段はアンド回路などの論理回路で構成することができる。
【００９４】
このバッファ上には、割り込み処理のプログラムコード末尾のリターンコードが記述された最終アドレスを登録するものとする。
【００９５】
また、このアドレスはサスペンド動作のトリガーとなるアドレスである。
【００９６】
以下に、本実施形態２の特徴を説明する。
【００９７】
本実施形態２の特徴は、上記実施形態１と同様にサスペンド処理をハードウェア（フラッシュメモリ）側に委ねることに加えて、レジュームコマンド発行もフラッシュメモリ１１Ａ側に委ねることにある。
【００９８】
上述したように、ハードウェア的に見ると、割り込み処理の終了時は、復帰アドレスが分岐先次第であり、一意ではないために検出が困難である。
【００９９】
しかし、レジュームコマンド発行のトリガーをアドレスバス上のアドレス入力の検出とすることにより、レジュームコマンド発行をフラッシュメモリ１１Ａ側で自動的に実行できる。検出対象となるアドレスは、フラッシュメモリ１１Ａ内に準備されたバッファ上のアドレス値を用いる。このアドレス値はユーザの手によって任意の値に設定できるものとする。
【０１００】
レジュームコマンド発行のトリガーをアドレスバス上のアドレス入力の検出とするためには、例えば、割り込み処理の終了アドレスを網羅してフラッシュメモリ１１Ａ上に保持することが必要となる。割り込み処理の終了アドレスを網羅してフラッシュメモリ１１Ａ上に保持できるか否かは、プロセッサ１２の割り込み処理に対するアーキテクチャの実装に依存する。
【０１０１】
したがって、レジュームコマンド発行をフラッシュメモリ１１Ａ側に委ねることの現実上の制約はアーキテクチャの実装である。例えば、Ｘ８６アーキテクチャのように、割り込み入力信号と割り込み処理が一対一に対応するアーキテクチャは、信号数分のバッファを用意することで比較的容易に実現できる。
【０１０２】
この結果、本実施形態２のデータ処理装置１０Ａでは、割り込み処理を終了した後、速やかに書き込み・消去動作への復帰処理を行うことが可能になる。また、本実施形態２のデータ処理装置では、ユーザおよびシステム側において割り込み処理のためのフラッシュメモリ１１Ａのサスペンド・レジューム動作に特別な配慮が不要になるため、システム設計上の負担を大幅に軽減できる。
【０１０３】
以下に、割り込み処理を実行する本実施形態２のデータ処理装置１０Ａの動作を示す。
【０１０４】
図５は、本実施形態２のデータ処理装置１０Ａによる割り込み処理のシーケンス図を示す。
【０１０５】
フラッシュメモリ１１Ａの書き込み／消去制御回路は、割り込み処理入力端子［Ａ］からの割り込み入力を受けて、書き込み・消去動作のサスペンドを実行する。この自動サスペンド動作は、上記実施形態１のサスペンド動作（図３参照）と同様である。
【０１０６】
次いで、フラッシュメモリ１１Ａの書き込み／消去制御回路は、サスペンド動作終了後、アレイ読み出しモードへの切り替えを行う。
【０１０７】
フラッシュメモリ１１Ａの書き込み／消去制御回路は、アレイ読み出しモードへの切り替え終了後、割り込み処理出力端子［Ｂ］よりプロセッサ２２へ割り込み信号を出力させる。
【０１０８】
サスペンド中のアレイ読み出しモードにおいて、フラッシュメモリ１１Ａは、比較器により、入力されたアドレスバス上のアドレスとバッファ上のアドレスを逐一比較する。両者が一致した場合、フラッシュメモリ１１Ａはレジューム動作を実行する。
【０１０９】
アドレスバッファへのアドレス登録方法については、特開２００１−３０６４００に準じる。
【０１１０】
図６は、本実施形態２のレジューム動作（４）に関するフローチャートを示す。
【０１１１】
フラッシュメモリ１１Ａは、サスペンド状態へ移行後、アドレスバスの監視を行う（Ｓ２１）。アドレス監視はフラッシュメモリ１１Ａの非選択状態でも行われる。
【０１１２】
フラッシュメモリ１１Ａの比較器は、アドレスバスへの入力値とフラッシュメモリ１１Ａ内のバッファにあるアドレス値とを比較することにより、両方の値が一致するか（ＹＥＳ）否か（ＮＯ）を判定する（Ｓ２２）。
【０１１３】
アドレスバス上のアドレス値とバッファ上のアドレス値が一致するタイミングは、プロセッサ１２がリターンコードをフェッチしたタイミングであり、このタイミングで割り込み処理が終了したと判断できる。したがって、本実施形態２のフラッシュメモリ１１Ａの書き込み／消去制御回路は、アドレスバス上のアドレスとバッファ上のアドレスの一致によってレジューム処理を実行する（Ｓ２３）。なお、バッファ内に登録されたアドレス値がフラッシュメモリ１１Ａ内のリターンコードの配置されたアドレスと同じであることを前提にしている。
【０１１４】
［実施形態３］
図７は、本実施形態３のデータ処理装置構成の要部概略図である。
【０１１５】
本実施形態３のデータ処理装置の構成は、上記実施形態２のデータ処理装置１０Ａの構成とは以下の点で異なっている。
【０１１６】
本実施形態３のデータ処理装置２０において、フラッシュメモリ２１は、プロセッサ２３からＲＡＭ２２にＤＱ、ＣＥ信号（Ｓ−ＣＥ信号）およびＷＥ信号（Ｓ−ＷＥ信号）を送信するためのバスをＲＡＭと共有する。フラッシュメモリ２１には、通常のチップセレクト端子以外に、リターンアドレス検出用のチップセレクト端子とライトイネーブル端子とが設けられる。このリターンアドレス検出用チップセレクト端子は、ＲＡＭ２２に備えられたチップセレクト端子とともに、プロセッサ２３からＲＡＭ２２へのチップセレクト入力に接続される。これにより、フラッシュメモリ２１は、プロセッサがこのデータバスを介してＲＡＭに送信するＣＥ信号またはＷＥ信号を監視することが可能になる。この結果、フラッシュメモリ２１は、プロセッサ２３がＲＡＭ２２にプログラムカウンタを退避する瞬間のタイミングを取得できる。
【０１１７】
ＲＡＭ２２は、プロセッサ２３からのＲＡＭ２２のみにＣＥ信号（Ｓ−ＣＥ信号）、ＷＥ信号（Ｓ−ＷＥ信号）およびＯＥ信号（Ｓ−ＯＥ信号）を送信する制御バスと、プロセッサ２３からのＲＡＭ２２にＳ−アドレスを送信するアドレスバスとをさらに有する。
【０１１８】
本実施形態３の特徴は、実施形態２と同様に、サスペンド処理をハードウェア（フラッシュメモリ）側に委ねること、および、レジュームコマンド発行をフラッシュメモリ側に委ねることである。
【０１１９】
レジュームコマンド発行のトリガーは、アドレスバスへの特定アドレス入力を検出することである。検出対象となるアドレスは、フラッシュメモリ２１内に準備されたバッファ上のアドレス値を用いる。フラッシュメモリ２１は、割り込み処理が発生する都度、プロセッサ２３がＲＡＭ２２のスタックエリア上に退避するプログラムカウンタの値を読み取って、自動的にバッファへセットする。なお、プログラムカウンタの値とは割り込み処理終了時に復帰するリターンアドレスである。
【０１２０】
プログラムカウンタの退避の検知は、プロセッサ２３が割り込み処理を開始した直後にプログラムカウンタがスタックエリアのあるＲＡＭ２２上に書き込まれる際の、ＲＡＭ２２のチップセレクト、およびライトイネーブルを監視することによって行われる。フラッシュメモリ２１は、プログラムカウンタ退避を検知した時に、データバスから入力されたプログラムカウンタをバッファ上に保存する。退避されたプログラムカウンタが割り込み処理終了時に復帰するリターンアドレスであることから、このアドレスが次にアドレスバス上に現れるときを以って割り込み処理が終了したと判定してフラッシュメモリ２１のレジューム動作を実行することができる。
【０１２１】
現実上の制約として、プログラムカウンタの退避を検知し、フラッシュメモリ２１上に保持する事が可能か否かは、プロセッサ２３の割り込み処理に対するアーキテクチャに依存する。割り込み処理専用のシャドウ・レジスタなどを持たない、従来のプロセッサは、割り込み処理開始と同時に現在のプログラムカウンタをスタックエリア上にプッシュするタイプが多い。このようなプロセッサには、本実施形態３のデータ処理装置の構成が適用できる。
【０１２２】
図８は、本実施形態３のデータ処理装置２０による割り込み処理のシーケンス図を示す。
【０１２３】
（１）フラッシュメモリ２１の書き込み／消去制御回路は、［Ａ］からの割り込み入力を受けて、書き込み・消去動作のサスペンド処理を実行する。
【０１２４】
（２）フラッシュメモリの書き込み／消去制御回路は、サスペンド処理終了後、アレイ読み出しモードへの切り替えを行う。
【０１２５】
（３）フラッシュメモリ２１の書き込み／消去制御回路は、アレイ読み出しモードへの切り替え終了後、割り込み信号出力端子［Ｂ］よりプロセッサ２３へ割り込み出力を行う。
【０１２６】
（４）フラッシュメモリ２１では、スタックエリアのあるＲＡＭ２２のチップセレクト端子、及びライトイネーブル端子を監視し、プロセッサ２３がスタック上にプログラムカウンタを退避したことを検知する。検知した時点でのデータバス上のデータがプログラムカウンタとして、フラッシュメモリ２１はプログラムカウンタの値を自身のバッファにセットする。
【０１２７】
（５）サスペンド中のアレイ読み出しモードにおいて、フラッシュメモリ２１は入力されたアドレスバス上のアドレスとバッファ上のアドレスを逐一比較する。両者が一致した場合、フラッシュメモリ２１はレジュームを実行する。実施形態３のデータ処理装置２０のレジューム動作は、実施形態２のデータ処理装置のレジューム動作（図６参照）と同様である。
【０１２８】
図９は、本実施形態３のデータ処理装置２０による自動サスペンド動作のフローチャートを示す。
【０１２９】
フラッシュメモリ２１は、割り込み入力端子［Ａ］に割り込み信号が入力されるのを検知した時に書き込み・消去動作が実行中である場合、割り込み信号をホールドし（Ｓ３１）、次いで、書き込み・消去動作のサスペンド処理を実行する（Ｓ３２）。次に、フラッシュメモリ２１はアレイ読み出しモードに切り替わる（Ｓ３３）。割り込み入力が検知されてからアレイ読み出しモードに切り替わるまでの間、割り込み信号はフラッシュメモリ２１にホールドされ、プロセッサ２３には出力されない。アレイ読み出しモードへの切り替えが終了した後、フラッシュメモリ２１は、割り込み出力端子［Ｂ］を通じてプロセッサに割り込み信号をリリース（出力）する（Ｓ３４）。
【０１３０】
フラッシュメモリ２１は、割り込み信号が割り込み入力端子に入力されるのを検知した時にフラッシュメモリ２１がアレイ読み出しモードにある場合、割り込み信号をフラッシュメモリ２１内にホールドせずに、プロセッサ２３に割り込み信号をスルー出力する。割り込み信号がプロセッサ２３に出力された後、このフラッシュメモリ２１は、プロセッサによるプログラムカウンタの退避に備えてＲＡＭのデータバスを監視する（Ｓ３５）。このデータバスの監視は、フラッシュメモリ２１の非選択状態でも行われる。
【０１３１】
フラッシュメモリ２１が割り込み信号をプロセッサ２３に出力すると、プロセッサ２３は、プログラムカウンタ値をＲＡＭ上のスタックエリアに退避させる。
【０１３２】
フラッシュメモリ２１は、ＳＲＡＭに書き込みが有りの場合（ＹＥＳの場合）（Ｓ３６）、プログラムカウンタの退避があったとみなし、フラッシュメモリ２１内部のバッファに読取ったプログラムカウンタ値を保存する（Ｓ３７）。フラッシュメモリ２１は、ＳＲＡＭに書き込みがない場合（ＮＯの場合）（Ｓ３６）、プロセッサによるプログラムカウンタの退避に備えてＲＡＭのデータバスを監視を継続する（Ｓ３５）
プロセッサ２３は、このプログラムカウンタ値を用いてレジュームコマンド発行を行う。
【０１３３】
実施形態１〜３では、サスペンド処理、またはサスペンド処理およびレジューム処理をフラッシュメモリ側で対応していたが、ハードウェアで構成された制御装置で対応するのであれば、フラッシュメモリ外の制御装置が設けられてもいてもよい。
【０１３４】
【発明の効果】
以上のように、本発明のデータ処理装置は、サスペンド処理、またはサスペンド処理およびレジューム処理をハードウェアで構成された制御装置で処理する。この結果、本発明は、リアルタイムな応答性を要求する割り込み処理を簡便・確実・高速で処理可能な不揮発性半導体記憶装置およびこの不揮発性半導体記憶装置を用いたデータ処理装置を提供することを可能にする。
【図面の簡単な説明】
【図１】本発明の実施形態のデータ処理装置の構成要部の概略図である。
【図２】本発明の実施形態における割り込み処理のシーケンス図を示す。
【図３】フラッシュメモリにて実行される自動サスペンド動作に関するフローチャートを示す図である。
【図４】図２に示されるレジューム処理の手順を示すフローチャートである。
【図５】本発明の別の実施形態における割り込みのシーケンス図を示す。
【図６】本発明の別の実施形態のレジューム動作に関するフローチャートを示す。
【図７】本発明のさらに別の実施形態のデータ処理装置構成の要部概略図である。
【図８】本発明のさらに別の実施形態のデータ処理装置による割り込み処理のシーケンス図を示す。
【図９】本発明のさらに別の実施形態のデータ処理装置による自動サスペンド動作のフローチャートを示す。
【図１０】従来のデータ処理装置の構成要部を示す概略図である。
【図１１】従来のソフトウェア・デュアルワーク方式の動作をシーケンス図である。
【符号の説明】
１０  データ処理装置
１１  フラッシュメモリ
１１ａ  割り込み入力部
【図１】
2005018650.tif 000003
【図２】
2005018650.tif 000004
【図３】
2005018650.tif 000005
【図４】
2005018650.tif 000006
【図５】
2005018650.tif 000007
【図６】
2005018650.tif 000008
【図７】
2005018650.tif 000009
【図８】
2005018650.tif 000010
【図９】
2005018650.tif 000011
【図１０】
2005018650.tif 000012
【図１１】
2005018650.tif 000013