JP2015095218A - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP2015095218A
JP2015095218A JP2013235881A JP2013235881A JP2015095218A JP 2015095218 A JP2015095218 A JP 2015095218A JP 2013235881 A JP2013235881 A JP 2013235881A JP 2013235881 A JP2013235881 A JP 2013235881A JP 2015095218 A JP2015095218 A JP 2015095218A
Authority
JP
Japan
Prior art keywords
program
address
cpu
storage unit
constant
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.)
Granted
Application number
JP2013235881A
Other languages
English (en)
Other versions
JP5915624B2 (ja
Inventor
幸一 松井
Koichi Matsui
幸一 松井
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 JP2013235881A priority Critical patent/JP5915624B2/ja
Priority to DE102014223148.5A priority patent/DE102014223148A1/de
Publication of JP2015095218A publication Critical patent/JP2015095218A/ja
Application granted granted Critical
Publication of JP5915624B2 publication Critical patent/JP5915624B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】複数のCPUを備えた電子制御装置においてメモリ容量の増大を抑制【解決手段】CPU10,20は、演算装置11,21と内蔵メモリ13,23を備える。内蔵メモリ13,23は、フラッシュROM30からコピーされるOSプログラムPGを記憶する。そしてCPU10,20では、OSプログラムPGの内部に記載されているアプリケーションプログラミングインタフェース(以下APIという)にアクセスする場合において、OSプログラムPG内で基準となるアドレスとして予め設定された先頭アドレスを基準としてOSプログラムPG内でAPIへアクセスするためのオフセットアドレスと、内蔵メモリ13,23内においてOSプログラムPGの先頭アドレスに対応する論理アドレスを示すベースアドレスとに基づき、APIへアクセスする論理アドレスを決定する。さらに演算装置11,21に対して、決定された論理アドレスへアクセスさせる。【選択図】図1

Description

本発明は、複数のCPUを備えた電子制御装置に関する。
従来、車両に搭載された電子制御装置において、高機能化に伴う処理負荷の増加に対応するために、複数のCPUを備えたものが知られている(例えば、特許文献1を参照)。
特開2007−34910号公報
電子制御装置に搭載された複数のCPUのそれぞれに内蔵メモリが搭載されている場合には、各CPUは、対応する内蔵メモリに記憶されているプログラムへアクセスすることにより、プログラムを実行することができる。これにより、CPUの外部に設けられた不揮発性メモリに記憶されているプログラムへアクセスする場合よりも高速にプログラムを実行することが可能となる。ただし、この内蔵メモリは揮発性であるため、CPUがプログラムの実行する前に、上記不揮発性メモリに記憶されているプログラムを内蔵メモリにコピーする必要がある。
しかし、この内蔵メモリには、CPU毎に異なる論理アドレスが割り当てられている。このため、内蔵メモリに記憶されているプログラムを実行する場合において、例えばサブルーチンプログラムを呼び出すときに、内蔵メモリに記憶されているプログラムへアクセスするためのアドレスがCPU毎に異なる。すなわち、内蔵メモリにコピーされるプログラムは、CPU毎に、サブルーチンプログラム等へアクセスするためのアドレスを定義する必要がある。
このため、複数のCPUが同じプログラムを実行する場合であっても、上記不揮発性メモリ内に、アクセスするアドレスが異なるプログラムをCPU毎に設けなくてはならないという問題があった。
本発明は、こうした問題に鑑みてなされたものであり、複数のCPUを備えた電子制御装置においてメモリ容量の増大を抑制することを目的とする。
上記目的を達成するためになされた本発明の電子制御装置は、第1CPUと、第2CPUと、第1CPUおよび第2CPUの外部に設けられ、第1CPUおよび第2CPUの両方が実行する共通プログラムを記憶する共通プログラム記憶部とを備える。
第1CPUは、第1プログラム記憶部と、第1処理実行部と、第1プログラムアドレス決定手段と、第1プログラムアクセス手段とを備える。また第2CPUは、第2プログラム記憶部と、第2処理実行部と、第2プログラムアドレス決定手段と、第2プログラムアクセス手段とを備える。
第1プログラム記憶部は、共通プログラム記憶部とは異なる論理アドレスが割り当てられ、共通プログラム記憶部からコピーされる共通プログラムを記憶する。また第1処理実行部は、第1プログラム記憶部に記憶されている共通プログラムへアクセスすることにより処理を実行する。そして第1プログラムアドレス決定手段が、第1プログラム記憶部に記憶されている共通プログラムから読み込む命令に基づいて、第1プログラム記憶部に記憶されている共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、共通プログラム内で基準となるアドレスとして予め設定された共通プログラム内基準アドレスを基準として共通プログラム内で内部プログラムへアクセスするためのオフセットアドレスを示すプログラムオフセットアドレスと、第1プログラム記憶部内において共通プログラム内基準アドレスに対応する論理アドレスを示す第1プログラム基準アドレスとに基づき、内部プログラムへアクセスする論理アドレスを決定する。さらに第1プログラムアクセス手段が、第1処理実行部に対して、第1プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる。
第2プログラム記憶部は、共通プログラム記憶部および第1プログラム記憶部とは異なる論理アドレスが割り当てられ、共通プログラム記憶部からコピーされる共通プログラムを記憶する。また第2処理実行部は、第2プログラム記憶部に記憶されている共通プログラムへアクセスすることにより処理を実行する。そして第2プログラムアドレス決定手段が、第2プログラム記憶部に記憶されている共通プログラムから読み込む命令に基づいて、第2プログラム記憶部に記憶されている共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、プログラムオフセットアドレスと、第2プログラム記憶部内において共通プログラム内基準アドレスに対応する論理アドレスを示す第2プログラム基準アドレスとに基づき、内部プログラムへアクセスする論理アドレスを決定する。さらに第2プログラムアクセス手段が、第2処理実行部に対して、第2プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる。
このように構成された電子制御装置では、まず、第1プログラム記憶部および第2プログラム記憶部が、共通プログラム記憶部からコピーされる共通プログラムを記憶する。すなわち、共通プログラム記憶部に記憶されている共通プログラムの構成は、第1プログラム記憶部および第2プログラム記憶部に記憶されている共通プログラムの構成と同一である。
このため、共通プログラム記憶部において共通プログラム内基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容と、第1プログラム記憶部において第1プログラム基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容は互いに同一である。同様に、共通プログラム記憶部において共通プログラム内基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容と、第2プログラム記憶部において第2プログラム基準アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容は互いに同一である。
そして第1CPUは、プログラムオフセットアドレスと第1プログラム基準アドレスとに基づき、第1プログラム記憶部内の内部プログラムへアクセスする。同様に第2CPUは、プログラムオフセットアドレスと第2プログラム基準アドレスとに基づき、第2プログラム記憶部内の内部プログラムへアクセスする。すなわち、本発明の電子制御装置では、共通プログラム記憶部に記憶されている共通プログラムを第1プログラム記憶部および第2プログラム記憶部のそれぞれに記憶させた上で、第1CPUおよび第2CPUが共通プログラムを実行することができる。このため、本発明の電子制御装置によれば、第1CPUおよび第2CPUが共通プログラムを実行する場合であっても、共通プログラム記憶部内に、アクセスするアドレスが異なる共通プログラムをCPU毎に設ける必要がなくなり、共通プログラム記憶部における記憶容量の増大を抑制することができる。
ECU1の構成を示すブロック図である。 アドレス設定処理を示すフローチャートである。 プログラムアクセス処理を示すフローチャートである。 定数アクセス処理を示すフローチャートである。 変数アクセス処理を示すフローチャートである。 CPU10、フラッシュROM30およびRAM40に記憶されているデータを示す図である。 CPU20、フラッシュROM30およびRAM40に記憶されているデータを示す図である。
以下に本発明の実施形態を図面とともに説明する。
本実施形態の電子制御装置(Electronic Control Unit)1(以下、ECU1という)は、車両に搭載され、車両のエンジン(不図示)の制御を行う。
ECU1は、図1に示すように、マイクロコンピュータ(以下、マイコンという)2を備える。
マイコン2は、エンジンを制御するための処理を実行し、車両に取り付けられた電気負荷(インジェクタ等)を制御するための制御信号を出力する。
またマイコン2は、CPU(Central Processing Unit)10,20、フラッシュROM30およびRAM40と、これらを相互に接続するバス50とを備える。
CPU10,20は、フラッシュROM30に記憶されたプログラムに基づいて各種処理を実行する。フラッシュROM30は、CPU10,20によって実行されるプログラムを記憶するための不揮発性メモリである。RAM40は、CPU10,20の演算結果等を一時記憶するための揮発性メモリである。
CPU10は、演算装置11、内部レジスタ12、プログラム用内蔵メモリ13およびデータ用内蔵メモリ14を備える。またCPU20は、演算装置21、内部レジスタ22、プログラム用内蔵メモリ23およびデータ用内蔵メモリ24を備える。
演算装置11,21はそれぞれ、プログラム用内蔵メモリ13,23およびフラッシュROM30に記憶されているプログラムから命令を読み込み、読み込んだ命令を実行する。
内部レジスタ12,22はそれぞれ、演算装置11,21による演算で使用されるデータを一時的に記憶したり、演算装置11,21による演算の状態を示したりするために用いられる。
プログラム用内蔵メモリ13,23はそれぞれ、CPU10,20が実行するプログラムを記憶するための揮発性メモリである。
データ用内蔵メモリ14,24はそれぞれ、CPU10,20がプログラムを実行するために使用するデータを記憶するための揮発性メモリである。
フラッシュROM30は、車両に搭載されたエンジン等を制御する車両制御プログラム(不図示)と、車両制御プログラムを実行するための基盤となるオペレーティングシステム(以下、OSという)を制御するOSプログラムPGを記憶する。
またフラッシュROM30は、CPU10,20が車両制御プログラムを実行するために使用する複数の定数データを有する定数データ群(不図示)を記憶する。さらにフラッシュROM30は、CPU10がOSプログラムPGを実行するために使用する複数のOS定数データを有するOS定数データ群C1と、CPU20がOSプログラムPGを実行するために使用する複数のOS定数データを有するOS定数データ群C2を記憶する。
RAM40は、CPU10,20が車両制御プログラムを実行するために使用する複数の変数データを有する変数データ群(不図示)を記憶する。さらにRAM40は、CPU10がOSプログラムPGを実行するために使用する複数のOS変数データを有するOS変数データ群V1と、CPU20がOSプログラムPGを実行するために使用する複数のOS変数データを有するOS変数データ群V2を記憶する。
なお本実施形態では、フラッシュROM30には0x00000000からの論理アドレス、RAM40には0x01000000からの論理アドレス(図6を参照)が割り当てられている。また、プログラム用内蔵メモリ13には0x10000000からの論理アドレス(図6を参照)、データ用内蔵メモリ14には0x15000000からの論理アドレス(図6を参照)が割り当てられている。また、プログラム用内蔵メモリ23には0x20000000からの論理アドレス(図7を参照)、データ用内蔵メモリ24には0x25000000からの論理アドレス(図7を参照)が割り当てられている。
このように構成されたECU1において、CPU10,20は、後述するアドレス設定処理、プログラムアクセス処理、定数アクセス処理および変数アクセス処理を実行する。
まず、アドレス設定処理の手順を説明する。アドレス設定処理は、ECU1が起動した直後に1回のみ実行される処理である。
このアドレス設定処理が実行されると、CPU10(CPU20)は、図2に示すように、まずS10にて、内部レジスタ12(内部レジスタ22)に設けられているCPU識別レジスタIDR(図6および図7を参照)からCPU識別情報を取得する。CPU識別情報は、CPU10,20を識別するための情報である。例えば、CPU10はCPU識別情報として0が設定され、CPU20はCPU識別情報として1が設定されている。
そしてS20にて、フラッシュROM30に設けられているアドレス設定テーブルAT(図1を参照)を参照することにより、S10で取得したCPU識別情報により特定されるCPUのベースアドレス(後述)を取得する。なおアドレス設定テーブルATには、CPU10およびCPU20のそれぞれについて、OSプログラム、OS定数データ群およびOS変数データ群のベースアドレスが設定されている。以下、OSプログラム、OS定数データ群およびOS変数データ群のベースアドレスをそれぞれ、プログラム用ベースアドレス、定数用ベースアドレスおよび変数用ベースアドレスという。
次にS30にて、S20で取得したプログラム用ベースアドレスを、プログラム用ベースアドレスを記憶するために予め設定された専用レジスタSPR0(図6および図7を参照)に格納する。またS40にて、S20で取得した定数用ベースアドレスを、定数用ベースアドレスを記憶するために予め設定された専用レジスタSPR1(図6および図7を参照)に格納する。さらにS50にて、S20で取得した変数用ベースアドレスを、変数用ベースアドレスを記憶するために予め設定された専用レジスタSPR2(図6および図7を参照)に格納する。
そしてS60にて、フラッシュROM30に記憶されているOSプログラムPGを、プログラム用内蔵メモリ13(プログラム用内蔵メモリ23)へ転送する。なお、プログラム用内蔵メモリ13(プログラム用内蔵メモリ23)へ転送されたOSプログラムPGは、専用レジスタSPR0に格納されているプログラム用ベースアドレスを先頭アドレスとしてプログラム用内蔵メモリ13(プログラム用内蔵メモリ23)内に配置される。
さらにS70にて、フラッシュROM30に記憶されているOS定数データ群C1(OS定数データ群C2)をデータ用内蔵メモリ14(データ用内蔵メモリ24)へ転送し、アドレス設定処理を終了する。なお、データ用内蔵メモリ14(データ用内蔵メモリ24)へ転送されたOS定数データ群C1(OS定数データ群C2)は、専用レジスタSPR1に格納されている定数用ベースアドレスを先頭アドレスとしてデータ用内蔵メモリ14(データ用内蔵メモリ24)内に配置される。
次に、プログラムアクセス処理の手順を説明する。プログラムアクセス処理は、OSプログラムPGに含まれるアプリケーションプログラミングインタフェース毎に設けられている。そしてプログラムアクセス処理は、対応するアプリケーションプログラミングインタフェースへOSプログラムPGがジャンプする場合、または、対応するアプリケーションプログラミングインタフェースをOSプログラムPGがサブルーチンコールする場合に実行される。
このプログラムアクセス処理が実行されると、CPU10(CPU20)は、図3に示すように、まずS110にて、対応するアプリケーションプログラミングインタフェースのオフセットアドレスを取得する。オフセットアドレスは、対応するアプリケーションプログラミングインタフェースがフラッシュROM30に記憶されている場合におけるフラッシュROM30内の論理アドレス(以下、フラッシュROM内アドレスという)の下位部分(下位アドレス)である。例えば、対応するアプリケーションプログラミングインタフェースのフラッシュROM内アドレスが、0x00103000である場合には、その下位アドレスは0x00003000である。
そして、対応するアプリケーションプログラミングインタフェースのフラッシュROM内アドレスは、プログラムアクセス処理を実行するプログラム内に予め設定されている。
このためS110では、当該プログラムアクセス処理において予め設定されているフラッシュROM内アドレスから下位アドレスを抽出することにより、オフセットアドレスを取得する。
次にS120にて、専用レジスタSPR0に格納されているプログラム用ベースアドレスを取得する。さらにS130にて、取得したオフセットアドレスとプログラム用ベースアドレスとを加算することにより絶対アドレスを算出する。例えば、オフセットアドレスが0x00003000であり、プログラム用ベースアドレスが0x10000000である場合には、絶対アドレスは0x10003000である。
そしてS140にて、S130で算出した絶対アドレスへアクセスし、プログラムアクセス処理を終了する。これにより、対応するアプリケーションプログラミングインタフェースを実行することができる。
次に、定数アクセス処理の手順を説明する。定数アクセス処理は、OS定数データ毎に設けられている。そして定数アクセス処理は、対応するOS定数データをOSプログラムPGが読み出す場合に実行される。
この定数アクセス処理が実行されると、CPU10(CPU20)は、図4に示すように、まずS210にて、対応するOS定数データのオフセットアドレスを取得する。オフセットアドレスは、対応するOS定数データがフラッシュROM30に記憶されている場合におけるフラッシュROM30内の論理アドレス(以下、フラッシュROM内アドレスという)の下位部分(下位アドレス)である。そして、対応するOS定数データのフラッシュROM内アドレスは、定数アクセス処理を実行するプログラム内に予め設定されている。
このためS210では、当該定数アクセス処理において予め設定されているフラッシュROM内アドレスから下位アドレスを抽出することにより、オフセットアドレスを取得する。
次にS220にて、専用レジスタSPR1に格納されている定数用ベースアドレスを取得する。さらにS230にて、取得したオフセットアドレスと定数用ベースアドレスとを加算することにより絶対アドレスを算出する。
そしてS240にて、S230で算出した絶対アドレスへアクセスし、定数アクセス処理を終了する。これにより、対応するOS定数データを読み出すことができる。
次に、変数アクセス処理の手順を説明する。変数アクセス処理は、OS変数データ毎に設けられている。そして変数アクセス処理は、対応するOS変数データをOSプログラムPGが読み出す場合、または、対応するOS変数データにOSプログラムPGが書き込む場合に実行される。
この変数アクセス処理が実行されると、CPU10(CPU20)は、図5に示すように、まずS310にて、対応するOS変数データのオフセットアドレスを取得する。オフセットアドレスは、対応するOS変数データがRAM40に記憶されている場合におけるRAM40内の論理アドレス(以下、RAM内アドレスという)の下位部分(下位アドレス)である。そして、対応するOS変数データのRAM内アドレスは、変数アクセス処理を実行するプログラム内に予め設定されている。
このためS310では、当該変数アクセス処理において予め設定されているRAM内アドレスから下位アドレスを抽出することにより、オフセットアドレスを取得する。
次にS320にて、専用レジスタSPR2に格納されている変数用ベースアドレスを取得する。さらにS330にて、取得したオフセットアドレスと変数用ベースアドレスとを加算することにより絶対アドレスを算出する。
そしてS340にて、S330で算出した絶対アドレスへアクセスし、変数アクセス処理を終了する。これにより、対応するOS変数データの読み出し又は書き込みを行うことができる。
次に、このように構成されたECU1の動作の具体例を説明する。
図6に示すように、フラッシュROM30には、OSプログラムPG、OS定数データ群C1およびOS定数データ群C2が記憶される。なお、OSプログラムPGの記憶領域として0x00100000からの論理アドレスが割り当てられている。また、OS定数データ群C1の記憶領域として0x00500000からの論理アドレスが割り当てられている。また、OS定数データ群C2の記憶領域として0x00700000からの論理アドレスが割り当てられている。
RAM40には、OS変数データ群V1およびOS変数データ群V2が記憶される。なお、OS変数データ群V1の記憶領域として0x01000000からの論理アドレスが割り当てられている。また、OS変数データ群V2の記憶領域として0x01500000からの論理アドレスが割り当てられている。
プログラム用内蔵メモリ13には、OSプログラムPGが記憶される。なお、OSプログラムPGの記憶領域として0x10000000からの論理アドレスが割り当てられている。
データ用内蔵メモリ14には、OS定数データ群C1およびOS変数データ群V1が記憶される。なお、OS定数データ群C1の記憶領域として0x15000000からの論理アドレスが割り当てられている。またOS変数データ群V1の記憶領域として0x15400000からの論理アドレスが割り当てられている。
上述のように、OSプログラムPGは、プログラム用ベースアドレスを先頭アドレスとして内蔵メモリ13内に配置される。このため、OSプログラムPGによりサブルーチンコールされるアプリケーションプログラミングインタフェースActivateTask()が記憶されている論理アドレスは、フラッシュROM30において0x00103000であるとすると、プログラム用内蔵メモリ13において0x10003000となる。
同様に、OS定数データ群C1に含まれるOS定数データQueueMaxが記憶されている論理アドレスは、フラッシュROM30において0x00502000であるとすると、データ用内蔵メモリ14において0x15002000となる。
同様に、OS変数データ群V1に含まれるOS変数データCurrentTaskIDが記憶されている論理アドレスは、RAM40において0x01004000であるとすると、データ用内蔵メモリ14において0x15404000となる。
また、専用レジスタSPR0,SPR1,SPR2にはそれぞれ、0x10000000,0x15000000,0x15400000が格納されている。
そして、CPU10においてOSプログラムPGがアプリケーションプログラミングインタフェースActivateTask()をサブルーチンコールする場合に、アプリケーションプログラミングインタフェースActivateTask()に対応するプログラムアクセス処理が実行される。
このプログラムアクセス処理には、アプリケーションプログラミングインタフェースActivateTask()の上記フラッシュROM内アドレスが予め設定されている。このフラッシュROM内アドレスは、0x00103000であるため、CPU10の演算装置11は、0x00103000の下位アドレスを抽出し、オフセットアドレスとして0x00003000を取得する(S110)。
次に演算装置11は、専用レジスタSPR0からプログラム用ベースアドレスとして0x10000000を取得する(S120)。さらに演算装置11は、オフセットアドレスとプログラム用ベースアドレスとを加算することにより、絶対アドレスとして0x10003000を算出する(S130)。この絶対アドレスは、アプリケーションプログラミングインタフェースActivateTask()のプログラム用内蔵メモリ13における論理アドレス(0x10003000)と一致する。このため、CPU10は、プログラム用内蔵メモリ13に記憶されているアプリケーションプログラミングインタフェースActivateTask()へアクセスすることができる。
また、CPU10においてOSプログラムPGがOS定数データQueueMaxを読み出す場合に、OS定数データQueueMaxに対応する定数アクセス処理が実行される。
この定数アクセス処理には、OS定数データQueueMaxの上記フラッシュROM内アドレスが予め設定されている。このフラッシュROM内アドレスは、0x00502000であるため、CPU10の演算装置11は、0x00502000の下位アドレスを抽出し、オフセットアドレスとして0x00002000を取得する(S210)。
次に演算装置11は、専用レジスタSPR1から定数用ベースアドレスとして0x15000000を取得する(S220)。さらに演算装置11は、オフセットアドレスと定数用ベースアドレスとを加算することにより、絶対アドレスとして0x15002000を算出する(S230)。この絶対アドレスは、OS定数データQueueMaxのデータ用内蔵メモリ14における論理アドレス(0x15002000)と一致する。このため、CPU10は、データ用内蔵メモリ14に記憶されているOS定数データQueueMaxへアクセスすることができる。
また、CPU10においてOSプログラムPGがOS変数データCurrentTaskIDを読み出す場合、またはOS変数データCurrentTaskIDに書き込む場合に、OS変数データCurrentTaskIDに対応する変数アクセス処理が実行される。
この変数アクセス処理には、OS変数データCurrentTaskIDの上記RAM内アドレスが予め設定されている。このRAM内アドレスは、0x01004000であるため、CPU10の演算装置11は、0x01004000の下位アドレスを抽出し、オフセットアドレスとして0x00004000を取得する(S310)。
次に演算装置11は、専用レジスタSPR2から変数用ベースアドレスとして0x15400000を取得する(S320)。さらに演算装置11は、オフセットアドレスと変数用ベースアドレスとを加算することにより、絶対アドレスとして0x15404000を算出する(S330)。この絶対アドレスは、OS変数データCurrentTaskIDのデータ用内蔵メモリ14における論理アドレス(0x15404000)と一致する。このため、CPU10は、データ用内蔵メモリ14に記憶されているOS変数データCurrentTaskIDへアクセスすることができる。
また図7に示すように、CPU20のプログラム用内蔵メモリ23には、OSプログラムPGが記憶される。なお、OSプログラムPGの記憶領域として0x20000000からの論理アドレスが割り当てられている。
データ用内蔵メモリ24には、OS定数データ群C2およびOS変数データ群V2が記憶される。なお、OS定数データ群C2の記憶領域として0x25000000からの論理アドレスが割り当てられている。またOS変数データ群V2の記憶領域として0x25400000からの論理アドレスが割り当てられている。
上述のように、OSプログラムPGは、プログラム用ベースアドレスを先頭アドレスとして内蔵メモリ23内に配置される。このため、OSプログラムPGによりサブルーチンコールされるアプリケーションプログラミングインタフェースActivateTask()が記憶されている論理アドレスは、フラッシュROM30において0x00103000であるとすると、プログラム用内蔵メモリ23において0x20003000となる。
同様に、OS定数データ群C2に含まれるOS定数データQueueMaxが記憶されている論理アドレスは、フラッシュROM30において0x00702000であるとすると、データ用内蔵メモリ24において0x25002000となる。
同様に、OS変数データ群V2に含まれるOS変数データCurrentTaskIDが記憶されている論理アドレスは、RAM40において0x01504000であるとすると、データ用内蔵メモリ24において0x25404000となる。
また、CPU20の専用レジスタSPR0,SPR1,SPR2にはそれぞれ、0x20000000,0x25000000,0x25400000が格納されている。
そして、CPU20においてOSプログラムPGがアプリケーションプログラミングインタフェースActivateTask()をサブルーチンコールする場合に、アプリケーションプログラミングインタフェースActivateTask()に対応するプログラムアクセス処理が実行される。
このプログラムアクセス処理には、アプリケーションプログラミングインタフェースActivateTask()の上記フラッシュROM内アドレスが予め設定されている。このフラッシュROM内アドレスは、0x00103000であるため、CPU20の演算装置21は、0x00103000の下位アドレスを抽出し、オフセットアドレスとして0x00003000を取得する(S110)。
次に演算装置21は、専用レジスタSPR0からプログラム用ベースアドレスとして0x20000000を取得する(S120)。さらに演算装置21は、オフセットアドレスとプログラム用ベースアドレスとを加算することにより、絶対アドレスとして0x20003000を算出する(S130)。この絶対アドレスは、アプリケーションプログラミングインタフェースActivateTask()のプログラム用内蔵メモリ23における論理アドレス(0x20003000)と一致する。このため、CPU20は、プログラム用内蔵メモリ23に記憶されているアプリケーションプログラミングインタフェースActivateTask()へアクセスすることができる。
同様にしてCPU20は、データ用内蔵メモリ24に記憶されているOS定数データQueueMaxとOS変数データCurrentTaskIDへアクセスすることができる。
このように構成されたECU1は、CPU10と、CPU20と、CPU10,20の外部に設けられ、CPU10,20の両方が実行するOSプログラムPGを記憶するフラッシュROM30とを備える。
CPU10は、演算装置11とプログラム用内蔵メモリ13とを備える。またCPU20は、演算装置21とプログラム用内蔵メモリ23とを備える。
プログラム用内蔵メモリ13は、フラッシュROM30とは異なる論理アドレスが割り当てられ、フラッシュROM30からコピーされるOSプログラムPGを記憶する。また演算装置11は、プログラム用内蔵メモリ13に記憶されているOSプログラムPGへアクセスすることにより処理を実行する。そしてCPU10では、プログラム用内蔵メモリ13に記憶されているOSプログラムPGから読み込む命令に基づいて、プログラム用内蔵メモリ13に記憶されているOSプログラムPGの内部に記載されているアプリケーションプログラミングインタフェースにアクセスする場合において、OSプログラムPG内で基準となるアドレスとして予め設定された先頭アドレス(本実施形態では0x00100000)を基準としてOSプログラムPG内でアプリケーションプログラミングインタフェースへアクセスするためのオフセットアドレス(以下、プログラムオフセットアドレスともいう)と、プログラム用内蔵メモリ13内においてOSプログラムPGの先頭アドレスに対応する論理アドレスを示すプログラム用ベースアドレス(本実施形態では0x10000000)とに基づき、アプリケーションプログラミングインタフェースへアクセスする論理アドレスを決定する(S130)。さらにCPU10では、演算装置11に対して、決定された論理アドレスへアクセスさせる(S140)。
プログラム用内蔵メモリ23は、フラッシュROM30およびプログラム用内蔵メモリ13とは異なる論理アドレスが割り当てられ、フラッシュROM30からコピーされるOSプログラムPGを記憶する。また演算装置21は、プログラム用内蔵メモリ23に記憶されているOSプログラムPGへアクセスすることにより処理を実行する。そしてCPU20では、プログラム用内蔵メモリ23に記憶されているOSプログラムPGから読み込む命令に基づいて、プログラム用内蔵メモリ23に記憶されているOSプログラムPGの内部に記載されているアプリケーションプログラミングインタフェースにアクセスする場合において、OSプログラムPG内で基準となるアドレスとして予め設定された先頭アドレス(本実施形態では0x00100000)を基準としてOSプログラムPG内でアプリケーションプログラミングインタフェースへアクセスするためのオフセットアドレス(プログラムオフセットアドレス)と、プログラム用内蔵メモリ23内においてOSプログラムPGの先頭アドレスに対応する論理アドレスを示すプログラム用ベースアドレス(本実施形態では0x20000000)とに基づき、アプリケーションプログラミングインタフェースへアクセスする論理アドレスを決定する(S130)。さらにCPU20では、演算装置21に対して、決定された論理アドレスへアクセスさせる(S140)。
このように構成されたECU1では、まず、プログラム用内蔵メモリ13,23が、フラッシュROM30からコピーされるOSプログラムPGを記憶する。すなわち、フラッシュROM30に記憶されているOSプログラムPGの構成は、プログラム用内蔵メモリ13,23に記憶されているOSプログラムPGの構成と同一である。
このため、フラッシュROM30においてOSプログラムPGの先頭アドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容と、プログラム用内蔵メモリ13,23においてプログラム用ベースアドレスからプログラムオフセットアドレス分移動させたアドレスに記載されている内容は互いに同一である。
そしてCPU10,20は、プログラムオフセットアドレスとプログラム用ベースアドレスとに基づき、プログラム用内蔵メモリ13,23内のアプリケーションプログラミングインタフェースへアクセスする。すなわちECU1では、フラッシュROM30に記憶されているOSプログラムPGをプログラム用内蔵メモリ13,23のそれぞれに記憶させた上で、CPU10,20がOSプログラムPGを実行することができる。このためECU1によれば、CPU10,20がOSプログラムPGを実行する場合であっても、フラッシュROM30内に、アクセスするアドレスが異なるOSプログラムをCPU10,20毎に設ける必要がなくなり、フラッシュROM30における記憶容量の増大を抑制することができる。
またECU1では、CPU10,20を識別するためのCPU識別情報がCPU10,20のそれぞれに設定されている。そしてECU1は、CPU10およびCPU20がそれぞれ、CPU10のプログラム用ベースアドレスおよびCPU20のプログラム用ベースアドレスに対応付けられているアドレス設定テーブルATを備える。そしてCPU10,20はそれぞれ、CPU10,20のCPU識別情報と、アドレス設定テーブルATとを参照することにより、CPU10,20に対してプログラム用ベースアドレスを設定する(S10,S20,S30)。
これにより、アドレス設定テーブルATの内容を変更することでCPU10,20のプログラム用ベースアドレスを変更することができるため、CPU10,20のプログラム用ベースアドレスをアドレス設定テーブルATで一元管理することができる。
またフラッシュROM30は、CPU10がOSプログラムPGを実行するために使用される複数のOS定数データを有するOS定数データ群C1と、CPU20がOSプログラムPGを実行するために使用される複数のOS定数データを有するOS定数データ群C2とを記憶する。
CPU10は、フラッシュROM30およびプログラム用内蔵メモリ13,23とは異なる論理アドレスが割り当てられ、フラッシュROM30からコピーされるOS定数データ群C1を記憶するデータ用内蔵メモリ14を備える。そしてCPU10では、プログラム用内蔵メモリ13に記憶されているOSプログラムPGから読み込む命令に基づいて、データ用内蔵メモリ14に記憶されているOS定数データ群C1のOS定数データにアクセスする場合において、OS定数データ群C1内で基準となるアドレスとして予め設定された先頭アドレス(本実施形態では0x00500000)を基準としてOS定数データ群C1内でOS定数データへアクセスするためのオフセットアドレス(以下、第1定数オフセットアドレスという)と、OS定数データ群C1内においてOS定数データ群C1の先頭アドレスに対応する論理アドレスを示す定数用ベースアドレスとに基づき、OS定数データ群C1のOS定数データへアクセスする論理アドレスを決定する。(S230)。さらにCPU10では、演算装置11に対して、決定された論理アドレスへアクセスさせる(S240)。
CPU20は、フラッシュROM30、プログラム用内蔵メモリ13,23およびデータ用内蔵メモリ14とは異なる論理アドレスが割り当てられ、フラッシュROM30からコピーされるOS定数データ群C2を記憶するデータ用内蔵メモリ24を備える。そしてCPU20では、プログラム用内蔵メモリ23に記憶されているOSプログラムPGから読み込む命令に基づいて、データ用内蔵メモリ24に記憶されているOS定数データ群C2のOS定数データにアクセスする場合において、OS定数データ群C2内で基準となるアドレスとして予め設定された先頭アドレス(本実施形態では0x00700000)を基準としてOS定数データ群C2内でOS定数データへアクセスするためのオフセットアドレス(以下、第2定数オフセットアドレスという)と、OS定数データ群C2内においてOS定数データ群C2の先頭アドレスに対応する論理アドレスを示す定数用ベースアドレスとに基づき、OS定数データ群C2のOS定数データへアクセスする論理アドレスを決定する。(S230)。さらにCPU20では、演算装置21に対して、決定された論理アドレスへアクセスさせる(S240)。
これによりCPU10,20はそれぞれ、OS定数データ群C1,C2のOS定数データを読み込むために、CPU10,20内に設けられたデータ用内蔵メモリ14,24にアクセスすることができる。このためECU1は、フラッシュROM30へアクセスする場合よりも速くOS定数データ群C1,C2へアクセスすることが可能となる。
またアドレス設定テーブルATでは、CPU10およびCPU20がそれぞれ、CPU10の定数用ベースアドレスおよびCPU20の定数用ベースアドレスに対応付けられている。そしてCPU10,20はそれぞれ、CPU10,20のCPU識別情報と、アドレス設定テーブルATとを参照することにより、CPU10,20に対して定数用ベースアドレスを設定する(S10,S20,S40)。
これにより、アドレス設定テーブルATの内容を変更することでCPU10,20の定数用ベースアドレスを変更することができるため、CPU10,20の定数用ベースアドレスをアドレス設定テーブルATで一元管理することができる。
またECU1は、CPU10がOSプログラムPGを実行するために使用される複数のOS変数データを有するOS変数データ群V1と、CPU20がOSプログラムPGを実行するために使用される複数のOS変数データを有するOS変数データ群V2とを記憶するRAM40を備える。
データ用内蔵メモリ14は、RAM40からコピーされるOS変数データ群V1を記憶する。そしてCPU10では、プログラム用内蔵メモリ13に記憶されているOSプログラムPGから読み込む命令に基づいて、データ用内蔵メモリ14に記憶されているOS変数データ群V1のOS変数データにアクセスする場合において、OS変数データ群V1内で基準となるアドレスとして予め設定された先頭アドレス(本実施形態では0x01000000)を基準としてOS変数データ群V1内でOS定数データへアクセスするためのオフセットアドレス(以下、第1変数オフセットアドレスという)と、OS変数データ群V1内においてOS変数データ群V1の先頭アドレスに対応する論理アドレスを示す変数用ベースアドレスとに基づき、OS変数データ群V1のOS変数データへアクセスする論理アドレスを決定する。(S330)。さらにCPU10では、演算装置11に対して、決定された論理アドレスへアクセスさせる(S340)。
データ用内蔵メモリ24は、RAM40からコピーされるOS変数データ群V2を記憶する。そしてCPU20では、プログラム用内蔵メモリ23に記憶されているOSプログラムPGから読み込む命令に基づいて、データ用内蔵メモリ24に記憶されているOS変数データ群V2のOS変数データにアクセスする場合において、OS変数データ群V2内で基準となるアドレスとして予め設定された先頭アドレス(本実施形態では0x01500000)を基準としてOS変数データ群V2内でOS定数データへアクセスするためのオフセットアドレス(以下、第2変数オフセットアドレスという)と、OS変数データ群V2内においてOS変数データ群V2の先頭アドレスに対応する論理アドレスを示す変数用ベースアドレスとに基づき、OS変数データ群V2のOS変数データへアクセスする論理アドレスを決定する。(S330)。さらにCPU20では、演算装置21に対して、決定された論理アドレスへアクセスさせる(S340)。
これによりCPU10,20はそれぞれ、OS変数データ群V1,V2のOS変数データを読み込むために、CPU10,20内に設けられたデータ用内蔵メモリ14,24にアクセスすることができる。このためECU1は、RAM40へアクセスする場合よりも速くOS変数データ群V1,V2へアクセスすることが可能となる。
またアドレス設定テーブルATでは、CPU10およびCPU20がそれぞれ、CPU10の変数用ベースアドレスおよびCPU20の変数用ベースアドレスに対応付けられている。そしてCPU10,20はそれぞれ、CPU10,20のCPU識別情報と、アドレス設定テーブルATとを参照することにより、CPU10,20に対して変数用ベースアドレスを設定する(S10,S20,S50)。
これにより、アドレス設定テーブルATの内容を変更することでCPU10,20の変数用ベースアドレスを変更することができるため、CPU10,20の変数用ベースアドレスをアドレス設定テーブルATで一元管理することができる。
また、フラッシュROM30に記憶されているOSプログラムPGの先頭アドレスは0x00100000であり、下位アドレスが0x0000である。このため、アプリケーションプログラミングインタフェースのプログラムオフセットアドレスは、対応するアプリケーションプログラミングインタフェースがフラッシュROM30に記憶されている場合におけるフラッシュROM30内の論理アドレスの下位部分(下位アドレス)を採用することができる。
同様に、フラッシュROM30に記憶されているOS定数データ群C1,C2の先頭アドレスは0x00500000,0x00700000であり、下位アドレスが0x0000である。このため、OS定数データの定数オフセットアドレスは、対応するOS定数データがフラッシュROM30に記憶されている場合におけるフラッシュROM30内の論理アドレスの下位部分(下位アドレス)を採用することができる。
さらに、RAM40に記憶されているOS変数データ群V1,V2の先頭アドレスは0x01000000,0x01500000であり、下位アドレスが0x0000である。このため、OS変数データの定数オフセットアドレスは、対応するOS変数データがRAM40に記憶されている場合におけるRAM40内の論理アドレスの下位部分(下位アドレス)を採用することができる。
以上説明した実施形態において、ECU1は本発明における電子制御装置、CPU10は本発明における第1CPU、CPU20は本発明における第2CPU、フラッシュROM30は本発明における共通プログラム記憶部、OSプログラムPGは本発明における共通プログラムである。
また、プログラム用内蔵メモリ13は本発明における第1プログラム記憶部、演算装置11は本発明における第1処理実行部、CPU10が実行するS130の処理は本発明における第1プログラムアドレス決定手段、CPU10が実行するS140の処理は本発明における第1プログラムアクセス手段である。
また、プログラム用内蔵メモリ23は本発明における第2プログラム記憶部、演算装置21は本発明における第2処理実行部、CPU20が実行するS130の処理は本発明における第2プログラムアドレス決定手段、CPU20が実行するS140の処理は本発明における第2プログラムアクセス手段である。
また、アドレス設定テーブルATは本発明におけるプログラム対応関係記憶部、CPU10が実行するS10,S20,S30の処理は本発明における第1プログラム設定手段、CPU20が実行するS10,S20,S30の処理は本発明における第2プログラム設定手段である。
また、OS定数データ群C1は本発明における第1定数データ群、OS定数データ群C2は本発明における第2定数データ群、フラッシュROM30は本発明における共通定数記憶部、データ用内蔵メモリ14は本発明における第1定数記憶部、CPU10が実行するS230の処理は本発明における第1定数アドレス決定手段、CPU10が実行するS240の処理は本発明における第1定数アクセス手段である。
また、データ用内蔵メモリ24は本発明における第2定数記憶部、CPU20が実行するS230の処理は本発明における第2定数アドレス決定手段、CPU20が実行するS240の処理は本発明における第2定数アクセス手段である。
また、アドレス設定テーブルATは本発明における定数対応関係記憶部、CPU10が実行するS10,S20,S40の処理は本発明における第1定数設定手段、CPU20が実行するS10,S20,S40の処理は本発明における第2定数設定手段である。
また、OS変数データ群V1は本発明における第1変数データ群、OS変数データ群V2は本発明における第2変数データ群、RAM40は本発明における共通変数記憶部、データ用内蔵メモリ14は本発明における第1変数記憶部、CPU10が実行するS330の処理は本発明における第1変数アドレス決定手段、CPU10が実行するS340の処理は本発明における第1変数アクセス手段である。
また、データ用内蔵メモリ24は本発明における第2変数記憶部、CPU20が実行するS330の処理は本発明における第2変数アドレス決定手段、CPU20が実行するS340の処理は本発明における第2変数アクセス手段である。
また、アドレス設定テーブルATは本発明における変数対応関係記憶部、CPU10が実行するS10,S20,S50の処理は本発明における第1変数設定手段、CPU20が実行するS10,S20,S50の処理は本発明における第2変数設定手段である。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、マイコン2が2つのCPUを備えるものを示した。しかし、マイコン2が3つ以上のCPUを備え、3つ以上のCPUが、それぞれの内蔵メモリに記憶されているOSプログラムPGを実行するようにしてもよい。
また上記実施形態では、CPU10,20が、CPU10,20の両方が実行する共通プログラムとしてOSプログラムPGを実行するものを示した。しかし、CPU10,20がOSプログラムPG以外のプログラム(例えば車両制御プログラム)を共通プログラムとして実行するようにしてもよい。
また上記実施形態では、アドレス設定処理をソフトウェア(プログラム)で実行するものを示したが、ハードウェア(論理回路など)で実行するようにしてもよい。
また上記実施形態では、プログラム用ベースアドレスが、プログラム用内蔵メモリ13,23に記憶されているOSプログラムPGの先頭アドレスであるものを示した。しかし、プログラム用ベースアドレスはこれに限定されるものではなく、例えば、OSプログラムPGの末尾アドレスであってもよい。
1…ECU、2…マイコン、10…CPU、11…演算装置、13…プログラム用内蔵メモリ、20…CPU、21…演算装置、23…プログラム用内蔵メモリ、30…フラッシュROM

Claims (9)

  1. 第1CPU(10)と、
    第2CPU(20)と、
    前記第1CPUおよび前記第2CPUの外部に設けられ、前記第1CPUおよび前記第2CPUの両方が実行する共通プログラムを記憶する共通プログラム記憶部(30)とを備え、
    前記第1CPUは、
    前記共通プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通プログラム記憶部からコピーされる前記共通プログラムを記憶する第1プログラム記憶部(13)と、
    前記第1プログラム記憶部に記憶されている前記共通プログラムへアクセスすることにより処理を実行する第1処理実行部(11)と、
    前記第1プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第1プログラム記憶部に記憶されている前記共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、前記共通プログラム内で基準となるアドレスとして予め設定された共通プログラム内基準アドレスを基準として前記共通プログラム内で前記内部プログラムへアクセスするためのオフセットアドレスを示すプログラムオフセットアドレスと、前記第1プログラム記憶部内において前記共通プログラム内基準アドレスに対応する論理アドレスを示す第1プログラム基準アドレスとに基づき、前記内部プログラムへアクセスする論理アドレスを決定する第1プログラムアドレス決定手段(S130)と、
    前記第1処理実行部に対して、前記第1プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる第1プログラムアクセス手段(S140)とを備え、
    前記第2CPUは、
    前記共通プログラム記憶部および前記第1プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通プログラム記憶部からコピーされる前記共通プログラムを記憶する第2プログラム記憶部(23)と、
    前記第2プログラム記憶部に記憶されている前記共通プログラムへアクセスすることにより処理を実行する第2処理実行部(21)と、
    前記第2プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第2プログラム記憶部に記憶されている前記共通プログラムの内部に記載されている内部プログラムにアクセスする場合において、前記プログラムオフセットアドレスと、前記第2プログラム記憶部内において前記共通プログラム内基準アドレスに対応する論理アドレスを示す第2プログラム基準アドレスとに基づき、前記内部プログラムへアクセスする論理アドレスを決定する第2プログラムアドレス決定手段(S130)と、
    前記第2処理実行部に対して、前記第2プログラムアドレス決定手段により決定された論理アドレスへアクセスさせる第2プログラムアクセス手段(S140)とを備える
    ことを特徴とする電子制御装置(1)。
  2. 前記共通プログラム内基準アドレスは、前記共通プログラム記憶部に記憶されている前記共通プログラムにおける先頭の論理アドレスを示す
    ことを特徴とする請求項1に記載の電子制御装置。
  3. 前記第1CPUおよび前記第2CPUを識別するためのCPU識別情報が、前記第1CPUおよび前記第2CPUのそれぞれに設定され、
    前記第1CPUおよび前記第2CPUがそれぞれ、前記第1プログラム基準アドレスおよび前記第2プログラム基準アドレスに対応付けられているプログラム対応関係記憶部(AT)を備え、
    前記第1CPUは、
    前記第1CPUの前記CPU識別情報と、前記プログラム対応関係記憶部とを参照することにより、前記第1CPUに対して前記第1プログラム基準アドレスを設定する第1プログラム設定手段(S10,S20,S30)を備え、
    前記第2CPUは、
    前記第2CPUの前記CPU識別情報と、前記プログラム対応関係記憶部とを参照することにより、前記第2CPUに対して前記第2プログラム基準アドレスを設定する第2プログラム設定手段(S10,S20,S30)を備える
    ことを特徴とする請求項1または請求項2に記載の電子制御装置。
  4. 前記第1CPUが前記共通プログラムを実行するために使用される複数の第1定数データを有する第1定数データ群(C1)と、前記第2CPUが前記共通プログラムを実行するために使用される複数の第2定数データを有する第2定数データ群(C2)とを記憶する共通定数記憶部(30)を備え、
    前記第1CPUは、
    前記共通プログラム記憶部、前記第1プログラム記憶部および前記第2プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通定数記憶部からコピーされる前記第1定数データ群を記憶する第1定数記憶部(14)と、
    前記第1プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第1定数記憶部に記憶されている前記第1定数データ群の前記第1定数データにアクセスする場合において、前記第1定数データ群内で基準となるアドレスとして予め設定された第1定数群内基準アドレスを基準として前記第1定数データ群内で前記第1定数データへアクセスするためのオフセットアドレスを示す第1定数オフセットアドレスと、前記第1定数記憶部内において前記第1定数群内基準アドレスに対応する論理アドレスを示す第1定数基準アドレスとに基づき、前記第1定数データへアクセスする論理アドレスを決定する第1定数アドレス決定手段(S230)と、
    前記第1処理実行部に対して、前記第1定数アドレス決定手段により決定された論理アドレスへアクセスさせる第1定数アクセス手段(S240)とを備え、
    前記第2CPUは、
    前記共通プログラム記憶部、前記第1プログラム記憶部、前記第2プログラム記憶部および前記第1定数記憶部とは異なる論理アドレスが割り当てられ、前記共通定数記憶部からコピーされる前記第2定数データ群を記憶する第2定数記憶部(24)と、
    前記第2プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第2定数記憶部に記憶されている前記第2定数データ群の前記第2定数データにアクセスする場合において、前記第2定数データ群内で基準となるアドレスとして予め設定された第2定数群内基準アドレスを基準として前記第2定数データ群内で前記第2定数データへアクセスするためのオフセットアドレスを示す第2定数オフセットアドレスと、前記第2定数記憶部内において前記第2定数群内基準アドレスに対応する論理アドレスを示す第2定数基準アドレスとに基づき、前記第2定数データへアクセスする論理アドレスを決定する第2定数アドレス決定手段(S230)と、
    前記第2処理実行部に対して、前記第2定数アドレス決定手段により決定された論理アドレスへアクセスさせる第2定数アクセス手段(S240)とを備える
    ことを特徴とする請求項1〜請求項3の何れか1項に記載の電子制御装置。
  5. 前記第1定数群内基準アドレスは、前記共通定数記憶部に記憶されている前記第1定数データ群における先頭の論理アドレスを示し、
    前記第2定数群内基準アドレスは、前記共通定数記憶部に記憶されている前記第2定数データ群における先頭の論理アドレスを示す
    ことを特徴とする請求項4に記載の電子制御装置。
  6. 前記第1CPUおよび前記第2CPUを識別するためのCPU識別情報が、前記第1CPUおよび前記第2CPUのそれぞれに設定され、
    前記第1CPUおよび前記第2CPUがそれぞれ、前記第1定数基準アドレスおよび前記第2定数基準アドレスに対応付けられている定数対応関係記憶部(AT)を備え、
    前記第1CPUは、
    前記第1CPUの前記CPU識別情報と、前記定数対応関係記憶部とを参照することにより、前記第1CPUに対して前記第1定数基準アドレスを設定する第1定数設定手段(S10,S20,S40)を備え、
    前記第2CPUは、
    前記第2CPUの前記CPU識別情報と、前記定数対応関係記憶部とを参照することにより、前記第2CPUに対して前記第2定数基準アドレスを設定する第2定数設定手段(S10,S20,S40)を備える
    ことを特徴とする請求項4または請求項5に記載の電子制御装置。
  7. 前記第1CPUが前記共通プログラムを実行するために使用される複数の第1変数データを有する第1変数データ群(V1)と、前記第2CPUが前記共通プログラムを実行するために使用される複数の第2変数データを有する第2変数データ群(V2)とを記憶する共通変数記憶部(40)を備え、
    前記第1CPUは、
    前記共通プログラム記憶部、前記第1プログラム記憶部および前記第2プログラム記憶部とは異なる論理アドレスが割り当てられ、前記共通変数記憶部からコピーされる前記第1変数データ群を記憶する第1変数記憶部(14)と、
    前記第1プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第1変数記憶部に記憶されている前記第1変数データ群の前記第1変数データにアクセスする場合において、前記第1変数データ群内で基準となるアドレスとして予め設定された第1変数群内基準アドレスを基準として前記第1変数データ群内で前記第1変数データへアクセスするためのオフセットアドレスを示す第1変数オフセットアドレスと、前記第1変数記憶部内において前記第1変数群内基準アドレスに対応する論理アドレスを示す第1変数基準アドレスとに基づき、前記第1変数データへアクセスする論理アドレスを決定する第1変数アドレス決定手段(S330)と、
    前記第1処理実行部に対して、前記第1変数アドレス決定手段により決定された論理アドレスへアクセスさせる第1変数アクセス手段(S340)とを備え、
    前記第2CPUは、
    前記共通プログラム記憶部、前記第1プログラム記憶部、前記第2プログラム記憶部および前記第1変数記憶部とは異なる論理アドレスが割り当てられ、前記共通変数記憶部からコピーされる前記第2変数データ群を記憶する第2変数記憶部(24)と、
    前記第2プログラム記憶部に記憶されている前記共通プログラムから読み込む命令に基づいて、前記第2変数記憶部に記憶されている前記第2変数データ群の前記第2変数データにアクセスする場合において、前記第2変数データ群内で基準となるアドレスとして予め設定された第2変数群内基準アドレスを基準として前記第2変数データ群内で前記第2変数データへアクセスするためのオフセットアドレスを示す第2変数オフセットアドレスと、前記第2変数記憶部内において前記第2変数群内基準アドレスに対応する論理アドレスを示す第2変数基準アドレスとに基づき、前記第2変数データへアクセスする論理アドレスを決定する第2変数アドレス決定手段(S330)と、
    前記第2処理実行部に対して、前記第2変数アドレス決定手段により決定された論理アドレスへアクセスさせる第2変数アクセス手段(S340)とを備える
    ことを特徴とする請求項1〜請求項6の何れか1項に記載の電子制御装置。
  8. 前記第1変数群内基準アドレスは、前記共通変数記憶部に記憶されている前記第1変数データ群における先頭の論理アドレスを示し、
    前記第2変数群内基準アドレスは、前記共通変数記憶部に記憶されている前記第2変数データ群における先頭の論理アドレスを示す
    ことを特徴とする請求項7に記載の電子制御装置。
  9. 前記第1CPUおよび前記第2CPUを識別するためのCPU識別情報が、前記第1CPUおよび前記第2CPUのそれぞれに設定され、
    前記第1CPUおよび前記第2CPUがそれぞれ、前記第1変数基準アドレスおよび前記第2変数基準アドレスに対応付けられている変数対応関係記憶部(AT)を備え、
    前記第1CPUは、
    前記第1CPUの前記CPU識別情報と、前記変数対応関係記憶部とを参照することにより、前記第1CPUに対して前記第1変数基準アドレスを設定する第1変数設定手段(S10,S20,S50)を備え、
    前記第2CPUは、
    前記第2CPUの前記CPU識別情報と、前記変数対応関係記憶部とを参照することにより、前記第2CPUに対して前記第2変数基準アドレスを設定する第2変数設定手段(S10,S20,S50)を備える
    ことを特徴とする請求項7または請求項8に記載の電子制御装置。
JP2013235881A 2013-11-14 2013-11-14 電子制御装置 Active JP5915624B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013235881A JP5915624B2 (ja) 2013-11-14 2013-11-14 電子制御装置
DE102014223148.5A DE102014223148A1 (de) 2013-11-14 2014-11-13 Elektronische Steuervorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013235881A JP5915624B2 (ja) 2013-11-14 2013-11-14 電子制御装置

Publications (2)

Publication Number Publication Date
JP2015095218A true JP2015095218A (ja) 2015-05-18
JP5915624B2 JP5915624B2 (ja) 2016-05-11

Family

ID=53184538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013235881A Active JP5915624B2 (ja) 2013-11-14 2013-11-14 電子制御装置

Country Status (2)

Country Link
JP (1) JP5915624B2 (ja)
DE (1) DE102014223148A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01243146A (ja) * 1988-03-24 1989-09-27 Hitachi Ltd 共用メモリアクセス方式
JPH07219779A (ja) * 1994-02-02 1995-08-18 Fuji Electric Co Ltd 計算機システムの立ち上げ方法
JP2006323829A (ja) * 2005-03-18 2006-11-30 Sony Computer Entertainment Inc 動的にリンクするプログラムのオーバーレイのための方法及び装置
JP2008097134A (ja) * 2006-10-06 2008-04-24 Oki Electric Ind Co Ltd アドレスオフセット制御回路
JP2008217134A (ja) * 2007-02-28 2008-09-18 Univ Waseda メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム
JP2010049556A (ja) * 2008-08-22 2010-03-04 Mitsubishi Electric Corp 画像処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034910A (ja) 2005-07-29 2007-02-08 Fujitsu Ten Ltd マルチcpuシステム及びスケジューラ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01243146A (ja) * 1988-03-24 1989-09-27 Hitachi Ltd 共用メモリアクセス方式
JPH07219779A (ja) * 1994-02-02 1995-08-18 Fuji Electric Co Ltd 計算機システムの立ち上げ方法
JP2006323829A (ja) * 2005-03-18 2006-11-30 Sony Computer Entertainment Inc 動的にリンクするプログラムのオーバーレイのための方法及び装置
JP2008097134A (ja) * 2006-10-06 2008-04-24 Oki Electric Ind Co Ltd アドレスオフセット制御回路
JP2008217134A (ja) * 2007-02-28 2008-09-18 Univ Waseda メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム
JP2010049556A (ja) * 2008-08-22 2010-03-04 Mitsubishi Electric Corp 画像処理装置

Also Published As

Publication number Publication date
DE102014223148A1 (de) 2015-05-21
JP5915624B2 (ja) 2016-05-11

Similar Documents

Publication Publication Date Title
US9465750B2 (en) Memory protection circuit, method and processing unit utilizing memory access information register to selectively allow access to memory areas by virtual machines
JP2017505492A (ja) 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算
JP2018538630A5 (ja)
KR20150129692A (ko) 멀티 부트 디바이스들용 부트 시퀀싱
JP4874165B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
TW201706856A (zh) 具有增強指令集之中央處理單元
CN112074820B (zh) 用于多内核系统的存储器池分配
US20180113816A1 (en) Memory protecting unit and method for protecting a memory address space
JP2010500682A (ja) フラッシュメモリアクセス回路
JP2009199414A (ja) マイクロコンピュータ
JP5915624B2 (ja) 電子制御装置
JP4703753B2 (ja) 情報処理装置、半導体記憶装置、及びプログラム
JP4522799B2 (ja) 半導体回路装置及び暴走検出方法
JP5644380B2 (ja) 情報処理装置
US9864548B2 (en) Memory module, electronic device and method
KR102441992B1 (ko) 분리 메모리 관리 방법 및 장치
CN108229201B (zh) 数据处理设备和访问控制方法
JP6555184B2 (ja) 車載制御装置
JP6596455B2 (ja) 自動車用電子制御装置
JP7419662B2 (ja) マルチプロセッサシステム
JP2010237770A (ja) 情報処理装置、ブリッジ装置および情報処理方法
JP2015090512A (ja) メモリダンプ機能を有する情報処理装置
JP6762411B2 (ja) 自動車用電子制御装置
JP2017208058A (ja) 情報処理装置
JP6603100B2 (ja) メモリ制御装置及びメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160119

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: 20160308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160321

R151 Written notification of patent or utility model registration

Ref document number: 5915624

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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