JP2001306482A - 入出力制御方法および装置 - Google Patents
入出力制御方法および装置Info
- Publication number
- JP2001306482A JP2001306482A JP2000115994A JP2000115994A JP2001306482A JP 2001306482 A JP2001306482 A JP 2001306482A JP 2000115994 A JP2000115994 A JP 2000115994A JP 2000115994 A JP2000115994 A JP 2000115994A JP 2001306482 A JP2001306482 A JP 2001306482A
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- state
- buffer
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Systems (AREA)
Abstract
(57)【要約】
【課題】 受信バッファの使用効率を向上し、小容量の
受信バッファでも好適にデータ転送を行えるようにす
る。 【解決手段】 各入出力装置とのファイバ・チャネル−
クラス4による接続状態がDormant状態かLive状態かを
管理し、Dormant状態の入出力装置ごとに、Dormant状態
からLive状態へ遷移するのに必要なパラメータを格納で
きる程度の小容量を動的に割り当て、残りの領域をLive
状態の入出力装置からのデータを格納する領域として割
り当てる。 【効果】 受信バッファを小容量化できることから、内
部メモリを使用でき、大容量の外付けメモリを必要とし
ない。よって、部品点数を減らすことが出来ると共にチ
ップ面積を小さくすることが出来る。
受信バッファでも好適にデータ転送を行えるようにす
る。 【解決手段】 各入出力装置とのファイバ・チャネル−
クラス4による接続状態がDormant状態かLive状態かを
管理し、Dormant状態の入出力装置ごとに、Dormant状態
からLive状態へ遷移するのに必要なパラメータを格納で
きる程度の小容量を動的に割り当て、残りの領域をLive
状態の入出力装置からのデータを格納する領域として割
り当てる。 【効果】 受信バッファを小容量化できることから、内
部メモリを使用でき、大容量の外付けメモリを必要とし
ない。よって、部品点数を減らすことが出来ると共にチ
ップ面積を小さくすることが出来る。
Description
【0001】
【発明の属する技術分野】本発明は、入出力制御方法お
よび装置に関し、さらに詳しくは、受信バッファの使用
効率を向上し、小容量の受信バッファでも好適にデータ
転送を行うことが出来るようにした入出力制御方法およ
び装置に関する。
よび装置に関し、さらに詳しくは、受信バッファの使用
効率を向上し、小容量の受信バッファでも好適にデータ
転送を行うことが出来るようにした入出力制御方法およ
び装置に関する。
【0002】
【従来の技術】複数の入出力装置と同時かつ並列にデー
タ転送を行う従来技術として、ANSIスタンダードの
ファイバ・チャネル−クラス2がある。
タ転送を行う従来技術として、ANSIスタンダードの
ファイバ・チャネル−クラス2がある。
【0003】ファイバ・チャネル−クラス2は、データ
転送の単位であるフレーム毎にコネクションが確立/終
了する2つのNポート(ノードのポート)間のデータ転
送を行うサービスである。なお、ファイバ・チャネルに
おいて、ホストコンピュータや磁気ディスク装置等をノ
ードと呼ぶ。
転送の単位であるフレーム毎にコネクションが確立/終
了する2つのNポート(ノードのポート)間のデータ転
送を行うサービスである。なお、ファイバ・チャネルに
おいて、ホストコンピュータや磁気ディスク装置等をノ
ードと呼ぶ。
【0004】ファイバ・チャネル−クラス2におけるフ
ロー制御には、Nポート間においてフレーム転送を調整
するためのエンド・ツ・エンド(end to end)・フロー
制御と、隣接するノード間のフレーム転送の調整をする
ためのバッファ・ツ・バッファ(buffer to buffer)・
フロー制御の2種類がある。
ロー制御には、Nポート間においてフレーム転送を調整
するためのエンド・ツ・エンド(end to end)・フロー
制御と、隣接するノード間のフレーム転送の調整をする
ためのバッファ・ツ・バッファ(buffer to buffer)・
フロー制御の2種類がある。
【0005】エンド・ツ・エンド・フロー制御は、通信
するNポート間で行い、途中にあるファブリックは関与
しない。また、Nポート間の接続距離に応じて最大転送
速度を達成できるように、予めエンド・ツ・エンドで送
信可能なフレーム数を示すEEクレジットの値を調整す
る。送信側Nポートは、EEクレジットが「0」より大
きく且つ送信したデータフレーム数を示すEEクレジッ
ト_CNTがEEクレジットよりも小さいときのみデー
タフレームを送信できる。また、送信側Nポートは、デ
ータフレームを送信するごとにEEクレジット_CNT
を「1」づつ加算し、受信側NポートからACKフレー
ムを受信すると、EEクレジット_CNTを「1」ずつ
減算する。ここで、ACKフレームとは、受信側Nポー
トが受信したデータフレームに対する処理が終了したこ
とを送信側Nポートに通知するフレームである。
するNポート間で行い、途中にあるファブリックは関与
しない。また、Nポート間の接続距離に応じて最大転送
速度を達成できるように、予めエンド・ツ・エンドで送
信可能なフレーム数を示すEEクレジットの値を調整す
る。送信側Nポートは、EEクレジットが「0」より大
きく且つ送信したデータフレーム数を示すEEクレジッ
ト_CNTがEEクレジットよりも小さいときのみデー
タフレームを送信できる。また、送信側Nポートは、デ
ータフレームを送信するごとにEEクレジット_CNT
を「1」づつ加算し、受信側NポートからACKフレー
ムを受信すると、EEクレジット_CNTを「1」ずつ
減算する。ここで、ACKフレームとは、受信側Nポー
トが受信したデータフレームに対する処理が終了したこ
とを送信側Nポートに通知するフレームである。
【0006】バッファ・ツ・バッファ・フロー制御は、
R−RDYプリミティブシグナルを利用する。各ノード
は、隣接するノードの受信バッファの数を意味するBB
クレジットを保持する。このBBクレジットは、R−R
DYプリミティブシグナルが返る前に送信してよいフレ
ーム数を示す。すなわち、送信側ノードは、送信したデ
ータフレーム数を示すBBクレジット_CNTがBBク
レジットより小さいときのみデータフレームを送信でき
る。また、送信側ノードは、データフレームを送信する
ごとにBBクレジット_CNTを「1」ずつ加算し、R
−RDYプリミティブシグナルを受信するごとにBBク
レジット_CNTを「1」ずつ減算する。
R−RDYプリミティブシグナルを利用する。各ノード
は、隣接するノードの受信バッファの数を意味するBB
クレジットを保持する。このBBクレジットは、R−R
DYプリミティブシグナルが返る前に送信してよいフレ
ーム数を示す。すなわち、送信側ノードは、送信したデ
ータフレーム数を示すBBクレジット_CNTがBBク
レジットより小さいときのみデータフレームを送信でき
る。また、送信側ノードは、データフレームを送信する
ごとにBBクレジット_CNTを「1」ずつ加算し、R
−RDYプリミティブシグナルを受信するごとにBBク
レジット_CNTを「1」ずつ減算する。
【0007】上記ファイバ・チャネル−クラス2の他
に、複数の入出力装置と同時かつ並列にデータ転送を行
う従来技術として、ファイバ・チャネル−クラス4があ
る。
に、複数の入出力装置と同時かつ並列にデータ転送を行
う従来技術として、ファイバ・チャネル−クラス4があ
る。
【0008】ファイバ・チャネル−クラス4は、ファブ
リック(ファイバ・チャネル・スイッチ)と共に使用さ
れるコネクション指向のサービスであり、2つのNポー
トの間にVirtual Circuitと呼ばれるコネクション状態
を確立し、通信を行う。各Virtual Circuitは、それぞ
れ異なる通信を規定するパラメータを持つ。一つのNポ
ートには、最大「254」のVirtual Circuitを確立で
き、それぞれに異なるIDを割付ける。このIDを、V
C_IDと呼ぶ。VC_IDは、データ転送時、データ
フレームのヘッダ部に示される。このVC_IDを参照
することで、Virtual Circuitを特定することが出来
る。
リック(ファイバ・チャネル・スイッチ)と共に使用さ
れるコネクション指向のサービスであり、2つのNポー
トの間にVirtual Circuitと呼ばれるコネクション状態
を確立し、通信を行う。各Virtual Circuitは、それぞ
れ異なる通信を規定するパラメータを持つ。一つのNポ
ートには、最大「254」のVirtual Circuitを確立で
き、それぞれに異なるIDを割付ける。このIDを、V
C_IDと呼ぶ。VC_IDは、データ転送時、データ
フレームのヘッダ部に示される。このVC_IDを参照
することで、Virtual Circuitを特定することが出来
る。
【0009】Virtual Circuitの状態として、次の4つ
の状態が定義されている。 (1)Virtual Circuitが存在しない状態を示すNonexis
ting状態 (2)コネクションを確立中の状態を示すPending状態 (3)コネクションが確立されているが、データ転送が
休止中であるDormant状態 (4)コネクションが確立しており且つデータ転送が可
能であるLive状態
の状態が定義されている。 (1)Virtual Circuitが存在しない状態を示すNonexis
ting状態 (2)コネクションを確立中の状態を示すPending状態 (3)コネクションが確立されているが、データ転送が
休止中であるDormant状態 (4)コネクションが確立しており且つデータ転送が可
能であるLive状態
【0010】ファイバ・チャネル−クラス4におけるフ
ロー制御は、Fポート(ファブリックのポート)がVirt
ual Circuitに割り付けた受信バッファ数を示すVCク
レジットおよびファイバ・チャネル−クラス4における
EEクレジットを示すEEC4クレジットを用いて行わ
れる。
ロー制御は、Fポート(ファブリックのポート)がVirt
ual Circuitに割り付けた受信バッファ数を示すVCク
レジットおよびファイバ・チャネル−クラス4における
EEクレジットを示すEEC4クレジットを用いて行わ
れる。
【0011】
【発明が解決しようとする課題】上記ファイバ・チャネ
ル−クラス2におけるバッファ・ツ・バッファ・フロー
制御では、受信バッファを面単位で使用するため、受信
バッファ使用効率が悪い。また、サイズの小さいデータ
フレームも大きいデータフレームと同じくBBクレジッ
トを1つ消費するため、転送効率が悪い。このため、特
に、多数のノード間のデータ転送を同時かつ並列に行う
場合に、上記受信バッファ使用効率の悪化や転送効率の
悪化が顕著となる問題点があった。この対策として、外
付けのメモリを使って受信バッファを大容量化し、デー
タ転送を同時かつ並列に行うノード数に見合った受信バ
ッファ容量を確保することが考えられるが、外付けのメ
モリを使うと部品点数の増加によりコストが増大した
り、外付けのメモリに対して十分なデータ転送レートを
確保するためにビット数の大きいバスや制御信号を採用
することでLSIのピン数を消費するなどの別の問題点
が発生する。
ル−クラス2におけるバッファ・ツ・バッファ・フロー
制御では、受信バッファを面単位で使用するため、受信
バッファ使用効率が悪い。また、サイズの小さいデータ
フレームも大きいデータフレームと同じくBBクレジッ
トを1つ消費するため、転送効率が悪い。このため、特
に、多数のノード間のデータ転送を同時かつ並列に行う
場合に、上記受信バッファ使用効率の悪化や転送効率の
悪化が顕著となる問題点があった。この対策として、外
付けのメモリを使って受信バッファを大容量化し、デー
タ転送を同時かつ並列に行うノード数に見合った受信バ
ッファ容量を確保することが考えられるが、外付けのメ
モリを使うと部品点数の増加によりコストが増大した
り、外付けのメモリに対して十分なデータ転送レートを
確保するためにビット数の大きいバスや制御信号を採用
することでLSIのピン数を消費するなどの別の問題点
が発生する。
【0012】一方、ファイバ・チャネル−クラス4にお
いて、Virtual CircuitがNonexisting状態およびPendin
g状態では受信バッファを確保しておく必要がない。ま
た、Dormant状態では、Dormant状態からLive状態へ遷移
するために必要なパラメータが受信できる程度の比較的
小さな受信バッファ容量が確保されていればよい。従っ
て、Live状態の時だけ比較的大きな受信バッファ容量を
確保できればよい。しかしながら、従来は、Virtual Ci
rcuitの状態に応じた受信バッファの制御が行われてお
らず、受信バッファ使用効率が悪い問題点があった。そ
こで、本発明の目的は、受信バッファの使用効率を向上
し、小容量の受信バッファでも好適にデータ転送を行う
ことが出来るようにした入出力制御方法および装置を提
供することにある。
いて、Virtual CircuitがNonexisting状態およびPendin
g状態では受信バッファを確保しておく必要がない。ま
た、Dormant状態では、Dormant状態からLive状態へ遷移
するために必要なパラメータが受信できる程度の比較的
小さな受信バッファ容量が確保されていればよい。従っ
て、Live状態の時だけ比較的大きな受信バッファ容量を
確保できればよい。しかしながら、従来は、Virtual Ci
rcuitの状態に応じた受信バッファの制御が行われてお
らず、受信バッファ使用効率が悪い問題点があった。そ
こで、本発明の目的は、受信バッファの使用効率を向上
し、小容量の受信バッファでも好適にデータ転送を行う
ことが出来るようにした入出力制御方法および装置を提
供することにある。
【0013】
【課題を解決するための手段】第1の観点では、本発明
は、複数の入出力装置から受信したデータを受信バッフ
ァに格納する際に、各入出力装置との接続状態に応じて
該入出力装置に割り当てる受信バッファの領域サイズを
動的に制御することを特徴とする入出力制御方法を提供
する。先にファイバ・チャネル−クラス4について説明
したように、各入出力装置との接続状態によって受信バ
ッファで必要な容量が異なる場合がある。そこで、上記
第1の観点の入出力制御方法では、各入出力装置との接
続状態に応じて該入出力装置に割り当てる受信バッファ
の領域サイズを動的に制御するようにした。これによ
り、不必要に大きな容量が割り当てられることがないた
め、受信バッファの使用効率を向上でき、小容量の受信
バッファでも好適にデータ転送を行うことが出来るよう
になる。
は、複数の入出力装置から受信したデータを受信バッフ
ァに格納する際に、各入出力装置との接続状態に応じて
該入出力装置に割り当てる受信バッファの領域サイズを
動的に制御することを特徴とする入出力制御方法を提供
する。先にファイバ・チャネル−クラス4について説明
したように、各入出力装置との接続状態によって受信バ
ッファで必要な容量が異なる場合がある。そこで、上記
第1の観点の入出力制御方法では、各入出力装置との接
続状態に応じて該入出力装置に割り当てる受信バッファ
の領域サイズを動的に制御するようにした。これによ
り、不必要に大きな容量が割り当てられることがないた
め、受信バッファの使用効率を向上でき、小容量の受信
バッファでも好適にデータ転送を行うことが出来るよう
になる。
【0014】第2の観点では、本発明は、複数の入出力
装置から受信したデータを受信バッファに格納する入出
力制御装置であって、前記各入出力装置との接続状態を
管理する接続状態管理手段と、前記接続状態に応じて各
入出力装置に割り当てる受信バッファの領域サイズを動
的に制御するバッファ制御手段とを具備したことを特徴
とする入出力制御装置を提供する。上記第2の観点の入
出力制御装置では、各入出力装置との接続状態を管理
し、接続状態に応じて該入出力装置に割り当てる受信バ
ッファの領域サイズを動的に制御する。これにより、不
必要に大きな容量が割り当てられることがないため、受
信バッファの使用効率を向上でき、小容量の受信バッフ
ァでも好適にデータ転送を行うことが出来る。
装置から受信したデータを受信バッファに格納する入出
力制御装置であって、前記各入出力装置との接続状態を
管理する接続状態管理手段と、前記接続状態に応じて各
入出力装置に割り当てる受信バッファの領域サイズを動
的に制御するバッファ制御手段とを具備したことを特徴
とする入出力制御装置を提供する。上記第2の観点の入
出力制御装置では、各入出力装置との接続状態を管理
し、接続状態に応じて該入出力装置に割り当てる受信バ
ッファの領域サイズを動的に制御する。これにより、不
必要に大きな容量が割り当てられることがないため、受
信バッファの使用効率を向上でき、小容量の受信バッフ
ァでも好適にデータ転送を行うことが出来る。
【0015】第3の観点では、本発明は、上記第2の観
点の入出力制御装置において、前記バッファ制御手段
は、受信バッファの空き容量を監視し、空き容量が不十
分になったときは入出力装置に対する応答を抑止するこ
とを特徴とする入出力制御装置を提供する。上記第3の
観点の入出力制御装置では、受信バッファの空き容量が
不十分になったときは入出力装置に対する応答を抑止す
るため、新たなデータを受信してデータオーバーランを
生じることを防止できる。
点の入出力制御装置において、前記バッファ制御手段
は、受信バッファの空き容量を監視し、空き容量が不十
分になったときは入出力装置に対する応答を抑止するこ
とを特徴とする入出力制御装置を提供する。上記第3の
観点の入出力制御装置では、受信バッファの空き容量が
不十分になったときは入出力装置に対する応答を抑止す
るため、新たなデータを受信してデータオーバーランを
生じることを防止できる。
【0016】第4の観点では、本発明は、上記第2また
は第3の観点の入出力制御装置において、該入出力制御
装置は前記複数の入出力装置とファイバ・チャネルで接
続され、前記接続状態管理手段は、各入出力装置との接
続状態がDormant状態かLive状態かを管理し、前記バッ
ファ制御手段は、Dormant状態の入出力装置ごとに、Dor
mant状態からLive状態へ遷移するのに必要なパラメータ
を格納できる程度の小容量を動的に割り当て、残りの領
域をLive状態の入出力装置からのデータを格納する領域
として割り当てることを特徴とする入出力制御装置を提
供する。先にファイバ・チャネル−クラス4について説
明したように、各入出力装置との接続状態がDormant状
態とLive状態とでは、受信バッファで必要な容量が異な
る。そこで、上記第4の観点の入出力制御装置では、Do
rmant状態かLive状態かに応じて各入出力装置に割り当
てる受信バッファの領域サイズを動的に制御するように
した。これにより、不必要に大きな容量が割り当てられ
ることがないため、受信バッファの使用効率を向上で
き、小容量の受信バッファでも好適にデータ転送を行う
ことが出来るようになる。
は第3の観点の入出力制御装置において、該入出力制御
装置は前記複数の入出力装置とファイバ・チャネルで接
続され、前記接続状態管理手段は、各入出力装置との接
続状態がDormant状態かLive状態かを管理し、前記バッ
ファ制御手段は、Dormant状態の入出力装置ごとに、Dor
mant状態からLive状態へ遷移するのに必要なパラメータ
を格納できる程度の小容量を動的に割り当て、残りの領
域をLive状態の入出力装置からのデータを格納する領域
として割り当てることを特徴とする入出力制御装置を提
供する。先にファイバ・チャネル−クラス4について説
明したように、各入出力装置との接続状態がDormant状
態とLive状態とでは、受信バッファで必要な容量が異な
る。そこで、上記第4の観点の入出力制御装置では、Do
rmant状態かLive状態かに応じて各入出力装置に割り当
てる受信バッファの領域サイズを動的に制御するように
した。これにより、不必要に大きな容量が割り当てられ
ることがないため、受信バッファの使用効率を向上で
き、小容量の受信バッファでも好適にデータ転送を行う
ことが出来るようになる。
【0017】第5の観点では、本発明は、上記第4の観
点の入出力制御装置において、Live状態の入出力装置か
らのデータを格納する領域には、データを受信順に格納
することを特徴とする入出力制御装置を提供する。上記
第5の観点の入出力制御装置では、Dormant状態では入
出力装置ごとにデータを格納するが、Live状態では受信
順にデータを格納する。これにより、必要な容量が最適
に割り当てられるため、受信バッファの使用効率を向上
でき、小容量の受信バッファでも好適にデータ転送を行
うことが出来るようになる。
点の入出力制御装置において、Live状態の入出力装置か
らのデータを格納する領域には、データを受信順に格納
することを特徴とする入出力制御装置を提供する。上記
第5の観点の入出力制御装置では、Dormant状態では入
出力装置ごとにデータを格納するが、Live状態では受信
順にデータを格納する。これにより、必要な容量が最適
に割り当てられるため、受信バッファの使用効率を向上
でき、小容量の受信バッファでも好適にデータ転送を行
うことが出来るようになる。
【0018】
【発明の実施の形態】以下、図を用いて本発明の実施の
形態について説明する。なお、これにより本発明が限定
されるものではない。図1は、本発明の一実施形態に係
る入出力制御装置100の構成図である。この入出力制
御装置100は、ファブリックFaからのフレームを受
信しそのフレームをヘッダ部とデータ部とに分けるデー
タ入力レジスタ111と、前記ヘッダ部を格納するヘッ
ダ用受信バッファ103と、前記データ部を格納するデ
ータ用受信バッファ102と、Virtual CircuitがDorma
nt状態であるときの前記データ部の書き込みアドレス4
を与えるDormant用書き込みアドレスレジスタ107_d
と、Virtual CircuitがLive状態であるときの前記デー
タ部の書き込みアドレス4を与えるLive用書き込みアド
レスレジスタ107_lと、前記ヘッド部受信バッファ1
03に格納したヘッダ部を参照してVC_ID1を読み
出して該当するVirtual Circuit状態を示すVC状態2
を出力するVC管理メモリ105と、前記VC状態2に
応じて前記Dormant用書き込みアドレスレジスタ107_
dと前記Live用書き込みアドレスレジスタ107_lの一
方を選択する書き込みアドレスレジスタ選択信号3を出
力するなどするバッファ制御回路104と、前記データ
用受信バッファ102のデータ読み出しアドレスを与え
る読み出しアドレスレジスタ108と、前記データ用バ
ッファ102の使用状況を管理するためのフラグである
バッファ使用状況管理フラグ106と、そのバッファ使
用状況管理フラグ106のフラグの状態に応じてストッ
プアドレスを生成するフラグエンコーダ110と、前記
ストップアドレスを格納するストップアドレスレジスタ
109と、下位デバイスDvとのインタフェース制御を
行う下位デバイス間インタフェース制御回路112と、
前記バッファ制御回路104と前記下位デバイス間イン
タフェース制御回路112を制御しデータ転送全体を制
御する入出力制御回路101とを具備して構成されてい
る。
形態について説明する。なお、これにより本発明が限定
されるものではない。図1は、本発明の一実施形態に係
る入出力制御装置100の構成図である。この入出力制
御装置100は、ファブリックFaからのフレームを受
信しそのフレームをヘッダ部とデータ部とに分けるデー
タ入力レジスタ111と、前記ヘッダ部を格納するヘッ
ダ用受信バッファ103と、前記データ部を格納するデ
ータ用受信バッファ102と、Virtual CircuitがDorma
nt状態であるときの前記データ部の書き込みアドレス4
を与えるDormant用書き込みアドレスレジスタ107_d
と、Virtual CircuitがLive状態であるときの前記デー
タ部の書き込みアドレス4を与えるLive用書き込みアド
レスレジスタ107_lと、前記ヘッド部受信バッファ1
03に格納したヘッダ部を参照してVC_ID1を読み
出して該当するVirtual Circuit状態を示すVC状態2
を出力するVC管理メモリ105と、前記VC状態2に
応じて前記Dormant用書き込みアドレスレジスタ107_
dと前記Live用書き込みアドレスレジスタ107_lの一
方を選択する書き込みアドレスレジスタ選択信号3を出
力するなどするバッファ制御回路104と、前記データ
用受信バッファ102のデータ読み出しアドレスを与え
る読み出しアドレスレジスタ108と、前記データ用バ
ッファ102の使用状況を管理するためのフラグである
バッファ使用状況管理フラグ106と、そのバッファ使
用状況管理フラグ106のフラグの状態に応じてストッ
プアドレスを生成するフラグエンコーダ110と、前記
ストップアドレスを格納するストップアドレスレジスタ
109と、下位デバイスDvとのインタフェース制御を
行う下位デバイス間インタフェース制御回路112と、
前記バッファ制御回路104と前記下位デバイス間イン
タフェース制御回路112を制御しデータ転送全体を制
御する入出力制御回路101とを具備して構成されてい
る。
【0019】次に、入出力制御装置100の動作を説明
する。データ入力レジスタ111は、ファブリックFa
からデータフレームを受信すると、該フレームをヘッダ
部とデータ部とに分け、ヘッダ部をヘッダ用受信バッフ
ァ103に格納する。VC管理メモリ105は、ヘッド
部受信バッファ103に格納されたヘッダ部を参照して
VC_ID1を読み出し、VC状態2を出力する。バッ
ファ制御回路104は、VC状態2がDormant状態を示
すならDormant用書き込みアドレスおよびDormant用書き
込みアドレスレジスタ107_dを選択する選択信号3を
出力し、VC状態2がLive状態を示すならLive用書き込
みアドレスおよびLive用書き込みアドレスレジスタ10
7_lを選択する選択信号3を出力する。
する。データ入力レジスタ111は、ファブリックFa
からデータフレームを受信すると、該フレームをヘッダ
部とデータ部とに分け、ヘッダ部をヘッダ用受信バッフ
ァ103に格納する。VC管理メモリ105は、ヘッド
部受信バッファ103に格納されたヘッダ部を参照して
VC_ID1を読み出し、VC状態2を出力する。バッ
ファ制御回路104は、VC状態2がDormant状態を示
すならDormant用書き込みアドレスおよびDormant用書き
込みアドレスレジスタ107_dを選択する選択信号3を
出力し、VC状態2がLive状態を示すならLive用書き込
みアドレスおよびLive用書き込みアドレスレジスタ10
7_lを選択する選択信号3を出力する。
【0020】前記書き込みアドレスレジスタ選択信号3
により選択されたDormant用書き込みアドレスレジスタ
107_dまたはLive用書き込みアドレスレジスタ107
_lは、書き込みアドレス4を出力する。データ用受信バ
ッファ102は、前記書き込みアドレス4の示す領域
に、前記データ部を書き込む。
により選択されたDormant用書き込みアドレスレジスタ
107_dまたはLive用書き込みアドレスレジスタ107
_lは、書き込みアドレス4を出力する。データ用受信バ
ッファ102は、前記書き込みアドレス4の示す領域
に、前記データ部を書き込む。
【0021】バッファ使用状況管理フラグ106は、前
記書き込みアドレス4の示す領域に対応するフラグに、
「使用中」を示す「1」を設定する。
記書き込みアドレス4の示す領域に対応するフラグに、
「使用中」を示す「1」を設定する。
【0022】VC管理メモリ105は、前記VC_ID
1に該当するVirtual Circuitに割り当てた領域に、前
記書き込みアドレス4を格納する。
1に該当するVirtual Circuitに割り当てた領域に、前
記書き込みアドレス4を格納する。
【0023】入出力制御回路101は、前記VC_ID
1に該当するVirtual Circuitに割り当てた下位デバイ
スDvとのデータ転送指示5を、下位デバイス間インタ
フェース制御回路112に発行する。そして、下位デバ
イス間インタフェース制御回路112で下位デバイスD
vとのデータ転送の準備が完了したら、バッファ制御回
路104に、バッファ読み出し指示6を発行する。その
バッファ読み出し指示6には、データ転送を行うVC_
ID1が含まれている。
1に該当するVirtual Circuitに割り当てた下位デバイ
スDvとのデータ転送指示5を、下位デバイス間インタ
フェース制御回路112に発行する。そして、下位デバ
イス間インタフェース制御回路112で下位デバイスD
vとのデータ転送の準備が完了したら、バッファ制御回
路104に、バッファ読み出し指示6を発行する。その
バッファ読み出し指示6には、データ転送を行うVC_
ID1が含まれている。
【0024】バッファ制御回路104は、前記バッファ
読み出し指示6に含まれているVC_ID1に対応する
読み出しアドレス7をVC管理メモリ105より取得
し、それを読み出しアドレスレジスタ108に設定す
る。
読み出し指示6に含まれているVC_ID1に対応する
読み出しアドレス7をVC管理メモリ105より取得
し、それを読み出しアドレスレジスタ108に設定す
る。
【0025】データ用受信バッファ102は、前記読み
出しアドレス7の示す領域からデータ読み出し9を開始
し、読み出したデータ部を下位デバイス間インタフェー
ス制御回路112に渡す。
出しアドレス7の示す領域からデータ読み出し9を開始
し、読み出したデータ部を下位デバイス間インタフェー
ス制御回路112に渡す。
【0026】入出力制御回路101は、下位デバイスD
vへのデータ転送を終了すると、ACKフレームを送信
する。ただし、後述するACK送信抑止信号8が発行さ
れたときはACKフレームの送信を抑止する。
vへのデータ転送を終了すると、ACKフレームを送信
する。ただし、後述するACK送信抑止信号8が発行さ
れたときはACKフレームの送信を抑止する。
【0027】バッファ使用状況管理フラグ106は、前
記読み出しアドレス7の示す領域に対応するフラグに、
「未使用」を示す「0」を設定する。
記読み出しアドレス7の示す領域に対応するフラグに、
「未使用」を示す「0」を設定する。
【0028】フラグエンコーダ110は、バッファ使用
状況管理フラグ106を参照し、連続する「未使用」を
示す「0」の最後のフラグに対応するアドレスをストッ
プアドレスとして出力する。つまり、ストップアドレス
は、データ用受信バッファ102の空き領域の終端を示
す値である。ストップアドレスレジスタ109は、前記
ストップアドレスを保持し、バッファ制御回路104へ
与える。
状況管理フラグ106を参照し、連続する「未使用」を
示す「0」の最後のフラグに対応するアドレスをストッ
プアドレスとして出力する。つまり、ストップアドレス
は、データ用受信バッファ102の空き領域の終端を示
す値である。ストップアドレスレジスタ109は、前記
ストップアドレスを保持し、バッファ制御回路104へ
与える。
【0029】バッファ制御回路104は、ストップアド
レスと書き込みアドレスの差からデータ用受信バッファ
102の空き容量を知る。また、VC状態2からLive状
態にあるVirtual Circuitの数を知る。そして、前記空
き容量がLive状態にあるVirtual Circuitの数に対して
十分でない場合は、ACK送信抑止信号8を入出力制御
回路101に出力する。前述したように、ACK送信抑
止信号8によりACKフレームの送信が抑止されるか
ら、つまりは、データ用受信バッファ102の空き容量
が十分でないときはデータフレームの送信が抑止される
こととなる。
レスと書き込みアドレスの差からデータ用受信バッファ
102の空き容量を知る。また、VC状態2からLive状
態にあるVirtual Circuitの数を知る。そして、前記空
き容量がLive状態にあるVirtual Circuitの数に対して
十分でない場合は、ACK送信抑止信号8を入出力制御
回路101に出力する。前述したように、ACK送信抑
止信号8によりACKフレームの送信が抑止されるか
ら、つまりは、データ用受信バッファ102の空き容量
が十分でないときはデータフレームの送信が抑止される
こととなる。
【0030】図2は、データ用受信バッファ102の使
用例を示す説明図である。データ用受信バッファ102
は、バッファ制御回路104の制御により、Dormant状
態のVirtual Circuitごとに、Dormant状態からLive状態
へ遷移するのに必要なパラメータを格納できる程度の小
容量が動的に割り当てられ、この領域をDormant用領域
301とする。そして、残りをLive用領域300とす
る。これにより、Dormant用領域301が必要最小限だ
け動的に割り当てられ、データ用受信バッファ102の
大部分である残りの領域がLive用領域300として使用
できるため、使用効率を向上できる。
用例を示す説明図である。データ用受信バッファ102
は、バッファ制御回路104の制御により、Dormant状
態のVirtual Circuitごとに、Dormant状態からLive状態
へ遷移するのに必要なパラメータを格納できる程度の小
容量が動的に割り当てられ、この領域をDormant用領域
301とする。そして、残りをLive用領域300とす
る。これにより、Dormant用領域301が必要最小限だ
け動的に割り当てられ、データ用受信バッファ102の
大部分である残りの領域がLive用領域300として使用
できるため、使用効率を向上できる。
【0031】Live領域300においては、データを格納
する領域を固定的に確保せず、空き領域に順に格納す
る。このため、バッファ使用状況管理フラグ106でデ
ータ用受信バッファ102の使用状況を管理している。
する領域を固定的に確保せず、空き領域に順に格納す
る。このため、バッファ使用状況管理フラグ106でデ
ータ用受信バッファ102の使用状況を管理している。
【0032】図3は、VC管理メモリ105の使用例を
示す説明図である。Virtual Circuitごとに管理情報が
格納されている。前記管理情報には、VC_ID40
1,VC状態402,データ格納開始アドレス403,
404,405およびデータ格納終了アドレス406,
407,408が含まれる。前記VC_ID401およ
びVC状態402は、データ用受信バッファ102へデ
ータを書き込む際に、バッファ制御回路104により参
照される。前記データ格納開始アドレス403,40
4,405およびデータ格納終了アドレス406,40
7,408は、データ用受信バッファ102からデータ
を読み出す際に、バッファ制御回路104により参照さ
れる。
示す説明図である。Virtual Circuitごとに管理情報が
格納されている。前記管理情報には、VC_ID40
1,VC状態402,データ格納開始アドレス403,
404,405およびデータ格納終了アドレス406,
407,408が含まれる。前記VC_ID401およ
びVC状態402は、データ用受信バッファ102へデ
ータを書き込む際に、バッファ制御回路104により参
照される。前記データ格納開始アドレス403,40
4,405およびデータ格納終了アドレス406,40
7,408は、データ用受信バッファ102からデータ
を読み出す際に、バッファ制御回路104により参照さ
れる。
【0033】
【発明の効果】本発明の入出力制御方法および装置によ
れば、各入出力装置との接続状態に応じて該入出力装置
に対する受信バッファの割り当てサイズを動的に制御す
るため、受信バッファの使用効率を向上でき、小容量の
受信バッファでも好適にデータ転送を行うことが出来
る。また、受信バッファを小容量化できることから、内
部メモリを使用でき、大容量の外付けメモリを必要とし
ない。よって、部品点数を減らすことが出来ると共にチ
ップ面積を小さくすることが出来る。
れば、各入出力装置との接続状態に応じて該入出力装置
に対する受信バッファの割り当てサイズを動的に制御す
るため、受信バッファの使用効率を向上でき、小容量の
受信バッファでも好適にデータ転送を行うことが出来
る。また、受信バッファを小容量化できることから、内
部メモリを使用でき、大容量の外付けメモリを必要とし
ない。よって、部品点数を減らすことが出来ると共にチ
ップ面積を小さくすることが出来る。
【図1】本発明の一実施形態に係る入出力制御装置の構
成ブロック図である。
成ブロック図である。
【図2】本発明の一実施形態に係る入出力制御装置にお
けるデータ用受信バッファの使用例を示す説明図であ
る。
けるデータ用受信バッファの使用例を示す説明図であ
る。
【図3】本発明の一実施形態に係る入出力制御装置にお
けるVC管理メモリの使用例を示す説明図である。
けるVC管理メモリの使用例を示す説明図である。
1・・・VC_ID 2・・・VC状態 3・・・書き込みアドレス&レジスタ選択信号 4・・・書き込みアドレス 5・・・データ転送指示 6・・・バッファ読み出し指示 7・・・読み出しアドレス 8・・・ACK送信抑止信号 9・・・データ読み出し 100・・・入出力制御装置 101・・・入出力制御回路 102・・・データ用受信バッファ 103・・・ヘッダ用受信バッファ 104・・・バッファ制御回路 105・・・VC管理メモリ 106・・・バッファ使用状況管理フラグ 107_l・・・Live用書き込みアドレスレジスタ 107_d・・・Dormant用書き込みアドレスレジスタ 108・・・読み出しアドレスレジスタ 109・・・ストップアドレスレジスタ 110・・・フラグエンコーダ 111・・・データ入力レジスタ 112・・・下位デバイス間インタフェース制御回路 300・・・Live用領域 301・・・Dormant用領域 401・・・VC_ID 402・・・VC状態 403、404,405・・・データ格納開始アドレス 406,407,408・・・データ格納終了アドレス Dv・・・下位デバイス Fa・・・ファブリック
Claims (5)
- 【請求項1】 複数の入出力装置から受信したデータを
受信バッファに格納する際に、各入出力装置との接続状
態に応じて該入出力装置に割り当てる受信バッファの領
域サイズを動的に制御することを特徴とする入出力制御
方法。 - 【請求項2】 複数の入出力装置から受信したデータを
受信バッファに格納する入出力制御装置であって、前記
各入出力装置との接続状態を管理する接続状態管理手段
と、前記接続状態に応じて各入出力装置に割り当てる受
信バッファの領域サイズを動的に制御するバッファ制御
手段とを具備したことを特徴とする入出力制御装置。 - 【請求項3】 請求項2に記載の入出力制御装置におい
て、前記バッファ制御手段は、受信バッファの空き容量
を監視し、空き容量が不十分になったときは入出力装置
に対する応答を抑止することを特徴とする入出力制御装
置。 - 【請求項4】 請求項2または請求項3に記載の入出力
制御装置において、該入出力制御装置は前記複数の入出
力装置とファイバ・チャネルで接続され、前記接続状態
管理手段は、各入出力装置との接続状態がDormant状態
かLive状態かを管理し、前記バッファ制御手段は、Dorm
ant状態の入出力装置ごとに、Dormant状態からLive状態
へ遷移するのに必要なパラメータを格納できる程度の小
容量を動的に割り当て、残りの領域をLive状態の入出力
装置からのデータを格納する領域として割り当てること
を特徴とする入出力制御装置。 - 【請求項5】 請求項4に記載の入出力制御装置におい
て、Live状態の入出力装置からのデータを格納する領域
には、データを受信順に格納することを特徴とする入出
力制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000115994A JP2001306482A (ja) | 2000-04-18 | 2000-04-18 | 入出力制御方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000115994A JP2001306482A (ja) | 2000-04-18 | 2000-04-18 | 入出力制御方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001306482A true JP2001306482A (ja) | 2001-11-02 |
Family
ID=18627508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000115994A Pending JP2001306482A (ja) | 2000-04-18 | 2000-04-18 | 入出力制御方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001306482A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210012A (ja) | 2007-02-23 | 2008-09-11 | Fujitsu Ltd | データ復号処理プログラムおよびデータ復号処理装置 |
JP2011243142A (ja) * | 2010-05-21 | 2011-12-01 | Renesas Electronics Corp | 通信制御装置、データ通信方法及びプログラム |
-
2000
- 2000-04-18 JP JP2000115994A patent/JP2001306482A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210012A (ja) | 2007-02-23 | 2008-09-11 | Fujitsu Ltd | データ復号処理プログラムおよびデータ復号処理装置 |
JP2011243142A (ja) * | 2010-05-21 | 2011-12-01 | Renesas Electronics Corp | 通信制御装置、データ通信方法及びプログラム |
US8635386B2 (en) | 2010-05-21 | 2014-01-21 | Renesas Electronics Corporation | Communication control device, data communication method and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101077900B1 (ko) | 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치 | |
US6122676A (en) | Apparatus and method for transmitting and receiving data into and out of a universal serial bus device | |
JP3415567B2 (ja) | Usb転送制御方法およびusbコントローラ | |
TW384428B (en) | Method and apparatus for dynamically managing communications buffers used with packet communication data for a printer | |
US5907717A (en) | Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof | |
US6046817A (en) | Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer | |
US20060153078A1 (en) | Receiver, transceiver, receiving method and transceiving method | |
US8693379B2 (en) | Communication system, communication device, and communication method | |
US6889266B1 (en) | Method for delivering packet boundary or other metadata to and from a device using direct memory controller | |
US20070168583A1 (en) | Endpoint control apparatus and method thereof | |
JP4555902B2 (ja) | バスシステム及びバスにつなぐためのバスインターフェース | |
US6842797B1 (en) | USB adapter for burst mode communications | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
KR20180030985A (ko) | Usb 2.0 대역폭 예약을 위한 방법 및 시스템 | |
US5898889A (en) | Qualified burst cache for transfer of data between disparate clock domains | |
KR100505689B1 (ko) | 송수신 흐름에 따라 공유 버퍼 메모리의 할당량을제어하는 송수신 네트워크 제어기 및 그 방법 | |
EP1513071A2 (en) | Memory bandwidth control device | |
KR101197294B1 (ko) | QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 | |
JP2001306482A (ja) | 入出力制御方法および装置 | |
JP2004527024A (ja) | 多重チャネルを有するデータメモリアクセス用のスケジューラ | |
JPH08106443A (ja) | データ処理システム及び並列コンピュータ | |
US6421745B1 (en) | Asynchronous connections with scattering page tables for transmitting data from a producer device to a consumer device over an IEEE 1394 serial data bus | |
KR20220132333A (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
KR100563418B1 (ko) | 통신 컨트롤러 및 통신 방법 | |
KR20040066311A (ko) | 직접 메모리 접근매체의 데이터 전송 장치 및 방법 |