JP2007156963A - キャッシュメモリ及びマルチプロセッサシステム - Google Patents
キャッシュメモリ及びマルチプロセッサシステム Download PDFInfo
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本発明は、上記した点に鑑みてなされたものであって、マルチプロセッサシステムにあって装置構成を大きくすることがなく、あるいは消費電力を高めることがなく、プロセッサ間でデータのコヒーレンシを動作効率よく保つことができ、さらにプロセッサによるアクセス効率が高いキャッシュメモリ及びこのキャッシュメモリを備えたマルチプロセッサシステムを提供することを目的とする。
このため、複数のプロセッサのいずれかに対応して管理されているデータを、どのプロセッサにも供給することが可能となり、スヌープを用いることなくプロセッサ間でデータのコヒーレンシを保つことができる。スヌープを用いないことから、マルチプロセッサシステムにあって装置構成を大きくすることがなく、あるいは消費電力を高めることがなく、プロセッサ間でデータのコヒーレンシを一致させることが可能になる。
また、本発明のキャッシュメモリは、前記データ管理手段は、プロセッサに対応して管理されているデータを前記データ保存手段に保存する保存優先度を、当該データに対する読出しの要求の状態に基づいて決定することを特徴とする。
また、本発明のキャッシュメモリは、前記データ管理手段が、前記データ保存手段のアドレスを複数のウェイとして管理すると共に、前記データ保存手段に保存されているデータの保存優先度を前記ウェイごとに決定することを特徴とする。
また、本発明のキャッシュメモリは、前記データ管理手段が、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を変更することを特徴とする。
また、本発明のキャッシュメモリは、前記データ管理手段が、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を保存することを特徴とする。
このような発明によれば、データメモリに比較的安価なシングルポートメモリを用いることが可能になって、本発明のキャッシュメモリの製造コストを抑えることができる。
さらに、本発明のマルチプロセッサシステムは、他のプロセッサによるデータ要求をも考慮してデータの保存優先度を決定することができるので、プロセッサの要求に応じて必要なデータをキャッシュメモリから書き出さず、キャッシュしておくことができる。このような構成によれば、キャッシュメモリのプロセッサによるアクセス効率をいっそう高めることができる。
(実施形態1)
図1は、本発明のキャッシュメモリ109及びキャッシュメモリ109を使って動作するマルチプロセッサシステム(以下単にマルチプロセッサと記す)105を示した実施形態1、実施形態2に共通の図である。図示した構成は、マルチプロセッサ105、キャッシュメモリ109、メモリ103を有している。メモリ103には、マルチスレッドOS107及びアプリケーション108からプログラムやデータがローダ106によって転送されてくるものとする。
なお、キャッシュメモリの方式には種々のものがあるが、セット・アソシアティブ方式が一般的であるため、実施形態1では2ウェイ(ウェイA,B)のセット・アソシアティブ方式のキャッシュメモリを例に挙げて説明する。なお、セット・アソシアティブ方式とは、キャッシュメモリを複数の領域(ウェイ)に分割し、それぞれのウェイに、メモリデバイス上の異なるアドレスのデータを格納しておくことにより、ヒット率を向上させることができる方式である。
ここでは、実施形態1のプロセッサをマルチプロセッサ105として構成した。マルチプロセッサ105は、図2(b)に示したように、プロセッサ0、プロセッサ1、プロセッサ2、プロセッサ3の4つのプロセッサを有している。キャッシュメモリ109は、マルチプロセッサ105の複数のプロセッサによって、メモリ103から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータの少なくとも一部をプロセッサに供給するキャッシュメモリである。
マルチプロセッサ105は、キャッシュメモリ109と接続し、キャッシュメモリ109を介してメモリ103からデータを読み出す。読み出されたデータは、キャッシュメモリ109に保存(キャッシュ)される。また、マルチプロセッサ105は、読み出されたデータを使って実行した演算の結果を、キャッシュメモリ109あるいはメモリ103に書込んでいる。
キャッシュメモリ部102は、タグメモリ403とデータメモリ404とを有している。データメモリ404は、メモリ103から読み出されたデータがキャッシュされるメモリであって、タグメモリ403は、データメモリ404にキャッシュされたデータを取り出すための情報(タグ情報)をプロセッサ0〜3ごとに管理するメモリである。なお、図4に示した構成では、タグメモリ403、データメモリ404をマルチポートメモリとして構成した。
なお、実施形態1では、タグメモリ403が、データのアドレスの他、状態(ステータス)をも管理するためのデータを記憶しておる。ここでいうステータスとは、データのアクセス履歴、データの有効、無効やダーティ(データがメモリ103から読み出された後に変更されたことを意味する)であるか否か等を示す情報である。データのアクセス履歴を管理することにより、タグメモリ403に記憶されているデータによれば、データに対するアクセス状態を管理することができる。
ヒット検出部402は、プロセッサによって供給を要求されたデータのアドレスをタグメモリ403で管理されているアドレスと照合し、データメモリ404に対して供給を要求された有効なデータがある(ヒット)か、有効なデータがないか(ミスヒット)を検出する構成である。
以上の構成において、データメモリ404は、複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段となる。また、入出力制御部401は、タグメモリ403と共に、データメモリ404に保存されているデータをメモリ103から読み出したプロセッサ0〜3ごとに管理する管理手段となる。実施形態1では、入出力制御部401が、データメモリ404に保存されているデータの書出し優先度を、このデータに対するプロセッサの供給要求(アクセス)状態に基づいて決定している。
次に、実施形態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は、書出しの優先度を示している。
プロセッサ0〜3によって読み出されたデータは、データメモリ404のウェイU0またはウェイU1にキャッシュされる。ウェイU0、ウェイU1においてキャッシュ可能な数のデータがキャッシュされた後、さらに他のデータをキャッシュする必要がある場合、入出力制御部401は、現在ウェイU0またはウェイU1にキャッシュされているデータの1つをメモリ103に書き出す。そして、プロセッサが要求するデータを書き戻されたデータがキャッシュされていた領域に保存する。
なお、実施形態1では、データに対するアクセス時間経過が長いウェイを他方に優先してデータを書き出す対象とした。
また、実施形態1では、書出しの優先順位を、プロセッサごとに決定している。すなわち、入出力制御部401が、キャッシュされたデータと、データをキャッシュしたプロセッサとを対応付けて管理し、このプロセッサによってウェイU0にキャッシュされたデータ、ウェイU1にキャッシュされたデータの2つのデータの間のみで優先順位を決定している。このような構成は、各プロセッサが実行する処理の種別や特性に応じて頻繁にアクセスされるデータを優先的にキャッシュし、いずれのプロセッサにおけるキャッシュヒット率をも高めることができる。
また、図6(b)は、プロセッサ2が要求したデータがデータメモリ404のプロセッサ2に対応して管理されているデータにヒットした場合のLRUの決定について説明するための図である。プロセッサ2が要求したデータがプロセッサ2のウェイ1のデータにヒットした場合、プロセッサ2は、このデータを読み出してプロセッサ2に供給する。このとき、データの書出しは必要なく、LRUの値はウェイU1がアクセスの前後で共に最近アクセスされたデータであることを示している。
図8に示した例では、入出力制御部401が、プロセッサ3(第2のプロセッサ)に対応して管理されているデータがプロセッサ2(第1のプロセッサ)に供給された場合、プロセッサ3に対応して管理されているデータの書出し優先度を変更する。図8(a)はデータアクセス前のLRU順位を示し、(b)は更新後のLRU順位を示している。
また、ステップS903において、アクセスがデータの書出しを目的とするものでないと判断された場合(S903:No)、Way(n)を読み出してアクセスしたプロセッサに供給する(S908)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S907)。
また、ステップS918において、アクセスがデータの書出しを目的とするものでないと判断された場合(S918:No)、Way(n)にキャッシュされていたデータを読み出し、アクセスしたプロセッサに供給する(S921)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S922)。
一方、プロセッサkが要求したデータが自キャッシュにヒットしないとき(S1001:No)、入出力制御部401は、他のプロセッサのキャッシュのウェイにヒットしたか否か判断する(S1006)。ヒットした場合(S1006:Yes)、キャッシュのヒットしたウェイのLRU順を0に更新する(S1007)。そして、変数sを0に設定し(S1008)、複数のプロセッサの各ウェイのLRU順位sを順次s+1に更新する(S1009)。この更新は、更新後のLRU順位が、ヒットしたプロセッサのウェイのヒット直前のLRU順位に達するまで行われる(S1010)。
すなわち、他のプロセッサによってアクセスされたデータの優先度を変更する場合、複数のプロセッサでアクセスされる頻度が多いデータを優先してキャッシュしておくことができ、プロセッサ全体の動作効率を高めることができる。また、他のプロセッサによるアクセスがあった場合にはデータの優先度を保存する場合、データとデータを読み出したプロセッサとの間のデータヒット回数が高まって、各プロセッサの動作効率を高めることができる。
(実施形態2)
次に、本発明の実施形態2について説明する。実施形態2のキャッシュメモリ及びマルチプロセッサシステムは、入出力制御部401が、一のプロセッサ(第2のプロセッサ)に対応して管理されているデータが他のプロセッサ(第1のプロセッサ)に供給された場合、第2のプロセッサに対応して管理されているデータの書出し優先度を保存する点で、書出し優先度を変更する実施形態1と相違するものである。
また、ステップS1203において、アクセスがデータの書出しを目的とするものでないと判断された場合(S1203:No)、Way(n)を読み出してアクセスしたプロセッサに供給する(S1208)。そして、入出力制御部401は、LRUにしたがってこのデータのアクセス履歴等を示す情報をタグメモリ403において更新する(S1207)。
また、ステップS1208において、他のプロセッサによってキャッシュされたデータにもヒットしなかったと判断された場合(S1208:No)、Way(n)においてアクセス後に最も長い期間使用されていないデータをLRUのアルゴリズムによって検出する(S1213)。そして、検出されたデータがダーティデータであるか否か判断する(S1214)。データがダーティデータである場合(S1214:Yes)、このデータをデータメモリ404から書出し(S1215)、書き出された領域にメモリ103からデータを読み出す(S1216)。
一方、プロセッサkが要求したデータが自キャッシュにヒットしないとき(S1301:No)、入出力制御部401は、他のプロセッサのキャッシュのウェイにヒットしたか否か判断する(S1306)。ヒットした場合(S1306:Yes)、実施形態2ではLRU順位を変更することなく処理を終了する。
また、他のプロセッサによるデータアクセスがあった場合、アクセスされたキャッシュの書出しの優先度を変更することなく保存する。このため、キャッシュされたデータを共用しながらもマルチプロセッサ等の各プロセッサの独立性を保つことができる。
図14は、図4で示したマルチポートメモリのデータメモリ404をシングルポートのデータメモリ404a〜404dとした構成を説明するための図である。データメモリ404a〜404dは、キャッシュされたデータを、データを読み出したプロセッサごとに保存する複数のデータメモリである。入出力制御部1401は、複数のデータメモリ404a〜404dの各々とシングルポートによって接続されている。
図14に示した構成によれば、マルチポートメモリより安価なシングルポートメモリを使用して本発明の構成を実現することができる。このため、本発明のキャッシュメモリ及びマルチポートメモリシステムを低コストで市場に提供し、キャッシュメモリ及びマルチポートメモリの普及を促進させることができる。
Claims (7)
- 複数のプロセッサによって記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータを前記プロセッサに読み出すと共に前記プロセッサからデータを書き出すデータ授受手段を備えたキャッシュメモリであって、
複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段と、
前記データ保存手段に保存されているデータを、該データを前記記憶装置から読み出したプロセッサごとに管理するデータ管理手段と、を備え、
第1のプロセッサによって供給を要求されたデータが前記データ管理手段において第2のプロセッサに対応して管理されている場合、前記データ授受手段は、供給を要求された第2のプロセッサに対応して管理されているデータを前記第1のプロセッサに供給することを特徴とする請求項1に記載のキャッシュメモリ。 - 前記データ管理手段は、プロセッサに対応して管理されているデータを前記データ保存手段に保存する保存優先度を、当該データに対する読出しの要求の状態に基づいて決定することを特徴とする請求項1に記載のキャッシュメモリ。
- 前記データ管理手段は、前記データ保存手段のアドレスを複数のウェイとして管理すると共に、前記データ保存手段に保存されているデータの保存優先度を前記ウェイごとに決定することを特徴とする請求項1または2に記載のキャッシュメモリ。
- 前記データ管理手段は、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を変更することを特徴とする請求項1から3のいずれか1項に記載のキャッシュメモリ。
- 前記データ管理手段は、第2のプロセッサに対応して管理されているデータが第1のプロセッサによって読み出し及び書き込みされた場合、第2のプロセッサに対応して管理されているデータの保存優先度を保存することを特徴とする請求項1から3のいずれか1項に記載のキャッシュメモリ。
- 前記データ保存手段が、キャッシュされたデータを、データを読み出したプロセッサごとに保存する複数のデータメモリであって、前記データ管理手段は、複数の前記データメモリの各々とシングルポートによって接続されることを特徴とする請求項1から5のいずれか1項に記載のキャッシュメモリ。
- 記憶装置から読み出されたデータの少なくとも一部をキャッシュしておき、キャッシュされたデータを前記プロセッサに読み出すと共に前記プロセッサからデータを書き出すデータ授受手段を備えたキャッシュメモリと接続するマルチプロセッサシステムであって、
前記キャッシュメモリが、
複数のプロセッサによってキャッシュされたデータを保存するデータ保存手段と、
前記データ保存手段に保存されているデータの書出し優先度を、当該データに対するプロセッサの供給要求の状態に基づいてプロセッサごとに決定するデータ管理手段と、を備え、
第1のプロセッサによって供給を要求されたデータが前記データ管理手段において第2のプロセッサに対応して管理されている場合、供給を要求されたデータを前記供給手段が前記第1のプロセッサに供給し、前記データ管理手段は、前記第2のプロセッサに対応して管理されているデータを前記データ保存手段に保存する保存優先度を決定することを特徴とするマルチプロセッサシステム。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002140232A (ja) * | 2000-09-22 | 2002-05-17 | Hitachi Ltd | マルチプロセッサシステム及びキャッシュを制御する方法 |
-
2005
- 2005-12-07 JP JP2005353413A patent/JP4904796B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002140232A (ja) * | 2000-09-22 | 2002-05-17 | Hitachi Ltd | マルチプロセッサシステム及びキャッシュを制御する方法 |
Cited By (2)
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 |