JP5382003B2 - 調停装置 - Google Patents

調停装置 Download PDF

Info

Publication number
JP5382003B2
JP5382003B2 JP2010548257A JP2010548257A JP5382003B2 JP 5382003 B2 JP5382003 B2 JP 5382003B2 JP 2010548257 A JP2010548257 A JP 2010548257A JP 2010548257 A JP2010548257 A JP 2010548257A JP 5382003 B2 JP5382003 B2 JP 5382003B2
Authority
JP
Japan
Prior art keywords
data
circuit
output
queue
period information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010548257A
Other languages
English (en)
Other versions
JPWO2010086906A1 (ja
Inventor
秀和 小佐野
貴行 木下
義和 岩見
誠 畑井田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2010086906A1 publication Critical patent/JPWO2010086906A1/ja
Application granted granted Critical
Publication of JP5382003B2 publication Critical patent/JP5382003B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14—Handling requests for interconnection or transfer
    • G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、コンピュータシステムや通信システムにおけるパケット転送などのデータ転送で生じる競合を調停する調停装置に関する。
従来、コンピュータシステムや通信システムにおけるパケット転送処理などのデータ転送で生じる競合を調停する調停回路が知られている。以下、この調停回路を「アービタ」という。
パケットがキューに到達してからの待ち時間を監視し、長時間待っているパケットの優先順位を高くして、パケットのキューへの滞留時間をなるべく短くしようとするなど、パケットがアービタを通過するために必要な時間を少なくする技術が考案されている。
上記技術に関連して、パケット送信時に回線上におけるパケットの衝突により送信できなかったパケットの衝突回数が既定値以上のとき、そのパケットの優先度を上げることにより、リアルタイム応答性が良く、回線上でのすみやかな衝突制御が可能にする通信制御装置が知られている。
図12は、アービタを多段に構成した場合の従来例を説明する図である。
図12に示すアービタ1201は、キュー#0に格納されたパケットの待ち時間をカウントするタイマ1202のタイマ値と、キュー#1に格納されたパケットの待ち時間をカウントするタイマ1203のタイマ値と、を比較する。そして、アービタ1201は、待ち時間の長い方のパケットを優先して出力するように、セレクタ1204を切替える。
すると、キュー#0またはキュー#1に格納されたパケットは、セレクタ1204を介してキュー#2に格納される。
アービタ1211は、キュー#2に格納されたパケットの待ち時間をカウントするタイマ1212のタイマ値と、キュー#3に格納されたパケットの待ち時間をカウントするタイマ1213のタイマ値と、を比較する。そして、アービタ1211は、待ち時間の長いパケットを優先して出力するように、セレクタ1214を切替える。
すると、キュー#2またはキュー#3に格納されたパケットが、セレクタ1214を介して出力される。以下、図12に示したように、アービタを多段に構成した回路を「多段アービタ」という。
特開昭63−278439号公報
上述したように、アービタを多段に構成する場合、後段に位置するアービタは、前段に位置するアービタを通過したパケットが前段に位置するアービタでどのくらいの時間待たされたか知ることができない。
そのため、後段に位置するアービタは、前段に位置するアービタでの待ち時間を考慮に入れてパケットの優先順位を決定することが難しかった。例えば、前段に位置するアービタでの待ち時間が長かったパケットの優先順位を、後段に位置するアービタにおいて高く設定するといった処理を行なうことが難しかった。
その結果、アービタを多段に構成した場合、この多段に構成されたアービタをパケットが通過するために必要な待ち時間を出来るだけ短くするように調停することが難しいという問題があった。
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、アービタを多段に構成した場合であっても、多段に構成されたアービタをパケットが通過するために必要な待ち時間を最小に抑える調停装置を提供することである。
上記課題を解決するために、本調停装置は、以下の構成要素を備える。
第1の記憶回路は、入力された第1のデータを保持して出力する。また、第2の記憶回路は、入力された第2のデータを保持して出力する。
第1の選択回路は、前記第1及び第2の記憶回路の出力に接続されるとともに、第1の選択信号に基づいて、前記第1又は第2のデータを選択して出力する。
第1の計数回路は、前記第1の選択回路が前記第1のデータを選択して出力するまでの第1の期間情報を計数する。
第2の計数回路は、前記第1の選択回路が前記第2のデータを選択して出力するまでの第2の期間情報を計数する。
第2の選択回路は、前記第1及び第2の計数回路の出力に接続されるとともに、第1の選択信号に基づいて、前記第1又は第2の期間情報を選択して出力する。
第1の制御回路は、前記第1及び第2の期間情報に基づいて、前記第1の選択信号を出力する。
第3の記憶回路は、前記第1の選択回路が選択して出力する前記第1又第2のデータのいずれかを保持して出力する。
第4の記憶回路は、入力された第3のデータを保持して出力する。
第3の選択回路は、前記第3及び第4の記憶回路に接続されるとともに、第2の選択信号に基づいて、前記第1の選択回路が選択して出力する前記第1又は第2のデータのいずれか又は第3のデータを選択して出力する。
第3の計数回路は、前記第3の選択回路が前記第1又は第2のデータのいずれかを選択して出力するまでの第3の期間情報を計数する。
第4の計数回路は、前記第3の選択回路が前記第3のデータを選択して出力するまでの第4の期間情報を計数する。
第2の制御回路は、前記選択された前記第1又は第2の期間情報のいずれかと前記第3の期間情報と前記第4の期間情報に基づいて、前記第2の選択信号を出力する。
以上の構成要素を備える本調停装置において、第2の制御回路は、第2の選択回路により選択された第1又は第2の期間情報のいずれかと第3の期間情報に基づいて、第2の選択信号を出力する。
そして、第3の選択回路は、第2の選択信号に基づいて、第1の選択回路が選択して出力する第1又は第2のデータのいずれか又は第3のデータを選択して出力する。
以上に説明したように、本調停装置によると、アービタを多段に構成した場合であっても、多段に構成されたアービタをパケットが通過するために必要な待ち時間を最小に抑える調停装置を提供することができる。
第1の実施例に係る多段アービタの概要を説明する図である。 第1の実施例および第2の実施例に係るキュー用タイマを説明する図である。 第1の実施例に係る多段アービタで使用するアービタの具体的な構成例を示す図である。 第1の実施例に係る多段アービタの変形例を説明する図である。 第2の実施例に係る多段アービタの概要を説明する図である。 第2の実施例に係るランク付け回路の具体的な構成例を示す図である。 第2の実施例に係る多段アービタで使用するアービタの具体的な構成例を示す図である。 第2の実施例に係る選別回路が使用する選別テーブルの例を示す図である。 第2の実施例に係る多段アービタの変形例を説明する図である。 第1の実施例に係る多段アービタを適用したコンピュータシステムの主要部を示す図である。 第2の実施例に係る多段アービタを適用したコンピュータシステムの主要部を示す図である。 多段アービタの従来例を説明する図である。
以下、本発明の実施形態について、図1〜図11に基づいて説明する。
図1は、第1の実施例に係る多段アービタ100の概要を説明する図である。
図1に示す多段アービタ100は、キュー#0用タイマ102が出力するタイマ値とキュー#1用タイマ103が出力するタイマ値とに応じて選択信号を生成するアービタ101を備える。以下、アービタ101が生成する選択信号を「第1の選択信号」という。
また、多段アービタ100は、パケットを保持し出力するキュー#0と、パケットがキュー#0に格納されてから出力されるまでの時間をカウントするキュー#0用タイマ102と、を備える。
また、多段アービタ100は、パケットを保持し出力するキュー#1と、パケットがキュー#1に格納されてから出力されるまでの時間をカウントするキュー#1用タイマ103と、を備える。
また、多段アービタ100は、アービタ101が出力する第1の選択信号に応じてキュー#0が出力するパケットまたはキュー#1が出力するパケットを選択するセレクタ104を備える。
また、多段アービタ100は、アービタ101が出力する第1の選択信号に応じてキュー#0用タイマ102またはキュー#1用タイマ103が出力するタイマ値を選択するセレクタ105を備える。
また、多段アービタ100は、加算回路115が出力するタイマ値とキュー#2用タイマ112が出力するタイマ値とに応じて選択信号を生成するアービタ111を備える。以下、アービタ111が生成する選択信号を「第2の選択信号」という。
また、多段アービタ100は、セレクタ104が出力するパケットを保持し出力するキュー#2と、セレクタ105が出力するタイマ値を保持し出力するタイマ値用キュー#2と、パケットがキュー#2に格納されてから出力されるまでの時間をカウントするキュー#2用タイマ112と、を備える。
また、多段アービタ100は、パケットを保持し出力するキュー#3と、パケットがキュー#3に格納されてから出力されるまでの時間をカウントするキュー#3用タイマ113と、を備える。
また、多段アービタ100は、アービタ111が出力する第2の選択信号に応じてキュー#2が出力するパケットまたはキュー#3が出力するパケットを選択するセレクタ114を備える。
また、多段アービタ100は、タイマ値用キュー#2が出力するタイマ値とキュー#2用タイマ112が出力するタイマ値とを加算する加算回路115と、を備える。
なお、図1に示すキュー#0用タイマ102は、キュー#0に保持された1のパケットに対するタイマであるが、例えば、キュー#0に最大4つのパケットが保持できる場合、それぞれのパケットに対してキュー#0用タイマ102を4つ備える。
キュー#1用タイマ103、キュー#2用タイマ112、キュー#3用タイマ113、後述するキュー#4用タイマ402、キュー#5用タイマ403、キュー#4用タイマ902およびキュー#5用タイマ903についても同様である。
以下、必要に応じ、キュー#0用タイマ102、キュー#1用タイマ103、キュー#2用タイマ112およびキュー#3用タイマ113、キュー#4用タイマ402、キュー#5用タイマ403、キュー#4用タイマ902およびキュー#5用タイマ903を総じて「キュー用タイマ」という。
ここで、キュー#0の出力端とキュー#1の出力端は、セレクタ104と接続されている。
キュー#0用タイマ102の出力端は、アービタ101とセレクタ105とに接続されている。同様に、キュー#1用タイマ103の出力端は、アービタ101とセレクタ105とに接続されている。
アービタ101の出力端は、セレクタ104とセレクタ105とに接続されている。
セレクタ104の出力端は、キュー#2と接続されている。また、セレクタ105の出力端は、タイマ値用キュー#2と接続されている。
キュー#2の出力端とキュー#3の出力端は、セレクタ114と接続されている。また、タイマ値用キュー#2の出力端とキュー#2用タイマ112の出力端は、加算回路115と接続されている。
加算回路115の出力端とキュー#3用タイマ113の出力端は、アービタ111に接続されている。アービタ111の出力端は、セレクタ114に接続されている。
以上の構成において、キュー#0は、入力されるパケットを順次格納し、格納した順番にパケットをセレクタ104に出力する。なお、キュー#0は、データの先入れ先出しFIFO(First In First Out)を実現する記憶手段である。後述するキュー#1〜#5も同様である。
キュー#0用タイマ102は、キュー#0にパケットが格納されてから同パケットがセレクタ104に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値をアービタ101およびセレクタ105に出力する。
キュー#1は、入力されるパケットを順次格納し、格納した順番にパケットをセレクタ104に出力する。
キュー#1用タイマ103は、キュー#1にパケットが格納されてから同パケットがセレクタ104に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値をアービタ101およびセレクタ105に出力する。
アービタ101は、キュー#0用タイマ102が出力するタイマ値とキュー#1用タイマ103が出力するタイマ値とを比較する。
そして、アービタ101は、セレクタ104がタイマ値の大きい方のキューの出力を選択する第1の選択信号、すなわち、セレクタ105がタイマ値の大きい方のキューのキュー用タイマの出力を選択する第1の選択信号を生成する。アービタ101は、第1の選択信号をセレクタ104およびセレクタ105に出力する。
セレクタ104は、アービタ101が出力する第1の選択信号にしたがって、キュー#0が出力するパケットまたはキュー#1が出力するパケットをキュー#2に出力する。
セレクタ105は、アービタ101が出力する第1の選択信号にしたがって、キュー#0用タイマ102が出力するタイマ値またはキュー#1用タイマ103が出力するタイマ値をタイマ値用キュー#2に出力する。
キュー#2は、セレクタ104が出力するパケットを順次格納し、格納した順番にパケットをセレクタ114に出力する。
キュー#2用タイマ112は、キュー#2にパケットが格納されてから同パケットがセレクタ114に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値を加算回路115に出力する。
タイマ値用キュー#2は、セレクタ105が出力するタイマ値を順次格納し、格納した順番にパケットを加算回路115に出力する。
キュー#3は、入力されるパケットを順次格納し、格納した順番にパケットをセレクタ114に出力する。
キュー#3用タイマ113は、キュー#3にパケットが格納されてから同パケットがセレクタ114に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値をアービタ111に出力する。
加算回路115は、タイマ値用キュー#2が出力するタイマ値とキュー#2用タイマ112が出力するタイマ値とを加算してアービタ111に出力する。
アービタ111は、加算回路115が出力するタイマ値とキュー#3用タイマ113が出力するタイマ値とを比較する。
そして、アービタ111は、タイマ値の大きいキューの出力をセレクタ114が選択する選択信号を生成する。
例えば、加算回路115が出力するタイマ値が、キュー#3用タイマ113が出力するタイマ値より大きい場合、アービタ111は、セレクタ114がキュー#2を選択する選択信号を生成する。
また、キュー#3用タイマ113が出力するタイマ値が、加算回路115が出力するタイマ値より大きい場合、アービタ111は、セレクタ114がキュー#3を選択する選択信号を生成する。
そして、アービタ111は、生成した選択信号をセレクタ114に出力する。以下、アービタ111が生成する選択信号を「第2の選択信号」という。
セレクタ114は、アービタ111が出力する第2の選択信号にしたがって、キュー#2が出力するパケットまたはキュー#3が出力するパケットを出力する。
図2は、第1の実施例および第2の実施例に係るキュー用タイマを説明する図である。
キュー用タイマ200は、タイマ値を保持し出力するラッチ回路201と、ラッチ回路201が出力するタイマ値に1を加算してセレクタ203に出力する加算回路202と、セレクタ203と、リセット204と、論理和回路205と、を備える。
ラッチ回路201の出力端は、加算回路202と接続されている。加算回路202の出力端とリセット204の出力端は、セレクタ203と接続されている。セレクタ203の出力端は、ラッチ回路201と接続されている。論理和回路205の出力端は、セレクタ203と接続されている。
なお、図2では、丸印「○」で記載された論理和回路205の出力端が、リセット204の出力端とセレクタ203とを結ぶ線と交差している。これは、丸印「○」で記載された出力端、すなわち、論理和回路205が「1」を出力した場合、セレクタ203は、リセット204が出力する出力信号を選択することを意味する。他の図面においても同様である。
以上の構成において、ラッチ回路201は、セレクタ203が出力するタイマ値を保持し出力する。
加算回路202は、ラッチ回路201が出力するタイマ値を1だけ加算する。そして、加算回路202は、加算したタイマ値をセレクタ203に出力する。
リセット204は、ラッチ回路201に保持されている値を初期化するために、タイマ値0を常時出力する。
セレクタ203は、加算回路202が出力するタイマ値、または、リセット204が出力するタイマ値0、を論理和回路205が出力する信号に応じて選択し、ラッチ回路201に出力する。
本実施例では、論理和回路205から「1」が入力された場合、セレクタ203は、リセット204からの出力信号を選択する。そして、論理和回路205から「0」が入力された場合、セレクタ203は、加算回路202からの出力信号を選択する。
ここで、論理和回路205には、キューにパケットが存在しない場合、または、パケットが存在する場合でアービタがキューを選択した時、にキューから「1」が入力される。
図3は、第1の実施例に係るアービタ111の具体的な構成例を示す図である。なお、図1に示したアービタ101とアービタ111は同様の構成なので、図3にはアービタ111を示して説明する。
アービタ111は、加算回路115が出力するタイマ値とキュー#3用タイマ113が出力するタイマ値の大小を比較するタイマ値比較回路301を備える。そして、タイマ値比較回路301は、比較回路301aと比較回路301bとを備える。
また、アービタ111は、タイマ値比較回路301からの信号に応じて、キュー#2からのリクエスト信号やキュー#3からのリクエスト信号をマスクするマスク回路302を備える。そして、マスク回路302は、論理積回路302aと論理積回路302bとを備える。
また、アービタ111は、マスク回路302を介して入力されるキュー#2からのリクエスト信号とキュー#3からのリクエスト信号とが競合する場合に、キューを順番に選択するラウンドロビン回路303を備える。
なお、本実施例ではラウンドロビン回路303を使用するが、固定アービタやLRU(Least Recently Used)などを使用してもよい。後述する図7についても同様である。
また、アービタ111は、論理和回路304を備える。
また、アービタ111は、ラウンドロビン回路303が選択したパケット長だけカウントするパケット長カウント回路305を備える。そして、パケット長カウント回路305は、パケット長を保持するラッチ回路305aと、減算回路305bと、所定の条件と一致している場合だけ検出信号を出力する検出回路305cと、セレクタ305dと、を備える。
また、アービタ111は、キュー#2が出力する先頭パケットからパケット長を検出してデコードするパケット長デコード回路306と、キュー#3が出力する先頭パケットからパケット長を検出してデコードするパケット長デコード回路307と、を備える。
また、アービタ111は、セレクタ308を備える。
また、アービタ111は、パケット長カウント回路305がカウントしている間第2の選択信号をセレクタ114に出力する選択信号出力回路309を備える。そして、選択信号出力回路309は、論理和回路309aおよび309bと、論理積回路309cおよび309dと、ラッチ回路309eおよび309fと、セレクタ309gおよび309hと、を備える。
また、アービタ111は、ラウンドロビン回路303が選択したキュー(キュー#2またはキュー#3)を示す情報を記憶するポインタ310を備える。
また、アービタ111は、ポインタ310にキュー#2を示す情報をセットするポインタ設定回路311と、ポインタ310にキュー#3を示す情報をセットするポインタ設定回路312と、を備える。
ここで、加算回路115の出力端とキュー#3用タイマ113の出力端は、タイマ値比較回路301の比較回路301aと接続されている。同様に、加算回路115の出力端とキュー#3用タイマ113の出力端は、タイマ値比較回路301の比較回路301bと接続されている。
比較回路301aの出力端は、マスク回路302の論理積回路302aと反転回路を介して接続されている。また、キュー#2の出力端も、マスク回路302の論理積回路302aと接続されている。
比較回路301bの出力端は、マスク回路302の論理積回路302bと反転回路を介して接続されている。また、キュー#3の出力端も、マスク回路302の論理積回路302bと接続されている。
論理積回路302aの出力端および論理積回路302bの出力端は、ラウンドロビン回路303と接続されている。
ラウンドロビン回路303の一方の出力端は、論理和回路304、セレクタ308、選択信号出力回路309の論理和回路309aおよびセレクタ309g、ポインタ設定回路312、と接続されている。
ラウンドロビン回路303の他方の出力端は、論理和回路304、セレクタ308、選択信号出力回路309の論理和回路309bおよびセレクタ309h、ポインタ設定回路311、と接続されている。
論理和回路304の出力端は、パケット長カウント回路305のセレクタ305d、選択信号出力回路309のセレクタ309gおよび309h、と接続されている。
一方、キュー#2の出力端はパケット長デコード回路306と接続され、キュー#3の出力端はパケット長デコード回路307と接続されている。そして、パケット長デコード回路306およびパケット長デコード回路307の出力端は、セレクタ308と接続されている。
セレクタ308の出力端は、パケット長カウント回路305のセレクタ305dと接続されている。
ラッチ回路305aの出力端は、減算回路305bおよび検出回路305cと接続されている。減算回路305bの出力端は、セレクタ305dと接続されている。検出回路305cの出力端は、セレクタ305d、選択信号出力回路309の論理積回路309cおよび309d、と接続されている。
ラッチ回路309eの出力端は、論理積回路309cおよびセレクタ309gと接続されている。セレクタ309gの出力端は、ラッチ回路309eと接続されている。また、論理積回路309cの出力端は、論理和回路309aと接続されている。
ラッチ回路309fの出力端は、論理積回路309dおよびセレクタ309hと接続されている。セレクタ309hの出力端は、ラッチ回路309fと接続されている。また、論理積回路309dの出力端は、論理和回路309bと接続されている。
論理和回路309aおよび論理和回路309bの出力端は、セレクタ114と接続されている。
ポインタ設定回路311の出力端とポインタ設定回路312の出力端は、ポインタ310と接続されている。そして、ポインタ310の出力端は、ラウンドロビン回路303と接続されている。
以上の構成において、比較回路301aは、加算回路115が出力するタイマ値T2と、キュー#3用タイマ113が出力するタイマ値T3と、を比較する。比較回路301aは、T2<T3の時に1を出力し、T2≧T3の時に0を出力する。
比較回路301bは、加算回路115が出力するタイマ値T2と、キュー#3用タイマ113が出力するタイマ値T3と、を比較する。そして、比較回路301bは、T2>T3の時に1を出力し、T2≦T3の時に0を出力する。
論理積回路302aは、キュー#2からのリクエスト信号と、比較回路301aが出力する出力信号の反転信号と、の論理積を出力する。
例えば、T2<T3の時、比較回路301aは1を出力するので、比較回路301aと反転回路を介して接続される論理積回路302aには0が入力される。この時、論理積回路302aは0を出力する。
また、T2≧T3の時、比較回路301aは0を出力するので、論理積回路302aには1が入力される。この時、キュー#2からリクエスト信号が入力されると、論理積回路302aは、キュー#2からのリクエスト信号を出力する。なお、キュー#2は、リクエスト信号として1を出力するものとする。
論理積回路302bは、キュー#3からのリクエスト信号と、比較回路301bが出力する出力信号の反転信号と、の論理積を出力する。
例えば、T2>T3の時、比較回路301bは1を出力するので、比較回路301bと反転回路を介して接続される論理積回路302bには0が入力される。この時、論理積回路302bは0を出力する。
また、T2≦T3の時、比較回路301bは0を出力するので、論理積回路302bには1が入力される。この時、キュー#3からリクエスト信号が入力されると、論理積回路302bは、キュー#3からのリクエスト信号を出力する。なお、キュー#3は、リクエスト信号として1を出力するものとする。
ラウンドロビン回路303は、論理積回路302aが出力する出力信号Q2と論理積回路302bが出力する出力信号Q3とを比較する。
(1)Q2≠Q3の場合、ラウンドロビン回路303は、マスク回路302が出力する出力信号にしたがって選択するキューを決定する。そして、ラウンドロビン回路303は、選択したキューを示す選択キュー決定信号D2およびD3を生成する。
例えば、Q2=1かつQ3=0の場合、ラウンドロビン回路303は、キュー#2を選択すると決定する。そして、ラウンドロビン回路303は、選択キュー決定信号D2=1、D3=0を生成する。
また、Q2=0かつQ3=1の場合、ラウンドロビン回路303は、キュー#3を選択すると決定する。そして、ラウンドロビン回路303は、選択キュー決定信号D2=0、D3=1を生成する。
選択キュー決定信号を生成すると、ラウンドロビン回路303は、選択キュー決定信号D2を、論理和回路304、セレクタ308、選択信号出力回路309およびポインタ設定回路312に出力する。同様に、ラウンドロビン回路303は、選択キュー決定信号D3を、論理和回路304、セレクタ308およびポインタ設定回路311と、に出力する。
(2)Q2=Q3の場合、ラウンドロビン回路303は、ポインタ310に記憶されている情報が示すキューを特定する。以下、ポインタ310に記憶されているキューを特定する情報を「キュー特定情報」という。
例えば、キュー特定情報は、2ビットの情報である。キュー特定情報が「10(2進数)」の場合、キュー#2を示す。また、キュー特定情報が「11(2進数)」の場合、キュー#3を示す。なお、キュー特定情報を2ビットの情報に限定する趣旨ではない。
キューを特定すると、ラウンドロビン回路303は、特定したキューを選択するための選択キュー決定信号D2およびD3を生成する。
例えば、Q2=Q3=1かつポインタ310にキュー特定情報「10(2進数)」が記憶されている場合、ラウンドロビン回路303は、キュー#2を選択する選択キュー決定信号(D2=1、D3=0)を生成する。
また、Q2=Q3=1かつポインタ310にキュー特定情報「11(2進数)」が記憶されている場合、ラウンドロビン回路303は、キュー#3を選択する選択キュー決定信号(D2=0、D3=1)を生成する。
選択キュー決定信号を生成すると、ラウンドロビン回路303は、選択キュー決定信号D2を、論理和回路304、セレクタ308、選択信号出力回路309およびポインタ設定回路312に出力する。同様に、ラウンドロビン回路303は、選択キュー決定信号D3を、論理和回路304、セレクタ308およびポインタ設定回路311、に出力する。
論理和回路304は、ラウンドロビン回路303が出力する選択キュー決定信号D2とD3の論理和をパケット長カウント回路305のセレクタ305dと選択信号出力回路309のセレクタ309gおよび309hに出力する。
一方、セレクタ308は、ラウンドロビン回路303が出力する選択キュー決定信号D2およびD3にしたがって、パケット長デコード回路306の出力信号またはパケット長デコード回路307の出力信号を選択してセレクタ305dに出力する。
例えば、ラウンドロビン回路303から入力される選択キュー決定信号がD2=1かつD3=0の場合、セレクタ308は、パケット長デコード回路306の出力信号を選択してセレクタ305dに出力する。
また、ラウンドロビン回路303から入力される選択キュー決定信号がD2=0かつD3=1の場合、セレクタ308は、パケット長デコード回路307の出力信号を選択してセレクタ305dに出力する。
セレクタ305dは、新たに論理和回路304から論理和「1」が入力されると、セレクタ308の出力信号を選択してラッチ回路305aに出力する。すると、セレクタ308が出力するキュー#2又はキュー#3の先頭パケットのパケット長データが、ラッチ回路305aにセットされる。
減算回路305bは、ラッチ回路305aが出力するパケット長データを1だけ減算する。そして、減算回路305bは、減算した値をセレクタ305dに出力する。
セレクタ305dは、論理和回路304から論理和「0」が入力されると、減算回路305bが出力する出力信号を選択してラッチ回路305aに出力する。すると、ラッチ回路305aは、減算回路305bが出力する値を保持する。すなわち、ラッチ回路305aには、1だけ減算された値がセットされる。
減算回路305bは、以上の動作を、ラッチ回路305aの値が0になるまで繰り返す。
検出回路305cは、ラッチ回路305aが保持する値が0か否かを判別する。そして、ラッチ回路305aが保持する値が0でない場合、ラッチ回路305aは、選択信号出力回路309の論理積回路309cおよび309dに「1」を出力する。
セレクタ309gは、新たに論理和回路304から論理和「1」が入力されると、ラウンドロビン回路303が出力する選択キュー決定信号D2を選択してラッチ回路309eに出力する。すると、選択キュー決定信号D2が、ラッチ回路309eにセットされる。その後、セレクタ309gに論理和回路304から論理和「0」が入力されている間、ラッチ回路309eはセットされた値を保持する。
セレクタ309hは、新たに論理和回路304から論理和「1」が入力されると、ラウンドロビン回路303が出力する選択キュー決定信号D3を選択してラッチ回路309fに出力する。すると、選択キュー決定信号D3が、ラッチ回路309fにセットされる。その後、セレクタ309hに論理和回路304から論理和「0」が入力されている間は、ラッチ回路309fはセットされた値を保持する。
論理積回路309cは、検出回路305cおよびラッチ回路309eの出力が「1」の場合、論理和回路309aに「1」を出力する。すなわち、論理積回路309cは、ラッチ回路305aが保持する値が0でなく、かつラッチ回路309eが保持する値が1である時、論理和回路309aに「1」を出力する。
論理積回路309dは、検出回路305cおよびラッチ回路309fの出力が「1」の場合、論理和回路309bに「1」を出力する。すなわち、論理積回路309dは、ラッチ回路305aが保持する値が0でなく、かつラッチ回路309fが保持する値が1である時、「1」を論理和回路309bに出力する。
論理和回路309aは、ラウンドロビン回路303が出力する選択キュー決定信号D2と、論理積回路309cが出力する出力信号と、の論理和S2をセレクタ114に出力する。また、論理和回路309bは、ラウンドロビン回路303が出力する選択キュー決定信号D3と、論理積回路309dが出力する出力信号と、の論理和S3をセレクタ114に出力する。
この選択信号出力回路309が出力する出力信号S2およびS3が、第2の選択信号となる。
セレクタ114は、選択信号出力回路309が出力する第2の選択信号S2=1の場合、キュー#2が出力する出力信号、すなわち、キュー#2が出力するパケットを選択して出力する。
また、セレクタ114は、選択信号出力回路309が出力する第2の選択信号S3=1の場合、キュー#3が出力する出力信号、すなわち、キュー#3が出力するパケットを選択して出力する。
ポインタ設定回路311は、ラウンドロビン回路303から選択キュー決定信号D3=1が入力されると、すなわち、ラウンドロビン回路303がキュー#3を選択すると、ポインタ310にキュー#2を示すキュー特定情報「10(2進数)」を設定する。
ポインタ設定回路312は、ラウンドロビン回路303から選択キュー決定信号D2=1が入力されると、すなわち、ラウンドロビン回路303がキュー#2を選択すると、ポインタ310にキュー#2を示すキュー特定情報「11(2進数)」を設定する。
図4は、第1の実施例に係る多段アービタ100の変形例を説明する図である。なお、図1に示した多段アービタ100の構成と重複するものについての説明は省略する。
図4に示す多段アービタ400は、図1に示した多段アービタ100の構成に加えて、以下の構成要素を備える。
多段アービタ400は、キュー#4用タイマ402が出力するタイマ値とキュー#5用タイマ403が出力するタイマ値とに応じて選択信号を生成するアービタ401を備える。以下、アービタ401が生成する選択信号を「第3の選択信号」という。
また、多段アービタ400は、パケットを保持し出力するキュー#4と、パケットがキュー#4に格納されてから出力されるまでの時間をカウントするキュー#4用タイマ402と、を備える。
また、多段アービタ400は、パケットを保持し出力するキュー#5と、パケットがキュー#5に格納されてから出力されるまでの時間をカウントするキュー#5用タイマ403と、を備える。
また、多段アービタ400は、アービタ401が出力する第3の選択信号に応じてキュー#4が出力するパケットまたはキュー#5が出力するパケットを選択し出力するセレクタ404を備える。
また、多段アービタ400は、アービタ401が出力する選択信号に応じてキュー#4用タイマ402が出力するタイマ値またはキュー#5用タイマ403が出力するタイマ値を選択するセレクタ405と、を備える。
また、多段アービタ400は、セレクタ405が出力するタイマ値を保持し出力するタイマ値用キュー#3と、タイマ値用キュー#3が出力するタイマ値とキュー#3用タイマ113が出力するタイマ値とを加算する加算回路412と、を備える。
また、多段アービタ400は、加算回路115が出力するタイマ値と加算回路412が出力するタイマ値とに応じて第2の選択信号を生成するアービタ411を備える。
ここで、キュー#4の出力端とキュー#5の出力端は、セレクタ404と接続されている。
キュー#4用タイマ402の出力端は、アービタ401とセレクタ405とに接続されている。同様に、キュー#5用タイマ403の出力端は、アービタ401とセレクタ405とに接続されている。
アービタ401の出力端は、セレクタ404とセレクタ405とに接続されている。
セレクタ404の出力端は、キュー#3と接続されている。また、セレクタ405の出力端は、タイマ値用キュー#3と接続されている。
タイマ値用キュー#3の出力端とキュー#3用タイマ113の出力端は、加算回路412と接続されている。そして、加算回路412の出力端は、アービタ411に接続されている。アービタ411の出力端は、セレクタ114に接続されている。
以上の構成において、キュー#4は、入力されるパケットを順次格納し、格納した順番にパケットをセレクタ404に出力する。
キュー#4用タイマ402は、キュー#4にパケットが格納されてから同パケットがセレクタ404に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値をアービタ401およびセレクタ405に出力する。
キュー#5は、入力されるパケットを順次格納し、格納した順番にパケットをセレクタ404に出力する。
キュー#5用タイマ403は、キュー#5にパケットが格納されてから同パケットがセレクタ404に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値をアービタ401およびセレクタ405に出力する。
アービタ401は、キュー#4用タイマ402が出力するタイマ値とキュー#5用タイマ403が出力するタイマ値とを比較する。そして、アービタ401は、セレクタ404がタイマ値の大きい方のキューの出力を選択する第3の選択信号、すなわち、セレクタ404がタイマ値の大きい方のキューのキュー用タイマの出力を選択する第3の選択信号を生成する。アービタ401は、第3の選択信号をセレクタ404およびセレクタ405に出力する。
セレクタ404は、アービタ401が出力する第3の選択信号にしたがって、キュー#4が出力するパケットまたはキュー#5が出力するパケットをキュー#3に出力する。
セレクタ405は、アービタ401が出力する第3の選択信号にしたがって、キュー#4用タイマ402が出力するタイマ値またはキュー#5用タイマ403が出力するタイマ値をタイマ値用キュー#3に出力する。
タイマ値用キュー#3は、セレクタ405が出力するタイマ値を順次格納し、格納した順番にパケットを加算回路412に出力する。
キュー#3用タイマ113は、キュー#3にパケットが格納されてから同パケットがセレクタ114に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値を加算回路412に出力する。
加算回路412は、タイマ値用キュー#3が出力するタイマ値とキュー#3用タイマ113が出力するタイマ値とを加算しアービタ411に出力する。
アービタ411は、加算回路115が出力するタイマ値と加算回路412が出力するタイマ値とを比較する。
そして、アービタ411は、セレクタ114がタイマ値の大きい方のキューの出力を選択する第2の選択信号を生成する。
例えば、加算回路115が出力するタイマ値が、加算回路412が出力するタイマ値より大きい場合、アービタ411は、セレクタ114がキュー#2を選択する第2の選択信号を生成する。
また、加算回路412が出力するタイマ値が、加算回路115が出力するタイマ値より大きい場合、アービタ411は、セレクタ114がキュー#3を選択する第2の選択信号を生成する。
そして、アービタ411は、生成した第2の選択信号をセレクタ114に出力する。
セレクタ114は、アービタ411が出力する第2の選択信号にしたがって、キュー#2が出力するパケットまたはキュー#3が出力するパケットを出力する。
なお、図4に示したアービタ401の構成は、図3と同様なので、詳細な説明は省略する。
図5は、第2の実施例に係る多段アービタ500の概要を説明する図である。なお、図1に示した多段アービタ100の構成と重複するものについての説明は省略する。
多段アービタ500は、セレクタ105が出力するタイマ値に応じてキュー#2のランク付けを行なうランク付け回路501を備える。
また、多段アービタ500は、ランク付け回路501が出力するランク付け情報を保持し出力するランク付け情報用キュー#2を備える。
また、多段アービタ500は、キュー#3のランク付け情報をあらかじめ記憶するキュー#3ランク付け情報設定レジスタ512と、キュー#3ランク付け情報設定レジスタ512にランク付け情報を設定するJTAG回路513と、を備える。
また、多段アービタ500は、ランク付け情報用キュー#2およびキュー#3ランク付け情報設定レジスタ512が出力するランク付け情報と、キュー#2用タイマ112およびキュー#3用タイマ113が出力するタイマ値と、に応じて第2の選択信号を生成するアービタ511と、を備える。
また、多段アービタ500は、アービタ511が出力する第2の選択信号に応じてキュー#2またはキュー#3に格納されたパケットを選択し出力するセレクタ114を備える。
ここで、セレクタ105の出力端は、ランク付け回路501と接続されている。そして、ランク付け回路501の出力端は、ランク付け情報用キュー#2と接続されている。
ランク付け情報用キュー#2の出力端、キュー#2用タイマ112の出力端、キュー#3ランク付け情報設定レジスタ512の出力端およびキュー#3用タイマ113の出力端は、アービタ511と接続されている。
アービタ511の出力端は、セレクタ114に接続されている。
以上の構成において、セレクタ105は、アービタ101が出力する第1の選択信号にしたがって、キュー#0用タイマ102が出力するタイマ値またはキュー#1用タイマ103が出力するタイマ値をランク付け回路501に出力する。
ランク付け情報用キュー#2は、ランク付け回路501が出力するランク付け情報を順次格納し、格納した順番にランク付け情報をアービタ511に出力する。
キュー#2用タイマ112は、キュー#2にパケットが格納されてから同パケットがセレクタ114に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値をアービタ511に出力する。
キュー#3用タイマ113は、キュー#3にパケットが格納されてから同パケットがセレクタ114に選択されて出力されるまでの時間をカウントし、カウントして得られるタイマ値をアービタ511に出力する。
アービタ511は、キュー#2からのリクエスト信号とキュー#3からのリクエスト信号とが競合した場合、すなわち、キュー#2および#3から出力信号「1」が入力された場合、以下に示す(1)〜(5)の処理により第2の選択信号を生成する。
(1)アービタ511は、ランク付け情報用キュー#2が出力するキュー#2のランク付け情報P2と、キュー#3ランク付け情報設定レジスタ512が出力するキュー#3のランク付け情報P3と、を比較する。
(2)P2≠P3の場合、アービタ511は、セレクタ114がランクの高い方のキューを選択する第2の選択信号を生成する。
例えば、P2>P3の場合、アービタ511は、セレクタ114がキュー#2を選択する第2の選択信号を生成する。また、P2<P3の場合、アービタ511は、セレクタ114がキュー#3を選択する第2の選択信号を生成する。
(3)P2=P3の場合、アービタ511は、キュー#2用タイマ112が出力するタイマ値T2と、キュー#3用タイマ113が出力するタイマ値T3と、を比較する。
(4)P2=P3かつT2≠T3の場合、アービタ511は、セレクタ114がタイマ値の大きい方のキューを選択する第2の選択信号を生成する。
例えば、T2>T3の場合、アービタ511は、セレクタ114がキュー#2を選択する第2の選択信号を生成する。また、T2<T3の場合、アービタ511は、セレクタ114がキュー#3を選択する第2の選択信号を生成する。
(5)P2=P3かつT2=T3の場合、アービタ511は、セレクタ114がキュー#2の出力を選択する第2の選択信号と、セレクタ114がキュー#3の出力を選択する第2の選択信号と、を交互に生成する。
例えば、前回、セレクタ114がキュー#2の出力を選択する選択信号を生成していた場合、アービタ511は、セレクタ114がキュー#3の出力を選択する第2の選択信号を生成する。
また、前回、セレクタ114がキュー#3の出力を選択する選択信号を生成していた場合、アービタ511は、セレクタ114がキュー#2の出力を選択する第2の選択信号を生成する。
以上の処理によって第2の選択信号を生成すると、アービタ511は、第2の選択信号をセレクタ114に出力する。
セレクタ114は、アービタ511が出力する第2の選択信号にしたがって、キュー#2またはキュー#3が出力するパケットを出力する。
なお、本実施例では、キュー#3ランク付け情報設定レジスタ512にランク付け情報を設定するためにIEEE1149.1で規定されるJoint Test Architecture Group(以下、「JTAG」)回路513を使用したが、これに限定する趣旨ではない。必要に応じて、例えば、SMBus回路などを使用してキュー#3ランク付け情報設定レジスタ512にランク付け情報を設定してもよい。
図6は、第2の実施例に係るランク付け回路501の具体的な構成例を示す図である。
ランク付け回路501は、ランク付け境界値設定レジスタ602および603にランク付け境界値を設定するJTAG回路601を備える。
また、ランク付け回路501は、ランク付け境界値を記憶するランク付け境界値設定レジスタ602および603を備える。
ランク付け境界値設定レジスタ602に設定されるランク付け境界値Th1と、ランク付け境界値設定レジスタ603に設定されるランク付け境界値Th2と、はTh1>Th2の関係にあるものとする。
また、ランク付け回路501は、ランク付け境界値設定レジスタ602に記憶されているランク付け境界値Th1およびランク付け境界値設定レジスタ603に記憶されているランク付け境界値Th2とセレクタ105が出力するタイマ値T1とを比較してランク付け情報を生成する比較回路604〜607と、論理積回路608と、を備える。
ここで、JTAG回路601の出力端は、ランク付け境界値設定レジスタ602とランク付け境界値設定レジスタ603とに接続されている。
ランク付け境界値設定レジスタ602の出力端は、比較回路604および605と接続され、ランク付け境界値設定レジスタ603の出力端は、比較回路606および607と接続されている。
セレクタ105の出力端は、比較回路604、605、606および607それぞれと接続されている。
比較回路605および606の出力端は、論理積回路608と接続されている。
以上の構成において、利用者が所定の操作を行って所望のレジスタ(ランク付け境界値設定レジスタ602または603)を指定し、所望のランク付け境界値を指定して所定の操作を行なうと、JTAG回路601は、指定されたランク付け境界値をスキャンシフトを行うことにより、指定されたレジスタに記憶させる。
ランク付け境界値設定レジスタ602は、優先順位を1位にランク付けする判断基準となるランク付け境界値を設定するレジスタである。
セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1以上の場合、キュー#2は優先順位が1位にランク付けられる。
ランク付け境界値設定レジスタ603は、優先順位を2位にランク付けする判断基準となるランク付け境界値を設定するレジスタである。
セレクタ105が出力するタイマ値が、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1未満、かつ、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2以上の場合、キュー#2は優先順位が2位にランク付けられる。
また、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2より小さい場合、キュー#2は優先順位が3位にランク付けられる。
比較回路604および605は、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1と、セレクタ105が出力するタイマ値T1と、を比較する。
比較回路604は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1以上の場合、「1」を出力する。また、比較回路604は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1未満の場合、「0」を出力する。
比較回路605は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1未満の場合、「1」を出力する。また、比較回路605は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1以上の場合、「0」を出力する。
比較回路606および607は、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2と、セレクタ105が出力するタイマ値T1と、を比較する。
比較回路606は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2以上の場合、「1」を出力する。また、比較回路606は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2未満の場合、「0」を出力する。
比較回路607は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2未満の場合、「1」を出力する。また、比較回路607は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2以上の場合、「0」を出力する。
論理積回路608は、比較回路605の出力値と比較回路606の出力値の論理積を出力する。
したがって、論理積回路608は、セレクタ105が出力するタイマ値T1が、ランク付け境界値設定レジスタ602に設定されたランク付け境界値Th1未満の場合、かつ、ランク付け境界値設定レジスタ603に設定されたランク付け境界値Th2以上の場合、「1」を出力する。その他の場合、論理積回路608は、「0」を出力する。
なお、本実施例では、ランク付け境界値設定レジスタ602および603にランク付け境界値を設定するためにJTAG回路601を使用したが、これに限定する趣旨ではない。必要に応じて、例えば、SMBus回路などを使用してランク付け境界値設定レジスタ602および603にランク付け境界値を設定してもよい。
以上の処理により、ランク付け情報(ya,yb,yc)が得られる。
タイマ値T1がランク付け境界値Th1以上の場合、すなわち、優先順位が1位とランク付けられる場合、ランク付け回路501が出力するランク付け情報(ya,yb,yc)は、(1,0,0)となる。
また、タイマ値T1がランク付け境界値Th1未満、かつ、タイマ値T1がランク付け境界値Th2以上の場合、すなわち、優先順位が2位とランク付けられる場合、ランク付け情報(ya,yb,yc)は、(0,1,0)となる。
また、タイマ値T1がランク付け境界値Th2未満の場合、すなわち、優先順位が3位とランク付けられる場合、ランク付け情報(ya,yb,yc)は、(0,0,1)となる。
なお、本実施例の場合、キュー#3ランク付け情報設定レジスタ512には、上述のランク付け情報(ya,yb,yc)が設定される。
図7は、第2の実施例に係るアービタ511の具体的な構成例を示す図である。なお、図3に示した多段アービタ111の構成と重複するものについては説明を省略する。
アービタ511は、ランク付け情報に応じてキュー#2およびキュー#3からのリクエスト信号を選別する選別回路701と、論理積回路702〜704と、を備える。
また、アービタ511は、タイマ値比較回路301からの信号に応じて、選別回路701が出力するキュー#2のリクエスト信号R2またはキュー#3のリクエスト信号R3をマスクするマスク回路302を備える。
ここで、キュー#2およびキュー#3の出力端、ランク付け情報用キュー#2およびキュー#3ランク付け情報設定レジスタ512の出力端は、選別回路701と接続されている。
キュー#2のリクエスト信号R2を出力する選別回路701の出力端は、マスク回路302の論理積回路302aと、論理積回路702と、に接続されている。また、キュー#3のリクエスト信号R3を出力する選別回路701の出力端は、マスク回路302の論理積回路302bと、論理積回路702と、に接続されている。
論理積回路702の出力端は、論理積回路703および704に接続されている。タイマ値比較回路301の比較回路301aの出力端は、論理積回路703に接続され、タイマ値比較回路301の比較回路301bの出力端は、論理積回路704に接続されている。
論理積回路703の出力端は、反転回路を介してマスク回路302の論理積回路302aと接続されている。また、論理積回路704の出力端は、反転回路を介してマスク回路302の論理積回路302bと接続されている。
以上の構成において、選別回路701は、以下に示す(1)〜(3)の処理を行なう。
(1)選別回路701は、ランク付け情報用キュー#2が出力するキュー#2に関するランク付け情報P2と、キュー#3ランク付け情報設定レジスタ512が出力するキュー#3に関するランク付け情報P3と、を受信すると、図8に示す選別テーブル800を参照する。
(2)選別回路701は、選別テーブル800の「入力」を参照し、キュー#2のランク付け情報P2およびキュー#3のランク付け情報P3の組み合わせと一致する組み合わせを検索する。
(3)選別回路701は、キュー#2のランク付け情報P2およびキュー#3のランク付け情報P3の組み合わせと一致する組み合わせに対応する「動作」にしたがって、キュー#2のリクエスト信号R2とキュー#3のリクエスト信号R3をマスク回路302に出力する。
例えば、選別テーブル800に「キュー#2からのリクエスト信号」が「透過」であると定義されている場合、選別回路701がマスク回路302の論理積回路302aに出力するキュー#2のリクエスト信号R2は、「1」となる。
同様に、選別テーブル800に「キュー#3のリクエスト信号」が「透過」であると定義されている場合、選別回路701がマスク回路302の論理積回路302bに出力するキュー#3のリクエスト信号R3は、「1」となる。
また、選別テーブル800に「キュー#2のリクエスト信号」が「抑止」であると定義されている場合、選別回路701は、キュー#2からのリクエスト信号を抑止する。この場合、選別回路701は、マスク回路302の論理積回路302aに「0」を出力する。
同様に、選別テーブル800に「キュー#3のリクエスト信号」が「抑止」であると定義されている場合、選別回路701は、キュー#3のリクエスト信号を抑止する。この場合、選別回路701は、マスク回路302の論理積回路302bに「0」を出力する。
以上の処理により、選別回路701は、キュー#2のランク付け情報P2とキュー#3のランク付け情報P3とに応じて、キュー#2からのリクエスト信号またはキュー#3からのリクエスト信号を選別して、マスク回路302に出力する。
なお、キュー#2からのリクエスト信号とキュー#3からのリクエスト信号とが競合しない場合における選別回路701の動作は、上記(1)〜(3)の処理と異なる。
例えば、キュー#2からのみリクエスト信号を受信すると、選別回路701は、R2=1かつR3=0を出力する。キュー#3からのみリクエスト信号を受信すると、選別回路701は、R2=0かつR3=1を出力する。
論理積回路702は、選別回路701の出力信号R2とR3の論理積を論理積回路703および704に出力する。
論理積回路703は、論理積回路702の出力信号と、比較回路301aの出力信号と、の論理積を出力する。また、論理積回路704は、論理積回路702の出力信号と、比較回路301bの出力信号と、の論理積を出力する。
論理積回路302aは、選別回路701が出力する出力信号R2と、論理積回路703が出力する出力信号の反転信号と、の論理積を出力する。また、論理積回路302bは、選別回路701が出力する出力信号R3と、論理積回路704が出力する出力信号の反転信号と、の論理積を出力する。
以上の処理により、マスク回路302が出力する出力信号Q2およびQ3は、下記表1のようになる。
ただし、ランク付け情報用キュー#2が出力するランク付け情報が示す優先順位をP2、キュー#3ランク付け情報設定レジスタ512が出力するランク付け情報が示す優先順位をP3とする。
また、キュー#2用タイマ112が出力するタイマ値をT2、キュー#3用タイマ113が出力するタイマ値をT3とする。
そして、選別回路701が出力する出力信号をR2、R3、タイマ値比較回路301が出力する出力信号をC2、C3、マスク回路302の出力をQ2、Q3とする。
Figure 0005382003
図8は、選別回路701が使用する選別テーブル800の例を示す図である。
選別テーブル800は、選別回路701に入力されるランク情報と、そのランク情報に応じた選別回路701の動作と、を規定したテーブルである。
選別回路701に入力されるランク情報は、ランク付け情報用キュー#2から選別回路701に入力されるランク付け情報P2と、キュー#3ランク付け情報設定レジスタ512から選別回路701に入力されるランク付け情報P3、である。
また、ランク情報に応じた選別回路701の動作として、「透過」と「抑止」が規定されている。
「透過」とは、選別回路701に入力されるキュー#2またはキュー#3のリクエスト信号を、マスク回路302および論理積回路702に出力する動作を示している。
例えば、キュー#2のリクエスト信号を「透過」すると定義されている場合、選別回路701は、キュー#2からのリクエスト信号R2、すなわち「1」を、論理積回路302aおよび702に出力する。
同様に、キュー#3のリクエスト信号を「透過」すると定義されている場合、選別回路701は、キュー#3からのリクエスト信号R3、すなわち「1」を、論理積回路302bおよび702に出力する。
「抑止」とは、選別回路701に入力されるキュー#2またはキュー#3のリクエスト信号を、マスク回路302および論理積回路702に出力しない動作を示している。この場合、例えば、選別回路701は、キュー#2またはキュー#3からのリクエスト信号の有無に関わらずマスク回路302および論理積回路702に「0」を出力する。
図9は、第2の実施例に係る多段アービタ500の変形例を説明する図である。なお、図5に示した多段アービタ500の構成と重複するものについての説明は省略する。
図9に示す多段アービタ900は、図5に示した多段アービタ500の構成に加えて、以下の構成要素を備える。
多段アービタ900は、キュー#4用タイマ902が出力するタイマ値とキュー#5用タイマ903が出力するタイマ値とに応じて第3の選択信号を生成するアービタ901を備える。
また、多段アービタ900は、パケットを保持し出力するキュー#4と、パケットがキュー#4に格納されてから出力されるまでの時間をカウントするキュー#4用タイマ902と、を備える。
また、多段アービタ900は、パケットを保持し出力するキュー#5と、パケットがキュー#5に格納されてから出力されるまでの時間をカウントするキュー#5用タイマ903と、を備える。
また、多段アービタ900は、アービタ901が出力する第3の選択信号に応じてキュー#4が出力するパケットまたはキュー#5が出力するパケットを選択するセレクタ904を備える。
また、多段アービタ900は、アービタ901が出力する第3の選択信号に応じてキュー#4用タイマ902が出力するタイマ値またはキュー#5用タイマ903が出力するタイマ値を選択するセレクタ905を備える。
また、多段アービタ900は、セレクタ905が出力するタイマ値に応じてキュー#3のランク付けを行なうランク付け回路906を備える。
また、多段アービタ900は、ランク付け回路906が出力するランク付け情報を保持し出力するランク付け情報用キュー#3を備える。
ここで、キュー#4の出力端とキュー#5の出力端は、セレクタ904と接続されている。キュー#4用タイマ902の出力端とキュー#5用タイマ903の出力端は、アービタ901とセレクタ905とに接続されている。
アービタ901の出力端は、セレクタ904とセレクタ905とに接続されている。
セレクタ904の出力端は、キュー#3と接続され、セレクタ905の出力端は、ランク付け回路906と接続されている。ランク付け回路906の出力端は、ランク付け情報用キュー#3と接続されている。
ランク付け情報用キュー#3の出力端は、アービタ511と接続されている。
なお、アービタ901、キュー#4、キュー#4用タイマ902、キュー#5、キュー#5用タイマ903、セレクタ904、セレクタ905、ランク付け回路906およびランク付け情報用キュー#3の動作は、それぞれ図5に示したアービタ101、キュー#0、キュー#0用タイマ102、キュー#1、キュー#1用タイマ103、セレクタ104、セレクタ105、ランク付け回路501およびランク付け情報用キュー#2の動作と同様なので、詳細な説明は省略する。
図10は、第1の実施例に係る多段アービタ100を適用したコンピュータシステムの主要部を示す図である。
図10に示すコンピュータシステム1000は、SB(システムボード)#0〜#3と、IOB(I/Oボード)#0〜#3と、データクロスバLSI1001と、アドレスクロスバLSI1002と、を備えている。
なお、図10には、SB#0〜#3のうちSB#0のみが示してある。また、IOB#0〜#3のうちIOB#0のみが示してある。
SB#0は、メモリ1012および1013と、メモリ1012および1013を制御するメモリ制御LSI1011と、を備えている。また、SB#0は、CPU1014〜1017と、CPU1014〜1017を制御するCPU制御LSI1018と、FWH(ファームウェアハブ)と、を備えている。SB#1〜#3についても同様である。
IOB#0は、IO制御LSI1021と、PCI制御LSI1022および1023と、ICH(I/O Controller Hub)1024および1025と、FWH、VGA(Video Graphics Array)端子、SIO(Serial Input/Output)端子、LAN(Local Area Network)端子、BMC(Baseboard Management Controller)端子と、備えている。IOB#1〜#3についても同様である。
なお、図10に示すSB#0〜#3およびIOB#0〜#3の構成は、単なる例示であって、図示する構成に限定する趣旨でないのは当然である。また、図10に示すSB#0およびIOB#0を構成する構成要素は、周知技術であるので説明は省略する。
データクロスバLSI1001の出力端子SB#0は、SB#0のメモリ制御LSI1011の入力端と接続される。また、データクロスバLSI1001の入力端子SB#1、SB#2およびSB#3には、それぞれSB#1、SB#2、SB#3のメモリ制御LSI1011の出力端子が接続される。
また、データクロスバLSI1001の入力端子IOB#0、IOB#1、IOB#2およびIOB#3には、それぞれIOB#0、IOB#1、IOB#2およびIOB#3のIO制御LSIの出力端子が接続される。
そして、入力端子IOB#0、IOB#1、IOB#2およびIOB#3は、それぞれキュー#I0、#I1、#I2、#I3と接続される。また、入力端子SB#1、SB#2、SB#3は、キュー#S1、#S2、#S3と接続されている。
そして、データクロスバLSI1001は、以下の構成要素を有する。
アービタ1001aは、図1に示したアービタ101に相当する動作を行なう。また、アービタ1001bは、図1に示したアービタ111に相当する動作を行なう。また、セレクタ1001cは、図1に示したセレクタ104に相当する動作を行なう。また、セレクタ1001dは、図1に示したセレクタ105に相当する動作を行なう。
キュー#I0〜#I3は、図1に示したキュー#0〜#1に相当する動作を行なう。また、キュー#IOBは、図1に示したキュー#2に相当する動作を行なう。また、タイマ値用キュー#IOBは、図1に示したタイマ値用キュー#2に相当する動作を行なう。また、キュー#S1〜#S3は、図1に示したキュー#3に相当する動作を行なう。また、各タイマは、図1に示したキュー用タイマに相当する動作を行なう。
このように、データクロスバLSI1001に、アービタ1001aとアービタ1001bとを多段に接続した多段アービタ100を適用することができる。
なお、図10では、IOBからSBにパケットを送信する場合について示しているが、SBからIOBにパケットを送信する場合も、データクロスバLSI1001に多段アービタ100を適用することができる。
また、アドレスクロスバLSI1002についても、データクロスバLSI1001と同様に、多段アービタ100を適用することができる。
図11は、第2の実施例に係る多段アービタ500を適用したコンピュータシステムの主要部を示す図である。なお、SB#0〜#3とIOB#0〜#3の構成は、図10に示した構成と同様なので説明は省略する。
アービタ1101aは、図5に示したアービタ101に相当する動作を行なう。アービタ1101bは、図5に示したアービタ511に相当する動作を行なう。
セレクタ1101cは、図5に示したセレクタ104に相当する動作を行なう。また、セレクタ1101dは、図5に示したセレクタ105に相当する動作を行なう。
ランク付け回路1101eは、図5に示したランク付け回路501に相当する動作を行なう。また、ランク付け情報設定レジスタ1101fは、図5に示したキュー#3ランク付け情報設定レジスタ512に相当する動作を行なう。
キュー#I0〜I3は、図5に示したキュー#0〜#1に相当する動作を行なう。また、キュー#IOBは、図5に示したキュー#2に相当する動作を行なう。また、ランク付け情報用キュー#IOBは、図5に示したランク付け情報用キュー#2に相当する動作を行なう。また、キュー#S1〜S3は、キュー#3に相当する動作を行なう。
各タイマは、図5に示したキュー用タイマに相当する動作を行なう。
このように、データクロスバLSI1101に、アービタ1101aとアービタ1101bとを多段に接続した多段アービタ500を適用することができる。
なお、図11では、IOBからSBにパケットを送信する場合について示しているが、SBからIOBにパケットを送信する場合も、データクロスバLSI1101に多段アービタ500を適用することができる。
また、アドレスクロスバLSI1102についても、データクロスバLSI1101と同様に、多段アービタ500を適用することができる。
以上に説明したように、第1の実施例に係る多段アービタ100において、前段のアービタ101が選択したパケットのタイマ値は、タイマ値用キュー#2に格納される。すると、後段のアービタ111は、タイマ値用キュー#2が出力するタイマ値にキュー#2用タイマ112が出力するタイマ値を加算したタイマ値と、キュー#3用タイマ113が出力するタイマ値と、を比較する。
後段のアービタ111は、キュー#0または#1でのタイマ値が加算されたキュー#2のタイマ値と、キュー#3のタイマ値と、のうちいずれか大きいタイマ値のキューからのパケットを選択する第2の選択信号を生成する。
その結果、後段のアービタ111は、前段の待ち時間、すなわち、パケットがキュー#0または#1に格納されてからアービタ101がそのパケットを選択してキュー#2に出力するまでの時間を考慮して、キュー#2のパケットとキュー#3のパケットを調停する。
したがって、多段アービタ100は、多段アービタ100を通過するために必要な待ち時間を最小限に抑えることが可能となる。
また、第1の実施例の変形例に係る多段アービタ400において、前段のアービタ101が選択したパケットのタイマ値は、タイマ値用キュー#2に格納され、前段のアービタ401が選択したパケットのタイマ値は、タイマ値用キュー#3に格納される。
後段のアービタ411は、タイマ値用キュー#2が出力するタイマ値をキュー#2用タイマ112が出力するタイマ値に加算したタイマ値と、タイマ値用キュー#3が出力するタイマ値をキュー#3用タイマ113が出力するタイマ値に加算したタイマ値と、を比較する。
アービタ411は、キュー#0または#1でのタイマ値が加算されたキュー#2のタイマ値と、キュー#4または#5でのタイマ値が加算されたキュー#3のタイマ値と、のうちいずれか大きい方のキューが出力するパケットを選択する第2の選択信号を生成する。
その結果、後段のアービタ411は、前段の待ち時間、すなわち、パケットがキュー#0または#1に格納されてからアービタ101がそのパケットを選択してキュー#2に出力するまでの時間を考慮して、キュー#2のパケットとキュー#3のパケットを調停する。
同時に、後段のアービタ411は、前段の待ち時間、すなわち、パケットがキュー#4または#5に格納されてからアービタ401がそのパケットを選択してキュー#3に出力するまでの時間を考慮して、キュー#2のパケットとキュー#3のパケットを調停する。
したがって、多段アービタ400は、1のアービタに対して複数のアービタを多段に備える多段アービタ400を通過するために必要な待ち時間を最小限に抑えることが可能となる。
また、第2の実施例に係る多段アービタ500において、ランク付け回路501は、前段のアービタ101が選択したパケットのタイマ値に応じて、タイマ値が大きいものほど優先順位を高くなるようにランク付け情報を生成する。ランク付け情報は、キュー#2に格納されるパケットと対応する順番でランク付け情報用キュー#2に格納される。
後段のアービタ511は、ランク付け情報用キュー#2が出力するランク付け情報と、キュー#3ランク付け情報設定レジスタ512が出力するランク付け情報と、を比較する。そして、アービタ511は、比較の結果、優先順位が高い方のキューが出力するパケットを選択する第2の選択信号を生成する。
その結果、後段のアービタ511は、前段の待ち時間、すなわち、パケットがキュー#0または#1に格納されてからアービタ101がそのパケットを選択してキュー#2に出力するまでの時間を考慮して、キュー#2のパケットとキュー#3のパケットを調停する。
したがって、多段アービタ500は、多段アービタ500を通過するために必要な待ち時間を最小限に抑えることが可能となる。
さらに、優先度が同じ場合、アービタ511は、キュー#2用タイマ112が出力するタイマ値と、キュー#3用タイマ113が出力するタイマ値と、を比較する。そして、比較の結果、タイマ値が大きい方のキューが出力するパケットを選択する第2の選択信号を生成する。
その結果、多段アービタ500は、優先順位が同じ場合であっても、キュー#2用タイマ112またはキュー#3用タイマ113が出力するタイマ値に応じてキュー#2またはキュー#3が出力するパケットの調停を行なうことが可能となる。
さらに、タイマ値が同じ場合、アービタ511は、キュー#2が出力するパケットとキュー#3が出力するパケットとを交互に選択する第2の選択信号を生成する。
その結果、多段アービタ500は、優先順位が同じ、かつ、タイマ値が同じ場合であっても、キュー#2またはキュー#3が出力するパケットの調停を行なうことが可能となる。
また、第2の実施例の変形例に係る多段アービタ900において、ランク付け回路501は、前段のアービタ101が選択したパケットのタイマ値に応じて、タイマ値が大きいものほど優先順位を高くなるようにランク付け情報を生成する。ランク付け情報は、キュー#2に格納されるパケットと対応する順番でランク付け情報用キュー#2に格納される。
同様に、ランク付け回路906は、前段のアービタ901が選択したパケットのタイマ値に応じて、タイマ値が大きいものほど優先順位を高くなるようにランク付け情報を生成する。ランク付け情報は、キュー#3に格納されるパケットと対応する順番でランク付け情報用キュー#3に格納される。
後段のアービタ511は、ランク付け情報用キュー#2が出力するランク付け情報と、ランク付け情報用キュー#3が出力するランク付け情報と、を比較する。そして、アービタ511は、比較の結果、優先順位が高い方のキューが出力するパケットを選択する第2の選択信号を生成する。
その結果、後段のアービタ511は、前段の待ち時間、すなわち、パケットがキュー#0または#1に格納されてからアービタ101がそのパケットを選択してキュー#2に出力するまでの時間を考慮して、キュー#2のパケットとキュー#3のパケットを調停する。
同時に、後段のアービタ511は、前段の待ち時間、すなわち、パケットがキュー#4または#5に格納されてからアービタ901がそのパケットを選択してキュー#3に出力するまでの時間を考慮して、キュー#2のパケットとキュー#3のパケットを調停する。
したがって、多段アービタ900は、1のアービタに対して複数のアービタを多段に備える多段アービタ900を通過するために必要な待ち時間を最小限に抑えることが可能となる。

Claims (8)

  1. 入力された第1のデータを保持して出力する第1の記憶回路と、
    入力された第2のデータを保持して出力する第2の記憶回路と、
    前記第1及び第2の記憶回路の出力に接続されるとともに、第1の選択信号に基づいて、前記第1又は第2のデータを選択して出力する第1の選択回路と、
    前記第1の選択回路が前記第1のデータを選択して出力するまでの第1の期間情報を計数する第1の計数回路と、
    前記第1の選択回路が前記第2のデータを選択して出力するまでの第2の期間情報を計数する第2の計数回路と、
    前記第1及び第2の計数回路の出力に接続されるとともに、前記第1の選択信号に基づいて、前記第1又は第2の期間情報を選択して出力する第2の選択回路と、
    前記第1及び第2の期間情報に基づいて、前記第1の選択信号を出力する第1の制御回路と、
    前記第1の選択回路が選択して出力する前記第1又第2のデータのいずれかを保持して出力する第3の記憶回路と、
    入力された第3のデータを保持して出力する第4の記憶回路と、
    前記第3及び第4の記憶回路に接続されるとともに、第2の選択信号に基づいて、前記第1の選択回路が選択して出力する前記第1又は第2のデータのいずれか又は第3のデータを選択して出力する第3の選択回路と、
    前記第3の選択回路が前記第1又は第2のデータのいずれかを選択して出力するまでの第3の期間情報を計数する第3の計数回路と、
    前記第3の選択回路が前記第3のデータを選択して出力するまでの第4の期間情報を計数する第4の計数回路と、
    前記第1の選択回路が前記第1のデータを選択し前記第2の選択回路が前記第1の期間情報を選択した場合、前記第1の期間情報に前記第3の期間情報を加算した期間情報を、前記第4の期間情報と比較し、前記第1又は第3のデータのうち期間情報が大きい方のデータを前記第3の選択回路に選択させる前記第2の選択信号を出力し、前記第1の選択回路が前記第2のデータを選択し前記第2の選択回路が前記第2の期間情報を選択した場合、前記第2の期間情報に前記第3の期間情報を加算した期間情報を、前記第4の期間情報と比較し、前記第2又は第3のデータのうち期間情報が大きい方のデータを前記第3の選択回路に選択させる前記第2の選択信号を出力する第2の制御回路を有することを特徴とする調停装置。
  2. 前記第2の制御回路は、前記第1又は第2の期間情報のいずれかに前記第3の期間情報を加算した期間情報と前記第4の期間情報とが一致する場合、前記第1又は第2のデータ若しくは前記第3のデータのうち前回選択したデータと異なるデータを前記第3の選択回路に選択させる前記第2の選択信号を出力することを特徴とする請求項1記載の調停装置。
  3. 前記第1の計数回路は、前記第1の選択回路が、前記第1のデータを選択した場合に、前記第1の期間情報を初期化し、
    前記第2の計数回路は、前記第1の選択回路が、前記第2のデータを選択した場合に、前記第2の期間情報を初期化し、
    前記第3の計数回路は、前記第1の選択回路が選択した前記第1又は第2のデータのいずれかを、前記第3の選択回路が選択した場合に、前記第3の期間情報を初期化し、
    前記第4の計数回路は、前記第3の選択回路が、前記第3のデータを選択した場合に、前記第4の期間情報を初期化することを特徴とする請求項1又は2記載の調停装置。
  4. 入力された第1のデータを保持して出力する第1の記憶回路と、
    入力された第2のデータを保持して出力する第2の記憶回路と、
    前記第1及び第2の記憶回路の出力に接続されるとともに、第1の選択信号に基づいて、前記第1又は第2のデータを選択して出力する第1の選択回路と、
    前記第1の選択回路が前記第1のデータを選択して出力するまでの第1の期間情報を計数する第1の計数回路と、
    前記第1の選択回路が前記第2のデータを選択して出力するまでの第2の期間情報を計数する第2の計数回路と、
    前記第1及び第2の計数回路の出力に接続されるとともに、前記第1の選択信号に基づいて、前記第1又は第2の期間情報を選択して出力する第2の選択回路と、
    前記第1及び第2の期間情報に基づいて、前記第1の選択信号を出力する第1の制御回路と、
    前記第2の選択回路の出力に接続されるとともに、前記第1又は第2の期間情報に基づいて、前記第1又は第2のデータについての優先度情報を生成して出力する優先度付け回路と、
    前記優先度付け回路が出力する前記優先度情報を保持して出力する優先度記憶回路と、
    前記第1の選択回路が選択して出力する前記第1又第2のデータのいずれかを保持して出力する第3の記憶回路と、
    入力された第3のデータを保持して出力する第4の記憶回路と、
    前記第3及び第4の記憶回路に接続されるとともに、第2の選択信号に基づいて、前記第1の選択回路が選択して出力する前記第1又は第2のデータのいずれか又は第3のデータを選択して出力する第3の選択回路と、
    前記第3の選択回路が前記第1又は第2のデータのいずれかを選択して出力するまでの第3の期間情報を計数する第3の計数回路と、
    前記第3の選択回路が前記第3のデータを選択して出力するまでの第4の期間情報を計数する第4の計数回路と、
    前記第1の選択回路が前記第1のデータを選択し前記第2の選択回路が前記第1の期間情報を選択した場合、前記優先度付け回路が前記第1の期間情報を第1の期間情報境界値と比較した結果に基づいて生成する前記第1のデータについての優先度情報と、前記第3のデータについてあらかじめ設定された優先度情報とに基づいて、前記第1又は第3のデータを前記第3の選択回路に選択させる前記第2の選択信号を出力し、前記第1の選択回路が前記第2のデータを選択し前記第2の選択回路が前記第2の期間情報を選択した場合、前記優先度付け回路が前記第2の期間情報を第2の期間情報境界値と比較した結果に基づいて生成する前記第2のデータについての優先度情報と、前記第3のデータについてあらかじめ設定された優先度情報とに基づいて、前記第2又は第3のデータを前記第3の選択回路に選択させる前記第2の選択信号を出力する第2の制御回路を有することを特徴とする調停装置。
  5. 前記第2の制御回路は、前記優先度付け回路が出力する前記第1又は第2のデータについての優先度情報と、前記第3のデータについてあらかじめ設定された優先度情報とを比較し、比較により得られる第1の結果に基づいて、前記第1又は第2のデータのいずれか又は第3のデータを前記第3の選択回路に選択させる前記第2の選択信号を出力することを特徴とする請求項4記載の調停装置。
  6. 前記第2の制御回路は、前記第1の結果からでは、前記第1又は第2のデータのいずれか又は第3のデータを選択することができない場合、前記第1又は第2のデータのいずれか又は第3のデータのうち、前回選択したデータと異なるデータを前記第3の選択回路に選択させる前記第2の選択信号を出力することを特徴とする請求項5記載の調停装置。
  7. データを保持して出力する第1の記憶回路に、第1のデータを保持して選択されると出力するステップと、
    前記第1のデータが選択されて出力されるまでの第1の期間情報を計数するステップと、
    データを保持して出力する第2の記憶回路に、第2のデータを保持して選択されると出力するステップと、
    前記第2のデータが選択されて出力されるまでの第2の期間情報を計数するステップと、
    前記第1及び第2の期間情報に基づいて、第1の選択信号を出力するステップと、
    前記第1の選択信号に基づいて、前記第1又は第2のデータを選択して出力するステップと、
    前記第1の選択信号に基づいて、前記第1又は第2の期間情報を選択して出力するステップと、
    データを保持して出力する第3の記憶回路に、選択されて出力された前記第1又第2のデータのいずれかを保持して選択されると出力するステップと、
    前記第1又は第2のデータのいずれかが選択されて出力されるまでの第3の期間情報を計数するステップと、
    データを保持して出力する第4の記憶回路に、第3のデータを保持して選択されると出力するステップと、
    前記第3のデータが選択されて出力されるまでの第4の期間情報を計数するステップと、
    前記第1の選択信号に基づいて前記第1のデータと前記第1の期間情報とが選択された場合、前記第1の期間情報に前記第3の期間情報を加算した期間情報を、前記第4の期間情報と比較し、前記第1又は第3のデータのうち期間情報が大きい方のデータを選択させる第2の選択信号を出力し、前記第1の選択信号に基づいて前記第2のデータと前記第2の期間情報とが選択された場合、前記第2の期間情報に前記第3の期間情報を加算した期間情報を、前記第4の期間情報と比較し、前記第2又は第3のデータのうち期間情報が大きい方のデータを選択させる第2の選択信号を出力するステップと、
    前記第1の選択信号に基づいて前記第1のデータと前記第1の期間情報とが選択された場合、前記第2の選択信号に基づいて、前記第1又は第3のデータのうち期間情報が大きい方のデータを選択して出力し、前記第1の選択信号に基づいて前記第2のデータと前記第2の期間情報とが選択された場合、前記第2の選択信号に基づいて、前記第2又は第3のデータのうち期間情報が大きい方のデータを選択して出力するステップと、
    を実行する調停方法。
  8. データを保持して出力する第1の記憶回路に、第1のデータを保持して選択されると出力するステップと、
    前記第1のデータを選択されて出力されるまでの第1の期間情報を計数するステップと、
    データを保持して出力する第2の記憶回路に、第2のデータを保持して選択されると出力するステップと、
    前記第2のデータが選択されて出力されるまでの第2の期間情報を計数するステップと、
    前記第1及び第2の期間情報に基づいて、第1の選択信号を出力するステップと、
    前記第1の選択信号に基づいて、前記第1又は第2のデータを選択して出力するステップと、
    前記第1の選択信号に基づいて、前記第1又は第2の期間情報を選択して出力するステップと、
    前記第1又は第2の期間情報に基づいて、前記第1又は第2のデータについての優先度情報を生成して出力するステップと、
    データを保持して出力する優先度記憶回路に、前記優先度情報を保持して出力するステップと、
    データを保持して出力する第3の記憶回路に、選択されて出力された前記第1又第2のデータのいずれかを保持して選択されると出力するステップと、
    前記第1又は第2のデータのいずれかが選択されて出力されるまでの第3の期間情報を計数するステップと、
    データを保持して出力する第4の記憶回路に、第3のデータを保持して選択されると出力するステップと、
    前記第3のデータを選択されて出力されるまでの第4の期間情報を計数するステップと、
    前記第1の選択信号に基づいて前記第1のデータと前記第1の期間情報とが選択された場合、前記第1の期間情報を第1の期間情報境界値と比較した結果に基づいて生成された前記第1のデータについての優先度情報と、前記第3のデータについてあらかじめ設定された優先度情報とに基づいて、前記第1又は第3のデータを選択させる第2の選択信号を出力し、前記第1の選択信号に基づいて前記第2のデータと前記第2の期間情報とが選択された場合、前記第2の期間情報を第2の期間情報境界値と比較した結果に基づいて生成された前記第2のデータについての優先度情報と、前記第3のデータについてあらかじめ設定された優先度情報とに基づいて、前記第2又は第3のデータを選択させる第2の選択信号を出力するステップと、
    前記第1の選択信号に基づいて前記第1のデータと前記第1の期間情報とが選択された場合、前記第2の選択信号に基づいて、前記第1又は第3のデータを選択して出力し、前記第1の選択信号に基づいて前記第2のデータと前記第2の期間情報とが選択された場合、前記第2の選択信号に基づいて、前記第2又は第3のデータを選択して出力するステップと、
    を実行する調停方法。
JP2010548257A 2009-02-02 2009-02-02 調停装置 Expired - Fee Related JP5382003B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/000397 WO2010086906A1 (ja) 2009-02-02 2009-02-02 調停装置

Publications (2)

Publication Number Publication Date
JPWO2010086906A1 JPWO2010086906A1 (ja) 2012-07-26
JP5382003B2 true JP5382003B2 (ja) 2014-01-08

Family

ID=42395178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010548257A Expired - Fee Related JP5382003B2 (ja) 2009-02-02 2009-02-02 調停装置

Country Status (3)

Country Link
US (1) US8234428B2 (ja)
JP (1) JP5382003B2 (ja)
WO (1) WO2010086906A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102112973B (zh) 2009-06-08 2016-04-13 松下知识产权经营株式会社 协调装置、协调系统、协调方法、半导体集成电路及图像处理装置
JP5614133B2 (ja) * 2010-07-02 2014-10-29 富士通株式会社 アクセス制御装置、アクセス制御方法およびストレージシステム
JP5573491B2 (ja) 2010-08-23 2014-08-20 日本電気株式会社 データ転送システム、スイッチ及びデータ転送方法プロセッサ間ネットワーク
WO2012145416A1 (en) * 2011-04-20 2012-10-26 Marvell World Trade Ltd. Variable length arbitration
WO2013038589A1 (ja) * 2011-09-14 2013-03-21 パナソニック株式会社 資源要求調停装置、資源要求調停システム、資源要求調停方法、集積回路およびプログラム
US8793421B2 (en) * 2011-10-31 2014-07-29 Apple Inc. Queue arbitration using non-stalling request indication
WO2013088521A1 (ja) * 2011-12-13 2013-06-20 富士通株式会社 中継装置および中継方法
GB2528071B (en) * 2014-07-08 2021-04-07 Advanced Risc Mach Ltd Arbitrating and multiplexing circuitry
JP6481427B2 (ja) * 2015-03-10 2019-03-13 富士通株式会社 演算処理装置,情報処理装置,及び情報処理装置の制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148513A (ja) * 1998-11-11 2000-05-30 Matsushita Electric Ind Co Ltd タスク制御方法およびタスク制御装置
JP2000156693A (ja) * 1998-09-17 2000-06-06 Oki Electric Ind Co Ltd Atmセル多重装置及びatmセル多重方法
JP2002508099A (ja) * 1997-06-30 2002-03-12 サン・マイクロシステムズ・インコーポレーテッド 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
JP2004140538A (ja) * 2002-10-17 2004-05-13 Hitachi Ltd 大容量化と低遅延化に対応したアービタおよびそれを用いたルータ

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63278439A (ja) 1987-05-08 1988-11-16 Matsushita Electric Ind Co Ltd ホ−ムバスシステム用通信制御装置
US5754803A (en) * 1996-06-27 1998-05-19 Interdigital Technology Corporation Parallel packetized intermodule arbitrated high speed control and data bus
US6173349B1 (en) * 1996-10-18 2001-01-09 Samsung Electronics Co., Ltd. Shared bus system with transaction and destination ID
KR100223897B1 (ko) * 1997-03-12 1999-10-15 구본준 버스(BUS) 아비트레이션(Arbitration)장치
US6700899B1 (en) * 1998-02-03 2004-03-02 Broadcom Corporation Bit slice arbiter
JPH11249823A (ja) * 1998-02-27 1999-09-17 Hitachi Ltd バス制御システム
US6667984B1 (en) * 1998-05-15 2003-12-23 Polytechnic University Methods and apparatus for arbitrating output port contention in a switch having virtual output queuing
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
US7173931B2 (en) * 2000-11-20 2007-02-06 Hung-Hsiang Jonathan Chao Scheduling the dispatch of cells in multistage switches
GB0031763D0 (en) * 2000-12-29 2001-02-07 Mitel Semiconductor Ltd Arbiter for a queue management system
KR100477641B1 (ko) * 2002-01-15 2005-03-23 삼성전자주식회사 버스 시스템 및 그 데이터 전송경로 결정방법
US7007123B2 (en) * 2002-03-28 2006-02-28 Alcatel Binary tree arbitration system and method using embedded logic structure for controlling flag direction in multi-level arbiter node
US20040083326A1 (en) * 2002-10-29 2004-04-29 Yuanlong Wang Switch scheduling algorithm
DE10261174B3 (de) * 2002-12-20 2004-06-17 Daimlerchrysler Ag Automatische Adressierung auf Bussystemen
US7522527B2 (en) * 2002-12-24 2009-04-21 Electronics And Telecommunications Research Institute Scalable crossbar matrix switch and arbitration method thereof
US7143219B1 (en) * 2002-12-31 2006-11-28 Intel Corporation Multilevel fair priority round robin arbiter
WO2005107175A1 (en) * 2004-04-28 2005-11-10 Freescale Semiconductor, Inc An arbiter for a serial bus system
US7302510B2 (en) * 2005-09-29 2007-11-27 International Business Machines Corporation Fair hierarchical arbiter
US20070174529A1 (en) * 2005-12-29 2007-07-26 Intel Corporation Queue manager having a multi-level arbitrator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002508099A (ja) * 1997-06-30 2002-03-12 サン・マイクロシステムズ・インコーポレーテッド 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
JP2000156693A (ja) * 1998-09-17 2000-06-06 Oki Electric Ind Co Ltd Atmセル多重装置及びatmセル多重方法
JP2000148513A (ja) * 1998-11-11 2000-05-30 Matsushita Electric Ind Co Ltd タスク制御方法およびタスク制御装置
JP2004140538A (ja) * 2002-10-17 2004-05-13 Hitachi Ltd 大容量化と低遅延化に対応したアービタおよびそれを用いたルータ

Also Published As

Publication number Publication date
US8234428B2 (en) 2012-07-31
US20110283032A1 (en) 2011-11-17
WO2010086906A1 (ja) 2010-08-05
JPWO2010086906A1 (ja) 2012-07-26

Similar Documents

Publication Publication Date Title
JPWO2010086906A1 (ja) 調停装置
US7558895B2 (en) Interconnect logic for a data processing apparatus
US6570403B2 (en) Quantized queue length arbiter
US20110022759A1 (en) Multiprocessor system
JP3919765B2 (ja) アービトレーションを管理する方法およびプロセッサ
US20160275028A1 (en) Semiconductor device
US10459841B2 (en) Information processing apparatus, information processing system, and method of controlling information processing apparatus, configured to form ring-shaped bus
CN118467418B (zh) 一种存储访问系统以及存储访问调度方法
WO2007099613A1 (ja) コマンド選択方法、装置、コマンド投入方法、及び装置
JP2011232917A (ja) 半導体集積回路、及びリクエスト制御方法
US9069919B1 (en) Method and system for arbitration verification
US20050132153A1 (en) Method and Apparatus of Arranging Priority Queue and Arbitrating for Memory Access Requests
US9575912B2 (en) Service request interrupt router with shared arbitration unit
EP2290552A1 (en) Data transfer device, information processing device, and control method
CN115495399A (zh) 一种分布式仲裁系统、方法、装置、存储介质及电子设备
JP2010044645A (ja) データ転送装置、およびデータ転送方法
CN118012798B (zh) 芯片间互联控制方法、装置和存储介质
CN107678993A (zh) 电脑系统及总线仲裁方法
JP5239769B2 (ja) リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム
EP0675446A1 (en) Multi-processor system including priority arbitrator for arbitrating request issued from processors
US20140101352A1 (en) Interrupt controller, apparatus including interrupt controller, and corresponding methods for processing interrupt request event(s) in system including processor(s)
US7706387B1 (en) System and method for round robin arbitration
US11782834B2 (en) System and method for round robin arbiters in a network-on-chip (NoC)
JP4314230B2 (ja) 高速シフトタイプバッファ用システム及び方法
JP5441185B2 (ja) 割り込みコントローラ及び時分割割り込み発生方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130808

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130916

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees