(58)【調査した分野】(Int.Cl.,DB名)
前記ピンポンモニタリング部は、前記モニタリング結果に応じて前記複数のプロセッサに適用される一貫性管理モードを変更することを特徴とする請求項1に記載のキャッシュ一貫性管理装置。
前記リクエスト出力部は、前記連続発生回数が前記臨界値に達し、前記現在入力されたリクエストが前記マイグレーションリクエストである場合、前記非マイグラトーリシェアリング方式のリクエストを出力することを特徴とする請求項6に記載のキャッシュ一貫性管理装置。
前記連続発生回数を基にして前記複数のプロセッサに適用される一貫性管理モードを変更する段階をさらに含むことを特徴とする請求項9に記載のキャッシュ一貫性管理方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の目的は、多重プロセッサに適用されるキャッシュ一貫性管理動作の際、不必要なトランザクションを防止できるキャッシュ一貫性管理装置及び方法を提供することである。
【0007】
本発明の他の目的は、異なるプロセッサの待機時間及びバストラフィックを減らして、多重プロセッサの動作性能を改善するキャッシュ一貫性管理装置及び方法を提供することである。
【課題を解決するための手段】
【0008】
前記課題を解決するための本発明によるキャッシュ一貫性管理装置は、複数のプロセッサの間で発生するピンポンマイグレーションシーケンスの発生をモニタリングするピンポンモニタリング部と、前記ピンポンマイグレーションシーケンスの連続発生回数をカウントするカウンティング部と、前記連続発生回数を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに変更するリクエスト変更部と、を含み、前記ピンポンマイグレーションシーケンスは、
初期状態である第1状態から順に第2状態及び第3状態を経て再び第1状態に戻る3段階の状態遷移であり、前記モニタリングは、前記3段階の状態遷移があるとピンポンマイグレーションシーケンスが発生したとすることを特徴とする。
【0009】
この実施形態において、前記ピンポンモニタリング部は前記モニタリング結果に応じて前記複数のプロセッサに適用される一貫性管理モードを変更する。
【0010】
この実施形態において、前記一貫性管理モードは修正状態、排他的状態、共有状態及び無効状態を含むMESIプロトコルを基にして構成される。
【0011】
この実施形態において、前記一貫性管理モードはマイグラトーリシェアリング方式が選択的に適用される。
【0012】
この実施形態において、前記リクエスト変更部は、前記カウント結果が所定の臨界値より大きい又は同じである場合、前記マイグレーションリクエストを前記非マイグラトーリシェアリング方式のリクエストに変更する。
【0013】
この実施形態において、前記非マイグラトーリシェアリング方式のリクエストは共有リクエストを含む。
【0014】
この実施形態において、前記ピンポンマイグレーションシーケンスは前記複数のプロセッサから提供されたリクエスト等によって行われる3段階の状態遷移を含む。
【0015】
この実施形態において、前記カウンティング部は前記複数のプロセッサのそれぞれのタグラムに対応する複数のカウンタと、所定の臨界値を貯蔵するレジスタと、前記複数のカウンタからカウンティングされた結果が前記臨界値に達したか否かを判別する第1判別回路を含む。
【0016】
この実施形態において、前記リクエスト変更部は前記複数のプロセッサから現在入力されたリクエストが前記マイグレーションリクエストであるか否かを判別する第2判別回路と、前記第1判別回路の判別結果と前記第2判別回路の判別結果に応じて選択信号を発生する論理回路と、前記選択信号に応じて前記現在入力されたマイグレーションリクエスト及び前記非マイグラトーリシェアリング方式のリクエストの中の1つを出力するリクエスト出力部を含む。
【0017】
この実施形態において、前記リクエスト出力部は、前記カウント結果が前記臨界値に達し、前記現在入力されたリクエストが前記マイグレーションリクエストである場合、前記非マイグラトーリシェアリング方式のリクエストを出力する。
【0018】
前記課題を解決するための本発明による多重プロセッサは、1つ以上のキャッシュをそれぞれ備えた複数のプロセッサと、前記複数のプロセッサの間に発生されるピンポンマイグレーションシーケンスの連続発生回数をカウントし、前記連続発生回数を基にして前記複数のプロセッサに対する一貫性管理モードを可変させるキャッシュ一貫性管理装置と、を含み、前記ピンポンマイグレーションシーケンスは、
初期状態である第1状態から順に第2状態及び第3状態を経て再び第1状態に戻る3段階の状態遷移であり、前記3段階の状態遷移があるとピンポンマイグレーションシーケンスが発生したとされることを特徴とする。
【0019】
この実施形態において、前記キャッシュ一貫性管理装置は、スヌープバスを通じて前記複数のプロセッサに接続される。
【0020】
この実施形態において、前記ピンポンマイグレーションシーケンスは前記複数のプロセッサから提供されたリクエスト等によって行われる3段階の状態遷移を含む。
【0021】
この実施形態において、前記一貫性管理モードはマイグラトーリシェアリング方式が選択的に適用される。
【0022】
前記課題を解決するための本発明によるキャッシュ一貫性管理方法は、複数のプロセッサの間に発生されるピンポンマイグレーションシーケンスの連続発生回数をカウントする段階と、前記連続発生回数を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに変更して対応するプロセッサに提供する段階と、を含み、前記ピンポンマイグレーションシーケンスは、
初期状態である第1状態から順に第2状態及び第3状態を経て再び第1状態に戻る3段階の状態遷移であり、前記3段階の状態遷移があるとピンポンマイグレーションシーケンスが発生したとされることを特徴とする。
【0023】
この実施形態において、前記カウント結果を基にして前記複数のプロセッサに適用される一貫性管理モードを変更する段階をさらに含む。
【0024】
この実施形態において、前記一貫性管理モードはマイグラトーリシェアリング方式が選択的に適用される。
【0025】
この実施形態において、前記ピンポンマイグレーションシーケンスは前記複数のプロセッサから提供されたリクエスト等によって3段階の状態遷移が1回行われたことに対応する。
【0026】
この実施形態において、前記マイグレーションリクエストは、前記カウント結果が所定の臨界値より大きい又は同じである場合、前記非マイグラトーリシェアリング方式のリクエストに変更される。
【0027】
この実施形態において、前記非マイグラトーリシェアリング方式のリクエストは共有リクエストを含む。
【発明の効果】
【0028】
本発明によると、多重プロセッサのキャッシュ一貫性管理動作の際、プロセッサ等の間に不必要なトランザクションが発生しない。その結果、プロセッサの不必要な待機時間及びバストラフィックが減少して、多重プロセッサの動作特性が向上される。
【発明を実施するための形態】
【0030】
本発明は実施形態及び図面を参考にして、以下に、詳しく説明される。しかし、本発明の半導体ディスク装置の回路構成及び動作は一例にすぎないので、本発明の技術範囲内で様々に変形できるだろう。
【0031】
本発明のキャッシュ一貫性管理装置はプロセッサ等の間から発生されるピンポン(ping−pong)現象をモニタリングし、モニタリングされた結果を基にして多重プロセッサに適用されるキャッシュ一貫性管理モードを可変させる。この技術構成によるとキャッシュ一貫性管理動作の際、プロセッサ等の間に不必要なトランザクションが発生しない。その結果、プロセッサの待機時間及びバストラフィックが減少され、多重プロセッサの動作特性が向上される。
【0032】
図1は本発明の実施形態による多重プロセッサシステムの概略的な構成を示すブロック図である。
【0033】
図1を参考にすると、多重プロセッサシステムは複数のプロセッサP0、P1を含む。プロセッサ等P0、P1はそれぞれ多重プロセッサシステム内でノードを形成する。
図1には2個のプロセッサP0、P1が示されているが、これは本発明を説明するための一例であり、多重プロセッサシステムに備えられるプロセッサ等の個数(即ち、ノードの個数)は様々に構成できる。
【0034】
それぞれのプロセッサPi(iは正数)は中央処理装置(Central Processing Unit;CPU)の機能を行なうコアCorei(iは正数)と、少なくとも1つ以上のキャッシュメモリCachei(iは正数)を含む。キャッシュメモリCacheiは、それぞれのプロセッサPi内で階層構造(cache hierachy)を有するように構成される。例えば、それぞれのプロセッサPi内に具備されるキャッシュメモリCacheiは、第1レベルキャッシュ(L1 cache)、第2レベルキャッシュ(L2 cache)、又は第3レベルキャッシュ(L3 cache)のような複数のキャッシュが階層的に構成される。後に説明される本発明のデータ一貫性(data coherence)管理方法は、特定階層のキャッシュメモリだけでなく、様々な形態及び階層のキャッシュメモリのデータ一貫性管理に適用される。
【0035】
複数のプロセッサP0、P1は内部バス(例えば、スヌープバス(snoop bus))を通じて一貫性管理部(coherence managing unit;200)と接続される。一貫性管理部200は複数のプロセッサP0、P1に備えられている複数のキャッシュメモリCache0、Cache1に対するデータ一貫性管理を行なう。一貫性管理部200はスヌープバスを通じて複数のプロセッサP0、P1と共通に接続又はそれぞれのプロセッサP0、P1毎に備えられる。そして、一貫性管理部200は共有バス(図示せず)を通じてメインメモリ及びI/O装置等と接続される。一貫性管理部200の構成は特定形態に限らず様々に変更及び変形できる。
【0036】
SMP(Symmetric Multi−Processors)のような多重プロセッサでは、共有されたキャッシュメモリを1つのコアCore0又はCore1からだけ読み込んだり書き込んだりする方式が適用される。これをマイグラトーリオブジェクション(migratory objection)方式又はマイグレーション(migration)方式という。
【0037】
マイグラトーリシェアリング方式又はマイグレーション方式が適用される場合、一貫性管理部200とコア等Core0、Core1の間にマイグレーションリクエストが要求される。マイグレーションリクエストが要求されると、1つのコアCore0から異なる1つのコアCore1にデータを伝送するとき、元のデータを持っていたコアCore0又はCore1のキャッシュライン(cache line)を無効化(invalid)させる動作を行う。
【0038】
マイグラトーリシェアリング方式は、MSI基盤の一貫性制御手法(MSI based coherence policy)に従うプロトコルから頻繁に発生する記録無効化リクエスト(write invalid request)を減らすために提案された方式である。マイグラトーリシェアリング方式が適用される際、マイグラトーリシェアリング(migratory sharing)ではないデータに対する接近(例えば、読み出し動作)が連続的に行なわれる場合、キャッシュミス(cache miss)とトランザクション(例えば、マイグラトーリトランザクション(migratory transaction)等)が頻繁に発生してシステムの性能が低下する。このように、複数のプロセッサの間で不必要なトランザクション等が交互に発生される現象をピンポン(ping−pong)現象と言う。
【0039】
本発明ではこのような問題を解決するために、一貫性管理部200にFMSC(False Migratory Sharing Controller;100)を具備する。FMSC100は一貫性管理部200によって行なわれるキャッシュ一貫性管理動作の際、多重プロセッサ等に対する一貫性管理動作にマイグレーション(migration)方式(即ち、マイグラトーリシェアリング方式)が選択的に適用されるように制御される。実施形態において、本発明のFMSC100はプロセッサ等の間から発生されるピンポン現象をモニタリングし、モニタリングされた結果を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエスト(例えば、共有リクエスト)に移行させる。このような技術構成によると、キャッシュ一貫性管理動作の際、プロセッサ等の間に不必要なトランザクションが発生しない。その結果、プロセッサの待機時間及びバストラフィックを減らすことができ、多重プロセッサの動作性能が効果的に向上される。
【0040】
図2は一貫性管理プロトコルの中の1つであるMESIプロトコルの状態遷移を示す図面である。
【0041】
図2を参考にすると、MESIプロトコルは4個のキャッシュ状態を有する。例えば、修正(modified;M)状態、排他的(exclusive;E)状態、共有(shared;S)状態及び無効(invalid;I)状態を有する。
【0042】
修正状態Mは該当キャッシュから行なった書き込み(write)動作により、キャッシュメモリに貯蔵されていたデータが修正されたことを意味する。排他的状態Eは該当キャッシュ内のデータだけ有効にし、異なるキャッシュのデータは有効ではないことを意味する。共有状態Sはデータが2つ以上のプロセッサのキャッシュ等に貯蔵されていることを意味する。キャッシュラインが共有状態Sにあると、該当キャッシュのデータと、前記データを共有する異なるキャッシュのデータも全部有効である。無効状態Iは該当キャッシュのデータが有効ではないことを意味する。例えば、共有状態Sにある2つのキャッシュの中の1つのキャッシュでデータが修正された場合、修正されてない他のキャッシュのデータは無効状態Iに進んで該当データが無効化される。
【0043】
MESIプロトコルはMSIプロトコルを基にする。MSIプロトコルを基にする一貫性管理プロトコルはMESI、MOSI、MOSEI等がある。後で詳しく説明されるが、本発明ではMESIプロトコルにマイグラトーリシェアリング方式が追加された一貫性管理プロトコルが適用され、前記マイグラトーリシェアリング方式はプロセッサ等の間に発生されるトランザクションの回数によって選択的に適用される。実施形態において、マイグラトーリシェアリング方式はMESIプロトコル以外に異なる種類のプロトコルも適用可能である。
【0044】
図3は多重プロセッサシステムの一貫性管理に非マイグラトーリシェアリング方式が適用されたときの状態遷移と、マイグラトーリシェアリング方式が適用されたときの状態遷移を示す図面である。
図3にはMESIプロトコルにマイグラトーリシェアリング方式が適用された場合と、マイグラトーリシェアリング方式が適用されていない場合(即ち、非マイグラトーリシェアリング方式)が例示されている。
【0045】
先に、一貫性管理に非マイグラトーリシェアリング方式(例えば、マイグラトーリシェアリング方式が適用されないMESIプロトコル)の場合、‘abcd’のデータが貯蔵された第1プロセッサP0のキャッシュは排他的状態Eになる。そして、有効データが貯蔵されていない第2プロセッサP1のキャッシュは無効状態Iになる。第2プロセッサP1が第1プロセッサP0のキャッシュからデータを読み出してくる場合、第2プロセッサP1は第1プロセッサP0に読み出しリクエスト(Read Request)を要求する(矢印丸1参照)。その後、第1プロセッサP0のキャッシュから‘abcd’のデータを読み出してくる(矢印丸2参照)。第1及び第2プロセッサP0、P1の間から行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部200はスヌープバスを通じて要求された読み出しリクエストを感知し、感知結果を基にして読み出し動作が行なわれた第2プロセッサP1のキャッシュを無効状態Iから共有状態Sに変更する。そして、データが読み出された第1プロセッサP0のキャッシュを排他的状態Eから共有状態Sに変更する。
【0046】
第1及び第2プロセッサP0、P1のキャッシュが共有された状態で第2プロセッサP1のキャッシュに貯蔵されたデータを‘abcd’から‘efgh’に修正しようとする場合、第2プロセッサP1はまずスヌープバスを通じて第1プロセッサP0に無効化リクエスト(Invalid Request)を伝送する(矢印丸3参照)。一貫性管理部200はスヌープバスを通じて要求された無効化リクエストを感知し、感知結果を基にして第1プロセッサP0のキャッシュを共有状態Sから無効状態Iに変更する。第2プロセッサP1のキャッシュは、第1プロセッサP0のキャッシュが無効状態Iに変更された後、第2プロセッサP1のキャッシュに貯蔵されたデータを‘abcd’から‘efgh’に修正する。その後、第2プロセッサP1のキャッシュの状態は一貫性管理部200の制御によって共有状態Sから修正状態Mに変更される。仮に、このような状態で第2プロセッサP1のキャッシュに貯蔵されたデータを異なる値に再修正する場合、第2プロセッサP1のキャッシュの状態は修正状態Mをそのまま維持しながらデータ値だけを修正する。
【0047】
続いて、マイグラトーリシェアリング方式の場合、‘abcd’のデータが貯蔵された第1プロセッサP0のキャッシュは排他的状態Eになる。そして、有効データが貯蔵されていない第2プロセッサP1のキャッシュは無効状態Iになる。第2プロセッサP1が第1プロセッサP0のキャッシュからデータを読み出してくる場合、第2プロセッサP1は第1プロセッサP0にマイグレーションリクエスト(Migration Request)を要求する(矢印丸4参照)。その後、第1プロセッサP0のキャッシュから‘abcd’のデータを読み出してくる(矢印丸5参照)。第1及び第2プロセッサP0、P1の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部200はスヌープバスを通じて要求されたマイグレーションリクエストを感知し、感知結果を基にしてデータが読み出された第1プロセッサP0のキャッシュを排他的状態Eから無効状態Iに変更する。そして、データを読み出してきた第2プロセッサP1のキャッシュを無効状態Iから排他的状態Eに変更する。
【0048】
この状態で、第2プロセッサP1のキャッシュに貯蔵されたデータを‘abcd’から‘efgh’に修正しようとする場合、第2プロセッサP1は何のリクエストも発生させなく、データを直接‘abcd’から‘efgh’に修正する。この場合、第2プロセッサP1のキャッシュの状態は一貫性管理部200の制御によって排他的状態Eから修正状態Mに変更される。仮に、このような状態で、第2プロセッサP1のキャッシュに貯蔵されたデータを異なる値に再修正する場合、第2プロセッサP1のキャッシュの状態は修正状態Mをそのまま維持しながらデータ値だけを修正する。
【0049】
図3に示されたように、マイグラトーリシェアリング方式が適用された場合、キャッシュに対する書き込み動作から発生される無効化リクエスト(Invalid Request)(即ち、記録無効化リクエスト(write invalid request))が要らない。記録無効化リクエストの減少はプロセッサの不必要な待機時間及びバストラフィックを減らす効果がある。しかし、一貫性管理にマイグラトーリシェアリング方式が適用される場合、マイグラトーリシェアリング(migratory sharing)ではないデータに対する接近(例えば、読み出し動作)が連続的に行なわれるときには、不必要なトランザクション(例えば、マイグラトーリトランザクション等)によるピンポン現象が発生する。
【0050】
図4は多重プロセッサシステムの一貫性管理にマイグラトーリシェアリング方式が適用されたときと、非マイグラトーリシェアリング方式が適用されたときに発生できるピンポン現象を説明するための図面である。
図4にはMESIプロトコルにマイグラトーリシェアリング方式が適用される場合と、マイグラトーリシェアリング方式が適用されない場合(即ち、非マイグラトーリシェアリング方式)が例示されている。
【0051】
初期状態の第1プロセッサP0のキャッシュには‘abcd’のデータが貯蔵されていて、第2プロセッサP1のキャッシュには無効のデータ‘xxxx’が貯蔵されているものと仮定する。この場合、‘abcd’のデータが貯蔵された第1プロセッサP0のキャッシュは排他的状態Eになる。そして、有効データが貯蔵されていない第2プロセッサP1のキャッシュは無効状態Iになる。
【0052】
先に、マイグラトーリシェアリング方式が適用される場合について説明する。第2プロセッサP1が第1プロセッサP0のキャッシュからデータを読み出してくる場合、第2プロセッサP1は第1プロセッサP0にマイグレーションリクエスト(Migration Request)を要求する(矢印丸6参照)。その後、第1プロセッサP0のキャッシュから‘abcd’のデータを読み出してくる。第1及び第2プロセッサP0、P1の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部200はスヌープバスを通じて要求されたマイグレーションリクエストを感知し、感知結果を基にしてデータが読み出された第1プロセッサP0のキャッシュを排他的状態Eから無効状態Iに変更する。そして、データを読み出してきた第2プロセッサP1のキャッシュを無効状態Iから排他的状態Eに変更する。
【0053】
この状態で、第1プロセッサP0が第2プロセッサP1のキャッシュからデータを読み出してくる場合、第1プロセッサP0は第2プロセッサP1に共有リクエスト(Shared Request)を要求する(矢印丸7参照)。その後、第2プロセッサP1のキャッシュから‘abcd’のデータを読み出してくる。第1及び第2プロセッサP0、P1の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部200はスヌープバスを通じて要求されたシェアリングリクエストを感知し、感知結果を基にしてデータが読み出された第2プロセッサP1のキャッシュを排他的状態Eから共有状態Sに変更する。そして、データを読み出してきた第1プロセッサP0のキャッシュを無効状態Iから共有状態Sに変更する。
【0054】
第1及び第2プロセッサP0、P1のキャッシュのデータが共有された状態で第1プロセッサP0のキャッシュに貯蔵されたデータを‘abcd’から‘efgh’に修正しようとする場合、第1プロセッサP0はまずスヌープバスを通じて第2プロセッサP1に無効化リクエスト(Invalid Request)を伝送する(矢印丸8参照)。一貫性管理部200はスヌープバスを通じて要求された無効化リクエストを感知し、感知結果を基にして第2プロセッサP1のキャッシュを共有状態Sから無効状態Iに変更する。第1プロセッサP0のキャッシュは、第2プロセッサP1のキャッシュが無効状態Iに変更された後、第1プロセッサP0のキャッシュに貯蔵されたデータを‘abcd’から‘efgh’に修正する。その後、第1プロセッサP0のキャッシュの状態は一貫性管理部200の制御によって共有状態Sから修正状態Mに変更される。
【0055】
続いて、多重プロセッサシステムの一貫性管理に非マイグラトーリシェアリング方式が適用される場合について説明する。
【0056】
同じ初期状態で、‘abcd’のデータが貯蔵された第1プロセッサP0のキャッシュは排他的状態Eになる。そして、有効データが貯蔵されていない第2プロセッサP1のキャッシュは無効状態Iになる。この状態で、第2プロセッサP1が第1プロセッサP0のキャッシュからデータを読み出してくる場合、第2プロセッサP1は第1プロセッサP0に読み出しリクエスト(Read Request)を要求する(矢印丸9参照)。その後、第1プロセッサP0のキャッシュから‘abcd’のデータを読み出してくる。第1及び第2プロセッサP0、P1の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部200はスヌープバスを通じて要求された読み出しリクエストを感知し、感知結果を基にして読み出し動作が行なわれた第2プロセッサP1のキャッシュを無効状態Iから共有状態Sに変更する。そして、データが読み出された第1プロセッサP0のキャッシュを排他的状態Eから共有状態Sに変更する。
【0057】
第1及び第2プロセッサP0、P1のキャッシュが共有された状態で第1プロセッサP0が第2プロセッサP1のキャッシュからデータを読み出してくる場合、第1プロセッサP0は何のリクエストも発生させないで第2プロセッサP1のキャッシュから‘abcd’のデータを読み出してくる。この場合、第1及び第2プロセッサP0、P1は共有状態Sをそのまま維持する。
【0058】
第1及び第2プロセッサP0、P1のキャッシュが共有された状態で第1プロセッサP0のキャッシュに貯蔵されたデータを‘abcd’から‘efgh’に修正しようとする場合、第1プロセッサP0はまずスヌープバスを通じて第2プロセッサP1に無効化リクエスト(Invalid Request)を伝送する(矢印丸10参照)。一貫性管理部200はスヌープバスを通じて要求された無効化リクエストを感知し、感知結果を基にして第2プロセッサP1のキャッシュを共有状態Sから無効状態Iに変更する。第1プロセッサP0のキャッシュは、第2プロセッサP1のキャッシュが無効状態Iに変更された後、第1プロセッサP0のキャッシュに貯蔵されたデータを‘abcd’から‘efgh’に修正する。その後、第1プロセッサP0のキャッシュの状態は一貫性管理部200の制御によって共有状態Sから修正状態Mに変更される。
【0059】
図4に示されたように、一貫性管理にマイグラトーリシェアリング方式が適用される場合、マイグラトーリシェアリング(migratory sharing)ではないデータ(例えば、
図4の矢印丸6参照)に対する接近(例えば、読み出し動作)が行なわれるときには、不必要なトランザクション等によってピンポン現象が発生する。マイグラトーリシェアリング方式が適用される際、発生される不必要なトランザクションはFMT(false migratory transaction)と呼ばれる。
【0060】
本発明では不必要なトランザクションが連続して発生される問題を解決するために、一種類の一貫性管理方式又はプロトコルを固定して適用しないで、少なくとも2つの一貫性管理方式等(例えば、マイグラトーリシェアリング方式が適用されるものと、適用されないもの)を選択的に用いる構成を有する。このために、本発明のFMSC100はキャッシュ一貫性管理動作の際、プロセッサ等の間から発生されるピンポン現象をモニタリングし、モニタリングされた結果を基にしてマイグレーションリクエストを異なるリクエスト(例えば、共有リクエスト)に可変させる。これはキャッシュメモリ等の一貫性管理にマイグレーション(migration)方式(即ち、マイグラトーリシェアリング方式)が選択的に適用されるように一貫性管理部200の一貫性管理モードを変更することを意味する。
【0061】
図5は本発明の実施形態によるFMSC100の構成を示すブロック図である。
【0062】
図5を参考にすると、FMSC100はピンポンモニタリング部(ping−pong monitoring unit;110)、カウンティング部(counting unit;130)及びリクエスト変更部(request modifying unit;150)から構成される。
【0063】
ピンポンモニタリング部110は複数のプロセッサP0、P1に備えられている複数のコア等Core0、Core1から繰り返して発生されるトランザクションによるピンポン現象をモニタリングする。ピンポン現象はピンポンマイグレーションシーケンスの発生を感知することによってモニタリングできる。ピンポンモニタリング部110はピンポンマイグレーションシーケンスの感知結果によって一貫性管理部200の一貫性管理モードを変更する。実施形態において、ピンポンモニタリング部110から行なわれたモニタリング結果によって、多重プロセッサに適用される一貫性管理モードにマイグラトーリシェアリング方式が選択的に適用される。
【0064】
なお、ピンポンモニタリング部110は、ピンポンマイグレーションシーケンスの感知結果に応じてカウンティング部130のカウンティング動作を制御する。例えば、ピンポンモニタリング部110は、ピンポンマイグレーションシーケンスが連続して発生しない場合、カウンティング部130のカウンティング動作を初期化する。カウンティング部130はピンポンモニタリング部110から発生されたカウントアップ制御信号に応じて、ピンポンマイグレーションシーケンスの発生回数をカウントする。カウンティング部130のカウント結果はリクエスト変更部150に提供される。カウンティング部130のカウンティング値はピンポンモニタリング部110の制御によって初期化される。ピンポンモニタリング部110はカウンティング部130のカウンティング値を初期化する動作の他に、カウンティング部130のカウンティング値を増加又は減少させる制御信号(例えば、カウントアップ制御信号、カウントダウン制御信号)を発生する。このような構成によると、ピンポンモニタリング部110の制御によってカウンティング部130のカウンティング値が調節される。
【0065】
リクエスト変更部150は、複数のプロセッサP0、P1から提供されたリクエストとカウンティング部130のカウント結果に応じて、現在入力されたマイグレーションリクエストを異なる種類のリクエスト(例えば、共有リクエスト)に選択的に切り替え(replace)又は変更(modify)させる。リクエスト変更部150によって選択的に切り替え又は変更されたリクエストはスヌープバスを通じてプロセッサ等に提供される。例えば、リクエスト変更部150はカウンティング部130のカウント結果が所定の臨界値TH以上である場合、現在入力されたマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに切り替え又は変更して、前記リクエストに対応されるプロセッサに提供する。そして、リクエスト変更部150はカウンティング部130のカウント結果が所定の臨界値THより小さい場合は、現在入力されたマイグレーションリクエストをそのまま対応するプロセッサに提供する。即ち、リクエスト変更部150から出力されるリクエストは、複数のプロセッサの中で少なくとも1つから提供された元のリクエスト又はリクエスト変更部150から切り替えられたリクエストである。
【0066】
図6は
図1及び
図5に示された本発明の実施形態によるFMSC100の詳細構成図である。
【0067】
図6を参考にすると、ピンポンモニタリング部110は複数のプロセッサP0、P1から要求されたリクエスト(例えば、マイグレーションリクエスト、読み出し共有リクエスト等)に応じて、ピンポンマイグレーションシーケンスを感知する。1つのピンポンマイグレーションシーケンスは3個の状態からなる。ピンポンモニタリング部110から管理される3個の状態に対する遷移が順に行なわれた後に、始めて1個のピンポンマイグレーションシーケンスが発生されたことを認識する。ピンポンモニタリング部110は1個のピンポンマイグレーションシーケンスが発生される毎にカウンティング部130にカウントアップ制御信号を発生させる。ピンポンマイグレーションシーケンスを構成する3個の状態等と、これを制御するピンポンモニタリング部110の動作を続いて説明する。
【0068】
実施形態において、第1状態StateIはピンポンマイグレーションシーケンスの初期状態を意味する。第1状態StateIから、リクエスト変更部150を通じてマイグレーションリクエストが入力されると、ピンポンモニタリング部110はピンポンマイグレーションシーケンスの状態を第1状態StateIから第2状態StateIIに変更する。一方、第1状態StateIから、リクエスト変更部150を通じてマイグレーションリクエスト以外のリクエストが入力されると、ピンポンモニタリング部110はカウンティング部130のカウント結果をリセットする。この場合、ピンポンマイグレーションシーケンスの状態は第1状態StateIに維持される。また、ピンポンモニタリング部110は連続して発生されるピンポンマイグレーションシーケンスの個数をカウントするようにカウンティング部130のカウンティング動作を制御する。
【0069】
第2状態StateIIで、リクエスト変更部150を通じて共有リクエスト(Shared Request)が入力されると、ピンポンモニタリング部110はピンポンマイグレーションシーケンスの状態を第2状態StateIIから第3状態StateIIIに変更する。第2状態StateIIで、リクエスト変更部150を通じてマイグレーションリクエスト以外のリクエストが入力されると、ピンポンモニタリング部110はカウンティング部130のカウント結果をリセットし、ピンポンマイグレーションシーケンスの状態を第2状態StateIIから第1状態StateIに変更する。
【0070】
第3状態StateIIIで、リクエスト変更部150を通じて無効化リクエスト(Invalidate Request)が入力されると、ピンポンモニタリング部110はカウントアップ制御信号を発生してカウンティング部130のカウント結果を増加(counting up)させ、ピンポンマイグレーションシーケンスの状態を第3状態StateIIIから第1状態StateIに変更する。そして、第3状態StateIIIで、リクエスト変更部150を通じてマイグレーションリクエスト以外のリクエストが入力された場合は、ピンポンモニタリング部110はカウンティング部130のカウント結果をリセットし、ピンポンマイグレーションシーケンスの状態を第3状態StateIIIから第1状態StateIに変更する。先に説明したように、本発明の実施形態によるピンポンマイグレーションシーケンスは、初期状態である第1状態から順に第2状態及び第3状態を経て再び第1状態に戻る。このような3段階の状態遷移は1個のピンポンマイグレーションシーケンスを構成する。
【0071】
カウンティング部130は複数のカウンタ131と、レジスタ133、そして、第1判別回路135を含む。実施形態において、それぞれのカウンタ等131はそれぞれのプロセッサPi(iは正数)に備えられたキャッシュCacheiのタグラム(tag RAM)に各々対応される。カウンタ等131はサチュレーションカウンタ(saturation counter)から構成され、ピンポンマイグレーションシーケンスの連続発生回数をカウントする。カウンタからカウントされるデータ及びカウンティングされた結果のビット数は様々に構成可能である。
【0072】
レジスタ133にはカウンタ等131からカウンティングされた値と比較される所定の臨界値THが貯蔵される。実施形態において、臨界値THはアプリケーション(Application)又はオペレーティングシステム(Operating System;OS)によって設定される。臨界値THは一貫性管理モードの変更基準(例えば、マイグラトーリシェアリング方式の適用可否の基準)になる値として、許容可能なピンポンマイグレーションシーケンスの連続発生回数が貯蔵される。前記臨界値THは特定値に限定されず、多重プロセッサシステムの動作特性によって様々な値に設定及び変更可能である。
【0073】
第1判別回路135はカウンタ等131からカウンティングされた値が所定値(即ち、臨界値TH)に達したか否かを判別するよう構成される。実施形態において、第1判別回路135は、レジスタ133に貯蔵されている臨界値THとカウンタ等131からカウンティングされた値を比較して比較結果をリクエスト変更部150に提供する。第1判別回路135はカウンタ等131からカウンティングされた値がレジスタ133に貯蔵されている臨界値THと同じである場合(又は大きかったり同じである場合)、第1論理値を有する制御信号をリクエスト変更部150に提供する。そして、第1判別回路135はカウンタ等131からカウンティングされた値がレジスタ133に貯蔵されている臨界値THと同じではない場合(又は臨界値より小さい場合)、第2論理値を有する制御信号をリクエスト変更部150に提供する。
【0074】
一方、本発明のFMSC100は一貫性管理部200内に備えられる。従って、FMSC100に提供されるリクエスト及びデータ等は一貫性管理部200の内部回路(例えば、リクエスト入力部201、タグ判別部203)を通じて提供されるように構成される。リクエスト入力部201及びタグ判別部203の構成は特定形態に限らず様々に変更できる。実施形態において、
図6に示されたリクエスト入力部201及びタグ判別部203は一貫性管理部200内に備えられても良いし、FMSC100内に備えられても良い。
【0075】
リクエスト入力部201は複数のプロセッサの中で少なくとも1つから提供されるリクエストを受け入れて、これをピンポンモニタリング部110及びリクエスト変更部150に提供する。
【0076】
実施形態において、リクエスト入力部201はマルチプレクサから構成される。リクエスト入力部201の出力は一貫性管理部200に備えられたタグ判別部203から発生された選択信号によって制御される。タグ判別部203は複数のプロセッサの中で少なくとも1つから入力されたリクエストに対応するタグの値と、それぞれのプロセッサのキャッシュに対応するタグラムアレイに貯蔵されているタグ値を比較する。タグ判別部203はタグラムアレイに貯蔵されているタグ値と、入力されたリクエストに対応するタグの値が一致する場合、リクエスト入力部201がプロセッサから入力されたリクエストをピンポンモニタリング部110及びリクエスト変更部150に出力するよう選択信号を活性化する。タグ判別部203から出力される選択信号はピンポンモニタリング部110にも提供されて、リクエストが入力されたことを知らせる。
【0077】
リクエスト変更部150は第2判別回路151、論理回路153、及びリクエスト出力部155を含む。第2判別回路151はリクエスト入力部201から提供されたリクエストがマイグレーションリクエストであるか否かを判別する。論理回路153は第1判別回路135の判別結果と第2判別回路151の判別結果に対する論理演算(例えば、論理AND演算等)を行なう。論理回路153から行なわれた論理演算結果はリクエスト出力部155に選択信号として提供される。
【0078】
リクエスト出力部155は、論理回路153から提供された選択信号に応じて、リクエスト入力部201を通じて入力されたリクエストと共有リクエスト(Shared Request)の中で何れか1つを前記リクエストに対応するプロセッサに出力する。実施形態において、リクエスト出力部155はマルチプレクサから構成される。リクエスト出力部155の出力は、論理回路153から発生された選択信号によって制御される。例えば、カウンタ131からカウンティングされた結果が所定の臨界値THに達した状態でマイグレーションリクエストが入力された場合、リクエスト出力部155は論理回路153から発生された選択信号に応じてプロセッサから入力されたマイグレーションリクエストの代わりに共有リクエスト(Shared Request)を出力する。
【0079】
その他の場合、リクエスト出力部155は論理回路153から発生された選択信号に応じてリクエスト入力部201から提供されたリクエストを対応するプロセッサに出力する。
【0080】
このような構成によると、多重プロセッサ等の間から発生されるピンポン現象のモニタリング結果によってキャッシュ一貫性管理モードが可変されるだけでなく、これに対応するリクエストまたは可変された一貫性管理モードに対応するよう可変される。本発明の一貫性管理モードの可変によると、マイグラトーリシェアリング方式を選択的に用いるので、多重プロセッサ等の間に不必要なトランザクションが発生し難い。従って、プロセッサの待機時間及びバストラフィックが減少される。バストラフィックの減少はバス利用度(bus utilization)を向上できる。従って、多重プロセッサの動作性能が改善される。
【0081】
一方、本発明の実施形態において、一貫性管理モードの変換に利用される臨界値THはいつでも修正可能であるよう構成される。従って、アプリケーションが変更されても前記臨界値THは自由に変更できる。以上、説明した本発明のFMSC100はハードウェアから構成できる。しかし、これは本発明が適用される1つの例であり、本発明のFMSC100の少なくとも一部はファームウェア又はミドルウェアから構成しても良い。
【0082】
図7は本発明の実施形態による一貫性管理方法を説明するためのフローチャート図である。
【0083】
図7を参考にすると、本発明の一貫性管理方法はピンポンモニタリング部110を通じて複数のプロセッサP0、P1に備えられている複数のコア等Core0、Core1から発生されるピンポンマイグレーションシーケンスの発生様態を連続的にモニタリングする(S1100段階)。連続的なピンポンマイグレーションシーケンスのモニタリングを通じてプロセッサ等の間から発生される連続的なトランザクション、即ち、ピンポン現象がモニタリングされる。本発明の実施形態において、ピンポンマイグレーションシーケンスは3個の状態から構成される。本発明では3段階の状態等に対する遷移が1回行なわれることをピンポンマイグレーションシーケンスが1回発生することと定義する。
【0084】
S1100段階で行なわれたモニタリング結果によって、多重プロセッサに適用される一貫性管理モードにマイグラトーリシェアリング方式が選択的に適用される。一貫性管理モードの変更はピンポンモニタリング部110の制御によって行なわれる。
【0085】
連続的なピンポンマイグレーションシーケンスの発生回数はカウンティング部130を通じてカウントされる(S1300段階)。カウンティング部130のカウンティング動作はピンポンモニタリング部110によって制御される。カウンティング部130を通じてカウントされた結果は所定の臨界値THより大きい又は同じであるか否かを判別する(S1400段階)。S1400段階の判別結果、カウンティング部130のカウント結果が所定の臨界値THより大きい又は同じである場合、プロセッサから提供されたマイグレーションリクエストはリクエスト変更部150によって非マイグラトーリリクエスト、例えば、共有リクエストに切り替え(replace)又は変更(modify)される(S1500段階)。この場合、リクエスト変更部150は、プロセッサから入力されたマイグレーションリクエストの代わりにS1500段階で切り替え又は変更されたリクエストを対応するプロセッサに提供する。マイグレーションリクエストを非マイグラトーリリクエストに変更又は切り替えることは、一貫性管理モードにマイグラトーリシェアリング方式が適用されないよう制御することを意味する。一方、S1400段階の判別結果、カウンティング部130のカウント結果が所定の臨界値THより小さい場合、プロセッサから提供されたリクエストは切り替え又は変更されないまま終了される。この場合、リクエスト変更部150はプロセッサから入力されたマイグレーションリクエストを切り替え又は変更しないまま対応するプロセッサに提供する。これは、一貫性管理モードにマイグラトーリシェアリング方式が適用されるように制御することを意味する。
【0086】
前記説明から分かるように、本発明の一貫性管理方法は、ピンポンマイグレーションシーケンスの発生をモニタリングし、前記モニタリング結果を基にして一貫性管理モードを変更する。その結果、多重プロセッサ等の間に不必要なトランザクションが発生しなくなり、プロセッサの待機時間及びバストラフィックが減少する。バストラフィックの減少はバス利用度(bus utilization)を向上させる。従って、多重プロセッサの動作性能が効果的に改善される。
【0087】
以上、前記説明された実施形態等は本発明の範囲を限定するものではない。また、本発明の技術分野で通常の知識を持つ者であれば、本発明の実施形態等を様々に変形して実施できるだろう。
【0088】
従って、本発明の範囲は明細書に記載された請求範囲によって決められるべきである。