"マスタユニットと、該マスタユニットと通信線を介して通信可能に接続されるN個但し、Nは3以上の整数のスレーブユニットとを備え、前記N個の各スレーブユニットには、データの書き換えが可能な不揮発性のメモリが備えられていると共に、該メモリの特定記憶領域には、前記マスタユニットによって保存対象データが書き込まれる制御システムにおいて、前記マスタユニットとして用いられる電子制御装置であって、前記各スレーブユニットにおける前記特定記憶領域から、連続した仮想メモリ領域を作成する手段として、前記各スレーブユニットにおける前記特定記憶領域を、前記保存対象データの1つを記憶可能な一定容量の単位記憶領域毎に分割すると共に、その各単位記憶領域を、同じスレーブユニットに保有されるものがN個毎に現れることとなる順番にして、前記仮想メモリ領域の先頭からの各単位記憶領域として割り当てることにより、前記仮想メモリ領域を作成する仮想メモリ作成手段を備え、更に、前記作成された仮想メモリ領域において連続するR個但し、2≦R<Nの整数の前記単位記憶領域の各々に、同じ保存対象データを書き込む書込手段を備えていること、を特徴とする電子制御装置。請求項1に記載の電子制御装置において、前記仮想メモリ作成手段は、前記各スレーブユニットから前記特定記憶領域の先頭及び容量を示す領域情報を取得し、その取得した領域情報から前記各スレーブユニットにおける前記特定記憶領域を特定して、前記仮想メモリ領域を作成すること、を特徴とする電子制御装置。請求項1又は請求項2に記載の電子制御装置において、データの書き換えが可能な不揮発性のメモリであるマスタ側メモリを備えており、前記仮想メモリ作成手段は、前記各スレーブユニットにおける前記特定記憶領域に容量差があることによって、前記スレーブユニットにおける前記特定記憶領域の単位記憶領域を前記順番に従い割り当てることができない前記仮想メモリ領域の単位記憶領域に対しては、前記マスタ側メモリの単位記憶領域を割り当てること、を特徴とする電子制御装置。請求項1ないし請求項3の何れか1項に記載の電子制御装置において、前記スレーブユニットの各々について、交換されたか否かを判定する交換検知手段と、前記交換検知手段により前記スレーブユニットの何れかが交換されたと判定された場合に、その交換されたと判定されたスレーブユニットの前に当該電子制御装置に接続されていたスレーブユニットにおける前記特定記憶領域の単位記憶領域に記憶されていた保存対象データと同じ保存対象データが記憶されていた前記仮想メモリ領域における単位記憶領域を特定して、その特定した単位記憶領域に記憶されている保存対象データから、前記交換されたと判定されたスレーブユニットにおける前記特定記憶領域の単位記憶領域に書き込むべき保存対象データを復元する復元手段と、を備えていることを特徴とする電子制御装置。請求項1ないし請求項4の何れか1項に記載の電子制御装置において、前記スレーブユニットは、自動車のエンジンの気筒毎に設けられて、対応する気筒に燃料を噴射するインジェクタであること、を特徴とする電子制御装置。マスタユニットと、該マスタユニットと通信線を介して通信可能に接続されるN個但し、Nは3以上の整数のスレーブユニットとを備え、前記N個の各スレーブユニットには、データの書き換えが可能な不揮発性のメモリが備えられていると共に、該メモリの特定記憶領域には、前記マスタユニットによって保存対象データが書き込まれる制御システムにおいて、前記マスタユニットとして、請求項1ないし請求項4の何れか1項に記載の電子制御装置を備えていること、を特徴とする制御システム。請求項6に記載の制御システムにおいて、前記スレーブユニットは、自動車のエンジンの気筒毎に設けられて、対応する気筒に燃料を噴射するインジェクタであること、を特徴とする制御システム。ところで、電子制御装置が各アクチュエータ装置のメモリにおける共通領域に同じ保存対象データを書き込む前述の制御システムでは、データの冗長保存は実現できるものの、メモリの利用効率が悪いという課題がある。つまり、各アクチュエータ装置のメモリにおける共通領域の容量が、A個のデータを記憶可能な容量であるとすると、電子制御装置から見てアクチュエータ装置側に保存可能なデータの数種類数という意味は、やはりA個である。そして、その保存可能なデータの数は、アクチュエータ装置の個数が多くなって、全アクチュエータ装置での共通領域の合計容量が増えたとしても、変わらない。そこで、本発明は、マスタユニットが複数のスレーブユニットのメモリにデータを保存する制御システムにおいて、スレーブユニットのメモリの利用効率を向上させることを目的としている。請求項1の電子制御装置は、N個但し、Nは3以上の整数のスレーブユニットと通信線を介して通信可能に接続されるマスタユニットであり、そのN個のスレーブユニットと共に制御システムを成す。そして、各スレーブユニットには、データの書き換えが可能な不揮発性のメモリが備えられており、そのメモリの特定記憶領域には、マスタユニットとしての当該電子制御装置によって保存対象データが書き込まれる。ここで特に、請求項1の電子制御装置は、各スレーブユニットにおける前記特定記憶領域から、連続した仮想メモリ領域を作成する仮想メモリ作成手段を備えている。そして、その仮想メモリ作成手段は、各スレーブユニットにおける前記特定記憶領域を、保存対象データの1つを記憶可能な一定容量の単位記憶領域毎に分割すると共に、その各単位記憶領域を、同じスレーブユニットに保有されるものがN個毎に現れることとなる順番にして、仮想メモリ領域の先頭からの各単位記憶領域として割り当てることにより、仮想メモリ領域を作成する。更に、請求項1の電子制御装置は、書込手段を備えており、その書込手段は、前記作成された仮想メモリ領域において連続するR個但し、2≦R<Nの整数の単位記憶領域の各々に、同じ保存対象データを書き込む。尚、スレーブユニットにおける特定記憶領域とは、詳しくは、そのスレーブユニットに備えられているメモリの特定記憶領域のことである。また、その特定記憶領域は、メモリの記憶領域の一部と全部との何れでも良い。また、作成された仮想メモリ領域の各単位記憶領域には、何れかのスレーブユニットにおける特定記憶領域の何れかの単位記憶領域が、現実の物理的な記憶領域一般的な呼び方をすると物理アドレスとして割り当てられている換言すれば、対応付けられているため、書込手段が仮想メモリ領域の何れかの単位記憶領域にデータを書き込むということは、その単位記憶領域に割り当てられている物理的な記憶領域にデータを書き込むということである。このような電子制御装置によれば、各スレーブユニットにおける特定記憶領域に同じ保存対象データを書き込む従来の構成と比較すると、データの冗長保存を実現しつつ、スレーブユニットのメモリの利用効率を向上させることができる。つまり、特定記憶領域の容量が同じであれば、保存できるデータ数を増やすことができる。例えば、スレーブユニットの数が4N=4で、各スレーブユニットにおける特定記憶領域が30個の単位記憶領域から成っているとする。この場合、従来の構成では、スレーブユニット側に30個ここでの個は、種類という意味のデータしか保存できない。これに対して、請求項1の電子制御装置では、R=3とすれば、スレーブユニット側に40個のデータを保存することができ、R=2とすれば、スレーブユニット側に60個のデータを保存することができる。また、各データは、R個の異なるスレーブユニットに保存されることとなるため、データの冗長保存も実現される。つまり、何れかのスレーブユニットが交換されても、そのスレーブユニットに保存されていたデータは、他の何れかのスレーブユニットにも保存されていることとなり、保存対象データを失ってしまうことがない。次に、請求項2の電子制御装置は、請求項1の電子制御装置において、仮想メモリ作成手段は、各スレーブユニットから特定記憶領域の先頭及び容量を示す領域情報を取得し、その取得した領域情報から各スレーブユニットにおける特定記憶領域を特定して、仮想メモリ領域を作成する。この構成によれば、各スレーブユニットの特定記憶領域の先頭位置先頭アドレスや容量が変わっても、その特定記憶領域を特定して、仮想メモリ領域を作成することができるようになる。次に、請求項3の電子制御装置は、請求項1,2の電子制御装置において、データの書き換えが可能な不揮発性のメモリであるマスタ側メモリを備えている。そして、この電子制御装置において、仮想メモリ作成手段は、各スレーブユニットにおける前記特定記憶領域に容量差があることによって、スレーブユニットにおける前記特定記憶領域の単位記憶領域を前記順番に従い割り当てることができない仮想メモリ領域の単位記憶領域に対しては、マスタ側メモリの単位記憶領域を割り当てる。つまり、特定記憶領域の容量差によって、仮想メモリ領域に割り当てる単位記憶領域が足らなくなったスレーブユニットについては、そのスレーブユニットの足らなくなった分の単位記憶領域の代わりに、マスタ側メモリの単位記憶領域を用いるようにしている。尚、スレーブユニットの単位記憶領域とは、詳しくは、そのスレーブユニットにおける特定記憶領域の単位記憶領域のことであり、更に詳しくは、そのスレーブユニットに備えられているメモリの特定記憶領域を成している単位記憶領域のことである。そして、この構成によれば、あるスレーブユニットにおける特定記憶領域の容量が、他のスレーブユニットにおける特定記憶領域の容量より小さくても、データの冗長保存を実現することができる。つまり、何れかのスレーブユニットが交換されても、そのスレーブユニットに保存されていたデータは、他のスレーブユニットあるいはマスタ側メモリに保存されていることとなり、保存対象データを失ってしまうことがない。次に、請求項4の電子制御装置は、請求項1~3の電子制御装置において、交換検知手段と復元手段とを備えている。そして、交換検知手段は、スレーブユニットの各々について、交換されたか否かを判定する。また、復元手段は、交換検知手段によりスレーブユニットの何れかが交換されたと判定された場合に、その交換されたと判定されたスレーブユニット以下、交換後スレーブユニットというの前に当該電子制御装置に接続されていたスレーブユニット以下、交換前スレーブユニットというにおける特定記憶領域の単位記憶領域に記憶されていた保存対象データと同じ保存対象データが記憶されていた仮想メモリ領域における単位記憶領域を特定して、その特定した単位記憶領域に記憶されている保存対象データから、交換後スレーブユニットにおける特定記憶領域の単位記憶領域に書き込むべき保存対象データを復元する。この復元手段を備えることにより、交換前スレーブユニットに保存されていた保存対象データを、交換後スレーブユニットにも継承して保存することができるようになる。尚、Rが3以上であれば、何れか1つのスレーブユニットが交換された場合、そのスレーブユニットに保存されていた保存対象データは、そのスレーブユニット以外に保有されている2つ以上の物理的な単位記憶領域に記憶されていることとなるため、復元手段は、例えば、その2つ以上の単位記憶領域に記憶されている保存対象データに対して多数決の処理を行うことにより、正しい保存対象データをより確実に復元することができる。また、複数のスレーブユニットを交換する際には、1つずつ交換するように作業規則を定めることで、保存対象データを失ってしまうことを防止することができる。次に、請求項5の電子制御装置では、請求項1~4の電子制御装置において、スレーブユニットは、自動車のエンジンの気筒毎に設けられて、対応する気筒に燃料を噴射するインジェクタであることを特徴としている。このように、複数の各スレーブユニットが気筒毎のインジェクタであれば、以下の点で有利である。1複数の各スレーブユニットが、同じハードウェアのものとなるため、電子制御装置の通信回路や通信手順を、各スレーブユニットで共通なものにすることができる。2各スレーブユニットのコネクタも同じものになるため、そのコネクタに接続してメモリからデータを読み出すための装置も、共通化することができる。3各スレーブユニットのメモリ特定記憶領域に記憶されたデータ例えばフリーズフレームデータを、自動車車両とは別の場所で解析したい場合に、インジェクタであれば、通常の制御ユニットよりもコンパクトであるため、持ち運びに便利である。一方、請求項6の制御システムによれば、マスタユニットとして、請求項1~4の電子制御装置を備えているため、請求項1~4の電子制御装置について述べた効果が得られる。また、請求項7の制御システムによれば、スレーブユニットがエンジンの気筒毎のインジェクタであるため、請求項5の電子制御装置について述べた効果が得られる。以下に、本発明が適用された実施形態の制御システムについて説明する。尚、以下に説明する実施形態の制御システムは、車両自動車に搭載されて、該車両のエンジンへの燃料噴射を制御するものである。また、そのエンジンは4気筒エンジンであるものとして説明する。図1Aに示すように、本実施形態の制御システム1は、エンジンの気筒1~4毎に設けられて、対応する気筒に燃料を噴射する4つのインジェクタIJ1~IJ4と、そのインジェクタIJ1~IJ4を制御する電子制御装置以下、ECUという11とからなる。そして、ECU11とインジェクタIJ1~IJ4は、車両内に配設された通信線12を介して通信可能に接続されている。ECU11は、CPU13,ROM14及びRAM15等を有したマイコン16と、データの書き換えが可能な不揮発性のメモリ本実施形態ではEEPROM17と、マイコン16が通信線12を介してインジェクタIJ1~IJ4と通信するための通信回路18と、マイコン16からの制御信号に従って各インジェクタIJ1~IJ4詳しくは、各インジェクタIJ1~IJ4に設けられている後述のアクチュエータを駆動する駆動回路19と、を備えている。一方、各インジェクタIJ1~IJ4は、駆動されることで燃料の噴射口を開くアクチュエータ21と、データの書き換えが可能な不揮発性のメモリ本実施形態ではEEPROM23と、通信処理部25と、通信処理部25がECU11詳しくはマイコン16と通信するための通信回路27と、を備えている。尚、通信処理部25は、例えば、マイコンによって実現することができるが、論理回路等の他のハードウェア回路によって構成しても良い。そして、図示は省略しているが、各インジェクタIJ1~IJ4のアクチュエータ21には、ECU11の駆動回路19によって出力される駆動信号が、インジェクタIJ1~IJ4毎の駆動信号線を介して供給される。尚、アクチュエータ21は、例えば電磁式のソレノイドであるが、ピエゾ素子を使ったピエゾアクチュエータ等でも良い。更に、図示は省略しているが、各インジェクタIJ1~IJ4には、当該インジェクタの燃料取り込み口に設けられて該燃料取り込み口の燃料圧力いわゆるインレット圧を検出する圧力センサも備えられており、その圧力センサから出力される圧力信号検出圧力を示すアナログ信号は、インジェクタIJ1~IJ4毎のセンサ信号線を介してECU11に入力される。また、図1Bに示すように、各インジェクタIJ1~IJ4のEEPROM23における記憶領域は、そのインジェクタIJnnは1~4の何れかに固有のデータ以下、固有データともいうが書き込まれる固有領域29と、当該制御システム1において保存すべき共通のデータ換言すれば、インジェクタIJ1~IJ4に特化しないデータであり、以下、共通データともいうが書き込まれる共通領域30とに分けられている。そして、固有領域29に書き込まれる固有データとしては、そのインジェクタIJnのユニットID、共通領域30の先頭アドレス以下、共通領域先頭アドレスという、共通領域30の容量を示す共通領域データ数、そのインジェクタIJnを制御する上で該インジェクタIJnの機差分を補正するために用いられる機差補正値等があり、それらは、当該インジェクタIJnの製造時に書き込まれる。また例えば、ECU11のマイコン16がインジェクタIJnを制御する過程で求めた学習値を、そのインジェクタIJnのEEPROM23に書き込むのであれば、その学習値も、固有データとして固有領域29に書き込まれる。また、共通領域30に書き込まれる共通データとしては、例えば、車両の識別情報や、フリーズフレームデータ等があり、それらは、ECU11のマイコン16によって書き込まれる。尚、本実施形態において、インジェクタIJnのユニットIDとしては、気筒1に用いられるインジェクタであればユニットID=1、気筒2に用いられるインジェクタであればユニットID=2、といった具合に、使用される気筒の番号が付与されるようになっており、このことは、インジェクタIJnが交換されても変わらない。また、そのユニットIDは、通信相手を示す通信IDとしても利用される。一方、本実施形態において、ECU11のEEPROM17と、各インジェクタIJ1~IJ4のEEPROM23は、1つのアドレス領域アドレスがそれぞれ付与された各領域であり、以下、1アドレス領域というが所定数バイト例えば1バイト又は2バイトの容量となっており、その1アドレス領域毎に、1つのデータが書き込まれるようになっている。このため、EEPROM23の共通領域30では、1アドレス領域が、保存対象データの1つを記憶可能な一定容量の単位記憶領域になっている。そして、上記共通領域データ数は、共通領域30の1アドレス領域数即ちアドレス数を示すと共に、共通領域30に記憶可能なデータの数を示している。そして、ECU11では、マイコン16が、ROM14内のプログラムをCPU13にて実行することにより、燃料噴射制御の処理を含む各種処理を行う。例えば、マイコン16は、エンジン回転数や吸入空気量といったエンジンの運転状態に基づいて、各気筒の燃料噴射開始タイミング及び噴射時間を決定する。また、マイコン16は、各インジェクタIJ1~IJ4から前述した機差補正値を読み出して、RAM15又はEEPROM17に保存しており、上記決定した燃料噴射開始タイミング及び噴射時間から、その機差補正値も用いて、各インジェクタIJ1~IJ4のアクチュエータ21の駆動開始タイミング及び駆動継続時間を算出し、その算出結果に従って、駆動回路19から各インジェクタIJ1~IJ4へ、アクチュエータ21を駆動するための駆動信号を出力させる。更に、マイコン16は、各インジェクタIJ1~IJ4の前述した圧力センサから出力される圧力信号を一定時間毎にサンプリングすることにより、各インジェクタIJ1~IJ4による実際の燃料噴射特性を検出し、その検出結果を用いてアクチュエータ21の駆動開始タイミング及び駆動継続時間を補正する処理も行う。尚、ECU11のマイコン16は、インジェクタIJ1~IJ4からデータ情報を読み出す読み込む場合には、通信相手この場合、読み出し相手のインジェクタIJnのユニットIDと、データの読み出し先アドレスEEPROM23におけるアドレスとを含んだ読み出し要求フレームを、通信線12に送出する。すると、その読み出し要求フレームに含まれているユニットIDを保有するインジェクタIJnの通信処理部25が、その読み出し要求フレームからアドレスを抽出して、当該インジェクタIJnのEEPROM23におけるアドレスのうち、上記抽出したアドレスからデータを読み出して、そのデータをECU11へ送信することとなる。そして、ECU11のマイコン16は、そのインジェクタIJnからのデータを通信回路18を介して取得することとなる。また逆に、ECU11のマイコン16は、インジェクタIJ1~IJ4にデータ情報を書き込む場合には、通信相手この場合、書き込み相手のインジェクタIJnのユニットIDと、書き込むデータと、データの書き込み先アドレスEEPROM23におけるアドレスとを含んだ書き込み要求フレームを、通信線12に送出する。すると、その書き込み要求フレームに含まれているユニットIDを保有するインジェクタIJnの通信処理部25が、その書き込み要求フレームからデータとアドレスとを抽出して、その抽出したデータを、当該インジェクタIJnのEEPROM23のアドレスのうち、上記抽出したアドレスに書き込むこととなる。そして、ECU11のマイコン16は、インジェクタIJ1~IJ4におけるEEPROM23の共通領域30以下、単に、インジェクタIJ1~IJ4の共通領域30ともいうに、前述の共通データを書き込むが、本実施形態の制御システム1では、その共通領域30の扱い方及び共通データの書き込み手法に特徴がある。そこで、まず概要について説明する。図2に示すように、ECU11のマイコン16は、各インジェクタIJ1~IJ4の共通領域30から、連続した仮想メモリ領域仮想メモリ空間31を作成する。具体的には、図2の左側に示すように、各インジェクタIJ1~IJ4の共通領域30を、ただ単にインジェクタ毎のまとまりでつなげて連続的な仮想のメモリ領域とするのではなく、図2の右側に示すごとく、各インジェクタIJ1~IJ4の共通領域30を、1アドレス領域毎に分割すると共に、その各1アドレス領域を、同じインジェクタに保有されるものがN個NはインジェクタIJ1~IJ4の数であり、本実施形態では4毎に現れることとなる順番にして、仮想メモリ領域31の先頭からの各1アドレス領域として割り当てることにより、その仮想メモリ領域31を作成する。本実施形態では、インジェクタIJ1~IJ4の共通領域30における1アドレス領域以下、単に、インジェクタIJ1~IJ4の1アドレス領域ともいうの各々を、インジェクタIJ1が保有するもの→インジェクタIJ2が保有するもの→インジェクタIJ3が保有するもの→インジェクタIJ4が保有するものの順番以下、この順番をインジェクタ順ともいうに繰り返し並べて配置することで、仮想メモリ領域31を形成している。尚、図2においては、右上から左下方向の斜め線によるハッチングを付した1つの四角枠が、インジェクタIJ1の1アドレス領域であり、網目線によるハッチングを付した1つの四角枠が、インジェクタIJ2の1アドレス領域であり、左上から右下方向の斜め線によるハッチングを付した1つの四角枠が、インジェクタIJ3の1アドレス領域であり、縦線によるハッチングを付した1つの四角枠が、インジェクタIJ4の1アドレス領域である。また、ECU11のマイコン16は、各インジェクタIJ1~IJ4の共通領域30に容量差があることによって、各インジェクタIJ1~IJ4の1アドレス領域を前記順番に従い割り当てることができない仮想メモリ領域31の1アドレス領域に対しては、当該ECU11のEEPROM17において仮想メモリ領域31のために用意されている所定領域以下、ECUメモリという33の1アドレス領域を割り当てる。そして、そのECUメモリ33の何れかの1アドレス領域を仮想メモリ領域31に割り当てる際には、空きアドレス即ち、その時点で仮想メモリ領域31に割り当てていないアドレスのうち、当該ECUメモリ33の先頭アドレスに近いものを優先して用いるようになっている。尚、図2においては、ハッチングを付していない白抜きの四角枠が、ECUメモリ33の1アドレス領域である。そして、図2の例では、インジェクタIJ1の共通領域データ数が3であり、インジェクタIJ2の共通領域データ数が7であり、インジェクタIJ3の共通領域データ数が5であり、インジェクタIJ4の共通領域データ数が2である。このため、図2の例では、インジェクタIJ1~IJ4の1アドレス領域の各々を前述のインジェクタ順に繰り返し配置した場合に、まず3サイクル目m=3の部分参照で、インジェクタIJ4の1アドレス領域が足らなくなる。よって、仮想メモリ領域31において、その3サイクル目における4番目の1アドレス領域先頭から12番目の1アドレス領域であり、本来ならインジェクタIJ4の1アドレス領域が割り当てられるべき仮想の1アドレス領域:e=11の部分参照には、ECUメモリ33の先頭の1アドレス領域が割り当てられることとなる。また、次の4サイクル目m=4の部分参照では、インジェクタIJ4の1アドレス領域だけでなく、インジェクタIJ1の1アドレス領域も足らなくなる。よって、仮想メモリ領域31において、その4サイクル目における1番目の1アドレス領域先頭から13番目の1アドレス領域であり、本来ならインジェクタIJ1の1アドレス領域が割り当てられるべき仮想の1アドレス領域:e=12の部分参照には、ECUメモリ33の先頭から2番目の1アドレス領域が割り当てられ、同4サイクル目における4番目の1アドレス領域先頭から16番目の1アドレス領域であり、本来ならインジェクタIJ4の1アドレス領域が割り当てられるべき仮想の1アドレス領域:e=15の部分参照には、ECUメモリ33の先頭から3番目の1アドレス領域が割り当てられることとなる。同様に、次の5サイクル目m=5の部分参照でも、インジェクタIJ1,IJ4の1アドレス領域が足らなくなる。よって、仮想メモリ領域31において、その5サイクル目における1番目の1アドレス領域先頭から17番目の1アドレス領域:e=16の部分参照には、ECUメモリ33の先頭から4番目の1アドレス領域が割り当てられ、同5サイクル目における4番目の1アドレス領域先頭から20番目の1アドレス領域:e=19の部分参照には、ECUメモリ33の先頭から5番目の1アドレス領域が割り当てられることとなる。更に、次の6サイクル目m=6の部分参照では、インジェクタIJ1,IJ4の1アドレス領域だけでなく、インジェクタIJ3の1アドレス領域も足らなくなる。よって、仮想メモリ領域31において、その6サイクル目における1番目の1アドレス領域先頭から21番目の1アドレス領域:m=20の部分参照には、ECUメモリ33の先頭から6番目の1アドレス領域が割り当てられ、同6サイクル目における3番目の1アドレス領域先頭から23番目の1アドレス領域であり、本来ならインジェクタIJ3の1アドレス領域が割り当てられるべき仮想の1アドレス領域:e=22の部分参照には、ECUメモリ33の先頭から7番目の1アドレス領域が割り当てられ、同6サイクル目における4番目の1アドレス領域先頭から24番目の1アドレス領域:m=23の部分参照には、ECUメモリ33の先頭から8番目の1アドレス領域が割り当てられることとなる。つまり、6サイクル目における2番目以外の各1アドレス領域には、ECUメモリ33の1アドレス領域がそれぞれ割り当てられることとなる。そして、次の7サイクル目m=7の部分参照でも、上記6サイクル目と同様に、インジェクタIJ1,IJ3,IJ4の1アドレス領域が足らなくなる。このため、仮想メモリ領域31において、その7サイクル目における2番目以外の各1アドレス領域にも、ECUメモリ33の1アドレス領域がそれぞれ割り当てられることとなる。そして、インジェクタIJ1~IJ4の共通領域30のうち、アドレス領域数が最大のものは7であるため、この7サイクル目で仮想メモリ領域31の作成は終了する。ここで、本実施形態において、ECU11のマイコン16は、図2の右側に示すように、作成した仮想メモリ領域31の先頭から、連続する3個毎の1アドレス領域をグループとし、その各グループの1アドレス領域の各々に、同じ共通データを書き込むようになっている。このため、仮想メモリ領域31に対しては、同一のデータが3個ずつ書き込まれることとなる、そして、以下では、仮想メモリ領域31に書き込む同一データの数を冗長データ数という。尚、仮想メモリ領域31の何れかの1アドレス領域にデータを書き込むということは、実際には、その仮想の1アドレス領域に割り当てられている物理的な1アドレス領域即ち、インジェクタIJ1~IJ4の共通領域30又はECUメモリ33における何れかの1アドレス領域にデータを書き込むということである。このため、図2の例では、仮想メモリ領域31として、最大28個の1アドレス領域を設定することができるが、1アドレス領域の数は冗長データ数=3の倍数あれば良いため、先頭から28個目の1アドレス領域は不要となる。よって、仮想メモリ領域31としては、7サイクル目における3番目であって、先頭から27番目の1アドレス領域までを設定している換言すれば、その27番目の仮想アドレスまで、物理アドレスをマッピングしている。つまり、本実施形態では、インジェクタIJ1~IJ4の共通領域30のアドレス領域数共通領域データ数のうちで、最大のものをMmaxとすると、仮想メモリ領域31の1アドレス領域数アドレス数としては、4×Mmax以下で且つ冗長データ数=3の倍数のうちの最大値だけ設定している。次に、ECU11のマイコン16が、共通データをインジェクタIJ1~IJ4側に保存するために行う処理の内容について、フローチャートを用いて説明する。まず図3は、インジェクタIJ1~IJ4の何れかが交換されたことを検出するための交換判定処理を表すフローチャートである。尚、この交換判定処理は、例えば、車両のイグニッションオンに伴いECU11に動作用電源が投入されてマイコン16が起動すると実行される。また、本実施形態においては、インジェクタIJ1~IJ4のうちの2個以上が同時に交換されることはないことを想定している。つまり、インジェクタIJ1~IJ4の交換は、1つずつ行うように作業規則が定められている。図3に示すように、マイコン16は、交換判定処理を開始すると、まずS110にて、各インジェクタIJ1~IJ4から交換判定用情報を読み出して取得する。この交換判定用情報は、インジェクタIJ1~IJ4が交換されたか否かを判定するための情報であり、例えばEEPROM23の固有領域29における所定のアドレスに記憶されている。そして、その交換判定用情報は、インジェクタIJ1~IJ4の製造時点インジェクタIJ1~IJ4がECU11に接続される前の時点では、所定のデフォルト値例えば0になっており、当該マイコン16による後述のS140又はS150により、デフォルト値とは異なる所定値以下、チェック済値というに書き換えられる。そして、次のS120では、S110で取得した交換判定用情報がチェック済値ではないインジェクタがあるか否かを判定し、そのインジェクタがあれば、S130に進む。S130では、全てのインジェクタIJ1~IJ4の交換判定用情報がチェック済値ではないか否かを判定し、全てのインジェクタIJ1~IJ4の交換判定用情報がチェック済値でなければ、ECU11に4つのインジェクタIJ1~IJ4が接続された後の最初の起動時であり、4つのインジェクタIJ1~IJ4は初期状態であると判断して、S140に進む。そして、S140では、各インジェクタIJ1~IJ4の状態情報S1~S4を、初期を示す1に設定すると共に、各インジェクタIJ1~IJ4のEEPROM23における交換判定用情報の格納先アドレスにチェック済値を書き込む。この書き込みにより、各インジェクタIJ1~IJ4側の交換判定用情報は、デフォルト値からチェック済値に書き換えられることとなる。そして、その後、当該交換判定処理を終了する。また、上記S130にて否定判定NOと判定した場合、即ち、全てのインジェクタではなく、何れか1つのインジェクタの交換判定用情報がチェック済値ではない場合には、そのインジェクタが交換されたと判断して、S150に移行する。S150では、交換判定用情報がチェック済値ではなかったインジェクタIJxxは1~4の何れかの状態情報Sxを、交換を示す2に設定すると共に、そのインジェクタIJxのEEPROM23における交換判定用情報の格納先アドレスにチェック済値を書き込む。この書き込みにより、交換されたインジェクタIJx側の交換判定用情報は、デフォルト値からチェック済値に書き換えられることとなる。そして、その後、当該交換判定処理を終了する。一方、上記S120にて、交換判定用情報がチェック済値ではないインジェクタがない即ち、全てのインジェクタの交換判定用情報がチェック済値であると判定した場合には、インジェクタIJ1~IJ4は交換されていないと判断して、S160に移行する。そして、S160では、各インジェクタIJ1~IJ4の状態情報S1~S4を、非交換を示す0に設定し、その後、当該交換判定処理を終了する。尚、インジェクタのEEPROM23に交換判定用情報としてのチェック済値を書き込む処理デフォルト値からチェック済値に書き換える処理は、S140,S150で行わずに、後述する図4のS230の処理仮想メモリマッピング処理を実行した直後に行うようにしても良い。そのようにすれば、例えば、図3のS140又はS150の処理が終了してから、図4のS230の処理が完了するまでの間に、マイコン16が何等かの理由で再起動されたとしても、交換判定用情報はチェック済値に書き換えられていないため、図3におけるS120やS130で再びYESと判定されて、S140又はS150により状態情報S1~S4を再び正しく設定することができ、延いては、後述する図4のS230の処理を実行し損ねてしまうことを防止することができる。また、S120とS130では、交換判定用情報がチェック済値ではないということに代えて、交換判定用情報がデフォルト値であるということを判定しても良い。また、チェック済値は、インジェクタIJ1~IJ4毎に異なった値にしても良い。また、インジェクタIJ1~IJ4は、ECU11との接続が解除されるとつまり、車両から取り外されると、記憶している交換判定用情報がデフォルト値へと自動的に戻るように構成されていても良い。例えば、インジェクタIJ1~IJ4において、交換判定用情報を、ECU11から常時電源が供給されるバックアップRAMに記憶するように構成すれば、インジェクタIJ1~IJ4の取り外しに伴って、その交換判定用情報が自動的にリセットされるようにすることができる。次に、図4は、仮想メモリ領域31を作成するためのメモリ管理処理を表すフローチャートである。尚、このメモリ管理処理は、図3の交換判定処理に続いて実行される。図4に示すように、マイコン16は、メモリ管理処理を開始すると、まずS210にて、インジェクタIJ1~IJ4の状態情報S1~S4を読み込む。次にS220にて、状態情報S1~S4のうちで1又は2のものがあるか否かを判定し、1又は2の状態情報がなければ、そのまま当該メモリ管理処理を終了する。一方、状態情報S1~S4のうちで1又は2のものがあればS220:YES、S230に進み、図5の仮想メモリマッピング処理を行った後、当該メモリ管理処理を終了する。ここで、図5に示すように、仮想メモリマッピング処理では、まずS310にて、各インジェクタIJ1~IJ4から前述の共通領域データ数M1~M4を読み出して取得する。また、このときに、各インジェクタIJ1~IJ4から共通領域先頭アドレスAI1~AI4も読み出して取得しておく。そして、次のS320にて、各インジェクタIJ1~IJ4の共通領域データ数M1~M4のうちで最大のものを、Mmaxとして記憶する。次にS330にて、仮想メモリアドレスポインタeと保存データ数カウンタdとを、0に初期化する。尚、仮想メモリアドレスポインタeは、図9に示すように、仮想メモリ領域31のアドレスである仮想メモリアドレスを示すポインタであり、仮想メモリ領域31の先頭アドレスEを0番目にした場合の何番目の仮想メモリアドレスであるかを示すものである。また、保存データ数カウンタdは、作成する仮想メモリ領域31に保存可能なデータ数をカウントするカウンタである。次にS340にて、処理回数をカウントするためのカウンタmを1に初期化し、その後、一点鎖線枠内に示すS350~S450からなる処理を行った後、S460にて、カウンタmをインクリメントする。そして、次のS470にて、カウンタmがMmax以下であるか否かを判定し、カウンタmがMmax以下であれば、S340の次のS350へ戻るが、カウンタmがMmax以下でなければMmaxを超えたなら、当該仮想メモリマッピングを終了する。このため、一点鎖線枠内に示すS350~S450からなる処理は、Mmaxと同じ回数だけ繰り返される。また、その一点鎖線枠内の処理において、最初のS350では、処理回数をカウントするためと、処理対象のインジェクタを示すために設けられているカウンタuを1にし、その後、点線枠内に示すS360~S430からなる処理を行った後、S440にて、カウンタuをインクリメントする。そして、次のS450にて、カウンタuがインジェクタIJ1~IJ4の個数であるN=4以下であるか否かを判定し、カウンタuがN以下であれば、S350の次のS360へ戻るが、カウンタuがN以下でなければNを超えたなら、S460に進む。このため、図2に示すように、カウンタuは1からN=4の間で1ずつ増加してラップラウンドし、そのカウンタuが1~Nの何れかになる各回毎に、点線枠内に示すS360~S430からなる処理が行われる。そして更に、カウンタuが1からNまでの一周をするサイクル毎に、カウンタmが1ずつ増加することとなり、該カウンタmがMmaxを超えた時点で、仮想メモリマッピング処理が終了する。そして、このように繰り返される点線枠内の処理において、最初のS360では、仮想メモリアドレスポインタeを冗長データ数R本実施形態ではR=3で割った余りが0であるか否かを判定する。尚、仮想メモリアドレスポインタeは、点線枠内の処理のうちの後述するS430にてインクリメントされる。このため、仮想メモリアドレスポインタeは、0を初期値として、点線枠内の処理が行われる毎にカウンタuが変化する毎にインクリメントされる図2参照。このS360にて、e/Rの余りが0でないと判定した場合には、そのままS380に進むが、e/Rの余りが0であると判定した場合には、S370に進んで、保存データ数カウンタdをインクリメントした後、S380に進む。このため、図2に示すように、保存データ数カウンタdは、仮想メモリアドレスポインタeが冗長データ数R=3の倍数0を含むになる毎に、インクリメントされる。そして、S380では、マッピング終了条件が成立したか否かを判定する。マッピング終了条件とは、仮想メモリアドレスポインタeが示す仮想メモリアドレスに対して物理アドレスをマッピングする対応付ける、割り当てるための後述するS400又はS410の処理を行わなくても良い条件であり、物理アドレスとのマッピングが完了した仮想メモリアドレスの数が、N×Mmax以下で且つRの倍数のうちの最大値に達したという条件である。そして、S380では、具体的な判定式としては、d×R>N×Mmaxであるか否かを判定している。このS380にて、マッピング終了条件が成立したと肯定判定YESと判定した場合には、そのまま点線枠内の処理を抜けてS440に移行する。この場合、以後のS380でも肯定判定することとなり、実質的な処理としては、カウンタuのカウントアップS440と、カウンタmのカウントアップS460だけが行われ、カウンタmがMmaxを超えた時点で、当該仮想メモリマッピング処理が終了する。一方、上記S380にて、マッピング終了条件が成立していないと判定した場合には、S390に進む。S390では、カウンタuの現在値に対応する処理対象のインジェクタIJuuは、カウンタuの現在値であり1~4の何れかの状態情報Suが1であるか否かを判定する。そして、状態情報Suが1であればS390:YES、S400に進み、インジェクタIJuについて、後述する図6のオールマッピング処理を行った後、S430に進んで、仮想メモリアドレスポインタeをインクリメントする。そして、その後、点線枠内の処理を抜けてS440に移行する。尚、状態情報S1~S4は、1に設定されるのであれば、図3のS140にて、全ての状態情報S1~S4が1に設定されるため、S400のオールマッピング処理は、カウンタuが1~4の全ての場合に行われる換言すれば、全てのインジェクタIJ1~IJ4について行われることとなる。また、上記S390にて、状態情報Suが1ではないと判定した場合には、S410に移行して、状態情報Suが2であるか否かを判定する。そして、状態情報Suが2でなければS410:NO、そのまま上記S430に移行するが、状態情報Suが2であればS410:YES、S430に進み、インジェクタIJuについて、後述する図7の差分マッピング処理を行った後、上記S430に進む。尚、状態情報S1~S4は、2に設定されるのであれば、図3のS150にて、何れか1つだけが2に設定されるため、S420の差分マッピング処理は、2に設定されている状態情報Suに対応するインジェクタIJuであって、交換されたインジェクタIJuについて行われることとなる。次に、図5のS400で行われるオールマッピング処理について説明する。図6に示すように、オールマッピング処理では、まずS510にて、カウンタuの現在値に対応する処理対象のインジェクタIJuのメモリマッピング即ち、インジェクタIJuの共通領域30の各アドレスを仮想メモリアドレスの何れかに割り当てることが未完了であるか否かを判定する。具体的には、インジェクタIJuの共通領域データ数Muと、カウンタmの現在値とを比較して、m≦Muであるか否かを判定する。そして、m≦Muであれば、インジェクタIJuのメモリマッピングが未完了であると判断して、S520に進み、仮想メモリアドレスポインタeが示す仮想メモリアドレスEeに対応する割り当てる物理アドレスとして、インジェクタIJuのユニットIDと、インジェクタIJuの共通領域先頭アドレスAIuにm-1を加算したアドレスとからなる情報を記憶する。そして、その後、当該オールマッピング処理を終了する。また、上記S510にて、m≦Muではないm>Muと判定した場合には、インジェクタIJuのメモリマッピングが完了しているため即ち、仮想メモリアドレスに割り当てていないインジェクタIJuの共通領域30のアドレスはもう無いため、S530に移行する。そのS530では、仮想メモリアドレスポインタeが示す仮想メモリアドレスEeに対応する割り当てる物理アドレスとして、当該ECU11のユニットID本実施形態では0と、ECUメモリ33の空きアドレス仮想メモリアドレスに割り当てていないアドレスのうちの最小のアドレスとからなる情報を記憶する。そして、その後、当該オールマッピング処理を終了する。つまり、本実施形態において、仮想メモリアドレスの各々に割り当てる物理アドレスは、物理的なメモリ実際に存在するメモリであり、インジェクタIJ1~IJ4のEEPROM23又はECU11のEEPROM17におけるアドレス以下、物理メモリアドレスというと、その物理的なメモリが搭載されているユニットインジェクタIJ1~IJ4又はECU11を示すユニットIDとの、2つの情報からなっている図9参照。尚、上記S520,S530の処理で記憶される仮想メモリアドレスと物理アドレスとの対応関係情報であるマッピング情報は、EEPROM17における特定の領域に保存するようになっている。そして、このことは、後述する差分マッピング処理によって設定し直されるマッピング情報についても同様である。そして、上記のオールマッピング処理が図5のS400で行われることにより、ECU11に4つのインジェクタIJ1~IJ4が接続された後の、該ECU11の最初の起動時一般には、ECU11の車両への組み付け直後の起動時には、仮想メモリ領域31が図2の右側に示したように作成されることとなる。例えば、図9は、図2の例で作成される仮想メモリ領域31について、具体的なアドレス値を用いて、仮想メモリアドレスと物理アドレスとのマッピング情報を例示した図である。そして、この図9の例においては、仮想メモリ領域31の先頭アドレスEが0x0000で、インジェクタIJ1~IJ4の共通領域先頭アドレスAI1~AI4は全て同じで0x1000となっている。尚、0xは、それ以降の英数字が16進数表示のものであることを示している。その図9に示すように、カウンタuが1から4の間でラップラウンドするサイクルのうち、カウンタmが1の場合である1サイクル目では、カウンタuが1~4の各場合に、オールマッピング処理図6におけるS520の処理が行われることにより、仮想メモリ領域31の先頭から4番目までの4つのアドレス0x0000~0x0003の各々に、各インジェクタIJ1~IJ4の共通領域先頭アドレスAI1~AI4=0x1000がマッピングされる。具体的には、仮想メモリアドレス0x0000に対しては、インジェクタIJ1のユニットID=1と、インジェクタIJ1の共通領域先頭アドレス0x1000とが、物理アドレスとしてマッピングされ、仮想メモリアドレス0x0001に対しては、インジェクタIJ2のユニットID=2と、インジェクタIJ2の共通領域先頭アドレス0x1000とが、物理アドレスとしてマッピングされ、仮想メモリアドレス0x0002に対しては、インジェクタIJ3のユニットID=3と、インジェクタIJ3の共通領域先頭アドレス0x1000とが、物理アドレスとしてマッピングされ、仮想メモリアドレス0x0003に対しては、インジェクタIJ4のユニットID=4と、インジェクタIJ4の共通領域先頭アドレス0x1000とが、物理アドレスとしてマッピングされる。そして、カウンタmが2の場合である2サイクル目では、カウンタuが1~4の各場合に、オールマッピング処理図6におけるS520処理が行われることにより、仮想メモリ領域31の5番目から8番目までの4つのアドレス0x0004~0x0007の各々に、各インジェクタIJ1~IJ4の共通領域30の2番目のアドレスAI11~AI41=0x1001がマッピングされる。具体的には、仮想メモリアドレス0x0004に対しては、インジェクタIJ1のユニットID=1と、インジェクタIJ1の共通領域30の2番目のアドレス0x1001とが、物理アドレスとしてマッピングされ、仮想メモリアドレス0x0005に対しては、インジェクタIJ2のユニットID=2と、インジェクタIJ2の共通領域30の2番目のアドレス0x1001とが、物理アドレスとしてマッピングされ、仮想メモリアドレス0x0006に対しては、インジェクタIJ3のユニットID=3と、インジェクタIJ3の共通領域30の2番目のアドレス0x1001とが、物理アドレスとしてマッピングされ、仮想メモリアドレス0x0007に対しては、インジェクタIJ4のユニットID=4と、インジェクタIJ4の共通領域30の2番目のアドレス0x1001とが、物理アドレスとしてマッピングされる。また、この例において、インジェクタIJ4の共通領域データ数M4は2であるため、この2サイクル目で、インジェクタIJ4のメモリマッピングが完了する。よって、カウンタmが3の場合である3サイクル目では、カウンタuが1~3の各場合には、オールマッピング処理図6におけるS520の処理が行われて、仮想メモリ領域31の9番目から11番目までの3つのアドレス0x0008~0x000Aの各々に、各インジェクタIJ1~IJ3の共通領域30の3番目のアドレスAI12~AI32=0x1002がマッピングされるが、カウンタuが4の場合には、オールマッピング処理図6におけるS510でNOと判定されてS530の処理が行われることとなる。このため、仮想メモリ領域31の12番目のアドレス0x000Bには、ECUメモリ33の先頭アドレスこの例では0x1F00がマッピングされることとなる。具体的には、仮想メモリアドレス0x000Bに対しては、当該ECU11のユニットID=0と、ECUメモリ33の先頭アドレス0x1F00とが、物理アドレスとしてマッピングされる。また、この例において、インジェクタIJ1の共通領域データ数M1は3であるため、この3サイクル目で、インジェクタIJ1のメモリマッピングが完了する。よって、カウンタmが4の場合である4サイクル目では、カウンタuが2,3の各場合には、オールマッピング処理図6におけるS520の処理が行われて、仮想メモリ領域31の14番目と15番目のアドレス0x000D,0x000Eの各々に、各インジェクタIJ2,IJ3の共通領域30の4番目のアドレスAI23,AI33=0x1003がマッピングされるが、カウンタuが1,4の各場合には、オールマッピング処理図6におけるS510でNOと判定されてS530の処理が行われることとなる。このため、仮想メモリ領域31の13番目と16番目のアドレス0x000C,0x000Fの各々には、ECUメモリ33の2番目と3番目の各アドレスこの例では0x1F01,0x1F02がマッピングされることとなる。具体的には、仮想メモリアドレス0x000Cに対しては、当該ECU11のユニットID=0と、ECUメモリ33の2番目のアドレス0x1F01とが、物理アドレスとしてマッピングされ、仮想メモリアドレス0x000Fに対しては、当該ECU11のユニットID=0と、ECUメモリ33の3番目のアドレス0x1F02とが、物理アドレスとしてマッピングされる。そして、図9では図示を省略しているが、物理アドレスとのマッピングが完了した仮想メモリアドレスの数が、N×Mmax以下で且つRの倍数のうちの最大値図2の例では27に達すると、図5のS380でYESと判定されて、仮想メモリ領域31の作成が完了することとなる。一方、ECU11のマイコン16は、仮想メモリ領域31の作成が完了している状態で、図8に示す書込処理を、例えば一定時間毎に実行する。そして、図8に示すように、マイコン16は、書込処理を開始すると、まずS710にて、インジェクタIJ1~IJ4側に保存すべき共通データであって、未保存の共通データがあるか否かを判定する。そして、未保存の共通データがなければ、そのまま当該書込処理を終了するが、未保存の共通データがあれば、S720に進む。例えば、保存すべき共通データがフリーズフレームデータであれば、故障を検出したことによって新たなフリーズフレームデータが生じた場合に、S720へ進むこととなる。S720では、該当のデータ未保存の共通データを、仮想メモリ領域31において連続するR=3個の各アドレスに書き込み、その後、当該書込処理を終了する。尚、S720では、仮想メモリ領域31におけるデータ未書込のアドレスのうち、先頭に近いものを優先的に選択してデータを書き込む。このため、図2の右側に示したように、仮想メモリ領域31には、先頭から3個ずつのアドレスの各グループに、同じデータが書き込まれる。よって、図2の例では、仮想メモリ領域31に、最大で9個9種類のデータが書き込まれることとなる。また、仮想メモリ領域31のアドレス仮想メモリアドレスへのデータ書き込みは、その仮想メモリアドレスに割り当てられている物理アドレスへのデータ書き込みを行うということである。このため、書き込み対象の仮想メモリアドレスに割り当てられている物理アドレスのうち、ユニットIDの方をIDwとし、物理メモリアドレスの方をADwとすると、IDwが1~4の何れかであれば、ユニットIDとしてIDwを含み、書き込み先アドレスとしてADwを含む前述の書き込み要求フレームを、通信線12に送出することにより、ユニットIDとしてIDwを持つインジェクタにおけるEEPROM23共通領域30のアドレスのうちのADwに、データを書き込むことととなる。また、IDwが0ならば、当該ECU11のEEPROM17特にECUメモリ33のアドレスのうちのADwに、通信を用いることなくデータを書き込むことととなる。一方、図8の書込処理では行わないが、仮想メモリ領域31のアドレス仮想メモリアドレスからのデータ読み出しは、その仮想メモリアドレスに割り当てられている物理アドレスからのデータ読み出しを行うということである。このため、読み出し対象の仮想メモリアドレスに割り当てられている物理アドレスのうち、ユニットIDの方をIDrとし、物理メモリアドレスの方をADrとすると、IDrが1~4の何れかであれば、ユニットIDとしてIDrを含み、読み出し先アドレスとしてADrを含む前述の読み出し要求フレームを、通信線12に送出することにより、ユニットIDとしてIDrを持つインジェクタにおけるEEPROM23共通領域30のアドレスのうちのADrから、データを読み出すことととなる。また、IDrが0ならば、当該ECU11のEEPROM17特にECUメモリ33のアドレスのうちのADrから、通信を用いることなくデータを読み出すことととなる。次に、図5に関する説明に戻り、その図5のS420で行われる差分マッピング処理について説明する。図7に示すように、差分マッピング処理では、まずS610にて、カウンタuの現在値に対応する処理対象のインジェクタこの場合、交換されたインジェクタIJuの共通領域データ数Muが、そのインジェクタIJuの交換前からどれだけ変わったかを示すメモリ容量差分Mduを算出する。具体的には、今回の仮想メモリマッピング処理のS310で取得したインジェクタIJnの共通領域データ数Muから、前回に実行した仮想メモリマッピング処理のS310で取得したインジェクタIJuの共通領域データ数即ち、交換前のインジェクタIJuの共通領域データ数Mouを引いた値を、メモリ容量差分Mduとして算出する。次にS620にて、インジェクタIJuの共通領域先頭アドレスAIuが変わったか否かを判定する。具体的には、今回の仮想メモリマッピング処理のS310で取得したインジェクタIJnの共通領域先頭アドレスAIuが、前回に実行した仮想メモリマッピング処理のS310で取得したインジェクタIJuの共通領域先頭アドレス即ち、交換前のインジェクタIJuの共通領域先頭アドレスAIouから、変わっているか否かを判定する。そして、インジェクタIJuの共通領域先頭アドレスAIuが変わっていないと判定した場合には、S630に進む。S630では、インジェクタIJuの共通領域データ数Muに増減があったか否かを判定する。具体的には、S610で算出したメモリ容量差分Mduが0でないか否かを判定する。そして、Mdu=0であれば、共通領域データ数Muに増減はなかったと判断して、そのままS700に移行する。尚、この場合には、インジェクタIJuの共通領域先頭アドレスAIuと共通領域データ数Muとが両方共に変わっていないため、仮想メモリ領域31の物理アドレスとのマッピング情報を変更することなく、S700へ移行することとなる。これに対し、S630にて、共通領域データ数Muに増減があったMdu≠0と判定した場合には、S640に進む。そして、S640では、Mdu<0であるか否かを判定し、Mdu<0でなければ、共通領域データ数Muが増加したと判断して、S650に進む。S650では、カウンタmの現在値を読み込んで、Mou<m≦Muであるか否かを判定する。そして、Mou<m≦Muでなければ、そのままS700に移行するが、Mou<m≦Muであれば、S660に進み、図6のS520と同じ処理を行う。即ち、仮想メモリアドレスポインタeが示す仮想メモリアドレスEeに対応する物理アドレスとして、インジェクタIJuのユニットIDと、インジェクタIJuの共通領域先頭アドレスAIuにm-1を加算したアドレスとからなる情報を記憶する。そして、その後、S700に進む。つまり、インジェクタIJuの共通領域先頭アドレスAIuは変わらず、共通領域データ数共通領域30のアドレス数Muが増加した場合には、それまで本来ならインジェクタIJuの共通領域30のアドレスが割り当てられるべきなのにECUメモリ33のアドレスを割り当てていた仮想メモリアドレスに対して、今回増加したインジェクタIJuの共通領域30のアドレスを割り当てるようにしている。例えば、図9の例において、インジェクタIJ4が交換されて、該インジェクタIJ4の共通領域先頭アドレスAI4は変わらず、共通領域データ数M4が2から4に増加したとすると、m=3、u=4の場合と、m=4、u=4の場合とに、S660の処理が行われる。その結果、それまでECUメモリ33の先頭アドレス0x1F00と3番目のアドレス0x1F02とが割り当てられていた仮想メモリアドレス0x000B,0x000Fの各々に対して、インジェクタIJ4の共通領域30の3番目のアドレスAI42=0x1002と4番目のアドレスAI43=0x1003とが割り当てられることとなる。また、上記S640にて、Mdu<0であると判定した場合には、共通領域データ数Muが減少したと判断して、S670に移行する。S670では、カウンタmの現在値を読み込んで、Mu<m≦Mouであるか否かを判定する。そして、Mu<m≦Mouでなければ、そのままS700に移行するが、Mu<m≦Mouであれば、S680に進み、図6のS530と同じ処理を行う。即ち、仮想メモリアドレスポインタeが示す仮想メモリアドレスEeに対応する物理アドレスの情報として、当該ECU11のユニットIDと、ECUメモリ33の空きアドレスのうちの最小のアドレスとからなる情報を記憶する。そして、その後、S700に進む。つまり、インジェクタIJuの共通領域先頭アドレスAIuは変わらず、共通領域データ数共通領域30のアドレス数Muが減少した場合には、その減少により無くなってしまったインジェクタIJuの共通領域30のアドレスを割り当てていた仮想メモリアドレスに対して、ECUメモリ33の空きアドレスを割り当てるようにしている。例えば、図9の例において、インジェクタIJ1が交換されて、該インジェクタIJ1の共通領域先頭アドレスAI4は変わらず、共通領域データ数M1が3から2に減少したとすると、m=3、u=1の場合に、S680の処理が行われる。その結果、それまでインジェクタIJ1の共通領域30の3番目のアドレスが割り当てられていた仮想メモリアドレス0x0008に対して、ECUメモリ33のアドレス0x1F0Aが割り当てられることとなる。尚、この例においては、ECUメモリ33の0x1F00~0x1F09の10個のアドレスが既に使用されているため図2参照、空きアドレスのうちで最小の0x1F0Aが、仮想メモリアドレス0x0008に割り当てられる。一方、上記S620にて、インジェクタIJuの共通領域先頭アドレスAIuが変わったと判定した場合には、S690に移行する。そして、S690では、図6のS510と同様に、m≦Muであるか否かを判定し、m≦Muであれば、インジェクタIJuのメモリマッピングが未完了であると判断して、S693に進み、図6のS520と同じ処理を行う。そして、その後、S700に進む。また、上記S690にて、m≦Muではないm>Muと判定した場合には、S695に移行する。尚、この時点において、交換後のインジェクタIJuの共通領域30の各アドレスであって、Mu個の各アドレスは、S693の処理により、仮想メモリアドレスのうち、先頭からu4×i番目但しi=0,1,...,Mu-1の各仮想メモリアドレスにそれぞれ割り当てられている。そして、S695では、Mdu<0であるか否かを判定し、Mdu<0でなければ、共通領域データ数Muが同じか増加したということであり、これ以上は仮想メモリ領域31の物理アドレスとのマッピング情報を変更する必要がないと判断して、そのままS700に進む。また、上記S695にて、Mdu<0であると判定した場合には、共通領域データ数Muが減少したと判断して、前述したS670に移行する。このため、Mu<m≦MouでなければS670:NO、そのままS700に移行することとなり、また、Mu<m≦MouであればS670:YES、S680にて、図6のS530と同じ処理を行った後、S700に進むこととなる。つまり、インジェクタIJuの共通領域先頭アドレスAIuが変わった場合には、共通領域データ数Muの増減にかかわらず、そのインジェクタIJnの共通領域30の各アドレスを物理アドレスとして割り当てるべきMu個の各仮想メモリアドレス上記u4×i番目i=0,1,...,Mu-1の各仮想メモリアドレスについて、S693の処理を行うことにより、該当する物理アドレスの再設定をしている。そして、その再設定が終了したらS690:NO、共通領域データ数Muの増減を判断して、共通領域データ数Muが同じか増加しているのであればS695:NO、そのままS700へ進んで、それ以上は仮想メモリ領域31の物理アドレスとのマッピング情報を変更しない。このため、インジェクタIJuの交換前からECUメモリ33のアドレスが割り当てられていた仮想メモリアドレスに関しては、物理アドレスとのマッピング情報を何ら変更しない。また、共通領域データ数Muが減少していればS695:YES、その減少により無くなってしまったインジェクタIJuの共通領域30のアドレスを割り当てていた仮想メモリアドレスに対して、S680の処理により、ECUメモリ33の空きアドレスを割り当てるようにしている。そして、共通領域データ数Muが減少した場合でも、S670でNOと判定したなら、S700へ進んで、それ以上は仮想メモリ領域31の物理アドレスとのマッピング情報を変更しない。よって、この場合も、インジェクタIJuの交換前からECUメモリ33のアドレスが割り当てられていた仮想メモリアドレスに関しては、物理アドレスとのマッピング情報を何ら変更しない。そして、何れかのインジェクタIJuが交換された場合には、上記S610~S695の処理により、仮想メモリ領域31の物理アドレスとのマッピング情報を、必要最小限の範囲で変更している。一方、差分マッピング処理において、全ての処理経路から移行することとなる最後のS700では、データ復帰処理を行い、その後、当該差分マッピング処理を終了する。ここで、S700のデータ復帰処理は、交換前のインジェクタに保存されていた共通データを、交換後のインジェクタIJuに継承して保存するための処理であり、下記の[第1処理]~[第3処理]からなる。[第1処理]現在の仮想メモリアドレスポインタeここでは、そのeの現在値をe0と記載するが示す仮想メモリアドレスEe0と同じデータが記憶される他のR-1個本実施形態ではR=3であるため2個の仮想メモリアドレスを特定する。[第2処理]第1処理によって特定したR-1個の仮想メモリアドレスに記憶されているデータ詳しくは、その仮想メモリアドレスに割り当てられている物理アドレスに記憶されているデータから、仮想メモリアドレスEe0に書き込むべきデータを復元する。[第3処理]第2処理によって復元したデータを、仮想メモリアドレスEe0に書き込む。更に具体的に説明すると、まず第1処理では、e0が、0から3つずつ0~2,3~5,6~8,9~11,...の各グループのうち、何れのグループに入っているかを判別すると共に、その判別したグループの3つの値のうちで、e0以外の2つの値e1,e2を特定し、仮想メモリ領域31の先頭アドレスEに上記2つの値e1,e2をそれぞれ加算した各アドレスEe1,Ee2を、仮想メモリアドレスEe0と同じデータが記憶される他の2つの仮想メモリアドレスとして算出する。尚、e0が、0から3つずつの何れのグループに入っているかは、{d-1×3}~{d×3-1}の式に、現在の保存データ数カウンタdの値を代入することで判別することができる図2参照。そして、第2処理では、まず、第1処理で算出した2つの仮想メモリアドレスEe1,Ee2の各々から、データを読み出す。尚、仮想メモリアドレスからのデータの読み出しは、既述した通り、その仮想メモリアドレスに割り当てられている物理アドレスからデータを読み出すということである。そして更に、第2処理では、仮想メモリアドレスEe1,Ee2の各々から読み出した2つのデータD1,D2が一致しているか否かを判定し、両データD1,D2が一致していれば、そのデータを、仮想メモリアドレスEe0への書き込み対象データ即ち、復元したデータとする。また、2つのデータD1,D2が一致していない場合には、どちらが真なのか特定できないため、仮想メモリアドレスEe0への書き込み対象データは、例えば所定の初期値固定値とする。そして、第3処理では、第2処理で求めた書き込み対象データを、仮想メモリアドレスEe0に書き込む。つまり、仮想メモリアドレスEe0に割り当てられている物理アドレスへ、書き込み対象データを書き込む処理を行う。尚、本実施形態において、冗長データ数Rは、2よりも大きく且つインジェクタの個数Nよりは小さい値に設定されるが、Nが5以上であって、冗長データ数Rを4以上に設定した場合、例えば、上記第2処理では、R-1個の仮想メモリアドレスに記憶されているR-1個のデータに対して、多数決の処理を行い、一致しているものの数が最多のデータを、仮想メモリアドレスEe0への書き込み対象データとすることができる。一方、本実施形態では、ECU11が、マスタユニットとしての電子制御装置に相当し、インジェクタIJ1~IJ4が、スレーブユニットに相当し、インジェクタIJ1~IJ4に設けられたEEPROM23の共通領域30が、データの書き換えが可能な不揮発性メモリの特定記憶領域に相当し、共通データが、保存対象データに相当している。また、共通領域先頭アドレス及び共通領域データ数が、特定記憶領域の先頭及び容量を示す領域情報に相当している。そして、ECU11のマイコン16が、仮想メモリ作成手段と書込手段との各々に相当しており、図4のメモリ管理処理特に図5の仮想メモリマッピング処理が、仮想メモリ作成手段としての処理に相当し、図8の書込処理が、書込手段としての処理に相当している。また、ECU11のEEPROM17特にECUメモリ33が、マスタ側メモリに相当している。更に、ECU11のマイコン16は、交換検知手段にも相当しており、図3の交換判定処理が、交換検知手段としての処理に相当している。また、ECU11のマイコン16は、復元手段にも相当しており、図7のS700の処理のうちの第1処理と第2処理が、復元手段としての処理に相当している。つまり、図7の差分マッピング処理が行われる各回のうち、カウンタmがMou交換前のインジェクタIJuの共通領域データ数以下である各回においては、S700の第1処理により、交換前のインジェクタIJuの共通領域30におけるアドレスのうちで、現在の仮想メモリアドレスポインタeが示す仮想メモリアドレスEeに割り当てられていたアドレスについて、そのアドレスに記憶されていたデータと同じデータが記憶されていた仮想メモリアドレス仮想メモリ領域における単位記憶領域が特定されることとなる。そして、その回において、第2処理により、Mu≧Mouであれば、第1処理で特定した仮想メモリアドレスに記憶されているデータから、交換後のインジェクタIJuの共通領域30におけるアドレスのうちで、上記仮想メモリアドレスEeに割り当てられているアドレスへ書き込むべきデータを、復元することとなる。以上のような本実施形態の制御システム1におけるECU11によれば、各インジェクタIJ1~IJ4の共通領域30に同じデータをそれぞれ書き込む構成と比較すると、データの冗長保存を実現しつつ、メモリの利用効率を向上させることができる。つまり、共通領域30の容量が同じであれば、保存できるデータ数を増やすことができる。例えば、各インジェクタIJ1~IJ4の共通領域30におけるアドレス数が30個であるとする。この場合、各インジェクタIJ1~IJ4の共通領域30に同じデータをそれぞれ書き込む構成では、インジェクタIJ1~IJ4側に30個種類のデータしか保存できない。これに対して、本実施形態では、冗長データ数Rを3にしていることから、インジェクタIJ1~IJ4側には40個のデータを保存することができる。そして、各データは、R個の異なるインジェクタに保存されることとなるため、データの冗長保存も実現される。つまり、何れかのインジェクタが交換されても、そのインジェクタに保存されていたデータは、他の何れかのインジェクタにも保存されていることとなり尚、本実施形態ではECU11側に保存されている場合もあり得る、保存対象データを失ってしまうことがない。また、ECU11のマイコン16は、各インジェクタIJ1~IJ4から、共通領域先頭アドレスと共通領域データ数を取得し、その取得した情報から各インジェクタIJ1~IJ4の共通領域30を特定して仮想メモリ領域31を作成するため、各インジェクタIJ1~IJ4の共通領域30の先頭アドレスや容量が変わっても、仮想メモリ領域31を作成することができる。また、ECU11のマイコン16は、各インジェクタIJ1~IJ4の共通領域30に容量差があることに伴って、インジェクタIJ1~IJ4の共通領域30のアドレスを前述のインジェクタ順IJ1→IJ2→IJ3→IJ4の順に割り当てることができない仮想メモリアドレスに対しては、ECUメモリ33のアドレスを割り当てるようになっているS530。このため、あるインジェクタの共通領域30の容量が、他のインジェクタの共通領域30の容量より小さくても、データの冗長保存を実現することができる。また、図7のS700で行うデータ復帰処理により、交換前のインジェクタに保存されていた共通データを、交換後のインジェクタにも継承して保存することができる。また、本実施形態では、ECU11から見たスレーブユニットが、自動車のエンジンの気筒毎に設けられるインジェクタIJ1~IJ4であるため、前述した1~3の点で有利である。以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。例えば、ECU11と各インジェクタIJ1~IJ4との通信は、別々の通信線による一対一の通信であっても良い。その場合、インジェクタIJ1~IJ4との通信には、ユニットIDを用いる必要がなくなる。また、データの書き換えが可能な不揮発性メモリとしては、EEPROM以外でも良く、例えばフラッシュメモリでも良い。また、保存対象データの1つを記憶可能な単位記憶領域としては、1アドレス領域に限らず、2つ以上のアドレスの領域でも良い。また、スレーブユニットインジェクタIJ1~IJ4の個数Nは、4に限らず、3以上であれば良く、冗長データ数Rは2以上で且つNより小であれば良い。尚、R=2の場合、図7のS700では、前述した第1処理により、1つの仮想メモリアドレスが特定されることとなるため、それに続く第2処理及び第3処理では、第1処理で特定した仮想メモリアドレスに記憶されているデータを、現在の仮想メモリアドレスポインタeが示す仮想メモリアドレスEeに書き込むべきデータとして扱うことになる。一方、スレーブユニットは、インジェクタ以外でも良く、例えば、ECU11以外の他の電子制御装置でも良い。"