JP2008046997A - 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置 - Google Patents

調停回路、クロスバ、リクエスト選択方法、及び情報処理装置 Download PDF

Info

Publication number
JP2008046997A
JP2008046997A JP2006223670A JP2006223670A JP2008046997A JP 2008046997 A JP2008046997 A JP 2008046997A JP 2006223670 A JP2006223670 A JP 2006223670A JP 2006223670 A JP2006223670 A JP 2006223670A JP 2008046997 A JP2008046997 A JP 2008046997A
Authority
JP
Japan
Prior art keywords
request
unit
group
requests
units
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006223670A
Other languages
English (en)
Other versions
JP5270077B2 (ja
Inventor
Junji Ichimiya
淳次 市宮
Takayuki Kinoshita
貴行 木下
Shintaro Itozawa
慎太郎 糸澤
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 JP2006223670A priority Critical patent/JP5270077B2/ja
Priority to EP20070106876 priority patent/EP1895430B1/en
Priority to US11/740,658 priority patent/US7830902B2/en
Priority to KR20070049785A priority patent/KR100870691B1/ko
Priority to CNB2007101040966A priority patent/CN100565487C/zh
Publication of JP2008046997A publication Critical patent/JP2008046997A/ja
Application granted granted Critical
Publication of JP5270077B2 publication Critical patent/JP5270077B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ユニットの何れかから発行されたリクエストが長時間、未処理となるのを回避するための技術を提供する。
【解決手段】セレクタ732には、SMモジュール710、及びIOモジュール720からそれぞれ、キューバッファ部711毎にリクエストが出力される。プライオリティ・ロジック731は、各キューバッファ部711のキュー制御部712から出力されるQueue exist信号により、未処理のリクエストが存在するユニットを特定し、そのユニットのなかでリクエストを選択すべきユニットを、そのときに有効としている規則に従って選択する。その規則は、カウンタ733が出力するキャリー信号により複数回、動的に変更する。セレク732にはその選択結果に応じた選択信号を出力し、選択したユニットのリクエストを選択・出力させる。
【選択図】図1

Description

本発明は、ユニットが複数、接続されたクロスバに、そのユニット毎にそれぞれ発行されるリクエストのなかから一つを選択するための技術に関する。
近年、コンピュータ(情報処理装置)のなかには、物理的に分離したユニットを複数、実装する構成が採用されたものがある。そのユニットとしては、CPUとメモリを搭載したシステムボード(SB)と、ハードディスク装置やPCIスロットなどのIOデバイスを搭載したIOユニットとが用意されるのが普通である。そのようなユニットを用意するのは、CPU資源やメモリ資源を状況に応じて柔軟に割り当てられるためである。つまり、それらをより効率的に活用できるという利点があるためである。その構成を採用したコンピュータには、システムボード、及びIOユニットはそれぞれ1つ以上、搭載される。クロスバは、それらのユニット間の接続に用いられる。
図6は、クロスバにより複数のユニットを接続したコンピュータの構成を説明する図である。図6に示すように、1つ以上のシステムボード10、及びIOユニット20は共に、2つのグローバル・アドレス・クロスバ(以降「アドレス・クロスバ」と略記)30、及び4つのグローバル・データ・クロスバ(以降「データ・クロスバ」と略記)40とそれぞれ接続されている。マネージングボード(MMB:Management Board)50は、管理専用ユニットであり、各ユニット10〜40とはSMバスにより接続されている。
2つのアドレス・クロスバ30は、同時に同じリクエスト制御を行っている。それにより、アドレス・クロスバ30はハードウェア的に2重化されている。4つのデータ・クロスバ40が用意されているのは、通常、一度に大量のデータが転送されるためである。
2つのアドレス・クロスバ30にはそれぞれ「#0」「#1」が表記されている。このことから、2つのアドレス・クロスバ30のうちの一方のみを指す場合には、符号の後に「#0」或いは「#1」を付すことにする。これは他でも同様である。
図7は、システムボード10、及びIOユニット20の構成例を説明する図である。
システムボード10は、4つのCPU101、2つのFWH(Firm Ware Hub)102、ノース・ブリッジ(North Bridge)103、4つのメモリ・スイッチ(図中「Mem Swich」と表記)104、及び各メモリ・スイッチ104に接続された複数のメモリ105を備えた構成となっている。他方のIOユニット20は、サウス・ブリッジ(South Bridge)201、そのブリッジ201に接続された2つのSER202、各SER202に接続されたICH6、及び各ICH6に接続された6個のコントローラ211〜216を備えた構成となっている。コントローラとしては、FWH211、SIO(Super IO)コントローラ212、BMC(Baseboard ManagementController)213、VGA(Video Graphics Array)コントローラ214、2つのLANアダプタ215、及び216がICH6203に接続されている。BMC213は、MMB50との間で通信を行うためのものである。ICH6は、I/Oコントローラ・ハブである。図7に示すコントローラ211〜216は一例であり、その種類や数は任意に変更できる。それらはIOユニット20単位で任意に決定しても良い。
IOユニット20のサウス・ブリッジ201は、2つのアドレス・クロスバ30、及び4つのデータ・クロスバ40とそれぞれ接続されている。そのブリッジ201は、SER202、及びICH6を介して各コントローラ211〜216を制御する。コントローラ211〜216の何れかが取得したデータを転送する場合、そのためのリクエスト(アドレスリクエスト)を発行してアドレス・クロスバ30に出力する。システムボード10からデータ・クロスバ40を介して転送されるデータを受信した場合には、SER202、及びICH6を介して送出すべきコントローラに送出し、データの格納、出力、或いは送信を行わせる。
システムボード10上の4つのCPU101は、メモリ105、他のシステムボード10、或いはIOユニット20へのリード/ライトコマンドを発行してノース・ブリッジ103に出力する。ノース・ブリッジ103は、各CPU101から入力したコマンドを一旦、格納し、優先順位に従ってそのなかから一つを選択し、それをリクエスト(アドレスリクエストとして発行し、アドレス・クロスバ30、及び4つのメモリ・スイッチ104にそれぞれ出力する。
データ・クロスバ40を介して転送されるデータは、メモリ・スイッチ104により受信されてノース・ブリッジ103に出力され、そのブリッジ103によりそれを必要とするCPU101に渡される。他のシステムボード10、或いはIOユニット20に転送すべきデータは、メモリ・スイッチ104によりデータ・クロスバ40に送信され転送される。以降は説明の便宜上、システムボード10、及びIOユニット20からそれぞれアドレス・クロスバ30に発行・出力されるリクエストは「CPUリクエスト」「IOリクエスト」とそれぞれ呼ぶことにする。
各システムボード10、及び各IOユニット20はそれぞれ、必要に応じてリクエストをアドレス・クロスバ30に出力する。それにより、リクエストはアドレス・クロスバ30に集約される形となって、未処理のリクエストが複数ユニット分、存在する状況となり易い。このようなことから、アドレス・クロスバ30には発行したユニットが異なる複数のリクエストのなかから一つを選択するための調停回路を搭載させている。図8は、従来の調停回路の構成を説明する図である。
各システムボード10、及び各IOユニット20がそれぞれ発行・出力したリクエストは、システムボード用のモジュール(module for System Board:以降「SMモジュール」と記す)310、IOユニット用のモジュール(module for IO Board:以降「IOモジュール」と記す)320に一旦、格納される。モジュール310には、ユニット別にリクエストを格納するために複数のキューバッファ部311が備えられている。各キューバッファ部311は、その制御を行うキュー制御部(図中「Queue Control」と表記)312、及びリクエスト格納用のバッファ313を備えている。そのバッファ313は、複数のリクエストを格納可能であり、図中に表記の「queue1」〜「queue5」はそれぞれバッファ313に格納されたリクエストを表している。「1」〜「5」の数字は、その値が小さくなるほど前に格納されたことを示している。それにより例えば「queue1」は最も前に格納されたリクエストであることを表している。このようなキューバッファ部311は、特には図示していないが、IOモジュール320にもユニット別に用意されている。このことから、IOモジュール320に用意されたキューバッファ部にもSMモジュール310と同じ符号を付すことにする。
従来の調停回路(Arbiter)330は、プライオリティ・ロジック(図中「Priority」と表記)331、及びセレクタ332を備えた構成となっている。セレクタ332には、SMモジュール310、及びIOモジュール320からそれぞれ、キューバッファ部311毎にリクエストが出力される。出力されるリクエストは最も前に格納されたリクエストである。
各キューバッファ部311のキュー制御部312は、バッファ313に格納されたリクエストが存在するか否かを示すQueue exist信号をプライオリティ・ロジック331に出力する。ロジック331は、その信号により、未処理のリクエストが存在するユニットを特定し、そのユニットのなかでリクエストを選択すべきユニットを定められた規則(プライオリティルール)に従って選択する。セレクタ332にはその選択結果に応じた選択信号を出力し、選択したユニットのリクエストを選択・出力させる。そのリクエストは、それを送信すべきユニットに送信されるか、或いはブロードキャストされる。そのブロードキャストにより、他のユニット全てにリクエストが送信されることとなる。
プライオリティ・ロジック331は、リクエストを選択したユニットに対応するキューバッファ部311のキュー制御部312に、そのリクエストの選択を通知する。その通知により、キュー制御部312は選択されたリクエストを消去する。残っているリクエストが存在している場合には、各リクエストのなかで最も前に格納したリクエストをセレクタ332に出力させる。それにより、未処理のリクエストのみをバッファ313に残す。新たに発行されたリクエストを受信した場合には、バッファ313上の空き領域を探し、そこにそのリクエストを格納する。
図9は、従来の調停回路に採用される規則によって決定される優先順序を説明する図である。図9において、「リクエスト1」〜「リクエスト8」はそれぞれ発行元の異なるリクエストである。初期プライオリティ状態は、発行元(ユニット)間に定められた優先順序の初期状態を表している。それにより、例えばリクエスト1を発行する発行元が最も優先順位が高く、リクエスト8を発行する発行元が最も優先順位が低いことを表している。選択リクエスト(selected request)は、セレクタ332により選択・出力されるリクエストに相当する。
発行元間の優先順位は、実際に選択されたリクエストによって変更される。リクエスト2が選択された場合には、リクエスト2の発行元を最も低い優先順位にし、リクエスト3の発行元を最も高い優先順位にする。同様に、リクエスト5が選択された場合には、リクエスト5の発行元を最も低い優先順位にし、リクエスト6の発行元を最も高い優先順位にする。リクエスト8が選択された場合には、リクエスト8の発行元を最も低い優先順位にし、リクエスト1の発行元を最も高い優先順位にする。つまり初期プライオリティ状態に戻す。そのようにして、リクエストを選択する度に優先順序を変更することにより、均等に発行元からのリクエストを選択できるようにしている。
上記規則に従ったリクエストの選択を行う場合、実際に選択されるリクエストの順序は状況に応じて以下のようになる。図10、及び図11を参照して、具体的に説明する。
図10は、システムボード10、及びIOユニット20が共に5ユニット実装された場合に、従来の調停回路によって選択されるリクエストの順序を説明する図である。図10(a)は、調停回路330が選択対象とするリクエストを発行するユニットを示し、図10(b)は実際に選択されたリクエストの順序を示している。
図10(a)において、「CPU#0」〜「CPU#4」はそれぞれ異なるシステムボード10から発行されるリクエストを表している。同様に「IO#0」〜「IO#4」はそれぞれ異なるIOユニット20から発行されるリクエストを表している。「CPU#0」〜「CPU#4」を表記した枠に310を付しているのは、それらのリクエストはSMモジュール310に格納されているからである。「IO#0」〜「IO#4」を表記した枠に320を付しているのも同じ理由からである。
ここでの優先順序としては、優先順位の高い方から、「IO#0」〜「IO#4」、「CPU#0」〜「CPU#4」と想定している。未処理のリクエストは全てのユニットで存在していることを想定している。そのような優先順序であり、未処理のリクエストが全てのユニットで存在している状況では、プライオリティ・ロジック331によって図10(b)に示すような順序でリクエストが選択される。想定した優先順序の通りに、「IO#0」〜「IO#4」、「CPU#0」〜「CPU#4」の順序でリクエストが選択される。
図11は、システムボード10が5ユニット、及びIOユニット20が1ユニット実装された場合に、従来の調停回路によって選択されるリクエストの順序を説明する図である。図10と同様に、図11(a)は、調停回路330が選択対象とするリクエストを発行するユニットを示し、図11(b)は実際に選択されたリクエストの順序を示している。
ここでの優先順序としては、優先順位の高い方から、「CPU#0」、「IO#0」、「CPU#1」〜「CPU#4」と想定している。未処理のリクエストは全てのユニットに存在し、「IO#0」のみは2つ存在していることを想定している。そのような優先順序であり、未処理のリクエストが全てのユニットに存在している状況では、プライオリティ・ロジック331によって図11(b)に示すような順序でリクエストが選択される。想定した優先順序の通りに、「CPU#0」、「IO#0」、「CPU#1」〜「CPU#4」の順序でリクエストが選択され、その後も同じ順序で「CPU#0」、「IO#0」、「CPU#1」、「CPU#2」が選択されている。
特開平05−342178号公報 特開2000−112876号公報 特開2006−65457号公報 特開2004−5727号公報
図9に示すように発行元となるユニット間の優先順序を変更することにより、均等にユニットからのリクエストを選択(処理)することができる。しかし、各ユニットがリクエストの発行を比較的に短い時間間隔で行うようなリクエスト状況では、各ユニットが発行したリクエストは順次、処理しなければならないため(図10)、各ユニットのリクエストが選択されてから次に選択されるまでの時間は長くなる。その時間は、リクエストの発行元となるユニットの数が多くなるほど長くなる。また、図11に示すように、或るユニットのみが連続して複数のリクエストを発行したとしても、そのようなリクエスト状況では、2番目以降のリクエストは他のユニットが後に発行したリクエストを選択してからでないと選択されなくなる。このようなことから、発行してから実際に選択されるまでの時間間隔はリクエスト状況に大きく依存する。複数のリクエストを連続して発行した場合には、最後のリクエストを発行してから実際に選択されるまでの時間間隔はリクエスト状況によって大きく変動する。これは、発行されてから実際に選択されるまでの時間間隔(処理時間)が非常に長くなるリクエストが生じる可能性があることを意味する。
処理時間が非常に長いリクエストを発行したユニットでは、その資源の利用効率が低下し、それによってコンピュータ(システム)全体の性能が低下する。処理時間が一定時間以上となると、つまりタイムアウトとなると、発行したリクエストの処理にエラーが発生したと見なされ、そのリクエストが再発行される。そのようなタイムアウトは、性能を大きく低下させる原因となるだけでなく、システム停止の状態に陥る原因となりうる。このようなことから、ユニットの何れかから発行されたリクエストが長時間、未処理となるのを回避することは極めて重要と考えられる。
本発明は、ユニットの何れかから発行されたリクエストが長時間、未処理となるのを回避するための技術を提供することを目的とする。
本発明の第1、及び第2の態様の調停回路は共に、ユニットが複数接続されるクロスバに搭載される、該ユニットがそれぞれ発行するリクエストのなかから一つを選択することを前提とし、ユニットが分けられた複数のグループごとに、同一グループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、第一のリクエスト選択手段が前記グループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、を備え、更にそれぞれ以下の手段を具備する。
第1の態様の調停回路は、予め定められた前記複数のグループ間の優先関係に従って、第二のリクエスト選択手段にリクエストを選択させる選択制御手段と、を備え、グループ間の優先関係は所定時間間隔ごとに変更される。
なお、上記ユニットとして、1つ以上のCPUを搭載したシステムボード、及び周辺装置との接続用のIOユニットがそれぞれ1つ以上、クロスバに接続されている場合に、複数のグループは、該システムボードのみが属する第1のグループ、及び該IOユニットのみが属する第2のグループの2つであり、選択制御手段は、時間間隔毎に、第2のグループより第1のグループの優先順位を一時的に高くする、ことが望ましい。
第2の態様の調停回路は、予め定められた前記複数のグループ間の優先関係に従って、第二のリクエスト選択手段にリクエストを選択させる選択制御手段とを備え、グループ間の優先関係は動的に変更される。
なお、上記選択制御手段は、グループ別にリクエストが発行された回数を計数する複数の計数手段、を備え、優先関係は、該複数の計数手段がグループ別に計数した回数を基に動的に変更する、ことが望ましい。
本発明の第1及び第2の態様のクロスバは共に、ユニットが複数、接続されることを前提とし、それぞれ上記第1及び第2の態様の調停回路を具備する。
本発明の第1及び第2の態様のリクエスト選択方法は共に、ユニットが複数、接続されるクロスバに、該ユニットがそれぞれ発行するリクエストのなかから一つを選択させるために用いられることを前提とし、それぞれ以下のようにリクエストの選択を行う。
第1の態様のリクエスト選択方法では、ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択し、予め定めた時間間隔毎に変更するグループ間の優先関係に従って、グループ毎に選択したリクエストのなかから一つを選択する。
第2の態様のリクエスト選択方法では、ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択し、グループ間の優先関係を動的に変更し、該優先関係に従って、グループ毎に選択したリクエストのなかから一つを選択する。
本発明の情報処理装置は、それぞれがリクエストを発行する、複数のグループに分けられた複数の処理部と、複数の処理部から発行されたリクエストの調停を行う、同一グループに属する処理部がそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、第一のリクエスト選択手段がグループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、予め定められた複数のグループ間の優先関係に従って、第二のリクエスト選択手段にリクエストを選択させる選択制御手段とを備え、グループ間の優先関係は動的に変更される調停手段とを備えている。
本発明では、ユニット(処理部)を複数のグループに分け、グループ毎に、同一グループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択し、所定時間間隔毎に変更するグループ間の優先関係に従って、グループ毎に選択したリクエストのなかから一つを選択する。
グループ毎に選択したリクエストのなかから一つを選択するためのグループ間の優先関係を所定時間間隔毎に変更することにより、その時間間隔毎に優先順位を高くするグループに属するユニットから発行のリクエストが選択される単位時間当たりの回数は、リクエスト状況に係わらず、一定数以上に維持される。このため、時間間隔毎に優先的にリクエストを選択させるグループとして、発行したリクエストが長時間、未処理となる危険性が比較的に高いユニットが属するグループを選ぶことにより、リクエスト状況に係わらず、発行したリクエストが長時間、未処理となるユニットが生じるのを回避できるようになる。
グループ間の優先関係を動的に変更する場合には、その変更に伴い、同じリクエスト状況であってもグループで選択される単位時間当たりのリクエスト数が変化する。このため、例えばリクエスト状況に応じて、発行したリクエストが長時間、未処理となる危険性が比較的に高いユニットが属するグループの優先度を動的に高くすることにより、発行したリクエストが長時間、未処理となるユニットが生じるのを回避できるようになる。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
<第1の実施の形態>
図1は、第1の実施の形態による調停回路の構成を説明する図である。その調停回路(Arbiter)730は、図6、或いは図7に示すアドレス・クロスバ30に、システムボード10、及びIOユニット20がそれぞれ発行するリクエストの選択用に搭載されるものである。それにより本実施の形態によるクロスバは、その調停回路730を搭載したアドレス・クロスバ30として実現される。本実施の形態による情報処理装置は、そのクロスバ30によりシステムボード10、及びIOユニット20を相互接続させることにより実現されている。システムボード10、及びIOユニット20はそれぞれ処理部に相当する。
各システムボード10、及び各IOユニット20がそれぞれ発行・出力したリクエストは、システムボード用のモジュール(module for System Board:以降「SMモジュール」と記す)710、IOユニット用のモジュール(module for IO Board:以降「IOモジュール」と記す)720に一旦、格納される。モジュール710には、ユニット別にリクエストを格納するために複数のキューバッファ部711が備えられている。各キューバッファ部711は、その制御を行うキュー制御部(図中「Queue Control」と表記)712、及びリクエスト格納用のバッファ713を備えている。そのバッファ713は、複数のリクエストを格納可能であり、図中に表記の「queue1」〜「queue5」はそれぞれバッファ713に格納されたリクエストを表している。「1」〜「5」の数字は、その値が小さくなるほど前に格納されたことを示している。それにより例えば「queue1」は最も前に格納されたリクエストであることを表している。このようなキューバッファ部711は、特には図示していないが、IOモジュール720にもユニット別に用意されている。このことから、IOモジュール720に用意されたキューバッファ部にもSMモジュール710と同じ符号を付すことにする。
本実施の形態による調停回路(Arbiter)730は、図1に示すように、プライオリティ・ロジック(図中「Priority」と表記)731、セレクタ732、及びカウンタ733を備えた構成となっている。セレクタ732には、SMモジュール710、及びIOモジュール720からそれぞれ、キューバッファ部711毎にリクエストが出力される。出力されるリクエストは最も前に格納されたリクエストである。
各キューバッファ部711のキュー制御部712は、バッファ713に格納されたリクエストが存在するか否かを示すQueue exist信号をプライオリティ・ロジック731に出力する。ロジック731は、その信号により、未処理のリクエストが存在するユニットを特定し、そのユニットのなかでリクエストを選択すべきユニットを、そのときに有効としている(適用させている)規則(プライオリティルール)に従って選択する。セレク732にはその選択結果に応じた選択信号を出力し、選択したユニットのリクエストを選択・出力させる。そのリクエストは、それを送信すべきユニットに送信されるか、或いはブロードキャストされる。そのブロードキャストを行う場合には、他のユニット全てにリクエストが送信されることとなる。
有効とする規則は、カウンタ733からの信号により動的に変更する。そのカウンタ733は、例えばカウント可能な最大値までカウントするとカウント値が0となり、論理値が1のキャリー信号を出力するタイプのものである。カウントするクロックは、例えばシステムクロック、或いはそれを分周したものである。プライオリティ・ロジック731は、例えばカウンタ733から論理値が1のキャリー信号を入力する度に例えば複数回一時的に規則を変更する。以降、キャリー信号を出力する時間間隔を「計測期間」、一時規則を変更する時間間隔を「期間(period)A」と呼ぶことにする。
期間A毎に一時的に有効とする規則とは、例えばシステムボード10、及びIOユニット20のうちの一方の種類から発行されたリクエストを優先して選択するというものである。その規則(以降「一時規則」と呼ぶ)により、一方の種類(以降「優先種類」)が発行のリクエストは期間A内で1回、強制的に選択される。その一時規則を有効としていないときには、例えば図9に示すような規則(以降「従来規則」)を有効とさせる。その従来規則は、一時規則を定期的に有効とさせることから、言い換えれば、その一時規則で優先種類としているユニットが発行のリクエストを強制的に選択するようにしていることから、その優先種類としているユニットは対象外としてリクエストの選択を行うものとしている。
一時規則を有効とするときに選択すべきリクエストは、例えば従来規則により選択している。それにより実際には、従来規則によるリクエストの選択は、優先種類、そうでない種類別に行い、優先種類、そうでない種類別に選択されるリクエストのなかから1つをそれらの間の優先関係に従って選択する形となっている。言い換えれば、優先種類とそうでない種類にユニット10、20をグループ分けして、グループ毎にリクエストを一つ選択し、グループ毎に選択したリクエストのなかから一つをグループ間の優先関係に従って選択するようになっている。このため、一時規則による優先順序の変更は、優先種類、及びそうでない種類間の優先関係の変更により行われている。
プライオリティ・ロジック731は、リクエストを選択したユニットに対応するキューバッファ部711のキュー制御部712に、そのリクエストの選択を通知する。その通知により、キュー制御部712は選択されたリクエストを消去する。残っているリクエストが存在している場合には、各リクエストのなかで最も前に格納したリクエストをセレクタ732に出力させる。それにより、未処理のリクエストのみをバッファ713に残す。新たに発行されたリクエストを受信した場合には、バッファ713上の空き領域を探し、そこにそのリクエストを格納する。
図2は、システムボード10、及びIOユニット20が共に5ユニット実装された場合に、本実施の形態による調停回路730によって選択されるリクエストの順序を説明する図である。図2(a)は、調停回路730が選択対象とするリクエストを発行するユニットを示し、図2(b)は実際に選択されたリクエストの順序を示している。
図2(a)において、「CPU#0」〜「CPU#4」はそれぞれ異なるシステムボード10から発行されるリクエストを表している。同様に「IO#0」〜「IO#4」はそれぞれ異なるIOユニット20から発行されるリクエストを表している。「CPU#0」〜「CPU#4」を表記した枠に710を付しているのは、それらのリクエストはSMモジュール710に格納されているからである。「IO#0」〜「IO#4」を表記した枠に720を付しているのも同じ理由からである。
ここでは、優先種類としてはシステムボード10を想定している。従来規則での優先順序(初期状態)としては、優先順位の高い方から、「IO#0」〜「IO#4」と想定している。一時規則の適用時での優先順序(初期状態)としては、優先順位の高い方から、「CPU#0」〜「CPU#4」と想定している。未処理のリクエストは全てのユニットで複数、存在していることを想定している。そのような優先種類、優先順序であり、未処理のリクエストが全てのユニットで複数、存在している状況では、プライオリティ・ロジック731によって図2(b)に示すような順序でリクエストが選択される。期間Aは3リクエスト選択分の長さであることから、その期間A毎に1回、システムボード10が発行のリクエストが優先順位に従って順次、選択されている。そのリクエストが選択される間は、IOユニット20が発行のリクエストが優先順序に従って順次、選択されている。
上記のように一時規則を定期的に有効とすることにより、優先種類のユニットが発行のリクエストを所望の時間間隔で強制的に選択させることができる。リクエスト状況に係わらず、優先種類のユニットが発行のリクエストが選択される単位時間当たりの回数を維持させることができる。このため、発行したリクエストの処理時間が長くなる可能性の高いユニットの種類を優先種類とした場合には、図9に示すような規則のみを有効とする場合と比較して、その優先種類のユニットが発行のリクエストの処理時間はより短くすることができる。それにより、その処理時間が長くなることによる性能の低下は抑えることができ、タイムアウトによるシステム停止は確実に回避できるようになる。
マネージングボード(MMB)50は、各部(チップセット)10〜40に対して様々な命令を実行させることや、その情報の入手などを行う。一方、各部10〜40は、内部に設定用のレジスタを備えており、各種設定はそのレジスタに格納するようになっている。このことから、一時規則とする規則や優先種類などの設定をそのレジスタに格納し、プライオリティ・ロジック731にそのレジスタに格納された設定に従って動作させることにより、上述したような動作を行わせることができる。
カウンタ733に入力するクロックの周期を変更可能とした場合には、そのレジスタに、期間Aの長さを設定として格納できるようにしても良い。期間A毎に強制的に選択するリクエストの数を設定として格納できるようにしても良い。このようなことから、様々な変形を行うことができる。
<第2の実施の形態>
上記第1の実施の形態では、優先種類(一時規則の有効時にリクエスト選択が優先されるユニットの種類)は固定的に設定するようになっている。これに対し第2の実施の形態は、リクエストをサンプリングして、その結果から優先種類の設定を自動的に変更するようにしたものである。リクエストをサンプリングした結果に応じて設定を変更することから、そのときの状況に応じて適切な優先種類を選択できるようになる。それにより、性能の低下はより抑えることができ、タイムアウトによるシステム停止はより確実に回避できるようになる。
第2の実施の形態では、第1の実施の形態と同じ、或いは基本的に同じものには同一の符号を付すことにする。それにより、第1の実施の形態から異なる部分に着目する形で説明する。
図3は、第2の実施の形態による調停回路の構成を説明する図である。その調停回路(Arbiter)900は、第1の実施の形態と同じく、図6、或いは図7に示すアドレス・クロスバ30に、システムボード10、及びIOユニット20がそれぞれ発行するリクエストの選択用に搭載されるものである。それにより本実施の形態によるクロスバは、その調停回路730を搭載したアドレス・クロスバ30として実現される。本実施の形態による情報処理装置は、そのクロスバ30によりシステムボード10、及びIOユニット20を相互接続させることにより実現されている。
各システムボード10、及び各IOユニット20がそれぞれ発行・出力したリクエストは、SMモジュール710、IOモジュール720に一旦、格納される。調停回路900には、それらのモジュール710、720にそれぞれ格納されるリクエストをモジュール710、720別にサンプリングして優先種類を設定するプライオリティ制御モジュール(Priority control module)910が搭載されている。そのモジュール910は、図3に示すように、2つのカウンタ911、912、比較(Compare)回路913、及びタイマ914を備えた構成となっている。
SMモジュール710に搭載のキューバッファ部711の何れかにリクエストが入力される度に、システムボード10が発行のリクエストをカウント用のカウンタ911に1パルスが出力される。同様に、IOモジュール720に搭載のキューバッファ部711の何れかにリクエストが入力される度に、IOユニット20が発行のリクエストをカウント用のカウンタ912に1パルスが出力される。それらのカウンタ911、912は、タイマ914が一定時間毎に出力するキャリー信号によりリセットされるようになっている。それにより、各カウンタ911、912はそれぞれ、一定時間内にシステムボード10、IOユニット20がそれぞれ発行したリクエスト数をカウントする。
タイマ914が出力するキャリー信号は、比較回路913にも入力される。その比較回路913は、キャリー信号(例えば論理値が1のアクティブのキャリー信号)を入力すると、各カウンタ911、912から直前に入力したカウント値(一定時間内に発行されたリクエスト数)の比較を行い、その比較結果をpriority control信号S1としてプライオリティ・ロジック901に出力する。その信号S1の論理値は、カウンタ911のカウント値<カウンタ912のカウント値、の関係を満たしていれば1(信号レベルは“H”)とし、その関係を満たしていなければ0(信号レベルは“L”)とする。その論理値は、比較結果から変更すべきか否か特定することにより、変更すべき状況となった場合に変更する。
図4は、priority control信号S1の信号レベルと設定される優先種類の関係を説明する図である。図中、「設定モード」は優先種類に応じて設定されるモードのことであり、「CPU優先」はシステムボード10を優先種類とするモードの名称である。同様に「IO優先」はIOユニット20を優先種類とするモードの名称である。それにより図4は、priority control信号S1の信号レベルが“H”のときにはCPU優先モードが設定され、その信号レベルが“L”のときにはIO優先モードが設定されることを示している。そのようにモード設定を行うのは、一般的には全体のリクエスト数が少ないユニットが発行のリクエストを優先させる方が、システム性能の低下を抑える効果がより高いと考えられるためである。
プライオリティ・ロジック901はpriority control信号S1を監視し、その信号S1の信号レベルで指定されるモードで動作する。そのロジック901自体は、図5(a)に示すように、システムボード10が発行のリクエストを対象に選択を行うCPUプライオリティ・ロジック(図中「CPU_priority」と表記)1001、IOユニット20が発行のリクエストを対象に選択を行うIOプライオリティ・ロジック(図中「IO_priority」と表記)1002、及び各ロジック1001、1002の選択結果を入力し、そのうちの一方を選択するALLプライオリティ・ロジック(図中「ALL_priority」と表記)1003を備えた構成となっている。
各ロジック1001、及び1002はそれぞれ、例えば図9に示すような規則に従ってリクエストの選択を行うものである。priority control信号S1はALLプライオリティ・ロジック1003に入力される。それにより、そのロジック1003は、各ロジック1001、及び1002からそれぞれ選択結果を入力した場合に、その信号レベルから特定される方の選択結果を優先して選択する。このため、優先種類のユニットが発行したリクエストは全て無くなるまで優先して選択され、それとは異なる種類のユニットが発行したリクエストはその後に選択されることとなる。
図5は、5ユニットのシステムボード10がそれぞれ発行したリクエストが全て複数、存在し、IOユニット20が発行したリクエストは1ユニットのみ複数、存在する場合に、第2の実施の形態による調停回路900によって選択されるリクエストの順序を説明する図である。図5(a)は、ユニット毎に残っている未処理のリクエストを示し、図5(b)は実際に選択されたリクエストの順序を示している。
ここでは、優先種類としてはIOユニット20を想定している。システムボード10が発行のリクエストの優先順序(初期状態)としては、優先順位の高い方から、「CPU#0」〜「CPU#4」と想定している。IOユニット20の何れからも新たなリクエストの発行は行われていないことを想定している。このため、図5(a)に示すような状況下でIO優先モードが設定されていれば、つまりpriority control信号S1の信号レベルが“H”であれば、図5(b)に示すように、2つのリクエストIO#0が連続して選択された後、システムボード10が発行のリクエストが優先順序に従って順次、選択される。
なお、第2の実施の形態では、priority control信号S1の信号レベルが変化しない限り、その信号レベルで指定される優先順位に従って、システムボード10、及びIOユニット20のうちの何れか一方が発行したリクエストが無くなるまで選択し続けるようになっているが、そのような優先順位に従った選択は、定めた期間のみ、或いは定めた回数のみ有効としても良い。その期間のみ、或いは回数のみ有効とさせる場合には、その期間、或いは回数はリクエストのサンプリング結果から自動的に設定するようにしても良い。
システムボード10、及びIOユニット20のうちの何れか一方を優先させるモード設定については、それぞれモード別に満たすべき関係を定義して行うようにしても良い。具体的には、例えばCPU優先モードの設定は、カウンタ911のカウント値<カウンタ912のカウント値−α(予め定めた定数)、の関係を満たした場合に行うようにしても良い。これはIO優先モードの設定でも同様である。IO優先モード、及びCPU優先モードの何れも設定されていない状況では、3つのロジック1001〜1003を用いて図9に示すような規則に従ったリクエストの選択を行わせても良い。定数αの値やタイマ914に計時させる時間間隔などはマネージングボード50、或いはSAL(Scientific Applications on Linux)などを用いて任意に設定できるようにしても良い。
実装が任意に行えるユニット(処理部)はシステムボード10、及びIOユニット20の2種類であることから、本実施の形態では、ユニットのグループ分けはその種類で分けて行っている。それによりグループ数は2となっている。しかし、システムボード10、及びIOユニット20以外の種類のユニットも実装可能、或いはそれらのうちの少なくとも一方が更に複数種類に分類可能な場合には、3つ以上のグループに分け、グループ毎に選択したリクエストのなかから一つをグループ間の優先関係に従って選択するようにしても良い。このようなこともあり、実装可能なユニットの種類は限定されるものではない。
(付記1)
ユニットが複数接続されるクロスバに搭載される、該ユニットがそれぞれ発行するリクエストのなかから一つを選択する調停回路において、
前記ユニットが分けられた複数のグループごとに、同一グループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、
前記第一のリクエスト選択手段が前記グループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、
予め定められた前記複数のグループ間の優先関係に従って、前記第二のリクエスト選択手段にリクエストを選択させる選択制御手段と、を備え、前記グループ間の優先関係は所定時間間隔ごとに変更されることを特徴とする調停回路。
(付記2)
前記ユニットとして、1つ以上のCPUを搭載したシステムボード、及び周辺装置との接続用のIOユニットがそれぞれ1つ以上、前記クロスバに接続されている場合に、前記複数のグループは、該システムボードのみが属する第1のグループ、及び該IOユニットのみが属する第2のグループの2つであり、
前記選択制御手段は、前記時間間隔毎に、前記第2のグループより前記第1のグループの優先順位を一時的に高くする、
ことを特徴とする付記1記載の調停回路。
(付記3)
ユニットが複数接続されるクロスバに搭載される、該ユニットがそれぞれ発行するリクエストのなかから一つを選択する調停回路において、
前記ユニットが分けられた複数のグループごとに、同一グループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、
前記第一のリクエスト選択手段が前記グループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、
予め定められた前記複数のグループ間の優先関係に従って、前記第二のリクエスト選択手段にリクエストを選択させる選択制御手段とを備え、前記グループ間の優先関係は動的に変更されることを特徴とする調停回路。
(付記4)
前記選択制御手段は、前記グループ別に前記リクエストが発行された回数を計数する複数の計数手段、を備え、前記優先関係は、該複数の計数手段がグループ別に計数した回数を基に動的に変更する、
ことを特徴とする付記3記載の調停回路。
(付記5)
前記選択制御手段は、前記複数の計数手段が計数した回数が最小のグループの優先順位を最も高くする、
ことを特徴とする付記4記載の調停回路。
(付記6)
前記ユニットとして、1つ以上のCPUを搭載したシステムボード、及び周辺装置との接続用のIOユニットがそれぞれ1つ以上、前記クロスバに接続されている場合に、前記複数のグループは、該システムボードのみが属するグループ、及び該IOユニットのみが属するグループの2つである、
ことを特徴とする付記3記載の調停回路。
(付記7)
ユニットが複数、接続されるクロスバにおいて、
前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第1のリクエスト選択手段と、
前記第1のリクエスト選択手段が前記グループ毎に選択したリクエストのなかから一つを選択する第2のリクエスト選択手段と、
予め定めた時間間隔毎に変更する前記グループ間の優先関係に従って、前記第2のリクエスト選択手段にリクエストを選択させる選択制御手段と、
を具備することを特徴とするクロスバ。
(付記8)
ユニットが複数、接続されるクロスバにおいて、
前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第1のリクエスト選択手段と、
前記第1のリクエスト選択手段が前記グループ毎に選択したリクエストのなかから一つを選択する第2のリクエスト選択手段と、
前記グループ間の優先関係を動的に変更し、該優先関係に従って前記第2のリクエスト選択手段にリクエストを選択させる選択制御手段と、
を具備することを特徴とするクロスバ。
(付記9)
前記ユニットとして、1つ以上のCPUを搭載したシステムボード、及び周辺装置との接続用のIOユニットがそれぞれ1つ以上、前記クロスバに接続されている場合に、前記複数のグループは、該システムボードのみが属するグループ、及び該IOユニットのみが属するグループの2つである、
ことを特徴とする付記7、または8記載のクロスバ。
(付記10)
ユニットが複数、接続されるクロスバに、該ユニットがそれぞれ発行するリクエストのなかから一つを選択させるための方法において、
前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択し、
予め定めた時間間隔毎に変更する前記グループ間の優先関係に従って、前記グループ毎に選択したリクエストのなかから一つを選択する、
ことを特徴とするリクエスト選択方法。
(付記11)
ユニットが複数、接続されるクロスバに、該ユニットがそれぞれ発行するリクエストのなかから一つを選択させるための方法において、
前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択し、
前記グループ間の優先関係を動的に変更し、該優先関係に従って、前記グループ毎に選択したリクエストのなかから一つを選択する、
ことを特徴とするリクエスト選択方法。
(付記12)
前記ユニットとして、1つ以上のCPUを搭載したシステムボード、及び周辺装置との接続用のIOユニットがそれぞれ1つ以上、前記クロスバに接続されている場合に、前記複数のグループは、該システムボードのみが属するグループ、及び該IOユニットのみが属するグループの2つである、
ことを特徴とする付記10、または11記載のリクエスト選択方法。
(付記13)
それぞれがリクエストを発行する、複数のグループに分けられた複数の処理部と、
前記複数の処理部から発行されたリクエストの調停を行う、同一グループに属する処理部がそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、 前記第一のリクエスト選択手段が前記グループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、予め定められた前記複数のグループ間の優先関係に従って、前記第二のリクエスト選択手段にリクエストを選択させる選択制御手段とを備え、前記グループ間の優先関係は動的に変更される調停手段とを備えたことを特徴とする情報処理装置。
第1の実施の形態による調停回路の構成を説明する図である。 システムボード10、及びIOユニット20が共に5ユニット実装された場合に、第1の実施の形態による調停回路730によって選択されるリクエストの順序を説明する図である。 第2の実施の形態による調停回路の構成を説明する図である。 priority control信号S1の信号レベルと設定される優先種類の関係を説明する図である。 5ユニットのシステムボード10がそれぞれ発行したリクエストが全て複数、存在し、IOユニット20が発行したリクエストは1ユニットのみ複数、存在する場合に、第2の実施の形態による調停回路900によって選択されるリクエストの順序を説明する図である。 クロスバにより複数のユニットを接続したコンピュータの構成を説明する図である。 システムボード10、及びIOユニットの構成例を説明する図である。 従来の調停回路の構成を説明する図である。 第2の実施の形態における各種信号波形の変化を示すタイミングチャートである。 システムボード10、及びIOユニット20が共に5ユニット実装された場合に、従来の調停回路によって選択されるリクエストの順序を説明する図である。 システムボード10が5ユニット、及びIOユニット20が1ユニット実装された場合に、従来の調停回路によって選択されるリクエストの順序を説明する図である。
符号の説明
10 システムボード
20 IOユニット
30 アドレス・クロスバ
50 マネージメントボード
710 SMモジュール
720 IOモジュール
730、900 調停回路
731、901 プライオリティ/ロジック
732 セレクタ
733、911、912 カウンタ
910 プライオリティ制御モジュール
913 比較回路
914 タイマ

Claims (9)

  1. ユニットが複数接続されるクロスバに搭載される、該ユニットがそれぞれ発行するリクエストのなかから一つを選択する調停回路において、
    前記ユニットが分けられた複数のグループごとに、同一グループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、
    前記第一のリクエスト選択手段が前記グループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、
    予め定められた前記複数のグループ間の優先関係に従って、前記第二のリクエスト選択手段にリクエストを選択させる選択制御手段と、を備え、前記グループ間の優先関係は所定時間間隔ごとに変更されることを特徴とする調停回路。
  2. 前記ユニットとして、1つ以上のCPUを搭載したシステムボード、及び周辺装置との接続用のIOユニットがそれぞれ1つ以上、前記クロスバに接続されている場合に、前記複数のグループは、該システムボードのみが属する第1のグループ、及び該IOユニットのみが属する第2のグループの2つであり、
    前記選択制御手段は、前記時間間隔毎に、前記第2のグループより前記第1のグループの優先順位を一時的に高くする、
    ことを特徴とする請求項1記載の調停回路。
  3. ユニットが複数接続されるクロスバに搭載される、該ユニットがそれぞれ発行するリクエストのなかから一つを選択する調停回路において、
    前記ユニットが分けられた複数のグループごとに、同一グループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、
    前記第一のリクエスト選択手段が前記グループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、
    予め定められた前記複数のグループ間の優先関係に従って、前記第二のリクエスト選択手段にリクエストを選択させる選択制御手段とを備え、前記グループ間の優先関係は動的に変更されることを特徴とする調停回路。
  4. 前記選択制御手段は、前記グループ別に前記リクエストが発行された回数を計数する複数の計数手段、を備え、前記優先関係は、該複数の計数手段がグループ別に計数した回数を基に動的に変更する、
    ことを特徴とする請求項3記載の調停回路。
  5. ユニットが複数、接続されるクロスバにおいて、
    前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第1のリクエスト選択手段と、
    前記第1のリクエスト選択手段が前記グループ毎に選択したリクエストのなかから一つを選択する第2のリクエスト選択手段と、
    予め定めた時間間隔毎に変更する前記グループ間の優先関係に従って、前記第2のリクエスト選択手段にリクエストを選択させる選択制御手段と、
    を具備することを特徴とするクロスバ。
  6. ユニットが複数、接続されるクロスバにおいて、
    前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択する第1のリクエスト選択手段と、
    前記第1のリクエスト選択手段が前記グループ毎に選択したリクエストのなかから一つを選択する第2のリクエスト選択手段と、
    前記グループ間の優先関係を動的に変更し、該優先関係に従って前記第2のリクエスト選択手段にリクエストを選択させる選択制御手段と、
    を具備することを特徴とするクロスバ。
  7. ユニットが複数、接続されるクロスバに、該ユニットがそれぞれ発行するリクエストのなかから一つを選択させるための方法において、
    前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択し、
    予め定めた時間間隔毎に変更する前記グループ間の優先関係に従って、前記グループ毎に選択したリクエストのなかから一つを選択する、
    ことを特徴とするリクエスト選択方法。
  8. ユニットが複数、接続されるクロスバに、該ユニットがそれぞれ発行するリクエストのなかから一つを選択させるための方法において、
    前記ユニットを複数のグループに分け、該グループ毎に、同じグループに属するユニットがそれぞれ発行したリクエストのなかから一つを選択し、
    前記グループ間の優先関係を動的に変更し、該優先関係に従って、前記グループ毎に選択したリクエストのなかから一つを選択する、
    ことを特徴とするリクエスト選択方法。
  9. それぞれがリクエストを発行する、複数のグループに分けられた複数の処理部と、
    前記複数の処理部から発行されたリクエストの調停を行う、同一グループに属する処理部がそれぞれ発行したリクエストのなかから一つを選択する第一のリクエスト選択手段と、 前記第一のリクエスト選択手段が前記グループごとに選択したリクエストの中から、一つのリクエストを選択する第二のリクエスト選択手段と、予め定められた前記複数のグループ間の優先関係に従って、前記第二のリクエスト選択手段にリクエストを選択させる選択制御手段とを備え、前記グループ間の優先関係は動的に変更される調停手段とを備えたことを特徴とする情報処理装置。
JP2006223670A 2006-08-18 2006-08-18 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置 Expired - Fee Related JP5270077B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006223670A JP5270077B2 (ja) 2006-08-18 2006-08-18 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置
EP20070106876 EP1895430B1 (en) 2006-08-18 2007-04-24 Arbiter, crossbar, request selection method and information processing device
US11/740,658 US7830902B2 (en) 2006-08-18 2007-04-26 Arbiter, crossbar, request selection method and information processing device
KR20070049785A KR100870691B1 (ko) 2006-08-18 2007-05-22 조정 회로, 크로스바, 요청 선택 방법 및 정보 처리 장치
CNB2007101040966A CN100565487C (zh) 2006-08-18 2007-05-23 仲裁器、交叉开关、请求选择方法以及信息处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006223670A JP5270077B2 (ja) 2006-08-18 2006-08-18 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2008046997A true JP2008046997A (ja) 2008-02-28
JP5270077B2 JP5270077B2 (ja) 2013-08-21

Family

ID=38720664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006223670A Expired - Fee Related JP5270077B2 (ja) 2006-08-18 2006-08-18 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置

Country Status (5)

Country Link
US (1) US7830902B2 (ja)
EP (1) EP1895430B1 (ja)
JP (1) JP5270077B2 (ja)
KR (1) KR100870691B1 (ja)
CN (1) CN100565487C (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211720A1 (en) * 2009-02-13 2010-08-19 The Regents Of The University Of Michigan Crossbar circuitry and method of operation of such crossbar circuitry
JP2011076160A (ja) * 2009-09-29 2011-04-14 Nec Corp 調停優位性の切り替え方法、調停装置、及びプロセッサ
JP2012103763A (ja) * 2010-11-08 2012-05-31 Sony Corp アービトレーション回路、および、その制御方法
US8255610B2 (en) 2009-02-13 2012-08-28 The Regents Of The University Of Michigan Crossbar circuitry for applying a pre-selection prior to arbitration between transmission requests and method of operation of such crossbar circuitry
US8549207B2 (en) 2009-02-13 2013-10-01 The Regents Of The University Of Michigan Crossbar circuitry for applying an adaptive priority scheme and method of operation of such crossbar circuitry
US9514074B2 (en) 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2478795B (en) 2010-03-19 2013-03-13 Imagination Tech Ltd Requests and data handling in a bus architecture
US8787368B2 (en) * 2010-12-07 2014-07-22 Advanced Micro Devices, Inc. Crossbar switch with primary and secondary pickers
JP5978849B2 (ja) * 2012-08-09 2016-08-24 富士通株式会社 並列計算機システム、クロスバスイッチ及び並列計算機システムの制御方法
US8984206B2 (en) * 2012-10-31 2015-03-17 International Business Machines Corporation Weightage-based scheduling for hierarchical switching fabrics
US8902899B2 (en) 2013-02-08 2014-12-02 International Business Machines Corporation Input buffered switching device including bypass logic
TWI617920B (zh) * 2013-07-12 2018-03-11 密西根大學董事會 單循環仲裁
US9678906B2 (en) * 2014-03-26 2017-06-13 International Business Machines Corporation Oldest link first arbitration between links grouped as single arbitration elements
US9467396B2 (en) 2014-04-11 2016-10-11 International Business Machines Corporation Simultaneous transfers from a single input link to multiple output links with a timesliced crossbar
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构系统的外存访问接口及其访问方法
DE102014111302B4 (de) * 2014-08-07 2023-09-14 Mikro Pahlawan Unterbrechungsgesteuerter Ein-/Ausgabe-Arbiter für ein Mikrocomputersystem

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5553722A (en) * 1978-10-17 1980-04-19 Toshiba Corp Priority control system
JPS58171541U (ja) * 1982-05-12 1983-11-16 株式会社日立製作所 デ−タ処理装置
JPH04102155A (ja) * 1990-08-21 1992-04-03 Fujitsu Ltd バス使用権調停方式
JPH08171531A (ja) * 1994-12-19 1996-07-02 Fujitsu Ltd アクセス競合制御方法
JPH10228446A (ja) * 1997-02-17 1998-08-25 Shinsedai Kk バス調停システム
JP2001084219A (ja) * 1999-09-10 2001-03-30 Hitachi Ltd 可変バスアービトレーション方式
JP2001273248A (ja) * 2000-03-24 2001-10-05 Canon Inc バス制御装置及びその制御方法
JP2002533994A (ja) * 1998-12-22 2002-10-08 パワー エックス リミテッド データ交換方法およびその装置
JP2003271545A (ja) * 2002-03-12 2003-09-26 Hitachi Ltd データ処理システム
JP2004013356A (ja) * 2002-06-04 2004-01-15 Matsushita Electric Ind Co Ltd バス調停システム
JP2004038967A (ja) * 2002-07-05 2004-02-05 Samsung Electronics Co Ltd バスの使用頻度を制御できる方法及び装置
US20040083326A1 (en) * 2002-10-29 2004-04-29 Yuanlong Wang Switch scheduling algorithm
US20050125581A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Method of resource arbitration

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463696A (en) * 1992-05-27 1995-10-31 Apple Computer, Inc. Recognition system and method for user inputs to a computer system
JPH05342178A (ja) 1992-06-10 1993-12-24 Hitachi Ltd 調停回路およびそれを用いたデータ処理装置
US5463624A (en) * 1994-04-15 1995-10-31 Dsc Communications Corporation Bus arbitration method for telecommunications switching
US5930256A (en) * 1997-03-28 1999-07-27 Xerox Corporation Self-arbitrating crossbar switch
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
US6487213B1 (en) * 1998-01-05 2002-11-26 Polytechnic University Methods and apparatus for fairly arbitrating contention for an output port
US6272131B1 (en) * 1998-06-11 2001-08-07 Synchrodyne Networks, Inc. Integrated data packet network using a common time reference
JP2000112876A (ja) 1998-10-09 2000-04-21 Nec Corp バス調停装置
US6667983B1 (en) * 1999-05-27 2003-12-23 3Com Corporation Scaleable priority arbiter for arbitrating between multiple FIFO entry points of a network interface card
US6567885B1 (en) * 1999-08-16 2003-05-20 Sun Microsystems, Inc. System and method for address broadcast synchronization using a plurality of switches
US6393512B1 (en) * 1999-09-27 2002-05-21 Ati International Srl Circuit and method for detecting bank conflicts in accessing adjacent banks
US6519666B1 (en) * 1999-10-05 2003-02-11 International Business Machines Corporation Arbitration scheme for optimal performance
US7020161B1 (en) * 2000-03-31 2006-03-28 Sun Microsystems, Inc. Prescheduling arbitrated resources
US7061929B1 (en) * 2000-03-31 2006-06-13 Sun Microsystems, Inc. Data network with independent transmission channels
US6665760B1 (en) * 2000-09-29 2003-12-16 Rockwell Automation Technologies, Inc. Group shifting and level shifting rotational arbiter system
US7752400B1 (en) 2000-12-14 2010-07-06 F5 Networks, Inc. Arbitration and crossbar device and method
US7023840B2 (en) * 2001-02-17 2006-04-04 Alcatel Multiserver scheduling system and method for a fast switching element
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
TWI258081B (en) * 2002-04-04 2006-07-11 Via Tech Inc Arbitrating method and arbiter for bus grant
US7149227B2 (en) * 2002-05-31 2006-12-12 Mellanox Technologies Ltd. Round-robin arbiter with low jitter
KR20040010957A (ko) 2002-07-25 2004-02-05 엘지전자 주식회사 메모리 중재기
JP2004078508A (ja) 2002-08-16 2004-03-11 Nec Micro Systems Ltd バス調停回路、バス調停方法およびそのプログラム
JP2004199374A (ja) 2002-12-18 2004-07-15 Matsushita Electric Ind Co Ltd マルチプロセッサシステム及びバス調停方法
US7284080B2 (en) * 2003-07-07 2007-10-16 Sigmatel, Inc. Memory bus assignment for functional devices in an audio/video signal processing system
JP4160470B2 (ja) 2003-07-24 2008-10-01 富士通株式会社 入出力制御装置および入出力制御方法
US7013357B2 (en) * 2003-09-12 2006-03-14 Freescale Semiconductor, Inc. Arbiter having programmable arbitration points for undefined length burst accesses and method
JP2006065457A (ja) 2004-08-25 2006-03-09 Fuji Xerox Co Ltd インタフェース回路生成装置およびインタフェース回路
US7287111B2 (en) * 2004-09-23 2007-10-23 International Business Machines Corporation Method and system for creating and dynamically selecting an arbiter design in a data processing system
US7366811B2 (en) * 2004-12-23 2008-04-29 International Business Machines Corporation Bus arbitration system
US7299311B1 (en) * 2005-12-29 2007-11-20 Unisys Corporation Apparatus and method for arbitrating for a resource group with programmable weights
US7849256B2 (en) * 2006-07-11 2010-12-07 Advanced Micro Devices, Inc. Memory controller with ring bus for interconnecting memory clients to memory devices

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5553722A (en) * 1978-10-17 1980-04-19 Toshiba Corp Priority control system
JPS58171541U (ja) * 1982-05-12 1983-11-16 株式会社日立製作所 デ−タ処理装置
JPH04102155A (ja) * 1990-08-21 1992-04-03 Fujitsu Ltd バス使用権調停方式
JPH08171531A (ja) * 1994-12-19 1996-07-02 Fujitsu Ltd アクセス競合制御方法
JPH10228446A (ja) * 1997-02-17 1998-08-25 Shinsedai Kk バス調停システム
JP2002533994A (ja) * 1998-12-22 2002-10-08 パワー エックス リミテッド データ交換方法およびその装置
JP2001084219A (ja) * 1999-09-10 2001-03-30 Hitachi Ltd 可変バスアービトレーション方式
JP2001273248A (ja) * 2000-03-24 2001-10-05 Canon Inc バス制御装置及びその制御方法
JP2003271545A (ja) * 2002-03-12 2003-09-26 Hitachi Ltd データ処理システム
JP2004013356A (ja) * 2002-06-04 2004-01-15 Matsushita Electric Ind Co Ltd バス調停システム
JP2004038967A (ja) * 2002-07-05 2004-02-05 Samsung Electronics Co Ltd バスの使用頻度を制御できる方法及び装置
US20040083326A1 (en) * 2002-10-29 2004-04-29 Yuanlong Wang Switch scheduling algorithm
US20050125581A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Method of resource arbitration

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211720A1 (en) * 2009-02-13 2010-08-19 The Regents Of The University Of Michigan Crossbar circuitry and method of operation of such crossbar circuitry
US8230152B2 (en) * 2009-02-13 2012-07-24 The Regents Of The University Of Michigan Crossbar circuitry and method of operation of such crossbar circuitry
US8255610B2 (en) 2009-02-13 2012-08-28 The Regents Of The University Of Michigan Crossbar circuitry for applying a pre-selection prior to arbitration between transmission requests and method of operation of such crossbar circuitry
US8549207B2 (en) 2009-02-13 2013-10-01 The Regents Of The University Of Michigan Crossbar circuitry for applying an adaptive priority scheme and method of operation of such crossbar circuitry
US9514074B2 (en) 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect
US10037295B2 (en) 2009-02-13 2018-07-31 The Regents Of The University Of Michigan Apparatus and methods for generating a selection signal to perform an arbitration in a single cycle between multiple signal inputs having respective data to send
JP2011076160A (ja) * 2009-09-29 2011-04-14 Nec Corp 調停優位性の切り替え方法、調停装置、及びプロセッサ
JP2012103763A (ja) * 2010-11-08 2012-05-31 Sony Corp アービトレーション回路、および、その制御方法

Also Published As

Publication number Publication date
EP1895430A1 (en) 2008-03-05
JP5270077B2 (ja) 2013-08-21
KR100870691B1 (ko) 2008-11-27
US7830902B2 (en) 2010-11-09
CN101127020A (zh) 2008-02-20
CN100565487C (zh) 2009-12-02
EP1895430B1 (en) 2015-03-25
KR20080016439A (ko) 2008-02-21
US20080043767A1 (en) 2008-02-21

Similar Documents

Publication Publication Date Title
JP5270077B2 (ja) 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
CN102414671B (zh) 对于不同源的分级内存仲裁技术
US6442631B1 (en) Allocating system resources based upon priority
US8364876B2 (en) Computer system
US8060679B2 (en) Information processing apparatus and access control method capable of high-speed data access
US9742869B2 (en) Approach to adaptive allocation of shared resources in computer systems
JP4801725B2 (ja) 演算処理装置及び演算処理装置の制御方法
US7617344B2 (en) Methods and apparatus for controlling access to resources in an information processing system
US8725873B1 (en) Multi-server round robin arbiter
US20240143392A1 (en) Task scheduling method, chip, and electronic device
US6606677B1 (en) High speed interrupt controller
US12026628B2 (en) Processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process
US20060179172A1 (en) Method and system for reducing power consumption of a direct memory access controller
US9330038B2 (en) Computer arbitration system, bandwidth, allocation apparatus, and method thereof
US20140379846A1 (en) Technique for coordinating memory access requests from clients in a mobile device
US9965321B2 (en) Error checking in out-of-order task scheduling
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
US9710409B2 (en) Interrupt control apparatus and interrupt control method
US20120079216A1 (en) Memory control device and method
US10713188B2 (en) Inter-process signaling system and method
JP2009059276A (ja) 情報処理装置およびプログラム
CN111694507A (zh) 计算环境中的存储缓存/分层期间加速任务的装置和方法
JP2005141575A (ja) 情報処理装置およびバス制御装置
KR20070020391A (ko) 스트리밍 id 방법에 의한 dmac 발행 메커니즘

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130509

R150 Certificate of patent or registration of utility model

Ref document number: 5270077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees