(57)【特許請求の範囲】
【請求項１】
送信されるリクエストパケットを保持するための送信バッファと、
シリアルバスに接続され、上記リクエストパケットを上記シリアルバスに送信するための複数のパケット送信装置を含む送信装置と、
上記シリアルバスに接続され、上記リクエストパケットに対応するレスポンスパケットを上記シリアルバスから受信するためのパケット受信装置と、
上記パケット受信装置から供給されるレスポンスパケットを保持するための受信バッファと、
上記リクエストパケットに対応するレスポンスパケットのデータサイズと上記受信バッファの空き容量とに基づいて上記レスポンスパケットの送信の許可の判定を行なう判定装置と、
を有し、
上記判定装置が、
上記送信バッファに保持された上記リクエストパケットの識別番号と当該リクエストパケットに対応するレスポンスパケットのデータサイズとを対応付けて記憶する記憶回路と、
上記リクエストパケットに対応するレスポンスパケットのデータサイズと上記受信バッファの空き容量との大小関係を比較し、上記データサイズが上記空き容量よりも小さい場合には上記リクエストパケットの送信を許可する許可制御信号を供給し、上記データサイズが上記空き容量よりも大きい場合には上記リクエストパケットの送信を許可しない不許可制御信号を供給する制御回路と、
を含み、
上記パケット受信装置は、上記レスポンスパケットを受信すると上記判定装置に当該レスポンスパケットの受信を通知し、
上記レスポンスパケットの受信の通知により、上記記憶回路に記憶されている当該レスポンスパケットに対応する上記リクエストパケットの識別番号と上記データサイズとがクリアされる、
データ処理装置。
【請求項２】
上記パケット送信装置は、上記送信バッファに保持されている上記リクエストパケットを受け取り、上記判定装置から供給される上記送信許可の制御信号により送信許可状態にあるときに上記リクエストパケットを上記シリアルバスに送信して受信待ち状態となり、上記パケット受信装置からの上記レスポンスパケットの受信の通知により上記受信待ち状態が解除される、
請求項１に記載のデータ処理装置。
【請求項３】
上記判定装置が、上記リクエストパケットに対応するレスポンスパケットのデータサイズを求める演算回路を含む、
請求項１又は２の何れかに記載のデータ処理装置。
【請求項４】
上記パケット受信装置が上記受信バッファの空き容量を上記判定装置に通知する請求項１乃至３の何れかに記載のデータ処理装置。
【請求項５】
上記リクエストパケット、上記レスポンスパケット、並びに上記シリアルバスはＩＥＥＥ１３９４規格に準拠するように構成されている請求項１乃至４の何れかに記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理装置に関し、特にIEEE1394規格に準拠したシリアルバスを介してパケット単位でデータの送受信を行うシステムに用いられるデータ処理装置に関する。
【０００２】
【従来の技術】
従来では、パソコン等のデータ処理装置で画像データや音声データを取り込んだり、ＡＶ機器をコントロールするためには、ビデオキャプチャボードやＲＳ２３２Ｃバス等が個別に必要であり、統一した取り扱いをすることはできなかった。
【０００３】
そこで近年では、マルチメディア時代のデータ通信に適した規格が提案されており、例えば、「IEEE1394ハイパフォーマンスシリアルバス規格(以下、IEEE1394規格という)」により、高速大容量の通信を自由に行えるような環境整備がなされている。
【０００４】
図４の符号１０１に、従来のデータ処理装置の一例を示す。このデータ処理装置１０１は、IEEE1394規格に準拠し、パケット単位でデータの転送が可能なシリアルバス(以下でIEEE1394バスと称する)１０６に接続されている。このIEEE1394バス１０６には、他のデータ処理装置が複数個接続されており、データ処理装置１０１は、IEEE1394バス１０６を介して他のデータ処理装置に、リクエストパケットを送信し、リクエストパケットを送信した他のデータ処理装置に、リクエストパケットに対応したレスポンスパケットを生成させ、一連のレスポンスパケットを取得することができるように構成されている。
【０００５】
このデータ処理装置１０１は、パケット処理装置１０２と、送信装置１０３と、パケット受信装置１０４と、送信バッファ１０５と、受信バッファ１０７とをそれぞれ１個ずつ有している。このうち、送信装置１０３は、複数のパケット送信装置を有しており、ここでは、３個のパケット送信装置１０３1〜１０３3を有しているものとする。
【０００６】
パケット処理装置１０２の出力は、送信バッファ１０５の入力に、送信バッファ１０５の出力は、送信装置１０３の入力にそれぞれ接続されており、送信装置１０３の出力は、IEEE1394バス１０６に接続されている。
【０００７】
データ処理装置１０１を用いて、リクエストパケットを送信するには、まず、パケット処理装置１０２が所定のプログラムに従って、リクエストパケットを次々に生成し、送信バッファ１０５へと順次出力する。送信バッファ１０５は、ＦＩＦＯ(First in first out)構造のメモリから成っており、パケット処理装置１０２で次々に生成されたリクエストパケットを一時的に記憶する。
【０００８】
送信装置１０３の各パケット送信装置１０３1〜１０３3は、送信バッファ１０５に保持されているリクエストパケットを、順次１個ずつ読み出し、IEEE1394バス１０６へと送出する。
【０００９】
リクエストパケットがIEEE1394バス１０６へと送出されると、リクエストパケットの内容で特定された他のデータ処理装置が相手方のデータ処理装置となり、かかる相手方のデータ処理装置が、IEEE1394バス１０６からリクエストパケットを順次受信し、その内容を読み出す。相手方のデータ処理装置は、リクエストパケットの内容に応じて特定されるデータを、自分自身が有する記憶領域から読み出し、読み出したデータに所定の情報を付して、リクエストパケットへの応答となるレスポンスパケットを次々に生成して、IEEE1394バス１０６へと次々に送出する。
【００１０】
IEEE1394バス１０６には、パケット受信装置１０４の入力が、パケット受信装置１０４の出力には、受信バッファ１０７の入力が、それぞれ接続されており、受信バッファ１０７の出力は、パケット処理装置１０２の入力に接続されている。
【００１１】
パケット受信装置１０４にレスポンスパケットが到達すると、パケット受信装置１０４は、受信バッファ１０７の空き容量に応じて、レスポンスパケットが受信可能か否かを判断する。ここで「受信」とは、レスポンスパケットがパケット受信装置１０４に到達し、受信バッファ１０７に保持されることまでを指している。
【００１２】
そして、受信バッファ１０７に、レスポンスパケットを保持できる分の空き領域があるときには、パケット受信装置１０４は、受信可能であると判断する。そして、IEEE1394バス１０６からレスポンスパケットを受け取り、受信バッファ１０７に出力することで、レスポンスパケットの受信がなされる。
【００１３】
受信バッファ１０７は、入力されたレスポンスパケットを一旦保持して、パケット処理装置１０２の読み出し要求に応じてパケット処理装置１０２へと出力する。パケット処理装置１０２へレスポンスパケットが出力されたら、そのレスポンスパケットが占有していた領域は解放される。
パケット処理装置１０２は、入力されたレスポンスパケットを、所定の記憶装置に格納するなどの処理をする。
【００１４】
上記のようにレスポンスパケットが受信されたら、データ処理装置１０１は、相手方のデータ処理装置に、「成功」のアクノレジを返して、レスポンスパケットが受信されたことを通知する。なお、アクノレジとは、４ビットの情報等からなり、各トランザクションが成功か、ビジーかといった情報が組み込まれているものである。
【００１５】
上記した図４のデータ処理装置１０１では、パケット送信装置１０３1〜１０３3は、リクエストパケットを送出してから、そのリクエストパケットに対応するレスポンスパケットが受信されるまでは受信待ち状態になり、レスポンスパケットが受信されたことがパケット受信装置１０４で確認されて、各パケット送信装置１０３1〜１０３3に通知されるまでは、新たなリクエストパケットを送出しないようにされている。
【００１６】
そして、各パケット送信装置１０３1〜１０３3は、受信待ち状態が解除されたら、直ちに新たなリクエストパケットを送出できる状態に復帰するようにされている。
【００１７】
このため、受信バッファ１０７の空き容量が小さく、新たなリクエストパケットに対応するレスポンスパケットを、パケット受信装置１０４が受信できないときであっても、パケット送信装置１０３1〜１０３3は、可能な限り新たなリクエストパケットを送出してしまうことがある。
【００１８】
このような場合には、レスポンスパケットを受信することができないため、レスポンスパケットが到達すると、データ処理装置１０１が「ビジー」のアクノレジを相手方のデータ処理装置に返す。
【００１９】
「ビジー」のアクノレジが返されると相手方のデータ処理装置は、レスポンスパケットを再度送信し(リトライ)、パケット受信装置１０４がレスポンスパケットを受信できて「成功」のアクノレジが返されるまでリトライを繰り返し、「成功」のアクノレジが返されないときには、所定の回数だけリトライを繰り返す。この間はIEEE1394バス１０６が無駄に使われてしまうので、データ送受信の効率が低くなってしまう。
【００２０】
特に、図４に示すようにデータ処理装置１０１がパケット送信装置１０３1〜１０３3を複数有しているときには、複数のリクエストパケットに対応するレスポンスパケットが、IEEE1394バス１０６に一度に送出されてしまい、送出された全てのレスポンスパケットのデータサイズの総和が受信バッファ１０７の空き容量を超えてしまうことが多く、パケット受信装置１０４がこれら全てのレスポンスパケットを一度に受信できない状態になってしまうことが多かった。
【００２１】
【発明が解決しようとする課題】
本発明は、上記従来技術の不都合を解決するために創作されたものであり、その目的は、IEEE1394バスに接続されるデータ処理装置においてデータの送受信を行なう場合に、データ送受信の効率を高めることができる技術を提供することにある。
【００２２】
【課題を解決するための手段】
上記課題を解決するために、本発明の請求項１に記載のデータ処理装置は、送信されるリクエストパケットを保持するための送信バッファと、シリアルバスに接続され、上記リクエストパケットを上記シリアルバスに送信するための複数のパケット送信装置を含む送信装置と、上記シリアルバスに接続され、上記リクエストパケットに対応するレスポンスパケットを上記シリアルバスから受信するためのパケット受信装置と、上記パケット受信装置から供給されるレスポンスパケットを保持するための受信バッファと、上記リクエストパケットに対応するレスポンスパケットのデータサイズと上記受信バッファの空き容量とに基づいて上記レスポンスパケットの送信の許可の判定を行なう判定装置とを有し、上記判定装置が、上記送信バッファに保持された上記リクエストパケットの識別番号と当該リクエストパケットに対応するレスポンスパケットのデータサイズとを対応付けて記憶する記憶回路と、上記リクエストパケットに対応するレスポンスパケットのデータサイズと上記受信バッファの空き容量との大小関係を比較し、上記データサイズが上記空き容量よりも小さい場合には上記リクエストパケットの送信を許可する許可制御信号を供給し、上記データサイズが上記空き容量よりも大きい場合には上記リクエストパケットの送信を許可しない不許可制御信号を供給する制御回路とを含み、上記パケット受信装置は、上記レスポンスパケットを受信すると上記判定装置に当該レスポンスパケットの受信を通知し、上記レスポンスパケットの受信の通知により、上記記憶回路に記憶されている当該レスポンスパケットに対応する上記リクエストパケットの識別番号と上記データサイズとがクリアされる。
【００２３】
請求項２に記載のデータ処理装置は、請求項１に記載のデータ処理装置であって、上記パケット送信装置は、上記送信バッファに保持されている上記リクエストパケットを受け取り、上記判定装置から供給される上記送信許可の制御信号により送信許可状態にあるときに上記リクエストパケットを上記シリアルバスに送信して受信待ち状態となり、上記パケット受信装置からの上記レスポンスパケットの受信の通知により上記受信待ち状態が解除される。
【００２４】
また、請求項３に記載のデータ処理装置は、請求項１又は２の何れかに記載のデータ処理装置であって、上記判定装置が、上記リクエストパケットに対応するレスポンスパケットのデータサイズを求める演算回路を含む。
請求項４に記載のデータ処理装置は、請求項１乃至３の何れかに記載のデータ処理装置であって、上記パケット受信装置が上記受信バッファの空き容量を上記判定装置に通知する。
請求項５に記載のデータ処理装置は、請求項１乃至４の何れかに記載のデータ処理装置であって、上記リクエストパケット、上記レスポンスパケット、並びに上記シリアルバスはＩＥＥＥ１３９４規格に準拠するように構成されている。
【００２５】
本発明のデータ処理装置では、判定装置が、送出予定のリクエストパケットに応じたレスポンスパケットのデータサイズと、受信バッファの空き容量に基づいて、送出予定のリクエストパケットを送出することが可能か否かを判定し、この判定に基づいて、送信装置が送出予定のリクエストパケットを送出しているので、例えば、レスポンスパケットのデータサイズと、受信バッファの空き容量とを比較した結果、受信バッファの空き容量が少なくて、レスポンスパケットを受信装置が受信できない状態にあるときには、送信装置に、送出予定のリクエストパケットを送出させないようにすることができ、送出予定のリクエストパケットを送出するときには、常にレスポンスパケットを受信できるだけの空き容量が受信バッファに確保されるようにすることができる。
このため、送出予定のリクエストパケットが送出されるときには、常にレスポンスパケットを受信することが可能な状態になっている。
【００２６】
従って、受信バッファの空き容量が少なく、レスポンスパケットが受信できないときには、送出予定のリクエストパケットは送出されないので、受信装置で受信が拒否され、リトライが繰り返されてシリアルバスが無駄に使われなくなる。このため、従来に比してデータ送受信の効率を高めることができる。
【００２７】
また、本発明のデータ処理装置において、送信装置が複数あるときには、送出予定のリクエストパケットに応じたレスポンスパケットのデータサイズと、受信バッファの空き容量とに加えて、未受信のレスポンスパケットのデータサイズを参照することで、送出予定のリクエストパケットを送出することが可能か否かを判定している。
【００２８】
このため、受信バッファの空き容量が、未受信のレスポンスパケットのデータサイズと、受信予定のレスポンスパケットのデータサイズとの総和よりも小さく、未受信のレスポンスパケットと、受信予定のレスポンスパケットが一度に受信されようとしたときに、全部のレスポンスパケットを受信することができない状態にあるときには、送信装置に、送出予定のリクエストパケットを送出させないようにすることができる。
【００２９】
従って、未受信のレスポンスパケットと、受信予定のレスポンスパケットが一度に生成され、続けて受信されようとしたときにも、受信バッファにはこれら全部のレスポンスパケットを保持できるだけの空き容量が確保されていることになるので、全部のレスポンスパケットを続けて受信することができる。
【００３０】
特に、未受信のレスポンスパケットのデータサイズが大きい場合に、未受信のレスポンスパケットが受信されて受信バッファの空き容量が小さくなっても、その空き容量は、受信予定のレスポンスパケットのデータサイズよりも大きくなるので、受信予定のレスポンスパケットが受信装置で受信拒否されることがなくなる。
これにより、受信装置で受信が拒否されて、リトライが繰り返されることがないので、データ送受信の効率が低下することがなくなる。
【００３１】
【発明の実施の形態】
本発明の実施の形態について、図面を参照して説明する。
図１の符号１は、本実施形態のデータ処理装置１である。このデータ処理装置１は、IEEE1394バス６に接続されている。このIEEE1394バス６には、他のデータ処理装置が複数個接続されており、当該データ処理装置１は、IEEE1394バス６を介して他のデータ処理装置にリクエストパケットを送信し、リクエストパケットが送信された他のデータ処理装置に、複数のレスポンスパケットを生成させて一連のレスポンスパケットを取得することができるように構成されている。
【００３２】
このデータ処理装置１は、パケット処理装置２と、パケット送信装置３と、パケット受信装置４と、送信バッファ５と、受信バッファ７と、判定回路１０とを有している。
【００３３】
パケット処理装置２の出力は、送信バッファ５の入力に、送信バッファ５の出力は、パケット送信装置３の入力にそれぞれ接続されており、パケット送信装置３の出力は、IEEE1394バス６に接続されている。
【００３４】
かかるデータ処理装置１を用いて、リクエストパケットを送信する際には、まず、パケット処理装置２がリクエストパケットを次々に生成し、送信バッファ５へと次々に出力する。
【００３５】
送信バッファ５はＦＩＦＯ構造のメモリからなり、パケット処理装置２からリクエストパケットが次々に入力されると、それらのリクエストパケットを一時的に記憶する。
【００３６】
パケット送信装置３は、最初に１個のリクエストパケットを送信バッファ５から読み出して、IEEE1394バス６へと送出する。パケット送信装置３は、リクエストパケットを送出すると、そのリクエストパケットに対応するレスポンスパケットが受信されたことがパケット受信装置４から通知されるまで受信待ち状態になり、新たにリクエストパケットを送出しないようにされる。
【００３７】
他方、リクエストパケットがIEEE1394バス６へと送出されると、リクエストパケットの内容に応じて特定された他のデータ処理装置(以下で相手方のデータ処理装置と称する。)が、IEEE1394バス６からリクエストパケットを受信し、その内容を読み出す。相手方のデータ処理装置は、リクエストパケットの内容に応じて、リクエストパケットへの応答となるレスポンスパケットを生成して、IEEE1394バス６へと送出する。
【００３８】
このIEEE1394バス６には、パケット受信装置４の入力が、パケット受信装置４の出力には、受信バッファ７の入力が、それぞれ接続されており、受信バッファ７の出力は、パケット処理装置２の入力に接続されている。
【００３９】
パケット受信装置４にレスポンスパケットが到達すると、パケット受信装置４は、受信バッファ７の空き容量に応じて、レスポンスパケットが受信可能か否かを判断する。本発明で「受信」とは、レスポンスパケットがパケット受信装置に到達し、受信バッファに保持されることまでを指すものとする。
【００４０】
そして、受信バッファ７に、レスポンスパケットを保持できる分の空き領域があるときには、パケット受信装置４は、レスポンスパケットが受信可能であると判断して、IEEE1394バスからレスポンスパケットを受けとる。
【００４１】
こうしてパケット受信装置４がIEEE1394バス６からレスポンスパケットを受けとって、そのレスポンスパケットを受信バッファ７に出力するとともに、レスポンスパケットを受信した旨をパケット送信装置３に通知する。レスポンスパケットを受信した旨が、受信待ち状態にあったパケット送信装置３に通知されると、パケット送信装置３の受信待ち状態は解除される。しかし、後述する送出不許可の制御命令がパケット送信装置３に入力されているときには、受信待ち状態が解除されている場合でも、送出予定のリクエストパケットの送出をしないようにされる。
【００４２】
受信バッファ７は、入力されたレスポンスパケットを、内部に設けられたメモリ(図示せず)に一時保持する。受信バッファ７がレスポンスパケットを保持している間に、送信バッファ５には、これから送出しようとするリクエストパケット(以下で送出予定のリクエストパケットと称する。)が保持されており、パケット送信装置３へと出力される。
【００４３】
パケット送信装置３は、送出予定のリクエストパケットが入力されると、そのデータサイズを、演算器９に出力する。
演算器９は、入力されたデータサイズから、そのリクエストパケットに対応するレスポンスパケット(以下で受信予定のレスポンスパケットと称する。)のデータサイズを求めて、比較器８の一方の入力へと出力する。
【００４４】
一方、パケット受信装置４の内部には検出回路(図示せず)が設けられている。この検出回路は、受信バッファ７内部のメモリの空き容量を常時検出しており、検出された空き容量を、比較器８の他方の入力へと出力している。
【００４５】
比較器８は、受信予定のレスポンスパケットのデータサイズと、受信バッファ７の空き容量とを比較する。
受信バッファ７の空き容量が、受信予定のレスポンスパケットを受信できる程度に大きい場合には、リクエストパケットが送出されるが、受信済みのレスポンスパケットがまだ受信バッファ７に保持されているため、受信バッファ７の空き容量が受信予定のレスポンスパケットのデータサイズよりも小さい場合には、比較器８は、パケット送信装置３に、送出不許可の制御命令を出力する。この送出不許可の制御命令により、パケット送信装置３は、受信待ち状態が解除されている場合であっても、送出予定のリクエストパケットの送出ができなくなる。
【００４６】
その後、受信バッファ７から受信済みのレスポンスパケットがパケット処理装置２に出力され、受信済みのレスポンスパケットが占有していたメモリ領域が解放されると、受信バッファ７のメモリの空き容量が増える。
【００４７】
こうしてメモリの空き容量が増えて受信予定のレスポンスパケットのデータサイズよりも大きくなった場合には、比較器８は、送出許可の制御命令をパケット送信装置３に出力する。送出許可の制御命令が入力されると、パケット送信装置３は、送出予定のリクエストパケットをIEEE1394バス６に送出する。
【００４８】
このように、データ処理装置１では、受信バッファ７の空き容量が、受信予定のレスポンスパケットのデータサイズよりも小さく、受信予定のレスポンスパケットを受信できる分だけ確保されていないときには、パケット送信装置３はリクエストパケットを送出できないようにされている。従って、リトライが繰り返されて、バスが無駄に使われることがなくなる。
【００４９】
以上までは、１個のパケット送信装置を有しているデータ処理装置１について説明したが、送信するリクエストパケットの量が多いときなどに備え、パケット送信装置を複数設ける場合がある。以下で、図２を参照し、パケット送信装置を複数有するデータ処理装置について説明する。
【００５０】
図２で符号１１は本発明の他の実施形態のデータ処理装置を示している。このデータ処理装置１１は、パケット処理装置１２と、パケット受信装置１４と、送信バッファ１５と、受信バッファ１７と、判定回路２０とを有している点では図１のデータ処理装置１と同様であるが、判定回路２０がディスパチャ１９を有しており、ディスパッチャ１９が送信装置１３と送信バッファ１５との間に配置されている点と、送信装置１３が、複数のパケット送信装置１３1〜１３3を有している点とで、図１のデータ処理装置１と異なる。ここでは、送信装置は３個のパケット送信装置１３1〜１３3を有しているものとする。
【００５１】
そして、パケット処理装置１２の出力は送信バッファ１５の入力に、送信バッファ１５の出力はディスパッチャ１９の入力に、ディスパッチャ１９の出力は送信装置１３の入力に、それぞれ接続されており、送信装置１３の出力は、IEEE1394バス１６に接続されている。
【００５２】
以上のような構成のデータ処理装置１１において、複数のリクエストパケットを次々に送信するには、まず、パケット処理装置１２が、複数のリクエストパケットを次々に生成し、送信バッファ１５へと順次出力する。
【００５３】
図３(ａ)の符号３０に、IEEE1394規格準拠のリクエストパケットの一般的なフォーマットの概略を示す。このリクエストパケットは、第１のパケット領域３１と、第２のパケット領域３２とを有しており、そのそれぞれに、tLabelと、データサイズが記載されている。このうちtLabelは、各機器から送信されたリクエストパケットやレスポンスパケット等の、未解決の各トランザクションに割り当てられた固有のタグであって、リクエストパケットと、レスポンスパケットとの対応をつけるための番号である。そして、データサイズは、１個のリクエストパケット全体のデータサイズを示すものである。
【００５４】
このようなフォーマットを有するリクエストパケットが送信バッファ１５に入力されると、ディスパッチャ１９は、送信バッファ１５に入力された順にこれらのリクエストパケットを次々に読み出し、リクエストパケットの第１、第２のパケット領域３１、３２から、tLabelと、データサイズとをそれぞれ取得する。ここでは、最初に３個のリクエストパケットを読み出し、読み出した各リクエストパケットのtLabelと、データサイズとをそれぞれ取得するものとする。
【００５５】
ディスパッチャ１９は、これから送出しようとするリクエストパケットのデータサイズから、そのリクエストパケットに対応するレスポンスパケットのデータサイズをそれぞれ求め、それぞれのtLabelとデータサイズとを組にし、ディスパッチャ１９が有している記憶領域に書き込む。
【００５６】
図３(ｂ)の符号４０に、ディスパッチャ１９が有している記憶領域の一例を示す。この記憶領域４０は、第１〜第６の領域４１〜４６を有している。
第１〜第３の領域４１〜４３には、各パケット送信装置１３1〜１３3から送出される各リクエストパケットのtLabelが書き込まれるようにされており、第４〜第６の領域４４〜４６のそれぞれには、各パケット送信装置１３1〜１３3から送出されるリクエストパケットに応じて生成されるレスポンスパケットのデータサイズが、書き込まれるようにされている。
【００５７】
こうして、第１〜第３の領域４１〜４３に書き込まれた各リクエストパケットのtLabelと、第４〜第６の領域４４〜４６に書き込まれた各レスポンスパケットのデータサイズが、それぞれ一対一に対応付けられて、一組になるようにされている。
【００５８】
そして、後にリクエストパケットに対応するレスポンスパケットが受信されたことがディスパッチャ１９に通知されたら、そのリクエストパケットのtLabelと、レスポンスパケットのデータサイズとの組は、記憶領域４０から消去されるようにされている。
【００５９】
こうして、記憶領域４０に、各リクエストパケットのtLabelと、各リクエストパケットに対応するレスポンスパケットのデータサイズをそれぞれ書き込んだら、ディスパッチャ１９は、パケット送信装置１３1〜１３3のそれぞれへ、リクエストパケットを均等に出力するようにされている。ここでは、３個のリクエストパケットを読み出しているので、パケット送信装置１３1〜１３3のそれぞれへ、リクエストパケットを１個ずつ出力する。
【００６０】
各パケット送信装置１３1〜１３3は、入力されたリクエストパケットを、IEEE1394バス１６へと送出する。各パケット送信装置１３1〜１３3は、送出したリクエストパケットに対するレスポンスパケットが、パケット受信装置１４で受信されたことが確認されるまでは、受信待ち状態になり、新たなリクエストパケットを送出しないようになっている。
【００６１】
各パケット送信装置１３1〜１３3から、IEEE1394バス１６へとリクエストパケットが送出されると、各リクエストパケットの内容に応じて特定される他のデータ処理装置が、リクエストパケットをIEEE1394バス１６から受信する。
【００６２】
ここでは、同一の他のデータ処理装置が、パケット送信装置１３1〜１３3から送信された３個のリクエストパケットへの応答になる３個のレスポンスパケットを次々に生成するものとする。そして、パケット送信装置１３1から送出されたリクエストパケットに対応するレスポンスパケットが、最初にIEEE1394バス１６へと送出されるものとし、パケット送信装置１３2、１３3から送信されたリクエストパケットへの対応となるレスポンスパケットは、まだIEEE1394バス１６へと送出されていないものとする。
【００６３】
このIEEE1394バス１６にはパケット受信装置１４の入力が、パケット受信装置１４の出力には受信バッファ１７の入力が、それぞれ接続されており、受信バッファ１７の出力は、パケット処理装置１２の入力に接続されている。
【００６４】
IEEE1394バス１６からパケット受信装置１４にレスポンスパケットが到達すると、パケット受信装置１４は、受信バッファ１７の空き容量に応じて、レスポンスパケットが受信可能か否かを判断する。
【００６５】
パケット受信装置１４は、受信バッファ１７に、レスポンスパケットを保持できる分の空き領域があるときには、レスポンスパケットが受信可能であると判断する。そしてパケット受信装置１４は、IEEE1394バス１６から到達したレスポンスパケットを受信バッファ１７に出力するとともに、レスポンスパケットを受信した旨を、パケット送信装置１３1とディスパッチャ１９に通知する。
【００６６】
レスポンスパケットが受信されたことが通知されると、パケット送信装置１３1の受信待ち状態が解除される。しかし、後述する送出不許可の制御命令がパケット送信装置１３1に入力されているときには、受信待ち状態が解除された場合でも、送出予定のリクエストパケットの送出ができないようにされる。
【００６７】
一方ディスパッチャ１９は、レスポンスパケットを受信したことが通知されたら、記憶領域４０の第１、第４の領域部４１、４４から、受信済みのレスポンスパケットに対応するリクエストパケットのtLabelと、上記レスポンスパケットのデータサイズとを消去する。
【００６８】
受信バッファ１７は、入力された受信済みのレスポンスパケットを一時保持する。受信バッファ１７が受信済みのレスポンスパケットを保持している間に、送信バッファ１５から、これから送出されようとするリクエストパケット(以下で送出予定のリクエストパケットと称する。)が、ディスパッチャ１９に出力される。
【００６９】
ディスパッチャ１９は、送出予定のリクエストパケットから、そのtLabelとデータサイズとを取得し、送出予定のリクエストパケットに対応するレスポンスパケット(以下で受信予定のレスポンスパケットと称する)のデータサイズを求め、tLabelとともに一対一に対応付け、一組にして記憶領域４０の第１、第４の領域４１、４４に書き込む。
【００７０】
すると、この時点で記憶領域４０には、それぞれパケット送信装置１３2、１３3から送出され、まだパケット受信装置１４に受信されていないリクエストパケット(以下で未受信のリクエストパケットと称する。)のtLabelと、そのリクエストパケットに対応する未受信のレスポンスパケットのデータサイズとに加えて、送出予定のリクエストパケットのtLabelと、受信予定のレスポンスパケットのデータサイズとが書き込まれていることになる。
【００７１】
ディスパッチャ１９は、記憶領域４０に書き込まれた未受信のレスポンスパケットのデータサイズと、受信予定のレスポンスパケットのデータサイズとの総和(以下で未受信及び受信予定のレスポンスパケットのデータサイズの総和と称する)を求める。こうして求められた未受信及び受信予定のレスポンスパケットのデータサイズとの総和は、比較器１８の一方の入力へと入力される。
【００７２】
パケット受信装置１４には、検出回路(図示せず)が設けられており、受信バッファ１７の空き容量が常時検出されている。こうして検出回路で検出された受信バッファ１７の空き容量は、比較器１８の他方の入力に入力される。
【００７３】
比較器１８は、未受信及び受信予定のレスポンスパケットのデータサイズの総和と、受信バッファ１７の空き容量とを常時比較している。
この時点で、未受信のレスポンスパケットは、パケット送信装置１３2、１３3から出力されたリクエストパケットに対応したレスポンスパケットであって、受信予定のレスポンスパケットは、パケット送信装置１３2、１３3から出力されたリクエストパケットに対応するレスポンスパケットであるものとする。
【００７４】
受信バッファ１７の空き容量が、未受信及び受信予定のレスポンスパケットのデータサイズの総和よりも大きい場合には、比較器１８は送出許可の制御命令をパケット送信装置１３1に出力する。この制御命令が入力されると、パケット送信装置１３1は、送出予定のリクエストパケットをIEEE1394バス１６に送出する。
【００７５】
一方、受信バッファ１７の空き容量が、未受信及び受信予定のレスポンスパケットのデータサイズの総和よりも少ない場合には、比較器１８は、パケット送信装置１３1に、送出不許可の制御命令を出力する。
【００７６】
この制御命令により、受信待ち状態が解除されていても、パケット送信装置１３1は、送出予定のリクエストパケットを送出できないようにされる。
【００７７】
従来では、パケット送信装置１３2、１３3から送信されたリクエストパケットに対する未受信のレスポンスパケットがパケット受信装置１４で受信されてしまうと、受信バッファ１７の空き容量が少なくなって、受信予定のレスポンスパケットが受信できなくなることが考えられたが、本発明では、受信バッファ１７の空き容量が受信予定のレスポンスパケットのデータサイズよりも小さくなるときには、送出予定のリクエストパケットは出力できなくなるので、送出予定のリクエストパケットが送出されるときには、常に受信予定のレスポンスパケットのデータサイズ分の空き容量が、受信バッファ１７に確保されていることになる。
【００７８】
従って、送出予定のリクエストパケットが送出されるときには、常に受信予定のレスポンスパケットは受信可能な状態にある。
受信バッファ１７から受信済みのレスポンスパケットがパケット処理装置１２に出力され、受信済みのレスポンスパケットが占有していたメモリ領域が解放されると、受信バッファ１７の空き容量が増える。こうして受信バッファ１７の空き容量が増えて未受信及び受信予定のレスポンスパケットのデータサイズの総和よりも多くなったら、比較器１８は、送出許可の制御命令をパケット送信装置１３1に出力する。
【００７９】
後に、未受信のレスポンスパケットがパケット受信装置で受信されると、パケット送信装置１３2、１３3の受信待ち状態が解除されるが、各パケット送信装置１３2、１３3もまた、パケット送信装置１３1と同様に、送出許可の制御命令が出力されるまでは新たなリクエストパケットを送出できないようにされている。
【００８０】
以上説明したように、データ処理装置１１では、ディスパッチャ１９で求められた未受信及び受信予定のレスポンスパケットのデータサイズの総和と、受信バッファ１７の空き容量とを比較器１８で比較し、受信バッファ１７の空き容量が未受信及び受信予定のレスポンスパケットのデータサイズの総和よりも小さいときには、パケット送信装置１３1〜１３3が受信待ち状態になっていなくとも、送出予定のリクエストパケットを送信できないようにし、受信バッファ１７の空き容量が未受信及び受信予定のレスポンスパケットのデータサイズの総和よりも大きくなったときに、送出予定のリクエストパケットを送信できるようにしている。
【００８１】
このため、未受信のレスポンスパケットと、受信予定のレスポンスパケットが一度に生成されて、次々と受信されるような状態になった場合でも、送出予定のリクエストパケットを送出するときには、受信バッファ１７に、未受信及び受信予定のレスポンスパケットのデータサイズの総和分の空き容量が確保されているので、全てのレスポンスパケットを次々に受信することができる。これにより、未受信のレスポンスパケットが受信された場合でも、受信バッファ１７の空き容量が少なくて、受信予定のレスポンスパケットが受信できなくなるということがなくなる。
【００８２】
従って、受信を拒否されたレスポンスパケットが他のデータ処理装置から再送されることもなくなるので、「ビジー」のアクノレジが他のデータ処理装置側に返され、他のデータ処理装置側でリトライが繰り返されて、バスが無駄に使われないようにすることができる。
【００８３】
なお、図２のデータ処理装置１１では、パケット送信装置１３1〜１３3を３個有するものとしているが、本発明はこれに限らず、パケット送信装置を何個有するものとしてもよい。このときには、ディスパッチャ１９内の記憶領域４０内に、パケット送信装置の個数に対応する数の領域を設け、各領域を各パケット送信装置に対応付けて、それぞれの領域にtLabelやデータサイズを書き込むようにすればよい。
【００８４】
また、記憶領域に書き込むのは、tLabelに限らず、例えば、各パケット送信装置１３1〜１３3を識別するためにそれぞれに割り振られた機械番号と、レスポンスパケットのデータサイズとを組にして記憶領域に書きこんでもよい。
【００８５】
【発明の効果】
送出予定のリクエストパケットを送出するときには、常にレスポンスパケットを受信することが可能な状態になり、受信バッファの空き容量が少なく、レスポンスパケットが受信できないときには、送出予定のリクエストパケットは送出されないので、受信装置で受信が拒否され、リトライが繰り返される間にシリアルバスが無駄に使われ、データ送受信の効率が低くなってしまうことを抑止することができる。
【図面の簡単な説明】
【図１】本発明の実施形態のデータ処理装置を説明する図
【図２】複数のパケット送信装置を有する本発明の実施形態のデータ処理装置を説明する図
【図３】(ａ)：リクエストパケットのフォーマットを説明する図
(ｂ)：ディスパッチャに設けられた記憶領域を説明する図
【図４】従来のデータ処理装置を説明する図
【符号の説明】
１……データ処理装置    ２……パケット処理装置    ３、１３1〜１３3……パケット送信装置(送信装置)    ４……パケット受信装置(受信装置)  ６……IEEE1394バス(バス)  ７……受信バッファ    ８、１８……比較器  ９……演算器１０、２０…判定回路(判定手段)
【図１】
0004112716.tif 000002
【図２】
0004112716.tif 000003
【図３】
0004112716.tif 000004
【図４】
0004112716.tif 000005