JPH0836877A - キュー装置 - Google Patents

キュー装置

Info

Publication number
JPH0836877A
JPH0836877A JP6168482A JP16848294A JPH0836877A JP H0836877 A JPH0836877 A JP H0836877A JP 6168482 A JP6168482 A JP 6168482A JP 16848294 A JP16848294 A JP 16848294A JP H0836877 A JPH0836877 A JP H0836877A
Authority
JP
Japan
Prior art keywords
data
buffer
packet
fifo buffer
save
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
JP6168482A
Other languages
English (en)
Other versions
JP3810449B2 (ja
Inventor
Nagatake Shiraki
長武 白木
Yoichi Koyanagi
洋一 小柳
Kenji Horie
健志 堀江
Toshiyuki Shimizu
俊幸 清水
Hiroaki Ishihata
宏明 石畑
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 JP16848294A priority Critical patent/JP3810449B2/ja
Publication of JPH0836877A publication Critical patent/JPH0836877A/ja
Priority to US08/967,219 priority patent/US5892979A/en
Application granted granted Critical
Publication of JP3810449B2 publication Critical patent/JP3810449B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

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)
  • Communication Control (AREA)

Abstract

(57)【要約】 【目的】 本発明はキュー装置に関し、キューが満杯に
なった場合でもキューにデータを書き込む装置が、キュ
ーに“空き”が生じるまで待たされることなくキューへ
のデータ出力を行えるようにすることを目的とする。 【構成】 オーバーフロー制御部30は、FIFOバッ
ファ10が満杯になったことを検出すると、その後にF
IFOバッファ10に対して書き込み要求がなされたデ
ータを、退避バッファ20の書き込みポインタ33に設
定されているアドレスに書き込み・退避させる。そし
て、フラグ32をセットする。そして、該フラグ32が
セットされている状態の間、FIFOバッファ10に対
する書き込みデータは退避バッファ20に退避させる。
そして、その後、FIFOバッファ10に“空き”が生
じると、退避バッファ20に退避させていたデータをF
IFOバッファ10に転送させ、退避バッファ20内に
退避データが無くなるとフラグ32をリセットする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データの生成側と該デ
ータを利用する側との間でのデータの授受に用いられる
キュー装置に関する。
【0002】
【従来の技術】キューは、データを生成する側(データ
生成装置)と該データを入力して利用する側(データ処
理装置)との間での処理タイミングの差異を吸収するた
めに利用される。該データには、例えば、メッセージ、
パケット、ジョブ、トランザクションなどがある。キュ
ーは、一般にFIFO(First In First Out) メモリ
(FIFOバッファ)などで実現され、データ生成装置
は、生成したデータをキューに入れ、データ処理装置は
そのデータをキューから取り出して所定の処理を行う。
【0003】キューは、複数のデータを格納可能な容量
を持っており、このため、データ処理装置は、キューか
ら1つづつデータを取り出しながら、自己の処理能力に
応じて逐次データ処理することができる。また、キュー
を複数のデータ生成装置で共有することにより、1つの
データ処理装置が該複数のデータ生成装置からのデータ
処理要求を受け付けることが可能となる。さらに、各デ
ータ生成装置は、キューに空きがあるときには、いつで
も生成したデータを直ちにキューに入れることによっ
て、すぐに次の処理に移れるので効率的な動作が可能に
なる。
【0004】
【発明が解決しようとする課題】しかしながら、従来の
キュー装置は以下のような問題点をかかえていた。 キューのデータ容量には限界があるため、キューが
満杯となり空き容量が無くなった場合には、データをキ
ューに投入する側、すなわちデータ生成装置は、該キュ
ーに空き領域が生じるまでそのデータの投入を待たねば
ならない。このため、データ生成装置側にとっては、キ
ューに空きが生じるまで待機していなければならず、そ
の間の待ち時間が処理効率の低下をもたらす。 また、データ処理装置として、ある一連のデータ列
をパケットとして処理するような装置がキューの出力側
に接続されている場合、キューにパケットの全データが
投入されるまでの間、該データ処理装置はそのパケット
処理を終了することができない。すなわち、データ生成
装置がパケットの全データをキューに投入するまで、デ
ータ処理装置は処理を中断しなければならない。したが
って、この場合には、キューにパケットの全データが投
入されてからパケットの取り出しを開始しないとパケッ
ト処理装置に待ち時間が生じ処理効率が低下することに
なる。 また、パケット処理においては、キューにパケット
データを投入中にそのデータを取り除く必要が生じる場
合があるが、パケット処理装置側が既にそのデータをキ
ューから取り出してパケット処理を開始しているときに
は、その出力済のデータを取り戻すのは不可能であっ
た。すなわち、この場合、そのパケットデータは廃棄さ
れることになる。このような場合は、例えばデータ生成
装置が複数のプログラム(プロセス)を並列して実行す
るプロセッサから成り、各プロセスがそれぞれ個別にパ
ケットを生成して共有キューにその書き込みを行うシス
テムにおいて発生する。すなわち、あるプロセスがキュ
ーにパケットデータを書き込んでいる途中で、実行権が
他のプロセスに切り換えられ、この新たにスケジューリ
ングされたプロセスがキューに自己の生成したパケット
データを続けて書き込もうとした場合である。
【0005】本発明は、キューが満杯になった場合で
も、データ生成装置側が該キューに空きが生じるまで待
たされることなく、キューへのデータ投入操作を行える
ようにすることを目的とする。
【0006】
【課題を解決するための手段】図1は、請求項1乃至3
記載の発明の原理を説明する図である。請求項1記載の
発明は、FIFOバッファ1と、該FIFOバッファに
書き込まれるデータが退避される退避バッファ2と、該
退避バッファにデータが退避されているか否かを示すフ
ラグ3を備える。また、さらに第1の検出手段4とデー
タ退避手段5を備える。
【0007】第1の検出手段4は、上記FIFOバッフ
ァ1の残り容量が予め定められた第1の閾値より少なく
なったことを検出する。データ退避手段5は、該第1の
検出手段4により上記FIFOバッファ1の残り容量が
上記第1の閾値よりも少なくなったことが検出される
と、その後のFIFOバッファ1に対する書き込みデー
タを前記退避バッファ2に退避させると共に前記フラグ
3をセットさせ、該フラグがセットされている状態の
間、上記FIFOバッファ1に対する書き込みデータを
前記退避バッファの方に書き込む。
【0008】請求項2記載の発明は、上述した請求項1
が有する各構成要素に加え、さらに以下の手段を有す
る。第2の検出手段6は、前記フラグ3がセットされて
いる状態のときに、前記FIFOバッファ1の残り容量
が予め定められた第2の閾値よりも多くなったことを検
出する。
【0009】データリストア手段7は、該第2の検出手
段6よりFIFOバッファ1の残り容量が上記第2の閾
値よりも多くなったことが検出された際、前記退避バッ
ファ2に退避されていたデータを上記FIFOバッファ
1に転送し、前記退避バッファ2に退避されているデー
タが無くなったときに前記フラグ3をリセットする。
【0010】請求項3記載の発明は、上記請求項1が有
する各構成要素に加え、下記の第3の検出手段8を備え
る。第3の検出手段8は、前記退避バッファ2の残り容
量が予め定められた第3の閾値よりも少なくなったこと
を検出し、該検出時に例えば、割り込み信号などの特定
の信号を発生する。
【0011】図2は、請求項4乃至8記載の発明の原理
を説明する図である。請求項4記載の発明は、パケット
が格納されるFIFOバッファ11と、該FIFOバッ
ファ11に格納されるパケットの個数を計数する計数手
段12とを備える。
【0012】請求項5記載の発明は、上記請求項4記載
の発明が有する各構成要素に加え、前記FIFOバッフ
ァ11に書き込まれるパケットのデータが退避される退
避バッファ13と、該退避バッファ13にパケットデー
タが退避されているか否かを示すフラグ14と、前記F
IFOバッファ11の残り容量が予め定められた第1の
閾値よりも少なくなったことを検出する第1の検出手段
15と、該第1の検出手段15により前記FIFOバッ
ファ11の残り容量が前記第1の閾値よりも少なくなっ
たことが検出されると、その後のFIFOバッファ11
に対する書き込みデータを前記退避バッファ13に退避
させると共に、前記フラグ14をセットさせ、該フラグ
がセットされている状態の間、上記FIFOバッファ1
1に対する書き込みパケットデータを前記退避バッファ
の方に書き込むパケットデータ退避手段16と、を更に
備える。
【0013】前記FIFOバッファ11に格納される各
パケットデータには、例えば、請求項8記載のように該
パケットデータが当該パケットの最後のデータであるか
否かを示す情報が設定されたビットが付加されるように
してもよい。
【0014】請求項6記載の発明は、上記請求項5記載
の発明が有する各構成要素に加え、前記フラグ14がセ
ットされている状態のときに、前記計数手段の計数値が
予め定められた第2の閾値よりも少なくなったことを検
出する第2の検出手段17と、該第2の検出手段17に
より前記FIFOバッファ11に格納されているパケッ
ト数が上記第2の閾値よりも少なくなったことが検出さ
れた際、前記退避バッファ13に退避されていたデータ
を上記FIFOバッファ11に転送し、前記退避バッフ
ァ13に退避されているデータが無くなったときに前記
フラグ14をリセットするデータリストア手段18と、
をさらに備える。
【0015】請求項9記載の発明は、上記請求項4記載
の発明が有する各構成要素に加え、前記計数手段12の
計数値を参照して、前記FIFOバッファ11内に完結
しているパケットデータが存在するか否かを検出するパ
ケット完結検出手段19を、さらに備える。
【0016】図3は、請求項9乃至11記載の発明の原
理を説明する図である。請求項9記載の発明は、パケッ
トサイズを示す情報が設定されているデータを有するパ
ケットが格納されるFIFOバッファ21と、前記FI
FOバッファ21内に格納されているパケットデータの
個数を計数する計数手段22と、該計数手段22の計数
値と、前記FIFOバッファ21の先頭に格納されてい
るパケットの上記パケットサイズ情報が設定されている
データとを入力して、前記FIFOバッファ21内に完
結しているパケットが存在するか否かを検出するパケッ
ト完結検出手段23と、を備える。
【0017】請求項10記載の発明は、上記請求項9の
発明が有する各構成要素に加え、前記FIFOバッファ
21に書き込まれるパケットのデータが退避される退避
バッファ23と、該退避バッファ23にパケットデータ
が退避されているか否かを示すフラグ24と、前記FI
FOバッファ21の残り容量が予め定められた第1の閾
値よりも少なくなったことを検出する第1の検出手段2
5と、該第1の検出手段25により前記FIFOバッフ
ァ21の残り容量が前記第1の閾値よりも少なくなった
ことが検出されると、その後のFIFOバッファ21に
対する書き込みデータを前記退避バッファ23に退避さ
せると共に、前記フラグ24をセットさせ、該フラグ2
4がセットされている状態の間、上記FIFOバッファ
21に対する書き込みデータを前記退避バッファの方に
書き込むパケットデータ退避手段26と、をさらに備え
る。
【0018】請求項11記載の発明は、上記請求項10
記載の発明が有する各構成要素に加え、前記フラグ24
がセットされている状態のときに、前記計数手段22の
計数値が予め定められた第2の閾値よりも少なくなった
ことを検出する第2の検出手段27と、該第2の検出手
段27によりFIFOバッファ21の残り容量が上記第
2の閾値よりも少なくなったことが検出された際、前記
退避バッファ23に退避されていたデータを上記FIF
Oバッファ21に転送し、前記退避バッファ23に退避
されているデータが無くなったときに前記フラグ24を
リセットするデータリストア手段28と、をさらに備え
る。
【0019】次に、図4は請求項12記載の発明を説明
する原理図である。請求項12記載の発明は複数のプロ
セスによってパケットが書き込まれるFIFOバッファ
41と、記憶手段42と、プロセスAが上記FIFOバ
ッファ41にパケットを書き込んでいる途中で別のプロ
セスBに実行権が切り換えられた際、上記プロセスAが
書き込んだ未完結のパケットデータを上記FIFOバッ
ファ41から取り出し上記記憶手段42に退避させるデ
ータ退避手段43と、再び前記プロセスAに実行権が移
行した際、該プロセスAの実行開始前に前記記憶手段4
2に退避させておいたパケットデータを前記FIFOバ
ッファに転送させるデータリストア手段44と、を備え
る。
【0020】
【作用】請求項1の発明においては、第1の検出手段4
がFIFOバッファ1の残り容量が予め定められた第1
の閾値よりも少なくなったことを検出する。データ退避
手段5は、該検出後にFIFOバッファ1に対するデー
タの書き込み要求があると、該データを退避バッファ2
の方に書き込み、フラグ3をセットする。そして、該フ
ラグ3がセットされている状態の間、データ退避手段5
はFIFOバッファ1に対する書き込みデータを退避バ
ッファ2の方に書き込む。
【0021】これにより、FIFOバッファ1に対して
データを書き込むデータ生成装置は、FIFOバッファ
1が満杯になっても、FIFOバッファ1に空きが生ず
るまで待たされることなくデータの出力が可能になり、
処理効率が向上する。
【0022】また、請求項2記載の発明においては、第
2の検出手段6がフラグ3がセットされている状態にお
いてFIFOバッファ1の残り容量が予め定められた所
定の閾値よりも多くなったことを検出する。データリス
トア手段7は、この検出を受けて、退避バッファ2に退
避されていたデータをFIFOバッファ1に転送する。
そして、退避バッファ2に退避データが無くなるとフラ
グ3をリセットする。
【0023】これにより、退避バッファ2に退避されて
いたデータは正しい順序でFIFOバッファ1に書き込
まれる。そして、フラグ3がリセットされると、FIF
O1に空きがある間再びFIFOバッファ1の方にデー
タが書き込まれる。
【0024】請求項3記載の発明においては、第3の検
出手段8が退避バッファの残り容量が予め定められた第
3の閾値よりも少なくなった状態を検出し、その旨を示
す特定の信号を外部に出力する。
【0025】これにより、例えば、プロセッサ等に割り
込みをかけ、退避バッファ2のサイズを拡張することが
可能になる。請求項4記載の発明においては、計数手段
12によりFIFOバッファ11に格納されるパケット
の個数が計数される、したがって、この計数手段12の
計数値を参照することにより、FIFOバッファ11に
パケットが格納されているか否かを判断することが可能
になり、パケット処理装置20は、FIFOバッファ1
1内においてパケットが完結してからパケットのデータ
を連続して取り出すことが可能になり、パケット処理を
効率良く行うことができる。
【0026】請求項5記載の発明においては、退避バッ
ファ13、フラグ14、第1の検出手段15、及びパケ
ットデータ退避手段16により、上述した請求項2記載
の発明と同様な動作が、FIFOバッファ11に対する
パケットデータの書き込みに対して行われる。したがっ
て、パケット生成装置10はFIFOバッファ11が満
杯になっても、FIFOバッファ11に空きが生ずるま
で待たされることなく、パケットデータの出力が可能と
なり、処理効率が向上する。
【0027】請求項6記載の発明においては、第2の検
出手段17がフラグ14がセットされている状態のとき
に計数手段12の計数値すなわちFIFOバッファ11
内の格納パケット数が予め定められた第2の閾値よりも
少なくなったことを検出する。データリストア手段18
は、この検出を受けて退避バッファ13に退避されてい
たパケットデータをFIFOバッファ11に転送する。
そして、退避バッファ13に退避パケットデータが無く
なると、フラグ14をリセットする。
【0028】したがって、退避バッファ13に退避され
ていたパケットが、その一部のデータが退避されていた
パケットも含め、正しい順序並びに正しい形式でFIF
Oバッファ11にリストアされる。
【0029】請求項7記載の発明においては、パケット
完結検出手段19が計数手段12の計数値を参照して、
FIFOバッファ11内に完結しているパケットデータ
が存在するか否か検出する。したがって、この検出を利
用して、未完結のパケットのデータがFIFOバッファ
11から出力されてしまう事態を抑止できる。
【0030】請求項8記載の発明においては、FIFO
バッファ11からパケットデータと共に出力される特定
のビットの値を参照することにより、パケット処理装置
はFIFOバッファ11から読み出したデータがパケッ
トの最後のデータであるか否かを容易に検出できる。
【0031】請求項9記載の発明においては、計数手段
22によりFIFOバッファ21に格納されているパケ
ットデータの個数が計数される。パケット完結検出手段
23は、該計数値とFIFOバッファ21の先頭に格納
されているパケットのそのサイズ情報が設定されている
データを入力して、両者を比較することによりFIFO
バッファ21内に完結しているパケットが存在するか否
か検出する。
【0032】したがって、このパケット完結手段23の
検出情報を利用して、FIFOバッファ21内の未完結
のパケットデータがパケット処理装置40に出力されて
しまう状態を回避させることができる。
【0033】請求項10記載の発明においては、前述し
た請求項5記載の発明と同様な動作が、退避バッファ2
3、第1の検出手段25、及びパケットデータ退避手段
26により行われる。
【0034】したがって、パケット生成装置30は、F
IFOバッファ21に空きが生じていない間でも、生成
したパケットを出力できるので、処理効率が向上する。
請求項11記載の発明においては、前述した請求項6記
載の発明と同様な動作が、第2の検出手段27とデータ
リストア手段28により行われる。
【0035】したがって、退避バッファ23に退避され
ていたパケットが、その一部のデータが退避されていた
パケットも含め、正しい順序並びに正しい形式でFIF
Oバッファ11にリストアされる。
【0036】請求項12記載の発明においては、プロセ
スAがFIFOバッファ41にパケットを書き込んでい
る途中で別のプロセスBに実行権が切り換えられた際、
データ退避手段43が上記プロセスAが書き込んだ未完
結のパケットデータを上記FIFOバッファ41から取
り出し記憶手段42に退避させる。そして、再び前記プ
ロセスAに実行権が移行した際、データリストア手段4
4が該プロセスAの実行開始前に前記記憶手段に退避さ
せておいたパケットデータを前記FIFOバッファ41
に転送させリストアさせる。
【0037】したがって、プロセスAがFIFOバッフ
ァ41にパケットのデータを書き込んでいる途中であっ
ても、新たに起動されたプロセスBはFIFOバッファ
41にパケットを書き込むことが可能になる。そして、
再びプロセスBが再起動された際には、プロセスBはF
IFOバッファ41に残りのパケットデータを書き込む
ことにより、FIFOバッファ41に正しくパケットを
書き込むことが可能になる。
【0038】
【実施例】図5は、本発明の一実施例のキュー装置の全
体構成を示すブロック図である。FIFOバッファ11
0は、nビット単位でのデータの一括入出力が可能なFi
rst-In, First-Out 方式のメモリであり、例えば1チッ
プで構成される。そして、FIFOバッファ110の残
り容量が予め定められた第1の閾値以下になったことを
示すフルフラグ信号full(以下、full信号と記
述する)並びにFIFOバッファ110が現在、全くデ
ータを格納していない状態であることを示すエンプティ
・フラグ信号empty (以下、empty信号と記述す
る)の出力端子と、該FIFOバッファ110へのデー
タ書き込み時にイネーブルとする書き込みイネーブル信
号W1並びに該FIFOバッファ110からデータを読
み出すときにイネーブルとする読み出しイネーブル信号
R1の入力端子を備えている。
【0039】また、さらにnビットのデータ入力線D1
とnビットのデータ出力線Q1を備えている。また、F
IFOバッファ110は、バッファ内の残り容量が予め
定められた第2の閾値よりも大きくなった場合には、Al
most-Empty信号を出力する。
【0040】該FIFOバッファ110は、例えばSR
AM(Static Random Access Memory)のアレイから構成
され、該アレイに対してデータの入・出力が行われる。
また、該SRAMに対する次の入力データの書き込みア
ドレスを指す入力ポインタと該SRAMから次に読み出
すデータのアドレスを指す出力ポインタを内蔵してい
る。これらのポインタは、例えばリングカウンタから成
る。またさらに、上記2つのポインタが指すアドレス値
の差を常に監視・比較しているコンパレータも内蔵して
おり、該コンパレータにより上記full信号や上記e
mpty信号並びにAlmost-Empty信号を生成・出力す
る。
【0041】尚、該FIFOバッファ110をSRAM
ではなく、シフトレジスタにより構成するようにしても
よい。退避バッファ120は、例えばDRAM(Dynami
c Random Access Memory) 等から成り、例えば上記FI
FOバッファ110よりも大きな記憶容量を有する。こ
の退避バッファ120も、nビット幅のデータ入力線D
2並びにデータ出力線Q2を備え、さらに、上記FIF
Oバッファ110が有する書き込みイネーブル信号W1
と同等の機能を有するライトイネーブル信号W2と、例
えば、データ読み出し用のアウトプット・イネーブル信
号OEを有する。この退避バッファ120には、FIF
Oバッファ110の残り容量が上記第1の閾値よりも少
なくなったとき、すなわち、FIFOバッファ110か
らfull信号が出力されたとき、オーバーフロー制御
部130の制御によってFIFOバッファ110に対し
て書き込み要求がなされたデータが退避・格納される。
【0042】オーバーフロー制御部130は、FIFO
バッファ110に対するデータの投入要求をデータ書き
込み要求信号write のイネーブル入力により受け付け、
FIFOバッファ110から入力される上記full信
号の状態に応じて、上記投入要求データをFIFOバッ
ファ110または退避バッファ120のいずれかに格納
する。
【0043】このオーバーフロー制御部130は、書き
込み先決定装置131、フラグ132、書き込みポイン
タ133、及び退避バッファフル検出装置134を備え
ている。
【0044】書き込み先決定装置131は、上記データ
書き込み要求信号write がイネーブルになって加わる
と、FIFOバッファ110から入力されるfull信
号がアクティブとなっているか否か調べ、アクティブで
ない間は上記信号write と共に、外部装置から入力され
るデータD1を、書き込みイネーブル信号W1を制御し
てFIFOバッファ110に書き込む。
【0045】FIFOバッファ110に対するデータの
投入の方が、FIFOバッファ110からのデータ取り
出しよりも高速に行われる場合には、FIFOバッファ
110はやがて充満状態となり、FIFOバッファ11
0はfull信号を“アクティブ”とする。書き込み先
決定装置131は、full信号が“アクティブ”にな
った状態のときにデータ書き込み要求信号write がイネ
ーブルになって加わると、書き込みポインタ133に上
記信号write がイネーブルになった後に送られてきたF
IFOバッファ110に対する書き込みデータの退避バ
ッファ120上の格納先アドレスをセットする。
【0046】書き込みポインタ133にセットされたア
ドレス値は、退避バッファ120にアドレス信号として
送られ入力される。そして、書き込み先決定装置131
が、ライトイネーブル信号W2をイネーブルにすること
により、FIFOバッファ110に対する書き込み要求
データD1が退避データD2として書き込みポインタ1
33にセットされたポインタ値の指す退避バッファ12
0上のアドレスに書き込まれ、一時的に退避される。書
き込み先決定装置131は、このようにして退避バッフ
ァ120にデータを書き込んだ後、フラグ132をセッ
トする。
【0047】書き込み先決定装置131は、一度、フラ
グ132がセットされると、外部装置からのFIFOバ
ッファ110に対する書き込みデータを、退避バッファ
120の方へ転送し書き込む。この間、FIFOバッフ
ァ110から出力されるAlmost-Empty信号を監視し、該
信号が“アクティブ”になる、すなわち、FIFOバッ
ファ110に上記第2の閾値以上の“空き”が生ずる
と、退避バッファ120に退避させていたデータを、不
図示のデータリスト装置を介してFIFOバッファ11
0に転送・復帰させる。
【0048】一方、Almost-Empty信号が“アクティブ”
になる前に、退避バッファ120の残り容量が予め定め
られた第3の閾値よりも少なくなる場合がある。退避バ
ッファフル検出装置134は、退避バッファ120がこ
のような状態になったことを、書き込みポインタ133
から入力されるポインタ値すなわち退避バッファ120
の次のデータの格納先アドレスにより検出する。そし
て、該検出時に、バッファフル検出信号buffer-full を
外部出力する。この信号は、例えばプロセッサなどのデ
ータ生成装置に対する割り込み信号として用いられる。
【0049】次に、図6はFIFOバッファ110を、
コマンドなどを表現する1個以上のデータ列である“パ
ケット”を格納するキューとして使用する場合の一実施
例を示す模式図である。
【0050】カウンタ140は、FIFOバッファ11
0に格納されているパケット数を計数し、その計数値va
lue を該FIFOバッファ110からパケットを取り出
して処理するパケット処理装置へ出力する。
【0051】このカウンタ140のインクリメント(+
1)は、プロセッサなどのFIFOバッファ110にパ
ケットを投入するパケット生成装置によって行われ、デ
クリメント(−1)は該FIFOバッファ110からパ
ケットを取り出すパケット処理装置により行われる。す
なわち、FIFOバッファ110へのデータ入力側のパ
ケットの投入の終了においてカウンタ140をインクリ
メントし、データ出力側のパケットの取り出しの終了に
おいてカウンタ140をデクリメントすることによっ
て、FIFOバッファ110に格納されているパケット
の数を検出することができる。
【0052】このように、パケット数を計数するカウン
タ140を付加することにより、パケット処理装置はF
IFOバッファ110内においてパケットが完結してか
ら、該パケットのデータを連続して取り出して効率良く
処理することが可能になる。
【0053】続いて、図7に示す実施例は上述した図6
に示す構成において、FIFOバッファ110Aに格納
するパケットの各データに該データがパケットの最後の
データであるか否かを示す1ビットの情報(end bit)を
付加するようにしたものである。このような構成とする
ことにより、FIFOバッファ110Aの出力側では、
上記end bit の出力端子を監視することにより、FIF
Oバッファ110Aからデータを取り出す過程でパケッ
トの終了を容易に検出することができる。図8は本発明
の実施例のキュー装置1000を適用したプロセッサ要
素の全体的な回路構成を示すブロック図である。
【0054】プロセッサ100は、例えばRISC(Re
duced Instruction Set Computer)型またはCISC(C
omplex Instruction Set Computer) 型のマイクロプロ
セッサから成り、コマンドなどから成るパケットを生成
する。
【0055】このプロセッサ100には、バス200を
介してメモリ300が接続されている。このメモリ30
0は、例えばDRAM等から成り、その内部には退避バ
ッファ1020の領域が確保される。この退避バッファ
1020は、上記退避バッファ120と同等の機能を有
するもので、上記プロセッサ100により生成されるパ
ケットの一時的な退避領域として利用される。
【0056】本実施例のキュー装置1000の上記退避
領域1020を除く部分は、バスインタフェース400
を介してバス200に接続されている。次に、上記退避
領域1020以外のキュー装置1000の構成を説明す
る。
【0057】2つのFIFOバッファ(FIFO1、F
IFO2)から成るFIFOバッファ1010は、プロ
セッサ100がバスインタフェース400を介して書き
込むパケットを格納するキューとして機能するFIFO
メモリである。プロセッサ100は、FIFO1または
2のいずれにデータを書き込むかは、バスインタフェー
ス400を介してオーバーフロー制御部1030に出力
する書き込み要求信号W11またはW12を制御するこ
とにより指示する。
【0058】これらの各FIFOバッファ1,2にそれ
ぞれ対応するカウンタC1,C2を有するカウンタ10
40が設けられている。カウンタC1,C2は、それぞ
れ、FIFO1,2に格納されているパケット数を計数
する。
【0059】オーバーフロー制御部1030は、これら
FIFO1,2並びにカウンタC1,C2と上記バスイ
ンタフェース400との間に介在して設けられている。
オーバーフロー制御部1030は、2つのフラグF1,
F2を有するフラグ1032、パケットデータラッチ回
路1036(以下、単にラッチ回路1036と表現す
る)、退避バッファ1020用の書き込みポインタ10
33,該退避バッファ1020のサイズに応じて決定さ
れる該書き込みポインタ1033の限界値(最終格納ア
ドレス)が設定されるlimit レジスタ1037、上記ポ
インタ1033とlimit レジスタ1037とを比較する
コンパレータ1038、さらには前記フラグF1,F2
及び前記カウンタC1,C2の値を基に、プロセッサ1
00に対してデータリストアを要求する割り込みをかけ
るインタラプト発生部1039を備えている。
【0060】フラグF1は、対応するFIFO1から入
力されるfull1信号が“アクティブ”になったと
き、すなわちFIFO1が充満状態になったときに“セ
ット”される。そして、退避バッファ1020に退避さ
れていた全てのデータがFIFOバッファ1に投入され
た時点で“クリア”(リセット)される。
【0061】フラグF2は、FIFO2に対して、上記
フラグF1と同様の動作をする。書き込み先ポインタ1
033には、最初、退避バッファ1020の先頭アドレ
スか設定される。そして、FIFOバッファ1010に
対する書き込みデータが格納される毎にインクリメント
される。この書き込み先ポインタ1033の値は、バス
インタフェース400及びバス200を介してメモリ3
00にアドレス信号(address)として供給される。
【0062】コンパレータ1038は、上記書き込み先
ポインタ1033の値がlimit レジスタ1037の値を
越えた時に、割り込み信号(Interrupt 1)をバスイン
タフェース400及びバス200を介してプロセッサ1
00に加える。この割り込みは、退避バッファ1020
に“空き”が無くなったことをプロセッサ100に通知
するものである。
【0063】ラッチ回路1036は、バスインタフェー
ス400を介して入力されるプロセッサ100がバス2
00上に出力したFIFOバッファ1010に対する書
き込みデータ(data) を一時的に保持する。また、プロ
セッサ100は、パケットの最後のデータを書き込む時
には、バス200上のエンド・ビット(end bit)の信号
線を有効(“1”)にする。このend bit の値もバスイ
ンタフェース400を介してラッチ回路1036にラッ
チされる。
【0064】オーバーフロー制御部1030内の不図示
のカウンタ制御部は、このラッチ回路1036にラッチ
されたend bit が“1”に設定されていることを検出す
ることにより、ラッチ回路1036にパケットの最後の
データがラッチされたことを検出する。そしてFIFO
1またはFIFO2にパケットの最後のデータを書き込
んだ後に、カウンタC1またはC2をインクリメント
(+1)する。
【0065】インタラプト発生部1039は、フラグF
1またはF2がセットされているときに、そのセットさ
れているフラグF1またはF2に対応するカウンタC1
またはC2の値が“0”または所定の閾値以下になると
割り込み信号(Interrupt 2)を発生し、バスインタフ
ェース400及びバス200を介してプロセッサ100
に割り込みをかける。この割り込みは、FIFOバッフ
ァ1010に対する書き込みデータが、退避バッファ1
020に退避されている状態のときに、FIFO1また
はFIFO2に格納されているパケットが“皆無”にな
ったときに発生する。
【0066】図9(a) ,(b) は、上記インタラプト発生
部1039の回路構成例を示す図である。同図(a) に示
すインタラプト発生部1039は、フラグF1がセット
されており、かつカウンタC1の値(FIFO1の格納
パケット数)value 1 が“0”のとき、またはフラグF
2がセットされており、かつカウンタC2の値(FIF
O2の格納パケット数)value 2が“0”のとき、共通
の割り込み信号Interrupt2を発生する。
【0067】コンパレータ1102は、カウンタC1の
値value 1が“0”のとき“H”信号をアンドゲート1
104の一方の入力端子に出力する。アンドゲート11
04は他方の入力端子にフラグF1の値(“1”(セッ
ト状態)のときに“H”、“0”(クリア状態)のとき
に“L”)を入力する。そして、フラグF1がセットさ
れており、かつカウンタC1の値value 1が“0”のと
きに“H”信号をオアゲート1110に出力する。ま
た、上記フラグF1とカウンタC1の出力に対する回路
と同様な回路が、コンパレータ1106とアンドゲート
1108によりフラグF2の出力とカウンタC2の出力
に対しても設けられている。アンドゲート1108は、
フラグF2がセットされており、かつカウンタC2の値
value 2が“0”のときに“H”信号をオアゲート11
10に出力する。
【0068】オアゲート1110は、アンドゲート11
04またはアンドゲート1108のいずれか一方が
“H”となったときに、割り込み信号Interrupt 2をバ
スインタフェース400に出力する。
【0069】この場合、プロセッサ100は、オーバー
フロー制御部1030並びにバスインタフェース400
を介してカウンタC1,C2の値を読み出して、値が
“0”となっているカウンタCi(i=1,2,)を検
出することにより、FIFO1またはFIFO2のいず
れが格納パケット数が“0”になったか判断する。
【0070】一方、図9(b) に示す回路は、上述した同
図(a) に示す回路からオアゲート1110を省略したも
のであり、上記アンドゲート1104と上記アンドゲー
ト1108の出力が、それぞれ独立の割り込み信号Inte
rrupt 2A,2Bとなって、バスインタフェース400
に出力される。この場合、プロセッサ100は、FIF
O1またはFIFO2のいずれの方が格納パケット数が
“0”になったかを認識できる。
【0071】アービタ1050は、カウンタC1,C2
の値value 1,2を監視しており、該カウンタ値value
1または2の値が“0”より大きくなると、2つのFI
FO1,2のうち適当な方を選択し、該選択したFIF
O1または2からそれに加えるイネーブル信号r1また
はr2を“イネーブル”にしてパケットデータを順次読
み出す。これらの読み出されたパケットデータはマルチ
プレクサ1060に入力される。アービタ1050は、
該マルチプレクサ1060に入力選択信号selectを加
え、上記FIFO1またはFIFO2から読み出された
パケットデータdataをパケット処理装置500に入力さ
せる。
【0072】マルチプレクサ1060は、FIFO1及
びFIFO2からアービタ1050によって取り出され
たパケットデータが入力されるデータセレクタであり、
アービタ1050から加わる入力選択信号selectに応じ
て、FIFO1またはFIFO2のいずれか一方から出
力されるパケットデータdataをパケット処理装置500
に出力する。
【0073】マルチプレクサ1070は、FIFO1及
びFIFO2からそれぞれempty信号1,2を入力
し、アービタ1050から上記マルチプレクサ1060
と同様に入力選択信号selectを入力する。そして、該選
択信号selectに応じて、上記2つのempty信号1ま
たは2のいずれか一方をパケット処理装置500に選択
出力する。
【0074】パケット処理装置500は、パケット処理
の開始に際して前記アービタ1050にパケットの読み
出し要求信号readを送り、アービタ1050にFIFO
バッファ1010に格納されているパケットの取り出し
を依頼する。アービタ1050は、この信号readを受け
取るとカウンタC1,C2を参照し、マルチプレクサ1
060を介してFIFO1またはFIFO2に格納され
ているパケットデータをパケット処理装置500に入力
させる。パケット処理装置500は、マルチプレクサ1
060を介してパケットの最後のデータを受け取ると、
パケットの取り出し終了を示すdone信号をアービタ10
50に出力する。アービタ1050は、このdone信号を
受信すると、上記パケットが取り出されたFIFOi
(i=1,2)に対応するカウンタCiをデクリメント
(−1)する。パケット処理装置500には前述したよ
うにマルチプレクサ1070を介してempty信号が
入力されるので、該empty信号が非アクティブとな
っている間はFIFOバッファ1010にパケットが格
納されていることを知ることができる。
【0075】図10は、FIFOバッファ1010(F
IFO1,FIFO2)に格納されるパケットの形式を
示す図である。パケットの先頭(第1ワード)には、コ
マンドの種類を示す情報が設定される。これに続く第2
ワード目以降には、該コマンドに付随するパラメータが
必要な個数だけ設定される。
【0076】また、図11は、退避バッファ1020に
退避されるパケットの形式を示す図である。このパケッ
トには、パケットデータdataに加え、さらに投入すべき
FIFOバッファを示すキュー番号(例えばFIFO1
の場合には“1”、FIFO2の場合には“2”)と対
応するパケットデータが当該パケットの最後のデータで
あるか否かを示す情報であるend-bit が付加される。該
end-bit は、例えば“1”のときに有効である。プロセ
ッサ100が退避バッファ1020に退避されているパ
ケットデータを該当するFIFOi(i=1,2)に戻
す場合には、これらの付加情報を参照する。
【0077】次に、上記構成のプロセッサ要素の動作を
説明する。プロセッサ100は、パケットを生成する
と、該パケットをバス200のデータバス幅に合わせて
分割し、end bit データに該当値を設定して逐次バス2
00に出力する。そして、オーバーフロー制御部103
0に対し、FIFO1またはFIFO2に対するパケッ
トデータdataの書き込み要求信号W11またはW12を
イネーブルにしてバス200上のコマンドバスに出力す
る。
【0078】バスインタフェース400は、上記書き込
み要求信号Wi(i=1,2)のイネーブル出力を検出
すると、この信号Wiをオーバーフロー制御部1030
に出力し、その内部のラッチ回路1036にバス200
上に出力されているパケットデータdata並びにend bit
をラッチさせる。
【0079】このようにして、ラッチ回路1036にラ
ッチされたパケットデータは、オーバーフロー制御部1
030によって書き込み要求がなされたFIFOiに順
次書き込まれる。そして、プロセッサ100がパケット
の最後のデータと共に“1”に設定したend bit データ
をバス200上に出力すると、オーバーフロー制御部1
030は、該当するFIFOiにそのパケットの最後の
データを書き込み、その後、対応するカウンタCiをイ
ンクリメント(+1)する。
【0080】以上のようにして、プロセッサ100によ
ってFIFOバッファ1010(FIFO1またはFI
FO2)に対してパケットが書き込まれ、各FIFO
1,2に書き込まれるパケット数がオーバーフロー制御
部1030によってカウンタC1,2により計数され
る。
【0081】アービタ1050は、カウンタC1,C2
の値を常時、監視しており、該カウンタC1又はC2の
値が“0”より大きくなると、マルチプレクサ1060
を制御して2つのFIFO1,2の内、適当な方をパケ
ットを取り出すキューとして選択する。また、該制御に
伴って、マルチプレクサ1070からパケット処理装置
500に対して非アクティブのempty信号が加わ
る。非アクティブのempty信号は、FIFOバッフ
ァ1010すなわちFIFO1またはFIFO2の少な
くともいずれか一方にパケットが格納されていることを
示している。
【0082】パケット処理装置500は、マルチプレク
サ1070から非アクティブのempty信号が加わる
と、アービタ1050に対して出力される信号readをア
クティブにして、パケットの受信要求を行う。アービタ
1050は、この要求を受けて、FIFO1またはFI
FO2のいずれか適切な方にリードイネーブル信号r1
またはr2を“イネーブル”にして出力し、該イネーブ
ル出力を行ったFIFOi(i=1,2)からパケット
データを順次読み出す。アービタ1050は、例えば、
カウンタC1,2の値が共に“0”より大きな値であっ
た場合、カウンタ値すなわち格納パケット数が多いFI
FOiの方を優先的に選択する。そして、マルチプレク
サ1060を制御して、該選択したFIFOiから読み
出されたパケットデータをパケット処理装置500に順
次入力させる。
【0083】パケット処理装置500は、該FIFOi
から読み出されてくるパケットデータを順次取り込んで
パケット処理を開始する。そして、パケットの最後のデ
ータを取り込むと、アービタ1050に対してdone信号
を送信する。アービタ1050は、これを受けて上記F
IFOiに対応するカウンタCiの値をデクリメント
(−1)する。すなわち、FIFOiの格納パケット数
は“1”減少したので、これに合わせてカウンタCiの
値を更新する。パケット処理装置500は、例えば、各
種コマンドの全体長を記憶しており、その記憶情報によ
り各パケットの取り出し終了を検出する。
【0084】プロセッサ100がFIFO1またはFI
FO2にパケットを書き込む速度の方が、パケット処理
装置500がFIFO1またはFIFO2からパケット
を取り出して処理する速度よりも速い場合には、FIF
O1またはFIFO2が充満状態になる場合があり得
る。
【0085】このような場合、オーバーフロー制御部1
030は、プロセッサ100から現在、充満状態にある
FIFOiに対するパケットデータの書き込み要求を受
け取ると、該書き込み要求のあったパケットデータを図
11に示す形式で退避バッファ1020のポインタ10
33の指すアドレスに書き込む。そして、対応するフラ
グFiをセットする。このように、いったんフラグFi
がセットされると、オーバーフロー制御部1030はそ
の後プロセッサ100からFIFOiに対して書き込み
要求がなされるパケットを、ポインタ1033を更新し
ながら退避バッファ1020の方に書き込む。
【0086】このように退避バッファ1020にパケッ
トの書き込みが行われている間に、充満状態にあったF
IFOiからパケット処理装置500によってパケット
が順次、取り出されていく。そして、やがて、該FIF
Oiの格納パケット数は“0”となる。すなわち、該F
IFOiに対応するカウンタCiの値は“0”になる。
これにより、オーバーフロー制御1030においてイン
タラプト発生部1039からプロセッサ100に対して
割り込み信号Interrupt 2が加わる。
【0087】プロセッサ100は、この割り込みにより
当該割り込み処理ルーチンを実行し、退避バッファ10
20からFIFOiに投入すべきパケットデータを読み
出し、該パケットデータを該FIFOiに書き込む。そ
して、この結果退避バッファ1020内にFIFOiに
投入すべきパケットデータが残らなくなれば、対応する
フラグFiをクリア(リセット)する。このフラグFi
のクリアにより、オーバーフロー制御1030は、再び
FIFOiが充満状態になるまで、プロセッサ100か
ら書き込み要求がなされるパケットデータをFIFOi
に書き込む。
【0088】一方、上記退避バッファ1020からFI
FOiへのデータのリストアにおいて、まだ、退避バッ
ファ1020の中にFIFOiへの投入パケットデータ
が残っている場合には、フラグFiはクリアしない。し
たがって、この場合には、オーバーフロー制御1030
は引き続いて、プロセッサ100のFIFOiに対する
投入データを、退避バッファ1020の方に書き込む。
すなわち、この場合には、退避バッファ1020の方に
FIFOiに先に投入すべきパケットデータが残ってい
るからである。
【0089】ところで、あるパケットにおいてFIFO
iにデータを投入している途中で、FIFOiが充満状
態となり、それ以降のデータが退避バッファ1020の
方に格納される場合もありえる。この場合においては、
カウンタCiはインクリメント(+1)されないので、
FIFOiには該パケットは格納されていないものとみ
なされる。そして、退避バッファ1020に退避されて
いた残りの全てのデータがFIFOiに転送された時点
でカウンタCiがインクリメント(+1)される。した
がって、パケット処理装置500は、常にFIFOi内
でパケットが完結した時点でFIFOiからパケットを
効率良く取り出すことができる。
【0090】一方、退避バッファ1020がオーバーフ
ローする状態もありえる。この場合には、コンパレータ
1038により割り込み信号Interrupt 1がプロセッサ
100に加えられる。プロセッサ100は、この割り込
みが加わると、例えばメモリ300上の退避バッファ1
020のサイズを拡張する処理などを行う。そして、こ
れに伴ってlimit レジスタ1037の値を更新する。
【0091】上述した実施例では、退避バッファ102
0から該当するFIFOiへのデータのリストアを、プ
ロセッサ100のソフトウェア処理により実行してい
る。次に述べる実施例は、上記データリストア処理を完
全にハードウェアで実現するキュー装置を実装したプロ
セッサ要素の例である。
【0092】この実施例では、図12に模式的に示すよ
うに、退避バッファ1020に対して書き込みポインタ
WP(図8のポインタ1033に対応)の他に、退避バ
ッファ1020から読み出すべき先頭のパケットデータ
の格納アドレスを指す読み出しポインタRPを用意す
る。これにより、退避バッファ1020をリングバッフ
ァとして取り扱うことが可能になる。そして、FIFO
バッファ1010が空になったことを検出したら、退避
バッファ1020に退避されていたデータを上記読み出
しポインタRPで示されるアドレスから読み出し、FI
FOバッファ1010に転送する。そして、このデータ
転送により、退避バッファ1020が“空”になったな
らば、退避バッファ1020に退避データがあることを
示すフラグ1032をリセット(クリア)する。これら
の一連の処理をハードウェアにより実現する。
【0093】図13は上記データリストア処理をハード
ウェアにより実現するキュー装置2000を実装したプ
ロセッサ要素の全体構成を示すブロック図である。同図
において、前述した図8に示す実施例内のブロックと同
一のブロックには同一の符号を付与しており詳しい説明
は省略する。
【0094】本実施例においては、FIFOバッファ1
010は1個のみ備えられ、これに対応して該FIFO
バッファ1010内の格納パケット数を計数するカウン
タ1040が設けられている。
【0095】本実施例のオーバーフロー制御部2030
は、前記図8に示す実施例と同様に、ラッチ回路103
6、退避バッファ1020にFIFOバッファ1010
に書き込まれるべきパケットデータが退避されているこ
とを示すフラグ1032を備えている。そして、これら
の回路以外に、上述した退避バッファ1020用に設け
られた書き込みポインタWPと読み出しポインタRP、
ポインタ比較器2031、シーケンサ2032、2つの
マルチプレクサ2033,2034を備えている。
【0096】ポインタ比較器2031は、上記2つのポ
インタWP,RPの値を入力・比較し、退避バッファ1
020が現在、“空”になっているか又は“充満状態”
にあるかを検出する。そして、退避バッファ1020が
“空”になっていればempty3信号を、“充満状
態”になっていればfull3信号をシーケンサ203
2に出力する。退避バッファ1020は、上述したよう
にリングバッファの構成となっているので、“空”の状
態のときには上記両ポインタの値は一致し、充満状態の
ときには上記両ポインタはリングバッファ上における隣
接するアドレスを指すことになる。
【0097】シーケンサ2032は、オーバーフロー制
御部2030を全体を制御し、プロセッサ100からの
FIFOバッファ1010に対するパケットデータdata
とそれに付加されるend bit データの書き込み要求信号
Wをバスインタフェース400を介して受信する。そし
て、ラッチ回路1036に該パケットデータdataとend
bit データをラッチさせる。
【0098】マルチプレクサ2033は、シーケンサ2
032から加えられる入力選択信号select1に従って上
記ポインタWPまたはRPのいずれか一方をアドレス信
号としてバスインタフェース400に出力する。このア
ドレス信号は、バス200を介してメモリ200に送ら
れる。すなわち、シーケンサ2032は、FIFOバッ
ファ1010への投入データを退避バッファ1020に
退避させる場合には、書き込みポインタWPの値が選択
出力されるように、退避バッファ1020に退避されて
いるデータをFIFOバッファ1010にリストアさせ
る場合には読み出しポインタRPの値が選択出力される
ようにマルチプレクサ2033を制御する。
【0099】マルチプレクサ2034は、シーケンサ2
032から加えられる入力選択信号select2に従って、
ラッチ回路1036にラッチされたプロセッサ100の
書き込みデータまたは退避バッファ1020から読み出
されたリストア用のデータのいずれか一方を、FIFO
バッファ1010に選択出力する。すなわち、シーケン
サ2032は、プロセッサ100から書き込み要求がな
されたパケットデータdataをFIFOバッファ1010
に直接書き込む場合にはラッチ回路1036にラッチさ
れているパケットデータdataが選択出力されるように、
退避バッファ1020から読み出されたリストア用のパ
ケットデータdataをFIFOバッファ1010に書き込
む場合にはバスインタフェース400から入力される上
記リストア用のパケットデータdataが選択出力さるよう
にマルチプレクサ2034を制御する。また、シーケン
サ2032は、上記マルチプレクサ2034からの出力
パケットデータdataをFIFOバッファ1010に書き
込むときには、ライトイネーブル信号write 2をイネー
ブルにしてFIFOバッファ1010に加える。
【0100】シーケンサ2032は、ラッチ回路103
6にパケットの最後のデータdataがラッチされると、該
データdataと共にもラッチ回路1036にラッチされた
end-bit の値によりラッチ回路1036にパケットの最
後のデータdataがラッチされたことを認識する。そし
て、該最後のデータdataをFIFOバッファ1010に
書き込んだ後にカウンタ1040をインクリメント(+
1)する。
【0101】本実施例においては、FIFOバッファ1
010は1個しか実装されていないので、退避バッファ
1020に格納されるパケットデータの形式は図14に
示すように、前述した実施例とは異なり、end-bit のみ
が付加された形式となる。シーケンサ2032は退避バ
ッファ1020からFIFOバッファ1010へリスト
アするパケットデータdataを読み出した際、該end-bit
の情報によりパケットの最後のデータdataの読み出しを
検出する。そして、該最後のデータdataをFIFOバッ
ファ1010にリストアした後に、カウンタ1040を
インクリメント(+1)する。また、パケット処理装置
500は、FIFOバッファ1010からパケットの最
後のデータを読み出す毎に、該カウンタ1040をデク
リメント(−1)する。
【0102】以上のような構成の実施例におけるキュー
装置2000の動作を、図15のフローチャートを参照
しながら説明する。オーバーフロー制御部2030のシ
ーケンサ2032は、下記の(A)〜(D)の判断を行
う。 (A)プロセッサ100からキューすなわちFIFOバ
ッファ1010へのパケットデータdataの書き込み要求
があると、退避バッファ1020に“空き”があるか否
か調べる。これは、ポインタ比較器2031から入力さ
れるfull3信号がアクティブになっているか否かに
よって判断する。非アクティブであれば、退避バッファ
1020には“空き”がある。 (B)オーバーフローフラグ1032にセットされてい
るflag情報を参照して該オーバーフローフラグ1032
がセットされているか否か判別することにより、現在、
オーバーフローデータが退避バッファ1020に退避さ
れているか調べる。そして、退避データがあれば次にF
IFOバッファ1010からのfull2信号の状態を
調べ、現在、FIFOバッファ1010に“空き”があ
るか調べる。 (C)上記判断(A)において、現在、退避バッファ1
020に“空き”があると判断すると、次に、オーバー
フローフラグ1032がセットされているか又はFIF
Oバッファ1010が充満状態(フル状態)にあるか調
べる。上述したように、オーバーフローフラグ1032
がセットされていることは現在、退避バッファ1020
に退避データが存在することを意味する。 (D)上記判断(A)において、現在、退避バッファ1
020に“空き”があると判断すると、オーバーフロー
フラグ1032がオフとなっており、かつFIFOバッ
ファ1010に“空き”があるか否か調べる。
【0103】シーケンサ2032は、上記(A)〜
(D)の判断を行い、その判断結果に応じてプロセッサ
100からキューに対する書き込み要求のあったパケッ
トデータをFIFOバッファ1010または退避バッフ
ァ1020のいずれかに書き込む。また、退避バッファ
1020に退避されていたパケットデータをFIFOバ
ッファ1010にリストアする。
【0104】すなわち、システムの動作開始時には、上
記(D)の判断においてオーバーフローフラグ1032
がリセットされており、かつFIFOバッファ1010
に“空き”があることが認識され、プロセッサ100か
らのキューに対する書き込み要求データは、FIFOバ
ッファ1010に順次書き込まれる(ステップS1
1)。そして、FIFOバッファ1010に書き込んだ
パケットデータに付加されているend-bit が“オン”と
なっている場合、すなわち、FIFOバッファ1010
にパケットの最後のデータを書き込んだ際にはカウンタ
1040をインクリメント(+1)する(ステップS1
2)。これにより、カウンタ1040にはFIFOバッ
ファ1010に格納されているパケット数がセットされ
る。その後も、マイクロプロセッサ100のキューへの
書き込みデータは、上記ステップS11〜S12の処理
によりFIFOバッファ1010に書き込まれていく。
【0105】そして、やがてFIFOバッファ1010
が充満状態になると、FIFOバッファ1010から出
力されるfull2信号が“アクティブ”になる。これ
により、シーケンサ2032は、上記判断(C)におい
て、FIFOバッファ1010が充満状態(フル)にな
ったことを検出し、これ以降のマイクロプロセッサ10
0からのキューに対する書き込みデータdataは退避バッ
ファ1020に書き込む。このとき、図14に示すよう
に書き込みデータdataに対して“end-bit ”を付加する
(ステップS21)。そして、該データdataの書き込み
後、書き込みポインタWPをインクリメント(+1)し
(ステップS22)。オーバーフローフラグ1032を
“オン”にセットする(ステップS23)。シーケンサ
2032は、このように、オーバーフローフラグが“オ
ン”になると、マイクロプロセッサ100からキューへ
のパケットデータdataの書き込み要求がある毎に、上記
ステップS21〜S23の処理を行い、退避バッファ1
020に該パケットデータdataを書き込む。
【0106】その後、パケット処理装置500によりF
IFOバッファ1010からパケットの取り出しが行わ
れ、FIFOバッファ1010に“空き”が生じると、
FIFOバッファ1010から出力されるfull2信
号は非アクティブとなる。これにより、シーケンサ20
32は、上記判断(B)においてFIFOバッファ10
10に“空き”が生じたことを検出する。また、オーバ
ーフローフラグ1032がセットされていることによ
り、退避バッファ1020にオーバーフローデータ(退
避データ)が格納されていることを知る。
【0107】これにより、シーケンサ2032は退避バ
ッファ1020の読み出しポインタRPの指すアドレス
からパケットデータdataを読み出し、該データdataをF
IFOバッファ1010に書き込む(ステップS3
1)。続いて、読み出しポインタRPをインクリメント
(+1)する(ステップS32)。そして、FIFOバ
ッファ1010に書き込んだパケットデータdataに付加
されていたend-bit が“オン”にセットされていたなら
ば、カウンタ1040をインクリメント(+1)する。
すなわち、FIFOバッファ1010に1パケットをリ
ストアするごとにカウンタ1040をインクリメント
(+1)する(ステップS33)。この後、ポインタ比
較器2031から入力されるempty3信号の状態を
調べ、退避バッファ1020が“空”になったか否か調
べ、退避バッファ1020に退避されていたデータdata
が皆無になったならば、オーバーフローフラグ1032
をクリア(リセット)する(ステップS34)。
【0108】シーケンサ2032は、例えばマイクロプ
ロセッサ100からキューへのパケットデータdataの書
き込み要求が無い間、上記ステップS31〜S34の処
理を随時行う。これにより、マイクロプロセッサ100
がバス200を使用していない間を利用して、退避バッ
ファ1020からFIFOバッファ1010へのデータ
のリストアを、マイクロプロセッサ100の動作を妨げ
ることなく行うことができる。
【0109】次に、図16は本発明のさらに別の実施例
であるキュー装置3000を実装したプロセッサ要素の
全体構成を示すブロック図である。同図において、前述
した図8に示すプロセッサ要素内のブロックと同一のブ
ロックには同一の符号を付与してあり、これらについて
は詳しい説明は省略する。
【0110】本実施例のFIFOバッファ3010は、
2つのFIFOメモリ1,2(以下、単にFIFO1,
2と記述する)から成っており、各FIFO1,2はリ
ングバッファ構成となっている。図17にその詳しい構
成を示す。
【0111】FIFOi(i=1,2,)は、FIFO
バッファ3110と、該バッファ3110への次のデー
タの書き込みアドレスを指す書き込みポインタwpi
と、次のデータの読み出しアドレスを指す読み出しポイ
ンタrpiから成っている。そして、これらの2つのポ
インタwpi,rpiを操作することにより、エンドレ
スなバッファとして機能する。
【0112】FIFOバッファ3110に書き込まれる
パケットの形式を図18に示す。同図に示すように、パ
ケットの先頭(第1ワード目)にはパケットの全体長を
示すサイズ情報が設定されている。
【0113】各FIFO1,2にそれぞれ対応してパケ
ット完結検出部3060が設けられている。該パケット
完結検出部3060は、対応するFIFO1,2に完結
したパケットが格納されているか否かを検出するもの
で、1個以上の完結されたパケットがFIFO1,2に
格納されていれば外部出力のpacket complete 1,2信
号を“アクティブ”にする。このpacket complete 1,
2信号は、アービタ3050に入力されており、アービ
タ3050はこのpacket complete 1,2信号により前
記マルチプレクサ1060並びにマルチプレクサ107
0を制御する。すなわち、このpacket complete 1,2
信号は、アービタ3050に対して前記カウンタC1,
C2の代替として機能する。そして、アービタ3050
は、FIFO1,2からパケットデータdataを読み出す
毎に上記ポインタrp1,2を更新する。また、上記書
き込みポインタwp1,2の操作は、オーバーフロー制
御部3030内の不図示のシーケンサによって行われ
る。
【0114】次に、パケット完結検出部3060の内部
の回路構成を図17を参照しながら説明する。パケット
デコーダ3061は、FIFO1,2内に格納されてい
るパケットの先頭ワードのデータをデコードして、該パ
ケットの全体サイズを示すパケット長(packet size)を
コンパレータ3063に出力する。
【0115】演算器3062は、FIFO1,2から上
記2つのポインタrp,wpの値を入力し、両ポインタ
値からFIFO1,2に格納されているパケットデータ
の個数(ワード数)を示すデータ長(data length)を求
め、これを上記コンパレータ3063に出力する。
【0116】コンパレータ3063は、パケットデコー
ダ3061から入力されるパケット長と演算器3062
から入力されるデータ長とを比較する。そして、該デー
タ長がパケット長以上であれば、FIFO1,2内にお
いてパケットが完結していることを示すべくアービタ3
050に加えるpacket complete 信号1,2を“アクテ
ィブ”にする。
【0117】ポインタ比較器3064は、前述した図1
3に示すポインタ比較器2031と同様な動作を行うも
のでFIFO1,2から上記2つのポインタrp(rp
1,2),wp(wp1,2)を入力し、これら両ポイ
ンタ値を比較して、FIFO1,2が“充満状態(ful
l) ”にあることを示すfullフラグ1,2信号と、
該FIFO1,2が“空”になっていることを示すem
ptyフラグ1,2信号を生成し、これらをオーバーフ
ロー制御部3030に出力する。本実施例におけるオー
バーフロー制御部3030内におけるインタラプト発生
部3039の構成を図19に示す。
【0118】同図に示すように、インタラプト発生部3
039は前述したインタラプト発生部1039からコン
パレータ1102,1106を削除した構成となってお
り、アンドゲート1104,1108には、それぞれ前
記パケット完結検出部3060から出力されるempt
yフラグ1,2信号が入力される。そして、前記インタ
ラプト発生部1039と同様に、フラグFi(i=1,
2)がセットされているときにFIFOiが“空”にな
ったら、割り込み信号Interrupt 2を“アクティブ”に
してプロセッサ100に割り込みをかける。
【0119】上述した実施例においては、パケット処理
装置500は、FIFOバッファ1010内でパケット
が完結した時点で、該パケットを取り出す。換言すれ
ば、FIFOバッファ1010内でパケットが未完結な
場合、そのパケットデータdataのFIFOバッファ10
10からの出力を抑制できる。これにより、プロセッサ
100のソフトウェア処理により、FIFOバッファ1
010にいったん入力された未完結なパケットの一部の
データdataをFIFOバッファ1010から取り出し一
時的にメモリ300上に設け不図示の退避領域に退避さ
せておき、その後、この退避領域に退避させていたパケ
ットデータdataを再びFIFOバッファ1010に復帰
させることによりこのパケットをその他のパケットと同
様にFIFOバッファ1010内で完結させることが可
能である。
【0120】このような機能は、プロセッサ100がマ
ルチプログラム処理をサポートしている場合に有効であ
る。この場合、複数のプロセス(ここで、プロセスとは
1つのプログラムの走行単位とする)が、1つのFIF
Oバッファ(FIFO1またはFIFO2)をキューと
して共有する際、あるプロセスが該FIFOバッファに
パケットを書き込んでいる途中で、別のプロセスに実行
権がスイッチされこの別のプロセスがFIFOバッファ
にパケットを書き込む場合があり得る。このような場
合、上記機能を利用することにより、両プロセスがFI
FOバッファに正しくパケットを書き込むことが可能に
なる。
【0121】図20及び図21は、上記機能を実現する
プロセッサ100並びにキュー装置1000,2000
もしくは3000の動作を説明するフローチャートであ
る。図20のフローチャートは、プロセッサ100がプ
ロセスAの実行中に該プロセスAの実行を中断し、他の
プロセスBの実行に移行する場合の動作を説明するフロ
ーチャートである。
【0122】この場合、プロセッサ100はオーバーフ
ロー制御部1030(2030もしくは3030)を介
しFIFOバッファ1010の書き込みポインタの値を
読み出す(ステップS101)。
【0123】次に、該書き込みポインタの指すアドレス
のデータdataをオーバーフロー制御部1030(203
0もしくは3030)を介しFIFOバッファ1010
から読み出し(ステップS102)、該データがプロセ
スAが書き込み途中のデータdataであるか否か判別する
(ステップS103)。そして、プロセスAが書き込み
途中のデータdataであれば(S103,YES)、この
データdataをメモリ300上の退避領域に退避する。そ
して、このデータの退避に伴ってFIFOバッファ10
10の書き込みポインタを修正する(ステップS10
4)。
【0124】上記ステップS101〜S104の処理
を、プロセスAが書き込み途中の全てのデータdataをF
IFOバッファ1010からメモリ300の上記退避領
域に退避するまで繰り返し、FIFOバッファ1010
内にプロセスAが書き込み途中のパケットのデータdata
が無くなると(S103,NO)、処理を終了する。
【0125】以上の処理によって、プロセスAがその実
行中にFIFOバッファ1010に書き込んでいた未完
結のパケットがメモリ300の特定領域に退避される。
次に、図21はプロセッサ100がプロセスBの実行を
終了して再びプロセスAの実行を再開する前に行う動作
を説明するフローチャートである。
【0126】プロセッサ100は、上記メモリ300上
の上記退避領域を調べ、該退避領域にプロセスAの退避
データdataが存在するか否か調べる(ステップS20
1)。そして、該退避データdataが存在すれば(S20
1,YES)、これをオーバーフロー制御部1030
(2030または3030)を介してFIFOバッファ
1010に転送する。そして、該転送したデータ長に応
じてFIFOバッファ1010の書き込みポインタを更
新する(S202)。
【0127】以上の処理により、FIFOバッファ10
10にはプロセスBが書き込んだパケットに続いて、プ
ロセスAが中断させられる前に書き込んでいた未完結の
パケットのデータdataが格納される。そして、これによ
り、プロセスAは実行再開後、残りのパケットデータda
taを該格納済のパケットデータdataに続いて書き込み、
FIFOバッファ1010に完結したパケットを書き込
むことが可能になる。前記図20のステップS103に
おけるプロセスAが書き込み途中のデータがFIFOバ
ッファ1010内に存在するか否かの判別は、例えば、
以下のような方法により行う。
【0128】 前記図14に示すように、FIFOバ
ッファ1010に格納する各パケットデータにend bit
を付加する構成を採用する場合、FIFOバッファ10
10に最後に書き込まれたパケットデータに付加されて
いるend bit の値を調べる。そして、該end bit に
“0”(パケットの末尾データではないことを示す情
報)が設定されていた場合には、プロセスAが書き込み
途中のデータがFIFOバッファ1010内に在ると判
断する。そして、この場合には、図22に示すようにen
d bit が“1”(パケットの末尾データであることを示
す情報)に設定されている前パケットの末尾データの直
前に格納されているパケットデータ(data) をメモリ3
00上に設けられた退避領域に退避させる。
【0129】 バスインタフェース400にFIFO
バッファ1010に書き込まれるパケットのデータ数を
計数するカウンタを設ける。このカウンタは、FIFO
バッファ1010内に対するパケットの書き込み動作が
開始される毎に計数を開始し、FIFOバッファ101
0にパケットの最後のデータの書き込みを終了した時点
で“0”にリセットされ計数を終了する。したがって、
プロセスAからプロセスBへの切り換えが発生した場
合、上記カウンタの値を調べることにより、プロセスA
がパケットの書き込み途中であったか否かを判断でき
る。すなわち、上記カウンタの値が“0”であればパケ
ットの書き込みは終了している。これに対し、該カウン
タの値が“0”でない場合は、プロセスAが書き込み途
中のデータが該カウンタ値に等しい個数だけ有ることが
分かる。したがって、FIFOバッファ1010の末尾
(一番最後に書かれたデータ)から、そのカウンタ値に
等しい個数のデータをメモリ300上の退避領域に退避
させる。
【0130】 前記図8または図16に示すアービタ
1050または3050に対して、図23に示すよう
に、入力信号pause と出力信号stopを付加する。入力信
号pause はアービタ1050または3050に対して
「停止」を指示する信号であり、出力信号stopはアービ
タ1050または3050がFIFOバッファ1010
からのデータ出力を停止させている状態(停止状態)を
示す信号である。
【0131】アービタ1050または3050は、paus
e 信号により「停止」が指示されると( 図24(a) )、
FIFOバッファ1010からパケットAの出力途中の
データが最後まで出力されるまで、すなわち、パケット
処理装置500からアクティブのdone信号が出力される
までFIFOバッファ1010からデータを出力させる
(図24(b) ,(c) )。そして、パケットAのデータが
最後まで出力されると、FIFOバッファ1010から
のデータ出力を停止させ、上記「停止状態」を示すstop
信号をアクティブにする。したがって、stop信号がアク
ティブになっている状態においては、FIFOバッファ
1010の先頭データは必ずパケットの先頭のデータと
なっている。
【0132】マイクロプロセッサ100は、プロセスA
からプロセスBへ実行プロセスを切り換える際、例え
ば、バスインタフェース400を介してアービタ105
0または3050にアクティブのpause 信号を加える。
そして、stop信号がアクティブに変化するのをバスイン
タフェース100を介して検出すると、FIFOバッフ
ァ1010の先頭からデータを順次読み出して、FIF
Oバッファ1010内の内容を解析することにより、不
完全なパケットすなわちプロセスAが書き込み途中の未
完結なパケットのデータがFIFOバッファ1010内
にあるか否かを検出できる。
【0133】
【発明の効果】請求項1記載の発明によれば、FIFO
バッファに対してデータを書き込むデータ生成装置は、
FIFOバッファが満杯になっても、FIFOバッファ
に空きが生ずるまで待たされることなくデータの出力が
可能となり、処理効率が向上する。
【0134】また、この場合、FIFOバッファにはア
クセス速度が高速の比較的小容量の記憶装置を、退避バ
ッファには該FIFOバッファよりもアクセス速度が低
速で大容量の記憶装置を用いることにより、低コストで
高性能のキュー装置を実現できる。
【0135】請求項2記載の発明によれば、前記FIF
Oバッファの残り容量に余裕が生じたことを検出でき、
前記退避バッファに退避されていたデータを、ハードウ
ェアまたはソフトウェア処理により正しい順序でFIF
Oバッファにリストアすることができる。そして、上記
フラグがリセットされた後、FIFOバッファに空きが
ある間再びFIFOバッファの方にデータを書き込むこ
とができる。上記リストア処理をハードウェアで実現し
た場合には、プロセッサに対して割り込みが生じないた
め、プロセッサの処理を妨害せず、高いシステム性能が
得られる。一方、上記リストア処理をマイプロセッサに
よるソフトウェア処理により実現した場合には複雑なハ
ードウェアが不要となり、実装面積も小さくできる。
【0136】請求項3記載の発明によれば、例えば、プ
ロセッサ等に割り込みをかけ、前記退避バッファのサイ
ズを拡張するなどの処理が可能になる。請求項4記載の
発明においては、計数手段の計数値を参照することによ
り、パケット処理装置は、FIFOバッファ内において
パケットが完結してからパケットのデータを連続して取
り出すことが可能になり、パケット処理を効率良く行う
ことができる。特に、複数のFIFOバッファからパケ
ットを取り出して処理するパケット処理装置において
は、データの揃ったFIFOバッファからデータを取り
出して処理を開始することができ、効率のよい処理が可
能となる。
【0137】また、格納パケット数が多いFIFOバッ
ファの方から優先的にパケットを取り出して処理するな
どの機能も実現できる。請求項5記載の発明において
は、パケット生成装置はFIFOバッファが満杯になっ
ても、FIFOバッファに空きが生ずるまで待たされる
ことなく、パケットデータの出力が可能となり、処理効
率が向上する。
【0138】請求項6記載の発明においては、上記請求
項5記載の発明によって前記退避バッファに退避されて
いたパケットを、その一部のデータが退避されていたパ
ケットも含め、正しい順序並びに正しい形式で上記FI
FOバッファにリストアできる。
【0139】請求項7記載の発明においては、計数手段
12の計数値を参照して、未完結のパケットのデータが
FIFOバッファから出力されてしまう事態を抑止でき
る。また、前記FIFOバッファ内に完結しているパケ
ットが存在しているか否かを知ることができるので、パ
ケット処理装置は前記FIFOバッファ内でパケットが
完結してから、該パケットの取り出しを開始することに
より、前記FIFOバッファ内にパケットの全データが
揃うまで待つという無駄な待ち時間を解消でき、効率の
良いパケット処理ができる。
【0140】請求項8記載の発明においては、FIFO
バッファからパケットデータと共に出力される特定のビ
ットの値を参照することにより、パケット処理装置はF
IFOバッファから読み出したデータがパケットの最後
のデータであるか否かを容易に検出できる。これにより
上記請求項4記載の発明の計数手段のデクリメント信号
の生成が容易になる。
【0141】請求項9記載の発明においては、計数手段
によりFIFOバッファに格納されているパケットデー
タの個数が計数される。パケット完結検出手段は、該計
数値とFIFOバッファの先頭に格納されているパケッ
トのそのサイズ情報が設定されているデータを入力し
て、両者を比較することによりFIFOバッファ内に完
結しているパケットが存在するか否か検出する。
【0142】したがって、このパケット完結手段の検出
情報を利用して、FIFOバッファ内の未完結のパケッ
トデータがパケット処理装置に出力されてしまう状態を
回避させることができる。
【0143】請求項10記載の発明においては、パケッ
ト生成装置は、上記請求項9記載の発明のFIFOバッ
ファに空きが生じていない間でも、生成したパケットを
出力できるので、処理効率が向上する。
【0144】請求項11記載の発明においては、上記請
求項10記載の発明により退避バッファに退避されてい
たパケットを、その一部のデータが退避されていたパケ
ットも含め、正しい順序並びに正しい形式で空きの生じ
たFIFOバッファに随時リストアできる。また、これ
により、上記FIFOバッファからパケットを取り出し
て処理を行うパケット処理装置は、上記退避バッファか
ら退避されていたパケットデータがFIFOバッファに
転送されるまでの間、待機している必要がなくなり、無
駄な待ち時間を削減できる。
【0145】請求項12記載の発明によれば、プロセス
AがFIFOバッファにパケットのデータを書き込んで
いる途中であっても、新たに起動されたプロセスBはF
IFOバッファにパケットを書き込むことが可能にな
る。そして、再びプロセスBが再起動された際には、プ
ロセスBはFIFOバッファに残りのパケットデータを
書き込むことにより、FIFOバッファに正しくパケッ
トを書き込むことが可能になる。したがって、FIFO
バッファ内に既に格納済の未完結のパケットのデータの
退避及びその復帰が可能である。
【図面の簡単な説明】
【図1】本発明の原理を説明する図(その1)である。
【図2】本発明の原理を説明する図(その2)である。
【図3】本発明の原理を説明する図(その3)である。
【図4】本発明の原理を説明する図(その4)であく
【図5】本発明の一実施例のキュー装置の全体構成を示
すブロック図である。
【図6】FIFOバッファを、パケットを格納するキュ
ーとして使用する場合の一実施例を示す模式図である。
【図7】上述した図6に示す構成のFIFOバッファに
格納するパケットの各データに該データがパケットの最
後のデータであるか否かを示す1ビットの情報(end bi
t)を付加するようにした実施例を示す図である。
【図8】本発明の実施例のキュー装置を適用したプロセ
ッサ要素の全体的な回路構成を示すブロック図てある。
【図9】(a) ,(b) は、上記図8に示すインタラプト発
生部1039の回路構成例を示す図である。
【図10】上記図8に示すFIFOバッファ(FIFO
1,FIFO2)に格納されるパケットの形式を示す図
である。
【図11】上記図8に示す退避バッファ1020に退避
されるパケットの形式を示す図である。
【図12】退避バッファからFIFOバッファへのデー
タリストア処理を完全にハードウェアで実現するキュー
装置を実装したプロセッサ要素で用いられる退避バッフ
ァの構成例を示す図である。
【図13】上記データリストア処理をハードウェアによ
り実現するキュー装置を実装したプロセッサ要素の全体
構成を示すブロック図である。
【図14】上記図13に示すキュー装置内の退避バッフ
ァ1020に格納されるパケットデータの形式を示す図
である。
【図15】上記図13に示すキュー装置の動作を説明す
るフローチャートである。
【図16】本発明のさらに別の実施例であるキュー装置
を実装したプロセッサ要素の全体構成を示すブロック図
である。
【図17】上記図16に示すFIFOバッファの構成を
説明する図である。
【図18】上記図17に示すFIFOバッファに書き込
まれるパケットの形式を示す図である。
【図19】上記図16に示すオーバーフロー制御部内に
おけるインタラプト発生部の構成を示す図である。
【図20】プロセッサがプロセスAの実行中に該プロセ
スAの実行を中断し、同一のFIFOバッファをキュー
として共有する他のプロセスBの実行に移行する場合の
動作を説明するフローチャートである。
【図21】プロセッサが前記プロセスBの実行を終了し
て再び前記プロセスAの実行を再開する前に行う動作を
説明するフローチャートである。
【図22】上記図20で述べたFIFOバッファに格納
する各パケットデータにend bitを付加する動作を採用
する例を示す図である。
【図23】前記図8または図16に示すアービタに対し
て、入力信号pause と出力信号stopを付加する構成を説
明する図である。
【図24】(a) ,(b) は、上記図23に示す構成のアー
ビタの動作を説明する図である。
【符号の説明】
1,11,21,41 FIFOバッファ 2,13,23 退避バッファ 3,14,24 フラグ 4,15,25 第1の検出手段 5,43 データ退避手段 6,17,27 第2の検出手段 7,18,28,44 データリストア手段 8 第3の検出手段 12 計数手段 16,26 パケットデータ退避手段 19,23 パケット完結検出手段 42 記憶手段
フロントページの続き (72)発明者 清水 俊幸 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 石畑 宏明 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 FIFOバッファと、 該FIFOバッファに書き込まれるデータが退避される
    退避バッファと、 該退避バッファにデータが退避されているか否かを示す
    フラグと、 上記FIFOバッファの残り容量が予め定められた第1
    の閾値より少なくなったことを検出する第1の検出手段
    と、 該第1の検出手段により上記FIFOバッファの残り容
    量が上記第1の閾値よりも少なくなったことが検出され
    ると、その後の上記FIFOバッファに対する書き込み
    データを前記退避バッファに退避させると共に前記フラ
    グをセットさせ、該フラグがセットされている状態の
    間、上記FIFOバッファに対する書き込みデータを前
    記退避バッファの方に書き込むデータ退避手段と、 を備えたことを特徴とするキュー装置。
  2. 【請求項2】 前記フラグがセットされている状態のと
    きに、前記FIFOバッファの残り容量が予め定められ
    た第2の閾値よりも多くなったことを検出する第2の検
    出手段と、 該第2の検出手段によりFIFOバッファの残り容量が
    上記第2の閾値よりも多くなったことが検出された際、
    前記退避バッファに退避されていたデータを上記FIF
    Oバッファに転送し、前記退避バッファに退避されてい
    るデータが無くなったときに前記フラグをリセットする
    データリストア手段と、 をさらに備えたことを特徴とする請求項1記載のキュー
    装置。
  3. 【請求項3】 前記退避バッファの残り容量が予め定め
    られた第3の閾値よりも少なくなったことを検出し、該
    検出時に特定の信号を発生する第3の検出手段を、 さらに備えたことを特徴とする請求項1記載のキュー装
    置。
  4. 【請求項4】 パケットが格納されるFIFOバッファ
    と、 該FIFOバッファに格納されるパケットの個数を計数
    する計数手段と、 を備えたことを特徴とするキュー装置。
  5. 【請求項5】 前記FIFOバッファに書き込まれるパ
    ケットのデータが退避される退避バッファと、 該退避バッファにパケットデータが退避されているか否
    かを示すフラグと、 前記FIFOバッファの残り容量が予め定められた第1
    の閾値よりも少なくなったことを検出する第1の検出手
    段と、 該第1の検出手段により前記FIFOバッファの残り容
    量が前記第1の閾値よりも少なくなったことが検出され
    ると、その後のFIFOバッファに対する書き込みデー
    タを前記退避バッファに退避させると共に前記フラグを
    セットさせ、該フラグがセットされている状態の間、上
    記FIFOバッファに対する書き込みデータを前記退避
    バッファの方に書き込むパケットデータ退避手段と、 をさらに備えたことを特徴とする請求項4記載のキュー
    装置。
  6. 【請求項6】 前記フラグがセットされている状態のと
    きに、前記計数手段の計数値が予め定められた第2の閾
    値よりも少なくなったことを検出する第2の検出手段
    と、 該第2の検出手段により前記FIFOバッファに格納さ
    れているパケット数が上記第2の閾値よりも少なくなっ
    たことが検出された際、前記退避バッファに退避されて
    いたデータを上記FIFOバッファに転送し、前記退避
    バッファに退避されているデータが無くなったときに前
    記フラグをリセットするデータリストア手段と、 をさらに備えたことを特徴とする請求項5記載のキュー
    装置。
  7. 【請求項7】 前記計数手段の計数値を参照して、前記
    FIFOバッファ内に完結しているパケットデータが存
    在するか否かを検出するパケット完結検出手段を、 さらに備えたことを特徴とする請求項4記載のキュー装
    置。
  8. 【請求項8】 前記FIFOバッファに格納される各パ
    ケットデータには、該パケットデータが当該パケットの
    最後のデータであるか否かを示す情報が設定されたビッ
    トが付加されること、 を特徴とする請求項4記載のキュー装置。
  9. 【請求項9】 パケットサイズを示す情報が設定されて
    いるデータを有するパケットが格納されるFIFOバッ
    ファと、 前記FIFOバッファ内に格納されているパケットデー
    タの個数を計数する計数手段と、 該計数手段の計数値と、前記FIFOバッファの先頭に
    格納されているパケットの上記パケットサイズ情報が設
    定されているデータとを入力して、前記FIFOバッフ
    ァ内に完結しているパケットが存在するか否かを検出す
    るパケット完結検出手段と、 を備えたことを特徴とするキュー装置。
  10. 【請求項10】 前記FIFOバッファに書き込まれる
    パケットのデータが退避される退避バッファと、 該退避バッファにパケットデータが退避されているか否
    かを示すフラグと、 前記FIFOバッファの残り容量が予め定められた第1
    の閾値よりも少なくなったことを検出する第1の検出手
    段と、 該第1の検出手段により前記FIFOバッファの残り容
    量が前記第1の閾値よりも少なくなったことが検出され
    ると、その後の上記FIFOバッファに対する書き込み
    データを前記退避バッファに退避させると共に前記フラ
    グをセットさせ、該フラグがセットされている状態の
    間、上記FIFOバッファに対する書き込みデータを前
    記退避バッファの方に書き込むパケットデータ退避手段
    と、 をさらに備えたことを特徴とする請求項9記載のキュー
    装置。
  11. 【請求項11】 前記フラグがセットされている状態の
    ときに、前記計数手段の計数値が予め定められた第2の
    閾値よりも少なくなったことを検出する第2の検出手段
    と、 該第2の検出手段によりFIFOバッファの残り容量が
    上記第2の閾値よりも少なくなったことが検出された
    際、前記退避バッファに退避されていたデータを上記F
    IFOバッファに転送し、前記退避バッファに退避され
    ているデータが無くなったときに前記フラグをリセット
    するデータリストア手段と、 をさらに備えたことを特徴とする請求項10記載のキュ
    ー装置。
  12. 【請求項12】 複数のプロセスによってパケットが書
    き込まれるFIFOバッファと、 記憶手段と、 プロセスAが上記FIFOバッファにパケットを書き込
    んでいる途中で別のプロセスBに実行権が切り換えられ
    た際、上記プロセスAが書き込んだ未完結のパケットデ
    ータを上記FIFOバッファから取り出し上記記憶手段
    に退避させるデータ退避手段と、 再び前記プロセスAに実行権が移行した際、該プロセス
    Aの実行開始前に前記記憶手段に退避させておいたパケ
    ットデータを前記FIFOバッファに転送させるデータ
    リストア手段と、 を備えたことを特徴とするキュー装置。
JP16848294A 1994-07-20 1994-07-20 キュー装置 Expired - Fee Related JP3810449B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP16848294A JP3810449B2 (ja) 1994-07-20 1994-07-20 キュー装置
US08/967,219 US5892979A (en) 1994-07-20 1997-10-29 Queue control apparatus including memory to save data received when capacity of queue is less than a predetermined threshold

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16848294A JP3810449B2 (ja) 1994-07-20 1994-07-20 キュー装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005029027A Division JP3989493B2 (ja) 2005-02-04 2005-02-04 キュー装置

Publications (2)

Publication Number Publication Date
JPH0836877A true JPH0836877A (ja) 1996-02-06
JP3810449B2 JP3810449B2 (ja) 2006-08-16

Family

ID=15868918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16848294A Expired - Fee Related JP3810449B2 (ja) 1994-07-20 1994-07-20 キュー装置

Country Status (2)

Country Link
US (1) US5892979A (ja)
JP (1) JP3810449B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256200A (ja) * 2000-02-11 2001-09-21 Canon Inc Fifo管理方法及びパイプラインプロセサシステム
CN100369019C (zh) * 2005-01-10 2008-02-13 英业达股份有限公司 电子资料封包队列处理管制方法及系统
JP2010231719A (ja) * 2009-03-30 2010-10-14 Nec Computertechno Ltd データ転送方法
JP2010244583A (ja) * 2010-08-02 2010-10-28 Fujitsu Ltd ストレージシステム
JP2012073906A (ja) * 2010-09-29 2012-04-12 Canon Inc 情報処理装置、及び、プロセッサ間通信制御方法
US9032161B2 (en) 2008-07-31 2015-05-12 Fujitsu Limited Storage system control method
JP2016012283A (ja) * 2014-06-30 2016-01-21 富士通株式会社 情報処理装置、情報処理システム及び割込装置制御方法
US9280298B2 (en) 2013-03-15 2016-03-08 Kabushiki Kaisha Toshiba Storage device and storage system
JP2017162048A (ja) * 2016-03-08 2017-09-14 三菱電機株式会社 バッファリングシステム

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974482A (en) * 1996-09-20 1999-10-26 Honeywell Inc. Single port first-in-first-out (FIFO) device having overwrite protection and diagnostic capabilities
US6477584B1 (en) * 1997-03-21 2002-11-05 Lsi Logic Corporation Message FIFO empty early warning method
US6044419A (en) * 1997-09-30 2000-03-28 Intel Corporation Memory handling system that backfills dual-port buffer from overflow buffer when dual-port buffer is no longer full
US6289464B1 (en) * 1998-01-07 2001-09-11 Microsoft Corporation Receiving wireless information on a mobile device with reduced power consumption
US6098122A (en) * 1998-03-27 2000-08-01 International Business Machines Corporation Method and apparatus for adaptively blocking outgoing communication requests and adjusting the blocking factor according to the volume of requests being received in an information handling system
US6101575A (en) * 1998-10-20 2000-08-08 Hewlett-Packard Company Tape drive data buffering
JP4112717B2 (ja) * 1998-12-10 2008-07-02 日本テキサス・インスツルメンツ株式会社 データ処理装置
FR2787600B1 (fr) * 1998-12-17 2001-11-16 St Microelectronics Sa Memoire tampon associee a plusieurs canaux de communication de donnees
US6662076B1 (en) * 1999-02-10 2003-12-09 Advanced Micro Devices, Inc. Management of move requests from a factory system to an automated material handling system
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
HK1046049A1 (zh) 1999-09-01 2002-12-20 Intel Corporation 用於多线程处理器的分支指令
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
US6651074B1 (en) * 1999-12-20 2003-11-18 Emc Corporation Method and apparatus for storage and retrieval of very large databases using a direct pipe
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US7620702B1 (en) * 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6557053B1 (en) * 2000-01-04 2003-04-29 International Business Machines Corporation Queue manager for a buffer
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
AU765490B2 (en) * 2000-02-11 2003-09-18 Canon Kabushiki Kaisha FIFO overflow management
US6671835B1 (en) 2000-05-15 2003-12-30 International Business Machines Corporation Error detection in digital scanning device having parallel data streams
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US7020871B2 (en) 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US20020112061A1 (en) * 2001-02-09 2002-08-15 Fu-Tai Shih Web-site admissions control with denial-of-service trap for incomplete HTTP requests
US6654861B2 (en) * 2001-07-18 2003-11-25 Smart Matic Corp. Method to manage multiple communication queues in an 8-bit microcontroller
US6987775B1 (en) * 2001-08-15 2006-01-17 Internet Machines Corp. Variable size First In First Out (FIFO) memory with head and tail caching
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
EP1313284B1 (de) * 2001-08-29 2005-08-10 Alcatel Router
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
JP2003157228A (ja) * 2001-11-20 2003-05-30 Fujitsu Ltd データ転送回路
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7930341B1 (en) * 2001-12-26 2011-04-19 Marvell Israel (M.I.S.L.) Ltd. Extended flow-control for long-distance links
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6967951B2 (en) 2002-01-11 2005-11-22 Internet Machines Corp. System for reordering sequenced based packets in a switching network
US6934951B2 (en) 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7149226B2 (en) 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7093038B2 (en) * 2002-05-06 2006-08-15 Ivivity, Inc. Application program interface-access to hardware services for storage management applications
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value
US7471688B2 (en) * 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) * 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7054972B2 (en) * 2002-12-13 2006-05-30 Lsi Logic Corporation Apparatus and method for dynamically enabling and disabling interrupt coalescing in data processing system
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
JP4338989B2 (ja) * 2003-02-20 2009-10-07 パナソニック株式会社 メモリデバイス
US20040184450A1 (en) * 2003-03-19 2004-09-23 Abdu H. Omran Method and system for transport and routing of packets over frame-based networks
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
JP4376040B2 (ja) 2003-11-27 2009-12-02 株式会社日立製作所 複数のプロセッサを用いて情報処理を行う装置及び方法
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
GB0404696D0 (en) * 2004-03-02 2004-04-07 Level 5 Networks Ltd Dual driver interface
US7380080B2 (en) * 2004-05-17 2008-05-27 Hewlett-Packard Development Company, L.P. Calculating unneeded data storage credits for a data transmission to a pair of storage devices
FR2874103B1 (fr) * 2004-08-03 2006-11-17 Trango Systems Sarl Utilisation de la mmu pour la detection de borne de memoire tampon
US7461183B2 (en) * 2004-08-03 2008-12-02 Lsi Corporation Method of processing a context for execution
US8924662B2 (en) * 2005-01-10 2014-12-30 Hewlett-Packard Development Company, L.P. Credit-based storage device flow control
US8255599B2 (en) * 2006-03-28 2012-08-28 Integrated Device Technology Inc. Packets transfer device having data absorbing buffers with elastic buffer capacities
US8032341B2 (en) 2007-01-04 2011-10-04 Fisher-Rosemount Systems, Inc. Modeling a process using a composite model comprising a plurality of regression models
JPWO2010122613A1 (ja) * 2009-04-24 2012-10-22 パナソニック株式会社 Fifoバッファ装置
US10725997B1 (en) * 2012-06-18 2020-07-28 EMC IP Holding Company LLC Method and systems for concurrent collection and generation of shared data
US8825927B2 (en) * 2012-09-04 2014-09-02 Advanced Micro Devices, Inc. Systems and methods for managing queues
US10944683B1 (en) * 2017-05-25 2021-03-09 Amazon Technologies, Inc. Hybrid queue system for request throttling
KR20230034634A (ko) * 2021-09-03 2023-03-10 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US20240054016A1 (en) * 2022-08-11 2024-02-15 Next Silicon Ltd Accelerated memory allocation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4563762A (en) * 1981-06-15 1986-01-07 General Signal Corp. Vital communication system for transmitting multiple messages
US4603382A (en) * 1984-02-27 1986-07-29 International Business Machines Corporation Dynamic buffer reallocation
US4920534A (en) * 1986-02-28 1990-04-24 At&T Bell Laboratories System for controllably eliminating bits from packet information field based on indicator in header and amount of data in packet buffer
JP2753254B2 (ja) * 1988-04-06 1998-05-18 株式会社日立製作所 パケツト交換システム
US5526128A (en) * 1989-06-19 1996-06-11 Matsushita Electric Industrial Co., Ltd. Image producing apparatus with memory unit having an image memory area of changeable storage capacity
US5088091A (en) * 1989-06-22 1992-02-11 Digital Equipment Corporation High-speed mesh connected local area network
US5138615A (en) * 1989-06-22 1992-08-11 Digital Equipment Corporation Reconfiguration system and method for high-speed mesh connected local area network
US5179662A (en) * 1989-08-31 1993-01-12 International Business Machines Corporation Optimized i/o buffers having the ability to increase or decrease in size to meet system requirements
US5412801A (en) * 1990-01-17 1995-05-02 E-Net Gap recovery for off-site data storage and recovery systems
US5210749A (en) * 1990-05-29 1993-05-11 Advanced Micro Devices, Inc. Configuration of srams as logical fifos for transmit and receive of packet data
US5218670A (en) * 1990-08-31 1993-06-08 Texas Instruments Incorporated Apparatus and methods for the handling of banded frame buffer overflows
JPH04205345A (ja) * 1990-11-30 1992-07-27 Toshiba Corp 画像形成装置
US5426639A (en) * 1991-11-29 1995-06-20 At&T Corp. Multiple virtual FIFO arrangement
US5361372A (en) * 1991-12-27 1994-11-01 Digital Equipment Corporation Memory management for data transmission networks
US5640599A (en) * 1991-12-30 1997-06-17 Apple Computer, Inc. Interconnect system initiating data transfer over launch bus at source's clock speed and transfering data over data path at receiver's clock speed
US5412782A (en) * 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5701482A (en) * 1993-09-03 1997-12-23 Hughes Aircraft Company Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes
JPH07200432A (ja) * 1993-12-17 1995-08-04 Internatl Business Mach Corp <Ibm> データ通信方法及びシステム連結装置
US5463732A (en) * 1994-05-13 1995-10-31 David Sarnoff Research Center, Inc. Method and apparatus for accessing a distributed data buffer

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256200A (ja) * 2000-02-11 2001-09-21 Canon Inc Fifo管理方法及びパイプラインプロセサシステム
CN100369019C (zh) * 2005-01-10 2008-02-13 英业达股份有限公司 电子资料封包队列处理管制方法及系统
US9032161B2 (en) 2008-07-31 2015-05-12 Fujitsu Limited Storage system control method
US9128621B2 (en) 2008-07-31 2015-09-08 Fujitsu Limited Storage system control method
JP2010231719A (ja) * 2009-03-30 2010-10-14 Nec Computertechno Ltd データ転送方法
JP2010244583A (ja) * 2010-08-02 2010-10-28 Fujitsu Ltd ストレージシステム
JP2012073906A (ja) * 2010-09-29 2012-04-12 Canon Inc 情報処理装置、及び、プロセッサ間通信制御方法
US9280298B2 (en) 2013-03-15 2016-03-08 Kabushiki Kaisha Toshiba Storage device and storage system
JP2016012283A (ja) * 2014-06-30 2016-01-21 富士通株式会社 情報処理装置、情報処理システム及び割込装置制御方法
JP2017162048A (ja) * 2016-03-08 2017-09-14 三菱電機株式会社 バッファリングシステム

Also Published As

Publication number Publication date
JP3810449B2 (ja) 2006-08-16
US5892979A (en) 1999-04-06

Similar Documents

Publication Publication Date Title
JPH0836877A (ja) キュー装置
US20070220361A1 (en) Method and apparatus for guaranteeing memory bandwidth for trace data
US6700582B2 (en) Method and system for buffer management
EP1989620A2 (en) Processing of high priority data elements in systems comprising a host processor and a co-processor
JP4376787B2 (ja) イベント通知方法、デバイス及びプロセッサシステム
CN112767978B (zh) 一种ddr命令调度方法、装置、设备及介质
JP3420091B2 (ja) マイクロプロセッサ
US7249237B2 (en) Control method for data transfer control unit
JP3989493B2 (ja) キュー装置
JP4536189B2 (ja) Dma転送装置及びdma転送システム
JP2001022718A (ja) 並列処理装置
US7203803B2 (en) Overflow protected first-in first-out architecture
JP2848099B2 (ja) 多重ドライブ制御方式
JP2007299126A (ja) 制御装置及び制御装置用プログラム
JPH0546407A (ja) スタツク管理システム
JP3467188B2 (ja) 多重化バスの順序保証システム
CN121326409A (zh) 处理器系统以及中断响应方法
JP2830239B2 (ja) 入力表示制御装置
JPH09190334A (ja) データ転送速度差吸収方式
JP2005209163A (ja) メモリシステム制御方法
US20070074013A1 (en) Dynamic retention of hardware register content in a computer system
JPS61156454A (ja) デ−タ転送制御装置
JPH04156645A (ja) 半導体集積回路装置
JPH01194043A (ja) 電子計算機
JPS63153650A (ja) メモリダンプ方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051021

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060524

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100602

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110602

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120602

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees