JP4327238B2 - システムコントローラおよびキャッシュ制御方法 - Google Patents

システムコントローラおよびキャッシュ制御方法 Download PDF

Info

Publication number
JP4327238B2
JP4327238B2 JP2008502601A JP2008502601A JP4327238B2 JP 4327238 B2 JP4327238 B2 JP 4327238B2 JP 2008502601 A JP2008502601 A JP 2008502601A JP 2008502601 A JP2008502601 A JP 2008502601A JP 4327238 B2 JP4327238 B2 JP 4327238B2
Authority
JP
Japan
Prior art keywords
access
state
cache
system controller
modified
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.)
Expired - Fee Related
Application number
JP2008502601A
Other languages
English (en)
Other versions
JPWO2007099614A1 (ja
Inventor
剛 杉崎
哲志 中川
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
Publication of JPWO2007099614A1 publication Critical patent/JPWO2007099614A1/ja
Application granted granted Critical
Publication of JP4327238B2 publication Critical patent/JP4327238B2/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

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)

Description

本発明は、マルチプロセッサシステムを構成するキャッシュ装置を制御するシステムコントローラおよび該キャッシュ装置を制御するキャッシュ制御方法に関し、特に、スヌープ処理が実行された際のアクセス間のアドレス競合時のリトライの頻度を減少させることが可能なシステムコントローラおよびキャッシュ制御方法に関する。
従来、コンピュータシステムの高速化の要求に伴い、マルチプロセッサシステムにおいては各CPUにキャッシュ装置を設けている。CPU毎に設けたキャッシュ装置上のデータは、キャッシュ装置間に亘ってそのデータの正しさ、即ちデータの共有と一貫性を保つため、キャッシュコヒーレンスプロトコルと呼ばれるキャシュメモリ間のデータの整合性を保つ規則に従って、キャッシュ装置上でブロック毎に管理されている。
従来の一般的なキャッシュプロトコルとしては、「M」「E」「S」「I」の4状態を管理するMESIキャッシュプロトコルが知られている。ここで、Mは、変更(Modified)状態であり、複数のキャッシュ装置の1つにのみ有効データが保持されており、かつ、データは変更されており、主記憶装置のそれと値が同じであることが保証されない。Eは、排他(Exclusive)状態であり、複数のキャッシュ装置の1つにのみ有効データが保持されている。Sは、共有(Shared)状態であり、複数のキャッシュ装置上に同じデータが保持されている。そして、Iは、無効(Invalid)状態であり、キャッシュ装置上のデータは無効である。
このようなMESIキャッシュプロトコルを用いたキュッシュ制御において、あるCPUがキャッシュ装置にストアしたデータブロックを、他系のCPUが参照するフェッチ要求を行った場合、主記憶装置へのデータブロックの書込み(以下、MSライトという)を必要とし、その分、アクセスに時間がかかる。
そこで、MESIキャッシュプロトコルに、共有変更O(Shared Modified)状態を加えた5状態を示す構成とすることにより、フェッチ処理の際のMSライトを不要にしている。なお、共有変更の符号Oは、Ownerを表わす。
しかしながら、この5状態をとるキャッシュプロトコルにあっても、自系フェッチ処理に続いて他系ストア処理が行われた場合、共有変更Oの状態にある他系に対し無効Iに切替えるための状態変更要求が必要であり、この他系への状態変更要求を行っている分、ストア処理に時間がかかり、自系のフェッチ要求で取得したキャッシュ上のデータブロックに自系でストア処理を行う頻度は高いため、装置全体としてりアクセス性能に大きく影響する問題があった。
そこで、キャッシュメモリとキャッシュコントローラとを備えるキャッシュ装置において、キャッシュメモリは、主記憶装置の一部のデータをキャッシュラインのブロック単位に保持すると共にキャッシュラインに保持したデータブロック状態を示す情報を保持し、キャッシュコントローラは、データブロックの状態を、例えば無効状態I、共有状態S、排他系状態E、変更状態M、共有変更状態Oに加え、フェッチ要求があった場合に段階的に共有性を持たせるための状態である、書込可能状態W(Writable Modified)の6状態で表現してキャッシュメモリを制御する技術が開示されている。
この技術により、キャッシュ装置上で管理するデータブロックの状態を細分化し、これによって他系への状態変更要求を減らし、結果としてキャッシュ装置へのアクセスを速くすることが可能となっている。
図1は、比較的小規模のマルチプロセッサシステム(クロスバスイッチを介さない下位モデル)におけるフェッチ要求のスヌープ処理を示す図であり、図2は、比較的大規模のマルチプロセッサシステム(クロスバスイッチが介在する上位モデル)におけるフェッチ要求のスヌープ処理を示す図である。
これら図1及び図2に示したように、プロセッサユニット(CPU0)からメモリへアクセスが要求された場合、キャッシュ装置間のコヒーレンシーを保つため、そのメモリへのアクセス要求は、そのアクセスに関係する全てのシステムコントローラ(SC0、SC1)にブロードキャストされる。そして、各システムコントローラ(SC0、SC1)は、自身が担当するプロセッサユニットのキャッシュ装置の状態、対象データに対する競合、データ転送に使用する資源の検査を行うためのスヌープ処理を同時に実行し、その結果を該当システムコントローラ(SC0、SC1)間で通信し合う。
図3は、下位モデルにおけるフェッチ要求のスヌープ処理(リトライ有り)を示す図である。
次に、得られた全てのスヌープ結果を総合的に判定し、最終的にそのメモリアクセス処理の動作を決定する。ここで得られた判定結果は、全てのシステムコントローラ(SC0、SC1)で同じ結果を同時に得なければならない。スヌープ処理中に何らかの競合や資源の枯渇などを検出した場合には、そのアクセスの処理は中断し、スヌープ処理をリトライすることになる。
しかしながら、上述のようなスヌープ制御においては、複数のシステムコントローラ間の距離に応じて通信時間が異なってしまい、マルチプロセッサシステムの規模に応じたスヌープ処理を実行しなければならないという問題点があった。
本発明は、上記事情に鑑みてなされたもので、マルチプロセッサで構成される大規模な情報処理装置において、複数のシステムコントローラ間で行われるスヌープ処理をスヌープパイプラインの段数調整によって、マルチプロセッサシステムの規模毎のスヌープ結果の通信時間の差を吸収し、かつ、スヌープ処理の際のアクセス間のアドレス競合時にはスヌープパイプラインの段数からリトライ間隔を決定し、アドレス競合時のリトライの頻発を防止するのが可能なシステムコントローラおよびキャッシュ制御方法を提供することを目的とする。
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のシステムコントローラは、マルチプロセッサシステムを構成するキャッシュ装置を制御するシステムコントローラであって、前記キャッシュ装置が、プロセッサモジュール毎に設けられ互いに接続され、主記憶装置の一部のデータをキャッシュラインのブロック単位に保持すると共に前記キャッシュラインに保持したデータブロック状態を示す情報を保持するキャッシュメモリと、前記データブロックの状態を、無効状態I(Invalid)、共有状態S(Shared)、排他状態E(Exclusive)、変更状態M(Modified)、共有変更状態O(Shared Modified)、書込可能状態W(Writable Modified)の6状態で表現して前記キャッシュメモリを制御するキャッシュコントローラとを備え、前記システムコントローラが、他のシステムコントローラとの間の通信時間に基づいて、スヌープパイプラインの段数が定められたスヌープ制御部とを備えることを特徴とする。
また、本発明のシステムコントローラは、前記スヌープ制御部が、前記定められた段数に応じてリトライ間隔を決定することが望ましい。
また、本発明のシステムコントローラは、前記キャッシュ装置を複数個備える大規模システムLSIのためのLSIであることが望ましい。
また、本発明の一態様によれば、本発明のキャッシュ制御方法は、マルチプロセッサシステムを構成するキャッシュ装置を制御するキャッシュ制御方法であって、キャッシュメモリに主記憶の一部のデータをキャッシュラインのブロック単位に保持すると共に前記キャッシュラインに保持したデータブロック状態を示す情報を保持し、前記データブロックの状態を、無効状態I(Invalid)、共有状態S(Shared)、排他状態E(Exclusive)、変更状態M(Modified)、共有変更状態O(Shared Modified)、書込可能状態W(Writable Modified)の6状態で表現して前記キャッシュメモリを制御し、他のシステムコントローラとの間の通信時間に基づいて、スヌープパイプラインの段数が定められることが望ましい。
また、本発明のキャッシュ制御方法は、さらに、前記定められた段数に応じてリトライ間隔を決定することが望ましい。
本発明によれば、マルチプロセッサシステムの規模毎のスヌープ結果の通信時間の差を吸収するとともに、アドレス競合時のリトライの頻発を防止することができる。
下位モデルにおけるフェッチ要求のスヌープ処理(リトライ無し)を示す図である。 上位モデルにおけるフェッチ要求のスヌープ処理を示す図である。 下位モデルにおけるフェッチ要求のスヌープ処理(リトライ有り)を示す図である。 マルチプロセッサシステムの概要を説明するための図である。 大規模マルチプロセッサシステムの概要を説明するための図である。 マルチプロセッサシステムのハードウェア構成を示すブロック図である。 キャッシュ装置の機能を示すブロック図である。 システムコントローラの機能を示すブロック図である。 パイプラインのブロック図である。 1つのシステムコントローラでスヌープ処理を実行した場合のアドレスの競合を説明するための図である。 複数のシステムコントローラで同時にスヌープ処理を実行した場合のアドレスの競合を説明するための図である。 リトライ時のパイプラインへのアクセス投入間隔を、スヌープパイプラインの段数以上に制御した場合を説明するための図である。
以下、図面に基づいて本発明を適用した実施の形態を説明する。
図4は、マルチプロセッサシステムの概要を説明するための図である。
図4において、マルチプロセッサシステム1は、複数のシステムボード2−1,2−2を備えている。各システムボード2−1,2−2のそれぞれは、システムコントローラ13−1または13−2、複数のプロセッサモジュール10−1,・・・,10−n、複数の入出力(IO)デバイス11−1,・・・,11−n、複数のメモリ(MEM)16−1,・・・,16−nを備えている。システムボード2−1,2−2は、互いに通信可能に接続され、プロセッサモジュール10−1,・・・,10−nまたは入出力デバイス11−1,・・・,11−nからの命令に従い、メモリ16−1,・・・,16−nへの読み書きをコントロールする。
図5は、大規模マルチプロセッサシステムの概要を説明するための図である。
図5において、マルチプロセッサシステム3は、上記図4のマルチプロセッサシステム1と比較して規模が大きく、より多くのシステムボード2−1,2−2,2−3,2−4,2−5,2−6,2−7,2−8を備えており、さらに、これらのシステムボード2−1,・・・,2−8は、クロスバスイッチ4を介して互いに接続されている。
そして、これらのシステムボード2−1,・・・,2−8は、上記図4のマルチプロセッサシステム1が備えるシステムボード2−1と同様、1つのシステムコントローラ13−1,・・・,13−5,・・・、複数のプロセッサモジュール10−1,・・・,10−n、複数の入出力(IO)デバイス11−1,・・・,11−n、複数のメモリ(MEM)16−1,・・・,16−nを備えている。
本発明はこれら図4乃至図5のようなマルチプロセッサシステムに適用することができる。
図6は、マルチプロセッサシステムのハードウェア構成を示すブロック図である。
図6において、マルチプロセッサシステム1は、複数のプロセッサモジュール10−1,10−2,・・・,10−nを備え、プロセッサモジュール10−1〜10−nのそれぞれには、CPU(プロセッサ)12−1〜12−n及びキャッシュ装置14−1〜14−nが設けられている。そして、各プロセッサモジュール10−1〜10−nは、キャッシュ装置14−1〜14−nがシステムバス15に接続することにより相互に接続されている。
キャッシュ装置14−1〜14−nを接続するシステムバス15としては、例えばスヌープバスがある。スヌープバスとは、キャッシュ装置14−1〜14−nの何れかでCPU12−1〜12−nからフェッチまたはストアの処理要求があった際に、これらの処理要求に該当するキャッシュラインに保持しているデータブロックの状態をスヌープ制御線の状態信号により直ちに取得できるバスである。
図7は、キャッシュ装置の機能を示すブロック図である。
図7において、キャッシュ装置14−1は、キャッシュコントローラ18とキャッシュメモリ20とを備えている。キャッシュメモリ20は、複数のキャッシュライン22単位にデータを保持しており、各キャッシュライン22はタグ24とデータブロック30とを含み、タグ24は状態タグ26とアドレスタグ28とを備えている。
キャッシュメモリ20の状態タグ26には、データブロックの状態を無効状態I、共有状態S、排他状態E、変更状態M、共有変更状態Oおよび書込可能状態Wの6状態で表現してキャッシュメモリ20を管理している。
キャッシュコントローラ18にはキャッシュ制御管理部32、状態管理部34、プロセッサインタフェース(IF)36、バスインタフェース(IF)38が設けられる。また状態管理部34にはフェッチプロトコル処理部40とストアプロトコル処理部42とが設けられる。
キャッシュ制御管理部32は、CPU12−1からフェッチ要求を受けると、キャッシュメモリ20のタグ24を参照し、要求アドレスとアドレス値の一致するアドレスタグ28を持ったキャッシュライン22を検索する。アドレスの一致するキャッシュライン22が存在しない場合にはキャッシュミスとなり、主記憶装置もしくは他のキャッシュ装置14−2〜14−nの何れかからデータブロックを取得してCPU12−1に提供する。
キャッシュ制御管理部32は、要求アドレスに一致するアドレスのキャッシュライン22が存在した場合には、そのキャッシュライン22の状態タグ26による無効状態I、共有状態S、排他状態E、変更状態M、共有変更状態Oまたは書込可能状態Wの状態に応じた処理を行う。
キャッシュ制御管理部32は、CPU12−1からのストア要求に対し、キャッシュヒットであればキャッシュメモリ20上の該当するキャッシュライン22のデータブロックを更新するストア処理を行ない、ミスヒットであればキャッシュメモリ20上に新たなキャッシュライン22を確保してデータを書き込むストア処理を行う。このとき他のキャッシュ装置14−2〜14−nの何れかに該当するデータブロックが存在する場合には、最新のデータブロックを他のキャッシュ装置14−2〜14−nの何れかから取得した後にデータを書き込むストア処理を行う。
状態管理部34は、上述のようなキャッシュ制御管理部32によるCPU12−1及びシステムバス15を経由した他のキャッシュ装置14−2〜14−nの何れかからの処理要求に対し、処理要求を実行した後の該当するキャッシュライン22上の状態タグ26の状態遷移制御を行う。
状態管理部34によるキャッシュコヒーレンスのための状態遷移制御として、無効状態I、共有状態S、排他状態E、変更状態M、共有変更状態Oおよび書込可能状態Wの6状態のキャッシュプロトコルを適用している。
なお、他のキャッシュ装置14−2〜14−nも上述したキャッシュ装置14−1と同様の機能を有している。
図8は、システムコントローラの機能を示すブロック図であり、図9は、パイプラインのブロック図である。
図8において、システムコントローラ13−1,13−2のそれぞれは、メモリアクセス要求受信部51、ブロードキャスト送受信部52、アクセスポート部56、スヌープ制御部53、MSアクセス発行部54およびCPUリクエスト発行部55備えている。
メモリアクセス要求受信部51は、プロセッサモジュール10−1,・・・,10−nまたは入出力デバイス11−1,・・・,11−nからの、メモリ16−1,・・・,16−2へのアクセス要求を受信する。ブロードキャスト送受信部52は、システムコントローラ13−1または13−2のメモリアクセス要求受信部51が受信したアクセス要求が、他のシステムコントローラ13−2または13−1が備えるメモリ16−1,・・・,16−2へのアクセス要求である場合に、該他のシステムコントローラ13−2または13−1が備えるブロードキャスト送受信部52との間でアクセス要求を送受信する。
スヌープ制御部53は、ブロードキャスト送受信部52を介したプロセッサモジュール10−1,・・・,10−nまたは入出力デバイス11−1,・・・,11−nからのアクセス要求に基づいて、メモリ16−1,・・・,16−2に格納されている内容を検出するためのスヌープ処理を実行する。また、スヌープ制御部53は、パイプラインの段数を調整する段数調整回路531を備える。近年の情報処理装置では大規模な構成による動作が要求されるため、特にシステムコントローラ13−1,13−2は各種構成による環境の差(上位モデルと下位モデル)を吸収できなければならない。スヌープ時のスヌープ結果(CSTパケット)の通信時間は構成毎に異なるため、この段数調整回路531がCSTパケットの通信時間によってスヌープパイプラインの段数を調整する。
MSアクセス発行部54は、スヌープ制御部53からの指示に基づき、メモリ16−1,・・・,16−2へのアクセス命令を発行し、CPUリクエスト発行部55は、スヌープ制御部53からの指示に基づき、プロセッサモジュール10−1,・・・,10−nへのアクセス命令を発行する。
次に、上述のような構成のマルチプロセッサシステムにおいて実行されるキャッシュ制御処理について説明する。
従来、パイプライン上で同一アドレスに対するアクセスが複数存在した場合、後続のアクセスは先行する同一アドレスに対するアクセスの処理のスヌープ結果が確定するまで処理ができなかった。これは、先行するアクセスがキャッシュメモリ上の対象データブロックの登録状態を更新したり、各種アドレスの排他制御のためのロック制御のためである。
そこで、スヌープ制御部53によるスヌープ処理中に、パイプライン上で先行するアクセスの中に同一アドレスに対するアクセスが存在するかのアドレス競合検査を行うようにする。そして、この検査の結果が競合を示す場合、そのアクセスの処理は中断されてスヌープ処理のリトライを行う。なお、ここでのアドレス競合検査の条件は、「(1)対象範囲として、パイプライン上に先行するアクセスで、スヌープ結果が未確定のものであること。」「(2)競合条件として、同一データブロックに対するアクセス、かつ既にリトライとなる要因が検出されていないこと。」である。
次に、アドレスが互いに競合する3つのアクセス(A,B,C)を例にして、スヌープ処理のリトライの動作を説明する。
図10は、1つのシステムコントローラでスヌープ処理を実行した場合のアドレスの競合を説明するための図である。
まず(a)において、アクセスAが投入されると、先行するアクセスがないのでアドレス競合は起こらない(○)。
次に(b)において、アクセスBが投入されると、アクセスBは先行するアクセスAとアドレス競合する(×)ので、アクセスBはリトライの対象となる。
次に(c)において、アクセスCが投入されると、アクセスCは先行するアクセスAとアドレス競合する(×)ので、アクセスCはリトライの対象となる。なお、アクセスBは上記(b)でリトライの対象となっているので、アクセスCにとっては検査の対象外となる(○)。
次に(d)において、上記(b)でリトライの対象となったアクセスBが再投入(リトライ)されると、この時点では先行するアクセスがないのでアドレス競合は起こらない(○)。
次に(e)において、上記(c)でリトライの対象となったアクセスCが再投入(リトライ)されると、アクセスCは先行するアクセスB(上記(d)で再投入されたアクセスB)とアドレス競合する(×)ので、アクセスCは再度リトライの対象となる。
そして(f)において、上記(d)で2度目のリトライの対象となったアクセスCが再投入(2度目のリトライ)されると、この時点では先行するアクセスがないのでアドレス競合は起こらない(○)。
図11は、複数のシステムコントローラで同時にスヌープ処理を実行した場合のアドレスの競合を説明するための図である。
説明を簡単にするために、複数のシステムコントローラ13−1(SC0)および13−2(SC1)で同時にスヌープ処理を実行した場合のアドレスの競合を説明する。
まず(a)において、システムコントローラ13−1(SC0)に対してアクセスAが投入されると、先行するアクセスがないのでアドレス競合は起こらない(○)が、システムコントローラ13−2(SC1)に対してアクセスAが投入されると、他の要因によりアクセスAのリトライが確定したとする(×)。
すると(b)において、システムコントローラ13−1(SC0)に対してアクセスBが投入されると、アクセスBは先行するアクセスAとアドレス競合する(×)ので、アクセスBはリトライの対象となるが、システムコントローラ13−2(SC1)に対してアクセスBが投入されると、アクセスAは上記(a)でリトライの対象となっているので、アクセスBにとっては検査の対象外となる(○)。
次に(c)において、システムコントローラ13−1(SC0)に対してアクセスCが投入されると、アクセスCは先行するアクセスAとアドレス競合する(×)ので、アクセスCはリトライの対象となる。なお、アクセスBは上記(b)でリトライの対象となっているので、アクセスCにとっては検査の対象外となる(○)。また、システムコントローラ13−2(SC1)に対してアクセスCが投入されると、アクセスAは上記(a)でリトライの対象となっているので、アクセスCにとっては検査の対象外となる(○)。なお、アクセスCは先行するアクセスBとアドレス競合する(×)ので、アクセスCはリトライの対象となる。
次に(d)において、システムコントローラ13−1(SC0)に対して上記(a)でリトライの対象となったアクセスAが再投入されると、アクセスBは上記(b)でリトライの対象となっているので、再投入されたアクセスAにとっては検査の対象外となる(○)。なお、再投入されたアクセスAは先行するアクセスCとアドレス競合する(×)ので、アクセスAは再度リトライの対象となる。また、システムコントローラ13−2(SC1)に対してアクセスAが再投入されると、アクセスAは先行するアクセスBとアドレス競合する(×)ので、アクセスAは再度リトライの対象となる。なお、アクセスCは上記(c)でリトライの対象となっているので、アクセスAにとっては検査の対象外となる(○)。
次に(e)において、システムコントローラ13−1(SC0)に対して上記(b)でリトライの対象となったアクセスBが再投入されると、アクセスBは先行するアクセスCとアドレス競合する(×)ので、アクセスBは再度リトライの対象となる。なお、アクセスAは上記(d)でリトライの対象となっているので、アクセスBにとっては検査の対象外となる(○)。また、システムコントローラ13−2(SC1)に対してアクセスBが再投入されると、アクセスCは上記(c)でリトライの対象となっているので、アクセスBにとっては検査の対象外となる(○)。なお、アクセスBは先行するアクセスAとアドレス競合する(×)ので、アクセスBは再度リトライの対象となる。
次に(f)において、システムコントローラ13−1(SC0)に対して上記(c)でリトライの対象となったアクセスCが再投入されると、アクセスAは上記(d)でリトライの対象となっているので、再投入されたアクセスCにとっては検査の対象外となる(○)。なお、再投入されたアクセスCは先行するアクセスBとアドレス競合する(×)ので、アクセスCは再度リトライの対象となる。また、システムコントローラ13−2(SC1)に対してアクセスCが再投入されると、アクセスCは先行するアクセスAとアドレス競合する(×)ので、アクセスCは再度リトライの対象となる。なお、アクセスBは上記(e)でリトライの対象となっているので、アクセスCにとっては検査の対象外となる(○)。
以降、上記(d)乃至(f)が限りなく繰り返されてしまう可能性がある。
図12は、リトライ時のパイプラインへのアクセス投入間隔を、スヌープパイプラインの段数以上に制御した場合を説明するための図である。
まず(a)において、システムコントローラ13−1(SC0)に対してアクセスAが投入されると、先行するアクセスがないのでアドレス競合は起こらない(○)が、システムコントローラ13−2(SC1)に対してアクセスAが投入されると、他の要因によりアクセスAのリトライが確定したとする(×)。
すると(b)において、システムコントローラ13−1(SC0)に対してアクセスBが投入されると、アクセスBは先行するアクセスAとアドレス競合する(×)ので、アクセスBはリトライの対象となるが、システムコントローラ13−2(SC1)に対してアクセスBが投入されると、アクセスAは上記(a)でリトライの対象となっているので、アクセスBにとっては検査の対象外となる(○)。
次に(c)において、システムコントローラ13−1(SC0)に対してアクセスCが投入されると、アクセスCは先行するアクセスAとアドレス競合する(×)ので、アクセスCはリトライの対象となる。なお、アクセスBは上記(b)でリトライの対象となっているので、アクセスCにとっては検査の対象外となる(○)。また、システムコントローラ13−2(SC1)に対してアクセスCが投入されると、アクセスAは上記(a)でリトライの対象となっているので、アクセスCにとっては検査の対象外となる(○)。なお、アクセスCは先行するアクセスBとアドレス競合する(×)ので、アクセスCはリトライの対象となる。
このように、スヌープパイプライン上の先行するアクセスとの競合が発生した場合、そのアクセスを即時にリトライさせるのではなく、競合の可能性のある他のアクセスがパイプライン上で先行していない状態、すなわちリトライ時のパイプラインへのアクセス投入間隔を、スヌープパイプラインの段数以上になるように制御する。
すると(d1)において、システムコントローラ13−1(SC0)に対してアクセスAが再投入されると、先行するアクセスがないのでアドレス競合は起こらない(○)。また、システムコントローラ13−2(SC1)に対してアクセスAが再投入されても、先行するアクセスがないのでアドレス競合は起こらない(○)。
次に(d2)において、システムコントローラ13−1(SC0)に対してのアクセス投入が禁止されると、上記(d1)で再投入されたアクセスAのスヌープ処理が完了する。同様に、システムコントローラ13−2(SC1)に対してのアクセス投入が禁止されると、上記(d1)で再投入されたアクセスAのスヌープ処理が完了する。
次に(e1)において、システムコントローラ13−1(SC0)に対してアクセスBが再投入されると、先行するアクセスがないのでアドレス競合は起こらない(○)。また、システムコントローラ13−2(SC1)に対してアクセスBが再投入されても、先行するアクセスがないのでアドレス競合は起こらない(○)。
次に(e2)において、システムコントローラ13−1(SC0)に対してのアクセス投入が禁止されると、上記(e1)で再投入されたアクセスBのスヌープ処理が完了する。同様に、システムコントローラ13−2(SC1)に対してのアクセス投入が禁止されると、上記(e1)で再投入されたアクセスBのスヌープ処理が完了する。
次に(f1)において、システムコントローラ13−1(SC0)に対してアクセスCが再投入されると、先行するアクセスがないのでアドレス競合は起こらない(○)。また、システムコントローラ13−2(SC1)に対してアクセスCが再投入されても、先行するアクセスがないのでアドレス競合は起こらない(○)。
次に(f2)において、システムコントローラ13−1(SC0)に対してのアクセス投入が禁止されると、上記(f1)で再投入されたアクセスCのスヌープ処理が完了する。同様に、システムコントローラ13−2(SC1)に対してのアクセス投入が禁止されると、上記(f1)で再投入されたアクセスCのスヌープ処理が完了する。
このように、複数のシステムコントローラ間で行われるスヌープ処理をスヌープパイプラインの段数調整によって、マルチプロセッサシステムの規模毎のスヌープ結果の通信時間の差を吸収し、かつ、スヌープ処理の際のアクセス間のアドレス競合時にはスヌープパイプラインの段数からリトライ間隔を決定し、アドレス競合時のリトライの頻発を防止することができる。
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、システムコントローラの一機能としてハードウェアまたはDSPボードやCPUボードでのファームウェアもしくはソフトウェアにより実現することができる。
また、本発明が適用されるシステムコントローラは、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、LAN、WAN等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
また、バスに接続されたCPU、ROMやRAMのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムコードを記録したROMやRAMのメモリ、外部記録装置、可搬記録媒体を、システムコントローラに供給し、そのシステムコントローラのコンピュータがプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、可搬記録媒体等から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記録した可搬記録媒体等は本発明を構成することになる。
プログラムコードを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、DVD−RAM、磁気テープ、不揮発性のメモリーカード、ROMカード、電子メールやパソコン通信等のネットワーク接続装置(言い換えれば、通信回線)を介して記録した種々の記録媒体などを用いることができる。
また、コンピュータ(情報処理装置)がメモリ上に読み出したプログラムコードを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
さらに、可搬型記録媒体から読み出されたプログラムコードやプログラム(データ)提供者から提供されたプログラム(データ)が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。

Claims (5)

  1. マルチプロセッサシステムを構成するキャッシュ装置を制御するシステムコントローラにおいて、
    前記キャッシュ装置は、プロセッサモジュール毎に設けられ互いに接続され、主記憶装置の一部のデータをキャッシュラインのブロック単位に保持すると共に前記キャッシュラインに保持したデータブロック状態を示す情報を保持するキャッシュメモリと、前記データブロックの状態を、無効状態I(Invalid)、共有状態S(Shared)、排他状態E(Exclusive)、変更状態M(Modified)、共有変更状態O(Shared Modified)、書込可能状態W(Writable Modified)の6状態で表現して前記キャッシュメモリを制御するキャッシュコントローラと、を備え、
    前記システムコントローラは、
    他のシステムコントローラとの間の通信時間に基づいて、スヌープパイプラインの段数が定められたスヌープ制御部と、
    を備えることを特徴とするシステムコントローラ。
  2. 前記スヌープ制御部は、前記定められた段数に応じてリトライ間隔を決定することを特徴とする請求項1に記載のシステムコントローラ。
  3. 前記システムコントローラは、前記キャッシュ装置を複数個備える大規模システムLSIのためのLSIであることを特徴とする請求項1に記載のシステムコントローラ。
  4. マルチプロセッサシステムを構成するキャッシュ装置を制御するキャッシュ制御方法において、
    キャッシュメモリに主記憶の一部のデータをキャッシュラインのブロック単位に保持すると共に前記キャッシュラインに保持したデータブロック状態を示す情報を保持し、
    前記データブロックの状態を、無効状態I(Invalid)、共有状態S(Shared)、排他状態E(Exclusive)、変更状態M(Modified)、共有変更状態O(Shared Modified)、書込可能状態W(Writable Modified)の6状態で表現して前記キャッシュメモリを制御し、
    他のシステムコントローラとの間の通信時間に基づいて、前記キャッシュ装置を制御するシステムコントローラ内のスヌープパイプラインの段数を定める
    ことを特徴とするキャッシュ制御方法。
  5. さらに、前記定められた段数に応じてリトライ間隔を決定することを特徴とする請求項4に記載のキャッシュ制御方法。
JP2008502601A 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法 Expired - Fee Related JP4327238B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303789 WO2007099614A1 (ja) 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法

Publications (2)

Publication Number Publication Date
JPWO2007099614A1 JPWO2007099614A1 (ja) 2009-07-16
JP4327238B2 true JP4327238B2 (ja) 2009-09-09

Family

ID=38458738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008502601A Expired - Fee Related JP4327238B2 (ja) 2006-02-28 2006-02-28 システムコントローラおよびキャッシュ制御方法

Country Status (3)

Country Link
US (1) US7979644B2 (ja)
JP (1) JP4327238B2 (ja)
WO (1) WO2007099614A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0028353D0 (en) * 2000-11-21 2001-01-03 Aspex Technology Ltd Improvements relating to digital data communications
US8522076B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Error detection and recovery in a shared pipeline
JP5630825B2 (ja) * 2010-12-28 2014-11-26 Necプラットフォームズ株式会社 マルチプロセッサシステム、リクエスト処理方法、及びノード

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1241768A (en) 1984-06-22 1988-09-06 Miyuki Ishida Tag control circuit for buffer storage
JPS617960A (ja) * 1984-06-22 1986-01-14 Fujitsu Ltd バツフア無効化制御方式
JPS62107351A (ja) * 1985-11-05 1987-05-18 Fujitsu Ltd 主記憶書込順序制御方式
JP3085400B2 (ja) * 1990-11-16 2000-09-04 株式会社日立製作所 計算機システム
CN1205792C (zh) * 1994-08-31 2005-06-08 国际商业机器公司 用于设备间通信的系统与方法
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US6272604B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Contingent response apparatus and method for maintaining cache coherency
JP3897218B2 (ja) * 1999-10-08 2007-03-22 富士通株式会社 キャッシュ装置及び制御方法
JP4181452B2 (ja) 2003-06-26 2008-11-12 本田技研工業株式会社 発電システム
JP4695367B2 (ja) * 2004-08-31 2011-06-08 富士通株式会社 情報処理装置,制御装置及び情報処理装置の制御方法
JP4522817B2 (ja) * 2004-10-25 2010-08-11 富士通株式会社 システム制御装置、情報処理装置及び情報処理装置の制御方法。
JP4609929B2 (ja) 2004-11-29 2011-01-12 富士通株式会社 情報処理装置、システム制御装置、システム制御方法

Also Published As

Publication number Publication date
US20080320237A1 (en) 2008-12-25
JPWO2007099614A1 (ja) 2009-07-16
WO2007099614A1 (ja) 2007-09-07
US7979644B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
US7305522B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
JP4050225B2 (ja) マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
KR101497002B1 (ko) 스누프 필터링 메커니즘
US11379381B2 (en) Main memory device having heterogeneous memories, computer system including the same, and data management method thereof
US8799586B2 (en) Memory mirroring and migration at home agent
US20080270708A1 (en) System and Method for Achieving Cache Coherency Within Multiprocessor Computer System
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8539164B2 (en) Cache coherency within multiprocessor computer system
US8423736B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US7711899B2 (en) Information processing device and data control method in information processing device
JP2006048406A (ja) メモリシステム制御装置およびメモリシステム制御方法
JP6040840B2 (ja) 演算処理装置、情報処理装置及び情報処理装置の制御方法
US20070073977A1 (en) Early global observation point for a uniprocessor system
JP4373485B2 (ja) 情報処理装置及び該制御方法
JP4327238B2 (ja) システムコントローラおよびキャッシュ制御方法
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US8725954B2 (en) Information processing apparatus and memory control apparatus
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
US9672153B2 (en) Memory interface control
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
TWI758317B (zh) 用於提供資料存取行為原子集的裝置及方法
JP2003216596A (ja) マルチプロセッサシステム及びノード装置
JPH1185615A (ja) 情報処理システム及び情報処理装置及びその制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090520

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

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

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4327238

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees