JP4882625B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ Download PDF

Info

Publication number
JP4882625B2
JP4882625B2 JP2006250994A JP2006250994A JP4882625B2 JP 4882625 B2 JP4882625 B2 JP 4882625B2 JP 2006250994 A JP2006250994 A JP 2006250994A JP 2006250994 A JP2006250994 A JP 2006250994A JP 4882625 B2 JP4882625 B2 JP 4882625B2
Authority
JP
Japan
Prior art keywords
program
executed
processing
microcomputer
dummy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006250994A
Other languages
English (en)
Other versions
JP2007200277A (ja
Inventor
弘樹 中里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2006250994A priority Critical patent/JP4882625B2/ja
Priority to US11/642,636 priority patent/US20070150655A1/en
Priority to EP06026784A priority patent/EP1808766A3/en
Publication of JP2007200277A publication Critical patent/JP2007200277A/ja
Application granted granted Critical
Publication of JP4882625B2 publication Critical patent/JP4882625B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Description

本発明は、インストラクションキャッシュメモリを備えたマイクロコンピュータに関する。
従来より、プログラムを記憶するプログラムメモリとCPUとを備えたマイクロコンピュータにおいては、処理速度の向上を目的として、高速に読み書きが可能なメモリとして、例えばインストラクションキャッシュメモリがプログラムメモリとは別に設けられている。このようなマイクロコンピュータでは、CPUによりプログラムメモリから読み出されたプログラムは、インストラクションキャッシュメモリに更新記憶される。そして、CPUが所定のプログラムを実行する場合、そのプログラムがインストラクションキャッシュメモリに記憶されていれば、CPUは、そのプログラムをインストラクションキャッシュメモリから読み出すことができる。一方、プログラムがインストラクションキャッシュメモリに記憶されていない場合には、CPUは、プログラムメモリからプログラムを読み出さなければならなくなる。そして、プログラムメモリへのアクセスに要する時間は、インストラクションキャッシュメモリへのアクセスに要する時間と比較して大きい。つまり、プログラムがインストラクションキャッシュメモリに記憶されており、CPUがそのインストラクションキャッシュメモリからプログラムを読み出すことのできる確率(ヒット率)が向上すれば、処理速度は向上することとなる。
このため、例えば所定の時間内に確実に実行されるべき優先度の高い処理のプログラム(以下、高優先度処理プログラムと言う)は、インストラクションキャッシュメモリに常時記憶されていることが好ましい。上述のように、処理速度が向上するため、プログラムの実行時間(実行開始から終了までの時間)の短縮が望めるからである。そこで、高優先度処理プログラムを予めインストラクションキャッシュメモリに固定配置することが考えられている(例えば、特許文献1,2参照)。
ここで、高優先度処理プログラムが予めインストラクションキャッシュメモリに固定配置されるマイクロコンピュータの一例について、図7及び図8を用いて説明する。
図7は、上記一例としてのマイクロコンピュータ(以下、マイコンと言う)100の構成図であり、マイコン100は、各種プログラムを実行するCPU10と、CPU10が実行するプログラムが予め格納されるROM20と、CPU10による演算結果等を一時記憶するRAM30と、図示しない外部の機器と接続されるインタフェース55と、それらを相互に接続するための内部バス50とを備えている。
この例では、CPU10は、4つの処理を実行するようになっている。つまり、優先度が最も高い高優先度処理、次いで優先度の高い中優先度処理、最も優先度の低い低優先度処理、及びアイドル処理である。そして、ROM20には、それらの処理が実行されるためのプログラムが記憶されている。まず、ROM20の格納領域22には、高優先度処理が実行されるための高優先度処理プログラムが記憶され、格納領域24には、中優先度処理が実行されるための中優先度処理プログラムが記憶され、格納領域26には、低優先度処理が実行されるための低優先度処理プログラムが記憶され、そして、格納領域28には、アイドル処理が実行されるためのアイドル処理プログラムが記憶されている。
CPU10は、具体的に、上記のプログラムを読み出すとともにそのプログラムに従い各種演算を実行するCPUコア12と、内部バス50に接続され、CPUコア12によりROM20から読み出されたプログラムが更新記憶されるインストラクションキャッシュメモリ14と、内部バス50に接続され、CPUコア12による演算結果等が一時的に記憶されるデータキャッシュメモリ16と、を有している。
CPUコア12は、所定のプログラムを実行する場合、まずインストラクションキャッシュメモリ14にアクセスしてそのプログラムを取得しようとする。そして、インストラクションキャッシュメモリ14にそのプログラムが存在すれば、そのインストラクションキャッシュメモリ14からプログラムを読み出し、インストラクションキャッシュメモリ14にプログラムが存在しない場合には、ROM20にアクセスしてプログラムを読み出す。尚、CPUコア12による演算結果等は、前述したデータキャッシュメモリ16に記憶されるとともに、さらにRAM30が備える格納領域(ここでは、格納領域32〜38)に一時的に記憶される。
次に、図8(a)は、上記各処理の実行タイミングを表すタイミングチャートである。また、図8(b)は、インストラクションキャッシュメモリ14の占有状態を表す図であり、図8(c)は、CPUコア12がインストラクションキャッシュメモリ14からプログラムを読み出すことのできる確率(ヒット率)を表す図である。
この例では、高優先度処理プログラムは全て、予めインストラクションキャッシュメモリ14に固定配置されており、図8(b)に示すように、インストラクションキャッシュメモリ14の容量の50%が、その高優先度処理プログラムで占有されている。そして、残りの50%は、プログラムが書き換え可能に開放されている。
図8(a)に示すように、まず、0.5msecのタイミングで、高優先度処理(ここでは1回目とする)が実行される。そして、高優先度処理は、以降は6msec毎に実行されるように設定されている。そして、1回目の高優先度処理が終了した後に(1.0msecのタイミング)、1回目の中優先度処理が実行され、中優先度処理は、以降は12msec毎に実行されるように設定されている。さらに、1回目の中優先度処理が終了した後に(3.5msecのタイミング)、1回目の低優先度処理が実行され、低優先度処理は、以降は16msec毎に実行されるように設定されている。アイドル処理は、高優先度処理、中優先度処理或いは低優先度処理の何れも実行されない時間帯に実行される。
そして、この例において、高優先度処理の実行に際しては、高優先度処理プログラムがインストラクションキャッシュメモリ14に固定配置されているため、ヒット率は100%となって処理速度が向上する。そして、高優先度処理は、1.0msecでその処理が終了している。つまり、高優先度処理プログラムの実行時間は0.5msecである。一方、中優先度処理或いは低優先度処理の実行に際しては、インストラクションキャッシュメモリ14の半分の領域を使用することとなり、この例では、ヒット率は最大で50%までしか向上していない。そして、中優先度処理については、実行時間として2.5msecを要しており、低優先度処理については、実行時間として4.0msecを要している。
特開平4−239944号公報 特開平9−34792号公報
このように、上述したマイコン100では、高優先度処理の実行時間を短縮できる反面、その高優先度処理以外の中優先度処理及び低優先度処理については、インストラクションキャッシュメモリ14の一部だけしか利用できないため、実行時間は逆に大きくなってしまうことが考えられる。
一方、例えば高優先度処理プログラムをインストラクションキャッシュメモリ14に固定配置しない場合には、そのインストラクションキャッシュメモリ14の全ての領域が開放されるため、中優先度処理や低優先度処理の実行時間が大きくなってしまうことがない。しかしながら、高優先度処理については、その高優先度処理プログラムがインストラクションキャッシュメモリ14に固定配置される場合と比較して、実行時間は大きくなってしまう。高優先度処理は、所定の時間内で確実に実行されることが要求されるものであり、実行時間が大きくなってしまうことは好ましくない。
本発明は、こうした問題に鑑みなされたもので、複数のプログラムが実行されるマイクロコンピュータにおいて、各プログラムの実行時間が大きくなることがないマイクロコンピュータを提供することを目的とする。
かかる問題を解決するためになされた本発明のマイクロコンピュータは、複数のプログラムが記憶されるプログラムメモリと、プログラムメモリより読み出されたプログラムが更新記憶されるインストラクションキャッシュメモリと、CPUと、ダミー実行制御手段と、真値記憶部と、記憶制御手段と、を備えている。
そして、ダミー実行制御手段は、複数のプログラムのうち少なくとも1つのプログラムについて、CPUがそのプログラムを読み出して実行する正規のタイミングよりも前のタイミングで、CPUにそのプログラムを実行させるようになっている。
この場合、正規のタイミングよりも前のタイミングで実行されたプログラムは、その実行の際にインストラクションキャッシュメモリに更新記憶される。そして、正規のタイミングにおいては、CPUは、プログラムをインストラクションキャッシュメモリから読み出すことができるようになる。よって、正規のタイミングにおけるプログラムの実行時間を短縮させることができる。
また、本マイクロコンピュータにおいては、インストラクションキャッシュメモリの全領域が書き換え可能に開放される。よって、例えばプログラムの実行に際し、そのプログラムによって複数パターンのループ処理が実行されるような場合に、そのループ処理のためのプログラムをより多くインストラクションキャッシュメモリに記憶しておくことができる。つまり、ヒット率の低下を防ぎ、プログラムの実行時間が大きくなってしまうことを防止することができる。また、例えばプログラムが一旦実行され、続けてそのプログラムが実行されるような場合でも、上記の如く、そのプログラムを構成するプログラムがより多く記憶されていることとなるため、ヒット率が低下するということがなく、プログラムの実行時間が大きくなってしまうことがない。
そして、正規のタイミングよりも前のタイミングでCPUにより実行される対象のプログラムは、一つであってもよいし、複数であってもよい。さらに、全てのプログラムであってもよいことは勿論である。
また、本発明のマイクロコンピュータでは、複数のプログラムは制御対象を制御するためのものであり、CPUは、その複数のプログラムを実行することで、制御対象を制御するようになっている。
そして、ダミー実行制御手段は、CPUが制御対象を制御しない時間帯に、そのCPUにプログラムを実行させるようになっている。ここで、CPUが制御対象を制御しない時間帯としては、CPUがプログラムを実行しない時間帯が考えられる。また、プログラムを実行していたとしても、制御対象の制御とは関係ないプログラム(例えば指令待ちのためのプログラム)等を実行している時間帯が考えられる。
そして、このような時間帯にダミー実行制御手段がCPUにプログラムを実行させることで、CPUの負荷を特に増大させることなく、上述したような効果を得ることができるのである。
ところで、この種のマイクロコンピュータにおいては、正規のタイミングとは異なるタイミングで演算された演算結果が別の処理で使用された場合に、適切にその処理が実行されなかったり、期待の結果が得られなかったりするおそれがある。
このような点に鑑み、本発明のマイクロコンピュータでは、CPUが正規のタイミングでプログラムを実行することにより演算した演算結果を記憶する真値記憶部と、ダミー実行制御手段が正規のタイミングよりも前のタイミングでCPUにプログラムを実行させることによりそのCPUが演算した演算結果を真値記憶部以外の特定の記憶部に記憶させる記憶制御手段と、を備えていることを特徴としている。
つまり、このマイクロコンピュータによれば、CPUが正規のタイミングでプログラムを実行することにより演算した演算結果は、正規の記憶部としての真値記憶部に記憶されるが、CPUが正規のタイミングよりも前のタイミングでプログラムを実行することにより演算した演算結果(以下、ダミー演算結果と言う)は、真値記憶部に記憶されない。そして、真値記憶部に記憶された演算結果のみが別の処理に使用されるようにすれば、ダミー演算結果が誤って使用されてしまうということを防止することができる。
また、演算結果の記憶先(転送先)は、パラメータにより決定されることが考えられる。本発明のマイクロコンピュータでは、記憶制御手段は、演算結果の転送先を指定するパラメータを有しており、そのパラメータに従って、演算結果を転送する。
ここで、特定の記憶部としては、ROMとすることが考えられる。
この場合、記憶制御手段がダミー演算結果をROMに書き込もうとしても、ROMへの書き込みはそもそもできないため、その書き込みは無視されることとなる。よって、ダミー演算結果が別の処理で使用されることをより確実に防止できるようになる。また、ダミー演算結果を記憶させるための記憶領域を仮想的に設定すればよく、現実に設けるということをしなくてもよいため、メモリ資源を節約することができる。
一方、本発明のマイクロコンピュータにおいて、プログラムメモリは、ROMであってもよいし、また、RAMであってもよい。
また、本発明のマイクロコンピュータは、具体的に、車両に搭載されるものとすることができる。本発明のマイクロコンピュータでは、プログラムメモリには、車両を制御するためのプログラム(以下、車両制御用プログラムという)として、車両のエンジンを制御するためのエンジン制御用プログラムが記憶されている。そして、ダミー実行制御手段は、エンジン制御用プログラムを、そのエンジン制御用プログラムについての正規のタイミングよりも前のタイミングで、CPUに実行させるようになっている。
このような本発明のマイクロコンピュータによれば、エンジン制御用プログラムを、そのエンジン制御用プログラムを実行する正規のタイミングにおいて、インストラクションキャッシュメモリから読み出すことができるようになる。このため、正規のタイミングにおけるエンジン制御用プログラムの実行時間を短縮することができる。
ところで、エンジン制御としては、例えば、燃料噴射制御や、点火制御等がある。そして、本発明のマイクロコンピュータによれば、エンジン制御用プログラムの実行時間を短縮することで、燃料噴射や点火が所望のタイミングよりも遅れてしまうことを防止することができる。
一方、本発明のマイクロコンピュータは、車両の変速機を制御するものであってもよい。
本発明のマイクロコンピュータは、車両に搭載されるものであり、プログラムメモリには、車両制御用プログラムとして、車両の変速機を制御するための変速機制御用プログラムが記憶されている。
そして、ダミー実行制御手段は、変速機制御用プログラムを、その変速機制御用プログラムについての正規のタイミングよりも前のタイミングで、CPUに実行させるようになっている。
このような本発明のマイクロコンピュータによれば、変速機制御用プログラムを、その変速機制御用プログラムを実行する正規のタイミングにおいて、インストラクションキャッシュメモリから読み出すことができるようになる。このため、正規のタイミングにおける変速機制御用プログラムの実行時間を短縮することができる。
ところで、変速機の制御では、例えば入力軸,出力軸の回転数を算出するとともに、出力軸の回転数を所望の回転数にするフィードバック制御が行われる場合がある。この場合、本発明のマイクロコンピュータによれば、変速機制御用プログラムの実行時間を短縮して、そのフィードバック制御の精度を向上させることができる。
次に、本発明のマイクロコンピュータは、オペレーティングシステム(例えばリアルタイムオペレーティングシステムがある)を備えている。そして、車両制御用プログラムは、そのオペレーティングシステムによって実行が管理されるアプリケーションプログラムである。さらに、車両制御用プログラムが実行される前には、その車両制御用プログラムを実行する準備を行うための処理のプログラム(以下、準備プログラムという)が実行されるようになっている。尚、準備プログラムは、プログラムメモリに記憶されている。
そして、ダミー実行制御手段は、準備プログラムを、その準備プログラムについての正規のタイミングよりも前のタイミングで、CPUに実行させるようになっている。
このような本発明のマイクロコンピュータによれば、準備プログラムを、その準備プログラムを実行する正規のタイミングにおいて、インストラクションキャッシュメモリから読み出せるようになる。このため、準備プログラムの実行時間を短縮することができる。よって、速やかに車両制御用プログラムの実行に移行することができ、車両制御用プログラムの実行終了までの時間を短縮することができる。
ここで、本発明のマイクロコンピュータでは、例えばエンジンの回転数が高くなるにつれ、エンジン制御用プログラムをより短周期で実行する必要があり、エンジン制御用プログラムが実行されていない時間帯(以下、アイドル時間帯という)が少なくなってしまう。このような場合、のように構成すればよい。
具体的には、本発明のマイクロコンピュータにおいて、エンジン制御用プログラムは複数あり、ダミー実行制御手段は、エンジンの回転数の高低を判定するとともに、複数のエンジン制御用プログラムのうち、正規のタイミングよりも前のタイミングでCPUに実行させるプログラムを、判定結果に基づき変更するようになっている。
このような本発明のマイクロコンピュータでは、例えば、エンジンが高回転領域の場合は、より優先度の高いエンジン制御用プログラムを、正規のタイミングよりも前のタイミングで実行させるようにすることができる。そして、エンジンが中回転領域、或いは低回転領域へと移行するにしたがって、正規のタイミングよりも前のタイミングで実行させるエンジン制御用プログラムの種類を増やすようにすることができる。このように構成すれば、アイドル時間帯に余裕がある場合には、より多くのエンジン制御用プログラムをインストラクションキャッシュメモリに予め格納させておくことができる。一方、アイドル時間帯に余裕がない場合でも、より優先度の高いエンジン制御用プログラムをインストラクションキャッシュメモリに予め格納しておくようにすることができ有利である。
また、ここで、前述の変速機は、変速段を切り換えることで変速を実現するものであるが、変速段の切り換えのためには、切り換えのための制御が実行しなければならない。そこで、本発明のマイクロコンピュータにおいては、のように構成することが好ましい。
具体的には、本発明のマイクロコンピュータにおいて、ダミー実行制御手段は、複数の変速機制御用プログラムのうち、正規のタイミングよりも前のタイミングで前記CPUに実行させるプログラムを、変速段の切換中/非切換中に応じて変更するようになっている。
このような本発明のマイクロコンピュータによれば、変速段の切り換え中には、特に、変速段の切り換え制御のための変速機制御用プログラムを、予めインストラクションキャッシュメモリに格納しておくようにすることができる。これによれば、変速中に、変速段の切り換え制御がより高速に実行されるようになり、有利である。一方、非変速中は、変速段の切り換え制御のための変速機制御用プログラムを予めインストラクションキャッシュメモリに格納させておかなくてもよく、これによれば、効率的で好ましい。
以下に、本発明の実施形態を図面に基づき説明する。
[第1実施形態]
図1は、本発明が適用されたマイクロコンピュータ(以下、マイコンと言う)2の構成を表す構成図である。尚、マイコン2は、車両に搭載され、その車両のエンジンを制御する電子制御装置(以下、ECUと言う)1に備えられるものである。
本実施形態のマイコン2は、前述した図7のマイコン100において、A/Dコンバータ40がさらに備えられたものである。A/Dコンバータ40は内部バス50に接続されるとともに、そのA/Dコンバータ40には、エンジンの冷却水温を検出するための水温センサ3、アクセル開度を検出するためのアクセルペダルセンサ4、及びスロットル開度を検出するためのスロットルセンサ5からの各信号が入力される。そして、A/Dコンバータ40は、CPU10からの指令に基づき、上記各センサから入力される信号に対してA/D変換を行う。
また、マイコン2において、ROM20には格納領域29が設けられているが、この格納領域29については後述する。
そして、CPU10(実際には、CPUコア12)は、図7のCPU10と同様に、優先度の異なる4つの処理(図5参照)を実行する。つまり、高優先度処理、中優先度処理、低優先度処理、及びアイドル処理である。
図5(a)の高優先度処理は、6msec毎に実行されるものであり、開始タイミングになると、S200において以下のような処理が実行される。
まず、水温センサ3、アクセルペダルセンサ4、及びスロットルセンサ5からの信号に対してのA/D変換をA/Dコンバータ40に実行させるとともに、そのA/D変換により得られた値(以下、A/D変換値と言う)を、RAM30の格納領域32に記憶させる。そしてさらに、アクセルペダルセンサ4及びスロットルセンサ5からの信号についてのA/D変換値に基づき、そのスロットルセンサ5が備えられている図示しない電子スロットルの異常判断処理を行う。具体的には、例えば、アクセルペダルの開度に対する電子スロットルの開度の差を算出し、その差が許容範囲内にないとすれば、電子スロットルに異常が生じていると判断する。この電子スロットルの開度或いはアクセルペダルの開度は、車両の運転状態を表す重要な情報であるため、上記のような高優先度処理は、決められたタイミングでかつ中断されることなく実行される必要がある。
そして、図5(b)の中優先度処理は、12msec毎に実行され、開始タイミングになると、S300の処理が実行される。S300では、格納領域32に記憶された水温センサ3からの信号についてのA/D変換値に基づき、エンジンの冷却水温が算出され、その算出された冷却水温を表すデータがRAM30の格納領域34に記憶される。
また、図5(c)の低優先度処理は、16msec毎に実行され、開始タイミングになると、S400の処理が実行される。S400では、格納領域34に記憶された冷却水温を表すデータに基づき水温センサ3の故障判定が行われるとともに、その判定結果がRAM30の格納領域36に記憶される。故障判定について、例えば、冷却水温を検出する機構が水温センサ3とは別に設けられている場合、その機構により得られた冷却水温と水温センサ3からの信号に基づき算出された冷却水温とを比較し、両者が大きく異なる場合には、例えば水温センサ3の故障と判定することが考えられる。水温センサ3の故障と判定された場合には、その旨がさらに図示しない不揮発性のメモリ(例えばEEPROM等)に記憶される。
またさらに、図5(d)のアイドル処理は、特に制御等をしない処理であり、上記の高優先度処理、中優先度処理或いは低優先度処理が実行されない時間帯に実行されるものである。CPUコア12は、S500のアイドル処理実行中はいわゆる待機状態ということになる。尚、図1において、RAM30の格納領域38には、後述するダミーA/D変換値が記憶されるようになっている。
ところで、CPUコア12は、上記のような高優先度処理、中優先度処理、低優先度処理、及びアイドル処理を実行する際には、その各処理のプログラムを読み込む。この場合、まずインストラクションキャッシュメモリ14にアクセスして、そのインストラクションキャッシュメモリ14からの読み込みを試みる。そして、インストラクションキャッシュメモリ14に読み込みたいプログラムが存在すれば、そのインストラクションキャッシュメモリ14からプログラムを読み込む。一方、インストラクションキャッシュメモリ14に読み込みたいプログラムが存在しない場合には、ROM20にアクセスしてそのROM20からプログラムを読み込むこととなる。ROM20からプログラムを読み込んだ場合には、その読み込んだプログラムは、インストラクションキャッシュメモリ14に更新記憶される。そして、CPUコア12はインストラクションキャッシュメモリ14に対してはROM20と比較して高速にアクセスできるため、CPUコア12が上記各処理を実行する際にプログラムをインストラクションキャッシュメモリ14から読み込むことができれば、処理時間の短縮が望める。
ここで、ROM20の格納領域22〜28に記憶されている各プログラムがどのようにインストラクションキャッシュメモリ14に記憶されるかについて、図2を用いて説明する。
図2は、ROM20及びインストラクションキャッシュメモリ14の構成図である。本実施形態において、インストラクションキャッシュメモリ14は、アドレス0x000〜0xFFFが割り当てられたブロック(プログラムを格納する領域)から構成されている。また、インストラクションキャッシュメモリ14の記憶容量は4Kbyte(キロバイト)である。尚、図2において、アドレスは、16進数で表している。
また、前述のように、ROM20の格納領域22には高優先度処理プログラムが記憶されているが、この高優先度プログラムは、ROM20において、アドレス0x0000〜0x07FFのブロックに記憶されている。尚、高優先度処理プログラムのデータ量は2Kbyteである。また、中優先度処理プログラムは、データ量が4Kbyteであり、アドレス0x0800〜0x17FFのブロック(格納領域24)に記憶されている。低優先度処理プログラムは、データ量が8Kbyteであり、アドレス0x1800〜0x37FFのブロック(格納領域26)に記憶されている。そして、アイドル処理プログラムは、データ量が2Kbyteであり、アドレス0x3800〜0x4FFFのブロック(格納領域28)に記憶されている。
CPUコア12は、一定のデータ量(例えば32byte)ずつ、ROM20からプログラムを読み込み、その読み込んだプログラムをインストラクションキャッシュメモリ14に更新記憶させる。この場合に、インストラクションキャッシュメモリ14のブロックのアドレスと、ROM20のブロックのアドレスとが対応づけられて、ROM20から読み出されたプログラムは順次インストラクションキャッシュメモリ14に更新記憶される。
具体的には、アドレスの下位12ビット(16進数表示の下3桁)について対応付けがなされる。例えば、ROM20においてアドレス0x0000〜0x07FFのブロックに記憶されている高優先度処理プログラムは、インストラクションキャッシュメモリ14のアドレス0x000〜0x7FFのブロックに記憶される。また、ROM20においてアドレス0x0800〜0x17FFのブロックに記憶されている中優先度処理プログラムは、そのROM20におけるアドレス0x0800〜0x0FFFのブロックの部分についてはインストラクションキャッシュメモリ14のアドレス0x800〜0xFFFのブロックに記憶され、ROM20におけるアドレス0x1000〜0x17FFのブロックの部分についてはインストラクションキャッシュメモリ14のアドレス0x000〜0x7FFのブロックに記憶されるようになっている。
低優先度処理プログラム及びアイドル処理プログラムについても同様である。つまり、低優先度処理プログラムについて、ROM20におけるアドレス0x1800〜0x1FFF及び0x2800〜0x2FFFのブロックの部分についてはインストラクションキャッシュメモリ14のアドレス0x800〜0xFFFのブロックに記憶され、ROM20におけるアドレス0x2000〜0x27FF及び0x3000〜0x37FFのブロックの部分についてはインストラクションキャッシュメモリ14のアドレス0x000〜0x7FFのブロックに記憶される。また、ROM20のアドレス0x3800〜0x4FFFのブロックに記憶されているアイドル処理プログラムは、インストラクションキャッシュメモリ14のアドレス0x800〜0xFFFのブロックに記憶される。
そして特に、本実施形態のマイコン2では、高優先度処理が実行される正規のタイミングよりも前のタイミングで高優先度処理がダミー実行され、高優先度処理プログラムが上記の正規のタイミングにおいては予めインストラクションキャッシュメモリ14に配置されるようになっている。以下、具体的に説明する。
まず、図3(a)は、上記各処理の実行タイミングを表すタイミングチャートである。また、図3(b)は、インストラクションキャッシュメモリ14の占有状態を表す図であり、図3(c)は、CPUコア12がインストラクションキャッシュメモリ14からプログラムを読み出すことのできる確率(ヒット率)を模式的に表した図である。
図3(a)に示すように、この例では、0msecのタイミングでは、アイドル処理が実行されている。そして特に、本実施形態のマイコン2では、このアイドル処理の実行中に、正規のタイミングにおける高優先度処理(開始時刻が0.5msecである1回目の高優先度処理)とは別に、高優先度処理がダミー実行される。尚、以下の説明において、このダミー実行される高優先度処理をダミー高優先度処理と記載する。
ダミー高優先度処理の具体的な内容は、正規の高優先度処理と同じである。尚、例えば、正規の高優先度処理では前述したような電子スロットルの異常判断を行うが、ダミー高優先度処理ではそのような異常判断の処理を行わないこととしてもよい。このようにすれば、CPUコア12の負荷を抑えることができる。
そして、ダミー高優先度処理が実行された場合、インストラクションキャッシュメモリ14には高優先度処理プログラムが記憶される。この場合に、図3(b)に示すように、インストラクションキャッシュメモリ14の50%はアイドル処理プログラムで占有され、残りの50%は高優先度処理プログラムで占有されることとなる。前述したように、インストラクションキャッシュメモリ14の記憶容量が4Kbyteであるのに対し、高優先度処理プログラム及びアイドル処理プログラムのデータ量がともに2Kbyteだからである。
そして、0.5msecのタイミングでは、正規の高優先度処理(1回目)が実行される。尚、高優先度処理の1回目の開始タイミングは予め設定されており、2回目以降については、前述のように6msec毎に実行される。1回目の高優先度処理において、高優先度処理プログラムは全てインストラクションキャッシュメモリ14に記憶されているため、1回目の高優先度処理の実行に際してのヒット率は100%となる。そして、この例では、この1回目の高優先度処理は1.0msecで終了する。つまり、高優先度処理プログラムの実行時間(実行開始から実行終了までの時間)は0.5msecである。
次に、1回目の中優先度処理は、1回目の高優先度処理が終了すると開始され、2回目以降については、前述のように12msec毎に実行される。1回目の中優先度処理の実行に際しては、インストラクションキャッシュメモリ14には中優先度処理プログラムは配置されていないため、最初はヒット率は小さい。そして、CPUコア12がROM20から中優先度処理プログラムを読み込むとともにその中優先度処理プログラムがインストラクションキャッシュメモリ14に配置されるにつれヒット率は徐々に向上する。
ここで、前述のように、中優先度処理プログラムのデータ量は4Kbyteであり、中優先度処理プログラムの全てはインストラクションキャッシュメモリ14に配置されることが可能である。そして、この例では、中優先度処理は、2.5msecで終了する。中優先度処理プログラムの実行時間は1.5msecである。
さらに、1回目の低優先度処理は、1回目の中優先度処理が終了すると開始され、2回目以降については、前述のように16msec毎に実行される。1回目の低優先度処理の実行に際しては、中優先度処理と同様最初はヒット率は小さいが、CPUコア12がROM20から低優先度処理プログラムを読み込むとともにその低優先度処理プログラムがインストラクションキャッシュメモリ14に配置されるにつれヒット率は徐々に向上する。
ここで、インストラクションキャッシュメモリ14の記憶容量4Kbyteに対し低優先度処理プログラムのデータ量は8Kbyteであり、低優先度処理プログラムの全てをインストラクションキャッシュメモリ14に配置することはできないが、例えば低優先度処理プログラムのうち、使用頻度の高いプログラムがより多くインストラクションキャッシュメモリ14に配置されることが考えられる。この場合、ヒット率の向上が期待される。そして、この例では、低優先度処理は、4.5msecで終了する。低優先度処理プログラムの実行時間は2.0msecである。
1回目の低優先度処理終了後は、高優先度処理、中優先度処理或いは低優先度処理の実行タイミングとなるまで、アイドル処理が実行される。そして、前述のように、再びこのアイドル処理の実行中にダミー高優先度処理が実行されることとなる。
次に、図3に示すような作用がどのように実現されるかについて、図4のフローチャートを用いて説明する。
図4に示す管理処理は、オペレーティングシステム(以下、OSと言う)上で実行される処理である。OSのプログラムは、ROM20の図示しない格納領域に記憶されており、マイコン2が立ち上げられると、CPUコア12によりそのOSのプログラムが読み込まれて実行される。言い換えると、OSが起動される。そして、OSが起動されると、管理処理が開始される。
また、前述した高優先度処理プログラム、中優先度処理プログラム、低優先度処理プログラム及びアイドル処理プログラムは、アプリケーションプログラムであり、OSにより、優先度に従って各プログラムの実行管理がされる。
この管理処理では、まず、S110にて、現在実行中の処理の他に実行すべき処理があるか否かが判定される。具体的に、例えば、中優先度処理の実行中に高優先度処理の実行タイミングが重なった場合には、高優先度処理が実行されるべきと判定され(S110:YES)、中優先度処理の実行途中であっても高優先度処理が実行される(S120)。同様に、例えば、低優先度処理の実行中に、中優先度処理或いは高優先度処理の実行タイミングが重なった場合には(S110:YES)、低優先度処理の実行途中であっても中優先度処理或いは高優先度処理が実行される(S120)。アイドル処理の実行中に高優先度処理、中優先度処理或いは低優先度処理の実行タイミングとなった場合には(S110:YES)、その高優先度処理、中優先度処理、或いは低優先度処理が実行される(S120)。
また、S110にて他に実行されるべき処理がないと判定された場合には(S110:NO)、次にS130へ移行し、ダミー高優先度処理が実行される。
ここで、S110において否定判定される態様としては、例えばアイドル処理が実行されており、実行されるべき処理として高優先度処理、中優先度処理或いは低優先度処理の何れも該当しないと判定される場合がある(図3のアイドル処理の実行時間帯)。また、例えば中優先度処理或いは低優先度処理を実行している場合でも、制御のためのプログラムを特に実行しておらず指令待ちの状態であるような場合にも、否定判定されるようにすることができる。
そして、S130から移行したS110にて、高優先度処理が実行されるべきと判定されれば(S110:YES)、高優先度処理の実行(S120)に際しては、実行時間が短縮される。インストラクションキャッシュメモリ14には、S130のダミー高優先度処理により予め高優先度処理プログラムが記憶されているからである。
一方、S130から移行したS110にて、例えば中優先度処理或いは低優先度処理が実行されるべきと判定され、その中優先度処理或いは低優先度処理が実行されても、再びS110に戻った際に否定判定されれば、ダミー高優先度処理が実行されることとなり、その後正規の高優先度処理が実行されることとなった場合に実行時間の短縮が期待される。
以上のように、本実施形態のマイコン2においては、高優先度処理が実行される正規のタイミングよりも前のタイミングで、ダミー高優先度処理が実行される。すると、そのダミー高優先度処理の実行の際に、高優先度処理プログラムがインストラクションキャッシュメモリ14に記憶される。そして、正規のタイミングにおいては、CPUコア12は、高優先度処理プログラムをインストラクションキャッシュメモリ14から読み出すことができるようになるのである。このため、正規のタイミングにおける高優先度処理の実行時間を短縮させることができる。
また、インストラクションキャッシュメモリ14は、その全領域が書き換え可能に開放されているため、中優先度処理或いは低優先度処理について、その実行時間が大きくなってしまうことがない。インストラクションキャッシュメモリ14に記憶させることができるプログラムのデータ量が大きくなるためである。そして例えば、中優先度処理プログラム或いは低優先度処理プログラムの実行に際して複数パターンのループ処理が実行される場合に、そのループ処理のためのプログラムをより多くインストラクションキャッシュメモリに記憶しておくことができるため、ヒット率の向上が望める。また、例えば中優先度或いは低優先度処理の実行途中に高優先度処理の割り込みがあった場合でも、その後中優先度処理或いは低優先度処理の実行再開に際しては、中優先度処理プログラム或いは低優先度処理プログラムがインストラクションキャッシュメモリ14に記憶されている確率が高くなると言える。
ところで、前述のように、正規のタイミングの高優先度処理によるA/D変換値は、格納領域32に記憶される。そして、本実施形態において、正規のタイミング以外のタイミングにおけるダミー高優先度処理によるA/D変換値は、格納領域38に格納されるようになっている。この種のマイコンにおいては、正規のタイミング以外のタイミングにおけるA/D変換値(以下、ダミーA/D変換値と言う)が他の処理(例えば中優先度処理)で使用された場合、適切にその処理が実行されなかったり、期待の結果が得られなかったりするおそれがある。そのため、ダミーA/D変換値が使用されないようにする必要がある。そして、本実施形態において、格納領域38に記憶されるデータは使用されないようになっている。
図6に、高優先度処理プログラムのうち、A/D変換値を定義(正規或いはダミーの何れかを定義)する部分のプログラムの一例を示す。尚、ここでは、A/D変換値として、水温センサ3からの信号に対してのA/D変換値について説明するものとする。
正規のタイミングにおける高優先度処理においては、(A)及び(a)に示すプログラムが、ROM20(或いはインストラクションキャッシュメモリ14)より読み込まれる。この場合、高優先度処理にて算出されるA/D変換値は、(a)において中かっこの上段に記述されているように、「水温A/D変換値」として扱われる(つまりは、正規のA/D変換値として扱われる)こととなる。これにより、正規の格納領域としての格納領域32、そのA/D変換値が記憶されることとなる。
一方、正規のタイミング以外のタイミングにおけるダミー高優先度処理においては、(B)及び(b)に示すプログラムが、ROM20(或いはインストラクションキャッシュメモリ14)より読み込まれる。この場合、ダミー高優先度処理にて算出されるA/D変換値は、(b)において中かっこの上段に記述されているように、「ダミー水温A/D変換値」として扱われることとなる。これにより、ダミー高優先度処理により算出されるA/D変換値は、ダミー水温A/D変換値として、格納領域38に記憶されることとなる。尚、(A),(a)或いは(B),(b)の何れが読み込まれるかは、読み込みのタイミングにより(言い換えると、正規の高優先度処理か或いはダミー高優先度処理かにより)決定される。
また、図6のプログラムにおいては、中優先度処理にて算出される冷却水温のデータ、及び低優先度処理にて算出される故障判定のデータについても記述がされている。そのため、中優先度処理についてダミー中優先度処理が実行され、低優先度処理についてダミー低優先度処理が実行されるようにしたとしても、上記のように、正規のデータは正規の格納領域(格納領域34,36)に記憶され、ダミーのデータは、例えば格納領域38に記憶されるようにすることができる。
またここで、例えばダミー高優先度処理におけるダミーA/D変換値の格納領域は、ROM20に設定することも可能である。図1において、ROM20における格納領域29は、ダミーA/D変換値用の格納領域である。この場合に、格納領域29がダミーA/D変換値用の格納領域であることを表すプログラムをROM20に記憶させておき、CPUコア12によりそのプログラムが読み込まれるようにしておけばよい。そして、ダミーA/D変換値が格納領域29に転送される場合、ROM20にはそもそもデータを書き込むことができないため、ダミーA/D変換値の書き込みは無視される。
よって、ダミーA/D変換値が他の処理で使用されることは生じ得ないため、処理が適切に実行されなかったり、期待の結果が得られなかったりするという問題が生じることがない。また、格納領域29は、実際には記憶容量を有しない仮想的な領域としておけばよいため、メモリ資源を節約することができる。
尚、本実施形態において、図4のS130の処理がダミー実行制御手段に相当し、格納領域32が真値記憶部に相当し、CPUコア12が図6のプログラムに従い動作してA/D変換値を格納領域32或いは格納領域38の何れかに記憶させる処理が、記憶制御手段に相当している。
[第2実施形態]
次に、本発明のマイクロコンピュータを用いた実施形態について説明する。
図9は、第2実施形態としてのエンジン制御システムを表す構成図である。このエンジン制御システムでは、例えば4気筒4サイクルエンジンを制御対象としており、エンジン制御用のエンジンECU1が、各気筒に設けられたインジェクタ103及びイグナイタ104を駆動してエンジンを制御する。尚、図9では、1つの気筒のみ示している。また、エンジンECU1の構成は、基本的に図1のECU1と同じであり、以下、同じ構成については同じ符号を用いて説明する。
4サイクルエンジンの駆動行程は、吸気、圧縮、燃焼、排気の各行程からなる。
まず吸気行程では、シリンダ101内のピストン102が下降して、燃料と空気との混合気がシリンダ101内に供給される。具体的に、燃料タンク106内の燃料が、ポンプ107を介してインジェクタ103に供給されると共に、エンジンECU1が、インジェクタ103を開弁するための噴射信号(例えば、アクティブレベルがハイレベル)を出力すると、その噴射信号がアクティブレベルの間、インジェクタ103が開弁して燃料が噴射される。また、電子スロットル105のスロットルバルブが開くことにより、空気が供給される。尚、スロットルバルブの開度は、例えば運転手のアクセル操作量に基づき制御されるようになっている。
一方、混合気がシリンダ101内に供給された後、ピストン102が上昇して、シリンダ101内の混合気が圧縮される(圧縮行程)。そして、混合気が圧縮された状態において、所定のタイミングで、エンジンECU1がイグナイタ104を駆動するための点火信号を出力すると、イグナイタ104が点火プラグに高電圧を印加し、混合気が点火されてその混合気が燃焼(爆発)する(燃焼行程)。これにより、ピストン102が駆動する。
その後、ピストン102が上昇することにより、燃焼後の燃焼ガスが排気される(排気行程)。
図10は、エンジン制御の一例を表すタイムチャートである。
図10において、1段目のNE30°信号は、周知のクランクセンサ(図示せず)から、クランクシャフトが例えば10°回転する毎に出力されるパルスに基づいてエンジンECU1において生成されるものであり、クランクシャフトが30°回転する期間を1周期としたパルス信号である。尚、このNE30°信号の立ち上がりタイミング、或いは立ち下がりタイミングにて、各種処理が開始されるようになっている。また、パルス間隔は、例えばRAM30に記憶される。
また、2段目のTDCは、エンジンECU1において生成され、ピストン102の位置が最上の位置(上死点)となる毎に、ロー→ハイ→ローと変化する信号である。
また、エンジンECU1には、クランクカウンタ(図示せず)が設けられている。クランクカウンタは、3段目に示すように、クランクシャフトが2回転(0°〜720°)する間に、0から23までカウントアップする。つまり、クランクシャフトが30°回転する毎に、1ずつカウントアップする。このため、クランクカウンタの値を参照することにより、クランクシャフトの回転角度(0°〜720°の間で、30°の倍数値)が分かるようになっている。
4段目は、第1(#1)気筒〜第4(#4)気筒における各行程(吸入、圧縮、燃焼、排気)の流れの一例を表したものである。
そして、5〜7段目は、4つの気筒のうち、特に、第1気筒における燃料噴射制御及び点火制御の例を表したものである。尚、燃料噴射タイミング及び燃料噴射期間、或いは点火タイミング及び点火期間は可変であり、種々の条件に応じて制御される。
次に、エンジンECU1のCPU10が実行する処理について説明する。CPU10は、高優先度処理、中優先度処理、低優先度処理、アイドル処理を実行する。
図11に、高,中,低優先度処理の各フローチャートを示す。このうち、高優先度処理は、クランクシャフトが30°回転する毎、具体的に、NE30°信号の立ち下がりタイミングで毎回実行される。一方、中,低優先度処理は、それぞれ、エンジンの回転数等に応じて所定のタイミングで実行される。尚、アイドル処理は、図5(d)と同じである。
図11に示すように、CPU10は、高優先度処理では、S600にて、後述する(図12)NE30°信号割り込み処理を実行する。また、中優先度処理では、S650にて、水温センサ3からの信号に基づき、エンジンの冷却水温を算出する処理を実行する。また、低優先度処理では、S670にて、水温センサ3の異常(故障)の有無を判定する処理を実行する。
次に、図12を用いて、NE30°信号割り込み処理の内容について説明する。尚、中,低優先度処理については、ここでは詳しい説明を省略する。
NE30°信号割り込み処理では、まず、S610にて、NE30°信号のパルス間隔(例えば、直前のパルス間隔)を算出することにより、エンジン回転数を算出する。そして、その算出したエンジン回転数のデータをRAM30の所定の格納領域に更新記憶させる。
次に、S620へ進み、クランクカウンタ(図10の3段目参照)のカウント値を読み出す。そして、その読み出したカウント値をRAM30の所定の格納領域に更新記憶させる。
次に、S630へ進み、クランクシャフトが30°回転する毎に実行すべき30°毎イベント処理を実行する。そして、その後、当該処理を終了する。
ここで、30°毎イベント処理として、図12に示すように、例えば噴射処理や点火処理を実行する。
噴射処理では、まず、S710にて、例えばエンジン回転数や冷却水温等の種々のデータに基づき、噴射すべき燃料噴射量を算出する。
次に、S720へ進み、同じくエンジン回転数や冷却水温、或いはS710で算出した燃料噴射量等の種々のデータに基づき、燃料噴射タイミング(クランクシャフトの回転角度)を算出する。
そして、S730において、噴射信号を生成するための処理を実行する。具体的に、噴射信号を出力するためのタイマに対して、S720で算出した燃料噴射タイミング(時刻)と、S710で算出した燃料噴射量に相当する燃料噴射時間(期間)とをセットする。すると、そのタイマにセットされた燃料噴射タイミングから、燃料噴射時間だけ、噴射信号がハイレベルになり、燃料噴射が実行される。
また、点火処理では、まず、S750にて、例えばエンジン回転数や冷却水温等の種々のデータに基づき、点火期間(点火プラグの通電期間)を算出する。
次に、S760へ進み、同じくエンジン回転数や冷却水温、或いはS750で算出した点火期間等の種々のデータに基づき、点火タイミング(クランクシャフトの回転角度)を算出する。
そして、S770において、点火信号を生成するための処理を実行する。具体的に、点火信号を出力するためのタイマに対して、S760で算出した点火タイミング(時刻)と、S750で算出した点火期間とをセットする。すると、そのタイマにセットされた点火タイミングから、点火期間だけ、点火信号がハイレベルになり、点火が実行される。
また、CPU10は、図13の管理処理を実行する。尚、図13の管理処理は、図4の管理処理と比較して、S130の処理に代えてS150のダミー処理を実行する点が異なっている。この点について説明すると、S150のダミー処理では、高優先度処理(NE30°信号割り込み処理)と共に、中優先度処理の一部(前半部分)もダミー実行するようになっている。一方、他の処理は図4と同じである。例えば、ダミー処理(S150)の実行中に、他に実行すべき処理があれば(S110:YES)、その実行すべき処理を実行する(S120)。
ここで、図14を用いて、S150のダミー処理で実行される処理について、正規の処理と比較しつつ説明する。
図14において、上段の処理は、正規のタイミングで実行される高優先度処理(NE30°信号割り込み処理)である。この正規のNE30°信号割り込み処理では、エンジン制御構造体を引数パラメータとして、(C)で示すエンジン制御構造体を、ROM20或いはインストラクションキャッシュメモリ14から読み込む。このエンジン制御構造体は、NE30°信号割り込み処理のプログラムの一部をなすものであり、予めROM20に記憶されている。
エンジン制御構造体には、例えばエンジン回転数、クランクカウンタ、噴射時期、点火時期といったメンバ(要素データ)が含まれており、CPU10は、前述の噴射処理や点火処理で、その要素データの読み出し/書き込みを行うようになっている。
一方、図14において、下段の処理は、図13のS150で実行されるダミー処理の一例である。
このダミー処理では、S170にて、NE30°信号割り込み処理をダミー実行する。具体的に、ダミー構造体を引数パラメータとして、(D)で示すダミー構造体を、ROM20或いはインストラクションキャッシュメモリ14から読み込む。尚、このダミー構造体も、予めROM20に記憶されている。その他は、前述した正規の処理の場合と同じであり、ここでは説明を省略する。
ところで、ダミー構造体に含まれるデータは正規のデータではなく、正しいとは限らないが、ダミー構造体に対しては、ダミー実行の場合にのみアクセスされ、正規の処理においては、アクセスされない。このため、ダミー実行により算出されたデータが、正規のエンジン制御に使用されることはない。
次に、S180にて、中優先度処理をダミー実行する。この場合も、ダミー構造体を引数パラメータとして、(D)のダミー構造体に対して、読み込み/書き込みを行う。ここで、このS180の処理では、特に、中優先度処理を構成するプログラムの容量が半々となるように、中優先度処理を前半部分と後半部分とに分け、前半部分をダミー実行するようになっている。
次に、本第2実施形態の作用について、図15及び図16を用いて説明する。尚、ここでは、エンジン回転数が一定であるものとする。そして、NE30°信号の1周期は3.0msecとなっている。つまり、高優先度処理(NE30°信号割り込み処理)は、3.0msec毎に実行されるようになっている。
一方、図15の例では、中優先度処理は4.0msec毎に実行され、低優先度処理は8.0msec毎に実行されるようになっている。また、中優先度処理プログラムの容量は4KBであり、低優先度処理プログラムの容量は8KBであり、インストラクションキャッシュメモリ14の容量は4KBである。
図15において、まず、0msecのタイミングでは、アイドル処理が実行されている。
一方、NE30°信号割り込み処理(高優先度処理)は、前述のように、NE30°信号の立ち下がり毎に実行され、この例では、2.5msecのタイミングで1回目が実行される。
また、中優先度処理は、4.0msecのタイミングで1回目が実行され、低優先度処理は、6.0msecのタイミングで1回目が実行される。
尚、中優先度処理或いは低優先度処理の実行中に、より優先度の高い処理の実行タイミングとなった場合には、現在実行中の処理が中断され、その優先度の高い処理が実行される(図13のS110:YES、S120)。例えば、8.0msecにおける2回目の中優先度処理の実行中に、高優先度処理の実行タイミング(8.5msec)となっており、この場合は、中優先度処理が中断されて高優先度処理が実行される。そして、その高優先度処理が終了した後、中断されていた中優先度処理が再開される。14.0msecにおける低優先度処理についても同様である。
ここで、アイドル処理の実行中には、図14のダミー処理が実行される。つまり、NE30°信号割り込み処理と、中優先度処理の前半部分とがダミー実行される。尚、以下、中優先度処理のプログラムについて、前半部分のプログラムを中優先度処理プログラムAと記載し、後半部分のプログラムを中優先度処理プログラムBと記載する。
そして、例えば、0〜2.5msecでダミー処理が実行されると、インストラクションキャッシュメモリ14の50%は、高優先度処理プログラムで占有され、残りの50%は、中優先度処理プログラムAで占有される。
この場合、2.5msecのタイミングにおける正規の高優先度処理では、CPU10は、インストラクションキャッシュメモリ14から高優先度処理プログラムを読み出せるようになる(キャッシュヒット)。
また、3.0〜4.0msecのアイドル処理後、4.0msecのタイミングにおける正規の中優先度処理では、CPU10は、インストラクションキャッシュメモリ14から、中優先度処理プログラムAを読み出すことができる。一方、中優先度処理プログラムBについては、インストラクションキャッシュメモリ14に格納されておらず、ROM20から読み出す必要があるが(キャッシュミス)、インストラクションキャッシュメモリ14が全て開放されているため、中優先度処理プログラムBもインストラクションキャッシュメモリ14に格納される。このため、その後徐々にヒット率が向上する。そして、この中優先度処理の実行後は、インストラクションキャッシュメモリ14は、中優先度処理プログラムA,Bで占有される。
一方、その中優先度処理が5.0msecで終了した後、5.5msecの高優先度処理が実行されるまでのアイドル処理中に、ダミー処理が実行される。このため、高優先度処理プログラムが、再びインストラクションキャッシュメモリ14に格納されることとなる。尚、この5.0〜5.5のアイドル処理中に実行されるダミー処理では、S170の処理を実行した際に、次の高優先度処理のタイミングとなってしまい、S180の処理が実行されていない。そして、高優先度処理プログラムは、中優先度処理プログラムA,Bのうち、実行タイミングの古い中優先度処理プログラムAと置き換わって更新記憶される。
次に、6.0msecの低優先度処理では、低優先度処理プログラムはインストラクションキャッシュメモリ14に格納されておらず、CPU10は、ROM20から、低優先度処理プログラムを読み出すこととなる(キャッシュミス)。しかし、インストラクションキャッシュメモリ14は全て開放されているため、徐々にヒット率は向上する。
尚、他のタイミングにおける処理も同様であるため、説明を省略する。
ここで、図16に、キャッシュミス時とキャッシュヒット時との処理時間の違いを示す。尚、ここでは、高優先度処理(NE30°信号割り込み処理)について説明する。
図16に示すように、キャッシュミス時には、パルス間隔の算出(図12のS610)に、60μsの時間を要し、クランクカウンタのカウント値の算出(図12のS620)に、40μsの時間を要している。そして、30°毎イベント処理(図12のS630)へ移行している。
一方、キャッシュヒット時には、パルス間隔の算出は30μsで終了し、クランクカウンタのカウント値の算出は、20μsで終了している。
このように、キャッシュヒット時は、キャッシュミス時と比較して、S610の処理とS620の処理とをあわせて、50μs早く終了する。このため、噴射処理及び点火処理に速やかに移行することができる。よって、燃料噴射或いは点火が、所望のタイミングよりも遅れて実行されてしまうことを防止することができる。
以上のように、アイドル処理の実行中に、図14に示すダミー処理を実行することにより、インストラクションキャッシュメモリ14には、高優先度処理プログラム、或いは中優先度処理プログラムAが格納されるようになる。そして、インストラクションキャッシュメモリ14に格納されているプログラムについては、CPU10は、ROM20にアクセスしなくてもそのインストラクションキャッシュメモリ14にアクセスして取得できる。このため、ダミー処理で実行したプログラムがインストラクションキャッシュメモリ14に格納された状態で、そのプログラムを正規のタイミングで実行する際には、その正規のタイミングにおける処理時間を短縮させることができる。また、高優先度処理プログラムや中優先度処理プログラムA以外のプログラムはダミー実行されないが、正規の実行タイミングにおいて、インストラクションキャッシュメモリ14の領域を全て使用できるため、実行時間が大きくなってしまうことを防止することができる。
尚、本第2実施形態において、図13のS150の処理がダミー実行制御手段に相当している。
〈変形例〉
次に、第2実施形態の変形例について説明する。
この変形例においては、エンジンの回転数に応じて、ダミー処理の内容を変更するようにしている。
図17に示すように、エンジンの回転数に応じて、アイドル処理が実行されるアイドル時間帯が変化する。つまりこの変形例では、アイドル時間帯の変化に応じて、ダミー処理の内容を変更するようにしているとも言える。
図17について具体的に説明する。
上段に示すように、例えばアイドリング時など、エンジンの回転数が低回転(例えば1000rpm)の状態では、NE30°信号の1周期は長くなる。このため、高優先度処理の実行タイミングの間隔も長くなる。尚、図17では、中優先度処理や低優先度処理については示していないが、中優先度処理や低優先度処理の実行タイミングの間隔も長くなる。この場合、個々のアイドル処理の時間が長くなる。
一方、中段に示すように、エンジンの回転数が中回転(例えば3000rpm)の状態では、NE30°信号の1周期は、低回転の場合と比較して短くなる。このため、高優先度処理の実行タイミングの間隔も、低回転の場合と比較して短くなり、個々のアイドル処理の時間も短くなる。
さらに、下段に示すように、エンジンの回転数が高回転(例えば6000rpm)の状態では、NE30°信号の1周期がさらに短くなり、高優先度処理の実行タイミングの間隔も短くなって、個々のアイドル処理の時間がさらに短くなる。
そして、個々のアイドル処理の時間が短くなるにしたがって、各アイドル処理中に実行可能な処理が制限されることになる。
そこで、図18に示すように、CPU10は、エンジン回転数に応じて、つまり、アイドル処理の時間の長さに応じて、S150のダミー処理の内容を変更する。尚、本変形例では、インストラクションキャッシュメモリ14には、高,中,低優先度処理の各プログラムを同時に格納しておくことができることを前提とする。
図18に示すように、CPU10は、低回転領域におけるダミー処理では、S170で高優先度処理をダミー実行し、S180で中優先度処理をダミー実行し、S190で低優先度処理をダミー実行して、処理を終了する。
また、中回転領域におけるダミー処理では、S170で高優先度処理をダミー実行し、S180で中優先度処理をダミー実行して、処理を終了する。
そして、高回転領域におけるダミー処理では、S170で高優先度処理をダミー実行して、処理を終了する。
これによれば、エンジンの回転数が高回転となって、ダミー処理の時間が制限されるとしても、より優先度の高い高優先度処理についてはダミー実行して、正規のタイミングにおける高優先度処理の処理時間を短縮させることができる。一方、ダミー処理の時間に余裕があれば、さらに、中優先度処理や低優先度処理をダミー実行するようにし、正規のタイミングにおける高,中,低優先度処理の各処理時間を短縮させることができる。
このように、本変形例によれば、効率的に処理時間を短縮させるようにすることができる。
尚、例えば、低回転領域におけるダミー処理のS190で、低優先度処理の前半部分のみをダミー実行するようにしてもよいし、中回転領域におけるダミー処理のS180で、中優先度処理の前半部分のみをダミー実行するようにしてもよいし、高回転領域におけるダミー処理のS170で、高優先度処理の前半部分のみをダミー実行するようにしてもよい。
[第3実施形態]
次に、本発明のマイクロコンピュータを用いた第3実施形態について説明する。
図19は、第3実施形態としてのオートマチックトランスミッション制御システムを表す構成図である。尚、オートマチックトランスミッションは、エンジンとディファレンシャルの間に設けられる変速機である。
図19(a)に示すように、オートマチックトランスミッション制御システムは、オイルの流れを利用して、エンジンからの動力を変速機の軸に伝えるトルクコンバータ111と、そのトルクコンバータ111により伝達される回転を出力軸に伝達するためのギアのギア比を変換するギヤトレーン112と、ギヤトレーン112を駆動するバルブボデー113とを中心に構成される。
ギヤトレーン112は、複数のギア,クラッチ,ブレーキ等を備えており、このクラッチ,ブレーキの駆動により、ギアによる動力の伝達が制御され、前進/後進が切り替えられたり、オーバードライブ(最低変速比ギア)が切り替えられたりする。
バルブボデー113は、オイルの通り道である油圧回路を開いたり閉じたりして、ギヤトレーン112のクラッチ114(図19(b)参照),ブレーキ(図示せず)等を駆動するための油圧を制御するためのものである。例えば図19(b)に示すように、バルブボデー113は、トランスミッションECU1からの指示により駆動して、油圧回路を開いたり閉じたりするためのリニアソレノイド115を備えている。このリニアソレノイド115の駆動(プランジャ116の駆動)により高速かつ精密に油圧を制御して、高速かつ滑らかな変速を実現するようにしている。尚、以下、トランスミッションECU1について、ECU1と同じ構成については、同じ符号を用いて説明する。
次に、図20は、オートマチックトランスミッション制御を表すタイムチャートである。尚、以下、トルクコンバータ111とギヤトレーン112との間の軸を入力軸と記載し、ギヤトレーン112とディファレンシャルとの間の軸を出力軸と記載する。
図20は、電子スロットル(例えば、図9参照)のスロットルバルブの開度(図20の5段目参照)を全開にして加速し、1速→2速→3速→4速と変速(4段目参照)していく例を表している。
まず、1速の状態で、入力軸回転数(2段目)は、エンジンの回転数の上昇に伴って、徐々に増加する。また、出力軸回転数(1段目)も徐々に増加する。尚、出力軸回転数の上昇度合いは、ギア比に基づいたものとなる。
そして、入力軸回転数(つまり、エンジン回転数)がレブミット回転数(上限の回転数)に近づくと、自動的にバルブボデー113を制御し、ギヤトレーン112におけるギア比を変えて2速にする(変速する)。この場合、出力軸回転数は滑らかに上昇し、一方、入力軸回転数は所定の回転数まで低下する。以降も同様である。
一方、3段目は、リニアソレノイド115を駆動するためにそのリニアソレノイド115に供給する電流(ソレノイド電流)の変化を表したものである。尚、リニアソレノイド115におけるプランジャ116の突出量は、リニアソレノイド115に供給する電流値により調整することができる。
次に、図21は、オートマチックトランスミッション制御システムのトランスミッションECU1におけるCPU10が実行する処理を表す説明図である。本第3実施形態では、CPU10は、高,中,低優先度処理、及びアイドル処理を実行するが、このうち、高優先度処理として、図21に示すように、3種類の高優先度処理を実行する。(a)の第1の高優先度処理と、(b)の第2の高優先度処理と、(c)の変速時高優先度処理とである。尚、中,低優先度処理としては、図11(b),(c)の処理を実行し、アイドル処理としては、図5(d)の処理を実行する。
ところで、本オートマチックトランスミッション制御システムでは、出力軸の回転を検出して、出力軸が一定角度回転する毎にパルスを出力する出力軸回転センサと、入力軸の回転を検出して、入力軸が一定角度回転する毎にパルスを出力する入力軸回転センサとが設けられている。
そして、第1の高優先度処理は、出力軸回転センサから出力されるパルス信号(以下、出力軸回転信号と記載する)の立ち上がりタイミング及び立ち上がりタイミングで開始され、第2の高優先度処理は、入力軸回転センサから出力されるパルス信号(以下、入力軸回転信号と記載する)の立ち上がりタイミング及び立ち上がりタイミングで開始される。また、変速時高優先度処理は、変速の際(図20のt1,t2,t3)に、第1,第2の高優先度処理が実行されていない間、繰り返し実行される処理である。
そして、第1の高優先度処理では、S800で、後述する出力軸回転信号割り込み処理を実行し、第2の高優先度処理では、S820で、後述する入力軸回転信号割り込み処理を実行する。また、変速時高優先度処理では、S850で、後述する変速時クラッチ油圧制御を実行する。
図22は、出力軸回転信号割り込み処理、入力軸回転信号割り込み処理、及び変速時クラッチ油圧制御の内容を表す図である。
出力軸回転信号割り込み処理では、S810で、出力軸回転信号のパルス間隔(例えば、直前のパルス間隔)を算出するとともに、出力軸の回転数を算出する。また、その算出した出力軸回転数を、RAM30の所定の格納領域に記憶させる。そしてその後、当該処理を終了する。
入力軸回転信号割り込み処理では、S830で、入力軸回転信号のパルス間隔(例えば、直前のパルス間隔)を算出するとともに、入力軸の回転数を算出する。また、その算出した入力軸回転数を、RAM30の所定の格納領域に記憶させる。そしてその後、当該処理を終了する。
次に、変速時クラッチ油圧制御は、出力軸の回転数を、理想回転数にするためのフィードバック制御(以下、F/B制御と記載する)である。以下、内容を説明する。
まず、出力軸の理想回転数を設定する(S860)。この理想回転数は、例えばエンジンの回転数や運転状態等、種々の条件に基づき算出される。
次に、現在の出力軸回転数(前述のS810でRAM30に記憶された出力軸回転数)をS860で設定した理想回転数にするための目標回転数を設定する(S870)。
続いて、出力軸回転数が、S870で設定した目標回転数となるように、クラッチを駆動するための油圧制御を行う(S880)。具体的に、リニアソレノイド115(図19参照)を駆動させる。
次に、理想回転数と、現在の出力軸回転数(RAM30に記憶された出力軸回転数)の差分を算出する(S890)。尚、RAM30の出力軸回転数は、リアルタイムに更新されている。そして、算出された差分は、目標回転数を算出する際に加味される。
変速時には、このような変速時クラッチ油圧制御を実行し、出力軸回転数を滑らかに増減させる。つまり、変速ショックの発生を抑制する。
このような第1,第2,変速時高優先度処理は、図13の管理処理により管理される。つまり、本第3実施形態のCPU10は、図13の管理処理により、高,中,低優先度処理、及びアイドル処理の実行を管理する。
次に、図23に、管理処理(図13)のS150のダミー処理で実行される処理の一例を示す。以下、ダミー処理について、正規の処理と比較しつつ説明する。
図23において、S800の正規のタイミングの出力軸回転信号割り込み処理では、トランスミッション制御構造体を引数パラメータとして、(E)で示すトランスミッション制御構造体を、ROM20或いはインストラクションキャッシュメモリ14から読み込む。このトランスミッション制御構造体は、出力軸回転信号割り込み処理及び入力軸回転信号割り込み処理のそれぞれのプログラムの一部をなすものである。
トランスミッション制御構造体には、例えば出力軸回転数、入力軸回転数、及びリニアソレノイド電流といったメンバ(要素データ)が含まれており、CPU10は、出力軸回転信号割り込み処理で、その要素データの読み出し/書き込みを行うようになっている。尚、入力軸回転信号割り込み処理においても同様であり、ここでは説明を省略する。
一方、ダミー処理では、S172で、入力軸回転信号割り込み処理をダミー実行する。具体的に、ダミー構造体を引数パラメータとして、(F)で示すダミー構造体を、ROM20或いはインストラクションキャッシュメモリ14から読み込む。そして、S820と同じ入力軸回転信号割り込み処理を実行するが、ここでは、ダミー構造体に対して、要素データの読み出し/書き込みを行うようになっている。また、S182で、出力軸回転信号割り込み処理をダミー実行する。ここでは、S800と同じ出力軸回転信号割り込み処理を実行するとともに、前述のように、ダミー構造体に対して要素データの読み込み/書き込みを行う。また、ダミー構造体に対しては、ダミー実行の場合にのみアクセスされ、正規の処理においてはアクセスされないようになっている。
次に、本第3実施形態の作用について、図24及び図25を用いて説明する。尚、ここでは、エンジン回転数が一定であり、出力軸回転数及び入力軸回転数も一定であるものとする。また、この例では、出力軸回転信号の1周期は7.0msecであるとともに、その1周期において、ハイの期間とローの期間はそれぞれ3.5msecである。また、入力軸回転信号の1周期は5.0msecであり、その1周期において、ハイの期間とローの期間はそれぞれ2.5msecである。
また、アイドル処理中に実行するダミー処理で、出力軸回転信号割り込み処理(第1の高優先度処理)と、入力軸回転信号割り込み処理(第2の高優先度処理)とに加え、中優先度処理の前半部分をダミー処理する。さらに、第1の高優先度処理と第2の高優先度処理とでは、後者のほうが優先度が高く、ダミー処理では、第2の高優先度処理→第1の高優先度処理→中優先度処理の順でダミー実行する。
図24において、まず、0msecのタイミングでは、アイドル処理が実行されている。
一方、出力軸回転信号割り込み処理(第1の高優先度処理)は、前述のように、出力軸回転信号の立ち上がり及び立ち下がり毎に実行され、この例では、1回目は、2.0msecのタイミングで実行されている。
また、入力軸回転信号割り込み処理(第2の高優先度処理)は、前述のように、入力軸回転信号の立ち上がり及び立ち下がり毎に実行され、この例では、1回目は、2.5msecのタイミングで実行されている。
また、中優先度処理は、4.0msecのタイミングで1回目が実行されるとともに、その後、基本的に、8.0msec毎に実行され、低優先度処理は、6.0msecのタイミングで1回目が実行されるとともに、その後、基本的に、16.0msec毎に実行される。
そして、アイドル処理の実行中には、前述のようにダミー処理を実行し、ダミー処理が全て実行されると、インストラクションキャッシュメモリ14の25%は、出力軸回転信号割り込み処理のプログラム(以下、第1の高優先度処理プログラムと記載する)で占有され、他の25%は入力軸回転信号割り込み処理のプログラム(以下、第2の高優先度処理プログラムと記載する)で占有され、残りの50%は、中優先度処理プログラムAで占有される。
0〜2.0msecのアイドル処理では、ダミー処理が全て実行され、2.0msecのタイミングにおける正規の第1の高優先度処理では、CPU10は、インストラクションキャッシュメモリ14から第1の高優先度処理プログラムを読み出せるようになる(キャッシュヒット)。2.5msecにおける第2の高優先度処理についても同様である。
また、3.0〜4.0msecのアイドル処理後、4.0msecのタイミングにおける正規の中優先度処理では、CPU10は、インストラクションキャッシュメモリ14から、中優先度処理プログラムAを読み出すことができる(キャッシュヒット)。一方、この場合、中優先度処理プログラムBについては、インストラクションキャッシュメモリ14に格納されておらず、ROM20から読み出す必要があるが(キャッシュミス)、インストラクションキャッシュメモリ14が全て開放されているため、中優先度処理プログラムBもインストラクションキャッシュメモリ14に格納されることとなり、その後徐々にヒット率が向上する。尚、この中優先度処理の実行後は、インストラクションキャッシュメモリ14は、中優先度処理プログラムA,Bで占有される。
その中優先度処理が5.0msecで終了した後、5.0msecの高優先度処理及び5.5msecの高優先度処理では、ROM20からプログラムを読み出すこととなる。また、6.0msecの低優先度処理でも、同様に、ROM20からプログラムを読み出す。
一方、その6.0msecの低優先度処理終了後、アイドル処理が実行されるとともに、そのアイドル処理中に、ダミー処理で、第2の高優先度処理がダミー実行される。そして、そのダミー処理により、第2の高優先度処理プログラムが、インストラクションキャッシュメモリ14に格納される。このため、7.5msecのタイミングにおける第2の高優先度処理では、インストラクションキャッシュメモリ14から第2の高優先度処理プログラムを読み出せるようになる(キャッシュヒット)。
また、8.0〜9.0msecのアイドル処理中に、第2の高優先度処理及び第1の高優先度処理がダミー実行され、第2,第1高優先度処理プログラムが、インストラクションキャッシュメモリ14に格納される。このため、9.0msecにおける第1の高優先度処理では、インストラクションキャッシュメモリ14から第1の高優先度処理プログラムを読み出せるようになる(キャッシュヒット)。
ところで、前述のように、複数の処理の実行期間が重複した場合には、より優先度の高い処理が優先して実行される(図13のS110:YES、S120)。例えば、12.5msecのタイミングでは、第1の高優先度処理と第2の高優先度処理の実行タイミングとなっているが、ここでは、第2の高優先度処理が先に実行される。そして、第2の高優先度処理が終了した後、第1の高優先度処理が実行される。
次に、図25は、キャッシュミス時とキャッシュヒット時との処理時間の違いを表すタイムチャートである。この例では、0,240μsで出力軸回転信号割り込み処理が実行され(割り込み発生)、120μsで入力軸回転信号割り込み処理が実行され(割り込み発生)、また、30μsで変速が開始されるものとして説明する。
まず、0μsのタイミングで実行される出力軸回転信号割り込み処理は、キャッシュミス時は50μsで終了し(実行時間は50μs)、キャッシュヒット時は25μsで終了する(実行時間は25μs)。そして、変速が開始された際(変速発生)に実行される変速時クラッチ油圧制御(図22参照)は、キャッシュミスの場合は、出力軸回転信号割り込み処理が終了した50μsに開始される。一方、キャッシュヒットの場合は、変速発生の前に出力軸回転信号割り込み処理が終了しており、変速発生とともに開始される。
そして、120μsで割り込みが発生すると、変速時クラッチ油圧制御が一旦中断され、入力軸回転信号割り込み処理が実行される。そして、この入力軸回転信号割り込み処理は、キャッシュミスの場合は170μsで終了し(実行時間は50μs)、キャッシュヒットの場合は145μsで終了する(実行時間は25μs)。このため、変速時クラッチ油圧制御は、キャッシュミスの場合は170μsで開始され、キャッシュヒットの場合は145μsに開始される。以降も同様であり、説明を省略する。
このように、キャッシュヒット時のほうが出力軸回転信号割り込み処理及び入力軸回転信号割り込み処理が高速に実行され、変速時クラッチ油圧制御がより早いタイミングで実行されるようになるとともに、実行期間を長くすることができる。このため、出力軸回転数を、より高速かつ確実に、理想出力軸回転数にすることができる。よって、変速ショックのない、滑らかな変速を実現できるようになる。
尚、変速時クラッチ油圧制御のプログラムをダミー実行するようにすれば、変速時クラッチ油圧制御がより高速に実行されるようになるという効果を得ることができる。
〈変形例〉
次に、本第3実施形態の変形例について、図26を用いて説明する。この変形例では、変速制御時/非変速時に応じて、ダミー処理の内容を変更する。尚、変速制御時とは、変速が開始されてから終了するまでの時間(図20のt1,t2,t3)である。また、本変形例では、インストラクションキャッシュメモリ14には、高,中,低優先度処理の各プログラムを同時に格納しておくことができることを前提とする。
図26の上段に、オートマチックトランスミッショ制御の一例を表すタイムチャートを示す。尚、このタイムチャートにおいて、トランスミッション制御としては、前述の出力軸回転信号割り込み処理や入力軸回転信号割り込み処理が実行される。
そして、変速が開始されてから終了するまでの時間以外(非変速時)は、例えばトランスミッション制御が実行され、変速が開始されてから終了するまでの間(変速制御時)は、トランスミッション制御に加え、ソレノイド電流制御(前述の変速時クラッチ油圧制御)が実行される。
このため、非変速時は、変速制御時と比較して、個々のアイドル処理の時間が長くなる。そこで、図26下段に示すように、CPU10は、非変速時のダミー処理では、S172で出力軸回転信号割り込み処理をダミー実行し、S182で入力軸回転信号割り込み処理をダミー実行し、S192で中優先度処理をダミー実行する。
一方、変速制御時のダミー処理では、S172で出力軸回転信号割り込み処理をダミー実行し、S182で入力軸信号割り込み処理をダミー実行する。
これによれば、アイドル処理の時間が短くなり、ダミー処理の時間が制限されるとしても、より優先度の高い第1,第2高優先度処理についてはダミー実行して、正規のタイミングにおける処理時間を短縮させることができる。一方、ダミー処理の時間に余裕があれば、さらに、中優先度処理をダミー実行するようにし、正規のタイミングにおける第1,第2高優先度処理,中優先度処理の各処理時間を短縮させることができる。
このように、本変形例によれば、効率的に処理時間を短縮させるようにすることができる。
尚、例えば、非変速時のダミー処理のS192で、中優先度処理の前半部分のみをダミー実行するようにしてもよいし、変速制御時のダミー処理のS182で、入力軸回転信号割り込み処理の前半部分のみをダミー実行するようにしてもよい。また、S172とS182とを入れ替えてもよい。また、低優先度処理をダミー実行するようにしてもよい。
[第4実施形態]
次に、本発明のマイクロコンピュータを用いた第4実施形態について説明する。
本第4実施形態では、リアルタイムオペレーティングシステム(以下、RTOSと記載する)を用いて、前述したようなエンジン制御やオートマチックトランスミッション制御を行う。このRTOSは、アプリケーションプログラムの実行管理を行うものである。
そして、このRTOSでは、アプリケーションプログラムを実行する前に、そのアプリケーションプログラムを実行するための前処理が実行される。そうすると、その前処理が高速に実行されるようになれば、アプリケーションプログラムが実行されるまでの時間が短縮され、ひいてはシステム全体の処理時間を短縮させることができる。
このため、本第4実施形態では、前処理のプログラムを、ダミー処理により、インストラクションキャッシュメモリ14に予め格納させておく。これにより、正規のタイミングの前処理の実行時間の短縮を図るようにしている。
図27に、RTOSで実行される前処理の内容を示す。尚、図27には、アプリケーションプログラムを実行した後に実行される後処理の内容も示している。また、ここでは、図9〜図18に示したようなエンジン制御システムにRTOSが用いられた場合について説明する。
図27において、NE30°信号が立ち下がり、高優先度処理(NE30°信号割り込み処理)の実行タイミングとなったとする(割り込み発生)。この場合、RTOS下では、前処理が実行された後、NE30°信号割り込み処理が実行され、さらに、後処理が実行される。
前処理では、まず、S910で、コンテキストの退避処理を実行する。このコンテキスト退避処理は、マイコン2の所定のレジスタに記憶されているデータを、RAM30等の所定の格納領域(スタックメモリ)に記憶(退避)させる処理である。例えば、図27右上に示すように、汎用レジスタ(R0,R1,R2,R3…)、プログラムカウンタ(PC)、スタックポインタ(SP)、ステータスレジスタ(SR)のデータをそれぞれ、スタックメモリに記憶(退避)させる。
次に、S920へ進み、割り込み禁止処理を実行する。具体的に、現在実行しようとしている処理(NE30°信号割り込み処理)以外の処理についての割り込み要求の入力を禁止する。
そして、S930へ進み、現在実行中のタスクを「待ち状態」にする。具体的に、そのタスクが実行状態であるか待ち状態であるかを表す状態変数を、待ち状態を表すデータに書き換える。
そして、このS910〜S930までが、前処理に相当する。
前処理が終了すると、NE30°信号割り込み処理を実行し、NE30°信号割り込み処理の後、後処理に移行する。
後処理では、まず、S950で、コンテキスト復帰処理を実行する。具体的に、S910でスタックメモリに記憶(退避)させたデータを読み出して、各レジスタに記憶させる。例えば、前述の汎用レジスタ、プログラムカウンタ、スタックポインタ、ステータスレジスタのデータを、それぞれ、そのスタックメモリから読み出したデータに書き換える。
次に、S960で、割り込み許可処理を実行する。具体的に、割り込み要求の入力の禁止を解除する。
そして、S970では、S930で「待ち状態」にしたタスクを「実行状態」にする。つまり、待ち状態となっていたタスクを実行する。そしてその後、処理を終了する。
尚、中優先度処理を実行する場合、その中優先度処理に応じた前処理及び後処理が実行され、低優先度処理を実行する場合、その低優先度処理に応じた前処理及び後処理が実行される。
そして、本第4実施形態では、図13の管理処理を実行する。
また、図28に、管理処理(図13)のS150で実行されるダミー処理の一例を示す。このダミー処理の内容について、正規の処理(NE30°信号割り込み処理)と比較しつつ説明する。
正規の処理では、まず、「スタック」及び「コントロールブック」を引数パラメータとして、前述の前処理を実行する。この場合、(G)で示すコントロールブロックを読み出す。尚、コントロールブロックは、RTOSについての種々の情報を格納しているものである。例えば、現在存在するタスクのタスク状態(現在実行タスク状態)、割り込み要求があったタスクのID(現在実行割り込みID)等の情報が格納されている。そして、それらの情報の読み出し/書き込みを行う。
また、「スタック」を引数パラメータとすることにより、正規のスタックメモリにアクセスするようになる。
そして、前処理の後、NE30°信号割り込み処理を実行し、さらに後処理を実行して、当該処理を終了する。
一方、ダミー処理では、まず、「ダミースタック」及び「ダミーコントロールブック」を引数パラメータとして、前述の前処理をダミー実行する。この場合、(H)で示すダミーコントロールブロックを読み出す。尚、このダミーコントロールブロックは、ダミーブロックと同じく、RTOSについての種々の情報を格納しているものである。そして、このダミーコントロールブロックに対して、情報の読み出し/書き込みを行う。尚、このダミーコントロールブロックは、正規の処理では、参照されないようになっている。
また、「ダミースタック」を引数パラメータとすることにより、正規のスタックメモリとは異なるダミースタックメモリにアクセスするようになる。
次に、同様に、「ダミースタック」及び「ダミーコントロールブック」を引数パラメータとして、中優先度処理についての前処理をダミー実行する。そしてその後、当該処理を終了する。
次に、本第4実施形態の作用について、図29及び図30を用いて説明する。尚、ここでは、エンジン回転数が一定であるものとする。また、NE30°信号の1周期は3.0msecである。一方、中優先度処理及び低優先度処理は記載を省略する。また、この例では、ダミー処理で、高優先度処理(NE30°信号割り込み処理)の前処理と中優先度処理の前処理とに加え、他の異なる2つの前処理を実行するようになっている。
図29において、まず、0msecのタイミングでは、アイドル処理が実行されている。
一方、1.25msecでNE30°信号が立ち下がって高優先度処理が開始されることとなるが、その前に、前述の前処理が実行される。この場合において、0〜1.25msecのアイドル処理中に、高優先度処理の前処理がダミー実行され、インストラクションキャッシュメモリ14には、高優先度処理の前処理のプログラムが格納されている。このため、1.25msecの正規の前処理においては、インストラクションキャッシュメモリ14からプログラムを読み出せるようになる(キャッシュヒット)。
この場合、前処理が高速で実行され、速やかに高優先度処理(NE30°信号割り込み処理)に移行する(1.5msec)。
高優先度処理が終了すると、インストラクションキャッシュメモリ14の50%は、高優先度処理プログラムで占有されることとなるが、その後、アイドル処理中に、再びダミー処理が実行され、インストラクションキャッシュメモリ14は、4種類の前処理のプログラムで占有されることとなる。
また、例えば、4.0msecに、中優先度処理の実行タイミングとなっている。そして、まず、中優先度処理の前処理が実行されるが、この中優先度処理の前処理のプログラムが、2.0〜4.0msecまでのアイドル処理中のダミー処理により、インストラクションキャッシュメモリ14に格納されているため、4.0msecの前処理では、インストラクションキャッシュメモリ14からプログラムを読み出すことができる(キャッシュヒット)。尚、4.25msecで、高優先度処理の実行タイミングとなっており、この場合、中優先度処理が一旦中断され、高優先度処理が開始される。
この場合も、高優先度処理の前処理のプログラムが、インストラクションキャッシュメモリ14に格納されているため、インストラクションキャッシュメモリ14からプログラムを読み出すことができるようになる(キャッシュヒット)。尚、高優先度処理が終了した5.0msecで、中優先度処理が再開される。
次に、図30に、キャッシュミス時とキャッシュヒット時とでの高優先度処理の前処理の処理時間の違いを示す。図30に示すように、キャッシュミス時は65μsを要し、キャッシュヒット時は45μsを要している。つまり、キャッシュヒット時のほうが、20μs早く高優先度処理に移行できる。
このように、アイドル処理中のダミー処理で、高,中低優先度処理の前に実行される各前処理のプログラムが、インストラクションキャッシュメモリ14に格納されるようになるため、その前処理の処理速度が向上する。このため、システム全体の処理速度を向上させることができる。
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の技術範囲内にて種々の形態をとることができる。
例えば、上記実施形態では、ECU1に備えられるマイコン2について説明したが、インストラクションキャッシュメモリを有しているマイコンであれば、どのようなマイコンでも本発明を適用することができる。
また、インストラクションキャッシュメモリとしては、CPUの外部に設けられる外部キャッシュメモリであってもよい。
また、上記第1実施形態では、OSにより各プログラムの実行管理がなされるが、OSがない場合には、以下のようにすれば良い。まず、高優先度処理、中優先度処理、低優先度処理について、優先度の高い処理ほど、優先度の高い割り込みで実行されるようにする。そして、繰り返し実行されるメインの処理において、制御対象の制御を特にしなくなるアイドル処理の状態の時(例えばアイドル処理開始時)に、ダミー高優先度処理が起動されるようにプログラムを構成すればよい。このようにすれば、上述した図4の管理処理が実行される場合と同じ作用、同じ効果が得られる。
また、本実施形態では、ROM20にプログラムが記憶されているが、RAM30にプログラムが記憶されていても良い。
実施形態のマイコンの構成を表す構成図である。 インストラクションキャッシュメモリ及びRAMの構成を説明する説明図である。 実施形態の作用及び効果を表すタイムチャートである。 マイコンのCPUが実行する管理処理を表すフローチャートである。 マイコンのCPUが実行する処理を表すフローチャートである。 高優先度処理プログラムの一部を表す説明図である。 マイコンの構成を表す構成図である。 従来技術の問題を説明するタイムチャートである。 第2実施形態のエンジン制御システムの構成図である。 エンジン制御を説明する説明図である。 第2実施形態マイコンのCPUが実行する高優先度処理を表すフローチャートである。 第2実施形態マイコンのCPUが実行する高優先度処理の内容を表すフローチャートである。 第2実施形態のマイコンのCPUが実行する管理処理を表すフローチャートである。 第2実施形態のマイコンのCPUが実行する高優先度処理及びダミー処理を説明する説明図である。 第2実施形態の作用及び効果を表すタイムチャートである。 第2実施形態の作用及び効果を表す説明図である。 エンジン制御を表すタイムチャートである。 変形例のマイコンのCPUが実行するダミー処理を表すフローチャートである。 第3実施形態のオートマチックトランスミッション制御システムの構成図である。 オートマチックトランスミッション制御を説明する説明図である。 第3実施形態のマイコンのCPUが実行する高優先度処理を表すフローチャートである。 第3実施形態のマイコンのCPUが実行する高優先度処理の内容を表す説明図である。 第3実施形態のマイコンのCPUが実行する高優先度処理及びダミー処理を説明する説明図である。 第3実施形態の作用及び効果を表すタイムチャートである。 第3実施形態の作用及び効果を表す説明図である。 オートマチックトランスミッション制御を表すタイムチャート及び変形例のマイコンのCPUが実行するダミー処理を表すフローチャートである。 第4実施形態のマイコンが備えるリアルタイムOSによる制御を説明する説明図である。 第4実施形態のマイコンのCPU実行する高優先度処理及びダミー処理を説明する説明図である。 第3実施形態の作用及び効果を表すタイムチャートである。 第3実施形態の作用及び効果を表す説明図である。
符号の説明
1…ECU、2…マイクロコンピュータ、3…水温センサ、4…アクセルペダルセンサ、5…スロットルセンサ、12…CPUコア、14…インストラクションキャッシュメモリ、16…データキャッシュメモリ、20…ROM、22〜29,30…RAM、32〜38…格納領域、40…A/Dコンバータ、50…内部バス、55…インタフェース、101…シリンダ、102…ピストン、103…インジェクタ、104…イグナイタ、105…電子スロットル、106…燃料タンク、107…ポンプ、111…トルクコンバータ、112…ギヤトレーン、113…バルブボデー、114…クラッチ、115…リニアソレノイド、116…プランジャ。

Claims (11)

  1. 複数のプログラムが記憶されるプログラムメモリと、
    前記プログラムメモリより読み出されたプログラムが更新記憶されるインストラクションキャッシュメモリと、
    CPUと、
    を備えたマイクロコンピュータにおいて、
    前記複数のプログラムのうち少なくとも1つの特定のプログラムについて、前記CPUが該特定のプログラムを読み出して実行する正規のタイミングよりも前のタイミングで、前記CPUに該特定のプログラムを実行させるダミー実行制御手段と、
    前記CPUが前記正規のタイミングでプログラムを実行することにより演算した演算結果を記憶する真値記憶部と、
    前記ダミー実行制御手段が前記正規のタイミングよりも前のタイミングで前記CPUにプログラムを実行させることにより前記CPUが演算した演算結果を、前記真値記憶部以外の特定の記憶部に転送する記憶制御手段と、
    を備えていることを特徴とするマイクロコンピュータ。
  2. 請求項1に記載のマイクロコンピュータにおいて、
    前記複数のプログラムは制御対象を制御するためのものであり、
    前記CPUは、前記複数のプログラムを実行することで、前記制御対象を制御するようになっており、
    前記ダミー実行制御手段は、前記CPUが前記制御対象を制御しない時間帯に、該CPUに前記特定のプログラムを実行させることを特徴とするマイクロコンピュータ。
  3. 請求項1又は請求項2に記載のマイクロコンピュータにおいて、
    前記記憶制御手段は、データの転送先を指定するパラメータを有していることを特徴とするマイクロコンピュータ。
  4. 請求項1ないし請求項3の何れか1項に記載のマイクロコンピュータにおいて、
    前記特定の記憶部は、ROMであることを特徴とするマイクロコンピュータ。
  5. 請求項1ないし請求項の何れか1項に記載のマイクロコンピュータにおいて、
    前記プログラムメモリはROMであることを特徴とするマイクロコンピュータ。
  6. 請求項1ないし請求項の何れか1項に記載のマイクロコンピュータにおいて、
    前記プログラムメモリはRAMであることを特徴とするマイクロコンピュータ。
  7. 請求項1ないし請求項の何れか1項に記載のマイクロコンピュータにおいて、
    当該マイクロコンピュータは、車両に搭載されるものであり、
    前記プログラムメモリには、前記車両を制御するためのプログラム(以下、車両制御用プログラムという)として、前記車両のエンジンを制御するためのエンジン制御用プログラムが記憶されており、
    前記ダミー実行制御手段は、前記エンジン制御用プログラムを、該エンジン制御用プログラムについての前記正規のタイミングよりも前のタイミングで、前記CPUに実行させるようになっていることを特徴とするマイクロコンピュータ。
  8. 請求項1ないし請求項の何れか1項に記載のマイクロコンピュータにおいて、
    当該マイクロコンピュータは、車両に搭載されるものであり、
    前記プログラムメモリには、前記車両を制御するためのプログラム(以下、車両制御用プログラムという)として、前記車両の変速機を制御するための変速機制御用プログラムが記憶されており、
    前記ダミー実行制御手段は、前記変速機制御用プログラムを、該変速機制御用プログラムについての前記正規のタイミングよりも前のタイミングで、前記CPUに実行させるようになっていることを特徴とするマイクロコンピュータ。
  9. 請求項又は請求項に記載のマイクロコンピュータにおいて、
    オペレーティングシステムを備えているとともに、前記車両制御用プログラムは、前記オペレーティングシステムによって実行が管理されるアプリケーションプログラムであり、さらに、前記車両制御用プログラムが実行される前には、その車両制御用プログラムを実行する準備を行うための処理のプログラム(以下、準備プログラムという)が実行されるようになっており、
    前記準備プログラムは、前記プログラムメモリに記憶されており、
    前記ダミー実行制御手段は、前記準備プログラムを、該準備プログラムについての前記正規のタイミングよりも前のタイミングで、前記CPUに実行させるようになっていることを特徴とするマイクロコンピュータ。
  10. 請求項に記載のマイクロコンピュータにおいて、
    前記エンジン制御用プログラムは複数あり、
    前記ダミー実行制御手段は、前記エンジンの回転数の高低を判定するとともに、前記複数のエンジン制御用プログラムのうち、正規のタイミングよりも前のタイミングで前記CPUに実行させるプログラムを、前記判定結果に基づき変更するようになっていることを特徴とするマイクロコンピュータ。
  11. 請求項に記載のマイクロコンピュータにおいて、
    前記変速機は、変速段を切り換えることで変速を実現するものであるとともに、前記変速機制御用プログラムは複数あり、
    前記ダミー実行制御手段は、前記複数の変速機制御用プログラムのうち、正規のタイミングよりも前のタイミングで前記CPUに実行させるプログラムを、前記変速段の切換中/非切換中に応じて変更するようになっていることを特徴とするマイクロコンピュータ。
JP2006250994A 2005-12-26 2006-09-15 マイクロコンピュータ Expired - Fee Related JP4882625B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006250994A JP4882625B2 (ja) 2005-12-26 2006-09-15 マイクロコンピュータ
US11/642,636 US20070150655A1 (en) 2005-12-26 2006-12-21 Microcomputer provided with instruction cache memory
EP06026784A EP1808766A3 (en) 2005-12-26 2006-12-22 Microcomputer provided with instruction cache memory

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005373206 2005-12-26
JP2005373206 2005-12-26
JP2006250994A JP4882625B2 (ja) 2005-12-26 2006-09-15 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2007200277A JP2007200277A (ja) 2007-08-09
JP4882625B2 true JP4882625B2 (ja) 2012-02-22

Family

ID=37964310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006250994A Expired - Fee Related JP4882625B2 (ja) 2005-12-26 2006-09-15 マイクロコンピュータ

Country Status (3)

Country Link
US (1) US20070150655A1 (ja)
EP (1) EP1808766A3 (ja)
JP (1) JP4882625B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979642B2 (en) * 2008-09-11 2011-07-12 Arm Limited Managing the storage of high-priority storage items in storage units in multi-core and multi-threaded systems using history storage and control circuitry
JP5916355B2 (ja) 2011-11-21 2016-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラムの命令を実行する装置および命令をキャッシュするシステム
JP6465384B2 (ja) * 2014-11-05 2019-02-06 コニカミノルタ株式会社 画像形成装置及び並列処理制御プログラム並びに並列処理制御方法
JP6668966B2 (ja) * 2016-06-16 2020-03-18 コニカミノルタ株式会社 画像形成装置
JP6716708B2 (ja) * 2016-10-03 2020-07-01 日立オートモティブシステムズ株式会社 車載電子制御装置
KR102462507B1 (ko) 2017-06-29 2022-11-02 삼성전자주식회사 프로세서, 이를 포함하는 컴퓨팅 장치 및 프로세서 저전력 모드 진입 방법
CN110979349B (zh) * 2019-12-10 2021-11-23 北京经纬恒润科技股份有限公司 一种自动驾驶汽车底盘域的控制指令分配方法及系统
CN110979347B (zh) * 2019-12-10 2021-11-23 北京经纬恒润科技股份有限公司 一种自动驾驶汽车底盘域的指令仲裁方法及系统
JP7476638B2 (ja) 2020-04-15 2024-05-01 株式会社デンソー マルチプロセッサシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55137358A (en) * 1979-04-16 1980-10-27 Nissan Motor Co Ltd Controller for automobile
US5155843A (en) * 1990-06-29 1992-10-13 Digital Equipment Corporation Error transition mode for multi-processor system
US6163793A (en) * 1994-08-05 2000-12-19 Intel Corporation Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
JP3612745B2 (ja) * 1994-09-20 2005-01-19 株式会社デンソー 車両用運動特性制御装置
US5642493A (en) * 1994-11-25 1997-06-24 Motorola, Inc. Method of loading instructions into an instruction cache by repetitively using a routine containing a mispredicted branch instruction
JP3775220B2 (ja) * 2000-12-27 2006-05-17 株式会社デンソー 内燃機関用制御装置
US7134003B2 (en) * 2002-12-12 2006-11-07 Arm Limited Variable cycle instruction execution in variable or maximum fixed cycle mode to disguise execution path
JP4837247B2 (ja) * 2003-09-24 2011-12-14 パナソニック株式会社 プロセッサ
JP2005215891A (ja) * 2004-01-28 2005-08-11 Denso Corp エンジン制御装置、エンジン制御装置のキャッシュの制御方法

Also Published As

Publication number Publication date
EP1808766A2 (en) 2007-07-18
US20070150655A1 (en) 2007-06-28
EP1808766A3 (en) 2008-04-09
JP2007200277A (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
JP4882625B2 (ja) マイクロコンピュータ
JP4728020B2 (ja) 車両制御用ソフトウェア及び車両制御装置
JP3610915B2 (ja) 処理実行装置及びプログラム
US4398520A (en) Ignition and fuel injection system for multicylinder engines
US8515652B2 (en) Control device for internal combustion engine
CN105378249A (zh) 内燃机的控制装置
CN112709643B (zh) 一种发动机的停缸控制方法、系统及车辆
EP3097294B1 (en) Control device forn an internal combustion engine
JP2002529640A (ja) 内燃機関の作動方法
JP2000047883A (ja) タスク制御方法および記録媒体
US6334080B1 (en) Vehicle control apparatus and method sharing control data
JP2002529638A (ja) 内燃機関を運転するための方法
JP4385894B2 (ja) エンジンの始動制御方法及び始動制御装置
JP2009167889A (ja) 内燃機関の制御方法
US6754576B2 (en) Electronic control unit having different mask return processes
JP2001090564A (ja) 内燃機関の制御装置
JP2000136750A (ja) 車両の駆動制御方法及びそのシステム
US6516265B1 (en) Method and device for controlling processes in conjunction with an internal combustion engine
JP3783553B2 (ja) 情報処理装置
JP3206152B2 (ja) エンジンと変速機の総合制御装置
CN107816394B (zh) 使用进气冲程继续多进气道喷射的方法及使用其的车辆
JP2002371887A (ja) 筒内噴射型内燃機関の始動時制御装置
JPH0513861B2 (ja)
JPS60128027A (ja) パワ−トレ−ンの制御方法
US7231286B2 (en) Engine torque reduction control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4882625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees