JP5685963B2 - キャッシュメモリの制御装置及びキャッシュメモリシステム - Google Patents

キャッシュメモリの制御装置及びキャッシュメモリシステム Download PDF

Info

Publication number
JP5685963B2
JP5685963B2 JP2011021011A JP2011021011A JP5685963B2 JP 5685963 B2 JP5685963 B2 JP 5685963B2 JP 2011021011 A JP2011021011 A JP 2011021011A JP 2011021011 A JP2011021011 A JP 2011021011A JP 5685963 B2 JP5685963 B2 JP 5685963B2
Authority
JP
Japan
Prior art keywords
address
cache memory
cache
main memory
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.)
Active
Application number
JP2011021011A
Other languages
English (en)
Other versions
JP2012160131A (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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2011021011A priority Critical patent/JP5685963B2/ja
Publication of JP2012160131A publication Critical patent/JP2012160131A/ja
Application granted granted Critical
Publication of JP5685963B2 publication Critical patent/JP5685963B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、キャッシュメモリの制御装置、キャッシュメモリシステム、並びにキャッシュメモリの制御装置の製造方法に関する。
従来、種々のコンピュータにおいて、RAM(Random Access Memory)等のメインメモリに比して小容量且つ高速アクセス可能なキャッシュメモリが用いられている。キャッシュメモリは、頻繁に用いられるプログラムやデータがメインメモリからコピーされ、CPUによって繰り返しアクセスされることにより、コンピュータの処理速度を向上させることができる。
キャッシュメモリにおけるプログラムやデータの格納場所(アドレス)は、例えばコピー元のメインメモリのアドレスとの簡易な対応関係に基づいて決定される。例えば、キャッシュメモリにおけるアドレスは、コピー元のメインメモリのアドレス値の下位(又は上位)数バイトと一対一の関係となるように決定される。
特許文献1には、プログラムをコンパイルする際に、オブジェクトファイルをアドレス変換ソフトウェアに通し、キャッシュの各エントリが使われる頻度を同じくらいにすることによって、キャッシュのヒット率が上がるようにメモリ上の配置を行うアドレス割当変更方法について記載されている。
特開平5−324281号公報
ところで、コンピュータのメインメモリに格納されるプログラムやデータが更新(変更)された際に、当該更新されたプログラムやデータ、並びにこれら以降のアドレスに格納されるプログラムやデータは、更新前とは異なるメインメモリのアドレスに格納されることになる。すなわち、メインメモリのアドレス配置が変更された状態となる。
この場合、上記のようにキャッシュメモリにおけるアドレスがコピー元のメインメモリのアドレスとの簡易な対応関係に基づいて決定されるコンピュータでは、キャッシュメモリにおけるプログラムやデータの格納場所(アドレス)も同様に変更されることになる。しなしながら、キャッシュメモリにおけるアドレスの変更は、コンピュータの動作傾向に影響を及ぼすことがあり、車載制御装置等の処理時間に関する信頼性が重要な分野に適用される場合、動作テストやプログラムの更なる修正を要するという煩わしさが生じるおそれがある。
この点、メインメモリに格納されるプログラムやデータの更新時に上記特許文献1に記載のアドレス割当変更方法を適用したとしても、同じ懸念が生じる。特許文献1に記載のアドレス割当変更方法は、更新前におけるキャッシュメモリの使用態様を維持することを目的としておらず、各タスクの処理時間が変動する可能性が高い。
本発明はこのような課題を解決するためのものであり、メインメモリのアドレス配置が変更された前後においてキャッシュメモリの使用態様がなるべく変動しないように制御することが可能なキャッシュメモリの制御装置、これを含むキャッシュメモリシステム、並びにキャッシュメモリの制御装置の製造方法を提供することを、主たる目的とする。
上記目的を達成するための本発明の第1の態様は、
所定の対応関係に基づきメインメモリのアドレスからキャッシュメモリのアドレスを特定し、前記メインメモリに格納されたプログラム又はデータが前記特定したキャッシュメモリのアドレスに書き込まれるように前記キャッシュメモリを制御するキャッシュメモリの制御装置であって、
前記メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータについては、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれるように前記キャッシュメモリを制御し、
前記メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータを読み出そうとする際に、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから前記所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれたプログラム又はデータを対象としてキャッシュヒットを判定するキャッシュヒット判定手段を備えることを特徴とする、
キャッシュメモリの制御装置である。
この本発明の一態様によれば、メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータについては、所定の対応関係に基づき特定されるキャッシュメモリのアドレスから所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれるようにキャッシュメモリを制御し、メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータを読み出そうとする際に、所定の対応関係に基づき特定されるキャッシュメモリのアドレスから所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれたプログラム又はデータを対象としてキャッシュヒットを判定するため、メインメモリのアドレス配置が変更された前後においてキャッシュメモリの使用態様がなるべく変動しないように制御することができる。
本発明の第1の態様において、
前記キャッシュヒット判定手段は、例えば、
前記メインメモリにおける特定のアドレスを保持する第1の保持手段と、
前記メインメモリにおける特定のアドレスから前記所定アドレス分を逆向きにオフセットしたアドレスを保持する第2の保持手段と、
前記第1の保持手段により保持されたアドレスから前記第2の保持手段に保持されたアドレスを差し引いたオフセット値を算出する演算手段と、
を備え、
前記演算手段の算出結果を用いて、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから前記所定アドレス分オフセットしたキャッシュメモリのアドレスを特定する手段である。
また、本発明の第1の態様において、
前記キャッシュヒット判定手段は、
前記メインメモリにおける特定のアドレスを保持する第1の保持手段と、
前記所定アドレス分に相当するオフセット値を保持する第2の保持手段と、
を備え、
前記第2の保持手段により保持された前記オフセット値を用いて、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから前記所定アドレス分オフセットしたキャッシュメモリのアドレスを特定する手段であるものとしてもよい。
本発明の第2の態様は、
本発明の第1の態様のキャッシュメモリの制御装置と、
該キャッシュメモリの制御装置によって制御される前記キャッシュメモリと、
を備えるキャッシュメモリシステムである。
本発明の第2の態様において、
前記メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータが前記キャッシュメモリに書き込まれる際には、前記所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれたことを示すフラグが前記キャッシュメモリに書き込まれ、
前記キャッシュヒット判定手段は、前記フラグを加味してキャッシュヒット判定を行うことを特徴とするものとしてもよい。
本発明によれば、メインメモリのアドレス配置が変更された前後においてキャッシュメモリの使用態様がなるべく変動しないように制御することが可能なキャッシュメモリの制御装置、これを含むキャッシュメモリシステム、並びにキャッシュメモリの制御装置の製造方法を提供することができる。
本発明の第1実施例に係るキャッシュメモリシステム1を含むコンピュータの簡易なシステム構成例である。 本発明の第1実施例に係るキャッシュメモリシステム1のより詳細なシステム構成例である。 メインメモリ70のアドレス配置が変更される前後のデータ構造の変化を例示した図である。 本実施例の制御装置20によりキャッシュ判定が行われる際の各構成要素の動作をフローチャートの形式で示した図である。 第2実施例に係る制御装置20の部分構成例である。 メインメモリ70のアドレス配置が変更される前後のデータ構造の変化を例示した図である。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
<第1実施例>
以下、図面を参照し、本発明の第1実施例に係るキャッシュメモリシステム1について説明する。図1は、本発明の第1実施例に係るキャッシュメモリシステム1を含むコンピュータの簡易なシステム構成例である。キャッシュメモリシステム1は、CPUがRAM(Random Access Memory)やROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)等のメインメモリ70にアクセスして動作するコンピュータにより用いられ、主要な構成として、キャッシュメモリ10と、その制御装置20と、を備える。
キャッシュメモリの概念、用途、構造等については、既に公知となっているため、詳細な説明は省略する。
図2は、本発明の第1実施例に係るキャッシュメモリシステム1のより詳細なシステム構成例である。
キャッシュメモリ10におけるデータ構造は、例えば、配置変更フラグ10A、タグ10B、データ部10Cが1ラインのデータとして格納される。
制御装置20は、配置変更前先頭アドレス保持部30と、配置変更後先頭アドレス保持部32と、減算器34と、加算器36と、比較器(コンパレータ)38と、セレクタ40、42と、一致判定器50、52と、アンド回路54と、を備える。
[キャッシュメモリ10への書き込み]
制御装置20の図示しない書き込み制御部は、キャッシュメモリ10へのプログラム又はデータの書き込みの際に、メインメモリ70における配置変更前先頭アドレス保持部30により保持されたアドレス以前のアドレスに格納されたプログラム又はデータについては、例えばメインメモリ70におけるアドレスの下位4バイト(=後述するインデックス60B)と一対一の関係で決定されるキャッシュメモリ10のアドレス(図2では縦方向の位置)に書き込む。
一方、制御装置20の図示しない書き込み制御部は、メインメモリ70における配置変更前先頭アドレス保持部30により保持されたアドレスよりも後の(アドレス値が大きい)アドレスに格納されたプログラム又はデータについては、上記メインメモリ70におけるアドレスの下位4バイトと一対一の関係で決定されるキャッシュメモリ10のアドレスから所定アドレス分オフセットしたキャッシュメモリ10のアドレスに書き込む。この際に、配置変更フラグ10Aに例えば値1を書き込む。
[キャッシュメモリ10又はメインメモリ70からの読み出し]
配置変更前先頭アドレス保持部30は、メインメモリ70のアドレス配置が変更された際に、当該アドレスが変更されたプログラム又はデータの変更前の先頭アドレス(メインメモリ70上のアドレス)を保持している。また、配置変更後先頭アドレス保持部32は、上記アドレスが変更されたプログラム又はデータの変更後の先頭アドレス(メインメモリ70上のアドレス)を保持している。これらの保持部は、たとえばレジスタ等であり、コンピュータの起動時にROM(Read Only Memory)等からデータがロードされて用いられる。また、元々のデータは、マニュアルでインストールされてもよいし、リンクディレクティブファイル等から機械的にメインメモリ70のブート領域に書き込まれてもよい。
減算器34は、配置変更前先頭アドレス保持部30により保持されたアドレス値から、配置変更後先頭アドレス保持部32により保持されたアドレス値を差し引いた差分を出力する。この出力は、メインメモリ70のアドレス配置変更に伴う、変更箇所以降のアドレスのオフセット分の符号を反転させた値に相当する。以下、この差分を「オフセット値」と称する。オフセット値は、上記キャッシュメモリ10への書き込みの際にも利用されてよい。
なお、配置変更前先頭アドレス保持部30、配置変更後先頭アドレス保持部32、減算器34からなる構成に代えて、配置変更前先頭アドレス保持部30と、オフセット値を保持する保持部とを備える構成としてもよい。
図3は、メインメモリ70のアドレス配置が変更される前後のデータ構造の変化を例示した図である。図3(A)メインメモリ70のアドレス配置変更前のデータ構造を例示しており、図3(B)はメインメモリ70のアドレス配置変更前のデータ構造を例示している。図示するように、アドレス配置の変更前には、ブートプログラム、プログラムA、プログラムB、プログラムCの先頭アドレスの下位4バイトは、いずれも「0000」であるため、キャッシュメモリ10の同じアドレスに書き込まれることになる。
ところが、アドレス配置の変更後には、プログラムCの先頭アドレスの下位4バイトは、「1000」となっているため、キャッシュメモリ10の変更前とは異なるアドレスに書き込まれることになる。
このような配置変更は、コンピュータの設計段階にも生じ得るし、製品販売後のバージョンアップ時にも生じ得る。ところで、家庭用のコンピュータ等では、キャッシュメモリ10における格納場所が変更されても特段の問題は生じにくいが、車両等の移動体制御装置やプラント制御装置等、各プログラムの処理タイミングが予め厳密に規定されているような装置においては、キャッシュメモリ10における格納場所の変更は、キャッシュのヒット率等を変化させ、処理タイミングを当初意図されたものから逸脱させる可能性がある。
そこで、本実施例のキャッシュシステム1では、先頭アドレスに変更が生じたプログラムC以降について、変更前と同じように「0000」に相当するキャッシュメモリ10のアドレスに書き込まれ、また当該アドレスから読み出されるようにキャッシュメモリ10を制御している。以下、引き続き各構成要素について説明する。
加算器36は、アクセスアドレス60により規定されたアドレス値に、減算器34により算出されたオフセット値(図3の例では、「−1000」となる)を加算して出力する。ここで、アクセスアドレス60は、コンピュータのCPUによって読み出し指示がなされたメインメモリ70のアドレスを示している。アクセスアドレス60は、例えばタグ60Aと、インデックス60Bを含むデータ構造となっている。加算器36の出力は、メインメモリ70の配置変更が行われる前のアクセスアドレス60を表すものとなる。図2では、加算器36の出力を、変換後アドレス60*と表記した。変換後アドレス60*は、アクセスアドレス60と同様にタグ60*A及びインデックス60*Bを含む。
比較器38は、アクセスアドレス60が示すアドレス値が、配置変更前先頭アドレス保持部30が保持するアドレス値よりも大きいか否かを判定する。そして、例えば、アクセスアドレス60が示すアドレス値が、配置変更前先頭アドレス保持部30が保持するアドレス値よりも大きい場合には値1を、それ以外の場合には値0を出力する。すなわち、比較器38の出力は、アクセスアドレス60によって読み出し指示がなされたメインメモリ70のアドレスが、配置変更箇所よりも前であるか(;値0)、後であるか(;値1)を示すものである。
セレクタ40には、被選択信号としてアクセスアドレス60に含まれるインデックス60B、及び変換後アドレス60*に含まれるインデックス60*Bが、選択指示信号として比較器38の出力が、それぞれ入力される。セレクタ40は、比較器38の出力が値0であればインデックス60Bを、比較器38の出力が値1であればインデックス60*Bを選択して出力する。
セレクタ42には、被選択信号としてアクセスアドレス60に含まれるタグ60A、及び変換後アドレス60*に含まれるタグ60*Aが、選択指示信号として比較器38の出力が、それぞれ入力される。セレクタ42は、比較器38の出力が値0であればタグ60Aを、比較器38の出力が値1であればタグ60*Aを選択して出力する。
一致判定器50には、比較器38の出力と、セレクタ40の出力によって特定されたキャッシュメモリ10のアドレスに格納された1ラインのデータに含まれる配置変更フラグ10Aの値が入力される。一致判定器50は、これらが一致する場合に値1を、一致しない場合に値0を出力する。
一致判定器52には、セレクタ42の出力と、セレクタ40の出力によって特定されたキャッシュメモリ10のアドレスに格納された1ラインのデータに含まれるタグ10Bの値が入力される。一致判定器52は、これらが一致する場合に値1を、一致しない場合に値0を出力する。
アンド回路54には、一致判定器50、52の出力が入力される。アンド回路54は、これらの双方が値1である場合に値1を出力し、それ以外の場合に値0を出力する。そして、アンド回路54の出力が値1である場合にキャッシュがヒットしたと判定され、キャッシュメモリ10からプログラム又はデータが読み出される。
一方、アンド回路の出力が値1である場合には、キャッシュがミスしたと判定され、メインメモリ70からプログラム又はデータが読み出される。この際に、所定の基準に基づき、メインメモリ70から読み出されたプログラム又はデータはキャッシュメモリ10に格納される。
図4は、本実施例の制御装置20によりキャッシュ判定が行われる際の各構成要素の動作をフローチャートの形式で示した図である。本フローは、CPUからアクセスアドレス60が入力される度に実行される。
まず、比較器38が、アクセスアドレス60によって読み出し指示がなされたメインメモリ70のアドレスが、配置変更箇所よりも前であるか後であるかを判定する(S100)。
配置変更箇所よりも後である場合には、減算器34及び加算器36が、配置変更前のアドレスを特定する(S102)。そして、配置変更前のアドレスでキャッシュアクセスを行う(S104)。
この際に、前述のように、一致判定器50、52が共に値1を出力したか否かを判定し(S106)、一致判定器50、52が共に値1を出力した場合にはキャッシュがヒットしたと判定し(S108)、一致判定器50、52の少なくとも一方が値0を出力した場合にはキャッシュがミスしたと判定する(S110)。なお、この場合において、一致判定器50は、比較器38の出力と配置変更フラグ10Aの値が共に値1であることにより、値1を出力することが想定される。
一方、アクセスアドレス60によって読み出し指示がなされたメインメモリ70のアドレスが、配置変更箇所以前である場合には、アクセスアドレス60に基づいてキャッシュアクセスを行う(S112)。
この際にも、一致判定器50、52が共に値1を出力したか否かを判定し(S114)、一致判定器50、52が共に値1を出力した場合にはキャッシュがヒットしたと判定し(S116)、一致判定器50、52の少なくとも一方が値0を出力した場合にはキャッシュがミスしたと判定する(S118)。なお、この場合において、一致判定器50は、比較器38の出力と配置変更フラグ10Aの値が共に値0であることにより、値1を出力することが想定される。
以上説明した本実施例の制御装置20を有するキャッシュシステム1によれば、メインメモリ70のアドレス配置が変更された前後において、キャッシュメモリ10の使用態様がなるべく変動しないように制御することができる。この結果、処理タイミングが厳密に規定された制御装置等に、好適に適用することができる。
<第2実施例>
以下、図面を参照し、本発明の第2実施例に係るキャッシュメモリシステム2について説明する。なお、構成に関しては、図1を参照することとして、説明を省略する。
本発明の第1実施例に係るキャッシュメモリシステム1は、メインメモリのアドレス配置の変更が一箇所である場合に対応可能なものであるが、本発明は、メインメモリのアドレス配置の変更が複数箇所に亘る場合にも対応可能である。以下、その一例として、メインメモリのアドレス配置の変更が二箇所である場合に対応可能なキャッシュメモリシステム2を例示する。
第2実施例に係るキャッシュメモリシステム2が有する制御装置20は、配置変更前先頭アドレス保持部30、配置変更後先頭アドレス保持部32、減算器34、加算器36、比較器38からなる機能群を二系統備える点で、第1実施例と相違する。以下、この相違点を中心に説明する。
図5は、第2実施例に係る制御装置20の部分構成例である。図示するように、キャッシュメモリシステム2は、配置変更前先頭アドレス保持部30A、配置変更後先頭アドレス保持部32A、減算器34A、加算器36A、比較器38Aからなる機能群と、配置変更前先頭アドレス保持部30B、配置変更後先頭アドレス保持部32B、減算器34B、加算器36B、比較器38Bからなる機能群と、セレクタ44、46と、を備える。なお、一致判定器50、52、及びアンド回路54については第1実施例と同様であるため、図示を省略した。また、タグの一致判定に関する構成についても図示を省略している。
[キャッシュメモリ10への書き込み]
制御装置20の図示しない書き込み制御部は、キャッシュメモリ10へのプログラム又はデータの書き込みの際に、メインメモリ70における配置変更前先頭アドレス保持部30Aにより保持されたアドレス以前のアドレスに格納されたプログラム又はデータについては、例えばメインメモリ70におけるアドレスの下位4バイト(=後述するインデックス60B)と一対一の関係で決定されるキャッシュメモリ10のアドレス(図2では縦方向の位置)に書き込む。
一方、制御装置20の図示しない書き込み制御部は、メインメモリ70における配置変更前先頭アドレス保持部30Aにより保持されたアドレスよりも後であり、且つ配置変更前先頭アドレス保持部30Bにより保持されたアドレス以前のアドレスに格納されたプログラム又はデータについては、上記メインメモリ70におけるアドレスの下位4バイトと一対一の関係で決定されるキャッシュメモリ10のアドレスから第1の所定アドレス分オフセットしたキャッシュメモリ10のアドレスに書き込む。この際に、配置変更フラグ10Aに例えば値1を書き込む。
更に、制御装置20の図示しない書き込み制御部は、メインメモリ70における配置変更前先頭アドレス保持部30Bにより保持されたアドレスよりも後のアドレスに格納されたプログラム又はデータについては、上記メインメモリ70におけるアドレスの下位4バイトと一対一の関係で決定されるキャッシュメモリ10のアドレスから第2の所定アドレス分オフセットしたキャッシュメモリ10のアドレスに書き込む。この際に、配置変更フラグ10Aに例えば値2を書き込む。
ここで、第1の所定アドレス分とは、配置変更前先頭アドレス保持部30Aにより保持されたアドレスと配置変更後先頭アドレス保持部32Aにより保持されたアドレスの差分であり、第2の所定アドレス分とは、配置変更前先頭アドレス保持部30Bにより保持されたアドレスと配置変更後先頭アドレス保持部32Bにより保持されたアドレスの差分である。
図6は、メインメモリ70のアドレス配置が変更される前後のデータ構造の変化を例示した図である。図6(A)メインメモリ70のアドレス配置変更前のデータ構造を例示しており、図6(B)はメインメモリ70のアドレス配置変更前のデータ構造を例示している。
[キャッシュメモリ10又はメインメモリ70からの読み出し]
配置変更前先頭アドレス保持部30Aは、メインメモリ70のアドレス配置が変更された際に、当該アドレスが変更されたプログラム又はデータの変更前の先頭アドレス(メインメモリ70上のアドレス)を保持している。また、配置変更後先頭アドレス保持部32Aは、上記アドレスが変更されたプログラム又はデータの変更後の先頭アドレス(メインメモリ70上のアドレス)を保持している。これらの保持部は、たとえばレジスタ等であり、コンピュータの起動時にROM(Read Only Memory)等からデータがロードされて用いられる。また、元々のデータは、マニュアルでインストールされてもよいし、リンクディレクティブファイル等から機械的にメインメモリ70のブート領域に書き込まれてもよい。
同様に、配置変更前先頭アドレス保持部30Bは、メインメモリ70のアドレス配置が変更された際に、当該アドレスが変更されたプログラム又はデータの変更前の先頭アドレスを保持しており、配置変更後先頭アドレス保持部32Bは、上記アドレスが変更されたプログラム又はデータの変更後の先頭アドレスを保持している。配置変更前先頭アドレス保持部30Aにより保持されたアドレス値は、配置変更前先頭アドレス保持部30Bにより保持されたアドレス値に比して小さいものとする。
減算器34Aは、配置変更前先頭アドレス保持部30Aにより保持されたアドレス値から、配置変更後先頭アドレス保持部32Aにより保持されたアドレス値を差し引いた差分を出力する。この出力は、メインメモリ70のアドレス配置変更に伴う、変更箇所以降のアドレスのオフセット分の符号を反転させた値に相当する。以下、この差分を「第1のオフセット値」と称する。オフセット値は、上記キャッシュメモリ10への書き込みの際にも利用されてよい。
同様に、減算器34Bは、配置変更前先頭アドレス保持部30Bにより保持されたアドレス値から、配置変更後先頭アドレス保持部32Bにより保持されたアドレス値を差し引いた差分を出力する。この出力は、メインメモリ70のアドレス配置変更に伴う、変更箇所以降のアドレスのオフセット分の符号を反転させた値に相当する。以下、この差分を「第2のオフセット値」と称する。
なお、配置変更前先頭アドレス保持部30A、30B、配置変更後先頭アドレス保持部32A、32B、減算器34A、34Bからなる構成に代えて、配置変更前先頭アドレス保持部30A、30Bと、オフセット値を保持する二つの保持部と、を備える構成としてもよい。
加算器36Aは、アクセスアドレス60により規定されたアドレス値に、減算器34Aにより算出された第1のオフセット値を加算して出力する。加算器36の出力は、メインメモリ70の第1の配置変更(図6参照)が行われる前のアクセスアドレス60を表すものとなる。
同様に、加算器36Bは、アクセスアドレス60により規定されたアドレス値に、減算器34Bにより算出された第2のオフセット値を加算して出力する。加算器36Bの出力は、メインメモリ70の第2の配置変更(図6参照)が行われる前のアクセスアドレス60を表すものとなる。
なお、図5では、第1実施例では表記していた変換後アドレス60*の表記を省略したが、そのデータ構成は第1実施例と同様である。
比較器38Aは、アクセスアドレス60が示すアドレス値が、配置変更前先頭アドレス保持部30Aが保持するアドレス値よりも大きいか否かを判定する。そして、例えば、アクセスアドレス60が示すアドレス値が、配置変更前先頭アドレス保持部30Aが保持するアドレス値よりも大きい場合には値1を、それ以外の場合には値0を出力する。すなわち、比較器38の出力は、アクセスアドレス60によって読み出し指示がなされたメインメモリ70のアドレスが、図6に示す第1の配置変更箇所よりも前であるか(;値0)、後であるか(;値1)を示すものである。
同様に、比較器38Bは、アクセスアドレス60が示すアドレス値が、配置変更前先頭アドレス保持部30Bが保持するアドレス値よりも大きいか否かを判定する。そして、例えば、アクセスアドレス60が示すアドレス値が、配置変更前先頭アドレス保持部30Bが保持するアドレス値よりも大きい場合には値2を、それ以外の場合には値0を出力する。すなわち、比較器38Bの出力は、アクセスアドレス60によって読み出し指示がなされたメインメモリ70のアドレスが、図6に示す第2の配置変更箇所よりも前であるか(;値0)、後であるか(;値2)を示すものである。
セレクタ44には、比較器38A、38Bの出力が入力され、入力値のうち最も大きい値を出力する。すなわち、比較器38Aが値0、比較器38Bが値0を出力している場合は値0を、比較器38Aが値1、比較器38Bが値0を出力している場合は値1を、比較器38Aが値1、比較器38Bが値2を出力している場合は値2を、それぞれ出力する。
セレクタ46は、被選択信号が三つ入力され、選択指示信号が少なくとも三値を取る3ウエイのセレクタである。セレクタ46には、被選択信号として、アクセスアドレス60のインデックス60B、及び加算器36A、36Bの出力が入力され、選択指示信号としてセレクタ44の出力が入力される。セレクタ46は、セレクタ44の出力が値0である場合にインデックス60Bを選択して出力し、セレクタ44の出力が値1である場合に加算器36Aの出力を選択して出力し、セレクタ44の出力が値2である場合に加算器36Bの出力を選択して出力する。
第1実施例と同様の一致判定器50には、セレクタ44の出力と、セレクタ46の出力によって特定されたキャッシュメモリ10のアドレスに格納された1ラインのデータに含まれる配置変更フラグ10Aの値が入力される。一致判定器50は、これらが一致する場合に値1を、一致しない場合に値0を出力する。
また、図示を省略したが、被選択信号として、アクセスアドレス60のタグ60A、加算器36Aの出力に含まれるタグ、36Bの出力に含まれるタグが入力され、選択指示信号としてセレクタ44の出力が入力される3ウエイのセレクタを備えてもよい。これとキャッシュメモリ10のタグ10Bを比較することにより、第1実施例と同様にタグに関する一致判定を行うことができる(「一致判定器52」の部分を参照)。
そして、アンド回路54には、一致判定器50、52の出力が入力され、アンド回路54は、これらの双方が値1である場合に値1を出力し、それ以外の場合に値0を出力するように構成すればよい。この場合、アンド回路54の出力が値1である場合にキャッシュがヒットしたと判定され、キャッシュメモリ10からプログラム又はデータが読み出される。
一方、アンド回路の出力が値1である場合には、キャッシュがミスしたと判定され、メインメモリ70からプログラム又はデータが読み出される。この際に、所定の基準に基づき、メインメモリ70から読み出されたプログラム又はデータはキャッシュメモリ10に格納される。
以上説明した本実施例の制御装置20を有するキャッシュシステム2によれば、メインメモリ70のアドレス配置が二箇所で変更された前後において、キャッシュメモリ10の使用態様がなるべく変動しないように制御することができる。この結果、処理タイミングが厳密に規定された制御装置等に、好適に適用することができる。
なお、三箇所以上でメインメモリ70のアドレス配置が変更された場合においても、同様の原理によって、配置変更前先頭アドレス保持部30、配置変更後先頭アドレス保持部32、減算器34、加算器36、比較器38からなる機能群を追加することにより、対応することが可能である。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、上記各実施例では、メインメモリ70におけるアドレスの下位4バイトとキャッシュメモリ10のアドレスが一対一の関係で対応付けられるものとしたが、他の対応関係に基づいてもよい。
1、2 キャッシュメモリシステム
10 キャッシュメモリ
10A 配置変更フラグ
10B タグ
10C データ部
20 制御装置
30 配置変更前先頭アドレス保持部
32 配置変更後先頭アドレス保持部
34 減算器
36 加算器
38 比較器
40、42、44、46 セレクタ
50、52 一致判定器
54 アンド回路
60 アクセスアドレス
60* 変換後アドレス
60A、60*A タグ
60B、60*B インデックス
70 メインメモリ

Claims (5)

  1. 所定の対応関係に基づきメインメモリのアドレスからキャッシュメモリのアドレスを特定し、前記メインメモリに格納されたプログラム又はデータが前記特定したキャッシュメモリのアドレスに書き込まれるように前記キャッシュメモリを制御するキャッシュメモリの制御装置であって、
    前記メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータについては、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれるように前記キャッシュメモリを制御し、
    前記メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータを読み出そうとする際に、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから前記所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれたプログラム又はデータを対象としてキャッシュヒットを判定するキャッシュヒット判定手段を備えることを特徴とする、
    キャッシュメモリの制御装置。
  2. 請求項1に記載のキャッシュメモリの制御装置であって、
    前記キャッシュヒット判定手段は、
    前記メインメモリにおける特定のアドレスを保持する第1の保持手段と、
    前記メインメモリにおける特定のアドレスから前記所定アドレス分を逆向きにオフセットしたアドレスを保持する第2の保持手段と、
    前記第1の保持手段により保持されたアドレスから前記第2の保持手段に保持されたアドレスを差し引いたオフセット値を算出する演算手段と、
    を備え、
    前記演算手段の算出結果を用いて、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから前記所定アドレス分オフセットしたキャッシュメモリのアドレスを特定する手段である、
    キャッシュメモリの制御装置。
  3. 請求項1に記載のキャッシュメモリの制御装置であって、
    前記キャッシュヒット判定手段は、
    前記メインメモリにおける特定のアドレスを保持する第1の保持手段と、
    前記所定アドレス分に相当するオフセット値を保持する第2の保持手段と、
    を備え、
    前記第2の保持手段により保持された前記オフセット値を用いて、前記所定の対応関係に基づき特定されるキャッシュメモリのアドレスから前記所定アドレス分オフセットしたキャッシュメモリのアドレスを特定する手段である、
    キャッシュメモリの制御装置。
  4. 請求項1ないし3のいずれか1項に記載のキャッシュメモリの制御装置と、
    該キャッシュメモリの制御装置によって制御される前記キャッシュメモリと、
    を備えるキャッシュメモリシステム。
  5. 請求項4に記載のキャッシュメモリシステムであって、
    前記メインメモリにおける特定のアドレス以降に格納されたプログラム又はデータが前記キャッシュメモリに書き込まれる際には、前記所定アドレス分オフセットしたキャッシュメモリのアドレスに書き込まれたことを示すフラグが前記キャッシュメモリに書き込まれ、
    前記キャッシュヒット判定手段は、前記フラグを加味してキャッシュヒット判定を行うことを特徴とする、
    キャッシュメモリシステム
JP2011021011A 2011-02-02 2011-02-02 キャッシュメモリの制御装置及びキャッシュメモリシステム Active JP5685963B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011021011A JP5685963B2 (ja) 2011-02-02 2011-02-02 キャッシュメモリの制御装置及びキャッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011021011A JP5685963B2 (ja) 2011-02-02 2011-02-02 キャッシュメモリの制御装置及びキャッシュメモリシステム

Publications (2)

Publication Number Publication Date
JP2012160131A JP2012160131A (ja) 2012-08-23
JP5685963B2 true JP5685963B2 (ja) 2015-03-18

Family

ID=46840588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011021011A Active JP5685963B2 (ja) 2011-02-02 2011-02-02 キャッシュメモリの制御装置及びキャッシュメモリシステム

Country Status (1)

Country Link
JP (1) JP5685963B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01184533A (ja) * 1988-01-19 1989-07-24 Nec Corp 主記憶のデータ変更方式
JPH02213960A (ja) * 1989-02-14 1990-08-27 Hitachi Ltd キャッシュメモリ
JPH04170653A (ja) * 1990-11-05 1992-06-18 Shikoku Nippon Denki Software Kk キャッシュメモリシステム

Also Published As

Publication number Publication date
JP2012160131A (ja) 2012-08-23

Similar Documents

Publication Publication Date Title
US20080235477A1 (en) Coherent data mover
US10209922B2 (en) Communication via a memory interface
US20140149668A1 (en) Prefetching according to attributes of access requests
US20130036426A1 (en) Information processing device and task switching method
KR101924821B1 (ko) 정렬 제어
KR102590180B1 (ko) 자격 메타데이터를 관리하는 장치 및 방법
JP2008107983A (ja) キャッシュメモリ
JP5625809B2 (ja) 演算処理装置、情報処理装置及び制御方法
US20130042068A1 (en) Shadow registers for least recently used data in cache
KR20140134523A (ko) 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법
US6490668B2 (en) System and method for dynamically moving checksums to different memory locations
JP2014115851A (ja) データ処理装置及びその制御方法
US9037773B2 (en) Methods for processing and addressing data between volatile memory and non-volatile memory in an electronic apparatus
CN103336681B (zh) 针对采用变长指令集的流水线结构处理器的取指方法
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
US20080256296A1 (en) Information processing apparatus and method for caching data
JP5685963B2 (ja) キャッシュメモリの制御装置及びキャッシュメモリシステム
TWI416324B (zh) 用於嵌入式控制器裝置之結構化虛擬暫存器
JP4867451B2 (ja) キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
CN114691549A (zh) 一种文件写入方法、装置及计算设备
US20070169086A1 (en) System and method for updating in-system program
JP2020024579A (ja) 車載装置
CN104969203A (zh) 利用反射内存实现一致性
JP2010079612A (ja) チャネルコマンドワード先読み処理プログラム及びチャネルコマンドワード先読み処理装置
JP5949330B2 (ja) 情報処理装置、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130516

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140725

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150106

R151 Written notification of patent or utility model registration

Ref document number: 5685963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151