(57)【特許請求の範囲】
【請求項１】
第１ＣＰＵ（１０）と、
第２ＣＰＵ（２０）と、
前記第１ＣＰＵおよび前記第２ＣＰＵの外部に設けられ、前記第１ＣＰＵおよび前記第２ＣＰＵの両方が実行する共通プログラムを記憶する共通プログラム記憶部（３０）とを備え、
前記第１ＣＰＵは、
前記共通プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通プログラム記憶部からコピーされる前記共通プログラムを記憶する第１プログラム記憶部（１３）と、
前記第１プログラム記憶部に記憶されている前記共通プログラムへアクセスすることにより処理を実行する第１処理実行部（１１）と、
前記第１プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第１プログラム記憶部に記憶されている前記共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、前記共通プログラム内で基準となるアドレスとして予め設定された共通プログラム内基準アドレスを基準として前記共通プログラム内で前記内部プログラムへアクセスするためのオフセットアドレスを示すプログラムオフセットアドレスと、前記第１プログラム記憶部内において前記共通プログラム内基準アドレスに対応する論理アドレスを示す第１プログラム基準アドレスとに基づき、前記内部プログラムへアクセスする論理アドレスを決定する第１プログラムアドレス決定手段（Ｓ１３０）と、
前記第１処理実行部に対して、前記第１プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる第１プログラムアクセス手段（Ｓ１４０）とを備え、
前記第２ＣＰＵは、
前記共通プログラム記憶部および前記第１プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通プログラム記憶部からコピーされる前記共通プログラムを記憶する第２プログラム記憶部（２３）と、
前記第２プログラム記憶部に記憶されている前記共通プログラムへアクセスすることにより処理を実行する第２処理実行部（２１）と、
前記第２プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第２プログラム記憶部に記憶されている前記共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、前記プログラムオフセットアドレスと、前記第２プログラム記憶部内において前記共通プログラム内基準アドレスに対応する論理アドレスを示す第２プログラム基準アドレスとに基づき、前記内部プログラムへアクセスする論理アドレスを決定する第２プログラムアドレス決定手段（Ｓ１３０）と、
前記第２処理実行部に対して、前記第２プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる第２プログラムアクセス手段（Ｓ１４０）とを備える
ことを特徴とする電子制御装置（１）。
【請求項２】
前記共通プログラム内基準アドレスは、前記共通プログラム記憶部に記憶されている前記共通プログラムにおける先頭の論理アドレスを示す
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記第１ＣＰＵおよび前記第２ＣＰＵを識別するためのＣＰＵ識別情報が、前記第１ＣＰＵおよび前記第２ＣＰＵのそれぞれに設定され、
前記第１ＣＰＵおよび前記第２ＣＰＵがそれぞれ、前記第１プログラム基準アドレスおよび前記第２プログラム基準アドレスに対応付けられているプログラム対応関係記憶部（ＡＴ）を備え、
前記第１ＣＰＵは、
前記第１ＣＰＵの前記ＣＰＵ識別情報と、前記プログラム対応関係記憶部とを参照することにより、前記第１ＣＰＵに対して前記第１プログラム基準アドレスを設定する第１プログラム設定手段（Ｓ１０，Ｓ２０，Ｓ３０）を備え、
前記第２ＣＰＵは、
前記第２ＣＰＵの前記ＣＰＵ識別情報と、前記プログラム対応関係記憶部とを参照することにより、前記第２ＣＰＵに対して前記第２プログラム基準アドレスを設定する第２プログラム設定手段（Ｓ１０，Ｓ２０，Ｓ３０）を備える
ことを特徴とする請求項１または請求項２に記載の電子制御装置。
【請求項４】
前記第１ＣＰＵが前記共通プログラムを実行するために使用される複数の第１定数データを有する第１定数データ群（Ｃ１）と、前記第２ＣＰＵが前記共通プログラムを実行するために使用される複数の第２定数データを有する第２定数データ群（Ｃ２）とを記憶する共通定数記憶部（３０）を備え、
前記第１ＣＰＵは、
前記共通プログラム記憶部、前記第１プログラム記憶部および前記第２プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通定数記憶部からコピーされる前記第１定数データ群を記憶する第１定数記憶部（１４）と、
前記第１プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第１定数記憶部に記憶されている前記第１定数データ群の前記第１定数データにアクセスする場合において、前記第１定数データ群内で基準となるアドレスとして予め設定された第１定数群内基準アドレスを基準として前記第１定数データ群内で前記第１定数データへアクセスするためのオフセットアドレスを示す第１定数オフセットアドレスと、前記第１定数記憶部内において前記第１定数群内基準アドレスに対応する論理アドレスを示す第１定数基準アドレスとに基づき、前記第１定数データへアクセスする論理アドレスを決定する第１定数アドレス決定手段（Ｓ２３０）と、
前記第１処理実行部に対して、前記第１定数アドレス決定手段により決定された論理アドレスへアクセスさせる第１定数アクセス手段（Ｓ２４０）とを備え、
前記第２ＣＰＵは、
前記共通プログラム記憶部、前記第１プログラム記憶部、前記第２プログラム記憶部および前記第１定数記憶部とは異なる論理アドレスが割り当てられ、前記共通定数記憶部からコピーされる前記第２定数データ群を記憶する第２定数記憶部（２４）と、
前記第２プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第２定数記憶部に記憶されている前記第２定数データ群の前記第２定数データにアクセスする場合において、前記第２定数データ群内で基準となるアドレスとして予め設定された第２定数群内基準アドレスを基準として前記第２定数データ群内で前記第２定数データへアクセスするためのオフセットアドレスを示す第２定数オフセットアドレスと、前記第２定数記憶部内において前記第２定数群内基準アドレスに対応する論理アドレスを示す第２定数基準アドレスとに基づき、前記第２定数データへアクセスする論理アドレスを決定する第２定数アドレス決定手段（Ｓ２３０）と、
前記第２処理実行部に対して、前記第２定数アドレス決定手段により決定された論理アドレスへアクセスさせる第２定数アクセス手段（Ｓ２４０）とを備える
ことを特徴とする請求項１〜請求項３の何れか１項に記載の電子制御装置。
【請求項５】
前記第１定数群内基準アドレスは、前記共通定数記憶部に記憶されている前記第１定数データ群における先頭の論理アドレスを示し、
前記第２定数群内基準アドレスは、前記共通定数記憶部に記憶されている前記第２定数データ群における先頭の論理アドレスを示す
ことを特徴とする請求項４に記載の電子制御装置。
【請求項６】
前記第１ＣＰＵおよび前記第２ＣＰＵを識別するためのＣＰＵ識別情報が、前記第１ＣＰＵおよび前記第２ＣＰＵのそれぞれに設定され、
前記第１ＣＰＵおよび前記第２ＣＰＵがそれぞれ、前記第１定数基準アドレスおよび前記第２定数基準アドレスに対応付けられている定数対応関係記憶部（ＡＴ）を備え、
前記第１ＣＰＵは、
前記第１ＣＰＵの前記ＣＰＵ識別情報と、前記定数対応関係記憶部とを参照することにより、前記第１ＣＰＵに対して前記第１定数基準アドレスを設定する第１定数設定手段（Ｓ１０，Ｓ２０，Ｓ４０）を備え、
前記第２ＣＰＵは、
前記第２ＣＰＵの前記ＣＰＵ識別情報と、前記定数対応関係記憶部とを参照することにより、前記第２ＣＰＵに対して前記第２定数基準アドレスを設定する第２定数設定手段（Ｓ１０，Ｓ２０，Ｓ４０）を備える
ことを特徴とする請求項４または請求項５に記載の電子制御装置。
【請求項７】
前記第１ＣＰＵが前記共通プログラムを実行するために使用される複数の第１変数データを有する第１変数データ群（Ｖ１）と、前記第２ＣＰＵが前記共通プログラムを実行するために使用される複数の第２変数データを有する第２変数データ群（Ｖ２）とを記憶する共通変数記憶部（４０）を備え、
前記第１ＣＰＵは、
前記共通プログラム記憶部、前記第１プログラム記憶部および前記第２プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通変数記憶部からコピーされる前記第１変数データ群を記憶する第１変数記憶部（１４）と、
前記第１プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第１変数記憶部に記憶されている前記第１変数データ群の前記第１変数データにアクセスする場合において、前記第１変数データ群内で基準となるアドレスとして予め設定された第１変数群内基準アドレスを基準として前記第１変数データ群内で前記第１変数データへアクセスするためのオフセットアドレスを示す第１変数オフセットアドレスと、前記第１変数記憶部内において前記第１変数群内基準アドレスに対応する論理アドレスを示す第１変数基準アドレスとに基づき、前記第１変数データへアクセスする論理アドレスを決定する第１変数アドレス決定手段（Ｓ３３０）と、
前記第１処理実行部に対して、前記第１変数アドレス決定手段により決定された論理アドレスへアクセスさせる第１変数アクセス手段（Ｓ３４０）とを備え、
前記第２ＣＰＵは、
前記共通プログラム記憶部、前記第１プログラム記憶部、前記第２プログラム記憶部および前記第１変数記憶部とは異なる論理アドレスが割り当てられ、前記共通変数記憶部からコピーされる前記第２変数データ群を記憶する第２変数記憶部（２４）と、
前記第２プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第２変数記憶部に記憶されている前記第２変数データ群の前記第２変数データにアクセスする場合において、前記第２変数データ群内で基準となるアドレスとして予め設定された第２変数群内基準アドレスを基準として前記第２変数データ群内で前記第２変数データへアクセスするためのオフセットアドレスを示す第２変数オフセットアドレスと、前記第２変数記憶部内において前記第２変数群内基準アドレスに対応する論理アドレスを示す第２変数基準アドレスとに基づき、前記第２変数データへアクセスする論理アドレスを決定する第２変数アドレス決定手段（Ｓ３３０）と、
前記第２処理実行部に対して、前記第２変数アドレス決定手段により決定された論理アドレスへアクセスさせる第２変数アクセス手段（Ｓ３４０）とを備える
ことを特徴とする請求項１〜請求項６の何れか１項に記載の電子制御装置。
【請求項８】
前記第１変数群内基準アドレスは、前記共通変数記憶部に記憶されている前記第１変数データ群における先頭の論理アドレスを示し、
前記第２変数群内基準アドレスは、前記共通変数記憶部に記憶されている前記第２変数データ群における先頭の論理アドレスを示す
ことを特徴とする請求項７に記載の電子制御装置。
【請求項９】
前記第１ＣＰＵおよび前記第２ＣＰＵを識別するためのＣＰＵ識別情報が、前記第１ＣＰＵおよび前記第２ＣＰＵのそれぞれに設定され、
前記第１ＣＰＵおよび前記第２ＣＰＵがそれぞれ、前記第１変数基準アドレスおよび前記第２変数基準アドレスに対応付けられている変数対応関係記憶部（ＡＴ）を備え、
前記第１ＣＰＵは、
前記第１ＣＰＵの前記ＣＰＵ識別情報と、前記変数対応関係記憶部とを参照することにより、前記第１ＣＰＵに対して前記第１変数基準アドレスを設定する第１変数設定手段（Ｓ１０，Ｓ２０，Ｓ５０）を備え、
前記第２ＣＰＵは、
前記第２ＣＰＵの前記ＣＰＵ識別情報と、前記変数対応関係記憶部とを参照することにより、前記第２ＣＰＵに対して前記第２変数基準アドレスを設定する第２変数設定手段（Ｓ１０，Ｓ２０，Ｓ５０）を備える
ことを特徴とする請求項７または請求項８に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを備えた電子制御装置に関する。
【背景技術】
【０００２】
従来、車両に搭載された電子制御装置において、高機能化に伴う処理負荷の増加に対応するために、複数のＣＰＵを備えたものが知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３４９１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
電子制御装置に搭載された複数のＣＰＵのそれぞれに内蔵メモリが搭載されている場合には、各ＣＰＵは、対応する内蔵メモリに記憶されているプログラムへアクセスすることにより、プログラムを実行することができる。これにより、ＣＰＵの外部に設けられた不揮発性メモリに記憶されているプログラムへアクセスする場合よりも高速にプログラムを実行することが可能となる。ただし、この内蔵メモリは揮発性であるため、ＣＰＵがプログラムの実行する前に、上記不揮発性メモリに記憶されているプログラムを内蔵メモリにコピーする必要がある。
【０００５】
しかし、この内蔵メモリには、ＣＰＵ毎に異なる論理アドレスが割り当てられている。このため、内蔵メモリに記憶されているプログラムを実行する場合において、例えばサブルーチンプログラムを呼び出すときに、内蔵メモリに記憶されているプログラムへアクセスするためのアドレスがＣＰＵ毎に異なる。すなわち、内蔵メモリにコピーされるプログラムは、ＣＰＵ毎に、サブルーチンプログラム等へアクセスするためのアドレスを定義する必要がある。
【０００６】
このため、複数のＣＰＵが同じプログラムを実行する場合であっても、上記不揮発性メモリ内に、アクセスするアドレスが異なるプログラムをＣＰＵ毎に設けなくてはならないという問題があった。
【０００７】
本発明は、こうした問題に鑑みてなされたものであり、複数のＣＰＵを備えた電子制御装置においてメモリ容量の増大を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明の電子制御装置は、第１ＣＰＵと、第２ＣＰＵと、第１ＣＰＵおよび第２ＣＰＵの外部に設けられ、第１ＣＰＵおよび第２ＣＰＵの両方が実行する共通プログラムを記憶する共通プログラム記憶部とを備える。
【０００９】
第１ＣＰＵは、第１プログラム記憶部と、第１処理実行部と、第１プログラムアドレス決定手段と、第１プログラムアクセス手段とを備える。また第２ＣＰＵは、第２プログラム記憶部と、第２処理実行部と、第２プログラムアドレス決定手段と、第２プログラムアクセス手段とを備える。
【００１０】
第１プログラム記憶部は、共通プログラム記憶部とは異なる論理アドレスが割り当てられ、共通プログラム記憶部からコピーされる共通プログラムを記憶する。また第１処理実行部は、第１プログラム記憶部に記憶されている共通プログラムへアクセスすることにより処理を実行する。そして第１プログラムアドレス決定手段が、第１プログラム記憶部に記憶されている共通プログラムから読み込む命令に基づいて、第１プログラム記憶部に記憶されている共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、共通プログラム内で基準となるアドレスとして予め設定された共通プログラム内基準アドレスを基準として共通プログラム内で内部プログラムへアクセスするためのオフセットアドレスを示すプログラムオフセットアドレスと、第１プログラム記憶部内において共通プログラム内基準アドレスに対応する論理アドレスを示す第１プログラム基準アドレスとに基づき、内部プログラムへアクセスする論理アドレスを決定する。さらに第１プログラムアクセス手段が、第１処理実行部に対して、第１プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる。
【００１１】
第２プログラム記憶部は、共通プログラム記憶部および第１プログラム記憶部とは異なる論理アドレスが割り当てられ、共通プログラム記憶部からコピーされる共通プログラムを記憶する。また第２処理実行部は、第２プログラム記憶部に記憶されている共通プログラムへアクセスすることにより処理を実行する。そして第２プログラムアドレス決定手段が、第２プログラム記憶部に記憶されている共通プログラムから読み込む命令に基づいて、第２プログラム記憶部に記憶されている共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、プログラムオフセットアドレスと、第２プログラム記憶部内において共通プログラム内基準アドレスに対応する論理アドレスを示す第２プログラム基準アドレスとに基づき、内部プログラムへアクセスする論理アドレスを決定する。さらに第２プログラムアクセス手段が、第２処理実行部に対して、第２プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる。
【００１２】
このように構成された電子制御装置では、まず、第１プログラム記憶部および第２プログラム記憶部が、共通プログラム記憶部からコピーされる共通プログラムを記憶する。すなわち、共通プログラム記憶部に記憶されている共通プログラムの構成は、第１プログラム記憶部および第２プログラム記憶部に記憶されている共通プログラムの構成と同一である。
【００１３】
このため、共通プログラム記憶部において共通プログラム内基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容と、第１プログラム記憶部において第１プログラム基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容は互いに同一である。同様に、共通プログラム記憶部において共通プログラム内基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容と、第２プログラム記憶部において第２プログラム基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容は互いに同一である。
【００１４】
そして第１ＣＰＵは、プログラムオフセットアドレスと第１プログラム基準アドレスとに基づき、第１プログラム記憶部内の内部プログラムへアクセスする。同様に第２ＣＰＵは、プログラムオフセットアドレスと第２プログラム基準アドレスとに基づき、第２プログラム記憶部内の内部プログラムへアクセスする。すなわち、本発明の電子制御装置では、共通プログラム記憶部に記憶されている共通プログラムを第１プログラム記憶部および第２プログラム記憶部のそれぞれに記憶させた上で、第１ＣＰＵおよび第２ＣＰＵが共通プログラムを実行することができる。このため、本発明の電子制御装置によれば、第１ＣＰＵおよび第２ＣＰＵが共通プログラムを実行する場合であっても、共通プログラム記憶部内に、アクセスするアドレスが異なる共通プログラムをＣＰＵ毎に設ける必要がなくなり、共通プログラム記憶部における記憶容量の増大を抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】ＥＣＵ１の構成を示すブロック図である。
【図２】アドレス設定処理を示すフローチャートである。
【図３】プログラムアクセス処理を示すフローチャートである。
【図４】定数アクセス処理を示すフローチャートである。
【図５】変数アクセス処理を示すフローチャートである。
【図６】ＣＰＵ１０、フラッシュＲＯＭ３０およびＲＡＭ４０に記憶されているデータを示す図である。
【図７】ＣＰＵ２０、フラッシュＲＯＭ３０およびＲＡＭ４０に記憶されているデータを示す図である。
【発明を実施するための形態】
【００１６】
以下に本発明の実施形態を図面とともに説明する。
本実施形態の電子制御装置（Electronic Control Unit）１（以下、ＥＣＵ１という）は、車両に搭載され、車両のエンジン（不図示）の制御を行う。
【００１７】
ＥＣＵ１は、図１に示すように、マイクロコンピュータ（以下、マイコンという）２を備える。
マイコン２は、エンジンを制御するための処理を実行し、車両に取り付けられた電気負荷（インジェクタ等）を制御するための制御信号を出力する。
【００１８】
またマイコン２は、ＣＰＵ（Central Processing Unit）１０，２０、フラッシュＲＯＭ３０およびＲＡＭ４０と、これらを相互に接続するバス５０とを備える。
ＣＰＵ１０，２０は、フラッシュＲＯＭ３０に記憶されたプログラムに基づいて各種処理を実行する。フラッシュＲＯＭ３０は、ＣＰＵ１０，２０によって実行されるプログラムを記憶するための不揮発性メモリである。ＲＡＭ４０は、ＣＰＵ１０，２０の演算結果等を一時記憶するための揮発性メモリである。
【００１９】
ＣＰＵ１０は、演算装置１１、内部レジスタ１２、プログラム用内蔵メモリ１３およびデータ用内蔵メモリ１４を備える。またＣＰＵ２０は、演算装置２１、内部レジスタ２２、プログラム用内蔵メモリ２３およびデータ用内蔵メモリ２４を備える。
【００２０】
演算装置１１，２１はそれぞれ、プログラム用内蔵メモリ１３，２３およびフラッシュＲＯＭ３０に記憶されているプログラムから命令を読み込み、読み込んだ命令を実行する。
【００２１】
内部レジスタ１２，２２はそれぞれ、演算装置１１，２１による演算で使用されるデータを一時的に記憶したり、演算装置１１，２１による演算の状態を示したりするために用いられる。
【００２２】
プログラム用内蔵メモリ１３，２３はそれぞれ、ＣＰＵ１０，２０が実行するプログラムを記憶するための揮発性メモリである。
データ用内蔵メモリ１４，２４はそれぞれ、ＣＰＵ１０，２０がプログラムを実行するために使用するデータを記憶するための揮発性メモリである。
【００２３】
フラッシュＲＯＭ３０は、車両に搭載されたエンジン等を制御する車両制御プログラム（不図示）と、車両制御プログラムを実行するための基盤となるオペレーティングシステム（以下、ＯＳという）を制御するＯＳプログラムＰＧを記憶する。
【００２４】
またフラッシュＲＯＭ３０は、ＣＰＵ１０，２０が車両制御プログラムを実行するために使用する複数の定数データを有する定数データ群（不図示）を記憶する。さらにフラッシュＲＯＭ３０は、ＣＰＵ１０がＯＳプログラムＰＧを実行するために使用する複数のＯＳ定数データを有するＯＳ定数データ群Ｃ１と、ＣＰＵ２０がＯＳプログラムＰＧを実行するために使用する複数のＯＳ定数データを有するＯＳ定数データ群Ｃ２を記憶する。
【００２５】
ＲＡＭ４０は、ＣＰＵ１０，２０が車両制御プログラムを実行するために使用する複数の変数データを有する変数データ群（不図示）を記憶する。さらにＲＡＭ４０は、ＣＰＵ１０がＯＳプログラムＰＧを実行するために使用する複数のＯＳ変数データを有するＯＳ変数データ群Ｖ１と、ＣＰＵ２０がＯＳプログラムＰＧを実行するために使用する複数のＯＳ変数データを有するＯＳ変数データ群Ｖ２を記憶する。
【００２６】
なお本実施形態では、フラッシュＲＯＭ３０には０ｘ００００００００からの論理アドレス、ＲＡＭ４０には０ｘ０１００００００からの論理アドレス（図６を参照）が割り当てられている。また、プログラム用内蔵メモリ１３には０ｘ１０００００００からの論理アドレス（図６を参照）、データ用内蔵メモリ１４には０ｘ１５００００００からの論理アドレス（図６を参照）が割り当てられている。また、プログラム用内蔵メモリ２３には０ｘ２０００００００からの論理アドレス（図７を参照）、データ用内蔵メモリ２４には０ｘ２５００００００からの論理アドレス（図７を参照）が割り当てられている。
【００２７】
このように構成されたＥＣＵ１において、ＣＰＵ１０，２０は、後述するアドレス設定処理、プログラムアクセス処理、定数アクセス処理および変数アクセス処理を実行する。
まず、アドレス設定処理の手順を説明する。アドレス設定処理は、ＥＣＵ１が起動した直後に１回のみ実行される処理である。
【００２８】
このアドレス設定処理が実行されると、ＣＰＵ１０（ＣＰＵ２０）は、図２に示すように、まずＳ１０にて、内部レジスタ１２（内部レジスタ２２）に設けられているＣＰＵ識別レジスタＩＤＲ（図６および図７を参照）からＣＰＵ識別情報を取得する。ＣＰＵ識別情報は、ＣＰＵ１０，２０を識別するための情報である。例えば、ＣＰＵ１０はＣＰＵ識別情報として０が設定され、ＣＰＵ２０はＣＰＵ識別情報として１が設定されている。
【００２９】
そしてＳ２０にて、フラッシュＲＯＭ３０に設けられているアドレス設定テーブルＡＴ（図１を参照）を参照することにより、Ｓ１０で取得したＣＰＵ識別情報により特定されるＣＰＵのベースアドレス（後述）を取得する。なおアドレス設定テーブルＡＴには、ＣＰＵ１０およびＣＰＵ２０のそれぞれについて、ＯＳプログラム、ＯＳ定数データ群およびＯＳ変数データ群のベースアドレスが設定されている。以下、ＯＳプログラム、ＯＳ定数データ群およびＯＳ変数データ群のベースアドレスをそれぞれ、プログラム用ベースアドレス、定数用ベースアドレスおよび変数用ベースアドレスという。
【００３０】
次にＳ３０にて、Ｓ２０で取得したプログラム用ベースアドレスを、プログラム用ベースアドレスを記憶するために予め設定された専用レジスタＳＰＲ０（図６および図７を参照）に格納する。またＳ４０にて、Ｓ２０で取得した定数用ベースアドレスを、定数用ベースアドレスを記憶するために予め設定された専用レジスタＳＰＲ１（図６および図７を参照）に格納する。さらにＳ５０にて、Ｓ２０で取得した変数用ベースアドレスを、変数用ベースアドレスを記憶するために予め設定された専用レジスタＳＰＲ２（図６および図７を参照）に格納する。
【００３１】
そしてＳ６０にて、フラッシュＲＯＭ３０に記憶されているＯＳプログラムＰＧを、プログラム用内蔵メモリ１３（プログラム用内蔵メモリ２３）へ転送する。なお、プログラム用内蔵メモリ１３（プログラム用内蔵メモリ２３）へ転送されたＯＳプログラムＰＧは、専用レジスタＳＰＲ０に格納されているプログラム用ベースアドレスを先頭アドレスとしてプログラム用内蔵メモリ１３（プログラム用内蔵メモリ２３）内に配置される。
【００３２】
さらにＳ７０にて、フラッシュＲＯＭ３０に記憶されているＯＳ定数データ群Ｃ１（ＯＳ定数データ群Ｃ２）をデータ用内蔵メモリ１４（データ用内蔵メモリ２４）へ転送し、アドレス設定処理を終了する。なお、データ用内蔵メモリ１４（データ用内蔵メモリ２４）へ転送されたＯＳ定数データ群Ｃ１（ＯＳ定数データ群Ｃ２）は、専用レジスタＳＰＲ１に格納されている定数用ベースアドレスを先頭アドレスとしてデータ用内蔵メモリ１４（データ用内蔵メモリ２４）内に配置される。
【００３３】
次に、プログラムアクセス処理の手順を説明する。プログラムアクセス処理は、ＯＳプログラムＰＧに含まれるアプリケーションプログラミングインタフェース毎に設けられている。そしてプログラムアクセス処理は、対応するアプリケーションプログラミングインタフェースへＯＳプログラムＰＧがジャンプする場合、または、対応するアプリケーションプログラミングインタフェースをＯＳプログラムＰＧがサブルーチンコールする場合に実行される。
【００３４】
このプログラムアクセス処理が実行されると、ＣＰＵ１０（ＣＰＵ２０）は、図３に示すように、まずＳ１１０にて、対応するアプリケーションプログラミングインタフェースのオフセットアドレスを取得する。オフセットアドレスは、対応するアプリケーションプログラミングインタフェースがフラッシュＲＯＭ３０に記憶されている場合におけるフラッシュＲＯＭ３０内の論理アドレス（以下、フラッシュＲＯＭ内アドレスという）の下位部分（下位アドレス）である。例えば、対応するアプリケーションプログラミングインタフェースのフラッシュＲＯＭ内アドレスが、０ｘ００１０３０００である場合には、その下位アドレスは０ｘ００００３０００である。
【００３５】
そして、対応するアプリケーションプログラミングインタフェースのフラッシュＲＯＭ内アドレスは、プログラムアクセス処理を実行するプログラム内に予め設定されている。
このためＳ１１０では、当該プログラムアクセス処理において予め設定されているフラッシュＲＯＭ内アドレスから下位アドレスを抽出することにより、オフセットアドレスを取得する。
【００３６】
次にＳ１２０にて、専用レジスタＳＰＲ０に格納されているプログラム用ベースアドレスを取得する。さらにＳ１３０にて、取得したオフセットアドレスとプログラム用ベースアドレスとを加算することにより絶対アドレスを算出する。例えば、オフセットアドレスが０ｘ００００３０００であり、プログラム用ベースアドレスが０ｘ１０００００００である場合には、絶対アドレスは０ｘ１０００３０００である。
【００３７】
そしてＳ１４０にて、Ｓ１３０で算出した絶対アドレスへアクセスし、プログラムアクセス処理を終了する。これにより、対応するアプリケーションプログラミングインタフェースを実行することができる。
【００３８】
次に、定数アクセス処理の手順を説明する。定数アクセス処理は、ＯＳ定数データ毎に設けられている。そして定数アクセス処理は、対応するＯＳ定数データをＯＳプログラムＰＧが読み出す場合に実行される。
【００３９】
この定数アクセス処理が実行されると、ＣＰＵ１０（ＣＰＵ２０）は、図４に示すように、まずＳ２１０にて、対応するＯＳ定数データのオフセットアドレスを取得する。オフセットアドレスは、対応するＯＳ定数データがフラッシュＲＯＭ３０に記憶されている場合におけるフラッシュＲＯＭ３０内の論理アドレス（以下、フラッシュＲＯＭ内アドレスという）の下位部分（下位アドレス）である。そして、対応するＯＳ定数データのフラッシュＲＯＭ内アドレスは、定数アクセス処理を実行するプログラム内に予め設定されている。
【００４０】
このためＳ２１０では、当該定数アクセス処理において予め設定されているフラッシュＲＯＭ内アドレスから下位アドレスを抽出することにより、オフセットアドレスを取得する。
【００４１】
次にＳ２２０にて、専用レジスタＳＰＲ１に格納されている定数用ベースアドレスを取得する。さらにＳ２３０にて、取得したオフセットアドレスと定数用ベースアドレスとを加算することにより絶対アドレスを算出する。
【００４２】
そしてＳ２４０にて、Ｓ２３０で算出した絶対アドレスへアクセスし、定数アクセス処理を終了する。これにより、対応するＯＳ定数データを読み出すことができる。
次に、変数アクセス処理の手順を説明する。変数アクセス処理は、ＯＳ変数データ毎に設けられている。そして変数アクセス処理は、対応するＯＳ変数データをＯＳプログラムＰＧが読み出す場合、または、対応するＯＳ変数データにＯＳプログラムＰＧが書き込む場合に実行される。
【００４３】
この変数アクセス処理が実行されると、ＣＰＵ１０（ＣＰＵ２０）は、図５に示すように、まずＳ３１０にて、対応するＯＳ変数データのオフセットアドレスを取得する。オフセットアドレスは、対応するＯＳ変数データがＲＡＭ４０に記憶されている場合におけるＲＡＭ４０内の論理アドレス（以下、ＲＡＭ内アドレスという）の下位部分（下位アドレス）である。そして、対応するＯＳ変数データのＲＡＭ内アドレスは、変数アクセス処理を実行するプログラム内に予め設定されている。
【００４４】
このためＳ３１０では、当該変数アクセス処理において予め設定されているＲＡＭ内アドレスから下位アドレスを抽出することにより、オフセットアドレスを取得する。
次にＳ３２０にて、専用レジスタＳＰＲ２に格納されている変数用ベースアドレスを取得する。さらにＳ３３０にて、取得したオフセットアドレスと変数用ベースアドレスとを加算することにより絶対アドレスを算出する。
【００４５】
そしてＳ３４０にて、Ｓ３３０で算出した絶対アドレスへアクセスし、変数アクセス処理を終了する。これにより、対応するＯＳ変数データの読み出し又は書き込みを行うことができる。
【００４６】
次に、このように構成されたＥＣＵ１の動作の具体例を説明する。
図６に示すように、フラッシュＲＯＭ３０には、ＯＳプログラムＰＧ、ＯＳ定数データ群Ｃ１およびＯＳ定数データ群Ｃ２が記憶される。なお、ＯＳプログラムＰＧの記憶領域として０ｘ００１０００００からの論理アドレスが割り当てられている。また、ＯＳ定数データ群Ｃ１の記憶領域として０ｘ００５０００００からの論理アドレスが割り当てられている。また、ＯＳ定数データ群Ｃ２の記憶領域として０ｘ００７０００００からの論理アドレスが割り当てられている。
【００４７】
ＲＡＭ４０には、ＯＳ変数データ群Ｖ１およびＯＳ変数データ群Ｖ２が記憶される。なお、ＯＳ変数データ群Ｖ１の記憶領域として０ｘ０１００００００からの論理アドレスが割り当てられている。また、ＯＳ変数データ群Ｖ２の記憶領域として０ｘ０１５０００００からの論理アドレスが割り当てられている。
【００４８】
プログラム用内蔵メモリ１３には、ＯＳプログラムＰＧが記憶される。なお、ＯＳプログラムＰＧの記憶領域として０ｘ１０００００００からの論理アドレスが割り当てられている。
【００４９】
データ用内蔵メモリ１４には、ＯＳ定数データ群Ｃ１およびＯＳ変数データ群Ｖ１が記憶される。なお、ＯＳ定数データ群Ｃ１の記憶領域として０ｘ１５００００００からの論理アドレスが割り当てられている。またＯＳ変数データ群Ｖ１の記憶領域として０ｘ１５４０００００からの論理アドレスが割り当てられている。
【００５０】
上述のように、ＯＳプログラムＰＧは、プログラム用ベースアドレスを先頭アドレスとして内蔵メモリ１３内に配置される。このため、ＯＳプログラムＰＧによりサブルーチンコールされるアプリケーションプログラミングインタフェースActivateTask()が記憶されている論理アドレスは、フラッシュＲＯＭ３０において０ｘ００１０３０００であるとすると、プログラム用内蔵メモリ１３において０ｘ１０００３０００となる。
【００５１】
同様に、ＯＳ定数データ群Ｃ１に含まれるＯＳ定数データQueueMaxが記憶されている論理アドレスは、フラッシュＲＯＭ３０において０ｘ００５０２０００であるとすると、データ用内蔵メモリ１４において０ｘ１５００２０００となる。
【００５２】
同様に、ＯＳ変数データ群Ｖ１に含まれるＯＳ変数データCurrentTaskIDが記憶されている論理アドレスは、ＲＡＭ４０において０ｘ０１００４０００であるとすると、データ用内蔵メモリ１４において０ｘ１５４０４０００となる。
【００５３】
また、専用レジスタＳＰＲ０，ＳＰＲ１，ＳＰＲ２にはそれぞれ、０ｘ１０００００００，０ｘ１５００００００，０ｘ１５４０００００が格納されている。
そして、ＣＰＵ１０においてＯＳプログラムＰＧがアプリケーションプログラミングインタフェースActivateTask()をサブルーチンコールする場合に、アプリケーションプログラミングインタフェースActivateTask()に対応するプログラムアクセス処理が実行される。
【００５４】
このプログラムアクセス処理には、アプリケーションプログラミングインタフェースActivateTask()の上記フラッシュＲＯＭ内アドレスが予め設定されている。このフラッシュＲＯＭ内アドレスは、０ｘ００１０３０００であるため、ＣＰＵ１０の演算装置１１は、０ｘ００１０３０００の下位アドレスを抽出し、オフセットアドレスとして０ｘ００００３０００を取得する（Ｓ１１０）。
【００５５】
次に演算装置１１は、専用レジスタＳＰＲ０からプログラム用ベースアドレスとして０ｘ１０００００００を取得する（Ｓ１２０）。さらに演算装置１１は、オフセットアドレスとプログラム用ベースアドレスとを加算することにより、絶対アドレスとして０ｘ１０００３０００を算出する（Ｓ１３０）。この絶対アドレスは、アプリケーションプログラミングインタフェースActivateTask()のプログラム用内蔵メモリ１３における論理アドレス（０ｘ１０００３０００）と一致する。このため、ＣＰＵ１０は、プログラム用内蔵メモリ１３に記憶されているアプリケーションプログラミングインタフェースActivateTask()へアクセスすることができる。
【００５６】
また、ＣＰＵ１０においてＯＳプログラムＰＧがＯＳ定数データQueueMaxを読み出す場合に、ＯＳ定数データQueueMaxに対応する定数アクセス処理が実行される。
この定数アクセス処理には、ＯＳ定数データQueueMaxの上記フラッシュＲＯＭ内アドレスが予め設定されている。このフラッシュＲＯＭ内アドレスは、０ｘ００５０２０００であるため、ＣＰＵ１０の演算装置１１は、０ｘ００５０２０００の下位アドレスを抽出し、オフセットアドレスとして０ｘ００００２０００を取得する（Ｓ２１０）。
【００５７】
次に演算装置１１は、専用レジスタＳＰＲ１から定数用ベースアドレスとして０ｘ１５００００００を取得する（Ｓ２２０）。さらに演算装置１１は、オフセットアドレスと定数用ベースアドレスとを加算することにより、絶対アドレスとして０ｘ１５００２０００を算出する（Ｓ２３０）。この絶対アドレスは、ＯＳ定数データQueueMaxのデータ用内蔵メモリ１４における論理アドレス（０ｘ１５００２０００）と一致する。このため、ＣＰＵ１０は、データ用内蔵メモリ１４に記憶されているＯＳ定数データQueueMaxへアクセスすることができる。
【００５８】
また、ＣＰＵ１０においてＯＳプログラムＰＧがＯＳ変数データCurrentTaskIDを読み出す場合、またはＯＳ変数データCurrentTaskIDに書き込む場合に、ＯＳ変数データCurrentTaskIDに対応する変数アクセス処理が実行される。
【００５９】
この変数アクセス処理には、ＯＳ変数データCurrentTaskIDの上記ＲＡＭ内アドレスが予め設定されている。このＲＡＭ内アドレスは、０ｘ０１００４０００であるため、ＣＰＵ１０の演算装置１１は、０ｘ０１００４０００の下位アドレスを抽出し、オフセットアドレスとして０ｘ００００４０００を取得する（Ｓ３１０）。
【００６０】
次に演算装置１１は、専用レジスタＳＰＲ２から変数用ベースアドレスとして０ｘ１５４０００００を取得する（Ｓ３２０）。さらに演算装置１１は、オフセットアドレスと変数用ベースアドレスとを加算することにより、絶対アドレスとして０ｘ１５４０４０００を算出する（Ｓ３３０）。この絶対アドレスは、ＯＳ変数データCurrentTaskIDのデータ用内蔵メモリ１４における論理アドレス（０ｘ１５４０４０００）と一致する。このため、ＣＰＵ１０は、データ用内蔵メモリ１４に記憶されているＯＳ変数データCurrentTaskIDへアクセスすることができる。
【００６１】
また図７に示すように、ＣＰＵ２０のプログラム用内蔵メモリ２３には、ＯＳプログラムＰＧが記憶される。なお、ＯＳプログラムＰＧの記憶領域として０ｘ２０００００００からの論理アドレスが割り当てられている。
【００６２】
データ用内蔵メモリ２４には、ＯＳ定数データ群Ｃ２およびＯＳ変数データ群Ｖ２が記憶される。なお、ＯＳ定数データ群Ｃ２の記憶領域として０ｘ２５００００００からの論理アドレスが割り当てられている。またＯＳ変数データ群Ｖ２の記憶領域として０ｘ２５４０００００からの論理アドレスが割り当てられている。
【００６３】
上述のように、ＯＳプログラムＰＧは、プログラム用ベースアドレスを先頭アドレスとして内蔵メモリ２３内に配置される。このため、ＯＳプログラムＰＧによりサブルーチンコールされるアプリケーションプログラミングインタフェースActivateTask()が記憶されている論理アドレスは、フラッシュＲＯＭ３０において０ｘ００１０３０００であるとすると、プログラム用内蔵メモリ２３において０ｘ２０００３０００となる。
【００６４】
同様に、ＯＳ定数データ群Ｃ２に含まれるＯＳ定数データQueueMaxが記憶されている論理アドレスは、フラッシュＲＯＭ３０において０ｘ００７０２０００であるとすると、データ用内蔵メモリ２４において０ｘ２５００２０００となる。
【００６５】
同様に、ＯＳ変数データ群Ｖ２に含まれるＯＳ変数データCurrentTaskIDが記憶されている論理アドレスは、ＲＡＭ４０において０ｘ０１５０４０００であるとすると、データ用内蔵メモリ２４において０ｘ２５４０４０００となる。
【００６６】
また、ＣＰＵ２０の専用レジスタＳＰＲ０，ＳＰＲ１，ＳＰＲ２にはそれぞれ、０ｘ２０００００００，０ｘ２５００００００，０ｘ２５４０００００が格納されている。
そして、ＣＰＵ２０においてＯＳプログラムＰＧがアプリケーションプログラミングインタフェースActivateTask()をサブルーチンコールする場合に、アプリケーションプログラミングインタフェースActivateTask()に対応するプログラムアクセス処理が実行される。
【００６７】
このプログラムアクセス処理には、アプリケーションプログラミングインタフェースActivateTask()の上記フラッシュＲＯＭ内アドレスが予め設定されている。このフラッシュＲＯＭ内アドレスは、０ｘ００１０３０００であるため、ＣＰＵ２０の演算装置２１は、０ｘ００１０３０００の下位アドレスを抽出し、オフセットアドレスとして０ｘ００００３０００を取得する（Ｓ１１０）。
【００６８】
次に演算装置２１は、専用レジスタＳＰＲ０からプログラム用ベースアドレスとして０ｘ２０００００００を取得する（Ｓ１２０）。さらに演算装置２１は、オフセットアドレスとプログラム用ベースアドレスとを加算することにより、絶対アドレスとして０ｘ２０００３０００を算出する（Ｓ１３０）。この絶対アドレスは、アプリケーションプログラミングインタフェースActivateTask()のプログラム用内蔵メモリ２３における論理アドレス（０ｘ２０００３０００）と一致する。このため、ＣＰＵ２０は、プログラム用内蔵メモリ２３に記憶されているアプリケーションプログラミングインタフェースActivateTask()へアクセスすることができる。
【００６９】
同様にしてＣＰＵ２０は、データ用内蔵メモリ２４に記憶されているＯＳ定数データQueueMaxとＯＳ変数データCurrentTaskIDへアクセスすることができる。
このように構成されたＥＣＵ１は、ＣＰＵ１０と、ＣＰＵ２０と、ＣＰＵ１０，２０の外部に設けられ、ＣＰＵ１０，２０の両方が実行するＯＳプログラムＰＧを記憶するフラッシュＲＯＭ３０とを備える。
【００７０】
ＣＰＵ１０は、演算装置１１とプログラム用内蔵メモリ１３とを備える。またＣＰＵ２０は、演算装置２１とプログラム用内蔵メモリ２３とを備える。
プログラム用内蔵メモリ１３は、フラッシュＲＯＭ３０とは異なる論理アドレスが割り当てられ、フラッシュＲＯＭ３０からコピーされるＯＳプログラムＰＧを記憶する。また演算装置１１は、プログラム用内蔵メモリ１３に記憶されているＯＳプログラムＰＧへアクセスすることにより処理を実行する。そしてＣＰＵ１０では、プログラム用内蔵メモリ１３に記憶されているＯＳプログラムＰＧから読み込む命令に基づいて、プログラム用内蔵メモリ１３に記憶されているＯＳプログラムＰＧの内部に記載されているアプリケーションプログラミングインタフェースにアクセスする場合において、ＯＳプログラムＰＧ内で基準となるアドレスとして予め設定された先頭アドレス（本実施形態では０ｘ００１０００００）を基準としてＯＳプログラムＰＧ内でアプリケーションプログラミングインタフェースへアクセスするためのオフセットアドレス（以下、プログラムオフセットアドレスともいう）と、プログラム用内蔵メモリ１３内においてＯＳプログラムＰＧの先頭アドレスに対応する論理アドレスを示すプログラム用ベースアドレス（本実施形態では０ｘ１０００００００）とに基づき、アプリケーションプログラミングインタフェースへアクセスする論理アドレスを決定する（Ｓ１３０）。さらにＣＰＵ１０では、演算装置１１に対して、決定された論理アドレスへアクセスさせる（Ｓ１４０）。
【００７１】
プログラム用内蔵メモリ２３は、フラッシュＲＯＭ３０およびプログラム用内蔵メモリ１３とは異なる論理アドレスが割り当てられ、フラッシュＲＯＭ３０からコピーされるＯＳプログラムＰＧを記憶する。また演算装置２１は、プログラム用内蔵メモリ２３に記憶されているＯＳプログラムＰＧへアクセスすることにより処理を実行する。そしてＣＰＵ２０では、プログラム用内蔵メモリ２３に記憶されているＯＳプログラムＰＧから読み込む命令に基づいて、プログラム用内蔵メモリ２３に記憶されているＯＳプログラムＰＧの内部に記載されているアプリケーションプログラミングインタフェースにアクセスする場合において、ＯＳプログラムＰＧ内で基準となるアドレスとして予め設定された先頭アドレス（本実施形態では０ｘ００１０００００）を基準としてＯＳプログラムＰＧ内でアプリケーションプログラミングインタフェースへアクセスするためのオフセットアドレス（プログラムオフセットアドレス）と、プログラム用内蔵メモリ２３内においてＯＳプログラムＰＧの先頭アドレスに対応する論理アドレスを示すプログラム用ベースアドレス（本実施形態では０ｘ２０００００００）とに基づき、アプリケーションプログラミングインタフェースへアクセスする論理アドレスを決定する（Ｓ１３０）。さらにＣＰＵ２０では、演算装置２１に対して、決定された論理アドレスへアクセスさせる（Ｓ１４０）。
【００７２】
このように構成されたＥＣＵ１では、まず、プログラム用内蔵メモリ１３，２３が、フラッシュＲＯＭ３０からコピーされるＯＳプログラムＰＧを記憶する。すなわち、フラッシュＲＯＭ３０に記憶されているＯＳプログラムＰＧの構成は、プログラム用内蔵メモリ１３，２３に記憶されているＯＳプログラムＰＧの構成と同一である。
【００７３】
このため、フラッシュＲＯＭ３０においてＯＳプログラムＰＧの先頭アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容と、プログラム用内蔵メモリ１３，２３においてプログラム用ベースアドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容は互いに同一である。
【００７４】
そしてＣＰＵ１０，２０は、プログラムオフセットアドレスとプログラム用ベースアドレスとに基づき、プログラム用内蔵メモリ１３，２３内のアプリケーションプログラミングインタフェースへアクセスする。すなわちＥＣＵ１では、フラッシュＲＯＭ３０に記憶されているＯＳプログラムＰＧをプログラム用内蔵メモリ１３，２３のそれぞれに記憶させた上で、ＣＰＵ１０，２０がＯＳプログラムＰＧを実行することができる。このためＥＣＵ１によれば、ＣＰＵ１０，２０がＯＳプログラムＰＧを実行する場合であっても、フラッシュＲＯＭ３０内に、アクセスするアドレスが異なるＯＳプログラムをＣＰＵ１０，２０毎に設ける必要がなくなり、フラッシュＲＯＭ３０における記憶容量の増大を抑制することができる。
【００７５】
またＥＣＵ１では、ＣＰＵ１０，２０を識別するためのＣＰＵ識別情報がＣＰＵ１０，２０のそれぞれに設定されている。そしてＥＣＵ１は、ＣＰＵ１０およびＣＰＵ２０がそれぞれ、ＣＰＵ１０のプログラム用ベースアドレスおよびＣＰＵ２０のプログラム用ベースアドレスに対応付けられているアドレス設定テーブルＡＴを備える。そしてＣＰＵ１０，２０はそれぞれ、ＣＰＵ１０，２０のＣＰＵ識別情報と、アドレス設定テーブルＡＴとを参照することにより、ＣＰＵ１０，２０に対してプログラム用ベースアドレスを設定する（Ｓ１０，Ｓ２０，Ｓ３０）。
【００７６】
これにより、アドレス設定テーブルＡＴの内容を変更することでＣＰＵ１０，２０のプログラム用ベースアドレスを変更することができるため、ＣＰＵ１０，２０のプログラム用ベースアドレスをアドレス設定テーブルＡＴで一元管理することができる。
【００７７】
またフラッシュＲＯＭ３０は、ＣＰＵ１０がＯＳプログラムＰＧを実行するために使用される複数のＯＳ定数データを有するＯＳ定数データ群Ｃ１と、ＣＰＵ２０がＯＳプログラムＰＧを実行するために使用される複数のＯＳ定数データを有するＯＳ定数データ群Ｃ２とを記憶する。
【００７８】
ＣＰＵ１０は、フラッシュＲＯＭ３０およびプログラム用内蔵メモリ１３，２３とは異なる論理アドレスが割り当てられ、フラッシュＲＯＭ３０からコピーされるＯＳ定数データ群Ｃ１を記憶するデータ用内蔵メモリ１４を備える。そしてＣＰＵ１０では、プログラム用内蔵メモリ１３に記憶されているＯＳプログラムＰＧから読み込む命令に基づいて、データ用内蔵メモリ１４に記憶されているＯＳ定数データ群Ｃ１のＯＳ定数データにアクセスする場合において、ＯＳ定数データ群Ｃ１内で基準となるアドレスとして予め設定された先頭アドレス（本実施形態では０ｘ００５０００００）を基準としてＯＳ定数データ群Ｃ１内でＯＳ定数データへアクセスするためのオフセットアドレス（以下、第１定数オフセットアドレスという）と、ＯＳ定数データ群Ｃ１内においてＯＳ定数データ群Ｃ１の先頭アドレスに対応する論理アドレスを示す定数用ベースアドレスとに基づき、ＯＳ定数データ群Ｃ１のＯＳ定数データへアクセスする論理アドレスを決定する。（Ｓ２３０）。さらにＣＰＵ１０では、演算装置１１に対して、決定された論理アドレスへアクセスさせる（Ｓ２４０）。
【００７９】
ＣＰＵ２０は、フラッシュＲＯＭ３０、プログラム用内蔵メモリ１３，２３およびデータ用内蔵メモリ１４とは異なる論理アドレスが割り当てられ、フラッシュＲＯＭ３０からコピーされるＯＳ定数データ群Ｃ２を記憶するデータ用内蔵メモリ２４を備える。そしてＣＰＵ２０では、プログラム用内蔵メモリ２３に記憶されているＯＳプログラムＰＧから読み込む命令に基づいて、データ用内蔵メモリ２４に記憶されているＯＳ定数データ群Ｃ２のＯＳ定数データにアクセスする場合において、ＯＳ定数データ群Ｃ２内で基準となるアドレスとして予め設定された先頭アドレス（本実施形態では０ｘ００７０００００）を基準としてＯＳ定数データ群Ｃ２内でＯＳ定数データへアクセスするためのオフセットアドレス（以下、第２定数オフセットアドレスという）と、ＯＳ定数データ群Ｃ２内においてＯＳ定数データ群Ｃ２の先頭アドレスに対応する論理アドレスを示す定数用ベースアドレスとに基づき、ＯＳ定数データ群Ｃ２のＯＳ定数データへアクセスする論理アドレスを決定する。（Ｓ２３０）。さらにＣＰＵ２０では、演算装置２１に対して、決定された論理アドレスへアクセスさせる（Ｓ２４０）。
【００８０】
これによりＣＰＵ１０，２０はそれぞれ、ＯＳ定数データ群Ｃ１，Ｃ２のＯＳ定数データを読み込むために、ＣＰＵ１０，２０内に設けられたデータ用内蔵メモリ１４，２４にアクセスすることができる。このためＥＣＵ１は、フラッシュＲＯＭ３０へアクセスする場合よりも速くＯＳ定数データ群Ｃ１，Ｃ２へアクセスすることが可能となる。
【００８１】
またアドレス設定テーブルＡＴでは、ＣＰＵ１０およびＣＰＵ２０がそれぞれ、ＣＰＵ１０の定数用ベースアドレスおよびＣＰＵ２０の定数用ベースアドレスに対応付けられている。そしてＣＰＵ１０，２０はそれぞれ、ＣＰＵ１０，２０のＣＰＵ識別情報と、アドレス設定テーブルＡＴとを参照することにより、ＣＰＵ１０，２０に対して定数用ベースアドレスを設定する（Ｓ１０，Ｓ２０，Ｓ４０）。
【００８２】
これにより、アドレス設定テーブルＡＴの内容を変更することでＣＰＵ１０，２０の定数用ベースアドレスを変更することができるため、ＣＰＵ１０，２０の定数用ベースアドレスをアドレス設定テーブルＡＴで一元管理することができる。
【００８３】
またＥＣＵ１は、ＣＰＵ１０がＯＳプログラムＰＧを実行するために使用される複数のＯＳ変数データを有するＯＳ変数データ群Ｖ１と、ＣＰＵ２０がＯＳプログラムＰＧを実行するために使用される複数のＯＳ変数データを有するＯＳ変数データ群Ｖ２とを記憶するＲＡＭ４０を備える。
【００８４】
データ用内蔵メモリ１４は、ＲＡＭ４０からコピーされるＯＳ変数データ群Ｖ１を記憶する。そしてＣＰＵ１０では、プログラム用内蔵メモリ１３に記憶されているＯＳプログラムＰＧから読み込む命令に基づいて、データ用内蔵メモリ１４に記憶されているＯＳ変数データ群Ｖ１のＯＳ変数データにアクセスする場合において、ＯＳ変数データ群Ｖ１内で基準となるアドレスとして予め設定された先頭アドレス（本実施形態では０ｘ０１００００００）を基準としてＯＳ変数データ群Ｖ１内でＯＳ定数データへアクセスするためのオフセットアドレス（以下、第１変数オフセットアドレスという）と、ＯＳ変数データ群Ｖ１内においてＯＳ変数データ群Ｖ１の先頭アドレスに対応する論理アドレスを示す変数用ベースアドレスとに基づき、ＯＳ変数データ群Ｖ１のＯＳ変数データへアクセスする論理アドレスを決定する。（Ｓ３３０）。さらにＣＰＵ１０では、演算装置１１に対して、決定された論理アドレスへアクセスさせる（Ｓ３４０）。
【００８５】
データ用内蔵メモリ２４は、ＲＡＭ４０からコピーされるＯＳ変数データ群Ｖ２を記憶する。そしてＣＰＵ２０では、プログラム用内蔵メモリ２３に記憶されているＯＳプログラムＰＧから読み込む命令に基づいて、データ用内蔵メモリ２４に記憶されているＯＳ変数データ群Ｖ２のＯＳ変数データにアクセスする場合において、ＯＳ変数データ群Ｖ２内で基準となるアドレスとして予め設定された先頭アドレス（本実施形態では０ｘ０１５０００００）を基準としてＯＳ変数データ群Ｖ２内でＯＳ定数データへアクセスするためのオフセットアドレス（以下、第２変数オフセットアドレスという）と、ＯＳ変数データ群Ｖ２内においてＯＳ変数データ群Ｖ２の先頭アドレスに対応する論理アドレスを示す変数用ベースアドレスとに基づき、ＯＳ変数データ群Ｖ２のＯＳ変数データへアクセスする論理アドレスを決定する。（Ｓ３３０）。さらにＣＰＵ２０では、演算装置２１に対して、決定された論理アドレスへアクセスさせる（Ｓ３４０）。
【００８６】
これによりＣＰＵ１０，２０はそれぞれ、ＯＳ変数データ群Ｖ１，Ｖ２のＯＳ変数データを読み込むために、ＣＰＵ１０，２０内に設けられたデータ用内蔵メモリ１４，２４にアクセスすることができる。このためＥＣＵ１は、ＲＡＭ４０へアクセスする場合よりも速くＯＳ変数データ群Ｖ１，Ｖ２へアクセスすることが可能となる。
【００８７】
またアドレス設定テーブルＡＴでは、ＣＰＵ１０およびＣＰＵ２０がそれぞれ、ＣＰＵ１０の変数用ベースアドレスおよびＣＰＵ２０の変数用ベースアドレスに対応付けられている。そしてＣＰＵ１０，２０はそれぞれ、ＣＰＵ１０，２０のＣＰＵ識別情報と、アドレス設定テーブルＡＴとを参照することにより、ＣＰＵ１０，２０に対して変数用ベースアドレスを設定する（Ｓ１０，Ｓ２０，Ｓ５０）。
【００８８】
これにより、アドレス設定テーブルＡＴの内容を変更することでＣＰＵ１０，２０の変数用ベースアドレスを変更することができるため、ＣＰＵ１０，２０の変数用ベースアドレスをアドレス設定テーブルＡＴで一元管理することができる。
【００８９】
また、フラッシュＲＯＭ３０に記憶されているＯＳプログラムＰＧの先頭アドレスは０ｘ００１０００００であり、下位アドレスが０ｘ００００である。このため、アプリケーションプログラミングインタフェースのプログラムオフセットアドレスは、対応するアプリケーションプログラミングインタフェースがフラッシュＲＯＭ３０に記憶されている場合におけるフラッシュＲＯＭ３０内の論理アドレスの下位部分（下位アドレス）を採用することができる。
【００９０】
同様に、フラッシュＲＯＭ３０に記憶されているＯＳ定数データ群Ｃ１，Ｃ２の先頭アドレスは０ｘ００５０００００，０ｘ００７０００００であり、下位アドレスが０ｘ００００である。このため、ＯＳ定数データの定数オフセットアドレスは、対応するＯＳ定数データがフラッシュＲＯＭ３０に記憶されている場合におけるフラッシュＲＯＭ３０内の論理アドレスの下位部分（下位アドレス）を採用することができる。
【００９１】
さらに、ＲＡＭ４０に記憶されているＯＳ変数データ群Ｖ１，Ｖ２の先頭アドレスは０ｘ０１００００００，０ｘ０１５０００００であり、下位アドレスが０ｘ００００である。このため、ＯＳ変数データの定数オフセットアドレスは、対応するＯＳ変数データがＲＡＭ４０に記憶されている場合におけるＲＡＭ４０内の論理アドレスの下位部分（下位アドレス）を採用することができる。
【００９２】
以上説明した実施形態において、ＥＣＵ１は本発明における電子制御装置、ＣＰＵ１０は本発明における第１ＣＰＵ、ＣＰＵ２０は本発明における第２ＣＰＵ、フラッシュＲＯＭ３０は本発明における共通プログラム記憶部、ＯＳプログラムＰＧは本発明における共通プログラムである。
【００９３】
また、プログラム用内蔵メモリ１３は本発明における第１プログラム記憶部、演算装置１１は本発明における第１処理実行部、ＣＰＵ１０が実行するＳ１３０の処理は本発明における第１プログラムアドレス決定手段、ＣＰＵ１０が実行するＳ１４０の処理は本発明における第１プログラムアクセス手段である。
【００９４】
また、プログラム用内蔵メモリ２３は本発明における第２プログラム記憶部、演算装置２１は本発明における第２処理実行部、ＣＰＵ２０が実行するＳ１３０の処理は本発明における第２プログラムアドレス決定手段、ＣＰＵ２０が実行するＳ１４０の処理は本発明における第２プログラムアクセス手段である。
【００９５】
また、アドレス設定テーブルＡＴは本発明におけるプログラム対応関係記憶部、ＣＰＵ１０が実行するＳ１０，Ｓ２０，Ｓ３０の処理は本発明における第１プログラム設定手段、ＣＰＵ２０が実行するＳ１０，Ｓ２０，Ｓ３０の処理は本発明における第２プログラム設定手段である。
【００９６】
また、ＯＳ定数データ群Ｃ１は本発明における第１定数データ群、ＯＳ定数データ群Ｃ２は本発明における第２定数データ群、フラッシュＲＯＭ３０は本発明における共通定数記憶部、データ用内蔵メモリ１４は本発明における第１定数記憶部、ＣＰＵ１０が実行するＳ２３０の処理は本発明における第１定数アドレス決定手段、ＣＰＵ１０が実行するＳ２４０の処理は本発明における第１定数アクセス手段である。
【００９７】
また、データ用内蔵メモリ２４は本発明における第２定数記憶部、ＣＰＵ２０が実行するＳ２３０の処理は本発明における第２定数アドレス決定手段、ＣＰＵ２０が実行するＳ２４０の処理は本発明における第２定数アクセス手段である。
【００９８】
また、アドレス設定テーブルＡＴは本発明における定数対応関係記憶部、ＣＰＵ１０が実行するＳ１０，Ｓ２０，Ｓ４０の処理は本発明における第１定数設定手段、ＣＰＵ２０が実行するＳ１０，Ｓ２０，Ｓ４０の処理は本発明における第２定数設定手段である。
【００９９】
また、ＯＳ変数データ群Ｖ１は本発明における第１変数データ群、ＯＳ変数データ群Ｖ２は本発明における第２変数データ群、ＲＡＭ４０は本発明における共通変数記憶部、データ用内蔵メモリ１４は本発明における第１変数記憶部、ＣＰＵ１０が実行するＳ３３０の処理は本発明における第１変数アドレス決定手段、ＣＰＵ１０が実行するＳ３４０の処理は本発明における第１変数アクセス手段である。
【０１００】
また、データ用内蔵メモリ２４は本発明における第２変数記憶部、ＣＰＵ２０が実行するＳ３３０の処理は本発明における第２変数アドレス決定手段、ＣＰＵ２０が実行するＳ３４０の処理は本発明における第２変数アクセス手段である。
【０１０１】
また、アドレス設定テーブルＡＴは本発明における変数対応関係記憶部、ＣＰＵ１０が実行するＳ１０，Ｓ２０，Ｓ５０の処理は本発明における第１変数設定手段、ＣＰＵ２０が実行するＳ１０，Ｓ２０，Ｓ５０の処理は本発明における第２変数設定手段である。
【０１０２】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、マイコン２が２つのＣＰＵを備えるものを示した。しかし、マイコン２が３つ以上のＣＰＵを備え、３つ以上のＣＰＵが、それぞれの内蔵メモリに記憶されているＯＳプログラムＰＧを実行するようにしてもよい。
【０１０３】
また上記実施形態では、ＣＰＵ１０，２０が、ＣＰＵ１０，２０の両方が実行する共通プログラムとしてＯＳプログラムＰＧを実行するものを示した。しかし、ＣＰＵ１０，２０がＯＳプログラムＰＧ以外のプログラム（例えば車両制御プログラム）を共通プログラムとして実行するようにしてもよい。
【０１０４】
また上記実施形態では、アドレス設定処理をソフトウェア（プログラム）で実行するものを示したが、ハードウェア（論理回路など）で実行するようにしてもよい。
また上記実施形態では、プログラム用ベースアドレスが、プログラム用内蔵メモリ１３，２３に記憶されているＯＳプログラムＰＧの先頭アドレスであるものを示した。しかし、プログラム用ベースアドレスはこれに限定されるものではなく、例えば、ＯＳプログラムＰＧの末尾アドレスであってもよい。
【符号の説明】
【０１０５】
１…ＥＣＵ、２…マイコン、１０…ＣＰＵ、１１…演算装置、１３…プログラム用内蔵メモリ、２０…ＣＰＵ、２１…演算装置、２３…プログラム用内蔵メモリ、３０…フラッシュＲＯＭ
【図１】
0005915624.tif 000002
【図２】
0005915624.tif 000003
【図３】
0005915624.tif 000004
【図４】
0005915624.tif 000005
【図５】
0005915624.tif 000006
【図６】
0005915624.tif 000007
【図７】
0005915624.tif 000008