(57)【要約】【課題】  本発明は、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）プロトコル等の通信プロトコルに従って通信相手との間でパケット通信を行なう通信装置に関し、送信と受信とでバッファメモリを共用し、しかもそのバッファメモリを送信と受信との双方に有効に利用する。【解決手段】  通信相手との間で送受信されるパケットの数を、送信のためのパケットと受信のためのパケットとに分けるとともに、データの送受信を伴わないパケットを含めて計数し、その計数値に基づいて、送信と受信との双方に共用される共用メモリの、送信用として割り当てるメモリ容量と受信用として割り当てるメモリ容量を変更する。【選択図】        図１
2005260638.tif 000002
【特許請求の範囲】
【請求項１】
通信相手との間でパケット通信を行なう通信装置において、
送信と受信とにバッファとして共用される共用メモリと、
前記共用メモリのメモリ領域を送信用と受信用とに割り当てるメモリ割当制御部と、
通信相手との間で送受信されるパケットの数を、送信のためのパケットと受信のためのパケットとに分けるとともに、データの送受信を伴わないパケットを含めて計数する計数部とを備え、
前記メモリ割当制御部が、前記共用メモリのメモリ領域の送信用に割り当てるメモリ容量と受信用に割り当てるメモリ容量を、前記計数部における計数値に基づいて変更するものであることを特徴とする通信装置。
【請求項２】
前記計数部に代えて、通信相手との間で送受信されるパケットのうちデータの送受信を伴わないパケットの数を、送信のためのパケットと受信のためのパケットとに分けて計数する計数部を備えたことを特徴とする請求項１記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）プロトコル等の通信プロトコルに従って通信相手との間でパケット通信を行なう通信装置に関する。
【背景技術】
【０００２】
近年、例えばパーソナルコンピュータ（以下、「ＰＣ」と略記する）と周辺機器との間でＵＳＢプロトコルに従うパケット通信を行なうことが盛んである。
【０００３】
ＵＳＢプロトコルに準拠した通信装置の場合、通常はエンドポイントごとにバッファメモリが備えられてそのバッファメモリを介してパケットの通信や受信が行なわれている。
【０００４】
ところが、エンドポイントごとにバッファメモリを用意すると、使用していないエンドポイントについては、折角のバッファメモリが有効利用されない結果となる。そこで、これを回避するために、特許文献１には、複数のエンドポイントでバッファメモリを共用する技術が開示されている。
【特許文献１】特開２００２−５５９５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１では複数のエンドポイントでバッファメモリを共用することでバッファメモリの総容量の低減が図られているが、この特許文献１に開示された技術は、そのバッファメモリの各メモリ領域をどのエンドポイントが利用するか、ということに関しては、先に利用を開始したエンドポイントに利用権があるという立場をとっている。
【０００６】
この場合、あるエンドポイントがデータ送信を行なうにあたり、例えば、バッファメモリのあるメモリ領域に送信データを書き込み、その送信データが送信されている間に別のメモリ領域に次の送信データを書き込む、というように、バッファメモリの一部のメモリ領域を使えば十分な場合であっても、そのエンドポイントが多量の送信用データを持っていて必要以上にバッファメモリの全メモリ領域に送信用データを書き込んでしまうと、例えば他のエンドポイントがデータ受信を行なおうとしてもバッファメモリに空き領域がなく、データ受信を行なうことができないという問題がある。
【０００７】
一方、この弊害を取り除くために送信と受信とでメモリ領域を固定的に分けると、前述したように、エンドポイントごとに別々にバッファメモリを備えたことと同じことになり、一方のエンドポイントではもっと広いメモリ領域を必要とする場面であったときに、別のメモリ領域がたとえ空いていてもその空いているメモリ領域が有効利用されない、という問題を生じる。
【０００８】
本発明は、上記事情に鑑み、送信と受信とでバッファメモリを共用し、しかもそのバッファメモリを送信と受信との双方に有効に利用することのできるシステムを備えた通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成する本発明の通信装置は、通信相手との間でパケット通信を行なう通信装置において、送信と受信とにバッファとして共用される共用メモリと、その共用メモリのメモリ領域を送信用と受信用とに割り当てるメモリ割当制御部と、通信相手との間で送受信されるパケットの数を、送信のためのパケットと受信のためのパケットとに分けるとともに、データの送受信を伴わないパケットを含めて計数する計数部とを備え、上記メモリ割当制御部が、共用メモリのメモリ領域の送信用に割り当てるメモリ容量と受信用に割り当てるメモリ容量を、計数部における計数値に基づいて変更するものであることを特徴とする。
【００１０】
ここで、本発明の通信装置は、上記計数部、すなわち、データの送受信を伴わないパケットを含めて計数する計数部に代えて、通信相手との間で送受信されるパケットのうちデータの送受信を伴わないパケットの数を、送信のためのパケットと受信のためのパケットとに分けて計数する計数部を備えてもよい。
【発明の効果】
【００１１】
例えばＵＳＢプロトコルの場合、バッファメモリが満杯または空になるとホストに対してＮＡＫ等を返送する。本発明の通信装置によれば、通信相手との間で送受信されるパケットの数を、送信のためのパケットと受信のためのパケットとに分けるとともに、データの送受信を伴わないパケットを含めて計数するため、あるいは、通信相手との間で送受信されるパケットのうちデータの送受信を伴わないパケットの数を送受信のためのパケットと受信のためのパケットとに分けて計数するため、送信用のメモリ領域と受信用メモリ領域の利用度合いを満杯あるいは空の状態を含めて把握することができ、メモリ割当制御部は、共用メモリの、送信用に割り当てるメモリ容量と受信用に割り当てるメモリ容量を、その計数部における計数値に基づいて適切に変更することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について説明する。
【００１３】
図１は、本発明の通信装置の一実施形態を示すブロック図である。
【００１４】
この通信装置１０は、ＰＣとの間でＵＳＢプロトコルに準拠した通信を行なう端末装置に内蔵されてその端末装置の通信機能を担っている。
【００１５】
この通信装置１０は、共用メモリ１１と、メモリ制御回路１２と、カウンタ１３と、Ｉｎ／Ｏｕｔ判定回路１４とから構成されている。
【００１６】
共用メモリ１１は、この通信装置１０を内蔵した端末装置内部からのＢｕｌｋ  Ｉｎ（ＵＳＢバスを経由してＰＣに送信する送信データの共用メモリ１１への書き込み）とＢｕｌｋ  Ｏｕｔ（ＵＳＢバスを経由し共用メモリ１１に書き込まれた受信データの共用メモリ１１からの読出し）との双方に共用されるバッファメモリである。
【００１７】
この共用メモリ１１はメモリ制御回路１２によって、Ｂｕｌｋ  Ｉｎ（ＰＣへの送信用）のメモリ領域とＢｕｌｋ  Ｏｕｔ用（ＰＣからの受信用）のメモリ領域とが別々に指定されており、この端末装置内部からＰＣへの送信用として共用メモリ１１に書き込まれる送信データは、共用メモリ１１のＢｕｌｋ  Ｉｎ用（ＰＣへの送信用）のメモリ領域に書き込まれてＵＳＢバスを経由してＰＣに送信され、ＰＣからの受信データは、共用メモリ１１のＢｕｌｋ  Ｏｕｔ用（ＰＣからの受信用）のメモリ領域に書き込まれてこの端末装置によってそのＢｕｌｋ  Ｏｕｔ用（ＰＣからの受信用）のメモリ領域から読み出される。この共用メモリ１１のＢｕｌｋ  Ｉｎ用（ＰＣへの送信用）のメモリ領域とＢｕｌｋ  Ｏｕｔ用（ＰＣからの受信用）のメモリ領域は初期状態では等分に割り当てられている。
【００１８】
カウンタ１３は、Ｉｎカウンタ１３ａとＯｕｔカウンタ１３ｂとから構成されている。Ｏｕｔカウンタ１３ｂは、ＵＳＢバス１５を通るパケットのうちのＰＣからのデータ受信のためのパケットの数をカウントするためのカウンタであり、Ｉｎカウンタ１３ａは、ＵＳＢバス１５を通るパケットのうちのＰＣへのデータ送信のためのパケットの数を送信するためのカウンタである。これらのカウンタではデータの実際の送受信を伴わないＮＡＫ、ＰＩＮＧ等のパケットもカウントされる。
【００１９】
各パケットの種類はそのパケット自体に記載されているため、Ｉｎ／Ｏｕｔ判定回路１４ではＵＳＢバスを監視してＵＳＢバス１５を今回通過したパケットがデータ受信のためのパケットであるか、あるいはデータ送信のためのパケットであるかが判定され、カウンタ１３では、その判定結果に従って、そのカウンタ１３を構成するＩｎカウンタ１３ａあるいはＯｕｔカウンタ１３ｂがカウントアップされる。
【００２０】
メモリ制御回路１２では、所定時間経過後、あるいはＩｎカウンタ１３ａとＯｕｔカウンタ１３ｂのカウント数の合計値が所定数に達した後、Ｉｎカウンタ１３ａとＯｕｔカウンタ１３ｂの双方のカウント値に基づいて、データ受信とデータ送信の効率のバランスをとるように、その時点以降、次の見直しの時点までの間の、共用メモリ１１のＢｕｌｋ  Ｉｎ用（ＰＣへのデータ送信用）のメモリ領域とＢｕｌｋ  Ｏｕｔ用（ＰＣからのデータ受信用）のメモリ領域を再配分する。
【００２１】
この構成の場合、共用メモリ１１のメモリ領域の割り当てをダイナミックには変更しないため特に複雑な制御回路を使用する必要はなく実際の転送状況に合った効率的なメモリ割り当てが可能となる。すなわち、本実施形態によれば転送のパフォーマンスの犠牲を最小限とし、回路量、メモリ容量を削減することができる。
【００２２】
ここで、上記実施形態では、Ｉｎ／Ｏｕｔ判定回路１４において、ＵＳＢバス１５上のパケットがデータ受信のためのパケットであるかデータ送信のためのパケットであるかを判定し、カウンタ１３では、データ受信のためのパケットとデータ送信のためのパケットには分けるもののデータの実際の送受信を伴うパケットであるか否かを問わずにパケットの数をカウントしている。ただし、共用メモリ１１のＢｕｌｋ  Ｉｎ用（ＰＣへのデータ送信用）のメモリ領域あるいはＢｕｌｋ  Ｏｕｔ用（ＰＣからのデータ受信用）のメモリ領域が不足しているという情報は、主に、データの実際の送受信を伴わないＮＡＫやＰＩＮＧ等のパケットが担っている。そこでＩｎ／Ｏｕｔ判定回路では、データ受信のためのパケットであるかデータ送信のためのパケットであるかを判定するとともに、さらに実際にデータの送受信を担っているパケットであるか否かを判定し、カウンタ１３では、データの実際の送受信を伴わないパケットのみを、データ受信のためのパケットとデータ送信のためのパケットとに分けてカウントし、メモリ制御回路１２でそのカウント結果に基づいて共用メモリ１１のメモリ領域を再配分してもよい。
【図面の簡単な説明】
【００２３】
【図１】本発明の通信装置の一実施形態を示すブロック図である。
【符号の説明】
【００２４】
１０    通信装置
１１    共用メモリ
１２    メモリ制御回路
１３    カウンタ
１３ａ    Ｉｎカウンタ
１３ｂ    Ｏｕｔカウンタ
１４    Ｉｎ／Ｏｕｔ判定回路
１５    ＵＳＢバス
【図１】
2005260638.tif 000003