JP2009252165A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム Download PDF

Info

Publication number
JP2009252165A
JP2009252165A JP2008102697A JP2008102697A JP2009252165A JP 2009252165 A JP2009252165 A JP 2009252165A JP 2008102697 A JP2008102697 A JP 2008102697A JP 2008102697 A JP2008102697 A JP 2008102697A JP 2009252165 A JP2009252165 A JP 2009252165A
Authority
JP
Japan
Prior art keywords
cache
memory
primary
secondary cache
data
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.)
Pending
Application number
JP2008102697A
Other languages
English (en)
Inventor
Kenta Yasufuku
福 健 太 安
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008102697A priority Critical patent/JP2009252165A/ja
Priority to US12/404,631 priority patent/US20090259813A1/en
Publication of JP2009252165A publication Critical patent/JP2009252165A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】異なるラインサイズの1次及び2次キャッシュを備えるマルチプロセッサシステムにおいて、ハードウェアコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減する。
【解決手段】2次キャッシュ103は、2次キャッシュメモリ103Aに記憶されたデータに含まれる命令コードが複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、データの有効性を示す有効ビット及び2次キャッシュメモリ103Aに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリ103Bと、2次キャッシュタグメモリ103Bに記憶されたラインビットを参照し、2次キャッシュメモリ103のラインのうち、1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラ103Cと、を有する。
【選択図】図1

Description

本発明は、マルチプロセッサシステムに関し、特に、命令キャッシュを備えるマルチプロセッサシステムに関する。
一般的なマルチプロセッサシステムは、複数のプロセッサコア毎に設けられた1次キャッシュと、プロセッサコアに共有される2次キャッシュと、を備えている。
また、1次及び2次キャッシュを持つ一部のプロセッサシステムにおいては、1次及び2次キャッシュの容量を有効に使用するために、1次キャッシュに存在しているデータと2次キャッシュに存在しているデータとを排他的に制御する機能(以下、「イクスクルーシブキャッシュ」という)が設けられている。イクスクルーシブキャッシュを採用している従来のプロセッサシステムは、制御性の観点から、ラインサイズが同一である1次キャッシュと2次キャッシュを備えている。従って、2次キャッシュのラインサイズが大きくなれば、1次キャッシュのラインサイズも大きくなり、2次キャッシュのラインサイズが小さくなれば、1次キャッシュのラインサイズも小さくなる。
一般的に、一度に多くのデータを転送する方がバスやオフチップのDRAMの利用効率が高くなるため、2次キャッシュのラインサイズは大きい方が好ましい。しかし、1次キャッシュのラインサイズが大きい場合には、1次キャッシュへデータが転送される場合に用いられるバッファのサイズも大きくなるので、ハードウェアの規模及びコストが増加する。特に、マルチプロセッサシステムの場合には、プロセッサの数と同一のバッファが必要であるので、バッファのサイズの増加がハードウェアの規模及びコストに与える影響は大きい。
すなわち、1次キャッシュのラインサイズが大きい場合にはハードウェアの規模及びコストが増加し、2次キャッシュのラインサイズが小さい場合には、バスとDRAMの利用効率が低下する。
特表2007−156821号公報
本発明の目的は、異なるラインサイズの1次及び2次キャッシュを備えるマルチプロセッサシステムのハードウェアの規模及びコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減することである。
本発明の第1態様によれば、メインメモリに接続されたマルチプロセッサシステムであって、
命令コード及び演算データを含むデータの要求及び処理を行う複数のプロセッサコアと、
前記複数のプロセッサコア毎に設けられ、命令コードを記憶する1次キャッシュメモリを有する複数の1次キャッシュと、
前記複数のプロセッサコアに共有され、前記1次キャッシュよりもラインサイズが大きい2次キャッシュと、を備え、
前記2次キャッシュは、
前記データを記憶する2次キャッシュメモリと、
前記2次キャッシュメモリに記憶されたデータに含まれる命令コードが前記複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、前記2次キャッシュメモリに記憶されたデータの有効性を示す有効ビット及び前記2次キャッシュメモリに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリと、
前記2次キャッシュタグメモリに記憶されたラインビットを参照し、前記2次キャッシュメモリのラインのうち、前記1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラと、を有することを特徴とするマルチプロセッサシステムが提供される。
本発明によれば、異なるラインサイズの1次及び2次キャッシュを備えるマルチプロセッサシステムのハードウェアの規模及びコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減させることができる。
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
はじめに、本発明の実施例1について説明する。本発明の実施例1は、2次キャッシュコントローラがプロセッサコアに要求されたデータを2次キャッシュメモリから読み出して供給する例である。
図1は、本発明の実施例1に係るマルチプロセッサシステム100の構成を示すブロック図である。
マルチプロセッサシステム100は、複数のプロセッサコア101A〜101D、複数の1次キャッシュ102A〜102D及び2次キャッシュ103を備えている。
プロセッサコア101A〜101Dは、命令コード及び演算データを含むデータの要求及び処理を行う。プロセッサコア101A〜101Dは、1次キャッシュ102A〜102Dを介して2次キャッシュ103に記憶された命令コード及び演算データにアクセスする。
1次キャッシュ102A〜102Dは、プロセッサコア101A〜101D毎に設けられている。1次キャッシュ102Aは、命令コードを記憶する命令キャッシュ(1次命令キャッシュメモリ102A1及び1次命令キャッシュタグメモリ102A2)並びに演算データを記憶するデータキャッシュ(1次データキャッシュメモリ102A3及び1次データキャッシュタグメモリ102A4)を有する。また、1次キャッシュ102B〜102Dは、それぞれ1次キャッシュ102Aと同様に、命令キャッシュ(1次命令キャッシュメモリ102B1〜102D1(図示せず)及び1次命令キャッシュタグメモリ102B2〜102D2(図示せず))並びにデータキャッシュ(1次データキャッシュメモリ102B3〜102D3(図示せず)及び1次データキャッシュタグメモリ102B4〜102D4(図示せず))を有する。1次キャッシュ102A〜102Dの命令キャッシュ及びデータキャッシュは、共に64Bのラインサイズを有する。
2次キャッシュ103は、1次キャッシュ102A〜102Dを介してプロセッサコア101A〜101Dに共有されるように設けられ、図示されないメインメモリに接続されている。2次キャッシュ103は、LRU(Least Recently Used)ポリシーの2WAYセットアソシアティブ方式を採用し、1次キャッシュ102A〜102Dよりも大きな256Bのラインサイズを有する。2次キャッシュ103の容量は、256KBである。2次キャッシュ103は、2次キャッシュメモリ103A、2次キャッシュタグメモリ103B及び2次キャッシュコントローラ103Cを備えている。なお、2次キャッシュ103のラインサイズは、1次キャッシュ102A〜102Bのラインサイズのk(kは2以上の整数)倍である必要があり、本発明の実施例1ではk=4である。
2次キャッシュメモリ103Aは、命令コード及び演算データを含むデータを記憶する。
2次キャッシュタグメモリ103Bは、2次キャッシュメモリ103Aに記憶されたデータに含まれる命令コードが複数の1次命令キャッシュメモリ102A1〜102D1に記憶されているか否かを示すラインビット、2次キャッシュメモリ103Aに記憶されたデータの有効性を示す有効ビット、2次キャッシュメモリ103Aに記憶されたデータが変更されたか否かを示すダーティビットを各ウェイのライン毎に記憶し、2次キャッシュメモリ103Aに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットを各ウェイに共通のライン毎に記憶する。2次キャッシュ103がLRUポリシーの2WAYセットアソシアティブ方式を採用しているので、リプレイスビットは、そのエントリがアクセスされる度に値が反転する。
2次キャッシュコントローラ103Cは、プロセッサコア101A〜101Dによってデータの要求が行われた場合に、2次キャッシュタグメモリ103Bに記憶された有効ビット及びタグアドレスを参照し、1次命令キャッシュメモリ102A1〜102D1に記憶されたデータが記憶されたラインがない場合には、キャッシュミスと判断し、リフィル動作が行なわれる。リフィル動作では、メインメモリにアクセスし、メインメモリに記憶されたデータを2次キャッシュメモリ103Aに書き込み、当該データをプロセッサコア101A〜101Dに供給する。このときに、リフィル対象となるラインの有効ビットに1がセットされている状態(すなわち、既に有効なデータが存在している場合)では、リプレイスが発生し、上書きが行なわれる。また、リプレイスされるラインのダーティビットに1がセットされている状態(すなわち、データが変更されていた場合)では、上書きされるデータをメインメモリに書き戻される。2次キャッシュコントローラ103Cは、2次キャッシュ103のラインサイズである256B単位でメインメモリからデータを読み出し、1次キャッシュ102A〜102Dの命令キャッシュのラインサイズである64B単位でプロセッサコア101A〜101Dにデータを供給する。
2次キャッシュコントローラ103Cは、メインメモリからデータを読み出して2次キャッシュメモリ103Aに書き込むときに、2次キャッシュタグメモリ103Bの内容を更新し、有効ビットに1をセットし、ダーティビットに0をセットし、ラインビットに0をセットし、リプレイスビットの値を反転させ、タグアドレスにアドレスの一部を保存する。
2次キャッシュコントローラ103Cは、プロセッサコア101A〜101Dによって要求されたアドレスに応じて、2次キャッシュメモリ103Aに記憶されたデータを1次命令キャッシュメモリ102A1〜102D1に転送する。このときに、プロセッサコア101A〜101Dが命令コードを要求していた場合には、当該データが記憶されたラインに対応する1次命令キャッシュタグメモリ102A2〜102D2のラインビットに1をセットする。この処理は、1次キャッシュ102A〜102Dの何れにデータを転送したか否かに関わらず行われる。
2次キャッシュコントローラ103Cは、上記の動作を繰り返した後、キャッシュミスが発生し、あるラインのリプレイス対象となるウェイを選択する場合に、そのウェイのすべてのラインビットに1がセットされているウェイを優先して選択する。その結果、1次命令キャッシュメモリ102A1〜102D1に記憶された命令コードと同じ命令コードを含むデータに対応するラインが2次キャッシュメモリ103Aから解放されることになる。
なお、本発明の実施例1では、プロセッサコア101及び1次キャッシュ102の数は複数個であれば幾つでも良い。
図2は、本発明の実施例1に係る1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bの初期状態のデータ構造を示す概略図である。
1次命令キャッシュタグメモリ102A2,102B2は、1ラインのウェイ毎の1ラインのウェイ毎の有効ビット(Valid)及びタグアドレス(Tag Address)と、リプレイスビット(Replace)と、を含む。
2次キャッシュタグメモリ103Bは、1ラインのウェイ毎の有効ビット(Valid)、ダーティビット(Dirty)、複数のラインビット(Line 0〜3)及びタグアドレス(Tag Address)と、リプレイスビット(Replace)と、を含む。有効ビットは2次キャッシュメモリ103Aに記憶されたデータの有効性を示すビットであり、リプレイスビットは2次キャッシュメモリ103Aに記憶されたデータのリフィル対象となるウェイを示すビットである。ラインビットは、2次キャッシュ103のラインサイズ/1次キャッシュのラインサイズのビット数を有する。2次キャッシュ103のラインサイズが256B、1次キャッシュ102のラインサイズが64Bのときには、ラインビットは4bitを有する。
初期状態では、1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのビットには0が設定されている。
図3は、本発明の実施例1に係るマルチプロセッサの命令コードのフェッチ処理の処理手順を示すフローチャートである。
はじめに、1次キャッシュ102Aがアクセスされる(S301)。このとき、プロセッサコア101Aによって要求されたデータの命令コードが1次命令キャッシュメモリ102A1に存在するか否かについて、1次命令キャッシュタグメモリ102A2の内容に基づいて調べられる。
S301において、要求されたデータの命令コードが1次命令キャッシュメモリ102A1に存在しない場合には(S302−NO)、2次キャッシュ103がアクセスされる(S303)。このとき、プロセッサコア101Aによって要求されたデータが2次キャッシュメモリ103Aに存在するか否かについて、2次キャッシュタグメモリ103Bの内容に基づいて調べられる。
S303において、要求されたデータが2次キャッシュメモリ103Aに存在しない場合には(S304−NO)、ウェイのリフィルが行われる(S305)。このとき、図4に示されたように、ウェイ0及びウェイ1の有効ビットが0である場合にはリプレイスビットの値に対応するウェイがリフィルされ、ウェイ0の有効ビットのみが0である場合にはウェイ0がリフィルされ、ウェイ1の有効ビットのみが0である場合にはウェイ1がリフィルされ、ウェイ0及びウェイ1のラインビットが全て1である場合にはリプレイスビットの値に対応するウェイがリフィルされ、ウェイ0のラインビットのみが全て1である場合にはウェイ0がリフィルされ、ウェイ1のラインビットのみが全て1である場合にはウェイ1がリフィルされ、それ以外の場合にはリプレイスビットの値に対応するウェイがリフィルされる。
次に、S305においてリフィルされたウェイの全てのラインビットに0がセットされる(S306)。
次に、データが記憶されたラインに対応するラインビットに1がセットされる(S307)。
一方、S301において要求されたデータの命令コードが1次命令キャッシュメモリ102A1に存在する場合には(S302−YES)、S308へ進む。
他方、S303において要求されたデータの命令コードが2次キャッシュメモリ103Aに存在する場合には(S304−YES)、S307へ進む。
S301〜S307は、マルチプロセッサの処理が終了するまで繰り返される(S308−NO)。
次に、本発明の実施例1に係るマルチプロセッサシステム100の動作の具体例を説明する。
例えば、プロセッサコア101Aによってアドレス(0x00A0_0000)に存在する命令コードが要求されたときには、メインメモリから2次キャッシュメモリ103Aに、2次キャッシュメモリ103Aから1次命令キャッシュメモリ102A1に命令コードが転送され、図5に示されるように、1次命令キャッシュタグメモリ102A2のリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0にタグアドレス(0x00A0_0000)がセットされ、2次キャッシュタグメモリ103Bのリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0のラインビットに1がセットされ、ウェイ0にタグアドレス(0x00A0_00)がセットされる。
次に、プロセッサコア101Bの命令コード要求によってアドレス(0x00A0_004,0x00A0_008,0x00A0_00C)の3回の要求が行なわれると、2次キャッシュメモリ103Aから1次命令キャッシュメモリ102B1に命令コードが転送され、図6に示されるように、1次命令キャッシュタグメモリ102B2のリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0のタグアドレスに(0x00A0_004,0x00A0_008,0x00A0_00C)がセットされ、2次キャッシュタグメモリ103Bのリプレイスビットに1がセットされ、ウェイ0のラインビットに1がセットされる。
ウェイ0のラインビットがすべて1の状態で、このラインがリフィル対象となった場合には、リプレイスビットの値は1であるが、ウェイ0にリフィルが行なわれる。
なお、本発明の実施例1では、2次キャッシュコントローラ103Cは、リプレイス対象を選択するときに全てのラインビットに1がセットされているウェイを優先して選択したが、ラインビットがすべて1にセットされたときに当該ラインの有効ビットに0をセットしても良い。
本発明の実施例1によれば、1次命令キャッシュメモリ102A1〜102D1に記憶された命令コードと同じ命令コードを含むラインを2次キャッシュ103から解放するので、キャッシュサイズを有効利用することができ、ひいては、マルチプロセッサシステム100のハードウェアの規模及びコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減することができる。
次に、本発明の実施例2について説明する。本発明の実施例2は、2次キャッシュコントローラがプロセッサコアに要求された命令コードを対応しない1次キャッシュから対応する1次キャッシュに転送する例である。なお、本発明の実施例1と同様の内容についての説明は省略する。
以下、プロセッサコア101Aによって要求された命令コードが対応する1次命令キャッシュメモリ102A1及び2次キャッシュメモリ103Aに存在せず、対応しない1次命令キャッシュメモリ102A1に存在する場合の例について説明する。
本発明の実施例2に係る2次キャッシュコントローラ103Cは、プロセッサコア101Aによって命令コードの要求が行われた場合には、2次キャッシュメモリ103Aに要求されたデータが存在するか否かを調べる。
プロセッサコア101Aによって要求された命令コードが2次キャッシュメモリ103Aに存在する場合には、2次キャッシュコントローラ103Cは、2次キャッシュメモリ103Aに記憶されたデータを1次命令キャッシュメモリ102A1に転送する。
一方、プロセッサコア101Aによって要求されたデータが2次キャッシュメモリ103Aに存在しない場合には、2次キャッシュコントローラ103Cは、プロセッサコア101Aに対応しない1次命令キャッシュメモリ102B1〜102D1に要求されたデータの命令コードと同じ命令コードが存在するか否かを調べる。
2次キャッシュコントローラ103Cは、プロセッサコア101Aによって要求されたデータの命令コードと同じ命令コードが1次命令キャッシュメモリ102B1に存在する場合には、1次命令キャッシュメモリ102B1に記憶された命令コードを1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
一方、2次キャッシュコントローラ103Cは、プロセッサコア101Aによって要求されたデータの命令コードと同じ命令コードが1次命令キャッシュメモリ102B1に存在しない場合には、メインメモリから2次キャッシュ103のラインサイズ(256B)分のデータの命令コードを1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
2次キャッシュコントローラ103Cは、メインメモリから読み出されたデータのうち要求されたデータの命令コード以外の命令コードが1次命令キャッシュメモリ102A1〜102D1に存在するか否かを調べる。
2次キャッシュコントローラ103Cは、要求されたデータの命令コード以外の命令コードが1次命令キャッシュメモリ102A1〜102D1に存在する場合には、当該命令コードが存在する場所に対応するラインビットに1をセットする。リプレイス対象を選択するときには、実施例1と同様に、全てのラインビットに1がセットされた箇所をリプレイス対象として選択するので、1次命令キャッシュメモリ102A1〜102D1に記憶された命令コードと同じ命令コードを含むデータに対応するラインが2次キャッシュメモリ103Aから解放されることになる。
次に、本発明の実施例2に係るマルチプロセッサシステム100の動作の具体例を説明する。
図7は、本発明の実施例2に係るマルチプロセッサシステム100の動作が行われた後の状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。
本発明の実施例2に係るマルチプロセッサシステム100の動作が行われた後は、1次命令キャッシュタグメモリ102A2,102B2の一部にリプレイスビット、有効ビット及びタグアドレスがセットされ、2次キャッシュタグメモリ103Bの一部にリプレイスビット、有効ビット、ラインビット及びタグアドレスがセットされている。
プロセッサコア101Aによってアドレス(0x00A0_004)が要求され、当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102B1に存在するときには、1次命令キャッシュメモリ102B1から1次命令キャッシュメモリ102A1に命令コードが転送され、図8に示されるように、1次命令キャッシュタグメモリ102A2のリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0にタグアドレス(0x00A0_004)がセットされる。
プロセッサコア101Bによってアドレス(0x10A0_004)が要求され、当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102A1〜102D1に存在しない場合であって、メインメモリから当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102B1に転送され、第2キャッシュメモリ103Aのタグアドレス(0x10A0_000)とタグアドレス(0x10A00C)のデータの命令コードと同じ命令コードが1次命令キャッシュメモリ102A1に存在しているときには、図9に示されるように、1次命令キャッシュタグメモリ102B2のリプレイスビットに0がセットされ、ウェイ1の有効ビットに1がセットされ、ウェイ1にタグアドレス(0x10A0_004)がセットされ、2次キャッシュタグメモリ103Bのリプレイスビットに0がセットされ、ウェイ1のラインビット(Line 0,1,3)に1がセットされ、タグアドレス(0x10A0_00)がセットされる。
なお、本発明の実施例2では、1次命令キャッシュメモリ102A1〜102D1及び1次命令キャッシュタグメモリ102A2〜102D2に対するプロセッサコア101A〜101Dのアクセスと2次キャッシュコントローラ103Cのアクセスとが重複した場合には、プロセッサコア101A〜101Dのアクセスが優先される。
本発明の実施例2によれば、プロセッサコア101Aによって要求された命令コードが対応する1次命令キャッシュメモリ102A1及び2次キャッシュメモリ103Aに存在せず、対応しない1次命令キャッシュメモリ102B1〜102D1に存在する場合に、当該データを対応しない1次命令キャッシュメモリ102B1〜102D1から読み出して対応する1次命令キャッシュメモリ102A1に書き込むことによってプロセッサコア101Aに供給するので、メインメモリへのアクセス数を低減することができる。
また、本発明の実施例2によれば、1次命令キャッシュメモリ102A1〜102D1及び1次命令キャッシュタグメモリ102A2〜102D2に対するプロセッサコア101A〜101Dのアクセスと2次キャッシュコントローラ103Cのアクセスが重複した場合にプロセッサコア101A〜101Dのアクセスが優先されるので、プロセッサコア101A〜101Dの性能を低下させることなく上記効果を達成することができる。
次に、本発明の実施例3について説明する。本発明の実施例3は、2次キャッシュコントローラがプロセッサコアに要求されたデータの命令コードのみをメインメモリから対応する1次キャッシュに転送する例である。なお、本発明の実施例1,2と同様の内容についての説明は省略する。
以下、プロセッサコア101Aによって要求された命令コードが対応する1次命令キャッシュメモリ102A1及び2次キャッシュメモリ103Aに存在せず、対応しない1次命令キャッシュメモリ102B1に存在する場合の例について説明する。
本発明の実施例3に係る2次キャッシュコントローラ103Cは、プロセッサコア101Aによってデータの要求が行われた場合には、2次キャッシュメモリ103A、対応しない1次命令キャッシュメモリ102B1,102C1の順に要求されたデータが存在するか否かを調べる。
プロセッサコア101Aによって要求されたデータが何れかに存在する場合には、2次キャッシュコントローラ103Cは、要求されたデータと同じ2次キャッシュ103のライン上に配置されるデータが1次命令キャッシュメモリ102A1〜102D1に存在するか否かを調べる。
プロセッサコア101Aによって要求されたデータ及び当該データ以外のデータの両方が存在しない場合には、メインメモリから2次キャッシュ103のラインサイズ(256B)分のデータの命令コードを1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
一方、プロセッサコア101Aによって要求されたデータ以外のデータが存在する場合には、2次キャッシュコントローラ103Cは、要求されたデータのみをメインメモリから1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
次に、本発明の実施例3に係るマルチプロセッサシステム100の動作の具体例を説明する。
プロセッサコア101Bによってタグアドレス(0x10A0_004)が要求され、図10に示されるように、当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102A1〜102D1に存在せず、要求されたデータと同じ2次キャッシュ103のライン上に配置されるデータが1次命令キャッシュメモリ102A1に存在するため、2次キャッシュコントローラ103Cは、要求されたデータのみをメインメモリから1次命令キャッシュメモリ102B1に転送し、1次命令キャッシュタグメモリ102B2のリプレイスビットに0がセットされ、ウェイ1の有効ビットに1がセットされ、ウェイ1にタグアドレス(0x10A0_004)がセットされる。
本発明の実施例3によれば、2次キャッシュメモリ103Aに存在するデータを上書きすることがないので、2次キャッシュ103のサイズを有効に利用することができる。
また、本発明の実施例3によれば、メインメモリから1次キャッシュ102A〜102Dへのデータの転送量が1次キャッシュ102A〜102Dのラインサイズ分だけで良くなるので、メインメモリのアクセスに発生する消費電力及びメインメモリのバンド幅の消費を低減することができる。
本発明の実施例1に係るマルチプロセッサシステム100の構成を示すブロック図である。 本発明の実施例1に係る1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bの初期状態のデータ構造を示す概略図である。 本発明の実施例1に係るマルチプロセッサの命令コードのフェッチ処理の処理手順を示すフローチャートである。 図3のウェイのリフィル(S305)の概略を示す概略図及びプログラムの一例である。 本発明の実施例1に係るマルチプロセッサシステム100の動作が行われたときの状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。 本発明の実施例1に係るマルチプロセッサシステム100の動作が行われたときの状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。 本発明の実施例2に係るマルチプロセッサシステム100の動作が行われた後の状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。 本発明の実施例2に係るマルチプロセッサシステム100の動作が行われた後の状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。 本発明の実施例2に係るマルチプロセッサシステム100の動作が行われた後の状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。 本発明の実施例3に係るマルチプロセッサシステム100の動作が行われた後の状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。
符号の説明
100 マルチプロセッサ
101A〜101D プロセッサコア
102A〜102D 1次キャッシュ
102A1〜102D1 1次命令キャッシュメモリ
102A2〜102D2 1次命令キャッシュタグメモリ
102A3〜102D3 1次データキャッシュメモリ
102A4〜102D4 1次データキャッシュタグメモリ
103 2次キャッシュ
103A 2次キャッシュメモリ
103B 2次キャッシュタグメモリ
103C 2次キャッシュコントローラ

Claims (5)

  1. メインメモリに接続されたマルチプロセッサシステムであって、
    命令コード及び演算データを含むデータの要求及び処理を行う複数のプロセッサコアと、
    前記複数のプロセッサコア毎に設けられ、命令コードを記憶する1次キャッシュメモリを有する複数の1次キャッシュと、
    前記複数のプロセッサコアに共有され、前記1次キャッシュよりもラインサイズが大きい2次キャッシュと、を備え、
    前記2次キャッシュは、
    前記データを記憶する2次キャッシュメモリと、
    前記2次キャッシュメモリに記憶されたデータに含まれる命令コードが前記複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、前記2次キャッシュメモリに記憶されたデータの有効性を示す有効ビット及び前記2次キャッシュメモリに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリと、
    前記2次キャッシュタグメモリに記憶されたラインビットを参照し、前記2次キャッシュメモリのラインのうち、前記1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラと、を有することを特徴とするマルチプロセッサシステム。
  2. 前記2次キャッシュコントローラは、前記1次キャッシュに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインが属するウェイを示すリプレイスビットを設定する請求項1に記載のマルチプロセッサシステム。
  3. 前記2次キャッシュコントローラは、前記2次キャッシュメモリのラインのうち、前記1次キャッシュに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインが無効になるように有効ビットを設定する請求項1に記載のマルチプロセッサシステム。
  4. 前記2次キャッシュは、前記1次キャッシュのk(kは2以上の整数)倍のラインサイズを有する請求項1乃至3の何れか1項に記載のマルチプロセッサシステム。
  5. 前記2次キャッシュコントローラは、前記プロセッサコアに要求されたデータが前記2次キャッシュメモリに記憶されていない場合に、当該プロセッサコアに対応しない複数の1次キャッシュに当該データに含まれる命令コードが記憶されているか否かを検索し、当該命令コードが記憶されている場合には当該命令コードを読み出し、読み出された命令コードを当該プロセッサコアに対応する1次キャッシュに転送する請求項1乃至4の何れか1項に記載のマルチプロセッサシステム。
JP2008102697A 2008-04-10 2008-04-10 マルチプロセッサシステム Pending JP2009252165A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008102697A JP2009252165A (ja) 2008-04-10 2008-04-10 マルチプロセッサシステム
US12/404,631 US20090259813A1 (en) 2008-04-10 2009-03-16 Multi-processor system and method of controlling the multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008102697A JP2009252165A (ja) 2008-04-10 2008-04-10 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JP2009252165A true JP2009252165A (ja) 2009-10-29

Family

ID=41164933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008102697A Pending JP2009252165A (ja) 2008-04-10 2008-04-10 マルチプロセッサシステム

Country Status (2)

Country Link
US (1) US20090259813A1 (ja)
JP (1) JP2009252165A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141831A (ja) * 2010-01-08 2011-07-21 Toshiba Corp マルチコアシステム
JP2013037694A (ja) * 2011-08-08 2013-02-21 Arm Ltd 共有キャッシュメモリ制御

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011095852A (ja) * 2009-10-27 2011-05-12 Toshiba Corp キャッシュメモリ制御回路
US20110153953A1 (en) * 2009-12-23 2011-06-23 Prakash Khemani Systems and methods for managing large cache services in a multi-core system
JP2011198091A (ja) 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
US9110810B2 (en) * 2011-12-06 2015-08-18 Nvidia Corporation Multi-level instruction cache prefetching
WO2015152857A1 (en) 2014-03-29 2015-10-08 Empire Technology Development Llc Energy-efficient dynamic dram cache sizing
US9990293B2 (en) * 2014-08-12 2018-06-05 Empire Technology Development Llc Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram
US10282302B2 (en) * 2016-06-30 2019-05-07 Hewlett Packard Enterprise Development Lp Programmable memory-side cache management for different applications
CN109643280B (zh) * 2016-09-01 2023-03-07 Arm有限公司 高速缓存保留数据管理

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61166651A (ja) * 1985-01-18 1986-07-28 Fujitsu Ltd バツフアメモリにおけるリプレイス方式
JPH06161888A (ja) * 1992-11-24 1994-06-10 Fujitsu Ltd 情報処理装置のデータ転送制御方式
JPH06250926A (ja) * 1993-02-25 1994-09-09 Mitsubishi Electric Corp 複数階層のキャッシュメモリを備えたデータ処理システム
JPH07121442A (ja) * 1993-10-14 1995-05-12 Internatl Business Mach Corp <Ibm> データ処理システム及び制御方法
JPH10207767A (ja) * 1997-01-16 1998-08-07 Toshiba Corp ロック機能付キャッシュメモリ及びこのキャッシュメモリを備えたマイクロプロセッサ
JP2000010860A (ja) * 1998-06-16 2000-01-14 Hitachi Ltd キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
JP2007058349A (ja) * 2005-08-22 2007-03-08 Fujitsu Ltd キャッシュシステム
JP2007156821A (ja) * 2005-12-05 2007-06-21 Fujitsu Ltd キャッシュシステム及び共用2次キャッシュ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6983388B2 (en) * 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
US20040103251A1 (en) * 2002-11-26 2004-05-27 Mitchell Alsup Microprocessor including a first level cache and a second level cache having different cache line sizes
US7133975B1 (en) * 2003-01-21 2006-11-07 Advanced Micro Devices, Inc. Cache memory system including a cache memory employing a tag including associated touch bits
JP4843717B2 (ja) * 2008-02-18 2011-12-21 富士通株式会社 演算処理装置および演算処理装置の制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61166651A (ja) * 1985-01-18 1986-07-28 Fujitsu Ltd バツフアメモリにおけるリプレイス方式
JPH06161888A (ja) * 1992-11-24 1994-06-10 Fujitsu Ltd 情報処理装置のデータ転送制御方式
JPH06250926A (ja) * 1993-02-25 1994-09-09 Mitsubishi Electric Corp 複数階層のキャッシュメモリを備えたデータ処理システム
JPH07121442A (ja) * 1993-10-14 1995-05-12 Internatl Business Mach Corp <Ibm> データ処理システム及び制御方法
JPH10207767A (ja) * 1997-01-16 1998-08-07 Toshiba Corp ロック機能付キャッシュメモリ及びこのキャッシュメモリを備えたマイクロプロセッサ
JP2000010860A (ja) * 1998-06-16 2000-01-14 Hitachi Ltd キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
JP2007058349A (ja) * 2005-08-22 2007-03-08 Fujitsu Ltd キャッシュシステム
JP2007156821A (ja) * 2005-12-05 2007-06-21 Fujitsu Ltd キャッシュシステム及び共用2次キャッシュ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141831A (ja) * 2010-01-08 2011-07-21 Toshiba Corp マルチコアシステム
JP2013037694A (ja) * 2011-08-08 2013-02-21 Arm Ltd 共有キャッシュメモリ制御

Also Published As

Publication number Publication date
US20090259813A1 (en) 2009-10-15

Similar Documents

Publication Publication Date Title
US12001345B2 (en) Victim cache that supports draining write-miss entries
JP2009252165A (ja) マルチプロセッサシステム
TWI526829B (zh) 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US7539823B2 (en) Multiprocessing apparatus having reduced cache miss occurrences
US9477600B2 (en) Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
JP3620473B2 (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US9727475B2 (en) Method and apparatus for distributed snoop filtering
JP2006517040A (ja) キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ
WO2006132798A2 (en) Microprocessor including a configurable translation lookaside buffer
JP2008108256A (ja) コンピュータシステムの複数のプロセッサを結合するスイッチングシステムのデータストレージ
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
JP2009223759A (ja) 情報処理装置,メモリ制御方法およびメモリ制御装置
US7779205B2 (en) Coherent caching of local memory data
JP2009157612A (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
JP5293001B2 (ja) キャッシュメモリ装置及びその制御方法
JP2009223511A (ja) キャッシュメモリシステム、データ処理装置および記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121005

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130305