JP6520733B2 - Information processing apparatus and control method - Google Patents
Information processing apparatus and control method Download PDFInfo
- Publication number
- JP6520733B2 JP6520733B2 JP2016012845A JP2016012845A JP6520733B2 JP 6520733 B2 JP6520733 B2 JP 6520733B2 JP 2016012845 A JP2016012845 A JP 2016012845A JP 2016012845 A JP2016012845 A JP 2016012845A JP 6520733 B2 JP6520733 B2 JP 6520733B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cpu
- processing unit
- request
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、情報処理装置および制御方法に関する。 The present invention relates to an information processing apparatus and control method.
従来、複数の演算処理装置が主記憶装置を共有するSymmetric Multi-Processor(SMP)システムがある。SMPでは、複数のノードを1パーティションとして扱っており、1つのノードが故障すると他のノードにそのエラーが波及してしまい、システムがダウンすることになる。 BACKGROUND Conventionally, there is a Symmetric Multi-Processor (SMP) system in which a plurality of processing units share a main storage. In SMP, a plurality of nodes are treated as one partition, and when one node fails, the error spreads to the other nodes, and the system goes down.
ノード間のデータ転送に関わる異常が発生した場合に、エラーの影響範囲を抑える技術が知られている(例えば、特許文献1参照)。 There is known a technique for suppressing the influence range of an error when an abnormality related to data transfer between nodes occurs (see, for example, Patent Document 1).
ここで、SMPシステムにおいて、データ要求元のCPU、データの実メモリを所有するCPU、およびデータをキャッシュに持ち出しているCPUをそれぞれローカルCPU(L−CPU)、ホームCPU(H−CPU)、およびリモートCPU(R−CPU)と呼ぶ。 Here, in the SMP system, the CPU of the data request source, the CPU having the actual memory of the data, and the CPU carrying out the data to the cache are the local CPU (L-CPU), the home CPU (H-CPU), and It is called remote CPU (R-CPU).
特許文献1では、R−CPUからH−CPUへのデータの書き戻し(ライトバック)に問題がある場合の解決方法しか記載されていない。従来技術では、ライトバックに問題がある場合以外の問題、例えば、異常があった場合にL−CPUがR−CPUからのデータを使用しまう等の問題は解決していない。そのため、このような問題が発生した場合に、キャッシュコヒーレンシが崩れ、エラーが他のノードに波及してしまい、システムがダウンしてしまう。
1つの側面において、本発明の課題は、異常が発生した場合にエラーの影響範囲を抑えることである。 In one aspect, the object of the present invention is to reduce the scope of the error when an abnormality occurs.
実施の形態に係る情報処理装置は、複数の演算処理装置と、前記複数の演算処理装置のそれぞれが接続する複数のメモリと、を有し、前記複数のメモリの共有領域が前記複数の演算処理装置で共有される。 An information processing apparatus according to an embodiment includes a plurality of arithmetic processing devices and a plurality of memories to which each of the plurality of arithmetic processing devices is connected, and a shared region of the plurality of memories is the plurality of arithmetic processing Shared by the device.
前記複数の演算処理装置のうち、第1の演算処理装置は、第2の演算処理装置にデータの要求を送信する第1の制御部を備える。 Among the plurality of processing units, the first processing unit includes a first control unit that transmits a data request to the second processing unit.
前記第2の演算処理装置は、第2の制御部を備える。前記第2の制御部は、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出する。前記第2の制御部は、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信する。 The second arithmetic processing unit includes a second control unit. When the second control unit receives the request from the first arithmetic device, the second controller holds the data in a cache based on directory information indicating the arithmetic processing device that holds the data and the state of the data. Detecting a third processing unit. The second control unit transmits a request including the transfer of the data to the first arithmetic processing unit and the discarding of the data from the cache to the third arithmetic processing unit.
前記第3の演算処理装置は、第3の制御部を備える。前記第3の制御部は、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信する。 The third processing unit includes a third control unit. The third control unit receives the request, transmits the data to the first arithmetic processing unit, changes a status of the data, and transmits a status change response indicating that the status has been changed. Transmit to the second processing unit.
前記第2の制御部は、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信する。 When the second control unit does not receive the status change response from the third arithmetic processing unit within a predetermined time after transmitting the request to the third arithmetic processing unit, the first operation is performed. Send an error response to the processing unit.
前記第1の制御部は、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄する。 When the first control unit receives the error response, the first control unit discards the data received from the third arithmetic processing unit.
実施の形態に係る情報処理装置によれば、異常が発生した場合にエラーの影響範囲を抑えることが出来る。 According to the information processing apparatus according to the embodiment, when an abnormality occurs, the influence range of the error can be suppressed.
従来のSMPシステムにおいて、下記のような問題がある。
SMPシステムにおいて、データ要求元のCPU、データの実メモリを所有するCPU、およびデータをキャッシュに持ち出しているCPUをそれぞれローカルCPU(L−CPU)、ホームCPU(H−CPU)、およびリモートCPU(R−CPU)と呼ぶ。
The conventional SMP system has the following problems.
In the SMP system, the CPU requesting the data, the CPU owning the actual memory of the data, and the CPU carrying out the data in the cache are respectively the local CPU (L-CPU), home CPU (H-CPU) and remote CPU It is called R-CPU).
・問題1―異常のある転送データを使用してしまう問題(三角転送)
L−CPUがH−CPUにデータを要求(EX要求)してH−CPUがR−CPUにIV依頼を送信するまでは正常動作と同じである。尚、EX要求は、キャッシュデータのステータスをExclusiveとして要求データを持ちたいことを示す要求である。また、IV依頼は、キャッシュに要求データをステータスがExclusiveまたはModifiedで格納している場合に要求データをL−CPUに送信し、要求データに対応するキャッシュデータのステータスを無効(Invalid)にすることを依頼するものである。キャッシュデータのステータスについては後述する。ここで、もしR−CPUが故障していたとすると、R−CPUからの応答がないのでH−CPUは指示のタイムアウトを検出する。このときのアクセスがライトバック(WRBK)応答、すなわちR−CPUからのデータ受信を期待するものであれば、H−CPUはディレクトリ(DIR)情報にエラーマーク(DIR=UNK)を書き込む。ここで、H−CPUがR−CPUに依頼を出すのと、L−CPUの要求に応答を返すのを同時に行ったとすると、以下の問題が起きる。
・ Problem 1-Problem of using abnormal transfer data (triangular transfer)
It is the same as the normal operation until the L-CPU requests data to the H-CPU (EX request) and the H-CPU transmits an IV request to the R-CPU. The EX request is a request indicating that the status of cache data is exclusive and that it is desired to have request data. In addition, when the IV request stores request data in the cache with a status of Exclusive or Modified, it sends the request data to the L-CPU, and invalidates the status of cache data corresponding to the request data. To request. The status of the cache data will be described later. Here, if the R-CPU has failed, the H-CPU detects an instruction timeout because there is no response from the R-CPU. If the access at this time is a write back (WRBK) response, that is, one that expects data reception from the R-CPU, the H-CPU writes an error mark (DIR = UNK) in the directory (DIR) information. Here, assuming that the H-CPU issues a request to the R-CPU and a response to the L-CPU's request simultaneously, the following problems occur.
R−CPUからH−CPUへの応答はないが、R−CPUからL−CPUへのデータ転送があったときに、H−CPUはタイムアウトを検出して、DIR情報をDIR=UNKとするが、H−CPUはR−CPUからの応答を受け取る前にL−CPUに応答を返しているため、R−CPUから転送されてきたデータに問題があることをL−CPUに伝えていない。そのため、L−CPUはR−CPUからの問題があるデータを使用してしまう。 Although there is no response from the R-CPU to the H-CPU, when there is data transfer from the R-CPU to the L-CPU, the H-CPU detects a timeout and sets DIR information to DIR = UNK. Because the H-CPU returns a response to the L-CPU before receiving a response from the R-CPU, the H-CPU does not notify the L-CPU that there is a problem with the data transferred from the R-CPU. Therefore, the L-CPU uses problematic data from the R-CPU.
・問題2−WRBK以外のパケットの滞留(タイムアウト)を検出してもエラーマークできない問題
従来、WRBK応答が期待されなければ、H−CPUはDIR情報にDIR=UNKを書き込まない。これにより、以下の問題が起きる。
Problem 2-A problem in which an error can not be marked even if a packet retention (timeout) other than WRBK is detected Conventionally, if a WRBK response is not expected, the H-CPU does not write DIR = UNK in DIR information. This causes the following problems.
H−CPUがDIR情報を参照してR−CPUにデータ転送を指示してもR−CPUからの応答を得られないとき、R−CPUは故障しているはずであるが、エラーマークされないのでキャッシュコヒーレンシの崩れた状態を認識できないまま動作を継続することになる。 If the H-CPU refers to DIR information and instructs the R-CPU to transfer data but can not obtain a response from the R-CPU, the R-CPU should have failed but is not marked as an error. The operation will be continued without recognizing the broken state of the cache coherency.
・問題3−DIR情報とキャッシュの状態に矛盾が生じると、エラーが波及してしまう問題(R−CPUに波及)
H−CPUのDIR情報をもとに発行された依頼とR−CPUのキャッシュデータのステータスが一致しないとする。H−CPUはR−CPUにEXデータの返却を求めるが、R−CPUはEXデータを保持していなかった場合、プロトコルエラーとなりR−CPUはFATALすることになる。尚、EXデータは、ステータスがExclusiveまたはModifiedであるデータである。
・ Problem 3-Problem that the error spreads when contradiction occurs in the DIR information and the cache state (R-CPU spread)
It is assumed that the status of the request issued based on the DIR information of the H-CPU and the status of the cache data of the R-CPU do not match. If the H-CPU requests the R-CPU to return EX data, but the R-CPU does not hold the EX data, a protocol error occurs and the R-CPU becomes FATAL. The EX data is data whose status is Exclusive or Modified.
・問題4−DIR情報とキャッシュの状態に矛盾が生じると、エラーが波及してしまう問題(H−CPUに波及)
H−CPUのDIR情報をもとに発行された依頼とR−CPUのキャッシュデータのステータスが一致しないとする。H−CPUのDIR情報をもとに複数のR−CPUにデータ破棄を依頼する。そして、H−CPUはR−CPUからの破棄応答を受け取る。このとき、H−CPUはSHデータを保持しているR−CPUにだけ依頼を出すのではなく、全R−CPUに依頼を出し、DIR情報で管理していたR−CPUのSHデータがすべて破棄されたかをR−CPUの破棄応答とつき合わせて確認している。DIR情報で管理していたSHデータの数(SH数)と破棄されたSHデータの数が合わない場合、H−CPUはFATALする。尚、SHデータは、複数のCPUがキャッシュに持っており、且つ更新されていないデータである。
· Problem 4-If there is a contradiction between the DIR information and the cache status, the error will spread (H-CPU spread)
It is assumed that the status of the request issued based on the DIR information of the H-CPU and the status of the cache data of the R-CPU do not match. Based on the DIR information of the H-CPU, it requests the plurality of R-CPUs to discard the data. Then, the H-CPU receives the discarding response from the R-CPU. At this time, the H-CPU does not send a request only to the R-CPU holding the SH data, but sends a request to all the R-CPUs, and all the SH data of the R-CPU managed by DIR information Whether it has been discarded is checked in conjunction with the R-CPU's discard response. If the number of SH data (SH number) managed by the DIR information does not match the number of discarded SH data, the H-CPU is FATAL. The SH data is data that a plurality of CPUs have in cache and has not been updated.
従来技術では、データ要求元CPUと、データの実メモリを所有するCPUと、データをキャッシュに持ち出しているCPUとの3つのCPU間の間でのデータの書き戻し(ライトバック(WRBK))に起因した問題のみ解決している。そのため、ライトバック以外で発生した問題については、解決しておらず、上記の問題1〜4が発生した場合に、キャッシュコヒーレンシの異常が波及し、システムがダウンしてしまう。
In the prior art, in the data write back (write back (WRBK)) between the three CPUs of the data request source CPU, the CPU owning the actual memory of the data, and the CPU carrying the data to the cache. Only the problems caused by it are solved. Therefore, problems that have occurred other than write back have not been solved, and when the
以下、図面を参照しながら実施の形態について説明する。
図1は、実施の形態に係る情報処理システムの構成図である。
Hereinafter, embodiments will be described with reference to the drawings.
FIG. 1 is a block diagram of an information processing system according to the embodiment.
情報処理システム101は、ビルディングブロック(BB)201−i(i=1〜4)およびクロスバスイッチ(XB)301を備える。
The
BB201−iは、CPUとメモリを有し、Operating System(OS)等のソフトウェアを実行する。尚、BB201−iの詳細な構成については後述する。また、実施の形態において、BB201−iをそれぞれノードとしている。尚、実施の形態のBB201−iの数は一例であり、これに限られるものではない。 The BB 201-i has a CPU and a memory, and executes software such as an operating system (OS). The detailed configuration of the BB 201-i will be described later. In the embodiment, each BB 201-i is a node. In addition, the number of BB201-i of embodiment is an example, It is not restricted to this.
XB301は、各ビルディングブロック201−iを相互に接続する。
情報処理ステム101では、CPU間のキャッシュコヒーレンス制御をディレクトリ方式で実現し、データをメモリ上に持つ後述のホームCPUが該当ディレクトリを管理している。
The
In the
図2は、実施の形態に係るビルディングブロックの構成図である。
BB201−iは、CPU401−i−j(j=1,2)、メモリ501−i−j、およびXBチップ601−iを備える。尚、CPU401−i−jおよびメモリ501−i−jの数は一例であり、これに限られるものではない。
FIG. 2 is a block diagram of a building block according to the embodiment.
The BB 201-i includes a CPU 401-i-j (j = 1, 2), a memory 501-i-j, and an XB chip 601-i. The numbers of the CPUs 401 -i-j and the memories 501 -i-j are merely examples, and the present invention is not limited thereto.
CPU401−i−1は、コア411−i、キャッシュ421−i、アクセス制御部431−i、メモリアクセス部441−i、リクエスト(REQ)部451−i、タイマ452−i−k(k=1〜p)、オーダー(ODR)部461−i、タイマ462−i−m(m=1〜q)、外部インタフェース(IF)471−iを備える。 The CPU 401-i-1 includes a core 411-i, a cache 421-i, an access control unit 431-i, a memory access unit 441-i, a request (REQ) unit 451-i, and a timer 452-i-k (k = 1). To p), an order (ODR) unit 461-i, timers 462-im (m = 1 to q), and an external interface (IF) 471-i.
尚、図2において、CPU401−i−2およびメモリ501−i−2の構成は、CPU401−i−1およびメモリ501−i−1の構成と同様であるため、記載は省略している。 In FIG. 2, the configurations of the CPU 401-i-2 and the memory 501-i-2 are the same as the configurations of the CPU 401-i-1 and the memory 501-i-1, and thus the description thereof is omitted.
コア411−iは、演算処理を実行し、OSやアプリケーション等を実行する。
キャッシュ421−iは、コア411−iで頻繁に利用されるデータを一時的に格納するキャッシュメモリである。
The core 411-i executes arithmetic processing and executes an OS, an application, and the like.
The cache 421-i is a cache memory that temporarily stores data frequently used by the core 411-i.
アクセス制御部431−iは、ノードマップ432−i、タグ(TAG)部433−i、ディレクトリ(DIR)部434−i、およびカウント(CNT)部435−iを備える。 The access control unit 431-i includes a node map 432-i, a tag (TAG) unit 433-i, a directory (DIR) unit 434-i, and a count (CNT) unit 435-i.
ノードマップ432−iは、物理アドレスと、物理アドレスが示す記憶領域を有するメモリ501−i−jと接続されたCPU401−i−jを示す識別子(CPUID)が対応付けて登録されたテーブルである。 The node map 432-i is a table in which a physical address and an identifier (CPUID) indicating the CPU 401-i-j connected to the memory 501-i-j having the storage area indicated by the physical address are associated with each other and registered. .
TAG部433−iは、キャッシュ421−iに格納されたキャッシュデータのステータス(TAG情報)を管理する。 The TAG unit 433-i manages the status (TAG information) of cache data stored in the cache 421-i.
DIR部434−iは、DIR情報521−iの管理を行う。
TAG部433−iおよびDIR部434−iは、MESIプロトコル等の手法を用いて、キャッシュコヒーレンスを保持するための処理を実行する。例えば、TAG部433−iおよびDIR部434−iは、キャッシュされたデータ(キャッシュデータ)のステータスがMESI(Modified/Exclusive/Shared/Invalid)のいずれであるかを判定する。
The DIR unit 434-i manages the DIR information 521-i.
The TAG unit 433-i and the DIR unit 434-i execute processing for maintaining cache coherence using a method such as the MESI protocol. For example, the TAG unit 433-i and the DIR unit 434-i determine which of MESI (Modified / Exclusive / Shared / Invalid) is the status of cached data (cache data).
TAG部433−iおよびDIR部434−iは、判定結果に応じて、他のCPU401−i−jとコヒーレンシを保持するための要求(リクエスト)や依頼(オーダー)の送受信を行い、キャッシュデータの状態に応じた処理を実行する。ここで、「Modified」とは、いずれか1つのCPUがデータをキャッシュしており、かつ、キャッシュデータが更新される状態を示す。なお、キャッシュデータの状態が「Modified」である場合には、ライトバックを実行する必要がある。 The TAG unit 433-i and the DIR unit 434-i transmit and receive requests (requests) and requests (orders) for maintaining coherency with other CPUs 401-i-j according to the determination result, and cache data Execute processing according to the status. Here, “Modified” indicates a state in which any one CPU is caching data and the cache data is updated. When the state of cache data is "Modified", write back needs to be performed.
また、「Exclusive」とは、いずれか1つのCPUがデータをキャッシュしており、かつ、キャッシュデータが更新されていない状態を示す。また、「Shared」とは、複数のCPUがデータをキャッシュしており、かつ、キャッシュデータが更新されていないことを示す。また、「Invalid」とは、キャッシュデータのステータスが登録されていないことを示す。以下、Modified、Exclusive、Shared、およびInvalidをそれぞれEX(M)、EX、SH、およびIVと表記する場合がある。尚、特に断らなければ、EXはEX(M)を含む。 Also, "Exclusive" indicates that any one CPU is caching data, and the cache data is not updated. Also, “Shared” indicates that a plurality of CPUs cache data, and the cache data is not updated. Also, "Invalid" indicates that the status of the cache data is not registered. Hereinafter, Modified, Exclusive, Shared, and Invalid may be denoted as EX (M), EX, SH, and IV, respectively. Unless otherwise noted, EX includes EX (M).
CNT部435−iは、データを使用しているCPU401−i−jの数と当該データを返却(破棄)したCPU401−i−jの数の管理を行う。 The CNT unit 435-i manages the number of CPUs 401 -i using data and the number of CPUs 401-i returning (discarding) the data.
メモリアクセス部441−i、メモリ501−i−1へのアクセスを行い、DIR情報521−iおよびデータ511−iの読み書きを行う。 The memory access unit 441-i accesses the memory 501-i-1, and reads / writes the DIR information 521-i and the data 511-i.
リクエスト部451−iは、他のCPU401−i−jに対する要求(リクエスト)を格納するバッファであり、他のCPU401−i−jに要求を送信する。 The request unit 451-i is a buffer that stores requests for other CPUs 401-i-j, and transmits the requests to the other CPUs 401-i-j.
タイマ452−i−kは、リクエスト部451−iが依頼を送信してからの時間をカウントするタイマである。タイマ452−i−kは、リクエスト部451−iが格納する要求に対応する数が用意される。 The timer 452-ik is a timer that counts the time after the request unit 451-i transmits a request. The timer 452-ik has a number corresponding to the request stored in the request unit 451-i.
オーダー部461−iは、他のCPU401−i−jに対する依頼(オーダー)を格納するバッファであり、他のCPU401−i−jに依頼を送信する。 The order unit 461-i is a buffer that stores requests (orders) for the other CPUs 401-i-j, and transmits the requests to the other CPUs 401-i-j.
タイマ462−i−mは、オーダー部461−iが依頼を送信してからの時間をカウントするタイマである。タイマ462−i−mは、オーダー部461−iが格納する依頼に対応する数が用意される。 The timer 462-im is a timer that counts the time after the order unit 461-i transmits the request. The timers 462-im are provided with the numbers corresponding to the requests stored by the order unit 461-i.
外部IF471−iは、XBチップ601およびCPU401−i−2と接続するインタフェースである。
The external IF 471-i is an interface connected to the
メモリ501−i−1は、共有領域とローカル領域を有する。メモリ501−i−1は、ディレクトリ(DIR)情報521−iおよびデータ511−iを格納する。以下、DIR情報521−iを単にDIR521−iと表記する場合がある。ローカル領域は、同じBB201−i内のCPU401−i−jのCPUが使用でき、共有領域は、他のBB201−i内のCPU401−i−jからも使用できる。例えば、共有領域は、全てのBB201−i内の複数のCPU401−i−jで共有される。 The memory 501-i-1 has a shared area and a local area. The memory 501-i-1 stores directory (DIR) information 521-i and data 511-i. Hereinafter, DIR information 521-i may be simply referred to as DIR 521-i. The local area can be used by the CPUs of the CPUs 401 -i in the same BB 201 -i, and the shared area can also be used by the CPUs 401 -i in other BBs 201 -i. For example, the shared area is shared by a plurality of CPUs 401 -i in all the BBs 201 -i.
DIR情報521−iは、CPU401−i−1が所有するメモリ501−i−1のアドレスのデータのステータス(MESIのいずれか)と当該アドレスのデータをキャッシュに持つCPU401−i−jとが対応付けられたリストである。 The DIR information 521-i corresponds to the status (one of MESI) of the data of the address of the memory 501-i-1 owned by the CPU 401-i-1 and the CPU 401-i-j having the data of the address in the cache. It is a list attached.
XBチップ601−iは、CPU401−i−jおよびXB301と接続と接続している。
The XB chip 601-i is connected to the CPU 401 -i-j and the
データ要求元のCPU、データの実メモリを所有するCPU、およびデータをキャッシュに持ち出しているCPUをそれぞれローカルCPU(L−CPU)、ホームCPU(H−CPU)、およびリモートCPU(R−CPU)と呼ぶ。 Local CPU (L-CPU), home CPU (H-CPU), and remote CPU (R-CPU): CPU that requests data, CPU that owns actual memory of data, and CPU that carries out data to cache Call it
また、以下の説明において、L−CPU、H−CPU、およびR−CPUは、それぞれ異なるBB201−iに搭載されたCPU401−i−jのいずれかに相当する。尚、L−CPUとH−CPUは、同一のCPU401−i−jであってもよい。 Further, in the following description, the L-CPU, the H-CPU, and the R-CPU correspond to any of the CPUs 401 -i-j mounted on different BBs 201 -i. The L-CPU and the H-CPU may be the same CPU 401-i-j.
図3Aは、実施の形態に係る情報処理システムの三角転送時の処理を示す図である。
図3Bは、ローカルCPUの処理を示すフローチャートである。
FIG. 3A is a diagram illustrating processing at the time of triangular transfer of the information processing system according to the embodiment.
FIG. 3B is a flowchart showing processing of the local CPU.
図3Aでは、L−CPUがあるデータを要求した場合に、当該データを格納するメモリをH−CPUが有し、当該データはR−CPUのキャッシュに持ち出されたとする。この場合、以下のような処理が行われる。 In FIG. 3A, when the L-CPU requests a certain data, the H-CPU has a memory for storing the data, and the data is taken out to the cache of the R-CPU. In this case, the following processing is performed.
L−CPU内のアクセス制御部431−iは、コア411−iから、メモリ501−i−jのいずれかの共有領域にあるアドレスのデータを要求される。 The access control unit 431-i in the L-CPU is requested by the core 411-i for data of an address in one of the shared areas of the memories 501-i-j.
コア411−iからの要求を受けて、アクセス制御部431−iは、ノードマップ432−iに基づいてアクセス先、すなわち要求データのアドレスの実メモリを所有しているCPU401−i−jを検出する。 In response to the request from the core 411-i, the access control unit 431-i detects the access destination, that is, the CPU 401-i-j having the real memory of the address of the requested data based on the node map 432-i Do.
ここでは、要求データはL−CPUのキャッシュに登録されていなく(ステータスがIV)、L−CPUが要求データのアドレスの実メモリも所有していない。また、要求データのアドレスの実メモリを所有しているCPUとしてH−CPUが検出される。 Here, the request data is not registered in the cache of the L-CPU (status is IV), and the L-CPU does not possess the real memory of the address of the request data. Also, the H-CPU is detected as a CPU that owns the real memory of the address of the requested data.
L−CPUのリクエスト部451−iは、H−CPUに要求(EX要求)を出す。尚、EX要求は、キャッシュデータのステータスをEXとして要求データを持ちたいことを示す要求である。 The request unit 451-i of the L-CPU issues a request (EX request) to the H-CPU. The EX request is a request indicating that the status of cache data is EX and it is desired to have request data.
H−CPUは、L−CPUから要求を受信すると、要求データが格納されたメモリのアドレスに対応するDIR情報を参照する。ここでは、要求データに対応するDIR情報521−iが、R−EXであるとする。H−CPUは、“R”で示されるR−CPUがEXのステータスで要求データをキャッシュに持ち出していると分かる。 When receiving the request from the L-CPU, the H-CPU refers to DIR information corresponding to the address of the memory in which the request data is stored. Here, it is assumed that DIR information 521-i corresponding to request data is R-EX. The H-CPU knows that the R-CPU indicated by "R" carries out the requested data to the cache with the status of EX.
H−CPUのオーダー部461−iは、R−CPUにIV依頼を送信する。IV依頼は、キャッシュに要求データをステータスがEXまたはEX(M)で格納している場合にL−CPUに要求データを送信し、要求データに対応するキャッシュデータのステータスを無効にすることを依頼する。 The order unit 461-i of the H-CPU transmits the IV request to the R-CPU. The IV request transmits the request data to the L-CPU when the request data is stored in the cache with the status EX or EX (M), and requests to invalidate the status of the cache data corresponding to the request data. Do.
R−CPUは、IV依頼を受信すると、アクセス制御部431−iは、L−CPUに要求データを送信し、キャッシュデータのステータスをIVに変更し、ステータスの変更したことを示す応答をH−CPUに送信する。また、R−CPUは、IV依頼の受信時に、キャッシュデータのステータスがEX(M)であるので、アクセス制御部431−iは、H−CPUに要求データを送信(ライトバック応答)することにより、ライトバックを行う。尚、R−CPUは、IV依頼の受信時に、キャッシュデータのステータスがEXである場合は、アクセス制御部431−iは、H−CPUに要求データを送信せず、ステータスの変更したことを示す応答をH−CPUに送信する。 When the R-CPU receives the IV request, the access control unit 431-i transmits request data to the L-CPU, changes the status of cache data to IV, and sends a response indicating that the status has been changed, to H-. Send to CPU. In addition, since the status of cache data is EX (M) when the R-CPU receives an IV request, the access control unit 431-i transmits the request data to the H-CPU (write back response). , Write back. In addition, when the status of cache data is EX when the IV request is received, the R-CPU does not transmit request data to the H-CPU, but indicates that the status has been changed. Send a response to the H-CPU.
ここで、R−CPUがL−CPUに要求データを送信後且つH−CPUにステータスの変更したことを示す応答を送信前に故障した、またはR−CPUとH−CPU間の経路に故障が発生したとする。 Here, a response indicating that the R-CPU has sent request data to the L-CPU and has changed the status to the H-CPU has failed before sending, or a failure has occurred in the path between the R-CPU and the H-CPU Suppose that it occurs.
H−CPUは、IV依頼を送信するとタイマを起動し、所定時間以内にステータスの変更したことを示す応答を受信するかチェックしている。上記のように、R−CPUが故障またはR−CPUとH−CPU間の経路に故障が発生した場合、H−CPUは、応答を受信しないため、タイムアウトを検出する。H−CPUは、タイムアウトを検出すると、DIR情報521−iをUNKに変更し、L−CPUにエラー(AER)応答を送信する。 When the H-CPU transmits the IV request, the H-CPU starts a timer and checks whether a response indicating that the status has been changed is received within a predetermined time. As described above, when the R-CPU fails or a failure occurs in the path between the R-CPU and the H-CPU, the H-CPU detects a timeout because it does not receive a response. When detecting the timeout, the H-CPU changes the DIR information 521-i to UNK, and transmits an error (AER) response to the L-CPU.
L−CPUのDIR部434−iは、AER応答を受信したか判定し(ステップS701)、コア411−iは、AER応答を受信するとR−CPUから受信した要求データを破棄する(ステップS702)。また、コア411−iは、AER応答を受信しない場合、R−CPUから受信した要求データを使用する(ステップS703)。 The DIR unit 434-i of the L-CPU determines whether the AER response has been received (step S701), and the core 411-i discards the request data received from the R-CPU when the AER response is received (step S702). . When the core 411-i does not receive the AER response, the core 411-i uses the request data received from the R-CPU (step S 703).
H−CPUはタイムアウトを検出すると、AER応答をL−CPUに送信する。それにより、L−CPUはR−CPUからの問題があるデータ(すなわち、H−CPUが管理できていないデータ)を使用してしまうことを防止できる。すなわち、上述の問題1が解決できる。
When the H-CPU detects a timeout, it sends an AER response to the L-CPU. Thereby, it is possible to prevent the L-CPU from using problematic data from the R-CPU (i.e., data that the H-CPU can not manage). That is, the above-mentioned
図4Aは、実施の形態に係る情報処理システムのリモートCPUからの応答の検出処理を示す図である。 FIG. 4A is a diagram showing a process of detecting a response from the remote CPU of the information processing system according to the embodiment.
図4Bは、ホームCPUの処理を示すフローチャートである。
図4A,4Bにおいて、L−CPU、H−CPU、およびR−CPUは、上述の図3Aの説明と同様の処理を行うとする。
FIG. 4B is a flowchart showing processing of the home CPU.
In FIGS. 4A and 4B, it is assumed that the L-CPU, the H-CPU, and the R-CPU perform the same processing as the description of FIG. 3A described above.
ここでは、H−CPUの処理についてさらに説明する。
上述のようにH−CPUは、R−CPUにIV依頼を送信するとタイマを起動し、所定時間以内にステータスの変更したことを示す応答を受信するかチェックしている。H−CPUは、R−CPUから所定時間内に応答を受信しない場合、タイムアウトを検出する(ステップS711)。H−CPUは、タイムアウトを検出すると、DIR情報521−iをステータスが不明でありアクセスを禁止することを示すエラーマーク(DIR=UNK)に変更し(ステップS711)、L−CPUにエラー(AER)応答を送信する。情報処理システム101は、エラーマークに対応するアドレス領域に対して、キャッシュコヒーレンシを復旧させるまで使用(アクセス)しないようする。これにより、キャッシュコヒーレンシの異常が波及するのを防ぐことが出来る。情報処理システム101は、DIR情報にエラーマークが設定された場合、CPU401−iーjに含まれるリカバリ部(不図示)により、キャッシュコヒーレンシを復旧させる。
Here, the processing of the H-CPU will be further described.
As described above, when the H-CPU transmits an IV request to the R-CPU, the H-CPU starts a timer, and checks whether a response indicating that the status has been changed is received within a predetermined time. When the H-CPU does not receive a response from the R-CPU within a predetermined time, the H-CPU detects a timeout (step S711). When the H-CPU detects a time-out, it changes the DIR information 521-i to an error mark (DIR = UNK) indicating that the status is unknown and prohibits access (step S711), and the L-CPU receives an error (AER). ) Send a response. The
従来は、H−CPUにおいてライトバック応答(すなわち、メモリに書き戻すためのデータ)の受信が期待される場合に、IV依頼の送信から所定時間以内にライトバック応答を受信しなかった場合にのみ、DIR情報をDIR=UNKに変更している。 Conventionally, when the H-CPU is expected to receive a write back response (that is, data for writing back to the memory), only when a write back response is not received within a predetermined time from the transmission of the IV request , DIR information has been changed to DIR = UNK.
例えば、IV依頼を受信したときに、R−CPUのキャッシュの状態がEXである場合、R−CPUは、H−CPUにライトバック応答は送信せず、ステータスの変更したことを示す応答をH−CPUに送信する。この場合、従来技術では、R−CPUが故障し、ステータスの変更したことを示す応答をH−CPUが所定時間以内に受信できなくても、DIR情報をDIR=UNKに変更しない。すなわち、キャッシュコヒーレンスが崩れている可能性があっても、情報処理システムはキャッシュコヒーレンスの異常を認識できず、FATALが発生する。 For example, when the status of the cache of the R-CPU is EX when the IV request is received, the R-CPU does not send a write back response to the H-CPU, and sends a response indicating that the status has been changed. Send to CPU. In this case, in the prior art, the DIR information is not changed to DIR = UNK even if the R-CPU fails and a response indicating that the status has been changed can not be received within a predetermined time. That is, even if there is a possibility that the cache coherence is broken, the information processing system can not recognize the cache coherence abnormality and FATAL occurs.
H−CPUは、IV依頼を送信してから所定時間以内にステータスの変更したことを示す応答を受信するかチェックし、タイムアウトを検出すると、DIR情報をUNKに変更する。実施の形態の情報処理システムによれば、ライトバック応答以外の応答(ステータスの変更したことを示す応答)の所定時間以内の未受信を検出して、DIR情報にエラーマークを記述できる。すなわち、上述の問題2が解決できる。
The H-CPU checks whether a response indicating that the status has been changed is received within a predetermined time after sending the IV request, and changes the DIR information to UNK when a timeout is detected. According to the information processing system of the embodiment, an error mark can be described in DIR information by detecting non-reception within a predetermined time of a response (a response indicating that the status has been changed) other than the write back response. That is, the
図5Aは、実施の形態に係る情報処理システムのディレクトリ情報に矛盾がある場合の処理を示す図である。
図5Bは、リモートCPUの処理を示すフローチャートである。
FIG. 5A is a diagram showing processing when there is a contradiction in directory information of the information processing system according to the embodiment.
FIG. 5B is a flowchart showing processing of the remote CPU.
図5Aにおいて、あるデータをキャッシュにステータスがEXで持ちたいL−CPUがいるとする。L−CPUがノードマップを確認すると、H−CPUが自身ではなかったので、H−CPUにEXになりたいとリクエスト(EX要求)を送信する。 In FIG. 5A, it is assumed that there is an L-CPU that wants to have certain data in the cache and the status is EX. When the L-CPU confirms the node map, since the H-CPU is not itself, it transmits a request (EX request) to the H-CPU when it wants to become EX.
H−CPUが対象アドレスのDIR情報521−iを確認するとR−CPUがEXで所有していると検出されたとする。H−CPUはR−CPUに、データをL−CPUに送信してステータス(TAG情報)をIVにするようにオーダー(IV依頼)を送信する。本来であればR−CPUはTAG情報をIVに変更し、H−CPUに変更したことを応答で伝え、R−CPUはL−CPUにデータを転送する。 When the H-CPU checks the DIR information 521-i of the target address, it is detected that the R-CPU is owned by EX. The H-CPU sends an order (IV request) to the R-CPU to send data to the L-CPU and set the status (TAG information) to IV. Under normal circumstances, the R-CPU changes the TAG information to IV, informs the H-CPU of the change in response, and the R-CPU transfers data to the L-CPU.
ここで、R−CPUは要求されたデータ(EXデータ)をキャッシュに保持していなかったとする(すなわち、TAG情報がIV)。 Here, it is assumed that the R-CPU did not hold the requested data (EX data) in the cache (ie, the TAG information is IV).
H−CPUからのオーダーを受け取ったR−CPUはTAG情報を参照し、キャッシュに要求された対象アドレスのデータがあるか判定する(ステップS722)。TAG情報にH−CPUから要求された対象アドレスのデータを持っていないので、R−CPUはH−CPUにAER応答をする(ステップS723)。以降、R−CPUは、通常の処理(正常処理)を行う(ステップS724)。AER応答を受け取ったH−CPUは対象アドレスのDIR情報521−iにDIR=UNKを書き込み、L−CPUにAERを応答する。AERを受け取ったL−CPUは要求を終了する。 The R-CPU that has received the order from the H-CPU refers to the TAG information and determines whether there is data of the requested target address in the cache (step S722). Since the TAG information does not have the data of the target address requested from the H-CPU, the R-CPU makes an AER response to the H-CPU (step S723). Thereafter, the R-CPU performs normal processing (normal processing) (step S724). The H-CPU that has received the AER response writes DIR = UNK in the DIR information 521-i of the target address, and responds the AER to the L-CPU. The L-CPU receiving the AER terminates the request.
また、L−CPUがSH、EXデータを保持しているにも関わらず、SHデータを要求してきた場合、L−CPUがEXデータを保持しているにもかかわらず、EXデータを要求してきた場合も、H−CPUは、DIR情報521−iをDIR=UNKに変更し、L−CPUにAERを応答する。すでにDIR=UNKであった場合には、L−CPUにAERを応答する。 In addition, even though the L-CPU holds the SH and EX data, when the SH data is requested, the EX data is requested despite the L-CPU holding the EX data. Also in the case, the H-CPU changes the DIR information 521-i to DIR = UNK, and responds the AER to the L-CPU. If DIR = UNK already, AER is returned to the L-CPU.
また、L−CPUがEXデータを保持していないはずなのにデータを書き戻してきた場合や、L−CPUがSH、EXデータを保持していないはずなのにデータを返却してきた場合はH−CPUはFATALする。 Also, if the L-CPU writes back data although it should not hold EX data, or if the L-CPU returns data even though it should not hold SH and EX data, the H-CPU will To FATAL.
実施の形態に係る情報処理システムは、ディレクトリ情報に矛盾がある場合、AER応答を行い、DIR情報にDIR=UNKを書込むことで、DIR情報の変更を抑止し、キャッシュコヒーレンシの異常の波及を防ぐ。すなわち、上述の問題3が解決できる。
The information processing system according to the embodiment makes an AER response when there is a contradiction in the directory information and writes DIR = UNK in the DIR information to suppress the change of the DIR information and spread the cache coherency abnormality. prevent. That is, the
ここで、DIR矛盾があり、DIR情報がUNKとなるケースを示す。
図6は、DIR=UNKとなるパターンを示す図である。
Here, there is a case where there is DIR contradiction and DIR information becomes UNK.
FIG. 6 shows a pattern in which DIR = UNK.
図6では、L−CPUからのリクエストを受けて、H−CPUのDIR情報、R−CPUのTAG情報を変更する。
図6のL−TAG、R−TAGは、それぞれL−CPU、R−CPUのTAG情報である。
In FIG. 6, in response to a request from the L-CPU, the DIR information of the H-CPU and the TAG information of the R-CPU are changed.
L-TAG and R-TAG in FIG. 6 are TAG information of L-CPU and R-CPU, respectively.
・IV要求、SH要求、またはEX要求
IV要求の場合、R−CPUのTAG情報をEXからSHに変更するようにオーダーを投げ、R−CPUはH−CPUに変更したことを応答で伝えてL−CPUにデータを送り、L−CPUはTAG情報をSHに変更する。また、H−CPUはDIR情報をR−EXからR−SHに変更する。
-In the case of IV request, SH request, or EX request IV request, an order is thrown to change the TAG information of R-CPU from EX to SH, and R-CPU informs H-CPU that it has changed. The data is sent to the L-CPU, and the L-CPU changes TAG information to SH. The H-CPU also changes DIR information from R-EX to R-SH.
SH要求の場合、R−CPUのTAG情報をEXからSHに変更するようにオーダーを投げ、L−CPUにデータを送り、L−CPUはTAG情報をSHに変更する。また、H−CPUはDIR情報をR−EXからR−SHに変更する。ここで、R−CPUがEXデータを変更している場合、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝えてデータをH−CPUとL−CPUに送る。L−CPUはTAG情報をEXに変更する。また、H−CPUのDIR情報はR−EXのままである。データを受け取ったH−CPUは最新のデータをメモリに反映する。 In the case of an SH request, an order is thrown to change the TAG information of the R-CPU from EX to SH, data is sent to the L-CPU, and the L-CPU changes the TAG information to SH. The H-CPU also changes DIR information from R-EX to R-SH. Here, when the R-CPU changes the EX data, the R-CPU sends a response to the H-CPU that the TAG information has been changed to IV and sends data to the H-CPU and the L-CPU. The L-CPU changes TAG information to EX. Also, DIR information of the H-CPU remains R-EX. The H-CPU receiving the data reflects the latest data in the memory.
EX要求の場合、R−CPUのTAG情報をEXからIVに変更するようにオーダーを投げ、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝えてデータをL−CPUに送り、L−CPUはTAG情報をEXに変更する。また、H−CPUのDIR情報はR−EXのままである。ここで、R−CPUがEXデータを変更している場合、R−CPUはH−CPUとL−CPUにデータを送り、H−CPUは最新のデータをメモリに反映する。 In the case of an EX request, an order is thrown so as to change the TAG information of the R-CPU from EX to IV, and the R-CPU notifies the H-CPU that the TAG information has been changed to IV and sends data to the L-CPU. And the L-CPU changes TAG information to EX. Also, DIR information of the H-CPU remains R-EX. Here, when the R-CPU changes the EX data, the R-CPU sends data to the H-CPU and the L-CPU, and the H-CPU reflects the latest data in the memory.
・IV依頼
R−CPUのTAG情報をEXからIVに変更するようにオーダーを投げ、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝える。H−CPUはDIR情報をR−EXからR−IVに変更する。
An order is issued to change the TAG information of the R-CPU from EX to IV, and the R-CPU notifies the H-CPU that the TAG information has been changed to IV. The H-CPU changes DIR information from R-EX to R-IV.
・全IV依頼
R−CPUのTAG情報をSHからIVに変更するようにオーダーを投げ、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝える。H−CPUはDIR情報をR−SHからR−IVに変更する。
-All IV request An order is thrown so as to change the TAG information of R-CPU from SH to IV, and R-CPU informs H-CPU that the TAG information has been changed to IV. The H-CPU changes DIR information from R-SH to R-IV.
このとき、R−CPUはH−CPUからのオーダーと自身のキャッシュを確認し、SHではなくEXで所有していたら、R−CPUはFATALするようにする。 At this time, the R-CPU checks the order from the H-CPU and its own cache, and if owned by EX instead of SH, the R-CPU performs FATAL.
・強制全IV
R−CPUのTAG情報をEXからIVに変更するようにオーダーを投げ、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝える。H−CPUはDIR情報をR−EXからR−IVに変更する。ここで、R−CPUがEXデータを変更している場合でも、H−CPUにデータ送付せず、H−CPUは最新のデータをメモリに反映しない。
· Forced all IV
The order is thrown to change the TAG information of the R-CPU from EX to IV, and the R-CPU informs the H-CPU that the TAG information has been changed to IV. The H-CPU changes DIR information from R-EX to R-IV. Here, even when the R-CPU changes the EX data, the data is not sent to the H-CPU, and the H-CPU does not reflect the latest data in the memory.
図7Aは、実施の形態に係る情報処理システムのSH数が矛盾した場合の処理を示す図である。
図7Bは、リモートCPUの処理を示すフローチャートである。
図7Cは、ホームCPUの処理を示すフローチャートである。
FIG. 7A is a diagram illustrating processing when the number of SHs in the information processing system according to the embodiment contradicts each other.
FIG. 7B is a flowchart showing processing of the remote CPU.
FIG. 7C is a flowchart showing processing of the home CPU.
図7A〜7Cにおいて、あるデータをH−CPUが自身のメモリに戻したいとする。
H−CPUが対象アドレスのDIR情報521−iを参照すると、R−CPUがデータをステータス(TAG情報)がSHでキャッシュに所有していると検出され、H−CPUはR−CPUにTAG情報をIVにするようにオーダー(データ回収指示)を送信し、データを回収する。尚、データの回収は、R−CPUに回収データを転送させるのではなく破棄させ、R−CPUのTAG情報がSHからIVになるように依頼する。
In FIGS. 7A to 7C, it is assumed that the H-CPU wants to return certain data to its own memory.
When the H-CPU refers to the DIR information 521-i of the target address, it is detected that the R-CPU owns data in the cache with the status (TAG information) SH, and the H-CPU sends TAG information to the R-CPU. Send an order (data collection instruction) to make it IV, and collect data. The data collection is made to discard the R-CPU instead of transferring the collection data, and requests the TAG information of the R-CPU to change from SH to IV.
ここで、R−CPUは1つではなく複数あり、H−CPUのCNT部435−iがSH数を確認すると複数のR−CPUがデータをTAG情報がSHでキャッシュに保持していたとする。このとき、H−CPUは、L−CPUとH−CPUを除く全CPUにオーダーを送信する。すなわち、H−CPUは、送信先のCPUがデータをキャッシュに所有しているか否かにかかわらずオーダーを送信する。尚、H−CPUは、TAG情報がSHでキャッシュに保持しているR−CPUにのみオーダーを送信してもよい。ここで、SH数は、DIR情報に基づく、あるデータをキャッシュに持っているR−CPUの数である。 Here, there are a plurality of R-CPUs instead of one, and when the CNT unit 435-i of the H-CPU confirms the number of SH, it is assumed that a plurality of R-CPUs hold data in cache with TAG information SH. At this time, the H-CPU transmits the order to all the CPUs except the L-CPU and the H-CPU. That is, the H-CPU transmits an order regardless of whether the CPU of the transmission destination owns data in the cache. The H-CPU may transmit the order only to the R-CPU whose TAG information is SH and held in the cache. Here, the SH number is the number of R-CPUs having certain data in the cache based on DIR information.
H−CPUからのデータ回収指示を受けたR−CPUはデータ、データがキャッシュにあるか判定し(ステップS731)、データがキャッシュにあれば破棄し、TAG情報をIVに変更したことをしめす応答をH−CPUに送信する(ステップS732)。また、もともとデータを所有しておらず、TAG情報がIVであったR−CPUもH−CPUに応答を返す(ステップS733)。R−CPUは、応答の中にキャッシュにデータを持っていたか否かを示す情報(CNT)を含める。R−CPUは、キャッシュにデータを持っていた場合、CNT=1とし、キャッシュにデータを持っていなかった場合、CNT=0とする。 The R-CPU receives the data collection instruction from the H-CPU, determines whether the data is in the cache (step S731), discards the data if it is in the cache, and indicates that the TAG information has been changed to IV Are sent to the H-CPU (step S732). Also, the R-CPU which originally did not possess data and the TAG information was IV also returns a response to the H-CPU (step S733). The R-CPU includes, in the response, information (CNT) indicating whether or not the cache has data. If the R-CPU has data in the cache, it sets CNT = 1, and if it does not have data in the cache, it sets CNT = 0.
これにより、全R−CPUから応答が返ってきたときに、H−CPUは、SH数とCNT=1である応答の数との差分(SH−CNT)を算出し、すべてのSHのデータを回収できたかを判定する(ステップS741)。例えば、H−CPUは、差分がSH数とDIR情報521−iにより算出される期待値と一致するか判定することにより、すべてのSHのデータを回収できたかを判定する。 By this, when responses are returned from all R-CPUs, the H-CPU calculates the difference (SH-CNT) between the number of SH and the number of responses where CNT = 1, and the data of all SH is calculated. It is determined whether it has been recovered (step S741). For example, the H-CPU determines whether the data of all SHs can be collected by determining whether the difference matches the number of SH and the expected value calculated by the DIR information 521-i.
H−CPUは、すべてのSHのデータを回収できていない場合、DIR情報521−iにDIR=UNKを書き込み(ステップS742)、通常の処理を実行する(ステップS743)。 If the H-CPU can not collect all SH data, it writes DIR = UNK in the DIR information 521-i (step S742), and executes the normal processing (step S743).
算出された差分により、H−CPUは、それぞれ下記のように動作する。 Based on the calculated difference, the H-CPU operates as follows.
・SH−CNT=0の場合(このとき期待値は0)
すべてのSHのデータを回収できたので、H−CPUは、正常にオーダーを終了する。
· In the case of SH-CNT = 0 (expected value is 0 at this time)
Since all SH data could be collected, the H-CPU normally terminates the order.
・SH−CNT=1の場合
SHのデータを1つ回収できていない。どこかのCPUがSHでデータを所有している状態である。
In the case of SH-CNT = 1 One SH data could not be collected. It is in a state where some CPU owns data by SH.
このとき、H−CPUはDIR情報DIR情報521−iから回収できていないSHはどのCPUが所有しているのかを確認する。 At this time, the H-CPU checks from the DIR information DIR information 521-i which CPU owns an SH that can not be recovered.
回収できなかったSHのデータを所有しているCPUがL−CPUである場合、そもそもオーダーを送信していないので、期待値は1であり、SH−CNTと期待値は一致しているため、正常にオーダーを終了する。 If the CPU that owns the data of the SH that could not be collected is the L-CPU, the order is not sent in the first place, so the expected value is 1, and since the expected value matches the SH-CNT, Finish the order normally.
回収できなかったSHを所有しているCPUがR−CPUである場合、期待値は0であるが、SH−CNTと期待値は一致していない。すなわち、SHのデータがどこかで消失してしまっているので、DIR情報521−iにDIR=UNKを書き込んでL−CPUにAERを応答し、オーダーを終了する。 When the CPU possessing the SH that could not be recovered is the R-CPU, the expected value is 0, but the SH-CNT and the expected value do not match. That is, since the data of SH has been lost somewhere, DIR = UNK is written to DIR information 521-i, AER is returned to the L-CPU, and the order is ended.
・SH−CNT≧2の場合
L−CPU以外にもR−CPUからも回収できていないことになる。SHがどこかで消失してしまっているので、DIR情報にDIR=UNKを書き込んでL−CPUにAERを応答し、オーダーを終了する。
In the case of SH-CNT ≧ 2, it means that it can not be recovered from the R-CPU as well as the L-CPU. Since SH has been lost somewhere, write DIR = UNK to DIR information, respond AER to the L-CPU, and end the order.
・SH−CNT≦−1の場合
この場合、H−CPUは、SHのデータを余計に回収している。H−CPUが把握しているSH数よりも多くのR−CPUがデータをSHで所有していたことになり、これはH−CPUが以前に応答を受け損ねていたことを示す。H−CPUは、DIR情報521−iにDIR=UNKを書き込んでL−CPUにAERを応答し、オーダーを終了する。
In the case of SH-CNT ≦ -1 In this case, the H-CPU collects extra data of SH. It means that more R-CPUs own data in SH than the number of SHs that the H-CPU knows, which indicates that the H-CPU has failed to receive a response before. The H-CPU writes DIR = UNK to the DIR information 521-i, responds the AER to the L-CPU, and ends the order.
実施の形態の情報処理システムは、DIR情報に基づくSH数と実際にキャッシュにデータをSHで保持しているCPUの数とが矛盾している場合、DIR情報にDIR=UNKを書込むことで、DIR情報の変更を抑止し、キャッシュコヒーレンシの異常の波及を防ぐ。すなわち、上述の問題4が解決できる。
The information processing system according to the embodiment writes DIR = UNK to DIR information when the number of SH based on DIR information contradicts the number of CPUs actually holding data in the cache as SH. , DIR information changes to prevent the spread of cache coherency anomalies. That is, the
次に、CPU401−i−jがデータ要求元であるL−CPUである場合の処理を示す。 Next, processing in the case where the CPU 401 -i-j is an L-CPU that is a data request source is shown.
図8は、ローカルCPUの詳細な処理を示すフローチャートである。
ステップS801において、コア411−iは、あるアドレスに格納されたデータを要求し、アクセス制御部431−iは要求を受信する。
FIG. 8 is a flowchart showing detailed processing of the local CPU.
In step S801, the core 411-i requests data stored in a certain address, and the access control unit 431-i receives the request.
ステップS802において、TAG部432−iは、TAG情報に基づいて、要求されたデータ(要求データ)がキャッシュ421−iに格納されたかを判定する。キャッシュに要求データが421−iに格納された場合、制御はステップS815に進み、格納されていない場合、制御はステップS803に進む。 In step S802, the TAG unit 432-i determines whether the requested data (request data) is stored in the cache 421-i based on the TAG information. When the request data is stored in the cache in 421-i, the control proceeds to step S815. When the request data is not stored in the cache, the control proceeds to step S803.
ステップS803において、アクセス制御部431−iは、ノードマップ432−iに基づいて、要求データを格納するアドレスに対応するメモリを所有するCPU401−i−jを検出する。要求データを格納するアドレスに対応するメモリを自CPU401−i−jが所有していた場合、制御はステップS813に進み、要求データを格納するアドレスに対応するメモリを他のCPU401−i−j(H−CPU)が所有していた場合、制御はステップS804に進む。 In step S 803, the access control unit 431-i detects, based on the node map 432-i, the CPU 401-i-j that owns the memory corresponding to the address storing the request data. If the own CPU 401 -i-j owns the memory corresponding to the address storing the request data, the control proceeds to step S813 and the memory corresponding to the address storing the request data is stored in the other CPU 401 -ij ( If it is owned by the H-CPU, the control proceeds to step S804.
ステップS804において、リクエスト部451−iは、H−CPUに要求を送信し、タイマ452−i−kを2つ起動する。2つのタイマ452−i−kは、それぞれ第1の所定時間、および第1の所定時間より長い第2の所定時間で満了する。 In step S804, the request unit 451 -i transmits a request to the H-CPU, and starts two timers 452 -i-k. The two timers 452-ik each expire at a first predetermined time and a second predetermined time which is longer than the first predetermined time.
ステップS805において、リクエスト部451−iは、H−CPUに要求を送信してから第1の所定時間以内にH−CPUから応答を受信した場合、制御はステップS805に進み、H−CPUに要求を送信してから第1の所定時間以内にH−CPUから応答を受信しなかった(タイマ満了)場合、制御はステップS811に進む。 In step S805, if the request unit 451-i receives a response from the H-CPU within a first predetermined time after transmitting the request to the H-CPU, the control proceeds to step S805 to request the H-CPU If a response is not received from the H-CPU within a first predetermined time after the transmission of the timer (timer expiration), the control proceeds to step S811.
ステップS806において、DIR部434−iは、AER応答を受信したか判定する。AER応答を受信した場合、制御はステップS812に進み、AER応答を受信しない場合、制御はステップS807に進む。 In step S806, the DIR unit 434-i determines whether an AER response has been received. If an AER response has been received, control proceeds to step S812, and if no AER response is received, control proceeds to step S807.
ステップS807において、R−CPUからの要求データの転送(送信)がある場合、制御はステップS808に進み、R−CPUからの要求データの転送が無い場合、制御はステップS809に進む。尚、R−CPUからの要求データの転送が無い場合、アクセス制御部431−iは、H−CPUから要求データを受信している。 In step S807, if there is transfer (transmission) of request data from the R-CPU, control proceeds to step S808, and if there is no transfer of request data from the R-CPU, control proceeds to step S809. When there is no transfer of request data from the R-CPU, the access control unit 431-i receives the request data from the H-CPU.
ステップS808において、DIR部434−iは、H−CPUに要求を送信してから第2の所定時間以内にR−CPUから応答(要求データ)を受信したか判定する。H−CPUに要求を送信してから第2の所定時間以内にR−CPUから応答を受信した場合、制御はステップS809に進み、H−CPUに要求を送信してから第2の所定時間以内にR−CPUから応答を受信しない場合(タイマ満了)、制御はステップS810に進む。 In step S808, the DIR unit 434-i determines whether a response (request data) has been received from the R-CPU within a second predetermined time period since the request was sent to the H-CPU. If a response is received from the R-CPU within a second predetermined time after sending the request to the H-CPU, control proceeds to step S809 and within a second predetermined time after sending the request to the H-CPU If the response is not received from the R-CPU (timeout), the control proceeds to step S810.
ステップS809において、アクセス制御部431−iは、受信した要求データをキャッシュ421−iに格納する。 In step S 809, the access control unit 431-i stores the received request data in the cache 421-i.
ステップS810において、DIR部434−iは、タイムアウトと判定する。
ステップS811において、DIR部434−iは、タイムアウトと判定する。
In step S810, the DIR unit 434-i determines that a timeout has occurred.
In step S811, the DIR unit 434-i determines that a timeout has occurred.
ステップS812において、DIR部434−iは、コア411−iに受信した要求データの破棄を通知する。 In step S812, the DIR unit 434-i notifies the core 411-i of discarding of the received request data.
ステップS813において、アクセス制御部431−iは、メモリアクセス部441−iを介してメモリ501−i−jから要求データを読み出し、キャッシュ421−iに格納する。 In step S813, the access control unit 431-i reads out request data from the memory 501-i-j via the memory access unit 441-i, and stores the read request data in the cache 421-i.
ステップS814において、DIR部434−iは、DIR情報521−iを更新する。 In step S814, the DIR unit 434-i updates the DIR information 521-i.
ステップS815において、アクセス制御部431−iはコアに要求データを送信する。 In step S815, the access control unit 431 -i transmits request data to the core.
次に、CPU401−i−jがデータの実メモリを所有するH−CPUである場合の処理を示す。 Next, processing in the case where the CPU 401 -i-j is an H-CPU that owns a real memory of data is shown.
図9は、ホームCPUの詳細な処理を示すフローチャートである。
ステップS821において、リクエスト部451−iは、L−CPUから要求を受信する。
FIG. 9 is a flowchart showing the detailed processing of the home CPU.
In step S 821, the request unit 451-i receives a request from the L-CPU.
ステップS822において、L−CPUからの要求がデータ書き戻し要求である場合、制御はステップS823に進み、L−CPUからの要求がデータ書き戻し要求でない場合、制御はステップS828に進む。 In step S822, if the request from the L-CPU is a data write-back request, control proceeds to step S823, and if the request from the L-CPU is not a data write-back request, control proceeds to step S828.
ステップS823において、DIR部434−iは、DIR情報521−iに矛盾があるか判定する。DIR部434−iは、例えば、図6に示すようなパターンに該当するかによって、矛盾があるか判定する。 In step S823, the DIR unit 434-i determines whether there is a contradiction in the DIR information 521-i. The DIR unit 434-i determines, for example, whether there is a contradiction depending on whether the pattern corresponds to the pattern as shown in FIG.
ステップS824において、DIR情報521−iがすでにエラーマーク(DIR=UNK)である場合、制御はステップS842進み、エラーマーク(DIR=UNK)でない場合、制御はステップS825進む。 In step S824, if DIR information 521-i is already an error mark (DIR = UNK), control proceeds to step S842, and if it is not an error mark (DIR = UNK), control proceeds to step S825.
ステップS825において、DIR情報521−iがL−CPU:EX以外の場合 制御はステップS826に進み、DIR情報521−iがL−CPU:EXの場合、制御はステップS827に進む。 In step S825, when DIR information 521-i is other than L-CPU: EX, control proceeds to step S826, and when DIR information 521-i is L-CPU: EX, control proceeds to step S827.
ステップS826において、ホームCPUはFATALする。
ステップS827において、メモリアクセス部441は、データ511−iの更新を行う。
In step S826, the home CPU FATALs.
In step S827, the
ステップS828において、DIR部434−iは、DIR情報521−iに矛盾があるか判定する。 In step S828, the DIR unit 434-i determines whether there is a contradiction in the DIR information 521-i.
ステップS829において、DIR情報521−iがすでにエラーマーク(DIR=UNK)である場合、制御はステップS842進み、エラーマーク(DIR=UNK)でない場合、制御はステップS830進む。 In step S829, if DIR information 521-i is already an error mark (DIR = UNK), control proceeds to step S842, and if it is not an error mark (DIR = UNK), control proceeds to step S830.
ステップS830において、DIR情報521−iがL−CPU:SHであり、且つL−CPUからの要求がSH要求である場合、制御はステップS841に進み、DIR情報521−iがL−CPU:SHであり、且つL−CPUからの要求がSH要求(TAG情報をSHとしてデータを持ちたい要求)である以外の場合、制御はステップS831に進む。 In step S830, if DIR information 521-i is L-CPU: SH and the request from L-CPU is an SH request, control proceeds to step S841 and DIR information 521-i is L-CPU: SH If the request from the L-CPU is other than the SH request (request to hold data with TAG information as SH), the control proceeds to step S831.
ステップS831において、DIR情報521−iがL−CPU:EXであり、且つL−CPUからの要求がEX要求(TAG情報をEXとしてデータを持ちたい要求)である場合、制御はステップS841に進み、DIR情報521−iがL−CPU:EXであり、且つL−CPUからの要求がEX要求である以外の場合、制御はステップS832に進む。 In step S 831, if the DIR information 521-i is L-CPU: EX and the request from the L-CPU is an EX request (request to have data with TAG information as EX), control proceeds to step S 841. If the DIR information 521-i is L-CPU: EX and the request from the L-CPU is other than the EX request, the control proceeds to step S832.
ステップS832において、DIR部434−iは、DIR情報521−iに基づいて、データをキャッシュに格納している他のCPU(R−CPU)を検出する。データをキャッシュに格納している他のCPUがない場合、制御はステップS833に進み、データをキャッシュに格納している他のCPUがある場合、制御はステップS834に進む。 In step S832, the DIR unit 434-i detects another CPU (R-CPU) storing data in the cache based on the DIR information 521-i. If there is no other CPU storing data in the cache, control proceeds to step S833, and if there is another CPU storing data in the cache, control proceeds to step S834.
ステップS833において、メモリアクセス部441−iは、メモリ501−i−jからデータ511−iを読み出す。 In step S833, the memory access unit 441 -i reads the data 511 -i from the memory 501 -i-j.
ステップS834において、オーダー部461−iは、R−CPUに依頼を送信し、タイマ452−i−kを起動する。R−CPUへの依頼は、R−CPUのTAG情報をIVにする(キャッシュデータを破棄する)IV依頼(データ破棄依頼)や、L−CPUへのデータの転送依頼を含むIV依頼(データ返却依頼)等である。 In step S 834, the order unit 461-i transmits a request to the R-CPU, and starts the timer 452-i-k. Request to R-CPU sets TAG information of R-CPU to IV (discard cache data) IV request (discard data request) or IV request including data transfer request to L-CPU (data return Request, etc.
ステップS835において、DIR部811−iは、R−CPUに要求を送信してから第3の所定時間以内にR−CPUから応答を受信したか判定する。R−CPUに要求を送信してから第3の所定時間以内にR−CPUから応答を受信した場合、制御はステップS836に進み、R−CPUに要求を送信してから第3の所定時間以内にR−CPUから応答を受信しない場合(タイマ満了)、制御はステップS838に進む。 In step S 835, the DIR unit 811-i determines whether a response has been received from the R-CPU within a third predetermined time period since the request was sent to the R-CPU. If a response is received from the R-CPU within a third predetermined time after sending the request to the R-CPU, the control proceeds to step S836, and within a third predetermined time after sending the request to the R-CPU If the response is not received from the R-CPU (timeout), the control proceeds to step S838.
ステップS836において、DIR部811−iは、R−CPUから受信した応答がAER応答であるか判定する。R−CPUから受信した応答がAER応答である場合、制御はステップS841に進み、R−CPUから受信した応答がAER応答で無い場合、制御はステップS837に進む。 In step S 836, the DIR unit 811-i determines whether the response received from the R-CPU is an AER response. If the response received from the R-CPU is an AER response, control proceeds to step S841. If the response received from the R-CPU is not an AER response, control proceeds to step S837.
ステップS837において、CNT部435−iは、SH数が不足しているか(すなわち、すべてのSHのデータを回収できたか)判定する。SH数が不足している場合(すべてのSHのデータを回収できていない場合)、制御はステップS841に進み、SH数が不足していない場合、制御はステップS839に進む。 In step S837, the CNT unit 435-i determines whether the number of SH is insufficient (that is, can all data of SH be recovered). If the number of SH is insufficient (data of all SH can not be collected), the control proceeds to step S841. If the number of SH is not insufficient, the control proceeds to step S839.
ステップS838において、DIR部434−iは、タイムアウトを判定する。
ステップS839において、DIR部434−iは、L−CPUからの要求に基づいて、DIR情報521−iを更新する。
In step S838, the DIR unit 434-i determines timeout.
In step S839, the DIR unit 434-i updates the DIR information 521-i based on the request from the L-CPU.
ステップS840において、DIR部434−iは、L−CPUに応答する。
ステップS841において、DIR部434−iは、DIR情報521−iにエラーマーク(DIR=UNK)を書き込む。
In step S840, the DIR unit 434-i responds to the L-CPU.
In step S841, the DIR unit 434-i writes an error mark (DIR = UNK) in the DIR information 521-i.
ステップS842において、DIR部434−iは、L−CPUにAER応答を送信する。 In step S842, the DIR unit 434-i transmits an AER response to the L-CPU.
次に、CPU401−i−jがデータをキャッシュに格納していると判定されたR−CPUである場合の処理を示す。 Next, processing in the case where the CPU 401 -i-j is an R-CPU determined to store data in a cache will be described.
図10は、リモートCPUの詳細な処理を示すフローチャートである。
ステップS851において、オーダー部461−iは、H−CPUから依頼を受信する。
FIG. 10 is a flowchart showing the detailed processing of the remote CPU.
In step S851, the order unit 461-i receives the request from the H-CPU.
ステップS852において、H−CPUから受信した依頼が、データ返却依頼である場合、制御はステップS853に進み、データ返却依頼でない場合、制御はステップS859に進む。 In step S852, if the request received from the H-CPU is a data return request, control proceeds to step S853, and if it is not a data return request, control proceeds to step S859.
ステップS853において、TAG部433−iは、キャッシュ421−iにH−CPUからの依頼に対応するデータが格納されたか判定する。キャッシュ421−iにH−CPUからの依頼に対応するデータが格納された場合、制御はステップS854に進み、格納されていない場合、制御はステップS858に進む。 In step S853, the TAG unit 433-i determines whether data corresponding to the request from the H-CPU is stored in the cache 421-i. If data corresponding to the request from the H-CPU is stored in the cache 421-i, control proceeds to step S854, and if not stored, control proceeds to step S858.
ステップS854において、TAG部433−iは、キャッシュ421−iを更新する。すなわち、TAG部433−iは、キャッシュ421−iに格納されたH−CPUからの依頼に対応するデータをオーダー部461−iに送信し、キャッシュ421−iに格納されたデータを破棄、すなわち、当該データのステータスを変更する。 In step S854, the TAG unit 433-i updates the cache 421-i. That is, TAG unit 433-i transmits data corresponding to the request from the H-CPU stored in cache 421-i to ordering unit 461-i, and discards the data stored in cache 421-i, ie, , Change the status of the data.
ステップS855において、オーダー部461−iは、ステータスを変更したことを示す応答をH−CPUに送信する。さらに、オーダー部461−iは、H−CPUからの依頼に対応するデータをH−CPUに送信してもよい。
In
ステップS856において、オーダー部461−iがH−CPUからの依頼に対応するデータをL−CPUに送信する場合、制御はステップS857に進み、送信しない場合、処理は終了する。 In step S856, when the order unit 461 -i transmits data corresponding to the request from the H-CPU to the L-CPU, the control proceeds to step S857, and when not transmitted, the process ends.
ステップS857において、オーダー部461−iがH−CPUからの依頼に対応するデータをL−CPUに送信する。
In
ステップS858において、DIR部434−iは、H−CPUにAER応答を送信する。 In step S858, the DIR unit 434-i transmits an AER response to the H-CPU.
ステップS859において、H−CPUから受信した依頼は、データ破棄依頼である。
ステップS860において、TAG部433−iは、キャッシュ421−iにH−CPUからの依頼に対応するデータが格納されたか判定する。キャッシュ421−iにH−CPUからの依頼に対応するデータが格納された場合、制御はステップS861に進み、格納されていない場合、制御はステップS863に進む。
The request received from the H-CPU in step S859 is a data discarding request.
In step S860, the TAG unit 433-i determines whether data corresponding to the request from the H-CPU is stored in the cache 421-i. If data corresponding to the request from the H-CPU is stored in the cache 421-i, the control proceeds to step S861. If not, the control proceeds to step S863.
ステップS861において、TAG部433−iは、キャッシュ421−iを更新する。すなわち、TAG部433−iは、キャッシュ421−iに格納されたH−CPUからの依頼に対応するデータを破棄、すなわち、当該データのステータスを変更する。 In step S861, the TAG unit 433-i updates the cache 421-i. That is, the TAG unit 433-i discards data corresponding to the request from the H-CPU stored in the cache 421-i, that is, changes the status of the data.
ステップS862において、TAG部433−iは、H−CPUからの依頼に対応するデータを持っていたことを示すCNT=1を含む応答をH−CPUに送信する。 In step S 862, the TAG unit 433-i transmits, to the H-CPU, a response including CNT = 1 indicating that the data corresponding to the request from the H-CPU is included.
ステップS863において、TAG部433−iは、H−CPUからの依頼に対応するデータを持っていなかったことをCNT=0を含む応答をH−CPUに送信する。 In step S863, the TAG unit 433-i transmits a response including CNT = 0 to the H-CPU that there is no data corresponding to the request from the H-CPU.
図11は、実施の形態に係る情報処理システムの処理を示す図である。
上述の図8〜10の処理を簡略化して示すと図11のようになる。
FIG. 11 is a diagram illustrating processing of the information processing system according to the embodiment.
If the process of above-mentioned FIGS. 8-10 is simplified and shown, it will become like FIG.
L−CPUがデータ要求を生成し、H−CPUに送信する。L−CPUは、データ要求を送信とともに、H−CPUからの応答を検出するL−Hタイマ、R−CPUからの応答を検出するR−Lタイマを起動する。 The L-CPU generates a data request and sends it to the H-CPU. The L-CPU transmits a data request and starts an L-H timer that detects a response from the H-CPU and an R-L timer that detects a response from the R-CPU.
H−CPUは、データ要求を受信するとREQ−ODRタイマを起動し、データ要求を受信してから依頼を発行するまでの時間をカウントする。H−CPUは、依頼(オーダー)を生成し、R−CPUに送信する。また、H−CPUは、依頼の送信とともに、R−CPUからの応答を検出するH−Rタイマを起動する。REQ−ODRタイマまたはH−Rタイマがタイムアウトした場合、DIR情報521−iをDIR=UNKにする。 When receiving the data request, the H-CPU starts the REQ-ODR timer, and counts the time from the reception of the data request to the issuance of the request. The H-CPU generates a request (order) and sends it to the R-CPU. The H-CPU also starts an H-R timer that detects a response from the R-CPU as well as sending a request. When the REQ-ODR timer or the HR timer has timed out, the DIR information 521-i is set to DIR = UNK.
R−CPUは、H−CPUからの依頼と自身のTAG情報に基づいて、DIR情報に矛盾が無いか判定する。R−CPUは、DIR情報に矛盾が無ければ、正常な応答を生成しH−CPUに送信する。また、L−CPUにデータの送信が必要であれば、L−CPUにデータを送信する(三角転送)。R−CPUは、DIR情報に矛盾があれば、AER応答をH−CPUに送信する。 The R-CPU determines, based on the request from the H-CPU and its own TAG information, whether or not the DIR information is consistent. If there is no contradiction in the DIR information, the R-CPU generates a normal response and sends it to the H-CPU. If it is necessary to transmit data to the L-CPU, the data is transmitted to the L-CPU (triangular transfer). The R-CPU sends an AER response to the H-CPU if there is any contradiction in DIR information.
H−CPUは、R−CPUからの応答とステート(DIR情報およびSH数に基づいて、L−CPUへの応答を生成し、L−CPUに送信する。 The H-CPU generates a response to the L-CPU based on the response from the R-CPU and the state (DIR information and the number of SHs, and transmits the response to the L-CPU.
実施の形態に係る情報処理システムによれば、上述の問題1〜4が発生しても、キャッシュコヒーレンシの異常が波及し、システムがダウンしてしまうのを防ぐことが出来る。
According to the information processing system according to the embodiment, even if the
また、情報処理システム101は、あらかじめ情報処理システム101のハードウェアまたはソフトウェアが参照できる場所に、故障ノードを示す情報を登録しておき、CPU402−iーjがアクセスする際にアクセス先が故障ノードであったら、DIR情報521−iにDIR=UNKを書いてもよい。
In addition, the
情報処理システム101は、H−CPUの依頼がタイムアウトしたらDIR情報521−iにDIR=UNKを書き込んでいるが、エントリがつまって依頼を発行できない場合に備えて別途タイマを用意し、エントリを解放できていない依頼の宛先を故障ノードであるとしてDIR情報521−iにDIR=UNKを書いてもよい。また、このとき上記の故障ノードの登録を行ってもよい。
The
アクセス制御部431−iは、ある範囲内でDIR=UNKを複数検出したら等の条件を用いて、故障メモリアドレスを示すDIR情報521−iのDIR=UNKだけでなく、故障DIMM、故障CPU、または故障ノードを示すエラーマークを設定する等、エラーマークする単位を昇格させてもよい。また、そのときにはDIR情報521−iがDIR=UNKの場合と同様のリカバリができるようにしておいてもよい。これにより、タイムアウト待ちやリカバリにかかる時間を節約でき、性能を向上できる。 The access control unit 431-i uses not only the DIR = UNK of the DIR information 521-i indicating the faulty memory address but also the faulty DIMM, the faulty CPU, and the like by using a condition such as when a plurality of DIR = UNK are detected within a certain range. Alternatively, the unit to be marked with an error may be promoted, such as setting an error mark indicating a faulty node. At that time, the same recovery as in the case where DIR information 521-i is DIR = UNK may be made possible. This saves time for waiting for timeout and recovery, and improves performance.
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
複数の演算処理装置と、前記複数の演算処理装置のそれぞれが接続する複数のメモリと、を有し、前記複数のメモリの共有領域が前記複数の演算処理装置で共有される情報処理装置において、
前記複数の演算処理装置のうち、第1の演算処理装置は、第2の演算処理装置にデータの要求を送信する第1の制御部を備え、
前記第2の演算処理装置は、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信する第2の制御部を備え、
前記第3の演算処理装置は、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信する第3の制御部を備え、
前記第2の制御部は、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の制御部は、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄することを特徴とする情報処理装置。
(付記2)
前記第2の制御部は、前記第3の演算処理装置に前記データの要求を送信してから前記所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記データのディレクトリ情報を前記データに対するアクセスを禁止するエラーマークにする付記1記載の情報処理装置。
(付記3)
前記第3の制御部は、前記依頼を受信したときに、前記第3の演算処理装置が前記データを保持していない場合、前記第2の演算処理装置にエラー応答を送信することを特徴とする付記1または2記載の情報処理装置。
(付記4)
前記第2の制御部は、前記データのキャッシュからの破棄を含む依頼を前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置に送信し、
前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置それぞれは、前記データを前記キャッシュに保持していた場合に、前記データを破棄し、前記第2の制御部に前記データを破棄したことを示す応答を送信し、
前記第2の制御部は、前記ディレクトリ情報に基づく前記データを破棄したことを示す応答の数の期待値と、受信した前記データを破棄したことを示す応答の数とが一致しない場合に、前記データのディレクトリ情報を前記エラーマークにすることを特徴とする付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
複数の演算処理装置と、前記複数の演算処理装置のそれぞれが接続する複数のメモリと、を有し、前記複数のメモリの共有領域が前記複数の演算処理装置で共有される情報処理装置の制御方法において、
前記複数の演算処理装置のうち、第1の演算処理装置が、第2の演算処理装置にデータの要求を送信し、
前記第2の演算処理装置が、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信し、
前記第3の演算処理装置が、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信し、
前記第2の演算処理装置が、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の演算処理装置が、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄する
処理を備える制御方法。
制御方法。
(付記6)
前記第2の演算処理装置が、前記第3の演算処理装置に前記データの要求を送信してから前記所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記データのディレクトリ情報を前記データに対するアクセスを禁止するエラーマークにする付記5記載の制御方法。
(付記7)
前記第3の演算処理装置が、前記依頼を受信したときに、前記第3の演算処理装置が前記データを保持していない場合、前記第2の演算処理装置にエラー応答を送信することを特徴とする付記5または6記載の制御方法。
(付記8)
前記第2の演算処理装置が、前記データのキャッシュからの破棄を含む依頼を前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置に送信し、
前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置それぞれが、前記データを前記キャッシュに保持していた場合に、前記データを破棄し、前記第2の演算処理装置に前記データを破棄したことを示す応答を送信し、
前記第2の演算処理装置が、前記ディレクトリ情報に基づく前記データを破棄したことを示す応答の数の期待値と、受信した前記データを破棄したことを示す応答の数とが一致しない場合に、前記データのディレクトリ情報を前記エラーマークにすることを特徴とする付記5乃至7のいずれか1項に記載の制御方法。
Further, the following appendices will be disclosed regarding the above embodiment.
(Supplementary Note 1)
In an information processing apparatus, comprising: a plurality of arithmetic processing units; and a plurality of memories to which each of the plurality of arithmetic processing units is connected, wherein shared areas of the plurality of memories are shared by the plurality of arithmetic processing units.
Among the plurality of processing units, the first processing unit includes a first control unit that transmits a request for data to the second processing unit,
When the second arithmetic processing unit receives the request from the first arithmetic unit, the second arithmetic processing unit caches the data based on directory information indicating the arithmetic processing unit that holds the data and the state of the data. A second method detects a third processing unit to be held, and transmits a request including transfer of the data to the first processing unit and discarding of the data from the cache to the third processing unit. Control unit, and
The third arithmetic processing unit receives the request, transmits the data to the first arithmetic processing unit, changes the status of the data, and transmits a status change response indicating that the status has been changed. A third control unit for transmitting data to the second processing unit;
When the second control unit does not receive the status change response from the third arithmetic processing unit within a predetermined time after transmitting the request to the third arithmetic processing unit, the first operation is performed. Send an error response to the processing unit,
An information processing apparatus characterized in that the first control unit discards the data received from the third arithmetic processing unit when the error response is received.
(Supplementary Note 2)
When the second control unit does not receive the status change response from the third arithmetic processing unit within the predetermined time after transmitting the data request to the third arithmetic processing unit, the data The information processing apparatus according to
(Supplementary Note 3)
The third control unit transmits an error response to the second arithmetic processing unit when the third arithmetic processing unit does not hold the data when the request is received. The information processing apparatus according to
(Supplementary Note 4)
The second control unit transmits a request including discarding of the data from the cache to the plurality of processing units excluding the first processing unit and the second processing unit.
Each of the plurality of arithmetic processing units except the first arithmetic processing unit and the second arithmetic processing unit discards the data when the data is held in the cache, and the second control Send a response indicating that the data has been discarded to the
The second control unit is configured such that the expected value of the number of responses indicating that the data is discarded based on the directory information does not match the number of responses indicating that the received data is discarded. The information processing apparatus according to any one of
(Supplementary Note 5)
Control of an information processing apparatus including: a plurality of arithmetic processing units; and a plurality of memories to which each of the plurality of arithmetic processing units is connected, wherein shared areas of the plurality of memories are shared by the plurality of arithmetic processing units In the method
Among the plurality of processing units, a first processing unit transmits a data request to a second processing unit,
When the second arithmetic processing unit receives the request from the first arithmetic unit, the data is stored in the cache based on directory information indicating the arithmetic processing unit that holds the data and the state of the data. Detecting a third processing unit to be held, and sending a request including transfer of the data to the first processing unit and discarding of the data from the cache to the third processing unit;
The third arithmetic processing unit receives the request, transmits the data to the first arithmetic processing unit, changes the status of the data, and transmits a status change response indicating that the status has been changed. Send to the second processing unit,
If the second arithmetic processing unit does not receive the status change response from the third arithmetic processing unit within a predetermined time after transmitting the request to the third arithmetic processing unit, the first processing Send an error response to the processing unit,
A control method, comprising: a process of discarding the data received from the third arithmetic processing unit when the first arithmetic processing unit receives the error response.
Control method.
(Supplementary Note 6)
When the second arithmetic processing unit does not receive the status change response from the third arithmetic processing unit within the predetermined time after transmitting the data request to the third arithmetic processing unit, The control method according to
(Appendix 7)
When the third arithmetic processing unit receives the request, the third arithmetic processing unit transmits an error response to the second arithmetic processing unit when the third arithmetic processing unit does not hold the data. The control method according to
(Supplementary Note 8)
The second arithmetic processing unit transmits a request including discarding the data from the cache to the plurality of arithmetic processing units excluding the first arithmetic processing unit and the second arithmetic processing unit;
When each of the plurality of processing units except the first processing unit and the second processing unit holds the data in the cache, the data is discarded, and the second processing is performed. Sending a response to the processing device indicating that the data has been discarded;
If the expected value of the number of responses indicating that the second processing unit has discarded the data based on the directory information does not match the number of responses indicating that the received data has been discarded. The control method according to any one of
101 情報処理システム
201 ビルディングブロック(BB)
301 クロスバスイッチ(XB)
401 CPU
411 コア
421 キャッシュ
431 アクセス制御部
441 メモリアクセス部
451 リクエスト部
452 タイマ
461 オーダー部
462 タイマ
471 外部インタフェース(IF)
501 メモリ
511 データ
521 ディレクトリ(DIR)情報
601 XBチップ
101
301 Crossbar Switch (XB)
401 CPU
411 core 421
501
Claims (5)
前記複数の演算処理装置のうち、第1の演算処理装置は、第2の演算処理装置にデータの要求を送信する第1の制御部を備え、
前記第2の演算処理装置は、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信する第2の制御部を備え、
前記第3の演算処理装置は、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信する第3の制御部を備え、
前記第2の制御部は、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の制御部は、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄することを特徴とする情報処理装置。 In an information processing apparatus, comprising: a plurality of arithmetic processing units; and a plurality of memories to which each of the plurality of arithmetic processing units is connected, wherein shared areas of the plurality of memories are shared by the plurality of arithmetic processing units.
Among the plurality of processing units, the first processing unit includes a first control unit that transmits a request for data to the second processing unit,
When the second arithmetic processing unit receives the request from the first arithmetic unit, the second arithmetic processing unit caches the data based on directory information indicating the arithmetic processing unit that holds the data and the state of the data. A second method detects a third processing unit to be held, and transmits a request including transfer of the data to the first processing unit and discarding of the data from the cache to the third processing unit. Control unit, and
The third arithmetic processing unit receives the request, transmits the data to the first arithmetic processing unit, changes the status of the data, and transmits a status change response indicating that the status has been changed. A third control unit for transmitting data to the second processing unit;
When the second control unit does not receive the status change response from the third arithmetic processing unit within a predetermined time after transmitting the request to the third arithmetic processing unit, the first operation is performed. Send an error response to the processing unit,
An information processing apparatus characterized in that the first control unit discards the data received from the third arithmetic processing unit when the error response is received.
前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置それぞれは、前記データを前記キャッシュに保持していた場合に、前記データを破棄し、前記第2の制御部に前記データを破棄したことを示す応答を送信し、
前記第2の制御部は、前記ディレクトリ情報に基づく前記データを破棄したことを示す応答の数の期待値と、受信した前記データを破棄したことを示す応答の数とが一致しない場合に、前記データのディレクトリ情報を前記エラーマークにすることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 The second control unit transmits a request including discarding of the data from the cache to the plurality of processing units excluding the first processing unit and the second processing unit.
Each of the plurality of arithmetic processing units except the first arithmetic processing unit and the second arithmetic processing unit discards the data when the data is held in the cache, and the second control Send a response indicating that the data has been discarded to the
The second control unit is configured such that the expected value of the number of responses indicating that the data is discarded based on the directory information does not match the number of responses indicating that the received data is discarded. The information processing apparatus according to any one of claims 1 to 3, wherein directory information of data is used as the error mark.
前記複数の演算処理装置のうち、第1の演算処理装置が、第2の演算処理装置にデータの要求を送信し、
前記第2の演算処理装置が、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し(、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信し、
前記第3の演算処理装置が、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信し、
前記第2の演算処理装置が、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の演算処理装置が、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄する
処理を備える制御方法。 Control of an information processing apparatus including: a plurality of arithmetic processing units; and a plurality of memories to which each of the plurality of arithmetic processing units is connected, wherein shared areas of the plurality of memories are shared by the plurality of arithmetic processing units In the method
Among the plurality of processing units, a first processing unit transmits a data request to a second processing unit,
When the second arithmetic processing unit receives the request from the first arithmetic unit, the data is stored in the cache based on directory information indicating the arithmetic processing unit that holds the data and the state of the data. Detecting a third processing unit to be held (transmitting a request including transfer of the data to the first processing unit and discarding of the data from the cache to the third processing unit;
The third arithmetic processing unit receives the request, transmits the data to the first arithmetic processing unit, changes the status of the data, and transmits a status change response indicating that the status has been changed. Send to the second processing unit,
If the second arithmetic processing unit does not receive the status change response from the third arithmetic processing unit within a predetermined time after transmitting the request to the third arithmetic processing unit, the first processing Send an error response to the processing unit,
A control method, comprising: a process of discarding the data received from the third arithmetic processing unit when the first arithmetic processing unit receives the error response.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016012845A JP6520733B2 (en) | 2016-01-26 | 2016-01-26 | Information processing apparatus and control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016012845A JP6520733B2 (en) | 2016-01-26 | 2016-01-26 | Information processing apparatus and control method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2017134540A JP2017134540A (en) | 2017-08-03 |
| JP6520733B2 true JP6520733B2 (en) | 2019-05-29 |
Family
ID=59504374
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016012845A Expired - Fee Related JP6520733B2 (en) | 2016-01-26 | 2016-01-26 | Information processing apparatus and control method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6520733B2 (en) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4572169B2 (en) * | 2006-01-26 | 2010-10-27 | エヌイーシーコンピュータテクノ株式会社 | Multiprocessor system and operation method thereof |
| JP5590022B2 (en) * | 2011-12-28 | 2014-09-17 | 富士通株式会社 | Information processing apparatus, control method, and control program |
-
2016
- 2016-01-26 JP JP2016012845A patent/JP6520733B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2017134540A (en) | 2017-08-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0801349B1 (en) | Deterministic distributed multicache coherence protocol | |
| JP3661761B2 (en) | Non-uniform memory access (NUMA) data processing system with shared intervention support | |
| JP3644587B2 (en) | Non-uniform memory access (NUMA) data processing system with shared intervention support | |
| JP5614419B2 (en) | Information processing apparatus, control method, and control program | |
| US7856534B2 (en) | Transaction references for requests in a multi-processor network | |
| JP4712974B2 (en) | Flexible probe / probe response path control for coherency maintenance | |
| KR101529036B1 (en) | Support for speculative ownership without data | |
| JP5550089B2 (en) | Multiprocessor system, node controller, failure recovery method | |
| KR102092660B1 (en) | Cpu and multi-cpu system management method | |
| US10802969B2 (en) | Interconnect and method of operation of such an interconnect | |
| US20140297963A1 (en) | Processing device | |
| US7159079B2 (en) | Multiprocessor system | |
| CN107077429B (en) | Data reading method, device and system | |
| JP4409619B2 (en) | Information processing apparatus, control apparatus, and control method | |
| JP6520733B2 (en) | Information processing apparatus and control method | |
| JP6984148B2 (en) | Computer system and cache coherence method | |
| US20210397560A1 (en) | Cache stashing system | |
| US10775870B2 (en) | System and method for maintaining cache coherency | |
| JP6631317B2 (en) | Arithmetic processing device, information processing device, and control method for information processing device | |
| CN110098945B (en) | Data processing method and device applied to node system | |
| JP6570873B2 (en) | Speculative query on main memory of multiprocessor system | |
| JP2018129041A (en) | Transfer of response to snoop request | |
| EP2839380B1 (en) | Broadcast cache coherence on partially-ordered network | |
| JP6658299B2 (en) | Information processing apparatus and information processing apparatus control method | |
| US8972635B2 (en) | Processor and information processing apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180912 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190227 |
|
| 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: 20190402 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190415 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6520733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |