JP2017027156A - Arithmetic processing device and method for controlling arithmetic processing device - Google Patents
Arithmetic processing device and method for controlling arithmetic processing device Download PDFInfo
- Publication number
- JP2017027156A JP2017027156A JP2015142344A JP2015142344A JP2017027156A JP 2017027156 A JP2017027156 A JP 2017027156A JP 2015142344 A JP2015142344 A JP 2015142344A JP 2015142344 A JP2015142344 A JP 2015142344A JP 2017027156 A JP2017027156 A JP 2017027156A
- Authority
- JP
- Japan
- Prior art keywords
- request
- cache memory
- unit
- port
- selection unit
- 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.)
- Granted
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は、演算処理装置及び演算処理装置の制御方法に関する。 The present invention relates to an arithmetic processing device and a control method for the arithmetic processing device.
キャッシュメモリは、プロセッサの演算処理部からの要求データを格納して性能を向上させるために使用されている。プロセッサは、複数のコア(演算部)とそれら複数のコア(演算部)で共有されるLL(Last Level、ラストレベル)キャッシュメモリとを有する構成が一般的である。それぞれのコア(演算部)は、演算処理パイプラインから直接アクセス可能な高速で小容量の一次(レベル1)キャッシュメモリ(さらに二次(レベル2)キャッシュメモリ等を有することもある)を有しており、一次キャッシュメモリでキャッシュミスが発生したときにLLキャッシュメモリへアクセスされる。 The cache memory is used for storing request data from the arithmetic processing unit of the processor to improve performance. The processor generally includes a plurality of cores (arithmetic units) and an LL (Last Level) cache memory shared by the plurality of cores (arithmetic units). Each core (arithmetic unit) has a high-speed and small-capacity primary (level 1) cache memory (which may also have a secondary (level 2) cache memory, etc.) that can be directly accessed from the arithmetic processing pipeline. When a cache miss occurs in the primary cache memory, the LL cache memory is accessed.
従来のプロセッサのレイアウトの例を図9に示す。図9には、4つのコア(コア<0>〜コア<3>)と、それら4つのコアで共有される1バンクのLLキャッシュメモリとを有する例を示している。それぞれのコア901は、演算部及び一次(レベル1)キャッシュメモリを有する。また、LLキャッシュメモリは、LL(ラストレベル)キャッシュタグ部906及びLL(ラストレベル)キャッシュデータ部907を有する。なお、外部ポート908は、プロセッサの外部とやりとりする要求のインターフェースである。
An example of a conventional processor layout is shown in FIG. FIG. 9 shows an example having four cores (core <0> to core <3>) and one bank of LL cache memory shared by the four cores. Each
例えば、コア<3>901からの要求データが、LLキャッシュメモリでキャッシュヒットした場合の信号(要求及びデータ等)が流れる経路は、図9に破線で示すようになる。すなわち、コア<3>901→コアからの様々な要求のインターフェースであるポート(各種ポート903)→優先順位に従ってパイプライン投入するコアからの要求を決定するパイプライン制御部904のパイプライン選択部905→LLキャッシュタグ部906→LLキャッシュデータ部907→コア<3>901となる。
For example, a path through which a signal (request, data, etc.) when requested data from the core <3> 901 hits a cache hit in the LL cache memory is shown by a broken line in FIG. That is, core <3> 901 → port (various ports 903) which is an interface for various requests from the core →
近年のプロセッサは、性能向上のためにコア(演算部)の数が増加傾向にあり、キャッシュヒット率を保つためにLLキャッシュメモリの容量も増加している。それに伴い、LLキャッシュメモリを効率よく使用するために、図10に示すようなLLキャッシュメモリを複数のバンクに分割する方法が用いられる。図10は、LLキャッシュメモリを複数のバンクに分割した従来のプロセッサのレイアウトの例を示す図である。図10において、図9に示した構成要素と同じ機能を有する構成要素には同一の符号を付している。 In recent processors, the number of cores (arithmetic units) tends to increase to improve performance, and the capacity of the LL cache memory also increases to maintain the cache hit rate. Accordingly, in order to use the LL cache memory efficiently, a method of dividing the LL cache memory as shown in FIG. 10 into a plurality of banks is used. FIG. 10 is a diagram showing a layout example of a conventional processor in which the LL cache memory is divided into a plurality of banks. 10, components having the same functions as those shown in FIG. 9 are given the same reference numerals.
図10には、LLキャッシュメモリを2バンクとした例、すなわちLLキャッシュタグ部906−1及びLLキャッシュデータ部907−1を有する1つのバンクと、LLキャッシュタグ部906−2及びLLキャッシュデータ部907−2を有する1つのバンクとの2バンクとした例を示している。なお、コア<7>901からの要求データが、LLキャッシュメモリでキャッシュヒットした場合の信号(要求及びデータ等)が流れる経路を破線で示している。 FIG. 10 shows an example in which the LL cache memory has two banks, that is, one bank having an LL cache tag unit 906-1 and an LL cache data unit 907-1, an LL cache tag unit 906-2, and an LL cache data unit. An example is shown in which two banks are included, one bank having 907-2. A path through which a signal (request, data, etc.) when requested data from the core <7> 901 hits a cache hit in the LL cache memory is indicated by a broken line.
SMT(Simultaneous Multi Thread)方式のプロセッサにおいて、同時に実行されるスレッドで共有されるキャッシュメモリへのアクセス要求を制御するキャッシュ制御技術が提案されている(特許文献1参照)。特許文献1では、アクセス要求を保持するポート手段をスレッド構成に合わせて分割して使用するように制御して、ポート手段の保持するスレッドの発行したアクセス要求の中からアクセス要求を選択する処理を行うことで、アクセス処理に必要となる資源を効率的に利用してキャッシュメモリへのアクセス処理を実行できるようにしている。 In an SMT (Simultaneous Multi Thread) type processor, a cache control technique for controlling an access request to a cache memory shared by threads executed simultaneously has been proposed (see Patent Document 1). In Japanese Patent Laid-Open No. 2004-228688, a process for selecting an access request from access requests issued by a thread held by a port unit by controlling the port unit holding the access request so as to be divided according to the thread configuration is used. By doing so, the resources required for the access processing can be efficiently used to execute the access processing to the cache memory.
図10に一例を示したように、複数のコアで共有されるLLキャッシュメモリを複数のバンクに分割した場合、LLキャッシュメモリの各バンクへのアクセスに係る距離等を考えると、パイプラインに投入する要求を選択するパイプライン選択部905は、通常、パイプライン制御部904の中央に配置される。したがって、LLキャッシュメモリのバンクの数を多くするほど、パイプライン制御部のパイプライン選択部とLLキャッシュメモリのLLキャッシュタグ部との物理的な距離が長くなり、LLキャッシュメモリのアクセスレイテンシの悪化を招く。
As shown in an example in FIG. 10, when the LL cache memory shared by a plurality of cores is divided into a plurality of banks, considering the distance to access each bank of the LL cache memory, etc., it is input to the pipeline The
1つの側面では、本発明は、複数のバンクを有し、複数の演算部で共有されるキャッシュメモリを有する演算処理装置にて、当該キャッシュメモリのアクセスレイテンシを改善することを目的とする。 In one aspect, an object of the present invention is to improve an access latency of a cache memory in an arithmetic processing unit having a plurality of banks and having a cache memory shared by a plurality of arithmetic units.
演算処理装置の一態様は、複数の演算部と、複数のバンクを有し、前記複数の演算部で共有されるキャッシュメモリと、キャッシュメモリに対する要求の内の演算部からの第1の要求以外の要求から、出力する要求を選択する第1の選択部と、キャッシュメモリのバンク毎に第1の要求及び第1の選択部により選択された要求から要求を選択してキャッシュメモリのアクセスに係るパイプラインに対して出力する第2の選択部とを有する。第2の選択部は、第1の選択部よりもキャッシュメモリに近い位置に配置される。 One aspect of the arithmetic processing device includes a plurality of arithmetic units, a plurality of banks, a cache memory shared by the plurality of arithmetic units, and a request other than the first request from the arithmetic unit among requests for the cache memory A first selection unit that selects a request to be output from the requests and a request selected from the first request and the request selected by the first selection unit for each bank of the cache memory, And a second selection unit that outputs to the pipeline. The second selection unit is arranged at a position closer to the cache memory than the first selection unit.
発明の一態様においては、第1の要求及び第1の選択部により選択された要求から要求を選択して出力する第2の選択部をキャッシュメモリの近傍に配置することで、第1の要求に係る信号の流れる経路を短縮し、キャッシュメモリのアクセスレイテンシを改善することができる。 In one aspect of the invention, the first request and the second selection unit for selecting and outputting the request from the request selected by the first selection unit are arranged in the vicinity of the cache memory, thereby providing the first request. The path through which the signal flows can be shortened, and the access latency of the cache memory can be improved.
以下、本発明の実施形態を図面に基づいて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明の一実施形態における演算処理装置としてのプロセッサのレイアウトの例を示す図である。本実施形態におけるプロセッサは、複数のコア(演算部)と、それら複数のコアで共有される複数のバンクを有するキャッシュメモリとを有する。図1には、8つのコア(コア<0>〜コア<7>)と、それら8つのコアで共有される2バンクのLL(ラストレベル)キャッシュメモリとを有する例を示している。 FIG. 1 is a diagram showing an example of the layout of a processor as an arithmetic processing unit according to an embodiment of the present invention. The processor according to the present embodiment includes a plurality of cores (arithmetic units) and a cache memory having a plurality of banks shared by the plurality of cores. FIG. 1 shows an example having eight cores (core <0> to core <7>) and two banks of LL (last level) cache memory shared by the eight cores.
それぞれのコア11は、演算処理等を行う演算部及び一次(レベル1)キャッシュメモリを有する。なお、各コア11が、さらに二次(レベル2)キャッシュメモリを有する構成であっても良い。また、LLキャッシュメモリは、LLキャッシュタグ部18−1とLLキャッシュデータ部19−1とが1つのバンクを構成しており、LLキャッシュタグ部18−2とLLキャッシュデータ部19−2とが1つのバンクを構成している。LLキャッシュタグ部18−1、18−2には、LLキャッシュデータ部19−1、19−2に格納されたデータのタグ(データのアドレスやデータの状態を示す情報等)が記憶されている。
Each
コア11(コア<0>〜コア<7>)とLLキャッシュメモリ(LLキャッシュタグ部18−1、18−2及びLLキャッシュデータ部19−1、19−2)とは転送バス12を介して通信可能に接続されている。コア11(コア<0>〜コア<7>)からの要求やプロセッサの外部からの要求に基づくLLキャッシュメモリへのアクセスは、要求の受付や選択及びタグ検索等のパイプライン制御を行うパイプライン制御部14によって実行される。
The core 11 (core <0> to core <7>) and the LL cache memory (LL cache tag units 18-1 and 18-2 and LL cache data units 19-1 and 19-2) are connected via the
本実施形態におけるプロセッサは、コア11からの要求の内の最も要求頻度が高い新規データの要求(新規要求)のインターフェースである新規要求ポート16−1、16−2と、コア11からの要求の内の新規要求以外の様々な要求のインターフェースである各種ポート13とを有する。新規要求以外のコア11からの要求には、例えばデータの書き換え等を行うスヌープ応答などがある。また、本実施形態におけるプロセッサは、プロセッサの外部とやりとりする要求のインターフェースである外部ポート20を有する。
The processor according to the present embodiment includes new request ports 16-1 and 16-2 which are interfaces for new data requests (new requests) having the highest request frequency among requests from the
また、本実施形態において、パイプライン制御部14におけるパイプライン選択部は、新規要求以外の要求の内から出力する要求を選択するパイプライン選択部<1>15と、新規要求及びパイプライン選択部<1>15により選択された要求のどちらかをパイプライン投入する要求として選択しLLキャッシュタグ部18−1、18−2に渡すパイプライン選択部<2>17−1、17−2とを有する。パイプライン選択部<1>15及びパイプライン選択部<2>17−1、17−2は、予め設定された優先順位に従って要求の選択を行う。
In this embodiment, the pipeline selection unit in the
図2は、本実施形態におけるパイプライン選択部15、17の構成例を示す図である。なお、本実施形態では、パイプライン投入する要求のポートとして、新規要求ポート、スヌープ応答ポート、ロードバッファポート、及び外部スヌープポートの4つとし、投入する優先順位が、スヌープ応答ポートが一番高く、ロードバッファポート、外部スヌープポートの順に低くなり、新規要求ポートが一番低いものとする。パイプライン選択部<1>15は、AND(論理積演算)回路201、202、203及び選択回路204を有する。また、パイプライン選択部<2>17は、AND回路206及び選択回路207を有する。
FIG. 2 is a diagram illustrating a configuration example of the
AND回路201には、スヌープ応答ポートの信号SRPT及びスヌープ応答ポートの抑制信号SRPT_INHが入力される。AND回路202には、ロードバッファポートの信号LDPT、ロードバッファポートの抑制信号LDPT_INH、及びスヌープ応答ポートの信号SRPTが入力される。また、AND回路203には、外部スヌープポートの信号OSPT、外部スヌープポートの抑制信号OSPT_INH、スヌープ応答ポートの信号SRPT、及びロードバッファポートの信号LDPTが入力される。選択回路204は、AND回路201、202、203の出力を選択的に出力する。
The AND
AND回路206には、新規要求ポートの信号RQPT及び新規要求ポートの抑制信号RQPT_INHが入力されるAND回路205の出力と、パイプライン選択部<1>15の選択回路204の出力とが入力される。選択回路207は、パイプライン選択部<1>15の選択回路204の出力及びAND回路206の出力を選択的に出力する。
The AND
ここで、信号SRPT、LDPT、OSPT、RQPTは、それぞれのポートに要求があるときに“1”となり、要求がない状態では“0”となる信号である。また、信号SRPT_INH、LDPT_INH、OSPT_INH、RQPT_INHは、それぞれのポートに対して要求タイミングが適切でない場合に“1”とされる信号である。例えば、抑制信号は、メモリ読み込みに全体で4サイクルかかる場合に、3サイクル以内に次のメモリ読み込みの信号がきたときに4サイクルが経過する(前のメモリ読み込みが完了する)まで次の出力を抑制させる信号である。 Here, the signals SRPT, LDPT, OSPT, and RQPT are “1” when there is a request for each port, and “0” when there is no request. The signals SRPT_INH, LDPT_INH, OSPT_INH, and RQPT_INH are signals that are set to “1” when the request timing is not appropriate for each port. For example, if the memory read takes 4 cycles in total, the next output is output until 4 cycles elapse (the previous memory read is completed) when the next memory read signal comes within 3 cycles. It is a signal to be suppressed.
図2に示した構成のパイプライン選択部<1>15は、スヌープ応答ポートの信号SRPTが“1”であり、スヌープ応答ポートの抑制信号SRPT_INHが“0”であるとき(入力状態1)、スヌープ応答の要求を出力する。また、スヌープ応答ポートの信号SRPTが“0”であり、ロードバッファポートの信号LDPTが“1”であり、ロードバッファポートの抑制信号LDPT_INHが“0”であるとき(入力状態2)、ロードバッファの要求を出力する。また、スヌープ応答ポートの信号SRPTが“0”であり、ロードバッファポートの信号LDPTが“0”であり、外部スヌープポートの信号OSPTが“1”であり、外部スヌープポートの抑制信号OSPT_INHが“0”であるとき(入力状態3)、外部スヌープの要求を出力する。前述した入力状態1、入力状態2、入力状態3のいずれでもない場合には、パイプライン選択部<1>15は要求を出力しない。
The pipeline selection unit <1> 15 having the configuration shown in FIG. 2 has a snoop response port signal SRPT of “1” and a snoop response port suppression signal SRPT_INH of “0” (input state 1). Outputs a snoop response request. When the snoop response port signal SRPT is “0”, the load buffer port signal LDPT is “1”, and the load buffer port suppression signal LDPT_INH is “0” (input state 2), the load buffer Output the request. Further, the signal SRPT of the snoop response port is “0”, the signal LDPT of the load buffer port is “0”, the signal OSPT of the external snoop port is “1”, and the suppression signal OSPT_INH of the external snoop port is “1”. When 0 "(input state 3), an external snoop request is output. If none of the
また、図2に示した構成のパイプライン選択部<2>17は、パイプライン選択部<1>15がスヌープ応答、ロードバッファ、外部スヌープの何れの要求を出力しているとき、パイプライン選択部<1>15が出力する要求を出力する。また、パイプライン選択部<1>15がスヌープ応答、ロードバッファ、外部スヌープの何れかの要求も出力しておらず、新規要求ポートの信号RQPTが“1”であり、新規要求ポートの抑制信号RQPT_INHが“0”であるとき、新規要求を出力する。それら以外の場合、パイプライン選択部<2>17は要求を出力しない。 Also, the pipeline selection unit <2> 17 having the configuration shown in FIG. 2 selects the pipeline when the pipeline selection unit <1> 15 outputs any of the snoop response, load buffer, and external snoop requests. The request output by the part <1> 15 is output. Further, the pipeline selection unit <1> 15 does not output any of the snoop response, the load buffer, and the external snoop request, the signal RQPT of the new request port is “1”, and the suppression signal of the new request port When RQPT_INH is “0”, a new request is output. In other cases, the pipeline selection unit <2> 17 does not output a request.
このように本実施形態では、パイプライン選択部<1>15及びパイプライン選択部<2>17−1、17−2を配置し、パイプライン選択部<1>15では新規要求以外の要求を選択し、パイプライン選択部<2>17−1、17−2では新規要求とパイプライン選択部<1>15で選択された要求のどちらかを選択してLLキャッシュタグ部18−1、18−2に渡す。また、コア11からの要求のインターフェースとして、新規要求のための新規要求ポート16−1、16−2と、新規要求以外の要求の各種ポート13とに分けて設ける。
Thus, in the present embodiment, the pipeline selection unit <1> 15 and the pipeline selection units <2> 17-1, 17-2 are arranged, and the pipeline selection unit <1> 15 makes requests other than new requests. The pipeline selection units <2> 17-1 and 17-2 select either a new request or the request selected by the pipeline selection unit <1> 15 to select the LL cache tag units 18-1 and 18 -2. In addition, as request interfaces from the
これにより図1に示すように、新規要求ポート16−1、16−2とパイプライン選択部<2>17−1、17−2とを、パイプライン選択部<1>15よりもLLキャッシュタグ部18−1、18−2に近づけて近傍に配置することが可能になる。したがって、例えば図1に破線で示したようにコア<7>11からの要求データが、LLキャッシュメモリのLLキャッシュタグ部18−2及びLLキャッシュデータ部19−2で構成されるバンクでキャッシュヒットした場合、従来のようにパイプライン制御部14の中央を経由する必要がなくなるため、信号が流れる経路が短くなり、LLキャッシュメモリのアクセスレイテンシを短縮することができる。なお、例えば、コア<7>11からの要求データが、LLキャッシュメモリにおいてコア<7>11から遠方のLLキャッシュタグ部18−1及びLLキャッシュデータ部19−1で構成されるバンクでキャッシュヒットしたとしても、信号が流れる経路は、従来のパイプライン制御部14の中央を経由する経路と同様の距離であるので、LLキャッシュメモリのアクセスレイテンシが悪化することはない。
As a result, as shown in FIG. 1, the new request ports 16-1 and 16-2 and the pipeline selection units <2> 17-1 and 17-2 are connected to the LL cache tag more than the pipeline selection unit <1> 15. It becomes possible to arrange in the vicinity near the parts 18-1 and 18-2. Therefore, for example, as shown by the broken line in FIG. 1, the request data from the core <7> 11 is cache hit in the bank constituted by the LL cache tag unit 18-2 and the LL cache data unit 19-2 of the LL cache memory. In this case, since there is no need to go through the center of the
図3A及び図3Bを参照して、本実施形態におけるLLキャッシュメモリへのアクセスについて説明する。図3Aは、本実施形態におけるLLキャッシュメモリへのアクセスを説明するための図であり、図3Bは、図10に示した従来のプロセッサにおけるLLキャッシュメモリへのアクセスを説明するための図である。なお、図3A及び図3Bにおいて、期間ST1、ST2、ST3、ST4、ST5、ST6のそれぞれは、プロセッサの動作周波数の1サイクル期間に相当する。 With reference to FIG. 3A and FIG. 3B, access to the LL cache memory in this embodiment will be described. FIG. 3A is a diagram for explaining access to the LL cache memory in the present embodiment, and FIG. 3B is a diagram for explaining access to the LL cache memory in the conventional processor shown in FIG. . 3A and 3B, each of the periods ST1, ST2, ST3, ST4, ST5, and ST6 corresponds to one cycle period of the operating frequency of the processor.
図3Bに示すように、図10に示した従来のプロセッサにおいては、コア301からの新規要求は、期間ST2において、それぞれのコアに対応する新規要求ポート361に入力される。そして、次のサイクルの期間ST3においてLRU(Least Recently Used)制御部371により最も古い新規要求が選択されて出力される。続く、期間ST4において、所定の優先順位に従ってパイプライン投入する要求を選択するパイプライン選択部381により選択されると、期間ST6においてLLキャッシュタグ部351に到達する。なお、期間ST5は、パイプライン選択部381とLLキャッシュタグ部351との間の転送に要する期間として設けている。
As shown in FIG. 3B, in the conventional processor shown in FIG. 10, a new request from the
また、コア301からのスヌープ応答の要求も同様に、期間ST2において、それぞれのコアに対応するスヌープ応答ポート362に入力され、次のサイクルの期間ST3においてLRU制御部372により最も古いスヌープ応答の要求が選択されて出力される。続く、期間ST4において、パイプライン選択部381により選択されると、期間ST6においてLLキャッシュタグ部351に到達する。
Similarly, a snoop response request from the
メモリ制御部302からの外部スヌープの要求、メモリ制御部303からのロードバッファの要求、その他の機能部304からのエラー処理等の要求は、期間ST2において、それぞれ対応するポート363、364、365に入力される。そして、期間ST4において、パイプライン選択部381により選択されると、期間ST6においてLLキャッシュタグ部351に到達する。
Requests for external snoops from the
このように図10に示した従来のプロセッサにおいては、要求の種類にかかわらずLLキャッシュタグ部351に達するには6サイクル分の時間を要している。
As described above, in the conventional processor shown in FIG. 10, it takes 6 cycles to reach the LL
それに対して、図3Aに示すように、本実施形態におけるプロセッサにおいては、コア301からの新規要求は、期間ST2において、それぞれのコアに対応する新規要求ポート331に入力される。そして、次のサイクルの期間ST3においてLRU制御部341により最も古い新規要求が選択されて出力され、さらにパイプライン選択部<2>342により選択されると、期間ST4においてLLキャッシュタグ部351に到達する。
On the other hand, as shown in FIG. 3A, in the processor according to the present embodiment, a new request from the
コア301からのスヌープ応答の要求は、期間ST2において、それぞれのコアに対応するスヌープ応答ポート311に入力される。そして、次のサイクルの期間ST3においてパイプライン選択部<1>321により選択され、期間ST5においてパイプライン選択部<2>342により選択されると、期間ST6においてLLキャッシュタグ部351に到達する。なお、期間ST5は、パイプライン選択部<1>321とパイプライン選択部<2>342との間の転送に要する期間として設けている。
The request for the snoop response from the
メモリ制御部302からの外部スヌープの要求、メモリ制御部303からのロードバッファの要求、その他の機能部304からのエラー処理等の要求は、期間ST2において、それぞれ対応するポート312、313、314に入力される。そして、次のサイクルの期間ST3においてパイプライン選択部<1>321により選択され、期間ST5においてパイプライン選択部<2>342により選択されると、期間ST6においてLLキャッシュタグ部351に到達する。
Requests for external snoops from the
このように本実施形態では、パイプライン選択部<1>321とパイプライン選択部<2>342との2つに分けるとともに、新規要求ポート331及びパイプライン選択部<2>342をLLキャッシュタグ部351に近接した位置に配置することで、新規要求以外の要求は従来と同様に6サイクル分の時間でLLキャッシュタグ部351に到達するが、コア301からの新規要求は4サイクル分の時間でLLキャッシュタグ部351に到達させることが可能となる。
As described above, in this embodiment, the pipeline selection unit <1> 321 and the pipeline selection unit <2> 342 are divided into two, and the
すなわち、コアからの新規データの要求(新規要求)は、本実施形態におけるプロセッサでは図4(A)に示すように、新規要求ポート及びパイプライン選択部<2>を介して4サイクル分の時間(ST1〜ST4)でLLキャッシュタグ部351に到達させることが可能となる。一方、従来のプロセッサでは、図4(B)に示すように、各種ポート内の新規要求ポート及びパイプライン選択部を介してLLキャッシュタグ部351に到達するまでに6サイクル分の時間(ST1〜ST6)を要する。
That is, a request for new data (new request) from the core is a time corresponding to four cycles through the new request port and the pipeline selection unit <2> in the processor according to the present embodiment, as shown in FIG. It is possible to reach the LL
図3A、図3B、及び図4を参照して説明したように、本実施形態におけるプロセッサは、パイプライン選択部<1>321とパイプライン選択部<2>342との2つに分けたことによって、新規要求に係る経路の論理段数を減少させることができ、LLキャッシュメモリのアクセスレイテンシを短縮することが可能となる。 As described with reference to FIGS. 3A, 3B, and 4, the processor according to the present embodiment is divided into the pipeline selection unit <1> 321 and the pipeline selection unit <2> 342. As a result, the number of logical stages in the path related to the new request can be reduced, and the access latency of the LL cache memory can be shortened.
また、本実施形態では、新規要求が新規要求以外の要求よりも短い時間でLLキャッシュタグ部に到達することが可能となるため、スループットを向上させることができる。例えば、図5に示すように、R(新規要求以外の要求)、E(要求なし)、R、R、N(新規要求)の順に1サイクル毎に要求が発行されたとする。このとき、STAGE0ではR、E、R、R、Nとなるが、N(新規要求)はSTAGE4でLLキャッシュタグ部に到達するため、以降ではE(要求なし)の部分にN(新規要求)が割り込むことができ、スループットが向上していることがわかる。 Further, in the present embodiment, since a new request can reach the LL cache tag unit in a shorter time than a request other than the new request, the throughput can be improved. For example, as shown in FIG. 5, it is assumed that a request is issued for each cycle in the order of R (request other than a new request), E (no request), R, R, and N (new request). At this time, in STAGE0, R, E, R, R, and N become N, but since N (new request) reaches the LL cache tag part in STAGE4, N (new request) is subsequently added to the E (no request) portion. It can be seen that the throughput is improved.
ここで、前述したようにパイプライン投入する優先順位が、スヌープ応答ポートが一番高く、ロードバッファポート、外部スヌープポートの順に低くなり、新規要求ポートが一番低い場合、従来のプロセッサにおけるパイプライン選択部は、例えば図6(B)に示すように構成される。図6(B)は、従来のプロセッサにおけるパイプライン選択部の構成例をしており、AND回路601、602、603、604及び選択回路605を有する。
Here, as described above, when the priority for entering the pipeline is highest in the snoop response port, lower in the order of the load buffer port and the external snoop port, and the lowest in the new request port, the pipeline in the conventional processor The selection unit is configured as shown in FIG. 6B, for example. FIG. 6B illustrates a configuration example of a pipeline selection unit in a conventional processor, which includes AND
AND回路601には、スヌープ応答ポートの信号SRPT及びスヌープ応答ポートの抑制信号SRPT_INHが入力される。AND回路602には、ロードバッファポートの信号LDPT、ロードバッファポートの抑制信号LDPT_INH、及びスヌープ応答ポートの信号SRPTが入力される。AND回路603には、外部スヌープポートの信号OSPT、外部スヌープポートの抑制信号OSPT_INH、スヌープ応答ポートの信号SRPT、及びロードバッファポートの信号LDPTが入力される。AND回路604には、新規要求ポートの信号RQPT、新規要求ポートの抑制信号RQPT_INH、スヌープ応答ポートの信号SRPT、ロードバッファポートの信号LDPT、及び外部スヌープポートの信号OSPTが入力される。選択回路605は、AND回路601、602、603、604の出力を選択的に出力する。
The AND
図6(B)に示したように構成されたパイプライン選択部においては、要求の入力順序によっては、どの要求も選択されずスループットを低下させてしまうことがある。例えば、コアからの要求が、スヌープ応答ポート→ロードバッファポート→スヌープ応答ポート及び新規要求ポート(同時)の順に来ていた場合、パイプラインに投入される順序は優先順位に従うと、スヌープ応答ポート→ロードバッファポート→スヌープ応答ポート→新規要求ポートとなる。 In the pipeline selection unit configured as shown in FIG. 6B, depending on the input order of requests, no request may be selected and throughput may be reduced. For example, if the requests from the core are in the order of snoop response port → load buffer port → snoop response port and new request port (simultaneous), the order to be put into the pipeline follows the priority order, the snoop response port → Load buffer port → snoop response port → new request port.
しかし、スヌープ応答ポート及び新規要求ポート(同時)が来ているタイミングにおいて、スヌープ応答ポートの信号SRPT、スヌープ応答ポートの抑制信号SRPT_INH、及び新規要求ポートの信号RQPTが“1”であり、その他の信号LDRT、OSPT及び抑制信号LDRT_INH、OSPT_INH、RQPT_INHが“0”である場合、優先度の高いスヌープ応答ポートの要求は来ているがスヌープ応答ポートの抑制信号SRPT_INHによりスヌープ応答ポートの要求は通らない。また、新規要求ポートの要求も、優先度の高いスヌープ応答ポートの要求が来ているために通らない。したがって、AND回路601、602、603、604の出力は“0”となり、パイプライン選択部の選択回路605は、どの要求も選択しない。
However, at the timing when the snoop response port and the new request port (simultaneously) are coming, the snoop response port signal SRPT, the snoop response port suppression signal SRPT_INH, and the new request port signal RQPT are “1”. When the signals LDRT and OSPT and the suppression signals LDRT_INH, OSPT_INH, and RQPT_INH are “0”, a request for a snoop response port with a high priority is received, but a request for a snoop response port is not transmitted due to the suppression signal SRPT_INH of the snoop response port. . Also, a request for a new request port does not pass because a request for a snoop response port with a high priority is received. Therefore, the outputs of the AND
それに対して、本実施形態によれば、図6(A)に示すように、スヌープ応答ポートの信号SRPT、スヌープ応答ポートの抑制信号SRPT_INH、及び新規要求ポートの信号RQPTが“1”であり、その他の信号LDRT、OSPT及び抑制信号LDRT_INH、OSPT_INH、RQPT_INHが“0”である場合、パイプライン選択部<1>の選択回路204は、どの要求も選択しない。本実施形態では、パイプライン選択部<2>が新規要求と新規要求以外の要求との選択を行うので、パイプライン選択部<2>の選択回路207は、新規要求ポートの要求を選択して出力することができる。
On the other hand, according to the present embodiment, as shown in FIG. 6A, the snoop response port signal SRPT, the snoop response port suppression signal SRPT_INH, and the new request port signal RQPT are “1”. When the other signals LDRT, OSPT and the suppression signals LDRT_INH, OSPT_INH, RQPT_INH are “0”, the
すなわち、コアからの要求が、スヌープ応答ポート→ロードバッファポート→スヌープ応答ポート及び新規要求ポート(同時)の順に来ていた場合、従来のプロセッサにおいては、図7(B)に示すように、スヌープ応答ポート→ロードバッファポート→(命令なし)→スヌープ応答ポート→新規要求ポートの順でパイプラインに投入される。それに対して、本実施形態によれば、図7(A)に示すように、スヌープ応答ポート→ロードバッファポート→新規要求ポート→スヌープ応答ポートの順でパイプラインに投入することが可能となり、パイプラインスロットを効率的に使用でき、スループットを向上させることが可能となる。 That is, when the requests from the core are in the order of snoop response port → load buffer port → snoop response port and new request port (simultaneous), in the conventional processor, as shown in FIG. Response port-> load buffer port-> (no instruction)-> snoop response port-> new request port. On the other hand, according to the present embodiment, as shown in FIG. 7A, it is possible to enter the pipeline in the order of snoop response port → load buffer port → new request port → snoop response port. Line slots can be used efficiently, and throughput can be improved.
なお、前述した説明では、8つのコア(コア<0>〜コア<7>)と、それらのコアで共有される2バンクのLLキャッシュメモリとを有する例を示したが、本発明は、これに限定されるものではない。本実施形態におけるプロセッサが有するコアの数や、LLキャッシュメモリのバンク数は、任意の複数であればよい。例えば、図8に一例を示すように、8つのコア(コア<0>〜コア<7>)と、それら8つのコアで共有される4バンクのLLキャッシュメモリとを有するプロセッサにおいても適用可能である。 In the above description, an example having eight cores (core <0> to core <7>) and two banks of LL cache memory shared by these cores has been shown. It is not limited to. The number of cores included in the processor and the number of banks of the LL cache memory in this embodiment may be any plural number. For example, as shown in FIG. 8, the present invention can also be applied to a processor having eight cores (core <0> to core <7>) and four banks of LL cache memory shared by the eight cores. is there.
図8は、本実施形態における演算処理装置としてのプロセッサのレイアウトの他の例を示す図である。図8において、図1に示した構成要素と同じ機能を有する構成要素には同一の符号を付し、重複する説明は省略する。 FIG. 8 is a diagram illustrating another example of the layout of the processor as the arithmetic processing device according to the present embodiment. 8, components having the same functions as those shown in FIG. 1 are denoted by the same reference numerals, and redundant description is omitted.
図8に示す例では、LLキャッシュメモリは、LLキャッシュタグ部18−1とLLキャッシュデータ部19−1とが1つのバンクを構成しており、LLキャッシュタグ部18−2とLLキャッシュデータ部19−2とが1つのバンクを構成している。また、LLキャッシュタグ部18−3とLLキャッシュデータ部19−3とが1つのバンクを構成しており、LLキャッシュタグ部18−4とLLキャッシュデータ部19−4とが1つのバンクを構成している。 In the example shown in FIG. 8, in the LL cache memory, the LL cache tag unit 18-1 and the LL cache data unit 19-1 constitute one bank, and the LL cache tag unit 18-2 and the LL cache data unit 19-2 constitute one bank. Further, the LL cache tag unit 18-3 and the LL cache data unit 19-3 constitute one bank, and the LL cache tag unit 18-4 and the LL cache data unit 19-4 constitute one bank. doing.
また、LLキャッシュメモリの各バンクに対応させるように、新規要求ポート16−1、16−2、16−3、16−4及びパイプライン選択部<2>17−1、17−2、17−3、17−4を設けて、パイプライン選択部<1>15よりもLLキャッシュタグ部18−1、18−2、18−3、18−4に近づけて近傍に配置している。このように、新規要求ポートとパイプライン選択部<2>とを、LLキャッシュメモリの各バンクに隣接するように分割して配置すれば良い。これにより、例えば図8に破線で示すように、コア11からの要求データが、そのコアに近いLLキャッシュメモリのバンクでキャッシュヒットした場合、信号が流れる経路が短くなり、LLキャッシュメモリのアクセスレイテンシを短縮することができる。
Also, new request ports 16-1, 16-2, 16-3, 16-4 and pipeline selection units <2> 17-1, 17-2, 17- are associated with each bank of the LL cache memory. 3 and 17-4 are provided and arranged closer to the LL cache tag units 18-1, 18-2, 18-3, and 18-4 than the pipeline selection unit <1> 15. In this way, the new request port and the pipeline selection unit <2> may be divided and arranged so as to be adjacent to each bank of the LL cache memory. As a result, for example, as indicated by a broken line in FIG. 8, when the requested data from the
本実施形態によれば、パイプライン選択部<1>とパイプライン選択部<2>とに分け、新規要求ポート及びパイプライン選択部<2>をLLキャッシュメモリに近接した位置に配置することで、コアからのLLキャッシュメモリに対する要求の内で最も要求頻度が高い新規データの要求に係る経路の物理的な距離を短縮することができ、LLキャッシュメモリのアクセスレイテンシを改善し、プロセッサ全体での処理性能を向上させることができる。 According to the present embodiment, the pipeline selection unit <1> is divided into the pipeline selection unit <2>, and the new request port and the pipeline selection unit <2> are arranged at positions close to the LL cache memory. The physical distance of the path related to a request for new data having the highest request frequency among the requests from the core to the LL cache memory can be shortened, the access latency of the LL cache memory can be improved, and the entire processor Processing performance can be improved.
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。 The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
11 コア
12 転送バス
13 各種ポート
14 パイプライン制御部
15 パイプライン選択部<1>
16 新規要求ポート
17 パイプライン選択部<2>
18 LL(ラストレベル)キャッシュタグ部
19 LL(ラストレベル)キャッシュデータ部
20 外部ポート
11
16
18 LL (last level) cache tag part 19 LL (last level)
Claims (7)
複数のバンクを有し、前記複数の演算部で共有されるキャッシュメモリと、
前記キャッシュメモリに対する要求の内の前記演算部からの第1の要求以外の要求から、出力する要求を選択する第1の選択部と、
前記キャッシュメモリのバンク毎に前記第1の選択部よりも前記キャッシュメモリに近い位置に配置され、前記第1の要求及び前記第1の選択部により選択された要求から要求を選択し、選択した要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力する第2の選択部とを有することを特徴とする演算処理装置。 A plurality of arithmetic units;
A cache memory having a plurality of banks and shared by the plurality of arithmetic units;
A first selection unit that selects a request to be output from requests other than the first request from the arithmetic unit among the requests to the cache memory;
Each bank of the cache memory is arranged at a position closer to the cache memory than the first selection unit, and selects and selects a request from the first request and the request selected by the first selection unit And a second selection unit that outputs a request to a pipeline related to access to the cache memory.
複数のバンクを有し、前記複数の演算部で共有されるキャッシュメモリと、
前記キャッシュメモリに対する要求の内の前記演算部からの第1の要求以外の要求から、出力する要求を選択する第1の選択部と、
前記キャッシュメモリのバンク毎に、前記第1の要求及び前記第1の選択部により選択された要求から要求を選択し、選択した要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力する第2の選択部とを有することを特徴とする演算処理装置。 A plurality of arithmetic units;
A cache memory having a plurality of banks and shared by the plurality of arithmetic units;
A first selection unit that selects a request to be output from requests other than the first request from the arithmetic unit among the requests to the cache memory;
For each bank of the cache memory, a request is selected from the first request and the request selected by the first selection unit, and the selected request is output to a pipeline related to the access to the cache memory. And an arithmetic processing unit having two selection units.
前記演算処理装置の第1の選択部により、前記キャッシュメモリに対する要求の内の前記演算部からの第1の要求以外の要求から出力する要求を選択し、
前記キャッシュメモリのバンク毎に設けられた前記演算処理装置の第2の選択部により、前記第1の要求及び前記第1の選択部により選択された要求から要求を選択し、選択した要求を前記キャッシュメモリのアクセスに係るパイプラインに対して出力することを特徴とする演算処理装置の制御方法。 A control method of an arithmetic processing unit having a plurality of arithmetic units and a cache memory having a plurality of banks and shared by the plurality of arithmetic units,
The first selection unit of the arithmetic processing unit selects a request to be output from a request other than the first request from the arithmetic unit among the requests for the cache memory,
The second selection unit of the arithmetic processing unit provided for each bank of the cache memory selects a request from the first request and the request selected by the first selection unit, and selects the selected request A control method for an arithmetic processing unit, characterized by outputting to a pipeline related to access to a cache memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015142344A JP6569347B2 (en) | 2015-07-16 | 2015-07-16 | Arithmetic processing device and control method of arithmetic processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015142344A JP6569347B2 (en) | 2015-07-16 | 2015-07-16 | Arithmetic processing device and control method of arithmetic processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017027156A true JP2017027156A (en) | 2017-02-02 |
JP6569347B2 JP6569347B2 (en) | 2019-09-04 |
Family
ID=57945998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015142344A Active JP6569347B2 (en) | 2015-07-16 | 2015-07-16 | Arithmetic processing device and control method of arithmetic processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6569347B2 (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02289013A (en) * | 1989-02-03 | 1990-11-29 | Digital Equip Corp <Dec> | Method and equipment for order and quening of plural memory requests |
JPH03105660A (en) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | Request control system |
JP2001325147A (en) * | 2000-05-17 | 2001-11-22 | Hitachi Ltd | Partial storage processing method, memory system and large scale integrated circuit |
US20110125969A1 (en) * | 2009-11-25 | 2011-05-26 | Fujitsu Limited | Cache memory control device, semiconductor integrated circuit, and cache memory control method |
WO2011077549A1 (en) * | 2009-12-25 | 2011-06-30 | 富士通株式会社 | Computational processing device |
US20110320695A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Mitigating busy time in a high performance cache |
WO2012172694A1 (en) * | 2011-06-17 | 2012-12-20 | 富士通株式会社 | Arithmetic processing unit, information processing device, and arithmetic processing unit control method |
JP2014160507A (en) * | 2010-01-14 | 2014-09-04 | Qualcomm Inc | System and method to access portion of level two memory and level one memory |
-
2015
- 2015-07-16 JP JP2015142344A patent/JP6569347B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02289013A (en) * | 1989-02-03 | 1990-11-29 | Digital Equip Corp <Dec> | Method and equipment for order and quening of plural memory requests |
JPH03105660A (en) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | Request control system |
JP2001325147A (en) * | 2000-05-17 | 2001-11-22 | Hitachi Ltd | Partial storage processing method, memory system and large scale integrated circuit |
US20110125969A1 (en) * | 2009-11-25 | 2011-05-26 | Fujitsu Limited | Cache memory control device, semiconductor integrated circuit, and cache memory control method |
JP2011113223A (en) * | 2009-11-25 | 2011-06-09 | Fujitsu Ltd | Cache memory control device, semiconductor integrated circuit and cache memory control method |
WO2011077549A1 (en) * | 2009-12-25 | 2011-06-30 | 富士通株式会社 | Computational processing device |
JP2014160507A (en) * | 2010-01-14 | 2014-09-04 | Qualcomm Inc | System and method to access portion of level two memory and level one memory |
US20110320695A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Mitigating busy time in a high performance cache |
US20130060997A1 (en) * | 2010-06-23 | 2013-03-07 | International Business Machines Corporation | Mitigating busy time in a high performance cache |
WO2012172694A1 (en) * | 2011-06-17 | 2012-12-20 | 富士通株式会社 | Arithmetic processing unit, information processing device, and arithmetic processing unit control method |
Also Published As
Publication number | Publication date |
---|---|
JP6569347B2 (en) | 2019-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8082420B2 (en) | Method and apparatus for executing instructions | |
US9965274B2 (en) | Computer processor employing bypass network using result tags for routing result operands | |
JP5177141B2 (en) | Arithmetic processing device and arithmetic processing method | |
US9063907B2 (en) | Comparison for redundant threads | |
CN112230992B (en) | Instruction processing device, processor and processing method thereof comprising branch prediction loop | |
JP5142868B2 (en) | Cache memory control circuit and processor | |
JP5504523B2 (en) | Branch destination buffer allocation | |
US20080098174A1 (en) | Cache memory having pipeline structure and method for controlling the same | |
US8707014B2 (en) | Arithmetic processing unit and control method for cache hit check instruction execution | |
JP4635063B2 (en) | Cache memory control circuit and processor | |
US20110055647A1 (en) | Processor | |
CN112540792A (en) | Instruction processing method and device | |
JP2009288977A (en) | Cache memory control device, semiconductor integrated circuit, and cache memory control method | |
WO2006039183A2 (en) | Expansion of compute engine code space by sharing adjacent control stores using interleaved program addresses | |
US11003581B2 (en) | Arithmetic processing device and arithmetic processing method of controlling prefetch of cache memory | |
JP6569347B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
JP5382113B2 (en) | Storage control device and control method thereof | |
JP4409620B2 (en) | Arithmetic processing device, cache memory control device and control method | |
US10031751B2 (en) | Arithmetic processing device and method for controlling arithmetic processing device | |
CN112540789B (en) | Instruction processing device, processor and processing method thereof | |
US10996954B2 (en) | Calculation processing apparatus and method for controlling calculation processing apparatus | |
US10922129B2 (en) | Operation processing device and control method of operation processing device | |
JPWO2004025478A1 (en) | Data processing apparatus and method using latency difference between memory blocks | |
JP2013545211A (en) | Architecture and method for eliminating storage buffers in a DSP / processor with multiple memory accesses | |
US9081673B2 (en) | Microprocessor and memory access method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180413 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190108 |
|
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: 20190709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190722 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6569347 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |