JP2006072509A - 情報処理装置及びローカルスヌープ制御方法 - Google Patents

情報処理装置及びローカルスヌープ制御方法 Download PDF

Info

Publication number
JP2006072509A
JP2006072509A JP2004252814A JP2004252814A JP2006072509A JP 2006072509 A JP2006072509 A JP 2006072509A JP 2004252814 A JP2004252814 A JP 2004252814A JP 2004252814 A JP2004252814 A JP 2004252814A JP 2006072509 A JP2006072509 A JP 2006072509A
Authority
JP
Japan
Prior art keywords
memory access
access request
unit
target data
control unit
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
JP2004252814A
Other languages
English (en)
Other versions
JP4695367B2 (ja
Inventor
Takeshi Sugizaki
剛 杉崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004252814A priority Critical patent/JP4695367B2/ja
Priority to US11/022,986 priority patent/US7673104B2/en
Priority to EP05250188A priority patent/EP1630678B1/en
Publication of JP2006072509A publication Critical patent/JP2006072509A/ja
Application granted granted Critical
Publication of JP4695367B2 publication Critical patent/JP4695367B2/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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

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

Abstract

【課題】 複数の記憶部とこれら複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえた情報処理装置において、メモリアクセス要求にかかる処理時間を短縮できるようにする。
【解決手段】 複数のシステムコントローラ50−1,50−2のそれぞれに、メモリアクセス要求を受け取った場合に、ブロードキャスト送受信部53−1,53−2による検索指示の送受信もしくはグローバルスヌープ制御部54−1,54−2による処理に並行して、当該システムコントローラが担当する記憶部からメモリアクセス要求の対象データを検索するローカルスヌープ制御部55−1,55−2と、このローカルスヌープ制御部55−1,55−2よって対象データが検索され且つ所定の条件を満たす場合にメモリアクセス要求を実行させるメモリアクセス制御部56−1,56−2とをそなえる。
【選択図】 図1

Description

本発明は、少なくとも、複数の記憶部と、これら複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえた大規模な情報処理装置において、前記複数の記憶部に対するメモリアクセス要求を実行するための技術に関する。
一般に、複数のCPU(Central Processing Unit)及びI/O(Input/Output)装置(入出力装置)等を装備した大規模な情報処理装置では、これらCPU及びI/O装置等から発生されるメモリアクセス要求とCPU内に実装された記憶部(例えば、キャッシュメモリ)との間の通信を制御する、例えばLSI(Large Scale Integration)で構成されたシステムコントローラが複数そなえられている。
図6は従来の大規模な情報処理装置100の構成を示すブロック図である。この図6に示すように、従来の大規模な情報処理装置100は、システムボードA,Bをそなえ、システムボードAにCPU10,11及びI/O装置20,21が装備され、システムボードBにCPU12,13及びI/O装置22,23が装備されている。
なお、各CPU10〜13は、複数階層(ここでは2階層)のキャッシュメモリを実装しており、CPU10は1次キャッシュメモリ10a及び2次キャッシュメモリ10bをそなえ、CPU11は1次キャッシュメモリ11a及び2次キャッシュメモリ11bをそなえ、CPU12は1次キャッシュメモリ12a及び2次キャッシュメモリ12bをそなえ、CPU13は1次キャッシュメモリ13a及び2次キャッシュメモリ13bをそなえている。
また、システムボードAにはメインメモリ30,31が装備され、システムボードBにはメインメモリ32,33が装備されている。
さらに、システムボードAには、システムボードAに装備された記憶部(ここでは、1次キャッシュメモリ10a,11a、2次キャッシュメモリ10b,11b、及びメインメモリ30,31)に対する通信制御を行なうシステムコントローラ40−1がそなえられている。
一方、システムボードBには、システムボードBに装備された記憶部(ここでは、1次キャッシュメモリ12a,13a、2次キャッシュメモリ12b,13b、及びメインメモリ32,33)との通信制御を行なうシステムコントローラ40−2がそなえられている。
このように、システムコントローラ40−1,40−2は、情報処理装置100にそなえられた複数の記憶部に対する通信制御を分担しており、システムコントローラ40−1とシステムコントローラ40−2とは通信制御を行なう対象の記憶部が異なるだけで、その構成は同様となっている。なお、これらシステムコントローラ40−1とシステムコントローラ40−2とは互いに通信可能に接続されている。
システムコントローラ40−1は、メモリアクセス要求受信部41−1、検索部42−1、ブロードキャスト送受信部43−1、グローバルスヌープ制御部44−1、及びメモリアクセス制御部45−1をそなえて構成されている。
メモリアクセス要求受信部41−1は、CPU10,11もしくはI/O装置20,21のいずれかから発行されたメモリアクセス要求を受信するものである。
検索部42−1は、メモリアクセス要求が発生された場合に、当該メモリアクセス要求のアクセス対象データ(以下、単に対象データという)をシステムコントローラ40−1が担当する記憶部、ここでは、1次キャッシュメモリ10a,11a、2次キャッシュメモリ10b,11b、及びメインメモリ30,31から検索するものである。
ブロードキャスト送受信部43−1は、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを、情報処理装置100にそなえられたすべての記憶部から検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示(検索要求)を他のシステムコントローラ40−2との間で送受信するものである。つまり、ブロードキャスト送受信部43−1は、メモリアクセス要求受信部41−1がメモリアクセス要求を受け取った場合には、他のシステムコントローラ40−2に対してかかる検索指示を放送出力(ブロードキャスト)する一方、他のシステムコントローラ40−2から検索指示がブロードキャストされた場合には、かかる検索指示を受信する。
グローバルスヌープ制御部44−1は、ブロードキャスト送受信部43−1により送受信された検索指示に応じて、検索部42−1に担当する記憶部(ここでは、1次キャッシュメモリ10a,11a、2次キャッシュメモリ10b,11b、及びメインメモリ30,31)からメモリアクセス要求の対象データを検索させ、検索の結果を他のシステムコントローラ40−2との間で通信し合うことにより、他のシステムコントローラ40−2における検索結果と自身の検索結果とに基づいてメモリアクセス要求に対する動作を確定するものである。
メモリアクセス制御部45−1は、グローバルスヌープ制御部44−1により確定されたメモリアクセス要求に対する動作に基づいて、メモリアクセス要求を実行するものである。
なお、システムコントローラ40−2にそなえられたメモリアクセス要求受信部41−2、検索部42−2、ブロードキャスト送受信部43−2、グローバルスヌープ制御部44−2、及びメモリアクセス制御部45−2は、通信制御の対象が1次キャッシュメモリ12a,13a、2次キャッシュメモリ12b,13b、及びメインメモリ32,33である点を除いては、システムコントローラ40−1のメモリアクセス要求受信部41−1、検索部42−1、ブロードキャスト送受信部43−1、グローバルスヌープ制御部44−1、及びメモリアクセス制御部45−1のそれぞれと同様のものである。
図7は従来の大規模な情報処理装置100の動作を説明するためのタイムチャートである。この図7に示すように、CPU10からメモリアクセス要求(ここではデータフェッチ要求;以下、フェッチ要求という)が発生し(t1参照)、CPU10から発行されたフェッチ要求をシステムコントローラ40−1のメモリアクセス要求受信部41−1が受け取ると(t2参照)、ブロードキャスト送受信部43−1がかかるフェッチ要求の対象データを全ての記憶部から検索すべく、かかるフェッチ要求の対象データの検索指示を他のシステムコントローラ40−2にブロードキャストする(t3参照)。
そして、ブロードキャスト送受信部43−1による検索指示のブロードキャストが完了すると、グローバルスヌープ制御部44−1,44−2が、送受信された検索指示に基づいて検索部42−1,42−2による検索(スヌープ)を同期して実行させる(t4参照)。
次いで、検索部42−1,42−2による検索が完了すると、グローバルスヌープ制御部44−1,44−2は、互いに同期してかかる検索の結果を通信し合う(t5参照)とともに、かかる検索の結果に応じて、フェッチ要求に対する最終的な動作を判定して確定する(t6参照)。
ここで、検索部42−1によりフェッチ要求の対象データがCPU11の1次キャッシュメモリ11aもしくは2次キャッシュメモリ11b(ここでは1次キャッシュメモリ11aとする)から検索され、グローバルスヌープ制御部44−1,44−2が、かかるフェッチ要求に対して1次キャッシュメモリ11aから対象データを読み出すことが確定した場合には、メモリアクセス制御部45−1がCPU11の1次キャッシュメモリ11aに対して、フェッチ要求の対象データに対する読み出し(リード)要求を発行し(t7参照)、1次キャッシュメモリ11aからシステムコントローラ40−1へフェッチ要求の対象データが読み出された後(t8,t9参照)、メモリアクセス制御部45−1が1次キャッシュメモリ11aから読み出した対象データをフェッチデータ応答としてCPU10に対して送信することにより、かかるフェッチ要求の実行が完了する(t10,t11参照)。
このように、従来の大規模な情報処理装置100では、発行されたメモリアクセス要求に対して複数のシステムコントローラ40−1,40−2間で通信を行なって、かかるメモリアクセス要求に対する処理を判定して実行するが、このときシステムコントローラ40−1,40−2間で行なわれるブロードキャスト処理(図7のt3参照)及び検索結果の通信処理(図7のt5参照)に時間がかかるため、従来の大規模な情報処理装置100では、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでに多くの時間を要してしまう。
つまり、従来の大規模な情報処理装置100では、メモリアクセス要求に対する処理全体にかかる時間のうち、メモリアクセス要求の対象データの検索のためのブロードキャスト処理や検索結果の通信処理にかかる時間が大きな割合を占める。
そこで、メモリアクセス要求に対する処理にかかる時間を短縮するために、従来から、情報処理装置100において、グローバルスヌープ制御部44−1を、検索部42−1による検索の結果のみからメモリアクセス要求に対する動作を確定しうる場合には、複数のグローバルスヌープ制御部44−1,44−2間での検索結果の通信を行なうことなく、当該メモリアクセス要求に対する動作を確定して実行するように構成している。
図8は従来の大規模な情報処理装置100におけるメモリアクセス要求に対する処理おいて複数のシステムコントローラ40−1,40−2間で検索結果の通信処理を行なわない場合のタイムチャートである。
つまり、この図8に示すように、システムコントローラ40−1のメモリアクセス要求受信部41−1がメモリアクセス要求を受信した場合に(t1,t2参照)、ブロードキャスト送受信部43−1により検索指示の送受信を行なった後(t3参照)、検索部42−1により当該メモリアクセス要求の対象データを検索(スヌープ)した(t4参照)結果、検索部42−1が担当する記憶部から対象データを検索し、且つ当該メモリアクセス要求の種類及び対象データの登録状態等が所定の条件を満たす場合には、グローバルスヌープ制御部44−1が、他のグローバルスヌープ制御部44−2との間で検索結果を通信し合うことなく、当該メモリアクセス要求に対する動作を確定して実行させる(t7〜t11参照)ようになっている。
ここで、グローバルスヌープ制御部44−1が検索部42−1の検索結果のみに基づいてメモリアクセス要求に対する動作を確定しうる場合(前記所定の条件)について説明すると、従来の情報処理装置100では、グローバルスヌープ制御部44−1が検索部42−1の検索結果のみに基づいてメモリアクセス要求に対する動作を確定しうる場合は下記の(1)〜(3)の場合がある。
(1)図8に示す例のように、発行されたメモリアクセス要求がフェッチ要求であり、このフェッチ要求が情報処理装置100の複数の記憶部のいずれかから対象データを単にフェッチするだけの共有型のフェッチ要求であり、且つ検索部42−1により担当する記憶部から対象データが検索された場合。
(2)メモリアクセス要求としてのフェッチ要求が、複数の記憶部(ここでは1次キャッシュメモリ10a〜13a,2次キャッシュメモリ10b〜13b,及びメインメモリ30〜33)のうち一の記憶部にのみ対象データが保持されるようにする排他型のフェッチ命令であり、さらに検索部42−1により担当する記憶部から対象データが検索され、且つ検索された対象データが、他の記憶部には保持されず一の記憶部にしか保持されない排他型のデータであった場合。
(3)発行されたメモリアクセス要求がストア要求であり、検索部42−1により担当する記憶部から対象データが検索され、且つ検索された対象データが排他型のデータであった場合。
このように、従来の大規模な情報処理装置100では、上記(1)〜(3)の場合にのみ、グローバルスヌープ制御部44−1,44−2間の検索結果の通信処理を省くことができる。
なお、データを記憶部に排他型で保持する技術について、複数階層のキャッシュメモリをそなえたCPUにおいて、データを一のキャッシュメモリにのみ保持されるように登録する技術がある(下記特許文献1,2参照)。
また、複数階層のキャッシュメモリにおいて、データを共有して保持する場合に、各キャッシュメモリで共有されるデータの一貫性(一致)を保つための技術も提案されている(下記特許文献3,4参照)。
特開平6−250926号公報 特開平11−259361号公報 特開平5−2534号公報 特開平6−187239号公報
ところで、上述した従来の大規模な情報処理装置100において、システムコントローラ40−1,40−2間で行なわれる通信処理のうち、ブロードキャスト送受信部43−1,43−2間で行なわれる検索指示の送受信にかかる時間(図7のt3参照)と、グローバルスヌープ制御部44−1,44−2間の検索結果の通信処理にかかる時間(図7のt5参照)とは同程度である。
しかしながら、従来の大規模な情報処理装置100では、上記(1)〜(3)の場合には、グローバルスヌープ制御部44−1,44−2間の検索結果の通信処理を省略することができるが、ブロードキャスト送受信部43−1,43−2間で行なわれる検索指示の送受信処理については、いずれの場合にも省略することができないため、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでには依然として多くの時間が必要になってしまう。
また、上記図6に示す例では、情報処理装置100がシステムコントローラを2つ(システムコントローラ40−1,40−2)そなえた場合を例にあげて説明したが、情報処理装置100が、システムコントローラを2以上そなえる、さらに大規模な構成になると、システムコントローラを複数の筐体を跨いで実装したり、あるいはシステムコントローラ間の通信制御用のLSIを新たにそなえる必要がある。このような場合には、システムコントローラ間の通信処理にかかる時間がさらに増大してしまい、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでにさらに多くの時間が必要になってしまう。
本発明は、このような課題に鑑み創案されたもので、複数の記憶部とこれら複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえた情報処理装置において、複数の記憶部に対するメモリアクセス要求にかかる処理時間を短縮できるようにすることを目的とする。
上記目的を達成するために、本発明の情報処理装置は、複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信するブロードキャスト送受信部と、このブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ制御部と、前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、このローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴としている(請求項1)。
また、前記複数のシステムコントローラのそれぞれが、前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第1キャンセル部をそなえて構成されていることが好ましい(請求項2)。
さらに、前記複数のシステムコントローラのそれぞれが、前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第2キャンセル部をそなえて構成されていることが好ましい(請求項3)。
なお、前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることが好ましい(請求項4)。
また、上記目的を達成するために、本発明のローカルスヌープ制御方法は、複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信し、送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索して、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ処理を行なうように構成された情報処理装置における、ローカルスヌープ制御方法であって、前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記検索指示の送受信もしくは前記グローバルスヌープ処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープステップと、このローカルスヌープステップにおいて当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行するメモリアクセス要求実行ステップとを含んでいることを特徴としている(請求項5)。
このように、本発明によれば、ローカルスヌープ制御部が、ブロードキャスト送受信部による検索指示の送受信及びグローバルスヌープ制御部による処理に並行して、担当する記憶部からメモリアクセス要求の対象データを検索し(ローカルスヌープステップ)、かかる検索の結果、メモリアクセス要求の対象データが担当する記憶部から検索され、且つ所定の条件を満たす場合には、メモリアクセス制御部によりメモリアクセス要求が実行される(メモリアクセス要求実行ステップ)ため、この場合には、ブロードキャスト送受信部及びグローバルスヌープ制御部による処理に関わらず、メモリアクセス要求を実行することができ、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでの時間を大幅に短縮することができる(請求項1,5)。
また、メモリアクセス制御部によりメモリアクセス要求が実行される場合には、第1キャンセル部によりブロードキャスト送受信部による検索指示の送受信をキャンセルするため、かかる場合に不要になる処理を実行することを抑止できるとともに、ブロードキャスト送受信部による検索指示の送受信をキャンセルすることによって、システムコントローラ間の通信負荷を低減することができる(請求項2)。
さらに、メモリアクセス制御部によりメモリアクセス要求が実行される場合には、第2キャンセル部によりグローバルスヌープ制御部による処理をキャンセルするため、かかる場合に不要になる処理を実行することを抑止できるとともに、グローバルスヌープ制御部による処理をキャンセルすることによって、システムコントローラ間の通信負荷を低減することができる(請求項3)。
また、共有記憶部をそなえることにより、共有記憶部にメモリアクセス要求の対象データが保持されている場合には、当該メモリアクセス要求の種類に関わらず、メモリアクセス制御部が当該メモリアクセス要求を実行することができ、ブロードキャスト送受信部もしくはグローバルスヌープ制御部による処理を行なうことなくメモリアクセス要求を高速に処理できる機会を増やすことができ、メモリアクセス要求が発生してから実行するまでの時間をより確実に短縮することができる(請求項4)。
以下、図面を参照しながら本発明の実施の形態について説明する。
〔1〕本発明の第1実施形態について
まず、本発明の第1実施形態としての情報処理装置及びローカルスヌープ制御方法について説明する。図1は本発明の第1実施形態としての情報処理装置1の構成を示すブロック図である。なお、図1において既述の符号と同一の符号は、同一の部分もしくは略同一の部分を示す。
この図1に示すように、本発明の第1実施形態としての情報処理装置1は、CPU(Central Processing Unit;演算器)10,11,12,13、I/O(Input/Output)装置(入出力装置)20,21,22,23、メインメモリ30,31,32,33、及びシステムコントローラ50−1,50−2をそなえて構成されている。
なお、CPU10〜13はそれぞれ複数階層(ここでは2階層)のキャッシュメモリをそなえて構成されており、CPU10は1次キャッシュメモリ10a及び2次キャッシュメモリ10bをそなえ、CPU11は1次キャッシュメモリ11a及び2次キャッシュメモリ11bをそなえ、CPU12は1次キャッシュメモリ12a及び2次キャッシュメモリ12bをそなえ、CPU13は1次キャッシュメモリ13a及び2次キャッシュメモリ13bをそなえて構成されている。
システムコントローラ50−1,50−2は、例えばバスを介して互いに通信可能に接続され、情報処理装置1にそなえられた複数の記憶部(ここでは、1次キャッシュメモリ10a〜13a、2次キャッシュメモリ10b〜13b、メインメモリ30〜33)及び複数のI/O装置20〜23に対する通信制御を分担するようになっている。
つまり、システムコントローラ50−1は、CPU10,11、I/O装置20,21、及びメインメモリ30,31に対する通信制御を担当し、システムコントローラ50−2は、CPU12,13、I/O装置22,23、及びメインメモリ32,33に対する通信制御を担当する。
さらに、システムコントローラ50−1は、メモリアクセス要求受信部51−1、検索部52−1、ブロードキャスト送受信部53−1、グローバルスヌープ制御部54−1、ローカルスヌープ制御部55−1、メモリアクセス制御部56−1、第1キャンセル部57−1、及び第2キャンセル部58−1をそなえて構成されている。
メモリアクセス要求受信部51−1は、自身(つまり、システムコントローラ50−1)が担当するCPU10,11及びI/O装置20,21のいずれかからメモリアクセス要求が発行された場合に、発行されたメモリアクセス要求を受信するものである。
検索部52−1は、メモリアクセス要求が発生した場合に、発生したメモリアクセス要求の対象データを担当する記憶部(ここでは、1次キャッシュメモリ10a,11a、2次キャッシュメモリ10b,11b、及びメインメモリ30,31)から検索するものであり、後述するグローバルスヌープ制御部54−1もしくは後述するローカルスヌープ制御部55−1により制御されて検索を実行する。
ブロードキャスト送受信部53−1は、メモリアクセス要求が発生した場合に、発生したメモリアクセス要求の対象データを情報処理装置1にそなえられたすべての記憶部(ここでは、1次キャッシュメモリ10a〜13a、2次キャッシュメモリ10b〜13b、及びメインメモリ30〜33)から検索すべく、メモリアクセス要求の対象データを検索させる検索指示(検索要求)を、情報処理装置1にそなえられたすべてのシステムコントローラ(ここではシステムコントローラ50−1,50−2)間で送受信するものである。
ブロードキャスト送受信部53−1は、担当するCPU10,11及びI/O装置20,21のいずれかからメモリアクセス要求が発行され、発行されたメモリアクセス要求をメモリアクセス要求受信部51−1が受け取った場合には、かかる検索指示を他のシステムコントローラ50−2の後述するブロードキャスト送受信部53−2へ送信(放送出力;ブロードキャスト)する一方、他のシステムコントローラ50−2の後述するメモリアクセス要求受信部51−2がメモリアクセス要求を受け取った場合には、後述するブロードキャスト送受信部53−2から送信された検索指示を受信する。
グローバルスヌープ制御部54−1は、ブロードキャスト送受信部53−1により送受信された検索指示に応じて、検索部52−1により自身が担当する記憶部からメモリアクセス要求の対象データを検索させ、かかる検索の結果をすべてのグローバルスヌープ制御部(ここでは、システムコントローラ50−2の後述するグローバルスヌープ制御部54−2)との間で通信し合うものである。
さらに、グローバルスヌープ制御部54−1は、すべてのシステムコントローラ50−1,50−2における検索結果に基づいて、メモリアクセス要求に対する動作を確定する。
また、グローバルスヌープ制御部54−1は、他のすべてのグローバルスヌープ制御部50−2と同期して、検索部52−1による検索を実行させるとともに、他のすべてのグローバルスヌープ制御部50−2と同期して、かかる検索結果を通信し合うように構成されている。
ローカルスヌープ制御部55−1は、担当するCPU10,11及びI/O装置20,21のいずれかからメモリアクセス要求が発行され、このメモリアクセス要求をメモリアクセス要求受信部51−1が受け取った場合に、ブロードキャスト送受信部53−1による検索指示の送受信もしくはグローバルスヌープ制御部54−1による処理に並行して(つまり、これらブロードキャスト送受信部53−1及びローカルスヌープ制御部54−1の処理状況に関わらず)、検索部52−1により担当する記憶部からメモリアクセス要求の対象データを検索させるものである。
また、ローカルスヌープ制御部55−1は、検索部52−1による検索の結果に基づいてメモリアクセス要求に対する動作が確定するか否かを判断する。つまり、ローカルスヌープ制御部55−1は、検索部52−1による検索の結果、担当する記憶部からメモリアクセス要求の対象データが検索され、且つメモリアクセス要求の種類及びかかる対象データの登録状態からなる所定の条件を満たす場合に、当該メモリアクセス要求に対する動作を確定して、後述するメモリアクセス制御部56−1によりメモリアクセス要求に対する処理を実行させる。
ここで、ローカルスヌープ制御部55−1によりメモリアクセス要求に対する動作が確定するのは(前記所定の条件は)、下記(a)〜(c)の場合である。
(a)メモリアクセス要求が、情報処理装置1にそなえられた複数の記憶部のいずれかから対象データを単にフェッチするだけの共有型のフェッチ要求であり、且つ検索部52−1により担当する記憶部から対象データが検索された場合。
(b)メモリアクセス要求が、情報処理装置1にそなえられた複数の記憶部のうち一の記憶部から対象データをフェッチするとともに、当該一の記憶部にのみ対象データが保持されるように他の記憶部に保持された対象データを削除する排他型のフェッチ命令であり、検索部52−1により担当する記憶部から対象データが検索され、且つ検索された対象データが、他の記憶部には保持されず一の記憶部にしか保持されない排他型のデータであった場合。
(c)メモリアクセス要求がストア要求であり、検索部52−1により担当する記憶部から対象データが検索され、且つ検索された対象データが排他型のデータであった場合。
なお、前記(b),(c)の場合のように、メモリアクセス要求が排他型のフェッチ要求もしくはストア要求であった場合には、対象データのコヒーレンシーを保証するために対象データをすべての記憶部から検索して対象データの削除もしくは更新を行なう必要があるが、前記(b),(c)に示す場合には、排他型のフェッチ要求もしくはストア要求の対象データが他の記憶部に対して排他的に保持されているため、他の記憶部における対象データの検索を省くことができるのである。
このように、本情報処理装置1では、前記(a)〜(c)の場合には、ローカルスヌープ制御部55−1によりメモリアクセス要求に対する動作を確定して、後述するメモリアクセス制御部56−1により確定された動作に基づいてメモリアクセス要求を実行させることができる。
なお、前記(a)〜(c)の場合以外の場合には、グローバルスヌープ制御部54−1は、他のシステムコントローラ50−2との間で検索結果を通信し合うことにより、情報処理装置1にそなえられたすべての記憶部に対する検索結果、メモリアクセス要求の種類及び検索された対象データの登録状態(つまり、排他型で登録されているか否か)に基づいて、当該メモリアクセス要求に対する動作を確定する。
メモリアクセス制御部56−1は、ローカルスヌープ制御部55−1が検索部52−1を制御することにより、検索部52−1が、担当する記憶部からメモリアクセス要求の対象データを検索した場合であって、且つメモリアクセス要求の種類及びかかる対象データが検索された記憶部の種類等からなる所定の条件[前記(a)〜(c)の場合]を満たす場合に、メモリアクセス要求を実行させるものである。
また、メモリアクセス制御部56−1は、グローバルスヌープ制御部54−1によりメモリアクセス要求に対する動作が確定された場合に、グローバルスヌープ制御部54−1に基づいてメモリアクセス要求を実行させる。
第1キャンセル部57−1は、ローカルスヌープ制御部55−1に制御されてブロードキャスト送受信部53−1による検索指示の送受信をキャンセルするものであり、ローカルスヌープ制御部55−1が検索部52−1にメモリアクセス要求の対象データを検索させ、担当する記憶部から対象データが検索された場合であって、且つ所定の条件を満たす場合に、ブロードキャスト送受信部53−1による検索指示の送受信をキャンセルする。
つまり、第1キャンセル部57−1は、ローカルスヌープ制御部55−1がメモリアクセス制御部56−1によりメモリアクセス要求を実行させる際に、ブロードキャスト送受信部53−1が検索指示の送受信を未実行の場合に、ブロードキャスト送受信部53−1による検索指示の送受信をキャンセルするものである。
なお、第1キャンセル部57−1は、他のシステムコントローラ50−2のブロードキャスト送受信部53−2に対してもキャンセルを実行する。
第2キャンセル部58−1は、ローカルスヌープ制御部55−1に制御されてグローバルスヌープ制御部による処理をキャンセルするものであり、ローカルスヌープ制御部55−1が検索部52−1にメモリアクセス要求の対象データを検索させ、担当する記憶部から対象データが検索された場合であって、且つ所定の条件を満たす場合[前記(a)〜(c)の場合]に、グローバルスヌープ制御部54−1による処理をキャンセルする。
つまり、第2キャンセル部58−1は、ローカルスヌープ制御部55−1がメモリアクセス制御部56−1によりメモリアクセス要求を実行させる際に、ブロードキャスト送受信部53−1が検索指示の送受信を実行している場合に、グローバルスヌープ制御部55−1よる処理をキャンセルするものである。
なお、第2キャンセル部58−1は、他のシステムコントローラ50−2のグローバルスヌープ制御部54−2による処理もキャンセルするようになっている。
一方、システムコントローラ50−2も、メモリアクセス要求受信部51−2、検索部52−2、ブロードキャスト送受信部53−2、グローバルスヌープ制御部54−2、ローカルスヌープ制御部55−2、メモリアクセス制御部56−2、第1キャンセル部57−2、及び第2キャンセル部58−2をそなえて構成されており、これらは、通信制御の対象が1次キャッシュメモリ12a,13a、2次キャッシュメモリ12b,13b、及びメインメモリ32,33である点を除いては、システムコントローラ50−1のメモリアクセス要求受信部51−1、検索部52−1、ブロードキャスト送受信部53−1、グローバルスヌープ制御部54−1、ローカルスヌープ制御部55−1、メモリアクセス制御部56−1、第1キャンセル部57−1、及び第2キャンセル部58−1のそれぞれと同様のものである。
次に、図2に示すフローチャート(ステップS10〜S24)を参照しながら、CPU10からメモリアクセス要求が発生された場合のローカルスヌープ制御方法の手順(情報処理装置1の動作)について説明する。
図2に示すように、本情報処理装置1では、例えば、CPU10からメモリアクセス要求が発生すると、このメモリアクセス要求をシステムコントローラ50−1のメモリアクセス要求受信部51−1が受信する(ステップS10)。
そして、本情報処理装置1では、メモリアクセス要求受信部51−1がメモリアクセス要求を受信すると、ブロードキャスト送受信部53−1による検索指示の送受信処理及びグローバルスヌープ制御部54−1による処理に並行して、ローカルスヌープ制御部55−1が、検索部52−1により自身(つまり、システムコントローラ50−1)が担当する記憶部(ここでは、1次キャッシュメモリ10a,11a、2次キャッシュメモリ10b,11b、及びメインメモリ30,31)から対象データを検索させる(ステップS11;ローカルスヌープステップ)。
つまり、本情報処理装置1では、メモリアクセス要求を受信する(ステップS10)と、ローカルスヌープ制御部55−1による処理(ステップS11〜S17)を開始するとともに、これと同時にブロードキャスト送受信部53−1による処理(ステップS18〜S20)も開始する。
まず、ローカルスヌープ制御部55−1による処理(ステップS11〜S17)について説明すると、ローカルスヌープ制御部55−1は、検索部52−1により担当する記憶部から対象データを検索させ(ステップS11)、検索部52−1による検索(ローカルスヌープ)の結果に基づいて、メモリアクセス要求に対する動作が確定するか否かを判断する(ステップS12)。
ここで、ローカルスヌープ制御部55−1は、検索部52−1による検索の結果に基づいてメモリアクセス要求に対する動作を確定できないと判断した場合には(ステップS12のNoルート)、処理を終了する(ステップS13)。
一方、ローカルスヌープ制御部55−1は、検索部52−1による検索の結果に基づいてメモリアクセス要求に対する動作を確定できると判断した場合[つまり、前記(a)〜(c)の場合]には(ステップS12のYesルート)、メモリアクセス制御部56−1によってメモリアクセス要求に対する処理を実行させる(ステップS14;メモリアクセス要求実行ステップ)とともに、ブロードキャスト送受信部53−1による検索指示の送受信処理(ここではブロードキャスト処理)をキャンセルすべく、第1キャンセル部57−1によりブロードキャスト送受信部53−1に対してキャンセルを実行させる(ステップS15;第1キャンセルステップ)。なお、このとき、第1キャンセル部57−1は他のシステムコントローラ50−2のブロードキャスト送受信部53−2に対してもキャンセルを実行するが、ブロードキャスト送受信部53−2に対するキャンセルは、第1キャンセル部57−1が直接行なってもよいし、第1キャンセル部57−2が行なうようにしてよい。
そして、ブロードキャスト送受信部53−1において、第1キャンセル部57−1による検索指示の送信(ブロードキャスト処理)のキャンセルが成功すると(ステップS16のYesルート)、ローカルスヌープ制御部55−1は処理を終了する。ここで、第1キャンセル部57−1によるキャンセルが成功するのは、ブロードキャスト送受信部53−1により送受信される検索指示が、先行する他の検索指示の実行待ちでキューイングされている場合等、当該検索指示のブロードキャスト送受信部53−1による送受信(ここではブロードキャスト処理)が未実行の場合である。
一方、ブロードキャスト送受信部53−1が当該検索指示の送受信を実行しているために、第1キャンセル部57−1によるキャンセルが成功しなければ(ステップS16のNoルート)、ローカルスヌープ制御部55−1は、第2キャンセル部58−1によりグローバルスヌープ制御部54−1に対してキャンセルを実行させ(ステップS17;第2キャンセルステップ)、処理を終了する。なお、このとき、第2キャンセル部58−1は他のシステムコントローラ50−2のグローバルスヌープ制御部54−2に対してもキャンセルを実行するが、グローバルスヌープ制御部54−2に対するキャンセルは、第2キャンセル部58−1が直接行なってもよいし、第2キャンセル部58−2が行なうようにしてもよい。
次に、メモリアクセス要求を受信(ステップS10)した後に、ローカルスヌープ制御部55−1による処理(ステップS11〜S17)と並行して行なわれるブロードキャスト送受信部53−1による処理(ステップS18〜S20)及びグローバルスヌープ制御部54−1による処理(ステップS21〜S24)について説明する。
ブロードキャスト送受信部53−1は、メモリアクセス要求受信部51−1がメモリアクセス要求を受け取ると(ステップS10)、まず、第1キャンセル部57−1から発行された検索指示の送受信に対するキャンセル(上記ステップS15参照)を受信しているか否かを判断する(ステップS18)。
ここで、ブロードキャスト送受信部53−1が第1キャンセル部57−1からのキャンセルを受信していれば(ステップS18のNoルート)、ブロードキャスト送受信部53−1は、メモリアクセス要求の対象データを検索させるための検索指示の送受信(ここではブロードキャスト)を中止して(ステップS19)、処理を終了する。
一方、ブロードキャスト送受信部53−1が第1キャンセル部57−1からのキャンセルを受信していなければ(ステップS18のYesルート)、ブロードキャスト送受信部53−1は、他のブロードキャスト送受信部53−2との間でメモリアクセス要求の対象データを担当する記憶部から検索させるための検索指示を送受信(ここではブロードキャスト)する(ステップS20)。
そして、ブロードキャスト送受信部53−1,53−2間での検索指示の送受信が完了すると、グローバルスヌープ制御部54−1による処理が行なわれるが、まず、グローバルスヌープ制御部54−1は、第2キャンセル部58−1から発行されたキャンセル(上記ステップS17参照)を受信しているか否かを判断する(ステップS21)。
ここで、グローバルスヌープ制御部54−1が第2キャンセル部58−1からのキャンセルを受信していれば(ステップS21のNoルート)、グローバルスヌープ制御部54−1は処理を中止して(ステップS22)終了する。
一方、グローバルスヌープ制御部54−1が第2キャンセル部58−1からのキャンセルを受信していなければ(ステップS21のYesルート)、グローバルスヌープ制御部54−1は、処理を実行する(ステップS23)。つまり、ブロードキャスト送受信部53−1により送受信された検索指示に基づいて、他のシステムコントローラにおける検索と同期して検索部52−1に担当する記憶部を検索させ、この検索の結果を、他のグローバルスヌープ制御部54−2と同期して通信し合う。
そして、グローバルスヌープ制御部54−1は、自身の検索結果と他のグローバルスヌープ制御部54−2から受信した検索結果とに基づいてメモリアクセス要求に対する処理を判定して確定する(ステップS24)が、ここでメモリアクセス要求に対する動作が確定しなければ(ステップS24のNoルート)、上記ステップS23にリターンして、再度検索処理等を実行する。
一方、メモリアクセス要求に対する動作が確定すれば(ステップS24のYesルート)、メモリアクセス制御部56−1により確定した処理を実行させる(ステップS14)。
ここで、ローカルスヌープ制御部55−1によりメモリアクセス要求に対する動作が確定し[前記(a)〜(c)の場合;ステップS12のYesルート参照]、第1キャンセル部57−1によるキャンセルが成功した場合(ステップS15及びステップS16のYesルート参照)、及び、第2キャンセル部58−1によるキャンセルが行なわれた場合(ステップS17参照)について、さらに詳細に説明する。
図3は本発明の第1実施形態としてのローカルスヌープ制御方法において第1キャンセル部57−1によるキャンセルが行なわれた場合[前記(a)もしくは(b)の場合]の手順を示すタイムチャートである。この図3に示すように、CPU10においてメモリアクセス要求(ここではフェッチ要求)が発生し(T1参照)、このフェッチ要求をシステムコントローラ50−1のメモリアクセス要求受信部51−1が受信すると(T2参照)、ローカルスヌープ制御部55−1が検索部52−1による検索(ローカルスヌープ)を実行する(T3参照)。
そして、検索部52−1によりフェッチ要求の対象データが検索され(ここでは、CPU11の1次キャッシュメモリ11aから検索されたとする)、さらに所定の条件を満たす場合[前記(a)もしくは(b)の場合]、ローカルスヌープ制御部55−1がフェッチ要求に対する動作を確定する(図2のステップS12のYesルート参照)。
ローカルスヌープ制御部55−1がフェッチ要求に対する処理を確定すると、当該フェッチ要求を実行すべく、メモリアクセス制御部56−1が、CPU11の1次キャッシュメモリ11aに対して、フェッチ要求の対象データに対する読み出し(リード)要求を発行し(T4参照)、1次キャッシュメモリ11aからシステムコントローラ50−1へフェッチ要求の対象データが読み出された後(T5,T6参照)、メモリアクセス制御部56−1が1次キャッシュメモリ11aから読み出した対象データをフェッチデータ応答としてCPU10に対して送信することにより、かかるフェッチ要求の実行が完了する(T7,T8参照)。
また、ローカルスヌープ制御部55−1がフェッチ要求に対する動作を確定すると、第1キャンセル部57−1によりブロードキャスト送受信部53−1の処理をキャンセルさせる(T9参照;図2のステップS13参照)。そして、ブロードキャスト送受信部53−1において、検索指示の送受信が未実行であり、ブロードキャスト送受信部53−1がキャンセルを受信すると(図2のステップS18のNoルート参照)、ブロードキャスト送受信部53−1は検索指示の送受信処理を中止する(図2のステップS19参照)。
図4は本発明の第1実施形態としてのローカルスヌープ制御方法において第2キャンセル部58−1によるキャンセルが行なわれた場合[前記(a)もしくは(b)の場合]の手順を示すタイムチャートである。なお、図4において既述の符号と同一の符号は同一の部分もしくは略同一の部分を示すため、ここではその詳細な説明を省略する。
この図4に示すように、CPU10から発行されたフェッチ要求に対してローカルスヌープ制御部55−1が動作を確定して実行する(T1〜T8参照)。そして、ローカルスヌープ制御部55−1は、第1キャンセル部56−1によりブロードキャスト送受信部53−1に対してキャンセルを実行させる(T9参照)が、ブロードキャスト送受信部53−1により検索指示の送受信が既に実行されていて第1キャンセル部56−1によるキャンセルが成功しないときには(図2のステップS16のNoルート及びステップS18のYesルート参照)、ローカルスヌープ制御部55−1は、ブロードキャスト送受信部53−1による検索指示の送受信(ブロードキャスト)処理が完了したら、第2キャンセル部58−1によりグローバルスヌープ制御部54−1による処理をキャンセルさせる(T10参照;図2のステップS17参照)。
そして、グローバルスヌープ制御部54−1が第2キャンセル部58−1からのキャンセルを受信すると(図2のステップS21のNoルート参照)、グローバルスヌープ制御部54−1はその処理を中止する(図2のステップS22参照)。
以上、本発明の第1実施形態としてのローカルスヌープ制御方法(情報処理装置1の動作)について、図2〜図4を参照しながらCPU10からメモリアクセス要求が発行された場合を例に挙げて、システムコントローラ50−1における動作を中心に説明したが、システムコントローラ50−2が担当するCPU12,13もしくはI/O装置22,23からメモリアクセス要求が発行された場合のシステムコントローラ50−2における動作も、図2〜図4を参照しながら上述したシステムコントローラ50−1の動作と同様である。
このように、本発明の第1実施形態としての情報処理装置1及びローカルスヌープ制御方法によれば、システムコントローラ50−1,50−2が、通信制御を担当するCPU10〜13もしくはI/O装置20〜23のいずれかから発行されたメモリアクセス要求を、自身にそなえられたメモリアクセス要求受信部51−1,51−2が受け取った場合には、ブロードキャスト送受信部53−1,53−2による検索指示の送受信処理及びグローバルスヌープ制御部54−1,54−2による処理に並行して、ローカルスヌープ制御部55−1,55−2が担当する記憶部からメモリアクセス要求の対象データを検索し(ローカルスヌープステップを行ない)、かかる検索の結果、メモリアクセス要求の対象データが担当する記憶部から検索され、且つ所定の条件を満たす場合[前記(a)〜(c)の場合]には、メモリアクセス要求に対する動作を確定してメモリアクセス制御部56−1,56−2によりメモリアクセス要求を実行させるため、メモリアクセス要求を高速に実行させることができる。
つまり、ローカルスヌープ制御部55−1,55−2によるローカルスヌープ処理の結果、ローカルスヌープ制御部55−1,55−2がメモリアクセス要求に対する処理を確定できる場合には、ブロードキャスト送受信部53−1,53−2及びグローバルスヌープ制御部54−1,54−2による処理に関わらず、メモリアクセス制御部56−1,56−2がメモリアクセス要求を実行するため、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでの時間を大幅に短縮することができる。
さらに、ローカルスヌープ制御部55−1,55−2によりメモリアクセス要求に対する動作を確定した場合には、第1キャンセル部57−1,57−2によりブロードキャスト送受信部53−1,53−2による検索指示の送受信処理をキャンセルするか、もしくは第2キャンセル部58−1,58−2によりグローバルスヌープ制御部54−1,54−2による処理をキャンセルするため、ローカルスヌープ制御部55−1,55−2によりメモリアクセス要求を実行させることによって不要になる処理を実行することを抑止できるとともに、これらブロードキャスト送受信部53−1,53−2及びグローバルスヌープ制御部54−1,54−2による処理を実行することにより生じる、システムコントローラ50−1,50−2間のバスの使用率の増大を抑止して、システムコントローラ50−1,50−2間のバスの使用率を低減してバスの効率的な使用を実現することもできる。
〔2〕本発明の第2実施形態について
次に、本発明の第2実施形態としての情報処理装置及びローカルスヌープ制御方法について説明する。
図5は本発明の第2実施形態としての情報処理装置1′の構成を示すブロック図である。なお、図5において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示しているため、ここではその詳細な説明を省略する。
この図5に示すように、本発明の第2実施形態としての情報処理装置1′は、各システムコントローラ50−1,50−2が、共有キャッシュメモリ(共有記憶部)59−1,59−2をそなえて構成されている点を除いては、図1を参照しながら上述した第1実施形態の情報処理装置1と同様に構成されている。
共有キャッシュメモリ59−1は、情報処理装置1′にそなえられた他の記憶部(ここでは、1次キャッシュメモリ10a〜13a、2次キャッシュメモリ10b〜13b、メインメモリ30〜33、及び後述する共有キャッシュメモリ59−2)に対して、排他的にデータを保持するものである。つまり、共有キャッシュメモリ59−1に保持されるデータは、他の記憶部には保持されないようになっている。
また、共有キャッシュメモリ59−1はCPU10,11における複数階層キャッシュメモリのうちの1つとして機能するものであり、ここでは、CPU10,11それぞれの3次キャッシュメモリとして機能する。
これと同様に、共有キャッシュメモリ59−2は、情報処理装置1′にそなえられた他の記憶部(ここでは、1次キャッシュメモリ10a〜13a、2次キャッシュメモリ10b〜13b、メインメモリ30〜33、及び共有キャッシュメモリ59−1)に対して、排他的にデータを保持するものである。
また、共有キャッシュメモリ59−2は、CPU12,13における複数階層キャッシュメモリのうちの1つとして機能するものであり、ここでは、CPU12,13それぞれの3次キャッシュメモリとして機能する。
また、本情報処理装置1′において、検索部52−1は、1次キャッシュメモリ10a,11a、2次キャッシュメモリ10b,11b、メインメモリ30,31、及び共有キャッシュメモリメモリ59−1を検索対象としており、検索部52−2は、1次キャッシュメモリ12a,13a、2次キャッシュメモリ12b,13b、メインメモリ32,33、及び共有キャッシュメモリメモリ59−2を検索対象としている。
したがって、本発明の第2実施形態としての情報処理装置1′では、ローカルスヌープ制御部55−1は、検索部52−1により担当する記憶部からメモリアクセス要求の対象データが検索された場合であって、前記(a)〜(c)の場合もしくは、メモリアクセス要求の種類に関わらず共有キャッシュメモリ59−1から対象データが検索された場合に、当該メモリアクセス要求に対する動作を確定することができる。
なお、ローカルスヌープ制御部55−2についても、検索部52−2によってメモリアクセス要求の対象データが共有キャッシュメモリ59−2から検索された場合には、当該メモリアクセス要求に対する動作を確定することができる。
なお、本発明の第2実施形態としてのローカルスヌープ制御方法は、上述したように、ローカルスヌープ制御部55−1,55−2が、それぞれ検索部52−1,52−2によって共有キャッシュメモリ59−1,59−2からメモリアクセス要求の対象データが検索された場合にも当該メモリアクセス要求に対する動作を確定して、メモリアクセス制御部56−1,56−2に当該メモリアクセス要求を実行させる点を除いては、上記図2〜図4を参照しながら上述した第1実施形態のローカルスヌープ制御方法と同様である。
このように、本発明の第2実施形態としての情報処理装置1′及びローカルスヌープ制御方法によれば、上述した第1実施形態と同様の効果を得ることができるとともに、共有キャッシュメモリメモリ59−1,59−2をそなえることにより、ローカルスヌープ制御部55−1,55−2による検索の結果、これら共有キャッシュメモリ59−1,59−2にメモリアクセス要求の対象データが保持されている場合にも、ローカルスヌープ制御部55−1,55−2がメモリアクセス要求を実行させるため、ブロードキャスト送受信部53−1,53−2もしくはグローバルスヌープ制御部54−1,54−2による処理を行なうことなく、メモリアクセス要求を高速に処理できる機会を増やすことができ、メモリアクセス要求が発生してから実行するまでの時間をより確実に短縮することができる。
〔3〕本発明の変形例について
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、第2キャンセル部58−1,58−2によりグローバルスヌープ制御部54−1,54−2による処理をキャンセルする場合には、グローバルスヌープ制御部54−1,54−2による検索部52−1,52−2の検索(スヌープ)処理からキャンセルするようにしたが、本発明はこれに限定されるものではなく、検索部52−1,52−2の検索終了後、つまり、検索結果を見てから第2キャンセル部58−1,58−2によって、グローバルスヌープ制御部54−1,54−2による検索結果の通信処理をキャンセルするように構成してもよい。
さらに、第2キャンセル部58−1,58−2によるキャンセルが実行可能になるタイミングによっては、グローバルスヌープ制御部54−1,54−2による検索結果の通信処理を途中でキャンセルするようにしてもよい。
また、上述した実施形態では、情報処理装置1,1′がシステムコントローラを2つそなえた例をあげて説明したが、本発明はこれに限定されるものではなく、情報処理装置1,1′が2以上のシステムコントローラをそなえて構成されていてもよい。この場合には、システムコントローラが複数の筐体に跨って接続されるように構成してもよいし、システムコントローラ間の通信制御のためのLSIをさらにそなえて構成してもよい。
なお、上述した実施形態では、システムコントローラ50−1,50−2において、第1キャンセル部57−1,57−2及び第2キャンセル部58−1,58−2とローカルスヌープ制御部55−1,55−2とを個別に設けたが、本発明はこれに限定されるものではなく、ローカルスヌープ制御部55−1が第1キャンセル部57−1及び第2キャンセル部58−1としての機能をそなえ、ローカルスヌープ制御部55−2が第1キャンセル部57−2及び第2キャンセル部58−2としての機能をそなえるように構成してもよい。
なお、上述した実施形態において、I/O装置20〜23のそれぞれが記憶部をそなえ、検索部52−1,52−2がI/O装置装置20〜23にそなえられた記憶部をそれぞれの検索対象としてもよい。
〔4〕その他
上述したメモリアクセス要求受信部51−1,51−2、検索部52−1,52−2、ブロードキャスト送受信部53−1,53−2、グローバルスヌープ制御部54−1,54−2、ローカルスヌープ制御部55−1,55−2、メモリアクセス制御部56−1,56−2、第1キャンセル部57−1,57−2、及び第2キャンセル部58−1,58−2としての機能は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(ローカルスヌープ制御プログラム)を実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からローカルスヌープ制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
ここで、コンピュータとは、ハードウェアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。上記ローカルスヌープ制御プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、メモリアクセス要求受信部51−1,51−2、検索部52−1,52−2、ブロードキャスト送受信部53−1,53−2、グローバルスヌープ制御部54−1,54−2、ローカルスヌープ制御部55−1,55−2、メモリアクセス制御部56−1,56−2、第1キャンセル部57−1,57−2、及び第2キャンセル部58−1,58−2としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
さらに、本実施形態としての記録媒体としては、上述したフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD,磁気ディスク,光ディスク,光磁気ディスクのほか、ICカード,ROMカートリッジ,磁気テープ,パンチカード,コンピュータの内部記憶装置(RAMやROMなどのメモリ),外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
〔5〕付記
(付記1)
複数の記憶部と、
互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、
前記複数のシステムコントローラのそれぞれが、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信するブロードキャスト送受信部と、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ制御部と、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、
該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴とする、情報処理装置。
(付記2)
前記複数のシステムコントローラのそれぞれが、
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第1キャンセル部をそなえて構成されていることを特徴とする、付記1記載の情報処理装置。
(付記3)
前記複数のシステムコントローラのそれぞれが、
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第2キャンセル部をそなえて構成されていることを特徴とする、付記1又は付記2記載の情報処理装置。
(付記4)
前記グローバルスヌープ制御部が、前記検索指示に基づく前記メモリアクセス要求の対象データの検索を、前記複数のシステムコントローラにおいて同期して実行させることを特徴とする、付記1〜3のいずれか1項に記載の情報処理装置。
(付記5)
前記グローバルスヌープ制御部が、前記検索指示に基づく前記メモリアクセス要求の対象データの検索結果を、前記複数のシステムコントローラにおいて同期して通信し合うとともに、前記複数のシステムコントローラにおける前記検索の結果に基づいて前記メモリアクセス要求に対する動作を確定することを特徴とする、付記1〜4のいずれか1項に記載の情報処理装置。
(付記6)
前記所定の条件が、前記メモリアクセス要求が共有型のフェッチ命令であることを特徴とする、付記1〜5のいずれか1項に記載の情報処理装置。
(付記7)
前記所定の条件が、前記メモリアクセス要求が排他型のフェッチ命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記1〜6のいずれか1項に記載の情報処理装置。
(付記8)
前記所定の条件が、前記メモリアクセス要求がストア命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記1〜7のいずれか1項に記載の情報処理装置。
(付記9)
前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、
前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、付記1〜8のいずれか1項に記載の情報処理装置。
(付記10)
1以上の演算器をそなえ、
前記複数の記憶部に、前記演算器にそなえられた1以上の記憶部が含まれていることを特徴とする、付記1〜9のいずれか1項に記載の情報処理装置。
(付記11)
1以上の入出力装置をそなえ、
前記複数の記憶部に、前記入出力装置にそなえられた1以上の記憶部が含まれていることを特徴とする、付記1〜10のいずれか1項に記載の情報処理装置。
(付記12)
複数の記憶部をそなえた情報処理装置において、前記複数の記憶部に対する通信制御を分担するシステムコントローラであって、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、他のシステムコントローラとの間で送受信するブロードキャスト送受信部と、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を他のシステムコントローラとの間で通信し合うグローバルスヌープ制御部と、
前記メモリアクセス要求を受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、
担当する記憶部から前記メモリアクセス要求の対象データが前記ローカルスヌープ制御部よって検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴とする、システムコントローラ。
(付記13)
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第1キャンセル部をそなえて構成されていることを特徴とする、付記12記載のシステムコントローラ。
(付記14)
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第2キャンセル部をそなえて構成されていることを特徴とする、付記12又は付記13記載のシステムコントローラ。
(付記15)
前記所定の条件が、前記メモリアクセス要求が共有型のフェッチ命令であることを特徴とする、付記12〜14のいずれか1項に記載のシステムコントローラ。
(付記16)
前記所定の条件が、前記メモリアクセス要求が排他型のフェッチ命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記12〜15のいずれか1項に記載のシステムコントローラ。
(付記17)
前記所定の条件が、前記メモリアクセス要求がストア命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記12〜16のいずれか1項に記載のシステムコントローラ。
(付記18)
他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、
前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、付記12〜17のいずれか1項に記載のシステムコントローラ。
(付記19)
複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信し、送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索して、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ処理を行なうように構成された情報処理装置における、ローカルスヌープ制御方法であって、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記検索指示の送受信もしくは前記グローバルスヌープ処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープステップと、
該ローカルスヌープステップにおいて当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行するメモリアクセス要求実行ステップとを含んでいることを特徴とする、ローカルスヌープ制御方法。
(付記20)
前記メモリアクセス要求実行ステップを実行する際に、前記検索指示の送受信を未実行の場合には、前記検索指示の送受信をキャンセルする第1キャンセルステップを含んでいることを特徴とする、付記19記載のローカルスヌープ制御方法。
(付記21)
前記メモリアクセス要求実行ステップを実行する際に、前記検索指示の送受信を実行している場合には、前記グローバルスヌープ処理をキャンセルする第2キャンセルステップを含んでいることを特徴とする、付記20記載のローカルスヌープ制御方法。
(付記22)
前記所定の条件が、前記メモリアクセス要求が共有型のフェッチ命令であることを特徴とする、付記19〜21のいずれか1項に記載のローカルスヌープ制御方法。
(付記23)
前記所定の条件が、前記メモリアクセス要求が排他型のフェッチ命令であり、且つ前記ローカルスヌープステップにおいて検索された前記対象データが排他型であることを特徴とする、付記19〜22のいずれか1項に記載のローカルスヌープ制御方法。
(付記24)
前記所定の条件が、前記メモリアクセス要求がストア命令であり、且つ前記ローカルスヌープステップにおいて検索された前記対象データが排他型であることを特徴とする、付記19〜23のいずれか1項に記載のローカルスヌープ制御方法。
(付記25)
前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえて構成された情報処理装置における、ローカルスヌープ制御方法であって、
前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、付記19〜24のいずれか1項に記載のローカルスヌープ制御方法。
(付記26)
複数の記憶部をそなえた情報処理装置において前記複数の記憶部に対する通信制御を分担するシステムコントローラとしての機能をコンピュータに実現させるためのローカルスヌープ制御プログラムであって、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、他のシステムコントローラとの間で送受信するブロードキャスト送受信部、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を他のシステムコントローラとの間で通信し合うグローバルスヌープ制御部、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部、及び、
該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部として、前記コンピュータを機能させることを特徴とする、ローカルスヌープ制御プログラム。
(付記27)
複数の記憶部をそなえた情報処理装置において前記複数の記憶部に対する通信制御を分担するシステムコントローラとしての機能をコンピュータに実現させるためのローカルスヌープ制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ローカルスヌープ制御プログラムが、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、他のシステムコントローラとの間で送受信するブロードキャスト送受信部、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を他のシステムコントローラとの間で通信し合うグローバルスヌープ制御部、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部、及び、
該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部として、前記コンピュータを機能させることを特徴とする、ローカルスヌープ制御プログラムを記録したコンピュータ読取可能な記録媒体。
本発明の第1実施形態としての情報処理装置の構成を示すブロック図である。 本発明の第1実施形態としてのローカルスヌープ制御方法の手順を説明するためのフローチャートである。 本発明の第1実施形態としてのローカルスヌープ制御方法において第1キャンセル部によるキャンセルを実行した場合の手順を説明するためのタイムチャートである。 本発明の第1実施形態としてのローカルスヌープ制御方法において第2キャンセル部によるキャンセルを実行した場合の手順を説明するためのタイムチャートである。 本発明の第2実施形態としての情報処理装置の構成を示すブロック図である。 従来の大規模な情報処理装置の構成を示すブロック図である。 従来の大規模な情報処理装置の動作を説明するためのタイムチャートである。 従来の大規模な情報処理装置おいて複数のシステムコントローラ間で検索結果の通信処理を行なわない場合の動作を説明するためのタイムチャートである。
符号の説明
1,1′,100 情報処理装置
10〜13 CPU(演算器)
10a〜13a 1次キャッシュメモリ
10b〜13b 2次キャッシュメモリ
20〜23 I/O装置(入出力装置)
30〜33 メインメモリ
40−1,40−2,50−1,50−2 システムコントローラ
41−1,41−2,51−1,51−2 メモリアクセス要求受信部
42−1,42−2,52−1,52−2 検索部
43−1,43−2,53−1,53−2 ブロードキャスト送受信部
44−1,44−2,54−1,54−2 グローバルスヌープ制御部
45−1,45−2,56−1,56−2 メモリアクセス制御部
55−1,55−2 ローカルスヌープ制御部
57−1,57−2 第1キャンセル部
58−1,58−2 第2キャンセル部
59−1,59−2 共有キャッシュメモリ(共有記憶部)

Claims (5)

  1. 複数の記憶部と、
    互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、
    前記複数のシステムコントローラのそれぞれが、
    メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信するブロードキャスト送受信部と、
    該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ制御部と、
    前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、
    該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴とする、情報処理装置。
  2. 前記複数のシステムコントローラのそれぞれが、
    前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第1キャンセル部をそなえて構成されていることを特徴とする、請求項1記載の情報処理装置。
  3. 前記複数のシステムコントローラのそれぞれが、
    前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第2キャンセル部をそなえて構成されていることを特徴とする、請求項1又は請求項2記載の情報処理装置。
  4. 前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、
    前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信し、送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索して、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ処理を行なうように構成された情報処理装置における、ローカルスヌープ制御方法であって、
    前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記検索指示の送受信もしくは前記グローバルスヌープ処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープステップと、
    該ローカルスヌープステップにおいて当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行するメモリアクセス要求実行ステップとを含んでいることを特徴とする、ローカルスヌープ制御方法。
JP2004252814A 2004-08-31 2004-08-31 情報処理装置,制御装置及び情報処理装置の制御方法 Expired - Fee Related JP4695367B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004252814A JP4695367B2 (ja) 2004-08-31 2004-08-31 情報処理装置,制御装置及び情報処理装置の制御方法
US11/022,986 US7673104B2 (en) 2004-08-31 2004-12-28 Information processing apparatus, system controller, local snoop control method, and local snoop control program recorded computer-readable recording medium
EP05250188A EP1630678B1 (en) 2004-08-31 2005-01-14 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004252814A JP4695367B2 (ja) 2004-08-31 2004-08-31 情報処理装置,制御装置及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2006072509A true JP2006072509A (ja) 2006-03-16
JP4695367B2 JP4695367B2 (ja) 2011-06-08

Family

ID=34940363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004252814A Expired - Fee Related JP4695367B2 (ja) 2004-08-31 2004-08-31 情報処理装置,制御装置及び情報処理装置の制御方法

Country Status (3)

Country Link
US (1) US7673104B2 (ja)
EP (1) EP1630678B1 (ja)
JP (1) JP4695367B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183702A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
JP2007287142A (ja) * 2006-04-13 2007-11-01 Internatl Business Mach Corp <Ibm> チケット・ベースの動作の追跡をサポートするデータを処理するためのデータ処理システムおよび方法
JP2008046890A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd マルチプロセッサシステム
JP2008123333A (ja) * 2006-11-14 2008-05-29 Renesas Technology Corp 半導体集積回路装置
JPWO2007099614A1 (ja) * 2006-02-28 2009-07-16 富士通株式会社 システムコントローラおよびキャッシュ制御方法
EP2104042A1 (en) 2008-03-18 2009-09-23 Fujitsu Limited Information processing device, memory control method, and memory control device
EP2237158A1 (en) 2009-03-31 2010-10-06 Fujitsu Limited System controller, information processing system, and access processing method
US8327081B2 (en) 2006-02-28 2012-12-04 Fujitsu Limited Information processing device and method for controlling the same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179197A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system, method and interconnect fabric having a partial response rebroadcast
JP4449931B2 (ja) * 2006-03-30 2010-04-14 ブラザー工業株式会社 管理装置、および管理システム
JP6402598B2 (ja) * 2014-11-12 2018-10-10 富士通株式会社 情報処理装置、通信方法、通信プログラム、及び、情報処理システム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274461A (ja) * 1993-03-18 1994-09-30 Hitachi Ltd 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JPH0816474A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd マルチプロセッサシステム
JPH08320827A (ja) * 1995-03-20 1996-12-03 Fujitsu Ltd キャッシュコヒーレンス装置
JPH0922380A (ja) * 1995-07-05 1997-01-21 Nec Corp マルチレベルバス結合型マルチプロセッサシステム
JPH10187630A (ja) * 1996-07-02 1998-07-21 Sun Microsyst Inc 階層smpコンピュータ・システム
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ
JP2000348000A (ja) * 1999-06-03 2000-12-15 Hitachi Ltd 主記憶共有型マルチプロセッサシステム
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
JP2001184321A (ja) * 1999-12-24 2001-07-06 Hitachi Ltd 主記憶共有型並列計算機及びそれに用いるノード制御装置
US6519665B1 (en) * 1999-11-09 2003-02-11 International Business Machines Corporation Multi-node data processing system and communication protocol in which a stomp signal is propagated to cancel a prior request

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04353947A (ja) * 1991-02-13 1992-12-08 Hewlett Packard Co <Hp> メモリページ特性タグ付けシステム
JPH06100985B2 (ja) 1991-06-26 1994-12-12 工業技術院長 階層キャッシュ・メモリ装置
JPH06187239A (ja) 1992-12-18 1994-07-08 Nippon Telegr & Teleph Corp <Ntt> 多階層キャッシュメモリにおけるデータ一致制御方式
JPH06250926A (ja) 1993-02-25 1994-09-09 Mitsubishi Electric Corp 複数階層のキャッシュメモリを備えたデータ処理システム
US6011791A (en) * 1995-11-15 2000-01-04 Hitachi, Ltd. Multi-processor system and its network
JP2918531B1 (ja) 1998-03-13 1999-07-12 三菱電機株式会社 キャッシュメモリ制御装置
JP2000330965A (ja) * 1999-03-17 2000-11-30 Hitachi Ltd マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
JP4522817B2 (ja) * 2004-10-25 2010-08-11 富士通株式会社 システム制御装置、情報処理装置及び情報処理装置の制御方法。

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274461A (ja) * 1993-03-18 1994-09-30 Hitachi Ltd 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JPH0816474A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd マルチプロセッサシステム
JPH08320827A (ja) * 1995-03-20 1996-12-03 Fujitsu Ltd キャッシュコヒーレンス装置
JPH0922380A (ja) * 1995-07-05 1997-01-21 Nec Corp マルチレベルバス結合型マルチプロセッサシステム
JPH10187630A (ja) * 1996-07-02 1998-07-21 Sun Microsyst Inc 階層smpコンピュータ・システム
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ
JP2000348000A (ja) * 1999-06-03 2000-12-15 Hitachi Ltd 主記憶共有型マルチプロセッサシステム
US6519665B1 (en) * 1999-11-09 2003-02-11 International Business Machines Corporation Multi-node data processing system and communication protocol in which a stomp signal is propagated to cancel a prior request
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
JP2001184321A (ja) * 1999-12-24 2001-07-06 Hitachi Ltd 主記憶共有型並列計算機及びそれに用いるノード制御装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183702A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
JPWO2007099614A1 (ja) * 2006-02-28 2009-07-16 富士通株式会社 システムコントローラおよびキャッシュ制御方法
US7979644B2 (en) 2006-02-28 2011-07-12 Fujitsu Limited System controller and cache control method
US8327081B2 (en) 2006-02-28 2012-12-04 Fujitsu Limited Information processing device and method for controlling the same
JP2007287142A (ja) * 2006-04-13 2007-11-01 Internatl Business Mach Corp <Ibm> チケット・ベースの動作の追跡をサポートするデータを処理するためのデータ処理システムおよび方法
JP2008046890A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd マルチプロセッサシステム
JP2008123333A (ja) * 2006-11-14 2008-05-29 Renesas Technology Corp 半導体集積回路装置
EP2104042A1 (en) 2008-03-18 2009-09-23 Fujitsu Limited Information processing device, memory control method, and memory control device
US8464004B2 (en) 2008-03-18 2013-06-11 Fujitsu Limited Information processing apparatus, memory control method, and memory control device utilizing local and global snoop control units to maintain cache coherency
EP2237158A1 (en) 2009-03-31 2010-10-06 Fujitsu Limited System controller, information processing system, and access processing method
JP2010238191A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd システムコントロール装置、情報処理システムおよびアクセス処理方法
US8719512B2 (en) 2009-03-31 2014-05-06 Fujitsu Limited System controller, information processing system, and access processing method

Also Published As

Publication number Publication date
US20060047918A1 (en) 2006-03-02
EP1630678A3 (en) 2009-03-25
EP1630678A2 (en) 2006-03-01
EP1630678B1 (en) 2012-04-11
JP4695367B2 (ja) 2011-06-08
US7673104B2 (en) 2010-03-02

Similar Documents

Publication Publication Date Title
EP1630678B1 (en) Information processing apparatus
CN101322103B (zh) 无约束事务存储器系统及其方法
US8473681B2 (en) Atomic-operation coalescing technique in multi-chip systems
US8706973B2 (en) Unbounded transactional memory system and method
US9239789B2 (en) Method and apparatus for monitor and MWAIT in a distributed cache architecture
US7877559B2 (en) Mechanism to accelerate removal of store operations from a queue
US7975018B2 (en) Systems and methods for providing distributed cache coherence
US8468307B2 (en) Information processing apparatus and order guarantee method
US9280349B2 (en) Decode time instruction optimization for load reserve and store conditional sequences
CN106991073B (zh) 用于向量运算的数据读写调度器及保留站
CN106030515B (zh) 用于多处理器和多核平台的二进制翻译
CN101546293B (zh) 缓存控制装置、信息处理装置和缓存控制方法
KR101284969B1 (ko) 정보 처리 장치, 메모리 제어 방법 및 메모리 제어 장치
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
US7953962B2 (en) Multiprocessor system and control method thereof
US10775870B2 (en) System and method for maintaining cache coherency
US11687460B2 (en) Network cache injection for coherent GPUs
US7594080B2 (en) Temporary storage of memory line while waiting for cache eviction
US20070156960A1 (en) Ordered combination of uncacheable writes
US8244919B2 (en) Data transfer apparatus, system and method using the same
US8719512B2 (en) System controller, information processing system, and access processing method
US20110083030A1 (en) Cache memory control device, cache memory device, processor, and controlling method for storage device
US20240160377A1 (en) Information processing apparatus, data control method, and recording medium
JP2006048163A (ja) ストアデータ制御装置およびストアデータ制御方法
JPH06187300A (ja) 記憶制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100517

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

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

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

Free format text: PAYMENT UNTIL: 20140304

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