Nothing Special   »   [go: up one dir, main page]

JP2006244460A - キャッシュメモリ及びプロセッサ - Google Patents

キャッシュメモリ及びプロセッサ Download PDF

Info

Publication number
JP2006244460A
JP2006244460A JP2005366569A JP2005366569A JP2006244460A JP 2006244460 A JP2006244460 A JP 2006244460A JP 2005366569 A JP2005366569 A JP 2005366569A JP 2005366569 A JP2005366569 A JP 2005366569A JP 2006244460 A JP2006244460 A JP 2006244460A
Authority
JP
Japan
Prior art keywords
data
processor
memory
read
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.)
Granted
Application number
JP2005366569A
Other languages
English (en)
Other versions
JP4904802B2 (ja
JP2006244460A5 (ja
Inventor
Mitsunari Todoroki
晃成 轟
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 JP2005366569A priority Critical patent/JP4904802B2/ja
Publication of JP2006244460A publication Critical patent/JP2006244460A/ja
Publication of JP2006244460A5 publication Critical patent/JP2006244460A5/ja
Application granted granted Critical
Publication of JP4904802B2 publication Critical patent/JP4904802B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】プロセッサ間でデータのコヒーレンシーを動作効率よく保つことができるキャッシュメモリ及びこのキャッシュメモリを備えたプロセッサを提供する。
【解決手段】複数のプロセッサによってキャッシュされたデータが保存されるデータメモリ207、データメモリ207におけるデータのアドレスを一括して管理するタグメモリ206、プロセッサによって供給を要求されたデータのアドレスをタグメモリ206によって管理されているアドレスと照合し、供給を要求されたデータがデータメモリ207から読出し可能であるか否か検出するヒット検出部208、ヒット検出部208によってデータが読出し可能であることが検出された場合、検出されたデータをプロセッサに供給するキャッシュ制御部103を備える。
【選択図】図3

Description

本発明は、キャッシュメモリ及びプロセッサに係り、特にマルチスレッドプロセッサ等の複数の処理を並列に実行するプロセッサに備えられるキャッシュメモリ及びこのようなキャッシュメモリを備えたプロセッサに関する。
近年、複数のスレッドやタスク(実施形態1ではスレッドに統一して記す)を並列に実行するマルチプロセッサ(マルチコア)、あるいはマルチスレッドプロセッサが注目されている。このようなプロセッサは、総称してマルチプロセッサシステムとも呼ばれる。マルチプロセッサシステムでは、データ等が蓄積されている外部メモリへのアクセスを効率化するため、外部メモリからいったん読み出されたデータのうちの処理に使用される可能性のあるデータを保存しておくキャッシュメモリを備えるマルチプロセッサシステムがある。このような構成の従来技術として、例えば、特許文献1が掲げられる。
また、特許文献1に示したようなキャッシュメモリを備えたマルチプロセッサでは、複数のプロセッサ間で処理に使用されるデータの一致性(コヒーレンシー)を保つことが必要である。従来のプロセッサでは、データのコヒーレンシーを保つためにバス・スヌープが多く採用されている。バス・スヌープとは、各プロセッサ間で共有されるメモリインターフェイスバス上のトランザクションを観察し、自身に割り当てられているキャッシュメモリ上にあるデータにかかるトランザクションが発生したか否かを検出する機能である。
自身に割り当てられたキャッシュメモリ上にあるデータのトランザクションが発生した場合、プロセッサは、キャッシュメモリの該当するエントリを更新し、マルチプロセッサシステムにおける各プロセッサのキャッシュメモリ領域等に保存されているデータの内容を統一する。バス・スヌープには多くの実装法があり、例えばライトワンスやバークレイプロトコルがある。
特開2004−178571
しかしながら、上記した特許文献1の発明は、キャッシュメモリの記憶領域を独立の領域に分割し、マルチプロセッサシステムで同時に実行されるスレッドごとに割り当てている。このような特許文献1によれば、キャッシュメモリに必要とされるデータが保存されていて、このデータに対するアクセスの成功(ヒット)の割合(ヒット率)が低下するという不具合がある。
さらに、特許文献1に記した構成でバス・スヌープの機能を用いコヒーレンシーを保持する場合、バスをモニタする回路によってマルチプロセッサシステムのハードウェア構成が大規模化する。また、バスを常時モニタするために消費電力が高まり、キャッシュメモリの独立した各領域に各々アクセスしてデータを書き換えるため、コヒーレンシー保持の動作効率が低いという課題が生じる。
本発明は、上記した点に鑑みてなされたものであって、マルチプロセッサシステムにあって装置構成を大きくする、あるいは消費電力を高めることがなく、プロセッサ間でデータのコヒーレンシーを動作効率よく保つことができるキャッシュメモリ及びこのキャッシュメモリを備えたプロセッサを提供することを目的とする。
以上の課題を解決するため、本発明のキャッシュメモリは、複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部を前記プロセッサに供給するキャッシュメモリであって、前記記憶装置から読み出されたデータが保存されるデータ保存手段と、前記記憶装置から読み出されたデータの前記データ保存手段におけるアドレスを一括して管理するアドレス管理手段と、前記プロセッサによって供給を要求されたデータのアドレスを前記アドレス管理手段によって管理されているアドレスと照合し、供給を要求されたデータが前記データ保存手段から読出し可能であるか否か検出するヒット検出手段と、前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給するデータ供給手段と、を備えることを特徴とする。
このような発明によれば、複数のプロセッサによってキャッシュされたデータのデータ保存手段におけるアドレスを一括して管理することができるので、複数のプロセッサでキャッシュされたデータを実質的に1つのデータ保存手段に保存することになり、データ保存手段内におけるデータの不統一をなくすことができる。このため、プロセッサ間でデータのコヒーレンシーを動作効率よく保つことができるキャッシュメモリを提供することができる。さらに、データのコヒーレンシーを保つにあたり、別途回路等を追加する必要がないため、キャッシュメモリの装置構成を大きくする、あるいは消費電力を高めることがない。
また、本発明のキャッシュメモリは、前記データ保存手段から読み出されたデータ、前記データ保存手段に書き込まれるデータの少なくとも一方を一時的に保存するバッファ手段をさらに備えることを特徴とする。
このような発明によれば、データ管理手段及びデータ保存手段に対するアクセス回数が低減し、キャッシュメモリへのアクセス速度を高め、キャッシュメモリを採用したプロセッサの処理速度を向上することができる。
また、本発明のキャッシュメモリは、前記データ供給手段が、前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給すると共に、前記プロセッサに供給されたデータと連続するデータを含むデータを、前記データ保存手段から読み出されたデータを一時的に保存する前記バッファ手段にも供給することを特徴とする。
このような発明によれば、プロセッサに供給されたデータに続くデータを予めバッファに保存することができ、次回にこのデータが要求されたときデータ管理手段及びデータ保存手段にアクセスする必要がなくなる。このため、データ管理手段及びデータ保存手段に対するアクセス回数が低減し、キャッシュメモリへのアクセス速度を高め、キャッシュメモリを採用したプロセッサの処理速度を向上することができる。
また、本発明のキャッシュメモリは、前記プロセッサによって供給が要求されることが予想されるデータをキャッシュしておく先読みデータ保存手段をさらに備えることを特徴とする。
このような発明によれば、データ管理手段及びデータ保存手段に対するアクセス回数が低減し、キャッシュメモリへのアクセス速度を高め、キャッシュメモリを採用したプロセッサの処理速度を向上することができる。
また、本発明のキャッシュメモリは、前記データ管理手段が、前記データ保存手段のアドレスを複数のウェイとして管理すると共に、データ保存手段に保存されているデータを前記データ保存手段にデータを保持する際の優先度である保存優先度を前記ウェイごとに付し、かつ、各ウェイに付される保存優先度を該ウェイで管理されているデータに対するアクセスの状態に基づいて決定することを特徴とする。
このような発明によれば、データを複数のウェイで管理する場合にもLRU方式を採用してキャッシュのヒット率を高めることができる。
また、本発明のキャッシュメモリは、前記データ保存手段、前記データ管理手段の少なくとも一方がマルチポートメモリであることを特徴とする。
このような発明によれば、複数のプロセッサがデータメモリ、タグメモリに高速にアクセスすることが可能になってマルチプロセッサの処理能力を向上させることができる。
また、本発明のプロセッサは、複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部を前記プロセッサに供給するキャッシュメモリを備えたプロセッサであって、前記キャッシュメモリは、前記記憶装置から読み出されたデータが保存されるデータ保存手段と、前記記憶装置から読み出されたデータの前記データ保存手段におけるアドレスを一括して管理するアドレス管理手段と、前記プロセッサによって供給を要求されたデータのアドレスを前記アドレス管理手段によって管理されているアドレスと照合し、供給を要求されたデータが前記データ保存手段から読出し可能か否かを検出するヒット検出手段と、
前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給するデータ供給手段と、を備えることを特徴とする。
このような発明によれば、複数のプロセッサによってキャッシュされたデータのデータ保存手段におけるアドレスを一括して管理することができるので、複数のプロセッサでキャッシュされたデータを実質的に1つのデータ保存手段に保存することになり、データ保存手段内におけるデータの不統一をなくすことができる。このため、プロセッサ間でデータのコヒーレンシーを動作効率よく保つことができるプロセッサを提供することができる。さらに、データのコヒーレンシーを保つにあたり、別途回路等を追加する必要がないため、プロセッサにあって装置構成を大きくする、あるいは消費電力を高めることがない。
また、本発明のキャッシュメモリは、複数の前記プロセッサの各々が、スレッドごとに処理を実行すると共に、処理の実行中に実行されているスレッドを他のスレッドと変更し得ることを特徴とする。
このような発明によれば、1つのプロセッサが共通するデータにアクセスする可能性が高いマルチスレッドプロセッサにあってもプロセッサ間でデータのコヒーレンシーを動作効率よく保つことができる。
以下、図を参照して本発明に係るキャッシュメモリ及びこのキャッシュメモリを備えたプロセッサの実施の形態1、実施形態2を説明する。
(実施形態1)
図1は、本発明の実施形態1、実施形態2に共通のキャッシュメモリを備えたマルチスレッドプロセッサ101を示した図である。マルチスレッドプロセッサ101は、外部メモリ105からデータを読み出す、あるいは実行されたスレッドの結果等を外部メモリ105に書込んでいる。
また、マルチスレッドプロセッサ101は、キャッシュメモリ109を備え、外部メモリ105に対し、キャッシュメモリ109を介してデータを読み出す、あるいは書込んでいる。キャッシュメモリ109は、マルチスレッドプロセッサ101に含まれる複数のプロセッサによってキャッシュされたデータを保存しておき、キャッシュされたデータの少なくとも一部を複数のプロセッサのいずれかに供給する。このため、マルチスレッドプロセッサ101は、外部メモリ105にアクセスすることなくデータの多くの供給を受けることができる。
キャッシュメモリ109は、一般的に外部メモリ105よりもプロセッサが高速にアクセス可能な構成を有している。このため、キャッシュメモリ109にアクセスしてデータを取得する構成は、マルチスレッドプロセッサ101のデータの読出し及び書込みを高速化すると共に外部メモリ105に対するアクセス回数を低減し、マルチスレッドプロセッサ101の処理速度及び処理効率を高めることができる。
また、マルチスレッドプロセッサ101は、複数のスレッドと、スレッドの実行に使用されるプロセッサとを一対一に割り付けるものでなく、複数のプロセッサの各々が、スレッドごとに処理を実行すると共に、処理の実行中に実行されているスレッドを他のスレッドと変更し得る。このようなマルチスレッドプロセッサ101は、マルチスレッドOSによって動作するものである。
すなわち、マルチスレッドプロセッサ101では、複数のプロセッサが、スレッドの優先順位に応じて実行されるスレッドを動的に変更する。このような動作を図2に例示する。図2に示した例では、マルチスレッドプロセッサ101がプロセッサ0からプロセッサ3の4つのプロセッサを備えている。そして、いずれのプロセッサもスレッドの実行中により優先度の高いスレッドの割込みが入り、割り込んだスレッドに処理を切り換えている。
スレッドが切り替えられる場合、マルチスレッドプロセッサ101は、切り替え直前のスレッドの状態や結果(コンテキスト)を退避させると共に、次に実行されるスレッドのコンテキストをプロセッサ設定する。
マルチスレッドプロセッサ101では、プロセッサ0からプロセッサ3のいずれでもOSが動作し、他のプロセッサを制御し得る。このようなマルチスレッドプロセッサは、複数のプロセッサが同等な立場で処理を分担するものであって、対称型マルチプロセッサ(SMP:Symmetric Multi Processor)とも呼ばれている。
また、キャッシュメモリ109は、データの保存に使用されるキャッシュメモリ部107と、キャッシュメモリ部107に対するデータの保存を制御するキャッシュ制御部103とを備えている。キャッシュメモリ部107は、後に図示するように、データに付されたアドレスや状態を管理するタグメモリと、データ本体を保存するためのデータメモリとを含んでいる。
図3は、キャッシュメモリ109の構成をより詳細に示した図である。なお、実施形態1では、キャッシュメモリ109がプロセッサ0からプロセッサ3までの4つのプロセッサと接続し、4つのプロセッサからデータの要求を受けると共に、4つのプロセッサから受け取ったデータを書き込むことが可能である。なお、各プロセッサがキャッシュメモリ109に対して行うデータの要求を、実施形態1では以降読出し命令と記す。
キャッシュメモリ109は、図1に示したように、キャッシュ制御部103と、キャッシュメモリ部107と、ヒット検出部208とを備えている。キャッシュメモリ部107は、タグメモリ206とデータメモリ207とを有し、データメモリ207は、外部メモリ105から読み出されたデータが保存される構成である。また、タグメモリ206は、外部メモリ105から読み出されたデータを保存するデータメモリ207や後述するリード・バッファにおけるアドレスを一括して管理する構成である。
タグメモリ206は、データの外部メモリ105におけるデータと、このデータが現在保存されているアドレスとを対応付けるデータを例えばテーブル等によって保存するメモリである。データは、外部メモリ105の他、データメモリ207にも保存されている可能性があるから、データが現在保存されているアドレスは、データメモリ207のアドレスをもとり得るものである。
なお、実施形態1では、タグメモリ206が、データのアドレスの他、状態(ステータス)をも管理する。ここでいうステータスとは、データの有効、無効やダーティ(外部メモリ105から読み出された後に変更された)であるか否か等を示す情報である。
また、キャッシュ制御部103は、アドレス制御部201、バッファ管理部202、ライト・バッファ203、リード・バッファ205を備えている。
アドレス制御部201は、プロセッサから入力された読出し命令から要求されたデータのアドレスを取得し、タグメモリ206及びデータメモリ207をアクセスする際のアドレスに変換してタグメモリ206に出力する。あるいは、データメモリ207にキャッシュされているデータを読み出す際、タグメモリ206およびデータメモリ207に読み出されるデータのアドレスを出力する。さらに、データメモリ207にキャッシュされていないデータを外部メモリ105から読み出す際、外部メモリ105のアドレスを生成し、外部メモリ105に出力する。
キャッシュ制御部103は、アドレス制御部201で生成されたアドレスに基づいてタグメモリ206とデータメモリ207とに対するアクセスを制御する。また、キャッシュ制御部103は、タグメモリ206およびデータメモリ207へのアクセスが実際に生じるときだけ、メモリアクセスのクロックを供給するなどの方法によって消費電力を低減することも可能である。
ライト・バッファ203は、データメモリ207に書き込まれるデータを一時的に保存(バッファリング)するバッファであって、プロセッサ0からプロセッサ3の各々に対応するバッファ203a、203b、203c、203dを備えている。また、リード・バッファ205は、データメモリ207から読み出されたデータをバッファリングするバッファであって、ライト・バッファ203と同様に、プロセッサ0からプロセッサ3の各々に対応するバッファ205a、205b、205c、205dを備えている。ライト・バッファ203、リード・バッファ205は、データメモリ207に対する書込みあるいは読出しのタイミングを調整するために設けられた構成である。
さらに、キャッシュ制御部103は、バッファ管理部202を備えている。バッファ管理部202は、ライト・バッファ203とリード・バッファ205との間のデータの整合性をとるための構成である。すなわち、バッファ管理部202は、ライト・バッファ203に保存されているデータとリード・バッファ205に保存されているデータとを比較し、本来同じデータであるべきデータの不一致が検出された場合には、例えばリード・バッファ205に保存されている側のデータを更新、あるいは削除することによって両者を一致させている。
ヒット検出部208は、プロセッサによって供給を要求されたデータのアドレスをタグメモリ206で管理されているアドレスと照合し、データメモリ207に対して供給を要求されたデータがあるか否か検出する。さらに、実施形態1では、供給を要求されたデータが検出された場合、ヒット検出部208が検出されたデータをマルチスレッドプロセッサ101に供給している。
次に、以上述べた構成の動作を、キャッシュメモリ109に対するリードとライトとについて説明する。
(リード動作)
マルチスレッドプロセッサ101は、複数のプロセッサのうちの例えばプロセッサ0から読出し命令を出力する。読出し命令は、供給が要求されるデータの外部メモリ105におけるアドレス(読出しアドレス)と、読出しを指示する信号(読出し制御信号)とを含んでいる。アドレス制御部201は、リード・バッファ205のプロセッサ0に対応するバッファ205aに保存されているデータを検出する。
そして、バッファ205aにデータが保存されている場合、保存されているデータに付されたタグアドレスと、読出しアドレスとを照合する。そして、読出しアドレスがリード・バッファ205のバッファ205aに保存されているデータのタグアドレスと一致した場合、バッファ205aに保存されているデータをプロセッサ0に出力し、読出し処理を完了させる。
読出しアドレスに対応するタグアドレスが付されたデータがリード・バッファ205に保存されていない場合、アドレス制御部201は、タグメモリ206にアクセスして読出しアドレスを照合する。なお、プロセッサは、読出しアドレスとして、外部メモリ105におけるアドレスを使用する。実施形態1では、アドレス制御部201が外部メモリ105におけるアドレスをデータメモリ207にアクセスする際のアドレスに変換する。
タグメモリ206は、読出しの対象となるデータのデータメモリ207におけるアドレスとステータスとを対応付けて保存している。タグメモリ206における照合の結果、読出しアドレスによって指定されたデータがデータメモリ207にあった場合、タグメモリ206は、ヒット検出部208にデータのステータスを出力する。また、タグメモリ206における照合結果はデータメモリ207にも出力され、データメモリ207からヒット検出部208へプロセッサ0によって読出されるデータが出力される。ヒット検出部208は、データのステータスに基づいてデータが読出し可能である、つまりキャッシュヒットしたと判断した場合、ヒットしたデータをプロセッサ0へ出力する。
また、ヒット検出部208は、データの出力と同時に出力されたデータにかかる1エントリ分のデータをリード・バッファ205に転送する。このような処理により、次回のアクセス時に転送されたデータが読み出される場合、キャッシュ制御部103がタグメモリ206とデータメモリ207とにアクセスすることなくデータの読出しが可能になる。
一方、読出しアドレスに対応するデータがタグメモリにない、あるいはデータのステータスが無効である等の理由によってデータが読み出せない(キャッシュミスヒットした)場合、キャッシュ制御部103は、外部メモリ105からデータメモリに読み込むと共にリード・バッファ205に転送した後にプロセッサ0へ出力する。また、キャッシュヒットした場合と同様に1エントリ分のデータをリード・バッファ205に転送する。
なお、以上述べた実施形態1では、リード・バッファ205が複数のプロセッサの各々に対応するバッファ205a〜205dを備えている。しかし、実施形態1は、このような構成に限定されるものでなく、プロセッサ0による読出し命令の読出しアドレスと一致するタグアドレスが付されたデータがバッファ205a以外のバッファに保存されていた場合にもバッファ205a以外のバッファに保存されているデータを読み出す機能を追加することもできる。
複数のプロセッサが動的にスレッドを切り換えて処理を実行するマルチスレッドプロセッサは、複数の異なるプロセッサによって同一のデータが繰り返し使用される可能性がある。このため、上記したように、読出し命令を出力したプロセッサがリード・バッファ205にあるバッファ205a〜205dのいずれにもアクセス可能とすれば、例えばプロセッサ0が他のプロセッサの処理時にリード・バッファ205に転送されたデータを読み出すことができる。
このような処理によれば、キャッシュ制御部103がタグメモリ206、データメモリ207にアクセスする回数が低減し、マルチスレッドプロセッサ101のデータ読出しに係る処理効率が向上する。
また、以上述べた実施形態1は、プロセッサ間でデータのコヒーレンシーを動作効率よく保つことができる。すなわち、例えばプロセッサごとにタグメモリやデータメモリを備える構成では、同じタグアドレスを持つデータが複数の異なるデータメモリに保存されることになる。そして、複数のデータメモリに存在するデータのうちの一部だけが更新される等の理由によってプロセッサ間におけるデータの不一致が発生する。
しかし、実施形態1によれば、外部メモリ105から読み出されたデータのデータメモリ207におけるアドレスをタグメモリ206が一括して管理するため、実質的に唯一のデータメモリによって読出されたデータを保存することになり、キャッシュメモリにおけるデータの不一致をなくすことができる。また、このために実施形態1は、バスを監視する必要がなく、バスを監視するための回路や消費電量が不要である。したがって、プロセッサ間でデータのコヒーレンシーを保つためにマルチプロセッサシステムの装置構成を大きくする、あるいは消費電力を高めることがない。
さらに、実施形態1のマルチスレッドプロセッサは、図2に示したように、1つのプロセッサが複数のスレッドを動的に切り替えて実行するマルチスレッドOSのように、データの不一致が生じやすい構成に適用した場合に特に有利である。
また、実施形態1は、ヒットしたデータの読出しと共に、このデータにかかる1エントリ分のデータをリード・バッファ205に転送しておく。このため、プロセッサがタグメモリ206やデータメモリ207にアクセスする回数を低減し、データの読出しにかかるマルチスレッドプロセッサの負荷を軽減することができる。
つまり、読出しの対象となるデータを保存するデータメモリは、一般にバッファに比べてアクセスタイムが遅く、プロセッサのパフォーマンス向上のボトルネックになりやすい。データメモリの前段にリード・バッファやライト・バッファを設けることによってメモリアクセスの遅延を見かけ上隠すことが可能になり、結果としてプロセッサの性能向上を図ることができる。
(ライト動作)
次に、実施形態1のマルチスレッドプロセッサによるライト動作について説明する。なお、以下に述べるライト動作は、ライトバックを例にしているが、ライトスルーにも適用することができる。
マルチスレッドプロセッサ101は、複数のプロセッサのうちの例えばプロセッサ0からデータを書き込むよう指示する命令(書込み命令)を出力する。書込み命令は、書込みが要求されるデータの外部メモリ105におけるアドレス(書込みアドレス)と、書込みを指示する信号(書込み制御信号)とを含んでいる。また、書込み動作にあっては、書込み命令と共に書込まれるデータ(書込みデータ)もがプロセッサから送出される。
書込みデータは、キャッシュメモリ109において、先ず、書込みアドレスと共にライト・バッファ203に保存される。ライト・バッファ203は、FIFOメモリ(First In First Out memory)でなり、書込まれたデータを書込みの順にデータメモリ207に書き込んでいる。
キャッシュ制御部103は、データをデータメモリ207に書き込むため、先ず、タグメモリ206のタグアドレスに書込みアドレスを照合すると共に、データのステータスを検出する。この結果、データメモリ207にデータの書込みが可能である、つまりキャッシュヒットしたと判断された場合、書込みデータをデータメモリ207に書込む。また、タグメモリに保存されているデータのステータスを示すフラグを「ダーティ」にする。
また、キャッシュ制御部103は、データメモリ207にデータの書込みが不可能である、つまりキャッシュミスヒットしたと判断した場合、外部メモリ105から書込みデータに該当するデータをデータメモリ207に読み出す。そして、ライト・バッファ203に書き込む、タグメモリ206を更新する。
実施形態1ではライト・バッファ203にFIFOメモリを採用したため、プロセッサによるライト・バッファ203への書込みが、ライト・バッファ203が一杯になるまで次々と行われる。また、ライト・バッファ203に書き込まれたデータは、タグメモリ206、データメモリ207に対するアクセス状況に応じ、他の処理と調停しながら空き時間を利用して書き込まれる。
なお、バッファ管理部202は、上記のリード動作におけるリード・バッファ205への書込み、ライト動作におけるライト・バッファ203への書込みや読出しを調停する。また、ライト・バッファ203、リード・バッファ205間でデータ一致性(コヒーレンシー)を保障する。
ライト・バッファ203、リード・バッファ205間のデータ一致性は、ライト・バッファ203に書込まれたデータがデータメモリ207書き込まれる前、同一のデータであってリード・バッファ205にあるものにリードアクセスが生じたときに問題となる。このような場合、バッファ管理部202は、リード・バッファ205の内容をライトされたデータに更新する。あるいは、いったんリード・バッファ205のデータを無効にし、書き込みデータをライト・バッファ203からデータメモリ207に書込んだ後、書込まれたデータをリードすることも考えられる。
なお、処理効率の観点からは、リード・バッファ205の内容をライトされたデータに更新することが望ましい。
また、このようなリード・バッファ205の更新にあたっては、プロセッサ0がリード・バッファ205の対応するリード・バッファ部分にアクセスした場合にも、他のプロセッサに対応するリード・バッファ205も更新対象にする必要がある。すなわち、同一のデータが複数のスレッドで使用されることも考えられるので、プロセッサ0による書込み
に対して、プロセッサ0以外のプロセッサによる読出しと書込みとのデータ一致性を保証する必要がある。
以上述べた実施形態1によれば、書込みデータが、タグメモリ206によってアドレスが一括して管理されるデータメモリ207に書き込まれるため実質的に唯一のデータメモリによって読出されたデータを保存することになり、キャッシュメモリにおけるデータの不一致をなくすことができる。また、このために実施形態1は、バスを監視する必要がなく、バスを監視するための回路や消費電量が不要である。したがって、プロセッサ間でデータのコヒーレンシーを保つためにマルチプロセッサシステムの装置構成を大きくする、あるいは消費電力を高めることがない。
図4は、以上述べた実施形態1のキャッシュメモリにおいて実行されるデータの読出しあるいは書込みの動作を説明するためのフローチャートである。また、図5は、図4と比較するため、従来のキャッシュメモリで実行されるデータの読出しの動作を説明するためのフローチャートである。
図4に示したように、実施形態1のキャッシュメモリは、複数のプロセッサのうちの1つ(プロセッサkとする)が、キャッシュメモリ109にアクセスを要求した場合、タグメモリ206においてキャッシュヒットを検出する処理を行う(S401)。この結果、キャッシュヒットが検出された場合(S402:Yes)、データメモリ207にアクセスし、読出しの対象となるデータを読み出す(S406)。また、タグメモリ206におけるデータのステータスを更新する(S407)。
また、キャッシュメモリ109は、ステップS402において、キャッシュミスヒットを検出した場合(S402:No)、データメモリ207に保存されているデータのうち入れ替えられるデータを決定する(S403)。そして、データメモリ207からダーティ・データを書き出し(S404)、外部メモリ105に保存されている新規なデータをデータメモリ207に読み出す(S405)。
図5に処理を示した従来のキャッシュメモリは、k個のプロセッサの各々が独立したタグメモリ及びデータメモリを備える点で実施形態1のキャッシュメモリと相違する。このため、ステップS502の判断において、従来のキャッシュメモリは、アクセスを要求したプロセッサkに対応するデータメモリに対してアクセスし(S506)、プロセッサkに対応するタグメモリを更新する(S507)。
さらに、プロセッサkのアクセスが書込みであるか否か判断し(S508)、書込であった場合には(S508:Yes)、プロセッサk以外のプロセッサに対応するデータメモリ及びタグメモリのデータをも更新し、データメモリ間におけるデータのコヒーレンシーを調整している。
また、以上述べた本実施形のキャッシュメモリは、以上述べた構成に限定されるものでなく、データの先読み機能を付加した構成とすることも可能である。図6は、実施形態1のキャッシュメモリを命令キャッシュにも適用し、先読みキャッシュとして構成したものである。
図6に示した構成は、プロセッサによって供給が要求されることが予想されるデータ(命令)をキャッシュしておく先読みデータ保存手段である先読みバッファをさらに備えている。キャッシュメモリと接続する複数のプロセッサは、各々独立に別のプログラムにアクセスするため、先読みバッファは、プロセッサの個数に対応した数必要になる。先読みキャッシュのアドレス制御部601は、先読みのためアドレスの連続性を検出するため、あるいはタグメモリおよびデータメモリをキャッシュのエントリ単位で行うためにエントリの境界をまたがる度に次のタグメモリのアドレスを生成する。
なお、先読みバッファの機能は、従来はタグメモリおよびデータメモリに対するアクセス回数を低減して低消費電力化することを目的にしていた。しかし、先読みの機能をマルチスレッドプロセッサに適用する場合、図3に示したリード・バッファ205、ライト・バッファ203と同様に、メモリデータにクセス回数を低減してメモリアクセスのボトルネックを解消し、処理速度の向上を図ることができる。
(実施形態2)
次に、本発明の実施形態2について説明する。
実施形態2のキャッシュメモリは、実施形態1で説明した図3の構成を有している。このため、実施形態2では、キャッシュメモリの構成の図示及び説明の一部を省くものとする。実施形態2のキャッシュメモリは、データメモリ207、タグメモリ206少なくとも一方がマルチポートメモリである。データメモリ207をマルチポートメモリとする場合、このマルチポートメモリは、プロセッサの数にウェイの数を乗じた数のポートが必要になる。また、タグメモリ206をマルチポートメモリとする場合、このマルチポートメモリは、プロセッサの数のポートが必要になる。
実施形態2のプロセッサは、実施形態2で説明したキャッシュメモリのデータ書出し(データをデータメモリ207から外部メモリ105に書き出す動作)に関する構成を説明するものである。
実施形態2では、読み込み及び書き出しの操作に対し、いわゆるLRU(Least Recently Used algorithm)方式を採用している。LRUとは、キャッシュされているデータのうち、プロセッサがアクセスした後最も長い時間が経過したものをキャッシュメモリから取り除く方法によりデータに対するプロセッサの供給要求の状態に基づいて決定している。このような方式によれば、常にプロセッサの要求頻度が多いデータをデータメモリ207にキャッシュしておくことができ、キャッシュメモリを採用した構成の処理効率を高めることができる。
また、キャッシュメモリの方式には種々のものがあるが、実施形態2では、キャッシュメモリ109が、2ウェイ(ウェイA,B)のセット・アソシアティブ方式のキャッシュメモリであるものとする。なお、セット・アソシアティブ方式とは、キャッシュメモリを複数の領域(ウェイ)に分割し、それぞれのウェイに、メモリデバイス上の異なるアドレスのデータを格納しておくことにより、ヒット率を向上させることができる方式である。
実施形態2のキャッシュメモリは、タグメモリ206が、データメモリ207のアドレスを複数のウェイとして管理する。そして、データメモリ207に保存されているデータを前記データ保存手段にデータを保持する際の優先度である保存優先度を前記ウェイごとに付し、かつ、各ウェイに付される保存優先度を該ウェイで管理されているデータに対す
なお、実施形態2では、保存優先度を決定する基となるアクセスの状態を、現在に比較的近い所定の期間のアクセス回数とする。このような実施形態2によれば、
先ず、実施形態2のタグメモリ206及びデータメモリ207の構成を詳細に説明する。図7(a)、(b)、(c)は、タグメモリ206、データメモリ207に記憶されるデータの構造を説明するための図である。(a)は、タグメモリ206によって管理されるステータスのフラグを示している。
フラグは、プロセッサ0〜3の各々ごとにタグメモリ206に保存されていて、実施形態2では、データのステータスをValid flag、Dirty flag、Used flagの3つのフラグによって示している。Valid flagは、データの有効性を示すフラグである。Dirty flagは、キャッシュされているデータが読み込んだ値から交信されている状態(ダーティデータ)であることを示し、Used flagは、書出しの優先度(書出し優先度)を示している。
なお、実施形態2では、各ウェイの書出し優先度をUsedフラグに基づいてテーブル(Usedテーブル)で管理する。Usedテーブルについては、図8に示して説明する。
図7(b)は、タグメモリ206のデータ構造を説明するための図である。また、図7(c)は、データメモリ207のデータ構造を説明するための図である。2ウェイのセット・アソシアティブ方式を採用した実施形態2では、プロセッサ0〜プロセッサ3の各々について2つのウェイを持っていて、タグメモリ206は、データメモリ207を合計8個のウェイ(W0〜U7)として管理している。
タグメモリ206に保存されるデータ(タグ情報)は、データのヒット、ミスヒットを検出するためのデータであって、アクセスされるデータのアドレスの16ビット分が保存されている。また、タグ情報に基づいて読み出されるデータは、1ワードが32ビットのデータとしてデータメモリにキャッシュされている。
図8(a)、(b)は、実施形態2のLRUの処理を説明するための図であって、データの読出しの前後のUsedテーブルを示している。実施形態2では、Usedテーブルをタグメモリ206に保存し、キャッシュ制御部103によって更新するものとした。
プロセッサ0〜3によって読み出されたデータは、データメモリ207のウェイU0〜U7のいずれかにおいてキャッシュされる。ウェイU0〜U7においてキャッシュ可能な数のデータがキャッシュされた後、さらに他のデータをキャッシュする必要がある場合、キャッシュ制御部103は、現在ウェイU0〜U7にキャッシュされているデータの1つを外部メモリ105に書き出す。そして、新たにキャッシュされた他のデータを書き出されたデータがキャッシュされていた領域に保存する。
合計8つのウェイのキャッシュメモリを持つ実施形態2では、ウェイU0〜U7にキャッシュされているデータのいずれを書き出すかを、ウェイに対するプロセッサの供給要求の状態に基づいて決定している。そして、決定したウェイにあって最もアクセス回数が少なかったデータを書き出すものとする。
このような実施形態2において、アクセス回数の判断を短い時間に限定すれば、直前のデータアクセスの有無によってデータ書出しの対象となるウェイを決定することも可能である。
書出し優先順位は、図8(a)、(b)の表中にLRU順位としてUsedテーブルに記録されている。実施形態2でいうLRU順位は、0〜7の数値によって表されていて、0は最高のLRU順位を示し、1は最低のLRU順位を示す。そして、LRU順位7が付されたウェイのデータは、次に起こるキャッシュミスヒット時に他のウェイのデータに優先して外部メモリ105に書き出される。
図8(a)は、プロセッサによって要求されたデータがデータメモリ207にミスヒットした場合のLRU順位の決定について説明するための図である。プロセッサが要求したデータがタグメモリ206に管理されるデータにないため、プロセッサは、外部メモリ105にアクセスしてデータを読み出し、データメモリ207にキャッシュする。この際、キャッシュ制御部103は、Usedテーブルを参照し、ウェイU0〜U7のLRU順位を参照する。
図8(a)の場合、ウェイU6のLRU順位が最低の7であるから、キャッシュ制御部103は、ウェイU6にキャッシュされていて、キャッシュされたウェイ6のLRU順位を0にし、他のウェイUのLRUデータに対するプロセッサの供給要求の状態に基づいて決定している。プロセッサがアクセスした後最も長い時間が経過したものをキャッシュメモリから取り除く方法によりデータを書き出す。そして、最新のデータが順位をそれぞれ1つずつ低下させる。
また、図8(b)は、プロセッサが要求したデータがデータメモリ207で管理されているデータにヒットした場合のLRU順位の決定について説明するための図である。プロセッサが要求したデータがウェイU4のデータにヒットした場合、キャッシュ制御部103は、このデータを読み出してプロセッサに供給する。このとき、データの書出しは必要ないが、直前にヒットしたウェイU4のLRU順位を0に更新し、この更新に伴ってヒット前のウェイU4のLRU順位(4)より高位のLRU順位を更新する。
図9は、以上述べた実施形態2のうち、キャッシュの制御を説明するためのフローチャートである。キャッシュ制御部103は、プロセッサからデータアクセスの要求を受け、タグメモリ206に要求されたデータがヒットするか否かを検出する(S701)。プロセッサに対応して管理されているデータにヒットしたか否か判断し(S702)、ヒットが検出された場合には(S702:Yes)、アクセスがデータの書出しを要求するものか否か判断する(S707)。データの書出しが要求された場合(S707:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S710)。
また、ステップS707において、アクセスがデータの書出しを目的とするものでないと判断された場合(S707:No)、Way(n)にキャッシュされているデータを読み出し、アクセスしたプロセッサに供給する(S708)。そして、キャッシュ制御部103は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ206において更新する(S709)。
一方、ステップS702において、データがヒットしないと判断された場合(S702:No)、キャッシュ制御部103は、アクセス回数が最も少ないウェイ(Way(n))を検出し、さらにウェイ(Way(n))においてプロセッサがアクセスした後最も長い時間が経過したデータをLRUのアルゴリズムによって検出する(S703)。そして、検出されたデータがダーティデータであるか否か判断する(S704)。データがダーティデータである場合(S704:Yes)、このデータをデータメモリ207から書出し(S705)、書き出された領域に外部メモリ105からデータを読み出す(S706)。
図10は、図9に示した処理のうち、UsedテーブルのLRU順位を変更するための処理を説明するためのフローチャートである。キャッシュ制御部103は、プロセッサによって要求されたデータをタグメモリ206に照会し、要求されたデータがいずれかのウェイにヒットしたか否か判断する(S801)。ヒットしたと判断された場合(S801:Yes)、ヒットしたウェイのLRU順位を0に更新する(S806)。
次に、キャッシュ制御部103は、変数sを0に設定し(S807)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S808)。この更新は、更新後のLRU順位が、ヒットしたプロセッサのウェイのヒット直前のLRU順位に達するまで行われる(S809)。
一方、プロセッサkが要求したデータがキャッシュにヒットしないとき(S801:No)、キャッシュ制御部103は、LRU順位が最も低いウェイを検出する。そして、このウェイのLRU順位を0に更新する(S802)。なお、この際、外部メモリ105から読み出されたデータは、今回LRU順位が0に更新されたウェイにキャッシュされる。
そして、キャッシュ制御部103は、変数sを0に設定し(S808)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S809)。この更新は、全てのウェイについて行われる。
以上述べた実施形態2によれば、ウェイを複数備えたマルチプロセッサに適したLRU方式を実現し、キャッシュヒット率を高めることができる。また、データメモリやタグメモリをマルチポートメモリとしたことによって複数のプロセッサがキャッシュメモリに同時にアクセスすることができる。このため、実施形態2は、マルチプロセッサの処理能力を向上させることができる。
なお、複数のプロセッサが同時にキャッシュメモリにアクセスした場合のLRU順位の更新は、例えば、プロセッサに対して予め優先順位を付しておき、この優先順位にしたがう順序で更新するようにすることも可能である。
本発明の実施形態1、実施形態2のキャッシュメモリを備えたマルチスレッドプロセッサを示した図である。 複数のプロセッサが優先順位に応じて実行されるスレッドを動的に変更する動作を説明するための図である。 図1に示したキャッシュメモリの構成をより詳細に示した図である。 実施形態1のキャッシュメモリにおいて実行されるデータの読出しあるいは書込みの動作を説明するためのフローチャートである。 図4と比較するため、従来のキャッシュメモリで実行されるデータの読出しの動作を説明するためのフローチャートである。 実施形態1のキャッシュメモリを命令キャッシュにも適用し、先読みキャッシュとして構成したものである。 本発明の実施形態2において、タグメモリ、データメモリに記憶されるデータの構造を説明するための図である。 実施形態2のLRUの処理を説明するための図である。 実施形態2のうちキャッシュの制御を説明するためのフローチャートである。 実施形態2のうちキャッシュの制御のうちLRUの更新を説明するためのフローチャートである。
符号の説明
101 マルチスレッドプロセッサ、103 キャッシュ制御部、105 外部メモリ、107 キャッシュメモリ部、109 キャッシュメモリ、201 アドレス制御部、202 バッファ管理部、203 ライト・バッファ、205 リード・バッファ、206 タグメモリ、207 データメモリ、208 ヒット検出部

Claims (8)

  1. 複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部を前記プロセッサに供給するキャッシュメモリであって、
    複数のプロセッサによってキャッシュされたデータが保存されるデータ保存手段と、
    前記データ保存手段におけるデータのアドレスを一括して管理するアドレス管理手段と、
    前記プロセッサによって供給を要求されたデータのアドレスを前記アドレス管理手段によって管理されているアドレスと照合し、供給を要求されたデータが前記データ保存手段から読出し可能であるか否か検出するヒット検出手段と、
    前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給するデータ供給手段と、
    を備えることを特徴とするキャッシュメモリ。
  2. 前記データ保存手段から読み出されたデータ、前記データ保存手段に書き込まれるデータの少なくとも一方を一時的に保存するバッファ手段をさらに備えることを特徴とする請求項1に記載のキャッシュメモリ。
  3. 前記データ供給手段は、前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給すると共に、前記プロセッサに供給されたデータと連続するデータを含むデータを、前記データ保存手段から読み出されたデータを一時的に保存する前記バッファ手段にも供給することを特徴とする請求項2に記載のキャッシュメモリ。
  4. 前記プロセッサによって供給が要求されることが予想されるデータをキャッシュしておく先読みデータ保存手段をさらに備えることを特徴とする請求項1に記載のキャッシュメモリ。
  5. 前記データ管理手段は、前記データ保存手段のアドレスを複数のウェイとして管理すると共に、データ保存手段に保存されているデータを前記データ保存手段に保持する際の優先度である保存優先度を前記ウェイごとに付し、かつ、各ウェイに付される保存優先度を該ウェイで管理されているデータに対するアクセスの状態に基づいて決定することを特徴とする請求項1から4のいずれかに記載のキャッシュメモリ。
  6. 前記データ保存手段、前記データ管理手段の少なくとも一方がマルチポートメモリであることを特徴とする請求項1から5のいずれか1項に記載のキャッシュメモリ。
  7. 複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部を前記プロセッサに供給するキャッシュメモリを備えたプロセッサであって、
    前記キャッシュメモリは、
    複数のプロセッサによってキャッシュされたデータが保存されるデータ保存手段と、
    データの前記データ保存手段におけるアドレスを一括して管理するアドレス管理手段と、
    前記プロセッサによって供給を要求されたデータのアドレスを前記アドレス管理手段によって管理されているアドレスと照合し、供給を要求されたデータが前記データ保存手段から読出し可能か否かを検出するヒット検出手段と、
    前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給するデータ供給手段と、を備えることを特徴とするプロセッサ。
  8. 複数の前記プロセッサの各々が、スレッドごとに処理を実行すると共に、処理の実行中に実行されているスレッドを他のスレッドと変更し得ることを特徴とする請求項7に記載のプロセッサ。
JP2005366569A 2005-02-01 2005-12-20 キャッシュメモリ及びプロセッサ Expired - Fee Related JP4904802B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005366569A JP4904802B2 (ja) 2005-02-01 2005-12-20 キャッシュメモリ及びプロセッサ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005024976 2005-02-01
JP2005024976 2005-02-01
JP2005366569A JP4904802B2 (ja) 2005-02-01 2005-12-20 キャッシュメモリ及びプロセッサ

Publications (3)

Publication Number Publication Date
JP2006244460A true JP2006244460A (ja) 2006-09-14
JP2006244460A5 JP2006244460A5 (ja) 2009-01-15
JP4904802B2 JP4904802B2 (ja) 2012-03-28

Family

ID=37050782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005366569A Expired - Fee Related JP4904802B2 (ja) 2005-02-01 2005-12-20 キャッシュメモリ及びプロセッサ

Country Status (1)

Country Link
JP (1) JP4904802B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010035426A1 (ja) * 2008-09-25 2010-04-01 パナソニック株式会社 バッファメモリ装置、メモリシステム及びデータ転送方法
JP2010191638A (ja) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd キャッシュ装置
DE112011104329T5 (de) 2010-12-09 2013-09-26 International Business Machines Corporation Mehrkernsystem und Verfahren zum Lesen der Kerndaten
JP2020532795A (ja) * 2017-08-31 2020-11-12 レール ビジョン リミテッドRail Vision Ltd 複数計算における高スループットのためのシステムおよび方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02204834A (ja) * 1989-02-03 1990-08-14 Nec Corp オペランド差換え方式
JPH02224041A (ja) * 1988-11-17 1990-09-06 Nec Ic Microcomput Syst Ltd キャッシュメモリ制御回路
JP2001043130A (ja) * 1999-07-30 2001-02-16 Hitachi Ltd コンピュータシステム
JP2002140232A (ja) * 2000-09-22 2002-05-17 Hitachi Ltd マルチプロセッサシステム及びキャッシュを制御する方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02224041A (ja) * 1988-11-17 1990-09-06 Nec Ic Microcomput Syst Ltd キャッシュメモリ制御回路
JPH02204834A (ja) * 1989-02-03 1990-08-14 Nec Corp オペランド差換え方式
JP2001043130A (ja) * 1999-07-30 2001-02-16 Hitachi Ltd コンピュータシステム
JP2002140232A (ja) * 2000-09-22 2002-05-17 Hitachi Ltd マルチプロセッサシステム及びキャッシュを制御する方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010035426A1 (ja) * 2008-09-25 2010-04-01 パナソニック株式会社 バッファメモリ装置、メモリシステム及びデータ転送方法
JP5536658B2 (ja) * 2008-09-25 2014-07-02 パナソニック株式会社 バッファメモリ装置、メモリシステム及びデータ転送方法
JP2010191638A (ja) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd キャッシュ装置
US8661198B2 (en) 2009-02-17 2014-02-25 Fujitsu Semiconductor Limited Cache device
DE112011104329T5 (de) 2010-12-09 2013-09-26 International Business Machines Corporation Mehrkernsystem und Verfahren zum Lesen der Kerndaten
US8918590B2 (en) 2010-12-09 2014-12-23 International Business Machines Corporation Reading core data in a ring bus type multicore system
JP2020532795A (ja) * 2017-08-31 2020-11-12 レール ビジョン リミテッドRail Vision Ltd 複数計算における高スループットのためのシステムおよび方法

Also Published As

Publication number Publication date
JP4904802B2 (ja) 2012-03-28

Similar Documents

Publication Publication Date Title
US5359723A (en) Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only
US7925840B2 (en) Data processing apparatus and method for managing snoop operations
US8185695B2 (en) Snoop filtering mechanism
US6834327B2 (en) Multilevel cache system having unified cache tag memory
EP1388065B1 (en) Method and system for speculatively invalidating lines in a cache
US6957304B2 (en) Runahead allocation protection (RAP)
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
EP1902370B1 (en) Method and apparatus for managing cache memory accesses
US20110173393A1 (en) Cache memory, memory system, and control method therefor
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
JP4803983B2 (ja) 演算処理装置
JP2008117388A (ja) キャッシュ及びキャッシュバイパス機能法
GB2468007A (en) Data processing apparatus and method dependent on streaming preload instruction.
CN113853590A (zh) 伪随机路选择
US11036639B2 (en) Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
US8332592B2 (en) Graphics processor with snoop filter
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
US8473686B2 (en) Computer cache system with stratified replacement
JP4904802B2 (ja) キャッシュメモリ及びプロセッサ
JP5157424B2 (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
US7779205B2 (en) Coherent caching of local memory data
US7543112B1 (en) Efficient on-chip instruction and data caching for chip multiprocessors
JPWO2006109421A1 (ja) キャッシュメモリ
JP4904796B2 (ja) キャッシュメモリ及びマルチプロセッサシステム
JPH01255944A (ja) キャッシュメモリ

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111007

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111226

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees