JP2013206247A - System controller, information processor, and control method of system controller - Google Patents
System controller, information processor, and control method of system controller Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 33
- 230000004044 response Effects 0.000 claims abstract description 263
- 238000012545 processing Methods 0.000 claims abstract description 66
- 230000010365 information processing Effects 0.000 claims description 30
- 230000006866 deterioration Effects 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000002542 deteriorative effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
Abstract
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
図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
The
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
The MAC 104 is a controller that controls access to the DRAMs 105-1 to 105-m with the
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
また、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 |
In the
SC102は、要求されたデータが、他のCPU101の不図示のキャッシュに存在するかどうかをスヌープする。要求データが他のCPU101のキャッシュに存在する(すなわちヒット)場合、SC102は、データを有するキャッシュのCPU101に対してオーダーを発行する。
一方、要求データが他のCPU101のキャッシュに存在しない(すなわちヒットしない)場合、SC102は、MAC104にメモリ要求を送る。
The SC 102 snoops whether the requested data exists in a cache (not shown) of another
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
SC102は、オーダーを発行した先のCPU101、又はメモリ要求を発行した先のMAC4から応答パケットを受信すると、その応答パケットを、要求パケットを発行したCPU101に転送する。
図7は、従来の情報処理システム200におけるSC102の構成例を模式的に示す図である。
When receiving a response packet from the
FIG. 7 is a diagram schematically illustrating a configuration example of the
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)
The
要求キュー108は、8つのエントリ108−0〜108−7を有する先入先出し(First In First Out:FIFO)キューであり、CPU101やIO103から受信した要求パケットを格納する。
なお、以下、要求キューを示す符号としては、要求キューのエントリのうちの1つを特定する必要があるときには符号108−0〜108−7を用いるが、要求キューの任意のエントリを指すとき、或いは要求キュー全体を指すときには符号108を用いる。
The
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,
要求キュー用ライトポインタ106は、CPU101やIO103から受信した要求パケットを、要求キュー108のエントリ108−0〜108−7のいずれに書き込むかを示すポインタである。
要求キュー用リードポインタ107は、要求キュー108のエントリ108−0〜108−7のうちのいずれから要求パケットを読み出すかを示すポインタである。
The request
The request
応答キュー部140は、応答キューを処理する部分であり、応答キュー用ライトポインタ109、応答キュー用リードポインタ110、及び応答キュー111を有する。
応答キュー111は、8つのエントリ111−0〜111−7を有するFIFOキューであり、CPU101やIO103、MAC104から受信した応答パケットを格納する。
The
The
なお、以下、応答キューを示す符号としては、応答キューのエントリのうちの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,
The response
応答キュー用リードポインタ110は、応答キュー111のエントリ111−0〜111−7のうちのいずれから応答パケットを読み出すかを示すポインタである。
調停回路112は、SC102から送出されるパケットを、要求キュー部130と応答キュー部140との間で調停する回路である。つまり、調停回路112は、要求パケットと応答パケットのどちらを選択するかを制御する回路である。調停回路112は、要求キュー部130と応答キュー部140との両方から調停参加信号(不図示)を受け取り、両者の調停参加要求が競合した場合は、必ず、応答キュー部140を優先して選択する。このため、たとえ応答パケットの宛先資源がビジーであり、応答パケットを送出できない場合であっても、要求パケットが送出されることはない。
The response
The
上記のごとき、無条件で応答パケットを優先する情報処理システム200では、応答パケットが大量に発生すると、要求パケットが長時間、調停回路112で選択されずに要求キュー108で待たされてしまう。
その間、要求パケットの処理回路は動作せず、この結果、情報処理システム200の処理性能が低下する。
In the
Meanwhile, the request packet processing circuit does not operate, and as a result, the processing performance of the
このような問題を解決する手法として、要求パケットが一定時間待たされた場合、その要求パケットを応答パケットよりも優先させる手法がある。
しかし、この手法では、応答パケットと要求パケット間の順序が正しく維持されることを保障することができない。
このような問題を解決するための手法がいくつか存在し、例えば、特許文献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
しかし、特許文献1の構成においては、例えば、キューのエントリ数をNとすると、制御に必要なFF(フリップフロップ)のビット数が、N(1+log2N)となる。このとき、FFのビット数は、N=8の場合N(1+log2N)=32ビット、N=64の場合N(1+log2N)=448ビットとなり、フリップフロップのビット数が増える場合、ビット数の増加する以上に回路の規模が大きくなる。また、キューのエントリ数分の比較回路が大量に必要となり、回路が複雑化してしまう。
However, in the configuration of
このため、要求パケットより応答パケットを優先して送出する方式を採用するシステムコントローラにおいて、より小規模な回路で性能の低下を防ぐことが望ましい。
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)第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
FIG. 1 is a diagram schematically illustrating an example of a hardware configuration of an
情報処理システム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
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
MAC4は、SC2と間でDRAM5−1〜5−mに対するアクセスを制御するコントローラである。
DRAM5−1〜5−mは、CPU1−1〜1−nが演算や制御を行なうに際して、種々のデータやプログラムを格納する記憶領域である。
なお、以下、CPUを示す符号としては、複数のCPUのうち1つを特定する必要があるときには符号1−1〜1−nを用いるが、任意のCPUを指すときには符号1を用いる。
The
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
また、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 |
In the
SC2は、要求されたデータが、他のCPU1の不図示のキャッシュに存在するかどうかをスヌープする。要求データが他のCPU1のキャッシュに存在する(すなわちヒット)の場合、SC2は、データを有するキャッシュのCPU1に対してオーダーを発行する。
一方、要求データが他のCPU1のキャッシュに存在しない(すなわちヒットしない)場合、SC2は、MAC4にメモリ要求を送る。
The
On the other hand, when the request data does not exist in the cache of another CPU 1 (that is, does not hit), the
SC2は、オーダーを発行した先のCPU1、又はメモリ要求を発行した先のMAC4から応答パケットを受信すると、その応答パケットを、要求パケットを発行したCPU1に転送する。
上記の動作のために、SC2は、図2に示すように、要求パケットや応答パケットを受信して保持するFIFOキューを複数備える。
When receiving a response packet from the
For the above operation, the
図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)
要求キュー部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
The
なお、以下、要求キューを示す符号としては、要求キューのエントリのうちの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,
The
リードポインタ7は、要求キュー8のエントリ8−0〜8−7のうちのいずれから要求パケットを読み出すかを示すポインタである。
状態カウンタ15−0〜15−7は、要求キュー8の各エントリ8−0〜8−7に対応する2ビット幅のカウンタである。
この状態カウンタ15−0〜15−7は、それぞれ、後述する応答キュー用リードポインタ10と接続されている。
The
The status counters 15-0 to 15-7 are 2-bit width counters corresponding to the entries 8-0 to 8-7 of the
Each of the status counters 15-0 to 15-7 is connected to a response queue read
状態カウンタ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
On the other hand, when the values of the request
応答キュー部40は、応答キューを処理する部分であり、応答キュー用ライトポインタ9、応答キュー用リードポインタ(読み出しポインタ)10、及び応答キュー11−0〜11−7を有する。
応答キュー11は、8つのエントリ11−0〜11−7を有するFIFOキューであり、CPU1やIO3、MAC4から受信した応答パケットを格納する。
The
The
なお、以下、応答キューを示す符号としては、応答キューのエントリのうちの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,
The response
応答キュー用リードポインタ10は、応答キュー11のエントリ11−0〜11−7のうちのいずれから応答パケットを読み出すかを示すポインタである。
なお、要求キュー8、応答キュー11のいずれも、8エントリのキューとして図示されているが、エントリ数は8以外でもよい。
応答キュー部40は、応答キュー用ライトポインタ9と応答キュー用リードポインタ10との値が一致している場合、応答キュー11にはパケットが存在しないので、調停には参加しない(調停参加信号(RTN PRIO)41を送信しない)。
The response queue read
Note that both the
When the values of the response
一方、応答キュー部40は、応答キュー用ライトポインタ9と応答キュー用リードポインタ10との値が一致しない場合、調停回路12にRTN PRIO41を送る。
要求用資源使用カウンタ13は、要求パケットの宛先資源の使用数を示す要求用資源使用カウンタであり、要求パケットの宛先資源が1つ使用される度に1インクリメントされ、要求パケットの宛先資源が1つ解放される度に1デクリメントされる。
On the other hand, if the values of the response
The request
応答用資源使用カウンタ14は、応答パケットの宛先資源の使用数を示す応答用資源使用カウンタであり、応答パケットの宛先資源が1つ使用される度に1インクリメントされ、応答パケットの宛先資源が1つ解放される度に1デクリメントされる。
調停回路12は、SC2から送出されるパケットを、要求キュー部30と応答キュー部40との間で調停する回路である。つまり、調停回路12は、要求パケットと応答パケットのどちらを選択するかを制御する回路である。調停回路12は、要求キュー部30と応答キュー部40との両方から調停参加信号(RQ PRIO31,RTN PRIO41)を受け取り、両者の調停参加要求が競合した場合は、下記に記載する例外を除き、基本的には応答キュー部40を優先して選択する。このため、たとえ応答パケットの宛先資源がビジーであり、応答パケットを送出できない場合であっても、要求パケットが送出されることはない。
The response
The
したがって、応答キュー11に1つでもパケットが格納されている場合には、要求キュー8のパケットが選択されることはない。調停回路12は、このような制御を行なうことにより、要求パケットが応答パケットよりも先に送出される(要求パケットが応答パケットを追い越す)ことを阻止する。
また、要求キュー部30は、要求キュー8の各エントリ8−0〜8−7に対応する2ビット幅のカウンタである、状態カウンタ15−0〜15−7を備える。
Therefore, when even one packet is stored in the
The
状態カウンタ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
なお、以下、状態カウンタを示す符号としては、状態カウンタのうちの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.
The status counter 15 stores request packets in entries 8-0 to 8-7 of any
例えば、要求キュー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
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
つまり、要求パケットが要求キュー8にセットされた時点で、既に応答キュー11に格納されていたパケットが全て送出されており、要求パケットが応答パケットを追い越さないことが保障される。
このため、調停回路12は、要求キュー用リードポインタ10が示す要求キュー8のエントリの状態カウンタ15が“2”の場合、応答パケットよりも要求パケットを優先して選択する。
That is, when the request packet is set in the
Therefore, when the
また、応答キュー11が空の場合は、要求キュー8のパケットが格納されている全エントリに対応する状態カウンタ15に“2”をセットする。
この一連の動作のタイムチャートを図3に示す。
図3は、第1実施形態の一例としてのSC2における処理を示すタイムチャートである。
If the
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
Specifically,
また、図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,
図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
サイクルt1〜t4にかけて、応答キュー部40がパケット送出権を獲得しているので、応答キュー部40は、応答パケットが送出される度に、応答キュー用リードポインタ10(RDPT10)をインクリメントする。これと同時に、応答パケットの宛先資源の使用数をカウントする資源使用カウンタ14(USED−CT14)もインクリメントされる。
Since the
前述のように、応答パケットの宛先資源の数はここでは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
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
一方、要求パケットは、応答パケットの合間に時々送られてくる。そして、要求キュー部30は、要求パケットを受信する度に、要求キュー用ライトポインタ6(WTPT6)をインクリメントする(サイクルt7,t11,t15,t23参照)。
しかし、応答キュー11に、要求パケットよりも優先順位の高い応答パケットが格納されているため、調停回路12は、これらの要求パケットを選択しない。
On the other hand, request packets are sometimes sent between response packets. The
However, since response packets having higher priority than the request packets are stored in the
サイクル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
サイクル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
この結果、サイクル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
As described above, the
このため、要求パケットが先行の応答パケットを追い越してはならないという制限を満たしつつ、待たされた要求パケットを優先することが可能となる。この結果、応答処理の合間に要求処理を割り込ませることになり、処理の並列度を向上させ、性能の低下を防止することができる。
更に、本実施形態の制御回路に必要となる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-
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
FIG. 4 is a diagram schematically illustrating an example of SC2 ′ as an example of the second embodiment.
The
しかし、第2実施形態の一例としてのSC2′においては、要求キュー部30′が、状態カウンタ15−0〜15−7に代えて、状態テーブル(状態TBL)16,17と、比較回路18とを有する。
を有する。
それ以外の構成は、図2に示した第1実施形態の一例としてのSC2と同じであるため、説明を省略する。
However, in the
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
The
要求キュー用ライトポインタフィールド162は、後述するように、応答キュー用リードポインタ10が“0”から“1”になった時点の、要求キュー用ライトポインタ6の値を格納する。
状態テーブル17も、VALIDフィールド171と要求キュー用ライトポインタフィールド172とを有する。
The request queue write
The state table 17 also has a
VALIDフィールド171は、後述する要求キュー用ライトポインタフィールド162が有効かどうかを示すフラグであり、例えば、値にイネーブルが設定されている場合、要求キュー用ライトポインタフィールド172が有効であることを示す。
要求キュー用ライトポインタフィールド172は、応答キュー用リードポインタ10が2度目に“0”から“1”になった時点に、応答キュー用リードポインタ10が最初に“1”になったときの要求キュー用ライトポインタの値を格納する。
The
The request queue write
応答キュー用リードポインタ10が“0”から“1”にインクリメントされると、要求キュー部30′は、要求キュー8が空でなければ(つまり、エントリ8−0〜8−7のいずれかに要求パケットが格納されている場合には)、要求キュー用ライトポインタ6の値を、要求キュー用ライトポインタフィールド162にセットする。このとき、要求キュー部30′は、要求キュー用ライトポインタフィールド172が有効であることを示すために、VALIDフィールド161を、例えばイネーブルに設定する。
When the response queue read
その後、もう一度応答キュー用リードポインタ10が“0”から“1”にインクリメントされると、要求キュー部30′は、VALIDフィールド161の値をVALIDフィールド171に転送する。また、要求キュー部30′は、要求キュー用ライトポインタフィールド162の値を、要求キュー用ライトポインタフィールド172に転送する。
状態VALIDフィールド171がイネーブルである場合、調停回路12は、要求キュー用リードポインタ7が要求キュー用ライトポインタフィールド172の値に追い付くまで、要求パケットを応答パケットより優先する。
Thereafter, when the response queue read
When the
要求キュー用リードポインタ7が、要求キュー用ライトポインタフィールド172の値に追い付く(つまり、両者が同じ値になる)と、VALIDフィールド161,171がリセットされる。また、応答キュー11が空の場合、要求キュー部30′は、要求キュー用ライトポインタ6の値を直接、要求キュー用ライトポインタフィールド172にセットすると共に、VALIDフィールド171をイネーブルにする。
When the request queue read
比較回路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
第2実施形態の一例としてのSC2′は、このような構成を有することにより、各エントリに対応する状態カウンタ15−0〜15−7を設けた場合と、同等の制御を行なうことができる。更に、要求キュー8のエントリ数が増加しても、状態テーブル16,17のビット幅が要求キュー用ライトポインタ6のビット幅分だけしか増加しないため、FFの必要ビット数はほとんど増えない。
The
この一連の動作のタイムチャートを図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
Here, STATE_TBL-V161 indicates the value of the
それ以外の信号及びカウンタは、図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
サイクルt1〜t4にかけて、応答キュー部40がパケット送出権を獲得しているので、応答キュー部40は、応答パケットが送出される度に、応答キュー用リードポインタ10(RDPT10)をインクリメントする。これと同時に、応答パケットの宛先資源の使用数をカウントする資源使用カウンタ14(USED−CT14)もインクリメントされる。
Since the
前述のように、応答パケットの宛先資源の数はここでは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
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
一方、要求パケットは、応答パケットの合間に時々送られてくる。そして、要求キューブ30は、要求パケットを受信する度に、要求キュー用ライトポインタ6(WTPT6)をインクリメントする(サイクルt7,t11,t15,t23参照)。
しかし、応答キュー11に、要求パケットよりも優先順位の高い応答パケットが格納されているため、調停回路12は、これらの要求パケットを選択しない。
On the other hand, request packets are sometimes sent between response packets. The
However, since response packets having higher priority than the request packets are stored in the
サイクル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
サイクル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
As a result, in cycle t21, the
このように、本実施形態の一例としてのSC2′は、第1実施形態の一例といてのSC2と同様に、応答パケットを大量に受信した場合でも、調停回路12によって要求パケットを選択して送出することができる。
このため、要求パケットが先行の応答パケットを追い越してはならないという制限を満たしつつ、待たされた要求パケットを優先することが可能となる。この結果、応答処理の合間に要求処理を割り込ませることになり、処理の並列度を向上させ、性能の低下を防止することができる。
As described above, the
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とすると、2log2Nとなる。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
3 and 5 is merely an example. For example, when the
(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
(付記3)
前記システム制御装置はさらに、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したかを示す状態保持部を有することを特徴とする付記1又は2記載のシステム制御装置。
(Appendix 3)
The system control device further includes:
The
(付記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
(付記6)
前記システム制御装置はさらに、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したかを示す状態保持部を有することを特徴とする付記4又は5記載の情報処理装置。
(Appendix 6)
The system control device further includes:
The
(付記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
(付記9)
前記システム制御装置はさらに、
前記要求保持部に要求が格納されてから前記読み出しポインタが前記複数のエントリを一巡して前記複数のエントリの全てを指定したかを示す状態保持部を有することを特徴とする付記7又は8記載のシステム制御装置の制御方法。
(Appendix 9)
The system control device further includes:
The
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
9 ... Response
11 ... Response queue (response holding unit)
12 ... Arbitration circuit (arbitration unit)
13 ... Request
16 ... Status table (status holding unit)
17 ... Status table 18 ...
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.
前記要求保持部に要求が格納された場合、前記応答保持部に応答が既に保持されているとき、前記システム制御装置が有する調停部が、前記要求よりも前記応答を先に出力し、
前記要求保持部に要求が格納された場合、前記応答保持部に応答が未だ保持されていないとき、前記調停部が、前記応答よりも前記要求を先に出力することを特徴とするシステム制御装置の制御方法。 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.
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)
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 |
-
2012
- 2012-03-29 JP JP2012075889A patent/JP2013206247A/en active Pending
-
2013
- 2013-01-08 US US13/736,119 patent/US20130262797A1/en not_active Abandoned
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 |