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

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

Info

Publication number
JP2008250373A
JP2008250373A JP2007087188A JP2007087188A JP2008250373A JP 2008250373 A JP2008250373 A JP 2008250373A JP 2007087188 A JP2007087188 A JP 2007087188A JP 2007087188 A JP2007087188 A JP 2007087188A JP 2008250373 A JP2008250373 A JP 2008250373A
Authority
JP
Japan
Prior art keywords
violation
access
circuit
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.)
Granted
Application number
JP2007087188A
Other languages
English (en)
Other versions
JP5100176B2 (ja
Inventor
Masato Uchiyama
真郷 内山
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 JP2007087188A priority Critical patent/JP5100176B2/ja
Priority to US12/053,862 priority patent/US8380933B2/en
Publication of JP2008250373A publication Critical patent/JP2008250373A/ja
Application granted granted Critical
Publication of JP5100176B2 publication Critical patent/JP5100176B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

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

【課題】共有メモリへの違反アクセスを検出する。
【解決手段】マルチプロセッサシステムは、複数のプロセッサコア11に対応して設けられ、かつ有効情報と、更新情報と、アドレス情報とを格納するタグ格納部22を含む複数のキャッシュメモリ21と、複数のプロセッサコア11に共有される共有メモリ14と、複数のプロセッサコア11から共有メモリ14へのアクセス要求を調停し、かつ調停されたアクセス要求を共有メモリ14及び複数のキャッシュメモリ21に送るアービタ回路13とを具備する。アクセス要求は、キャッシュラインのデータが書き換えられた旨を示す識別信号を含む。複数のキャッシュメモリ21はそれぞれ、タグ格納部22の情報と、アービタ回路13からのアクセス要求とを比較して、違反アクセスを検出する違反検出回路24を含む。
【選択図】 図1

Description

本発明は、複数のプロセッサコアを備えたマルチプロセッサシステムに係り、例えば複数のプロセッサコアに共有される共有メモリを備えたマルチプロセッサシステムに関する。
近年、コンピュータ装置の処理性能を飛躍的に向上させることが期待できることから、複数のプロセッサコアを共有バスを介して接続したマルチプロセッサシステムの開発が進められている。また、プロセッサコアの動作周波数は、年々高くなる傾向にあるが、主記憶に用いられる外部メモリ(共有メモリ)はプロセッサコアほど高速化が進んでいないため、両者のギャップを埋めるために、キャッシュメモリを用いるのが一般的である。このようなプロセッサコアのキャッシュ機構としては、プロセッサコアに1次キャッシュを内蔵させている。
1次キャッシュと共有メモリとによって階層化された共有メモリシステムのキャッシュコヒーレンシ(cache coherency)を保つ方式としては、スヌープキャッシュ方式が知られている。スヌープキャッシュ方式は、各々の1次キャッシュが自身や他のプロセッサコアの1次キャッシュと更新情報などを交換することでキャッシュコヒーレンシを保っている。
しかし、コヒーレンシを保つために、バストランザクションの監視、アクセス情報の伝達、最新データの強制的な共有メモリへのライトバックなどの様々な処理が発生するため、マルチプロセッサシステムが性能的、電力的に悪化してしまうという問題点がある。
また、ハードウェアによるキャッシュコヒーレンシの維持機構がない場合、コヒーレンシを保てるような共有メモリへのアクセスルールを規定し、1次キャッシがそれを遵守することでコヒーレンシを保っている。コヒーレンシが保てなくなるという状況は複数のプロセッサコアの関連によって発生するものであり、シミュレーションで実行可能な量の検証では違反アクセスが見つからないことも多い。さらに、チップに実装されたマルチプロセッサシステムにおいて検出された違反アクセスをシミュレータで再現することは難しく、問題の特定に多くの時間が必要となってしまう。
また、この種の関連技術として、複数のプロセッサコアが共有バスを介して共有メモリに接続されたマルチプロセッサシステムにおいて、キャッシュコヒーレンシを保ちつつキャッシュメモリ間のデータ転送を高速に行う技術が開示されている(特許文献1参照)。
特開平9−185547号公報
本発明は、共有メモリへの違反アクセスを検出することが可能なマルチプロセッサシステムを提供する。
本発明の一視点に係るマルチプロセッサシステムは、デバッグの対象となる複数のプロセッサコアと、前記複数のプロセッサコアに対応して設けられ、かつデータを格納する単位であるキャッシュラインが有効か否かを示す有効情報と、キャッシュラインのデータが書き換えられたか否かを示す更新情報と、キャッシュラインのデータのアドレス情報とを格納するタグ格納部を含む複数のキャッシュメモリと、前記複数のプロセッサコアに共有される共有メモリと、前記複数のプロセッサコアから前記共有メモリへのアクセス要求を調停し、かつ調停されたアクセス要求を前記共有メモリ及び前記複数のキャッシュメモリに送るアービタ回路とを具備する。前記アクセス要求は、キャッシュラインのデータが書き換えられた旨を示す識別信号を含む。前記複数のキャッシュメモリはそれぞれ、前記タグ格納部の情報と、前記アービタ回路からのアクセス要求とを比較して、違反アクセスを検出する違反検出回路を含む。
本発明によれば、共有メモリへの違反アクセスを検出することが可能なマルチプロセッサシステムを提供することができる。
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。図1に示したマルチプロセッサシステムは、チップに実装されたシステムLSI(Large-Scale Integrated Circuit)として構成される。
マルチプロセッサシステムは、複数のプロセッサコア11(本実施形態では、例えば3つのプロセッサコア11−1〜11−3)、アービタ回路13、共有メモリとしての2次キャッシュメモリ(2次キャッシュ)14、主記憶装置15、及び違反処理回路16を備えている。
各プロセッサコア11は、本システムの動作を制御するためのCPU(Central Processing Unit)であり、主記憶装置15に格納されたプログラムを実行することにより、キャッシュメモリやその他の回路の制御を行う。そして、LSIが処理すべき内容を複数のタスクに分割し、各タスクに最適な構成を持ったプロセッサコアを並列に動作させることで、大幅な処理速度の向上が可能となる。
プロセッサコア11による主記憶装置15へのアクセスは、バス12及び2次キャッシュ14を介して行われる。なお、本実施形態では、共有メモリとしての2次キャッシュ14は必ずしも必要ではなく、プロセッサコア11がバス12を介して直接に共有メモリとしての主記憶装置15へアクセスするように構成してもよい。
各プロセッサコア11は、1次キャッシュメモリ(1次キャッシュ)21を備えている。1次キャッシュ21は、タグ格納部22、及びデータを格納するデータ格納部23を備えている。タグ格納部22及びデータ格納部23は、キャッシュライン単位でタグやデータなどを格納する。
タグ格納部22には、キャッシュラインのデータの情報が格納され、具体的には、バリッドビット(V)、ダーティービット(D)、及びアドレス情報(ATAG)が格納される。アドレスタグ(ATAG)は、当該キャッシュラインのデータ格納部23に格納されているデータのアドレス情報を示す。
バリッドビット(V)は、キャッシュラインのデータが有効か否かを示す。すなわち、キャッシュラインのデータが、そのキャッシュラインのインデックスとアドレスタグとで表される共有メモリのデータとして有効か否かを示す。例えば、バリッドビット(V)が“1”の場合はキャッシュラインのデータは有効であり、“0”の場合はキャッシュラインのデータは無効である。
ダーティービット(D)は、キャッシュラインのデータが更新され、キャッシュラインのデータを共有メモリに書き戻す必要があるか否かを示す。すなわち、1次キャッシュのキャッシュラインが書き替えられて最新データとなっており、キャッシュラインのコピー元となる共有メモリには旧データしかなく、書き替えたプロセッサコアが最新データを所有していることを意味する。例えば、ダーティービット(D)は、キャッシュラインのデータは更新されて、まだ共有メモリに書き戻しを行っていない場合に“1”にセットされる。
プロセッサコア11−1〜11−3から2次キャッシュ14へのアクセス要求は、アービタ回路13で競合を調停される。すなわち、アービタ回路13は、複数のプロセッサコアから共有メモリにバス12を介してアクセスが競合した場合に、規定された方法によりアクセスの割り当てを行う。そして、1サイクルに1つのアクセス要求だけが2次キャッシュ14に送られるようになっている。2次キャッシュ14にヒットしなかったアクセス要求は、主記憶装置15に送られる。
各プロセッサコア11から2次キャッシュ14へ送られるアクセス要求には、プロセッサコア番号、リード/ライト識別信号、2次キャッシュ直接アクセス/1次キャッシュリフィルアクセス識別信号、及びアクセス先アドレスなどの情報の他に、1次キャッシュ書き込み発生識別信号が含まれる。1次キャッシュ書き込み識別信号CWIは、ダーティービットが“0”から“1”に書き換えられた(遷移した)のを識別する信号であり、具体的には、プロセッサコアが共有メモリから1次キャッシュにデータを取ってきた後にそのキャッシュラインに新たなデータを書き込む動作を識別する信号である。
2次キャッシュ直接アクセス識別信号は、1次キャッシュを経由しないで直接に2次キャッシュにアクセスする動作を識別する信号である。1次キャッシュリフィルアクセス識別信号は、1次キャッシュに一度アクセスした後に2次キャッシュにアクセスする動作を識別する信号である。アクセス先アドレスは、それの上位ビットがアドレスタグに対応し、それの下位ビットがキャッシュラインのインデックスに対応する。
ところで、本実施形態のマルチプロセッサシステムは、2次キャッシュ14に送られるアクセス要求を各プロセッサコア11にフィードバックするフィードバックパス、このフィードバックされたアクセス要求と各プロセッサコア11が保持するキャッシュラインの情報との比較を行って違反アクセスを検出する違反検出回路24、各プロセッサコア11により検出された違反情報を集めて処理及び保持する違反処理回路16などを備えている。
図2は、1次キャッシュ21の構成を示すブロック図である。1次キャッシュ21は、前述したタグ格納部22及びデータ格納部23に加えて、違反検出回路24、データキャッシュ制御回路25、ダーティービット遷移検出回路26、及びデバッグ切替回路27を備えている。これらの回路のうち、違反検出回路24、ダーティービット遷移検出回路26、デバッグ切替回路27、及び違反処理回路16によりデバッグ回路が構成されている。
デバッグ切替回路27は、デバッグ回路による違反アクセス検出の有効/無効を設定する。デバッグ切替回路27は、1ビットのレジスタ27Aを備えており、このレジスタ27Aのデータに基づいて違反アクセス検出の有効/無効を設定する。レジスタ27Aのデータは、以下のように設定される。
1’b1 : 違反アクセス検出有効
1’b0 : 違反アクセス検出無効
レジスタ27Aのデータは、例えば外部からバス12を介して書き換えられる。また、レジスタ27A内容は常時出力されており、違反検出イネーブルVDEとして違反検出回路24及びダーティービット遷移検出回路26へ送られる。
タグ格納部22は、2つのアクセスポート(ポート0、及びポート1)を有している。そして、タグ格納部22に格納されたバリッドビット(V)、ダーティービット(D)、及びアドレスタグ(ATAG)は、キャッシュライン単位で同時に読み出される。
データキャッシュ制御回路25は、タグ格納部22及びデータ格納部23に対して、データの書き込み、及びデータの読み出しを行う。データキャッシュ制御回路25は、ポート0を用いてタグ格納部22にアクセスする。データキャッシュ制御回路25は、チップイネーブルCE_0、ライトイネーブルRE_0、キャッシュラインのインデックスIND_0、及び書き込みデータWD_0をタグ格納部22に送る。また、データキャッシュ制御回路25は、読み出しデータRD_0をタグ格納部22から受ける。
また、データキャッシュ制御回路25は、1次キャッシュにデータがヒットしたか否かを示すキャッシュヒット信号HITを生成し、このキャッシュヒット信号HITをダーティービット遷移検出回路26に送る。このキャッシュヒット信号HITは、キャッシュヒット時に“1”、キャッシュミス時に“0”に設定される。
違反検出回路24は、ポート1を用いてタグ格納部22にアクセスする。違反検出回路24は、チップイネーブルCE_1、及びキャッシュラインのインデックスIND_1をタグ格納部22に送る。また、違反検出回路24は、読み出しデータRD_1をタグ格納部22から受ける。
データキャッシュ制御回路25によるタグ格納部22及びデータ格納部23へのデータの書き込みは、以下のような2サイクルで実現する。
「サイクル1」:タグ情報の読み出し
「サイクル2」:キャッシュヒット/ミス判定
そして、データキャッシュ制御回路25は、キャッシュヒット時には、タグ格納部22及びデータ格納部23へデータを書き込む。一方、キャッシュミス時には、共有メモリへのリフィルアクセスを行う。
ダーティービット遷移検出回路26は、サイクル1で読み出したタグ情報のダーティービットと、サイクル2で書き込む(更新する)ダーティービットを用いて、ダーティービットが“0”から“1”に書き換えられたか否かを判定する。そして、ダーティービット遷移検出回路26は、判定結果を1次キャッシュ書き込み識別信号CWIとして出力する。この1次キャッシュ書き込み識別信号CWIは、アービタ回路13へ送られる。
ダーティービット遷移検出回路26は、3入力AND回路26A、及び2入力AND回路26Bを備えている。AND回路26Aには、ダーティービットの書き込みデータDWD、ダーティービットの読み出しデータDRD、及びキャッシュヒット信号HITが入力されている。AND回路26Bには、AND回路26Aの出力、及び違反検出イネーブルVDEが入力されている。
図2に示すように構成されたダーティービット遷移検出回路26は、以下の条件が一致した時にダーティービットが0から1に書き換えられたと判断し、1次キャッシュ書き込み識別信号CWIを“1”に設定する。
・違反検出イネーブルVDE=1
・キャッシュヒット信号HIT=1
・ダーティービットの書き込みデータDWD=1
・ダーティービットの読み出しデータDRD=0
また、キャッシュミスした場合と同様に、1次キャッシュ書き込み識別信号CWI以外のアクセス要求は、データキャッシュ制御回路25からアービタ回路13へ送られる。ただし、2次キャッシュ直接アクセス/1次キャッシュリフィルアクセス識別信号は、共に“0”に設定される。すなわち、データキャッシュ制御回路25からアービタ回路13へ送られるアクセス要求は、以下に示すように設定される。
・プロセッサコア番号PCN=自身のコア番号
・リード/ライト識別信号=0(read)
・2次キャッシュ直接アクセス識別信号=0
・1次キャッシュリフィルアクセス識別信号=0
・アクセス先アドレス=共有メモリのアクセス先アドレス
なお、違反検出イネーブルVDEが“0”の時(すなわち、違反アクセス検出が無効の時)は、1次キャッシュ書き込み識別信号CWIが“0”に固定される。この場合は、通常のキャッシュアクセス処理と同じであり、1次キャッシュ書き込み識別信号CWI以外のアクセス要求は通常のキャッシュアクセス処理時と変化はない。
違反検出回路24は、所定のポリシーに基づいて、プロセッサコアのアクセスパターンが違反であるか否かを検出する。図3は、違反検出回路24の構成を示すブロック図である。違反検出回路24は、判定回路24A、比較回路24B、AND回路24C、及びレジスタ24Dを備えている。
違反検出回路24には、デバッグ切替回路27から違反検出イネーブルVDEが送られる。違反検出回路24は、違反検出イネーブルVDEが“1”の時、アービタ回路13からのアクセス要求をレジスタ24Dに格納し、このアクセス要求の内容を用いて違反アクセスの検出を行う。一方、違反検出回路24は、違反検出イネーブルVDEが“0”の時、アービタ回路13からのアクセス要求を無視する。また、違反検出回路24は、レジスタ24Dのデータが更新される毎に、違反アクセス検出を実行する。
以下に、違反検出回路24による違反アクセス検出動作について説明する。前述したように、違反アクセス検出時には、デバッグ切替回路27により違反検出イネーブルVDEが“1”に設定される。
まず、違反検出回路24には、フィードバックパスを介して、アービタ回路13で調停されたアクセス要求(チップイネーブルCE、プロセッサコア番号PCN、リード/ライト識別信号、2次キャッシュ直接アクセス/1次キャッシュリフィルアクセス識別信号、アクセス先アドレス、及び1次キャッシュ書き込み識別信号CWI)が送られる。このアクセス要求は、レジスタ24Dに格納される。
次に、違反検出回路24は、レジスタ24Dに格納されたチップイネーブルCEをアクセス先アドレスの下位ビット(キャッシュインデックスに対応する)と共に、読み出し要求としてタグ格納部22に送る。この違反検出回路24からの読み出し要求に対して、タグ格納部22からは、キャッシュインデックスのバリッドビット、ダーティービット、及びアドレスタグが読み出される。なお、キャッシュインデックスは、キャッシュのブロック(キャッシュライン)を選択するために使用される。
続いて、判定回路24Aは、タグ格納部22から読み出されたバリッドビット及びダーティービットを、プロセッサコア番号PCN及びアクセス要求に含まれる5種の識別信号(リード及びライトそれぞれの2次キャッシュ直接アクセス識別信号、リード及びライトそれぞれの1次キャッシュリフィルアクセス識別信号、及び1次キャッシュ書き込み識別信号CWI)と共に処理し、そのアクセスパターンが違反であるか否かを判定する。
続いて、比較回路24Bは、タグ格納部22から読み出されたアドレスタグと、アクセス先アドレスの上位ビット(アドレスタグに対応する)とを比較し、同一のキャッシュラインを指しているか否かを判定する。そして、判定回路24Aによりアクセスパターンが違反であると判定され、かつ、比較回路24Bによりアクセス先とプロセッサコアで保持されているキャッシュラインとのアドレスが同一であれば、違反アクセスとなる。この違反アクセス検出はAND回路24Cにより行われ、AND回路24Cは違反検出信号VDを出力する。
さらに、違反検出の場合、違反検出回路24は、違反検出信号VD、違反パターン、違反を検出したプロセッサコアのプロセッサコア番号DPCN、違反を検出するきっかけとなるアクセスを行ったプロセッサコアのプロセッサコア番号APCN、及びアクセス先アドレスを違反処理回路16に送る。この違反パターンは、判定回路24Aにより判定される。
ここで、違反アクセスの検出ポリシーの一例について説明する。本実施形態では、以下の4つのアクセスパターンを違反とする。
1.バリッドビット=1、ダーティービット=1となっているキャッシュラインに、他のプロセッサコアから読み出しアクセスが発生した場合(読み出しアクセスを行ったプロセッサコアは、最新ではないデータを読み出している)
2.バリッドビット=1となっているキャッシュラインに、他のプロセッサコアから書き込みアクセスが発生した場合(そのプロセッサコアが1次キャッシュに保持しているデータが最新のものでなくなってしまう)
3.バリッドビット=1、ダーティービット=1となっているキャッシュラインに、データを保持しているプロセッサコア自身が2次キャッシュ直接読み出しアクセスを行った場合(最新のデータはプロセッサコア自身の1次キャッシュ上に格納されているので、2次キャッシュから読み出したデータは最新のものではない)
4.バリッドビット=1となっているキャッシュラインに、データを保持しているプロセッサコア自身が2次キャッシュ直接書き込みアクセスを行った場合(そのプロセッサコアが1次キャッシュに保持しているデータが最新のものでなくなってしまう)
それぞれのアクセスパターンは1つの違反だけに対応するわけではなく、様々な違反によって同じような不正なアクセスパターンになる場合がある。例えば、プロセッサコア11−1でバリッドビット=1、ダーティービット=1となっているキャッシュラインにプロセッサコア11−2からアクセスが発生した場合、そのキャッシュラインがプロセッサコア11−1が書き換えを行うことが許可された領域であってプロセッサコア11−2がアクセスしてはならない領域であれば、プロセッサコア11−2のアクセスが不正なアクセスとなる。逆に、プロセッサコア11−2のアクセスは正当なものであって、過去にプロセッサコア11−1が書き込みを許可された領域でないにもかかわらず書き込み動作を行ってしまったためにバリッドビット=1、ダーティービット=1としてキャッシュラインを保持してしまっていることが不正である可能性もある。
なお、違反アクセスの定義はシステムや用途によって異なる場合があり、それに対応して違反アクセスの検出ポリシーも変える必要がある。その際、上記のように1つの違反アクセスパターンには複数の要因が含まれる可能性がある。したがって、違反アクセスパターンが必ず何らかの検出ポリシーに該当するように検出ポリシーを設定する。このようにして、違反アクセスの誤検出を防ぐようにする。
次に、違反処理回路16について説明する。図4は、違反処理回路16の構成を示すブロック図である。違反処理回路16は、違反情報レジスタ16Aを備えている。この違反情報レジスタ16Aは、違反アクセスパターン(本実施形態では、4つのアクセスパターン)に対応した数のレジスタを備えている。
プロセッサコア11−1〜11−3にそれぞれ含まれる違反検出回路24−1〜24−3により違反アクセスが検出されて違反検出信号VDがアサートされると、違反処理回路16は、違反アクセスパターンで指定されたレジスタに、アクセスプロセッサコア番号APCN、検出プロセッサコア番号DPCN、及びアクセス先アドレスを書き込んで保持する。
違反情報レジスタ16Aに格納されたこれらの違反情報は、外部からバス経由で読み出すことができる。すなわち、外部から読み出し要求及びレジスタ番号を違反処理回路16に送ることで、違反情報レジスタ16Aのうちレジスタ番号に対応する領域の違反情報が読み出しデータとして外部にバス経由で読み出される。この読み出された違反情報は、マルチプロセッサシステムのデバッグに利用される。
以上詳述したように本実施形態によれば、チップに実装されたマルチプロセッサシステムがデバッグ回路を備えることができる。そして、チップ上でのプログラム実行において共有メモリへの違反アクセスが発生した場合に、デバッグ回路によりその違反アクセスを検出することができる。
また、違反検出回路24−1〜24−3により検出された違反情報を違反処理回路16の違反情報レジスタ16Aに格納することができる。これにより、読み出したい違反情報を外部から自由に読み出すことが可能となり、この違反情報を用いてプロセッサコアのデバッグを行うことができる。
また、バリッドビット、ダーティービット、及びアドレスタグは一般的なキャッシュタグには必ず含まれる要素であり、本実施形態のデバッグ回路を実装するためにキャッシュライン毎に何らかの状態を保持するためのレジスタを新たに追加する必要がない。
また、マルチプロセッサシステムに新たに追加した回路はデバッグ回路を構成しているため、製品出荷時には機能を無効化して構わない。機能を無効化すれば電力が消費されないため、信号の変化が多くなって消費電力が大きくなるようなデバッグ回路を実装しても製品出荷後の消費電力には影響を及ぼさない。
(第2の実施形態)
第2の実施形態は、違反アクセスを検出した時点で、違反アクセスを行ったプロセッサコアに割り込みをかけてデバッグプログラムを実行するようにしている。
図5は、本発明の第2の実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。図1と比べて、違反処理回路16から各プロセッサコアに割り込みを行うための割り込み信号ITRのパスが追加されている。
図6は、違反処理回路16の構成を示すブロック図である。違反処理回路16は、割り込み回路16Bを備えている。割り込み回路16Bは、違反検出信号VD、違反を検出したプロセッサコアのプロセッサコア番号DPCN、及び違反を検出するきっかけとなるアクセスを行ったプロセッサコアのプロセッサコア番号APCNを受ける。
割り込み回路16Bは、違反検出信号VDがアサートされると、プロセッサコア番号DPCN及びAPCNで指定された違反を検出したプロセッサコア及び違反を検出するきっかけとなるアクセスを行ったプロセッサコアに対する割り込み信号ITRをアサートする。その後、これらのプロセッサコアに割り込みをかけて外部からデバッグプログラムを実行する。
デバッグが終了すると、この割り込みに関係する違反情報は必要なくなる。したがって、違反処理回路16は、違反情報レジスタ16Aに格納されたデータの更新を行う。
以上詳述したように本実施形態によれば、違反アクセスを検出した時点で、違反アクセスをしたプロセッサコアのデバッグを行うことができる。このように、違反アクセスが検出された時点で対象となるプログラムの実行を停止してデバッグを行うことで、プログラム終了後に違反アクセスの問題を解析するよりも問題箇所の特定が容易となる。この結果、デバッグにかかる時間を削減することができる。
(第3の実施形態)
第2の実施形態では、割り込みが行われるプロセッサコアは、違反を検出したプロセッサコア、及び違反を検出するきっかけとなるアクセスを行ったプロセッサコアに限定されている。しかし、違反アクセスパターンによっては、割り込みを行わない、検出したプロセッサコアだけに割り込みを行う、全てのプロセッサコアに割り込みを行う、といったように使い分けた方がデバッグの効率と柔軟性が向上する場合が考えられる。そこで、第3の実施形態では、割り込みを行う対象となるプロセッサコアを、プログラムによって制御できるようにしている。
図7は、本発明の第3の実施形態に係る違反処理回路16の構成を示すブロック図である。違反処理回路16は、割り込み設定レジスタ16Cを備えている。割り込み設定レジスタ16Cは、違反アクセスパターンに対応した数のレジスタを備えている。割り込み設定レジスタ16Cのデータは、外部からバス経由で書き込むことが可能である。すなわち、外部からバス経由で書き込み要求、レジスタ番号、及び書き込みデータを違反処理回路16に送ることで、割り込み設定レジスタ16Cのうちレジスタ番号に対応した領域に書き込みデータが書き込まれる。このようにして、デバッグ機能を有効にする前に予め割り込み設定レジスタ16Cに割り込み情報を書き込んで、各違反アクセスパターンを検出した際の割り込み方法を設定しておく。
割り込み設定レジスタ16Cは、例えばプロセッサコアが3つの場合は、違反アクセスパターン毎に4ビットの領域を持つ。4ビットの割り込み情報は、それぞれ以下のような意味を持つ。
・「4’b0000」:割り込みを行わない
・「4’b0001」:違反を検出したプロセッサコアに割り込みを行う
・「4’b0010」:違反を検出するきっかけとなるアクセスを行ったプロセッサコアに割り込みを行う
・「4’b0011」:違反検出側及びアクセス側両方のプロセッサコアに割り込みを行う
・「4’b01zz」:全てのプロセッサコアに割り込みを行う
・「4’b1zNN」:プロセッサコア番号2’bNNのプロセッサコアに割り込みを行う
(zはdon't care、Nは任意に設定可能)
このように構成された違反処理回路16の動作について説明する。割り込み回路16Bは、違反検出信号VD、プロセッサコア番号APCN及びDPCNに加えて、違反パターンを受ける。違反検出信号VDがアサートされると、割り込み回路16Bは、割り込み設定レジスタ16Cから違反アクセスパターンに対応した割り込み情報を読み出す。そして、割り込み回路16Bは、割り込み情報により設定された割り込み方法でプロセッサコアに対して割り込みを行う。
また、割り込み設定レジスタ16Cに格納された割り込み情報は、セレクタ16Dを介して外部からバスを介して読み出すこともできる。すなわち、外部から読み出し要求及びレジスタ番号を違反処理回路16に送ることで、割り込み設定レジスタ16Cのうちレジスタ番号に対応した領域の割り込み情報が読み出しデータとして外部にバス経由で読み出される。
以上詳述したように本実施形態によれば、外部からプログラムにより書き込み可能な割り込み設定レジスタ16Cの内容によって、違反アクセスを検出した際に外部割り込みを行うプロセッサコアを任意に指定することができる。これにより、デバッグの効率と柔軟性を向上させることができる。
(第4の実施形態)
実装方法によっては、デバッグ回路を有効にした場合と無効にした場合とでプログラムを実行する際のクロックサイクル数(実行サイクル数)が異なってくることが考えられる。これは、デバッグ回路を追加した際にアクセス要求に新たな信号を追加したことに起因している。実行サイクル数が異なると、デバッグ回路を有効にした場合に特定のサイクルパターンに陥って問題が表面化しないが、製品出荷時にデバッグ回路を無効にした場合に問題が表面化するという事態が発生する可能性がある。
そこで、アービタ回路13による調停結果をランダムに変更する機構があるとデバッグ回路を有効にした場合の実行サイクル数が実行回毎に異なるため、特定のサイクルパターンに陥って問題が表面化しないという事態が発生する可能性を減らすことが可能となる。第4の実施形態では、アクセス競合の調停時にランダム要素を取り入れたアービタ回路13の構成例について示している。
図8は、本発明の第4の実施形態に係るアービタ回路13の構成を示すブロック図である。アービタ回路13は、ランダム変数生成回路13A、3つの排他的論理和(XOR)回路13B〜13D、優先度判定回路13E、及びセレクタ13Fを備えている。
ランダム変数生成回路13Aは、ランダム信号を生成する。プロセッサコアが3つの場合、ランダム変数生成回路13Aは、2ビット×3=6ビットのランダム信号を生成する。この6ビットのランダム信号は、優先度判定回路13Eに送られる。
優先度判定回路13Eは、6ビットのランダム信号を2ビット毎に分けて使用する。そして、優先度判定回路13Eは、3つの2ビットデータを3つのプロセッサコアにそれぞれ対応づけ、これら2ビットデータをプロセッサコアを調停する際の優先度を決めるために使用する。例えば、優先度判定回路13Eは、2ビットデータの値の大きな順に高い優先度であると判定する。
2ビットデータが同じ値である場合には、優先度判定回路13Eは、2ビットデータとプロセッサコア番号とをXORし、このXORされたデータの値の大きな順に高い優先度であると判定する。具体的には、XOR回路13Bにはプロセッサコア11−1に対応する「2’b00」が入力され、XOR回路13Cにはプロセッサコア11−2に対応する「2’b01」が入力され、XOR回路13Dにはプロセッサコア11−3に対応する「2’b10」が入力されている。また、XOR回路13B〜13Dにはそれぞれ、ランダム変数生成回路13Aからの2ビットデータが入力されている。優先度判定回路13Eは、XOR回路13B〜13Dの出力を用いて、優先度を判定する。
続いて、優先度判定回路13Eは、判定結果に基づいた選択信号をセレクタ13Fに送る。セレクタ13Fは、選択信号に基づいて、アクセス競合したアクセス要求のいずれか1つを選択する。このようにして、アービタ回路13は、優先度判定回路13Eが判定した優先度の順にアクセス競合の調停を行うことができる。アービタ回路13により調停されたアクセス要求は、2次キャッシュ14及び違反検出回路24−1〜24−3に送られる。
以上詳述したように本実施形態によれば、アクセス要求が競合した場合の調停結果をアービタ回路13がランダムに変更することができる。これにより、デバッグ回路を有効にした場合の実行サイクル数を実行回毎に変化させることができるため、特定のサイクルパターンに陥って問題が表面化しないという事態が発生する可能性を減らすことができる。この結果、製品出荷後に発生する可能性がある違反アクセスを、製品出荷前に検出することが可能となる。
(第5の実施形態)
プロセッサコアは、実際に使用するかどうかが確定していないデータを事前に取得するために、共有メモリのメモリ領域に対してプリフェッチを行ってアクセスすることも可能である。しかし、プリフェッチ動作により共有メモリから1次キャッシュにデータを取ってくると、このデータには実際に使用されないデータが含まれている可能性が高いため、この使用されないデータに起因する違反アクセスが増加してしまう。
そこで、第5の実施形態では、プリフェッチによるアクセスとプリフェッチではないアクセスとを区別して制御する。そして、共有メモリのメモリ領域に対するプリフェッチによる読み出しアクセスが違反アクセスとなる場合に、そのプリフェッチ処理をキャンセル(無効化)するようにしている。
図9は、本発明の第5の実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。このマルチプロセッサシステムは、第1の実施形態の構成に比べて、アクセス要求がプリフェッチであることを識別するプリフェッチ識別信号PFIが、アービタ回路13からフィードバックされるアクセス要求に追加される。また、違反アクセスがプリフェッチによるものである場合、この違反アクセスに対応するプロセッサコアの1次キャッシュに、違反処理回路16がプリフェッチ無効信号PFCを送るパスが追加される。
図10は、違反検出回路24の構成を示すブロック図である。違反検出回路24には、フィードバックパスを介して、アービタ回路13で調停されたアクセス要求(チップイネーブルCE、プロセッサコア番号PCN、リード/ライト識別信号、2次キャッシュ直接アクセス/1次キャッシュリフィルアクセス識別信号、アクセス先アドレス、1次キャッシュ書き込み識別信号CWI、及びプリフェッチ識別信号PFIが送られる。これらの信号は、レジスタ24Dに格納される。すなわち、プリフェッチ識別信号PFIは、レジスタ24Dに保持された後、違反処理回路16に送られる。その他の構成は、図3に示した構成と同じである。
図11は、違反処理回路16の構成を示すブロック図である。違反処理回路16は、プリフェッチ(PF)無効信号生成回路16Eを備えている。PF無効信号生成回路16Eは、プリフェッチ識別信号PFI、違反検出信号VD、及び違反を検出するきっかけとなるアクセスを行ったプロセッサコアのプロセッサコア番号APCNを受ける。
PF無効信号生成回路16Eは、違反処理回路16により検出された違反アクセスがプリフェッチによるものである場合、プロセッサコア番号APCNに対応するプロセッサコアの1次キャッシュ21に対するプリフェッチ無効信号PFCをアサートする。プリフェッチ無効信号PFCがアサートされたプロセッサコアでは、その時点で行っているプリフェッチ処理を無効化する。
なお、アービタ回路13から違反検出回路24にフィードバックされるアクセス要求の転送は、2次キャッシュ14からのデータ読み出しよりも高速に行われる。また、PF無効信号生成回路16Eは、2次キャッシュ14からのプリフェッチによる読み出しデータが1次キャッシュ21に到着する前に、プリフェッチ処理を無効化する準備を完了する。
以上詳述したように本実施形態によれば、実際に使用するかどうかが確定していないデータを共有メモリからプリフェッチし、このプリフェッチに起因するアクセスに違反が検出された場合に、このプリフェッチ処理を無効化することができる。これにより、違反アクセスの誤検出を避けることができる。また、実際に使用するかどうかが確定していないデータに起因して発生した違反アクセスに対してデバッグを行う必要がない。
なお、共有メモリからプリフェッチする予定であったデータは、1次キャッシュ14に格納されないことになる。しかし、このデータを実際に使用する際にプリフェッチ以外の通常のアクセス要求により再度読み出せば問題はない。
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
本発明の第1の実施形態に係るマルチプロセッサシステムの構成を示すブロック図。 図1に示した1次キャッシュ21の構成を示すブロック図。 図2に示した違反検出回路24の構成を示すブロック図。 図1に示した違反処理回路16の構成を示すブロック図。 本発明の第2の実施形態に係るマルチプロセッサシステムの構成を示すブロック図。 図5に示した違反処理回路16の構成を示すブロック図。 本発明の第3の実施形態に係る違反処理回路16の構成を示すブロック図。 本発明の第4の実施形態に係るアービタ回路13の構成を示すブロック図。 本発明の第5の実施形態に係るマルチプロセッサシステムの構成を示すブロック図。 図9に示した違反検出回路24の構成を示すブロック図。 図9に示した違反処理回路16の構成を示すブロック図。
符号の説明
11…プロセッサコア、12…バス、13…アービタ回路、13A…ランダム変数生成回路、13B〜13D…排他的論理和(XOR)回路、13E…優先度判定回路、13F…セレクタ、14…2次キャッシュメモリ、15…主記憶装置、16…違反処理回路、16A…違反情報レジスタ、16B…割り込み回路、16C…割り込み設定レジスタ、16D…セレクタ、16E…プリフェッチ(PF)無効信号生成回路、21…1次キャッシュメモリ、22…タグ格納部、23…データ格納部、24…違反検出回路、24A…判定回路、24B…比較回路、24C…AND回路、24D…レジスタ、25…データキャッシュ制御回路、26…ダーティービット遷移検出回路、26A,26B…AND回路、27…デバッグ切替回路、27A…レジスタ。

Claims (5)

  1. デバッグの対象となる複数のプロセッサコアと、
    前記複数のプロセッサコアに対応して設けられ、かつデータを格納する単位であるキャッシュラインが有効か否かを示す有効情報と、キャッシュラインのデータが書き換えられたか否かを示す更新情報と、キャッシュラインのデータのアドレス情報とを格納するタグ格納部を含む複数のキャッシュメモリと、
    前記複数のプロセッサコアに共有される共有メモリと、
    前記複数のプロセッサコアから前記共有メモリへのアクセス要求を調停し、かつ調停されたアクセス要求を前記共有メモリ及び前記複数のキャッシュメモリに送るアービタ回路と、
    を具備し、
    前記アクセス要求は、キャッシュラインのデータが書き換えられた旨を示す識別信号を含み、
    前記複数のキャッシュメモリはそれぞれ、前記タグ格納部の情報と、前記アービタ回路からのアクセス要求とを比較して、違反アクセスを検出する違反検出回路を含むことを特徴とするマルチプロセッサシステム。
  2. 前記キャッシュメモリは、キャッシュラインにデータが書き込まれる前後の更新情報の遷移を検出して前記識別信号を生成する遷移検出回路をさらに具備することを特徴とする請求項1に記載のマルチプロセッサシステム。
  3. デバッグの有効/無効を切り替える切替回路をさらに具備し、
    前記キャッシュメモリは、デバッグの有効時に前記違反アクセスの検出を行うことを特徴とする請求項2に記載のマルチプロセッサシステム。
  4. 違反アクセスが検出された場合に、前記プロセッサコアに対して割り込みを行う割り込み回路をさらに具備することを特徴とする請求項1乃至3のいずれかに記載のマルチプロセッサシステム。
  5. 前記アービタ回路は、アクセス競合に対して割り当てられるプロセッサコアの優先順位をランダムに変化させることを特徴とする請求項1乃至4のいずれかに記載のマルチプロセッサシステム。
JP2007087188A 2007-03-20 2007-03-29 マルチプロセッサシステム Expired - Fee Related JP5100176B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007087188A JP5100176B2 (ja) 2007-03-29 2007-03-29 マルチプロセッサシステム
US12/053,862 US8380933B2 (en) 2007-03-20 2008-03-24 Multiprocessor system including processor cores and a shared memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007087188A JP5100176B2 (ja) 2007-03-29 2007-03-29 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2008250373A true JP2008250373A (ja) 2008-10-16
JP5100176B2 JP5100176B2 (ja) 2012-12-19

Family

ID=39796302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007087188A Expired - Fee Related JP5100176B2 (ja) 2007-03-20 2007-03-29 マルチプロセッサシステム

Country Status (2)

Country Link
US (1) US8380933B2 (ja)
JP (1) JP5100176B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7608847B2 (en) * 2005-12-16 2009-10-27 Rees Chet R System and method for implementing a suspended personal radiation protection system
WO2011064620A1 (en) * 2009-11-26 2011-06-03 Freescale Semiconductor, Inc. Integrated circuit and method for reducing violations of a timing constraint
US8458532B2 (en) * 2010-10-27 2013-06-04 Arm Limited Error handling mechanism for a tag memory within coherency control circuitry
US9128842B2 (en) * 2012-09-28 2015-09-08 Intel Corporation Apparatus and method for reducing the flushing time of a cache
US9274971B2 (en) * 2012-11-27 2016-03-01 International Business Machines Corporation Low latency data exchange
US10474576B2 (en) * 2015-11-10 2019-11-12 International Business Machines Corporation Prefetch protocol for transactional memory
US10936713B2 (en) 2015-12-17 2021-03-02 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
US10235176B2 (en) * 2015-12-17 2019-03-19 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
WO2018231408A1 (en) * 2017-06-15 2018-12-20 Rambus Inc. Hybrid memory module
JP2019053617A (ja) * 2017-09-15 2019-04-04 株式会社東芝 システムlsiおよびシステムlsiの故障検出方法
TW201935306A (zh) 2018-02-02 2019-09-01 美商多佛微系統公司 用於安全初始化的策略連結及/或載入之系統和方法
SG11202007272QA (en) 2018-02-02 2020-08-28 Charles Stark Draper Laboratory Inc Systems and methods for policy execution processing
WO2019213061A1 (en) 2018-04-30 2019-11-07 Dover Microsystems, Inc. Systems and methods for checking safety properties
GB2574270B (en) * 2018-06-01 2020-09-09 Advanced Risc Mach Ltd Speculation-restricted memory region type
WO2020097177A1 (en) 2018-11-06 2020-05-14 Dover Microsystems, Inc. Systems and methods for stalling host processor
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
US12079197B2 (en) 2019-10-18 2024-09-03 Dover Microsystems, Inc. Systems and methods for updating metadata

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02275551A (ja) * 1989-04-18 1990-11-09 Oki Electric Ind Co Ltd キャッシュメモリのデバッグ装置
JPH07281956A (ja) * 1994-02-24 1995-10-27 Hewlett Packard Co <Hp> 順序付け改良型コヒーレンシ技法
JPH10307748A (ja) * 1997-04-14 1998-11-17 Internatl Business Mach Corp <Ibm> 共用資源へのアクセスを制御するための方法及びシステム
WO2004107180A1 (ja) * 2003-05-30 2004-12-09 Fujitsu Limited マルチプロセッサシステム
WO2006043227A1 (en) * 2004-10-19 2006-04-27 Koninklijke Philips Electronics N.V. Data processing system and method for monitoring the cache coherence of processing units
JP2006293824A (ja) * 2005-04-13 2006-10-26 Matsushita Electric Ind Co Ltd 半導体装置
JP2006323432A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd 主記憶共有型マルチプロセッサシステムの高性能化技術

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
JPH09185547A (ja) 1995-12-28 1997-07-15 Toshiba Corp マルチプロセッサの制御方法及びその装置
JPH09223118A (ja) 1996-02-14 1997-08-26 Oki Electric Ind Co Ltd スヌープキャッシュメモリ制御システム
US7000220B1 (en) * 2001-02-15 2006-02-14 Booth Thomas W Networked software development environment allowing simultaneous clients with combined run mode and design mode
JP2006213432A (ja) 2005-02-02 2006-08-17 Athlete Fa Kk テープ送り方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02275551A (ja) * 1989-04-18 1990-11-09 Oki Electric Ind Co Ltd キャッシュメモリのデバッグ装置
JPH07281956A (ja) * 1994-02-24 1995-10-27 Hewlett Packard Co <Hp> 順序付け改良型コヒーレンシ技法
JPH10307748A (ja) * 1997-04-14 1998-11-17 Internatl Business Mach Corp <Ibm> 共用資源へのアクセスを制御するための方法及びシステム
WO2004107180A1 (ja) * 2003-05-30 2004-12-09 Fujitsu Limited マルチプロセッサシステム
WO2006043227A1 (en) * 2004-10-19 2006-04-27 Koninklijke Philips Electronics N.V. Data processing system and method for monitoring the cache coherence of processing units
JP2006293824A (ja) * 2005-04-13 2006-10-26 Matsushita Electric Ind Co Ltd 半導体装置
JP2006323432A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd 主記憶共有型マルチプロセッサシステムの高性能化技術

Also Published As

Publication number Publication date
US20080244192A1 (en) 2008-10-02
JP5100176B2 (ja) 2012-12-19
US8380933B2 (en) 2013-02-19

Similar Documents

Publication Publication Date Title
JP5100176B2 (ja) マルチプロセッサシステム
US9864681B2 (en) Dynamic multithreaded cache allocation
US9129071B2 (en) Coherence controller slot architecture allowing zero latency write commit
US9575901B2 (en) Programmable address-based write-through cache control
US9218286B2 (en) System cache with partial write valid states
TWI651620B (zh) 用於處理多個交易之資料處理系統及方法
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
US8108619B2 (en) Cache management for partial cache line operations
US20060179229A1 (en) L2 cache controller with slice directory and unified cache structure
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
US12001351B2 (en) Multiple-requestor memory access pipeline and arbiter
US20090138220A1 (en) Power-aware line intervention for a multiprocessor directory-based coherency protocol
US7308537B2 (en) Half-good mode for large L2 cache array topology with different latency domains
US7958309B2 (en) Dynamic selection of a memory access size
US9378148B2 (en) Adaptive hierarchical cache policy in a microprocessor
JP2006085292A (ja) 演算処理装置
WO2014052383A1 (en) System cache with data pending state
JP5499987B2 (ja) 共有キャッシュメモリ装置
US20100131718A1 (en) Multiprocessor system
JP2014186579A (ja) キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法
JP4024247B2 (ja) 半導体データプロセッサ
JP2008176731A (ja) マルチプロセッサシステム
WO2001088719A2 (en) Speed cache having separate arbitration for second-level tag and data cache rams

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120330

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

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

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

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees