JP6303632B2 - Arithmetic processing device and control method of arithmetic processing device - Google Patents

Arithmetic processing device and control method of arithmetic processing device Download PDF

Info

Publication number
JP6303632B2
JP6303632B2 JP2014046912A JP2014046912A JP6303632B2 JP 6303632 B2 JP6303632 B2 JP 6303632B2 JP 2014046912 A JP2014046912 A JP 2014046912A JP 2014046912 A JP2014046912 A JP 2014046912A JP 6303632 B2 JP6303632 B2 JP 6303632B2
Authority
JP
Japan
Prior art keywords
management data
request
data
unit
arithmetic processing
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.)
Active
Application number
JP2014046912A
Other languages
Japanese (ja)
Other versions
JP2015170313A (en
Inventor
石井 寛之
寛之 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014046912A priority Critical patent/JP6303632B2/en
Publication of JP2015170313A publication Critical patent/JP2015170313A/en
Application granted granted Critical
Publication of JP6303632B2 publication Critical patent/JP6303632B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明は、演算処理装置および演算処理装置の制御方法に関する。   The present invention relates to an arithmetic processing unit and a control method for the arithmetic processing unit.

メインフレーム等、情報処理装置の演算処理装置には、主記憶の一定記憶領域ごと、例えば4KBごとにKEYデータという主記憶管理のためのデータが存在するものがある。一定領域ごとのKEYデータは、例えば、それぞれ対応する一定領域の参照(R bit)と更新(C bit)を表現する。演算処理装置のCPU(Central Processing Unit)や、CPUに含まれるコアが主記憶内のある記憶領域へストア(ST)命令を発行すると、ストア命令の発行に伴って、以下の処理がなされる。すなわち、R bitとC bitを更新する更新要求(SET−RCと呼ぶことにする)がKEYデータを管理するKEY制御部へ発行される。以下、CPUあるいはCPUに含まれるコアをプロセッサ、あるいは演算処理装置ともいう。ただし、演算処理装置が複数のCPUを有し、各CPUが複数のコアを有する場合もある。さらに、以下、KEYデータを管理データと呼ぶことにする。   Some arithmetic processing devices such as mainframes have information for main memory management called KEY data for every fixed storage area of the main memory, for example, every 4 KB. The KEY data for each fixed area represents, for example, the reference (R bit) and update (C bit) of the corresponding fixed area. When a CPU (Central Processing Unit) of the arithmetic processing unit or a core included in the CPU issues a store (ST) instruction to a certain storage area in the main memory, the following processing is performed along with the issue of the store instruction. That is, an update request (referred to as SET-RC) for updating R bit and C bit is issued to the KEY control unit that manages the KEY data. Hereinafter, the CPU or the core included in the CPU is also referred to as a processor or an arithmetic processing unit. However, the arithmetic processing unit may have a plurality of CPUs, and each CPU may have a plurality of cores. Hereinafter, the KEY data is referred to as management data.

実際に記憶領域にストアされたデータと、データがストアされた記憶領域の管理データには、整合性が保たれていることが求められる。ストア対象のデータを別のプロセッサが参照したとき、書き込み後の最新データに伴って発行された管理データの更新要求が処理されていることが、例えば、システム管理上要求される。なお、演算処理装置において、管理データ(KEYデータ)を参照する参照命令としては、ISK(Insert Storage Key)命令が例示される。例えば、ISK命令は、オペランドで指定されたレジスタに対して、指定された主記憶のアドレスに対応するKEYデータを主記憶から読み出してセットする。OS(Operating System)は、例えば、ISK命令を用いて主記憶のR bit、C bit等を読み出し、仮想記憶におけるページの入れ替え時に、どのページを先に追い出すか等の判断に使用する。OSは、例えば、頻繁に更新、参照されるページは極力追い出さないようにページを管理すればよい。   The data actually stored in the storage area and the management data of the storage area in which the data is stored are required to be consistent. When another processor refers to the data to be stored, for example, it is requested in terms of system management that a management data update request issued with the latest data after writing is being processed. In the arithmetic processing unit, an ISK (Insert Storage Key) instruction is exemplified as a reference instruction for referring to management data (KEY data). For example, the ISK instruction reads the KEY data corresponding to the address of the designated main memory from the main memory and sets it in the register designated by the operand. An OS (Operating System) reads, for example, R bits and C bits in the main memory using an ISK instruction, and uses it to determine which page is first driven when a page is replaced in the virtual memory. For example, the OS may manage pages so that pages that are frequently updated and referenced are not driven out as much as possible.

演算処理装置においては、ロード(LD)命令で新データが参照された後に発行される管理データの参照命令によって、ストア(ST)命令発行前の管理データが参照できない制御がなされている。   In the arithmetic processing unit, control is performed such that management data before issuing a store (ST) instruction cannot be referred to by a management data reference instruction issued after new data is referenced by a load (LD) instruction.

例えば、演算処理装置が、複数のプロセッサとして、CPU0とCPU1とを有する場合の主記憶へのストアとロードの処理は、以下のように例示される。
1.CPU0 ST (A) ・・・ CPU0がAというアドレスにデータをストアした。ストアに伴って、SET−RC (A)が発行される。
2.CPU1 LD (A) ・・・ CPU1がAというアドレスのデータを読み出した。
3.CPU1 ISK (A) ・・・ CPU1がAというアドレスを含む一定範囲の記憶領域に対応するKEYデータを読み出す命令を発行する。
For example, when the arithmetic processing unit has CPU 0 and CPU 1 as a plurality of processors, the store and load processing to the main memory is exemplified as follows.
1. CPU0 ST (A)... CPU0 stores data at address A. A SET-RC (A) is issued along with the store.
2. CPU1 LD (A)... CPU1 reads data at address A.
3. CPU1 ISK (A)... CPU1 issues a command to read KEY data corresponding to a certain range of storage area including the address A.

手順2でロードしたときに、手順1でストアしたデータが参照された場合、手順3で発行したISK(管理データの参照命令)は、手順1でのSET−RC(管理データの更新要求)後のKEYデータ(管理データ)を参照する結果となるように、KEYデータの設定と参照との関係が制御されている。   When the data stored in step 1 is referenced when loaded in step 2, the ISK (management data reference command) issued in step 3 is the same as the SET-RC (management data update request) in step 1. The relationship between the setting and reference of the KEY data is controlled so as to result in referring to the KEY data (management data).

図1に、主記憶へのアクセスレイテンシがどのCPUからも平等なUMA(Unifo
rm Memory Access)型の大規模SMP(Symmetric multiprocessing)構成の演算処理装置の構成を例示する。図1の演算処理装置は、複数のシステムボードを有する。また、各システムボードは、複数のCPU(CPU1−LSI、CPU2−LSI、CPU3−LSI等)と、複数のSC(System Controller; SC1−LSI、SC2−LSI、SC3−LSI等)と、複数に区分された主記憶(MEM、メインストレージ)とを有する。さらに、各CPUは、例えば、複数の演算コアと、キャッシュ制御部と、外部インターフェース部とを有する。一方、各SCは、CPUポート部と、キャッシュTAG情報部と、メモリコントローラと、KEY制御部とを有する。各CPUの外部インターフェース部と、それぞれのCPUに対応するSCのCPUポート部とが接続されている。また、各システムボードのSCは、他のシステムボードのSCと、例えば、インターコネクトと呼ばれる伝送路で接続される。
FIG. 1 shows a UMA (Unifo) where the access latency to the main memory is equal from any CPU.
An example of a configuration of an arithmetic processing device having a large-scale SMP (Symmetric multiprocessing) configuration of an rm Memory Access) type is illustrated. The arithmetic processing apparatus of FIG. 1 has a plurality of system boards. Each system board includes a plurality of CPUs (CPU1-LSI, CPU2-LSI, CPU3-LSI, etc.), a plurality of SCs (System Controller; SC1-LSI, SC2-LSI, SC3-LSI, etc.), and a plurality of CPUs. It has a divided main memory (MEM, main storage). Further, each CPU has, for example, a plurality of arithmetic cores, a cache control unit, and an external interface unit. On the other hand, each SC has a CPU port unit, a cache TAG information unit, a memory controller, and a KEY control unit. The external interface unit of each CPU is connected to the CPU port unit of the SC corresponding to each CPU. In addition, the SC of each system board is connected to the SCs of other system boards through, for example, a transmission line called an interconnect.

主記憶(図中MEM)に対するアクセス命令は演算コアから発行される。アクセス命令の対象データが演算コア内に配置されたL1キャッシュでヒットしなかった場合には、アクセス命令がL2キャッシュへのアクセスとなって転送される。さらに、アクセス命令の対象データがL2キャッシュでヒットしなかった場合、CPUの外に別チップで存在するSCへと要求が伝達される。   An access instruction to the main memory (MEM in the figure) is issued from the arithmetic core. When the target data of the access instruction does not hit in the L1 cache arranged in the arithmetic core, the access instruction is transferred as an access to the L2 cache. Further, when the target data of the access instruction does not hit in the L2 cache, the request is transmitted to the SC existing in another chip outside the CPU.

外部インターフェース部は、演算コアからSCへの要求を送り出す。要求は外部インターフェース部経由でSCへと伝えられる。SCは、キャッシュTAG情報と呼ばれる情報を保持している。キャッシュTAG情報は、アクセス対象のデータがどのSCの管理下にあるかを示す情報を含む。SCは、例えば、ローカルパイプラインと呼ばれるパイプライン処理によってキャッシュTAG情報を参照する。さらに、SCは、他のシステムボードに実装される別のSCと通信を行いながら、最終的に要求されたデータを格納するメモリを管理するメモリコントローラやKEY制御部へ要求を伝達する。SCは、キャッシュTAG情報の示すアドレスを管理するメモリコントローラにアクセス命令を送る。メモリコントローラへのアクセス要求、あるいは他のSCとの通信は、グローバルパイプラインと呼ばれるパイプライン処理によって行われる。各SCのグローバルパイプラインは、互いに同期して実行される。   The external interface unit sends a request from the computation core to the SC. The request is transmitted to the SC via the external interface unit. The SC holds information called cache TAG information. The cache TAG information includes information indicating which SC is under management of data to be accessed. The SC refers to the cache TAG information by pipeline processing called local pipeline, for example. Further, the SC communicates a request to a memory controller or a KEY control unit that manages a memory that stores the finally requested data while communicating with another SC mounted on another system board. The SC sends an access command to the memory controller that manages the address indicated by the cache TAG information. An access request to the memory controller or communication with another SC is performed by pipeline processing called a global pipeline. The global pipeline of each SC is executed in synchronization with each other.

なお、メモリコントローラはメインストレージとのデータのやり取りを行うユニットであり、KEY制御部はKEYデータを管理するユニットである。KEYデータに関係する要求においてはSCの内部は後続の要求が追い越すことはなく一旦受け付けられた要求は全てのSCで同期して動作することで到着順に処理される。
ところで、上述のように要求がSCに入ってからは、KEYデータに関係する要求の実行順序が保証される。一方、要求の発行元であるCPU側でもKEYデータに関係する要求の実行順序を保証する仕組みが求められる。ところで、CPUの外部インターフェース部では要求種別ごとにキューが分かれている。つまり、CPUの外部インターフェース部は、要求された順序とは無関係にSCに対して、要求種別間で平等に要求を発行する。
The memory controller is a unit that exchanges data with the main storage, and the KEY control unit is a unit that manages KEY data. In the request related to the KEY data, the subsequent request is not overtaken in the SC, and the received request is processed in the order of arrival by operating synchronously in all the SCs.
By the way, after the request enters the SC as described above, the execution order of the request related to the KEY data is guaranteed. On the other hand, a mechanism for guaranteeing the execution order of requests related to the KEY data is also required on the CPU side which is a request issuer. By the way, in the external interface unit of the CPU, a queue is divided for each request type. In other words, the external interface unit of the CPU issues requests equally between the request types to the SC regardless of the requested order.

図2に、演算処理装置内での要求の流れを例示する。図2において、CPUの外部インターフェース部の中にある2つの四角が要求種別毎に存在するキューを例示している。図2では先に説明したストア命令(ST)がCPU0で発行された後に、CPU1からロード命令(LD)が発行された場合を例示している。図2のS1ではCPU0の演算コアがストア命令(ST)を実行し、それに伴い管理データ(KEY)のRC bit更新要求であるSET−RC要求が発行される。SET−RC要求は外部インターフェース部内のキューへセットされる。しかしこのSET−RC要求は外部インターフェース部内のSET−RCキューの混み具合によっては直ちにSCへ発行されるとは限らない。その間に別のCPUであるCPU1が、CPU0によってストア(ST)されたアドレスに対してロード(LD)命令の要求(LD要求)を発行したとする(S2)。LD要求はSCを経由
して(S3)、実際にデータを保持しているCPU0へとデータの読み出し要求(吐き出し要求ともいう)が発行される(S4)。吐き出し要求を受けたCPU0の演算コアによって読み出されたデータは外部インターフェース部を経由してSCへと応答される。このときストア(ST)されて更新されたデータの読み出しがSET−RCを追い抜いてしまうと、管理データ(KEY)が更新されていない状態でデータの更新が他のCPUへ伝わってしまう。そのため、外部インターフェース部内のキュー取り出し部は、管理データ(KEY)の設定要求(SET−RC)がキュー内からなくなるまで読み出し要求に対するデータの応答をSCへは発行しない。
FIG. 2 illustrates a request flow in the arithmetic processing unit. FIG. 2 illustrates a queue in which two squares in the external interface unit of the CPU exist for each request type. FIG. 2 illustrates a case where the load instruction (LD) is issued from the CPU 1 after the store instruction (ST) described above is issued by the CPU 0. In S1 of FIG. 2, the arithmetic core of CPU0 executes a store instruction (ST), and accordingly, a SET-RC request that is an RC bit update request for management data (KEY) is issued. The SET-RC request is set in a queue in the external interface unit. However, this SET-RC request is not always issued to the SC immediately depending on the congestion of the SET-RC queue in the external interface unit. In the meantime, it is assumed that CPU1 which is another CPU issues a load (LD) instruction request (LD request) to the address stored (ST) by CPU0 (S2). The LD request is sent via the SC (S3), and a data read request (also called a discharge request) is issued to the CPU 0 that actually holds the data (S4). The data read by the computation core of the CPU 0 that has received the discharge request is returned to the SC via the external interface unit. At this time, if reading of the stored (ST) and updated data passes the SET-RC, the update of the data is transmitted to the other CPU in a state where the management data (KEY) is not updated. Therefore, the queue extraction unit in the external interface unit does not issue a data response to the read request to the SC until the management data (KEY) setting request (SET-RC) disappears from the queue.

特表2003−512673号公報Japanese translation of PCT publication No. 2003-512673 特開2003−67357号公報JP 2003-67357 A 特開平11−167557号公報JP-A-11-167557 特開2003−323415号公報JP 2003-323415 A

上述のように、従来技術では、UMA型のSMP構成の演算処理装置において、要求がSC等のCPU外の制御部に入ってから、その制御部が他の制御部と連携することで後続の要求が先行する要求を追い抜かないようになっている。一方、要求がSC等の制御部に入る前の順序保証は、CPU側で追い越しが起こらない制御によってなされていた。しかしながら、図2のようにどのCPUからもメモリが等距離にあるような構造(UMA)である場合、主記憶へのアクセスに制御部(SC)間の連携通信が入るため、レイテンシが問題となる。つまり、CPUの半導体集積度の向上に伴い、このような主記憶のレイテンシの問題や部品点数の削減などの観点から次のような課題が生じる。すなわち、例えば、CPU外で管理データ(KEY)を制御する制御部(SC)をなくするとともに、複数CPU間で主記憶の領域ごとにアクセス時間が均一とは限らないNUMA(Non-Uniform Memory Access、ヌマ)型構造を取り入れることが望まれている。しかしながら、複数のコ
ア間、あるいは複数のプロセッサ間で管理データの順序を制御する制御部(SC)をなくそうとすると、管理データ(KEY)特有の順序保証、例えば、主記憶へのアクセスに対応する管理データの設定前に、当該管理データを読み出さないようにするような制御をどのように実現するか、という課題が生じる。
As described above, according to the conventional technology, in a UMA-type arithmetic processing unit having an SMP configuration, after a request enters a control unit outside the CPU, such as an SC, the control unit cooperates with another control unit, and the subsequent control unit. The request does not overtake the preceding request. On the other hand, the order guarantee before the request enters the control unit such as the SC is made by the control that does not cause overtaking on the CPU side. However, in the case of a structure (UMA) in which the memory is equidistant from any CPU as shown in FIG. 2, the cooperative communication between the control units (SC) enters the access to the main memory, so that the latency is a problem. Become. In other words, with the improvement of the semiconductor integration degree of the CPU, the following problems arise from the viewpoint of such a problem of main memory latency and a reduction in the number of parts. That is, for example, the control unit (SC) that controls the management data (KEY) outside the CPU is eliminated, and the access time is not necessarily uniform for each area of the main memory among a plurality of CPUs. ), It is desirable to adopt a type structure. However, if an attempt is made to eliminate the control unit (SC) that controls the order of management data between a plurality of cores or between a plurality of processors, the order guarantee unique to the management data (KEY), for example, access to the main memory is supported. Before setting the management data to be performed, there arises a problem of how to realize control that prevents the management data from being read.

開示の技術の一側面は、自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理装置が管理する他の主記憶装置に前記他の演算処理装置を通じてアクセス可能な演算処理装置によって例示される。本演算処理装置は、前記自装置に対応する主記憶装置と前記他の主記憶装置のそれぞれの記憶領域ごとに、前記記憶領域がアクセスされたときに設定される管理データの設定または読み出しを行う管理データ制御部と、前記自装置に対応する主記憶装置又は前記他の主記憶装置のいずれかの記憶領域にアクセスされた場合、アクセスされた前記記憶領域に対応する管理データの読み出しよりも管理データの設定を優先して実行させる要求処理部と、を備える。   One aspect of the disclosed technology is that each of the main storage devices corresponding to its own device is managed by an arithmetic processing device that can access another main storage device managed by the other arithmetic processing device through the other arithmetic processing device. Illustrated. The arithmetic processing unit sets or reads management data set when the storage area is accessed for each storage area of the main storage device corresponding to the own device and the other main storage device. When the management data control unit and the storage area of the main storage device corresponding to the own device or the other main storage device are accessed, management is performed rather than reading of the management data corresponding to the accessed storage area. A request processing unit that prioritizes data setting.

本演算処理装置によれば、複数の演算処理装置間で、管理データの順序保証、例えば、主記憶へのアクセスに対応する管理データの設定前に、当該管理データを読み出さないようにするような制御が可能となる。   According to this arithmetic processing unit, the management data is not read before setting the management data corresponding to the guarantee of the order of the management data, for example, access to the main memory, between the plurality of arithmetic processing units. Control becomes possible.

UMA型の大規模SMP構成の演算処理装置の構成を例示する図である。It is a figure which illustrates the structure of the arithmetic processing apparatus of a UMA type large-scale SMP structure. 演算処理装置内での要求の流れを例示する図である。It is a figure which illustrates the flow of a request in an arithmetic processing unit. 実施例1に係るNUMA型の演算処理装置10の構成を例示する図である。1 is a diagram illustrating a configuration of a NUMA type arithmetic processing apparatus 10 according to a first embodiment. KEYリクエスト処理部の構成を例示する図である。It is a figure which illustrates the structure of a KEY request process part. 比較例に係る演算処理装置の制御シーケンスチャートを例示する図である。It is a figure which illustrates the control sequence chart of the arithmetic processing unit which concerns on a comparative example. 比較例に係る演算処理装置の制御シーケンスチャートを例示する図である。It is a figure which illustrates the control sequence chart of the arithmetic processing unit which concerns on a comparative example. 実施例1の方式を適用したシーケンスチャートを例示する図である。It is a figure which illustrates the sequence chart to which the system of Example 1 is applied. 実施例2に係るキーリクエスト処理部の構成を例示する図である。FIG. 10 is a diagram illustrating a configuration of a key request processing unit according to a second embodiment.

以下、図面を参照して、一実施形態に係る演算処理装置について説明する。以下の実施形態の構成は例示であり、本演算処理装置は実施形態の構成には限定されない。以下の実施例1、2では、メモリコントローラやKEY制御部などの機能をCPUに内蔵し、メモリをCPU直結にすることでメモリレイテンシを削減しNUMA(Non−Uniform Memory Access)構成が実現される。ただし、NUMA構成ではSCが存在しない。このため、図2に例示した仕組みでは、KEYデータ(管理データに相当)への要求の順序保証を行うことができない。そこで、以下の実施例1、2では、KEYデータへの要求の順序制御を行う新たな回路が提案される。   Hereinafter, an arithmetic processing apparatus according to an embodiment will be described with reference to the drawings. The configuration of the following embodiment is an exemplification, and the arithmetic processing apparatus is not limited to the configuration of the embodiment. In the following first and second embodiments, functions such as a memory controller and a KEY control unit are built in the CPU, and the memory is reduced by connecting the memory directly to the CPU, thereby realizing a NUMA (Non-Uniform Memory Access) configuration. . However, there is no SC in the NUMA configuration. For this reason, the mechanism illustrated in FIG. 2 cannot guarantee the order of requests to KEY data (corresponding to management data). Therefore, in the following first and second embodiments, a new circuit for performing the order control of requests for KEY data is proposed.

[実施例1]
図3から図7を参照して、実施例1に係る演算処理装置を説明する。図3に、実施例1に係るNUMA型の演算処理装置10の構成を例示する。演算処理装置10は、複数のCPU0, CPU1等と、CPU0およびCPU1等からアクセスされる主記憶(MEM)2を有する。ただし、図3では、CPU0の管理化にある主記憶2の部分を主記憶2Aといい、CPU1の管理化にある主記憶の部分を主記憶2Bという。主記憶2A、2Bを総称する場合には、主記憶2ということにする。主記憶2A、2Bが主記憶装置の一例である。ここで、主記憶2A(2B)がCPU0(CPU1)の管理化にあるとは、例えば、CPU0(CPU1)が、主記憶2A(2B)へのデータ書き込み、および読み出しを行うとともに、主記憶2A(2B)の状態を管理していることをいう。また、主記憶2A(2B)の状態としては、主記憶2A(2B)のデータがCPU0(CPU1)以外の他のCPUにCPU0(CPU1)を介して引き渡されて、読み出し中であるような状態が例示される。CPU0(CPU1)は、自身が管理する主記憶2A(2B)にアクセスするとともに、相手のCPU1(CPU0)を介して、相手のCPU1(CPU0)が管理する主記憶2B(2A)にアクセスする。したがって、演算処理装置10は、CPU0,CPU1等から主記憶2A、2Bへのアクセス時間が非均等なシステムであるNUMA型のシステムであるということができる。なお、CPU0、CPU1は、演算処理部の一例である。ただし、CPU0、CPU1は、演算処理装置の一例ということもできる。
[Example 1]
The arithmetic processing apparatus according to the first embodiment will be described with reference to FIGS. FIG. 3 illustrates the configuration of the NUMA type arithmetic processing apparatus 10 according to the first embodiment. The arithmetic processing unit 10 has a plurality of CPU0, CPU1, etc., and a main memory (MEM) 2 accessed from the CPU0, CPU1, etc. However, in FIG. 3, the portion of the main memory 2 managed by the CPU 0 is referred to as a main memory 2A, and the portion of the main memory managed by the CPU 1 is referred to as a main memory 2B. When the main memories 2A and 2B are collectively referred to as the main memory 2. The main memories 2A and 2B are examples of the main storage device. Here, the main memory 2A (2B) is under the management of the CPU 0 (CPU 1). For example, the CPU 0 (CPU 1) writes and reads data to and from the main memory 2A (2B) , and the main memory 2A. It means that the state of (2B) is managed. Further, the state of the main memory 2A (2B) is a state in which data in the main memory 2A (2B) is being transferred to another CPU other than the CPU0 (CPU1) via the CPU0 (CPU1) and is being read. Is exemplified. The CPU 0 (CPU 1) accesses the main memory 2A (2B) managed by itself, and accesses the main memory 2B (2A) managed by the other CPU 1 (CPU 0) via the other CPU 1 (CPU 0). Therefore, it can be said that the arithmetic processing unit 10 is a NUMA type system which is a system in which the access times from the CPU 0, CPU 1, etc. to the main memories 2A, 2B are not uniform. CPU0 and CPU1 are an example of an arithmetic processing unit. However, CPU0 and CPU1 can also be referred to as examples of arithmetic processing devices.

<CPUの構成>
演算処理装置10内の各CPU、例えば、CPU0とCPU1とは、インターコネクトと呼ばれる伝送路3により接続されている。
<Configuration of CPU>
Each CPU in the arithmetic processing unit 10, for example, CPU0 and CPU1, is connected by a transmission path 3 called an interconnect.

さらに、例えば、CPU0は、演算コア11A、メモリコントローラ12A、キャッシュ制御部13A、KEY制御部14A、およびKEYリクエスト処理部15Aを有している。なお、他のCPU、例えば、CPU1も、CPU0と同様に、演算コア11B、メモリコントローラ12B、キャッシュ制御部13B、KEY制御部14B、およびKEYリクエスト処理部15Bを有している。以下、CPU0を例にして、各CPUの構成および作用を例示する。なお、総称する場合には、CPU0、CPU1をCPUと呼び、演算コア11A、11Bを演算コア11と呼び、メモリコントローラ12A、12Bをメモリコントローラ12と呼ぶことにする。同様に、総称する場合には、キャッシュ制御部13A
、13Bをキャッシュ制御部13と呼び、KEY制御部14A、14BをKEY制御部14と呼び、KEYリクエスト処理部15A、15BをKEYリクエスト処理部15と呼ぶことにする。
Further, for example, the CPU 0 includes an arithmetic core 11A, a memory controller 12A, a cache control unit 13A, a KEY control unit 14A, and a KEY request processing unit 15A. Other CPUs, for example, CPU 1, similarly to CPU 0, have an arithmetic core 11 B, a memory controller 12 B, a cache control unit 13 B, a KEY control unit 14 B, and a KEY request processing unit 15 B. Hereinafter, the configuration and operation of each CPU will be exemplified with the CPU 0 as an example. When collectively referred to, CPU0 and CPU1 are referred to as CPU, arithmetic cores 11A and 11B are referred to as arithmetic core 11, and memory controllers 12A and 12B are referred to as memory controller 12. Similarly, when collectively referring to, the cache control unit 13A.
, 13B are called the cache control unit 13, the KEY control units 14A, 14B are called the KEY control unit 14, and the KEY request processing units 15A, 15B are called the KEY request processing unit 15.

演算コア11Aは、主記憶2Aに実行可能に展開されたコンピュータプログラムの命令を実行することにより、メモリコントローラ12Aを介して、CPU0が管理する主記憶2AあるいはCPU1等が管理する主記憶2B等に格納されたデータを処理する。なお、演算コア11Aは、CPU1等が管理する主記憶2B等に格納されたデータを処理する場合には、適切なタイミングで伝送路3を介して、CPU1から処理対象のデータを取得し、適切なタイミングで、CPU1へ処理後のデータを引き渡す。   The arithmetic core 11A executes the instructions of the computer program that is executed in the main memory 2A so as to be executed, and the memory core 12A manages the main memory 2A managed by the CPU 0 or the main memory 2B managed by the CPU 1 or the like via the memory controller 12A. Process the stored data. In addition, when processing data stored in the main memory 2B and the like managed by the CPU 1 and the like, the arithmetic core 11A acquires data to be processed from the CPU 1 via the transmission path 3 at an appropriate timing. The processed data is delivered to the CPU 1 at a proper timing.

メモリコントローラ12Aは、主記憶2Aのデータを管理する。例えば、メモリコントローラ12Aは、CPU0の要求に応じて、主記憶2Aのデータを取得し、CPU0に引き渡す。   The memory controller 12A manages data in the main memory 2A. For example, the memory controller 12A acquires the data in the main memory 2A in response to a request from the CPU 0 and transfers it to the CPU 0.

キャッシュ制御部13Aは、図示しないキャッシュメモリへのデータの格納、読み出し等を実行する。また、キャッシュ制御部13Aは、キャッシュTAG情報を保持し、演算コア11Aから要求されたデータの管理先を判定する。例えば、要求されたデータがCPU1で管理されている場合には、キャッシュ制御部13Aは、CPU1のキャッシュ制御部13Bを介して、CPU1が管理する主記憶2Bのデータを取得する。また、キャッシュ制御部13Aは、CPU1のキャッシュ制御部13Bの要求に応じて、CPU0が管理する主記憶2Aに格納されたデータをキャッシュ制御部13Bに引き渡す。さらに、キャッシュ制御部13Aは、適切なタイミングでキャッシュ制御部13Bを介して、CPU1で処理されたデータを受け取り、CPU0が管理する主記憶2Aに格納する。CPU1のキャッシュ制御部13Bの制御もキャッシュ制御部13Aの制御と同様である。また、CPUの数が3以上の場合も、キャッシュ制御部13の制御は、キャッシュ制御部13Aと同様である。   The cache control unit 13A executes storage, reading, and the like of data in a cache memory (not shown). Further, the cache control unit 13A holds cache TAG information and determines a management destination of data requested from the arithmetic core 11A. For example, when the requested data is managed by the CPU 1, the cache control unit 13A acquires data in the main memory 2B managed by the CPU 1 via the cache control unit 13B of the CPU 1. In addition, the cache control unit 13A delivers the data stored in the main memory 2A managed by the CPU 0 to the cache control unit 13B in response to a request from the cache control unit 13B of the CPU 1. Further, the cache control unit 13A receives the data processed by the CPU 1 via the cache control unit 13B at an appropriate timing, and stores it in the main memory 2A managed by the CPU 0. The control of the cache control unit 13B of the CPU 1 is the same as the control of the cache control unit 13A. Further, when the number of CPUs is 3 or more, the control of the cache control unit 13 is the same as that of the cache control unit 13A.

KEY制御部14Aは、CPU0の演算コア11A、キャッシュ制御部13A、あるいは他のCPUからのリクエストにしたがって、主記憶2AへのKEYデータの設定、および主記憶2AからのKEYデータの読み出しを実行する。なお、KEYデータ等の管理データが主記憶に書き込まれる場合には、管理データを書き込むための書き込み要求が実際に完了したことを示す応答が返されない突き放し型と呼ばれる書き込み命令(posted write命令ともいう)が用いられる。KEY制御部14A、14Bが管理データ制御部の一例である。   The KEY control unit 14A executes setting of the KEY data in the main memory 2A and reading of the KEY data from the main memory 2A according to a request from the arithmetic core 11A of the CPU 0, the cache control unit 13A, or another CPU. . When management data such as KEY data is written to the main memory, a write command (also referred to as a posted write command) that does not return a response indicating that the write request for writing the management data is actually completed is returned. ) Is used. The KEY control units 14A and 14B are an example of the management data control unit.

<KEYリクエスト処理部の構成>
本実施例1では、各CPUチップは、KEYリクエスト処理部というモジュールを有する。図4に、CPU0のKEYリクエスト処理部15Aの構成を例示する。KEYリクエスト処理部15Aは、KEYデータの設定または読み出し等の要求(以下、リクエストという)を受け付けるポート部151と、どのリクエストを受理するかを決定するプライオリティ部152と、選ばれたリクエストをKEY制御部14Aへと発行するための出力部である出力バッファ153を有する。
<Configuration of KEY request processing unit>
In the first embodiment, each CPU chip has a module called a KEY request processing unit. FIG. 4 illustrates the configuration of the KEY request processing unit 15A of the CPU0. The KEY request processing unit 15A includes a port unit 151 that receives a request for setting or reading KEY data (hereinafter referred to as a request), a priority unit 152 that determines which request is to be received, and a KEY control for the selected request. An output buffer 153 serving as an output unit for issuing to the unit 14A.

ポート部151と出力バッファ153はFIFO(First In First Out)によってリクエストを保持する。したがって、ポート部151と出力バッファ153においては、後続リクエストによる先行リクエストの追い越しは起こらない。ところで、リクエストには、自チップ内のコアから発生するローカルリクエストと他チップのコアが発行するリモートリクエストが存在する。これらのリクエストはCPUチップ間接続インターフェースおよび図3の伝送路3によってCPU間でやり取りされる。さらに、リク
エストは2つのグループに分類される。2つの分類は、MO系リクエスト(Move−Out:KEY書き込み系要求)とMI系リクエスト(Move−In:KEY参照系要求)と呼ばれる。MO系リクエストが、設定要求の一例である。また、MI系リクエストが読み出し要求の一例である。
The port unit 151 and the output buffer 153 hold requests by FIFO (First In First Out). Therefore, the port unit 151 and the output buffer 153 do not pass the preceding request by the subsequent request. By the way, the request includes a local request generated from a core in its own chip and a remote request issued by a core of another chip. These requests are exchanged between the CPUs via the inter-CPU chip connection interface and the transmission path 3 in FIG. Furthermore, requests are classified into two groups. The two classifications are called MO request (Move-Out: KEY write request) and MI request (Move-In: KEY reference request). An MO system request is an example of a setting request. An MI-type request is an example of a read request.

したがって、ポート部151は、MO系のリクエストを記憶するローカルMO用のポート(LMOPT)及リモートMO用のポート(RMOPT)と、MI系のリクエストを記憶するローカルMI用のポート(LMIPT)およびリモートMI用のポート(RMIPT)とを有する。なお、ローカルMO用のポート(LMOPT)とローカルMI用のポート(LMIPT)とは、自装置、つまりCPU0の演算コア11Aあるいはキャッシュ制御部13Aで発生したリクエストを記憶する。一方、リモートMO用のポート(RMOPT)とリモートMI用のポート(RMIPT)とは、CPU0以外の他のCPU(CPU1等)で発生したリクエストを記憶する。MO系のリクエストを記憶するローカルMO用のポート(LMOPT)及リモートMO用のポート(RMOPT)が、第1の先入れ先出し記憶部の一例である。また、MI系のリクエストを記憶するローカルMI用のポート(LMIPT)およびリモートMI用のポート(RMIPT)が、第2の先入れ先出し記憶部の一例である。   Therefore, the port unit 151 includes a local MO port (LMOT) and a remote MO port (RMOTT) for storing MO requests, a local MI port (LMIP) and a remote port for storing MI requests. And a port for MI (RMIPT). The local MO port (LMOTT) and the local MI port (LMIPT) store requests generated by the own device, that is, the arithmetic core 11A of the CPU 0 or the cache control unit 13A. On the other hand, the remote MO port (RMOTT) and the remote MI port (RMIPT) store requests generated by CPUs other than CPU0 (CPU1 and the like). A local MO port (LMOTT) and a remote MO port (RMOTT) that store MO-related requests are examples of the first first-in first-out storage unit. A local MI port (LMIPT) and a remote MI port (RMIPT) that store MI-related requests are examples of the second first-in first-out storage unit.

図4において、プライオリティ部152は2段の制御回路を有する。プライオリティ部152の第1段階の制御回路1521、1522は、MO系グループとMI系グループに分けてリクエストを受ける。例えば、制御回路1521には、ローカルのMOとリモートのMOが入力される。また、制御回路1522には、ローカルのMIとリモートのMIが入力される。制御回路1521、1522のそれぞれが、各グループ内で優先されるポートを、例えば、LRU(Least Recently Used)の手順で決定する。つまり、制御回路1521、1522は、リクエストを保持しているポートの中で最も長い間選択されていなかったポートが選択されるような論理で動作する。制御回路1521、1522は、LRUによりポート間で偏り無くKEY制御部にリクエストを発行することを可能にしている。ただし、実施例1を含むいずれの実施形態においても、第1段階の制御回路のポート決定手順がLRUに限定される訳ではない。   In FIG. 4, the priority unit 152 has a two-stage control circuit. The control circuits 1521 and 1522 in the first stage of the priority unit 152 receive the request separately for the MO group and the MI group. For example, the control circuit 1521 receives a local MO and a remote MO. The control circuit 1522 receives a local MI and a remote MI. Each of the control circuits 1521 and 1522 determines a priority port in each group, for example, according to a procedure of LRU (Least Recently Used). That is, the control circuits 1521 and 1522 operate with a logic such that the port that has not been selected for the longest time among the ports holding the request is selected. The control circuits 1521 and 1522 make it possible to issue a request to the KEY control unit without deviation between ports by LRU. However, in any embodiment including the first embodiment, the port determination procedure of the first-stage control circuit is not limited to the LRU.

次に、第2段階の制御回路1523において、MO系とMI系のプライオリティ選択が行われる。第2段階の制御回路1523は、MO系がMI系より優先されて選択されるように制御する。以上のようなプライオリティ部152の構成により、KEYデータの更新系要求(MO系リクエスト)とKEYの参照系要求(MI系リクエスト)との間の順序が保証されている。第1段階の制御回路1521、1522は、例えば、論理ゲートと、LRUのための処理の履歴を管理するカウンタ、フラグ等で実現される。また、第2段階の制御回路1523は、論理ゲート等で実現される。KEYリクエスト処理部15が要求処理部の一例である。   Next, the second-stage control circuit 1523 performs priority selection between the MO system and the MI system. The second-stage control circuit 1523 performs control so that the MO system is selected with priority over the MI system. With the configuration of the priority unit 152 as described above, the order between the KEY data update system request (MO system request) and the KEY reference system request (MI system request) is guaranteed. The first-stage control circuits 1521 and 1522 are implemented by, for example, logic gates, counters that manage processing histories for LRUs, flags, and the like. The second-stage control circuit 1523 is realized by a logic gate or the like. The KEY request processing unit 15 is an example of a request processing unit.

<比較例のシーケンス>
図5、図6に比較例に係る演算処理装置の制御シーケンスチャートを例示する。図5はCPU0が行ったストア(ST)命令の操作により発行されたSET−RC命令がCPU0の外部インターフェース部内の送信バッファ部に残っている状態でCPU1からアドレス(A)に対してデータのロード(LD)命令が発行された場合の動作を例示している。図のように要求されたデータの応答はCPU0内の外部インターフェース部で止められ、SET−RC(A)が処理されSCへ発行されるまでロード(LD)命令が先に処理されることはない。
<Sequence of Comparative Example>
5 and 6 illustrate control sequence charts of the arithmetic processing device according to the comparative example. FIG. 5 shows that the CPU 1 loads data to the address (A) in a state where the SET-RC command issued by the store (ST) command operation performed by the CPU 0 remains in the transmission buffer unit in the external interface unit of the CPU 0. The operation when a (LD) instruction is issued is illustrated. As shown in the figure, the response of the requested data is stopped by the external interface unit in the CPU 0, and the load (LD) instruction is not processed first until the SET-RC (A) is processed and issued to the SC. .

図6は図5の状態の続きでSET−RC(A)が処理された後のシーケンスを例示している。CPU0の外部インターフェース部でロード(LD)命令の応答をSCへ返すこと
ができ、要求データは要求元であるCPU1へと応答される。応答データの到着を期にCPU1上でLD(A)命令を発行したプログラムの後続命令であるISK(A)命令が発行される。ISK(A)命令はメインストレージ上にあるKEYデータを読み出してCPUのレジスタにセットする動作を行う。比較例のシーケンスでは、ISK(A)命令が発行されるとき、既にSET−RC(A)は処理された後なので、KEYデータが突き放し型の書き込み命令(posted write命令)で設定される場合でも、KEYデータの順序を保証した動作が可能となる。
FIG. 6 illustrates a sequence after SET-RC (A) is processed following the state of FIG. A response of a load (LD) command can be returned to the SC in the external interface unit of the CPU 0, and the request data is returned to the CPU 1 that is the request source. An ISK (A) instruction, which is a subsequent instruction of the program that issued the LD (A) instruction on the CPU 1 at the arrival of the response data, is issued. The ISK (A) instruction reads out the KEY data on the main storage and sets it in the CPU register. In the sequence of the comparative example, when the ISK (A) instruction is issued, since the SET-RC (A) has already been processed, even when the KEY data is set by a write-off type write instruction (posted write instruction) Thus, an operation that guarantees the order of the KEY data becomes possible.

<実施例1のシーケンス>
図7に実施例1の方式を適用したシーケンスチャートを例示する。上記比較例での処理と同様に、CPU0がストア(ST)命令を実行することによってSET−RC(A)命令がKEYリクエスト処理部15へ送られる。このとき、SET−RC(A)命令の処理を担当するKEYリクエスト処理部15はCPU0側にあってもよいし、CPU1側にあってもよい。例えば、自CPUが管理する主記憶の部分に含まれないアドレスへのKEYリクエスト処理部へはチップ間インターコネクトを使って、SET−RC(A)命令のアドレス(A)を管理するCPUにリクエストが送出される。なお、主記憶の部分、例えば、主記憶2Aを管理するCPUと、主記憶2AのKEYを管理するCPUが一致しなくてもよい。例えば、CPU0が主記憶2Aを管理し、CPU1が主記憶2AのKEYデータを管理してもよい。
<Sequence of Example 1>
FIG. 7 illustrates a sequence chart to which the method of the first embodiment is applied. Similar to the process in the comparative example, the CPU 0 executes the store (ST) instruction, so that the SET-RC (A) instruction is sent to the KEY request processing unit 15. At this time, the KEY request processing unit 15 responsible for processing the SET-RC (A) instruction may be on the CPU0 side or on the CPU1 side. For example, a request is sent to the CPU that manages the address (A) of the SET-RC (A) instruction using the inter-chip interconnect to the KEY request processing unit for addresses not included in the main memory portion managed by the CPU. Sent out. Note that the main memory portion, for example, the CPU that manages the main memory 2A and the CPU that manages the KEY of the main memory 2A do not have to match. For example, the CPU 0 may manage the main memory 2A, and the CPU 1 may manage the KEY data in the main memory 2A.

図7では(A)というアドレスを担当しているのがCPU0のKEYリクエスト処理部15Aだった場合を表している。この時点では、リクエストは、KEYリクエスト処理部15Aのポート部151にセットされているが、実際のSET−RCの操作は実行されていない。ここでは仮に他のKEYリクエスト処理が集中してこのSET−RC(A)がポート部151内に滞留しているものと仮定する。このとき、CPU1側からロード(LD(A))命令が発行されると、図7の処理は図5、6の処理とは異なり、CPU0は、SET−RC(A)の処理を待たずに、ロード(LD(A))命令の応答を要求元のCPU1に返すことができる。CPU1上でロード(LD(A))命令を発行したプログラムはロード(LD(A))命令の応答を受け取ったのを期にISK(A)命令を発行する。ISK(A)命令はアドレス(A)を担当するCPU0のKEYリクエスト処理部15Aへチップ間インターコネクトである伝送路3を経由して通知される。   FIG. 7 shows a case where the key request processing unit 15A of the CPU 0 is in charge of the address (A). At this time, the request is set in the port unit 151 of the KEY request processing unit 15A, but the actual SET-RC operation is not executed. Here, it is assumed that other KEY request processes are concentrated and this SET-RC (A) stays in the port unit 151. At this time, when a load (LD (A)) instruction is issued from the CPU 1 side, the process of FIG. 7 is different from the processes of FIGS. 5 and 6, and the CPU 0 does not wait for the process of SET-RC (A). , A response to the load (LD (A)) command can be returned to the requesting CPU 1. The program that has issued a load (LD (A)) instruction on the CPU 1 issues an ISK (A) instruction upon receipt of a response to the load (LD (A)) instruction. The ISK (A) instruction is notified to the KEY request processing unit 15A of the CPU 0 in charge of the address (A) via the transmission line 3 which is an interchip interconnect.

したがって、図7の例では、KEYリクエスト処理部15AにはSET−RC(A)とISK(A)がポートに同時に存在することになる。しかし、実施例1の優先順序を制御するプライオリティ部152の制御回路1521、1522、および1523によりMI系リクエストがMO系リクエストを追い抜くことはできない。このため、図7の例では、SET−RC(A)が先に処理される。M0系リクエストに対応するSET−RC(A)命令の処理順序はKEYリクエスト処理部15Aのポート部151にセットされた時点でMI系リクエストより先に処理されることが確定する。このため、SET−RC(A)命令を発行したCPU0はKEYリクエスト処理部15Aのポート部151にセットした時点で、SET−RC(A)命令の処理完了を待つことなく、後続の処理、例えば、CPU1からのロード(LD(A))命令に対応する応答をCPU1に返す処理を続けることができる。プライオリティ部152は、選択回路の一例である。   Therefore, in the example of FIG. 7, SET-RC (A) and ISK (A) exist simultaneously in the port in the KEY request processing unit 15A. However, the MI system request cannot pass the MO system request by the control circuits 1521, 1522, and 1523 of the priority unit 152 that controls the priority order of the first embodiment. For this reason, in the example of FIG. 7, SET-RC (A) is processed first. It is determined that the processing order of the SET-RC (A) instruction corresponding to the M0 system request is processed before the MI system request when it is set in the port unit 151 of the KEY request processing unit 15A. For this reason, the CPU 0 that issued the SET-RC (A) command sets the port 151 of the KEY request processing unit 15A without waiting for the completion of the processing of the SET-RC (A) command. The process of returning a response corresponding to the load (LD (A)) command from the CPU 1 to the CPU 1 can be continued. The priority unit 152 is an example of a selection circuit.

<実施例1の効果>
実施例1のリクエスト処理部15によれば、KEYリクエスト処理部15のポート部15にリクエストがセットされた時点で、処理順序を守って、リクエストが処理されることが保証できる。したがって、例えば、CPUは、KEYデータを突き放し型の書き込み命令(posted write命令)で設定する場合でも、リクエストをポート部151にセットした時点で、リクエストの処理完了とみなして次のリクエストの発行、処理の続行等が可能と
なる。
<Effect of Example 1>
According to the request processing unit 15 of the first embodiment, when a request is set in the port unit 15 of the KEY request processing unit 15, it can be guaranteed that the request is processed in accordance with the processing order. Therefore, for example, even when the CPU sets the KEY data with a write-type write command (posted write command), when the request is set in the port unit 151, it is considered that the request has been processed, and the next request is issued. The processing can be continued.

また、図3に例示したように、実施例1の演算処理装置10は、SCの機能をCPUに内蔵し、CPU外部のSCを無くした。このため、LSI間通信が減りレイテンシが削減される。また部品点数が削減される。   Further, as illustrated in FIG. 3, the arithmetic processing unit 10 according to the first embodiment incorporates the SC function in the CPU and eliminates the SC outside the CPU. For this reason, communication between LSIs is reduced and latency is reduced. Also, the number of parts is reduced.

比較例の方式ではCPU0でストア(ST)された後のデータをCPU1がロード(LD)したものをCPU外部インターフェース部で順序を保証していたが、実施例1の方式では後続のKEYデータの参照要求はKEYデータ書き込み要求の後に処理されることが保証される。このため、例えば、図7に例示したように、実施例1のCPUは、少なくとも自身が管理する主記憶の部分のデータの読み出し要求に対しては、読み出し要求対象のデータに対応するKEYデータの書き込みと無関係に、読み出し要求対象のデータを応答可能である。   In the method of the comparative example, the order after the data stored by the CPU 0 (ST) is loaded (LD) by the CPU 1 is guaranteed by the CPU external interface unit. However, in the method of the first embodiment, the subsequent KEY data The reference request is guaranteed to be processed after the KEY data write request. Therefore, for example, as illustrated in FIG. 7, the CPU of the first embodiment at least in response to a read request for data in the main memory managed by the CPU of the KEY data corresponding to the read request target data. Regardless of the writing, it is possible to respond to the read request target data.

[実施例2]
図8を参照して、実施例2にかかる演算処理装置のKEYリクエスト処理部15Cを説明する。上記実施例1では、ポート部151に入力されたリクエストをプライオリティ部152により、MI系リクエストよりM0系リクエストを優先して処理するKEYリクエスト処理部15について説明した。実施例1のポート部151は、図4のように、ローカルMO用のポート、リモートのMO用のポート、ローカルのMI用のポート、およびリモートMI用のポートを有している。実施例2では、実施例1よりもさらに複雑なポート部を有するKEYリクエスト処理部を例示する。実施例2の演算処理装置の他の構成は、実施例1の演算処理装置10と同様である。そこで、同一の構成要素については、同一の符号を付してその説明を省略する。
[Example 2]
With reference to FIG. 8, a KEY request processing unit 15C of the arithmetic processing apparatus according to the second embodiment will be described. In the first embodiment, the KEY request processing unit 15 has been described in which the request input to the port unit 151 is processed by the priority unit 152 with priority given to the M0 system request over the MI system request. As shown in FIG. 4, the port unit 151 according to the first embodiment includes a local MO port, a remote MO port, a local MI port, and a remote MI port. In the second embodiment, a KEY request processing unit having a more complicated port unit than that in the first embodiment is illustrated. Other configurations of the arithmetic processing apparatus of the second embodiment are the same as those of the arithmetic processing apparatus 10 of the first embodiment. Therefore, the same components are denoted by the same reference numerals and the description thereof is omitted.

図8は、実施例2に係るキーリクエスト処理部15Cの構成を例示する。実施例2のリクエスト処理部15Cも、実施例1の場合と同様、ポート部151C、プライオリティ部152C、出力バッファ153C、153Dを有する。   FIG. 8 illustrates the configuration of the key request processing unit 15C according to the second embodiment. Similarly to the case of the first embodiment, the request processing unit 15C of the second embodiment also includes a port unit 151C, a priority unit 152C, and output buffers 153C and 153D.

図8のように、実施例2のキーリクエスト処理部15Cでは、実施例1のキーリクエスト処理部15と比較して、ポート部151Cの構成が複雑となっている。すなわち、ポート部151Cは、ローカルのMO/MI用のポート(LMOPT、LMIPT)、リモートのMO/MI用のポート(RMOPT、RMIPT)に加えて、LKRPTが4つ追加されている(LKRPT00、LKRPT01、LKRPT10、LKRPT11)。実施例1で説明したように、LMOPT、LMIPT、RMOPT、RMIPTには、それぞれ、ローカルのCPUのコアから発行されるMO系リクエスト、MI系リクエスト、リモートのCPUのコアから発行されるMO系リクエスト、MI系リクエストが入力される。   As shown in FIG. 8, in the key request processing unit 15C of the second embodiment, the configuration of the port unit 151C is more complicated than that of the key request processing unit 15 of the first embodiment. That is, in the port unit 151C, four LLKRPs (LKRPT00, LKRPT01) are added in addition to the local MO / MI ports (LMOTT, LMIPT) and remote MO / MI ports (RMOTT, RMPT). , LKRPT10, LKRPT11). As described in the first embodiment, each of the LMOTT, LMIPT, RMOTT, and RMIPT includes an MO system request issued from the local CPU core, an MI system request, and an MO system request issued from the remote CPU core. , An MI request is input.

また、図8では、L2キャッシュは、4つにアドレスインターリーブされ、SX00、SX01、SX10、SX11で例示され、KEYリクエスト処理部15Cに接続されている。上記4つのポートLKRPT00、LKRPT01、LKRPT10、LKRPT11には、L2キャッシュから発行されるメモリアクセスに付随するKEYアクセスの要求が入力される。すなわち、CPUからの主記憶へのアクセス要求は、インターリーブされたL2キャッシュを通じて、各ポートにセットされる(LKRPT00/01/10/11)。ローカルのMO用のポート(LMOPT)、リモートのMOの用ポート(RMOPT)が第1の先入れ先出し記憶部の一例である。また、ローカルのMI用のポート(LMIPT)、リモートのMI用のポート(RMIPT)、および4つのポートLKRPTが、第2の先入れ先出し記憶部の一例である。また、キーリクエスト処理部15Cが、要求処理部の一例である。   In FIG. 8, the L2 cache is interleaved into four addresses, exemplified by SX00, SX01, SX10, and SX11, and connected to the KEY request processing unit 15C. A key access request accompanying a memory access issued from the L2 cache is input to the four ports LKRPT00, LKRPT01, LKRPT10, and LKRPT11. That is, the access request to the main memory from the CPU is set to each port through the interleaved L2 cache (LKRPT00 / 01/10/11). The local MO port (LMOTT) and the remote MO port (RMOPT) are examples of the first first-in first-out storage unit. Further, the local MI port (LMIPT), the remote MI port (RMIPT), and the four ports LKRPT are examples of the second first-in first-out storage unit. The key request processing unit 15C is an example of a request processing unit.

図8では、さらに、リモートのLSI(Large Scale Integrated circuit)のルータ(RT)がKEYリクエスト処理部15Cに接続されている。MO系KEYリクエストは、RT(ルータ)受信部となるRMOPTにおいて、後続のパケットに追い越されないことが保証される。RMOPTにおいて、パケットの追い越しが発生しないことが、データとKEYの順序性保証のための要件となる。そのため、送信側LSIのルータ(RT)から受信側LSIのRMOPTに受信されるパケットがRMOPTのビジーによりRT内で待たされることがない制御が求められる。 In FIG. 8, a router (RT) of a remote LSI (Large Scale Integrated circuit) is further connected to the KEY request processing unit 15C. The MO system KEY request is guaranteed not to be overtaken by the subsequent packet in the RMOTT serving as an RT (router) receiver. In RMOT, no overtaking of packets is a requirement for guaranteeing the order of data and KEY. Therefore, control packets received RMOPT of the receiving LSI is not to be kept waiting in the RT by busy RMOPT from the transmission side LSI router (RT) is determined.

そこで、例えば、RMOPTは到着する全てのリクエストを受けきるように制御される。到着する全てのリクエストを受けきるようにするために、送信側のリクエスト発行部(例えば、L2キャッシュ制御部)はリクエスト送出からCPLT(Complete、完了応答)受信までクレジット管理を行う。一方、受信側のキーリクエスト処理部15Cは、クレジット数と同じ数だけのエントリ数のRMOPTを持つようにすればよい。   Therefore, for example, RMOT is controlled to receive all incoming requests. In order to receive all incoming requests, a request issuing unit (for example, L2 cache control unit) on the transmission side performs credit management from request transmission to CPLT (Complete response) reception. On the other hand, the key request processing unit 15C on the receiving side may have RMOT with the same number of entries as the number of credits.

実施例2のプライオリティ部152Cは、実施例1と同様に、3つの制御回路1521C、1522C、1523Cを有する。制御回路1521Cには、ポート部151Cのうち、M系のリクエストを保持するポートLMOPT、RMOPTが接続される。また、制御回路152Cには、LMOPT、RMOPT以外のポートが接続される。そして、実施例1と同様、制御回路1521C、152C内では、それぞれ、たとえば、LRUにしたがってリクエストが処理される。そして、制御回路1523Cは、制御回路1522Cからのリクエスト(MI系リクエストおよびL2キャッシュからのリクエスト)よりも、制御回路1521CからのMO系のリクエストを優先して、出力バッファ153C、153Dに出力する。プライオリティ部152Cは、選択回路の一例である。 Similar to the first embodiment, the priority unit 152C according to the second embodiment includes three control circuits 1521C, 1522C, and 1523C. The control circuit 1521C, of the ports unit 151C, the port LMOPT for holding a request for M O system, RMOPT is connected. The control circuit 152 2 C is connected to ports other than LMOT and RMOT. In the control circuits 1521C and 152 2 C, as in the first embodiment, requests are processed according to, for example, LRU. Then, the control circuit 1523C gives priority to the MO system request from the control circuit 1521C over the request from the control circuit 1522C (MI system request and request from the L2 cache), and outputs it to the output buffers 153C and 153D. The priority unit 152C is an example of a selection circuit.

出力バッファ153C、153Dは、アドレスインターリーブされた主記憶に対応している。出力バッファ153C、153Dは、受けたリクエストをそれぞれアドレスインターリーブされた主記憶に対応するKEY制御部KX0、KX1に発行する。図中KX0/KX1とはKEY制御部であり、内部に最近使用したKEYデータを保持できるキャッシュを備えてもよい。KX0/KX1は、例えば、メモリコントローラ(MAC)に接続されており、MAC経由で図示しない主記憶へと要求を発行する。   The output buffers 153C and 153D correspond to the address-interleaved main memory. The output buffers 153C and 153D issue the received requests to the KEY control units KX0 and KX1 corresponding to the address-interleaved main memory, respectively. In the figure, KX0 / KX1 is a KEY control unit, and may have a cache capable of holding recently used KEY data. KX0 / KX1 is connected to a memory controller (MAC), for example, and issues a request to a main memory (not shown) via the MAC.

以上述べたように、図8に示したキーリクエスト処理部15Cは、M系のリクエストを他のKEYデータへのリクエストよりも優先して処理する。そのため、実施例2のKRYリクエスト処理部15Cを有する演算処理装置のCPUは、ポート部151Cにリクエストをセットした時点で、リクエストの処理完了とみなして次のリクエストの発行、あるいは処理の続行等が可能となる。演算処理装置のCPUは、例えば、KEYデータを突き放し型の書き込み命令(posted write命令)で設定する場合でも、ポート部151Cにリクエストをセットした時点で、リクエストの処理完了とみなして次のリクエストの発行、あるいは処理の続行等が可能となる。 As described above, the key request processing portion 15C shown in FIG. 8, the processing in preference to the request of the request of the M O system to another KEY data. Therefore, when the CPU of the arithmetic processing unit having the KRY request processing unit 15C according to the second embodiment sets a request in the port unit 151C, it is considered that the processing of the request is completed, and the next request is issued or the processing is continued. It becomes possible. For example, even when the CPU of the arithmetic processing unit sets the request data to the port unit 151C even if the KEY data is set with a write-type write command (posted write command), the processing of the next request is considered. Issuing or processing can be continued.

CPU0、CPU1 CPU
2A、2B 主記憶
3 伝送路
11A、11B 演算コア
12A、12B メモリコントローラ
13A、13B キャッシュ制御部
14A、14B KEY制御部
15A、15B KEYリクエスト処理部
151、151C ポート部
152、152C プライオリティ部
153、153C 出力バッファ
CPU0, CPU1 CPU
2A, 2B Main memory 3 Transmission path 11A, 11B Operation core 12A, 12B Memory controller 13A, 13B Cache control unit 14A, 14B KEY control unit 15A, 15B KEY request processing unit 151, 151C Port unit 152, 152C Priority unit 153, 153C Output buffer

Claims (7)

自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理装置が管理する他の主記憶装置に前記他の演算処理装置を通じてアクセス可能な演算処理装置において、
前記自装置に対応する主記憶装置および前記他の主記憶装置のいずれかに記憶されるデータの書き込みまたは読み出しを実行する制御部と、
前記自装置の制御部または前記他の演算処理装置の制御部が前記自装置に対応する主記憶装置の記憶領域に記憶データの書き込みを行ったときに前記記憶領域ごとに、少なくとも前記記憶領域への書込の頻度を管理する管理データの設定を前記自装置に対応する主記憶装置に行うとともに、管理データの読み出し要求に応じて前記設定された管理データの読み出しを行う管理データ制御部と、
前記自装置の制御部または前記他の演算処理装置の制御部が前記自装置に対応する主記憶装置の記憶領域に記憶データの書き込みおよび記憶された記憶データの読み出しを行ったときに、前記書込および読み出しがなされた前記記憶領域に対応する前記管理データの設定および前記管理データの読み出しのうち、前記管理データの読み出しよりも前記管理データの設定を優先して前記管理データ制御部に実行させる要求処理部と、を備える演算処理装置。
In the arithmetic processing device that manages the main storage device corresponding to its own device and can access the other main storage device managed by the other arithmetic processing device through the other arithmetic processing device,
A control unit that executes writing or reading of data stored in either the main storage device corresponding to the own device or the other main storage device;
Wherein for each of the storage area when the control unit of the control unit or the other processing unit has been written storage data in a storage area of the main storage equipment corresponding to the own apparatus of its own apparatus, at least the storage area A management data control unit configured to set management data for managing the frequency of writing to the main storage device corresponding to the own device and to read the set management data in response to a management data read request ; ,
Wherein when the control unit of the control unit or the other processing unit has performed a reading of the writing and the stored data stored in the storage data in a storage area of the main storage equipment corresponding to the own apparatus of its own apparatus, wherein of the read setting and the management data of the management data corresponding to the storage area write and read are such, in the management data controller in preference settings of the management data than the read of the management data And a request processing unit to be executed.
前記要求処理部は、前記管理データ制御部に前記管理データの設定を要求する設定要求を記憶する第1の先入れ先出し記憶部と、
前記管理データ制御部に前記管理データの読み出しを要求する読み出し要求を記憶する第2の先入れ先出し記憶部と、
前記第2の先入れ先出し記憶部からの読み出し要求よりも前記第1の先入れ先出し記憶部からの設定要求を優先して選択する選択回路と、を有する請求項1に記載の演算処理装置。
The request processing unit includes a first first-in first-out storage unit that stores a setting request for requesting the management data control unit to set the management data;
A second first-in first-out storage unit that stores a read request for requesting the management data control unit to read out the management data;
The arithmetic processing apparatus according to claim 1, further comprising: a selection circuit that preferentially selects a setting request from the first first-in first-out storage unit over a read request from the second first-in first-out storage unit.
前記管理データ制御部は、書き込み要求が完了したことを示す応答が返されない命令により、前記管理データを前記主記憶装置に設定する請求項1または2に記載の演算処理装置。   The arithmetic processing unit according to claim 1, wherein the management data control unit sets the management data in the main storage device according to an instruction that does not return a response indicating that the write request is completed. 自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理装置が管理する
他の主記憶装置に前記他の演算処理装置を通じてアクセス可能な演算処理装置の制御方法において、
前記自装置に対応する主記憶装置および前記他の主記憶装置のいずれかに記憶されるデータの書き込みまたは読み出しを実行するステップと、
前記自装置または前記他の演算処理装置が前記自装置に対応する主記憶装置の記憶領域に記憶データの書き込みを行ったときに前記記憶領域ごとに、少なくとも前記記憶領域への書込の頻度を管理する管理データの設定を前記自装置に対応する主記憶装置に行う設定ステップと、
管理データ読み出し要求に応じて前記自装置に対応する主記憶装置から前記設定された管理データの読み出しを行う読み出しステップと、
前記自装置または前記他の演算処理装置が前記自装置に対応する主記憶装置記憶領域に記憶データの書き込みおよび記憶された記憶データの読み出しを行ったときに、前記書込および読み出しがなされた前記記憶領域に対応する前記管理データの設定および前記管理データの読み出しのうち、前記管理データの読み出しよりも前記管理データの設定を優先して実行る処理ステップと、を有する演算処理装置の制御方法。
In the control method of the arithmetic processing unit capable of managing the main storage device corresponding to the own device and accessing the other main storage device managed by the other arithmetic processing device through the other arithmetic processing device,
And executing the writing or reading of data stored in either the main memory and the other main storage device corresponding to the own device,
When the own device or the other arithmetic processing device writes storage data to the storage area of the main storage device corresponding to the own device , at least the frequency of writing to the storage area is set for each storage area. A setting step for setting management data to be managed in a main storage device corresponding to the device;
A read step of reading the set management data from a main storage device corresponding to the own device in response to a management data read request;
Wherein when the own device or the other processing unit has performed a reading of the writing and the stored data stored in the storage data in a storage area of the main memory corresponding to the own device, the writing and reading Re name of It was among the set of management data and the management data read corresponding to the storage area, the processing unit having the processing steps that run in preference settings of the management data than the read of the management data Control method.
前記処理ステップは、
前記設定ステップによる前記管理データの設定を要求する設定要求を第1の先入れ先出し記憶部に記憶するステップと、
前記読み出しステップによる前記管理データの読み出しを要求する読み出し要求を第2の先入れ先出し記憶部に記憶するステップと、
前記第2の先入れ先出し記憶部からの読み出し要求よりも前記第1の先入れ先出し記憶部からの設定要求を優先して選択するステップと、を有する請求項4に記載の演算処理装置の制御方法。
The processing step includes
Storing a setting request for requesting setting of the management data in the setting step in a first first-in first-out storage unit;
Storing a read request for requesting reading of the management data in the read step in a second first-in first-out storage unit;
5. The control method of the arithmetic processing unit according to claim 4, further comprising a step of selecting a setting request from the first first-in first-out storage unit in preference to a read request from the second first-in first-out storage unit.
前記設定ステップは、書き込み要求が完了したことを示す応答が返されない命令により、前記管理データを前記主記憶装置に書き込むステップを有する請求項4または5に記載の演算処理装置の制御方法。 It said setting step, the instruction to write request response indicating the completion is not returned, the control method of the arithmetic processing apparatus according to claim 4 or 5, have a step of writing the management data into the main storage device. 演算処理部に対応する主記憶装置をそれぞれ管理するともに、他の演算処理部が管理する他の主記憶装置に前記他の演算処理部を通じてアクセス可能な複数の演算処理部を有する演算処理装置であって、前記それぞれの演算処理部が、
前記自演算処理部に対応する主記憶装置および前記他の主記憶装置のいずれかに記憶されるデータの書き込みまたは読み出しを実行する制御部と、
前記自演算処理部の制御部または前記他の演算処理部の制御部が前記自演算処理部に対応する主記憶装置の記憶領域に記憶データの書き込みを行ったときに、前記記憶領域ごとに、少なくとも前記記憶領域への書込の頻度を管理する管理データの設定を前記自演算処理部に対応する主記憶装置に行うととともに、管理データの読み出し要求に応じて前記設定された管理データの読み出しを行う管理データ制御部と、
前記自演算処理部の制御部または前記他の演算処理部の制御部が前記自演算処理部に対応する主記憶装置の記憶領域に記憶データの書き込みおよび記憶された記憶データの読み出しを行ったときに、前記書込および読み出しがなされた前記記憶領域に対応する前記管理データの設定および前記管理データの読み出しのうち、前記管理データの読み出しよりも前記管理データの設定を優先して前記管理データ制御部に実行させる要求処理部と、を備える演算処理装置。
An arithmetic processing device that has a plurality of arithmetic processing units that manage the main storage devices corresponding to their own arithmetic processing units and that can access other main storage devices managed by other arithmetic processing units through the other arithmetic processing units. And each of the arithmetic processing units
A control unit that executes writing or reading of data stored in either the main storage device corresponding to the self-processing unit or the other main storage device;
When the control unit of the own calculation processing unit or the control unit of the other calculation processing unit writes the storage data to the storage area of the main storage device corresponding to the own calculation processing unit , for each storage area , Setting of management data for managing at least the frequency of writing to the storage area is performed in a main storage device corresponding to the self-processing unit, and reading of the set management data in response to a management data read request A management data control unit for performing
When the control unit of the own calculation processing unit or the control unit of the other calculation processing unit writes the storage data to the storage area of the main storage device corresponding to the own calculation processing unit and reads the stored data stored therein in the writing and reading such has been among the set of management data and the management data read corresponding to the storage area, said management data by giving priority to setting of the control data than the read of the management data An arithmetic processing device comprising: a request processing unit to be executed by the control unit .
JP2014046912A 2014-03-10 2014-03-10 Arithmetic processing device and control method of arithmetic processing device Active JP6303632B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014046912A JP6303632B2 (en) 2014-03-10 2014-03-10 Arithmetic processing device and control method of arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014046912A JP6303632B2 (en) 2014-03-10 2014-03-10 Arithmetic processing device and control method of arithmetic processing device

Publications (2)

Publication Number Publication Date
JP2015170313A JP2015170313A (en) 2015-09-28
JP6303632B2 true JP6303632B2 (en) 2018-04-04

Family

ID=54202944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014046912A Active JP6303632B2 (en) 2014-03-10 2014-03-10 Arithmetic processing device and control method of arithmetic processing device

Country Status (1)

Country Link
JP (1) JP6303632B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6146508B1 (en) 2016-03-31 2017-06-14 日本電気株式会社 Synchronous processing unit, device, system and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60134361A (en) * 1983-12-23 1985-07-17 Hitachi Ltd Key storage control system
JP2694076B2 (en) * 1991-11-22 1997-12-24 富士通株式会社 Storage unit control device
US7000080B2 (en) * 2002-10-03 2006-02-14 Hewlett-Packard Development Company, L.P. Channel-based late race resolution mechanism for a computer system
JP5414912B2 (en) * 2010-11-26 2014-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system and program for cache coherency control

Also Published As

Publication number Publication date
JP2015170313A (en) 2015-09-28

Similar Documents

Publication Publication Date Title
US11809321B2 (en) Memory management in a multiple processor system
JP5787629B2 (en) Multi-processor system on chip for machine vision
EP3796179A1 (en) System, apparatus and method for processing remote direct memory access operations with a device-attached memory
CN108027804B (en) On-chip atomic transaction engine
US10169080B2 (en) Method for work scheduling in a multi-chip system
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
JP4439491B2 (en) Multi-graphics processor system, graphics processor and data transfer method
US6351784B1 (en) System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US9529532B2 (en) Method and apparatus for memory allocation in a multi-node system
JP2012038293A5 (en)
US20150254182A1 (en) Multi-core network processor interconnect with multi-node connection
JP2018045700A (en) Multi-core interconnect in network processor
US20150254207A1 (en) Method and system for ordering i/o access in a multi-node environment
US20120311266A1 (en) Multiprocessor and image processing system using the same
JP2006252358A (en) Disk array device, its shared memory device, and control program and control method for disk array device
US6347349B1 (en) System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
JP6303632B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP4856413B2 (en) Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus
JP2006313479A (en) Semiconductor integrated circuit device and data transfer method
US7594080B2 (en) Temporary storage of memory line while waiting for cache eviction
JP2011028343A (en) Processor and data transfer method
JP5058116B2 (en) DMAC issue mechanism by streaming ID method
JPWO2007088582A1 (en) Asynchronous remote procedure call method, asynchronous remote procedure call program and recording medium in shared memory multiprocessor
JP2002198987A (en) Active port of transfer controller with hub and port
JPWO2007097036A1 (en) Central processing unit, control method for central processing unit, information processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180129

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: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180219

R150 Certificate of patent or registration of utility model

Ref document number: 6303632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150