JP2006244460A - キャッシュメモリ及びプロセッサ - Google Patents
キャッシュメモリ及びプロセッサ Download PDFInfo
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】複数のプロセッサによってキャッシュされたデータが保存されるデータメモリ207、データメモリ207におけるデータのアドレスを一括して管理するタグメモリ206、プロセッサによって供給を要求されたデータのアドレスをタグメモリ206によって管理されているアドレスと照合し、供給を要求されたデータがデータメモリ207から読出し可能であるか否か検出するヒット検出部208、ヒット検出部208によってデータが読出し可能であることが検出された場合、検出されたデータをプロセッサに供給するキャッシュ制御部103を備える。
【選択図】図3
Description
このような発明によれば、データ管理手段及びデータ保存手段に対するアクセス回数が低減し、キャッシュメモリへのアクセス速度を高め、キャッシュメモリを採用したプロセッサの処理速度を向上することができる。
このような発明によれば、データ管理手段及びデータ保存手段に対するアクセス回数が低減し、キャッシュメモリへのアクセス速度を高め、キャッシュメモリを採用したプロセッサの処理速度を向上することができる。
また、本発明のキャッシュメモリは、前記データ保存手段、前記データ管理手段の少なくとも一方がマルチポートメモリであることを特徴とする。
このような発明によれば、複数のプロセッサがデータメモリ、タグメモリに高速にアクセスすることが可能になってマルチプロセッサの処理能力を向上させることができる。
前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給するデータ供給手段と、を備えることを特徴とする。
このような発明によれば、1つのプロセッサが共通するデータにアクセスする可能性が高いマルチスレッドプロセッサにあってもプロセッサ間でデータのコヒーレンシーを動作効率よく保つことができる。
図1は、本発明の実施形態1、実施形態2に共通のキャッシュメモリを備えたマルチスレッドプロセッサ101を示した図である。マルチスレッドプロセッサ101は、外部メモリ105からデータを読み出す、あるいは実行されたスレッドの結果等を外部メモリ105に書込んでいる。
マルチスレッドプロセッサ101では、プロセッサ0からプロセッサ3のいずれでもOSが動作し、他のプロセッサを制御し得る。このようなマルチスレッドプロセッサは、複数のプロセッサが同等な立場で処理を分担するものであって、対称型マルチプロセッサ(SMP:Symmetric Multi Processor)とも呼ばれている。
また、キャッシュ制御部103は、アドレス制御部201、バッファ管理部202、ライト・バッファ203、リード・バッファ205を備えている。
マルチスレッドプロセッサ101は、複数のプロセッサのうちの例えばプロセッサ0から読出し命令を出力する。読出し命令は、供給が要求されるデータの外部メモリ105におけるアドレス(読出しアドレス)と、読出しを指示する信号(読出し制御信号)とを含んでいる。アドレス制御部201は、リード・バッファ205のプロセッサ0に対応するバッファ205aに保存されているデータを検出する。
一方、読出しアドレスに対応するデータがタグメモリにない、あるいはデータのステータスが無効である等の理由によってデータが読み出せない(キャッシュミスヒットした)場合、キャッシュ制御部103は、外部メモリ105からデータメモリに読み込むと共にリード・バッファ205に転送した後にプロセッサ0へ出力する。また、キャッシュヒットした場合と同様に1エントリ分のデータをリード・バッファ205に転送する。
また、以上述べた実施形態1は、プロセッサ間でデータのコヒーレンシーを動作効率よく保つことができる。すなわち、例えばプロセッサごとにタグメモリやデータメモリを備える構成では、同じタグアドレスを持つデータが複数の異なるデータメモリに保存されることになる。そして、複数のデータメモリに存在するデータのうちの一部だけが更新される等の理由によってプロセッサ間におけるデータの不一致が発生する。
また、実施形態1は、ヒットしたデータの読出しと共に、このデータにかかる1エントリ分のデータをリード・バッファ205に転送しておく。このため、プロセッサがタグメモリ206やデータメモリ207にアクセスする回数を低減し、データの読出しにかかるマルチスレッドプロセッサの負荷を軽減することができる。
次に、実施形態1のマルチスレッドプロセッサによるライト動作について説明する。なお、以下に述べるライト動作は、ライトバックを例にしているが、ライトスルーにも適用することができる。
マルチスレッドプロセッサ101は、複数のプロセッサのうちの例えばプロセッサ0からデータを書き込むよう指示する命令(書込み命令)を出力する。書込み命令は、書込みが要求されるデータの外部メモリ105におけるアドレス(書込みアドレス)と、書込みを指示する信号(書込み制御信号)とを含んでいる。また、書込み動作にあっては、書込み命令と共に書込まれるデータ(書込みデータ)もがプロセッサから送出される。
キャッシュ制御部103は、データをデータメモリ207に書き込むため、先ず、タグメモリ206のタグアドレスに書込みアドレスを照合すると共に、データのステータスを検出する。この結果、データメモリ207にデータの書込みが可能である、つまりキャッシュヒットしたと判断された場合、書込みデータをデータメモリ207に書込む。また、タグメモリに保存されているデータのステータスを示すフラグを「ダーティ」にする。
実施形態1ではライト・バッファ203にFIFOメモリを採用したため、プロセッサによるライト・バッファ203への書込みが、ライト・バッファ203が一杯になるまで次々と行われる。また、ライト・バッファ203に書き込まれたデータは、タグメモリ206、データメモリ207に対するアクセス状況に応じ、他の処理と調停しながら空き時間を利用して書き込まれる。
ライト・バッファ203、リード・バッファ205間のデータ一致性は、ライト・バッファ203に書込まれたデータがデータメモリ207書き込まれる前、同一のデータであってリード・バッファ205にあるものにリードアクセスが生じたときに問題となる。このような場合、バッファ管理部202は、リード・バッファ205の内容をライトされたデータに更新する。あるいは、いったんリード・バッファ205のデータを無効にし、書き込みデータをライト・バッファ203からデータメモリ207に書込んだ後、書込まれたデータをリードすることも考えられる。
また、このようなリード・バッファ205の更新にあたっては、プロセッサ0がリード・バッファ205の対応するリード・バッファ部分にアクセスした場合にも、他のプロセッサに対応するリード・バッファ205も更新対象にする必要がある。すなわち、同一のデータが複数のスレッドで使用されることも考えられるので、プロセッサ0による書込み
に対して、プロセッサ0以外のプロセッサによる読出しと書込みとのデータ一致性を保証する必要がある。
図4に示したように、実施形態1のキャッシュメモリは、複数のプロセッサのうちの1つ(プロセッサkとする)が、キャッシュメモリ109にアクセスを要求した場合、タグメモリ206においてキャッシュヒットを検出する処理を行う(S401)。この結果、キャッシュヒットが検出された場合(S402:Yes)、データメモリ207にアクセスし、読出しの対象となるデータを読み出す(S406)。また、タグメモリ206におけるデータのステータスを更新する(S407)。
また、以上述べた本実施形のキャッシュメモリは、以上述べた構成に限定されるものでなく、データの先読み機能を付加した構成とすることも可能である。図6は、実施形態1のキャッシュメモリを命令キャッシュにも適用し、先読みキャッシュとして構成したものである。
次に、本発明の実施形態2について説明する。
実施形態2のキャッシュメモリは、実施形態1で説明した図3の構成を有している。このため、実施形態2では、キャッシュメモリの構成の図示及び説明の一部を省くものとする。実施形態2のキャッシュメモリは、データメモリ207、タグメモリ206少なくとも一方がマルチポートメモリである。データメモリ207をマルチポートメモリとする場合、このマルチポートメモリは、プロセッサの数にウェイの数を乗じた数のポートが必要になる。また、タグメモリ206をマルチポートメモリとする場合、このマルチポートメモリは、プロセッサの数のポートが必要になる。
実施形態2では、読み込み及び書き出しの操作に対し、いわゆるLRU(Least Recently Used algorithm)方式を採用している。LRUとは、キャッシュされているデータのうち、プロセッサがアクセスした後最も長い時間が経過したものをキャッシュメモリから取り除く方法によりデータに対するプロセッサの供給要求の状態に基づいて決定している。このような方式によれば、常にプロセッサの要求頻度が多いデータをデータメモリ207にキャッシュしておくことができ、キャッシュメモリを採用した構成の処理効率を高めることができる。
なお、実施形態2では、保存優先度を決定する基となるアクセスの状態を、現在に比較的近い所定の期間のアクセス回数とする。このような実施形態2によれば、
先ず、実施形態2のタグメモリ206及びデータメモリ207の構成を詳細に説明する。図7(a)、(b)、(c)は、タグメモリ206、データメモリ207に記憶されるデータの構造を説明するための図である。(a)は、タグメモリ206によって管理されるステータスのフラグを示している。
なお、実施形態2では、各ウェイの書出し優先度をUsedフラグに基づいてテーブル(Usedテーブル)で管理する。Usedテーブルについては、図8に示して説明する。
図8(a)、(b)は、実施形態2のLRUの処理を説明するための図であって、データの読出しの前後のUsedテーブルを示している。実施形態2では、Usedテーブルをタグメモリ206に保存し、キャッシュ制御部103によって更新するものとした。
このような実施形態2において、アクセス回数の判断を短い時間に限定すれば、直前のデータアクセスの有無によってデータ書出しの対象となるウェイを決定することも可能である。
一方、プロセッサkが要求したデータがキャッシュにヒットしないとき(S801:No)、キャッシュ制御部103は、LRU順位が最も低いウェイを検出する。そして、このウェイのLRU順位を0に更新する(S802)。なお、この際、外部メモリ105から読み出されたデータは、今回LRU順位が0に更新されたウェイにキャッシュされる。
以上述べた実施形態2によれば、ウェイを複数備えたマルチプロセッサに適したLRU方式を実現し、キャッシュヒット率を高めることができる。また、データメモリやタグメモリをマルチポートメモリとしたことによって複数のプロセッサがキャッシュメモリに同時にアクセスすることができる。このため、実施形態2は、マルチプロセッサの処理能力を向上させることができる。
Claims (8)
- 複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部を前記プロセッサに供給するキャッシュメモリであって、
複数のプロセッサによってキャッシュされたデータが保存されるデータ保存手段と、
前記データ保存手段におけるデータのアドレスを一括して管理するアドレス管理手段と、
前記プロセッサによって供給を要求されたデータのアドレスを前記アドレス管理手段によって管理されているアドレスと照合し、供給を要求されたデータが前記データ保存手段から読出し可能であるか否か検出するヒット検出手段と、
前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給するデータ供給手段と、
を備えることを特徴とするキャッシュメモリ。 - 前記データ保存手段から読み出されたデータ、前記データ保存手段に書き込まれるデータの少なくとも一方を一時的に保存するバッファ手段をさらに備えることを特徴とする請求項1に記載のキャッシュメモリ。
- 前記データ供給手段は、前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給すると共に、前記プロセッサに供給されたデータと連続するデータを含むデータを、前記データ保存手段から読み出されたデータを一時的に保存する前記バッファ手段にも供給することを特徴とする請求項2に記載のキャッシュメモリ。
- 前記プロセッサによって供給が要求されることが予想されるデータをキャッシュしておく先読みデータ保存手段をさらに備えることを特徴とする請求項1に記載のキャッシュメモリ。
- 前記データ管理手段は、前記データ保存手段のアドレスを複数のウェイとして管理すると共に、データ保存手段に保存されているデータを前記データ保存手段に保持する際の優先度である保存優先度を前記ウェイごとに付し、かつ、各ウェイに付される保存優先度を該ウェイで管理されているデータに対するアクセスの状態に基づいて決定することを特徴とする請求項1から4のいずれかに記載のキャッシュメモリ。
- 前記データ保存手段、前記データ管理手段の少なくとも一方がマルチポートメモリであることを特徴とする請求項1から5のいずれか1項に記載のキャッシュメモリ。
- 複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部を前記プロセッサに供給するキャッシュメモリを備えたプロセッサであって、
前記キャッシュメモリは、
複数のプロセッサによってキャッシュされたデータが保存されるデータ保存手段と、
データの前記データ保存手段におけるアドレスを一括して管理するアドレス管理手段と、
前記プロセッサによって供給を要求されたデータのアドレスを前記アドレス管理手段によって管理されているアドレスと照合し、供給を要求されたデータが前記データ保存手段から読出し可能か否かを検出するヒット検出手段と、
前記ヒット検出手段によってデータが読出し可能であることが検出された場合、検出されたデータを前記プロセッサに供給するデータ供給手段と、を備えることを特徴とするプロセッサ。 - 複数の前記プロセッサの各々が、スレッドごとに処理を実行すると共に、処理の実行中に実行されているスレッドを他のスレッドと変更し得ることを特徴とする請求項7に記載のプロセッサ。
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)
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)
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 | マルチプロセッサシステム及びキャッシュを制御する方法 |
-
2005
- 2005-12-20 JP JP2005366569A patent/JP4904802B2/ja not_active Expired - Fee Related
Patent Citations (4)
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)
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 |