(57)【特許請求の範囲】
【請求項１】
データ付きリクエストを送信する側の論理ユニットである送信側ユニットと、前記データ付きリクエストを受信する側の論理ユニットである受信側ユニットとから構成されるデータ転送システムであって、
送信側ユニットから受信したデータ付きリクエストを格納するリクエスト受信キューと、前記リクエスト受信キューに格納されているデータ付きリクエストを読み出して処理を行う受信レジスタと、前記受信レジスタによりリクエスト受信キューに格納されているデータ付きリクエストが読み出されると、読み出されたそのデータ付きリクエストを特定できる情報を含めた受信完了通知を前記送信側ユニットに送信する受信完了通知レジスタと、から構成される受信側ユニットと、
前記受信側ユニットに送信するためのデータ付きリクエストが格納されていて、格納されているデータ付きリクエストを読み出して出力するリクエスト送信キューと、前記リクエスト送信キューから読み出されたデータ付きリクエストを受信側ユニットに出力する送信レジスタと、受信側ユニットの前記リクエスト受信キューに現在格納されているデータ量に対応する値を格納するためのカウンタであるデータ長監視カウンタと、前記送信レジスタから受信側ユニットへデータ付きリクエストが送信されると、受信側ユニットへ送信された該データ付きリクエストのデータ長分の値を前記データ長監視カウンタの値に加算するデータ長演算器と、前記受信側ユニットへ送信されたデータ付きリクエストのデータ長を各データ付きリクエスト毎に格納しておき、前記受信側ユニットからの受信完了通知を受信すると、該受信完了通知に含まれる情報により特定されるデータ付きリクエストに対応するデータ付きリクエストのデータ長を検索し、そのデータ長分の値を前記データ長監視カウンタから減算するように前記データ長演算器に指示するデータ長履歴バッファと、受信側ユニットの前記リクエスト受信キューの最大容量を予め記録していて、リクエスト受信キューの最大容量から前記データ長監視カウンタの値を減算することにより前記リクエスト受信キューの現在の空き容量を算出し、該空き容量が１つのデータ付きリクエストが取り得る最大データ長より小さい場合には前記リクエスト送信キューをデータ付きリクエストの読み出しが行われないように制御する送信制御部と、から構成される送信側ユニットと、
を有するデータ転送システム。
【請求項２】
データ付きリクエストを送信する側の論理ユニットである送信側ユニットと、前記データ付きリクエストを受信する側の論理ユニットである受信側ユニットとから構成されるデータ転送システムにおいてデータ長の異なるデータ付きリクエストの転送を行うためのデータ転送方法であって、
前記受信側ユニットに送信するためのデータ付きリクエストが格納されていて、格納されているリクエスト送信キューからデータ付きリクエストを送信レジスタに読み出して受信側ユニットに送信する際に、受信側ユニットへ送信された該データ付きリクエストのデータ長分の値をデータ長監視カウンタの値に加算するともに、前記受信側ユニットへ送信されたデータ付きリクエストのデータ長をデータ長履歴バッファに各データ付きリクエスト毎に格納しておくステップと、
送信側ユニットから受信したデータ付きリクエストをリクエスト受信キューに格納し、前記リクエスト受信キューに格納されているデータ付きリクエストが受信レジスタに読み出されて処理されると、読み出されたそのデータ付きリクエストを特定できる情報を含めた受信完了通知を前記送信側ユニットに送信するステップと、
前記受信側ユニットからの受信完了通知を送信側ユニットの前記データ長履歴バッファが受信すると、該受信完了通知に含まれる情報により特定されるデータ付きリクエストに対応するデータ付きリクエストのデータ長を検索し、そのデータ長分の値を前記データ長監視カウンタから減算するように前記データ長演算器に指示するステップと、
受信側ユニットの前記リクエスト受信キューの最大容量を予め記録している送信制御部が、リクエスト受信キューの最大容量から前記データ長監視カウンタの値を減算することにより前記リクエスト受信キューの現在の空き容量を算出し、該空き容量が１つのデータ付きリクエストが取り得る最大データ長より小さい場合には前記リクエスト送信キューをデータ付きリクエストの読み出しが行われないように制御するステップと、を有するデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理ユニット間でデータ転送を行うためのデータ転送方法およびシステムに関し、特にデータ長の異なるデータ付きリクエストの転送を行うデータ転送方法およびシステムに関する。
【０００２】
【従来の技術】
論理ユニット間でデータ転送を行う際には、データ付きリクエストを送信する側の論理ユニット（以下送信側ユニット）からデータ付きリクエストが送信されると、データ付きリクエストを受信する側の論理ユニット（以下受信側ユニット）では、受信したデータ付きリクエストをリクエスト受信キューに一旦格納してから受信レジスタに読み出して処理を行っている。
【０００３】
そのため、送信側ユニットでは、受信側ユニットのリクエスト受信キューに格納されるデータ付きリクエストのデータ量がリクエスト受信キューの最大容量を越えないようにデータ付きリクエストの送信を制御しなければならない。
【０００４】
従来のデータ転送方法では、論理ユニット間においてデータ付きリクエストを連続して転送する時、送信側ユニットではリクエストを送信すると管理カウンタの値を１つ加算し、受信側ユニットからリクエスト受信キューに格納されているリクエストを読み出した旨の受信完了通知を受信したら管理カウンタの値を１つ減算するといった、リクエスト個数のみによりリクエストの送信を管理していた。
【０００５】
そのため、従来のデータ転送方法では、それぞれのデータ付きリクエストにおいてデータ長が異なるデータ付きリクエストの転送を行う場合には、１つのリクエストあたりの最大データ長を見込んで受信キューの空き状態を監視する必要がある。つまり、現在リクエスト受信キューに格納されていると思われるリクエストの個数に１つのリクエストが取り得る最大のデータ長を乗算した値がリクエスト受信キューの最大容量を超えた場合には送信側ユニットからのデータ付きリクエストの送信を中断する必要があった。
【０００６】
しかし、受信側ユニットのリクエスト受信キューに格納されている全てのデータ付きリクエストは必ずしも最大のデータ長を有しているわけではない。そのため、リクエスト受信キューの容量が全て使われず、データ転送が効率的ではなかった。
【０００７】
【発明が解決しようとする課題】
上述した従来のデータ転送システムでは、データ付きリクエスト個数のみの管理によりデータ付きリクエストの送信の制御を行っていたため、データ長の異なるデータ付きリクエストの転送を行う場合には、受信側ユニットの受信キューを全て使用することができずデータ転送が効率的でないという問題点があった。
【０００８】
本発明の目的は、データ長の異なるデータ付きリクエストの転送を行う場合でも、受信側ユニットの受信キューを全て使用して効率的なデータ転送を行うことができるデータ転送システムを提供することである。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明のデータ転送システムは、データ付きリクエストを送信する側の論理ユニットである送信側ユニットと、前記データ付きリクエストを受信する側の論理ユニットである受信側ユニットとから構成されるデータ転送システムであって、
送信側ユニットから受信したデータ付きリクエストを格納するリクエスト受信キューと、前記リクエスト受信キューに格納されているデータ付きリクエストを読み出して処理を行う受信レジスタと、前記受信レジスタによりリクエスト受信キューに格納されているデータ付きリクエストが読み出されると、読み出されたそのデータ付きリクエストを特定できる情報を含めた受信完了通知を前記送信側ユニットに送信する受信完了通知レジスタと、から構成される受信側ユニットと、
前記受信側ユニットに送信するためのデータ付きリクエストが格納されていて、格納されているデータ付きリクエストを読み出して出力するリクエスト送信キューと、前記リクエスト送信キューから読み出されたデータ付きリクエストを受信側ユニットに出力する送信レジスタと、受信側ユニットの前記リクエスト受信キューに現在格納されているデータ量に対応する値を格納するためのカウンタであるデータ長監視カウンタと、前記送信レジスタから受信側ユニットへデータ付きリクエストが送信されると、受信側ユニットへ送信された該データ付きリクエストのデータ長分の値を前記データ長監視カウンタの値に加算するデータ長演算器と、前記受信側ユニットへ送信されたデータ付きリクエストのデータ長を各データ付きリクエスト毎に格納しておき、前記受信側ユニットからの受信完了通知を受信すると、該受信完了通知に含まれる情報により特定されるデータ付きリクエストに対応するデータ付きリクエストのデータ長を検索し、そのデータ長分の値を前記データ長監視カウンタから減算するように前記データ長演算器に指示するデータ長履歴バッファと、受信側ユニットの前記リクエスト受信キューの最大容量を予め記録していて、リクエスト受信キューの最大容量から前記データ長監視カウンタの値を減算することにより前記リクエスト受信キューの現在の空き容量を算出し、該空き容量が１つのデータ付きリクエストが取り得る最大データ長より小さい場合には前記リクエスト送信キューをデータ付きリクエストの読み出しが行われないように制御する送信制御部と、から構成される送信側ユニットと、を有する。
【００１０】
本発明によれば、論理ユニット間のデータ転送方式においてデータ長の異なるデータ付きリクエストを連続して転送する際、送信側ユニットから発行したデータ付きリクエストのデータ長をデータ長監視カウンタに加算すると共にデータ長履歴バッファへ退避しておき、受信側ユニットが受信キューからデータ付きリクエストを読み出した際に送信側ユニットへ通知する受信完了通知を契機にデータ長履歴バッファへ退避しておいたデータ長を取得してデータ長監視カウンタから減算することで、受信側ユニットの受信キューの空き状況を正確に管理することができるため、リクエスト受信キューを無駄なく使用してデータ転送を効率的に行うことができる。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図１は本発明の一実施形態のデータ転送システムの構成を示すブロック図である。
【００１２】
論理ユニット間でデータ付きリクエストの転送を行う際、送信側ユニット、受信側ユニットのそれぞれがリクエストキューで管理される場合、受信側ユニットにおけるリクエスト受信キューが空かなければその最大容量を越えて送信は出来ない。データ付きリクエストのデータ長が一定ではなくリクエストにより異なる場合、リクエスト受信キューの空き管理が転送を効率的に行う上で重要になってくる。本実施形態におけるデータ転送方法は、リクエスト受信キューの空き状況をデータ長履歴を管理することによって実現する。
【００１３】
本実施形態のデータ転送システムは、図１に示されるように、データ付きリクエストを送信する送信側ユニット１０と、送信側ユニット１０からのデータ付きリクエストを受信する受信側ユニット１１とから構成されている。
【００１４】
送信側ユニット１０は、リクエスト送信キュー９と、送信レジスタ１と、送信制御部４と、データ長演算器５と、データ長監視カウンタ６と、データ長履歴バッファ８とから構成されている。また、受信側ユニット１１は、リクエスト受信キュー２と、受信レジスタ３と、受信完了通知レジスタ７とから構成されている。
【００１５】
リクエスト送信キュー９は、送信を行うためのデータ付きリクエストが格納されていて、送信制御部４の制御により格納されているデータ付きリクエストを読み出して送信レジスタ１に出力する。送信レジスタ１は、リクエスト送信キュー９から読み出されたデータ付きリクエストを受信側ユニット１１に出力している。
【００１６】
送信制御部４は、リクエスト受信キュー２の最大容量を予め記録していて、リクエスト受信キュー２の最大容量からデータ長監視カウンタ６の値を減算することによりリクエスト受信キュー２の現在の空き容量を算出し、その空き容量が１つのリクエストあたりの最大データ長より小さい場合にはリクエスト送信キュー９をデータ付きリクエストの読み出しが行われないように制御する。
【００１７】
データ長演算器５は、送信レジスタ１から受信側ユニット１１へデータ付きリクエストが送信されると、受信側ユニット１１へ送信されたそのデータ付きリクエストのデータ長分の値をデータ長監視カウンタ６の値に加算する。データ長監視カウンタ６は、リクエスト受信キュー２に現在格納されているデータ量に対応する値を格納するためのカウンタであり、データ長演算器５からの制御に基づいてカウント値の加算／減算を行っている。
【００１８】
データ長履歴バッファ８は、受信側ユニット１１へ送信されたデータ付きリクエストのデータ長を各データ付きリクエスト毎に格納しておく。そして、データ長履歴バッファ８は、受信側ユニット８からの受信完了通知を受信すると、その受信完了通知に含まれる情報により特定されるデータ付きリクエストに対応するデータ付きリクエストのデータ長を検索し、そのデータ長分の値をデータ長監視カウンタ６から減算するようにデータ長演算器５に指示する
リクエスト受信キュー２は、送信側ユニット１０から受信したデータ付きリクエストを格納する。受信レジスタ３は、リクエスト受信キュー２に格納されているデータ付きリクエストを読み出して処理を行う。
【００１９】
受信完了通知レジスタ７は、受信レジスタ３によりリクエスト受信キュー２に格納されているデータ付きリクエストが読み出されると、読み出されたそのデータ付きリクエストを特定できる情報を含めた受信完了通知を送信側ユニット１０に送信する。
【００２０】
次に、本実施形態のデータ転送システムの動作について図１を参照して詳細に説明する。
【００２１】
送信側ユニット１０において、リクエスト送信キュー９からデータ付きリクエストが送信レジスタ１へ読み出されて受信側ユニット１１へ出力される際、データ付きリクエストのデータ長はデータ長演算器５によってデータ長監視カウンタ６へ加算されて格納されると共にデータ長履歴バッファ８へも退避される。
【００２２】
そして、受信側ユニット１１では送信側ユニット１０から受信したデータ付きリクエストがリクエスト受信キュー２へ格納される。リクエスト受信キュー２に格納されたデータ付きリクエストは、その後受信レジスタ３へ読み出されるが、その際にリクエスト受信キュー２は読み出したデータ長分の容量が空くため、これを送信側ユニット１０に通知する手段として、受信完了通知レジスタ７に受信完了通知を設定して送信側ユニット１０に通知する。
【００２３】
送信側ユニット１０では、受信完了通知レジスタ７に設定された受信完了通知を受信すると、データ長履歴バッファ８を検索して受信側ユニット１１からの受信完了通知に対応するデータ付きリクエストのデータ長の履歴を取得し、データ長演算器５によってデータ長監視カウンタ６から減算する。これにより、送信時に加算したデータ長が受信完了により減算されるため、データ長監視カウンタ６の値は、リクエスト受信キュー２に現在格納されているデータ長の合計を示すことになる。
【００２４】
すなわち、データ長監視カウンタ６の値により受信側ユニット１１のリクエスト受信キュー２の空き状態を判定することができるため、送信制御部４では、リクエスト受信キュー２の最大受信容量からデータ長監視カウンタ６の値を減算することによりリクエスト受信キュー２の現在の空き容量を判定することができる。そして、送信制御部４は、その空き容量が１つのリクエストが取り得る最大データ長より小さい場合にはリクエスト送信キュー９に対してデータ付きリクエストの読み出しが行われないような制御を行う。
【００２５】
そして、受信側ユニット１１においてリクエスト受信キュー２から受信レジスタ３にデータ付きリクエストが読み出され、受信完了通知レジスタ７から新たな受信完了通知が送信されるとデータ長管理カウンタ６の値が減算され、リクエスト受信キュー２の空き容量が１つのリクエストが取り得る最大データ長以上となると、送信制御部４は中断していたリクエスト送信キュー９のデータ付きリクエストの読み出しを再開する。
【００２６】
このような制御が行われることにより、送信制御部４は、受信側ユニット１１のリクエスト受信キュー２に空きがない状態では、リクエスト送信キュー９の読み出しを中断し、リクエスト受信キュー２に空きができると中断していたリクエスト送信キュー９のデータ付きリクエストの読み出しを再開するという制御を行うことができる。そのため、データ付きリクエストの個数のみによってデータ付きリクエストの送信制御を行っていた従来のデータ転送システムと比較して、リクエスト受信キュー２を無駄なく使用してデータ転送を効率的に行うことができる。
【００２７】
【発明の効果】
以上説明したように、本発明によれば、データ長の異なるデータ付きリクエストを連続して転送する送信ユニット側において、受信側ユニットの受信キューの空き状況を正確に管理することができるため、リクエスト受信キューを無駄なく使用してデータ転送を効率的に行うことができるという効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態のデータ転送システムの構成を示すブロック図である。
【符号の説明】
１    送信レジスタ
２    リクエスト受信キュー
３    受信レジスタ
４    送信制御部
５    データ長演算器
６    データ長監視カウンタ
７    受信完了通知レジスタ
８    データ長履歴バッファ
９    リクエスト送信キュー
１０    送信ユニット
１１    受信ユニット
【図１】
0003626697.tif 000002