(57)【要約】【課題】ＲＡＭにデータが書き込まれるときに同じデータが書き込まれるキャッシュメモリを備える電子制御装置において、ＲＡＭに対するメモリチェックの対象アドレスに対応するキャッシュメモリだけを無効にしてメモリチェックを実行する電子制御装置を提供する。【解決手段】電子制御装置は、バリッド無効命令によりバリッドビット制御部５０の入力に無効信号（Ｌ：０）を選択し（処理１）、ライト命令を実行する（処理２）。無効信号（Ｌ：０）が選択されているのでバリッドビット制御部５０の出力は０であるから、ライト命令によりキャッシュメモリ４０の該当エントリのバリッドビットは０に設定される。バリッド有効命令を実行し有効信号（Ｈ：０）を選択しても（処理３）、リード命令を実行するときに該当するキャッシュメモリ４０のバリッドビットは０であるから（処理４）、電子制御装置は、メモリチェックのデータをＲＡＭ６０から読み出す。【選択図】図３
2016001380.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＭ（６０）と、
前記ＲＡＭにデータが書き込まれるときに同じデータが書き込まれるキャッシュメモリ（４０）と、
前記ＲＡＭに書き込んだデータを正常に読み出せるか否かのメモリチェックを実行するチェック手段（３０）と、
前記チェック手段が前記メモリチェックを実行するために前記ＲＡＭに書き込んだデータのリード命令を実行する前に、前記メモリチェックのためにデータが書き込まれた前記ＲＡＭのアドレスに対応する前記キャッシュメモリのバリッドビットを無効にするバリッドビット制御手段（３０、５０）と、
を備えることを特徴とする電子制御装置。
【請求項２】
前記バリッドビット制御手段は、前記チェック手段が前記ＲＡＭに書き込んだデータのリード命令を実行した後、リード命令のアドレスに対応する前記バリッドビットを有効にすることを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記バリッドビット制御手段が前記バリッドビットを有効にした後、前記チェック手段は、前記ＲＡＭに書き込んだデータのリード命令を実行し、前記ＲＡＭに書き込んだデータを前記キャッシュメモリから正常に読み出せるか否かをチェックすることを特徴とする請求項２に記載の電子制御装置。
【請求項４】
前記バリッドビット制御手段は、前記ＲＡＭへのライト命令、ならびに前記ＲＡＭからのリード命令が実行されることにより、ライトアドレスおよびリードアドレスに対応する前記バリッドビットを有効にするか無効にするかを設定モードに応じて決定するモード決定部（５０）を有し、前記メモリチェックのために前記ＲＡＭにデータが書き込まれる前に前記モード決定部の前記設定モードを前記バリッドビットを無効にする無効状態にすることを特徴とする請求項１から３のいずれか一項に記載の電子制御装置。
【請求項５】
前記バリッドビット制御手段は、設定命令により前記設定モードを設定することを特徴とする請求項４に記載の電子制御装置。
【請求項６】
前記バリッドビット制御手段は、制御レジスタ（７０）に制御データを書き込むことにより前記設定モードを設定することを特徴とする請求項４に記載の電子制御装置。
【請求項７】
前記バリッドビット制御手段は、前記ＲＡＭにデータを書き込むときの終了タイミングで前記設定モードを有効状態にすることを特徴とする請求項４から６のいずれか一項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＭにデータが書き込まれるときに同じデータが書き込まれるキャッシュメモリを備える電子制御装置において、ＲＡＭに書き込んだデータを正常に読み出せるか否かのメモリチェックを行う技術に関する。
【背景技術】
【０００２】
電子制御装置において、ＲＡＭに書き込んだデータを正常に読み出せるか否かのメモリチェックを行うことが知られている（例えば、特許文献１参照。）。
しかし、ＲＡＭにデータが書き込まれるときに同じデータが書き込まれるキャッシュメモリを備える電子制御装置の場合、書き込んだデータをＲＡＭから読み出すリード命令を実行すると、キャッシュメモリからデータが読み出されるので、ＲＡＭに対するメモリチェックを実行できないという問題がある。
【０００３】
そこで、メモリチェックを実行する場合、すべてのキャッシュメモリを一時的に無効にし、書き込んだデータをキャッシュメモリからではなくＲＡＭから読み出すことが考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３１２２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メモリチェックのためにすべてのキャッシュメモリを無効にすると、メモリチェックの対象ではない領域のＲＡＭのデータまで対応するキャッシュメモリが無効にされＲＡＭからデータが読み出されるので、メモリチェックの対象ではない領域のＲＡＭのデータの読み出し速度が低下するという問題が生じる。
【０００６】
本発明は、上記問題を解決するためになされたものであり、ＲＡＭにデータが書き込まれるときに同じデータが書き込まれるキャッシュメモリを備える電子制御装置において、ＲＡＭに対するメモリチェックの対象アドレスに対応するキャッシュメモリだけを無効にしてメモリチェックを実行する電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の電子制御装置は、ＲＡＭと、キャッシュメモリと、チェック手段と、バリッドビット制御手段と、を備える。
キャッシュメモリにはＲＡＭにデータが書き込まれるときに同じデータが書き込まれる。チェック手段は、ＲＡＭに書き込んだデータを正常に読み出せるか否かのメモリチェックを実行する。
【０００８】
バリッドビット制御手段は、チェック手段がメモリチェックを実行するためにＲＡＭに書き込んだデータのリード命令を実行する前に、メモリチェックのためにデータが書き込まれたＲＡＭのアドレスに対応するキャッシュメモリのバリッドビットを無効にする。
【０００９】
この構成によれば、メモリチェックのためにＲＡＭに書き込んだデータを読み出すときに、リードアドレスに対応するキャッシュメモリは無効になっているので、リード命令を実行すると、キャッシュメモリからではなくＲＡＭからデータが読み出される。
【００１０】
したがって、すべてのキャッシュメモリを無効にすることなく、メモリチェックの対象アドレスのＲＡＭに書き込んだデータをＲＡＭから読み出し、書き込んだデータを正常に読み出せるか否かのメモリチェックを実行できる。  
【００１１】
尚、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態による電子制御装置を示すブロック図。
【図２】キャッシュメモリへのデータの書き込みを説明する図。
【図３】第１実施形態によるメモリチェックを説明する図。
【図４】第２実施形態によるメモリチェックを説明する図。
【図５】第３実施形態によるメモリチェックを説明する図。
【発明を実施するための形態】
【００１３】
以下、本発明が適用された実施形態について、図面を用いて説明する。
［１．第１実施形態］
［１−１．構成］
図１に示す電子制御装置（ＥＣＵ）１０は、マイクロプロセッサ２０とＲＡＭ６０とを備える。
【００１４】
マイクロプロセッサ２０は、ＣＰＵ３０と、キャッシュメモリ４０と、バリッドビット制御部５０とを備える。
ＣＰＵ３０は、ＲＡＭ６０または図示しないＲＯＭに記憶されたプログラムを実行することにより、所定の処理を実行する。
【００１５】
キャッシュメモリ４０は、所謂ライトスルー方式のキャッシュメモリであり、ＣＰＵ３０がＲＡＭ６０にデータを書き込むときに同じデータが書き込まれる。
バリッドビット制御部５０は、ＲＡＭ６０に対するライト命令、ならびにＲＡＭ６０に対するリード命令が実行されるときに、ライトアドレスおよびリードアドレスに対応するキャッシュメモリ４０のバリッドビットを無効にするか有効にするかの設定モードを決定する回路である。
【００１６】
図２に示すように、本実施形態では、アドレスおよびデータは３２ビット長である。アドレスは、２０ビットのタグと１０ビットのインデックスとで表わされるワードアドレスである。
【００１７】
キャッシュメモリ４０は、異なるインデックスに対応したエントリを有している。キャッシュメモリ４０の各エントリは、１ビットのバリッドビットと、２０ビットのタグと、３２ビットのデータとで構成されている。バリッドビットは、１のとき該当するエントリが有効であり、０のとき該当するエントリは無効であることを示している。
【００１８】
ＲＡＭ６０にデータを書き込むときには、ライトアドレスのインデックスに対応するキャッシュメモリ４０のエントリにタグとデータとが書き込まれ、データの書き込み処理によりバリッドビット制御部５０の入力であるバリッド信号は１になる。
【００１９】
そして、バリッドビット制御部５０の他の入力として、キャッシュメモリ４０のバリッドビットの設定モードとして有効状態を表わす有効信号、あるいはバリッドビットの設定モードとして無効状態を表わす無効信号のいずれかが選択されることにより、ライトアドレスのインデックスに対応するキャッシュメモリ４０のバリッドビットに１または０のいずれかが設定される。
【００２０】
ＲＡＭ６０からデータを読み出すとき、リードアドレスのインデックスに対応するキャッシュメモリ４０のエントリのタグがリードアドレスのタグと一致し、バリッドビットが１であれば、ＲＡＭ６０からではなくキャッシュメモリ４０からデータが読み出される。
【００２１】
リードアドレスのインデックスに対応するキャッシュメモリ４０のエントリのタグがリードアドレスのタグと一致しないか、リードアドレスのインデックスに対応するキャッシュメモリ４０のエントリのバリッドビットが０の場合、キャッシュメモリ４０からではなくＲＡＭ６０からデータが読み出される。
【００２２】
そして、リードアドレスのインデックスに対応するキャッシュメモリ４０のエントリにタグとデータとが書き込まれ、データの読み出し処理によりバリッドビット制御部５０の入力であるバリッド信号は１になる。
【００２３】
そして、バリッドビット制御部５０の他の入力として有効信号または無効信号のいずれかが選択されることにより、リードアドレスのインデックスに対応するキャッシュメモリ４０のバリッドビットに１または０のいずれかが設定される。
【００２４】
［１−２．処理］
次に、電子制御装置１０が実行するメモリチェック処理について、図３を用いて順に説明する。
【００２５】
（処理１）ＣＰＵ３０は、バリッドビット無効命令を実行し、バリッドビット制御部５０の設定モードとして、有効信号（Ｈ：１）または無効信号（Ｌ：０）のうち無効信号を選択する。
【００２６】
（処理２）ＣＰＵ３０はＲＡＭ６０に対するライト命令を実行する。ライト命令により、ライトアドレスに対応するＲＡＭ６０の位置にライトデータが書き込まれる。さらに、ライトアドレスのインデックスに対応するキャッシュメモリ４０のエントリに、ライトアドレスのタグとライトデータとが書き込まれる。
【００２７】
しかし、（処理１）のバリッドビット無効命令によりバリッドビット制御部５０の入力として無効信号（Ｌ：０）が選択されているので、ライト命令によりバリッド信号が１になっても、バリッドビット制御部５０の出力は０になる。したがって、キャッシュメモリ４０の該当エントリのバリッドビットは０に設定される。
【００２８】
（処理３）ＣＰＵ３０は、バリッドビット有効命令を実行し、バリッドビット制御部５０の設定モードとして、有効信号（Ｈ：１）または無効信号（Ｌ：０）のうち有効信号を選択する。
【００２９】
（処理４）ＣＰＵ３０は、（処理２）でライト命令を実行したライトアドレスをリードアドレスとしてリード命令を実行する。リード命令を実行するリードアドレスのインデックスに対応するキャッシュメモリ４０のバリッドビットは０になっているので、キャッシュメモリ４０のタグとリードアドレスのタグとが一致していてもキャッシュメモリ４０からデータは読み出されず、ＲＡＭ６０からデータが読み出される。
【００３０】
そして、リードアドレスのインデックスに対応するキャッシュメモリ４０のエントリにタグとデータとが書き込まれる。（処理３）のバリッドビット有効命令によりバリッドビット制御部５０の入力として有効信号（Ｈ：１）が選択されているので、リード命令によりバリッド信号が１になることにより、バリッドビット制御部５０の出力は１になる。したがって、キャッシュメモリ４０の該当エントリのバリッドビットは１に設定される。
【００３１】
ＣＰＵ３０は、ＲＡＭ６０から読み出したデータと、（処理２）のライト命令で書き込んだデータとが一致しているか否かを判定することにより、ＲＡＭ６０のメモリチェックを行う。
【００３２】
（処理５）さらにＣＰＵ３０は、（処理４）のリード命令と同じリードアドレスでリード命令を実行する。（処理４）のリード命令によりリードアドレスのインデックスに対応するキャッシュメモリ４０のエントリのバリッドビットは１に設定されているので、今回のリード命令ではキャッシュメモリ４０からデータが読み出される。
【００３３】
ＣＰＵ３０は、キャッシュメモリ４０から読み出したデータと、（処理２）のライト命令で書き込んだデータとが一致しているか否かを判定することにより、キャッシュメモリ４０のメモリチェックを行う。
【００３４】
［１−３．効果］
以上説明した第１実施形態によれば、以下の効果が得られる。
［１Ａ］ＲＡＭ６０のメモリチェックを行うアドレスのインデックスに対応するキャッシュメモリ４０のエントリのバリッドビットをメモリチェックの１回目のリード命令の前に無効にするので、キャッシュメモリ４０からではなくＲＡＭ６０から読み出したデータでメモリチェックを実行できる。
【００３５】
［１Ｂ］ＲＡＭ６０のメモリチェックを行うアドレスのインデックスに対応するキャッシュメモリ４０のエントリのバリッドビットだけを無効にするので、メモリチェックを行わないインデックスに対応するキャッシュメモリ４０のエントリを有効にした状態で使用できる。
【００３６】
［２．第２実施形態］
［２−１．第１実施形態との相違点］
図４に示すように、第２実施形態では、メモリチェックのバリッドビット無効命令およびバリッドビット有効命令を使用せず、バリッドビット制御レジスタ７０の該当ビットの値を設定する設定命令により、バリッドビット制御部５０の入力として有効信号（Ｈ：１）または無効信号（Ｌ：０）のいずれを選択するかを設定する。バリッドビット制御レジスタ７０として、ＣＰＵ３０の内部レジスタを使用してもよいし、アドレス空間にマッピングされたものを使用してもよい。
【００３７】
バリッドビット制御レジスタ７０に制御データとして０ｘ００００００００を書き込みバリッドビット制御レジスタ７０のビット０を０に設定することが、第１実施形態の（処理１）でバリッドビット無効命令を実行することに相当する。また、バリッドビット制御レジスタ７０に制御データとして０ｘ０００００００１を書き込みバリッドビット制御レジスタ７０のビット０を１に設定することが、第１実施形態の（処理３）でバリッドビット有効命令を実行することに相当する。
【００３８】
［２−２．効果］
以上説明した第２実施形態によれば、前述した第１実施形態の効果［１Ａ］、［１Ｂ］に加え、以下の効果が得られる。
【００３９】
［２Ａ］通常のＣＰＵであれば備えている制御レジスタに対するライト命令を使用してキャッシュメモリ４０のバリッドビットを設定するので、バリッドビット無効命令、バリッドビット有効命令のような専用命令を新たに命令セットに加える必要がない。
【００４０】
［３．第３実施形態］
［３−１．第１実施形態、第２実施形態との相違点］
図５に示すように、第３実施形態では、（処理１）でバリッドビット無効命令を実行してから、（処理２）でＲＡＭ６０に対するライト命令を実行するときに、ライト命令の終了タイミングであるライトイネーブル（ＷＥ）信号の立ち上がりで、バリッドビット制御部５０の入力として有効信号（Ｈ：１）を選択する回路を採用する。ライトイネーブル（ＷＥ）信号の立ち下がりから立ち上がりの間では、キャッシュメモリ４０とＲＡＭ６０とにデータが書き込まれる。
【００４１】
ライトイネーブル（ＷＥ）信号が立ち上がるまでは、（処理１）のバリッドビット無効命令によりバリッドビット制御部５０の入力として無効信号（Ｌ：０）が選択されているので、ライト命令によりバリッド信号が１になっても、バリッドビット制御部５０の出力は０になる。したがって、キャッシュメモリ４０の該当エントリのバリッドビットは０に設定される。
【００４２】
そして、ライトイネーブル（ＷＥ）信号の立ち上がりで、バリッドビット制御部５０の入力として有効信号（Ｈ：１）が選択される。つまり、第１実施形態で（処理３）のバリッドビット有効命令を実行した状態になる。したがって、ライト命令の次に（処理３）、（処理４）でリード命令を２回続けて実行することにより、ＲＡＭ６０およびキャッシュメモリ４０のメモリチェックを実行できる。
【００４３】
［３−２．効果］
以上説明した第３実施形態によれば、前述した第１実施形態の効果［１Ａ］、［１Ｂ］に加え、以下の効果が得られる。
【００４４】
［３Ａ］ライト命令を実行することにより、自動的にバリッドビット制御部５０の入力として有効信号が選択されるので、バリッドビット有効命令を実行する処理を省略できる。
【００４５】
［他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を取り得る。
【００４６】
上記実施形態では、メモリチェックのためにＲＡＭ６０に対するライト命令を実行し、バリッドビット制御部５０の入力として有効信号が選択されてからＲＡＭ６０に対するリード命令を２回続けて実行し、ＲＡＭ６０およびキャッシュメモリ４０のメモリチェックを実行した。これに対し、リード命令を１回だけ実行し、ＲＡＭ６０のメモリチェックだけを実行してもよい。
【００４７】
上記実施形態における一つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を一つの構成要素に統合させたりしてもよい。
また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。また、上記実施形態の構成の一部を、他の上記実施形態の構成に対して付加または置換してもよい。
【００４８】
尚、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
上述した電子制御装置１０の他、当該電子制御装置を構成要素とするシステム、当該電子制御装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した記録媒体、メモリチェック方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００４９】
１０：電子制御装置、３０：ＣＰＵ（チェック手段、バリッドビット制御手段）、４０：キャッシュメモリ、５０：バリッドビット制御部（バリッドビット制御手段、モード決定部）、６０：ＲＡＭ、７０：バリッドビット制御レジスタ（制御レジスタ）
【図１】
2016001380.tif 000003
【図２】
2016001380.tif 000004
【図３】
2016001380.tif 000005
【図４】
2016001380.tif 000006
【図５】
2016001380.tif 000007