(57)【要約】【課題】  割込処理を高速に実行する。【解決手段】  本発明の一態様としてのマイクロコンピュータシステムは、実行プログラム及び割込処理プログラムを格納した書き換え可能な不揮発性の第１メモリと、前記第１メモリよりも高速にアクセス可能な揮発性の第２メモリと、前記割込処理プログラムを前記第２メモリの領域にロードすると共に前記割込処理プログラムがロードされた領域を特定する領域情報を前記第２メモリの所定領域に格納し、前記実行プログラムを実行し、前記実行プログラムの実行中に割込信号が入力された場合は、前記第２メモリの前記所定領域にアクセスして前記割込信号に対応した前記領域情報を取得し、取得した前記領域情報に示される領域内の前記割込処理プログラムを実行する制御部と、を備える。【選択図】  図１
2005326954.tif 000002
【特許請求の範囲】
【請求項１】
実行プログラム及び割込処理プログラムを格納した書き換え可能な不揮発性の第１メモリと、
前記第１メモリよりも高速にアクセス可能な揮発性の第２メモリと、
前記割込処理プログラムを前記第２メモリの領域にロードすると共に前記割込処理プログラムがロードされた領域を特定する領域情報を前記第２メモリの所定領域に格納し、前記実行プログラムを実行し、前記実行プログラムの実行中に割込信号が入力された場合は、前記第２メモリの前記所定領域にアクセスして前記割込信号に対応した前記領域情報を取得し、取得した前記領域情報に示される領域内の前記割込処理プログラムを実行する制御部と、
を備えたマイクロコンピュータシステム。
【請求項２】
前記制御部は、前記割込処理プログラムを予め指定された前記第２メモリの領域にロードし、また、前記領域情報を前記第１メモリからロードして前記第２メモリの前記所定領域に格納することを特徴とする請求項１に記載のマイクロコンピュータシステム。
【請求項３】
前記第２メモリにおける前記所定領域の位置を特定する位置情報を位置情報格納領域に格納する、前記第１メモリよりも高速にデータアクセス可能な不揮発性の第３メモリをさらに備え、
前記制御部は、前記割込信号が入力された場合は、前記第３メモリの前記位置情報格納領域にアクセスして前記割込信号に対応した前記位置情報を取得し、取得した前記位置情報に示される前記第２メモリの前記所定領域にアクセスすることを特徴とする請求項１又は２に記載のマイクロコンピュータシステム。
【請求項４】
前記第１メモリは第１半導体基板に形成され、
前記第２メモリ、前記制御部及び前記第３メモリは、前記第１半導体基板とは異なる第２半導体基板に形成された、
ことを特徴とする請求項３に記載のマイクロコンピュータシステム。
【請求項５】
書き換え可能な不揮発性メモリに接続可能なマイクロコンピュータであって、
前記不揮発性メモリよりも高速にアクセス可能な揮発性メモリと、
前記不揮発性メモリから割込処理プログラムを前記揮発性メモリの領域にロードすると共に前記割込処理プログラムがロードされた領域を特定する領域情報を前記揮発性メモリの所定領域に格納し、前記不揮発性メモリから実行プログラムを読み出して実行し、前記実行プログラムの実行中に割込信号が入力された場合は、前記揮発性メモリの前記所定領域にアクセスして前記割込信号に対応した前記領域情報を取得し、取得した前記領域情報に示される領域内の前記割込処理プログラムを実行する制御部と、
を備えたマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え可能な不揮発性メモリから命令を読み出して実行するマイクロコンピュータシステム及びマイクロコンピュータに関する。
【背景技術】
【０００２】
マイクロプロセッサの命令処理速度は、その動作クロック周波数を高くすることにより高速化し得るが、いくら動作クロック周波数を高くしても、メモリから命令及びデータを読み出す速度が遅ければ、高速な処理速度は得られない。
【０００３】
従来から、書き換え可能な不揮発性メモリ（例えばＦＲＡＭ、ＭＲＡＭ、電気的な消去・書き換え可能なＲＯＭ）にプログラムを格納し、この不揮発性メモリから命令を読み出し、実行するタイプのシステムがある。
【０００４】
このタイプのシステムとして、高速な処理を実現するため、例えば、マイクロプロセッサと不揮発性メモリとを同一チップ上に形成し、マイクロプロセッサにより不揮発性メモリに高速にアクセス可能とするものがある。
【０００５】
しかし、このようにマイクロプロセッサと書き換え可能な不揮発性メモリとを同一チップ上に形成する場合、不揮発性メモリとマイクロプロセッサとを別チップとする場合に比べて、コストが高くなる問題がある。
【０００６】
そこで、マイクロプロセッサと書き換え可能な不揮発性メモリとを別チップとしつつ、これらの間にキャッシュメモリを設けることで、高速な処理を、低コストで実現することも考えられる。
【０００７】
しかし、キャッシュメモリには高速なアクセススピードが要求され、この要求を満たすメモリは高価であるので、キャッシュメモリの追加は、依然として高コストになってしまう。
【０００８】
以上の問題に対して、マイクロプロセッサと書き換え可能な不揮発性メモリとを別チップとし、書き換え可能な不揮発性メモリ内のプログラムの全てまたは一部を、マイクロプロセッサと同一チップ上にある高速アクセス可能な書き換え可能なメモリ（例えばＳＤＲＡＭ、ＤＲＡＭ、ＳＲＡＭ）に移し（ロードし）、この書き換え可能なメモリから命令を読み出すことで、高速処理を実現する方式が考えられる。
【０００９】
しかし、書き換え可能な不揮発性メモリ内の全てのプログラムを書き換え可能なメモリに移す場合、大容量の書き換え可能なメモリが必要になるため、この場合もシステムコストが高くなる。
【００１０】
一方、書き換え可能な不揮発性メモリ内のプログラムの一部を書き換え可能なメモリに移す場合は、基本的にその一部については高速な処理を実現できるが、その一部として割込処理プログラムを実行する場合は、高速な処理を実現できない問題が発生する。
【００１１】
即ち、割込処理時において、マイクロプロセッサは、まず、入力された割込信号の種類に対応付けられた書き換え可能な不揮発性メモリの領域にアクセスして、割込処理プログラムが格納された書き換え可能なメモリの領域へアクセス（ジャンプ）する命令コードを取得する。マイクロプロセッサはその命令コードを実行することによって、割込処理プログラムが格納された書き換え可能なメモリの領域へアクセスし、その領域内の割込処理プログラムを実行する。このように、マイクロプロセッサは、割込処理時においては、いったん、アクセス速度の遅い書き換え可能な不揮発性メモリにアクセスすることになるため、処理速度がどうしても遅くなる。
【特許文献１】特開２００２−２６９０６５公報
【特許文献２】特開平１０−２１４２０１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、割込処理を高速に実行できるマイクロコンピュータシステム及びマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一態様としてのマイクロプロセッサシステムは、実行プログラム及び割込処理プログラムを格納した書き換え可能な不揮発性の第１メモリと、前記第１メモリよりも高速にアクセス可能な揮発性の第２メモリと、前記割込処理プログラムを前記第２メモリの領域にロードすると共に前記割込処理プログラムがロードされた領域を特定する領域情報を前記第２メモリの所定領域に格納し、前記実行プログラムを実行し、前記実行プログラムの実行中に割込信号が入力された場合は、前記第２メモリの前記所定領域にアクセスして前記割込信号に対応した前記領域情報を取得し、取得した前記領域情報に示される領域内の前記割込処理プログラムを実行する制御部と、を備える。
【００１４】
本発明の一態様としてのマイクロプロセッサは、書き換え可能な不揮発性メモリに接続可能なマイクロコンピュータであって、前記不揮発性メモリよりも高速にアクセス可能な揮発性メモリと、前記不揮発性メモリから割込処理プログラムを前記揮発性メモリの領域にロードすると共に前記割込処理プログラムがロードされた領域を特定する領域情報を前記揮発性メモリの所定領域に格納し、前記不揮発性メモリから実行プログラムを読み出して実行し、前記実行プログラムの実行中に割込信号が入力された場合は、前記揮発性メモリの前記所定領域にアクセスして前記割込信号に対応した前記領域情報を取得し、取得した前記領域情報に示される領域内の前記割込処理プログラムを実行する制御部と、を備える。
【発明の効果】
【００１５】
本発明により、割込処理を高速に実行できる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の実施の形態に従ったマイクロコンピュータシステムの構成を示すブロック図である。
【００１７】
このマイクロコンピュータシステムは、例えばＤＶＤプレーヤやＤＶＤレコーダ等の装置に組み込まれてこれらの装置を制御するものである。
【００１８】
まず、図１を用いて、このマイクロコンピュータシステムの基本的な構成及び動作について説明し、その後、本マイクロコンピュータシステムのより詳細な動作について説明する。
【００１９】
図１において、書き換え可能不揮発性メモリ１１は、本マイクロコンピュータシステムが組み込まれる装置を制御するプログラム（実行プログラム）、初期処理を実行する初期プログラム、この他、後述する割込処理プログラム等を格納する。書き換え可能不揮発性メモリ１１内のこれらのプログラムの全部または一部は、ユーザにより必要に応じて書き換え可能である。例えばファームウェアを更新する場合やバグを修正する場合などにプログラムを書き換えることが考えられる。書き換え可能不揮発性メモリ１１は、例えばＦＲＡＭやＭＲＡＭ等の不揮発性ＲＡＭや、電気的に消去・書き換え可能なＲＯＭである。
【００２０】
マイクロコンピュータ１２は、マイクロプロセッサ１３、揮発性メモリ１４、ＲＯＭ１５及び割込コントローラ１６を備える。マイクロコンピュータ１２は例えば１チップにより構成される。この場合、マイクロコンピュータ１２と書き換え可能不揮発性メモリ１１とはそれぞれ異なる半導体基板上に形成される。本実施の形態では、割込コントローラ１６はマイクロプロセッサ１３に含まれるが、本発明はこれに限定されず、割込コントローラ１６はマイクロプロセッサ１３の外側に配置されてもよい。
【００２１】
揮発性メモリ１４は、例えばＳＤＲＡＭやＤＲＡＭ、ＳＲＡＭであり、書き換え可能不揮発性メモリ１１よりも高速にアクセス可能である。つまり、マイクロプロセッサ１３は、本来有する命令処理速度を低下させずにあるいはさほど低下させずに揮発性メモリ１４から命令及びデータを読み出し可能である。
【００２２】
マイクロプロセッサ１３は、書き換え可能不揮発性メモリ１１内の実行プログラムを実行して、本マイクロコンピュータシステムが組み込まれた装置を制御する。例えば、マイクロプロセッサ１３は、ＤＶＤプレーヤの表示部を制御する表示コントローラ（図示せず）や、ＤＶＤプレーヤの駆動部を制御する駆動コントローラ（図示せず）等を制御する。また、マイクロプロセッサ１３は、書き換え可能不揮発性メモリ１１内の初期プログラムを実行して初期処理を行う。
【００２３】
即ち、マイクロプロセッサ１３は、マイクロコンピュータシステムの起動時において、初期プログラムを実行して、書き換え可能不揮発性メモリ１１から揮発性メモリ１４の領域（プログラム格納領域）に上述の割込処理プログラムをロードする。書き換え可能不揮発性メモリ１１に複数の割込処理プログラムが含まれる場合は、これらのうちの１つあるいは任意の組合せをそれぞれ対応する揮発性メモリ１４のプログラム格納領域にロードする。ロード先となるプログラム格納領域のアドレスは、例えば初期プログラム中に記述されている。
【００２４】
さらに、マイクロプロセッサ１３は、割込処理プログラムがロード（格納）されたプログラム領域へアクセス（ジャンプ）する第１命令コードを書き換え可能不揮発性メモリ１１から揮発性メモリ１４の領域（第１命令コード格納領域）にロードする。第１命令コードは、対応するプログラム格納領域の先頭アドレス（揮発性メモリ１４上のアドレス）を含む。第１命令コードのロード先となる第１命令コード格納領域のアドレスは、例えば初期プログラム中に記述されている。
【００２５】
マイクロプロセッサ１３は、上において、割込処理プログラムを複数、書き換え可能不揮発性メモリ１１から揮発性メモリ１４へロードした場合は、各割込処理プログラムに対応して複数の第１命令コードを、それぞれ対応する揮発性メモリ１４の第１命令コード格納領域にロードする。例えば、マイクロプロセッサ１３は、複数の割込処理プログラム１〜ｎを書き換え可能不揮発性メモリ１１から揮発性メモリ１４へロードする場合は、各割込処理プログラム１〜ｎを、それぞれ対応する揮発性メモリ１４のプログラム格納領域１〜ｎにロードすると共に、各プログラム格納領域１〜ｎへアクセスする第１命令コード１〜ｎを、それぞれ対応する揮発性メモリ１４の第１命令コード格納領域１〜ｎにロードする。
【００２６】
以上の他、マイクロプロセッサ１３は、割込処理プログラムを揮発性メモリ１４の任意の空き領域にロードし、ロードした領域へアクセスする第１命令コードを生成して、対応する揮発性メモリ１４の第１命令コード格納領域に格納してもよい。
【００２７】
なお、マイクロプロセッサ１３は、揮発性メモリ１４を、実行プログラム、初期プログラム及び割込処理プログラムの実行時における作業領域としても用いる。
【００２８】
ＲＯＭ１５は、揮発性メモリ１４における第１命令コード格納領域へアクセスする第２命令コード（例えば第１命令コード格納領域の先頭アドレスを含む）を第２命令コード格納領域に格納する。ＲＯＭ１５は、第１命令コード格納領域の数分だけの第２命令コード格納領域を有し、各第２命令コード格納領域内に第２命令コードを格納する。つまり、第１命令コード格納領域と第２命令コード格納領域とは一対一に対応し、第２命令コード格納領域内の第２命令コードを実行することにより、対応する第１命令コード格納領域にアクセスする。
【００２９】
ここで、ＲＯＭ１５は、書き換え可能不揮発性メモリ１１よりも高速にデータアクセス可能である。つまり、マイクロプロセッサ１３は、本来有する命令処理速度を低下させずにあるいはさほど低下させずにＲＯＭ１５から命令及びデータを読み出すことができる。ＲＯＭの代わりに、書き換え可能な不揮発性メモリを用いてもよい。この場合、書き換え可能な不揮発性メモリはマイクロプロセッサ１３と同一チップ上に形成されるので高速アクセス可能である。また、書き換え可能メモリの容量を小さくすることでコストも低く抑えることが出来る。
【００３０】
割込コントローラ１６は、割込処理時、即ち、割込信号（図１の割込信号Ｓａ、Ｓｂ参照）が入力された場合は、割込信号の種類に対応するＲＯＭ１５内の第２命令コード格納領域にアクセスして、この領域内の第２命令コードを取得する。マイクロプロセッサ１３は、この第２命令コードを実行して、対応する揮発性メモリ１４内の第１命令コード格納領域にアクセスする。つまり、マイクロプロセッサ１３は、割込信号が入力された場合、割込信号の種類に対応した第１命令コード格納領域にアクセスする。そして、マイクロプロセッサ１３は、アクセスした第１命令コード格納領域内の第１命令コードを実行して対応するプログラム格納領域へアクセスし、この領域内の割込処理プログラムを実行する。これによりマイクロプロセッサ１３は、割込信号の種類に対応した割込処理プログラム（割込処理）を実行する。
【００３１】
図２は、本マイクロコンピュータシステムの動作の一例を説明する図である。
【００３２】
まず、本マイクロコンピュータシステムの起動前には、揮発性メモリ１４内にはデータは格納されておらず、書き換え可能不揮発性メモリ１１及びＲＯＭ１５にのみ、図示のデータが格納されている。
【００３３】
ユーザによる電源投入等により本マイクロコンピュータシステムが起動されると、マイクロプロセッサ１３は、書き換え可能不揮発性メモリ１１内のメインプログラムを実行する。メインプログラムは、図２に示すように、初期処理を行う初期プログラムや、本マイクロコンピュータシステムが組み込まれた装置を制御する実行プログラムｄ、ｅ・・等を含む。
【００３４】
マイクロプロセッサ１３は、まず、書き換え可能不揮発性メモリ１１内のメインプログラムの先頭に配置された初期プログラムを実行する。この結果、書き換え可能不揮発性メモリ１１内の割込処理プログラムＰａが揮発性メモリ１４内のプログラム格納領域Ｐ１にロードされると共に、このプログラム格納領域Ｐ１にアクセスする第１命令コードＩａ−１（例えばプログラム格納領域Ｐ１の先頭アドレスへジャンプする命令コード）が、揮発性メモリ１４内の第１命令コード格納領域Ｃ１にロードされる（図２の太線矢印参照）。また、割込処理プログラムＰｂがプログラム格納領域Ｐ２にロードされると共に、このプログラム格納領域Ｐ２にアクセスする第１命令コードＩｂ−１（例えばプログラム格納領域Ｐ２の先頭アドレスへジャンプする命令コード）が、第１命令コード格納領域Ｃ２にロードされる（図２の太線矢印参照）。
【００３５】
マイクロプロセッサ１３は、初期プログラムの実行を終えると、初期プログラムに続く実行プログラムｄ、ｅ・・・を実行して、例えば各種コントローラ（例えば表示コントローラ、駆動コントローラ）等（図示せず）を制御する。ここで、実行プログラムｄ、ｅ・・・の実行中に、例えば、割込信号Ｓａ（例えばリセット信号）が割込コントローラ１６に入力されたとする。
【００３６】
この場合、割込コントローラ１６は、マイクロプロセッサ１３に周知の手法により待避処理をさせた後（処理を中断させた後）、図２に示すように、この割込信号Ｓａに対応する、ＲＯＭ１５内の第２命令コード格納領域Ｄ１にアクセスして、この領域Ｄ１内に格納された第２命令コードＩａ−２を取得する。マイクロプロセッサ１３は、この第２命令コードＩａ−２を実行して、対応する揮発性メモリ１４内の第１命令コード格納領域Ｃ１にアクセスする。このようにして、マイクロプロセッサ１３は、割込信号Ｓａに対応する第１命令コード格納領域Ｃ１にアクセスする。
【００３７】
マイクロプロセッサ１３は、この第１命令コード格納領域Ｃ１内の第１命令コードＩａ−１を実行して、対応するプログラム格納領域Ｐ１へアクセスし、この領域Ｐ１内の割込処理プログラムＰａを実行する。割込処理プログラムＰａの実行を終えたマイクロプロセッサ１３は、上において中断した箇所から実行プログラムの実行を再開する。
【００３８】
以上では割込信号Ｓａが入力された場合について説明したが、割込信号Ｓｂが入力された場合も同様である。
【００３９】
即ち、割込信号Ｓｂが入力された場合は、割込コントローラ１６は、上述の待避処理をマイクロプロセッサ１３に実行させた後、割込信号Ｓｂに対応する、ＲＯＭ１５内の命令コード格納領域Ｄ２にアクセスし、この領域Ｄ２内に格納された第２命令コードＩｂ−２を取得する。マイクロプロセッサ１３は、この第２命令コードＩｂ−２を実行して、対応する揮発性メモリ１４内の第１命令コード格納領域Ｃ２にアクセスする。マイクロプロセッサ１３は、この領域Ｃ２内の第１命令コードＩｂ−１を実行して、対応する第２のプログラム格納領域Ｐ２へアクセスし、この領域Ｐ２内の割込処理プログラムＰｂを実行する。割込処理プログラムＰｂの実行を終えたマイクロプロセッサ１３は、中断した箇所から実行プログラムの実行を再開する。
【００４０】
なお、図２において、ＲＯＭ１５内の実行プログラムｃは、例えばメインプログラムにおける実行プログラムｄの途中で実行されるサブルーチンである。ＲＯＭ１５の容量に余裕がある場合などは、書き換え可能不揮発性メモリ１１よりも高速アクセスの可能なＲＯＭ１５にメインプログラムの一部を格納することで、その一部（本例ではプログラムｃ）については、高速に実行できる。
【００４１】
また、揮発性メモリ１４の容量に余裕がある場合などは、上述の初期処理時に、メインプログラムの一部、例えば実行プログラムｅを、図２の点線矢印に示すように、揮発性メモリ１４にロードし、実行プログラムｅについては、揮発性メモリ１４上のものを実行するようにしてもよい。これにより、この実行プログラムｅについては、高速に実行できる。
【００４２】
以上のように、本実施の形態によれば、書き換え可能不揮発性メモリ１１から揮発性メモリ１４に割込処理プログラム及び第１命令コードをプログラム格納領域及び第１命令コード格納領域ロードし、割込処理時には、割込信号の種類に対応する第１命令コード格納領域にアクセスして第１命令コードを実行するようにしたので、アクセス速度の遅い書き換え可能不揮発性メモリ１１にアクセスすることなく割込処理を実行できる。即ち、割込信号の種類に応じた割込処理プログラム（割込処理）を高速に実行できる。
【００４３】
また、本実施の形態によれば、割込処理プログラムを揮発性メモリ１４の任意の空き領域にロードすると共にこの領域へアクセスする第１命令コードを生成して第１命令コード格納領域に格納し、割込処理時には、割込信号の種類に対応した第１命令コード格納領域にアクセスして第１命令コードを実行するようにしたので、これによっても割込処理を高速に実行できる。
【００４４】
また、本実施の形態によれば、書き換え可能不揮発性メモリ１１と、マイクロコンピュータ１２とを別チップとしたのでマイクロコンピュータシステムを低コストで実現できる。
【００４５】
また、変形例として、割込処理プログラムの全てあるいは一部が書き換え可能揮発性メモリ１１にあってもよい。この場合、例えば、第１命令コードＩｂ−１を実行して、対応する第２プログラム格納領域Ｐ２にアクセスし、この領域Ｐ２内に予め格納されているプログラムコードに基づき前記書き換え可能不揮発性メモリ１１にある割込処理プログラムＰｂをアクセスして実行する。また、第１命令コードＩｂ−１は前記書き換え可能不揮発性メモリ１１にある割込処理プログラムＰｂを直接アクセスするものとしてもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施の形態に従ったマイクロコンピュータシステムの構成を示すブロック図である。
【図２】図１のマイクロコンピュータシステムの動作の一例を説明する図である。
【符号の説明】
【００４７】
１１  書き換え可能不揮発性メモリ
１２  マイクロコンピュータ
１３  マイクロプロセッサ
１４  揮発性メモリ
１５  ＲＯＭ
１６  割込コントローラ
【図１】
2005326954.tif 000003
【図２】
2005326954.tif 000004