(57)【要約】  所定の基準線について反転して配置されたＣＰＵコアによって共有されるバッファ装置において、偶数ラインバッファグループを２つの偶数サブグループに分割し、分割したそれぞれの偶数サブグループを基準線と対称位置に配置するとともに、奇数ラインバッファグループを２つの奇数サブグループに分割し、分割したそれぞれの奇数サブグループを基準線と対称位置に配置するよう構成する。また、ＣＰＵコアの各ポートと各ラインバッファとを結ぶ配線上に配線切替部を設け、各配線切替部を転送データに含まれる書き込み先アドレスに基づいて切り替えるよう構成する。
2007096984.tif 000002
【特許請求の範囲】
【請求項１】
データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置であって、
各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ装置。
【請求項２】
前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、
各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする請求項１に記載のバッファ装置。
【請求項３】
各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする請求項２に記載のバッファ装置。
【請求項４】
前記奇数ラインバッファと前記偶数ラインバッファとを同数ずつ含むよう前記ラインバッファを２つのグループに分割した場合に、各グループを前記ＣＰＵコアの前記奇数ポートおよび前記偶数ポートの双方に接続する配線を、前記ＣＰＵコアがデータ転送をおこなう際に第一のグループあるいは第二のグループのいずれかに切り替える切替手段を備えたことを特徴とする請求項３に記載のバッファ装置。
【請求項５】
前記切替手段は、
前記ＣＰＵコアから出力されるデータに含まれる書き込み先アドレスに基づいて前記配線の切り替えをおこなうことを特徴とする請求項４に記載のバッファ装置。
【請求項６】
データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置におけるバッファ配置方法であって、
各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ配置方法。
【請求項７】
前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、
各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする請求項６に記載のバッファ配置方法。
【請求項８】
各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする請求項７に記載のバッファ配置方法。
【請求項９】
前記奇数ラインバッファと前記偶数ラインバッファとを同数ずつ含むよう前記ラインバッファを２つのグループに分割した場合に、各グループを前記ＣＰＵコアの前記奇数ポートおよび前記偶数ポートの双方に接続する配線を、前記ＣＰＵコアがデータ転送をおこなう際に第一のグループあるいは第二のグループのいずれかに切り替える切替工程を含んだことを特徴とする請求項８に記載のバッファ配置方法。
【請求項１０】
前記切替工程は、
前記ＣＰＵコアから出力されるデータに含まれる書き込み先アドレスに基づいて前記配線の切り替えをおこなうことを特徴とする請求項９に記載のバッファ配置方法。
【請求項１１】
データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置を備えた情報処理装置であって、
各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置する前記バッファ装置を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置、配置方法および情報処理装置に関し、特に、複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるとともに、ＣＰＵコア／ラインバッファ間の配線の干渉を低減することができるバッファ装置、バッファ配置方法および情報処理装置に関する。
【背景技術】
【０００２】
従来から、ＣＰＵコアと周辺デバイス（たとえば、キャッシュメモリや外部インタフェース）とのデータ転送は、データバッファ（以下、「バッファ装置」と記載する）を介しておこなわれることが一般的である。このバッファ装置は、データ転送元とデータ転送先とのデータパスのバス幅の差異を吸収するとともに、複数の転送データを一時的に保持するために用いられる。【０００３】
近年、ＣＰＵコアの処理速度は向上の一途をたどっており、それにともなって、ＣＰＵコアと周辺デバイスとのデータ転送速度を向上させることが求められている。このため、データ転送の並列化、バッファ装置が内蔵するバッファの並列化をおこなうことによってデータ転送速度を向上させようとする技術が種々提案されている。【０００４】
たとえば、特許文献１には、ＣＰＵコアと周辺デバイス（たとえば、キャッシュメモリや外部インタフェース）との間に設けられ、前記ＣＰＵコアが複数のラインに分割して並列出力するデータを、ラインごとに用意された複数のライン用バッファでバッファリングしたうえで周辺デバイスへ受け渡すバッファ装置に関する技術が開示されている。【０００５】
【特許文献１】特開平２−８２３３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術は、ＣＰＵコアが１つであることを前提とした技術であり、ＣＰＵコアを複数としてバッファ装置を共有しようとすると、各ＣＰＵコアと各ライン用バッファとを結ぶ配線の配線長に不均衡が生じてＣＰＵコアの処理速度が制限されるという問題が発生する。具体的には、配線長が短いほど高速なデータ転送が可能となるが、配線長にばらつきがある場合には配線長の最大値にあわせてデータ転送速度を調整する必要がある。【０００７】
たとえば、２つのＣＰＵコアをそれぞれＣＰＵコアＡ、ＣＰＵコアＢとした場合に、ＣＰＵコアＡ／各ラインバッファ間の最大配線長Ａと、ＣＰＵコアＢ／各ラインバッファ間の最大配線長Ｂとに差があると、配線長が長いほうにあわせてＣＰＵコアのデータ転送速度を低速度に抑える必要が生じる。【０００８】
ところで、ＣＰＵチップの信頼性を向上させるためには、配線数を削減することによって配線同士の干渉を極力回避することが望ましい、しかし、ＣＰＵコアを複数としてバッファ装置を共有する場合には必然的に配線の干渉が発生しやすいという問題もある。【０００９】
これらのことから、複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるとともに、ＣＰＵコア／ラインバッファ間の配線の干渉を低減することができるバッファ装置をいかにして実現するかが大きな課題となっている。【００１０】
本発明は、上述した従来技術の課題を解決するためになされたものであり、複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるとともに、ＣＰＵコア／ラインバッファ間の配線の干渉を低減することができるバッファ装置、バッファ配置方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とする。【００１２】
また、本発明は、上記の発明において、前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする。【００１３】
また、本発明は、上記の発明において、各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする。【００１４】
また、本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置におけるバッファ配置方法であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とする。【００１５】
また、本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置を備えた情報処理装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置する前記バッファ装置を備えたことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、各ＣＰＵコアにおける同一のポートとそれぞれ接続されたラインバッファを二個一組としたうえで、各組に含まれるラインバッファを基準線について対称にそれぞれ配置するよう構成したので、総体的にみて、ラインバッファが特定のＣＰＵコアには近いけれども他のＣＰＵコアからは遠いという状況を回避することができる。したがって、バッファ装置が複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるという効果を奏する。【００１７】
また、本発明によれば、ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける奇数ポートと接続される奇数ラインバッファを基準線について対称に配置するとともに、偶数ポートと接続される偶数ラインバッファを基準線について対称に配置するよう構成したので、ＣＰＵコアが奇数ポートおよび偶数ポートの２つのポートを備える場合において、ＣＰＵコアにおけるポートと各ラインバッファとの配線距離のばらつきを効果的に低減することが可能である。したがって、高速なデータ転送をおこなうことができるという効果を奏する。【００１８】
また、本発明によれば、各ＣＰＵコアにおける偶数ポートが基準線側に配置される場合には奇数ラインバッファを基準線側に配置するとともに、奇数ポートが基準線側に配置される場合には偶数ラインバッファを基準線側に配置するよう構成したので、ＣＰＵコアにおける奇数ポートおよび偶数ポートの配置とクロスする形で奇数ラインバッファおよび偶数ラインバッファを配置することによって、ＣＰＵコアにおけるポートと各ラインバッファとの配線距離のばらつきをさらに低減することができるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】図１は、バッファ装置を含む情報処理装置の構成を示すブロック図である。
【図２】図２は、本発明に係るバッファ配置手法を示す図である。
【図３】図３は、配線切替機能を備えたバッファ装置を示す図である。
【図４】図４は、配線切替時に参照するデータの一例を示す図である。
【図５】図５は、従来技術に係るバッファ配置その１を示す図である。
【図６】図６は、従来技術に係るバッファ配置その２を示す図である。
【符号の説明】
【００２０】
１１、１２  バッファ装置
１２ｅ、１２ｆ、１２ｇ、１２ｈ  配線切替部
１００  ＣＰＵチップ
１０１、１０２  ＣＰＵコア
１０１ａ、１０２ａ  偶数ポート
１０１ｂ、１０２ｂ  奇数ポート
１０２  キャッシュメモリ
１０３  外部インタフェース
１０４ａ、１０４ｂ、１０４ｃ  データバッファ
２０１、２０２  従来技術に係るバッファ装置
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、本発明に係るバッファ装置、バッファ配置方法および情報処理装置の好適な実施例を詳細に説明する。なお、以下では、２つのＣＰＵコアを搭載したＣＰＵチップに設けられるバッファ装置について説明する。
【実施例】
【００２２】
まず、バッファ装置の用途およびＣＰＵチップ内の位置付けについて図１を用いて説明する。図１は、バッファ装置を含む情報処理装置の構成を示すブロック図である。同図に示すように、ＣＰＵチップ１００は、ＣＰＵコア１０１、キャッシュメモリ１０２、外部インタフェース１０３といったデバイスを基板上に配置することによって構成されており、各デバイス間にはバッファ装置（１０４ａ〜１０４ｃ）がそれぞれ設けられる。そして、ＣＰＵコア１０１、キャッシュメモリ１０２、外部インタフェース１０の間におけるデータのやりとりは、それぞれのバッファ装置（１０４ａ〜１０４ｃ）を介しておこなわれる。なお、図１では、ＣＰＵコア１０１を１つだけ備えたＣＰＵチップ１００を示している。【００２３】
ここで、バッファ装置とは、データ伝送元からのデータパスとデータ転送先へのデータパスとのバス幅を吸収するとともに、伝送されるデータを一時的に保持するために用いられる。また、各バッファ装置は、並列転送されるデータを受け渡しするために、内部に複数のバッファを有するものが従来から用いられている。本発明に係るバッファ配置手法は、バッファ装置における各バッファの配置および配線の配置を工夫することによって、データ転送効率を高めた点に主な特徴がある。【００２４】
なお、以下の説明においては、図１に示したバッファ装置１０４ａ、すなわち、ＣＰＵコア１０１からキャッシュメモリ１０２へ伝送されるデータのバッファリングをおこなうバッファ装置を例にとって説明することとする。【００２５】
本発明に係るバッファ配置手法についての説明に先だって、従来技術に係るバッファの配置について図５および図６を用いて説明する。図５および図６は、それぞれ、従来技術に係るバッファ配置その１およびその２を示す図である。なお、図５ではＣＰＵコアが１つである場合におけるバッファ配置を示しており、図６では２つのＣＰＵコアから共有される場合におけるバッファ配置を示している。【００２６】
図５に示すように、従来技術に係るバッファ装置２０１は、ＣＰＵコア１０１とキャッシュメモリ１０２との間に設けられる。なお、同図に示すＣＰＵコア１０１は、たとえば、６４バイトのデータブロックを８バイトのライン８つに分割したうえで、偶数ライン用の偶数ポート１０１ａおよび奇数ライン用の奇数ポート１０１ｂを介してキャッシュメモリ１０２へ向けて転送する。そして、ＣＰＵコア１０１が出力したデータをバッファリングするバッファ装置２０１は、各ラインに対応した８つのバッファ（以下、「ラインバッファ」と記載する）でデータをバッファリングする。【００２７】
ここで、ＣＰＵコア１０１がバッファ装置２０１を介してキャッシュメモリ１０２へ転送するデータ受け渡しの単位についてさらに詳細に説明しておく。データの受け渡し単位（データブロック）を６４バイトとすると、ＣＰＵコア１０１は、この６４バイトのデータブロックを８バイト単位で区切り、アドレスの若い順からそれぞれライン０、ライン１、ライン２、・・・、ライン７というように８つのラインとする。【００２８】
そして、ＣＰＵコア１０１は、偶数ポート１０１ａ（８バイト幅のデータパス）および奇数ポート１０１ｂ（８バイト幅のデータパス）からなる１６バイト幅のデータパスを用いることによって、６４バイトのデータブロックを４サイクルで出力する。すなわち、偶数ポート１０１ａおよび奇数ポート１０１ｂを用いることによって、それぞれ、ライン０およびライン１、ライン２およびライン３、ライン４およびライン５、ライン６およびライン８のように偶数ラインおよび奇数ラインのデータを同時に出力する。なお、バッファ装置２０１の各ラインバッファに保持されたデータは、キャッシュメモリ１０２に対して１サイクル、すなわち、６４バイト同時に出力される。【００２９】
同図に示したように、ＣＰＵコア１０１の偶数ポート１０１ａ（ライン０、２、４および６を出力するポート）から出力されたデータは、バッファ装置２０１の偶数ラインバッファグループ２０１ａ（バッファ０、２、４および６）を介してキャッシュメモリ１０２へと転送される。また、奇数ポート１０１ｂ（ライン１、３、５および７を出力するポート）から出力されたデータは、奇数ライン用バッファグループ２０１ｂ（バッファ１、３、５および７）を介して同様に転送される。【００３０】
このように、ＣＰＵコアが１つである場合には、ＣＰＵコア１０１の各ポートとバッファ装置２０１の各ラインバッファとを結ぶ配線は簡略であるとともに、各ポートと各ラインバッファとの配線距離の差異も微小であった。しかしながら、２つのＣＰＵコアから共有されるバッファ装置を、図５に示したラインバッファと同一の配置を用いて構成する場合には、図６に示すような問題点が発生する。【００３１】
図６に示すように、２つのＣＰＵコアから共有されるバッファ装置２０２は、図５に示した場合と同様に０から７までの８つのラインバッファを備えている。そして、各ラインバッファはＣＰＵコア１０１およびＣＰＵコア１０２の双方に接続される。【００３２】
なお、同図においては、ＣＰＵコア１０１と各ラインバッファとを結ぶ配線を実線で、ＣＰＵコア１０２と各ラインバッファとを結ぶ配線を破線で、それぞれ示している。また、各ＣＰＵコア（１０１および１０２）は、２つのＣＰＵコアが隣接する部分（基準線）について対称に（反転して）設けられる。このようにＣＰＵコアを反転させるのは、２つのＣＰＵコアが隣接する部分に設けられた図示しないインタフェース部分を対向させるためである。【００３３】
同図に示したように、バッファ装置２０２における各ラインバッファの配置を図５と同様とすると、ＣＰＵコア１０１の偶数ポート１０１ａと偶数ラインバッファグループ２０２ａとの配線距離は全体としてみると短くなるが、ＣＰＵコア１０２の偶数ポート１０２ａと偶数ラインバッファグループ２０２ａとの配線距離は全体としてみると長くなる。また、各ＣＰＵコアと奇数ラインバッファグループ２０２ｂとの配線距離についても同じことがいえる。このように、ＣＰＵコアコア間において配線距離の差異が大きくなると、最も長い配線距離に合わせるようにデータ転送を待ち合わせる必要があるので結果的にデータ転送速度が遅くなってしまうという問題があった。また、同図に示したように、各ポートと各ラインバッファとを結ぶ配線が基準線に対して対称とならないという問題もあった。【００３４】
そこで、本発明に係るバッファ配置手法では、各ラインバッファの配置を工夫することによって上記した配線距離の差異を抑制することとしている。したがって、本発明に係るバッファ配置手法を用いることとすれば、複数のＣＰＵコアから共有される場合であっても高速なデータ転送をおこなうことができるバッファ装置を実現することができる。【００３５】
次に、本発明に係るバッファ配置手法について図２を用いて説明する。図２は、本発明に係るバッファ配置手法を示す図である。なお、同図においては、本発明に係るバッファ配置手法によって配置されたラインバッファを有するバッファ装置１１を示している。【００３６】
同図に示すように、バッファ装置１１は、各ラインバッファを１１ａ〜１１ｄの４つのグループに分けて配置している。具体的には、図５や図６に示した偶数ラインバッファグループ（２０１ａや２０２ａ）を２つのサブグループに分割するとともに、奇数ラインバッファグループ（２０１ｂや２０２ｂ）を２つのサブグループに分割し、偶数サブグループ（１１ａおよび１１ｂ）を基準線側に、奇数サブグループ（１１ｃおよび１１ｄ）を外側にそれぞれ配置している。【００３７】
すなわち、同図に示したバッファ装置１１では、同図の上側から下側に向かって、奇数サブグループ１１ｄ（バッファ３およびバッファ７）、偶数サブグループ１１ａ（バッファ０およびバッファ４）、偶数サブグループ１１ｂ（バッファ２およびバッファ６）、奇数サブグループ１１ｃ（バッファ１およびバッファ５）をそれぞれ配置している。なお、図２においては、各ＣＰＵコアの奇数ポートが基準線側にあるため偶数サブグループを基準線側に配置したが、各ＣＰＵコアの偶数ポートが基準線側にある場合には奇数サブグループを基準線側に配置すればよい。【００３８】
このように、偶数ラインバッファグループを２つの偶数サブグループに分割し、分割したそれぞれの偶数サブグループを基準線と対称位置に配置するとともに、奇数ラインバッファグループを２つの奇数サブグループに分割し、分割したそれぞれの奇数サブグループを基準線と対称位置に配置することによって、各ポートと各ラインバッファとを結ぶ配線を基準線に対して対称とすることができるとともに、各ＣＰＵコア間で配線距離の差異が大きくなる（図６参照）という問題を回避することができる。【００３９】
なお、図２においては、偶数ラインバッファグループに含まれる４つのラインバッファを、それぞれ２つのラインバッファを含む偶数サブグループに分割するとともに、奇数ラインバッファグループに含まれる４つのラインバッファを、それぞれ２つのラインバッファを含む奇数サブグループに分割する場合について示した。しかしながら、各ラインバッファグループに含まれるラインバッファ数や、各サブグループに含まれるラインバッファ数を限定するものではない。【００４０】
また、図２においては、各ラインバッファグループをさらにサブグループに分割したうえで、奇数グループから分割した各サブグループを基準線から等距離となるように配置するとともに、偶数グループから分割した各サブグループを基準線から等距離となるように配置することを説明した。【００４１】
しかしながら、サブグループという概念を用いることなく各ラインバッファを配置することもできる。すなわち、偶数ライン用のラインバッファの中から任意に２つのラインバッファを選択し、選択したラインバッファを基準線と対称位置に配置していく。また、奇数ライン用のラインバッファについても同様の手順で配置していく。このようにすることで、偶数ラインバッファと奇数ラインバッファとを基準線について対称位置に配置することができる。【００４２】
次に、図２に示したバッファ装置１１に配線切替機能を付加したバッファ装置１２について図３および図４を用いて説明する。図３は、配線切替機能を備えたバッファ装置１２を示す図であり、図４は、配線切替時に参照するデータの一例を示す図である。【００４３】
図３に示すように、バッファ装置１２は、配線切替部１２ｅ〜１２ｈを備えている。なお、同図に示す各サブグループ１２ａ〜１２ｄは、それぞれ、図２の１１ａ〜１１ｄに対応している。【００４４】
配線切替部１２ｅ〜１２ｈは、一端に１つの配線が接続されるとともに他端には２つの配線が接続されており、他端に接続された２つの配線のうちいずれかに配線を切り替える制御をおこなう論理素子である。このように、配線切替部１２ｅ〜１２ｈを用いることで基準線上における配線の交点（基準線上における実線と破線との交点）を減少させることができる。【００４５】
具体的には、図２に示したバッファ装置１１では、基準線上における配線の交点が２箇所あった。しかし、同一のＣＰＵコアから出力される配線は、奇数ラインと偶数ラインとが同時に有効になることはない。したがって、図３に示すように各配線上に配線切替部を設けることとすれば、基準線上の交点を１箇所にすることができる。【００４６】
このように、ＣＰＵコアの各ポートと各ラインバッファとを結ぶ配線上に配線切替部を設けることとすれば、配線量を増やすことなくラインバッファおよび配線の対称性を維持することができる。なお、各配線切替部は論理素子として構成されるので、配線上に通常設けられるアンプをこの論理素子とすることで容易に配線切替部を備えたバッファ装置１２を実現することができる。【００４７】
ところで、図３に示した配線切替部１２ｅ〜１２ｈの切替は、ＣＰＵコアから受け取るデータの書き込み先アドレスの所定部分を用いておこなう。そこで、以下では配線切替時に参照するデータの例について図５を用いて説明する。なお、図４の４１にはＣＰＵ１０１（ｃｏｒｅ０）が出力するデータの書き込み先アドレスのビット４の値と、このビット４に応じたデータバッファ（ラインバッファ）の切替との関係を示している。また、図４の４２にはＣＰＵ１０２（ｃｏｒｅ１）について同様の関係を示している。【００４８】
図４に示すように、各ＣＰＵコアから６４バイトのデータが１６バイト単位（奇数ポートおよび偶数ポートで各８バイト）で出力される場合、出力されたデータが書き込まれるべきアドレス（Ａｄｒｓ）のビット４の値に応じて出力先データバッファ（ＤａｔａＢｕｆｆｅｒ）の切り替えをおこなう。【００４９】
たとえば、ＣＰＵコア０（ｃｏｒｅ０）からライン０およびライン１のデータを出力する場合に、このデータの書き込み先アドレス（Ａｄｒｓ）のビット４の値は０であるので、偶数ラインの出力データをデータバッファのライン０３４７側に、奇数ラインの出力データをデータバッファのライン１２５６側にそれぞれ切り替える。なお、かかる切替指示は、各ＣＰＵコアがバッファ装置に対しておこなうこととしてもよいし、各ＣＰＵコアが隣接する部分に設けられた図示しないインタフェース部が切替指示をおこなうこととしてもよい。【００５０】
なお、図４では、ＣＰＵコアが２つの場合について説明したが、ＣＰＵコア数が増えたり、出力データパスのバス幅が変わったりした場合であっても、出力先データバッファの切り替えに用いるアドレス値を変えるだけで対応することができる。【００５１】
上述してきたように、本実施例では、所定の基準線について反転して配置されたＣＰＵコアによって共有されるバッファ装置において、偶数ラインバッファグループを２つの偶数サブグループに分割し、分割したそれぞれの偶数サブグループを基準線と対称位置に配置するとともに、奇数ラインバッファグループを２つの奇数サブグループに分割し、分割したそれぞれの奇数サブグループを基準線と対称位置に配置するよう構成した。したがって、ラインバッファが特定のＣＰＵコアには近いけれども他のＣＰＵコアからは遠いという状況を回避することによって、バッファ装置が複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができる。【００５２】
また、ＣＰＵコアの各ポートと各ラインバッファとを結ぶ配線上に配線切替部を設け、各配線切替部を転送データに含まれる書き込み先アドレスに基づいて切り替えるよう構成したので、配線量を増やすことなくラインバッファおよび配線の対称性を維持することができる。【００５３】
（付記１）データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ装置。【００５４】
（付記２）前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする付記１に記載のバッファ装置。【００５５】
（付記３）各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする付記２に記載のバッファ装置。【００５６】
（付記４）前記奇数ラインバッファと前記偶数ラインバッファとを同数ずつ含むよう前記ラインバッファを２つのグループに分割した場合に、各グループを前記ＣＰＵコアの前記奇数ポートおよび前記偶数ポートの双方に接続する配線を、前記ＣＰＵコアがデータ転送をおこなう際に第一のグループあるいは第二のグループのいずれかに切り替える切替手段を備えたことを特徴とする付記３に記載のバッファ装置。【００５７】
（付記５）前記切替手段は、前記ＣＰＵコアから出力されるデータに含まれる書き込み先アドレスに基づいて前記配線の切り替えをおこなうことを特徴とする付記４に記載のバッファ装置。【００５８】
（付記６）データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置におけるバッファ配置方法であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ配置方法。【００５９】
（付記７）前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする付記６に記載のバッファ配置方法。【００６０】
（付記８）各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする付記７に記載のバッファ配置方法。【００６１】
（付記９）前記奇数ラインバッファと前記偶数ラインバッファとを同数ずつ含むよう前記ラインバッファを２つのグループに分割した場合に、各グループを前記ＣＰＵコアの前記奇数ポートおよび前記偶数ポートの双方に接続する配線を、前記ＣＰＵコアがデータ転送をおこなう際に第一のグループあるいは第二のグループのいずれかに切り替える切替工程を含んだことを特徴とする付記８に記載のバッファ配置方法。【００６２】
（付記１０）前記切替工程は、前記ＣＰＵコアから出力されるデータに含まれる書き込み先アドレスに基づいて前記配線の切り替えをおこなうことを特徴とする付記９に記載のバッファ配置方法。【００６３】
（付記１１）データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置を備えた情報処理装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置する前記バッファ装置を備えたことを特徴とする情報処理装置。
【産業上の利用可能性】
【００６４】
以上のように、本発明に係るバッファ装置、バッファ配置方法および情報処理装置は、各ＣＰＵコアと各ラインバッファとを結ぶ配線における配線長のばらつきを抑制したい場合やＣＰＵコア／ラインバッファ間の配線の干渉を低減したい場合に有用であり、特に、複数のＣＰＵコアから共有されるバッファ装置の転送速度を向上させたい場合に適している。
【図１】
2007096984.tif 000003
【図２】
2007096984.tif 000004
【図３】
2007096984.tif 000005
【図４】
2007096984.tif 000006
【図５】
2007096984.tif 000007
【図６】
2007096984.tif 000008
【手続補正書】
【提出日】平成20年4月25日(2008.4.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置であって、
各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ装置。
【請求項２】
前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、
各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする請求項１に記載のバッファ装置。
【請求項３】
各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする請求項２に記載のバッファ装置。
【請求項４】
データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置におけるバッファ配置方法であって、
各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ配置方法。
【請求項５】
データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置を備えた情報処理装置であって、
各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置する前記バッファ装置を備えたことを特徴とする情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置、配置方法および情報処理装置に関し、特に、複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるとともに、ＣＰＵコア／ラインバッファ間の配線の干渉を低減することができるバッファ装置、バッファ配置方法および情報処理装置に関する。
【背景技術】
【０００２】
従来から、ＣＰＵコアと周辺デバイス（たとえば、キャッシュメモリや外部インタフェース）とのデータ転送は、データバッファ（以下、「バッファ装置」と記載する）を介しておこなわれることが一般的である。このバッファ装置は、データ転送元とデータ転送先とのデータパスのバス幅の差異を吸収するとともに、複数の転送データを一時的に保持するために用いられる。
【０００３】
近年、ＣＰＵコアの処理速度は向上の一途をたどっており、それにともなって、ＣＰＵコアと周辺デバイスとのデータ転送速度を向上させることが求められている。このため、データ転送の並列化、バッファ装置が内蔵するバッファの並列化をおこなうことによってデータ転送速度を向上させようとする技術が種々提案されている。
【０００４】
たとえば、特許文献１には、ＣＰＵコアと周辺デバイス（たとえば、キャッシュメモリや外部インタフェース）との間に設けられ、前記ＣＰＵコアが複数のラインに分割して並列出力するデータを、ラインごとに用意された複数のライン用バッファでバッファリングしたうえで周辺デバイスへ受け渡すバッファ装置に関する技術が開示されている。
【０００５】
【特許文献１】特開平２−８２３３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術は、ＣＰＵコアが１つであることを前提とした技術であり、ＣＰＵコアを複数としてバッファ装置を共有しようとすると、各ＣＰＵコアと各ライン用バッファとを結ぶ配線の配線長に不均衡が生じてＣＰＵコアの処理速度が制限されるという問題が発生する。具体的には、配線長が短いほど高速なデータ転送が可能となるが、配線長にばらつきがある場合には配線長の最大値にあわせてデータ転送速度を調整する必要がある。
【０００７】
たとえば、２つのＣＰＵコアをそれぞれＣＰＵコアＡ、ＣＰＵコアＢとした場合に、ＣＰＵコアＡ／各ラインバッファ間の最大配線長Ａと、ＣＰＵコアＢ／各ラインバッファ間の最大配線長Ｂとに差があると、配線長が長いほうにあわせてＣＰＵコアのデータ転送速度を低速度に抑える必要が生じる。
【０００８】
ところで、ＣＰＵチップの信頼性を向上させるためには、配線数を削減することによって配線同士の干渉を極力回避することが望ましい、しかし、ＣＰＵコアを複数としてバッファ装置を共有する場合には必然的に配線の干渉が発生しやすいという問題もある。
【０００９】
これらのことから、複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるとともに、ＣＰＵコア／ラインバッファ間の配線の干渉を低減することができるバッファ装置をいかにして実現するかが大きな課題となっている。
【００１０】
本発明は、上述した従来技術の課題を解決するためになされたものであり、複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるとともに、ＣＰＵコア／ラインバッファ間の配線の干渉を低減することができるバッファ装置、バッファ配置方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とする。
【００１２】
また、本発明は、上記の発明において、前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする。
【００１３】
また、本発明は、上記の発明において、各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする。
【００１４】
また、本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置におけるバッファ配置方法であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とする。
【００１５】
また、本発明は、データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置を備えた情報処理装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置する前記バッファ装置を備えたことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、各ＣＰＵコアにおける同一のポートとそれぞれ接続されたラインバッファを二個一組としたうえで、各組に含まれるラインバッファを基準線について対称にそれぞれ配置するよう構成したので、総体的にみて、ラインバッファが特定のＣＰＵコアには近いけれども他のＣＰＵコアからは遠いという状況を回避することができる。したがって、バッファ装置が複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができるという効果を奏する。
【００１７】
また、本発明によれば、ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける奇数ポートと接続される奇数ラインバッファを基準線について対称に配置するとともに、偶数ポートと接続される偶数ラインバッファを基準線について対称に配置するよう構成したので、ＣＰＵコアが奇数ポートおよび偶数ポートの２つのポートを備える場合において、ＣＰＵコアにおけるポートと各ラインバッファとの配線距離のばらつきを効果的に低減することが可能である。したがって、高速なデータ転送をおこなうことができるという効果を奏する。
【００１８】
また、本発明によれば、各ＣＰＵコアにおける偶数ポートが基準線側に配置される場合には奇数ラインバッファを基準線側に配置するとともに、奇数ポートが基準線側に配置される場合には偶数ラインバッファを基準線側に配置するよう構成したので、ＣＰＵコアにおける奇数ポートおよび偶数ポートの配置とクロスする形で奇数ラインバッファおよび偶数ラインバッファを配置することによって、ＣＰＵコアにおけるポートと各ラインバッファとの配線距離のばらつきをさらに低減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、本発明に係るバッファ装置、バッファ配置方法および情報処理装置の好適な実施例を詳細に説明する。なお、以下では、２つのＣＰＵコアを搭載したＣＰＵチップに設けられるバッファ装置について説明する。
【実施例】
【００２０】
まず、バッファ装置の用途およびＣＰＵチップ内の位置付けについて図１を用いて説明する。図１は、バッファ装置を含む情報処理装置の構成を示すブロック図である。同図に示すように、ＣＰＵチップ１００は、ＣＰＵコア１０１、キャッシュメモリ１０２、外部インタフェース１０３といったデバイスを基板上に配置することによって構成されており、各デバイス間にはバッファ装置（１０４ａ〜１０４ｃ）がそれぞれ設けられる。そして、ＣＰＵコア１０１、キャッシュメモリ１０２、外部インタフェース１０の間におけるデータのやりとりは、それぞれのバッファ装置（１０４ａ〜１０４ｃ）を介しておこなわれる。なお、図１では、ＣＰＵコア１０１を１つだけ備えたＣＰＵチップ１００を示している。
【００２１】
ここで、バッファ装置とは、データ伝送元からのデータパスとデータ転送先へのデータパスとのバス幅を吸収するとともに、伝送されるデータを一時的に保持するために用いられる。また、各バッファ装置は、並列転送されるデータを受け渡しするために、内部に複数のバッファを有するものが従来から用いられている。本発明に係るバッファ配置手法は、バッファ装置における各バッファの配置および配線の配置を工夫することによって、データ転送効率を高めた点に主な特徴がある。
【００２２】
なお、以下の説明においては、図１に示したバッファ装置１０４ａ、すなわち、ＣＰＵコア１０１からキャッシュメモリ１０２へ伝送されるデータのバッファリングをおこなうバッファ装置を例にとって説明することとする。
【００２３】
本発明に係るバッファ配置手法についての説明に先だって、従来技術に係るバッファの配置について図５および図６を用いて説明する。図５および図６は、それぞれ、従来技術に係るバッファ配置その１およびその２を示す図である。なお、図５ではＣＰＵコアが１つである場合におけるバッファ配置を示しており、図６では２つのＣＰＵコアから共有される場合におけるバッファ配置を示している。
【００２４】
図５に示すように、従来技術に係るバッファ装置２０１は、ＣＰＵコア１０１とキャッシュメモリ１０２との間に設けられる。なお、同図に示すＣＰＵコア１０１は、たとえば、６４バイトのデータブロックを８バイトのライン８つに分割したうえで、偶数ライン用の偶数ポート１０１ａおよび奇数ライン用の奇数ポート１０１ｂを介してキャッシュメモリ１０２へ向けて転送する。そして、ＣＰＵコア１０１が出力したデータをバッファリングするバッファ装置２０１は、各ラインに対応した８つのバッファ（以下、「ラインバッファ」と記載する）でデータをバッファリングする。
【００２５】
ここで、ＣＰＵコア１０１がバッファ装置２０１を介してキャッシュメモリ１０２へ転送するデータ受け渡しの単位についてさらに詳細に説明しておく。データの受け渡し単位（データブロック）を６４バイトとすると、ＣＰＵコア１０１は、この６４バイトのデータブロックを８バイト単位で区切り、アドレスの若い順からそれぞれライン０、ライン１、ライン２、・・・、ライン７というように８つのラインとする。
【００２６】
そして、ＣＰＵコア１０１は、偶数ポート１０１ａ（８バイト幅のデータパス）および奇数ポート１０１ｂ（８バイト幅のデータパス）からなる１６バイト幅のデータパスを用いることによって、６４バイトのデータブロックを４サイクルで出力する。すなわち、偶数ポート１０１ａおよび奇数ポート１０１ｂを用いることによって、それぞれ、ライン０およびライン１、ライン２およびライン３、ライン４およびライン５、ライン６およびライン８のように偶数ラインおよび奇数ラインのデータを同時に出力する。なお、バッファ装置２０１の各ラインバッファに保持されたデータは、キャッシュメモリ１０２に対して１サイクル、すなわち、６４バイト同時に出力される。
【００２７】
同図に示したように、ＣＰＵコア１０１の偶数ポート１０１ａ（ライン０、２、４および６を出力するポート）から出力されたデータは、バッファ装置２０１の偶数ラインバッファグループ２０１ａ（バッファ０、２、４および６）を介してキャッシュメモリ１０２へと転送される。また、奇数ポート１０１ｂ（ライン１、３、５および７を出力するポート）から出力されたデータは、奇数ライン用バッファグループ２０１ｂ（バッファ１、３、５および７）を介して同様に転送される。
【００２８】
このように、ＣＰＵコアが１つである場合には、ＣＰＵコア１０１の各ポートとバッファ装置２０１の各ラインバッファとを結ぶ配線は簡略であるとともに、各ポートと各ラインバッファとの配線距離の差異も微小であった。しかしながら、２つのＣＰＵコアから共有されるバッファ装置を、図５に示したラインバッファと同一の配置を用いて構成する場合には、図６に示すような問題点が発生する。
【００２９】
図６に示すように、２つのＣＰＵコアから共有されるバッファ装置２０２は、図５に示した場合と同様に０から７までの８つのラインバッファを備えている。そして、各ラインバッファはＣＰＵコア１０１およびＣＰＵコア１０２の双方に接続される。
【００３０】
なお、同図においては、ＣＰＵコア１０１と各ラインバッファとを結ぶ配線を実線で、ＣＰＵコア１０２と各ラインバッファとを結ぶ配線を破線で、それぞれ示している。また、各ＣＰＵコア（１０１および１０２）は、２つのＣＰＵコアが隣接する部分（基準線）について対称に（反転して）設けられる。このようにＣＰＵコアを反転させるのは、２つのＣＰＵコアが隣接する部分に設けられた図示しないインタフェース部分を対向させるためである。
【００３１】
同図に示したように、バッファ装置２０２における各ラインバッファの配置を図５と同様とすると、ＣＰＵコア１０１の偶数ポート１０１ａと偶数ラインバッファグループ２０２ａとの配線距離は全体としてみると短くなるが、ＣＰＵコア１０２の偶数ポート１０２ａと偶数ラインバッファグループ２０２ａとの配線距離は全体としてみると長くなる。また、各ＣＰＵコアと奇数ラインバッファグループ２０２ｂとの配線距離についても同じことがいえる。このように、ＣＰＵコアコア間において配線距離の差異が大きくなると、最も長い配線距離に合わせるようにデータ転送を待ち合わせる必要があるので結果的にデータ転送速度が遅くなってしまうという問題があった。また、同図に示したように、各ポートと各ラインバッファとを結ぶ配線が基準線に対して対称とならないという問題もあった。
【００３２】
そこで、本発明に係るバッファ配置手法では、各ラインバッファの配置を工夫することによって上記した配線距離の差異を抑制することとしている。したがって、本発明に係るバッファ配置手法を用いることとすれば、複数のＣＰＵコアから共有される場合であっても高速なデータ転送をおこなうことができるバッファ装置を実現することができる。
【００３３】
次に、本発明に係るバッファ配置手法について図２を用いて説明する。図２は、本発明に係るバッファ配置手法を示す図である。なお、同図においては、本発明に係るバッファ配置手法によって配置されたラインバッファを有するバッファ装置１１を示している。
【００３４】
同図に示すように、バッファ装置１１は、各ラインバッファを１１ａ〜１１ｄの４つのグループに分けて配置している。具体的には、図５や図６に示した偶数ラインバッファグループ（２０１ａや２０２ａ）を２つのサブグループに分割するとともに、奇数ラインバッファグループ（２０１ｂや２０２ｂ）を２つのサブグループに分割し、偶数サブグループ（１１ａおよび１１ｂ）を基準線側に、奇数サブグループ（１１ｃおよび１１ｄ）を外側にそれぞれ配置している。
【００３５】
すなわち、同図に示したバッファ装置１１では、同図の上側から下側に向かって、奇数サブグループ１１ｄ（バッファ３およびバッファ７）、偶数サブグループ１１ａ（バッファ０およびバッファ４）、偶数サブグループ１１ｂ（バッファ２およびバッファ６）、奇数サブグループ１１ｃ（バッファ１およびバッファ５）をそれぞれ配置している。なお、図２においては、各ＣＰＵコアの奇数ポートが基準線側にあるため偶数サブグループを基準線側に配置したが、各ＣＰＵコアの偶数ポートが基準線側にある場合には奇数サブグループを基準線側に配置すればよい。
【００３６】
このように、偶数ラインバッファグループを２つの偶数サブグループに分割し、分割したそれぞれの偶数サブグループを基準線と対称位置に配置するとともに、奇数ラインバッファグループを２つの奇数サブグループに分割し、分割したそれぞれの奇数サブグループを基準線と対称位置に配置することによって、各ポートと各ラインバッファとを結ぶ配線を基準線に対して対称とすることができるとともに、各ＣＰＵコア間で配線距離の差異が大きくなる（図６参照）という問題を回避することができる。
【００３７】
なお、図２においては、偶数ラインバッファグループに含まれる４つのラインバッファを、それぞれ２つのラインバッファを含む偶数サブグループに分割するとともに、奇数ラインバッファグループに含まれる４つのラインバッファを、それぞれ２つのラインバッファを含む奇数サブグループに分割する場合について示した。しかしながら、各ラインバッファグループに含まれるラインバッファ数や、各サブグループに含まれるラインバッファ数を限定するものではない。
【００３８】
また、図２においては、各ラインバッファグループをさらにサブグループに分割したうえで、奇数グループから分割した各サブグループを基準線から等距離となるように配置するとともに、偶数グループから分割した各サブグループを基準線から等距離となるように配置することを説明した。
【００３９】
しかしながら、サブグループという概念を用いることなく各ラインバッファを配置することもできる。すなわち、偶数ライン用のラインバッファの中から任意に２つのラインバッファを選択し、選択したラインバッファを基準線と対称位置に配置していく。また、奇数ライン用のラインバッファについても同様の手順で配置していく。このようにすることで、偶数ラインバッファと奇数ラインバッファとを基準線について対称位置に配置することができる。
【００４０】
次に、図２に示したバッファ装置１１に配線切替機能を付加したバッファ装置１２について図３および図４を用いて説明する。図３は、配線切替機能を備えたバッファ装置１２を示す図であり、図４は、配線切替時に参照するデータの一例を示す図である。
【００４１】
図３に示すように、バッファ装置１２は、配線切替部１２ｅ〜１２ｈを備えている。なお、同図に示す各サブグループ１２ａ〜１２ｄは、それぞれ、図２の１１ａ〜１１ｄに対応している。
【００４２】
配線切替部１２ｅ〜１２ｈは、一端に１つの配線が接続されるとともに他端には２つの配線が接続されており、他端に接続された２つの配線のうちいずれかに配線を切り替える制御をおこなう論理素子である。このように、配線切替部１２ｅ〜１２ｈを用いることで基準線上における配線の交点（基準線上における実線と破線との交点）を減少させることができる。
【００４３】
具体的には、図２に示したバッファ装置１１では、基準線上における配線の交点が２箇所あった。しかし、同一のＣＰＵコアから出力される配線は、奇数ラインと偶数ラインとが同時に有効になることはない。したがって、図３に示すように各配線上に配線切替部を設けることとすれば、基準線上の交点を１箇所にすることができる。
【００４４】
このように、ＣＰＵコアの各ポートと各ラインバッファとを結ぶ配線上に配線切替部を設けることとすれば、配線量を増やすことなくラインバッファおよび配線の対称性を維持することができる。なお、各配線切替部は論理素子として構成されるので、配線上に通常設けられるアンプをこの論理素子とすることで容易に配線切替部を備えたバッファ装置１２を実現することができる。
【００４５】
ところで、図３に示した配線切替部１２ｅ〜１２ｈの切替は、ＣＰＵコアから受け取るデータの書き込み先アドレスの所定部分を用いておこなう。そこで、以下では配線切替時に参照するデータの例について図５を用いて説明する。なお、図４の４１にはＣＰＵ１０１（ｃｏｒｅ０）が出力するデータの書き込み先アドレスのビット４の値と、このビット４に応じたデータバッファ（ラインバッファ）の切替との関係を示している。また、図４の４２にはＣＰＵ１０２（ｃｏｒｅ１）について同様の関係を示している。
【００４６】
図４に示すように、各ＣＰＵコアから６４バイトのデータが１６バイト単位（奇数ポートおよび偶数ポートで各８バイト）で出力される場合、出力されたデータが書き込まれるべきアドレス（Ａｄｒｓ）のビット４の値に応じて出力先データバッファ（ＤａｔａＢｕｆｆｅｒ）の切り替えをおこなう。
【００４７】
たとえば、ＣＰＵコア０（ｃｏｒｅ０）からライン０およびライン１のデータを出力する場合に、このデータの書き込み先アドレス（Ａｄｒｓ）のビット４の値は０であるので、偶数ラインの出力データをデータバッファのライン０３４７側に、奇数ラインの出力データをデータバッファのライン１２５６側にそれぞれ切り替える。なお、かかる切替指示は、各ＣＰＵコアがバッファ装置に対しておこなうこととしてもよいし、各ＣＰＵコアが隣接する部分に設けられた図示しないインタフェース部が切替指示をおこなうこととしてもよい。
【００４８】
なお、図４では、ＣＰＵコアが２つの場合について説明したが、ＣＰＵコア数が増えたり、出力データパスのバス幅が変わったりした場合であっても、出力先データバッファの切り替えに用いるアドレス値を変えるだけで対応することができる。
【００４９】
上述してきたように、本実施例では、所定の基準線について反転して配置されたＣＰＵコアによって共有されるバッファ装置において、偶数ラインバッファグループを２つの偶数サブグループに分割し、分割したそれぞれの偶数サブグループを基準線と対称位置に配置するとともに、奇数ラインバッファグループを２つの奇数サブグループに分割し、分割したそれぞれの奇数サブグループを基準線と対称位置に配置するよう構成した。したがって、ラインバッファが特定のＣＰＵコアには近いけれども他のＣＰＵコアからは遠いという状況を回避することによって、バッファ装置が複数のＣＰＵコア間で共用される場合であっても、配線長のばらつきを抑制することができる。
【００５０】
また、ＣＰＵコアの各ポートと各ラインバッファとを結ぶ配線上に配線切替部を設け、各配線切替部を転送データに含まれる書き込み先アドレスに基づいて切り替えるよう構成したので、配線量を増やすことなくラインバッファおよび配線の対称性を維持することができる。
【００５１】
（付記１）データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ装置。
【００５２】
（付記２）前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする付記１に記載のバッファ装置。
【００５３】
（付記３）各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする付記２に記載のバッファ装置。
【００５４】
（付記４）前記奇数ラインバッファと前記偶数ラインバッファとを同数ずつ含むよう前記ラインバッファを２つのグループに分割した場合に、各グループを前記ＣＰＵコアの前記奇数ポートおよび前記偶数ポートの双方に接続する配線を、前記ＣＰＵコアがデータ転送をおこなう際に第一のグループあるいは第二のグループのいずれかに切り替える切替手段を備えたことを特徴とする付記３に記載のバッファ装置。
【００５５】
（付記５）前記切替手段は、前記ＣＰＵコアから出力されるデータに含まれる書き込み先アドレスに基づいて前記配線の切り替えをおこなうことを特徴とする付記４に記載のバッファ装置。
【００５６】
（付記６）データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置におけるバッファ配置方法であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置することを特徴とするバッファ配置方法。
【００５７】
（付記７）前記ポートとして奇数ライン用の奇数ポートおよび偶数ライン用の偶数ポートを有する２つのＣＰＵコアを前記基準線について対称となるよう反転して配置した場合において、各ＣＰＵコアにおける前記奇数ポートと接続される奇数ラインバッファを前記基準線について対称に配置するとともに、前記偶数ポートと接続される偶数ラインバッファを前記基準線について対称に配置することを特徴とする付記６に記載のバッファ配置方法。
【００５８】
（付記８）各ＣＰＵコアにおける前記偶数ポートが前記基準線側に配置される場合には前記奇数ラインバッファを前記基準線側に配置するとともに、前記奇数ポートが前記基準線側に配置される場合には前記偶数ラインバッファを前記基準線側に配置することを特徴とする付記７に記載のバッファ配置方法。
【００５９】
（付記９）前記奇数ラインバッファと前記偶数ラインバッファとを同数ずつ含むよう前記ラインバッファを２つのグループに分割した場合に、各グループを前記ＣＰＵコアの前記奇数ポートおよび前記偶数ポートの双方に接続する配線を、前記ＣＰＵコアがデータ転送をおこなう際に第一のグループあるいは第二のグループのいずれかに切り替える切替工程を含んだことを特徴とする付記８に記載のバッファ配置方法。
【００６０】
（付記１０）前記切替工程は、前記ＣＰＵコアから出力されるデータに含まれる書き込み先アドレスに基づいて前記配線の切り替えをおこなうことを特徴とする付記９に記載のバッファ配置方法。
【００６１】
（付記１１）データブロックを複数のラインに分割したうえで複数のポートを介して出力するＣＰＵコアが所定の基準線について対称となるよう反転して配置された平面上に設けられ、前記ラインにそれぞれ対応したラインバッファを有するとともに複数の前記ＣＰＵコアによって共有されるデータ転送用のバッファ装置を備えた情報処理装置であって、各ＣＰＵコアにおける同一の前記ポートとそれぞれ接続された前記ラインバッファを二個一組としたうえで、各組に含まれる当該ラインバッファを前記基準線について対称にそれぞれ配置する前記バッファ装置を備えたことを特徴とする情報処理装置。
【産業上の利用可能性】
【００６２】
以上のように、本発明に係るバッファ装置、バッファ配置方法および情報処理装置は、各ＣＰＵコアと各ラインバッファとを結ぶ配線における配線長のばらつきを抑制したい場合やＣＰＵコア／ラインバッファ間の配線の干渉を低減したい場合に有用であり、特に、複数のＣＰＵコアから共有されるバッファ装置の転送速度を向上させたい場合に適している。
【図面の簡単な説明】
【００６３】
【図１】図１は、バッファ装置を含む情報処理装置の構成を示すブロック図である。
【図２】図２は、本発明に係るバッファ配置手法を示す図である。
【図３】図３は、配線切替機能を備えたバッファ装置を示す図である。
【図４】図４は、配線切替時に参照するデータの一例を示す図である。
【図５】図５は、従来技術に係るバッファ配置その１を示す図である。
【図６】図６は、従来技術に係るバッファ配置その２を示す図である。
【符号の説明】
【００６４】
１１、１２  バッファ装置
１２ｅ、１２ｆ、１２ｇ、１２ｈ  配線切替部
１００  ＣＰＵチップ
１０１、１０２  ＣＰＵコア
１０１ａ、１０２ａ  偶数ポート
１０１ｂ、１０２ｂ  奇数ポート
１０２  キャッシュメモリ
１０３  外部インタフェース
１０４ａ、１０４ｂ、１０４ｃ  データバッファ
２０１、２０２  従来技術に係るバッファ装置
【国際調査報告】
2007096984.tif 000009
2007096984.tif 000010