説明

マルチコアシステム

【課題】プロセッサ間ネットワークの特定のルータに負荷が集中することを軽減したマルチコアシステムを提供する。
【解決手段】プロセッサ間ネットワーク11は、各プロセッサエレメントPE0〜PE9から発せられたアクセス及び各プロセッサエレメントPE0〜PE9宛のデータを中継する複数のルータR00〜R23と、各プロセッサエレメントPE0〜PE9からのリードアクセスに応じて、アクセス対象のデータを要求元のプロセッサエレメント宛に送信する共有キャッシュメモリ12と、を備え、各ルータR00〜R23は、他のルータ又はプロセッサエレメントへ転送したデータを保持するルータ内キャッシュ機構C00〜C23と、リードアクセスが転送されてきた際にアクセス対象のデータをルータ内キャッシュ機構C00〜C23に保持している場合には、当該データを読み出して要求元のプロセッサエレメント宛に送信する手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチコアシステムに関する。
【背景技術】
【0002】
従来、複数のプロセッサエレメントと、共有キャッシュメモリとを備えたマルチコアシステムにおいては、各プロセッサと共有キャッシュメモリとは複数のルータを備えたネットワークで接続される(特許文献1参照)。共有キャッシュメモリは、ブリッジを介して外部メモリと接続される。
【0003】
このようなマルチコアシステムにおいて、各プロセッサエレメントのアクセスは、それぞれ何段かのルータを経由して共有キャッシュメモリに到達する。この場合全てのメモリアクセスが集中するため、通常は共有キャッシュメモリが接続されたルータの負荷が高くなり、これがネットワーク全体のボトルネックとなるという問題がある。
【0004】
特許文献2には、CPUと外部装置との間でのデータ転送を中継する通信制御装置にキャッシュを設け、主記憶部のディスクリプタ内のCPUが書き込んだ転送制御情報を読み出して、キャッシュメモリに書き込むことによって、CPUと通信制御装置との間のデータ転送を効率化することが開示されている。しかし、特許文献2に開示される発明をマルチコアシステムのルータに適用しても、各ルータがキャッシュメモリにデータを書き込もうとして共有キャッシュメモリや外部メモリにアクセスすることとなるため、共有キャッシュメモリに接続されたルータの負荷が高くなってしまうという上記の問題は解決されない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−54083号公報
【特許文献2】特開2000−20489号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、プロセッサ間ネットワークの特定のルータに負荷が集中することを軽減したマルチコアシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願発明の一態様によれば、複数のプロセッサエレメントと、該複数のプロセッサエレメントを結合するネットワークとを有するマルチコアシステムであって、ネットワークは、各プロセッサエレメントから発せられたアクセス及び各プロセッサエレメント宛のデータを中継する複数のルータと、各プロセッサエレメントからのアクセスに応じて、該アクセスの対象のデータを要求元のプロセッサエレメント宛に送信するアクセス処理手段と、を備え、各ルータは、他のルータ又はプロセッサエレメントへ転送したデータを保持するキャッシュ機構と、各プロセッサエレメントから発せられたアクセスが転送されてきた際に該アクセスの対象のデータをキャッシュ機構に保持している場合には、当該データをキャッシュ機構から読み出して要求元のプロセッサエレメント宛に送信する手段と、を備えることを特徴とするマルチコアシステムが提供される。
【発明の効果】
【0008】
本発明によれば、マルチコアシステムのプロセッサ間ネットワークの特定のルータに負荷が集中することを軽減できるという効果を奏する。
【図面の簡単な説明】
【0009】
【図1】図1は、本発明の第1の実施の形態に係るマルチコアシステムの構成を示すブロック図。
【図2】図2は、第1の実施の形態に係るマルチコアシステムのプロセッサ間ネットワークの概略構成を示す図。
【図3】図3は、ルータ内キャッシュ機構に格納されるデータの構造の一例を示す図。
【図4】図4は、本発明の第2の実施の形態に係るマルチコアシステムでのルータ内キャッシュ機構に格納されるデータの構造の一例を示す図。
【図5】図5は、共有キャッシュメモリに格納されたリードオンリー属性のデータに対してあるプロセッサエレメントがアクセスした状態を示す図。
【図6】図6は、共有キャッシュメモリに格納されたリードオンリー属性のデータに対して別のプロセッサエレメントがアクセスした状態を示す図。
【図7】図7は、共有キャッシュメモリに格納されたリードオンリー属性のデータに対してさらに別のプロセッサエレメントがアクセスした状態を示す図。
【図8】図8は、共有キャッシュメモリに格納されたリードオンリー属性の別のデータに対してあるプロセッサエレメントがアクセスした状態を示す図。
【図9】図9は、発明者が知得した参考例のマルチコアシステムにおけるプロセッサ間ネットワークの概略構成を示す図。
【発明を実施するための形態】
【0010】
以下に添付図面を参照して、本発明の実施の形態に係るマルチコアシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【0011】
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るマルチコアシステムの構成を示すブロック図である。マルチコアシステム1は、複数のプロセッサエレメントPE0〜PE9と共有キャッシュメモリ12とが複数のルータを備えたプロセッサ間ネットワーク11を介して接続された構成である。共有キャッシュメモリ12は、キャッシュメモリを二つ(M0、M1)備えており、ブリッジ13を介して外部メモリ2へ接続されている。
【0012】
図2に、本実施の形態に係るマルチコアシステムのプロセッサ間ネットワーク11の概略構成を示す。プロセッサ間ネットワーク11は、ルータR00〜R23が格子点の上に配置されたメッシュ状(格子状)のネットワークトポロジーである。各ルータ00〜R23は、キャッシュ機構(ルータ内キャッシュ機構C00〜C23)を備えている。ルータ内キャッシュ機構C00〜C23は、プロセッサエレメントPE0〜PE9がアクセスするリードオンリーのデータをキャッシュする。ルータ内キャッシュ機構C00〜C23の各々は、一般的なキャッシュメモリと同様に、SRAM(Static Random Access Memory)型のメモリセルとメモリコントローラとを用いて構成可能である。
【0013】
図3に、ルータ内キャッシュ機構C00〜C23に格納されるデータの構造の一例を示す。ここでは2ウェイのキャッシュを例としているが、特定のウェイ数に限定されることはない。図3に示すように、ルータ内キャッシュ機構C00〜C23は通常のプロセッサの命令キャッシュとほぼ同様の構造でデータを格納しており、ウェイの入れ替え条件を規定するリプレースビットを2ウェイ共通で持ち、有効ビット、タグアドレス、データはウェイごとに持つ。
【0014】
本実施の形態においては、ルーティングは固定とし、あるプロセッサエレメントがあるキャッシュメモリにアクセスする際の経路は常に一意に決まるものとする。プロセッサエレメントのアクセスやリードデータは、図2に示すプロセッサ間ネットワーク11内をまず横方向に移動し、その後縦方向に移動するものとする。
【0015】
具体例を挙げると、プロセッサエレメントPE0又はPE4がキャッシュメモリM1にリードアクセスする場合、PE0/PE4→R00→R01→R02→R12→R22→M1という経路でアクセスが伝わる。リードデータは逆に、M1→R22→R12→R02→R01→R00→PE0/PE4という経路でキャッシュメモリM1からプロセッサエレメントPE0又はPE4へ伝わる。
【0016】
別の一例を挙げると、プロセッサエレメントPE2がキャッシュメモリM0にリードアクセスする場合は、PE2→R02→R01→R11→R21→M0という経路でアクセスが伝わる。リードデータは逆に、M0→R21→R11→R01→R02→PE2という経路でキャッシュメモリM0からプロセッサエレメントPE2へ伝わる。
【0017】
一方、共有キャッシュメモリ12のリードオンリー属性ではない領域に対するリードアクセスは、全てが共有キャッシュメモリ12に到達し、共有キャッシュメモリ12(キャッシュメモリM0、M1)から読み出されたリードデータが要求元(リードアクセスの送信元)のプロセッサエレメントへ戻される。
【0018】
ルータ内キャッシュ機構C00〜C23は、各プロセッサエレメントPE0〜PE9のリードアクセスが共有キャッシュメモリ12のリードオンリー属性の領域に対して行われた場合に動作する。リードアクセスが共有キャッシュメモリ12のリードオンリー属性の領域に対してであるか否かは、各プロセッサエレメントのMMU(Memory Management Unit)情報などをリード要求とともに各ルータR00〜R23に伝えていくことで、ルータR00〜R23において判断する。
【0019】
いずれかのプロセッサエレメントが共有キャッシュメモリ12のリードオンリー属性の領域に対してアクセスした場合、そのアクセスは共有キャッシュメモリ12に到達するまでに通る各ルータでチェックされる。アクセスを中継するいずれかのルータがアクセスの対象のデータをルータ内キャッシュ機構C00〜C23にキャッシュしている場合には、そのルータは、アクセスの対象のデータをリードデータとして読み出して、アクセス元のプロセッサエレメント宛に送信する。途中のどのルータのルータ内キャッシュ機構C00〜C23にもアクセスの対象のデータが無かった場合には、プロセッサエレメントのリード要求は共有キャッシュメモリ12(キャッシュメモリM0、M1)まで伝わり、共有キャッシュメモリ12からリードデータが送信される。
【0020】
共有キャッシュメモリ12から送信されたリードデータ(又は、ルータ内キャッシュ機構C00〜C23でヒットしてルータR00〜R23から送信されたリードデータ)は、リードデータが通る経路上の各ルータR00〜R23のルータ内キャッシュ機構C00〜C23にキャッシュされる。
【0021】
このような動作を行うことにより、ルータ内キャッシュ機構C00〜C23でアクセスの対象のデータがヒットした場合には、リードアクセスが共有キャッシュメモリ12まで到達しないため、共有キャッシュメモリ12に接続されたルータR21、R22で起こるアクセス集中を緩和できる。
【0022】
比較のために、図9に、発明者が知得した参考例のマルチコアシステムにおけるプロセッサ間ネットワーク11’の概略構成を示す。これは、図1におけるプロセッサ間ネットワーク11に相当する構成である。このネットワーク構成においては、各プロセッサエレメントPE0’〜PE9’から共有キャッシュメモリ12’(キャッシュメモリM0’、M1’)へのアクセスは、共有キャッシュメモリ12’と直に接続されているルータ(R21’、R22’)に集中する。したがって、ルータR21’、R22’に高い負荷がかかってネットワーク全体としてのボトルネックとなる。
【0023】
なお、本実施の形態においては、共有キャッシュメモリ12のリードオンリー属性の領域に対するリードアクセスと他のアクセス(共有キャッシュメモリ12のリードオンリー属性ではない領域に対するリードアクセス、ライトアクセス)とでルーティングポリシーを変更しても良い。
例えば、上記の横方向→縦方向のルーティングポリシーを適用する場合、ルータR11は八つのプロセッサエレメント(PE0〜PE5、PE7、PE8)に関してのアクセス及びデータを中継する可能性があり、ルータR20は一つのプロセッサエレメント(PE6)に関してのアクセス及びデータを中継する可能性があることとなる。一方、縦方向→横方向のルーティングポリシーを適用した場合には、ルータR11は一つのプロセッサエレメント(PE1)に関してのアクセス及びデータを中継する可能性があり、ルータR20は四つのプロセッサエレメント(PE0、PE4〜PE6)に関してのアクセス及びデータを中継する可能性があることとなる。したがって、リードオンリー属性の領域に対するリードアクセスと他のアクセスとでルーティングポリシーを変更することで、各ルータR00〜R23にかかる負荷の差異を低減できる。
【0024】
また、マルチコアシステム1において、各プロセッサエレメントPE0〜PE9から外部メモリ2へのアクセスや外部メモリ2から各プロセッサエレメントPE0〜PE9へのデータの転送は、共有キャッシュメモリ12及びブリッジ13を介して行われる。したがって、外部メモリ2へのアクセスに関してもルータ内キャッシュ機構C00〜C23にリードデータをキャッシュすることで、共有キャッシュメモリ12に直に接続されたルータR21、R22に対するアクセス集中を緩和できる。なお、外部メモリ2が共有キャッシュメモリ12を介さずに接続された構成であっても同様である。
【0025】
このように、本実施の形態に係るマルチコアシステムは、各ルータにルータ内キャッシュ機構を設けたため、各プロセッサエレメントのリード要求が必ずしも共有キャッシュメモリまで到達するとは限らない。また、ルータ内キャッシュ機構にキャッシュされるデータは、他のルータやプロセッサエレメントへ中継したデータであり、ルータが自発的に共有キャッシュメモリにアクセスしてデータをキャッシュすることはない。このため、共有キャッシュメモリに直に接続されたルータに対するアクセス集中が緩和されるため、プロセッサ間ネットワーク全体としてのボトルネックを解消できる。
【0026】
(第2の実施の形態)
本発明の第2の実施の形態に係るマルチコアシステムについて説明する。マルチコアシステム全体の構成及びプロセッサ間ネットワークの概略構成は第1の実施の形態と同様である。ただし、本実施の形態においては、ルータ内キャッシュ機構C00〜C23の構造が第1の実施の形態とは相違する。
【0027】
図4に、ルータ内キャッシュ機構C00〜C23に格納されるデータの構造の一例を示す。本実施の形態においては、各ウェイのエントリごとにルーティング経路ビットを備える。このビットは、リードデータを転送する可能性があるルータ(又はプロセッサエレメント)の数だけあり、どの経路に対してキャッシュエントリのリードデータを転送したかを記憶する。例えば、ルータR11は、リードデータをルータR01、R10、R12に転送する可能性があるため、これらのルータに対応した3ビットのルーティング経路ビットを各ウェイのエントリに持つ。また、ルータR00は、リードデータをプロセッサエレメントPE0、PE4へ転送する可能性があるため、これらのプロセッサエレメントに対応した2ビットのルーティング経路ビットを各ウェイのエントリに持つ。
【0028】
ルーティング経路ビットの変化の一例について、図5〜図8を用いて説明する。図5〜図8は、キャッシュメモリM0に格納されたリードオンリー属性のデータdataAに対してプロセッサエレメントPE5、PE1、PE8が順番にアクセスした後に、キャッシュメモリM0に格納されたリードオンリー属性のデータdataBにプロセッサエレメントPE1がアクセスした場合の動作を時系列に沿って示すものである。なお、dataBは、ルータ内キャッシュ機構C00〜C23でdataAと同じエントリに格納されるデータ(エントリアドレスが同一のデータ)であるとする。
【0029】
図5に、キャッシュメモリM0に格納されたリードオンリー属性のデータdataAに対してプロセッサエレメントPE5がアクセスした状態を示す。プロセッサエレメントPE5がdataAにアクセスした際には、リード要求はPE5→R10→R11→R21→M0と伝わっていき、リードデータはM0→R21→R11→R10→PE5という順番で各ルータを伝わっていく。ルータR21、R11、R10では、それぞれdataAがルータ内キャッシュ機構に格納される。
【0030】
ルータR11のルータ内キャッシュ機構C11では、dataAが格納されたウェイ/エントリのルーティング経路ビットのルータR10に対応するビットに“1”が入り、他の経路であるルータR01、R12に対応するビットには“0”が入る。
【0031】
図6に、キャッシュメモリM0に格納されたリードオンリー属性のデータdataAに対してプロセッサエレメントPE1がアクセスした状態を示す。プロセッサエレメントPE1がdataAにアクセスした際には、リード要求はPE1→R01→R11と伝わっていき、ルータR11でキャッシュがヒットするため、ルータ内キャッシュ機構C11からdataAが読み出され、リードデータはR11→R01→PE1という順番で各ルータを伝わっていく。このとき、ルータR01では、dataAがルータ内キャッシュ機構C01に格納される。
【0032】
ルータR11のルータ内キャッシュ機構C11では、dataAが格納されたウェイ/エントリのルーティング経路ビットのルータR01に対応するビットが“0”から“1”へ変更される。
【0033】
図7に、キャッシュメモリM0に格納されたリードオンリー属性のデータdataAに対してプロセッサエレメントPE8がアクセスした状態を示す。プロセッサエレメントPE8がdataAにアクセスした際には、リード要求はPE8→R13→R12→R11と伝わっていき、ルータR11でキャッシュがヒットするため、ルータ内キャッシュ機構C11からdataAが読み出され、リードデータはR11→R12→R13という順番で各ルータを伝わっていく。このとき、ルータR12、R13では、dataAがルータ内のキャッシュ機構C12、C13に格納される。
【0034】
ルータR11のルータ内キャッシュ機構C11では、dataAが格納されたウェイ/エントリのルーティング経路ビットのルータR12に対応するビットが“0”から“1”へ変更される。ルータ内キャッシュ機構C11は、このタイミングにおいて、dataAが格納されたウェイ/エントリのルーティング経路ビットが3ビット全て“1”となる。3ビット全てが“1”になったということは、データの転送先となりうるルータ(ルータR10、R01、R12)にも同じデータがキャッシュされたことを示す。これは、ルータR11のルータ内キャッシュ機構にdataAをキャッシュしておく必要が無くなったことを意味する。
【0035】
図8に、キャッシュメモリM0に格納されたリードオンリー属性のデータdataBに対してプロセッサエレメントPE1がアクセスした状態を示す。プロセッサエレメントPE1がdataBにアクセスした際には、リード要求はPE1→R01→R11→R21→M0と伝わっていき、リードデータは、M0→R21→R11→R01→PE1という順番で各ルータを伝わっていく。ルータR21、R11、R01では、それぞれdataBがルータ内キャッシュ機構C21、C11、C01に格納される。
【0036】
この時点では、ルータR10、R21に関しては、dataAが格納されたウェイ/エントリのルーティング経路ビットは全て“1”になっていないため、dataBを格納するに当たってデータのリプレースが必要な場合には、リプレースされるデータは、通常のリプレースポリシー(LRU(Least Recently Used)など)が適用されて、リプレースビットに基づいて決定される。dataBが格納されたウェイ/エントリのルーティング経路ビットのルータR11又はプロセッサエレメントPE1に対応するビットには“1”が入り、他の経路であるルータR20、R22又はルータR00、R02に対応するビットには“0”が入る。
【0037】
一方、ルータR11に関しては、ルータ内キャッシュ機構C11にdataBを格納する際には、dataAに対応するルーティング経路ビットが3ビット全て“1”となっており、dataAが不要であることが分かっている。このため、dataAが入っているウェイの有効ビットが“0”(無効)となっていない限り、通常のリプレースポリシーとは関係なくdataBは必ずdataAが入っている側のウェイに格納される(換言すると、通常のルーティングポリシーとは無関係にdataAを上書きして消去する)。dataBが格納されたウェイ/エントリのルーティング経路ビットのルータR01に対応するビットには“1”が入り、他の経路であるルータR10、R12に対応するビットには“0”が入る。
【0038】
このように、本実施の形態においては、リードデータの転送先に同じ情報がキャッシュされているか否かをルーティング経路ビットに基づいて判断するため、各ルータのルータ内キャッシュ機構が同じデータを重複して持つことを減らし、ルータ内キャッシュ機構を有効に活用できる。
【0039】
以上の説明においては、ルーティング経路ビットに基づいて、データのリプレースの優先度を変更する動作について説明したが、任意のルータにおいて、ルーティング経路ビットのうちの所定の割合(例えば過半数)が“1”となったら、その時点でルーティング経路ビットが“0”のルータやプロセッサエレメントへデータを転送するように動作させることも可能である。
【0040】
なお、上記各実施の形態は本発明の実施の一例であり、本発明はこれらに限定されることはない。
例えば、上記各実施の形態においては、共有キャッシュメモリに直に接続されたルータへのアクセス集中を低減する構成を例としたが、外部メモリ(ブリッジ)や他と比べて稼働率が高いプロセッサエレメントに直に接続されたルータへのアクセスの集中を緩和する構成をとることも可能である。
また、プロセッサ間ネットワークのトポロジーは正方格子状のメッシュ型に限定されることはなく、他の形状(正方格子状ではない任意のメッシュ型、ハイパーキューブ型など)であっても良い。
このように、本発明は様々な変形が可能である。
【符号の説明】
【0041】
1 マルチコアシステム、2 外部メモリ、11 プロセッサ間ネットワーク、12 共有キャッシュメモリ、13 ブリッジ、PE0〜PE9 プロセッサエレメント、R00〜R23 ルータ、C00〜C23 ルータ内キャッシュ機構、M0、M1 キャッシュメモリ。

【特許請求の範囲】
【請求項1】
複数のプロセッサエレメントと、該複数のプロセッサエレメントを結合するネットワークとを有するマルチコアシステムであって、
前記ネットワークは、
前記各プロセッサエレメントから発せられたアクセス及び前記各プロセッサエレメント宛のデータを中継する複数のルータと、
前記各プロセッサエレメントからのアクセスに応じて、該アクセスの対象のデータを要求元のプロセッサエレメント宛に送信するアクセス処理手段と、
を備え、
前記各ルータは、
他のルータ又は前記プロセッサエレメントへ転送したデータを保持するキャッシュ機構と、
前記各プロセッサエレメントから発せられたアクセスが転送されてきた際に該アクセスの対象のデータを前記キャッシュ機構に保持している場合には、当該データを前記キャッシュ機構から読み出して要求元のプロセッサエレメント宛に送信する手段と、
を備えることを特徴とするマルチコアシステム。
【請求項2】
前記アクセス処理手段は、前記複数のプロセッサエレメントによって共有される共有メモリであることを特徴とする請求項1記載のマルチコアシステム。
【請求項3】
前記各ルータのキャッシュ機構は、前記共有メモリのリードオンリー属性の領域に対するリードアクセスの場合、該共有メモリから読み出されたデータを保持することを特徴とする請求項2記載のマルチコアシステム。
【請求項4】
前記各ルータのキャッシュ機構は、保持中の各データに関して、転送先となりうるルータ及びプロセッサエレメントの各々に当該データを転送したか否かを示すルーティング経路情報を記憶し、
前記各ルータは、前記ルーティング経路情報に基づいて、前記キャッシュ機構の動作を変更することを特徴とする請求項1から3のいずれか1項記載のマルチコアシステム。
【請求項5】
前記ルータは、前記キャッシュ機構に保持中のいずれかのデータのルーティング経路情報が、転送先となりうる全てのルータ及びプロセッサエレメントに対してデータを転送済みであることを示す全経路転送済状態となった場合には、当該データが格納されたエントリを、前記ルーティング経路情報が前記全経路転送済状態にないデータが格納されたエントリよりも優先的に書き換えることを特徴とする請求項4記載のマルチコアシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−141831(P2011−141831A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−3159(P2010−3159)
【出願日】平成22年1月8日(2010.1.8)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】