JP5971211B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP5971211B2
JP5971211B2 JP2013163504A JP2013163504A JP5971211B2 JP 5971211 B2 JP5971211 B2 JP 5971211B2 JP 2013163504 A JP2013163504 A JP 2013163504A JP 2013163504 A JP2013163504 A JP 2013163504A JP 5971211 B2 JP5971211 B2 JP 5971211B2
Authority
JP
Japan
Prior art keywords
interrupt
instruction
prefetch buffer
electronic control
buffer
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.)
Active
Application number
JP2013163504A
Other languages
English (en)
Other versions
JP2015032265A (ja
Inventor
弘樹 中里
弘樹 中里
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 JP2013163504A priority Critical patent/JP5971211B2/ja
Publication of JP2015032265A publication Critical patent/JP2015032265A/ja
Application granted granted Critical
Publication of JP5971211B2 publication Critical patent/JP5971211B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、プリフェッチバッファサイズを変更可能な電子制御装置に関する。
従来、プリフェッチバッファサイズを変更する電子制御装置の一例として、特許文献1に開示されたデータプロセッサがある。このデータプロセッサは、命令が16ビット長か32ビット長かでプリフェッチバッファサイズを切り替える。
特表2009−530753号公報
しかしながら、上記データプロセッサは、命令長が固定の場合、キャッシュヒット率を向上させることができない可能性がある。また、上記データプロセッサは、割り込み処理イベントが多発するシステムに適用した場合においても、キャッシュヒット率を向上させることができない可能性がある。
本発明は、上記問題点に鑑みなされたものであり、割り込み処理イベントが多発する場合であっても、キャッシュヒット率を向上させることができる電子制御装置を提供することを目的とする。
上記目的を達成するために本発明は、
割り込み処理のイベントが発生する電子制御装置であって、
割り込み禁止であるか割り込み許可であるかを判定する判定手段(S10,S110)と、
キャッシュメモリに転送されるデータをプリフェッチするプリフェッチバッファとしての、第一プリフェッチバッファ(31)及び第一プリフェッチバッファよりもサイズが大きい第二プリフェッチバッファ(32)と、
プリフェッチするプリフェッチバッファとして第一プリフェッチバッファ及び第二プリフェッチバッファのいずれか一方を選択することで、プリフェッチバッファのサイズを変更するものであり、判定手段によって割り込み許可と判定された場合は第一プリフェッチバッファを選択し、判定手段によって割り込み禁止と判定された場合は第二プリフェッチバッファを選択するサイズ変更手段(S20,S30,S120,S130)と、を備えることを特徴とする。
割り込み禁止状態では、プログラムが順に実行されるので、プリフェッチが有効に働く。このため、プリフェッチバッファは、割り込み禁止状態では、サイズが大きいほうが望ましい。一方、割り込み許可状態では、割り込みが発生するとプログラムがプリフェッチ範囲内から外れるアドレスへジャンプする。このため、プリフェッチバッファのサイズが大きいと有用なキャッシュメモリを追い出してしまう。従って、プリフェッチバッファは、割り込み許可状態では、サイズが小さいほうが望ましい。
そこで、本発明は、プリフェッチバッファとして、第一プリフェッチバッファと、第一プリフェッチバッファよりもサイズが大きい第二プリフェッチバッファとを備えている。また、本発明は、割り込み禁止であるか割り込み許可であるかを判定する。
そして、本発明は、割り込み許可と判定された場合は第一プリフェッチバッファを選択し、判定手段によって割り込み禁止と判定された場合は第二プリフェッチバッファを選択する。このようにして、本発明は、プリフェッチバッファのサイズを変更する。よって、本発明は、割り込み禁止状態と割り込み許可状態とで最適なプリフェッチバッファサイズを選択でき、キャッシュヒット率を向上させることができる。
なお、特許請求の範囲およびこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
実施形態における電子制御装置の概略構成を示すブロック図である。 プログラムコードの一例を示すイメージ図である。 実施形態における電子制御装置の処理動作を示すフローチャートである。 プリフェッチバッファの大小夫々の特徴を示す表である。 (a)はサイズが小さいプリフェッチバッファとキャッシュメモリとの関係を示すイメージ図であり、(b)はサイズが大きいプリフェッチバッファとキャッシュメモリとの関係を示すイメージ図である。 (a)はメインプログラムとキャッシュメモリとの関係を示すイメージ図であり、(b)は割り込みプログラムと、キャッシュメモリとの関係を示すイメージ図である。 変形例1におけるステータスレジスタと割り込み検出回路の概略構成を示すイメージ図である。 変形例1における電子制御装置の処理動作を示すフローチャートである。 変形例2における命令追加部とプログラムコードの概略構成を示すイメージ図である。 変形例3における電子制御装置の概略構成を示すブロック図である。 クランク角信号を示す図面である。
以下、本発明の実施形態を図に基づいて説明する。
図1に示すように、電子制御装置は、主に、CPU10、命令キャッシュメモリ20、プリフェッチバッファ切替機構30、フラッシュROM40などを備えて構成されている。また、電子制御装置は、これらの他にも、RAM50、インストラクションバス60、データバス70などを備えるものであってもよい。この電子制御装置は、割り込み処理のイベントが発生するものであって、例えば車両用の電子制御装置やその他の電子制御装置に適用することができる。なお、CPUは、Central Processing Unitの略である。ROMは、Read Only Memoryの略である。RAMは、Random Access Memoryの略である。
CPU10は、命令デコーダ回路などを備え、フラッシュROM20に記憶されたプログラムコード41における命令を順に読み込み、読み込んだ命令に従って処理を実行する。図2に示すように、プログラムコード41は、例えば、割り込み禁止命令や割り込み許可命令などを含む。よって、CPU10は、割り込み禁止命令や割り込み許可命令などを読み込む。以下、割り込み禁止命令は、DI命令とも記載する。また、割り込み許可命令は、EI命令とも記載する。なお、このプログラムコード41は、周知技術であるため詳しい説明は省略する。
また、フラッシュROM20から読み出した命令は、第一プリフェッチバッファ31もしくは第二プリフェッチバッファ32にプリフェッチされる。また、第一プリフェッチバッファ31もしくは第二プリフェッチバッファ32にプリフェッチされた命令は、命令キャッシュメモリ20に転送される。後ほど説明するが、第一プリフェッチバッファ31と第二プリフェッチバッファ32とはサイズが異なる。そして、CPU10は、プリフェッチするプリフェッチバッファとして第一プリフェッチバッファ31及び第二プリフェッチバッファ32のいずれか一方を選択することで、プリフェッチバッファのサイズを変更する。
命令キャッシュメモリ20は、インストラクションバス60を介してCPU10と接続されている。また、命令キャッシュメモリ20は、スイッチ33を介して、第一プリフェッチバッファ31及び第二プリフェッチバッファ32と接続可能に構成されている。なお、命令キャッシュメモリ20は、周知技術であるため詳しい説明は省略する。
プリフェッチバッファ切替機構30は、第一プリフェッチバッファ31、第二プリフェッチバッファ32に加えて、スイッチ33を備えて構成されている。この第一プリフェッチバッファ31及び第二プリフェッチバッファ32は、命令キャッシュメモリ20に対する命令プリフェッチ機構(先読み)である。命令プリフェッチ機構とは、キャッシュヒット率を向上させるための機構である。命令プリフェッチ機構は、キャッシュミス時に、ハードウェア上搭載しているプリフェッチバッファ分(例えば、実行する命令+64バイト)のみを命令キャッシュメモリに転送するものである。よって、本実施形態においては、キャッシュミス時に、第一プリフェッチバッファ31にプリフェッチされた命令、又は第二プリフェッチバッファ32にプリフェッチされた命令を、命令キャッシュメモリ20に転送することになる。
また、上述のように、第一プリフェッチバッファ31と第二プリフェッチバッファ32は、サイズが異なる。つまり、プリフェッチバッファ切替機構30は、第一プリフェッチバッファ31と、第一プリフェッチバッファ31よりもサイズが大きい第二プリフェッチバッファ32とを備えている。例えば、第一プリフェッチバッファ31を16バイト、第二プリフェッチバッファ32を64バイトとすることができる。また、第一プリフェッチバッファ31及び第二プリフェッチバッファ32は、フラッシュROM40及びRAM50と接続されている。なお、RAM50は、データバス70を介してCPU10と接続されている。このRAM50は、周知技術であるため詳しい説明は省略する。
スイッチ33は、第一プリフェッチバッファ31と第二プリフェッチバッファ32のいずれか一方に接続可能なものである。スイッチ33は、命令キャッシュメモリ20と第一プリフェッチバッファ31とを接続している状態、及び命令キャッシュメモリ20と第二プリフェッチバッファ32とを接続している状態のいずれかの状態とすることができる。また、命令キャッシュメモリ20と第一プリフェッチバッファ31とがスイッチ33で接続されている状態は、プリフェッチバッファのサイズが小の状態、と称することができる。一方、命令キャッシュメモリ20と第二プリフェッチバッファ32とがスイッチ33で接続されている状態は、プリフェッチバッファのサイズが大の状態、と称することができる。なお、図1は、第一プリフェッチバッファ31が選択されている状態を示している。
このスイッチ33は、CPU10によって、接続先が第一プリフェッチバッファ31及び第二プリフェッチバッファ32のいずれかに切り替えられる。
よって、CPU10は、スイッチ33を用いて、第一プリフェッチバッファ31及び第二プリフェッチバッファ32のいずれか一方を選択することで、プリフェッチバッファのサイズを変更する、と言い換えることができる。
フラッシュROM40は、プログラムコード41などが記憶されている。フラッシュROM40は、第一プリフェッチバッファ31及び第二プリフェッチバッファ32と接続されており、且つ、データバス70を介してCPU10と接続されている。このフラッシュROM40は、周知技術であるため詳しい説明は省略する。
ここで、図4〜図5を用いて、プリフェッチバッファのサイズの大小夫々の特徴に関して説明する。なお、一例として、16バイトのプリフェッチバッファ(バッファサイズ小)と、64バイトのプリフェッチバッファ(バッファサイズ大)を採用して比較する。また、本実施形態においては、第一プリフェッチバッファ31がバッファサイズ小に相当し、第二プリフェッチバッファ32がバッファサイズ大に相当する。また、表4では、プリフェッチバッファをプリフェッチと記載しており、命令キャッシュメモリをキャッシュと記載している。
図4に示すように、連続命令実行時のキャッシュヒット率は、バッファサイズ小よりもバッファサイズ大の方が高い。また、プリフェッチバッファから命令キャッシュメモリへの転送時間は、バッファサイズ大よりもバッファサイズ小の方が短い。そして、有用格納済みキャッシュ置き換え量は、バッファサイズ小よりもバッファサイズ大の方が大きい。
まず、バッファサイズ小とバッファサイズ大の夫々における連続命令実行時のキャッシュヒット率に関して説明する。ここでは、命令長は4バイトとし、128バイトの命令群(128/4=32命令)を連続実行するものとする。
サイズ小のプリフェッチバッファの場合、16バイトであるため4命令(キャッシュミス1、キャッシュヒット3)となる。32命令では、8倍となるため、キャッシュミス8、キャッシュヒット24となる。よって、キャッシュヒット率は、24/32で75%となる。
これに対して、サイズ大のプリフェッチバッファの場合、64バイトであるため16命令(キャッシュミス1、キャッシュヒット15)となる。32命令では、2倍となるため、キャッシュミス2、キャッシュヒット30となる。よって、キャッシュヒット率は、30/32で94%となる。
このように、割込み禁止状態や割り込みが発生しない状態のようなプログラム連続実行時は、バッファサイズ小の場合、一度にプリフェッチしてくるサイズが小のため、バッファサイズ大の場合よりもキャッシュヒット率が下がる。
次に、バッファサイズ小とバッファサイズ大の夫々におけるキャッシュ転送時間に関して説明する。ここでは、転送ビット幅が64ビット幅だった場合の転送時間(サイクル)を比較する。
サイズ小のプリフェッチバッファの場合、16バイト=18×8で128ビットである。よって、128/64で2サイクル必要となる。これに対して、サイズ大のプリフェッチバッファの場合、64バイト=64×8で512ビットである。よって、512/64で8サイクル必要となる。このように、キャッシュミス時にプリッフェッチバッファのデータをキャッシュメモリに転送する時間は、バッファサイズが大きいほど長くなる。
次に、バッファサイズ小とバッファサイズ大の夫々における有用格納済みキャッシュ置き換え量に関して説明する。ここでは、図5を用いて説明する。
まず、図5(a)を用いて、サイズ小のプリフェッチバッファ31aに関して説明する。この場合、プリフェッチにより、命令キャッシュメモリ20aに格納されていた別の処理で有用なデータが、16バイト(4命令)分追い出されるが、それ以降のデータは健在となる。
つまり、フラッシュROM40aからプリフェッチバッファ31aにプリフェッチされた命令が命令キャッシュメモリ20aに転送された場合、命令キャッシュメモリ20aにおける第一領域20a1の有用なデータ(4命令)分は追い出される。しかしながら、フラッシュROM40aからプリフェッチバッファ31aにプリフェッチされた命令が命令キャッシュメモリ20aに転送された場合であっても、第二領域20a2の有用なデータは追い出されない。なお、別の処理で有用なデータとは、別の処理で再利用されるデータである。
これに対して、図5(a)を用いて、サイズ大のプリフェッチバッファ32aに関して説明する。この場合、プリフェッチにより、命令キャッシュメモリ20aに格納されていた別の処理で有用なデータは64バイト(16命令)分追い出されてしまい、別の処理実行時にキャッシュミスとなってしまう。
つまり、フラッシュROM40aからプリフェッチバッファ32aにプリフェッチされた命令が命令キャッシュメモリ20aに転送された場合、命令キャッシュメモリ20aの有用なデータがプリフェッチバッファ32aから転送された命令に置き換えられる。よって、命令キャッシュメモリ20aにおける有用なデータが消滅してしまう。このように、有用格納済みキャッシュ置き換え量は、バッファサイズ小よりもバッファサイズ大の方が大きくなる。
ここで、図6を用いて、割り込み許可時の動作に関して説明する。図6は、サイズ小のプリフェッチバッファの動作を示している。ここでは、メインプログラム41aの実行時に、第一割り込み、又は第二割り込みが発生する例を採用している。また、第一割り込みが発生すると、第一割り込みプログラム41bを実行することになる。また、第二割り込みが発生すると、第二割り込みプログラム41cを実行することになる。
なお、第一割り込みプログラム41bの実行時に使用されるデータを第一割り込みで使用されるデータとも称する。同様に、第二割り込みプログラム41cの実行時に使用されるデータを第二割り込みで使用されるデータとも称する。
割込み許可時は、サイズ小のプリフェッチバッファの場合、プリフェッチ時にメインプログラム41aで使用されるデータをプリフェッチして命令キャッシュメモリ20bに転送するサイズが小である。このため、図6(a)に示すように、命令キャッシュメモリ20bは、メインプログラム41aで使用されるデータ、第一割り込みプログラム41bで使用されるデータ、第二割り込みプログラム41cで使用されるデータを格納できる。
図6(a)の例では、メインプログラム41aで使用されるデータは、命令キャッシュメモリ20bの第一領域20b1に格納できる。また、第一割り込みで使用されるデータは、命令キャッシュメモリ20bの第二領域20b2に格納できる。そして、第二割り込みで使用されるデータは、命令キャッシュメモリ20bの第三領域20b3に格納できる。よって、第一割り込みで使用されるデータ、第二割り込みで使用されるデータが、メインプログラム41a実行時のプリフェッチで消去される確率は、サイズ大のプリフェッチバッファの場合と比較して下がる。
例えば、メインプログラム41aの実行時に第一割り込みが発生した場合は、図6(b)に示すように、第一割り込みで使用されるデータは、命令キャッシュメモリ20bの第二領域20b2に存在している。よって、第一割り込みが発生した場合は、キャッシュヒット状態で開始、実行されるため、第一割り込みの処理時間は短くできる。
同様に、メインプログラム41aの実行時に第二割り込みが発生した場合は、図6(b)に示すように、第二割り込みで使用されるデータは、命令キャッシュメモリ20bの第三領域20b3に存在している。よって、第二割り込みが発生した場合は、キャッシュヒット状態で開始、実行されるため、第二割り込みの処理時間は短くできる。
これに対して、サイズ大のプリフェッチバッファの場合、第一割り込みの処理時間、及び第二割り込みの処理時間は長くなる。つまり、命令キャッシュメモリ20bに存在していた第一割り込みで使用されるデータは、メインプログラム41a実行時のプリフェッチにより、メインプログラム41aで使用されるデータで上書きされて消去される。このため、第一割り込みが発生した場合は、キャッシュミスで開始されるため、割り込み処理の処理時間が長くなってしまう。同様に、命令キャッシュメモリ20bに存在していた第二割り込みで使用されるデータは、メインプログラム41a実行時のプリフェッチにより、メインプログラム41aで使用されるデータで上書きされて消去される。このため、第二割り込みが発生した場合は、キャッシュミスで開始されるため、割り込み処理の処理時間が長くなってしまう。
ここで、図3を用いて、電子制御装置の処理動作に関して説明する。CPU10は、命令デコーダ回路がDI命令又はEI命令を検出すると、図3のフローチャートに示す処理を実行する。
ステップS10では、DI命令であるかEI命令であるかを判定する(判定手段)。つまり、CPU10は、プログラムコード41のDI命令及びEI命令に基づいて、割り込み禁止であるか割り込み許可であるかを判定する。具体的には、CPU10は、命令デコーダ回路がDI命令を検出した場合は割り込み禁止と判定し、命令デコーダ回路がEI命令を検出すると割り込み許可と判定する。なお、命令デコーダ回路がDI命令に相当する命令を検出した場合であっても、割り込み禁止と判定してもよい。同様に、命令デコーダ回路がEI命令に相当する命令を検出した場合であっても、割り込み許可と判定してもよい。
このようにすることで、プログラムコード41にDI命令及びEI命令、或いは、DI命令に相当する命令及びEI命令に相当する命令があれば、割り込み禁止であるか割り込み許可であるかを判定することができる。
ステップS20では、第二プリフェッチバッファ32を選択する(サイズ変更手段)。つまり、CPU10は、ステップS10においてDI命令と判定した場合は第二プリフェッチバッファ32を選択する。このとき、CPU10は、スイッチ33によって、命令キャッシュメモリ20と第二プリフェッチバッファ32とを接続することで、第二プリフェッチバッファ32を選択する。よって、CPU10は、プリフェッチバッファのサイズを大に変更する、と言い換えることができる。また、CPU10は、プリフェッチバッファとして、サイズ大のプリフェッチバッファを選択する、と言い換えることができる。
ステップS30では、第一プリフェッチバッファ31を選択する(サイズ変更手段)。
つまり、CPU10は、ステップS10においてEI命令と判定した場合は第一プリフェッチバッファ31を選択する。このとき、CPU10は、スイッチ33によって、命令キャッシュメモリ20と第一プリフェッチバッファ31とを接続することで、第一プリフェッチバッファ31を選択する。よって、CPU10は、プリフェッチバッファのサイズを小に変更する、と言い換えることができる。また、CPU10は、プリフェッチバッファとして、サイズ小のプリフェッチバッファを選択する、と言い換えることができる。
上述のように、割り込み禁止状態では、プログラムが順に実行されるので、プリフェッチが有効に働く。このため、プリフェッチバッファは、割り込み禁止状態では、サイズが大きいほうが望ましい。
一方、割り込み許可状態では、上述のように、割り込みが発生するとプログラムがプリフェッチ範囲内から外れるアドレスへジャンプする。このため、プリフェッチバッファのサイズが大きいと有用なキャッシュメモリを追い出してしまう。従って、プリフェッチバッファは、割り込み許可状態では、サイズが小さいほうが望ましい。
そこで、上述のように、電子制御装置は、プリフェッチバッファとして、第一プリフェッチバッファ31と、第一プリフェッチバッファ31よりもサイズが大きい第二プリフェッチバッファ32とを備えている。また、CPU10は、割り込み禁止であるか割り込み許可であるかを判定する。
そして、CPU10は、割り込み許可と判定した場合は第一プリフェッチバッファ31を選択し、割り込み禁止と判定した場合は第二プリフェッチバッファ32を選択する。このようにして、CPU10は、プリフェッチバッファのサイズを変更する。よって、CPU10は、割り込み禁止状態と割り込み許可状態とで最適なプリフェッチバッファサイズを選択でき、キャッシュヒット率を向上させることができる。
また、電子制御装置は、プログラムコード41にDI命令及びEI命令、或いは、DI命令に相当する命令及びEI命令に相当する命令があれば、割り込み禁止状態と割り込み許可状態とで最適なプリフェッチバッファサイズを選択できる。つまり、本実施形態の電子制御装置は、プログラムコード41にDI命令及びEI命令、或いは、DI命令に相当する命令及びEI命令に相当する命令があれば、キャッシュヒット率を向上させることができる。
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上述した実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。
(変形例1)
変形例1の電子制御装置は、図7に示すように、CPU10の演算の状態(ステータス)を示すステータスレジスタ10bと、ステータスレジスタ10bに基づいて割り込み禁止及び割り込み許可を検出する割り込み状態検出回路10aとを備えて構成されている。
ステータスレジスタ10bは、フラグビットの集まりであり、例えば、割り込み禁止状態を示す割り込み禁止フラグ及び割り込み許可状態を示す割り込み許可フラグがセットされる。図7に示すように、本変形例では、一例として、割り込み禁止状態の場合にステータスレジスタ10bにおけるビットb5の値が1、割り込み許可状態の場合にステータスレジスタ10bにおけるビットb5の値が0となる例を採用している。つまり、ここでは、1が割り込み禁止状態を示す割り込み禁止フラグに相当し、0が割り込み許可状態を示す割り込み許可フラグに相当する。そして、割り込み状態検出回路10aは、ステータスレジスタ10bにおけるビットb5の値(0か1)に基づいて、割り込み禁止及び割り込み許可を検出する。
ここで、図8を用いて、変形例1における電子制御装置の処理動作に関して説明する。CPU10は、割り込み状態検出回路10aが割り込み禁止状態又は割り込み許可状態を検出すると、図8のフローチャートに示す処理を実行する。
ステップS110では、割り込み禁止状態である否かを判定する(判定手段)。CPU10は、ステータスレジスタ10bにセットされた割り込み禁止フラグ及び割り込み許可フラグに基づいて、割り込み禁止であるか割り込み許可であるかを判定する。具体的には、CPU10は、割り込み状態検出回路10aがステータスレジスタ10bにおけるビットb5の値として1(ビットb5=1)を検出した場合は割り込み禁止と判定して、ステップS120に進む。一方、CPU10は、割り込み状態検出回路10aがステータスレジスタ10bにおけるビットb5の値として0(ビットb5=0)を検出した場合は割り込み許可と判定して、ステップS130に進む。
このようにすることで、ステータスレジスタ10bのビット(フラグ)を参照するだけで、割り込み禁止状態であるか、割り込み許可状態であるかを判定することができる。このため、CPU10に実装しなくても、例えば本状態のコピー(ミラー状態)が周辺I/O回路に実装されていれば、CPU10を設計変更しなくても参照は容易である。
なお、ステップS120での処理は、ステップS20での処理と同様であるため説明は省略する。また、ステップS130での処理は、ステップS30での処理と同様であるため説明は省略する。この変形例1における電子制御装置であっても上述の実施形態と同様の効果を奏することができる。
(変形例2)
変形例2の電子制御装置は、図9に示すように、プログラムコード41からDI命令及びEI命令を検出すると、バッファサイズ大への切替命令及びバッファサイズ小への切替命令を追加する命令追加部10cを備えて構成されている。なお、バッファサイズ小への切替命令は、第一プリフェッチバッファへ31の切替命令である第一切替命令に相当する。一方、バッファサイズ大への切替命令は、第二プリフェッチバッファへ32の切替命令である第二切替命令に相当する。また、追加後プログラムコード41dは、第一切替命令及び第二切替命令が追加されたプログラムコードである。
命令追加部10cは、プログラムコード41を解析するアセンブラを採用することができる。DI命令及びEI命令は、ソースプログラムから生成されたかどうかがアセンブラ言語上で判明する。つまり、命令追加部10cは、アセンブラ言語上で、割り込み禁止であるか割り込み許可であるかを判定する(判定手段)。そして、変形例2の電子制御装置は、アセンブラコードの段階で、バッファサイズの切替命令である第一切替命令及び第二切替命令を発行する。
具体的には、命令追加部10cは、アセンブラコードにて、DI命令を検出したら割り込み禁止と判定して、プログラムコード41に第二切替命令を追加する(命令追加手段)。このとき、命令追加部10cは、DI命令の直後に、第二切替命令を追加する。
逆に、命令追加部10cは、アセンブラコードにて、EI命令を検出したら割り込み許可と判定して、プログラムコード41に第一切替命令を追加する(命令追加手段)。このとき、命令追加部10cは、EI命令の直前に、第一切替命令を追加する。なお、命令追加部10cは、アセンブラの他にもコンパイを採用することができる。
CPU10は、第一切替命令を検出すると、割り込み許可とみなす。そして、CPU10は、第一切替命令を検出すると、スイッチ33によって、命令キャッシュメモリ20と第一プリフェッチバッファ31とを接続することで、第一プリフェッチバッファ31を選択する(サイズ変更手段)。また、CPU10は、第二切替命令を検出すると、割り込み禁止とみなす。そして、CPU10は、スイッチ33によって、命令キャッシュメモリ20と第二プリフェッチバッファ32とを接続することで、第二プリフェッチバッファ32を選択する(サイズ変更手段)。
この変形例2における電子制御装置であっても上述の実施形態と同様の効果を奏することができる。さらに、このように、プリフェッチバッファのサイズ切替命令を実装すれば、命令デコーダ回路を改造したり、割り込み状態検出回路10aを追加したりすることなく、割り込み禁止か割り込み許可かによって、プリフェッチバッファのサイズを変更することができる。なお、第一切替命令及び第二切替命令は、手動で追加してもよい。
(変形例3)
変形例3における電子制御装置は、車両のエンジンECU200に適用すると好ましい。エンジンECU200は、図10に示すように、エンジン用マイコン100を備えて構成されている。そして、エンジン用マイコン100は、上述の電子制御装置に加えて、I/Oバス80、通信I/F91、外部入力ポート92、内部タイマ93、割り込みコントローラ94などを備えて構成されている。また、エンジンECU200は、自身を含む複数の電子制御装置が接続された車載ネットワークにおいて、自身以外の電子制御装置との通信を行う。
つまり、変形例3の電子制御装置は、車両に搭載されるものであり、車両におけるエンジンのクランク角信号が入力されると共に、クランク角信号に基づいてエンジンの制御を行うものである。更に、変形例3の電子制御装置は、車両に搭載されるものであり、自身を含む複数の電子装置が接続された車載ネットワークにおいて、自身以外の電子装置との通信を行うものである。なお、自身以外の電子装置とは、エンジンECU200以外のECUや、通信機能を有したセンサなどを含む。また、ECUは、Electronic Control Unitの略である。I/Oは、Input/Outputの略である。
CPU10は、I/Oバス80を介して、通信I/F91、外部入力ポート92、内部タイマ93、割り込みコントローラ94と接続されている。また、通信I/F91、外部入力ポート92、内部タイマ93、割り込みコントローラ94の夫々は、I/Oバス80を介して接続されている。
通信I/F91は、クランク角センサからクランク角信号が入力される。そして、通信I/F91は、クランク角信号のエッジ(立ち上がりエッジ又は立ち下がりエッジ)を検出し、エッジを検出したタイミングで割り込み要求信号を出力する。本変形例の通信I/F91は、立ち上がりエッジ(↑)の検出タイミングで割り込み要求信号を出力する。
外部入力ポート92は、他の電子制御装置から通信信号データが入力される。外部入力ポート92は、通信信号データの受信完了(↓)のタイミングで割り込み要求信号を出力する。
内部タイマ93は、所定の時間間隔で割り込み要求信号を出力する。内部タイマ93は、例えば、1ms経過毎、2ms経過毎、4ms経過毎に割り込み要求信号を出力する(内部タイマイベント)。
割り込みコントローラ94は、通信I/F91、外部入力ポート92、内部タイマ93の夫々から割り込み要求信号が入力される。このように、割り込みコントローラ94に割り込み要求信号が入力されることで、割り込み要求が発生する。従って、エンジンECU200は、クランク角信号に基づく割り込み要求、通信信号データに基づく割り込み要求、内部タイマイベント(言い換えると、時間同期イベント)による割り込み要求など、多数の割り込み要求が発生する。
例えば、クランク角信号に基づく割り込み要求は、クランク角信号の立ち上がりエッジの検出タイミングで発生する。具体的には、クランク角信号に基づく割り込み要求は、10CA(CAはクランクアングル)毎に発生する。なお、クランク角センサは、周知技術であるため詳しい説明は省略するが、例えば、クランク軸に固定されたシグナルロータの外周部に等間隔で設けられた突起が対向する毎にクランク角信号を出力する。そして、シグナルロータの外周部は、突起が2歯分かけた欠歯部が設けられている。よって、図11に示すように、クランク角信号は、1回転に付き2歯分欠けている(36−2)。
また、エンジン回転数NE(rpm)は、(60×106)÷(360CAの時間(μs))で算出できる。また、この式を変形すると、360CAの時間(μs)=(60×106)÷エンジン回転数NE(rpm)となる。
ここで、エンジン回転数NE=5000(rpm)の場合だと、360CAの時間(μs)=(60×106)÷5000(rpm)=12000(μs)となる。この場合、1回あたりの割り込み(つまり、2歯欠けている箇所は除く最短間隔)は、12000÷36=333.33(μs)となる。よって、エンジン回転数NEが5000(rpm)の場合は、333.33(μs)毎にクランク角信号に基づく割り込み要求が発生することになる。
また、このようにして算出した時間、すなわち、クランク角信号に基づく割り込み要求が発生する時間的間隔は、エンジン回転数NEに比例して短くなる。このため、予め最適なプリフェッチバッファのサイズを静的に決定することは難しい。つまり、プリフェッチバッファのサイズは、クランク角信号に基づく割り込み要求や、通信信号データに基づく割り込み要求などの非同期イベントの発生状況により変化する。
このような特徴のエンジンECU200に対して、割り込み許可状態の場合は第一プリフェッチバッファ31を選択し、割り込み禁止状態の場合は第二プリフェッチバッファ32を選択する電子制御装置を適用すると、キャッシュヒット率を向上でき好適である。
10 CPU、10a 割り込み状態検出回路、10b ステータスレジスタ、10c 命令追加部、20 命令キャッシュメモリ、20a 命令キャッシュメモリ、20a1 第一領域、20a2 第二領域、20b 命令キャッシュメモリ、20b1 第一領域、20b2 第二領域、20b3 第三領域、30 プリフェッチバッファ切替機構、31 第一プリフェッチバッファ、31a プリフェッチバッファ、32 第二プリフェッチバッファ、32a プリフェッチバッファ、33 スイッチ、40 フラッシュROM、40a フラッシュROM、41 プログラムコード、41a メインプログラム、41b 第一割り込みプログラム、41c 第二割り込みプログラム、41d 追加後プログラムコード50 RAM、60 インストラクションバス、70 データバス

Claims (6)

  1. 割り込み処理のイベントが発生する電子制御装置であって、
    割り込み禁止であるか割り込み許可であるかを判定する判定手段(S10,S110)と、
    キャッシュメモリに転送されるデータをプリフェッチするプリフェッチバッファとしての、第一プリフェッチバッファ(31)及び前記第一プリフェッチバッファよりもサイズが大きい第二プリフェッチバッファ(32)と、
    プリフェッチする前記プリフェッチバッファとして前記第一プリフェッチバッファ及び前記第二プリフェッチバッファのいずれか一方を選択することで、前記プリフェッチバッファのサイズを変更するものであり、前記判定手段によって割り込み許可と判定された場合は前記第一プリフェッチバッファを選択し、前記判定手段によって割り込み禁止と判定された場合は前記第二プリフェッチバッファを選択するサイズ変更手段(S20,S30,S120,S130)と、を備えることを特徴とする電子制御装置。
  2. 前記判定手段(S10)は、プログラムコードの割り込み禁止命令及び割り込み許可命令に基づいて、割り込み禁止であるか割り込み許可であるかを判定することを特徴とする請求項1に記載の電子制御装置。
  3. 割り込み禁止状態を示す割り込み禁止フラグ及び割り込み許可状態を示す割り込み許可フラグがセットされるレジスタ(10b)を備え、
    前記判定手段(S110)は、前記レジスタにセットされた前記割り込み禁止フラグ及び前記割り込み許可フラグに基づいて、割り込み禁止であるか割り込み許可であるかを判定することを特徴とする請求項1に記載の電子制御装置。
  4. プログラムコードの割り込み許可命令を検出した場合は前記第一プリフェッチバッファへの切替命令である第一切替命令をプログラムコードに追加すると共に、前記プログラムコードの割り込み禁止命令を検出した場合は前記第二プリフェッチバッファへの切替命令である第二切替命令を前記プログラムコードに追加する命令追加手段(10c)を備え、
    前記サイズ変更手段は、前記プログラムコードに前記第一切替命令を検出した場合は前記判定手段によって割り込み許可と判定されたとみなして前記第一プリフェッチバッファを選択し、前記プログラムコードに前記第二切替命令を検出した場合は前記判定手段によって割り込み禁止と判定されたとみなして前記第二プリフェッチバッファを選択することを特徴とする請求項1に記載の電子制御装置。
  5. 車両に搭載されるものであり、前記車両におけるエンジンのクランク角信号が入力されると共に、前記クランク角信号に基づいて前記エンジンの制御を行うことを特徴とする請求項1乃至4のいずれか一項に記載の電子制御装置。
  6. 車両に搭載されるものであり、自身を含む複数の電子装置が接続された車載ネットワークにおいて、自身以外の電子装置との通信を行うことを特徴とする請求項1乃至5のいずれか一項に記載の電子制御装置。
JP2013163504A 2013-08-06 2013-08-06 電子制御装置 Active JP5971211B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013163504A JP5971211B2 (ja) 2013-08-06 2013-08-06 電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013163504A JP5971211B2 (ja) 2013-08-06 2013-08-06 電子制御装置

Publications (2)

Publication Number Publication Date
JP2015032265A JP2015032265A (ja) 2015-02-16
JP5971211B2 true JP5971211B2 (ja) 2016-08-17

Family

ID=52517497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013163504A Active JP5971211B2 (ja) 2013-08-06 2013-08-06 電子制御装置

Country Status (1)

Country Link
JP (1) JP5971211B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60247034A (ja) * 1984-05-21 1985-12-06 Toyota Motor Corp デイ−ゼルエンジンの電子制御装置
JPS6419435A (en) * 1987-07-15 1989-01-23 Hitachi Ltd Data processor
JP2001117793A (ja) * 1999-10-21 2001-04-27 Denso Corp 割込命令チェック装置及び記録媒体
US9304773B2 (en) * 2006-03-21 2016-04-05 Freescale Semiconductor, Inc. Data processor having dynamic control of instruction prefetch buffer depth and method therefor
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
JP2012150529A (ja) * 2011-01-17 2012-08-09 Sony Corp メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
JP5549627B2 (ja) * 2011-03-25 2014-07-16 株式会社デンソー マイクロコンピュータ

Also Published As

Publication number Publication date
JP2015032265A (ja) 2015-02-16

Similar Documents

Publication Publication Date Title
EP1421490B1 (en) Methods and apparatus for improving throughput of cache-based embedded processors by switching tasks in response to a cache miss
US9740636B2 (en) Information processing apparatus
JP6627629B2 (ja) 演算処理装置、および演算処理装置の制御方法
JP2007334564A (ja) ユニファイドメモリシステム
JP2006260525A (ja) キャッシュ回路
JP2011065503A (ja) キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法
JP3866749B2 (ja) マイクロプロセッサ
US9697127B2 (en) Semiconductor device for controlling prefetch operation
JP5793061B2 (ja) キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム
JP2009237722A (ja) キャッシュ制御装置、情報処理装置
JP5999216B2 (ja) データ処理装置
JP5971211B2 (ja) 電子制御装置
JP6252348B2 (ja) 演算処理装置および演算処理装置の制御方法
JP6341045B2 (ja) 演算処理装置および演算処理装置の制御方法
US8443176B2 (en) Method, system, and computer program product for reducing cache memory pollution
US20130151809A1 (en) Arithmetic processing device and method of controlling arithmetic processing device
JP2004127163A (ja) マルチプロセッサシステム
JP2008257508A (ja) キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ
JP2005301387A (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US9672154B1 (en) Methods and apparatus for determining memory access patterns for cache prefetch in an out-of-order processor
JP2005242929A (ja) 共有メモリのアクセス方法及びデータ処理装置
JP4765249B2 (ja) 情報処理装置およびキャッシュメモリ制御方法
US20150234656A1 (en) Vector processor, information processing apparatus, and overtaking control method
JP5949330B2 (ja) 情報処理装置、情報処理方法
JP2002342162A (ja) メモリアクセス制御方式及びホストブリッジ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160627

R151 Written notification of patent or utility model registration

Ref document number: 5971211

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