(57)【特許請求の範囲】
【請求項１】
初期化要求に対応して第１リセット信号を出力するリセット発生部と、
前記第１リセット信号が入力された後、所定の遅延時間が経過した後に、第２リセット信号を出力する遅延部と、
前記第１リセット信号を入力する入力端子および前記第２リセット信号を入力するリセット端子とを備えた制御部と、
前記第２リセット信号を入力するリセット端子を備えた記憶部とを備え、
前記制御部が、前記記憶部へのデータの書込要求を行う前に、前記第１リセット信号の入力の有無を確認し、前記第１リセット信号が入力されている場合には、前記記憶部へのデータ書込みを実行せず、
前記制御部の入力端子は、汎用入力端子であり、
前記遅延時間には、前記記憶部にデータを書き込むのにかかる最大書込時間と、前記記憶部のデータを消去するのにかかる最大消去時間のいずれよりも長い時間が予め設定され、
前記第２リセット信号は、前記記憶部において、データの書込処理が実際に行われていない時間に、前記遅延部から前記制御部および前記記憶部に出力されることを特徴とする情報処理装置。
【請求項２】
前記制御部が、前記第１リセット信号の入力の有無を確認したときに、前記第１リセット信号が入力されていない場合に、前記記憶部へのデータ書込みを実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
強制的な初期化要求を入力するためのリセットスイッチを有する入力部をさらに備え、
前記リセットスイッチを押し下げる入力操作がされたときに、
前記リセット発生部が、前記第１リセット信号を出力することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第１リセット信号が前記制御部の入力端子に入力された後、所定時間以上経過しても前記第１リセット信号が入力されている場合に、前記記憶部へのデータの書込みを実行しないことを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記記憶部は、複数のページからなるメモリセルを備えたフラッシュメモリであり、
前記メモリセルに対するデータの書き込みおよび読み出しは、前記ページ単位で行われることを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置に関し、特に、ＣＰＵおよびメモリ等の動作を初期化あるいは停止させることのできるリセット制御機能を有する情報処理装置に関する。
【背景技術】
【０００２】
従来から、情報処理装置は、一般的に、ＣＰＵ，ＲＯＭ，ＲＡＭ，フラッシュメモリ，Ｉ／Ｏコントローラなどを備えたマイクロコンピュータが用いられ、ＣＰＵが、ＲＯＭ等に記憶されているプログラムに基づいて、要求されたデータを、ＲＡＭやフラッシュメモリに対して読出／書込をして、各種ハードウェアを動作させることにより、所望の機能を実行している。
このような情報処理装置では、強制的に供給電源をＯＦＦにしたり、初期化させるためのリセットスイッチが設けられているものがある。
【０００３】
リセットスイッチが押し下げられると、ＣＰＵ，ＲＯＭ，ＲＡＭ，フラッシュメモリなどのハードウェアに、ほぼ同時に、リセット信号が与えられ、それぞれのハードウェアが初期化されたり、電源電圧の供給が停止される。
もし、ＣＰＵからの書込み命令がフラッシュメモリに与えられ、フラッシュメモリにデータを書き込んでいる途中に、リセットスイッチが押し下げられた場合、フラッシュメモリへの電源供給が一旦停止されるので、書込み中のデータが破損し、データの書込み誤りやその後のデータ読出エラーが発生する場合があった。
【０００４】
特許文献１では、書込み可能ＲＯＭや不揮発性ＲＡＭにデータを書き込んでいる時にリセット信号が発生しても、書込み誤りを防止するために、ＣＰＵに供給する第１リセット信号より遅延したリセット信号を書込み可能ＲＯＭおよび不揮発性ＲＡＭに供給するようにしたリセット信号発生回路が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１４２７９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来のリセット信号を制御する装置では、リセット信号の入力の有無にかかわらず、ＣＰＵからＲＡＭ等のメモリに対してデータの書込み命令が与えられ、また、リセットスイッチ押下時に、いわゆるチャタリングが発生して、リセット信号が入力されたことが誤検出されてしまう場合があった。
ＲＡＭやフラッシュメモリ等のメモリへのデータの書込処理時において、書込みデータの破損を確実に防止するためには、リセット信号の入力の有無を確認してから、ＣＰＵからメモリへ書込み命令を送信することが望まれる。
そこで、この発明は、以上のような事情を考慮してなされたものであり、リセットスイッチが押下げられたこと等により発生したリセット信号と、メモリに対する書込要求とのタイミングを考慮して、メモリに書込まれるデータが破損するのを防止することを課題とする。
【課題を解決するための手段】
【０００７】
この発明は、初期化要求に対応して第１リセット信号を出力するリセット発生部と、前記第１リセット信号が入力された後、所定の遅延時間が経過した後に、第２リセット信号を出力する遅延部と、前記第１リセット信号を入力する入力端子および前記第２リセット信号を入力するリセット端子とを備えた制御部と、前記第２リセット信号を入力するリセット端子を備えた記憶部とを備え、前記制御部が、前記記憶部へのデータの書込要求を行う前に、前記第１リセット信号の入力の有無を確認し、前記第１リセット信号が入力されている場合には、前記記憶部へのデータ書込みを実行しないことを特徴とする情報処理装置を提供するものである。
【０００８】
また、前記制御部が、前記第１リセット信号の入力の有無を確認したときに、前記第１リセット信号が入力されていない場合に、前記記憶部へのデータ書込みを実行することを特徴とする。
これによれば、初期化要求に対応して出力された第１リセット信号が入力されていない場合に、記憶部へのデータの書込みが実行され、上記のように第１リセット信号が入力されている場合には、データの書込みは実行されないので、書込みデータが破損することがないタイミングで、データの書込みが開始される。
【０００９】
また、前記制御部の入力端子は、汎用入力端子であり、前記遅延時間には、前記記憶部にデータを書き込むのにかかる最大書込時間と、前記記憶部のデータを消去するのにかかる最大消去時間のいずれよりも長い時間が予め設定され、前記第２リセット信号は、前記記憶部において、データの書込処理が実際に行われていない時間に、前記遅延部から前記制御部および前記記憶部に出力されることを特徴とする。
これによれば、データの書込処理が行われていない時間に、第２リセット信号が、制御部および記憶部に出力されるので、書込みデータが破損することを防止できる。
【００１０】
また、強制的な初期化要求を入力するためのリセットスイッチを有する入力部をさらに備え、前記リセットスイッチを押し下げる入力操作がされたときに、前記リセット発生部が、前記第１リセット信号を出力することを特徴とする。
また、前記第１リセット信号が前記制御部の入力端子に入力された後、所定時間以上経過しても前記第１リセット信号が入力されている場合に、前記記憶部へのデータの書込みを実行しないことを特徴とする。これによれば、後述する実施例２に記載したように、リセット信号の誤検出を防止できる。
また、前記記憶部は、複数のページからなるメモリセルを備えたフラッシュメモリであってもよく、前記メモリセルに対するデータの書き込みおよび読み出しは、前記ページ単位で行われることを特徴とする。この発明によれば、フラッシュメモリのメモリセルに書き込まれるべきデータの破損を防止できる。
【発明の効果】
【００１１】
この発明によれば、制御部が第１リセット信号の入力の有無を確認し、第１リセット信号が入力されている場合には、記憶部へのデータの書込みを実行しないので、初期化要求が行われた後には記憶部に対するデータの書込処理が行われることはなく、リセット要求発生時に書込処理によるデータの破損を未然に防止できる。
【図面の簡単な説明】
【００１２】
【図１】この発明の情報処理装置のリセット処理に関係する部分の概略構成ブロック図である。
【図２】この発明のフラッシュメモリの一実施例の構成を示すブロック図である。
【図３】この発明のリセット処理の一実施例を説明するタイムチャートである。
【図４】この発明の消去処理時におけるリセット処理の一実施例のタイムチャートである。
【図５】この発明のリセット処理の実施例１のフローチャートである。
【図６】この発明のリセット処理の実施例２のフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。なお、これによって、この発明が限定されるものではない。
以下の実施例では、上記した第１リセット信号は、リセット開始信号に相当し、第２リセット信号は、リセット要求信号に相当する。
＜情報処理装置の構成＞
図１に、この発明の情報処理装置のリセット処理に関係する部分の構成ブロック図を示す。
図１において、リセット発生部１は、初期化要求に対応してリセット開始信号を出力する部分であり、ユーザが初期化のための入力操作（リセット要求入力）をした場合に、リセット開始信号Ｒｓｔを出力する部分である。
リセット要求入力としては、たとえば、リセットスイッチ１２の押下げあるいは電源スイッチ１３の所定秒数以上の長押しなどがある。リセットスイッチ１２および電源スイッチ１３は、ユーザが強制的な初期化要求を入力するための入力部に相当する。
リセット発生部１は、リセットスイッチ１２などから、リセット要求入力があることを常に監視する。
【００１４】
また、リセット発生部１は、リセット開始信号Ｒｓｔを出力する端子ＲＯ１１を備える。
リセット発生部１が、ユーザによってリセットスイッチ１２を押し下げる入力操作がされたことを確認すると、出力端子ＲＯ１１から、リセット開始信号Ｒｓｔを出力する。
以下の実施例では、リセット開始信号Ｒｓｔが出力された場合、出力端子ＲＯがＨ状態（たとえば、＋５Ｖ）となり、出力されていない場合、出力端子ＲＯはＬ状態（たとえば、０Ｖ）となるものとする。
このリセット開始信号Ｒｓｔは、遅延部２と、制御部（ＣＰＵ）３に与えられる。
【００１５】
遅延部２は、入力開始信号Ｒｓｔが入力された後、所定の時間（遅延時間Ｔｒｄ）が経過した後に、リセットを要求する信号（リセット要求信号Ｒｒｑと呼ぶ）を出力する部分である。
遅延部２は少なくとも、リセット開始信号Ｒｓｔを入力する入力端子と、リセット要求信号Ｒｒｑを出力する端子ＲＤ２１を備え、抵抗、コンデンサ等からなる既存の遅延回路によって構成される。
遅延時間Ｔｒｄの長さは、後述するように、たとえば、記憶部４がフラッシュメモリの場合、フラッシュメモリへの書込みデータの破損防止を行う観点から、ＣＰＵから与えられたフラッシュメモリに書込むべきデータをフラッシュメモリのメモリセルに書き込むのにかかる最大書込時間と、メモリセルのデータを消去するのにかかる最大消去時間のいずれよりも長い時間が、予め設定される。
【００１６】
リセット要求信号Ｒｒｑも、リセット開始信号Ｒｓｔと同様に、Ｈ状態とＬ状態とからなる２値信号であり、リセットを行いたい電子部品のリセット端子に与えられる。
たとえば、図１に示すように、リセット要求信号Ｒｒｑは、制御部（ＣＰＵ）３や、記憶部（フラッシュメモリ）４に与えられるが、特に、記憶部４において、データの書込み処理が実際に行われていない時間に、遅延部２から、制御部３および記憶部４に出力される。
リセット端子は、主として、リセット信号が入力されることによって、その端子を有する電子部品の機能を初期化するための端子であり、リセット端子にリセット信号が入力されると、ただちに、電子部品の初期化が行われる。
【００１７】
制御部３は、情報処理装置の機能を実行する部分であり、たとえば、ＣＰＵ（中央演算処理装置）に相当する。
あるいは、ＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏコントローラ，タイマー等などを内蔵して１チップ化されたマイクロコンピュータも、制御部３に相当する。
以下、制御部３として、ＣＰＵを用いる場合について説明する。
ＣＰＵ３は、多数の汎用入出力端子（Ｉ／Ｏ端子）を有し、リセット端子ＣＲ３２を有している。
汎用入力端子ＰＩＮとして、複数個の入力端子を有しているが、この発明では、そのうちの１つの入力端子ＲＩ３１に、上記したリセット開始信号Ｒｓｔを入力する。
すなわち、リセット発生部１の出力端子ＲＯ１１と、ＣＰＵ３の入力端子ＲＩ３１とを、電気的に接続する。
リセット端子ＣＲ３２は、上記したリセット要求信号Ｒｒｑを入力する端子であり、たとえばＨ状態のリセット要求信号が所定時間以上入力された場合に、ＣＰＵを初期化するための端子である。
入力端子ＲＩ３１にリセット開始信号Ｒｓｔが入力されても、ＣＰＵは、初期化されないが、リセット端子ＣＲ３２にリセット要求信号Ｒｒｑが入力された場合、ＣＰＵは、強制的に初期化される。
【００１８】
また、この発明では、ＣＰＵ３は、入力端子ＲＩ３１にリセット開始信号Ｒｓｔが入力されたことを確認した場合に、記憶部４に対するデータ書込要求が発生したとしても、記憶部４に、書込要求コマンド（以下、Ｗコマンドと呼ぶ）を発行しない。
言いかえれば、記憶部４に対するデータの書込要求が発生した場合において、記憶部４へ書込要求コマンドの送信を行う前に、入力端子ＲＩ３１にリセット開始信号Ｒｓｔが入力されているか否かを確認し、リセット開始信号Ｒｓｔが入力されている場合には、記憶部４へのデータ書込みを実行しない。すなわち、制御部３は、記憶部４に対して、書込要求コマンド（Ｗコマンド）を発行しない。
このように、リセット開始信号Ｒｓｔが入力されてから、一定時間経過後にリセット端子ＣＲ３２にリセット要求信号Ｒｒｑが入力される可能性がある場合は、書込要求コマンドを記憶部４に対して発行しないことによって、記憶部４へ書込むべきデータが破損することを未然に防止する。
一方、上記リセット開始信号Ｒｓｔの入力の有無を確認したときに、リセット開始信号Ｒｓｔが入力されていない場合に、記憶部４へのデータの書込みを実行するようにする。
【００１９】
データ端子ＤＴ３３は、データ、アドレスおよびコマンドを入出力する端子であり、主として、記憶部４と接続されたデータライン（Ｉ／Ｏライン）５１に接続される。
Ｒ／Ｂ端子３４は、Ｒ／Ｂライン５２に接続された他の電子部品からＣＰＵに対して、ReadyあるいはBusyであることの通知を受信するための入力端子である。
たとえば、記憶部４のフラッシュメモリが、そのメモリセルに対して読み出しあるいは書き込みを行っている場合、Ｒ／Ｂライン５２を介して、そのフラッシュメモリがBusy状態であることがＣＰＵ３に通知される。
【００２０】
制御端子ＣＮＴ３５は、種々の制御信号を、制御ライン５３を介して他の電子部品に与える出力端子である。
制御端子ＣＮＴ３５は、複数の端子から構成され、たとえば、ＡＬＥ（アドレスラッチイネーブル）、ＣＬＥ（コマンドラッチイネーブル）、ＣＥ（チップイネーブル）、ＷＥ（ライトイネーブル）、ＲＥ（リードイネーブル）などの制御信号を、それぞれ制御ライン５３に送信する端子群からなる。
ＡＬＥ，ＣＬＥは、データライン５１を介して入出力される情報がデータ、コマンドあるいはアドレスであることを区別するための制御信号であり、ＣＥは、データバスをＣＰＵが使用中であることを示す制御信号であり、ＷＥは、データライン５１を介して、記憶部４にデータを書込み中であることを示す制御信号であり、ＲＥは、記憶部４からデータを読出し中であることを示す制御信号である。
【００２１】
たとえば、ＣＰＵ３からフラッシュメモリ４に対し、データを書き込む場合は、ＷＥ信号を制御ライン５３に出力した状態で、書込むデータ（Ｄ１，Ｄ２，…Ｄｎ）をデータライン５１に出力した後、書込要求コマンド（Ｗコマンド）をデータライン５１に送信する。
その後、フラッシュメモリのメモリセルにデータの書込みを実行中は、Ｒ／Ｂライン５２に、フラッシュメモリ４からＣＰＵ３に対して、Busy信号が送信される。
【００２２】
記憶部４は、情報を記憶する部分であり、ＲＯＭ，ＲＡＭ，フラッシュメモリなどの半導体記憶素子に相当する。
以下の実施例では、記憶部４として、フラッシュメモリを用いる場合について説明する。
フラッシュメモリ４も、主として、リセット端子ＦＲ４１、データ端子ＤＴ４３、Ｒ／Ｂ端子４４、制御端子ＣＮＴ４５を備える。
データ端子ＤＴ４３は、データライン５１を介して、ＣＰＵ３のデータ端子ＤＴ３３に接続され、Ｒ／Ｂ端子４４は、Ｒ／Ｂライン５２を介して、ＣＰＵ３のＲ／Ｂ端子３４に接続され、複数個の制御端子ＣＮＴ４５は、制御ライン５３を介して、それぞれ対応するＣＰＵ３の制御端子３５に接続される。
リセット端子ＦＲ４１は、上記したリセット要求信号Ｒｒｑを入力する端子であり、たとえば、Ｈ状態のリセット要求信号が所定時間以上入力された場合に、ただちにフラッシュメモリ自体を初期化するための端子である。
【００２３】
この発明では、遅延部２から出力されたリセット要求信号Ｒｒｑが、ＣＰＵ３のリセット端子ＣＲ３２と、フラッシュメモリ４のリセット端子ＦＲ４１に、ほぼ同時に入力される。
上記したように、リセット発生部１からリセット開始信号Ｒｓｔが出力されても、フラッシュメモリのメモリセルへの書込処理および消去処理にかかる時間よりも長い遅延時間が経過した後に、リセット要求信号Ｒｒｑが、フラッシュメモリ４のリセット端子ＦＲ４１に入力される。
すなわち、この発明では、フラッシュメモリのメモリセルへの書込処理中に、リセット要求信号Ｒｒｑがリセット端子ＦＲ４１へ入力されないように遅延時間が設定され、メモリセルへの書込処理が実際に行われていないときに、遅延部２から出力されたリセット要求信号Ｒｒｑがリセット端子ＦＲに入力されるようにする。
【００２４】
＜フラッシュメモリの構成＞
図２に、フラッシュメモリ４の一実施例の構成ブロック図を示す。
図２（ａ）において、ＮＡＮＤ型のフラッシュメモリの概略構成を示しており、フラッシュメモリ４は、主として、コントローラ４６と、メモリセル４７と、ページバッファ４８とから構成される。
ＮＡＮＤ型フラッシュメモリ４は、一般的に、アドレスバスを有さず、書込みコマンドや読出しコマンド等が、データライン５１を介してデータ端子４３から入出力され、書込み開始、ページアドレス指定、メモリセルの書き換え、ページデータの読出し等の処理が行われる。
【００２５】
コマンド、指定アドレスおよび書込みデータは、いずれも、データライン５１を介して、コントローラ４６に入力され、コマンド等の区別は、制御端子４５に入力された制御信号に基づいて行われる。
たとえば、ＡＬＥがそれに対応する制御端子４５に入力されている状態において、データ端子４３に入力されたデータはアドレスであり、ＣＬＥが対応する制御端子４５に入力されている状態において、データ端子４３に入力されたデータは、コマンドとして処理される。
【００２６】
コントローラ４６は、外部から入出力される制御信号を利用して、メモリセル４７に対するデータの読み出しと書き込みを制御する部分である。
データの読み出しおよび書き込みは、ページバッファ４８を介して行う。
ページバッファ４８は、メモリセル４７に格納すべきデータを一時記憶する部分であり、揮発性メモリである。
メモリセル４７は、複数のページからなる不揮発性メモリであり、ページという単位で、データの書き込みおよび読み出しが行われるメモリである。また、複数のページからなるブロックという単位でデータの消去処理が行われる。
また、フラッシュメモリでは、データをメモリセル４７に書き込む場合、所望のページにそのデータを直接上書きすることはできず、一旦所定のブロック領域のデータを読出し、一時的に保持しておき、そのブロック領域を消去した後に、書き込むべきデータを含む保持データを、消去したブロック領域に書き戻す（書き換える）ことが行われる。
【００２７】
コントローラ４６がデータライン５１から書込みデータ（Ｄ１〜Ｄｎ）を受信した場合、その書込みデータは、まず、ページバッファ４８に転送される。その後、データライン５１を介して書込要求コマンド（Ｗコマンド）が入力された場合に、ページバッファ４８に一時記憶されていたデータが、メモリセル４７の中の指定されたページに、書き込まれる。
メモリセル４７へデータを書き込んでいる間は、Ｒ／Ｂ端子４４から、Ｒ／Ｂライン５２を介して、ＣＰＵ３に対して、Busy信号が出力される。
Ｒ／Ｂ端子４４から出力される信号として、Ready信号と、Busy信号とがある。Ready信号は、現在準備状態であり、外部からの制御信号を受け入れることが可能な状態であることを示し、Busy信号は、現在書込み等の内部処理を実行中であって、外部からの制御信号を受け入れることができない状態であることを示している。
以下の説明では、Ｒ／Ｂ端子４４がＬ状態の場合、Ready信号の出力状態とし、Ｈ状態の場合、Busy信号の出力状態であるとする。
【００２８】
図２（ｂ）に、データ端子ＤＴ４３に入力される情報と、Ｒ／Ｂ端子４４から出力される信号の一実施例のタイムチャートを示す。
図２（ｂ）において、まず、データライン５１を介して、書込みデータ（Ｄ１〜Ｄｎ）が入力されたとすると、その入力された書込みデータ（Ｄ１〜Ｄｎ）が、ページバッファ４８に転送される。
このページバッファ４８への転送期間においては、書込みデータは、ページバッファ４８に記憶されているだけなので、もしリセットがかかり、ページバッファ４８に記憶されているデータが消去されたとしても、メモリセル４７に記憶されているデータに影響を及ぼすことはなく、書込みデータそのものはまだ保存されてはいないが、破損が生じることもない。
【００２９】
その後、ページバッファ４８へのデータ（Ｄ１〜Ｄｎ）の転送が終了した後、データ端子４３に、書込要求コマンド（Ｗコマンド）が入力される。
コントローラ４６が、Ｗコマンドを確認した場合、Ｒ／Ｂ端子４４から、Busy信号が出力され、データライン５１はBusy状態となってページバッファ４８に記憶されていたデータ（Ｄ１〜Ｄｎ）が、メモリセル４７の所定のページの位置に、書き込まれる。
メモリセル４７へデータを書き込んでいる間（メモリセル転送期間）は、Ｒ／Ｂ端子４４からは、Ｈ状態のBusy信号が出力されている。
メモリセル４７への書込みが終了した後、すなわちメモリセル転送期間が経過した後、Ｒ／Ｂ端子４４からReady信号が出力される。
この発明では、上記のメモリセル転送期間中においては、リセット要求信号Ｒｒｑが、リセット端子ＦＲ４１に入力されることがないようにする。
さらに、ＣＰＵ３において、データの書込要求が発生したとしても、リセット開始信号Ｒｓｔがすでに入力されていた場合には、データライン５１を介して、フラッシュメモリ４に対して書込要求コマンドを転送しないようにする。
【００３０】
＜リセット処理の説明＞
図３に、リセット発生部１からリセット信号が出力された場合に、ＣＰＵ３とフラッシュメモリ４に対して行われるリセット処理の一実施例のタイムチャートを示す。
図３（ａ）に、メモリセル転送期間終了後に、リセット要求信号Ｒｒｑが、ＣＰＵ３とフラッシュメモリ４に入力される場合の説明図を示す。
図３（ａ）において、当初、リセット開始信号Ｒｓｔと、リセット要求信号Ｒｒｑのどちらも出力されていない状態で、データライン５１を介して、書込みデータ（Ｄ１〜Ｄｎ）が、ＣＰＵ３からフラッシュメモリ４に送信され、ページバッファ転送期間において、ページバッファ４８に転送されたとする。
その後、ＣＰＵ３は、入力端子ＲＩ３１に、リセット開始信号Ｒｓｔが入力されていないことを確認した場合、書込要求コマンド（Ｗコマンド）をデータライン５１に出力する。
【００３１】
フラッシュメモリ４は、Ｗコマンドを受理したことを確認すると、ページバッファ４８に一時記憶された書込みデータ（Ｄ１〜Ｄｎ）を、メモリセル４７に転送する処理を開始する。
このとき、ページバッファ４８からメモリセル４７へデータを転送するのに、メモリセル転送期間Ｔｂｓだけかかるものとする。このメモリセル転送期間Ｔｂｓは、メモリセルのページにデータを書込む時間の最大値である最大書込時間に相当する。
メモリセル４７への転送を開始した後、その転送中に、リセットスイッチ１２が押下げられ、リセット発生部１の出力端子ＲＯ１１から、Ｈ状態のリセット開始信号Ｒｓｔが出力されたとする。
リセット開始信号Ｒｓｔは、ＣＰＵの入力端子ＲＩ３１と、遅延部２に入力される。
遅延部２は、リセット開始信号Ｒｓｔが入力された場合、所定の遅延時間Ｔｒｄだけ遅延させて、出力端子ＲＤ２１から、Ｈ状態のリセット要求信号Ｒｒｑを出力する。
この遅延時間Ｔｒｄは、メモリセルへのデータの書き込みにかかる時間（最大書込時間Ｔｂｓ）よりも十分に長い時間が予め設定されている。
【００３２】
したがって、Ｔｒｄ＞Ｔｂｓなので、メモリセル転送期間Ｔｂｓが経過し、メモリセルへの全データの書込みが終了した後に、リセット要求信号Ｒｒｑが、ＣＰＵ３のリセット端子ＣＲ３２と、フラッシュメモリ４のリセット端子ＦＲ４１に入力される。このリセット要求信号Ｒｒｑが、リセット端子（ＣＲ，ＦＲ）に入力されることによって、実際にＣＰＵとフラッシュメモリのリセット処理が実行される。
リセット要求信号Ｒｒｑが、メモリセルへのデータ書き込み終了後に、ＣＰＵとフラッシュメモリに与えられるので、実際のリセット処理の実行中に、メモリセルへの書込みは行われておらず、書込みデータがメモリセルに誤って書き込まれることはなく、データの破損が防止される。
【００３３】
図３（ｂ）は、ＣＰＵ３が、フラッシュメモリ４に対して書込要求コマンドを発行する前に、リセット開始信号Ｒｓｔが入力されたことを確認した場合の説明図を示す。
この場合、書込みデータのメモリへの書込要求があったとしても、リセット開始信号Ｒｓｔの入力があったので、フラッシュメモリ４に対して、書込要求コマンドを送信しない。
図３（ｂ）において、リセット信号（Ｒｓｔ，Ｒｒｑ）が出力されていない状態で、書込みデータ（Ｄ１〜Ｄｎ）が、フラッシュメモリ４に送信され、ページバッファ転送期間において、ページバッファ４８に転送されたとする。
その後、ＣＰＵ３が、書込要求コマンド（Ｗコマンド）をフラッシュメモリ４に発行する前に、リセット開始信号Ｒｓｔが、ＣＰＵ３の入力端子ＲＩ３１と遅延部２に、入力されたとする。
【００３４】
ＣＰＵ３は、このリセット開始信号Ｒｓｔが入力されたことを確認すると、出力するはずであったＷコマンドを発行しないようにする。
その後、リセット開始信号Ｒｓｔが遅延部２に入力されたことによって、遅延時間Ｔｒｄ経過後、遅延部２の出力端子ＲＤ２１から、リセット要求信号Ｒｒｑが、ＣＰＵ３とフラッシュメモリ４に対して出力される。
リセット要求信号Ｒｒｑが、ＣＰＵ３とフラッシュメモリ４のリセット端子（ＣＲ，ＦＲ）に入力されると、それぞれ初期化が行われる。
フラッシュメモリ４において、初期化が行われると、ページバッファ４８に記憶されていたデータ（Ｄ１〜Ｄｎ）はなくなってしまうが、メモリセルへの書込みはまだ行われていなかったので、メモリセル自体における書込みデータの破損は発生しない。
【００３５】
図４に、フラッシュメモリに対して消去コマンド（Ｅコマンド）を発行後に、ＣＰＵ３がリセット開始信号Ｒｓｔの入力を確認した場合の説明図を示す。
上記の図３に示すように、メモリセル４７自体へのデータの書込み中に、リセット要求信号Ｒｒｑが入力されないようにしてデータの破損を防止したが、メモリセル４７のデータの消去を実行しているときにも、リセット要求信号Ｒｒｑが入力されないようにする必要がある。
フラッシュメモリ４が、消去コマンドをＣＰＵ３から受信した後、メモリセル４７の消去処理が実行され、その消去処理が終了するまでの間に、リセット要求信号Ｒｒｑが入力されたとすると、消去処理が途中で中断され、メモリセル４７に記憶されていたデータが破損する場合があるからである。
【００３６】
図４に示すように、遅延時間Ｔｒｄを、メモリセルの消去処理にかかる時間（最大消去時間Ｔｅ）よりも十分長い時間に設定しておき、リセット要求信号Ｒｒｑが入力されるタイミングを遅らせる（Ｔｅ＜Ｔｒｄ）。
たとえば、図４に示すように、ＣＰＵ３からフラッシュメモリ４に対して、消去コマンド（Ｅコマンド）が発行された後、メモリセル４７の消去処理中に、リセット開始信号Ｒｓｔが、リセット発生部１から出力されたとする。
リセット開始信号Ｒｓｔが遅延部２に入力されると、遅延時間Ｔｒｄ（＞Ｔｅ）だけ遅れて、リセット要求信号Ｒｒｑが出力され、ＣＰＵ３とフラッシュメモリ４に入力される。
Ｔｒｄ＞Ｔｅなので、リセット要求信号Ｒｒｑは、最大消去時間Ｔｅがすでに経過し、メモリセルの消去処理が終了した後に、ＣＰＵ３とフラッシュメモリ４に入力されることになる。
【００３７】
その後、ＣＰＵ３とフラッシュメモリ４は、リセットによって初期化されるが、メモリセル４７に対する処理は行われていない状態で初期化処理が行われるので、メモリセル４７のデータの破損は生じない。
なお、遅延時間Ｔｒｄは、図３に示したメモリセル転送期間（最大書込時間）Ｔｂｓよりも長く（Ｔｒｄ＞Ｔｂｓ）、かつ図４に示した最大消去期間Ｔｅよりも長く（Ｔｒｄ＞Ｔｅ）設定する必要がある。
上記したように、フラッシュメモリ４では、データの書き込み（書き換え）処理はページ単位で行われるのに対し、消去処理は、複数ページを含むブロック単位で行われる。
したがって、消去処理にかかる時間の方が、書込処理にかかる時間よりも長く、一般的に、Ｔｅ＞Ｔｂｓであるので、遅延時間Ｔｒｄは、最大消去期間Ｔｅよりも長くすればよい。
【００３８】
マージンとなる時間Ｔｍを考慮して、Ｔｒｄ＝Ｔｅ＋Ｔｍとした場合、時間Ｔｍとしては、少なくとも、ＣＰＵ３において、リセット開始信号Ｒｓｔが入力された後、そのリセット開始信号Ｒｓｔが入力されたことを確認し、消去コマンド（Ｅコマンド）を停止するか否かを判断するまでにかかる時間を考慮した時間を設定することが好ましい。
具体的には、マージンとなる時間Ｔｍとしては、Ｔｅの2倍以上と十分な時間を確保することが好ましい。
【００３９】
＜リセット処理の実施例１＞
図５に、この発明のリセット処理の実施例１のフローチャートを示す。
ここでは、ＣＰＵ３が、実行中のプログラムに基づいてデータの書き込み要求が生じた後、リセット開始信号Ｒｓｔの入力があったことを確認した場合には、フラッシュメモリ４に対して、書込要求コマンド（Ｗコマンド）を転送しないようにする。
図５のフローチャートでは、データの書き込み要求とリセット処理とが関係する部分の処理についてのみ示す。
図５のステップＳ１において、ＣＰＵ３が、プログラムに基づいて、フラッシュメモリへのデータの書き込み要求があることを確認する。
データの書き込み要求がなければ、ステップＳ１をループするが、データの書き込み要求があった場合、ステップＳ２へ進む。
ステップＳ２において、ＣＰＵ３は、入力端子ＲＩ３１を監視し、リセット開始信号Ｒｓｔの入力があるか否かを確認する。
【００４０】
ステップＳ３において、リセット開始信号Ｒｓｔの入力があった場合は、フラッシュメモリ４に対して、書込要求コマンド（Ｗコマンド）を転送することなく、処理を終了する。
一方、リセット開始信号Ｒｓｔの入力がなかった場合は、ステップＳ４へ進み、フラッシュメモリ４に対して、書込要求コマンド（Ｗコマンド）を転送する。これにより、書き込み要求のあったデータがフラッシュメモリのメモリセル４７へ書込まれる。その後、処理を終了する。
このように、リセット要求信号Ｒｒｑが、ＣＰＵ３やフラッシュメモリ４のリセット端子（ＣＲ，ＦＲ）に直接入力される前に、ＣＰＵ３がリセット開始信号Ｒｓｔを確認することによって、データのメモリセル４７への書き込みが実際に行われる前にリセット開始信号Ｒｓｔの入力があれば、データの書込要求コマンドをフラッシュメモリ４に対して送らないようにする。
したがって、ユーザがリセットスイッチを押し下げる入力操作をすることなどによって、リセットが実行される場合に、フラッシュメモリのメモリセル４７に対して不測のデータが書き込まれることを未然に防止し、データの破損を防止できる。
【００４１】
＜リセット処理の実施例２＞
図６に、この発明のリセット処理の実施例２のフローチャートを示す。
ここでは、実施例１とは異なり、リセット開始信号Ｒｓｔの入力の確認を所定時間が経過するごとに行い、所定時間が経過した後の再確認において、リセット開始信号の入力がないことが検出された場合、フラッシュメモリ４に対して、書込要求コマンドを転送する。
一方、リセット開始信号Ｒｓｔが、ＣＰＵ３の入力端子ＲＩ３１に入力された後、所定時間以上経過してもリセット開始信号Ｒｓｔが入力されている場合には、フラッシュメモリへのデータの書込みを実行しないようにする。
これにより、リセットスイッチ１２などに生じるいわゆるチャタリングによるリセット信号の誤入力を防止することができる。
【００４２】
図６のフローチャートにおいて、図５と同一の処理をするステップには、同一の番号を付与している。
図６において、図５のフローと同様に、ステップＳ１およびＳ２において、データの書き込み要求があった場合、リセット開始信号Ｒｓｔの入力の有無を確認する。
ステップＳ３において、リセット開始信号Ｒｓｔの入力がなかった場合は、ステップＳ４へ進み、フラッシュメモリ４へ、書込要求コマンド（Ｗコマンド）を転送した後、処理を終了する。
一方、リセット開始信号Ｒｓｔの入力があった場合、ステップＳ１１へ進み、所定の設定時間をカウントするタイマーを起動させる。
ステップＳ１２において、その設定時間が経過した後、ステップＳ２へ戻り、再度、リセット開始信号Ｒｓｔの入力の有無を確認する。
【００４３】
その後、もし、リセット開始信号Ｒｓｔの入力がなかった場合には、ステップＳ４へ進んで、書込要求コマンド（Ｗコマンド）を送信する。
しかし、リセット開始信号Ｒｓｔの入力が再度確認された場合、そのリセットが実際に入力されたものであれば、その後遅延時間が経過した後に、遅延部２から出力されたリセット要求信号Ｒｒｑが、ＣＰＵ３とフラッシュメモリ４に入力されることになるので、ＣＰＵ３は初期化され、このフローチャートも終了することになる。
【００４４】
このフローチャートにおいて、タイマーに設定する設定時間は、上記した遅延時間Ｔｒｄよりも長くすることが好ましい。
一度リセット開始信号Ｒｓｔの入力を確認した後、遅延時間Ｔｒｄが経過することによってリセット要求信号Ｒｒｑが入力されると、タイマーの設定時間が経過するまでに、ＣＰＵ自体にリセットがかかるようにできるからである。
遅延時間Ｔｒｄが経過してもリセットがかからなければ、ステップＳ１２においてタイムアウトが発生して、ステップＳ２へ戻って、リセット開始信号Ｒｓｔの再確認を行うことになる。
これにより、チャタリング等によるリセット信号の誤検出が防止できる。
【符号の説明】
【００４５】
１  リセット発生部
２  遅延部
３  制御部（ＣＰＵ）
４  記憶部（フラッシュメモリ）
１１  出力端子ＲＯ
１２  リセットスイッチ
１３  電源スイッチ
２１  出力端子ＲＤ
３１  入力端子ＲＩ
３２  リセット端子ＣＲ
３３  データ端子ＤＴ
３４  Ｒ／Ｂ端子
３５  制御端子ＣＮＴ
４１  リセット端子ＦＲ
４３  データ端子ＤＴ
４４  Ｒ／Ｂ端子
４５  制御端子ＣＮＴ
５１  データライン（Ｉ／Ｏライン）
５２  Ｒ／Ｂライン
５３  制御ライン
Ｒｓｔ  リセット開始信号
Ｒｒｑ  リセット要求信号
【図１】
0006340291.tif 000002
【図２】
0006340291.tif 000003
【図３】
0006340291.tif 000004
【図４】
0006340291.tif 000005
【図５】
0006340291.tif 000006
【図６】
0006340291.tif 000007