JP2010239434A - 調停回路、オーバーフロー制御方法及びオーバーフロー制御プログラム - Google Patents

調停回路、オーバーフロー制御方法及びオーバーフロー制御プログラム Download PDF

Info

Publication number
JP2010239434A
JP2010239434A JP2009085798A JP2009085798A JP2010239434A JP 2010239434 A JP2010239434 A JP 2010239434A JP 2009085798 A JP2009085798 A JP 2009085798A JP 2009085798 A JP2009085798 A JP 2009085798A JP 2010239434 A JP2010239434 A JP 2010239434A
Authority
JP
Japan
Prior art keywords
priority
input information
buffer
overflow
input
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
JP2009085798A
Other languages
English (en)
Other versions
JP5407491B2 (ja
Inventor
Takehiko Nakano
毅彦 中野
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009085798A priority Critical patent/JP5407491B2/ja
Publication of JP2010239434A publication Critical patent/JP2010239434A/ja
Application granted granted Critical
Publication of JP5407491B2 publication Critical patent/JP5407491B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】複数のバッファを用いた調停回路において、オーバーフローの蓋然性が高い複数のバッファが存在する場合でも調停回路全体でバッファオーバーフローの発生を低減できる調停回路を提供する。
【解決手段】バッファ91は、上位装置から入力された入力情報を保持する。入力情報量検知手段92は、入力情報が入力されたときに、バッファ91内に保持された入力情報量を検知する。優先度決定手段93は、入力情報検知手段92が検知したバッファ91ごとの入力情報量を比較して、入力情報を出力させるバッファ91の優先度である出力優先度を決定する。出力指示手段94は、出力優先度の高いバッファに保持された入力情報を出力させる。
【選択図】図15

Description

本発明は、複数のバッファを用いた調停回路で発生するバッファオーバーフローを低減させる調停回路及びその調停回路に適用されるオーバーフロー制御方法及びオーバーフロー制御プログラムに関する
一般的な調停回路において、複数のFIFO(First-In First-Out)方式によるバッファ(以下、FIFOと記す。)から出力選択を行う場合、それぞれのFIFOに対して静的な重みを設定することで優先順位を明確にし、オーバーフロー発生を軽減する方法がとられている。
一方、それぞれのFIFOに対して動的な重み(優先度)を設定する技術が各種提案されている。例えば、特許文献1には、簡単な構成で、バースト的なセル排出を回避した優先制御が可能なATM(Asynchronous Transfer Mode)通信装置が記載されている。特許文献1に記載されたATM通信装置は、予め定められた通信品質クラス間の優先順位と、最低閾値への到達の有無と、セル排出権の有無とを条件とする所定の選択論理に基づいて、セル排出すべき通信品質クラスを選択する。各通信品質クラスのセル排出権は、所定期間分のタイムスロットからなるラウンドロビンテーブル上に時系列的に分散して割り当てられる。このように、上記ATM通信装置は、排出するセルを選択するための優先順位を見直して動的な重み値を設定することによりセル排出間隔を均等に近づける。
特許文献2には、上位制御回路にハードキューへのデータ積み込み状況を通知して、ハードキューをオーバーフローさせずにデータ通信を可能にするデータ通信装置が記載されている。特許文献2に記載されたデータ通信装置は、ハードキューに積み込まれているデータの積み込み数を算出し、その積み込み状況を上位制御回路に通知する。上位制御回路は、その状況を把握してデータ通信装置に入力するデータ積み込み回数を調節する。
特許文献3には、入力バッファのオーバーフローに起因するパケットの廃棄を減少できる競合パケット調整装置が記載されている。特許文献3に記載された競合パケット調整装置は、すべての入力バッファにセルの出力機会を均等に与えるため、入力バッファごとにサイクリックに変更される優先度Pに基づいて、出線要求バッファの調停を行う。また、自バッファが輻輳状態にある(以下、輻輳バッファと記す。)か否かを判定し、輻輳状態にあれば輻輳表示フラグを設定する。輻輳バッファがある場合は、この輻輳バッファの中で、最も優先度Pが高いバッファに勝ち報告WIN(自バッファが調停に勝ち残ったことを示す報告)を返信し、輻輳バッファがない場合は、出線要求バッファの中で、最も優先度Pの高いバッファに勝ち報告WINを返信する。
特許文献4には、データ伝送のための優先順位選択手段が記載されている。特許文献4に記載された優先順位選択手段では、乱数発生器を用いて選択したルックアップテーブルの優先順位シンボルをもとに、複数のバッファの中からデータを出力させるバッファを選択する。そして、いずれかのバッファのデータ量がオーバーフロー閾知レベルTdを超えた場合、バッファを選択するための優先順位シンボルを変更し、50%の割合でそのバッファからデータを出力させる。また、いずれかのバッファのデータ量がオーバーライド閾知レベルTsを超えた場合、強制的にそのバッファからデータを出力させる。
特許文献5には、パケットスイッチを通るデータセルの流れを制御するパケットスイッチの流れ制御システムが記載されている。特許文献5に記載された制御システムでは、出力バッファの満杯レベルを監視し、出力バッファに対してデータセルを伝送してよいか否かを表す信号を発生させる。出力バッファのどれかが過度に満杯になって、その出力バッファに関連するリンクにアドレスされたセルを受け入れることができずにデータセルを失う恐れが生じた場合、上記信号を入力バッファに送って、過度に満杯になっている出力バッファ向けのセルを持つデータの伝送を遅らせる。
特開2002−94519号公報(段落0025,0032、図7) 特開昭62−49462号公報(P2左下,右下、図1) 特開平6−232909号公報(段落0042,0043,0076,0091) 特表2001−517026号公報(段落0011、0012、図1) 特表平8−504554号公報(P16〜17、図5)
FIFO内のエントリ数は状況に応じて変化するため、優先順位として静的に設定された重みが常に最適値であるとは言えない。そのため、セル排出可能なセルがあってもキュー(FIFO)から排出できないケースや、最優先に出力すべきデータがFIFO内に待たされ続ける状況の発生が原因で、FIFOがオーバーフローになり易い恐れがあった。
特許文献1に記載されたATM通信装置では、動的な重み値を設定できるが、その重み値は最低通信品質を確保することを目的としている。すなわち、上記ATM通信装置では、ラウンドロビンにより決定される各通信品質クラスのセル排出権と、予め定められた通信品質クラス間の優先順位をもとに、セル排出すべき特定の通信品質クラスを選択する。そのため、予め定められた優先順位が低い通信品質クラスでは、受信したセルがオーバーフローする蓋然性が高くなってしまうという課題がある。
また、特許文献2に記載されたデータ通信装置では、ハードウェアキューの積み込み数を上位制御回路に通知し、入力データを調整する。しかし、入力データの調整は上位制御回路に依存するため、上記データ通信装置では、上位制御回路からデータが入力されてしまった後は、オーバーフローの制御をすることができない。そのため、上位制御回路からのデータがデータ通信装置に入力された後であってもフロー制御できる事が望ましい。
特許文献3に記載された競合パケット調整装置では、輻輳バッファの時の状態をそれ以外の(輻輳していない)バッファの時の状態よりも優先度を高くする。しかし、輻輳バッファが複数存在する場合、上記競合パケット調整装置は、処理を順番に割り振る(いわゆるラウンドロビン)方法を用いてバッファを選択するため、より早く処理すべきバッファを判断できないという課題がある。
また、特許文献4に記載された優先順位選択手段では、乱数発生器を用いてバッファの優先度を決定し、さらに超えた閾値のレベル(Ts,Td)ごとに優先度を高くする。しかし、上記優先順位選択手段では、バッファ選択のための乱数発生器が必要であり、また、優先度の高いバッファが複数存在する場合、それらの中から優先的に処理すべきバッファを判断できないという課題がある。
また、特許文献5に記載された制御システムでは、出力バッファへの入力データを一時的に抑制することで、その出力バッファのデータ量を所定の閾値よりも減らすことができる。しかし、その出力バッファのデータ量は依然として高く、再度入力データを受け取った場合、すぐに閾値を超える恐れがある。また、これらの処理が繰り返されることにより、制御コストが増大する恐れもある。
そこで、本発明は、複数のバッファを用いた調停回路において、オーバーフローの蓋然性が高い複数のバッファが存在する場合でも調停回路全体でバッファオーバーフローの発生を低減できる調停回路及びその調停回路に適用されるオーバーフロー制御回路及びオーバーフロー制御プログラムを提供することを目的とする。
本発明による調停回路は、上位装置から入力された入力情報を保持するバッファと、入力情報が入力されたときに、バッファ内に保持された入力情報量を検知する入力情報量検知手段と、入力情報検知手段が検知したバッファごとの入力情報量を比較して、入力情報を出力させるバッファの優先度である出力優先度を決定する優先度決定手段と、出力優先度の高いバッファに保持された入力情報を出力させる出力指示手段とを備えたことを特徴とする。
本発明によるオーバーフロー制御方法は、上位装置から入力情報が入力されたときに、入力情報を保持するバッファ内に保持された入力情報量を検知する入力情報量検知ステップと、入力情報検知ステップで検知したバッファごとの入力情報量を比較して、入力情報を出力させるバッファの優先度である出力優先度を決定する優先度決定ステップと、出力優先度の高いバッファに保持された入力情報を出力させる出力指示ステップとを含むことを特徴とする。
本発明によるオーバーフロー制御プログラムは、上位装置から入力された入力情報を保持するバッファを備えたコンピュータに適用されるオーバーフロー制御プログラムであって、コンピュータに、入力情報が入力されたときに、バッファ内に保持された入力情報量を検知する入力情報量検知処理、入力情報検知処理で検知したバッファごとの入力情報量を比較して、入力情報を出力させるバッファの優先度である出力優先度を決定する優先度決定処理、及び、出力優先度の高いバッファに保持された入力情報を出力させる出力指示処理を実行させることを特徴とする。
本発明によれば、複数のバッファを用いた調停回路において、オーバーフローの蓋然性が高い複数のバッファが存在する場合でも調停回路全体でバッファオーバーフローの発生を低減できる。
本発明の第1の実施形態における調停回路の例を示すブロック図である 優先順位調停部30の構成例を示すブロック図である。 LDZ31の真理値表の例を示す説明図である。 LDZ32の真理値表の例を示す説明図である。 カウンタ値A〜Dの例を示す説明図である。 本発明の第2の実施形態における調停回路の例を示すブロック図である。 FIFOステータス保持手段50が保持する値の例を示す説明図である。 優先順位調停部30’の構成例を示すブロック図である。 LDZ35の真理値表の例を示す説明図である。 本発明の第3の実施形態における調停回路の例の一部を示すブロック図である。 オーバーフローカウンタの値が推移する例を説明するタイミングチャートの図である。 FIFOステータス保持手段50が保持する情報量判断結果の例を示す説明図である。 FIFOステータス保持手段50が保持する情報量判断結果の例を示す説明図である。 オーバーフロー回数の差分を判断する場合の例を示す説明図である。 本発明における調停回路の最小構成を示すブロック図である。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態における調停回路の例を示すブロック図である。本実施形態における調停回路は、FIFO10A,10B,10C,10D(以下、これらをまとめて、FIFO10と記すこともある。)と、FIFOエントリカウンタ20A,20B,20C,20D(以下、これらをまとめてFIFOエントリカウンタ20と記すこともある。)と、優先順位調停部30と、セレクタ回路40とを備えている。
FIFO10は、上位装置が出力した入力情報A〜Dをそれぞれ受け取り、出力情報A〜Dとしてそれぞれ出力するバッファである。FIFO10A,10B,10C及び10Dは、入力情報A〜Dをそれぞれ受信すると、その入力情報をそれぞれの内部に格納し、古い情報から順に出力情報A〜Dとしてそれぞれ出力する。以下の説明では、上位装置からの入力情報を受信するFIFO10が4個の場合について説明する。また、FIFO10が受信する入力情報の単位を1Wordとし、FIFO10が入力情報として保持できる最大量を1023(Word)として説明する。なお、FIFOの数は4個に限定されず、最大量や単位も上記内容に限定されない。図1に示す例では、FIFO10A,10B,10C及び10Dは、入力情報量として、それぞれ639,1022,0,511(Word)の入力情報を格納していることを示す。
FIFOエントリカウンタ20は、上位装置から出力された入力情報A〜Dをそれぞれ受け取り、その入力情報A〜Dを受信する度にFIFOエントリカウンタ値(以下、カウンタ値と記す。)A〜Dをカウントアップする。そして、FIFOエントリカウンタ20は、そのカウンタ値A〜Dを、後述の優先順位調停部30へ通知する。すなわち、FIFOエントリカウンタ20は、FIFO10内のデータ量を検知する手段であると言える。
優先順位調停部30は、FIFOエントリカウンタ20から受信したカウンタ値A〜Dを比較して、データを出力させるFIFO10を選択する。優先順位調停部30は、受信したカウンタ値A〜Dの比較を行い、最もカウンタ値の大きいFIFO10の優先度を高く決定する。優先順位調停部30は、その優先度(すなわち、カウンタ比較結果)をセレクト信号として、後述のセレクタ回路40へ通知する。
図2は、優先順位調停部30の構成例を示すブロック図である。図2に示す例では、優先順位調停部30は、リーディングゼロ回路(以下、LDZと記す。)310〜319(以下、これらをまとめて、LDZ31と記すこともある。)と、LDZ32と、セレクタ回路33とを備えている。
LDZ31は、ビット単位でカウンタ値の大小判定を行う回路である。LDZ310は、最上位ビット同士の比較を行い、以下、LDZ311〜LDZ319は、最上位ビットから1ビットずつ下位のビットに対応させて比較を行う。本実施形態では、FIFO10が格納できる入力情報が1023であり、カウンタ値が10ビットで表現できるため、LDZ31を10個備えている場合について説明するが、LDZ31の個数は10個に限定されない。優先順位調停部30が備えるLDZ31の個数は、カウンタ値の範囲によって決定すればよい。
LDZ32は、LDZ311〜LDZ319の中から、比較結果を採用するLDZ回路を選択する回路である。LDZ32は、LDZ310〜319による比較結果を「LDZ310>LDZ311>LDZ312>LDZ313>LDZ314>LDZ315>LDZ316>LDZ317>LDZ318>LDZ319」の優先順位に基づいて選択する。セレクタ回路33は、LDZ32が選択したLDZの比較結果をもとに、出力情報を出力させるFIFO10を選択し、結果をセレクト信号として、後述のセレクタ回路40へ通知する。以下の説明では、優先順位調停部30がLDZ31を10個備えている場合について説明するが、LDZ31の数は10個に限定されない。
優先順位調停部30の処理について、以下に詳述する。FIFOエントリカウンタ20がカウントしたカウンタ値の大小判定は、まず、LDZ130が、ビット0(最上位ビット)同士を比較する。比較したビットの中で1が立っているものが1つだけあれば以降の下位ビットの比較は不要となり、最も空き容量の少ないFIFO10が特定できることになる。もし1が立っているビットが存在しなければ、LDZ131が、ビット0の下位のビット1同士で同様に比較を行う。比較したビットの中で1が立っているものが1つだけあれば以降の下位ビットの比較は不要となり、最も空き容量の少ないFIFO10が特定できる。以下、LDZ132〜LDZ139は、ビット1の下位のビット2〜最下位ビットまでの比較を同様に行う。
上述のように、LDZ回路を2段用いた論理回路で優先順位調停部30を構成する場合、LDZ31(すなわち、LDZ311〜LDZ319)は、各ビット同士の大小を比較する。また、LDZ32は、LDZ31の結果の中からどの結果を採用するかを判断する。
上記説明では、比較したビットの中で1が立っているものが1つだけある場合について説明した。なお、比較したビットに複数の1が立っている場合を考慮する場合、大小判定は比較したビットよりも1ビット下位のビット同士の比較結果を用いて行えばよい。図3は、LDZ31が比較のために使用する真理値表の例を示す説明図である。図3に示す例では、1が立っているビットが複数あった場合に、FIFO10A,10B,10C,10Dの順に優先順位を定めていることを示す。また、図4は、LDZ32の真理値表の例を示す説明図である。図4に示す例では、LDZ32は、最上位ビットの比較結果を優先していることを示す。
セレクタ回路40は、出力情報A〜Dの中からどの出力情報を出力するか選択する。セレクタ回路40は、FIFO10からの出力情報A〜Dと、優先順位調停部30からのセレクト信号(カウンタ比較結果と記すこともある。)を検知する。セレクタ回路40は、優先順位調停部30から送られるセレクト信号をもとに、FIFO10から出力された出力情報A〜Dの中から1つを選択して調停結果として出力する。例えば、セレクタ回路40は、最も大きいカウンタ値に対応するFIFO10から出力される出力情報を選択する。そして、セレクタ回路40は、選択した出力情報を調停結果として出力する。なお、セレクタ回路40は、出力情報を選択したときに、FIFOエントリカウンタ20のカウンタ値を1カウントダウンする。
FIFOエントリカウンタ20と、優先順位調停部30と、セレクタ回路40とは、例えば、プログラム(オーバーフロー制御プログラム)に従って動作するコンピュータのCPUによってソフトウェア上で実現されてもよい。例えば、プログラムは、調停回路が備える記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、FIFOエントリカウンタ20、優先順位調停部30及びセレクタ回路40として動作してもよい。また、FIFOエントリカウンタ20、優先順位調停部30、セレクタ回路40がそれぞれ専用の回路で実現されていてもよい。
次に、動作について説明する。本実施形態における調停装置は、上位装置から出力された入力情報A〜Dをそれぞれ受け取ると、FIFO10が、その入力情報をそれぞれの内部に保持する。また、FIFOエントリカウンタ20は、カウンタ値A〜Dをカウントアップし、そのカウンタ値A〜Dを優先順位調停部30へ通知する。優先順位調停部30は、FIFOエントリカウンタ20から通知されるカウンタ値を検知すると、回路(比較器回路と記すこともある。)を用いて各カウンタ値を直接比較する。
図5は、カウンタ値A〜Dの例を示す説明図である。例えば、各カウンタ値が、図5(a)に例示する値である場合、FIFO10Bのカウンタ値Bが最も大きいため、優先順位調停部30は、FIFO10Bからの出力を最も優先度が高いと決定する(図5(b))。カウンタ値が最も大きいFIFO10を特定することは、空き容量が最も少ないFIFOを特定することである言える。そこで、優先順位調停部30は、比較結果としてFIFO10Bを示すセレクト信号をセレクタ回路40へ通知する。
セレクタ回路40は、セレクト信号を検知すると、その信号に応じて出力情報A〜Dの中から1つを選択して調停結果として出力する。このように、FIFO10間のカウンタ値を比較して出力させるFIFO10を決定することにより、FIFO10全体においてオーバーフローする頻度を低減させることができる。
本発明によれば、FIFOエントリカウンタ20が、上位装置から入力情報が入力されたときに、入力情報を保持するFIFO10内に保持されたカウンタ値をカウントアップし、優先順位調停部30が、FIFO10ごとの入力情報量を比較して、カウンタ値が大きいFIFO10の出力優先度を高く決定する。そして、セレクタ回路40が、カウンタ値の大きい(出力優先度の高い)FIFO10に保持された入力情報を出力する。そのため、複数のFIFO10を用いた調停回路において、オーバーフローの蓋然性が高い複数のFIFO10が存在する場合でも調停回路全体でバッファオーバーフローの発生を低減できる。
すなわち、本実施形態では、動的に変化する空き容量に着目し、FIFO10ごとの容量を比較して、この空き容量が最も少ないFIFO10を調停回路の出力対象として選択することでオーバーフロー発生率を低減させることができる。また、オーバーフロー発生率が低減することにより、結果として回路全体の性能低下を抑えることができる。
また、本発明によれば、入力情報の量をもとに出力対象を一意に選択できるため、出力対象を決定するための他の装置(例えば、乱数発生器など)を備える必要がなく、調停回路の規模を抑えることもできる。
実施形態2.
図6は、本発明の第2の実施形態における調停回路の例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態における調停回路は、FIFO10と、FIFOエントリカウンタ20と、優先順位調停部30’と、セレクタ回路40に加え、FIFOステータス保持手段50A,50B,50C,50D(以下、これらをまとめて、FIFOステータス保持手段50と記すこともある。)を備えている。
第2の実施形態では、FIFOエントリカウンタ20と優先順位調停部30’の間にFIFOステータス保持手段50が配置され、FIFOエントリカウンタ20は、FIFOステータス保持手段50に対してカウンタ値を通知する。それ以外のFIFO10、FIFOエントリカウンタ20及びセレクタ回路40の構成については、第1の実施形態と同様であるため、説明を省略する。
FIFOステータス保持手段50は、入力情報の量を示すカウンタ値が予め定められた閾値(以下、入力情報量閾値と記す。)以上か否か判断し、その入力情報量閾値ごとの判断結果(以下、情報量判断結果と記す。)を生成して、その結果を保持する。また、FIFOステータス保持手段50は、その情報量判断結果を優先順位調停部30’へ通知する。FIFOステータス保持手段50は、例えば、フリップフロップ(以下、FFと記す。)などにより情報量判断結果を保持する。
FIFOステータス保持手段50は、その内部に、Full_A、Full_B、Full_C、Full_Dの計4bitのFFと、Full−1_A、Full−1_B、Full−1_C、Full−1_Dの計4bitのFFと、Full−2_A、Full−2_B、Full−2_C、Full−2_Dの計4bitのFFと、Full−3_A、Full−3_B、Full−3_C、Full−3_Dの計4bitのFFと、3/4_A、3/4_B、C−3/4_C、D−3/4_Dの計4bitのFFと、1/2_A、1/2_B、C−1/2_C、D−1/2_Dの計4bitのFFの計24bitのFFを備えている。なお、_A,_B,_C及び_Dと名づけたFFは、それぞれFIFO10A,10B,10C,10Dにそれぞれ対応しているものとする。
FIFOステータス保持手段50は、FIFOエントリカウンタ20A〜Dからそれぞれのカウンタ値を受け取ると、FIFO10のそれぞれのエントリ数が全体容量の半分以上であれば1/2_A〜1/2_DのFFをそれぞれセットし、半分未満であればそれぞれリセットする。また、FIFOステータス保持手段50は、FIFO10のそれぞれのエントリ数が全体容量の4分の3以上であれば3/4_A〜3/4_DのFFをそれぞれセットし、4分の3未満であればそれぞれリセットする。また、FIFOステータス保持手段50は、FIFO10のそれぞれのエントリ数が(全体容量−3エントリ)以上であればFull−3_A〜Full−3_DのFFをそれぞれセットし、(全体容量−3エントリ)未満であればそれぞれリセットする。
以下同様に、FIFOステータス保持手段50は、FIFO10のそれぞれのエントリ数が(全体容量−2エントリ)以上であればFull−2_A〜Full−2_DのFFをそれぞれセットし、(全体容量−2エントリ)未満であればそれぞれリセットする。また、FIFOステータス保持手段50は、FIFO10のそれぞれのエントリ数が(全体容量−1エントリ)以上であればFull−1_A〜Full−1_DのFFをそれぞれセットし、(全体容量−1エントリ)未満であればそれぞれリセットする。また、FIFOステータス保持手段50は、FIFO10のそれぞれのエントリ数が全体容量であればFull_A〜Full_DのFFをそれぞれセットし、全体容量未満であればそれぞれリセットする。
例えば、FIFO10Aの4分の3が有効データで占められていた場合、FIFOステータス保持手段50は、FIFO10Aに対応する1/2_A及び3/4_AのFFそれぞれに1をセットする。FIFOステータス保持手段50は、例えば、FIFO10が入力情報として保持できる最大量と、FIFOエントリカウンタ20から受け取ったカウンタ値とを比較して、入力情報量閾値を超えているか否か判断してもよい。以下の説明では、入力情報量閾値の種類が6種類の場合について説明するが、入力情報量閾値の種類は6種類に限定されない。
図7は、FIFOステータス保持手段50が保持する値の例を示す説明図である。図7に示す例では、例えば、FIFO10Aのエントリ数が、全体容量の4分の3以上であるために3/4_AのFFに1がセットされ、(全体容量−3エントリ)未満であるためにFull−3_Aが0にリセットされていることを示す。なお、Fullと名づけられた4bitのFFはbit0〜3がFIFO10A,10B,10C,10Dにそれぞれ対応している。以下、図7の例に示す表を、マトリックスと呼ぶこともある。
優先順位調停部30’は、FIFOステータス保持手段50が保持した値(FFの値、すなわち情報量判断結果)を受け取り、その情報量判断結果をもとにFIFO10の入力情報量を比較して、最も優先度の高いFIFO10を決定する。そして、優先順位調停部30’は、その比較結果をセレクト信号としてセレクタ回路40へ通知する。図8は、優先順位調停部30’の構成例を示すブロック図である。図8に示す例では、優先順位調停部30’は、LDZ−Fullと、LDZ−Full−1と、LDZ−Full−2と、LDZ−Full−3と、LDZ−3/4と、LDZ−1/2(以下、これらをまとめてLDZ34と記すこともある。)と、LDZ35と、セレクタ回路36とを備えている。
LDZ34は、情報量判断結果を比較して大小判定を行う回路である。具体的には、LDZ−Fullは、Full_A〜Full_Dの計4bitのFFを比較するLDZ回路である。また、LDZ−Full−1は、Full−1_A〜Full−1_Dの計4bitのFFを比較するLDZ回路である。以下同様に、LDZ−Full−2、LDZ−Full−3、LDZ−3/4及びLDZ−1/2は、それぞれFull−2_A〜Full−2_D、Full−3_A〜Full−3_D、3/4_A〜3/4_D及び1/2_A〜1/2_Dのそれぞれ計4bitのFFを比較するLDZ回路である。LDZ34は、まず、LDZ−Fullが、入力情報が最も多い場合を表わすFull_A〜Full_Dのbit同士の比較を行い、以下、LDZ−Full−1,LDZ−Full−2,LDZ−Full−3,LDZ−3/4,LDZ−1/2の順に比較を行う。なお、LDZ34が大小判定を行う方法は、第1の実施形態におけるLDZ31が大小判定を行う方法と同様のため、詳細な説明を省略する。
本実施形態では、入力情報量閾値の種類が6種類のため、6種類のLDZ34を備えている場合について説明するが、LDZ34の種類は6種類に限定されない。優先順位調停部30’が備えるLDZ34の種類は、入力情報量閾値の種類によって決定すればよい。
LDZ35は、6種類のLDZ回路を含むLDZ34の中から、比較結果を採用するLDZ回路を選択する回路である。LDZ35は、各LDZ34の比較結果を「LDZ−Full>LDZ−Full−1>LDZ−Full−2>LDZ−Full−3>LDZ−3/4>LDZ−1/2」の優先順位に基づいて選択する。LDZ35が、この優先順位に基づいてLDZ34を比較する場合の真理値表の例を、図9に示す。セレクタ回路36は、LDZ35が選択したLDZの比較結果をもとに、出力情報を出力させるFIFO10を選択し、結果をセレクト信号としてセレクタ回路40へ通知する。
優先順位調停部30’は、図7の例に示すマトリックスを参照することで(言い換えればFFをリードすることで)、空きが最も少ないFIFO10Aがどれかを特定し、優先度を判断することができるといえる。
FIFOエントリカウンタ20と、優先順位調停部30’と、セレクタ回路40と、FIFOステータス保持手段50とは、例えば、プログラム(オーバーフロー制御プログラム)に従って動作するコンピュータのCPUによってソフトウェア上で実現されてもよい。例えば、プログラムは、調停回路が備える記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、FIFOエントリカウンタ20、優先順位調停部30’、セレクタ回路40及びFIFOステータス保持手段50として動作してもよい。また、FIFOエントリカウンタ20、優先順位調停部30’、セレクタ回路40、FIFOステータス保持手段50がそれぞれ専用の回路で実現されていてもよい。
次に、動作について説明する。上位装置から出力された入力情報A〜Dをそれぞれ受け取ると、FIFO10は、その入力情報をそれぞれの内部に格納する。また、FIFOエントリカウンタ20は、カウンタ値A〜Dをカウントアップし、そのカウンタ値A〜DをFIFOステータス保持手段50へ通知する。FIFOステータス保持手段50は、受信したカウンタ値が入力情報量閾値以上か否か判断し、その入力情報量閾値ごとの情報量判断結果を保持する。また、FIFOステータス保持手段50は、その情報量判断結果を優先順位調停部30’へ通知する。優先順位調停部30’は、情報量判断結果を受け取り、その情報量判断結果をもとにFIFO10の入力情報量を比較して、優先度を決定する。優先順位調停部30’は、その比較結果をセレクト信号としてセレクタ回路40へ通知する。
本発明によれば、第1の実施形態に加え、FIFOステータス保持手段50が、FIFOエントリカウンタ20が検知した入力情報量をもとに、入力情報量閾値を超えた状態であることを示す情報量判断結果を生成する。そして、優先度決定手段30’が、情報量判断結果が示す入力情報量が大きいバッファの出力優先度を高く決定する。よって、第1の実施形態の効果に加え、回路規模の増大を抑えることができる。
すなわち、第1の実施形態では、ビット同士の比較時に1が立っているビットが複数あった場合、比較するビットの数だけ比較器を用意する必要があった。第2の実施形態では、FIFOステータス保持手段50にFIFO10の使用状況を簡単に把握できるマトリックスを論理回路の中にFFとして用意しているため、第1の実施形態よりも回路規模を小さくすることができる。
例えば、第1の実施形態で示した例では、入力情報量を示す10ビットを比較するため、図2に示すLDZ31はLDZ回路が10個必要であったが、第2の実施形態で示した例では、6種類の入力情報量閾値の情報量判断結果を比較するため、図8に示すLDZ34はLDZ回路が6個に抑えられる。また、第1の実施形態で示した例では、10ビットの比較結果から採用するLDZ回路を選択するため、図2に示すLDZ32に10ビット入力のLDZ回路を使用する必要があった。第2の実施形態で示した例では、6ビット入力のLDZ回路で済むため、図8に示すLDZ35の規模を小さくすることができる。同様に、第1の実施形態で示した例では、10ビット入力のセレクタ回路33であるのに対し、第2の実施形態で示した例では、6ビット入力のセレクタ回路36を使用すればよく、セレクタ回路の規模も小さくすることができる。このように、FIFOステータス保持手段50が、比較する情報量を抑えるため、第1の実施形態の効果に加え、ハードウェア量の削減や回路遅延を小さくすることができる。特に、比較するFIFO10の数が増える程、この効果は顕著に現れる。また、情報量判断結果をもとに出力対象を一意に選択できるため、出力対象を決定するための他の装置(例えば、乱数発生器など)を備える必要がなく、調停回路の規模を抑えることもできる。
実施形態3.
本実施形態における調停回路は、FIFO10と、FIFOエントリカウンタ20A’,20B’,20C’,20D’(以下、これらをまとめてFIFOエントリカウンタ20’と記すこともある。)と、優先順位調停部30’’と、セレクタ回路40と、FIFOステータス保持手段50に加え、Δtタイマ60A,60B,60C,60D(以下、これらをまとめて、Δtタイマ60と記すこともある。)と、FIFOオーバーフローカウンタ70A,70B,70C,70D(以下、これらをまとめて、FIFOオーバーフローカウンタ70と記すこともある。)とを備えている。
図10は、本発明の第3の実施形態における調停回路の例の一部を示すブロック図である。なお、第2の実施形態と同様の構成については、図6と同一の符号を付し、説明を省略する。第3の実施形態では、調停回路は、FIFOエントリカウンタ20’と優先順位調停部30’’の間にFIFOステータス保持手段50を備え、さらに、Δtタイマ60とFIFOオーバーフローカウンタ70とを備えている。それ以外のFIFO10、セレクタ回路40及びFIFOステータス保持手段50の構成については、第2の実施形態と同様であるため、説明を省略する。
FIFOエントリカウンタ20’は、FIFOステータス保持手段50に加え、Δtタイマ60に対してもカウンタ値を通知する。また、FIFOエントリカウンタ20’は、カウンタ値のカウントアップに加え、FIFO10のオーバーフローを検知する。たとえば、FIFOエントリカウンタ20’は、入力情報として格納できる最大量よりも大きいカウントになった場合に、オーバーフローになったことを検知してもよいが、オーバーフローを検知する方法は、上記方法に限定されない。FIFOエントリカウンタ20’は、FIFO10がオーバーフローをしたことを示す信号(以下、オーバーフロー信号と記す。)を、FIFO10ごとにそれぞれΔtタイマ60及びFIFOオーバーフローカウンタ70へ通知する。
Δtタイマ60は、クロック信号を元に経過時刻を示すカウンタ(以下、時刻カウンタと記す。)の値をカウントアップする。Δtタイマ60は、予め定められた時間間隔であるΔt時間が経過し、時刻カウンタが予め定めた値に達すると、後述のFIFOオーバーフローカウンタ70がカウントするオーバーフローの回数をカウントダウンさせるための信号(以下、オーバーフローカウントダウン信号と記す。)をFIFOオーバーフローカウンタ70に通知する。また、Δtタイマ60は、Δt時間が経過した場合又はオーバーフロー信号を受信した場合に時刻カウンタの値をリセットする。リセット後は再びクロック信号を元に時刻カウンタの値をカウントアップする。Δtタイマ60は、これらの動作を繰り返す。
FIFOオーバーフローカウンタ70は、FIFOエントリカウンタ20’からオーバーフロー信号を受信すると、FIFO10がオーバーフローした回数を示すカウンタ(以下、オーバーフローカウンタと記す。)の値をカウントアップする。また、FIFOオーバーフローカウンタ70は、Δtタイマ60からのオーバーフローカウントダウン信号を検知したときに、オーバーフローカウンタの値をカウントダウンする。すなわち、FIFOオーバーフローカウンタ70は、FIFO10がオーバーフローするとカウントアップし、また、最後にカウントアップしてからは、ある一定時間(Δt時間)が経過する度にカウントダウンを行う。そして、FIFOオーバーフローカウンタ70は、オーバーフローカウンタの値を優先順位調停部30’’に通知する。
図11は、オーバーフローカウンタの値が推移する例を説明するタイミングチャートの図である。FIFOオーバーフローカウンタ70は、オーバーフロー信号を3回検知すると、オーバーフローカウンタの値を3カウントアップする。その後、Δt時間経過すると、Δtタイマ60からオーバーフローカウントダウン信号が送信されるため、FIFOオーバーフローカウンタ70は、オーバーフローカウンタの値を1カウントダウンする。その後、FIFOオーバーフローカウンタ70は、オーバーフロー信号を検知してオーバーフローカウンタの値を1カウントアップする。その後、2×Δt時間経過し、Δtタイマ60からオーバーフローカウントダウン信号が2回送信されたため、FIFOオーバーフローカウンタ70は、オーバーフローカウンタの値を2カウントダウンする。結果、オーバーフローカウンタの値は1になる。
優先順位調停部30’’は、ハンディキャップ値保持手段37と、オーバーフロー閾値保持手段38とを備えている。ハンディキャップ値保持手段37は、優先度を上げる割合を示す値(以下、ハンディキャップ値と記す。)を記憶する記憶装置である。オーバーフロー閾値保持手段38は、優先順位調停部30’’がFIFO10を優先的に選択する場合のオーバーフローカウンタの値の閾値(以下、オーバーフロー閾値)を記憶する記憶装置である。ハンディキャップ値及びオーバーフロー閾値は、例えば、システム設計者により定められ、ハンディキャップ値保持手段37及びオーバーフロー閾値保持手段38に予め記憶される。また、オーバーフロー閾値は、FIFO10ごとに定めてもよい。
例えば、あるFIFO10のみオーバーフローする傾向が高い場合、予め設定するオーバーフロー閾値を低めに設定し、ハンディキャップ値を多めに設定してもよい。なお、ハンディキャップ値やオーバーフロー閾値、Δt時間などの値は、システムの運用形態などにより異なるため、その運用形態に応じて値を設定すればよい。
優先順位調停部30’’は、FIFOステータス保持手段50からの情報量判断結果を検知し、さらに、FIFOオーバーフローカウンタ70からのオーバーフローカウンタの値A〜Dを検知する。優先順位調停部30’’は、その情報量判断結果、オーバーフローカウンタの値及びオーバーフロー閾値の値をもとに出力情報を出力させるFIFO10の優先度を決定する。そして、優先順位調停部30’’は、その選択結果をセレクト信号としてセレクタ回路40へ通知する。
例えば、優先順位調停部30’’は、FIFOステータス保持手段50から受信した各FFの値(すなわち、情報量判断結果)を、オーバーフローカウンタの値とオーバーフロー閾値保持手段の値により必要に応じてビットシフトしてから比較器を用いた比較を行い、最も値の大きいFIFO10を優先度の高いFIFO10として選択する。そして、優先順位調停部30’’は、その結果をセレクト信号としてセレクタ回路40へ出力する。
優先順位調停部30’’が、出力情報を出力させるFIFO10を選択する方法について、具体例を用いて説明する。図12,13は、FIFOステータス保持手段50が保持する情報量判断結果の例を示す説明図である。図12に示す例では、FIFO10A,10B,10C,10Dのオーバーフロー回数がそれぞれ0回、3回、0回、0回であるものとする。また、オーバーフロー閾値は「2回」であり、ハンディキャップ値は1であるものとする。
この場合、FIFO10Bのオーバーフローカウンタの値は「3回」であり、オーバーフロー閾値「2回」を越えている。そのため、優先順位調停部30’’は、FIFO10Bに関する情報量判断結果を読み込む際、ハンディキャップ値「1」だけ優先順位を格上げする意味でビットシフトする(図13)。その結果、FIFO10Bは残り2Wordの状態であるにも関わらず、残り1Wordの状態として扱われるため、優先順位調停部30’’は、FIFO10AよりもFIFO10Bの方を高優先順位と判定し、FIFO10Bを選択する旨のセレクト信号をセレクタ回路40へ通知する。このように、オーバーフローカウンタの値によって、優先度(選択の重み)を変更することにより、オーバーフロー頻度が高いFIFO10からの出力を優先的に選択できるため、以降のオーバーフロー頻度を低く抑えることができる。
例えば、第2の実施形態では、FIFO10AとFIFO10Bの優先順位は同等であったが、本実施形態では、オーバーフロー頻度が高いFIFO10Bからの出力を優先的に選択できるため、以降のオーバーフロー頻度を低く抑えることができる。
上記説明では、FIFO10のオーバーフローカウンタの値がオーバーフロー閾値を超えた場合に、優先順位調停部30’’が優先的にそのFIFOを選択する場合ついて説明した。他にも、FIFO10のオーバーフローカウンタの値が、オーバーフロー閾値を下回った場合に、優先順位調停部30’’がそのFIFOの優先順位を下げてもよい。例えば、過去ΔT時間遡ってオーバーフロー回数が閾値より下回った場合にハンディキャップ数だけ優先順位を格下げする意味で逆方向に(低優先順位方向に)ビットシフトしてもよい。このように、オーバーフロー頻度が低いFIFO10からの出力を選択しにくくすることで、システム全体としてのオーバーフローを低く抑えることができる。
なお、過去ΔT時間遡ってオーバーフロー回数をカウントする方法の例を以下に示す。例えば、調停回路がリング構造のバッファ(図示せず)を備える場合について説明する。このバッファは、書き込みアドレスがクロック信号を元にカウントアップするバッファであり、書き込みアドレスが1周したときにΔT時間経過したことを示すものである。FIFO10がオーバーフローした場合、例えば、FIFOエントリカウンタ20’はバッファに1を書き込み、オーバーフローしなかった場合に0を書き込む。そして、或る時点でバッファ全体を読み出して、1が書かれている個数をカウントすることにより、過去ΔT時間遡ったオーバーフロー回数をカウントすることができる。
また、この場合、リング構造のバッファ全体を読み出すサイクルを少なく抑えるため、バッファ内の書き込み位置の値(すなわち、上書きする予定の元の値)を予め読み出しておいてもよい。図14は、元の値と書き込む値の関係からオーバーフロー回数の差分を判断する場合の例を示す説明図である。このように差分を判断することで、元の値と書き込む値の関係から、オーバーフロー回数の差分が判断できる。よって、(オーバーフロー回数)+(オーバーフロー回数の差分)が、新しいオーバーフロー回数と分かるため、これをレジスタ等(図示せず)で保持することにより、リング構造のバッファ全体を読み出すことが不要になる。
FIFOエントリカウンタ20’と、優先順位調停部30’’と、セレクタ回路40と、FIFOステータス保持手段50と、Δtタイマ60と、FIFOオーバーフローカウンタ70とは、例えば、プログラム(オーバーフロー制御プログラム)に従って動作するコンピュータのCPUによってソフトウェア上で実現されてもよい。例えば、プログラムは、調停回路が備える記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、FIFOエントリカウンタ20’、優先順位調停部30’’、セレクタ回路40、FIFOステータス保持手段50、Δtタイマ60及びFIFOオーバーフローカウンタ70として動作してもよい。また、FIFOエントリカウンタ20’、優先順位調停部30’’、セレクタ回路40、FIFOステータス保持手段50、Δtタイマ60、FIFOオーバーフローカウンタ70がそれぞれ専用の回路で実現されていてもよい。
次に、動作について説明する。上位装置から出力された入力情報A〜Dを、FIFO10が内部に格納し、また、FIFOエントリカウンタ20’がカウントしたカウンタ値をもとに、FIFOステータス保持手段50が判断した情報量判断結果を優先順位調停部30’’へ通知するまでの動作は、第2の実施形態と同様である。優先順位調停部30’’は、FIFOステータス保持手段50からの情報量判断結果を検知し、さらに、FIFOオーバーフローカウンタ70からのオーバーフローカウンタの値A〜Dを検知すると、オーバーフロー閾値の値をもとに出力情報を出力させるFIFO10の優先度を決定する。そして、優先順位調停部30’’は、その結果をセレクト信号としてセレクタ回路40へ通知する。
上記説明では、FIFOエントリカウンタ20’が、FIFO10のオーバーフローを検知して、オーバーフローの発生したFIFO10に対応するΔtタイマ60及びFIFOオーバーフローカウンタ70へオーバーフロー信号を通知する場合について説明した。なお、FIFOエントリカウンタ20’が検知する情報は、オーバーフローしたことを通知する情報に限られない。例えば、FIFOエントリカウンタ20’は、オーバーフローする手前(例えば、あともう数エントリでオーバーフロー)の状態を検知し、その状態を示す信号(以下、ビジー信号と記す。)をΔtタイマ60及びFIFOオーバーフローカウンタ70へ通知してもよい。また、Δtタイマ60が、FIFOエントリカウンタ20’からビジー信号をΔt時間検知しなかったときに、ビジー信号をカウントするカウンタの値をカウントダウンさせるための信号をFIFOオーバーフローカウンタ70へ通知してもよい。このように、オーバーフローが発生する前にビジー信号を送信することで、オーバーフローを事前に検知できるため、オーバーフロー頻度をより低く抑えることができる。
本発明によれば、第2の実施形態に加え、FIFOエントリカウンタ20’が、FIFO10のオーバーフローを検知し、Δtタイマ60がΔt時間内にオーバーフローが発生したか判断する。また、FIFOオーバーフローカウンタ70は、オーバーフロー信号を検知したときに、オーバーフローカウンタの値をカウントアップし、オーバーフローカウントダウン信号を検知したときに、オーバーフローカウンタの値をカウントダウンする。そして、優先順位調停部30’’は、オーバーフローカウンタの値の大きいFIFO10の優先度を高く決定する。そのため、第2の実施形態の効果に加え、FIFOのオーバーフロー発生状況を学習して優先度を動的に変更することで、より最適な優先度を設定することができる。また、第2の実施形態と同様に、情報量判断結果をもとに出力対象を一意に選択できるため、出力対象を決定するための他の装置(例えば、乱数発生器など)を備える必要がなく、調停回路の規模を抑えることもできる。
図15は、本発明における調停回路の最小構成を示すブロック図である。本発明による調停回路は、上位装置から入力された入力情報(例えば、入力情報A〜D)を保持するバッファ91(例えば、FIFO10)と、入力情報が入力されたときに、バッファ91内に保持された入力情報量を検知する入力情報量検知手段92(例えば、FIFOエントリカウンタ20)と、入力情報検知手段92が検知したバッファ91ごとの入力情報量を比較して、入力情報を出力させるバッファ91の優先度である出力優先度(例えば、カウンタ値、情報量判断結果など)を決定する優先度決定手段93(例えば、優先順位調停部30)と、出力優先度の高いバッファ91に保持された入力情報を出力させる出力指示手段94(例えば、セレクタ回路40)とを備えている。
そのような構成により、複数のバッファを用いた調停回路において、オーバーフローの蓋然性が高い複数のバッファが存在する場合でも調停回路全体でバッファオーバーフローの発生を低減できる。
すなわち、各バッファ91内の入力情報量を比較し、バッファ91内の空き容量が最も少ないバッファ91を調停回路の出力対象として選択することでオーバーフロー発生率を低減させることができる。また、オーバーフロー発生率が低減することにより、結果として回路全体の性能低下を抑えることができる。
また、入力情報量検知手段92が、上位装置から入力情報が入力されたときに、バッファ91の入力情報量を示す値である入力カウンタ値(例えば、FIFOエントリカウンタ値)をカウントアップし、優先度決定手段93が、入力カウンタ値が大きいバッファ91の出力優先度を高く決定してもよい。
また、上記実施形態には、バッファ91内に保持された入力情報量が予め定められた閾値である入力情報量閾値を超えた状態であることを示す情報である入力状態情報(例えば、情報量判断結果)を生成する入力状態情報生成手段(例えば、FIFOステータス保持手段50)を備え、入力状態情報生成手段が、入力情報量検知手段92が検知した入力情報量をもとに入力状態情報を生成し、優先度決定手段93(例えば、優先順位調停部30’)が、入力状態情報が示す入力情報量が大きいバッファ91の出力優先度を高く決定する構成が開示されている。
このような構成により、ハードウェア量の削減や回路遅延を小さくすることができる。すなわち、入力状態情報生成手段が、比較する情報量を抑えるため、回路規模を小さくできる。
また、上記実施形態には、バッファ91のオーバーフローを検知するオーバーフロー検知手段(例えば、FIFOエントリカウンタ20’)と、予め定められた時間(例えば、Δt時間)内にオーバーフロー検知手段がバッファ91のオーバーフローを検知したか否か判断するオーバーフロー発生判断手段(例えば、Δtタイマ60)と、オーバーフロー検知手段がバッファ91のオーバーフローを検知したときに、バッファ91を優先的に選択させることを示す値である優先値(例えば、オーバーフローカウンタ70の値)をカウントアップし、オーバーフロー発生判断手段が予め定められた時間内にオーバーフロー検知手段によるオーバーフローの検知がなかったと判断したとき(例えば、オーバーフローカウントダウン信号を検知したとき)に、優先値をカウントダウンする優先値カウント手段(例えば、FIFOオーバーフローカウンタ70)とを備え、優先度決定手段93(例えば、優先順位調停部30’’)が、優先値の大きいバッファ91の出力優先度を高く決定する構成が開示されている。
このような構成により、バッファ91のオーバーフロー発生状況を学習して優先度を動的に変更することで、より最適な優先度を設定することができる。
また、バッファ91のオーバーフローを事前に(例えば、あともう数エントリでオーバーフローであること)検知するオーバーフロー事前検知手段(例えば、FIFOエントリカウンタ20’)と、予め定められた時間(例えば、Δt時間)内にオーバーフロー事前検知手段がバッファ91のオーバーフローを事前に検知したか否か判断するオーバーフロー発生事前判断手段(例えば、Δtタイマ60)と、オーバーフロー事前検知手段がバッファ91のオーバーフローを事前に検知したとき(例えば、あともう数エントリでオーバーフローになることを検知したとき)に、バッファ91を優先的に選択させることを示す値である優先値(例えば、オーバーフローカウンタ70の値)をカウントアップし、オーバーフロー発生判断手段が予め定められた時間内にオーバーフロー事前検知手段によるオーバーフローの検知がなかったと判断したとき(例えば、オーバーフローカウントダウン信号を検知したとき)に、優先値をカウントダウンする優先値カウント手段(例えば、FIFOオーバーフローカウンタ70)とを備え、優先度決定手段93(例えば、優先順位調停部30’’)が、優先値の大きいバッファ91の出力優先度を高く決定してもよい。このように、オーバーフローが発生する前の状態をもとに出力優先度を決定することで、オーバーフロー前に対応できるため、オーバーフロー頻度をより低く抑えることができる。
また、優先度決定手段93が、優先値が予め定められた閾値である優先閾値(例えば、オーバーフロー閾値)を超えたときに、優先値の大きいバッファ91の出力優先度を高く決定してもよい。また、優先度決定手段93が、優先値が優先閾値を超えたときに、出力優先度を変化させる割合を示す値として予め定められた値である出力優先度変化割合(例えば、ハンディキャップ値)をもとに出力優先度を決定してもよい。
本発明は、複数のバッファを用いた調停回路で発生するバッファオーバーフローを低減させる調停回路に好適に適用される。
10A,10B,10C,10D FIFO
20A,20B,20C,20D,20A’,20B’,20C’,20D’ FIFOエントリカウンタ
30,30’,30’’ 優先順位調停部
31,32,34,35 LDZ回路
33,36 セレクタ回路
37 ハンディキャップ値保持手段
38 オーバーフロー閾値保持手段
40 セレクタ回路
50A,50B,50C,50D FIFOステータス保持手段
60A,60B,60C,60D Δtタイマ
70A,70B,70C,70D FIFOオーバーフローカウンタ
99 OR回路

Claims (11)

  1. 上位装置から入力された入力情報を保持するバッファと、
    前記入力情報が入力されたときに、前記バッファ内に保持された入力情報量を検知する入力情報量検知手段と、
    前記入力情報検知手段が検知した前記バッファごとの入力情報量を比較して、前記入力情報を出力させるバッファの優先度である出力優先度を決定する優先度決定手段と、
    前記出力優先度の高いバッファに保持された入力情報を出力させる出力指示手段とを備えた
    ことを特徴とする調停回路。
  2. 入力情報量検知手段は、上位装置から入力情報が入力されたときに、バッファの入力情報量を示す値である入力カウンタ値をカウントアップし、
    優先度決定手段は、前記入力カウンタ値が大きいバッファの出力優先度を高く決定する
    請求項1記載の調停回路。
  3. バッファ内に保持された入力情報量が予め定められた閾値である入力情報量閾値を超えた状態であることを示す情報である入力状態情報を生成する入力状態情報生成手段を備え、
    前記入力状態情報生成手段は、入力情報量検知手段が検知した入力情報量をもとに前記入力状態情報を生成し、
    優先度決定手段は、前記入力状態情報が示す入力情報量が大きいバッファの出力優先度を高く決定する
    請求項1または請求項2に記載の調停回路。
  4. バッファのオーバーフローを検知するオーバーフロー検知手段と、
    予め定められた時間内に前記オーバーフロー検知手段がバッファのオーバーフローを検知したか否か判断するオーバーフロー発生判断手段と、
    前記オーバーフロー検知手段がバッファのオーバーフローを検知したときに、バッファを優先的に選択させることを示す値である優先値をカウントアップし、前記オーバーフロー発生判断手段が予め定められた時間内に前記オーバーフロー検知手段によるオーバーフローの検知がなかったと判断したときに、前記優先値をカウントダウンする優先値カウント手段とを備え、
    優先度決定手段は、前記優先値の大きいバッファの出力優先度を高く決定する
    請求項3記載の調停回路。
  5. バッファのオーバーフローを事前に検知するオーバーフロー事前検知手段と、
    予め定められた時間内に前記オーバーフロー事前検知手段がバッファのオーバーフローを事前に検知したか否か判断するオーバーフロー発生事前判断手段と、
    前記オーバーフロー事前検知手段がバッファのオーバーフローを事前に検知したときに、バッファを優先的に選択させることを示す値である優先値をカウントアップし、前記オーバーフロー発生判断手段が予め定められた時間内に前記オーバーフロー事前検知手段によるオーバーフローの検知がなかったと判断したときに、前記優先値をカウントダウンする優先値カウント手段とを備え、
    優先度決定手段は、前記優先値の大きいバッファの出力優先度を高く決定する
    請求項3記載の調停回路。
  6. 優先度決定手段は、優先値が予め定められた閾値である優先閾値を超えたときに、優先値の大きいバッファの出力優先度を高く決定する
    請求項4または請求項5に記載の調停回路。
  7. 優先度決定手段は、優先値が優先閾値を超えたときに、出力優先度を変化させる割合を示す値として予め定められた値である出力優先度変化割合をもとに出力優先度を決定する
    請求項6に記載の調停回路。
  8. 上位装置から入力情報が入力されたときに、入力情報を保持するバッファ内に保持された入力情報量を検知する入力情報量検知ステップと、
    前記入力情報検知ステップで検知した前記バッファごとの入力情報量を比較して、前記入力情報を出力させるバッファの優先度である出力優先度を決定する優先度決定ステップと、
    前記出力優先度の高いバッファに保持された入力情報を出力させる出力指示ステップとを含む
    ことを特徴とするオーバーフロー制御方法。
  9. 入力情報量検知ステップで、上位装置から入力情報が入力されたときに、バッファの入力情報量を示す値である入力カウンタ値をカウントアップし、
    優先度決定ステップで、前記入力カウンタ値が大きいバッファの出力優先度を高く決定する
    請求項8記載のオーバーフロー制御方法。
  10. 上位装置から入力された入力情報を保持するバッファを備えたコンピュータに適用されるオーバーフロー制御プログラムであって、
    前記コンピュータに、
    前記入力情報が入力されたときに、前記バッファ内に保持された入力情報量を検知する入力情報量検知処理、
    前記入力情報検知処理で検知した前記バッファごとの入力情報量を比較して、前記入力情報を出力させるバッファの優先度である出力優先度を決定する優先度決定処理、及び、
    前記出力優先度の高いバッファに保持された入力情報を出力させる出力指示処理
    を実行させるためのオーバーフロー制御プログラム。
  11. コンピュータに、
    入力情報量検知処理で、上位装置から入力情報が入力されたときに、バッファの入力情報量を示す値である入力カウンタ値をカウントアップさせ、
    優先度決定処理で、前記入力カウンタ値が大きいバッファの出力優先度を高く決定させる
    請求項10記載のオーバーフロー制御プログラム。
JP2009085798A 2009-03-31 2009-03-31 調停回路、オーバーフロー制御方法及びオーバーフロー制御プログラム Expired - Fee Related JP5407491B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009085798A JP5407491B2 (ja) 2009-03-31 2009-03-31 調停回路、オーバーフロー制御方法及びオーバーフロー制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009085798A JP5407491B2 (ja) 2009-03-31 2009-03-31 調停回路、オーバーフロー制御方法及びオーバーフロー制御プログラム

Publications (2)

Publication Number Publication Date
JP2010239434A true JP2010239434A (ja) 2010-10-21
JP5407491B2 JP5407491B2 (ja) 2014-02-05

Family

ID=43093380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009085798A Expired - Fee Related JP5407491B2 (ja) 2009-03-31 2009-03-31 調停回路、オーバーフロー制御方法及びオーバーフロー制御プログラム

Country Status (1)

Country Link
JP (1) JP5407491B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08139737A (ja) * 1994-11-14 1996-05-31 Nec Corp 輻輳制御方式
JPH0983547A (ja) * 1995-07-07 1997-03-28 Toshiba Corp パケットスケジューリング装置
JPH1117702A (ja) * 1997-06-24 1999-01-22 Iwatsu Electric Co Ltd パケットデータメモリ装置
JPH1168770A (ja) * 1997-08-08 1999-03-09 Nec Corp Atmスイッチにおけるスケジューリング方式
JP2001156785A (ja) * 1999-11-26 2001-06-08 Nec Corp バッファに於けるセル廃棄回避システムおよび方法
JP2001184302A (ja) * 1999-12-24 2001-07-06 Nec Corp バッファ制御回路
WO2005096162A1 (ja) * 2004-03-18 2005-10-13 Matsushita Electric Industrial Co., Ltd. アービトレーション方法及び装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08139737A (ja) * 1994-11-14 1996-05-31 Nec Corp 輻輳制御方式
JPH0983547A (ja) * 1995-07-07 1997-03-28 Toshiba Corp パケットスケジューリング装置
JPH1117702A (ja) * 1997-06-24 1999-01-22 Iwatsu Electric Co Ltd パケットデータメモリ装置
JPH1168770A (ja) * 1997-08-08 1999-03-09 Nec Corp Atmスイッチにおけるスケジューリング方式
JP2001156785A (ja) * 1999-11-26 2001-06-08 Nec Corp バッファに於けるセル廃棄回避システムおよび方法
JP2001184302A (ja) * 1999-12-24 2001-07-06 Nec Corp バッファ制御回路
WO2005096162A1 (ja) * 2004-03-18 2005-10-13 Matsushita Electric Industrial Co., Ltd. アービトレーション方法及び装置

Also Published As

Publication number Publication date
JP5407491B2 (ja) 2014-02-05

Similar Documents

Publication Publication Date Title
US6246256B1 (en) Quantized queue length arbiter
US8161274B2 (en) Command selection method and its apparatus
KR100870691B1 (ko) 조정 회로, 크로스바, 요청 선택 방법 및 정보 처리 장치
US8463967B2 (en) Method and device for scheduling queues based on chained list
US8004976B2 (en) Monitoring, controlling, and preventing traffic congestion between processors
JP2003249952A (ja) クレジット履歴を利用する重み付けクレジット調停
US20160337257A1 (en) Head-of-line blocking (holb) mitigation in communication devices
US10432429B1 (en) Efficient traffic management
US8819309B1 (en) Low latency bypass buffer
JP4704500B2 (ja) パケット処理装置
US7933283B1 (en) Shared memory management
US20070113113A1 (en) Data Processing Arrangement
JP4164771B2 (ja) ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法
CN111190541B (zh) 存储系统的流控方法以及计算机可读存储介质
JP5407491B2 (ja) 調停回路、オーバーフロー制御方法及びオーバーフロー制御プログラム
JPWO2009147731A1 (ja) データ転送装置、情報処理装置および制御方法
EP1591907A1 (en) Resource management
US7801164B2 (en) Two dimensional timeout table mechanism with optimized delay characteristics
JPWO2003103234A1 (ja) パケット転送回路及びパケット転送方法
JP2011234114A (ja) フレーム処理装置及びフレーム処理方法
US20140321279A1 (en) Random early drop based processing circuit and method for triggering random early drop based operation according to at least trigger event generated based on software programmable schedule
US6651128B1 (en) Systems and methods for arbitrating between asynchronous and isochronous data for access to data transport resources
CN112099974B (zh) 多线程处理器系统及访存带宽控制方法
US11461069B2 (en) Multi-core audio processor with deadline scheduler
JP6127872B2 (ja) 演算処理装置及び演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131021

R150 Certificate of patent or registration of utility model

Ref document number: 5407491

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees