JP4765249B2 - 情報処理装置およびキャッシュメモリ制御方法 - Google Patents

情報処理装置およびキャッシュメモリ制御方法 Download PDF

Info

Publication number
JP4765249B2
JP4765249B2 JP2003388021A JP2003388021A JP4765249B2 JP 4765249 B2 JP4765249 B2 JP 4765249B2 JP 2003388021 A JP2003388021 A JP 2003388021A JP 2003388021 A JP2003388021 A JP 2003388021A JP 4765249 B2 JP4765249 B2 JP 4765249B2
Authority
JP
Japan
Prior art keywords
data
write
mode
cache memory
cache
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.)
Expired - Fee Related
Application number
JP2003388021A
Other languages
English (en)
Other versions
JP2005149290A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003388021A priority Critical patent/JP4765249B2/ja
Priority to US10/927,090 priority patent/US20050086435A1/en
Publication of JP2005149290A publication Critical patent/JP2005149290A/ja
Application granted granted Critical
Publication of JP4765249B2 publication Critical patent/JP4765249B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、プロセッサとメモリデバイスとの間で、データの転送を効率的に行うために設けられるキャッシュメモリを備えた情報処理装置およびそのキャッシュメモリの制御方法に関する。
従来、プロセッサがメインメモリ等のメモリデバイス上のデータを読み出す処理を高速化するために、キャッシュメモリが用いられている。
キャッシュメモリは、プロセッサによって高速にデータを読み出すことが可能な記憶素子によって構成されている。そして、キャッシュメモリは、メモリデバイスに記憶されているデータ(以下、適宜「メモリデバイスデータ」と言う。)の一部を記憶しておき、プロセッサがメモリデバイスからデータの読み出しを行う場合に、そのデータがキャッシュメモリに記憶されているものであれば、キャッシュメモリから読み出すことによって、データを高速に読み出すことを可能としている。
このようなキャッシュメモリにおいては、メモリデバイスに記憶されたデータとコヒーレンシ(一致性)を保証するために、キャッシュメモリに記憶されたデータをメモリデバイスに書き出す必要がある。このとき、キャッシュメモリ内のデータは、一般に、ライトスルーモードあるいはライトバックモードによってメモリデバイスに書き出される。
ライトスルーモードにおいては、プロセッサがキャッシュメモリにデータを書き込んだ場合、キャッシュメモリに書き込んだデータに対し、有効であることを示すフラグを立てると共に、同一のデータがメモリデバイスにも書き出される。それにより、キャッシュメモリ内のデータとメモリデバイス上のデータとの一致性が常に保たれる状態となる。
また、ライトバックモードにおいては、プロセッサがキャッシュメモリにデータを書き込んだ場合、そのデータがLRU(Least Recently Used)アルゴリズム等に基づいてキャッシュメモリから削除されるタイミングで、メモリデバイスに書き出される。それにより、キャッシュメモリ内のデータをメモリデバイスへ書き出す回数が軽減されることとなる。
一般に、メモリデバイス上のデータへのアクセスは、一定の局所性を有するものであることから、キャッシュメモリにデータがヒットする確率が高い状況の下においては、ライトバックモードによってメモリデバイスへの書き出しを行う方が効率的となる。特に、画像処理のように、処理対象となるデータがメモリ上の局所的なアドレスに存在することが明らかな場合には、ライトバックモードを採用する利点が大きい。
ところで、DMAC(Direct Memory Access Controller)を用いる場合や複数のプロセッサによってメモリを共有する場合等には、特に高いコヒーレンシを確保する必要がある。即ち、上述のライトバックモードにおいては、キャッシュメモリ内のデータとメモリデバイス上のデータとが常に一致しているわけではないことから、DMA(Direct Memory Access)等の実行に先立って、キャッシュメモリ内のデータをメモリデバイスに書き出す処理(キャッシュフラッシュ)を行う必要がある。
従来のキャッシュメモリを備えるプロセッサにおいては、キャッシュフラッシュを行うためのコマンド(キャッシュフラッシュコマンド)が用意されており、キャッシュメモリ内のデータを全てメモリデバイスに書き出すコマンドあるいはキャッシュメモリ内の特定のエントリのデータをメモリデバイスに書き出すコマンドのいずれかがキャッシュフラッシュコマンドとして実行される。
なお、キャッシュメモリからメモリデバイスにデータを書き出す処理(キャッシュフラッシュ)については、特開平10−320274号公報、特開平9−6680号公報あるいは特開平8−339329号公報に記載されている。
これらの公報には、キャッシュフラッシュ操作に要する時間を短縮する技術が開示されている。
特開平10−320274号公報 特開平9−6680号公報 特開平8−339329号公報
しかしながら、キャッシュメモリを備える従来のプロセッサにおいては、キャッシュフラッシュコマンドを実行する場合、それを実行する処理時間を本来の処理とは別に要することとなり、処理速度の低下を招く事態を生じていた。
なお、ライトスルーモードによってメモリデバイスへのデータの書き出しを行う場合には、高いコヒーレンシを確保できるものの、上述のように、キャッシュメモリの性能としては一般にライトバックモードが優れる場合が多い。
また、従来のキャッシュメモリにおいては、使用頻度の高いデータであっても、一時的に使用されない時間が存在した場合には、LRUアルゴリズム等に従ってキャッシュメモリ内から削除されたり、キャッシュフラッシュによって他のデータと併せて一律に削除されたりする場合があった。そして、このような場合には、使用頻度の高いデータがキャッシュにミスヒットすることとなり、さらに処理速度の低下を招く事態を生じていた。
本発明の課題は、キャッシュメモリにおける処理速度の向上を図ることである。
以上の課題を解決するため、本発明は、
読み出し対象となるデータを記憶しているメモリデバイスから、記憶されているデータの少なくとも一部をキャッシュしておくことが可能であり、ライトバックモードあるいはライトスルーモードの少なくともいずれかを含む複数のアクセス方式によってアクセス可能なキャッシュメモリを備える情報処理装置であって、プログラムの実行中に前記複数のアクセス方式を相互に切り替えて、前記キャッシュメモリにアクセス可能であることを特徴としている。
また、プログラムの実行中に前記ライトバックモードとライトスルーモードとを相互に切り替えて、前記キャッシュメモリにアクセス可能であることを特徴としている。
また、データの書き込みを行う場合に、前記キャッシュメモリにおいて、該データが記憶されている領域に書き込みを行うことなく、該領域を開放すると共に、該データを前記メモリデバイスにおける所定アドレスに書き込むライトフラッシュモードを前記アクセス方式に含むことを特徴としている。
また、前記ライトフラッシュモードにおいては、データの書き込みを行う場合に、前記キャッシュメモリにおいて、該データが記憶されていない場合に、前記キャッシュメモリへのアクセスを行わず、該データを前記メモリデバイスにおける所定アドレスに書き込むことを特徴としている。
また、プログラムの実行中に前記ライトバックモードとライトフラッシュモードとを相互に切り替えて、前記キャッシュメモリにアクセス可能であることを特徴としている。
また、前記キャッシュメモリに記憶されているデータと前記メモリデバイスに記憶されているデータとのコヒーレンシを確保した後、前記ライトスルーモードあるいはライトフラッシュモードのいずれかに切り替え可能であることを特徴としている。
また、データの読み出しあるいは書き込みを行う場合に、前記キャッシュメモリに記憶された該データを、他のデータと区別して保持するロックモードを前記アクセス方式に含むことを特徴としている。
前記キャッシュメモリは、複数ウェイを含むセット・アソシアティブ方式のキャッシュメモリであって、前記ロックモードは、前記複数のウェイにおける特定のウェイを対象として設定可能とされていることを特徴としている。
また、プログラムの実行中に前記ライトバックモードとロックモードとを相互に切り替えて、前記キャッシュメモリにアクセス可能であることを特徴としている。
また、前記複数のアクセス方式は、読み出しあるいは書き込み命令の対象となるメモリ空間におけるアドレスの一部に対応付けられ、前記アクセス方式に対応するアドレスを指定することにより、各命令における前記アクセス方式を設定可能であることを特徴としている。
また、本発明は、
読み出し対象となるデータを記憶しているメモリデバイスから、記憶されているデータの少なくとも一部をキャッシュしておくことが可能であり、ライトバックモードあるいはライトスルーモードの少なくともいずれかを含む複数のアクセス方式によってアクセス可能なキャッシュメモリを備える情報処理装置におけるキャッシュメモリ制御方法であって、プログラムの実行中に前記複数のアクセス方式を相互に切り替えて、前記キャッシュメモリにアクセスすることを特徴としている。
本発明によれば、従来のライトバックモード、ライトスルーモードに加え、ライトフラッシュモードによって、データの読み出しあるいは書き込み命令を実行することが可能である。
したがって、キャッシュフラッシュを行うことなく、キャッシュメモリのデータとメモリデバイスのデータとの高いコヒーレンシを確保することができるため、情報処理装置の処理速度を向上させることが可能となる。
また、ライトフラッシュモードによってデータの書き込み命令を実行した場合、書き込まれたデータが記憶されていたキャッシュメモリの領域が開放されるため、キャッシュメモリをより効率的に使用することが可能となる。
また、本発明によれば、ロックモードによる読み出しあるいは書き込み命令を実行することが可能であるため、使用頻度が高く固定的な値に保たれるデータ等を、要求に応じてキャッシュメモリ内に保持させることが可能となり、キャッシュのヒット率が向上すると共に、処理速度を向上させることが可能となる。
また、本発明によれば、ライトバックモード、ライトフラッシュモード、ロックモードおよびライトフラッシュモードを、プログラムの実行中に、相互に切り替えることが可能である。
したがって、プログラムの処理内容に応じて柔軟に命令のモードを変更することが可能となり、処理効率を向上させることが可能となる。
以下、図を参照して本発明に係る情報処理装置の実施の形態を説明する。
本発明においては、従来のキャッシュメモリにおけるライトバックモードおよびライトスルーモードに加え、新たにライトフラッシュモードを規定することにより、キャッシュフラッシュを実行することなく、キャッシュメモリとメモリデバイスとのコヒーレンシを確保可能なものとしている。さらに、本発明においては、ロックモードを規定することにより、キャッシュのヒット率および処理速度を向上させることを可能としている。
まず、構成を説明する。
図1は、本発明を適用した情報処理装置1の構成を示す概略図である。
図1において、情報処理装置1は、CPU(Central Processing Unit)コア10と、キャッシュメモリ20と、DMAC30と、メモリ40a,40bとを含んで構成され、これら各部はバスを介して接続されている。
CPUコア10は、情報処理装置1全体を制御するものであり、所定のプログラムを実行することにより、種々の処理を行う。例えば、CPUコア10は、メモリ40a,40bの所定のアドレスから演算対象となるデータあるいは命令コードを読み出して演算処理を行い、演算結果をメモリ40a,40bの所定のアドレスに書き込む動作を繰り返しながら、入力されたプログラムを実行する。このとき、CPUコア10がメモリ40a,40bにアクセスする処理を高速化するために、キャッシュメモリ20を介してデータが入出力される。
CPUコア10は、データの書き込みを指示する命令として、ライトスルーモード、ライトバックモードおよびライトフラッシュモードのいずれかを選択し、キャッシュメモリ20に出力する。
ライトスルーモードでは、書き込み対象であるデータがキャッシュにヒットした場合、キャッシュメモリ20への書き込みを行うと共に、メモリ40a,40bに対しても書き込みを行い、データを書き込んだキャッシュを有効な状態とする。また、書き込み対象であるデータがキャッシュにミスヒットした場合、メモリ40a,40bにのみデータを書き込み、キャッシュメモリ20への書き込みは行わない。
ライトバックモードでは、書き込み対象であるデータがキャッシュにヒットした場合、キャッシュメモリ20への書き込みを行い、データを書き込んだキャッシュを有効な状態とすると共に、メモリ40a,40bに対しては書き込みを行わない。このとき、キャッシュメモリ20内のデータがメモリ40a,40bの対応するデータと一致しているか否か(即ち、キャッシュメモリ20内のデータのみが書き換えられているか否か)を示すDirtyフラグの状態に応じて書き込みを制御する。また、書き込み対象であるデータがキャッシュにミスヒットした場合、LRUアルゴリズムに従って、キャッシュメモリ20において更新すべき領域を判定し、上述のDirtyフラグの状態に応じて、必要であれば(即ち、後述するように、Dirtyフラグが“1”であれば)、その領域に記憶されているデータをメモリ40a,40bに書き出す。そして、データが書き出されることにより確保されたキャッシュメモリ20の領域に、書き込み対象であるデータのアドレスを参照して、メモリ40a,40bアドレスからデータをフィルし(読み込み)、フィルされたキャッシュメモリ20内のデータを、書き込み対象であるデータに更新する。
ライトフラッシュモードでは、書き込み対象であるデータがキャッシュにヒットした場合、キャッシュメモリ20への書き込みを行うことなく、メモリ40a,40bにのみデータの書き込みを行い、データを書き込んだキャッシュを無効な状態とする。また、書き込み対象であるデータがキャッシュにミスヒットした場合、メモリ40a,40bにのみデータを書き込み、キャッシュメモリ20への書き込みは行わない。
また、CPUコア10は、上述の3つのモードの他に、キャッシュメモリ20内においてデータ保持させるためのモードとして、ロックモードを選択することが可能である。
ロックモードでデータにアクセスすることにより、キャッシュメモリ20内に一旦取り込んだデータは、LRUアルゴリズムによる更新が行われることなく継続して保持される。
キャッシュメモリ20は、メモリ40a,40bより高速にCPUコア10からアクセス可能な記憶素子を備えており、CPUコア10がメモリ40a,40bとデータを入出力する処理を高速化する。
ここで、キャッシュメモリの方式には種々のものがあるが、セット・アソシアティブ方式が一般的であるため、ここでは2ウェイ(ウェイA,B)のセット・アソシアティブ方式のキャッシュメモリを例に挙げて説明する。
なお、セット・アソシアティブ方式とは、キャッシュメモリを複数の領域(ウェイ)に分割し、それぞれのウェイに、メモリデバイス上の異なるアドレスのデータを格納しておくことにより、ヒット率を向上させることができる方式である。
図2は、キャッシュメモリ20の機能構成を示すブロック図である。
図2において、キャッシュメモリ20は、アドレスデコード部21と、ヒット検出部22と、フラグメモリ23と、タグアドレスメモリ24と、キャッシュ制御部25と、データメモリ26と、メモリインターフェース(I/F)27とを含んで構成される。
アドレスデコード部21は、CPUコア10からCPUアドレスバスを介して入力されたアドレスをデコードし、キャッシュメモリ20への書き込みモード(ライトスルーモード、ライトバックモード、ライトフラッシュモード、ロックモード)のいずれであるかを示す信号(以下、命令のモードを示す信号を「モード選択信号」と言う。)をキャッシュ制御部25に出力したり、メモリ40a,40b上のアクセス対象であるアドレスを算出してヒット検出部22およびキャッシュ制御部25に出力したりする。
ヒット検出部22は、アドレスデコード部21からアドレスが入力された場合に、データメモリ26に記憶されているデータがヒットしたか否かを検出する。具体的には、タグアドレスメモリ24に記憶されたアドレスそれぞれを参照し、アドレスデコード部21から入力されたアドレスが検出されると、そのアドレスについてフラグメモリ23に記憶されているフラグ(後述するValidフラグ)が有効であることを示すものか否かを判定し、有効であることを示す場合には、キャッシュにヒットしたことを示す制御信号(以下、「キャッシュヒット信号」と言う。)をキャッシュ制御部25に出力する。なお、このキャッシュヒット信号には、キャッシュメモリ20内においてヒットしたデータのアドレス、ウェイおよびエントリを示す情報が含まれている。一方、キャッシュにヒットしない場合には、ヒット検出部22は、キャッシュにヒットしないことを示す制御信号(以下、「キャッシュミスヒット信号」と言う。)をキャッシュ制御部25に出力する。
フラグメモリ23は、データメモリ26の各エントリに記憶されているデータそれぞれについて、各ウェイのデータの有効性を示すValidフラグ、次に使用されるウェイを示すUsedフラグ、エントリの更新に対する制限を示すLockフラグおよびキャッシュメモリ20内のデータがメモリ40a,40bの対応するデータと一致しているか否か(即ち、キャッシュメモリ20内のデータのみが書き換えられているか否か)を示すDirtyフラグを記憶している。これらのフラグは、CPUコア10がキャッシュメモリ20にアクセスすることに対応して、順次、最新の状態を示す値に書き換えられる。
タグアドレスメモリ24は、データメモリ26の各エントリに記憶されているデータそれぞれについて、各ウェイのデータが記憶されているメモリ40a,40b上のアドレスを記憶している。これらのアドレスは、キャッシュメモリ20内のエントリの更新に伴い、順次書き換えられる。
キャッシュ制御部25は、CPUコア10からメモリ40a,40b上のデータの読み出しあるいは書き込みを指示する制御信号(以下、「CPU制御信号」と言う。)が入力されると、そのデータがキャッシュにヒットするか否かに応じて、所定の動作を行う。即ち、CPUコア10からデータの読み出しを指示するCPU制御信号が入力された場合、読み出し対象であるデータがキャッシュにヒットした(ヒット検出部22からキャッシュヒット信号が入力された)ときには、データメモリ26から読み出し対象であるデータを読み出し、CPUコア10に対して出力するデータ(以下、「CPU入力データ」と言う。)とする。
一方、読み出し対象であるデータがキャッシュにヒットしない(ヒット検出部22からキャッシュミスヒット信号が入力された)ときには、キャッシュ制御部25は、アドレスデコード部21から入力されるアドレスに基づいて、メモリ40a,40bから読み対象であるデータを読み出し、CPU入力データとすると共に、キャッシュメモリ20に記憶する。
また、CPUコア10からデータの書き込みを指示するCPU制御信号が入力された場合、キャッシュ制御部25は、そのデータがキャッシュにヒットした(ヒット検出部22からキャッシュヒット信号が入力された)ときには、アドレスデコード部21から入力されるモード選択信号に基づいて、ライトスルーモード、ライトバックモードあるいはライトフラッシュモードのいずれかであるかを判定する。
ライトスルーモードの場合、キャッシュ制御部25は、アドレスデコード部21から入力されるアドレスに基づいて、メモリ40a,40bに、CPU制御信号によって指示されたデータを書き込むと共に、ヒット検出部22から入力されるエントリおよびウェイに対応するデータメモリ26内のデータを、CPU制御信号によって書き込みが指示されたデータに更新する。このとき、更新されたデータのValidフラグは有効であることを示すものとされる。
ライトバックモードの場合、キャッシュ制御部25は、メモリ40a,40bにはアクセスすることなく、ヒット検出部22から入力されるエントリおよびウェイに対応するデータメモリ26内のデータを、CPU制御信号によって書き込みが指示されたデータに更新する。このとき、更新されたデータのValidフラグは有効であることを示すものとされる。また、キャッシュメモリ20のデータメモリ26とメモリ40a,40bとの一致を示すDirtyフラグも同時に更新される。
ライトフラッシュモードの場合、キャッシュ制御部25は、アドレスデコード部21から入力されるアドレスに基づいて、メモリ40a,40bに、CPU制御信号によって指示されたデータを書き込み、データメモリ26内のデータは更新しない。このとき、ヒット検出部22から入力されるエントリおよびウェイに対応するデータメモリ26内のデータのValidフラグは無効であることを示すものとされる。
一方、CPUコア10からデータの書き込みを指示するCPU制御信号が入力された場合に、キャッシュ制御部25は、そのデータがキャッシュにヒットしない(ヒット検出部22からキャッシュミスヒット信号が入力された)ときには、アドレスデコード部21から入力されるモード選択信号が、ライトバックモードである場合にのみ、キャッシュメモリ20内にデータを書き込み、他のモードである場合には、メモリ40a,40bにのみデータを書き込む。
即ち、ライトバックモードである場合、キャッシュ制御部25は、データメモリ26において、LRUアルゴリズムに従い削除対象となっているデータが記憶されている領域あるいは空き領域に、Dirtyフラグの状態に応じて、CPU制御信号によって指示されたデータを書き込み、メモリ40a,40bにはデータを書き込まない。
また、図2において、データメモリ26は、アクセス頻度の高いデータ等、メモリ40a,40b上の所定データを記憶している。さらに、データメモリ26には、ウェイA,Bそれぞれに対応するデータを記憶することが可能である。
メモリI/F27は、キャッシュ制御部25がメモリ40a,40bにアクセスするための入出力インターフェースである。
図1に戻り、DMAC30は、メモリ40a,40bにおけるDMAを制御し、DMAの実行中にCPUコア10をウェイト状態とさせたり、DMAの終了をCPUコア10に通知したりする。
メモリ40a,40bは、例えばSDRAM(Synchronous Dynamic Random Access Memory)等の揮発性のメモリによって構成され、CPUコア10がプログラムを実行する際に読み込む命令あるいは演算対象となるデータを記憶している。
また、メモリ40a,40bによって構成されるメモリ空間には、物理的なメモリ空間を示すアドレスと、書き込みあるいは読み込み命令のモードを示すアドレスとが割り当てられている。
図3は、メモリ40a,40bによって構成されるメモリ空間のアドレスマップを示す図である。
図3において、アドレスの最上位は書き込みあるいは読み込み命令のモードを示し、最上位に次ぐ下位のアドレスはメモリ40a,40bの物理的なメモリ空間を示している。
例えば、“0x4”(16進の“4”)で始まるアドレスはライドバックモードであることを示し、“0x5”(16進の“5”)で始まるアドレスはライトスルーモードであることを示している。また、“0x6”(16進の“6”)で始まるアドレスはライトフラッシュモードであることを示し、“0x7”で始まるアドレスはロックモードであることを示している。
このようなアドレスマップに従って、CPUコア10が、命令のモードに対応する最上位アドレスと、演算対象となるデータが記憶されているメモリ40a,40bの物理的なアドレスとを指定する。
次に、動作を説明する。
まず、CPUコア10が、キャッシュメモリ20に対し、図3に示すアドレスを指定して、データの読み出しあるいは書き込み命令を行う。
すると、キャッシュメモリ20のアドレスデコード部21が、命令中の最上位アドレスに基づいてモードを判定する。そして、その判定されたモードに対応して、ヒット検出部22が各フラグおよびアドレスを更新すると共に、キャッシュ制御部25がデータメモリ26を更新したり、メモリ40a,40bにデータを書き込んだり、メモリ40a,40bからデータを読み出してデータメモリ26に記憶したりする。
このような動作を行うことにより、各フラグは、命令のモードに対応して順次更新される。
図4は、読み出し命令が行われた場合の各フラグの状態遷移を示す図であり、図5は、書き込み命令が行われた場合の各フラグの状態遷移を示す図である。図4および図5においては、命令の種類(読み出し命令“Read”あるいは書き込み命令“Write”)、モード(Mode)、キャッシュにヒットしたか否か(hit/miss)、フラグの初期状態(V0,V1:Validフラグ、U:Usedフラグ、L:Lockフラグ)、使用されるウェイ(使用Way)、チェック対象であるDirtyフラグ(DirtyFlagチェック)、更新後のフラグの値(更新後の値)が示されている。なお、図4および図5において、値のない欄“−”は“don’tcare”(不問)であり、“X”は“0”または“1”のどちらかの値が使用されることを示す。
初めに、図4を参照して、読み出し命令の場合について概説する。
図4において、読み出し命令の場合、ライトスルーモード、ライトバックモードおよびライトフラッシュモードのいずれも同様の状態遷移となる。
例えば、ライトスルーモード、ライトバックモードおよびライトフラッシュモードの読み出し命令が入力され、キャッシュにミスヒットした場合、各フラグの初期状態がV0=0,V1=0のとき、Usedフラグの値に関わらずウェイAが使用され、ウェイAが使用されたときには、ウェイAに有効なデータが書き込まれるため、ValidフラグV0=1となり、さらに、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となる(図4における最上段のパターン参照)。
また、例えば、ライトスルーモード、ライトバックモードおよびライトフラッシュモードの読み出し命令が入力され、キャッシュにミスヒットした場合、各フラグの初期状態がV0=1,V1=1であり、UsedフラグU=0のとき、ウェイAが使用され、ウェイAにデータが書き込まれる(フィルされる)ため、その書き込みに先立ち、DirtyフラグD0がチェックされる。そして、D0=1であれば、キャッシュメモリ20内のデータが書き換えられ、かつ、その内容がメモリ40a,40bには反映されていない状態であることから、キャッシュメモリ20からメモリ40a,40bへの書き出しが行われた上で新たなデータがキャッシュメモリ20内に読み込まれる。また、D0=0であれば、データを書き出す必要がないことから、そのまま新たなデータがキャッシュメモリ20内に読み込まれる。また、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となり、新たに書き込まれたデータについてのDirtyフラグはD0=0となる(図4における第4段のパターン参照)。
また、例えば、ライトスルーモード、ライトバックモードおよびライトフラッシュモードの読み出し命令が入力され、キャッシュにヒットした場合、ValidフラグV0の初期状態がV0=1であり、ウェイAがヒットした場合、ウェイAから値が読み出され、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となる(図4における第7段のパターン参照)。なお、ここでのキャッシュの状態更新アルゴリズムは、LRUに従うものとする。
一方、ロックモードにおいては、例えば、ロックモードの読み出し命令が入力され、キャッシュにミスヒットした場合、各フラグ(V0,V1,U,L)の状態に関わらず、ウェイAが使用され、ウェイAに有効なデータが書き込まれ、このデータは保持される(ロックされる)。フラグの状態は、ValidフラグV0=1、LockフラグL=1となり、さらに、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となる(図4における第9〜12段のパターン参照)。
このように、本発明においては、ロックモードが選択された場合、特定のウェイにデータを保持することが可能である。また、本発明におけるロックモードは、ウェイAについてのみ選択することが可能である。即ち、本発明においては、ロックモードは、ウェイAに専用に設けられたモードとなっている。
また、例えば、ロックモードの読み出し命令が入力され、キャッシュにミスヒットした場合、各フラグの初期状態がV0=1,L=0であり、ウェイAが既に使用されたときには、ウェイAにデータが書き込まれる(フィルされる)ため、その書き込みに先立ち、DirtyフラグD0がチェックされる。そして、D0=1であれば、キャッシュメモリ20内のデータが書き換えられ、かつ、その内容がメモリ40a,40bには反映されていない状態であることから、キャッシュメモリ20からメモリ40a,40bへの書き出しが行われた上で新たなデータがキャッシュメモリ20内に読み込まれる。一方、D0=0であれば、データを書き出す必要がないことから、そのまま新たなデータがキャッシュメモリ20内に読み込まれる。また、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となり、新たに書き込まれたデータについてのDirtyフラグはD0=0となる。さらに、新たに書き込まれたデータは保持されるため、LockフラグはL=1となる(図4における第10段のパターン参照)。
他の場合についても、同様に、命令のモードに従ってフラグが更新される。
次に、図5を参照して、書き込み命令の場合について概説する。
図5において、書き込み命令の場合、ライトスルーモード、ライトバックモード、ライトフラッシュモードおよびロックモードのいずれも異なる状態遷移となる。
例えば、ライトバックモードの書き込み命令が入力され、キャッシュにミスヒットした場合、各フラグの初期状態がV0=0,V1=0のとき、Usedフラグの値に関わらずウェイAが使用され、ウェイAに有効なデータが書き込まれるため、ValidフラグV0=1、となり、さらに、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となる。また、キャッシュメモリ20にはデータが書き込まれたが、メモリ40a,40bにはそのデータが書き込まれていないため、DirtyフラグはD0=1となる。(図5における最上段のパターン参照)。
また、例えば、ライトバックモードの書き込み命令が入力され、キャッシュにミスヒットした場合、各フラグの初期状態がV0=1,V1=1であり、UsedフラグU=0のとき、ウェイAが使用され、ウェイAにデータが書き込まれる(フィルされる)ため、その書き込みに先立ち、DirtyフラグD0がチェックされる。そして、D0=1であれば、キャッシュメモリ20内のデータが書き換えられ、かつ、その内容がメモリ40a,40bには反映されていない状態であることから、キャッシュメモリ20からメモリ40a,40bへの書き出しが行われた上で新たなデータがキャッシュメモリ20内に読み込まれる。一方、D0=0であれば、データを書き出す必要がないことから、そのまま新たなデータがキャッシュメモリ20内に読み込まれる。また、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となり、新たに書き込まれたデータについてのDirtyフラグはD0=1となる(図5における第4段のパターン参照)。
また、例えば、ライトスルーモードの書き込み命令が入力され、キャッシュにヒットした場合、ValidフラグV0の状態がV0=1であり、ウェイAがヒットしたときには、ウェイAにデータが書き込まれる(フィルされる)ため、その書き込みに先立ち、DirtyフラグD0がチェックされる。そして、D0=1であれば、キャッシュメモリ20内のデータが書き換えられ、かつ、その内容がメモリ40a,40bには反映されていない状態であることから、キャッシュメモリ20からメモリ40a,40bへの書き出しが行われた上で新たなデータがキャッシュメモリ20内に読み込まれる。一方、D0=0であれば、データを書き出す必要がないことから、そのまま新たなデータがキャッシュメモリ20内に読み込まれる。また、次に更新対象となるウェイはウェイBとなることからUsedフラグはU=1となり、新たに書き込まれたデータについてのDirtyフラグはD0=0となる(図5における第10段のパターン参照)。
また、例えば、ライトフラッシュモードの書き込み命令が入力され、キャッシュにヒットした場合、ValidフラグV0の状態がV0=1であり、ウェイAがヒットしたときには、ウェイAにデータが書き込まれる(フィルされる)ため、その書き込みに先立ち、DirtyフラグD0がチェックされる。そして、D0=1であれば、キャッシュメモリ20内のデータが書き換えられ、かつ、その内容がメモリ40a,40bには反映されていない状態であることから、キャッシュメモリ20からメモリ40a,40bへの書き出しが行われた上で新たなデータがキャッシュメモリ20内に読み込み可能となる。一方、D0=0であれば、データを書き出す必要がないことから、そのまま新たなデータがキャッシュメモリ20内に読み込み可能となる。また、ライトフラッシュモードの場合、使用されたウェイAが開放される。即ち、ValidフラグV0はV0=0(無効)とされ、次に更新対象となるウェイはヒットしたウェイ(この例ではウェイAとなる。)となるため、UsedフラグはU=0となり、新たに読み込まれたデータについてのDirtyフラグはリセットされる(図5における第13段のパターン参照)。
なお、本実施の形態に係るキャッシュメモリ20の各ウェイは、複数ワード長を有し、複数ワードに対して1つのDirtyフラグが設定されている。そして、同一のDirtyフラグが設定されている複数ワードについては、ワード単位でなく、それら複数のワードをまとめてキャッシュメモリ20に入出力する構成である。そのため、特定のワードに対する書き込み命令が実行される場合には、同一のDirtyフラグが設定されている他のワードについて、メモリ40a,40bとのコヒーレンシを確保する必要がある。したがって、上述のように、ライトスルーモードおよびライトフラッシュモードの場合にも、Dirtyフラグのチェックおよびメモリ40a,40bへのデータの書き出しが行われる。また、ライトスルーモードおよびライトフラッシュモードの場合、キャッシュにミスヒットしたときには、キャッシュメモリ20に対する操作は行われない。
さらに、例えば、ロックモードの書き込み命令が入力され、キャッシュにヒットした場合、ValidフラグV0の状態がV0=1であり、ウェイAがヒットしたときには、ウェイAにデータが書き込まれる(フィルされる)ため、その書き込みに先立ち、DirtyフラグD0がチェックされる。そして、D0=1であれば、キャッシュメモリ20内のデータが書き換えられ、かつ、その内容がメモリ40a,40bには反映されていない状態であることから、キャッシュメモリ20からメモリ40a,40bへの書き出しが行われた上で新たなデータがキャッシュメモリ20内に読み込まれる。一方、D0=0であれば、データを書き出す必要がないことから、そのまま新たなデータがキャッシュメモリ20内に読み込まれる。また、ロックモードの場合、ウェイAのデータが保持される。したがって、次に更新対象となるウェイは常にウェイBとなることからUsedフラグはU=1となり、新たに書き込まれたデータについてのDirtyフラグはD0=0となる(図5における第16段のパターン参照)。
このように、各命令において、CPUコア10がモードを指定することによってモードの切り替えを行うことが可能であり、それによって、キャッシュメモリ20からメモリ40a,40bに対するデータの書き出しを柔軟に行うことが可能となる。
以下、プログラムの実行中に、モードを切り替える場合の具体的な処理フローについて説明する。
図6は、プログラムの実行中にライトバックモードとライトフラッシュモードとを切り替える場合の処理を示すフローチャートである。
図6において、処理が開始されると、CPUコア10は、メモリ40a,40bにおいて使用するメモリの領域を確保し(ステップS1)、読み出しあるいは書き込み命令における指定アドレスをライトバックモードに対応するアドレス(アドレスの最上位を“0x4”)に設定する(ステップS2)。
そして、CPUコア10は、ライトバックモードによる処理を実行し(ステップS3)、ライトバックモードによる処理、即ち、データの局所性を用いる処理が全て終了したか否かの判定を行う(ステップS4)。
ステップS4において、データの局所性を用いる処理の全ては終了していないと判定した場合、CPUコア10は、ステップS3の処理に移行し、データの局所性を用いる処理が全て終了したと判定した場合、読み出しあるいは書き込み命令における指定アドレスをライトフラッシュモードに対応するアドレス(アドレスの最上位を“0x6”)に設定する(ステップS5)。
次いで、CPUコア10は、ライトフラッシュモードによる処理を実行し(ステップS6)、ライトフラッシュモードによる処理、即ち、メモリ40a,40bへの書き出しを伴う処理が全て終了したか否かの判定を行う(ステップS7)。
ステップS7において、メモリ40a,40bへの書き出しを伴う処理の全ては終了していないと判定した場合、CPUコア10は、ステップS6の処理に移行し、メモリ40a,40bへの書き出しを伴う処理が全て終了したと判定した場合、DMAC30による処理(DMA転送等)を実行する(ステップS8)。
そして、CPUコア10は、ステップS1において確保したメモリの領域を開放し(ステップS9)、処理を終了する。
このように、DMA等、キャッシュメモリ20が記憶するデータとメモリ40a,40bが記憶するデータとの高いコヒーレンシを要する場合に、プログラムの実行中において、ライトバックモード(あるいは他のモード)からライトフラッシュモードに切り替えることが可能であることにより、キャッシュフラッシュを行う必要がなくなるため、情報処理装置1の処理速度を向上させることが可能となると共に、順次、キャッシュメモリ20のエントリが開放されるため、キャッシュメモリ20を効率的に使用することが可能となる。
次に、プログラムの実行中にライトバックモードとロックモードとを切り替える場合の処理について説明する。
図7は、プログラムの実行中にライトバックモードとロックモードとを切り替える場合の処理を示すフローチャートである。
図7において、処理が開始されると、CPUコア10は、メモリ40a,40bにおいて使用するメモリの領域を確保し(ステップS101)、読み出しあるいは書き込み命令における指定アドレスをロックモードに対応するアドレス(アドレスの最上位を“0x7”)に設定する(ステップS102)。
そして、CPUコア10は、メモリ40a,40bから使用頻度の高いテーブル形式のデータをキャッシュメモリ20に読み出し、その参照を伴う処理を実行する(ステップS103)。
ここで、ステップS103において読み出されるデータは、テーブル形式のデータに限られず、使用頻度が高く固定的な値に保たれるデータであれば良い。
次いで、CPUコア10は、使用頻度の高いテーブル形式のデータを参照する処理が全て終了したか否かの判定を行う(ステップS104)。
ステップS104において、使用頻度の高いテーブル形式のデータを参照する処理の全ては終了していないと判定した場合、CPUコア10は、ステップS103の処理に移行し、使用頻度の高いテーブル形式のデータを参照する処理が全て終了したと判定した場合、読み出しあるいは書き込み命令における指定アドレスをライトバックモードに対応するアドレス(アドレスの最上位を“0x4”)に設定する(ステップS105)。
次に、CPUコア10は、ライトバックモードによる処理を実行し(ステップS106)、ライトバックモードにより処理が全て終了したか否かの判定を行う(ステップS107)。
ステップS107において、ライトバックモードによる処理の全ては終了していないと判定した場合、CPUコア10は、ステップS106の処理に移行し、ライトバックモードによる処理が全て終了したと判定した場合、ロックモードによって保持されたデータが記憶されている領域(ロック領域)を開放するコマンドを実行する(ステップS108)。
そして、CPUコア10は、ステップS101において確保したメモリの領域を開放し(ステップS109)、処理を終了する。
このように、テーブル形式のデータ等、使用頻度が高く固定的な値に保たれるデータを参照する場合に、ロックモードによる読み出しあるいは書き込みを行い、使用頻度が高く固定的な値に保たれるデータを参照する処理が終了した後に、ライトバックモード(あるいは他のモード)に切り替えることが可能であることにより、キャッシュのヒット率を向上させることができるため、情報処理装置1の処理速度を向上させることが可能となる。
以上のように、本実施の形態に係る情報処理装置1は、従来のライトバックモード、ライトスルーモードに加え、ライトフラッシュモードによって、データの読み出しあるいは書き込み命令を実行することが可能である。
したがって、キャッシュフラッシュを行うことなく、キャッシュメモリ20のデータとメモリ40a,40bのデータとの高いコヒーレンシを確保することができるため、情報処理装置1の処理速度を向上させることが可能となる。
また、ライトフラッシュモードによってデータの書き込み命令を実行した場合、書き込まれたデータが記憶されていたキャッシュメモリ20のエントリが開放されるため、キャッシュメモリ20をより効率的に使用することが可能となる。
また、本実施の形態に係る情報処理装置1は、ロックモードによる読み出しあるいは書き込み命令を実行することが可能である。
したがって、使用頻度が高く固定的な値に保たれるデータを、要求に応じてキャッシュメモリ20内に保持させることが可能となり、キャッシュのヒット率が向上すると共に、処理速度を向上させることが可能となる。
また、本実施の形態に係る情報処理装置1は、ライトバックモード、ライトフラッシュモード、ロックモードおよびライトフラッシュモードを、プログラムの実行中に、相互に切り替えることが可能である。
例えば、キャッシュメモリ20内のデータをメモリ40a,40bに書き出すことにより、キャッシュメモリ20のデータとメモリ40a,40bのデータとのコヒーレンシを確保する際に、引き続き使用するデータについては、ライトスルーモードに設定し、キャッシュを有効な状態に維持する一方、以後、使用しないデータについては、ライトフラッシュモードに設定し、エントリを開放するといったことにより、キャッシュメモリ20の状態を制御することが可能である。
したがって、プログラムの処理内容に応じて柔軟に命令のモードを変更することが可能となり、処理効率を向上させることが可能となる。
本発明を適用した情報処理装置1の構成を示す概略図である。 キャッシュメモリ20の機能構成を示すブロック図である。 メモリ40a,40bによって構成されるメモリ空間のアドレスマップを示す図である。 読み出し命令が行われた場合の各フラグの状態遷移を示す図である。 書き込み命令が行われた場合の各フラグの状態遷移を示す図である。 プログラムの実行中にライトバックモードとライトフラッシュモードとを切り替える場合の処理を示すフローチャートである。 プログラムの実行中にライトバックモードとロックモードとを切り替える場合の処理を示すフローチャートである。
符号の説明
1 情報処理装置,10 CPUコア,20 キャッシュメモリ,21 アドレスデコード部,22 ヒット検出部,23 フラグメモリ,24 タグアドレスメモリ,25 キャッシュ制御部,26 データメモリ,30 DMAC,40a,40b メモリ

Claims (7)

  1. 読み出し対象となるデータを記憶しているメモリデバイスから、記憶されているデータの少なくとも一部をキャッシュしておくことが可能であり、ライトバックモードあるいはライトスルーモードの少なくともいずれかを含む複数のアクセス方式によってアクセス可能なキャッシュメモリを備える情報処理装置であって、
    データの書き込みを行う場合に、前記キャッシュメモリにおいて、該データが記憶されている領域に書き込みを行うことなく、該領域を開放すると共に、該データを前記メモリデバイスにおける所定アドレスに書き込むライトフラッシュモードを前記アクセス方式に含み、
    プログラムの実行中に前記ライトバックモードとライトスルーモードとライトフラッシュモードとを相互に切り替えて、前記キャッシュメモリにアクセス可能であり、
    前記ライトフラッシュモードにおいては、データの書き込みを行う場合に、前記キャッシュメモリにおいて、該データが記憶されていない場合に、前記キャッシュメモリへのアクセスを行わず、該データを前記メモリデバイスにおける所定アドレスに書き込むことを特徴とする情報処理装置。
  2. 前記キャッシュメモリに記憶されているデータと前記メモリデバイスに記憶されているデータとのコヒーレンシを確保した後、前記ライトスルーモードあるいはライトフラッシュモードのいずれかに切り替え可能であることを特徴とする請求項1記載の情報処理装置。
  3. データの読み出しあるいは書き込みを行う場合に、前記キャッシュメモリに記憶された該データを、他のデータと区別して保持するロックモードを前記アクセス方式に含むことを特徴とする請求項1または2記載の情報処理装置。
  4. 前記キャッシュメモリは、複数ウェイを含むセット・アソシアティブ方式のキャッシュメモリであって、前記ロックモードは、前記複数のウェイにおける特定のウェイを対象として設定可能とされていることを特徴とする請求項3記載の情報処理装置。
  5. プログラムの実行中に前記ライトバックモードとロックモードとを相互に切り替えて、前記キャッシュメモリにアクセス可能であることを特徴とする請求項3または4記載の情報処理装置。
  6. 前記複数のアクセス方式は、読み出しあるいは書き込み命令の対象となるメモリ空間におけるアドレスの一部に対応付けられ、前記アクセス方式に対応するアドレスを指定することにより、各命令における前記アクセス方式を設定可能であることを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
  7. 読み出し対象となるデータを記憶しているメモリデバイスから、記憶されているデータの少なくとも一部をキャッシュしておくことが可能であり、ライトバックモードあるいはライトスルーモードの少なくともいずれかを含む複数のアクセス方式によってアクセス可能なキャッシュメモリを備える情報処理装置におけるキャッシュメモリ制御方法であって、
    データの書き込みを行う場合に、前記キャッシュメモリにおいて、該データが記憶されている領域に書き込みを行うことなく、該領域を開放すると共に、該データを前記メモリデバイスにおける所定アドレスに書き込むライトフラッシュモードを前記アクセス方式に含み、
    プログラムの実行中に前記ライトバックモードとライトスルーモードとライトフラッシュモードとを相互に切り替えて、前記キャッシュメモリにアクセス可能であり、
    前記ライトフラッシュモードにおいては、データの書き込みを行う場合に、前記キャッシュメモリにおいて、該データが記憶されていない場合に、前記キャッシュメモリへのアクセスを行わず、該データを前記メモリデバイスにおける所定アドレスに書き込むことを特徴とするキャッシュメモリ制御方法。
JP2003388021A 2003-09-09 2003-11-18 情報処理装置およびキャッシュメモリ制御方法 Expired - Fee Related JP4765249B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003388021A JP4765249B2 (ja) 2003-11-18 2003-11-18 情報処理装置およびキャッシュメモリ制御方法
US10/927,090 US20050086435A1 (en) 2003-09-09 2004-08-27 Cache memory controlling apparatus, information processing apparatus and method for control of cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003388021A JP4765249B2 (ja) 2003-11-18 2003-11-18 情報処理装置およびキャッシュメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2005149290A JP2005149290A (ja) 2005-06-09
JP4765249B2 true JP4765249B2 (ja) 2011-09-07

Family

ID=34695225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003388021A Expired - Fee Related JP4765249B2 (ja) 2003-09-09 2003-11-18 情報処理装置およびキャッシュメモリ制御方法

Country Status (1)

Country Link
JP (1) JP4765249B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949834B2 (en) * 2007-01-24 2011-05-24 Qualcomm Incorporated Method and apparatus for setting cache policies in a processor
JP5083757B2 (ja) * 2007-04-19 2012-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データをキャッシュする技術
US10467092B2 (en) * 2016-03-30 2019-11-05 Qualcomm Incorporated Providing space-efficient storage for dynamic random access memory (DRAM) cache tags

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821001B2 (ja) * 1988-02-12 1996-03-04 富士通株式会社 キャッシュメモリの制御方法
JPH01266643A (ja) * 1988-04-18 1989-10-24 Nippon Telegr & Teleph Corp <Ntt> キャッシュ制御方式
EP0343567A3 (en) * 1988-05-25 1991-01-09 Hitachi, Ltd. Multi-processing system and cache apparatus for use in the same
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
JPH03210645A (ja) * 1990-01-12 1991-09-13 Mitsubishi Electric Corp キヤツシユ制御方式
JPH04296950A (ja) * 1991-03-06 1992-10-21 Mitsubishi Electric Corp キャッシュメモリ装置
US5625793A (en) * 1991-04-15 1997-04-29 International Business Machines Corporation Automatic cache bypass for instructions exhibiting poor cache hit ratio
JPH06266623A (ja) * 1993-03-12 1994-09-22 Toshiba Corp キャッシュメモリ及びキャッシュメモリ制御方法
JPH07129464A (ja) * 1993-11-05 1995-05-19 Hitachi Ltd 情報処理装置
JPH07191910A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd キャッシュメモリ制御方法
JPH08202622A (ja) * 1995-01-31 1996-08-09 Fujitsu Ltd 分散型メモリ構成のキャッシュ制御方法
JPH0991201A (ja) * 1995-09-27 1997-04-04 Nec Niigata Ltd キャッシュメモリのフラッシュ制御方法及びフラッシュ 制御回路
US5687131A (en) * 1996-03-22 1997-11-11 Sharp Microelectronics Technology, Inc. Multi-mode cache structure
JP2001202286A (ja) * 2000-01-24 2001-07-27 Nec Corp キャッシュメモリのフラッシュ制御回路及びその制御方法
JP2001331475A (ja) * 2000-05-23 2001-11-30 Nec Corp ベクトル命令処理装置およびベクトル命令処理方法
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
GB2368150B (en) * 2000-10-17 2005-03-30 Advanced Risc Mach Ltd Management of caches in a data processing apparatus
JP3988485B2 (ja) * 2002-02-25 2007-10-10 セイコーエプソン株式会社 キャッシュ回路、情報処理装置及び電子機器

Also Published As

Publication number Publication date
JP2005149290A (ja) 2005-06-09

Similar Documents

Publication Publication Date Title
US20050086435A1 (en) Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
JP5536655B2 (ja) キャッシュメモリ、メモリシステム及びデータコピー方法
US20110173393A1 (en) Cache memory, memory system, and control method therefor
JP4920378B2 (ja) 情報処理装置およびデータ検索方法
JP2007011580A (ja) 情報処理装置
JP3236287B2 (ja) マルチプロセッサシステム
JP2008107983A (ja) キャッシュメモリ
JP3900025B2 (ja) 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
JPH10293720A (ja) コンピュータシステムにおけるキャッシュ・コヒーレンシー機構および主メモリに保持されている項目に関してキャッシュの内容のコヒーレンシー状態を変更する方法
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
JP4009306B2 (ja) キャッシュメモリおよびその制御方法
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
JP5286796B2 (ja) メモリ制御装置
JP5129023B2 (ja) キャッシュメモリ装置
JP2007058349A (ja) キャッシュシステム
JP2008165626A (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP4765249B2 (ja) 情報処理装置およびキャッシュメモリ制御方法
JP3964821B2 (ja) プロセッサ、キャッシュシステム及びキャッシュメモリ
US9053030B2 (en) Cache memory and control method thereof with cache hit rate
JP6451475B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
JP2006285727A (ja) キャッシュメモリ装置
JPH0659977A (ja) 明示的なライン置換え操作が可能なキャッシュメモリとその制御方法
JP2006139497A (ja) データ転送装置およびデータ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061108

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20061108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110530

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140624

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees