JP2013206247A - System controller, information processor, and control method of system controller - Google Patents

System controller, information processor, and control method of system controller Download PDF

Info

Publication number
JP2013206247A
JP2013206247A JP2012075889A JP2012075889A JP2013206247A JP 2013206247 A JP2013206247 A JP 2013206247A JP 2012075889 A JP2012075889 A JP 2012075889A JP 2012075889 A JP2012075889 A JP 2012075889A JP 2013206247 A JP2013206247 A JP 2013206247A
Authority
JP
Japan
Prior art keywords
request
response
holding unit
queue
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.)
Pending
Application number
JP2012075889A
Other languages
Japanese (ja)
Inventor
Tetsushi Nakagawa
哲志 中川
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 JP2012075889A priority Critical patent/JP2013206247A/en
Priority to US13/736,119 priority patent/US20130262797A1/en
Publication of JP2013206247A publication Critical patent/JP2013206247A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

Abstract

PROBLEM TO BE SOLVED: To prevent a deterioration in performance in a system controller adopting a system for transmitting a response packet prior to a request packet.SOLUTION: A system controller 2 connected to a plurality of arithmetic processing units 1 has: a request holding part 8 for storing a request from a first arithmetic processing unit 1 among the plurality of arithmetic processing units 1; a response holding part 11 for storing a response to a second arithmetic processing unit 1 among the plurality of arithmetic processing units 1 corresponding to the request from the first arithmetic processing unit 1; and an arbitration part 12 for outputting a response prior to a request when the response holding part 11 has already held the response in the case that the request is stored in the request holding part 8, and outputting the request prior to the response when the response has not been held in the response holding part 11 yet in the case that the request is stored in the request holding part 8.

Description

本件は、システム制御装置、情報処理装置及びシステム制御装置の制御方法に関する。   This case relates to a system control apparatus, an information processing apparatus, and a control method for the system control apparatus.

SMP(Symmetrical Multi Processor)等のメモリ共有マルチプロセッサシステムにおいては、プロセッサとメモリ間、或いは、複数プロセッサ間でデータの転送が行なわれる。このようなシステムでは、各プロセッサがそれぞれデータを更新する。このため、データに矛盾が生じないように、システムコントローラ(System Controller:SC)によって、各プロセッサのキャッシュを監視して、複数のプロセッサによるデータの処理の順序を制御する必要がある。   In a memory sharing multiprocessor system such as SMP (Symmetrical Multi Processor), data is transferred between a processor and a memory or between a plurality of processors. In such a system, each processor updates data. For this reason, it is necessary to control the order of data processing by a plurality of processors by monitoring the cache of each processor by a system controller (SC) so that no contradiction occurs in the data.

プロセッサは、データを例えばパケット単位で扱う。このようなパケットには主に、プロセッサが新たに発行する要求パケット(メモリフェッチ等)と、他のプロセッサからの要求に対する応答パケット(メモリストア、プロセッサ間のデータ転送等)との少なくとも2種類ある。
一般に、SCは、プロセッサからの要求パケットを受け取り、異なるプロセッサ間の要求を、優先順位を付けて選択(この処理を「調停」と呼ぶ)する調停回路を備える。この調停回路は、複数のプロセッサがそれぞれ出力する複数の要求を調停して、各プロセッサのキャッシュステータスを検索するためのスヌープパイプラインに投入する。そして、SCは、要求パケットに対して、スヌープ結果に応じて、メモリにアクセスするか(キャッシュミスの場合)、キャッシュヒットした場合には、そのプロセッサに対してオーダーを発行する。
The processor handles data in units of packets, for example. Such packets mainly include at least two types of request packets (memory fetch, etc.) newly issued by the processor and response packets (memory store, data transfer between processors, etc.) for requests from other processors. .
In general, the SC includes an arbitration circuit that receives a request packet from a processor and selects requests between different processors with priority (this process is referred to as “arbitration”). The arbitration circuit arbitrates a plurality of requests output from a plurality of processors, and inputs the requests to a snoop pipeline for searching the cache status of each processor. Then, the SC accesses the memory in response to the snoop result for the request packet (in the case of a cache miss), or issues an order to the processor when a cache hit occurs.

一部のシステムアーキテクチャでは、キャッシュ間のデータのコヒーレンシを保障するために、要求パケットが応答パケットを追い越してはならないという制約を課している。この制約は、SC内に設けられた、送出パケットを選択する調停回路が、常に要求パケットよりも応答パケットを優先することにより実現される。
ここで、このような従来のSC102が適用される情報処理装置としての情報処理システム200のハードウェア構成の例を説明する。
Some system architectures impose a constraint that a request packet must not overtake a response packet to ensure coherency of data between caches. This restriction is realized by the arbitration circuit provided in the SC that selects the transmission packet always giving priority to the response packet over the request packet.
Here, an example of a hardware configuration of an information processing system 200 as an information processing apparatus to which such a conventional SC 102 is applied will be described.

図6は、従来のSC102が適用される情報処理システム200のハードウェア構成の例を模式的に示す図である。
情報処理システム200は、1以上の演算処理装置としてのCPU(Central Processing Unit)101−1〜101−n(nは1以上の整数)、SC102、入出力ユニット(Input/Output Unit:IO)103、メモリアクセスコントローラ(Memory Access Controller:MAC)104、及び1以上のDRAM(Dynamic Random Access Memory)105−1〜105−m(mは1以上の整数)を備える。
FIG. 6 is a diagram schematically illustrating an example of a hardware configuration of an information processing system 200 to which the conventional SC 102 is applied.
The information processing system 200 includes a CPU (Central Processing Unit) 101-1 to 101-n (n is an integer of 1 or more), an SC 102, and an input / output unit (IO) 103 as one or more arithmetic processing devices. A memory access controller (MAC) 104 and one or more DRAMs (Dynamic Random Access Memory) 105-1 to 105-m (m is an integer of 1 or more).

CPU101−1〜101−nは、DRAM105−1〜105−m等から不図示のプログラムや、不図示のストレージからOS(Operating System)等を読み出し、各種処理を実行するプロセッサである。
SC102は、CPU101−1〜101−n、IO103、及びMAC104とバスで接続されており、1つのシステムボード(System Board:SB)に組み込まれている。また、SC102には、不図示の他のSBとの接続用のバスも存在する。
The CPUs 101-1 to 101-n are processors that read out a program (not shown) from the DRAMs 105-1 to 105-m and the like, and an OS (Operating System) from a storage (not shown) to execute various processes.
The SC 102 is connected to the CPUs 101-1 to 101-n, the IO 103, and the MAC 104 via a bus, and is incorporated in one system board (SB). The SC 102 also has a bus for connection with another SB (not shown).

IO103は、情報処理システム200と外部との接続に使用される入出力インタフェースであり、例えばネットワークインタフェースボードやSCSI(Small Computer Systems Interface)カードなどである。
MAC104は、SC102と間でDRAM105−1〜105−mに対するアクセスを制御するコントローラである。
The IO 103 is an input / output interface used for connection between the information processing system 200 and the outside, such as a network interface board or a SCSI (Small Computer Systems Interface) card.
The MAC 104 is a controller that controls access to the DRAMs 105-1 to 105-m with the SC 102.

DRAM105−1〜105−mは、CPU101−1〜101−nが演算や制御を行なうに際して、種々のデータやプログラムを格納する記憶領域である。
なお、以下、CPUを示す符号としては、複数のCPUのうち1つを特定する必要があるときには符号101−1〜101−nを用いるが、任意のCPUを指すときには符号101を用いる。
The DRAMs 105-1 to 105-m are storage areas for storing various data and programs when the CPUs 101-1 to 101-n perform calculation and control.
Hereinafter, as reference numerals indicating CPUs, reference numerals 101-1 to 101-n are used when one of a plurality of CPUs needs to be specified, but reference numeral 101 is used to indicate an arbitrary CPU.

また、DRAMを示す符号としては、複数のDRAMのうち1つを特定する必要があるときには符号105−1〜105−mを用いるが、任意のDRAMを指すときには符号105を用いる。
このような構成の情報処理システム200において、例えば、CPU101の1つがSC102に対して要求パケットを発行する。
Moreover, as a code | symbol which shows DRAM, the code | symbol 105-1 -105-m is used when it is necessary to specify one of several DRAM, but the code | symbol 105 is used when pointing out arbitrary DRAMs.
In the information processing system 200 having such a configuration, for example, one of the CPUs 101 issues a request packet to the SC 102.

SC102は、要求されたデータが、他のCPU101の不図示のキャッシュに存在するかどうかをスヌープする。要求データが他のCPU101のキャッシュに存在する(すなわちヒット)場合、SC102は、データを有するキャッシュのCPU101に対してオーダーを発行する。
一方、要求データが他のCPU101のキャッシュに存在しない(すなわちヒットしない)場合、SC102は、MAC104にメモリ要求を送る。
The SC 102 snoops whether the requested data exists in a cache (not shown) of another CPU 101. If the requested data exists in the cache of another CPU 101 (that is, hit), the SC 102 issues an order to the CPU 101 of the cache having the data.
On the other hand, when the request data does not exist in the cache of another CPU 101 (that is, does not hit), the SC 102 sends a memory request to the MAC 104.

SC102は、オーダーを発行した先のCPU101、又はメモリ要求を発行した先のMAC4から応答パケットを受信すると、その応答パケットを、要求パケットを発行したCPU101に転送する。
図7は、従来の情報処理システム200におけるSC102の構成例を模式的に示す図である。
When receiving a response packet from the CPU 101 that issued the order or the MAC 4 that issued the memory request, the SC 102 transfers the response packet to the CPU 101 that issued the request packet.
FIG. 7 is a diagram schematically illustrating a configuration example of the SC 102 in the conventional information processing system 200.

SC102は、要求キュー(Request Queue:RQQ)部130、応答キュー(Return Queue:RTNQ)部140、調停回路(PRIO)112、要求用資源使用カウンタ(RQ用USED−CT)113、及び応答用資源使用カウンタ(RTN用USED−CT)114を備える。
要求キュー部130は、要求キューを処理する部分であり、要求キュー用ライトポインタ(Write Pointer:WTPT)106、要求キュー用リードポインタ(Read Pointer:RDPT)107、及び要求キュー108を有する。
The SC 102 includes a request queue (RQQ) unit 130, a response queue (Return Queue: RTNQ) unit 140, an arbitration circuit (PRIO) 112, a request resource use counter (USED-CT for RQ) 113, and a response resource. A usage counter (USED-CT for RTN) 114 is provided.
The request queue unit 130 is a part that processes the request queue, and includes a request queue write pointer (Write Pointer: WTPT) 106, a request queue read pointer (Read Pointer: RDPT) 107, and a request queue 108.

要求キュー108は、8つのエントリ108−0〜108−7を有する先入先出し(First In First Out:FIFO)キューであり、CPU101やIO103から受信した要求パケットを格納する。
なお、以下、要求キューを示す符号としては、要求キューのエントリのうちの1つを特定する必要があるときには符号108−0〜108−7を用いるが、要求キューの任意のエントリを指すとき、或いは要求キュー全体を指すときには符号108を用いる。
The request queue 108 is a first-in first-out (FIFO) queue having eight entries 108-0 to 108-7, and stores request packets received from the CPU 101 and the IO 103.
Hereinafter, as a code indicating the request queue, the code 108-0 to 108-7 is used when it is necessary to specify one of the entries of the request queue, but when indicating any entry of the request queue, Alternatively, reference numeral 108 is used to indicate the entire request queue.

要求キュー用ライトポインタ106は、CPU101やIO103から受信した要求パケットを、要求キュー108のエントリ108−0〜108−7のいずれに書き込むかを示すポインタである。
要求キュー用リードポインタ107は、要求キュー108のエントリ108−0〜108−7のうちのいずれから要求パケットを読み出すかを示すポインタである。
The request queue write pointer 106 is a pointer indicating to which of the entries 108-0 to 108-7 of the request queue 108 the request packet received from the CPU 101 or the IO 103 is to be written.
The request queue read pointer 107 is a pointer indicating from which of the entries 108-0 to 108-7 of the request queue 108 the request packet is read.

応答キュー部140は、応答キューを処理する部分であり、応答キュー用ライトポインタ109、応答キュー用リードポインタ110、及び応答キュー111を有する。
応答キュー111は、8つのエントリ111−0〜111−7を有するFIFOキューであり、CPU101やIO103、MAC104から受信した応答パケットを格納する。
The response queue unit 140 is a part that processes the response queue, and includes a response queue write pointer 109, a response queue read pointer 110, and a response queue 111.
The response queue 111 is a FIFO queue having eight entries 111-0 to 111-7, and stores response packets received from the CPU 101, the IO 103, and the MAC 104.

なお、以下、応答キューを示す符号としては、応答キューのエントリのうちの1つを特定する必要があるときには符号111−0〜111−7を用いるが、応答キューの任意のエントリを指すとき、或いは応答キュー全体を指すときには符号111を用いる。
応答キュー用ライトポインタ109は、CPU101やIO103、MAC104から受信した応答パケットを、応答キュー111のエントリ111−0〜111−7のうちのいずれに書き込むかを示すポインタである。
Hereinafter, as a code indicating the response queue, the code 111-0 to 111-7 is used when it is necessary to specify one of the entries in the response queue, but when indicating any entry in the response queue, Alternatively, reference numeral 111 is used to indicate the entire response queue.
The response queue write pointer 109 is a pointer indicating to which of the entries 111-0 to 111-7 of the response queue 111 the response packet received from the CPU 101, the IO 103, or the MAC 104 is to be written.

応答キュー用リードポインタ110は、応答キュー111のエントリ111−0〜111−7のうちのいずれから応答パケットを読み出すかを示すポインタである。
調停回路112は、SC102から送出されるパケットを、要求キュー部130と応答キュー部140との間で調停する回路である。つまり、調停回路112は、要求パケットと応答パケットのどちらを選択するかを制御する回路である。調停回路112は、要求キュー部130と応答キュー部140との両方から調停参加信号(不図示)を受け取り、両者の調停参加要求が競合した場合は、必ず、応答キュー部140を優先して選択する。このため、たとえ応答パケットの宛先資源がビジーであり、応答パケットを送出できない場合であっても、要求パケットが送出されることはない。
The response queue read pointer 110 is a pointer indicating from which of the entries 111-0 to 111-7 of the response queue 111 the response packet is read.
The arbitration circuit 112 is a circuit that arbitrates a packet transmitted from the SC 102 between the request queue unit 130 and the response queue unit 140. That is, the arbitration circuit 112 is a circuit that controls whether a request packet or a response packet is selected. The arbitration circuit 112 receives an arbitration participation signal (not shown) from both the request queue unit 130 and the response queue unit 140, and when both arbitration participation requests compete, the arbitration circuit 112 always selects the response queue unit 140 with priority. To do. For this reason, even if the destination resource of the response packet is busy and the response packet cannot be transmitted, the request packet is not transmitted.

上記のごとき、無条件で応答パケットを優先する情報処理システム200では、応答パケットが大量に発生すると、要求パケットが長時間、調停回路112で選択されずに要求キュー108で待たされてしまう。
その間、要求パケットの処理回路は動作せず、この結果、情報処理システム200の処理性能が低下する。
In the information processing system 200 that prioritizes response packets unconditionally as described above, if a large number of response packets are generated, the request packets are waited in the request queue 108 without being selected by the arbitration circuit 112 for a long time.
Meanwhile, the request packet processing circuit does not operate, and as a result, the processing performance of the information processing system 200 decreases.

このような問題を解決する手法として、要求パケットが一定時間待たされた場合、その要求パケットを応答パケットよりも優先させる手法がある。
しかし、この手法では、応答パケットと要求パケット間の順序が正しく維持されることを保障することができない。
このような問題を解決するための手法がいくつか存在し、例えば、特許文献1に記載の構成がある。
As a technique for solving such a problem, there is a technique for giving priority to a request packet over a response packet when the request packet waits for a certain period of time.
However, this method cannot guarantee that the order between the response packet and the request packet is correctly maintained.
There are several methods for solving such a problem. For example, there is a configuration described in Patent Document 1.

特開平8−249295号公報JP-A-8-249295

しかし、特許文献1の構成においては、例えば、キューのエントリ数をNとすると、制御に必要なFF(フリップフロップ)のビット数が、N(1+logN)となる。このとき、FFのビット数は、N=8の場合N(1+logN)=32ビット、N=64の場合N(1+logN)=448ビットとなり、フリップフロップのビット数が増える場合、ビット数の増加する以上に回路の規模が大きくなる。また、キューのエントリ数分の比較回路が大量に必要となり、回路が複雑化してしまう。 However, in the configuration of Patent Document 1, for example, when the number of queue entries is N, the number of FFs (flip-flops) required for control is N (1 + log 2 N). At this time, the number of FF bits is N (1 + log 2 N) = 32 bits when N = 8, N (1 + log 2 N) = 448 bits when N = 64, and when the number of flip-flop bits increases, The circuit scale becomes larger than the number increases. In addition, a large number of comparison circuits corresponding to the number of entries in the queue are required, which complicates the circuit.

このため、要求パケットより応答パケットを優先して送出する方式を採用するシステムコントローラにおいて、より小規模な回路で性能の低下を防ぐことが望ましい。
1つの側面では、本開示は、要求パケットよりも応答パケットを優先する方式を採用するシステムコントローラにおいて、性能の低下を防ぐことができる技術を提供することを目的とする。
For this reason, in a system controller that employs a method in which a response packet is sent with priority over a request packet, it is desirable to prevent performance degradation with a smaller circuit.
In one aspect, an object of the present disclosure is to provide a technique capable of preventing a decrease in performance in a system controller that employs a method in which a response packet is prioritized over a request packet.

このため、このシステム制御装置は、複数の演算処理装置に接続されるシステム制御装置であって、前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部と、前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記要求よりも前記応答を先に出力するとともに、前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記応答よりも前記要求を先に出力する調停部と、を有する。   Therefore, the system control device is a system control device connected to a plurality of arithmetic processing devices, and a request holding unit that stores a request from the first arithmetic processing device among the plurality of arithmetic processing devices; When a request is stored in the response holding unit that stores a response to the second processing unit among the plurality of processing units corresponding to the request from the first processing unit, and the request holding unit When the response is already held in the response holding unit, the response is output before the request, and when the request is stored in the request holding unit, the response is still held in the response holding unit. And an arbitration unit that outputs the request before the response.

また、この情報処理装置は、複数の演算処理装置とシステム制御装置とを有する情報処理装置であって、前記システム制御装置は、前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部と、前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記要求よりも前記応答を先に出力するとともに、前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記応答よりも前記要求を先に出力する調停部と、を有する。   The information processing apparatus is an information processing apparatus having a plurality of arithmetic processing devices and a system control device, and the system control device is requested by a first arithmetic processing device among the plurality of arithmetic processing devices. A request holding unit for storing a response, a response holding unit for storing a response to a second arithmetic processing device among the plurality of arithmetic processing devices corresponding to a request from the first arithmetic processing device, and the request holding When the request is stored in the response holding unit, when the response is already held in the response holding unit, the response is output before the request, and when the request is stored in the request holding unit, the response And an arbitration unit that outputs the request earlier than the response when a response is not yet held in the holding unit.

また、このシステム制御装置の制御方法は、複数の演算処理装置に接続されるとともに、前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部とを備えたシステム制御装置の制御方法であって、前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記システム制御装置が有する調停部が、前記要求よりも前記応答を先に出力し、前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記調停部が、前記応答よりも前記要求を先に出力する。   The control method of the system control device is connected to a plurality of arithmetic processing devices, a request holding unit for storing a request from a first arithmetic processing device among the plurality of arithmetic processing devices, and the first Corresponding to the request from the arithmetic processing device, a control method for a system control device comprising a response holding unit for storing a response to the second arithmetic processing device among the plurality of arithmetic processing devices, wherein the request When a request is stored in the holding unit, when a response is already held in the response holding unit, the arbitration unit included in the system control device outputs the response before the request, and the request holding unit If the request is stored in the response holding unit, if the response is not yet held in the response holding unit, the arbitration unit outputs the request before the response.

本開示によれば、要求パケットより応答パケットを優先して送出する方式を採用するシステムコントローラにおいて、性能の低下を防ぐことができる。   According to the present disclosure, in a system controller that employs a method in which a response packet is sent with priority over a request packet, performance degradation can be prevented.

第1実施形態の一例としてのシステムコントローラが適用される情報処理システムのハードウェア構成の例を模式的に示す図である。It is a figure which shows typically the example of the hardware constitutions of the information processing system to which the system controller as an example of 1st Embodiment is applied. 第1実施形態の一例としてのシステムコントローラの構成例を模式的に示す図である。It is a figure which shows typically the structural example of the system controller as an example of 1st Embodiment. 第1実施形態の一例としてのシステムコントローラにおける処理を示すタイムチャートである。It is a time chart which shows the process in the system controller as an example of 1st Embodiment. 第2実施形態の一例としてのシステムコントローラの例を模式的に示す図である。It is a figure which shows typically the example of the system controller as an example of 2nd Embodiment. 第2実施形態の一例としてのシステムコントローラにおける処理を示すタイムチャートである。It is a time chart which shows the process in the system controller as an example of 2nd Embodiment. 従来の情報処理システムのハードウェア構成の例を模式的に示す図である。It is a figure which shows the example of the hardware constitutions of the conventional information processing system typically. 従来の情報処理システムのシステムコントローラの構成例を模式的に示す図である。It is a figure which shows typically the structural example of the system controller of the conventional information processing system.

以下、図面を参照して本発明の実施の形態を説明する。
(1)第1実施形態
まず、第1実施形態の一例としてのSC2が適用される情報処理システム20のハードウェア構成の例を説明する。
図1は、実施形態の一例としてのSC2が適用される情報処理システム20のハードウェア構成の例を模式的に示す図である。
Embodiments of the present invention will be described below with reference to the drawings.
(1) 1st Embodiment First, the example of the hardware constitutions of the information processing system 20 with which SC2 as an example of 1st Embodiment is applied is demonstrated.
FIG. 1 is a diagram schematically illustrating an example of a hardware configuration of an information processing system 20 to which SC2 as an example of an embodiment is applied.

情報処理システム20は、1以上のCPU1−1〜1−n(nは1以上の整数)、SC2、IO3、MAC4、及び1以上のDRAM5−1〜5−m(mは1以上の整数)を備える。
CPU1−1〜1−nは、DRAM5−1〜5−m等から不図示のプログラムや、不図示のストレージからOS等を読み出し、各種処理を実行するプロセッサである。
The information processing system 20 includes one or more CPUs 1-1 to 1-n (n is an integer of 1 or more), SC2, IO3, MAC4, and one or more DRAMs 5-1 to 5-m (m is an integer of 1 or more). Is provided.
The CPUs 1-1 to 1-n are processors that read out a program (not shown) from the DRAMs 5-1 to 5-m and the like and read out an OS and the like from a storage (not shown) to execute various processes.

SC2は、CPU1−1〜1−n、IO3、及びMAC4とバスで接続されており、1つのシステムボード(System Board:SB)に組み込まれている。また、SC2には、不図示の他のSBとの接続用のバスも存在する。
IO3は、情報処理システム20と外部との接続に使用されるインタフェースであり、例えばネットワークインタフェースボードやSCSI(Small Computer Systems Interface)カードなどである。
The SC2 is connected to the CPUs 1-1 to 1-n, the IO3, and the MAC4 via a bus, and is incorporated in one system board (SB). SC2 also has a bus for connection with another SB (not shown).
IO3 is an interface used for connection between the information processing system 20 and the outside, and is, for example, a network interface board or a SCSI (Small Computer Systems Interface) card.

MAC4は、SC2と間でDRAM5−1〜5−mに対するアクセスを制御するコントローラである。
DRAM5−1〜5−mは、CPU1−1〜1−nが演算や制御を行なうに際して、種々のデータやプログラムを格納する記憶領域である。
なお、以下、CPUを示す符号としては、複数のCPUのうち1つを特定する必要があるときには符号1−1〜1−nを用いるが、任意のCPUを指すときには符号1を用いる。
The MAC 4 is a controller that controls access to the DRAMs 5-1 to 5-m with the SC2.
The DRAMs 5-1 to 5-m are storage areas for storing various data and programs when the CPUs 1-1 to 1-n perform calculations and controls.
Hereinafter, as reference numerals indicating CPUs, reference numerals 1-1 to 1-n are used when one of a plurality of CPUs needs to be specified, but reference numeral 1 is used when referring to an arbitrary CPU.

また、DRAMを示す符号としては、複数のDRAMのうち1つを特定する必要があるときには符号5−1〜5−mを用いるが、任意のDRAMを指すときには符号5を用いる。
このような構成の情報処理システム20において、例えば、CPU1の1つがSC2に対して要求パケットを発行する。
Moreover, as a code | symbol which shows DRAM, the code | symbol 5-1 to 5-m is used when it is necessary to specify one of several DRAM, but code | symbol 5 is used when referring to arbitrary DRAM.
In the information processing system 20 having such a configuration, for example, one of the CPUs 1 issues a request packet to the SC 2.

SC2は、要求されたデータが、他のCPU1の不図示のキャッシュに存在するかどうかをスヌープする。要求データが他のCPU1のキャッシュに存在する(すなわちヒット)の場合、SC2は、データを有するキャッシュのCPU1に対してオーダーを発行する。
一方、要求データが他のCPU1のキャッシュに存在しない(すなわちヒットしない)場合、SC2は、MAC4にメモリ要求を送る。
The SC 2 snoops whether the requested data exists in a cache (not shown) of another CPU 1. If the requested data is present in the cache of another CPU 1 (that is, hit), the SC 2 issues an order to the CPU 1 of the cache having the data.
On the other hand, when the request data does not exist in the cache of another CPU 1 (that is, does not hit), the SC 2 sends a memory request to the MAC 4.

SC2は、オーダーを発行した先のCPU1、又はメモリ要求を発行した先のMAC4から応答パケットを受信すると、その応答パケットを、要求パケットを発行したCPU1に転送する。
上記の動作のために、SC2は、図2に示すように、要求パケットや応答パケットを受信して保持するFIFOキューを複数備える。
When receiving a response packet from the CPU 1 that issued the order or the MAC 4 that issued the memory request, the SC 2 transfers the response packet to the CPU 1 that issued the request packet.
For the above operation, the SC 2 includes a plurality of FIFO queues that receive and hold request packets and response packets as shown in FIG.

図2は、第1実施形態の一例としてのSC2の構成例を模式的に示す図である。
SC2は、要求キュー(Request Queue:RQQ)部30、応答キュー(Return Queue:RTNQ)部40、調停回路(調停部;PRIO)12、要求用資源使用カウンタ(RQ用USED−CT)13、及び応答用資源使用カウンタ(RTN用USED−CT)14を備える。
FIG. 2 is a diagram schematically illustrating a configuration example of SC2 as an example of the first embodiment.
SC2 includes a request queue (RQQ) unit 30, a response queue (Return Queue: RTNQ) unit 40, an arbitration circuit (arbitration unit; PRIO) 12, a request resource usage counter (USED-CT for RQ) 13, and A response resource usage counter (USEN-CT for RTN) 14 is provided.

要求キュー部30は、要求キューを処理する部分であり、要求キュー用ライトポインタ(Write Pointer:WTPT)6、要求キュー用リードポインタ(Read Pointer:RDPT)7、要求キュー8、及び状態カウンタ(STATE−CT)15−0〜15−7を有する。
要求キュー8は、8つのエントリ8−0〜8−7を有するFIFOキューであり、CPU1やIO3から受信した要求パケットを格納する。
The request queue unit 30 is a part that processes the request queue, and includes a request queue write pointer (Write Pointer: WTPT) 6, a request queue read pointer (Read Pointer: RDPT) 7, a request queue 8, and a state counter (STATE). -CT) 15-0 to 15-7.
The request queue 8 is a FIFO queue having eight entries 8-0 to 8-7, and stores request packets received from the CPU 1 and IO3.

なお、以下、要求キューを示す符号としては、要求キューのエントリのうちの1つを特定する必要があるときには符号8−0〜8−7を用いるが、要求キューの任意のエントリを指すとき、或いは要求キュー全体を指すときには符号8を用いる。
ライトポインタ6は、CPU1やIO3から受信した要求パケットを、要求キュー8のエントリ8−0〜8−7のいずれに書き込むかを示すポインタである。
Hereinafter, as a code indicating the request queue, the code 8-0 to 8-7 is used when it is necessary to specify one of the entries of the request queue, but when indicating any entry of the request queue, Alternatively, reference numeral 8 is used to indicate the entire request queue.
The write pointer 6 is a pointer indicating to which of the entries 8-0 to 8-7 of the request queue 8 the request packet received from the CPU 1 or IO3 is written.

リードポインタ7は、要求キュー8のエントリ8−0〜8−7のうちのいずれから要求パケットを読み出すかを示すポインタである。
状態カウンタ15−0〜15−7は、要求キュー8の各エントリ8−0〜8−7に対応する2ビット幅のカウンタである。
この状態カウンタ15−0〜15−7は、それぞれ、後述する応答キュー用リードポインタ10と接続されている。
The read pointer 7 is a pointer indicating from which of the entries 8-0 to 8-7 of the request queue 8 the request packet is read.
The status counters 15-0 to 15-7 are 2-bit width counters corresponding to the entries 8-0 to 8-7 of the request queue 8.
Each of the status counters 15-0 to 15-7 is connected to a response queue read pointer 10 described later.

状態カウンタ15−0〜15−7の動作については後述する。
要求キュー部30は、要求キュー用ライトポインタ6と要求キュー用リードポインタ7との値が一致している場合、要求キュー8にはパケットが存在しないので、調停には参加しない(調停参加信号(RQ PRIO)31を送信しない)。
一方、要求キュー部30は、要求キュー用ライトポインタ6と要求キュー用リードポインタ7との値が一致せず、かつ要求パケットの宛先の資源(不図示)がビジーでない場合、調停回路12にRQ PRIO31を送る。
The operation of the status counters 15-0 to 15-7 will be described later.
When the values of the request queue write pointer 6 and the request queue read pointer 7 match, the request queue unit 30 does not participate in the arbitration because there is no packet in the request queue 8 (arbitration participation signal ( (RQ PRIO) 31 is not transmitted).
On the other hand, when the values of the request queue write pointer 6 and the request queue read pointer 7 do not match and the destination resource (not shown) of the request packet is not busy, the request queue unit 30 sends an RQ to the arbitration circuit 12. Send PRIO31.

応答キュー部40は、応答キューを処理する部分であり、応答キュー用ライトポインタ9、応答キュー用リードポインタ(読み出しポインタ)10、及び応答キュー11−0〜11−7を有する。
応答キュー11は、8つのエントリ11−0〜11−7を有するFIFOキューであり、CPU1やIO3、MAC4から受信した応答パケットを格納する。
The response queue unit 40 is a part that processes the response queue, and includes a response queue write pointer 9, a response queue read pointer (read pointer) 10, and response queues 11-0 to 11-7.
The response queue 11 is a FIFO queue having eight entries 11-0 to 11-7, and stores response packets received from the CPU1, IO3, and MAC4.

なお、以下、応答キューを示す符号としては、応答キューのエントリのうちの1つを特定する必要があるときには符号11−0〜11−7を用いるが、応答キューの任意のエントリを指すとき、或いは応答キュー全体を指すときには符号11を用いる。
応答キュー用ライトポインタ9は、CPU1やIO3、MAC4から受信した応答パケットを、応答キュー11のエントリ11−0〜11−7のうちのいずれに書き込むかを示すポインタである。
Hereinafter, as a code indicating the response queue, the code 11-0 to 11-7 is used when one of the entries in the response queue needs to be specified, but when indicating any entry in the response queue, Alternatively, reference numeral 11 is used to indicate the entire response queue.
The response queue write pointer 9 is a pointer indicating to which of the entries 11-0 to 11-7 of the response queue 11 the response packet received from the CPU 1, IO3, or MAC4 is to be written.

応答キュー用リードポインタ10は、応答キュー11のエントリ11−0〜11−7のうちのいずれから応答パケットを読み出すかを示すポインタである。
なお、要求キュー8、応答キュー11のいずれも、8エントリのキューとして図示されているが、エントリ数は8以外でもよい。
応答キュー部40は、応答キュー用ライトポインタ9と応答キュー用リードポインタ10との値が一致している場合、応答キュー11にはパケットが存在しないので、調停には参加しない(調停参加信号(RTN PRIO)41を送信しない)。
The response queue read pointer 10 is a pointer indicating from which of the entries 11-0 to 11-7 of the response queue 11 the response packet is read.
Note that both the request queue 8 and the response queue 11 are illustrated as eight-entry queues, but the number of entries may be other than eight.
When the values of the response queue write pointer 9 and the response queue read pointer 10 match, the response queue unit 40 does not participate in the arbitration (the arbitration participation signal ( RTN PRIO) 41 is not transmitted).

一方、応答キュー部40は、応答キュー用ライトポインタ9と応答キュー用リードポインタ10との値が一致しない場合、調停回路12にRTN PRIO41を送る。
要求用資源使用カウンタ13は、要求パケットの宛先資源の使用数を示す要求用資源使用カウンタであり、要求パケットの宛先資源が1つ使用される度に1インクリメントされ、要求パケットの宛先資源が1つ解放される度に1デクリメントされる。
On the other hand, if the values of the response queue write pointer 9 and the response queue read pointer 10 do not match, the response queue unit 40 sends the RTN PRIO 41 to the arbitration circuit 12.
The request resource use counter 13 is a request resource use counter indicating the number of use of the destination resource of the request packet. The request resource use counter 13 is incremented by 1 every time one destination resource of the request packet is used. Every time it is released, it is decremented by 1.

応答用資源使用カウンタ14は、応答パケットの宛先資源の使用数を示す応答用資源使用カウンタであり、応答パケットの宛先資源が1つ使用される度に1インクリメントされ、応答パケットの宛先資源が1つ解放される度に1デクリメントされる。
調停回路12は、SC2から送出されるパケットを、要求キュー部30と応答キュー部40との間で調停する回路である。つまり、調停回路12は、要求パケットと応答パケットのどちらを選択するかを制御する回路である。調停回路12は、要求キュー部30と応答キュー部40との両方から調停参加信号(RQ PRIO31,RTN PRIO41)を受け取り、両者の調停参加要求が競合した場合は、下記に記載する例外を除き、基本的には応答キュー部40を優先して選択する。このため、たとえ応答パケットの宛先資源がビジーであり、応答パケットを送出できない場合であっても、要求パケットが送出されることはない。
The response resource usage counter 14 is a response resource usage counter that indicates the number of destination resources used in the response packet. The response resource usage counter 14 is incremented by 1 each time one destination resource of the response packet is used, and the destination resource of the response packet is 1. Every time it is released, it is decremented by 1.
The arbitration circuit 12 is a circuit that arbitrates a packet sent from the SC 2 between the request queue unit 30 and the response queue unit 40. That is, the arbitration circuit 12 is a circuit that controls which of the request packet and the response packet is selected. The arbitration circuit 12 receives an arbitration participation signal (RQ PRIO31, RTN PRIO41) from both the request queue unit 30 and the response queue unit 40, and when both arbitration participation requests compete, with the exception described below, Basically, the response queue unit 40 is selected with priority. For this reason, even if the destination resource of the response packet is busy and the response packet cannot be transmitted, the request packet is not transmitted.

したがって、応答キュー11に1つでもパケットが格納されている場合には、要求キュー8のパケットが選択されることはない。調停回路12は、このような制御を行なうことにより、要求パケットが応答パケットよりも先に送出される(要求パケットが応答パケットを追い越す)ことを阻止する。
また、要求キュー部30は、要求キュー8の各エントリ8−0〜8−7に対応する2ビット幅のカウンタである、状態カウンタ15−0〜15−7を備える。
Therefore, when even one packet is stored in the response queue 11, the packet in the request queue 8 is not selected. By performing such control, the arbitration circuit 12 prevents the request packet from being sent before the response packet (the request packet overtakes the response packet).
The request queue unit 30 includes state counters 15-0 to 15-7, which are 2-bit wide counters corresponding to the entries 8-0 to 8-7 of the request queue 8.

状態カウンタ15−0は、要求キュー8のエントリ8−0に、状態カウンタ15−1は、エントリ8−1に、状態カウンタ15−2は、エントリ8−2に、状態カウンタ15−3は、エントリ8−3に、それぞれ対応している。また、状態カウンタ15−4は、要求キュー8のエントリ8−4に、状態カウンタ15−5は、エントリ8−5に、状態カウンタ15−6は、エントリ8−6に、状態カウンタ15−7は、エントリ8−7に、それぞれ対応している。   The status counter 15-0 is the entry 8-0 of the request queue 8, the status counter 15-1 is the entry 8-1, the status counter 15-2 is the entry 8-2, and the status counter 15-3 is This corresponds to each of the entries 8-3. Also, the status counter 15-4 is in the entry 8-4 of the request queue 8, the status counter 15-5 is in the entry 8-5, the status counter 15-6 is in the entry 8-6, and the status counter 15-7. Corresponds to entries 8-7, respectively.

なお、以下、状態カウンタを示す符号としては、状態カウンタのうちの1つを特定する必要があるときには符号15−0〜15−7を用いるが、状態カウンタの任意のカウンタを指すとき、或いは状態カウンタ全体を指すときには符号15を用いる。
状態カウンタ15は、対応するいずれかの要求キュー8のエントリ8−0〜8−7に要求パケットが格納されており、かつ、応答キュー用リードポインタ10が“0”から“1”にインクリメントされると、そのエントリ8−0〜8−7に対応する状態カウンタ15−0〜15−7が1カウントアップ(+1)される。
In the following description, reference numerals 15-0 to 15-7 are used as reference numerals indicating state counters when it is necessary to specify one of the state counters. Reference numeral 15 is used to indicate the entire counter.
The status counter 15 stores request packets in entries 8-0 to 8-7 of any corresponding request queue 8, and the response queue read pointer 10 is incremented from "0" to "1". Then, the status counters 15-0 to 15-7 corresponding to the entries 8-0 to 8-7 are counted up (+1).

例えば、要求キュー8のエントリ8−0に要求パケットが格納されており、かつ、応答キュー用リードポインタ10が“0”から“1”にインクリメントされると、状態カウンタ15−0が1カウントアップ(+1)される。
つまり、状態カウンタ15−0〜15−7のいずれかの値が“2”になった場合、要求パケットが要求キュー8の対応するエントリ8−0〜8−7に格納されてから、応答キュー用リードポインタ10が1周以上したことを示す。
For example, when the request packet is stored in the entry 8-0 of the request queue 8 and the response queue read pointer 10 is incremented from “0” to “1”, the status counter 15-0 is incremented by one. (+1).
That is, when any value of the status counters 15-0 to 15-7 is “2”, the request packet is stored in the corresponding entries 8-0 to 8-7 of the request queue 8, and then the response queue. It indicates that the read pointer 10 has made more than one turn.

つまり、要求パケットが要求キュー8にセットされた時点で、既に応答キュー11に格納されていたパケットが全て送出されており、要求パケットが応答パケットを追い越さないことが保障される。
このため、調停回路12は、要求キュー用リードポインタ10が示す要求キュー8のエントリの状態カウンタ15が“2”の場合、応答パケットよりも要求パケットを優先して選択する。
That is, when the request packet is set in the request queue 8, it is ensured that all the packets already stored in the response queue 11 have been sent out and the request packet does not overtake the response packet.
Therefore, when the status counter 15 of the entry of the request queue 8 indicated by the request queue read pointer 10 is “2”, the arbitration circuit 12 selects the request packet with priority over the response packet.

また、応答キュー11が空の場合は、要求キュー8のパケットが格納されている全エントリに対応する状態カウンタ15に“2”をセットする。
この一連の動作のタイムチャートを図3に示す。
図3は、第1実施形態の一例としてのSC2における処理を示すタイムチャートである。
If the response queue 11 is empty, “2” is set in the status counter 15 corresponding to all entries in which packets of the request queue 8 are stored.
A time chart of this series of operations is shown in FIG.
FIG. 3 is a time chart showing processing in SC2 as an example of the first embodiment.

図3において、横軸は時間(サイクル)を示しており、図3は、各サイクルにおける各種信号の状態又はカウンタの値を示す。
図3の上半分の「RQQ」は、要求キュー部30に関連する各種信号の状態又はカウンタの値を示す。
詳細には、WTPT6は、図2の要求キュー用ライトポインタ6、RDPT7は要求キュー用リードポインタ7の値をそれぞれ示す。また、STATE−CT−Q15−0〜STATE−CT−Q15−7は、状態カウンタ15−0〜15−7の値をそれぞれ示す。また、RQ PRIO31は、要求キュー8から要求パケットをSC2の外部に送信するために、要求キュー部30が、調停回路12にパケット送出権を獲得しようとして送信する調停参加信号を示す。要求キュー部30から調停回路12に調停参加信号を出すときにRQ PRIO31をイネーブルにする。PRIO_TKN32は、要求キュー8からの調停参加信号を受けて、調停回路12が要求キュー8を選択するとイネーブルとなり、応答キュー11を選択するとディスエーブルとなる信号である。USED−CT13は、要求用資源使用カウンタ13の値を示す。BUSY33は、要求パケットの宛先資源のBUSY信号であり、要求パケットの宛先資源が全て使用されビジーになるとイネーブルとなる。RLS34は、要求パケットの宛先資源の解放通知信号(RLS)であり、要求パケットの宛先資源が解放されるとイネーブルとなる。
In FIG. 3, the horizontal axis indicates time (cycle), and FIG. 3 shows the state of various signals or the value of the counter in each cycle.
“RQQ” in the upper half of FIG. 3 indicates the state of various signals related to the request queue unit 30 or the value of the counter.
Specifically, WTPT 6 indicates the value of the request queue write pointer 6 in FIG. 2, and RDPT 7 indicates the value of the request queue read pointer 7. STATE-CT-Q15-0 to STATE-CT-Q15-7 indicate the values of the status counters 15-0 to 15-7, respectively. The RQ PRIO 31 indicates an arbitration participation signal that the request queue unit 30 transmits to the arbitration circuit 12 in order to acquire a packet transmission right in order to transmit a request packet from the request queue 8 to the outside of the SC 2. The RQ PRIO 31 is enabled when an arbitration participation signal is issued from the request queue unit 30 to the arbitration circuit 12. PRIO_TKN 32 is a signal that is enabled when the arbitration circuit 12 selects the request queue 8 in response to the arbitration participation signal from the request queue 8 and is disabled when the response queue 11 is selected. USED-CT 13 indicates the value of the request resource usage counter 13. BUSY 33 is a BUSY signal of the destination resource of the request packet, and is enabled when all the destination resources of the request packet are used and busy. The RLS 34 is a request packet destination resource release notification signal (RLS), and is enabled when the request packet destination resource is released.

また、図3の下半分の「RTNQ」部分は、応答キュー部40に関連する各種信号の状態又はカウンタの値を示す。
なお、この例においては、説明の便宜上、応答パケットの宛先資源(不図示)の数を4個とする。
詳細には、WTPT9は、図2の応答キュー用ライトポインタ9、RDPT10は応答キュー用リードポインタ10の値をそれぞれ示す。また、RTN PRIO41は、応答キュー11から応答パケットをSC2の外部に送信するために、応答キュー部40が、調停回路12にパケット送出権を獲得しようとして送信する調停参加信号を示す。応答キュー部30から調停回路12に調停参加信号を出すときにRTN PRIO41をイネーブルにする。PRIO_TKN42は、応答キュー11からの調停参加信号を受けて、調停回路12が応答キュー11を選択するとイネーブルにし、要求キュー8を選択するとディスエーブルとする選択信号である。USED−CT14は、応答用資源使用カウンタ14の値を示す。BUSY43は、応答パケットの宛先資源のBUSY信号であり、応答パケットの宛先資源が全て使用されビジーになるとイネーブルとなる。RLS44は、応答パケットの宛先資源の解放通知信号(RLS)であり、応答パケットの宛先資源が解放されるとイネーブルとなる。
In addition, the “RTNQ” portion in the lower half of FIG.
In this example, for convenience of explanation, the number of destination resources (not shown) of the response packet is four.
Specifically, WTPT 9 indicates the value of the response queue write pointer 9 in FIG. 2, and RDPT 10 indicates the value of the response queue read pointer 10. The RTN PRIO 41 indicates an arbitration participation signal that the response queue unit 40 transmits to the arbitration circuit 12 in order to acquire a packet transmission right in order to transmit a response packet from the response queue 11 to the outside of the SC 2. The RTN PRIO 41 is enabled when an arbitration participation signal is issued from the response queue unit 30 to the arbitration circuit 12. PRIO_TKN 42 is a selection signal that receives an arbitration participation signal from the response queue 11 and enables it when the arbitration circuit 12 selects the response queue 11 and disables it when the request queue 8 is selected. USED-CT 14 indicates the value of the response resource usage counter 14. BUSY 43 is a BUSY signal of the destination resource of the response packet, and is enabled when all the destination resources of the response packet are used and become busy. The RLS 44 is a response packet destination resource release notification signal (RLS), and is enabled when the response packet destination resource is released.

図3において、サイクルt1〜t7に、応答パケットが次々にSC2に送られ、応答キュー用ライトポインタ9(WTPT9)がインクリメントされる。
これに対応して、サイクルt1において、応答キュー部40は、応答キュー11からパケット送出権を獲得するために調停参加信号41(RTN PRIO41)をイネーブルにする。調停回路12は応答キュー40を選択し、選択信号42(PRIO_TKN42)をイネーブルにする。
In FIG. 3, response packets are successively sent to SC2 in cycles t1 to t7, and the response queue write pointer 9 (WTPT 9) is incremented.
In response to this, in the cycle t1, the response queue unit 40 enables the arbitration participation signal 41 (RTN PRIO 41) in order to acquire the packet transmission right from the response queue 11. The arbitration circuit 12 selects the response queue 40 and enables the selection signal 42 (PRIO_TKN 42).

サイクルt1〜t4にかけて、応答キュー部40がパケット送出権を獲得しているので、応答キュー部40は、応答パケットが送出される度に、応答キュー用リードポインタ10(RDPT10)をインクリメントする。これと同時に、応答パケットの宛先資源の使用数をカウントする資源使用カウンタ14(USED−CT14)もインクリメントされる。   Since the response queue unit 40 has acquired the packet transmission right from cycle t1 to t4, the response queue unit 40 increments the response queue read pointer 10 (RDPT10) each time a response packet is transmitted. At the same time, a resource usage counter 14 (USED-CT 14) that counts the number of destination resources used in the response packet is also incremented.

前述のように、応答パケットの宛先資源の数はここでは4個としている。したがって、サイクルt5において、資源使用カウンタ14の値が“4”になると、応答パケットをこれ以上送出できなくなる。このため、サイクルt5において、応答パケットの宛先資源用のBUSY信号43(BUSY43)がイネーブルとなる。
サイクルt8において、応答パケットの宛先資源が解放されると、応答パケットの宛先資源解放信号44(RLS44)がイネーブルとなり、BUSY信号43はディスエーブルとなる。また、サイクルt8で資源解放信号44(RLS44)がイネーブルとなると資源使用カウンタ14もデクリメントされる。
As described above, the number of destination resources of the response packet is four here. Therefore, when the value of the resource usage counter 14 becomes “4” in the cycle t5, no more response packets can be transmitted. Therefore, in cycle t5, the BUSY signal 43 (BUSY 43) for the destination resource of the response packet is enabled.
When the destination resource of the response packet is released at cycle t8, the destination resource release signal 44 (RLS 44) of the response packet is enabled, and the BUSY signal 43 is disabled. Further, when the resource release signal 44 (RLS 44) is enabled at cycle t8, the resource use counter 14 is also decremented.

一方、要求パケットは、応答パケットの合間に時々送られてくる。そして、要求キュー部30は、要求パケットを受信する度に、要求キュー用ライトポインタ6(WTPT6)をインクリメントする(サイクルt7,t11,t15,t23参照)。
しかし、応答キュー11に、要求パケットよりも優先順位の高い応答パケットが格納されているため、調停回路12は、これらの要求パケットを選択しない。
On the other hand, request packets are sometimes sent between response packets. The request queue unit 30 increments the request queue write pointer 6 (WTPT 6) every time a request packet is received (see cycles t7, t11, t15, and t23).
However, since response packets having higher priority than the request packets are stored in the response queue 11, the arbitration circuit 12 does not select these request packets.

サイクルt12において、応答キュー用リードポインタ10(RDPT10)が“0”から“1”にインクリメントされる。これに対応して、サイクルt13において、要求キュー8のパケットが書き込まれているエントリ8−0,8−1に対応する状態カウンタ15−0,15−1(STATE−CT−Q0,STATE−CT−Q1)がインクリメントされる。   In cycle t12, the response queue read pointer 10 (RDPT10) is incremented from “0” to “1”. Correspondingly, in cycle t13, status counters 15-0 and 15-1 (STATE-CT-Q0, STATE-CT corresponding to entries 8-0 and 8-1 in which packets of request queue 8 are written. -Q1) is incremented.

サイクルt20においても同様に、応答キュー用リードポインタ10(RDPT10)が“0”から“1”にインクリメントされる。これに対応して、サイクルt21において、要求キュー8のパケットが書き込まれているエントリ8−0,8−1,8−3に対応する状態カウンタ15−0〜15−2(STATE−CT−Q0,STATE−CT−Q1,STATE−CT−Q2)がインクリメントされる。   Similarly, in the cycle t20, the response queue read pointer 10 (RDPT10) is incremented from “0” to “1”. Correspondingly, in cycle t21, status counters 15-0 to 15-2 (STATE-CT-Q0) corresponding to entries 8-0, 8-1, and 8-3 in which packets of request queue 8 are written. , STATE-CT-Q1, STATE-CT-Q2) are incremented.

この結果、サイクルt21において、要求キュー8のエントリ8−0,8−1の状態カウンタ15−0〜15−7の値が“2”となり、調停回路12は、応答パケットに優先して要求パケットを選択する。この結果、要求パケットが送出され、要求キュー用リードポインタ7(RDPT7)がインクリメントされる。
このように、本実施形態の一例としてのSC2は、応答パケットを大量に受信した場合でも、調停回路12によって要求パケットを選択して送出することができる。
As a result, in the cycle t21, the values of the status counters 15-0 to 15-7 of the entries 8-0 and 8-1 of the request queue 8 become “2”, and the arbitration circuit 12 prioritizes the response packet. Select. As a result, the request packet is transmitted, and the request queue read pointer 7 (RDPT7) is incremented.
As described above, the SC 2 as an example of the present embodiment can select and send a request packet by the arbitration circuit 12 even when a large number of response packets are received.

このため、要求パケットが先行の応答パケットを追い越してはならないという制限を満たしつつ、待たされた要求パケットを優先することが可能となる。この結果、応答処理の合間に要求処理を割り込ませることになり、処理の並列度を向上させ、性能の低下を防止することができる。
更に、本実施形態の制御回路に必要となるFFのビット数は、キューのエントリ数をNとすると、2Nとなる。N=8の場合は16ビット、N=64の場合は128ビットであり、従来の構成に比べて少ない回路規模で実現できる。また、本実施形態の一例としてのSC2は比較回路が不要であり、回路が簡潔である。
For this reason, it is possible to give priority to the waited request packet while satisfying the restriction that the request packet should not overtake the preceding response packet. As a result, the request process is interrupted between the response processes, the parallelism of the process can be improved, and the performance can be prevented from deteriorating.
Furthermore, the number of FF bits required for the control circuit of this embodiment is 2N, where N is the number of queue entries. When N = 8, it is 16 bits, and when N = 64, it is 128 bits. Further, SC2 as an example of this embodiment does not require a comparison circuit, and the circuit is simple.

(2)第2実施形態
上記の第1実施形態の一例では、要求キュー8のエントリごとに2ビットの状態カウンタ15を用意する必要がある。このため、要求キュー8のエントリが増えるに従い、多くのFFのビット数が必要となる。
このため、第2実施形態の一例としてのSC2′では回路構成を工夫して、必要なFFのビット数を低減させる。
(2) Second Embodiment In the example of the first embodiment described above, it is necessary to prepare a 2-bit status counter 15 for each entry in the request queue 8. For this reason, as the number of entries in the request queue 8 increases, the number of bits of FF increases.
For this reason, in SC2 'as an example of the second embodiment, the circuit configuration is devised to reduce the required number of FF bits.

第2実施形態の一例としてのSC2′が適用される情報処理システム20のハードウェア構成は、図1に示した第1実施形態の場合と同じであるため、その図示並びに説明を省略する。
図4は、第2実施形態の一例としてのSC2′の例を模式的に示す図である。
SC2′は、要求キュー部30′、応答キュー部40、調停回路12、要求用資源使用カウンタ13、及び応答用資源使用カウンタ14を備える。
The hardware configuration of the information processing system 20 to which SC2 ′ as an example of the second embodiment is applied is the same as that of the first embodiment shown in FIG.
FIG. 4 is a diagram schematically illustrating an example of SC2 ′ as an example of the second embodiment.
The SC 2 ′ includes a request queue unit 30 ′, a response queue unit 40, an arbitration circuit 12, a request resource use counter 13, and a response resource use counter 14.

しかし、第2実施形態の一例としてのSC2′においては、要求キュー部30′が、状態カウンタ15−0〜15−7に代えて、状態テーブル(状態TBL)16,17と、比較回路18とを有する。
を有する。
それ以外の構成は、図2に示した第1実施形態の一例としてのSC2と同じであるため、説明を省略する。
However, in the SC 2 ′ as an example of the second embodiment, the request queue unit 30 ′ replaces the state counters 15-0 to 15-7 with the state tables (state TBL) 16 and 17, the comparison circuit 18, and the like. Have
Have
The other configuration is the same as SC2 as an example of the first embodiment shown in FIG.

状態テーブル16は、VALIDフィールド161と要求キュー用ライトポインタフィールド162とを有する。
VALIDフィールド161は、後述する要求キュー用ライトポインタフィールド162が有効かどうかを示すフラグであり、例えば、値にイネーブルが設定されている場合、要求キュー用ライトポインタフィールド162が有効であることを示す。
The state table 16 has a VALID field 161 and a request queue write pointer field 162.
The VALID field 161 is a flag indicating whether a request queue write pointer field 162, which will be described later, is valid. For example, when the value is set to enable, the request queue write pointer field 162 is valid. .

要求キュー用ライトポインタフィールド162は、後述するように、応答キュー用リードポインタ10が“0”から“1”になった時点の、要求キュー用ライトポインタ6の値を格納する。
状態テーブル17も、VALIDフィールド171と要求キュー用ライトポインタフィールド172とを有する。
The request queue write pointer field 162 stores the value of the request queue write pointer 6 when the response queue read pointer 10 changes from “0” to “1”, as will be described later.
The state table 17 also has a VALID field 171 and a request queue write pointer field 172.

VALIDフィールド171は、後述する要求キュー用ライトポインタフィールド162が有効かどうかを示すフラグであり、例えば、値にイネーブルが設定されている場合、要求キュー用ライトポインタフィールド172が有効であることを示す。
要求キュー用ライトポインタフィールド172は、応答キュー用リードポインタ10が2度目に“0”から“1”になった時点に、応答キュー用リードポインタ10が最初に“1”になったときの要求キュー用ライトポインタの値を格納する。
The VALID field 171 is a flag indicating whether or not a request queue write pointer field 162 described later is valid. For example, when the value is set to enable, the request queue write pointer field 172 is valid. .
The request queue write pointer field 172 is a request when the response queue read pointer 10 first becomes “1” when the response queue read pointer 10 changes from “0” to “1” for the second time. Stores the value of the queue write pointer.

応答キュー用リードポインタ10が“0”から“1”にインクリメントされると、要求キュー部30′は、要求キュー8が空でなければ(つまり、エントリ8−0〜8−7のいずれかに要求パケットが格納されている場合には)、要求キュー用ライトポインタ6の値を、要求キュー用ライトポインタフィールド162にセットする。このとき、要求キュー部30′は、要求キュー用ライトポインタフィールド172が有効であることを示すために、VALIDフィールド161を、例えばイネーブルに設定する。   When the response queue read pointer 10 is incremented from “0” to “1”, the request queue unit 30 ′ determines that the request queue 8 is not empty (that is, one of the entries 8-0 to 8-7). When a request packet is stored), the value of the request queue write pointer 6 is set in the request queue write pointer field 162. At this time, the request queue unit 30 'sets the VALID field 161 to, for example, enable to indicate that the request queue write pointer field 172 is valid.

その後、もう一度応答キュー用リードポインタ10が“0”から“1”にインクリメントされると、要求キュー部30′は、VALIDフィールド161の値をVALIDフィールド171に転送する。また、要求キュー部30′は、要求キュー用ライトポインタフィールド162の値を、要求キュー用ライトポインタフィールド172に転送する。
状態VALIDフィールド171がイネーブルである場合、調停回路12は、要求キュー用リードポインタ7が要求キュー用ライトポインタフィールド172の値に追い付くまで、要求パケットを応答パケットより優先する。
Thereafter, when the response queue read pointer 10 is incremented again from “0” to “1”, the request queue unit 30 ′ transfers the value of the VALID field 161 to the VALID field 171. Further, the request queue unit 30 ′ transfers the value of the request queue write pointer field 162 to the request queue write pointer field 172.
When the status VALID field 171 is enabled, the arbitration circuit 12 gives priority to the request packet over the response packet until the request queue read pointer 7 catches up with the value of the request queue write pointer field 172.

要求キュー用リードポインタ7が、要求キュー用ライトポインタフィールド172の値に追い付く(つまり、両者が同じ値になる)と、VALIDフィールド161,171がリセットされる。また、応答キュー11が空の場合、要求キュー部30′は、要求キュー用ライトポインタ6の値を直接、要求キュー用ライトポインタフィールド172にセットすると共に、VALIDフィールド171をイネーブルにする。   When the request queue read pointer 7 catches up with the value of the request queue write pointer field 172 (that is, both have the same value), the VALID fields 161 and 171 are reset. When the response queue 11 is empty, the request queue unit 30 ′ directly sets the value of the request queue write pointer 6 in the request queue write pointer field 172 and enables the VALID field 171.

比較回路18は、状態テーブル17の値と要求キュー用ライトポインタ6、要求キュー用リードポインタ7の値とを比較する回路である。具体的には、STATE−TBL−V171がイネーブルで、WTPT6>RDPT7の場合、RDPT7<STATE−TLB172<WTPT6であれば、要求パケットを応答パケットよりも優先するように調停回路に通知する信号PRIO_HIGH_RQQ35がイネーブルになる。また、STATE−TBL171がイネーブルで、WTPT6<RDPT7の場合、WTPT6>STATE−TBL172、またはRDPT6<STATE−TBL172であれば、PRIO_HIGH_RQQ35がイネーブルになる。   The comparison circuit 18 compares the values in the state table 17 with the values of the request queue write pointer 6 and the request queue read pointer 7. Specifically, when STATE-TBL-V171 is enabled and WTPT6> RDPT7, if RDPT7 <STATE-TLB172 <WTPT6, the signal PRIO_HIGH_RQQ35 that notifies the arbitration circuit to prioritize the request packet over the response packet is Enable. In addition, when STATE-TBL 171 is enabled and WTPT6 <RDPT7, when WTPT6> STATE-TBL172 or RDPT6 <STATE-TBL172, PRIO_HIGH_RQQ35 is enabled.

第2実施形態の一例としてのSC2′は、このような構成を有することにより、各エントリに対応する状態カウンタ15−0〜15−7を設けた場合と、同等の制御を行なうことができる。更に、要求キュー8のエントリ数が増加しても、状態テーブル16,17のビット幅が要求キュー用ライトポインタ6のビット幅分だけしか増加しないため、FFの必要ビット数はほとんど増えない。   The SC 2 ′ as an example of the second embodiment has such a configuration, and can perform the same control as when the status counters 15-0 to 15-7 corresponding to each entry are provided. Furthermore, even if the number of entries in the request queue 8 increases, the bit width of the status tables 16 and 17 increases only by the bit width of the request queue write pointer 6, so the required number of bits in the FF hardly increases.

この一連の動作のタイムチャートを図5に示す。
図5は、第2実施形態の一例としてのSC2′における処理を示すタイムチャートである。
図5においても、横軸は時間(サイクル)を示しており、図5は、各サイクルにおける各種信号の状態又はカウンタの値を示す。
A time chart of this series of operations is shown in FIG.
FIG. 5 is a time chart showing processing in SC2 ′ as an example of the second embodiment.
Also in FIG. 5, the horizontal axis indicates time (cycle), and FIG. 5 shows the state of various signals or the value of the counter in each cycle.

図5の上半分の「RQQ」は、要求キュー部30に関連する各種信号の状態又はカウンタの値を示す。
ここで、STATE_TBL−V161は、図4のVALIDフィールド161、STATE_TBL162は、要求キュー用ライトポインタフィールド162の値をそれぞれ示す。また、STATE_TBL−V171は、図4のVALIDフィールド171、STATE_TBL172は、要求キュー用ライトポインタフィールド172の値をそれぞれ示す。
“RQQ” in the upper half of FIG. 5 indicates the state of various signals related to the request queue unit 30 or the value of the counter.
Here, STATE_TBL-V161 indicates the value of the VALID field 161 in FIG. 4, and STATE_TBL162 indicates the value of the write queue field 162 for request queue. Further, STATE_TBL-V 171 indicates the value of the VALID field 171 and STATE_TBL 172 of FIG. 4 respectively indicate the values of the request queue write pointer field 172.

それ以外の信号及びカウンタは、図3に示した第1実施形態の一例としてのSC2のタイムチャートと同じであるため、説明を省略する。
図5において、サイクルt1〜t7に、応答パケットが次々にSC2′に送られ、応答キュー用ライトポインタ9(WTPT9)がインクリメントされる。
これに対応して、サイクルt1において、応答キュー部40は、応答キュー11からパケット送出権を獲得するために調停参加信号41(RTN PRIO41)をイネーブルにする。調停回路12は応答キュー40を選択し、選択信号42(PRIO_TKN42)をイネーブルにする。
Other signals and counters are the same as the time chart of SC2 as an example of the first embodiment shown in FIG.
In FIG. 5, in the cycles t1 to t7, response packets are successively sent to the SC 2 ', and the response queue write pointer 9 (WTPT 9) is incremented.
In response to this, in the cycle t1, the response queue unit 40 enables the arbitration participation signal 41 (RTN PRIO 41) in order to acquire the packet transmission right from the response queue 11. The arbitration circuit 12 selects the response queue 40 and enables the selection signal 42 (PRIO_TKN 42).

サイクルt1〜t4にかけて、応答キュー部40がパケット送出権を獲得しているので、応答キュー部40は、応答パケットが送出される度に、応答キュー用リードポインタ10(RDPT10)をインクリメントする。これと同時に、応答パケットの宛先資源の使用数をカウントする資源使用カウンタ14(USED−CT14)もインクリメントされる。   Since the response queue unit 40 has acquired the packet transmission right from cycle t1 to t4, the response queue unit 40 increments the response queue read pointer 10 (RDPT10) each time a response packet is transmitted. At the same time, a resource usage counter 14 (USED-CT 14) that counts the number of destination resources used in the response packet is also incremented.

前述のように、応答パケットの宛先資源の数はここでは4個としている。したがって、サイクルt5において、資源使用カウンタ14の値が“4”になると、応答パケットをこれ以上送出できなくなる。このため、サイクルt5において、応答パケットの宛先資源用のBUSY信号43(BUSY43)がイネーブルとなる。
サイクルt8において、応答パケットの宛先資源が解放されると、応答パケットの宛先資源解放信号44(RLS44)がイネーブルとなり、BUSY信号43はディスエーブルとなる。また、サイクルt8で資源解放信号44(RLS44)がイネーブルとなると資源使用カウンタ14もデクリメントされる。
As described above, the number of destination resources of the response packet is four here. Therefore, when the value of the resource usage counter 14 becomes “4” in the cycle t5, no more response packets can be transmitted. Therefore, in cycle t5, the BUSY signal 43 (BUSY 43) for the destination resource of the response packet is enabled.
When the destination resource of the response packet is released at cycle t8, the destination resource release signal 44 (RLS 44) of the response packet is enabled, and the BUSY signal 43 is disabled. Further, when the resource release signal 44 (RLS 44) is enabled at cycle t8, the resource use counter 14 is also decremented.

一方、要求パケットは、応答パケットの合間に時々送られてくる。そして、要求キューブ30は、要求パケットを受信する度に、要求キュー用ライトポインタ6(WTPT6)をインクリメントする(サイクルt7,t11,t15,t23参照)。
しかし、応答キュー11に、要求パケットよりも優先順位の高い応答パケットが格納されているため、調停回路12は、これらの要求パケットを選択しない。
On the other hand, request packets are sometimes sent between response packets. The request cube 30 increments the request queue write pointer 6 (WTPT 6) every time a request packet is received (see cycles t7, t11, t15, and t23).
However, since response packets having higher priority than the request packets are stored in the response queue 11, the arbitration circuit 12 does not select these request packets.

サイクルt12において、応答キュー用リードポインタ10(RDPT10)が“0”から“1”にインクリメントされる。これに対応して、サイクルt13において、VALIDフィールド161(STATE_TBL−V161)がイネーブルとなると共に、要求キュー用ライトポインタフィールド162(STATE_TBL162)に要求キュー用ライトポインタ6の値である“2”がセットされる。   In cycle t12, the response queue read pointer 10 (RDPT10) is incremented from “0” to “1”. Correspondingly, at cycle t13, the VALID field 161 (STATE_TBL-V161) is enabled, and the request queue write pointer field 162 (STATE_TBL162) is set to “2”, which is the value of the request queue write pointer 6. Is done.

サイクルt20においても同様に、応答キュー用リードポインタ10(RDPT10)が“0”から“1”にインクリメントされる。これに対応して、サイクルt21において、要求キュー用ライトポインタフィールド162(STATE_TBL162)の値が要求キュー用ライトポインタフィールド172(STATE_TBL172)に転送される。また、VALIDフィールド161(STATE_TBL−V161)の値もVALIDフィールド172(STATE_TBL−V171)に転送される。   Similarly, in the cycle t20, the response queue read pointer 10 (RDPT10) is incremented from “0” to “1”. Correspondingly, in cycle t21, the value of the request queue write pointer field 162 (STATE_TBL 162) is transferred to the request queue write pointer field 172 (STATE_TBL 172). The value of the VALID field 161 (STATE_TBL-V161) is also transferred to the VALID field 172 (STATE_TBL-V171).

また、VALIDフィールド161(STATE_TBL−V161)がイネーブルとなると共に、要求キュー用ライトポインタフィールド162(STATE_TBL162)に要求キュー用ライトポインタ6の値である“3”がセットされる。
この結果、サイクルt21において、状態VALIDフィールド171及びPRIO_HIGH_RQQ35がイネーブルとなると共に、要求キュー用ライトポインタフィールド162が“2”となり、調停回路12は、応答パケットに優先して要求パケットを選択する。この結果、要求パケットが送出され、要求キュー用リードポインタ7(RDPT7)がインクリメントされる。
Further, the VALID field 161 (STATE_TBL-V161) is enabled, and “3” which is the value of the request queue write pointer 6 is set in the request queue write pointer field 162 (STATE_TBL162).
As a result, in cycle t21, the status VALID field 171 and PRIO_HIGH_RQQ35 are enabled, and the request queue write pointer field 162 is set to “2”, and the arbitration circuit 12 selects the request packet in preference to the response packet. As a result, the request packet is transmitted, and the request queue read pointer 7 (RDPT7) is incremented.

このように、本実施形態の一例としてのSC2′は、第1実施形態の一例といてのSC2と同様に、応答パケットを大量に受信した場合でも、調停回路12によって要求パケットを選択して送出することができる。
このため、要求パケットが先行の応答パケットを追い越してはならないという制限を満たしつつ、待たされた要求パケットを優先することが可能となる。この結果、応答処理の合間に要求処理を割り込ませることになり、処理の並列度を向上させ、性能の低下を防止することができる。
As described above, the SC 2 ′ as an example of the present embodiment selects and transmits the request packet by the arbitration circuit 12 even when a large amount of response packets are received, similarly to the SC 2 as an example of the first embodiment. can do.
For this reason, it is possible to give priority to the waited request packet while satisfying the restriction that the request packet should not overtake the preceding response packet. As a result, the request process is interrupted between the response processes, the parallelism of the process can be improved, and the performance can be prevented from deteriorating.

更に、本実施形態の制御回路に必要となるFF(フリップフロップ)のビット数は、キューのエントリ数をNとすると、2logNとなる。N=8の場合は6ビット、N=64の場合は12ビットであり、従来に比べてより一層少ない回路規模で実現できる。
(3)その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
Furthermore, the number of FFs (flip-flops) required for the control circuit of this embodiment is 2 log 2 N, where N is the number of queue entries. When N = 8, it is 6 bits, and when N = 64, it is 12 bits, which can be realized with a smaller circuit scale than in the prior art.
(3) Others Regardless of the embodiment described above, various modifications can be made without departing from the spirit of the present embodiment.

例えば、上記の実施形態の例においては、情報処理装置20をマルチプロセッサシステムとして説明したが、これに限定されるものではない。例えば、本実施形態のSCは、マルチコアのシングルプロセッサシステム等の他のアーキテクチャのシステムにも適用可能である。
また、図3,図5の信号出力は例示に過ぎず、例えば、調停回路12が、要求キュー部30が選択したときに、RQ PRIO31の値をディスエーブルに設定して出力してもよい。他の信号の値も適宜変更してもよい。
For example, in the example of the above embodiment, the information processing apparatus 20 has been described as a multiprocessor system, but the present invention is not limited to this. For example, the SC of this embodiment can be applied to a system with another architecture such as a multi-core single processor system.
3 and 5 is merely an example. For example, when the request queue unit 30 selects the arbitration circuit 12, the value of the RQ PRIO 31 may be set to disable and output. The values of other signals may be changed as appropriate.

(4)付記
上記の実施形態に関し、更に以下の付記を開示する。
(付記1)
複数の演算処理装置に接続されるシステム制御装置において、
前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、
前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部と、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記要求よりも前記応答を先に出力するとともに、前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記応答よりも前記要求を先に出力する調停部と、を有することを特徴とするシステム制御装置。
(4) Additional Notes The following additional notes are disclosed regarding the above embodiment.
(Appendix 1)
In a system controller connected to a plurality of arithmetic processing units,
A request holding unit for storing a request from the first arithmetic processing device among the plurality of arithmetic processing devices;
A response holding unit for storing a response to the second arithmetic processing device among the plurality of arithmetic processing devices corresponding to the request from the first arithmetic processing device;
When a request is stored in the request holding unit, when a response is already held in the response holding unit, the response is output before the request, and when a request is stored in the request holding unit And an arbitration unit that outputs the request earlier than the response when a response is not yet held in the response holding unit.

(付記2)
前記応答保持部は複数のエントリを有し、
前記システム制御装置はさらに、
前記応答保持部が有する複数のエントリのいずれかを指定する読み出しポインタを有し、
前記調停部は、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したことを検知することにより、前記要求保持部に要求が格納されてから新たに格納された要求が存在しないと判定することを特徴とする付記1記載のシステム制御装置。
(Appendix 2)
The response holding unit has a plurality of entries,
The system control device further includes:
A read pointer for designating one of a plurality of entries of the response holding unit;
The mediation unit
After the request is stored in the request holding unit, it is detected that the read pointer has made a round of the plurality of entries and specifies all of the plurality of entries, so that the request is stored in the request holding unit. The system control apparatus according to appendix 1, wherein it is determined that there is no newly stored request.

(付記3)
前記システム制御装置はさらに、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したかを示す状態保持部を有することを特徴とする付記1又は2記載のシステム制御装置。
(Appendix 3)
The system control device further includes:
The supplementary note 1 or 2, further comprising: a state holding unit that indicates whether the read pointer has cycled through the plurality of entries and specified all of the plurality of entries after the request is stored in the request holding unit. System controller.

(付記4)
複数の演算処理装置とシステム制御装置とを有する情報処理装置において、
前記システム制御装置は、
前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、
前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部と、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記要求よりも前記応答を先に出力するとともに、前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記応答よりも前記要求を先に出力する調停部と、を有することを特徴とする情報処理装置。
(Appendix 4)
In an information processing apparatus having a plurality of arithmetic processing units and a system control unit,
The system controller is
A request holding unit for storing a request from the first arithmetic processing device among the plurality of arithmetic processing devices;
A response holding unit for storing a response to the second arithmetic processing device among the plurality of arithmetic processing devices corresponding to the request from the first arithmetic processing device;
When a request is stored in the request holding unit, when a response is already held in the response holding unit, the response is output before the request, and when a request is stored in the request holding unit An information processing apparatus comprising: an arbitration unit that outputs the request before the response when a response is not yet held in the response holding unit.

(付記5)
前記応答保持部は複数のエントリを有し、
前記システム制御装置はさらに、
前記応答保持部が有する複数のエントリのいずれかを指定する読み出しポインタを有し、
前記調停部は、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したことを検知することにより、前記要求保持部に要求が格納されてから新たに格納された要求が存在しないと判定することを特徴とする付記4記載の情報処理装置。
(Appendix 5)
The response holding unit has a plurality of entries,
The system control device further includes:
A read pointer for designating one of a plurality of entries of the response holding unit;
The mediation unit
After the request is stored in the request holding unit, it is detected that the read pointer has made a round of the plurality of entries and specifies all of the plurality of entries, so that the request is stored in the request holding unit. The information processing apparatus according to appendix 4, wherein it is determined that there is no newly stored request.

(付記6)
前記システム制御装置はさらに、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したかを示す状態保持部を有することを特徴とする付記4又は5記載の情報処理装置。
(Appendix 6)
The system control device further includes:
The supplementary note 4 or 5, further comprising: a state holding unit that indicates whether the read pointer has made a round of the plurality of entries and has designated all of the plurality of entries after the request is stored in the request holding unit. Information processing device.

(付記7)
複数の演算処理装置に接続されるとともに、前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部とを備えたシステム制御装置の制御方法において、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記システム制御装置が有する調停部が、前記要求よりも前記応答を先に出力し、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記調停部が、前記応答よりも前記要求を先に出力することを特徴とするシステム制御装置の制御方法。
(Appendix 7)
A request holding unit for storing a request from the first arithmetic processing device among the plurality of arithmetic processing devices and corresponding to a request from the first arithmetic processing device. In a control method of a system control device including a response holding unit that stores a response to a second arithmetic processing device among the plurality of arithmetic processing devices,
When a request is stored in the request holding unit, when a response is already held in the response holding unit, the arbitration unit of the system control device outputs the response before the request,
When a request is stored in the request holding unit, the arbitration unit outputs the request before the response when a response is not yet held in the response holding unit. Control method.

(付記8)
前記応答保持部は複数のエントリを有し、
前記システム制御装置はさらに、
前記応答保持部が有する複数のエントリのいずれかを指定する読み出しポインタを有し、
前記調停部は、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したことを検知することにより、前記要求保持部に要求が格納されてから新たに格納された要求が存在しないと判定することを特徴とする付記7記載のシステム制御装置の制御方法。
(Appendix 8)
The response holding unit has a plurality of entries,
The system control device further includes:
A read pointer for designating one of a plurality of entries of the response holding unit;
The mediation unit
After the request is stored in the request holding unit, it is detected that the read pointer has made a round of the plurality of entries and specifies all of the plurality of entries, so that the request is stored in the request holding unit. The system control device control method according to appendix 7, wherein it is determined that there is no newly stored request.

(付記9)
前記システム制御装置はさらに、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したかを示す状態保持部を有することを特徴とする付記7又は8記載のシステム制御装置の制御方法。
(Appendix 9)
The system control device further includes:
The appendix 7 or 8, further comprising a state holding unit that indicates whether the read pointer has cycled through the plurality of entries and designated all of the plurality of entries after the request is stored in the request holding unit. Method for controlling the system controller of the system.

1…CPU(演算処理装置)
2…システムコントローラ(SC、システム制御装置)
3…IO
4…MAC
5…DRAM
6…要求キュー用ライトポインタ
7…要求キュー用読み出しポインタ
8…要求キュー(要求保持部)
9…応答キュー用ライトポインタ
10…応答キュー用リードポインタ(読み出しポインタ)
11…応答キュー(応答保持部)
12…調停回路(調停部)
13…要求用資源使用カウンタ
14…応答用資源使用カウンタ
15…状態カウンタ(状態保持部)
16…状態テーブル(状態保持部)
17…状態テーブル
18…比較回路
20…情報処理システム(情報処理装置)
1 ... CPU (arithmetic processing unit)
2 ... System controller (SC, system controller)
3 ... IO
4 ... MAC
5 ... DRAM
6. Request queue write pointer 7. Request queue read pointer 8. Request queue (request holding unit)
9 ... Response queue write pointer 10 ... Response queue read pointer (read pointer)
11 ... Response queue (response holding unit)
12 ... Arbitration circuit (arbitration unit)
13 ... Request resource use counter 14 ... Response resource use counter 15 ... Status counter (status holding unit)
16 ... Status table (status holding unit)
17 ... Status table 18 ... Comparison circuit 20 ... Information processing system (information processing apparatus)

Claims (5)

複数の演算処理装置に接続されるシステム制御装置において、
前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、
前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部と、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記要求よりも前記応答を先に出力するとともに、前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記応答よりも前記要求を先に出力する調停部と、を有することを特徴とするシステム制御装置。
In a system controller connected to a plurality of arithmetic processing units,
A request holding unit for storing a request from the first arithmetic processing device among the plurality of arithmetic processing devices;
A response holding unit for storing a response to the second arithmetic processing device among the plurality of arithmetic processing devices corresponding to the request from the first arithmetic processing device;
When a request is stored in the request holding unit, when a response is already held in the response holding unit, the response is output before the request, and when a request is stored in the request holding unit And an arbitration unit that outputs the request earlier than the response when a response is not yet held in the response holding unit.
前記応答保持部は複数のエントリを有し、
前記システム制御装置はさらに、
前記応答保持部が有する複数のエントリのいずれかを指定する読み出しポインタを有し、
前記調停部は、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したことを検知することにより、前記要求保持部に要求が格納されてから新たに格納された要求が存在しないと判定することを特徴とする請求項1記載のシステム制御装置。
The response holding unit has a plurality of entries,
The system control device further includes:
A read pointer for designating one of a plurality of entries of the response holding unit;
The mediation unit
After the request is stored in the request holding unit, it is detected that the read pointer has made a round of the plurality of entries and specifies all of the plurality of entries, so that the request is stored in the request holding unit. The system control apparatus according to claim 1, wherein it is determined that there is no newly stored request.
前記システム制御装置はさらに、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したかを示す状態保持部を有することを特徴とする請求項1又は2記載のシステム制御装置。
The system control device further includes:
3. A state holding unit that indicates whether the read pointer has made a round of the plurality of entries and specifies all of the plurality of entries after a request is stored in the request holding unit. The system controller as described.
複数の演算処理装置とシステム制御装置とを有する情報処理装置において、
前記システム制御装置は、
前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、
前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部と、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記要求よりも前記応答を先に出力するとともに、前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記応答よりも前記要求を先に出力する調停部と、を有することを特徴とする情報処理装置。
In an information processing apparatus having a plurality of arithmetic processing units and a system control unit,
The system controller is
A request holding unit for storing a request from the first arithmetic processing device among the plurality of arithmetic processing devices;
A response holding unit for storing a response to the second arithmetic processing device among the plurality of arithmetic processing devices corresponding to the request from the first arithmetic processing device;
When the request is stored in the request holding unit, when the response is already held in the response holding unit, the response is output before the request, and the request is stored in the request holding unit An information processing apparatus comprising: an arbitration unit that outputs the request before the response when a response is not yet held in the response holding unit.
複数の演算処理装置に接続されるとともに、前記複数の演算処理装置のうち第1の演算処理装置からの要求を格納する要求保持部と、前記第1の演算処理装置からの要求に対応する、前記複数の演算処理装置のうち第2の演算処理装置への応答を格納する応答保持部とを備えたシステム制御装置の制御方法において、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記システム制御装置が有する調停部が、前記要求よりも前記応答を先に出力し、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記調停部が、前記応答よりも前記要求を先に出力することを特徴とするシステム制御装置の制御方法。
A request holding unit for storing a request from the first arithmetic processing device among the plurality of arithmetic processing devices and corresponding to a request from the first arithmetic processing device. In a control method of a system control device including a response holding unit that stores a response to a second arithmetic processing device among the plurality of arithmetic processing devices,
When a request is stored in the request holding unit, when a response is already held in the response holding unit, the arbitration unit of the system control device outputs the response before the request,
When a request is stored in the request holding unit, the arbitration unit outputs the request before the response when a response is not yet held in the response holding unit. Control method.
JP2012075889A 2012-03-29 2012-03-29 System controller, information processor, and control method of system controller Pending JP2013206247A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012075889A JP2013206247A (en) 2012-03-29 2012-03-29 System controller, information processor, and control method of system controller
US13/736,119 US20130262797A1 (en) 2012-03-29 2013-01-08 System controller, information processing apparatus, and method of controlling system controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012075889A JP2013206247A (en) 2012-03-29 2012-03-29 System controller, information processor, and control method of system controller

Publications (1)

Publication Number Publication Date
JP2013206247A true JP2013206247A (en) 2013-10-07

Family

ID=49236660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012075889A Pending JP2013206247A (en) 2012-03-29 2012-03-29 System controller, information processor, and control method of system controller

Country Status (2)

Country Link
US (1) US20130262797A1 (en)
JP (1) JP2013206247A (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250005A (en) * 1998-03-05 1999-09-17 Nec Corp Bus controlling method, its device and storage medium storing bus control program
JP2001142844A (en) * 1999-11-11 2001-05-25 Nec Kofu Ltd Livelock preventing system
US7000060B2 (en) * 2002-09-27 2006-02-14 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US7065595B2 (en) * 2003-03-27 2006-06-20 International Business Machines Corporation Method and apparatus for bus access allocation
US7525986B2 (en) * 2004-10-28 2009-04-28 Intel Corporation Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools
US8478950B2 (en) * 2008-07-29 2013-07-02 Synopsys, Inc. Data processing circuit with arbitration between a plurality of queues
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines

Also Published As

Publication number Publication date
US20130262797A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
US20160314018A1 (en) Method for work scheduling in a multi-chip system
JP3871305B2 (en) Dynamic serialization of memory access in multiprocessor systems
US7076597B2 (en) Broadcast invalidate scheme
US8190820B2 (en) Optimizing concurrent accesses in a directory-based coherency protocol
US8412888B2 (en) Cache-based speculation of stores following synchronizing operations
US7047320B2 (en) Data processing system providing hardware acceleration of input/output (I/O) communication
US8131974B2 (en) Access speculation predictor implemented via idle command processing resources
US11748174B2 (en) Method for arbitration and access to hardware request ring structures in a concurrent environment
US11461151B2 (en) Controller address contention assumption
US10782896B2 (en) Local instruction ordering based on memory domains
WO2015134100A1 (en) Method and apparatus for memory allocation in a multi-node system
WO2015134099A1 (en) Multi-core network processor interconnect with multi-node connection
JPH10289214A (en) Variable grain size type memory sharing method for cluster of symmetrical multiprocessor
US6976148B2 (en) Acceleration of input/output (I/O) communication through improved address translation
WO2013118010A1 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US8086766B2 (en) Support for non-locking parallel reception of packets belonging to a single memory reception FIFO
US11960945B2 (en) Message passing circuitry and method
KR20180027646A (en) Register file for I / O packet compression
US10997075B2 (en) Adaptively enabling and disabling snooping bus commands
US8352687B2 (en) Performance optimization and dynamic resource reservation for guaranteed coherency updates in a multi-level cache hierarchy
US7783842B2 (en) Cache coherent I/O communication
US20160328276A1 (en) System, information processing device, and method
JP2013206247A (en) System controller, information processor, and control method of system controller
US8930628B2 (en) Managing in-line store throughput reduction
JP2017142730A (en) Memory access control device, memory access control method, and program