(57)【要約】【課題】ソフトウェア側で意識せずとも、フラッシュメモリの書き換え処理を行っている間に、他の処理を行うことができるプログラム実行装置を提供する。【解決手段】プログラム実行装置は、ＣＰＵとプログラムを格納するフラッシュメモリとを有しており、ＣＰＵからフラッシュメモリを書き換えるコマンドをフラッシュメモリに伝達していることを検知する書換制御回路と、コマンドを伝達している間は、外部から受信した割込信号をＣＰＵに伝達することを抑止する割込制御回路を備える。【選択図】図１
2008158636.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとプログラムを格納するフラッシュメモリとを有し、プログラムを実行するプログラム実行装置であって、
前記ＣＰＵに割込信号を伝達する割込制御回路と、
前記ＣＰＵからフラッシュメモリに送られる、フラッシュメモリを書き換えるコマンドを構成する連続して伝達すべきデータを検知し、コマンドの開始を示す開始信号を割込制御回路に伝達する書換制御回路とを備え、
前記割込制御回路は、前記開始信号を受領した場合は、外部から受信した信号に基づいた割込信号を前記ＣＰＵに伝達することを抑止する
ことを特徴とするプログラム実行装置。
【請求項２】
前記書換制御回路は、更に、前記コマンドの受信を終えたときに終了した旨を示す終了信号を前記割込制御回路に伝達し、
前記割込制御回路は、前記終了信号を受領したときに、前記ＣＰＵに割込信号を伝達することの抑止を解除する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項３】
前記プログラム実行装置は、更に、前記書換制御回路が開始信号を伝達した後に生じた割込み要因を特定する割込情報を記憶する割込情報記憶手段を備え、
前記割込制御回路は、前記終了信号を受領した後に、前記割込情報記憶手段に記憶されている割込情報に基づいてＣＰＵに対して割込信号を伝達する
ことを特徴とする請求項２記載のプログラム実行装置。
【請求項４】
前記割込情報記憶手段に記憶する割込情報は、前記フラッシュメモリへのアクセス処理を行わない割込み処理を行う割り込みの割込情報である
ことを特徴とする請求項３記載のプログラム実行装置。
【請求項５】
前記書換制御回路は、更に、前記開始信号を受領し、当該信号を受信した後は、前記フラッシュメモリが前記コマンドの処理を終了することを通知する完了信号を受領まで、前記フラッシュメモリへのアクセス処理を行わない
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項６】
前記プログラム実行装置は、更に、自装置外部から所定操作を受け付けた場合に、前記ＣＰＵにリセット信号を伝達するリセット手段を備え、
前記書換制御回路は、更に、前記コマンドの送信を開始することを通知するモード信号を受領し、当該信号を前記リセット手段に伝達し、
前記リセット手段は、前記モード信号を受信した後は、自装置外部から所定操作を受け付けた場合であっても、前記ＣＰＵにリセット信号を伝達しない
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項７】
前記プログラム実行装置は、更に、コマンドの送信を開始することを通知するモード信号を受領した後に、自装置外部から受け付けた所定操作を特定する操作情報を記憶する操作情報記憶手段を備え、
前記書換制御回路は、更に、前記コマンドの送信を終了することを通知する解除信号を受領し、当該信号を前記リセット手段に伝達し、
前記リセット手段は、前記解除信号を受領した後に、前記操作情報記憶手段に記憶されている操作情報に基づいて、前記ＣＰＵにリセット信号を伝達する
ことを特徴とする請求項６記載のプログラム実行装置。
【請求項８】
前記リセット手段は、前記解除信号を受領した後は、前記所定操作とは異なる所定操作を受け付けた場合に、前記ＣＰＵにリセット信号を伝達する
ことを特徴とする請求項７記載のプログラム実行装置。
【請求項９】
前記プログラム実行装置は、更に、ＣＰＵにフラッシュメモリに対してデータを伝達する処理を行わせるためのプログラムを記憶するプログラム記憶手段と、
前記書換制御回路が、前記コマンドの送信を開始することを通知するモード信号を受領し、前記コマンドの送信を終了することを通知する解除信号であって当該モード信号と対応する信号を受領するまで、前記プログラムが記憶されている前記プログラム記憶手段の領域のうち所定領域以外にのみ、書込みを行う書込手段とを備える
ことを特徴とする請求項１記載のプログラム実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを記憶媒体として搭載したプログラム実行装置に関し、特にフラッシュメモリの書換え時における利便性を向上させる技術に関する。
【背景技術】
【０００２】
電気的に書換え可能な不揮発性メモリであるフラッシュメモリは、小型で、書換えをオンボード状態で行うことができ、且つ、消費電力も少ないという特徴がある。近年、これらの特徴に加え、高密度化、大容量化が図られ、ハードディスク等と同等の記録媒体としてマイクロコンピュータシステムに搭載され、様々な機器に使用されるようになってきている。
【０００３】
通常、マイクロコンピュータシステムでは、記録媒体を書換える場合が想定される。例えば、動作履歴を保存する場合や動作プログラムを更新する場合である。
このような記録媒体の更新処理中に何らかの障害が発生した場合には、正常に動作しなくなってしまう可能性が高いことから、例えば、フラッシュメモリへ供給される電源を監視し、データ書き込み中に電源電圧が所定の電圧より低下した場合には、緊急処理を行うことにより書き込み処理を正常終了させ、その後電源電圧が復帰した場合に誤動作しないようにする技術が開示されている（特許文献１参照）。
【０００４】
フラッシュメモリが様々な機器に搭載され、記録媒体として使用されている場合には、上述のような電源電圧が低下する以外にも、ユーザが何らかの操作を行ったりすること等があることから、その書換え処理の間は、他の処理を行わないこととすることで書換え処理の正常終了を担保している。
【特許文献１】特開２００２−４９５３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、書換え処理を行っている間他の処理を一切行わないとすれば、フラッシュメモリ上のプログラムの書換えなどで、フラッシュメモリの書換え時間が長時間に及ぶ場合には、ユーザは、その間その機器をまったく使用することができないこととなってしまう。
また、書換え処理と他の処理とを並行して行おうとすると、書換え処理を行うソフトウェア側で、書換え処理中のフラッシュメモリの状態を把握しながら、書換え以外の処理を制御する必要があり、処理が煩雑となり開発効率等の面から妥当ではない。
【０００６】
そこで、本発明は、ソフトウェア側で意識せずとも、フラッシュメモリの書換え処理を行っている間に、他の処理を行うことができるプログラム実行装置の提供を目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決する為に、本発明のプログラム実行装置は、ＣＰＵとプログラムを格納するフラッシュメモリとを有し、プログラムを実行するプログラム実行装置であって、前記ＣＰＵに割込信号を伝達する割込制御回路と、前記ＣＰＵからフラッシュメモリに送られる、フラッシュメモリを書き換えるコマンドを構成する連続して伝達すべきデータを検知し、コマンドの開始を示す開始信号を割込制御回路に伝達する書換制御回路とを備え、前記割込制御回路は、前記開始信号を受領した場合は、外部から受信した信号に基づいた割込信号を前記ＣＰＵに伝達することを抑止することを特徴とする。
【発明の効果】
【０００８】
本発明に係るプログラム実行装置は、上述の構成を備えることにより、連続して送信すべきコマンドの送信を開始した後は、割込みを発行しなくすることができるので、コマンドが途中で切れることなく連続して送信することができるようになる。
従って、プログラム側でコマンドを送信している間に割り込みが入らないように制御しなくても、コマンドを送信している間に割込みが入ることはない。
【０００９】
その結果として、フラッシュメモリを、誤りなく書換えることが可能となる。
また、前記書換制御回路は、更に、前記コマンドの受信を終えたときに終了した旨を示す終了信号を前記割込制御回路に伝達し、前記割込制御回路は、前記終了信号を受領したときに、前記ＣＰＵに割込信号を伝達することの抑止を解除することとしてもよい。
これにより、コマンドの送信終了を知ることができ、割込みを発行できるようにすることができるので、割込みを抑止する時間を最小限にすることができるようになる。つまり、コマンド間では、割込みを行えることになる。
【００１０】
また、前記プログラム実行装置は、更に、前記書換制御回路が開始信号を伝達した後に生じた割込み要因を特定する割込情報を記憶する割込情報記憶手段を備え、前記割込制御回路は、前記終了信号を受領した後に、前記割込情報記憶手段に記憶されている割込情報に基づいてＣＰＵに対して割込信号を伝達することとしてもよい。
これにより、コマンド送信中に生じた割り込みを記憶しておき、コマンドの送信が終了した後に割込み処理を行うことができるので、割込み処理を破棄しないで行うことができるようになる。
【００１１】
また、前記割込情報記憶手段に記憶する割込情報は、前記フラッシュメモリへのアクセス処理を行わない割込み処理を行う割り込みの割込情報であることとしてもよい。
これにより、書換モード中に行える割込み処理として、フラッシュメモリにアクセスしない処理を選ぶことができるので、割込み処理を行っても、フラッシュメモリを誤書換えを防ぐことができるようになる。
【００１２】
また、前記書換制御回路は、更に、前記開始信号を受領し、当該信号を受信した後は、前記フラッシュメモリが前記コマンドの処理を終了することを通知する完了信号を受領まで、前記フラッシュメモリへのアクセス処理を行わないこととしてもよい。
これにより、コマンド送信が終了してもフラッシュメモリでコマンドの処理を行っている間は、フラッシュメモリへのアクセスを防ぐことができるので、書換処理のコマンドを完了させることができるようになる。
【００１３】
また、前記プログラム実行装置は、更に、自装置外部から所定操作を受け付けた場合に、前記ＣＰＵにリセット信号を伝達するリセット手段を備え、前記書換制御回路は、更に、前記コマンドの送信を開始することを通知するモード信号を受領し、当該信号を前記リセット手段に伝達し、前記リセット手段は、前記モード信号を受信した後は、自装置外部から所定操作を受け付けた場合であっても、前記ＣＰＵにリセット信号を伝達しないこととしてもよい。
【００１４】
これにより、書換モード中は、リセット信号を破棄するので、書換えの途中で実行装置がリセットされてフラッシュメモリの書換えが異常終了することを防ぐことができるようになる。
また、前記プログラム実行装置は、更に、コマンドの送信を開始することを通知するモード信号を受領した後に、自装置外部から受け付けた所定操作を特定する操作情報を記憶する操作情報記憶手段を備え、前記書換制御回路は、更に、前記コマンドの送信を終了することを通知する解除信号を受領し、当該信号を前記リセット手段に伝達し、前記リセット手段は、前記解除信号を受領した後に、前記操作情報記憶手段に記憶されている操作情報に基づいて、前記ＣＰＵにリセット信号を伝達することとしてもよい。
【００１５】
これにより、書換モード中のリセット信号を記憶しておき、書換モードが終了してからリセットを掛けるので、書換処理を完了することができるようになる。
また、前記リセット手段は、前記解除信号を受領した後は、前記所定操作とは異なる所定操作を受け付けた場合に、前記ＣＰＵにリセット信号を伝達することとしてもよい。
これにより、書換モード中と、それ以外のときとで、リセットの操作を変えることができるので、間違って書換モード中にリセットを掛けることを防止できる可能性が高くなる。
【００１６】
また、前記プログラム実行装置は、更に、ＣＰＵにフラッシュメモリに対してデータを伝達する処理を行わせるためのプログラムを記憶するプログラム記憶手段と、前記書換制御回路が、前記コマンドの送信を開始することを通知するモード信号を受領し、前記コマンドの送信を終了することを通知する解除信号であって当該モード信号と対応する信号を受領するまで、前記プログラムが記憶されている前記プログラム記憶手段の領域のうち所定領域以外にのみ、書込みを行う書込手段とを備えることとしてもよい。
【００１７】
これにより、書換モード中は、フラッシュメモリを書換えるプログラムを保護することができるので、フラッシュメモリの誤書換えを防止することができるようになる。
【発明を実施するための最良の形態】
【００１８】
＜実施形態１＞
＜概要＞
本発明に係るプログラム実行装置は、フラッシュメモリの書換モードである場合であっても、一定の条件を満たす割込み処理は受け付けるものである。
フラッシュメモリは、電源投入後の動作モードが読出しモードであり、アドレスを入力することで該当データが出力される。
【００１９】
その他の動作である消去と書き込み、すなわち、書換え等は、フラッシュメモリ内のコマンドレジスタにコマンドを書き込むことで行われる。
従って、これらの動作を行う場合は、まず、コマンドを実行することをフラッシュメモリに伝えて、書換モードにしてからコマンドをコマンドレジスタに書き込むことになる。
必要な数のコマンドを入力し、書換え処理が終了した時点で、読出しモードに戻すためのリセットコマンドを入力する。
【００２０】
従来は、この書換モードの間は、ＣＰＵへの全ての割り込みがマスクされ、書換え処理以外の処理は行われない。
その理由は、このコマンドの指定方法は、コマンドレジスタにアドレスとデータを書き込むことで行うが、決められたアドレス値とデータ値が、決められたシーケンスで連続して書き込まれた場合にのみ、フラッシュメモリはコマンドであると認識できるからである。
【００２１】
従って、このコマンドを書き込んでいる途中、すなわち、例えば、コマンドが、データの４回連続書き込みによる４サイクルで伝達することとされている場合に、１サイクル書き込んだときにＣＰＵに割り込みが入った場合は、２サイクル目に書き込まれるはずのデータが書き込まれないため、コマンドとして認識されなくなる。
しかし、書換モードの間に割り込みを許そうとすれば、プログラム側で、割り込みが入ったことを検知して対処する必要があり、プログラムが非常に煩雑となる。
【００２２】
そこで、本発明にかかるプログラム実行装置では、コマンドが送信されていることを検知し、コマンド送信中は割り込み受け付けないが、コマンドとコマンドの間では割り込みを受け付けるものである。
このようにプログラムの実行装置側で制御することにより、プログラム側で意識せずとも、フラッシュメモリの書換え処理と、機器本来の処理とを並行して行うことが可能となる。
【００２３】
＜構成＞
まず、本発明に係るプログラム実行装置１００の構成を、図１を用いて説明する。
図１は、プログラム実行装置１００の構成を示す機能ブロック図である。
プログラム実行装置１００は、ＣＰＵ（Central Processing Unit）１１０、フラッシュメモリ１２０、書換制御部１３０、割込制御部１４０、および、ＲＡＭ（Random Access Memory）１５０から構成される。
【００２４】
まず、ＣＰＵ１１０は、メモリに記憶されているプログラムを実行する機能を有する。本実施形態では、通常はフラッシュメモリ１２０に記憶されているプログラムを実行し、フラッシュメモリ１２０の書換えを行う場合はＲＡＭ１５０に記憶されているプログラムを実行する。
フラッシュメモリ１２０は、データの読み書きを行うことができ、電源を切っても内容が消えない半導体メモリである。本実施形態では、本プログラム実行装置が搭載されている機器の動作を行うためのプログラムやデータが記憶されている。さらに、フラッシュメモリ１２０自体の書換処理を行うためのプログラムを記憶している。この書換プログラムは、書換えを行う前にＲＡＭ１５０に送信される。
【００２５】
書換制御部１３０は、ＣＰＵ１１０からフラッシュメモリ１２０への制御信号１１を受信し、フラッシュメモリ１２０へ送信する機能を有する。
この制御信号１１とは、具体的には、書換モードを開始する制御信号と書換モードが解除されたことを通知する信号であり、本書換制御部１３０は、書換モードを開始する制御信号を受信すると、書換モードになったことを認識し、また、書換モードが解除されたことを通知する信号を受信すると、書換モードが終了したことを認識する。以下、モード開始信号を送信してからモード解除信号を送信するまでの期間を「書換モード期間」というものとする。
【００２６】
さらに、書換制御部１３０は、ＣＰＵ１１０からフラッシュメモリ１２０へ送られるコマンド信号１０を受信し、コマンドの最初と最後を検知したことを示すコマンド開始信号１２とコマンド終了信号１３とを割込制御部１４０に送信する。このコマンドの最初と最後の検知は、書換制御部１３０が有する命令検知部１３１によって行われる。
具体的には、例えば、コマンドの最初のサイクルの内容でコマンドの最初を検出し、コマンドの内容でコマンドの最後のサイクルを検出する。コマンドの最初のサイクルまたは２サイクルの内容は決まっていることから、コマンドの開始を検出できる。また、コマンドによってサイクル数が決まっていたり、最後のサイクルの内容が決まっていることからコマンドの最後を検出することができる。
【００２７】
割込制御部１４０は、割込要求信号１６０を受信し、ＣＰＵ１１０に対して割込み信号を送信する機能を有する。但し、本実施形態では、コマンド開始信号１２とコマンド終了信号１３との間は、割り込み信号を送信しない。すなわち、その間に受けた割込要求信号１６０は破棄する。
ＲＡＭ１５０は、フラッシュメモリ１２０の書換処理を行うためのプログラムを記憶している。この書換プログラムは、フラッシュメモリ１２０から送信され、記憶する。
【００２８】
＜動作＞
次に、図２〜図４とを用いて、本発明に係るプログラム実行装置のフラッシュメモリの書換え処理中の、割込み動作について説明する。
図２は、コマンドと割り込みの関係を示す図であり、図３は、コマンドの詳細を示す図である。また、図４は、各機能部の処理の流れを示す図である。
【００２９】
まず、図２において、「書換モード開始」から「書換モード解除」の期間は、前述した書換モード期間を表し、「Cmd」はコマンドを送信している期間を表す。
コマンドとコマンドの間であれば、割り込みが可能であることを示している。
図３を用いて、このコマンドの詳細を説明する。
図３（ａ）は、１バイトの書込みコマンドであり、図３（ｂ）は、複数バイトの書込みコマンドであり、図３（ｃ）は、チップ単位の消去コマンドである。
【００３０】
これらの図において、「Address Bus」のアドレスは、「NCE」か「NWE」の遅い方の立ち上がりで、コマンドレジスタに読み込まれ、「Data Bus」のデータは、「NCE」か「NWE」の遅い方の立ち下がりで、コマンドレジスタに読み込まれる。
コマンドレジスタを介して、連続サイクルで、これらのデータが該当アドレスに書き込まれることで、フラッシュメモリはコマンドを認識する。
【００３１】
図３（ａ）の書込みコマンドを例にとって説明すると、アドレス「555h」とデータ「AAｈ」がコマンドレジスタに書き込まれ、次のサイクルで、アドレス「２AAh」とデータ「55ｈ」が書き込まれ、その次のサイクルで、アドレス「555h」とデータ「A0ｈ」が書き込まれ、最後の４サイクル目でフラッシュメモリ内のアドレス「PA」と書き込むデータ「PD」というように４サイクル書き込まれる。
【００３２】
これらのコマンドは、途中に割り込みが入ることでサイクルが乱れると、コマンドとして認識されなくなり、フラッシュメモリの誤書込みが生ずる。
従って、本発明では、このコマンドを送信している間（図３：コマンド発行期間）は割り込みを受け付けずに、連続してフラッシュメモリに対して送信することを保証する。
また、命令検知部１３１は、これらのコマンドの、１サイクルと２サイクルでコマンドであることを認識し、３サイクルでコマンドの内容を認識し、その先何サイクルでコマンドが終了するかが判るので、コマンドの最後のサイクルを検知する。また、図３（ｂ）のような不定長のコマンドは、アドレス「SA」にデータ「29h」、すなわち、バッファに貯めたデータをフラッシュメモリに書き出すコードで終了するので、コマンドの最後を検知することができる。
【００３３】
次に、図４を用いて、各機能部の動作について説明する。
まず、ＲＡＭ１５０にはフラッシュメモリ１２０を書換えるための書換プログラムが記憶されているものとする。
ＣＰＵ１１０は、書換プログラムの指示により、書換モードに入る旨を通知する制御信号１１をフラッシュメモリに送信する（ステップＳ２１０）。例えば、特定端子をハイにするなどである。
【００３４】
この信号を書換制御部１３０が検知し、書換モードが開始されたことを認識する（ステップＳ２１１）。
その後、ＣＰＵ１１０から、フラッシュメモリ１２０に対して、コマンド信号１０の送信が開始される（ステップＳ２２０）。
書換制御部１３０は、このコマンド信号１０を読み込み、命令検知部１３１がコマンドの最初を検知する（ステップＳ２２１）。
【００３５】
この最初の検知がなされると書換制御部１３０はコマンド開始信号１２を割込制御部１４０に送信する（ステップＳ２２２）。
コマンド開始信号１２を受信した割込制御部１４０は、割込要求信号１６０を受信した場合であっても、ＣＰＵ１１０への割込みを行わない。
具体的には、内部に持っている割込マスク、すなわち、どの割込みを行わないかを制御するマスクを、全部マスクする。
【００３６】
その後も、コマンド信号１０は、フラッシュメモリ１２０に送信され続ける。
コマンド信号１０を受信しているフラッシュメモリ１２０は、コマンドに応じて、処理を行う（ステップＳ２３０）。
コマンド信号１０を読み込んでいる書換制御部１３０は、コマンド信号から命令検知部１３１がコマンドの最後を検知する（ステップＳ２３２）と、コマンド終了信号１３を割込制御部１４０に送信する（ステップＳ２３３）。
【００３７】
コマンド終了信号１３を受信した割込制御部１４０は、割込マスクを元に戻し、割込要求信号１６０を受信した場合は、ＣＰＵ１１０への割込みを行う。
この割込制御部１４０が、コマンド開始信号１２を受信してからコマンド終了信号１３を受信するまでの間（ステップＳ２３１）、すなわち、コマンド送信中は割り込みを行わない。
【００３８】
書換モード中は、このステップＳ２２０からステップＳ２３３までを繰り返すことになる。
フラッシュメモリの書換えを終えたら、ＣＰＵ１１０はフラッシュメモリ１２０に書換モードの終了を通知する（ステップＳ２４０）。例えば、ＣＰＵ１１０から読込みモードに戻すコマンドが送信する。
【００３９】
この信号を書換制御部１３０が検知し、書換モードが終了したことを認識する（ステップＳ２４１）。
＜変形例＞
実施形態１では、コマンドの最後を、コマンドごとのサイクル数や、最後のサイクルの内容に基づいて検出していたが、フラッシュメモリでのコマンドの完了通知を受けたときをコマンドの最後としてもよい。
【００４０】
図５は、コマンドの終了を検知するフローチャートである。
ここで、データポーリング機能とは、フラッシュメモリでのコマンドの実行が進行中であるか終了したかを知らせる機能であって、具体的には、あるデータを読み出してその内容からコマンドが終了したかを判断する。
各コマンドのシーケンスどおりに、コマンドを送信後（ステップＳ１０１）、データポーリングを行い（ステップＳ１０２）、終了である旨の信号がフラッシュメモリから返ってくれば（ステップＳ１０３：ＹＥＳ）、命令検知部１３１はコマンドは終了したと判断し、コマンドの最後を検知したとする。
【００４１】
終了である旨の信号がかえってこなければ（ステップＳ１０３：ＮＯ）、再度データポーリング（ステップＳ１０２）を行う。
＜実施形態２＞
＜概要＞
実施形態１では、割込制御部１４０は、コマンドを送信している間は、いかなる割込みもＣＰＵ１１０に対して行わないこととしていた。本実施形態でも、この点は同じであるが、コマンド送信中に要求があった割込みをコマンド送信後に行う点が異なる。
【００４２】
＜構成＞
図６は、実施形態２のプログラム実行装置１０１の構成を示す機能ブロック図である。
本実行装置１０１の構成と、実施形態１のプログラム実行装置１００の構成との違いは、割込情報記憶部１７０を備えている点である。
この割込情報記憶部１７０は、割込要求信号１６０で要求があった割込みを、後で行う際に必要な情報を記憶しておく機能を有する。例えば、割込みの種類とパラメータを記憶する、割込要求信号１６０自体を保持しておくなどである。
【００４３】
また、これに伴い、割込制御部１４０の機能が異なる。本実施形態の割込制御部１４１は、コマンド送信中は、受信した割込要求信号１６０をＣＰＵ１１０に送信せずに、受信した割込要求信号１６０を割込信号記憶部１７０に記憶させる。
その後、コマンド終了信号１３を受信したら、割込信号記憶部１７０が記憶している割込要求信号１６０をＣＰＵ１１０に送信する。
【００４４】
ここでは、割込信号記憶部１７０が記憶している割込信号を、要求を受けた順序で送信する。尚、割り込みの内容に応じて優先順位をつけて、その優先順序でＣＰＵ１１０に信号を送信すること等としてもよい。
＜実施形態３＞
＜概要＞
実施形態１では、割込制御部１４０は、コマンドを送信している間は、いかなる割込みもＣＰＵ１１０に対して行わないが、コマンド送信終了後は、要求された割込みを行うこととしていた。
【００４５】
本実施形態では、コマンドを送信している間は、いかなる割込みもＣＰＵ１１０に対して行わない点は同じであるが、書込モード期間中は、コマンド送信終了後であっても、要求された割込みを全て行うわけではない点が異なる。
すなわち、書込モード期間中は、割込みの選別を行う。
＜構成＞
図７は、実施形態３のプログラム実行装置１０２の構成を示す機能ブロック図である。
【００４６】
本実行装置１０２の構成と、実施形態１のプログラム実行装置１００の構成との違いは、選別情報記憶部１８０を備えている点である。
この選別情報記憶部１８０は、割込要求信号１６０で要求があった割込みが、書換モード期間中に行うことが出来る割り込みであるか否かを判断するための情報を記憶する機能を有する。例えば、割込み可能な割込み要因の種類とパラメータを記憶する、選別用の割込マスク情報を記憶するなどである。
【００４７】
また、これに伴い、書換制御部１３０と割込制御部１４０の機能が異なり、ＲＡＭ１５０に記憶するプログラムが異なる。
本実施形態の書換制御部１３２は、書換モードを開始する制御信号を受信すると、書換モードになったことを示すモード開始信号１４を、また、書換モードが解除されたことを通知する信号を受信すると、書換モードが終了したことを示すモード終了信号１５を割込制御部１４２に送信する。尚、実施形態１の書換制御部１３０では、モード開始信号およびモード終了信号を割込制御部１４０には送信しないこととしている。
【００４８】
また、本実施形態の割込制御部１４２は、割込制御部１４０の機能に加え、受信した割込要求信号１６０を、選別情報記憶部１８０の情報を用いて、割込み可能か否かを選別する機能を有する。
割込制御部１４２は、モード開始信号１４を受信してからモード終了信号１５を受信するまで、すなわち、書換モード期間中であって、コマンド終了信号１３を受信してからコマンド開始信号１２を受信するまで、すなわち、コマンド間で受信した割込要求信号１６０を、選別情報記憶部１８０の情報で選別し、割込み可能である場合には、ＣＰＵ１１０に割込み信号を送信し、割込み不可の場合には破棄する。
【００４９】
また、ＲＡＭ１５２は、ＲＡＭ１５０が記憶する書換プログラムのほかに、選別されて実行される割込み処理を行うプログラムを記憶する。この割込み処理を行うプログラムも、書換え処理が行われる前に、書換プログラムと共にフラッシュメモリから送信され、記憶する。
割込みの処理は、フラッシュメモリ１２０に記憶されているプログラムを実行して行うのではなく、ＲＡＭ１５２に記憶されているプログラムを実行して行う。
【００５０】
書換え処理中は、基本的に、そのフラッシュメモリからの読み出しはできないからである。
＜実施形態４＞
＜概要＞
実施形態１では、割込制御部１４０は、コマンドを送信している間は、いかなる割込みもＣＰＵ１１０に対して行わないが、コマンド送信終了後は、要求された割込みを行うこととしていた。
【００５１】
本実施形態では、実施形態１と同様に、コマンド送信中は、いかなる割込みもＣＰＵ１１０に対して行なわず、コマンド送信終了後は、割込み再開するが、コマンドの送信は終了したが、フラッシュメモリがまだコマンドを実行している間は、フラッシュメモリをアクセスするコマンドや制御信号は、フラッシュメモリに送信しない点が異なる。
＜構成＞
図８は、実施形態４のプログラム実行装置１０３の構成を示す機能ブロック図である。
【００５２】
本実行装置１０３の構成と、実施形態１のプログラム実行装置１００の構成との違いは、書換制御部１３３がプロテクト制御部１９０を備えている点である。
本実施形態では、書換制御部１３３は、命令検知部１３１によってコマンドの終了を検知する他に、図５で示したデータポーリングによるフラッシュメモリのコマンド処理の完了を検知する機能を有する。
【００５３】
プロテクト制御部１９０は、コマンドの開始を検知したときから、このフラッシュメモリのコマンド処理の完了を検知するまでの間に、フラッシュメモリに対する操作を行うコマンドや制御信号が送信されてきた場合は、フラッシュメモリに送信しない機能を有する。
これにより、書換え処理が割込み処理によって影響を受けることを阻止することが可能となる。
＜実施形態５＞
＜概要＞
本実施形態のプログラム実行装置１０４は、実施形態１の実行装置１００と比べて、リセットの制御を行う点が異なる。
【００５４】
＜構成＞
図９は、実施形態５のプログラム実行装置１０４の構成を示す機能ブロック図である。
本実行装置１０４の構成と、実施形態１のプログラム実行装置１００の構成との違いは、リセット制御部２００、リセット情報記憶部２１０およびリセット端子２２０を備えている点である。
【００５５】
また、書換制御部１３４は、命令検知部１３１によってコマンドの終了を検知する他に、図５で示したデータポーリングによるフラッシュメモリのコマンド処理の完了を検知し、処理が完了したことを示す処理完了信号１６をリセット制御部２００に送信する機能を有する。また、命令検知部１３１によって検知されたコマンドの開始を示すコマンド開始信号１２をリセット制御部２００に送信する機能を有する。
【００５６】
リセット制御部２００は、コマンド開始信号１２を受信したときから、処理完了信号１６を受信するまでの間に、リセット端子２２０からリセット信号を受信した場合には、リセット信号をリセット情報記憶部２１０に記憶させておいて、処理終了信号１６を検知した後に、ＣＰＵ１１０に対してリセット信号（点線矢印）を送信する。尚、フラッシュメモリや各機能部にリセット信号を送信することとしても良い。
【００５７】
また、書換モード期間中は、リセット信号をリセット情報記憶部２１０に記憶させておいて、処理終了信号１６を検知した後に、ＣＰＵ１１０に対してリセット信号を送信することとしても良い。
これにより、書換え処理の途中でリセットを行っても、コマンドの処理が途中で終了することがなくなり、誤書換えを防止することが出来る。
【００５８】
＜変形例＞
実施形態では、コマンド開始信号１２を受信したときから、このフラッシュメモリのコマンド処理の完了を示す処理完了信号１６を受信するまでの間に、受けたリセット信号をリセット情報記憶部２１０に記憶しておいたが、リセット信号を破棄しても良い。
また、書換モード期間中は、リセット信号を破棄することとしてもよい。
【００５９】
＜変形例＞
また、リセット制御部２００で、複数のリセット操作を判別できるようにしても良い。
すなわち、コマンド開始信号１２を受信したときからフラッシュメモリのコマンド処理の完了を示す処理完了信号１６を受信するまでの間や、書換モード期間中にリセットを行う場合は、他の期間でリセットを行う場合と異なる操作とする。
【００６０】
フラッシュメモリが処理を行っている間や、書換モード期間中のリセット操作を、より難しくするなどである。例えば、より長くリセットボタンを押下し続けないとリセットがかからないなどである。
この場合、リセット制御部２００に、複数のノイズ除去幅を設定できるノイズフィルタを備え、フラッシュメモリが処理を行っている間や、書換モード期間中は、大きいパルス幅のノイズを除去する設定をし、その他の期間は、小さいパルス幅のノイズを除去する設定を行う。
＜実施形態６＞
＜概要＞
本実施形態のプログラム実行装置１０５は、書換え処理中にＲＡＭ１５０に記憶してある書換プログラムを保護するものである。
【００６１】
＜構成＞
図１０は、実施形態６のプログラム実行装置１０５の構成を示す機能ブロック図である。
本実行装置１０５の構成と、実施形態１のプログラム実行装置１００の構成との違いは、書込制御部３００を備えている点である。
【００６２】
書換制御部１３５は、書換モード開始信号１４と書換モード終了信号１５とを、書込制御部３００に送信する機能を有する。
書込制御部３００は、書換モード開始信号１４を受信したときから、書換モード終了信号１５を受信するまでの間に、書換プログラムの特定領域の更新を行う信号をＣＰＵ１１０から受信しても、ＲＡＭに送信しない機能を有する。
【００６３】
ここで、特定領域とは、書換えられてはプログラムが正常に動かなくなるような領域である。
これにより、書換え処理の間に、書換プログラム自身が不正に書き変わることがなくなり、結果として、フラッシュメモリの誤書換えを防止することが出来る。
＜補足＞
以上、本発明に係るプログラム実行装置について実施形態に基づいて説明したが、このプログラム実行装置を部分的に変形することもでき、本発明は上述の実施形態に限られないことは勿論である。即ち、
（１）実施形態で示したプログラム実行装置の各機能を実現させる為の各制御処理（図４等参照）をＣＰＵに実行させる為のプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ＩＣカード、光ディスク、フレキシブルディスク、ＲＯＭ、フラッシュメモリ等がある。流通、頒布されたプログラムは、機器におけるＣＰＵで読み取り可能なメモリ等に格納されることにより利用に供され、そのＣＰＵがそのプログラムを実行することにより実施形態で示した各機能が実現される。
（２）実施形態の構成は、典型的には集積回路であるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）で実現されているものとしても良い。これらは、個別に１チップ化されていてもよいし、全ての構成又は一部の構成を含むように１チップ化されてもよい。集積回路は、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩ等と呼称されることもある。また、集積回路の手法は、ＬＳＩに限定されるものではなく、専用回路又は汎用プロセッサを用いて実現してもよい。更に、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成することができるリコンフィギュアラブル・プロセッサを利用してもよい。さらに半導体技術の進歩により、又は派生する別技術により現在の半導体技術に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の応用等が考えられる。
【産業上の利用可能性】
【００６４】
フラッシュメモリを内蔵したマイクロコンピュータにおいて、マイコンの通常処理と、フラッシュメモリの書換え処理を並行して行わせる技術として有用である。
【図面の簡単な説明】
【００６５】
【図１】実施形態１に係るプログラム実行装置の構成を示す機能ブロック図である。
【図２】コマンドと割込みの関係を示す図である。
【図３】書換えコマンドのシーケンス例を示す図である。
【図４】フラッシュメモリの書換え処理を示すフローチャートである。
【図５】フラッシュメモリの処理終了を検知する処理を示すフローチャートである。
【図６】実施形態２に係るプログラム実行装置の構成を示す機能ブロック図である。
【図７】実施形態３に係るプログラム実行装置の構成を示す機能ブロック図である。
【図８】実施形態４に係るプログラム実行装置の構成を示す機能ブロック図である。
【図９】実施形態５に係るプログラム実行装置の構成を示す機能ブロック図である。
【図１０】実施形態６に係るプログラム実行装置の構成を示す機能ブロック図である。
【符号の説明】
【００６６】
１００  １０１  １０２  １０３  １０４  １０５    プログラム実行装置
１１０    ＣＰＵ
１２０    フラッシュメモリ
１３０  １３２  １３３  １３４  １３５    書換制御部
１３１    命令検知部
１４０  １４１  １４２    割込制御部
１５０  １５２    ＲＡＭ
１６０    割込要求信号
１７０    割込情報記憶部
１８０    選別情報記憶部
１９０    プロテクト制御部
２００    リセット制御部
２１０    リセット情報記憶部
２２０    リセット端子
３００    書込制御部
【図１】
2008158636.tif 000003
【図２】
2008158636.tif 000004
【図３】
2008158636.tif 000005
【図４】
2008158636.tif 000006
【図５】
2008158636.tif 000007
【図６】
2008158636.tif 000008
【図７】
2008158636.tif 000009
【図８】
2008158636.tif 000010
【図９】
2008158636.tif 000011
【図１０】
2008158636.tif 000012