JP2007156963A - キャッシュメモリ及びマルチプロセッサシステム - Google Patents

キャッシュメモリ及びマルチプロセッサシステム Download PDF

Info

Publication number
JP2007156963A
JP2007156963A JP2005353413A JP2005353413A JP2007156963A JP 2007156963 A JP2007156963 A JP 2007156963A JP 2005353413 A JP2005353413 A JP 2005353413A JP 2005353413 A JP2005353413 A JP 2005353413A JP 2007156963 A JP2007156963 A JP 2007156963A
Authority
JP
Japan
Prior art keywords
data
processor
memory
cache memory
processors
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
JP2005353413A
Other languages
English (en)
Other versions
JP2007156963A5 (ja
JP4904796B2 (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 JP2005353413A priority Critical patent/JP4904796B2/ja
Publication of JP2007156963A publication Critical patent/JP2007156963A/ja
Publication of JP2007156963A5 publication Critical patent/JP2007156963A5/ja
Application granted granted Critical
Publication of JP4904796B2 publication Critical patent/JP4904796B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】マルチプロセッサシステムにあって装置構成を大きくすることがなく、あるいは消費電力を高めることがなく、プロセッサ間でデータのコヒーレンシを動作効率よく保つことができ、さらにプロセッサによるアクセス効率が高いキャッシュメモリを提供する。
【解決手段】複数のプロセッサによってデータがキャッシュされ、キャッシュされたデータをプロセッサに読み出すと共にプロセッサからデータを書き出すキャッシュメモリを、キャッシュされたデータを保存するデータメモリ404、保存されているデータを、読み出したプロセッサごとに管理するタグメモリ及び入出力制御部401で構成する。そして、プロセッサ1によってアクセスされたデータがプロセッサ2に対応して管理されている場合、入出力制御部401は、アクセスされたデータをプロセッサ1に供給する。
【選択図】図4

Description

本発明は、キャッシュメモリ及びマルチプロセッサシステムに係り、特にマルチプロセッサ等の複数の処理を並列に実行するマルチプロセッサシステムに用いられるキャッシュメモリ及びこのようなキャッシュメモリを使って動作するマルチプロセッサシステムに関する。
近年、複数のスレッドやタスク(実施形態1ではスレッドに統一して記す)を並列に実行するマルチプロセッサ(マルチコア)、あるいはマルチスレッドプロセッサが注目されている。このようなプロセッサは、総称してマルチプロセッサシステムとも呼ばれる。マルチプロセッサシステムでは、データ等が蓄積されている外部メモリへのアクセスを効率化するため、外部メモリからいったん読み出されたデータのうちの処理に使用される可能性のあるデータを保存しておくキャッシュメモリを備えるマルチプロセッサシステムがある。このような構成の従来技術として、例えば、特許文献1が掲げられる。
また、特許文献1に示したようなキャッシュメモリを備えたマルチプロセッサでは、複数のプロセッサ間で処理に使用されるデータの一致性(コヒーレンシ)を保つことが必要である。従来のプロセッサでは、データのコヒーレンシを保つためにバス・スヌープが多く採用されている。バス・スヌープとは、各プロセッサ間で共有されるメモリインターフェイスバス上のトランザクションを観察し、自身に割り当てられているキャッシュメモリ上にあるデータに係るトランザクションが発生したか否かを検出する機能である。
自身に割り当てられたキャッシュメモリ上にあるデータのトランザクションが発生した場合、プロセッサは、キャッシュメモリの該当するエントリを更新し、マルチプロセッサシステムにおける各プロセッサのキャッシュメモリ領域等に保存されているデータの内容を統一する。バス・スヌープには多くの実装法があり、例えばライトワンスやバークレイプロトコルがある。
特開2004−178571
しかしながら、上記した特許文献1の発明は、キャッシュメモリの記憶領域をスレッドごとの独立の領域に分割し、マルチプロセッサシステムで同時に実行されるスレッドごとに割り当てている。このような特許文献1によれば、キャッシュメモリに必要とされるデータが保存されていて、このデータに対するアクセスの成功(ヒット)の割合(ヒット率)が低下するという不具合がある。
また、特許文献1に記した構成でバス・スヌープの機能を用いコヒーレンシを保持する場合、バスをモニタする回路によってマルチプロセッサシステムのハードウェア構成が大規模化する。また、バスを常時モニタするために消費電力が高まり、キャッシュメモリの独立した各領域に各々アクセスしてデータを書き換えるため、コヒーレンシ保持の動作効率が低いという課題が生じる。
さらに、マルチプロセッサシステムにおいて、プロセッサごとにキャッシュメモリを独立して設ける構成ものがある。このような構成は、複数のデータプログラムを1つのプロセッサに取り込む場合のキャッシュメモリへのアクセス効率を充分高めることができない。
本発明は、上記した点に鑑みてなされたものであって、マルチプロセッサシステムにあって装置構成を大きくすることがなく、あるいは消費電力を高めることがなく、プロセッサ間でデータのコヒーレンシを動作効率よく保つことができ、さらにプロセッサによるアクセス効率が高いキャッシュメモリ及びこのキャッシュメモリを備えたマルチプロセッサシステムを提供することを目的とする。
以上の課題を解決するため、本発明のキャッシュメモリは、複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータを前記プロセッサに読み出すと共に前記プロセッサからデータを書き出すデータ授受手段を備えたキャッシュメモリであって、複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段と、前記データ保存手段に保存されているデータを、該データを前記記憶装置から読み出したプロセッサごとに管理するデータ管理手段と、を備え、第1のプロセッサによって供給を要求されたデータが前記データ管理手段において第2のプロセッサに対応して管理されている場合、前記データ授受手段は、供給を要求された第2のプロセッサに対応して管理されているデータを前記第1のプロセッサに供給することを特徴とする。
このような発明によれば、複数のプロセッサによってキャッシュされたデータを保存しておき、第1のプロセッサによって供給を要求されたデータが第2のプロセッサに対応して管理されている場合、供給を要求されたデータを前記第1のプロセッサに供給することができる。
このため、複数のプロセッサのいずれかに対応して管理されているデータを、どのプロセッサにも供給することが可能となり、スヌープを用いることなくプロセッサ間でデータのコヒーレンシを保つことができる。スヌープを用いないことから、マルチプロセッサシステムにあって装置構成を大きくすることがなく、あるいは消費電力を高めることがなく、プロセッサ間でデータのコヒーレンシを一致させることが可能になる。
また、複数のプロセッサのいずれもが他のプロセッサに対応してキャッシュされているデータの提供を受けることができるので、キャッシュメモリのプロセッサによるアクセス効率を高めることができる。
また、本発明のキャッシュメモリは、前記データ管理手段は、プロセッサに対応して管理されているデータを前記データ保存手段に保存する保存優先度を、当該データに対する読出しの要求の状態に基づいて決定することを特徴とする。
このような発明によれば、他のプロセッサによるデータ要求をも考慮してデータの保存優先度を決定することができるので、プロセッサの要求に応じて必要なデータをキャッシュメモリから書き出さず、キャッシュしておくことができる。このような構成によれば、キャッシュメモリのプロセッサによるアクセス効率をいっそう高めることができる。
また、本発明のキャッシュメモリは、前記データ管理手段が、前記データ保存手段のアドレスを複数のウェイとして管理すると共に、前記データ保存手段に保存されているデータの保存優先度を前記ウェイごとに決定することを特徴とする。
このような発明によれば、キャッシュメモリが複数ウェイを持つ場合にも、より正確にデータ保存手段に保存すべきデータの優先度を決定することができる。
また、本発明のキャッシュメモリは、前記データ管理手段が、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を変更することを特徴とする。
このような発明によれば、他のプロセッサによるデータ要求に応じて書出しの優先度が変更されるので、マルチプロセッサ等、複数のプロセッサ全体で要求される頻度の低いデータを優先して書出し、データのヒット効率を高めることができる。
また、本発明のキャッシュメモリは、前記データ管理手段が、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を保存することを特徴とする。
このような発明によれば、他のプロセッサによるデータ要求があった場合にはデータ保存手段に保存する優先度が維持されるので、マルチプロセッサ等に含まれる各プロセッサによって要求される頻度の高いデータを優先して保存することによってプロセッサの独立性を確保し、対応するプロセッサとデータ同士のデータのヒット効率を高めることができる。
また、本発明のキャッシュメモリは、前記データ保存手段が、キャッシュされたデータを、データを読み出したプロセッサごとに保存する複数のデータメモリであって、前記データ管理手段は、複数の前記データメモリの各々とシングルポートによって接続されることを特徴とする。
このような発明によれば、データメモリに比較的安価なシングルポートメモリを用いることが可能になって、本発明のキャッシュメモリの製造コストを抑えることができる。
また、本発明のマルチプロセッサシステムは、記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータを前記プロセッサに読み出すと共に前記プロセッサからデータを書き出すデータ授受手段を備えたキャッシュメモリと接続するマルチプロセッサシステムであって、前記キャッシュメモリが、複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段と、前記データ保存手段に保存されているデータの書出し優先度を、当該データに対するプロセッサの供給要求の状態に基づいてプロセッサごとに決定するデータ管理手段と、を備え、第1のプロセッサによって供給を要求されたデータが前記データ管理手段において第2のプロセッサに対応して管理されている場合、供給を要求されたデータを前記供給手段が前記第1のプロセッサに供給し、前記データ管理手段は、前記第2のプロセッサに対応して管理されているデータを前記データ保存手段に保存する保存優先度を決定することを特徴とする。
このような発明によれば、複数のプロセッサのうちのいずれもが、他のプロセッサに対応して管理されているデータの供給を受けることが可能となり、スヌープを用いることなくプロセッサ間でデータのコヒーレンシを保つことができる。スヌープを用いないことから、マルチプロセッサシステムの装置構成を大きくすることがなく、あるいは消費電力を高めることがなく、プロセッサ間でデータのコヒーレンシを一致させることが可能になる。
また、複数のプロセッサのいずれもが他のプロセッサに対応してキャッシュされているデータの提供を受けることができるので、キャッシュメモリのプロセッサによるアクセス効率を高めることができる。
さらに、本発明のマルチプロセッサシステムは、他のプロセッサによるデータ要求をも考慮してデータの保存優先度を決定することができるので、プロセッサの要求に応じて必要なデータをキャッシュメモリから書き出さず、キャッシュしておくことができる。このような構成によれば、キャッシュメモリのプロセッサによるアクセス効率をいっそう高めることができる。
以下、本発明のキャッシュメモリ及びこのキャッシュメモリを備えたマルチプロセッサシステムの実施形態1、実施形態2について説明する。
(実施形態1)
図1は、本発明のキャッシュメモリ109及びキャッシュメモリ109を使って動作するマルチプロセッサシステム(以下単にマルチプロセッサと記す)105を示した実施形態1、実施形態2に共通の図である。図示した構成は、マルチプロセッサ105、キャッシュメモリ109、メモリ103を有している。メモリ103には、マルチスレッドOS107及びアプリケーション108からプログラムやデータがローダ106によって転送されてくるものとする。
キャッシュメモリ109は、キャッシュメモリ部102と、キャッシュメモリ部102を制御するキャッシュ制御部101とでなる。キャッシュメモリ部102には、外部メモリであるメモリ103よりもマルチプロセッサ105が高速にアクセスできる構成のメモリが採用される。
なお、キャッシュメモリの方式には種々のものがあるが、セット・アソシアティブ方式が一般的であるため、実施形態1では2ウェイ(ウェイA,B)のセット・アソシアティブ方式のキャッシュメモリを例に挙げて説明する。なお、セット・アソシアティブ方式とは、キャッシュメモリを複数の領域(ウェイ)に分割し、それぞれのウェイに、メモリデバイス上の異なるアドレスのデータを格納しておくことにより、ヒット率を向上させることができる方式である。
マルチプロセッサ105は、複数のプロセッサを結合して構成されるマルチプロセッサシステムの1つである。マルチプロセッサシステムのプロセッサの結合の例を図2(a)、(b)に示す。図2(a)、(b)に示した構成のうち、一般的に図2(a)に示した構成をマルチプロセッサといい、(b)に示した構成をマルチスレッドプロセッサという。図2(a)、(b)のいずれに示した構成も、4つのプロセッサ0〜プロセッサ3が結合してメモリを共有するものである。
マルチスレッドプロセッサは、演算器をも結合する点でマルチプロセッサよりも結合が密であるとされている。このようなマルチスレッドプロセッサを密結合ともいい、これに対してマルチプロセッサを疎結合ともいう。
ここでは、実施形態1のプロセッサをマルチプロセッサ105として構成した。マルチプロセッサ105は、図2(b)に示したように、プロセッサ0、プロセッサ1、プロセッサ2、プロセッサ3の4つのプロセッサを有している。キャッシュメモリ109は、マルチプロセッサ105の複数のプロセッサによって、メモリ103から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部をプロセッサに供給するキャッシュメモリである。
ただし、実施形態1はマルチプロセッサを用いた構成に限定されるものでなく、複数のプロセッサがメモリを共有して結合する構成であればよく、例えば、図2(b)に示したマルチスレッドプロセッサとして構成することも可能である。
マルチプロセッサ105は、キャッシュメモリ109と接続し、キャッシュメモリ109を介してメモリ103からデータを読み出す。読み出されたデータは、キャッシュメモリ109に保存(キャッシュ)される。また、マルチプロセッサ105は、読み出されたデータを使って実行した演算の結果を、キャッシュメモリ109あるいはメモリ103に書込んでいる。
この動作により、マルチプロセッサ105は、メモリ103にアクセスすることなくキャッシュメモリ109にキャッシュされたデータを取得することができる。そして、前記したように、キャッシュメモリ109はメモリ103より高速にアクセスできるから、図1に示した構成は、マルチプロセッサ105のデータの読出し及び書込みを高速化することができる。さらに、メモリ103に対するアクセス回数を低減し、マルチプロセッサ105の処理速度及び処理効率を高めることができる。
さらに、実施形態1では、キャッシュメモリ109に対し、いわゆるLRU(Least Recently Used algorithm)方式を採用している。LRUとは、キャッシュされているデータのうち、最後にプロセッサからアクセスされたデータをメモリ103に書出し、書き出された領域に新たに必要なデータをキャッシュする方式をいう。このような方式によれば、常にプロセッサの要求頻度が多いデータをデータメモリ404にキャッシュしておくことができ、キャッシュメモリを採用した構成の処理効率を高めることができる。
また、マルチスレッドプロセッサOS107によって動作するマルチプロセッサ105は、複数のスレッドと、スレッドの実行に使用されるプロセッサとを一対一に割り付けるものでなく、複数のプロセッサの各々が、スレッドごとに処理を実行すると共に、処理の実行中に実行されているスレッドを他のスレッドと変更し得る。このようなマルチプロセッサ105は、マルチスレッドOSによって動作するものである。このような動作を図3に例示する。図3に示した例では、いずれのプロセッサもスレッドの実行中に優先度がより高いスレッドに実行権が移り、優先度がより高いスレッドに処理を切り換えている。
図4は、図1に示したキャッシュメモリ109の構成をより詳細に示した図である。キャッシュメモリ109は、図1に示したように、キャッシュ制御部101と、キャッシュメモリ部102とを備えている。
キャッシュメモリ部102は、タグメモリ403とデータメモリ404とを有している。データメモリ404は、メモリ103から読み出されたデータがキャッシュされるメモリであって、タグメモリ403は、データメモリ404にキャッシュされたデータを取り出すための情報(タグ情報)をプロセッサ0〜3ごとに管理するメモリである。なお、図4に示した構成では、タグメモリ403、データメモリ404をマルチポートメモリとして構成した。
より具体的には、タグメモリ403は、データメモリ404にキャッシュされているデータに付されたアドレスを含む情報をタグ情報として保持し、プロセッサの読み出し、書込み処理に対してデータメモリ404、メモリ103へのアクセスの管理や調整を行っている。タグメモリ403は、タグ情報を、データをキャッシュしたプロセッサごとに管理し、アクセスするプロセッサごとにデータメモリ404、メモリ103へのアクセスを調整する。
実施形態1において、データメモリ404は、複数のプロセッサによって読み出されたデータを保存(キャッシュ)するデータ保存手段となる。また、タグメモリ403は、データメモリ404にキャッシュされているデータを、データをメモリ103から読み出したプロセッサごとに管理するための管理データを記憶している。
なお、実施形態1では、タグメモリ403が、データのアドレスの他、状態(ステータス)をも管理するためのデータを記憶しておる。ここでいうステータスとは、データのアクセス履歴、データの有効、無効やダーティ(データがメモリ103から読み出された後に変更されたことを意味する)であるか否か等を示す情報である。データのアクセス履歴を管理することにより、タグメモリ403に記憶されているデータによれば、データに対するアクセス状態を管理することができる。
入出力制御部401は、タグメモリ403とデータメモリ404とに対するアクセスを制御する。入出力制御部401では、タグメモリ403及びデータメモリ404へのアクセスが実際に生じるときだけ、メモリアクセスのクロックを供給するなどの方法によって消費電力を低減することも可能である。
ヒット検出部402は、プロセッサによって供給を要求されたデータのアドレスをタグメモリ403で管理されているアドレスと照合し、データメモリ404に対して供給を要求された有効なデータがある(ヒット)か、有効なデータがないか(ミスヒット)を検出する構成である。
具体的には、プロセッサ0〜3は、キャッシュメモリ109にアクセスしてデータを検索する際、タグメモリ403に制御信号を入力する。制御信号は、データメモリ404のライン単位のアドレスの下位の何ビットか(インデックス)を含んでいて、インデックスによってタグメモリ403のタグ情報が引き出される。プロセッサ0〜3が検索するアドレスからインデックスを除いた上位ビットは、タグ情報と比較される。比較の結果、両者が一致した場合、指定されたアドレスのデータがキャッシュされていることになる。一方、タグ情報と制御信号とが一致しなかった場合、プロセッサ0〜3によってメモリ103がアクセスされる。
データがキャッシュされていた場合、タグメモリ403は、一致したアドレスについてデータのステータスを示すステータス信号をヒット検出部402に出力する。ヒット検出部402は、ステータス信号が有効であることを示す場合、キャッシュヒットを検出する。そして、キャッシュヒットを示すキャッシュヒット信号を入出力制御部401に出力する。なお、キャッシュヒット信号には、ヒットしたデータのアドレス、ウェイ及びエントリを示す情報が含まれている。
また、ヒット検出部402は、タグ情報と制御信号とが一致しない、または一致した場合であっても、一致した結果得られたアドレスに保存されているデータが無効である場合にはキャッシュミスヒットを検出する。そして、キャッシュミスヒットを示すキャッシュミスヒット信号を入出力制御部401に出力する。
以上の構成において、データメモリ404は、複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段となる。また、入出力制御部401は、タグメモリ403と共に、データメモリ404に保存されているデータをメモリ103から読み出したプロセッサ0〜3ごとに管理する管理手段となる。実施形態1では、入出力制御部401が、データメモリ404に保存されているデータの書出し優先度を、このデータに対するプロセッサの供給要求(アクセス)状態に基づいて決定している。
また、プロセッサ0〜4の1つ(第1プロセッサ)によってアクセスされたデータがデータメモリ404において他のプロセッサ(第2プロセッサ)に対応して管理されている場合、入出力制御部401は、このデータを第1プロセッサに供給すると共に、タグメモリ403において第2プロセッサに対応して管理されているデータの書出し優先度を更新する。入出力制御部401によるこのような動作は後に詳述する。
なお、実施形態1では、データメモリ404にキャッシュされたデータが、キャッシュされたプロセッサ0〜4のいずれかに対応して管理されているものとする。
次に、実施形態1のタグメモリ403及びデータメモリ404の構成を詳細に説明する。図5(a)、(b)、(c)は、タグメモリ403、データメモリ404に記憶されるデータの構造を説明するための図である。(a)は、タグメモリ403によって管理されるステータスのフラグを示している
フラグは、プロセッサ0〜3の各々ごとにタグメモリ403に保存されていて、実施形態1では、データのステータスをValid flag、Dirty flag、Used flagの3つのフラグによって示している。Valid flagは、データの有効性を示すフラグである。Dirty flagは、キャッシュされているデータとメモリ103に保存されているデータとの不一致の状態を示し、Used flagは、書出しの優先度を示している。
図5(b)は、タグメモリ403のデータ構造を説明するための図である。また、図5(c)は、データメモリ404のデータ構造を説明するための図である。2ウェイのセット・アソシアティブ方式を採用した実施形態1では、プロセッサ0(図中P0と記す)〜プロセッサ3(図中P3と記す)の各々について、ウェイU0、ウェイU1を持っていて、タグメモリ403、データメモリ404の同じエントリに2つのデータを記憶させることができる。
図6(a)、(b)は、実施形態1のLRUの処理を説明するための図である。実施形態1のプロセッサは、LRUによって書き出されるデータの優先順位を図6に示したUsedテーブルによって管理している。なお、実施形態1では、Usedテーブルをタグメモリ403に保存し、入出力制御部401によって更新するものとした。
プロセッサ0〜3によって読み出されたデータは、データメモリ404のウェイU0またはウェイU1にキャッシュされる。ウェイU0、ウェイU1においてキャッシュ可能な数のデータがキャッシュされた後、さらに他のデータをキャッシュする必要がある場合、入出力制御部401は、現在ウェイU0またはウェイU1にキャッシュされているデータの1つをメモリ103に書き出す。そして、プロセッサが要求するデータを書き戻されたデータがキャッシュされていた領域に保存する。
2ウェイのキャッシュメモリを持つ実施形態1では、2ウェイセットアソシアティブの例において、ウェイU0とウェイU1において、プロセッサがアクセスした後最も長い時間が経過したものをキャッシュメモリから取り除く方法(LRU)によりデータに対するプロセッサの供給要求の状態に基づいて決定している。
なお、実施形態1では、データに対するアクセス時間経過が長いウェイを他方に優先してデータを書き出す対象とした。
書出しの優先順位は、図6(a)、(b)の表中にLRU順位としてUsedテーブルに記録されている。実施形態1でいうLRUは、0または1の数値によって表されていて、数値が0,1の順で最近アクセスされたことを示す。つまり、LRU値0のウェイのデータが保持され、LRU値1のウェイのデータが更新される。
また、実施形態1では、書出しの優先順位を、プロセッサごとに決定している。すなわち、入出力制御部401が、キャッシュされたデータと、データをキャッシュしたプロセッサとを対応付けて管理し、このプロセッサによってウェイU0にキャッシュされたデータ、ウェイU1にキャッシュされたデータの2つのデータの間のみで優先順位を決定している。このような構成は、各プロセッサが実行する処理の種別や特性に応じて頻繁にアクセスされるデータを優先的にキャッシュし、いずれのプロセッサにおけるキャッシュヒット率をも高めることができる。
図6(a)は、プロセッサ2が要求したデータがデータメモリ404にミスヒットした場合のLRU順位の決定について説明するための図である。プロセッサ2が要求したデータがプロセッサ2に対応して管理されるデータにないため、プロセッサ2は、メモリ103にアクセスしてデータを読み出し、データメモリ404にキャッシュする。この際、入出力制御部401は、Usedテーブルを参照し、ウェイU0にキャッシュされているデータとウェイU1にキャッシュされているデータとのLRU順位を参照する。
図6(a)の場合、ウェイU1のLRU順位が0、ウェイU0のLRU順位が1であるから、入出力制御部401は、プロセッサ2のウェイU0がキャッシュされて最もアクセス時間が経過したと判定し、ウェイU0のデータを書出し、新たなデータをウェイU0に格納する。そして、ウェイ0のLRUを0に、ウェイU1のLRUを1にする。
また、図6(b)は、プロセッサ2が要求したデータがデータメモリ404のプロセッサ2に対応して管理されているデータにヒットした場合のLRUの決定について説明するための図である。プロセッサ2が要求したデータがプロセッサ2のウェイ1のデータにヒットした場合、プロセッサ2は、このデータを読み出してプロセッサ2に供給する。このとき、データの書出しは必要なく、LRUの値はウェイU1がアクセスの前後で共に最近アクセスされたデータであることを示している。
図7は、以上の動作を説明するためのフローチャートである。入出力制御部401は、プロセッサからデータアクセスの要求を受け、タグメモリ403に要求されたデータがヒットするか否かを検出する(S701)。プロセッサに対応して管理されているデータにヒットしたか否か判断し(S702)、ヒットが検出された場合には(S702:Yes)、アクセスがデータの書出しを要求するものか否か判断する(S707)。データの書出しが要求された場合(S707:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S710)。
また、ステップS707において、アクセスがデータの書出しを目的とするものでないと判断された場合(S707:No)、Way(n)にキャッシュされているデータを読み出し、アクセスしたプロセッサに供給する(S708)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S709)。
一方、ステップS702において、データがヒットしないと判断された場合(S702:No)、入出力制御部401は、ウェイ(Way(n))においてアクセス後に最も長い期間使用されていないデータをLRUのアルゴリズムによって検出する(S703)。そして、検出されたデータがダーティデータであるか否か判断する(S704)。データがダーティデータである場合(S704:Yes)、このデータをデータメモリ404から書出し(S705)、書き出された領域にメモリ103からデータを読み出す(S706)。その後の動作は、S702においてヒットした場合と同様である。
図8(a)、(b)は、実施形態1のLRUの処理を説明するための他の図である。図8は、プロセッサ2が供給を要求したデータが、プロセッサ3のウェイU1にヒットした場合の例を示していて、このような場合、入出力制御部401は、プロセッサ3のウェイU1として管理されているデータをプロセッサ2に供給する。
図8に示した例では、入出力制御部401が、プロセッサ3(第2のプロセッサ)に対応して管理されているデータがプロセッサ2(第1のプロセッサ)に供給された場合、プロセッサ3に対応して管理されているデータの書出し優先度を変更する。図8(a)はデータアクセス前のLRU順位を示し、(b)は更新後のLRU順位を示している。
図示したように、データがヒットしたプロセッサ3のウェイU1では、LRU順位が1から0に変更されている。この変更により、プロセッサ3で次回キャッシュミスヒットが発生した場合、次回ウェイU0のデータが書出しの対象となる。このようにした場合、データヒットがないウェイのデータがヒットがあったウェイに優先して書き出され、プロセッサに必要とされるデータを優先的にキャッシュしておくことができる。
また、このように、実施形態1は、マルチプロセッサに含まれるプロセッサに対応して管理されているデータをどのプロセッサからも読み出すことが可能である。このような実施形態1は、外部メモリであるメモリ103に対するアクセス回数が低減でき、より高速に動作することができる。また、キャッシュされているデータを複数のプロセッサで共用できるため、プロセッサ間でデータのコヒーレンシを保つことができる。
図9は、図8に示した処理のうち、入出力制御部401によってなされるキャッシュの制御を説明するためのフローチャートである。入出力制御部401は、プロセッサからデータアクセスの要求を受け、タグメモリ403に要求されたデータがヒットするか否かを検出する(S901)。そして、データを要求したプロセッサに対応して管理されているデータにヒットしたか否か判断し(S902)、ヒットが検出された場合には(S902:Yes)、アクセスがデータの書出しを要求するものか否か判断する(S903)。
なお、上記した動作において、データを要求したプロセッサ(例えばプロセッサk)に対応して管理されているデータが保存されているデータメモリ404の領域をプロセッサkのキャッシュといい、プロセッサkによってアクセスされるデータがプロセッサkのキャッシュにあったことを、「自分のキャッシュにヒットした」ともいう。また、プロセッサkによってアクセスされるデータがプロセッサkのキャッシュになく、他のプロセッサのキャッシュあったことを、「他のキャッシュにヒットした」ともいう。
データの書出しが要求された場合(S903:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S904)。そして、書き込まれたデータのフラグをダーティフラグに更新する(S905)。
また、ステップS903において、アクセスがデータの書出しを目的とするものでないと判断された場合(S903:No)、Way(n)を読み出してアクセスしたプロセッサに供給する(S908)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S907)。
一方、ステップS902において、データがヒットしないと判断された場合(S902:No)、入出力制御部401は、他のプロセッサにキャッシュされ、このプロセッサに対応して管理されているデータにヒットしたか否か判断する(S908)。ヒットが検出された場合(S908:Yes)、アクセスがデータの書出しを要求するものか否か判断する(S909)。
データの書出しが要求された場合(S909:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S910)。そして、書き込まれたデータのフラグをダーティフラグに更新する(S911)。一方、アクセスがデータの書出しを目的とするものでない場合(S909:No)、Way(n)を読み出してアクセスしたプロセッサに供給する(S912)。そして、入出力制御部401は、Usedテーブルに記録されているLRU順位を示すフラグを更新する(S913)。
また、ステップS908において、他のプロセッサによってキャッシュされたデータにもヒットしなかったと判断された場合(S908:No)、Way(n)においてアクセス回数が最も少ないデータをLRUのアルゴリズムによって検出する(S914)。そして、検出されたデータがダーティデータであるか否か判断する(S915)。データがダーティデータである場合(S915:Yes)、このデータをデータメモリ404から書出し(S916)、書き出された領域にメモリ103からデータを読み出す(S917)。
そして、さらに、入出力制御部401は、アクセスがデータの書出しを要求するものか否か判断する(S918)。データの書出しが要求された場合(S918:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S919)。そして、書き込まれたデータのフラグをダーティフラグに更新する(S920)。
また、ステップS918において、アクセスがデータの書出しを目的とするものでないと判断された場合(S918:No)、Way(n)にキャッシュされていたデータを読み出し、アクセスしたプロセッサに供給する(S921)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S922)。
図10は、図8に示した処理のうち、UsedテーブルのLRU順位を変更するための処理を説明するためのフローチャートである。入出力制御部401は、プロセッサによって要求されたデータをタグメモリ403に照会し、要求されたデータが要求したプロセッサのキャッシュのいずれかのウェイにヒットしたか否か判断する(S1001)。ヒットしたと判断された場合(S1001:Yes)、プロセッサのヒットしたウェイのLRU順位を0に更新する(S1002)。
次に、入出力制御部401は、変数sを0に設定し(S1003)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S1004)。この更新は、更新後のLRU順位が、ヒットしたプロセッサのウェイのヒット直前のLRU順位に達するまで行われる(S1005)。
一方、プロセッサkが要求したデータが自キャッシュにヒットしないとき(S1001:No)、入出力制御部401は、他のプロセッサのキャッシュのウェイにヒットしたか否か判断する(S1006)。ヒットした場合(S1006:Yes)、キャッシュのヒットしたウェイのLRU順を0に更新する(S1007)。そして、変数sを0に設定し(S1008)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S1009)。この更新は、更新後のLRU順位が、ヒットしたプロセッサのウェイのヒット直前のLRU順位に達するまで行われる(S1010)。
また、他のプロセッサのキャッシュにもヒットしなかった場合(S1006:No)、自キャッシュの最もLRU順位が低いウェイのLRU順位を0に更新する(S1011)。そして、変数sを0に設定し(S1012)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S1013)。この更新は、更新後のLRU順位が、ヒットしたプロセッサの全てのウェイが更新されるまで行われる(S1014)。
以上述べたように、実施形態1は、キャッシュメモリにキャッシュされているデータを、マルチプロセッサのどのプロセッサにも供給することができるので、スヌープを用いることがなく、比較的省電力かつ小型な構成でありながらプロセッサ間でデータのコヒーレンシを一致させることができる。また、複数のプロセッサのいずれもが他のプロセッサに対応してキャッシュされているデータの提供を受けることができるので、キャッシュメモリのプロセッサによるアクセス効率を高めることができる。
また、実施形態1は、キャッシュメモリが複数のウェイでなる場合、ウェイごとに書出しの優先順位を付しておく。そして、一のプロセッサがキャッシュメモリにデータを要求したとき、このデータが他のプロセッサのキャッシュにあってもデータを要求したプロセッサに供給することができるので、キャッシュされているデータを有効に活用してプロセッサのメモリ103へのアクセス回数を低減することができる。
また、他のプロセッサにデータがアクセスされた場合にもアクセスの状態に応じてデータの書出しの優先度を決定することができるので、他のプロセッサによるアクセスをも考慮してデータの書出し優先度を決定することができる。
すなわち、他のプロセッサによってアクセスされたデータの優先度を変更する場合、複数のプロセッサでアクセスされる頻度が多いデータを優先してキャッシュしておくことができ、プロセッサ全体の動作効率を高めることができる。また、他のプロセッサによるアクセスがあった場合にはデータの優先度を保存する場合、データとデータを読み出したプロセッサとの間のデータヒット回数が高まって、各プロセッサの動作効率を高めることができる。
なお、以上述べた実施形態1では、キャッシュにデータがヒットした場合、このキャッシュの2つのウェイの優先度を直ちに変更しているが、本発明は、このような構成に限定されるものではない。例えば、プロセッサの特性や処理内容に応じ、複数の所定回数データヒットがあった場合にはデータのLRU順位を変更し、データヒットが所定の回数の達しない間はLRU順位を保存するものであってもよい。
さらに、データヒットが連続して所定の回数起こった場合にLRU順位を変更する、あるいはデータヒットが所定の頻度(単位時間当たりのデータヒット回数)に達した場合にLRU順位を変更することも考えられる。
(実施形態2)
次に、本発明の実施形態2について説明する。実施形態2のキャッシュメモリ及びマルチプロセッサシステムは、入出力制御部401が、一のプロセッサ(第2のプロセッサ)に対応して管理されているデータが他のプロセッサ(第1のプロセッサ)に供給された場合、第2のプロセッサに対応して管理されているデータの書出し優先度を保存する点で、書出し優先度を変更する実施形態1と相違するものである。
図11は、(a)、(b)は、実施形態2のLRUの処理を説明するための図である。図11は、プロセッサ2が供給を要求したデータが、プロセッサ3のウェイU1にヒットした場合の例を示していて(図11(a))、このような場合、入出力制御部401は、プロセッサ3のウェイU1として管理されているデータをプロセッサ2に供給する。実施形態2では、プロセッサ3に対応して管理されているデータの書出し優先度は、データヒットの有無とは無関係に保存される(図11(b))。
このような実施形態2は、マルチプロセッサ105に備えられる複数のプロセッサが各々異なる処理を実行するマルチプロセッサにおいて、各プロセッサの独立性を保つことに有利である。すなわち、実施形態1のように、他プロセッサのアクセスによってLRU順位を変更すると、各プロセッサのLRU処理に他のプロセッサが干渉することになる。実施形態2では、この点に鑑み、キャッシュされているデータに対する他のプロセッサのアクセスは許可するものの、LRU順位は保存して各プロセッサの独立性を保っている。
図12は、図11に示した処理のうち、入出力制御部401によってなされるキャッシュの制御を説明するためのフローチャートである。入出力制御部401は、プロセッサからデータアクセスの要求を受け、タグメモリ403に要求されたデータがヒットするか否かを検出する(S1201)。そして、データを要求したプロセッサに対応して管理されているデータにヒットしたか否か判断し(S1202)、ヒットが検出された場合には(S1202:Yes)、アクセスがデータの書出しを要求するものか否か判断する(S1203)。
データの書出しが要求された場合(S1203:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S1204)。そして、書き込まれたデータのフラグをダーティフラグに更新する(S1205)。
また、ステップS1203において、アクセスがデータの書出しを目的とするものでないと判断された場合(S1203:No)、Way(n)を読み出してアクセスしたプロセッサに供給する(S1208)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S1207)。
一方、ステップS1202において、データがヒットしないと判断された場合(S1202:No)、入出力制御部401は、他のプロセッサにキャッシュされ、このプロセッサに対応して管理されているデータにヒットしたか否か判断する(S1208)。ヒットが検出された場合(S1208:Yes)、アクセスがデータの書出しを要求するものか否か判断する(S1209)。
データの書出しが要求された場合(S1209:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S1210)。そして、書き込まれたデータのフラグをダーティフラグに更新する(S1211)。一方、アクセスがデータの書出しを目的とするものでない場合(S1209:No)、Way(n)を読み出してアクセスしたプロセッサに供給する(S1212)。
なお、実施形態2では、ステップS1212の処理の後、Usedテーブルに記録されている他のプロセッサのキャッシュのLRU順位を示すフラグを更新することなく処理を終了する。このような動作により、実施形態2は、対応するプロセッサ以外のプロセッサによってアクセスされたウェイのLRU順位が保存される。
また、ステップS1208において、他のプロセッサによってキャッシュされたデータにもヒットしなかったと判断された場合(S1208:No)、Way(n)においてアクセス後に最も長い期間使用されていないデータをLRUのアルゴリズムによって検出する(S1213)。そして、検出されたデータがダーティデータであるか否か判断する(S1214)。データがダーティデータである場合(S1214:Yes)、このデータをデータメモリ404から書出し(S1215)、書き出された領域にメモリ103からデータを読み出す(S1216)。
そして、さらに、入出力制御部401は、アクセスがデータの書出しを要求するものか否か判断する(S1217)。データの書出しが要求された場合(S1217:Yes)、データメモリのタグに対応するウェイ(Way(n))へデータを書き込む(S1218)。そして、書き込まれたデータのフラグをダーティフラグに更新する(S1219)。
また、ステップS1217において、アクセスがデータの書出しを目的とするものでないと判断された場合(S1217:No)、Way(n)にキャッシュされていたデータを読み出し、アクセスしたプロセッサに供給する(S1220)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S1221)。
図13は、図11に示した処理のうち、UsedテーブルのLRU順位を変更するための処理を説明するためのフローチャートである。入出力制御部401は、プロセッサによって要求されたデータをタグメモリ403に照会し、要求されたデータが要求したプロセッサのキャッシュのいずれかのウェイにヒットしたか否か判断する(S1301)。ヒットしたと判断された場合(S1301:Yes)、プロセッサのヒットしたウェイのLRU順位を0に更新する(S1302)。
次に、入出力制御部401は、変数sを0に設定し(S1303)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S1304)。この更新は、更新後のLRU順位が、ヒットしたプロセッサのウェイのヒット直前のLRU順位に達するまで行われる(S1305)。
一方、プロセッサkが要求したデータが自キャッシュにヒットしないとき(S1301:No)、入出力制御部401は、他のプロセッサのキャッシュのウェイにヒットしたか否か判断する(S1306)。ヒットした場合(S1306:Yes)、実施形態2ではLRU順位を変更することなく処理を終了する。
また、ステップS1306において、他のプロセッサのキャッシュにもヒットしなかったと判断された場合(S1306:No)、自キャッシュの最もLRU順位が低いウェイのLRU順位を0に更新する(S1307)。そして、変数sを0に設定し(S1308)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S1309)。この更新は、更新後のLRU順位が、ヒットしたプロセッサの全てのウェイが更新されるまで行われる(S1310)。
以上述べたように、実施形態2は、実施形態1と同様に、一のプロセッサが他のプロセッサのキャッシュメモリにデータを要求したとき、このデータを要求したプロセッサに供給することができる。このため、キャッシュされているデータを有効に活用してプロセッサのメモリ103へのアクセス回数を低減することができる。
また、他のプロセッサによるデータアクセスがあった場合、アクセスされたキャッシュの書出しの優先度を変更することなく保存する。このため、キャッシュされたデータを共用しながらもマルチプロセッサ等の各プロセッサの独立性を保つことができる。
なお、本発明は、以上述べた実施形態に限定されるものではない。すなわち、実施形態1、実施形態2で説明したキャッシュメモリは、いずれもデータメモリをマルチポートメモリとしているが、データメモリはマルチポートメモリに限定されるものでなく、シングルポートメモリとして構成することが可能である。
図14は、図4で示したマルチポートメモリのデータメモリ404をシングルポートのデータメモリ404a〜404dとした構成を説明するための図である。データメモリ404a〜404dは、キャッシュされたデータを、データを読み出したプロセッサごとに保存する複数のデータメモリである。入出力制御部1401は、複数のデータメモリ404a〜404dの各々とシングルポートによって接続されている。
また、複数のデータメモリ404a〜404dと入出力制御部1401とを接続した場合、プロセッサ0〜3によるデータメモリ404a〜404dへのアクセスの競合が発生する。プロセッサ0〜3によるアクセスを時分割で処理するため、入出力制御部1401は、競合制御部1405を備えている。
図14に示した構成によれば、マルチポートメモリより安価なシングルポートメモリを使用して本発明の構成を実現することができる。このため、本発明のキャッシュメモリ及びマルチポートメモリシステムを低コストで市場に提供し、キャッシュメモリ及びマルチポートメモリの普及を促進させることができる。
本発明の実施形態1、実施形態2のキャッシュメモリ及びキャッシュメモリを使って動作するマルチプロセッサシステムの構成を説明するための図である。 マルチプロセッサシステムのプロセッサの結合の例を説明するための図である。 一般的なマルチプロセッサの動作を説明するための図である。 図1に示したキャッシュメモリの構成をより詳細に示した図である。 図4に示したタグメモリ、データメモリに記憶されるデータの構造を説明するための図である。 実施形態1のLRUの処理を説明するための図である。 本発明の実施形態1のキャッシュメモリの動作を説明するためのフローチャートである。 本発明の実施形態1のLRUの処理を説明するための他の図である。 図8に示した処理のうち、入出力制御部によってなされるキャッシュの制御を説明するためのフローチャートである。 図8に示した処理のうち、UsedテーブルのLRU順位を変更するための処理を説明するためのフローチャートである。 本発明の実施形態2のLRUの処理を説明するための図である。 図11に示した処理のうち、入出力制御部によってなされるキャッシュの制御を説明するためのフローチャートである。 図11に示した処理のうち、UsedテーブルのLRU順位を変更するための処理を説明するためのフローチャートである。 図4で示したマルチポートメモリのデータメモリをシングルポートのデータメモリとした構成を説明するための図である。
符号の説明
101 キャッシュ制御部、102 キャッシュメモリ部、103 メモリ、105 マルチプロセッサ、106 ローダ、108 アプリケーション、109 キャッシュメモリ、401 入出力制御部、402 ヒット検出部、403 タグメモリ、404、404a〜d データメモリ

Claims (7)

  1. 複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータを前記プロセッサに読み出すと共に前記プロセッサからデータを書き出すデータ授受手段を備えたキャッシュメモリであって、
    複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段と、
    前記データ保存手段に保存されているデータを、該データを前記記憶装置から読み出したプロセッサごとに管理するデータ管理手段と、を備え、
    第1のプロセッサによって供給を要求されたデータが前記データ管理手段において第2のプロセッサに対応して管理されている場合、前記データ授受手段は、供給を要求された第2のプロセッサに対応して管理されているデータを前記第1のプロセッサに供給することを特徴とする請求項1に記載のキャッシュメモリ。
  2. 前記データ管理手段は、プロセッサに対応して管理されているデータを前記データ保存手段に保存する保存優先度を、当該データに対する読出しの要求の状態に基づいて決定することを特徴とする請求項1に記載のキャッシュメモリ。
  3. 前記データ管理手段は、前記データ保存手段のアドレスを複数のウェイとして管理すると共に、前記データ保存手段に保存されているデータの保存優先度を前記ウェイごとに決定することを特徴とする請求項1または2に記載のキャッシュメモリ。
  4. 前記データ管理手段は、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を変更することを特徴とする請求項1から3のいずれか1項に記載のキャッシュメモリ。
  5. 前記データ管理手段は、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を保存することを特徴とする請求項1から3のいずれか1項に記載のキャッシュメモリ。
  6. 前記データ保存手段が、キャッシュされたデータを、データを読み出したプロセッサごとに保存する複数のデータメモリであって、前記データ管理手段は、複数の前記データメモリの各々とシングルポートによって接続されることを特徴とする請求項1から5のいずれか1項に記載のキャッシュメモリ。
  7. 記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータを前記プロセッサに読み出すと共に前記プロセッサからデータを書き出すデータ授受手段を備えたキャッシュメモリと接続するマルチプロセッサシステムであって、
    前記キャッシュメモリが、
    複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段と、
    前記データ保存手段に保存されているデータの書出し優先度を、当該データに対するプロセッサの供給要求の状態に基づいてプロセッサごとに決定するデータ管理手段と、を備え、
    第1のプロセッサによって供給を要求されたデータが前記データ管理手段において第2のプロセッサに対応して管理されている場合、供給を要求されたデータを前記供給手段が前記第1のプロセッサに供給し、前記データ管理手段は、前記第2のプロセッサに対応して管理されているデータを前記データ保存手段に保存する保存優先度を決定することを特徴とするマルチプロセッサシステム。
JP2005353413A 2005-12-07 2005-12-07 キャッシュメモリ及びマルチプロセッサシステム Expired - Fee Related JP4904796B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005353413A JP4904796B2 (ja) 2005-12-07 2005-12-07 キャッシュメモリ及びマルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005353413A JP4904796B2 (ja) 2005-12-07 2005-12-07 キャッシュメモリ及びマルチプロセッサシステム

Publications (3)

Publication Number Publication Date
JP2007156963A true JP2007156963A (ja) 2007-06-21
JP2007156963A5 JP2007156963A5 (ja) 2008-12-25
JP4904796B2 JP4904796B2 (ja) 2012-03-28

Family

ID=38241229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005353413A Expired - Fee Related JP4904796B2 (ja) 2005-12-07 2005-12-07 キャッシュメモリ及びマルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JP4904796B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009288977A (ja) * 2008-05-28 2009-12-10 Fujitsu Ltd キャッシュメモリ制御装置、半導体集積回路、およびキャッシュメモリ制御方法
WO2018061192A1 (ja) * 2016-09-30 2018-04-05 三菱電機株式会社 情報処理装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140232A (ja) * 2000-09-22 2002-05-17 Hitachi Ltd マルチプロセッサシステム及びキャッシュを制御する方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140232A (ja) * 2000-09-22 2002-05-17 Hitachi Ltd マルチプロセッサシステム及びキャッシュを制御する方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009288977A (ja) * 2008-05-28 2009-12-10 Fujitsu Ltd キャッシュメモリ制御装置、半導体集積回路、およびキャッシュメモリ制御方法
WO2018061192A1 (ja) * 2016-09-30 2018-04-05 三菱電機株式会社 情報処理装置

Also Published As

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

Similar Documents

Publication Publication Date Title
US7669010B2 (en) Prefetch miss indicator for cache coherence directory misses on external caches
KR100326980B1 (ko) 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6343347B1 (en) Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
TW201107974A (en) Cache coherent support for flash in a memory hierarchy
JP2007257637A (ja) アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム
US8856453B2 (en) Persistent prefetch data stream settings
US8332592B2 (en) Graphics processor with snoop filter
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
JP2014115851A (ja) データ処理装置及びその制御方法
US8473686B2 (en) Computer cache system with stratified replacement
JP5319049B2 (ja) キャッシュシステム
KR20230028145A (ko) 상호 연결된 장치들 간의 데이터 전송을 위한 시스템, 방법 및 장치
JP5157424B2 (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
US11036639B2 (en) Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
JP2023527735A (ja) コア間キャッシュスタッシング及びターゲット発見
JP4904796B2 (ja) キャッシュメモリ及びマルチプロセッサシステム
WO2006040689A1 (en) Implementation and management of moveable buffers in cache system
US7543112B1 (en) Efficient on-chip instruction and data caching for chip multiprocessors
JP4904802B2 (ja) キャッシュメモリ及びプロセッサ
JP6249120B1 (ja) プロセッサ

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081111

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