JP2009104300A - データ処理装置及びプログラム - Google Patents

データ処理装置及びプログラム Download PDF

Info

Publication number
JP2009104300A
JP2009104300A JP2007273899A JP2007273899A JP2009104300A JP 2009104300 A JP2009104300 A JP 2009104300A JP 2007273899 A JP2007273899 A JP 2007273899A JP 2007273899 A JP2007273899 A JP 2007273899A JP 2009104300 A JP2009104300 A JP 2009104300A
Authority
JP
Japan
Prior art keywords
data
storage device
write
main storage
cache memory
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.)
Pending
Application number
JP2007273899A
Other languages
English (en)
Inventor
Hiroki Nakazato
弘樹 中里
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 JP2007273899A priority Critical patent/JP2009104300A/ja
Priority to EP08018249A priority patent/EP2053519A1/en
Priority to US12/255,955 priority patent/US20090106490A1/en
Publication of JP2009104300A publication Critical patent/JP2009104300A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】ライトバック方式とライトスルー方式との切り替えを行うことなく、特定のデータについてはデータの一貫性を保つことのできるデータ処理装置を提供する。
【解決手段】エンジンECU10が備える第1のマイコン20は、ライトバック方式のデータ更新を行い、特定のデータについてのデータ書込処理を行った場合には、そのデータと同一のインデックスでタグの異なるダミーデータについてのデータ書込処理(強制ライトバック)を行う。このため、キャッシュメモリ23に書き込まれた特定のデータは、ダミーデータの書き込みによって直ちにキャッシュメモリ23から追い出され、主記憶RAM21に書き込まれる。したがって、ライトスルー方式への切り替えを行うことなく、特定のデータについてはキャッシュメモリ23及び主記憶RAM21の両方に同一のデータが記憶されるようにすることができる。
【選択図】図1

Description

本発明は、ライトバック方式のデータ更新を行うデータ処理装置に関するものである。
従来、主記憶装置に比べて処理性能の高いプロセッサを用いた場合に、主記憶装置の処理性能がボトルネックとなってプロセッサの性能が十分に発揮されないという問題に対応するため、主記憶装置に記憶されているデータの一部を主記憶装置よりも高速なキャッシュメモリにコピーして保持させることにより、プロセッサから主記憶装置へのアクセスを減らして処理の高速化を図る構成が利用されている。
そして、このような構成におけるデータ更新方式としては、ライトスルー方式とライトバック方式とが知られている。
ライトスルー方式は、図17(a)に示すように、CPU(プロセッサ)がデータ書込処理を行う際に、キャッシュメモリ内のブロックにデータを書き込むと同時に主記憶装置内の対応するブロックにも同時にデータを書き込む方式である。このため、主記憶装置とキャッシュメモリとの間でデータの一貫性が保たれるという利点があるが、主記憶装置へのアクセス頻度が高くなる分、処理速度が低下するという問題があり、高速の処理には適さない。
一方、ライトバック方式は、図17(b)に示すように、CPU(プロセッサ)がデータ書込処理を行う際に、同一アドレスのデータがキャッシュメモリのブロックに記憶されている場合にはそのデータのみを更新し、主記憶装置のデータは更新しない方式である。そして、キャッシュメモリに記憶されているデータを異なるアドレスのデータで上書きする必要が生じた時点で、その記憶されているデータを主記憶装置内の対応するブロックに書き込む。
ここで、ライトバック方式の一例として、ダイレクトマッピング方式(1ウェイセットアソシアティブ方式)のキャッシュメモリの追い出しメカニズムについて、図18を用いて説明する。
256バイトのデータキャッシュメモリにおいて、1ブロックのサイズを4バイトとすると、256/4=64個のブロックが存在する。キャッシュメモリには、0〜63のインデックス(ブロック番号)ごとに、主記憶装置におけるアドレスの上位8ビットを抽出したデータがタグとして記憶される。また、アドレスの下位8ビット中の6ビット(4バイトキャッシュのため、下位2ビットは不要)を抽出したデータをインデックスとする。例えば、アドレスが0xF008(0x:16進数表記のプレフィックス)の場合、タグ「0xF0」、インデックス「2」となり、アドレスが0xFC08の場合、タグ「0xFC」、インデックス「2」となる。
そして、キャッシュヒット判定では、書き込みを行うデータのアドレスから抽出されるインデックス及びタグと同一インデックスかつ同一タグのデータがキャッシュメモリに存在している場合にはヒット、そのようなデータが存在していない場合にはミスヒットとなる。ミスヒットの場合、キャッシュメモリに存在する該当インデックスのデータがキャッシュメモリから追い出され、主記憶装置に書き込まれる。なお、キャッシュメモリに存在するデータの主記憶装置におけるアドレスは、タグ+インデックスから判明する。
例えば、次の処理(1)〜(5)が順に行われたとする。
(1)変数A(アドレス:0xFF00、インデックス:0)に10を代入。
(2)変数B(アドレス:0xFF04、インデックス:1)に20を代入。
(3)変数C(アドレス:0xFF08、インデックス:2)に30を代入。
(4)変数D(アドレス:0xFC04、インデックス:1)に100を代入。
(5)変数E(アドレス:0xFE08、インデックス:2)に110を代入。
この場合、まず、上記(1)の処理により、キャッシュメモリのインデックス「0」のタグが「0xFF」に更新され、データ「10」が書き込まれる。
続いて、上記(2)の処理により、キャッシュメモリのインデックス「1」のタグが「0xFF」に更新され、データ「20」が書き込まれる。
続いて、上記(3)の処理により、キャッシュメモリのインデックス「2」のタグが「0xFF」に更新され、データ「30」が書き込まれる。
続いて、上記(4)の処理により、キャッシュメモリのインデックス「1」のタグが「0xFC」に更新され、データ「100」が書き込まれる。このとき、上記(2)の処理でキャッシュメモリに書き込まれたデータ「20」はキャッシュメモリから追い出されて主記憶メモリに書き込まれる(ミスヒットによる追い出し発生)。
続いて、上記(5)の処理により、キャッシュメモリのインデックス「2」のタグが「0xFE」に更新され、データ「110」が書き込まれる。このとき、上記(3)の処理でキャッシュメモリに書き込まれたデータ「30」はキャッシュメモリから追い出されて主記憶メモリに書き込まれる(ミスヒットによる追い出し発生)。
つまり、ライトバック方式では、キャッシュメモリに記憶されているデータがキャッシュメモリから追い出されることにより初めてそのデータが主記憶装置に書き込まれることになる。このため、ライトスルー方式に比べ、主記憶装置へのアクセスを大幅に減らすことが可能となり、処理速度が高速になるという利点がある。その反面、ミスヒットによる追い出しが発生するまではキャッシュメモリに記憶されている最新のデータが主記憶装置に書き込まれないこととなり、データの一貫性は保たれない。したがって、キャッシュメモリと主記憶装置との間でデータの一貫性が要求されるデータが一部でも存在する場合には、ライトバック方式を採用できないという問題がある。
そこで、ある特定のメモリアクセス時のみライトスルー方式とする技術(特許文献1)や、動作中に任意に両方式を切り替えられる機構を持つ技術(特許文献2)が提案されている。
特開平2−226449号公報 特開平6−348592号公報
しかしながら、前述した特許文献1,2で提案されている技術は、ライトスルー方式とライトバック方式との切り替えを行うものであり、切り替えのための回路(ハードウェア)が余分に必要となるという問題があった。
本発明は、こうした問題にかんがみてなされたものであり、ライトバック方式とライトスルー方式との切り替えを行うことなく、特定のデータについてはデータの一貫性を保つことのできるデータ処理装置を提供することを目的としている。
上記目的を達成するためになされた本発明の請求項1に記載のデータ処理装置は、キャッシュメモリを用いたライトバック方式のデータ更新を行うものである。具体的には、データを記憶する主記憶装置と、主記憶装置に記憶されているデータを読み出すためのデータ読出処理及び主記憶装置にデータを書き込むためのデータ書込処理を行うプロセッサとを備える。また、主記憶装置に記憶されているデータの一部をそのアドレスとともに記憶可能であって、主記憶装置に代えて又は主記憶装置とともにプロセッサによるデータ読出処理及びデータ書込処理が行われるキャッシュメモリを備える。
そして、このデータ処理装置において、プロセッサは、特定のデータについてデータ書込処理を行った場合には、その特定のデータとアドレスは異なるがキャッシュメモリにおける書き込み位置が同一となるダミーデータについてデータ書込処理を行う。
すなわち、ライトバック方式のデータ更新では、プロセッサによりデータ書込処理が行われた場合、書き込みを行うデータと同一アドレスのデータがキャッシュメモリに存在していれば、キャッシュメモリに存在するデータのみが更新され、主記憶装置に記憶されているデータは更新されない。このため、キャッシュメモリに記憶されているデータと主記憶装置に記憶されているデータとが異なる状態が生じ得る。
そこで、本発明のデータ処理装置は、特定のデータについてデータ書込処理を行った場合には、その特定のデータとアドレスは異なるがキャッシュメモリにおける書き込み位置が同一となるダミーデータについてデータ書込処理を行う。これにより、キャッシュメモリに書き込まれた特定のデータは、ダミーデータの書き込みによって直ちにキャッシュメモリから追い出され、主記憶装置に書き込まれる。つまり、特定のデータについては、ライトスルー方式と同様、最新のデータがキャッシュメモリだけでなく主記憶装置にも書き込まれることになる。
したがって、本発明のデータ処理装置によれば、従来のライトバック方式の構成をそのまま利用して、ライトスルー方式への切り替えを行うことなく、特定のデータについてはデータの一貫性を保つことができる。なお、特定のデータ以外については従来のライトバック方式のデータ更新が行われるため、ライトスルー方式に比べ処理を高速にすることができる。
このようなデータ処理装置は、例えば請求項2〜請求項4に記載のような構成において特に優れた効果を発揮する。
すなわち、請求項2に記載のデータ処理装置は、主記憶装置及びプロセッサを複数組備えるとともに、主記憶装置間でデータを転送する転送手段を備える。このような構成のデータ処理装置では、キャッシュメモリに記憶されているデータが最新のものであっても、主記憶装置に記憶されているデータが最新のものでなければ(古ければ)、その古いデータが他の主記憶装置に転送され、他のプロセッサによりそのデータに基づく処理が行われてしまうことになる。したがって、特定のデータについてデータの一貫性を保つことによる効果が高い。
また、請求項3に記載のデータ処理装置は、プロセッサを複数備えるとともに、主記憶装置は、複数のプロセッサにより共有利用される。このような構成のデータ処理装置では、キャッシュメモリに記憶されているデータが最新のものであっても、主記憶装置に記憶されているデータが最新のものでなければ(古ければ)、他のプロセッサによりその古いデータに基づく処理が行われてしまうことになる。したがって、特定のデータについてデータの一貫性を保つことによる効果が高い。
また、請求項4に記載のデータ処理装置では、主記憶装置は、当該データ処理装置への電力供給が停止されてもバッテリにより作動状態が保持される。このような構成のデータ処理装置では、キャッシュメモリに記憶されているデータが最新のものであっても、主記憶装置に記憶されているデータが最新のものでなければ(古ければ)、当該データ処理装置への電力供給が停止された場合に最新のデータが消失して古いデータのみが残ってしまうことになる。したがって、特定のデータについてデータの一貫性を保つことによる効果が高い。
ところで、ダミーデータのアドレスとしては、例えば請求項5〜請求項7に記載のアドレスが挙げられる。
すなわち、例えば請求項5に記載のデータ処理装置では、ダミーデータのアドレスは、主記憶装置における未使用領域である。このようなデータ処理装置によれば、主記憶装置を効率よく利用してダミーデータを記憶させることができる。
また、請求項6に記載のデータ処理装置は、データの書き込みが不能な読出専用記憶装置を備え、ダミーデータのアドレスは、読出専用記憶装置のアドレスである。このようなデータ処理装置によれば、読出専用記憶装置のアドレスを利用することで、ダミーデータを記憶するための領域を主記憶装置に設ける必要がなくなる。
また、請求項7に記載のデータ処理装置では、ダミーデータのアドレスは、記憶装置の実装されていないアドレスである。このようなデータ処理装置によれば、記憶装置の実装されていないアドレスを利用することで、ダミーデータを記憶するための領域を主記憶装置に設ける必要がなくなる。
ところで、本発明のデータ処理装置は、例えば請求項8に記載のように、車両を制御するための制御装置である車両制御装置に用いられることが好ましい。車両制御装置では、高いリアルタイム応答性が要求されるからである。
特に、請求項9に記載のように、車両の駆動力発生装置を制御する車両制御装置は、車両制御装置の中でも非常に高いリアルタイム応答性が要求されるため、非常に効果的である。
次に、請求項10に記載のプログラムは、データを記憶する主記憶装置と、主記憶装置に記憶されているデータを読み出すためのデータ読出処理及び主記憶装置にデータを書き込むためのデータ書込処理を行うプロセッサと、主記憶装置に記憶されているデータの一部をそのアドレスとともに記憶可能であって、主記憶装置に代えて又は主記憶装置とともにプロセッサによるデータ読出処理及びデータ書込処理が行われるキャッシュメモリとを備え、キャッシュメモリを用いたライトバック方式のデータ更新を行うデータ処理装置におけるプロセッサとして用いられるコンピュータに、特定のデータについてデータ書込処理を行った場合には、その特定のデータとアドレスは異なるがキャッシュメモリにおける書き込み位置が同一となるダミーデータについてデータ書込処理を行わせるものである。
このようなプログラムによれば、請求項1のデータ処理装置としてコンピュータを機能させることができ、これにより前述した効果を得ることができる。
以下、本発明が適用された実施形態について、図面を用いて説明する。
[1.第1実施形態]
まず、第1実施形態のエンジンECUについて説明する。
[1−1.全体構成]
図1は、第1実施形態のエンジンECU10の概略構成を示すブロック図である。
このエンジンECU10は、車両(自動車)のエンジンを制御するための電子制御装置であり、主としてダイアグ処理(センサ等の故障診断)を行う第1のマイクロコンピュータ(以下「マイコン」と略す。)20と、主としてエンジン制御のための処理を行う第2のマイコン30とを備えている。
第1のマイコン20は、データを記憶する主記憶装置としての主記憶RAM21と、主記憶RAM21に記憶されているデータを読み出すためのデータ読出処理及び主記憶RAM21にデータを書き込むためのデータ書込処理を行うプロセッサとしてのメインCPU22とを備えている。
また、第1のマイコン20は、主記憶RAM21に記憶されているデータの一部をそのアドレスとともに記憶可能であって、主記憶RAM21に代えて又は主記憶RAM21とともにメインCPU22によるデータ読出処理及びデータ書込処理が行われるデータキャッシュメモリ(以下、単に「キャッシュメモリ」という。)23を備えており、キャッシュメモリ23を用いたライトバック方式のデータ更新を行う。
さらに、第1のマイコン20は、第2のマイコン30との間でのデータ通信を行うための通信インタフェース24と、主記憶RAM21に記憶されているデータを第2のマイコン30の主記憶RAM31へ転送するためのDMAコントローラ25とを備えている。
その他、第1のマイコン20は、データの読み出し専用の(データの書き込みが不能な)フラッシュROM26を備えている。
一方、第2のマイコン30も、第1のマイコン20と同様に構成されており、主記憶RAM31、サブCPU32、キャッシュメモリ33、通信インタフェース34、DMAコントローラ35、フラッシュROM36を備えている。
[1−2.エンジンECUで行われる処理]
次に、エンジンECU10で行われる処理について説明する。
エンジンECU10が備える2つのマイコン20,30では、第1のマイコン20の主記憶RAM21に記憶されているデータが第2のマイコン30の主記憶RAM31へ転送される。このため、第1のマイコン20のキャッシュメモリ23に記憶されているデータが最新のものであっても、その第1のマイコン20の主記憶RAM21に記憶されているデータが最新のものでなければ(古ければ)、その古いデータが第2のマイコン30の主記憶RAM31に転送され、第2のマイコン30においてその古いデータに基づく処理が行われてしまうことになる。
そこで、第1のマイコン20では、メインCPU22が特定のデータについてのデータ書込処理を行った場合には、その直後に、そのデータと同一のインデックスでタグの異なるダミーデータについてのデータ書込処理を行うことで、その特定のデータをキャッシュメモリ23から強制的に追い出す処理(以下「強制ライトバック」という。)を行う。
以下、強制ライトバックによる効果を分かりやすくするため、強制ライトバックを行う場合の処理(図2(b))を、強制ライトバックを行わない場合の処理(図2(a))と比較して説明する。
[1−2−1.強制ライトバックを行わない場合]
まず、強制ライトバックを行わない場合の処理について説明する。
図3は、フラッシュROM26に記憶されているプログラムに従いメインCPU22が定期的に実行する水温センサ故障診断処理のフローチャートである。
メインCPU22は、水温センサ(エンジン水温を検出するために設けられているセンサ)の検出電圧をA/D変換したデジタル値の電圧データを、あらかじめ記憶されているマップに基づきエンジン水温にリニアライズ変換する。その際、メインCPU22は、その電圧データに基づき、水温センサが故障(断線故障又は短絡故障)しているか否かを判定する(S101)。具体的には、電圧値が短絡故障時に最小値(0V)となり断線故障時に最大値となる回路の場合、例えば、電圧値が0.5V未満であれば短絡故障、4.5Vを超えていれば断線故障と判定する。
そして、メインCPU22は、この判定結果を水温センサ異常フラグのデータとして書き込む処理を行う(S102)。
具体的には、ライトバック方式による書込みのため、キャッシュメモリ23に水温センサ異常フラグのデータが記憶されていない場合、つまりミスヒットの場合には、主記憶RAM21に記憶されている水温センサ異常フラグのデータが更新された後、そのデータがキャッシュメモリ23にロードされる。つまり、水温センサ異常フラグの最新データがキャッシュメモリ23及び主記憶RAM21の両方に記憶される。
これに対し、キャッシュメモリ23に水温センサ異常フラグのデータが記憶されている場合、つまりキャッシュヒットの場合には、キャッシュメモリ23に記憶されている水温センサ異常フラグのデータのみが更新される。一方、主記憶RAM21に記憶されている水温センサ異常フラグのデータは、キャッシュメモリ23に記憶されている水温センサ異常フラグのデータが追い出されるまでは更新されない。
その後、メインCPU22では、水温センサ異常フラグのデータがOFF(正常)であるか否かを判定する(S103)。
そして、水温センサ異常フラグのデータがOFF(正常)であると判定した場合には(S103:YES)、水温センサの検出電圧に基づくエンジン水温が各種処理に使用されるように設定する(S104)。
一方、水温センサ異常フラグのデータがOFFでない、つまりON(異常)であると判定した場合には(S103:NO)、フェールセーフ値のエンジン水温(80℃)が各種処理に使用されるように設定する(S105)。
一方、図4は、フラッシュROM36に記憶されているプログラムに従いサブCPU32が実行するエンジン制御処理のフローチャートである。
サブCPU32は、第1のマイコン20のDMAコントローラ25により転送されるエンジン水温及び水温センサ異常フラグのデータを受信すると(S201)、受信した水温センサ異常フラグのデータがOFF(正常)であるか否かを判定する(S202)。なお、第1のマイコン20のDMAコントローラ25により転送される水温センサ異常フラグのデータは、第1のマイコン20の主記憶RAM21に記憶されているデータと同一のものである。
そして、水温センサ異常フラグのデータがOFF(正常)であると判定した場合には(S202:YES)、第1のマイコン20から受信したエンジン水温が各種処理に使用されるように設定する(S203)。
一方、水温センサ異常フラグのデータがOFFでない、つまりON(異常)であると判定した場合には(S202:NO)、フェールセーフ値のエンジン水温(80℃)が各種処理に使用されるように設定する(S204)。
そして、サブCPU32は、設定したエンジン水温に基づく噴射・点火処理を実行する(S205)。
なお、水温センサが故障した場合にフェールセーフ値のエンジン水温を使用する理由は次のとおりである。すなわち、故障した状態の水温センサの検出電圧をそのままエンジン水温に変換したとすると、断線故障の場合には極低温、短絡故障の場合には極高温と検出されてしまう。
ここで、エンジンの噴射処理では、インジェクタから噴射する燃料噴射量を計算するマップ補間処理において、エンジン水温が低い場合、暖気制御を早期に行い適温(80℃程度)に近づけるために、噴射量を増量し、エンジン水温を上昇させる制御を行う。このため、例えば水温センサが断線故障した場合に、その異常状態が噴射処理を行うサブCPU32に伝わらないと、極低温(例えば−40℃)の水温で正常状態であると判定してしまい、実際のエンジン水温が適温(80℃)になっていても、噴射増量をし続けるため、燃費の悪化や失火等が生じる。
また、エンジンの点火処理では、エンジン水温が低い場合は燃焼速度が遅いため、安定運転及び燃費向上の目的で進角させる制御を行う(暖気進角補正)。この制御では、水温が低いほど進角させる方向で制御する。このため、例えば水温センサが断線故障した場合に、その異常状態が点火処理を行うサブCPU32に伝わらないと、極低温(例えば−40℃)の水温で正常状態であると判定してしまい、−40℃での進角制御が継続されることとなり、ノッキングの発生、燃費の悪化が生じる。
そこで、水温80℃相当として適正水温、適正噴射量、適正点火時期で制御を行うフェールセーフ処理を行うようにしている。
以上のような処理によれば、図2(a)に示すように、第1のマイコン20において例えば水温センサの断線故障が検出された場合、キャッシュメモリ23に水温センサ異常フラグのデータが存在していれば、キャッシュメモリ23のデータのみが更新され(OFF→ON)、主記憶RAM21のデータは古いままとなる(OFF)。
ここで、第1のマイコン20の主記憶RAM21のデータは、DMAコントローラ25により第2のマイコン30の主記憶RAM31へ転送されるが、DMAコントローラ25が送信用に取得するデータは最新の状態が反映されていない主記憶RAM21のデータ(OFF)であり、キャッシュメモリ23の最新データ(ON)は送信されない。このため、メインCPU22はエンジン水温としてフェールセーフ値である80℃を使用して各種処理を行うが、サブCPU32は断線故障した状態の検出電圧を変換したエンジン水温(例えば−40℃)を使用して制御を行うことになり、噴射・点火処理などに影響が生じてしまう。
[1−2−2.強制ライトバックを行う場合]
次に、強制ライトバックを行う場合の処理について説明する。
図5は、フラッシュROM26に記憶されているプログラムに従いメインCPU22が定期的に実行する水温センサ故障診断処理のフローチャートである。この水温センサ故障診断処理は、図3の水温センサ故障診断処理と対比すると、S301,S302,S304〜S306の各処理内容は、S101〜S105の各処理内容と同一であり、S303の処理が追加されている点が異なる。
すなわち、メインCPU22は、水温センサが故障しているか否かの判定結果を水温センサ異常フラグのデータとしてキャッシュメモリ23に書き込む処理を行った後(S302)、強制ライトバック処理を行う(S303)。
具体的には、メインCPU22は、水温センサ異常フラグのデータをキャッシュメモリ23に書き込む処理を行った直後に、水温センサ異常フラグのデータとインデックスが同一でタグの異なるダミーデータを書き込む処理を行う。これにより、ダミーデータを書き込む直前にキャッシュメモリ23に書き込んだ水温センサ異常フラグの最新データがキャッシュメモリ23から追い出されて主記憶RAM21に書き込まれる。この結果、水温センサ異常フラグのデータについては常に最新のデータが主記憶RAM21に記憶されていることとなり、サブCPU32においても水温センサの異常状態が直ちに検出され、フェールセーフ値であるエンジン水温80℃による制御が行われる。
なお、サブCPU32が実行するエンジン制御処理は前述したとおり(図4)であるため説明を省略する。
以上のような処理によれば、図2(b)に示すように、第1のマイコン20において例えば水温センサの断線故障が検出された場合、キャッシュメモリ23に水温センサ異常フラグのデータが存在していれば、主記憶RAM21は更新されずにキャッシュメモリ23のデータのみが更新されるが(OFF→ON)、その直後にダミーデータが上書きされることにより、キャッシュメモリ23に書き込まれたばかりの水温センサ異常フラグの最新データ(ON)が追い出され、主記憶RAM21に記憶されている水温センサ異常フラグのデータが更新される(OFF→ON)。
この結果、主記憶RAM21に記憶されている水温センサ異常フラグの最新データ(ON)がDMAコントローラ25により第2のマイコン30の主記憶RAM31へ転送されることとなり、メインCPU22及びサブCPU32のいずれにおいても、エンジン水温としてフェールセーフ値である80℃が使用されて各種処理が行われる。
なお、特定のデータ(ここでは水温センサ異常フラグを例示)以外のデータについては強制ライトバックを行わないため、従来のライトバック方式と同様に処理される。
[1−3.強制ライトバック処理の実現方法]
次に、前述した強制ライトバック処理の具体的な実現方法について説明する。
第1実施形態のエンジンECU10では、エンジンECU10に組み込むソフトウェア(プログラムコード)をコンパイルする前の段階において、コンパイラに特殊指示を与えることにより強制ライトバック用のコードが挿入される。
すなわち、図6に示すように、ソフトウェア(プログラムコード)上で、強制ライトバックを行いたい変数(この例では変数b)の前後に、コンパイラへの特殊指示命令である「#pragma(プラグマ)」を挿入する。コンパイラは、ソフトウェアをコンパイルしてアセンブラコードを生成する際、前後に「#pragma」が挿入された変数bについては、その変数bとインデックスが同一でかつタグの異なるアドレスへの追い出しコード(ダミーデータの書き込みコード)を自動で挿入する。
例えば、変数bのアドレスが0xFF04(インデックス「1」、タグ「0xFF」)の場合、追い出しコードの書き込み先アドレスを0x6C04(インデックス「1」、タグ「0x6C」)とする。
図6の例では、まず、変数aのデータ「10」が、キャッシュメモリのインデックス「0」に、タグ「FF」とともに書き込まれる。続いて、変数bのデータ「20」が、キャッシュメモリのインデックス「1」に、タグ「0xFF」とともに書き込まれる。その直後に、同一のインデックス「1」に、異なるタグ「0x6C」のデータが書き込まれ、変数bのデータ「20」はキャッシュメモリから追い出されて主記憶RAMに書き込まれる。
なお、この例では、追い出しコードでの書き込みに使用するデータとして、変数bと同じデータ(同じレジスタ)である「20」を用いているが、これに限定されるものではなく、変数bと異なる任意のデータを用いることができる。ただし、異なるデータを用いる場合には、自動挿入コードが少なくとも1つは増加するため、コード効率の面では変数bと同じデータを用いることが好ましい。
ところで、追い出しコードの書き込み先アドレスとしては、例えば図7に示すように、主記憶RAMにおける未使用領域であるワークRAMを利用することができる。このようにすれば、主記憶RAMを効率よく利用することができる。ただし、キャッシュメモリと同等の領域が必要となる。
一方、追い出しコードによるダミーデータの書き込み処理は、書き込むデータ自体に関しては意味のないものであるため、フラッシュROMや、メモリ等が実装されていない未実装空間など、データの書き込みが不能な領域のアドレスとすることも可能である。フラッシュROMや未実装空間アドレスは、一般にキャッシュメモリのサイズと比較して膨大な領域を有しており、ダミーデータを記憶するための領域を主記憶RAMに設ける必要がなくなるという点で有効である。ただし、書き込み処理によりCPUが暴走せず、単に無効となる仕様であることが前提となる。
[1−4.効果]
以上説明したように、第1実施形態のエンジンECU10が備える第1のマイコン20は、ライトバック方式のデータ更新を行い、特定のデータについてのデータ書込処理を行った場合には、その直後に、そのデータと同一のインデックスでタグの異なるダミーデータについてのデータ書込処理(強制ライトバック)を行う。
このため、キャッシュメモリ23に書き込まれた特定のデータは、ダミーデータの書き込みによって直ちにキャッシュメモリ23から追い出され、主記憶RAM21に書き込まれる。つまり、特定のデータについては、ライトスルー方式と同様、最新のデータがキャッシュメモリ23だけでなく主記憶RAM21にも書き込まれることになる。
したがって、第1実施形態のエンジンECU10によれば、従来のライトバック方式の構成をそのまま利用して、ライトスルー方式への切り替えを行うことなく、特定のデータについてはデータの一貫性を保つことができる。
また、特定のデータ以外については従来のライトバック方式のデータ更新が行われるため、ライトスルー方式に比べ処理を高速にすることができ、エンジンECU10に要求される高リアルタイム応答性を満たすことができる。
[2.第2実施形態]
次に、第2実施形態のエンジンECUについて説明する。
[2−1.全体構成]
図8は、第2実施形態のエンジンECU40の概略構成を示すブロック図である。
このエンジンECU40に搭載されているマイコン50は、主としてダイアグ処理を実行する第1CPU62と、主としてエンジン制御のための処理を実行する第2CPU72とを備えるマルチコアのものである。
そして、マイコン50は、第1CPU62及び第2CPU72により共有利用される主記憶装置としての共有RAM51を備えている。
また、マイコン50は、各CPU62,72専用のローカルRAM61,71及びキャッシュメモリ63,73を備えており、両CPU62,72で共有しないデータについてはローカルRAM61,71に記憶し、両CPU62,72で共有するデータ(例えばエンジン水温や水温センサ異常フラグのデータ)については共有RAM51に記憶する。
その他、マイコン50は、データの読み出し専用のフラッシュROM66,76を備えている。
[2−2.エンジンECUで行われる処理]
次に、エンジンECU40で行われる処理について説明する。
エンジンECU40が備えるマイコン50では、共有RAM51が第1CPU62及び第2CPU72により共有利用される。このため、第1CPU62のキャッシュメモリ63に記憶されているデータが最新のものであっても、共有RAM51に記憶されているデータが最新のものでなければ(古ければ)、その古いデータが第2CPU72によって参照され、その古いデータに基づく処理が行われてしまうことになる。
そこで、前述した第1実施形態と同様、第1CPU62が特定のデータ(共有RAM51に記憶されるデータ)についてのデータ書込処理を行った場合には、その直後に、そのデータと同一のインデックスでタグの異なるダミーデータについてのデータ書込処理を行うことで、その特定のデータをキャッシュメモリ63から強制的に追い出す処理(強制ライトバック)を行う。以下、強制ライトバックによる効果を分かりやすくするため、強制ライトバックを行う場合の処理(図9(b))を、強制ライトバックを行わない場合の処理(図9(a))と比較して説明する。
[2−2−1.強制ライトバックを行わない場合]
まず、強制ライトバックを行わない場合の処理について説明する。
図10は、フラッシュROM66に記憶されているプログラムに従い第1CPU62が定期的に実行する水温センサ故障診断処理のフローチャートである。
第1CPU62は、前述したS101の処理と同様、水温センサの検出電圧をA/D変換したデジタル値の電圧データをエンジン水温に変換する際、その電圧データに基づき、水温センサが故障(断線故障又は短絡故障)しているか否かを判定する(S401)。
そして、第1CPU62は、この判定結果を水温センサ異常フラグのデータとして書き込む処理を行う(S402)。
具体的には、ライトバック方式による書込みのため、キャッシュメモリ63に水温センサ異常フラグのデータが記憶されていない場合、つまりミスヒットの場合には、共有RAM51に記憶されている水温センサ異常フラグのデータが更新された後、そのデータがキャッシュメモリ63にロードされる。つまり、水温センサ異常フラグの最新データがキャッシュメモリ63及び共有RAM51の両方に記憶される。
これに対し、キャッシュメモリ63に水温センサ異常フラグのデータが記憶されている場合、つまりキャッシュヒットの場合には、キャッシュメモリ63に記憶されている水温センサ異常フラグのデータのみが更新される。一方、共有RAM51に記憶されている水温センサ異常フラグのデータは、キャッシュメモリ63に記憶されている水温センサ異常フラグのデータが追い出されるまでは更新されない。
その後、第1CPU62では、前述したS103〜S105の処理と同様、水温センサ異常フラグのデータがOFF(正常)であると判定した場合には(S403:YES)、水温センサの検出電圧に基づくエンジン水温が各種処理に使用されるように設定する(S404)。一方、水温センサ異常フラグのデータがOFFでない、つまりON(異常)であると判定した場合には(S403:NO)、フェールセーフ値のエンジン水温(80℃)が各種処理に使用されるように設定する(S405)。
一方、図11は、フラッシュROM76に記憶されているプログラムに従い第2CPU72が実行するエンジン制御処理のフローチャートである。
第2CPU72は、キャッシュメモリ73(キャッシュメモリ73に記憶されていない場合には共有RAM51)に記憶されている水温センサ異常フラグのデータを読み出し(S501)、読み出した水温センサ異常フラグのデータがOFF(正常)であるか否かを判定する(S502)。
そして、水温センサ異常フラグのデータがOFF(正常)であると判定した場合には(S502:YES)、キャッシュメモリ73(キャッシュメモリ73に記憶されていない場合には共有RAM51)に記憶されているエンジン水温が各種処理に使用されるように設定する(S503)。
一方、水温センサ異常フラグのデータがOFFでない、つまりON(異常)であると判定した場合には(S502:NO)、フェールセーフ値のエンジン水温(80℃)が各種処理に使用されるように設定する(S504)。
そして、第2CPU72は、設定したエンジン水温に基づく噴射・点火処理を実行する(S505)。
以上のような処理によれば、図9(a)に示すように、第1CPU62により例えば水温センサの断線故障が検出された場合、キャッシュメモリ63に水温センサ異常フラグのデータが存在していれば、キャッシュメモリ63のデータのみが更新され(OFF→ON)、共有RAM51のデータは古いままとなる(OFF)。このため、第1CPU62はエンジン水温としてフェールセーフ値である80℃を使用して各種処理を行うが、第2CPU72は断線故障した状態の検出電圧を変換したエンジン水温(例えば−40℃)を使用して制御を行うことになり、噴射・点火処理などに影響が生じてしまう。
[2−2−2.強制ライトバックを行う場合]
次に、強制ライトバックを行う場合の処理について説明する。
図12は、フラッシュROM66に記憶されているプログラムに従い第1CPU62が定期的に実行する水温センサ故障診断処理のフローチャートである。この水温センサ故障診断処理は、図10の水温センサ故障診断処理と対比すると、S601,S602,S604〜S606の各処理内容は、S401〜S405の各処理内容と同一であり、S603の処理が追加されている点が異なる。
すなわち、第1CPU62は、水温センサが故障しているか否かの判定結果を水温センサ異常フラグのデータとしてキャッシュメモリ63に書き込む処理を行った後(S602)、強制ライトバック処理を行う(S603)。
具体的には、第1CPU62は、水温センサ異常フラグのデータをキャッシュメモリ63に書き込む処理を行った直後に、水温センサ異常フラグのデータとインデックスが同一でタグの異なるダミーデータを書き込む処理を行う。これにより、ダミーデータを書き込む直前にキャッシュメモリ63に書き込んだ水温センサ異常フラグの最新データがキャッシュメモリ63から追い出されて共有RAM51に書き込まれる。この結果、水温センサ異常フラグのデータについては常に最新のデータが共有RAM51に記憶されていることとなり、第2CPU72においても水温センサの異常状態が直ちに検出され、フェールセーフ値であるエンジン水温80℃による制御が行われる。
なお、第2CPU72が実行するエンジン制御処理は前述したとおり(図11)であるため説明を省略する。
以上のような処理によれば、図9(b)に示すように、第1CPU62により例えば水温センサの断線故障が検出された場合、キャッシュメモリ63に水温センサ異常フラグのデータが存在していれば、共有RAM51は更新されずにキャッシュメモリ63のデータのみが更新されるが(OFF→ON)、その直後にダミーデータが上書きされることにより、キャッシュメモリ63に書き込まれたばかりの水温センサ異常フラグの最新データ(ON)が追い出され、共有RAM51に記憶されている水温センサ異常フラグのデータが更新される(OFF→ON)。
これにより、共有RAM51に記憶されている水温センサ異常フラグと、第2CPU72のキャッシュメモリ73に記憶されている水温センサ異常フラグとに一貫性がなくなるため(共有RAM51:ON、キャッシュメモリ73:OFF)、第2CPU72のキャッシュメモリ73に記憶されている水温センサ異常フラグは破棄される。このため、第2CPU72が水温センサ異常フラグのデータを読み出す処理を行った場合に、キャッシュメモリ73はミスヒットとなり、共有RAM51から最新のデータが読み出されることとなる。
この結果、第1CPU62及び第2CPU72のいずれにおいても、エンジン水温としてフェールセーフ値である80℃が使用されて各種処理が行われる。
なお、特定のデータ(ここでは水温センサ異常フラグを例示)以外のデータについては強制ライトバックを行わないため、従来のライトバック方式と同様に処理される。
[2−3.効果]
以上説明した第2実施形態のエンジンECU40によれば、第1実施形態のエンジンECU10について述べた効果と同様の効果を得ることができる。
[3.第3実施形態]
次に、第3実施形態のエンジンECUについて説明する。
[3−1.全体構成]
図13は、第3実施形態のエンジンECU80の概略構成を示すブロック図である。
このエンジンECU80が備えるマイコン90は、エンジンECU80への電力供給が停止されてもバッテリにより作動状態が保持されるバックアップRAM91が主記憶装置として用いられたものである。
その他、マイコン90は、CPU92、キャッシュメモリ93及びフラッシュROM96を備えている。
[3−2.エンジンECUで行われる処理]
次に、エンジンECU80で行われる処理について説明する。
エンジンECU80が備えるマイコン90では、キャッシュメモリ93に記憶されているデータが最新のものであっても、バックアップRAM91に記憶されているデータが最新のものでなければ(古ければ)、エンジンECU80への電力供給が停止された場合に最新のデータが消失して古いデータのみが残ってしまうことになる。
そこで、前述した第1実施形態と同様、CPU92が特定のデータについてのデータ書込処理を行った場合には、その直後に、そのデータと同一のインデックスでタグの異なるダミーデータについてのデータ書込処理を行うことで、その特定のデータをキャッシュメモリ93から強制的に追い出す処理(強制ライトバック)を行う。以下、強制ライトバックによる効果を分かりやすくするため、強制ライトバックを行う場合の処理(図14(b))を、強制ライトバックを行わない場合の処理(図14(a))と比較して説明する。
[3−2−1.強制ライトバックを行わない場合]
まず、強制ライトバックを行わない場合の処理について説明する。
図14(a)に示すように、ダイアグ処理でセンサ等の故障診断を行い、異常が検出された場合は、該当するダイアグデータ(例えば水温センサ異常フラグのデータ)を書き換える(OFF→ON)。ここで、キャッシュメモリ93にダイアグデータが存在している場合には、キャッシュメモリ93に記憶されているデータのみが更新され、バックアップRAM91に記憶されているダイアグデータは、キャッシュメモリ93に記憶されているダイアグデータが追い出されるまでは更新されない(OFFのままとなる)。
そして、バックアップRAM91のダイアグデータが更新される前に、エンジンECU80のマイコン90にリセットが掛かったり、車両のイグニッションスイッチ(IG−SW)がオフされてエンジンECU80への電源供給が停止されたりすると(14V→0V)、バックアップRAM91に記憶されているデータはバッテリ電圧で保持されるものの、キャッシュメモリ93のデータは消去されてしまい、故障診断で検出した異常データが消えてしまう。このため、その後に電源供給が再開されても(0V→14V)、バックアップRAM91のデータはOFF(正常)のままであり、異常の検出回数が実際の検出回数よりも少なくなってしまう。なお、異常の検出回数は、MIL点灯の条件としても利用されるため、法規上も問題となる。
[3−2−2.強制ライトバックを行う場合]
次に、強制ライトバックを行う場合の処理について説明する。
図14(b)に示すように、ダイアグ処理でセンサ等の異常が検出された場合、キャッシュメモリ93にダイアグデータが存在していれば、バックアップRAM91は更新されずにキャッシュメモリ93のデータのみが更新される(OFF→ON)。そして、強制ライトバック処理により、直ちにダミーデータが上書きされることで、キャッシュメモリ93に書き込まれたばかりのダイアグデータが追い出され、バックアップRAM91に記憶されているダイアグが更新される(OFF→ON)。
このため、その後にエンジンECU80のマイコン90にリセットが掛かったり、車両のイグニッションスイッチ(IG−SW)がオフされてエンジンECU80への電源供給が停止されたりしても(14V→0V)、バックアップRAM91に記憶されているデータはバッテリ電圧で保持されるため、故障診断で検出した異常データは記憶が保持され、異常の検出回数も正確にカウントすることができる。
[3−3.効果]
以上説明した第3実施形態のエンジンECU80によれば、第1実施形態のエンジンECU10について述べた効果と同様の効果を得ることができる。
[4.他の形態]
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
[4−1.強制ライトバック処理の実現方法の変形例]
上記実施形態では、図6に示したように、ソフトウェア上で、強制ライトバックを行いたい変数の前後にコンパイラへの特殊指示命令である「#pragma(プラグマ)」を挿入することで、追い出しコードを自動挿入するようにしているが、これに限定されるものではない。例えば、次のような実現方法が挙げられる。
[4−1−1.あるメモリ領域のデータに追い出しコードを自動挿入する方法]
図15に示す方法は、追い出しコードを挿入するデータの特定方法が図6に示す方法と異なる。すなわち、あるメモリ領域(0xFE00〜)を強制ライトバック処理を必要とする変数の配置場所(OtherMem)とし、その領域に配置したい変数を「#pragma section ×××」という#pragmaによるメモリ指定で配置する。コンパイラは、同領域へ配置する変数については、同一インデックスでかつ異なるタグの0x6C00番地への書き込み命令(追い出しコード)を自動的に挿入する。
なお、この方法では、図6の方法と異なり、変数bが、強制ライトバック処理が必要な変数領域OtherMemに配置されるため、アセンブラオブジェクトコードでは、OtherMemのアドレスである0xFE00に配置される。
[4−1−2.ソースコードの段階から追い出しコードを埋め込んでおく方法]
図16に示す方法は、図6、図15に示す方法と異なり、プログラマがあらかじめソフトウェア上にソースコードの段階から追い出しコードを埋め込んでおく方法である。同図に示す例では、変数bに通常データ「20」を書き込んだ直後に、変数bのアドレスにインデックスが同じになる任意のオフセット(この例では+256番地)を加算したアドレスに、同じデータ「20」を書き込むコードを実装している。
このため、コンパイラがコンパイルしたオブジェクトコードでは、変数bのアドレス0xFF04に+256を加算した0x0004番地に書き込まれる。
この方法によれば、追い出しコード自動挿入機能を有していないコンパイであっても実現できるというメリットがある。
[4−2.エンジンECU以外への適用]
上記実施形態では、エンジンECUのマイコンに本発明を適用した構成を例示したが、これに限定されるものではなく、エンジン以外の車両制御装置のマイコンに本発明を適用してもよい。また、本発明は、車両制御装置以外のデータ処理装置に適用することも可能である。
第1実施形態のエンジンECUの概略構成を示すブロック図である。 第1実施形態のエンジンECUで行われる処理の説明図である。 第1実施形態のメインCPUが実行する水温センサ故障診断処理のフローチャート(強制ライトバックを行わない場合の処理)である。 第1実施形態のサブCPUが実行するエンジン制御処理のフローチャートである。 第1実施形態のメインCPUが実行する水温センサ故障診断処理のフローチャート(強制ライトバックを行う場合の処理)である。 追い出しコードの挿入方法の説明図である。 追い出しコードの書き込み先アドレスの説明図である。 第2実施形態のエンジンECUの概略構成を示すブロック図である。 第2実施形態のエンジンECUで行われる処理の説明図である。 第2実施形態の第1CPUが実行する水温センサ故障診断処理のフローチャート(強制ライトバックを行わない場合の処理)である。 第2実施形態の第2CPUが実行するエンジン制御処理のフローチャートである。 第2実施形態の第1CPUが実行する水温センサ故障診断処理のフローチャート(強制ライトバックを行う場合の処理)である。 第3実施形態のエンジンECUの概略構成を示すブロック図である。 第3実施形態のエンジンECUで行われる処理の説明図である。 追い出しコードの挿入方法の変形例(1)の説明図である。 追い出しコードの挿入方法の変形例(2)の説明図である。 ライトスルー方式及びライトバック方式のデータ更新の説明図である。 ダイレクトマッピング方式のキャッシュメモリの追い出しメカニズムの説明図である。
符号の説明
10,40,80…エンジンECU、20,30,50,90…マイコン、21,31,51,61,71,91…RAM、22,32,62,72,92…メインCPU、23,33,63,73,93…キャッシュメモリ、24,34…通信インタフェース、25,35…DMAコントローラ、26,36,66,76,96…フラッシュROM

Claims (10)

  1. データを記憶する主記憶装置と、
    前記主記憶装置に記憶されているデータを読み出すためのデータ読出処理及び前記主記憶装置にデータを書き込むためのデータ書込処理を行うプロセッサと、
    前記主記憶装置に記憶されているデータの一部をそのアドレスとともに記憶可能であって、前記主記憶装置に代えて又は前記主記憶装置とともに前記プロセッサによる前記データ読出処理及び前記データ書込処理が行われるキャッシュメモリと、
    を備え、前記キャッシュメモリを用いたライトバック方式のデータ更新を行うデータ処理装置において、
    前記プロセッサは、特定のデータについて前記データ書込処理を行った場合には、その特定のデータとアドレスは異なるが前記キャッシュメモリにおける書き込み位置が同一となるダミーデータについて前記データ書込処理を行うこと
    を特徴とするデータ処理装置。
  2. 前記主記憶装置及び前記プロセッサを複数組備えるとともに、
    前記主記憶装置間でデータを転送する転送手段を備えること
    を特徴とする請求項1に記載のデータ処理装置。
  3. 前記プロセッサを複数備えるとともに、
    前記主記憶装置は、複数のプロセッサにより共有利用されること
    を特徴とする請求項1に記載のデータ処理装置。
  4. 前記主記憶装置は、当該データ処理装置への電力供給が停止されてもバッテリにより作動状態が保持されること
    を特徴とする請求項1に記載のデータ処理装置。
  5. 前記ダミーデータのアドレスは、前記主記憶装置における未使用領域であること
    を特徴とする請求項1から請求項4までのいずれか1項に記載のデータ処理装置。
  6. データの書き込みが不能な読出専用記憶装置を備え、
    前記ダミーデータのアドレスは、前記読出専用記憶装置のアドレスであること
    を特徴とする請求項1から請求項4までのいずれか1項に記載のデータ処理装置。
  7. 前記ダミーデータのアドレスは、記憶装置の実装されていないアドレスであること
    を特徴とする請求項1から請求項4までのいずれか1項に記載のデータ処理装置。
  8. 車両を制御するための制御装置である車両制御装置に用いられること
    を特徴とする請求項1から請求項7までのいずれか1項に記載のデータ処理装置。
  9. 車両の駆動力発生装置を制御する車両制御装置に用いられること
    を特徴とする請求項8に記載のデータ処理装置。
  10. データを記憶する主記憶装置と、
    前記主記憶装置に記憶されているデータを読み出すためのデータ読出処理及び前記主記憶装置にデータを書き込むためのデータ書込処理を行うプロセッサと、
    前記主記憶装置に記憶されているデータの一部をそのアドレスとともに記憶可能であって、前記主記憶装置に代えて又は前記主記憶装置とともに前記プロセッサによる前記データ読出処理及び前記データ書込処理が行われるキャッシュメモリと、
    を備え、前記キャッシュメモリを用いたライトバック方式のデータ更新を行うデータ処理装置における前記プロセッサとして用いられるコンピュータに、
    特定のデータについて前記データ書込処理を行った場合には、その特定のデータとアドレスは異なるが前記キャッシュメモリにおける書き込み位置が同一となるダミーデータについて前記データ書込処理を行わせること
    を特徴とするプログラム。
JP2007273899A 2007-10-22 2007-10-22 データ処理装置及びプログラム Pending JP2009104300A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007273899A JP2009104300A (ja) 2007-10-22 2007-10-22 データ処理装置及びプログラム
EP08018249A EP2053519A1 (en) 2007-10-22 2008-10-17 Data processing apparatus and program for same
US12/255,955 US20090106490A1 (en) 2007-10-22 2008-10-22 Data processing apparatus and program for same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007273899A JP2009104300A (ja) 2007-10-22 2007-10-22 データ処理装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2009104300A true JP2009104300A (ja) 2009-05-14

Family

ID=40119303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007273899A Pending JP2009104300A (ja) 2007-10-22 2007-10-22 データ処理装置及びプログラム

Country Status (3)

Country Link
US (1) US20090106490A1 (ja)
EP (1) EP2053519A1 (ja)
JP (1) JP2009104300A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015058751A (ja) * 2013-09-17 2015-03-30 日立オートモティブシステムズ株式会社 自動車用電子制御装置
CN104969203A (zh) * 2013-03-28 2015-10-07 惠普发展公司,有限责任合伙企业 利用反射内存实现一致性
JP2018076073A (ja) * 2018-02-07 2018-05-17 日本精工株式会社 電動パワーステアリング装置の制御装置
JP2021152338A (ja) * 2020-03-24 2021-09-30 日立Astemo株式会社 制御装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2688000A1 (en) * 2009-12-04 2011-06-04 A. Richard Dupuis Anti idling control system and method of controlled engine shutdown
US20120036301A1 (en) * 2010-08-03 2012-02-09 Caspole Eric R Processor support for filling memory regions
KR101337940B1 (ko) * 2012-08-16 2013-12-09 현대자동차주식회사 차량의 트립 데이터 소실 방지 방법
US9443359B2 (en) * 2013-08-29 2016-09-13 GM Global Technology Operations LLC Vehicle electronic control unit calibration
CN113741405A (zh) * 2021-09-28 2021-12-03 北京亿华通科技股份有限公司 燃料电池发动机控制方法及控制系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02226449A (ja) 1989-02-28 1990-09-10 Toshiba Corp キャッシュメモリ制御方式
JPH06348592A (ja) 1993-06-10 1994-12-22 Hitachi Ltd ライトバッファ制御方式
FR2814555B1 (fr) * 2000-09-25 2003-02-28 Thomson Multimedia Sa Systeme et procede de gestion memoire de coherence de donnees et reseau multiprocesseur associe
DE60237433D1 (de) * 2001-02-24 2010-10-07 Ibm Neuartiger massivparalleler supercomputer
US6592449B2 (en) * 2001-02-24 2003-07-15 International Business Machines Corporation Smart fan modules and system
US7313582B2 (en) * 2001-02-24 2007-12-25 International Business Machines Corporation Arithmetic functions in torus and tree networks
WO2002069238A2 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Managing coherence via put/get windows
US6895416B2 (en) * 2001-02-24 2005-05-17 International Business Machines Corporation Checkpointing filesystem
KR100546971B1 (ko) * 2001-02-24 2006-01-31 인터내셔널 비지네스 머신즈 코포레이션 고속 시그널링을 위한 데이터 캡처 방법
JP4107651B2 (ja) * 2001-02-24 2008-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 障害の存在下で完全な性能を維持するファイルサーバのツイン接続フェールオーバ
US7305487B2 (en) * 2001-02-24 2007-12-04 International Business Machines Corporation Optimized scalable network switch
JP4114480B2 (ja) * 2001-02-24 2008-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーション グローバル割込みおよびバリア・ネットワーク
IL157514A0 (en) * 2001-02-24 2004-03-28 Ibm Class network routing
CA2437036A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer
US7210088B2 (en) * 2001-02-24 2007-04-24 International Business Machines Corporation Fault isolation through no-overhead link level CRC
EP1381959A4 (en) * 2001-02-24 2008-10-29 Ibm GLOBAL ARBORESCENT NETWORK FOR CALCULATION STRUCTURES
KR100570145B1 (ko) * 2001-02-24 2006-04-12 인터내셔널 비지네스 머신즈 코포레이션 동적 재분할을 통해 수퍼컴퓨터에 장애 허용성을 제공하는방법
EP1379933A4 (en) * 2001-02-24 2007-10-17 Ibm STORAGE SYSTEM ACCESS WITH LOW LATENCY
US20040083293A1 (en) * 2002-02-25 2004-04-29 Dong Chen Ethernet addressing via physical location for massively parallel systems
US7529895B2 (en) * 2003-08-22 2009-05-05 International Business Machines Corporation Method for prefetching non-contiguous data structures
US7047364B2 (en) * 2003-12-29 2006-05-16 Intel Corporation Cache memory management

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969203A (zh) * 2013-03-28 2015-10-07 惠普发展公司,有限责任合伙企业 利用反射内存实现一致性
JP2016508650A (ja) * 2013-03-28 2016-03-22 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. リフレクティブメモリとのコヒーレンシの実施
US9575898B2 (en) 2013-03-28 2017-02-21 Hewlett Packard Enterprise Development Lp Implementing coherency with reflective memory
JP2015058751A (ja) * 2013-09-17 2015-03-30 日立オートモティブシステムズ株式会社 自動車用電子制御装置
JP2018076073A (ja) * 2018-02-07 2018-05-17 日本精工株式会社 電動パワーステアリング装置の制御装置
JP2021152338A (ja) * 2020-03-24 2021-09-30 日立Astemo株式会社 制御装置

Also Published As

Publication number Publication date
US20090106490A1 (en) 2009-04-23
EP2053519A1 (en) 2009-04-29

Similar Documents

Publication Publication Date Title
JP2009104300A (ja) データ処理装置及びプログラム
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
CN113853652B (zh) 高速缓冲存储器中的管线化读取-修改-写入操作
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US8825718B2 (en) Methods and apparatus for marking objects for garbage collection in an object-based memory system
US20080183972A1 (en) Snoop Filtering Using a Snoop Request Cache
CN1673980A (zh) 为dma控制器提供高速缓存管理命令的系统和方法
JP2018504694A (ja) 仮想アドレスを使用してアクセスされるキャッシュ
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
JP2007011580A (ja) 情報処理装置
JP2004326758A (ja) 局所的なキャッシュ・ブロック・フラッシュ命令
TWI442227B (zh) 微處理器之可組態快取
JP5319049B2 (ja) キャッシュシステム
US7219197B2 (en) Cache memory, processor and cache control method
JP2006318471A (ja) データ処理におけるメモリキャッシング
US8127082B2 (en) Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations
US6694468B1 (en) Method and apparatus to test memory
JPH08137748A (ja) コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
US20030079090A1 (en) Instructions for test & set with selectively enabled cache invalidate
US11847074B2 (en) Input/output device operational modes for a system with memory pools
US7640397B2 (en) Adaptive comparison control in a memory
JPH08202622A (ja) 分散型メモリ構成のキャッシュ制御方法
Jalil et al. Proposal New Cache Coherence Protocol to Optimize CPU Time through Simulation Caches
WO1989009442A1 (en) Instruction cache flush-on-rei control

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100112