(57)【要約】    【課題】  キャッシュのヒット率を向上させ得るエンジン制御装置を提供する。    【解決手段】  キャッシュメモリを角度同期処理用キャッシュメモリ２４ａと時間同期処理用キャッシュメモリ２４ｔとに分割して設ける。時間同期処理が続いた後に角度同期処理が発生しても、反対に、角度同期処理が続いた後に時間同期処理が発生しても、角度同期処理用キャッシュメモリ２４ａ、時間同期処理用キャッシュメモリ２４ｔ内にデータが入っている確率が向上する。【選択図】  図２０
2005215891.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとキャッシュメモリとＲＯＭとを備えるエンジン制御装置であって、
所定処理が予め定められたエンジン角度周期で繰り返される角度同期処理において、前記所定処理が実行される角度以前の所定角度にて、前記処理に用いられるデータを前記ＲＯＭから前記キャッシュメモリに転送しておくことを特徴とするエンジン制御装置。
【請求項２】
前記データを前記ＲＯＭからキャッシュメモリに転送しておく所定角度を、エンジン回転数に応じて変化させることを特徴とする請求項１のエンジン制御装置。
【請求項３】
前記データを前記ＲＯＭからキャッシュメモリに転送しておく所定角度を、エンジン側からのＮＥ信号を逓倍して作成することを特徴とする請求項１又は請求項２のエンジン制御装置。
【請求項４】
ＣＰＵとキャッシュメモリとＲＯＭとを備えるエンジン制御装置であって、
所定処理が予め定められた時間周期で繰り返される時間同期処理において、前記所定処理が実行される時刻から所定時間前に、前記処理に用いられるデータを前記ＲＯＭからキャッシュメモリに転送しておくことを特徴とするエンジン制御装置。
【請求項５】
ＣＰＵとキャッシュメモリとＲＯＭとを備えるエンジン制御装置であって、
予め定められたエンジン角度周期で繰り返される角度同期処理が実行される角度以前の所定角度にて、前記角度同期処理に用いられるデータを前記ＲＯＭから前記キャッシュメモリに転送しておき、
予め定められた時間周期で繰り返される時間同期処理が実行される時刻から所定時間前に、前記時間同期処理に用いられるデータを前記ＲＯＭから前記キャッシュメモリに転送しておくことを特徴とするエンジン制御装置。
【請求項６】
前記角度同期処理又は前記時間同期処理中は、前記キャッシュメモリへの転送を行わないことを特徴とする請求項５のエンジン制御装置。
【請求項７】
前記角度同期処理又は前記時間同期処理中にキャッシュメモリへの転送のタイミングとなった際には、前記角度同期処理又は前記時間同期処理後に前記キャッシュメモリへの転送を行うことを特徴とする請求項５のエンジン制御装置。
【請求項８】
前記角度同期処理に用いられるデータの転送と、前記時間同期処理に用いられるデータの転送とが同時に発生する際に、角度同期処理に用いられるデータの転送を優先することを特徴とする請求項５のエンジン制御装置。
【請求項９】
前記角度同期処理に用いられるデータの転送と、前記時間同期処理に用いられるデータの転送とが同時に発生する際に、前記角度同期処理と前記時間同期処理とのいずれが先に発生するかを判断し、先に発生する同期処理に用いられるデータの転送を優先することを特徴とする請求項５のエンジン制御装置。
【請求項１０】
前記角度同期処理に用いられるデータの転送と、前記時間同期処理に用いられるデータの転送とが同時に発生した際に、データの転送を中断し、前記角度同期処理、前記時間同期処理を開始する際に、当該同期処理に用いられるデータの転送を行うことを特徴とする請求項５のエンジン制御装置。
【請求項１１】
ＣＰＵとＲＯＭとを備えるエンジン制御装置であって、
予め定められたエンジン角度周期で繰り返される角度同期処理に用いられるデータを前記ＲＯＭから転送するための角度同期処理用キャッシュメモリと、
予め定められた時間周期で繰り返される時間同期処理に用いられるデータを前記ＲＯＭから転送するための時間同期処理用キャッシュメモリとを備えることを特徴とするエンジン制御装置。
【請求項１２】
ＣＰＵとＲＯＭとＲＡＭとを備えるエンジン制御装置であって、
予め定められたエンジン角度周期で繰り返される角度同期処理に用いられるデータを前記ＲＯＭ及び前記ＲＡＭから転送するための角度同期処理用キャッシュメモリと、
予め定められた時間周期で繰り返される時間同期処理に用いられるデータを前記ＲＯＭ及び前記ＲＡＭから転送するための時間同期処理用キャッシュメモリとを備えることを特徴とするエンジン制御装置。
【請求項１３】
前記角度同期処理キャッシュメモリ及び前記時間同期処理用キャッシュメモリへはアイドルタスクを転送しないことを特徴とする請求項１１又は請求項１２のエンジン制御装置。
【請求項１４】
ＣＰＵとＲＯＭとＲＡＭとを備えるエンジン制御装置であって、
予め定められたエンジン角度周期で繰り返される角度同期処理に用いられるデータを前記ＲＯＭから転送するための角度同期処理ＲＯＭ用キャッシュメモリと、
前記角度同期処理に用いられるデータを前記ＲＡＭから転送するための角度同期処理ＲＡＭ用キャッシュメモリと、
予め定められた時間周期で繰り返される時間同期処理に用いられるデータを前記ＲＯＭから転送するための時間同期処理ＲＯＭ用キャッシュメモリと、
前記時間同期処理に用いられるデータを前記ＲＡＭから転送するための時間同期処理ＲＡＭ用キャッシュメモリとを備えることを特徴とするエンジン制御装置。
【請求項１５】
ＣＰＵとＲＯＭとキャッシュメモリを備えるエンジン制御装置であって、
前記キャッシュメモリにダイレクトマッピング方式を用い、データ幅とエントリ数とを制御内容に応じて切り換え得るように構成したことを特徴とするエンジン制御装置。
【請求項１６】
請求項１〜請求項１５のいずれか１のエンジン制御装置のキャッシュの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御装置のキャッシュ及びエンジン制御装置のキャッシュの制御方法に関するものである。
【背景技術】
【０００２】
キャッシュのヒット率を向上させる手法としては、最も長期に渡って使用されなかったブロックを置き換える（ＬＲＵ）や、過去の履歴により利用率の高いものを残す等の色々な方法がある。また、図２９（Ａ）に示すように、多くのマイクロコンピュータでは、キャッシュを命令キャッシュと、データキャッシュとに分ける構成を採用している。
ここで、エンジン制御においてキャッシュメモリを用いる技術として特許文献１が提案されている。
【特許文献１】特開平１０−２０７７６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
エンジン制御においては、上述した過去の履歴を用いてキャッシュのブロックの置き換えをした場合には、ヒットミスが発生して効率が悪い。これは、エンジン制御では、エンジンの回転軸の角度に応じて行う角度同期処理と、４ms毎、８ms毎等の予め定められた時間周期で繰り返される時間同期処理とを実行しているが、それぞれの処理で使用するフラッシュＲＯＭの領域が全く異なるため、例えば、図２９（Ｂ）に示すように、時間同期処理が続いてキャッシュに時間同期処理用のデータ（Ａ−１〜Ａ−８、Ａ−１０）が多く存在している場合に、角度同期処理が発生するとキャッシュのヒットミスが多発し、ミスペナルティによる読み出し時間が増加する。反対に、図２９（Ｃ）に示すように、角度同期処理用が続いてキャッシュに角度同期処理用データ（Ｂ−１、Ｂ−３、Ｂ−４、Ｂ−６）が多く存在している場合に、時間同期処理が発生しても、読み出し時間が増加して処理を高速に行うことができない。
【０００４】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、キャッシュのヒット率を向上させ得るエンジン制御装置及びエンジン制御装置のキャッシュの制御方法を提供することにある。
【発明の効果】
【０００５】
請求項１では、角度同期処理が実行される角度以前の所定角度にて、処理に用いられるデータをＲＯＭからキャッシュメモリに転送しておくため、キャッシュのヒット率が高まり、角度同期処理を短時間で完了することが可能になる。
【０００６】
請求項２では、データをＲＯＭからキャッシュメモリに転送しておく所定角度を、エンジン回転数に応じて変化させるため、エンジン回転が高くなると実行される周期の短くなる角度同期処理の始まる前に、キャッシュメモリへ必要なデータを転送しておくことができる。
【０００７】
請求項３では、データをＲＯＭからキャッシュメモリに転送しておく所定角度を、エンジン側からのＮＥ信号を逓倍して作成するため、最適なタイミングで、角度同期処理の始まる前にキャッシュメモリへ必要なデータを転送しておくことができる。
【０００８】
請求項４では、時間同期処理が実行される時刻から所定時間前に、処理に用いられるデータをＲＯＭからキャッシュメモリに転送しておくため、キャッシュのヒット率が高まり、時間同期処理を短時間で完了することが可能になる。
【０００９】
請求項５では、角度同期処理が実行される角度以前の所定角度にて、角度同期処理に用いられるデータをＲＯＭからキャッシュメモリに転送しておき、時間同期処理が実行される時刻から所定時間前に、時間同期処理に用いられるデータをＲＯＭからキャッシュメモリに転送しておくため、キャッシュのヒット率が高まり、角度同期処理用及び時間同期処理を短時間で完了することが可能になる。
【００１０】
請求項６では、角度同期処理又は時間同期処理中は、キャッシュメモリへデータの転送を行わないため、角度同期処理及び時間同期処理を中断させることがない。
【００１１】
請求項７では、角度同期処理又は時間同期処理中にキャッシュメモリへの転送のタイミングとなった際に、角度同期処理又は時間同期処理後にキャッシュメモリへの転送を行う。このため、角度同期処理及び時間同期処理を中断させることなく、処理に用いられるデータをＲＯＭからキャッシュメモリに転送でき、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００１２】
請求項８では、角度同期処理に用いられるデータの転送と、時間同期処理に用いられるデータの転送とが同時に発生する際に、角度同期処理に用いられるデータの転送を優先する。このため、エンジン回転角度に対応させて正確なタイミングで行わなければならない角度同期処理に用いられるデータがキャッシュメモリに転送されており、キャッシュのヒット率が高まり、角度同期処理をエンジン回転角度に正確に対応させて完了することが可能になる。
【００１３】
請求項９では、角度同期処理に用いられるデータの転送と、時間同期処理に用いられるデータの転送とが同時に発生する際に、角度同期処理と時間同期処理とのいずれが先に発生するかを判断し、先に発生する同期処理に用いられるデータの転送を優先する。このため、角度同期処理用、時間同期処理用のいずれにおいても、キャッシュ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００１４】
請求項１０では、角度同期処理に用いられるデータの転送と、時間同期処理に用いられるデータの転送とが同時に発生した際に、データの転送を中断し、角度同期処理、時間同期処理を開始する際に、当該同期処理に用いられるデータの転送を行う。このため、角度同期処理、時間同期処理のいずれにおいても、キャッシュ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００１５】
請求項１１では、予め定められたエンジン角度周期で繰り返される角度同期処理に用いられるデータをＲＯＭから転送するための角度同期処理用キャッシュメモリと、予め定められた時間周期で繰り返される時間同期処理に用いられるデータをＲＯＭから転送するための時間同期処理用キャッシュメモリとを別々に備える。このため、時間同期処理が続いた後に角度同期処理が発生しても、反対に、角度同期処理が続いた後に時間同期処理が発生しても、キャッシュ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００１６】
請求項１２では、角度同期処理に用いられるデータをＲＯＭ及びＲＡＭから転送するための角度同期処理用キャッシュメモリと、時間同期処理に用いられるデータをＲＯＭ及びＲＡＭから転送するための時間同期処理用キャッシュメモリとを別々に備える。このため、時間同期処理が続いた後に角度同期処理が発生しても、反対に、角度同期処理が続いた後に時間同期処理が発生しても、キャッシュ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００１７】
請求項１３では、角度同期処理キャッシュメモリ及び時間同期処理用キャッシュメモリへは処理スピードを必要としないアイドルタスクを転送しないため、処理スピードを必要とする角度同期処理、時間同期処理に用いられるデータがキャッシュ内に入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００１８】
請求項１４では、角度同期処理に用いられるデータをＲＯＭから転送するための角度同期処理ＲＯＭ用キャッシュメモリと、角度同期処理に用いられるデータをＲＡＭから転送するための角度同期処理ＲＡＭ用キャッシュメモリと、時間同期処理に用いられるデータをＲＯＭから転送するための時間同期処理ＲＯＭ用キャッシュメモリと、時間同期処理に用いられるデータをＲＡＭから転送するための時間同期処理ＲＡＭ用キャッシュメモリとを別々に備える。このため、時間同期処理が続いた後に角度同期処理が発生しても、反対に、角度同期処理が続いた後に時間同期処理が発生しても、キャッシュ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００１９】
請求項１５では、キャッシュメモリのデータ幅とエントリ数とを制御内容に応じて切り換え得るように構成してあるため、分岐命令が多いデータ（プログラム）では、データ幅を狭めエントリ数を大きくすることでヒット率を高め、反対に、分岐命令の少ないデータ（プログラム）では、データ幅を広げ、エントリ数を少なくすることで効率的データをキャッシュ内に保持させることができる。
【発明を実施するための最良の形態】
【００２０】
[第１実施形態]
本発明の第１実施形態に係るエンジン制御ユニット（ＥＣＵ）の構成について図１を参照して説明する。ＥＣＵ１０上に実装されているマイクロコンピュータ２０内には、ＣＰＵ２２と、キャッシュメモリ２４、ＲＯＭ２６、ＲＡＭ２８、入出力コントローラ３０とが設けられ、これらはバス３２を介して接続されている。ＥＣＵ１０は、ＥＣＵコネクタ１２により図示しないエンジン側とハーネスを介して接続されている。入出力コントローラ３０には、エンジン側からのＮＥ信号（エンジン回転信号）が加えられるようになっている。
【００２１】
ＣＰＵ２２での処理は、ＮＥ信号（ＮＥ信号の例えば、３０°ＣＡ（クランク角度）毎）を元に行う角度同期処理と、内部タイマーにより例えば４ms、８ms、１６msのタイミング行う時間同期処理とに大きく分けられる。ここで、角度同期処理用では、燃料噴射量、燃料噴射時期、点火タイミング等の各気筒毎に適切な燃焼を行わせる制御を実行し、４msの時間同期処理では、冷却水温、気温、気圧等の種々のパラメータに応じて上記角度同期処理用での制御を補正するための処理を実行する。８ms、１６msの時間同期処理では、水温異常検出、油圧低下異常等の異常検出のための処理を実行している。
【００２２】
図２は第１実施形態でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示しており、図３（Ａ）、（Ｂ）はこのタイミングチャートであり、図４はキャッシュへのデータ転送のフローチャートである。
図３（Ａ）は、エンジンの低回転時（３０００rpm未満）のデータ転送を示し。図３（Ｂ）は、高回転時（３０００rpm以上）のデータの転送を示している。ＮＥ信号は、クランク角度５度毎にハイ−ローが切り替わるようになっており、図３（Ａ）に示すようにエンジンの低回転時には、２５°ＣＡのタイミングでＲＯＭ２６からデータをキャッシュメモリ２４へ転送し、３０°ＣＡの角度同期処理を実行する。転送開始のアドレスは任意に設定できるよう構成され、転送開始のアドレスから決められたデータ容量分キャッシュメモリ２４へ転送する。即ち、キャッシュサイズ分の容量まで転送可能である。
【００２３】
一方、図３（Ｂ）に示すようにエンジンの高回転時には、２０°ＣＡのタイミングでＲＯＭ２６からデータをキャッシュメモリ２４へ転送し、３０°ＣＡのタイミングで角度同期処理を実行する。
【００２４】
図４は、このキャッシュメモリ２４への転送のタイミングの切り換えを示している。
ＣＰＵ２２は、エンジン回転が３０００rpm以上かを判断し（Ｓ１２）、３０００rpm未満の場合には（Ｓ１２：Ｎｏ）、２５°ＣＡのタイミングでキャッシュメモリ２４への転送を行い（Ｓ１４）、３０００rpm以上の場合には（Ｓ１２：Ｙｅｓ）、２０°ＣＡのタイミングでキャッシュメモリ２４への転送を行う（Ｓ１６）。なお、この例では、エンジン回転に応じてキャッシュ転送のタイミングを切り換えたが、例えば、急減速、急加速の際に、キャッシュ転送のタイミングを早めることもできる。
【００２５】
第１実施形態では、高回転や急減速、急加速等においてキャッシュへの転送のタイミングを切り換え、早くすることで、角度同期処理を開始するタイミングには確実にデータがキャッシュメモリ２４に保持されていることになり、角度同期処理を正確なタイミングで終了させることが可能になる。
【００２６】
[第１実施形態の改変例１]
以下、本発明の第１実施形態の改変例１に係るＥＣＵ１０について説明する。ＥＣＵ１０の構成は、図１を参照して上述した第１実施形態と同様であるため説明を省略する。
図５は、第１実施形態の改変例１に係るＥＣＵ１０でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示すタイミングチャートである。
第１実施形態の改変例１では、ＣＰＵ２２が、ＮＥ信号を逓倍することで、１°ＣＡ毎のタイミングを生成し、この１°ＣＡをカウントするハードカウンタを内蔵している。このハードカウンタでの２７°ＣＡのタイミングでキャッシュメモリ２４への転送を行う。ここでは、２７°ＣＡの例を挙げたが、この値は種々であり、第１実施形態の構成と組み合わせて、例えば、高速時に２４°ＣＡのタイミングで、低速時に２７°ＣＡのタイミングでデータ転送を行うことも可能である。
【００２７】
この第１実施形態の改変例１では、データをＲＯＭ２６からキャッシュメモリ２４に転送しておく所定角度を、エンジン側からのＮＥ信号を逓倍して作成するため、最適なタイミングで、角度同期処理の始まる前にキャッシュメモリへ必要なデータを転送しておくことができる。
【００２８】
[第１実施形態の改変例２]
以下、本発明の第１実施形態の改変例２に係るＥＣＵ１０について説明する。ＥＣＵ１０の構成は、図１を参照して上述した第１実施形態と同様であるため説明を省略する。
図６は第１実施形態の改変例２でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示しており、図７は、第１実施形態の改変例２に係るＥＣＵ１０でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示すタイミングチャートである。
【００２９】
第１実施形態の改変例２では、ＮＥ信号の２５°ＣＡのタイミングでＲＯＭ２６から角度同期処理用データをキャッシュメモリ２４へ転送し、ＣＰＵ２２のフリーランタイマ（内部タイマー）の値により、時間同期処理の０．２ms前の３．８msタイミングで該時間同期処理用のデータをキャッシュメモリ２４へ転送する。
【００３０】
なお、図示しないが角度同期処理と時間同期処理とが重なった場合には、処理の調停が行われる。ここでは、角度同期処理側に高い優先順位が付けられている。即ち、時間同期処理中に角度同期処理要求が来ると、時間同期処理を一時停止し、角度同期処理を実行する。そして、角度同期処理が終了すると、時間同期処理を再開する。
【００３１】
第１実施形態の改変例２では、角度同期処理が実行される角度以前の所定角度にて、角度同期処理に用いられるデータをＲＯＭからキャッシュメモリに転送しておき、時間同期処理が実行される時刻から所定時間前に、時間同期処理に用いられるデータをＲＯＭからキャッシュメモリに転送しておくため、キャッシュのヒット率が高まり、角度同期処理用及び時間同期処理を短時間で完了することが可能になる。
【００３２】
[第１実施形態の改変例３]
以下、本発明の第１実施形態の改変例３に係るＥＣＵ１０について説明する。
図８は、第１実施形態の改変例３に係るＥＣＵ１０でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示すタイミングチャートである。図９（Ａ）は、第１実施形態の改変例３での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図９（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。
第１実施形態の改変例３では、図８中に示すように時間同期処理と角度同期キャッシュ転送、あるいは、角度同期処理と時間同期キャッシュ転送とが重なった場合には、キャッシュへの転送を行わない。即ち、図９（Ａ）に示すように、２５°ＣＡ時処理においては、キャッシュ転送のタイミングで、時間同期処理を実行中かを判断し（Ｓ２２）、時間同期処理を実行中は（Ｓ２２：Ｙｅｓ）、キャッシュ転送を行わず、時間同期処理を実行していない場合に（Ｓ２２：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ角度同期処理用のデータを転送する（Ｓ２４）。
【００３３】
一方、図９（Ｂ）に示すように３．８msの時間同期キャッシュ転送のタイミングで、角度同期処理を実行中かを判断し（Ｓ２６）、角度同期処理の実行中は（Ｓ２６：Ｙｅｓ）、キャッシュ転送を行わず、角度同期処理を実行していない場合に（Ｓ２６：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ時間同期処理用データを転送する（Ｓ２８）。
【００３４】
第１実施形態の改変例３では、角度同期処理又は時間同期処理中は、キャッシュメモリへデータの転送を行わないため、角度同期処理及び時間同期処理を中断、あるいは、開始タイミングを遅らさせることがない。なお、第１実施形態の改変例３では、キャッシュに必要なデータが入っていない場合には、ＲＯＭ２６からキャッシュメモリ２４へデータを読み込みながら処理を行うことになる。
【００３５】
[第１実施形態の改変例４]
以下、本発明の第１実施形態の改変例４に係るＥＣＵ１０について説明する。
図１０は、第１実施形態の改変例４に係るＥＣＵ１０でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示すタイミングチャートである。
【００３６】
第１実施形態の改変例４では、他の処理と重なったためキャッシュへのデータ転送が行えなかった場合に、当該他の処理が終わった後に転送を行う。図１０に示すように、角度同期処理用のキャッシュ転送のタイミング（２５°ＣＡ：タイミングｔ１）に、時間同期処理を行っている場合には、角度同期処理が起動する３０℃Ａのタイミング（タイミングｔ２）で、時間同期処理を中断し角度同期処理用のキャッシュ転送を行った後、角度同期処理を実行する。そして、角度同期処理が終了した後、中断していた時間同期処理を再開する。また、時間同期処理用のキャッシュ転送のタイミング（３．８ms：タイミングｔ３）に、角度同期処理を行っている場合には、当該角度同期処理が終了（タイミングｔ４）してから、時間同期処理用のキャッシュ転送を行う。
【００３７】
この処理を図１１、図１２のフローチャートを参照して説明する。図１１（Ａ）は、第１実施形態の改変例４での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図１１（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。図１２（Ａ）は、角度同期の割込処理のフローチャートであり、図１２（Ｂ）は、時間同期の割込処理のフローチャートである。
図１１（Ａ）に示すように、２５°ＣＡ時処理においては、キャッシュ転送のタイミングで、時間同期処理を実行中かを判断し（Ｓ３２）、時間同期処理を実行中は（Ｓ３２：Ｙｅｓ）、角度同期キャッシュ転送待ち状態のフラグをセットする（Ｓ３６）。時間同期処理を実行していない場合には（Ｓ３２：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ角度同期処理用のデータを直ちに転送する（Ｓ３４）。
【００３８】
一方、図１１（Ｂ）に示すように３．８msの時間同期処理用のデータキャッシュ転送のタイミングで、角度同期処理を実行中かを判断し（Ｓ４２）、角度同期処理の実行中は（Ｓ４２：Ｙｅｓ）、時間同期キャッシュ転送待ち状態のフラグをセットする（Ｓ４６）。角度同期処理を実行していない場合には（Ｓ４２：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ時間同期処理用データを直ちに転送する（Ｓ４４）。
【００３９】
図１２（Ａ）は、３０°ＣＡでの角度同期の割込処理のフローチャートを示している。３０°ＣＡのタイミングで角度同期処理用のキャッシュ転送待ち状態かを、角度同期キャッシュ転送待ち状態のフラグがセットされているか否かにより判断し（Ｓ５２）、角度同期キャッシュ転送待ち状態のフラグがセットされていない、即ち、角度同期処理用データが既に転送されているときには（５２：Ｎｏ）、Ｓ５８へ移行し、直ちに角度同期処理を開始する。他方、角度同期キャッシュ転送待ち状態のフラグがセットされている、即ち、角度同期処理用データが転送されていない場合には（５２：Ｙｅｓ）、角度同期処理用データをキャッシュへ転送し（Ｓ５４）、角度同期キャッシュ転送待ち状態のフラグをリセットした後（Ｓ５６）、角度同期処理を実行する（Ｓ５８）。
【００４０】
引き続き、時間同期処理用のキャッシュ転送待ち状態かを、時間同期キャッシュ転送待ち状態のフラグがセットされているか否かにより判断し（Ｓ６０）、時間同期キャッシュ転送待ち状態のフラグがセットされていない、即ち、時間同期処理用のデータが既に転送されているときには（６０：Ｎｏ）、処理を終了する。他方、時間同期キャッシュ転送待ち状態のフラグがセットされている、即ち、時間同期処理用のデータの転送が完了していない場合には（６０：Ｙｅｓ）、時間同期処理用のデータをキャッシュへ転送し（Ｓ６２）、時間同期キャッシュ転送待ち状態のフラグをリセットした後（Ｓ６４）、処理を終了する。
【００４１】
図１２（Ｂ）は、４msでの時間同期の割込処理のフローチャートを示している。
４msの時間同期の割込処理のタイミングにおいて、時間同期処理を実行する（Ｓ６８）。
【００４２】
なお、図示しないが角度同期処理と時間同期処理とが重なった場合には、処理の調停が行われる。ここでは、角度同期処理側に高い優先順位が付けられている。即ち、時間同期処理中に角度同期処理要求が来ると、時間同期処理を一時停止し、角度同期処理を実行する。そして、角度同期処理が終了すると、時間同期処理を再開する。
【００４３】
なお、第１実施形態の改変例４では、時間同期処理用データのキャッシュへの転送ができなかった場合に、角度同期処理が完了した後に、当該時間同期処理用データの転送を行ったが、角度同期処理用データのキャッシュ転送ができなかった場合に、時間同期処理が完了した後に、当該角度同期処理用データの転送を行うことも可能である。
【００４４】
第１実施形態の改変例４では、角度同期処理又は時間同期処理中にキャッシュメモリへの転送のタイミングとなった際に、角度同期処理又は時間同期処理後にキャッシュメモリへの転送を行う。このため、角度同期処理及び時間同期処理を中断させることなく、処理に用いられるデータをＲＯＭからキャッシュメモリに転送でき、キャッシュのヒット率が高まり、角度同期処理を短時間で完了することが可能になる。
【００４５】
[第１実施形態の改変例５]
以下、本発明の第１実施形態の改変例５に係るＥＣＵ１０について説明する。
図１３は、第１実施形態の改変例５に係るＥＣＵ１０でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示すタイミングチャートである。
【００４６】
第１実施形態の改変例５では、時間同期処理用データのキャッシュ転送タイミングと、角度同期処理用データのキャッシュ転送タイミングとが重なった場合に、角度同期処理用データのキャッシュ転送を優先する。即ち、図１３中に示すように３．８msでの時間同期処理用データ転送のタイミング（ｔ５）と２５°ＣＡでの角度同期処理用データ転送のタイミング（ｔ６）とが重なった場合には、時間同期処理用データ転送をキャンセルし、角度同期処理用データの転送を行う。
【００４７】
この処理を図１４のフローチャートを参照して説明する。図１４（Ａ）は、第１実施形態の改変例４での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図１４（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。  図１４（Ａ）に示すように、２５°ＣＡ時処理においては、角度同期処理用データのキャッシュ転送のタイミングで、時間同期処理用データの転送中かを判断し（Ｓ７２）、時間同期処理用データの転送中は（Ｓ７２：Ｙｅｓ）、時間同期処理用データの転送をキャンセルした後（Ｓ７４）、キャッシュメモリ２４へ角度同期処理用データを転送する（Ｓ７６）。他方、時間同期処理用データを転送していない間は（Ｓ７２：Ｎｏ）、角度同期処理用のデータを直ちに転送する（Ｓ７６）。
【００４８】
一方、図１４（Ｂ）に示すように３．８msの時間同期用データのキャッシュ転送のタイミングで、角度同期処理用データを転送中かを判断し（Ｓ８０）、角度同期処理の実行中は（Ｓ８０：Ｙｅｓ）、時間同期用データのキャッシュ転送を行うことなく処理を終了する。角度同期処理用データを転送していない場合には（Ｓ８０：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ時間同期処理用データを転送する（Ｓ８２）。
【００４９】
第１実施形態の改変例５では、角度同期処理に用いられるデータの転送と、時間同期処理に用いられるデータの転送とが同時に発生する際に、角度同期処理に用いられるデータの転送を優先する。このため、エンジン回転角度に対応させて正確なタイミングで行わなければならない角度同期処理に用いられるデータがキャッシュメモリに転送されており、キャッシュのヒット率が高まり、角度同期処理を短時間で完了することが可能になる。
【００５０】
[第１実施形態の改変例６]
以下、本発明の第１実施形態の改変例６に係るＥＣＵ１０について説明する。
図１５は、第１実施形態の改変例６に係るＥＣＵ１０でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示すタイミングチャートである。
【００５１】
第１実施形態の改変例６では、時間同期処理用データのキャッシュ転送タイミングと、角度同期処理用データのキャッシュ転送タイミングとが重なった場合に、時間同期の割込処理と角度同期の割込処理とのいずれが先に来るかを予測し、先に来る割込処理用のデータを転送する。図１５に示すように、３．８msでの時間同期処理用データの転送（タイミングｔ７）と、２５°ＣＡでの角度同期処理用データの転送（タイミングｔ８）とが重なった場合には、４msでの時間同期の割込処理（タイミングｔ９）と３０°ＣＡでの角度同期の割込処理（タイミングｔ１０）とのいずれが先に来るかを予測し、この場合には、４msでの時間同期の割込処理（タイミングｔ９）が先に来るため、角度同期処理用データの転送をキャンセルして、時間同期処理用データを転送する。また、２５°ＣＡでの角度同期処理用データの転送（タイミングｔ１１）と、３．８msでの時間同期処理用データの転送（タイミングｔ１２）とが重なった場合には、３０°ＣＡでの角度同期の割込処理（タイミングｔ１３）と４msでの時間同期の割込処理（タイミングｔ１４）とのいずれが先に来るかを予測し、この場合には、３０°ＣＡでの角度同期の割込処理（タイミングｔ１３）が先に来るため、時間同期処理用データの転送をキャンセルして、角度同期処理用データを転送する。
【００５２】
この処理を図１６、図１７のフローチャートを参照して説明する。図１６は、第１実施形態の改変例６での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図１７は、３．８ms時処理のキャッシュへのデータ転送のフローチャートである。
図１６に示すように、２５°ＣＡ時処理においては、時間同期処理用データのキャッシュ転送のタイミングで、時間同期処理用データの転送中かを判断し（Ｓ１０２）、時間同期処理用データを転送していない場合は（Ｓ１０２：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ角度同期処理用データの転送を開始する（Ｓ１１２）。時間同期処理用データの転送中は（Ｓ１０２：Ｙｅｓ）、４msでの時間同期の割込処理と３０°ＣＡでの角度同期の割込処理とのいずれが先に来るかを判断する（Ｓ１０４）。４msでの時間同期の割込処理が先に来る場合には、角度同期キャッシュ転送待ち状態のフラグをセットした後（Ｓ１０６）、処理を終了する。他方、３０°ＣＡでの角度同期の割込処理が先に来る場合には、時間同期処理用データの転送をキャンセルした後（Ｓ１０８）、時間同期キャッシュ転送待ち状態のフラグをセットし（Ｓ１１０）、角度同期処理用データの転送を開始する（Ｓ１１２）。
【００５３】
図１７に示すように３．８msの時間同期用データのキャッシュ転送のタイミングで、角度同期処理用データを転送中かを判断し（Ｓ１２２）、角度同期処理用データを転送していない場合は（Ｓ１２２：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ時間同期処理用データの転送を開始する（Ｓ１３２）。角度同期処理用データの転送中は（Ｓ１２２：Ｙｅｓ）、４msでの時間同期の割込処理と３０°ＣＡでの角度同期の割込処理とのいずれが先に来るかを判断する（Ｓ１２４）。３０°ＣＡでの角度同期の割込処理が先に来る場合には、時間同期キャッシュ転送待ち状態のフラグをセットした後（Ｓ１２６）、処理を終了する。他方、４msでの時間同期の割込処理が先に来る場合には、角度同期処理用データの転送をキャンセルした後（Ｓ１２８）、角度同期キャッシュ転送待ち状態のフラグをセットし（Ｓ１３０）、時間同期処理用データの転送を開始する（Ｓ１３２）。角度同期の割込処理及び時間同期の割込処理は、図１２を参照して上述した第１実施形態の改変例４と同様であるため説明を省略する。
【００５４】
第１実施形態の改変例６では、角度同期処理に用いられるデータの転送と、時間同期処理に用いられるデータの転送とが同時に発生する際に、角度同期処理と時間同期処理とのいずれが先に発生するかを判断し、先に発生する同期処理に用いられるデータの転送を優先する。このため、角度同期処理用、時間同期処理用のいずれにおいても、キャッシュ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００５５】
[第１実施形態の改変例７]
以下、本発明の第１実施形態の改変例７に係るＥＣＵ１０について説明する。
図１８は、第１実施形態の改変例７に係るＥＣＵ１０でのＲＯＭ２６からキャッシュメモリ２４へのデータの転送を示すタイミングチャートである。
【００５６】
第１実施形態の改変例７では、時間同期処理用データのキャッシュ転送タイミングと、角度同期処理用データのキャッシュ転送タイミングとが重なった場合に、データの転送をキャンセルする。図１８に示すように、３．８msでの時間同期処理用データの転送（タイミングｔ１４）と、２５°ＣＡでの角度同期処理用データの転送（タイミングｔ１５）とが重なった場合には、共にデータの転送をキャンセルする。また、２５°ＣＡでの角度同期処理用データの転送（タイミングｔ１６）と、３．８msでの時間同期処理用データの転送（タイミングｔ１７）とが重なった場合には、共にデータの転送をキャンセルする。
【００５７】
この処理を図１９のフローチャートを参照して説明する。図１９（Ａ）は、第１実施形態の改変例７での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図１９（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。  図１９（Ａ）に示すように、２５°ＣＡ時処理においては、角度同期処理用データのキャッシュ転送のタイミングで、時間同期処理用データの転送中かを判断し（Ｓ１４２）、時間同期処理用データの転送中ではない場合は（Ｓ１４２：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ角度同期処理用データを転送する（Ｓ１４８）。他方、時間同期処理用データの転送中の場合は（Ｓ１４２：Ｙｅｓ）、時間同期処理用データの転送をキャンセルした後（Ｓ１４４）、時間同期キャッシュ転送待ち状態のフラグをセットして（Ｓ１４６）、処理を終了する。
【００５８】
一方、図１４（Ｂ）に示すように３．８msの時間同期キャッシュ転送のタイミングで、角度同期処理用データを転送中かを判断し（Ｓ１５２）、角度同期処理用データの転送中ではない場合は（Ｓ１５２：Ｎｏ）、ＲＯＭ２６からキャッシュメモリ２４へ時間同期処理用データを転送する（Ｓ１５８）。他方、角度同期処理用データの転送中の場合は（Ｓ１５２：Ｙｅｓ）、角度同期処理用データの転送をキャンセルした後（Ｓ１５４）、角度同期キャッシュ転送待ち状態のフラグをセットして（Ｓ１５６）、処理を終了する。角度同期の割込処理及び時間同期の割込処理は、図１２を参照して上述した第１実施形態の改変例４と同様であるため説明を省略する。
【００５９】
第１実施形態の改変例７では、角度同期処理に用いられるデータの転送と、時間同期処理に用いられるデータの転送とが同時に発生した際に、データの転送を中断し、角度同期処理、時間同期処理を開始する際に、当該同期処理に用いられるデータの転送を行う。このため、角度同期処理、時間同期処理のいずれにおいても、キャッシュ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００６０】
[第２実施形態]
以下、本発明の第２実施形態に係るＥＣＵ１０について説明する。ＥＣＵ１０の構成は、図１を参照して上述した第１実施形態と同様であるため説明を省略する。
図２０は、第２実施形態に係るＥＣＵ１０でのキャッシュへのデータ転送の説明図である。第２実施形態では、エンジン制御が角度同期処理と時間同期処理とに大きく分割されていることに注目し、キャッシュメモリ自体を角度同期処理用キャッシュメモリ２４ａと時間同期処理用キャッシュメモリ２４ｔとに分割して設けてある。角度同期処理の割込やタスク処理においては、スイッチＳＷ１、スイッチＳＷ２をａ側に切り換え角度同期処理用キャッシュメモリ２４ａを用い、時間同期処理の割込やタスク処理においては、スイッチＳＷ１、スイッチＳＷ２をｔ側に切り換え時間同期処理用キャッシュメモリ２４ｔを用いることで、キャッシュのヒット率を高めてある。
【００６１】
この第２実施形態でのスイッチＳＷ１、スイッチＳＷ２の切り換えは、マイクロコンピュータのハードウェアーで行う。即ち、スイッチＳＷ１、スイッチＳＷ２を制御するキャッシュメモリ切替えコントローラ４０が、ＣＰＵ２２側から角度同期割込み処理信号を受けた際にはスイッチＳＷ１、スイッチＳＷ２をａ側に切り換え、時間同期割込み処理信号を受けた際にはスイッチＳＷ１、スイッチＳＷ２をｔ側に切り換えるよう構成されている。
【００６２】
スイッチＳＷ１、スイッチＳＷ２の切り換えをハードウェアーでなくソフトウエアーで行うことも可能である。
この切替の処理を図２１を参照して説明する。図２１（Ａ）は、第２実施形態に係るＥＣＵでの角度同期割込み処理のフローチャートであり、図２１（Ｂ）は、時間同期割込み処理のフローチャートである。
図２１（Ａ）に示すように角度同期割込み処理では、角度同期処理用キャッシュメモリ２４ａ側に切り換えた後（ソフトウエアーで切り換えレジスタに書き込み：Ｓ２０２）、角度同期処理を実行する（Ｓ２０４）。図２１（Ｂ）に示すように時間同期割込み処理では、時間同期処理用キャッシュメモリ２４ｔ側に切り換えた後（ソフトウエアーで切り換えレジスタに書き込み：Ｓ２１２）、時間同期処理を実行する（Ｓ２０４）。
【００６３】
第２実施形態では、時間同期処理が続いた後に角度同期処理が発生しても、反対に、角度同期処理が続いた後に時間同期処理が発生しても、角度同期処理用キャッシュメモリ２４ａと時間同期処理用キャッシュメモリ２４ｔ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００６４】
[第２実施形態の改変例１]
以下、本発明の第２実施形態の改変例１に係るＥＣＵ１０について説明する。
図２２は、第２実施形態の改変例１のＥＣＵ１０でのキャッシュへのデータ転送の説明図である。第２実施形態の改変例１では、キャッシュメモリ自体を角度同期処理用キャッシュメモリ２４ａと時間同期処理用キャッシュメモリ２４ｔとに分割して設け、それぞれＲＯＭ２６、ＲＡＭ２８に接続してある。角度同期処理の割込やタスク処理においては、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３をａ側に切り換え角度同期処理用キャッシュメモリ２４ａを用い、時間同期処理の割込やタスク処理においては、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３をｔ側に切り換え時間同期処理用キャッシュメモリ２４ｔを用いることで、キャッシュのヒット率を高めてある。
【００６５】
第２実施形態の改変例１では、時間同期処理が続いた後に角度同期処理が発生しても、反対に、角度同期処理が続いた後に時間同期処理が発生しても、角度同期処理用キャッシュメモリ２４ａと時間同期処理用キャッシュメモリ２４ｔ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００６６】
[第２実施形態の改変例２]
以下、本発明の第２実施形態の改変例２に係るＥＣＵ１０について説明する。
図２３（Ａ）は、第２実施形態の改変例２のＥＣＵ１０でのキャッシュへのデータ転送の説明図である。第２実施形態の改変例２では、キャッシュメモリ自体を角度同期処理用キャッシュメモリ２４ａと時間同期処理用キャッシュメモリ２４ｔとに分割して設けると共に、ＲＯＭ２６、ＲＡＭ２８のアイドルタスク（所謂処理待ち状態や、レジスタの再設定などの特にスピードを要しない処理）からは分離してある。即ち、アイドルタスクにキャッシュを使うと、処理スピードが必要な角度同期処理、時間同期処理でのキャッシュヒット率が低下するからである。角度同期処理の割込やタスク処理においては、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３をａ側に切り換え角度同期処理用キャッシュメモリ２４ａを用い、時間同期処理の割込やタスク処理においては、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３をｔ側に切り換え時間同期処理用キャッシュメモリ２４ｔを用いることで、キャッシュのヒット率を高めてある。
【００６７】
第２実施形態の改変例２では、角度同期処理キャッシュメモリ及び時間同期処理用キャッシュメモリへは処理スピードを必要としないアイドルタスクを転送しないため、処理スピードを必要とする角度同期処理、時間同期処理に用いられるデータがキャッシュ内に入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。
【００６８】
[第２実施形態の改変例３]
以下、本発明の第２実施形態の改変例３に係るＥＣＵ１０について説明する。
図２３（Ｂ）は、第２実施形態の改変例３のＥＣＵ１０でのキャッシュへのデータ転送の説明図である。第２実施形態の改変例３では、角度同期処理用キャッシュメモリを角度同期処理用命令キャッシュメモリ２４ａｏと、角度同期処理用データキャッシュメモリ２４ａｄとに分割し、時間同期処理用キャッシュメモリを時間同期処理用命令キャッシュメモリ２４ｔｏと時間同期処理用データキャッシュメモリ２４ｔｄとに分割して設け、命令系の角度同期処理用命令キャッシュメモリ２４ａｏ及び時間同期処理用命令キャッシュメモリ２４ｔｏをＲＯＭ２６に接続し、データ系の角度同期処理用データキャッシュメモリ２４ａｄ及び時間同期処理用データキャッシュメモリ２４ｔｄをＲＡＭ２８に接続してある。角度同期処理の割込やタスク処理においては、スイッチＳＷ４、スイッチＳＷ５をａ側に切り換え角度同期処理用命令キャッシュメモリ２４ａｏ及び角度同期処理用データキャッシュメモリ２４ａｄを用い、時間同期処理の割込やタスク処理においては、スイッチＳＷ４、スイッチＳＷ５をｔ側に切り換え時間同期処理用命令キャッシュメモリ２４ｔｏ及び時間同期処理用データキャッシュメモリ２４ｔｄを用いる。
【００６９】
第２実施形態の改変例３では、時間同期処理が続いた後に角度同期処理が発生しても、反対に、角度同期処理が続いた後に時間同期処理が発生しても、角度同期処理用命令キャッシュメモリ２４ａｏ、角度同期処理用データキャッシュメモリ２４ａｄ、時間同期処理用命令キャッシュメモリ２４ｔｏ、時間同期処理用データキャッシュメモリ２４ｔｄ内に当該処理のデータが入っている確率が向上し、キャッシュのヒット率が高まり、角度同期処理、時間同期処理を短時間で完了することが可能になる。なお、第２実施形態の改変例３において、改変例２のようにアイドルタスクから分離することも好適である。
【００７０】
[第３実施形態]
以下、本発明の第３実施形態に係るＥＣＵ１０について説明する。第３実施形態は、ＥＣＵ１０の構成は上述した第１実施形態、第２実施形態と同様であり、第１実施形態、第２実施形態におけるキャッシュ内部の構造に関するものである。
図２４は、第３実施形態に係るＥＣＵ１０でのキャッシュ内部の構造を示している。第３実施形態では、ダイレクトマッピング方式を採用している。アドレス長は３２ビットとし、キャッシュデータの検索には、アドレス自体をタグフィールド、インデックスフィールドに分割し、フィールドの値を元にキャッシュ内にデータがあるかないかを検索する。
【００７１】
キャッシュには、データ幅とエントリ数とある。エントリ数は、アドレス中のインデックスフィールドのビット数により決まる。ビット数を例えば、８ビットとすると、エントリ数は２の８乗で２５６となる。ＣＰＵ２２がキャッシュメモリ２４を検索する際に、必要とするデータのアドレス中のインデックスフィールドの値により、どのエントリを検索するか決める。例えば、アドレスが０ｘ１２３４５０２４だった場合、インデックスフィールドの値は０２となり、エントリが０２のものを検索する。更に、アドレス中のタグフィールドとキャッシュのタグとを比較し、一致した場合はキャッシュヒットとなり、アドレス中のブロックオフセット値によりマルチプレックスされ、データが取り出される。
【００７２】
一方、キャッシュヒットせず、ミスした場合には、必要とするデータを取りに行き、キャッシュへ格納する。ここで、データをキャッシュへ格納する際に、一度に取ってくるデータのバイト数がデータ幅となる。図２４の場合には、データ幅は１６バイトになる。
【００７３】
エンジン制御では、例えば、吸気空気量から燃料の噴射量を決定する際に図２８（Ａ）に示すように、フローチャートを用いて制御を行った場合には、分岐命令が多いデータとなり、図２８（Ｂ）に示すように、数式モデル（例えば、Ｙ＝ｌｏｇ（Ｘ／１．２）＊２＋１）によって制御を行った場合には、分岐命令は少なくなる。
【００７４】
ここで、図２８に示すように０ｘ１２３４５０２０のデータをキャッシュに読み込んだ場合、分岐命令が無ければ、ＣＰＵ２２は、０ｘ１２３４５０２１、０ｘ１２３４５０２２・・・と順に実行するため、キャッシュは連続してヒットする。一方、分岐命令があると、アドレスがジャンプするため、キャッシュミスが発生することになる。この場合には、１６バイト分読み込んだものを全て使用する前に、他のエントリに移ることになる。係る際には、データ幅をあまり多くとっても意味がない。
【００７５】
このため、第３実施形態では、データ幅とエントリ数とを分岐命令が多いか否かにより切り換えるように構成されている。
即ち、図２８（Ａ）を参照して上述した分岐命令の多いフローチャートによる制御の際には、図２５に示すようにデータ幅を８バイトに狭め、エントリ数を５１２にする。一方、図２８（Ｂ）を参照して上述した分岐命令の少ない数値モデルによる制御の際には、図２６に示すようにデータ幅を広げ、エントリ数を２５６にする。
【００７６】
図２７はキャッシュ構造の切り換えのフローチャートを示している。
ＣＰＵ２２は、次に実行する処理がフローチャートによる制御であるか、数値モデルによる制御であるかを判断し（Ｓ３１２）、数値モデルによる制御の場合には（Ｓ３１２：Ｎｏ）、図２６に示すデータ幅１６バイトの構成とする（Ｓ３１４）。フローチャートによる制御の場合には（Ｓ３１２：Ｙｅｓ）、図２５に示すデータ幅８バイトの構成とする（Ｓ３１６）。
【００７７】
第３実施形態では、キャッシュメモリのデータ幅とエントリ数とを制御内容に応じて切り換え得るように構成してあるため、分岐命令が多いデータ（プログラム）では、データ幅を狭めエントリ数を大きくすることでヒット率を高め、反対に、分岐命令の少ないデータ（プログラム）では、データ幅を広げ、エントリ数を少なくすることで効率的データをキャッシュ内に保持させることができる。
【図面の簡単な説明】
【００７８】
【図１】本発明の第１実施形態に係るＥＣＵの構成を示すブロック図である。
【図２】図１に示すＥＣＵでのキャッシュへのデータ転送の説明図である。
【図３】図３（Ａ）、図３（Ｂ）は第１実施形態に係るキャッシュへのデータ転送のタイミングチャートである。
【図４】第１実施形態に係るキャッシュへのデータ転送のフローチャートである。
【図５】第１実施形態の第１改変例に係るキャッシュへのデータ転送のタイミングチャートである。
【図６】第１実施形態の改変例２に係るＥＣＵでのキャッシュへのデータ転送の説明図である。
【図７】第１実施形態の第２改変例に係るキャッシュへのデータ転送のタイミングチャートである。
【図８】第１実施形態の第３改変例に係るキャッシュへのデータ転送のタイミングチャートである。
【図９】図９（Ａ）は第１実施形態の改変例３に係る２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図９（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。
【図１０】第１実施形態の改変例４に係るキャッシュへのデータ転送のタイミングチャートである。
【図１１】図１１（Ａ）は、第１実施形態の改変例４での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図１１（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。
【図１２】図１２（Ａ）は、第１実施形態の改変例４での角度同期の割込処理のフローチャートであり、図１２（Ｂ）は、時間同期の割込処理のフローチャートである。
【図１３】第１実施形態の改変例５に係るキャッシュへのデータ転送のタイミングチャートである。
【図１４】図１４（Ａ）は、第１実施形態の改変例５での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図１４（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。
【図１５】第１実施形態の改変例６に係るキャッシュへのデータ転送のタイミングチャートである。
【図１６】第１実施形態の改変例６での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートである。
【図１７】第１実施形態の改変例６での３．８ms時処理のキャッシュへのデータ転送のフローチャートである。
【図１８】第１実施形態の改変例７に係るキャッシュへのデータ転送のタイミングチャートである。
【図１９】図１９（Ａ）は、第１実施形態の改変例７での２５°ＣＡ時処理のキャッシュへのデータ転送のフローチャートであり、図１９（Ｂ）は３．８ms時処理のキャッシュへのデータ転送のフローチャートである。
【図２０】第２実施形態に係るＥＣＵでのキャッシュへのデータ転送の説明図である。
【図２１】図２１（Ａ）は、第２実施形態に係るＥＣＵでの角度同期割込み処理のフローチャートであり、図２１（Ｂ）は、時間同期割込み処理のフローチャートである。
【図２２】第２実施形態の改変例１に係るＥＣＵでのキャッシュへのデータ転送の説明図である。
【図２３】図２３（Ａ）は、第２実施形態の改変例２に係るＥＣＵでのキャッシュへのデータ転送の説明図であり、図２３（Ｂ）は、第２実施形態の改変例３に係るＥＣＵでのキャッシュへのデータ転送の説明図である。
【図２４】第３実施形態のキャッシュ内の構成を示す説明図である。
【図２５】第３実施形態のデータ幅を短くしたキャッシュ内の構成を示す説明図である。
【図２６】第３実施形態のデータ幅を長くしたキャッシュ内の構成を示す説明図である。
【図２７】第３実施形態のキャッシュの構成を切り換える処理のフローチャートである。
【図２８】図２８（Ａ）は第３実施形態でのフローチャートでの制御の説明図であり、図２８（Ｂ）は、数式モデルによる制御の説明図である。
【図２９】図２９（Ａ）は、従来技術のキャッシュを命令キャッシュとデータキャッシュとに分ける構成の説明図であり、図２９（Ｂ）は、従来技術のキャッシュに時間同期処理用のデータが多く存在している場合の説明図であり、図２９（Ｃ）は、従来技術のキャッシュに角度同期処理用データが多く存在している場合の説明図である。
【符号の説明】
【００７９】
１０  エンジン制御ユニット（エンジン制御装置）
２０  マイクロコンピュータ
２２  ＣＰＵ
２４  キャッシュメモリ
２４ａ  角度同期処理用キャッシュメモリ
２４ｔ  時間同期処理用キャッシュメモリ
２４ａｏ  角度同期処理用命令キャッシュメモリ
２４ａｄ  角度同期処理用データキャッシュメモリ
２４ｔｏ  時間同期処理用命令キャッシュメモリ
２４ｔｄ  時間同期処理用データキャッシュメモリ
２６  ＲＯＭ
２８  ＲＡＭ
３０  入出力コントローラ
【図１】
2005215891.tif 000003
【図２】
2005215891.tif 000004
【図３】
2005215891.tif 000005
【図４】
2005215891.tif 000006
【図５】
2005215891.tif 000007
【図６】
2005215891.tif 000008
【図７】
2005215891.tif 000009
【図８】
2005215891.tif 000010
【図９】
2005215891.tif 000011
【図１０】
2005215891.tif 000012
【図１１】
2005215891.tif 000013
【図１２】
2005215891.tif 000014
【図１３】
2005215891.tif 000015
【図１４】
2005215891.tif 000016
【図１５】
2005215891.tif 000017
【図１６】
2005215891.tif 000018
【図１７】
2005215891.tif 000019
【図１８】
2005215891.tif 000020
【図１９】
2005215891.tif 000021
【図２０】
2005215891.tif 000022
【図２１】
2005215891.tif 000023
【図２２】
2005215891.tif 000024
【図２３】
2005215891.tif 000025
【図２４】
2005215891.tif 000026
【図２５】
2005215891.tif 000027
【図２６】
2005215891.tif 000028
【図２７】
2005215891.tif 000029
【図２８】
2005215891.tif 000030
【図２９】
2005215891.tif 000031