(57)【特許請求の範囲】
【請求項１】
複数の演算部と、
複数のバンクを有し、前記複数の演算部で共有されるキャッシュメモリと、
前記キャッシュメモリに対する要求の内の前記演算部からの第１の要求以外の要求から、予め設定された優先順位に従って出力する要求を選択する第１の選択部と、
前記キャッシュメモリのバンク毎に前記第１の選択部よりも前記キャッシュメモリに近い位置に配置され、前記第１の選択部から要求が出力されている場合には当該要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力し、前記第１の選択部から要求が出力されてなく、かつ前記第１の要求が出力されている場合には前記第１の要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力する第２の選択部とを有することを特徴とする演算処理装置。
【請求項２】
前記キャッシュメモリのバンク毎に前記第１の選択部よりも前記キャッシュメモリに近い位置に前記第２の選択部とともに配置され、前記第１の要求以外の前記キャッシュメモリに対する要求を受けるポート部とは異なる前記第１の要求を受ける第１のポート部を有することを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記第１の要求は、前記第１の選択部で選択される要求よりも優先順位が低い要求であることを特徴とする請求項１又は２記載の演算処理装置。
【請求項４】
複数の演算部と、
複数のバンクを有し、前記複数の演算部で共有されるキャッシュメモリと、
前記キャッシュメモリに対する要求の内の前記演算部からの第１の要求以外の要求から、予め設定された優先順位に従って出力する要求を選択する第１の選択部と、
前記キャッシュメモリのバンク毎に、前記第１の選択部から要求が出力されている場合には当該要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力し、前記第１の選択部から要求が出力されてなく、かつ前記第１の要求が出力されている場合には前記第１の要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力する第２の選択部とを有することを特徴とする演算処理装置。
【請求項５】
前記キャッシュメモリのバンク毎に、前記第１の要求以外の前記キャッシュメモリに対する要求を受けるポート部とは異なる前記第１の要求を受ける第１のポート部を有することを特徴とする請求項４記載の演算処理装置。
【請求項６】
前記第１の要求は、前記演算部からの新規データの要求であることを特徴とする請求項１〜５の何れか１項に記載の演算処理装置。
【請求項７】
複数の演算部と、複数のバンクを有し、前記複数の演算部で共有されるキャッシュメモリとを有する演算処理装置の制御方法であって、
前記演算処理装置の第１の選択部により、前記キャッシュメモリに対する要求の内の前記演算部からの第１の要求以外の要求から予め設定された優先順位に従って出力する要求を選択し、
前記キャッシュメモリのバンク毎に設けられた前記演算処理装置の第２の選択部により、前記第１の選択部から要求が出力されている場合には当該要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力し、前記第１の選択部から要求が出力されてなく、かつ前記第１の要求が出力されている場合には前記第１の要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力することを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
キャッシュメモリは、プロセッサの演算処理部からの要求データを格納して性能を向上させるために使用されている。プロセッサは、複数のコア（演算部）とそれら複数のコア（演算部）で共有されるＬＬ（Last Level、ラストレベル）キャッシュメモリとを有する構成が一般的である。それぞれのコア（演算部）は、演算処理パイプラインから直接アクセス可能な高速で小容量の一次（レベル１）キャッシュメモリ（さらに二次（レベル２）キャッシュメモリ等を有することもある）を有しており、一次キャッシュメモリでキャッシュミスが発生したときにＬＬキャッシュメモリへアクセスされる。
【０００３】
従来のプロセッサのレイアウトの例を図９に示す。図９には、４つのコア（コア＜０＞〜コア＜３＞）と、それら４つのコアで共有される１バンクのＬＬキャッシュメモリとを有する例を示している。それぞれのコア９０１は、演算部及び一次（レベル１）キャッシュメモリを有する。また、ＬＬキャッシュメモリは、ＬＬ（ラストレベル）キャッシュタグ部９０６及びＬＬ（ラストレベル）キャッシュデータ部９０７を有する。なお、外部ポート９０８は、プロセッサの外部とやりとりする要求のインターフェースである。
【０００４】
例えば、コア＜３＞９０１からの要求データが、ＬＬキャッシュメモリでキャッシュヒットした場合の信号（要求及びデータ等）が流れる経路は、図９に破線で示すようになる。すなわち、コア＜３＞９０１→コアからの様々な要求のインターフェースであるポート（各種ポート９０３）→優先順位に従ってパイプライン投入するコアからの要求を決定するパイプライン制御部９０４のパイプライン選択部９０５→ＬＬキャッシュタグ部９０６→ＬＬキャッシュデータ部９０７→コア＜３＞９０１となる。
【０００５】
近年のプロセッサは、性能向上のためにコア（演算部）の数が増加傾向にあり、キャッシュヒット率を保つためにＬＬキャッシュメモリの容量も増加している。それに伴い、ＬＬキャッシュメモリを効率よく使用するために、図１０に示すようなＬＬキャッシュメモリを複数のバンクに分割する方法が用いられる。図１０は、ＬＬキャッシュメモリを複数のバンクに分割した従来のプロセッサのレイアウトの例を示す図である。図１０において、図９に示した構成要素と同じ機能を有する構成要素には同一の符号を付している。
【０００６】
図１０には、ＬＬキャッシュメモリを２バンクとした例、すなわちＬＬキャッシュタグ部９０６−１及びＬＬキャッシュデータ部９０７−１を有する１つのバンクと、ＬＬキャッシュタグ部９０６−２及びＬＬキャッシュデータ部９０７−２を有する１つのバンクとの２バンクとした例を示している。なお、コア＜７＞９０１からの要求データが、ＬＬキャッシュメモリでキャッシュヒットした場合の信号（要求及びデータ等）が流れる経路を破線で示している。
【０００７】
ＳＭＴ（Simultaneous Multi Thread）方式のプロセッサにおいて、同時に実行されるスレッドで共有されるキャッシュメモリへのアクセス要求を制御するキャッシュ制御技術が提案されている（特許文献１参照）。特許文献１では、アクセス要求を保持するポート手段をスレッド構成に合わせて分割して使用するように制御して、ポート手段の保持するスレッドの発行したアクセス要求の中からアクセス要求を選択する処理を行うことで、アクセス処理に必要となる資源を効率的に利用してキャッシュメモリへのアクセス処理を実行できるようにしている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００８／１５５８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１０に一例を示したように、複数のコアで共有されるＬＬキャッシュメモリを複数のバンクに分割した場合、ＬＬキャッシュメモリの各バンクへのアクセスに係る距離等を考えると、パイプラインに投入する要求を選択するパイプライン選択部９０５は、通常、パイプライン制御部９０４の中央に配置される。したがって、ＬＬキャッシュメモリのバンクの数を多くするほど、パイプライン制御部のパイプライン選択部とＬＬキャッシュメモリのＬＬキャッシュタグ部との物理的な距離が長くなり、ＬＬキャッシュメモリのアクセスレイテンシの悪化を招く。
【００１０】
１つの側面では、本発明は、複数のバンクを有し、複数の演算部で共有されるキャッシュメモリを有する演算処理装置にて、当該キャッシュメモリのアクセスレイテンシを改善することを目的とする。
【課題を解決するための手段】
【００１１】
演算処理装置の一態様は、複数の演算部と、複数のバンクを有し、前記複数の演算部で共有されるキャッシュメモリと、キャッシュメモリに対する要求の内の演算部からの第１の要求以外の要求から、予め設定された優先順位に従って出力する要求を選択する第１の選択部と、キャッシュメモリのバンク毎に第１の選択部から要求が出力されている場合には当該要求をキャッシュメモリのアクセスに係るパイプラインに対して出力し、第１の選択部から要求が出力されてなく、かつ第１の要求が出力されている場合には第１の要求をキャッシュメモリのアクセスに係るパイプラインに対して出力する第２の選択部とを有する。第２の選択部は、第１の選択部よりもキャッシュメモリに近い位置に配置される。
【発明の効果】
【００１２】
発明の一態様においては、第１の要求及び第１の選択部により選択された要求から要求を選択して出力する第２の選択部をキャッシュメモリの近傍に配置することで、第１の要求に係る信号の流れる経路を短縮し、キャッシュメモリのアクセスレイテンシを改善することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態における演算処理装置のレイアウトの例を示す図である。
【図２】本実施形態におけるパイプライン選択部の構成例を示す図である。
【図３Ａ】本実施形態におけるキャッシュメモリへのアクセスを説明するための図である。
【図３Ｂ】従来技術におけるキャッシュメモリへのアクセスを説明するための図である。
【図４】本実施形態と従来技術でのキャッシュメモリのアクセスレイテンシを比較するための図である。
【図５】本実施形態における演算処理装置でのスループット向上の例を示す図である。
【図６】本実施形態におけるパイプライン選択部の動作例を示す図である。
【図７】本実施形態と従来技術でのパイプラインスロットの比較例を示す図である。
【図８】本実施形態における演算処理装置のレイアウトの他の例を示す図である。
【図９】従来のプロセッサのレイアウトを示す図である。
【図１０】従来のプロセッサのレイアウトを示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図面に基づいて説明する。
【００１５】
図１は、本発明の一実施形態における演算処理装置としてのプロセッサのレイアウトの例を示す図である。本実施形態におけるプロセッサは、複数のコア（演算部）と、それら複数のコアで共有される複数のバンクを有するキャッシュメモリとを有する。図１には、８つのコア（コア＜０＞〜コア＜７＞）と、それら８つのコアで共有される２バンクのＬＬ（ラストレベル）キャッシュメモリとを有する例を示している。
【００１６】
それぞれのコア１１は、演算処理等を行う演算部及び一次（レベル１）キャッシュメモリを有する。なお、各コア１１が、さらに二次（レベル２）キャッシュメモリを有する構成であっても良い。また、ＬＬキャッシュメモリは、ＬＬキャッシュタグ部１８−１とＬＬキャッシュデータ部１９−１とが１つのバンクを構成しており、ＬＬキャッシュタグ部１８−２とＬＬキャッシュデータ部１９−２とが１つのバンクを構成している。ＬＬキャッシュタグ部１８−１、１８−２には、ＬＬキャッシュデータ部１９−１、１９−２に格納されたデータのタグ（データのアドレスやデータの状態を示す情報等）が記憶されている。
【００１７】
コア１１（コア＜０＞〜コア＜７＞）とＬＬキャッシュメモリ（ＬＬキャッシュタグ部１８−１、１８−２及びＬＬキャッシュデータ部１９−１、１９−２）とは転送バス１２を介して通信可能に接続されている。コア１１（コア＜０＞〜コア＜７＞）からの要求やプロセッサの外部からの要求に基づくＬＬキャッシュメモリへのアクセスは、要求の受付や選択及びタグ検索等のパイプライン制御を行うパイプライン制御部１４によって実行される。
【００１８】
本実施形態におけるプロセッサは、コア１１からの要求の内の最も要求頻度が高い新規データの要求（新規要求）のインターフェースである新規要求ポート１６−１、１６−２と、コア１１からの要求の内の新規要求以外の様々な要求のインターフェースである各種ポート１３とを有する。新規要求以外のコア１１からの要求には、例えばデータの書き換え等を行うスヌープ応答などがある。また、本実施形態におけるプロセッサは、プロセッサの外部とやりとりする要求のインターフェースである外部ポート２０を有する。
【００１９】
また、本実施形態において、パイプライン制御部１４におけるパイプライン選択部は、新規要求以外の要求の内から出力する要求を選択するパイプライン選択部＜１＞１５と、新規要求及びパイプライン選択部＜１＞１５により選択された要求のどちらかをパイプライン投入する要求として選択しＬＬキャッシュタグ部１８−１、１８−２に渡すパイプライン選択部＜２＞１７−１、１７−２とを有する。パイプライン選択部＜１＞１５及びパイプライン選択部＜２＞１７−１、１７−２は、予め設定された優先順位に従って要求の選択を行う。
【００２０】
図２は、本実施形態におけるパイプライン選択部１５、１７の構成例を示す図である。なお、本実施形態では、パイプライン投入する要求のポートとして、新規要求ポート、スヌープ応答ポート、ロードバッファポート、及び外部スヌープポートの４つとし、投入する優先順位が、スヌープ応答ポートが一番高く、ロードバッファポート、外部スヌープポートの順に低くなり、新規要求ポートが一番低いものとする。パイプライン選択部＜１＞１５は、ＡＮＤ（論理積演算）回路２０１、２０２、２０３及び選択回路２０４を有する。また、パイプライン選択部＜２＞１７は、ＡＮＤ回路２０６及び選択回路２０７を有する。
【００２１】
ＡＮＤ回路２０１には、スヌープ応答ポートの信号ＳＲＰＴ及びスヌープ応答ポートの抑制信号ＳＲＰＴ＿ＩＮＨが入力される。ＡＮＤ回路２０２には、ロードバッファポートの信号ＬＤＰＴ、ロードバッファポートの抑制信号ＬＤＰＴ＿ＩＮＨ、及びスヌープ応答ポートの信号ＳＲＰＴが入力される。また、ＡＮＤ回路２０３には、外部スヌープポートの信号ＯＳＰＴ、外部スヌープポートの抑制信号ＯＳＰＴ＿ＩＮＨ、スヌープ応答ポートの信号ＳＲＰＴ、及びロードバッファポートの信号ＬＤＰＴが入力される。選択回路２０４は、ＡＮＤ回路２０１、２０２、２０３の出力を選択的に出力する。
【００２２】
ＡＮＤ回路２０６には、新規要求ポートの信号ＲＱＰＴ及び新規要求ポートの抑制信号ＲＱＰＴ＿ＩＮＨが入力されるＡＮＤ回路２０５の出力と、パイプライン選択部＜１＞１５の選択回路２０４の出力とが入力される。選択回路２０７は、パイプライン選択部＜１＞１５の選択回路２０４の出力及びＡＮＤ回路２０６の出力を選択的に出力する。
【００２３】
ここで、信号ＳＲＰＴ、ＬＤＰＴ、ＯＳＰＴ、ＲＱＰＴは、それぞれのポートに要求があるときに“１”となり、要求がない状態では“０”となる信号である。また、信号ＳＲＰＴ＿ＩＮＨ、ＬＤＰＴ＿ＩＮＨ、ＯＳＰＴ＿ＩＮＨ、ＲＱＰＴ＿ＩＮＨは、それぞれのポートに対して要求タイミングが適切でない場合に“１”とされる信号である。例えば、抑制信号は、メモリ読み込みに全体で４サイクルかかる場合に、３サイクル以内に次のメモリ読み込みの信号がきたときに４サイクルが経過する（前のメモリ読み込みが完了する）まで次の出力を抑制させる信号である。
【００２４】
図２に示した構成のパイプライン選択部＜１＞１５は、スヌープ応答ポートの信号ＳＲＰＴが“１”であり、スヌープ応答ポートの抑制信号ＳＲＰＴ＿ＩＮＨが“０”であるとき（入力状態１）、スヌープ応答の要求を出力する。また、スヌープ応答ポートの信号ＳＲＰＴが“０”であり、ロードバッファポートの信号ＬＤＰＴが“１”であり、ロードバッファポートの抑制信号ＬＤＰＴ＿ＩＮＨが“０”であるとき（入力状態２）、ロードバッファの要求を出力する。また、スヌープ応答ポートの信号ＳＲＰＴが“０”であり、ロードバッファポートの信号ＬＤＰＴが“０”であり、外部スヌープポートの信号ＯＳＰＴが“１”であり、外部スヌープポートの抑制信号ＯＳＰＴ＿ＩＮＨが“０”であるとき（入力状態３）、外部スヌープの要求を出力する。前述した入力状態１、入力状態２、入力状態３のいずれでもない場合には、パイプライン選択部＜１＞１５は要求を出力しない。
【００２５】
また、図２に示した構成のパイプライン選択部＜２＞１７は、パイプライン選択部＜１＞１５がスヌープ応答、ロードバッファ、外部スヌープの何れの要求を出力しているとき、パイプライン選択部＜１＞１５が出力する要求を出力する。また、パイプライン選択部＜１＞１５がスヌープ応答、ロードバッファ、外部スヌープの何れかの要求も出力しておらず、新規要求ポートの信号ＲＱＰＴが“１”であり、新規要求ポートの抑制信号ＲＱＰＴ＿ＩＮＨが“０”であるとき、新規要求を出力する。それら以外の場合、パイプライン選択部＜２＞１７は要求を出力しない。
【００２６】
このように本実施形態では、パイプライン選択部＜１＞１５及びパイプライン選択部＜２＞１７−１、１７−２を配置し、パイプライン選択部＜１＞１５では新規要求以外の要求を選択し、パイプライン選択部＜２＞１７−１、１７−２では新規要求とパイプライン選択部＜１＞１５で選択された要求のどちらかを選択してＬＬキャッシュタグ部１８−１、１８−２に渡す。また、コア１１からの要求のインターフェースとして、新規要求のための新規要求ポート１６−１、１６−２と、新規要求以外の要求の各種ポート１３とに分けて設ける。
【００２７】
これにより図１に示すように、新規要求ポート１６−１、１６−２とパイプライン選択部＜２＞１７−１、１７−２とを、パイプライン選択部＜１＞１５よりもＬＬキャッシュタグ部１８−１、１８−２に近づけて近傍に配置することが可能になる。したがって、例えば図１に破線で示したようにコア＜７＞１１からの要求データが、ＬＬキャッシュメモリのＬＬキャッシュタグ部１８−２及びＬＬキャッシュデータ部１９−２で構成されるバンクでキャッシュヒットした場合、従来のようにパイプライン制御部１４の中央を経由する必要がなくなるため、信号が流れる経路が短くなり、ＬＬキャッシュメモリのアクセスレイテンシを短縮することができる。なお、例えば、コア＜７＞１１からの要求データが、ＬＬキャッシュメモリにおいてコア＜７＞１１から遠方のＬＬキャッシュタグ部１８−１及びＬＬキャッシュデータ部１９−１で構成されるバンクでキャッシュヒットしたとしても、信号が流れる経路は、従来のパイプライン制御部１４の中央を経由する経路と同様の距離であるので、ＬＬキャッシュメモリのアクセスレイテンシが悪化することはない。
【００２８】
図３Ａ及び図３Ｂを参照して、本実施形態におけるＬＬキャッシュメモリへのアクセスについて説明する。図３Ａは、本実施形態におけるＬＬキャッシュメモリへのアクセスを説明するための図であり、図３Ｂは、図１０に示した従来のプロセッサにおけるＬＬキャッシュメモリへのアクセスを説明するための図である。なお、図３Ａ及び図３Ｂにおいて、期間ＳＴ１、ＳＴ２、ＳＴ３、ＳＴ４、ＳＴ５、ＳＴ６のそれぞれは、プロセッサの動作周波数の１サイクル期間に相当する。
【００２９】
図３Ｂに示すように、図１０に示した従来のプロセッサにおいては、コア３０１からの新規要求は、期間ＳＴ２において、それぞれのコアに対応する新規要求ポート３６１に入力される。そして、次のサイクルの期間ＳＴ３においてＬＲＵ（Least Recently Used）制御部３７１により最も古い新規要求が選択されて出力される。続く、期間ＳＴ４において、所定の優先順位に従ってパイプライン投入する要求を選択するパイプライン選択部３８１により選択されると、期間ＳＴ６においてＬＬキャッシュタグ部３５１に到達する。なお、期間ＳＴ５は、パイプライン選択部３８１とＬＬキャッシュタグ部３５１との間の転送に要する期間として設けている。
【００３０】
また、コア３０１からのスヌープ応答の要求も同様に、期間ＳＴ２において、それぞれのコアに対応するスヌープ応答ポート３６２に入力され、次のサイクルの期間ＳＴ３においてＬＲＵ制御部３７２により最も古いスヌープ応答の要求が選択されて出力される。続く、期間ＳＴ４において、パイプライン選択部３８１により選択されると、期間ＳＴ６においてＬＬキャッシュタグ部３５１に到達する。
【００３１】
メモリ制御部３０２からの外部スヌープの要求、メモリ制御部３０３からのロードバッファの要求、その他の機能部３０４からのエラー処理等の要求は、期間ＳＴ２において、それぞれ対応するポート３６３、３６４、３６５に入力される。そして、期間ＳＴ４において、パイプライン選択部３８１により選択されると、期間ＳＴ６においてＬＬキャッシュタグ部３５１に到達する。
【００３２】
このように図１０に示した従来のプロセッサにおいては、要求の種類にかかわらずＬＬキャッシュタグ部３５１に達するには６サイクル分の時間を要している。
【００３３】
それに対して、図３Ａに示すように、本実施形態におけるプロセッサにおいては、コア３０１からの新規要求は、期間ＳＴ２において、それぞれのコアに対応する新規要求ポート３３１に入力される。そして、次のサイクルの期間ＳＴ３においてＬＲＵ制御部３４１により最も古い新規要求が選択されて出力され、さらにパイプライン選択部＜２＞３４２により選択されると、期間ＳＴ４においてＬＬキャッシュタグ部３５１に到達する。
【００３４】
コア３０１からのスヌープ応答の要求は、期間ＳＴ２において、それぞれのコアに対応するスヌープ応答ポート３１１に入力される。そして、次のサイクルの期間ＳＴ３においてパイプライン選択部＜１＞３２１により選択され、期間ＳＴ５においてパイプライン選択部＜２＞３４２により選択されると、期間ＳＴ６においてＬＬキャッシュタグ部３５１に到達する。なお、期間ＳＴ５は、パイプライン選択部＜１＞３２１とパイプライン選択部＜２＞３４２との間の転送に要する期間として設けている。
【００３５】
メモリ制御部３０２からの外部スヌープの要求、メモリ制御部３０３からのロードバッファの要求、その他の機能部３０４からのエラー処理等の要求は、期間ＳＴ２において、それぞれ対応するポート３１２、３１３、３１４に入力される。そして、次のサイクルの期間ＳＴ３においてパイプライン選択部＜１＞３２１により選択され、期間ＳＴ５においてパイプライン選択部＜２＞３４２により選択されると、期間ＳＴ６においてＬＬキャッシュタグ部３５１に到達する。
【００３６】
このように本実施形態では、パイプライン選択部＜１＞３２１とパイプライン選択部＜２＞３４２との２つに分けるとともに、新規要求ポート３３１及びパイプライン選択部＜２＞３４２をＬＬキャッシュタグ部３５１に近接した位置に配置することで、新規要求以外の要求は従来と同様に６サイクル分の時間でＬＬキャッシュタグ部３５１に到達するが、コア３０１からの新規要求は４サイクル分の時間でＬＬキャッシュタグ部３５１に到達させることが可能となる。
【００３７】
すなわち、コアからの新規データの要求（新規要求）は、本実施形態におけるプロセッサでは図４（Ａ）に示すように、新規要求ポート及びパイプライン選択部＜２＞を介して４サイクル分の時間（ＳＴ１〜ＳＴ４）でＬＬキャッシュタグ部３５１に到達させることが可能となる。一方、従来のプロセッサでは、図４（Ｂ）に示すように、各種ポート内の新規要求ポート及びパイプライン選択部を介してＬＬキャッシュタグ部３５１に到達するまでに６サイクル分の時間（ＳＴ１〜ＳＴ６）を要する。
【００３８】
図３Ａ、図３Ｂ、及び図４を参照して説明したように、本実施形態におけるプロセッサは、パイプライン選択部＜１＞３２１とパイプライン選択部＜２＞３４２との２つに分けたことによって、新規要求に係る経路の論理段数を減少させることができ、ＬＬキャッシュメモリのアクセスレイテンシを短縮することが可能となる。
【００３９】
また、本実施形態では、新規要求が新規要求以外の要求よりも短い時間でＬＬキャッシュタグ部に到達することが可能となるため、スループットを向上させることができる。例えば、図５に示すように、Ｒ（新規要求以外の要求）、Ｅ（要求なし）、Ｒ、Ｒ、Ｎ（新規要求）の順に１サイクル毎に要求が発行されたとする。このとき、ＳＴＡＧＥ０ではＲ、Ｅ、Ｒ、Ｒ、Ｎとなるが、Ｎ（新規要求）はＳＴＡＧＥ４でＬＬキャッシュタグ部に到達するため、以降ではＥ（要求なし）の部分にＮ（新規要求）が割り込むことができ、スループットが向上していることがわかる。
【００４０】
ここで、前述したようにパイプライン投入する優先順位が、スヌープ応答ポートが一番高く、ロードバッファポート、外部スヌープポートの順に低くなり、新規要求ポートが一番低い場合、従来のプロセッサにおけるパイプライン選択部は、例えば図６（Ｂ）に示すように構成される。図６（Ｂ）は、従来のプロセッサにおけるパイプライン選択部の構成例をしており、ＡＮＤ回路６０１、６０２、６０３、６０４及び選択回路６０５を有する。
【００４１】
ＡＮＤ回路６０１には、スヌープ応答ポートの信号ＳＲＰＴ及びスヌープ応答ポートの抑制信号ＳＲＰＴ＿ＩＮＨが入力される。ＡＮＤ回路６０２には、ロードバッファポートの信号ＬＤＰＴ、ロードバッファポートの抑制信号ＬＤＰＴ＿ＩＮＨ、及びスヌープ応答ポートの信号ＳＲＰＴが入力される。ＡＮＤ回路６０３には、外部スヌープポートの信号ＯＳＰＴ、外部スヌープポートの抑制信号ＯＳＰＴ＿ＩＮＨ、スヌープ応答ポートの信号ＳＲＰＴ、及びロードバッファポートの信号ＬＤＰＴが入力される。ＡＮＤ回路６０４には、新規要求ポートの信号ＲＱＰＴ、新規要求ポートの抑制信号ＲＱＰＴ＿ＩＮＨ、スヌープ応答ポートの信号ＳＲＰＴ、ロードバッファポートの信号ＬＤＰＴ、及び外部スヌープポートの信号ＯＳＰＴが入力される。選択回路６０５は、ＡＮＤ回路６０１、６０２、６０３、６０４の出力を選択的に出力する。
【００４２】
図６（Ｂ）に示したように構成されたパイプライン選択部においては、要求の入力順序によっては、どの要求も選択されずスループットを低下させてしまうことがある。例えば、コアからの要求が、スヌープ応答ポート→ロードバッファポート→スヌープ応答ポート及び新規要求ポート（同時）の順に来ていた場合、パイプラインに投入される順序は優先順位に従うと、スヌープ応答ポート→ロードバッファポート→スヌープ応答ポート→新規要求ポートとなる。
【００４３】
しかし、スヌープ応答ポート及び新規要求ポート（同時）が来ているタイミングにおいて、スヌープ応答ポートの信号ＳＲＰＴ、スヌープ応答ポートの抑制信号ＳＲＰＴ＿ＩＮＨ、及び新規要求ポートの信号ＲＱＰＴが“１”であり、その他の信号ＬＤＲＴ、ＯＳＰＴ及び抑制信号ＬＤＲＴ＿ＩＮＨ、ＯＳＰＴ＿ＩＮＨ、ＲＱＰＴ＿ＩＮＨが“０”である場合、優先度の高いスヌープ応答ポートの要求は来ているがスヌープ応答ポートの抑制信号ＳＲＰＴ＿ＩＮＨによりスヌープ応答ポートの要求は通らない。また、新規要求ポートの要求も、優先度の高いスヌープ応答ポートの要求が来ているために通らない。したがって、ＡＮＤ回路６０１、６０２、６０３、６０４の出力は“０”となり、パイプライン選択部の選択回路６０５は、どの要求も選択しない。
【００４４】
それに対して、本実施形態によれば、図６（Ａ）に示すように、スヌープ応答ポートの信号ＳＲＰＴ、スヌープ応答ポートの抑制信号ＳＲＰＴ＿ＩＮＨ、及び新規要求ポートの信号ＲＱＰＴが“１”であり、その他の信号ＬＤＲＴ、ＯＳＰＴ及び抑制信号ＬＤＲＴ＿ＩＮＨ、ＯＳＰＴ＿ＩＮＨ、ＲＱＰＴ＿ＩＮＨが“０”である場合、パイプライン選択部＜１＞の選択回路２０４は、どの要求も選択しない。本実施形態では、パイプライン選択部＜２＞が新規要求と新規要求以外の要求との選択を行うので、パイプライン選択部＜２＞の選択回路２０７は、新規要求ポートの要求を選択して出力することができる。
【００４５】
すなわち、コアからの要求が、スヌープ応答ポート→ロードバッファポート→スヌープ応答ポート及び新規要求ポート（同時）の順に来ていた場合、従来のプロセッサにおいては、図７（Ｂ）に示すように、スヌープ応答ポート→ロードバッファポート→（命令なし）→スヌープ応答ポート→新規要求ポートの順でパイプラインに投入される。それに対して、本実施形態によれば、図７（Ａ）に示すように、スヌープ応答ポート→ロードバッファポート→新規要求ポート→スヌープ応答ポートの順でパイプラインに投入することが可能となり、パイプラインスロットを効率的に使用でき、スループットを向上させることが可能となる。
【００４６】
なお、前述した説明では、８つのコア（コア＜０＞〜コア＜７＞）と、それらのコアで共有される２バンクのＬＬキャッシュメモリとを有する例を示したが、本発明は、これに限定されるものではない。本実施形態におけるプロセッサが有するコアの数や、ＬＬキャッシュメモリのバンク数は、任意の複数であればよい。例えば、図８に一例を示すように、８つのコア（コア＜０＞〜コア＜７＞）と、それら８つのコアで共有される４バンクのＬＬキャッシュメモリとを有するプロセッサにおいても適用可能である。
【００４７】
図８は、本実施形態における演算処理装置としてのプロセッサのレイアウトの他の例を示す図である。図８において、図１に示した構成要素と同じ機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００４８】
図８に示す例では、ＬＬキャッシュメモリは、ＬＬキャッシュタグ部１８−１とＬＬキャッシュデータ部１９−１とが１つのバンクを構成しており、ＬＬキャッシュタグ部１８−２とＬＬキャッシュデータ部１９−２とが１つのバンクを構成している。また、ＬＬキャッシュタグ部１８−３とＬＬキャッシュデータ部１９−３とが１つのバンクを構成しており、ＬＬキャッシュタグ部１８−４とＬＬキャッシュデータ部１９−４とが１つのバンクを構成している。
【００４９】
また、ＬＬキャッシュメモリの各バンクに対応させるように、新規要求ポート１６−１、１６−２、１６−３、１６−４及びパイプライン選択部＜２＞１７−１、１７−２、１７−３、１７−４を設けて、パイプライン選択部＜１＞１５よりもＬＬキャッシュタグ部１８−１、１８−２、１８−３、１８−４に近づけて近傍に配置している。このように、新規要求ポートとパイプライン選択部＜２＞とを、ＬＬキャッシュメモリの各バンクに隣接するように分割して配置すれば良い。これにより、例えば図８に破線で示すように、コア１１からの要求データが、そのコアに近いＬＬキャッシュメモリのバンクでキャッシュヒットした場合、信号が流れる経路が短くなり、ＬＬキャッシュメモリのアクセスレイテンシを短縮することができる。
【００５０】
本実施形態によれば、パイプライン選択部＜１＞とパイプライン選択部＜２＞とに分け、新規要求ポート及びパイプライン選択部＜２＞をＬＬキャッシュメモリに近接した位置に配置することで、コアからのＬＬキャッシュメモリに対する要求の内で最も要求頻度が高い新規データの要求に係る経路の物理的な距離を短縮することができ、ＬＬキャッシュメモリのアクセスレイテンシを改善し、プロセッサ全体での処理性能を向上させることができる。
【００５１】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５２】
１１  コア
１２  転送バス
１３  各種ポート
１４  パイプライン制御部
１５  パイプライン選択部＜１＞
１６  新規要求ポート
１７  パイプライン選択部＜２＞
１８  ＬＬ（ラストレベル）キャッシュタグ部
１９  ＬＬ（ラストレベル）キャッシュデータ部
２０  外部ポート
【図１】
0006569347.tif 000002
【図２】
0006569347.tif 000003
【図３Ａ】
0006569347.tif 000004
【図３Ｂ】
0006569347.tif 000005
【図４】
0006569347.tif 000006
【図５】
0006569347.tif 000007
【図６】
0006569347.tif 000008
【図７】
0006569347.tif 000009
【図８】
0006569347.tif 000010
【図９】
0006569347.tif 000011
【図１０】
0006569347.tif 000012