(57)【要約】【課題】一の物理的なシリアル通信バスを複数のバッファが共用することにより仮想通信バスを実現する情報転送において、情報転送バッファを有効利用すること。【解決手段】仮想通信バスを実現する情報転送回路１００であって、シリアル通信バスを介して接続された対向装置に含まれるＶＣ用バッファの数を対向バッファ数として認識するＶＣ確立部１２２と、認識された対向バッファ数が情報転送回路１００に含まれるＶＣ用バッファの数よりも少ない場合、情報転送回路１００に含まれるＶＣ用バッファのうち対向バッファ数と同数のＶＣ用バッファを仮想通信バスのために使用する使用バッファ領域として決定する使用バッファ認識部１２３と、余分バッファ領域を使用バッファ領域を拡張するための領域として割り当てるＶＣバッファ管理部１２４とを有することを特徴とする。【選択図】図３
2010044569.tif 000002
【特許請求の範囲】
【請求項１】
一の物理的なシリアル通信バスを複数の仮想通信用バッファ領域が共用することにより仮想的に独立した複数の情報通信バスである仮想通信バスを実現する情報転送回路であって、
前記シリアル通信バスを介して接続された対向装置に含まれる仮想通信用バッファ領域の数を対向バッファ数として認識する対向バッファ数認識部と、
前記認識された対向バッファ数が前記情報転送回路に含まれる仮想通信用バッファ領域の数よりも少ない場合、前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記対向バッファ数と同数の仮想通信用バッファ領域を前記仮想通信バスのために使用する使用バッファ領域として決定する使用バッファ決定部と、
前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記使用バッファ領域以外の余分バッファ領域を、前記情報転送回路が情報転送を実行する際に用いる情報転送バッファ領域を拡張するための領域として割り当てる余分バッファ領域割り当て部とを有することを特徴とする、情報転送回路。
【請求項２】
前記余分バッファ領域割り当て部は、前記使用バッファ領域を拡張するための領域として前記余分バッファ領域を割り当てることを特徴とする、請求項１に記載の情報転送回路。
【請求項３】
前記情報転送回路に含まれる複数の仮想通信用バッファ領域は、前記対向装置に含まれる複数の仮想通信用バッファ領域とのネゴシエーション処理において夫々の仮想通信用バッファ領域毎にネゴシエーション処理が実行され、
前記余分バッファ領域割り当て部は、前記情報転送回路に含まれる複数の仮想通信用バッファ領域のうち、最初にネゴシエーション処理が実行される仮想通信用バッファ領域以外の仮想通信用バッファ領域を拡張する領域として、前記余分バッファ領域を割り当てることを特徴とする、請求項２に記載の情報転送回路。
【請求項４】
前記情報転送回路に含まれる複数の仮想通信用バッファ領域と前記対向装置に含まれる複数の仮想通信用バッファ領域とのネゴシエーション処理を実行するネゴシエーション処理部を更に有し、
前記ネゴシエーション処理部は、前記情報転送回路に含まれる仮想通信用バッファ領域に関する情報を含むネゴシエーション情報を送信することにより前記ネゴシエーション処理を実行し、
前記ネゴシエーション情報は、前記情報転送回路に含まれる仮想通信用バッファ領域の数の情報を含むことを特徴とする、請求項２に記載の情報転送回路。
【請求項５】
前記情報転送回路に含まれる複数の仮想通信用バッファ領域は、前記対向装置に含まれる複数の仮想通信用バッファ領域とのネゴシエーション処理において夫々の仮想通信用バッファ領域毎にネゴシエーション処理が実行され、
前記情報転送回路に含まれる複数の仮想通信用バッファ領域のうち、最初にネゴシエーション処理が実行される仮想通信用バッファ領域を前記ネゴシエーション処理の後に初期化するバッファ領域初期化部を更に有し、
前記余分バッファ領域割り当て部は、前記使用バッファ領域として用いられる前記仮想通信用バッファ領域のうち前記ネゴシエーション処理が最初に実行される仮想通信用バッファ領域を含む仮想通信用バッファ領域を拡張する領域として、前記余分バッファ領域を割り当てることを特徴とする、請求項２に記載の情報転送回路。
【請求項６】
前記余分バッファ領域割り当て部は、前記情報転送回路が情報転送を実行する際のリトライに用いられるバッファ領域を拡張する領域として前記余分バッファ領域を割り当てることを特徴とする、請求項１乃至５いずれか１項に記載の情報転送回路。
【請求項７】
前記余分バッファ領域割り当て部は、前記余分バッファ領域と前記情報転送バッファ領域とを関連付ける情報を生成することにより、前記情報転送バッファ領域を拡張するための領域として前記余分バッファ領域を割り当てることを特徴とする、請求項１乃至６いずれか１項に記載の情報転送回路。
【請求項８】
前記余分バッファ領域割り当て部は、前記情報転送バッファ領域と前記余分バッファ領域との接続を切り換えることにより、前記情報転送バッファ領域を拡張するための領域として前記余分バッファ領域を割り当てることを特徴とする、請求項１乃至６いずれか１項に記載の情報転送回路。
【請求項９】
前記情報転送回路が前記対向装置との間で情報転送をする際の情報の方式に関する情報を記憶している方式情報記憶部と、
前記余分バッファ割り当て部による前記余分バッファ領域の割り当て結果に応じて前記方式情報記憶部に記憶されている情報を更新する方式情報更新部とを更に有することを特徴とする、請求項１乃至８いずれか１項に記載の情報転送回路。
【請求項１０】
前記方式情報は、１つのパケットに含めることができる情報容量に関する容量情報を含み、
前記方式情報更新部は、前記容量情報を更新することを特徴とする請求項９に記載の情報転送回路。
【請求項１１】
前記余分バッファ領域割り当て部は、前記余分バッファ領域割り当て部は、前記使用バッファ領域若しくは前記情報転送回路が情報転送を実行する際のリトライに用いられるリトライバッファ領域の少なくとも一方を拡張する領域として前記余分バッファ領域を割り当て、
前記方式情報更新部は、前記余分バッファ領域割り当て部が前記使用バッファ領域及び前記リトライバッファ領域の両方を拡張する領域として前記余分バッファ領域を割り当てた場合に、前記１つのパケットに含めることができる情報容量を増やすように前記容量情報を更新することを特徴とする、請求項１０に記載の情報転送回路。
【請求項１２】
前記余分バッファ領域割り当て部は、前記情報転送回路による情報転送の実行に応じて前記余分バッファ領域を動的に割り当てることを特徴とする、請求項１乃至１１いずれか１項に記載の情報転送回路。
【請求項１３】
請求項１乃至１２いずれか１項に記載の情報転送回路を含むことを特徴とする、情報処理装置。
【請求項１４】
一の物理的なシリアル通信バスを複数の仮想通信用バッファ領域が共用することにより仮想的に独立した複数の情報通信バスである仮想通信バスを実現する情報転送回路の制御方法であって、
前記シリアル通信バスを介して接続された対向装置に含まれる仮想通信用バッファ領域の数を対向バッファ数として認識し、
前記認識された対向バッファ数が前記情報転送回路に含まれる仮想通信用バッファ領域の数よりも少ない場合、前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記対向バッファ数と同数の仮想通信用バッファ領域を前記仮想通信バスのために使用する使用バッファ領域として決定し、
前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記使用バッファ領域以外の余分バッファ領域を、前記情報転送回路が情報転送を実行する際に用いる情報転送バッファ領域を拡張するための領域として割り当てることを特徴とする、情報転送回路の制御方法。
【請求項１５】
請求項１４に記載の情報転送回路の制御方法を情報処理装置に実行させることを特徴とする、制御プログラム。
【請求項１６】
請求項１５に記載の制御プログラムを情報処理装置が読み取り可能な形式で記録したことを特徴とする、記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報転送回路、情報処理装置、情報転送回路の制御方法、制御プログラム及び記録媒体に関し、特に一の物理的な通信バスを複数のバッファが共用することにより仮想的に独立した複数の通信バスとして用いる際のバッファの有効利用に関する。
【背景技術】
【０００２】
ＰＣＩ  Ｅｘｐｒｅｓｓ規格等のシリアル通信を用いた情報転送においては、ＶＣ（Ｖｉｒｔｕａｌ  Ｃｈａｎｎｅｌ：仮想通信バス）による情報転送が行なわれる。ＶＣとは、一の物理的な通信バスを複数のバッファが共用することにより、仮想的に独立した複数の情報通信バスを実現するものである（例えば、特許文献１参照）。ＶＣのチャネル数、即ち、仮想的な通信バスの数は、ＶＣを実現するための上記のバッファ（以降、ＶＣ用バッファとする）の数によって決まる。
【特許文献１】特開２００５−３３２３１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のＶＣによる情報転送において、ＶＣのチャネル数は、情報転送を行なう２つのデバイスに夫々実装されたＶＣ用バッファ数のうち、少ない方の数に合わせられていた。そのため、２つのデバイスに実装されたＶＣ用バッファの数が異なる場合、ＶＣ用バッファが多く実装されたデバイスの余分なＶＣ用バッファは利用されていなかった。これにより、装置に含まれるリソースに無駄が生じていた。
【０００４】
本発明は、上記実情を考慮してなされたものであり、一の物理的なシリアル通信バスを複数のバッファが共用することにより仮想通信バスを実現する情報転送において、情報転送バッファを有効利用することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、請求項１に記載の発明は、一の物理的なシリアル通信バスを複数の仮想通信用バッファ領域が共用することにより仮想的に独立した複数の情報通信バスである仮想通信バスを実現する情報転送回路であって、前記シリアル通信バスを介して接続された対向装置に含まれる仮想通信用バッファ領域の数を対向バッファ数として認識する対向バッファ数認識部と、前記認識された対向バッファ数が前記情報転送回路に含まれる仮想通信用バッファ領域の数よりも少ない場合、前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記対向バッファ数と同数の仮想通信用バッファ領域を前記仮想通信バスのために使用する使用バッファ領域として決定する使用バッファ決定部と、前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記使用バッファ領域以外の余分バッファ領域を、前記情報転送回路が情報転送を実行する際に用いる情報転送バッファ領域を拡張するための領域として割り当てる余分バッファ領域割り当て部とを有することを特徴とする。
【０００６】
また、請求項２に記載の発明は、請求項１に記載の情報転送回路において、前記余分バッファ領域割り当て部が、前記使用バッファ領域を拡張するための領域として前記余分バッファ領域を割り当てることを特徴とする。
【０００７】
また、請求項３に記載の発明は、請求項２に記載の情報転送回路において、前記情報転送回路に含まれる複数の仮想通信用バッファ領域が、前記対向装置に含まれる複数の仮想通信用バッファ領域とのネゴシエーション処理において夫々の仮想通信用バッファ領域毎にネゴシエーション処理が実行され、前記余分バッファ領域割り当て部が、前記情報転送回路に含まれる複数の仮想通信用バッファ領域のうち、最初にネゴシエーション処理が実行される仮想通信用バッファ領域以外の仮想通信用バッファ領域を拡張する領域として、前記余分バッファ領域を割り当てることを特徴とする。
【０００８】
また、請求項４に記載の発明は、請求項２に記載の情報転送回路において、前記情報転送回路に含まれる複数の仮想通信用バッファ領域と前記対向装置に含まれる複数の仮想通信用バッファ領域とのネゴシエーション処理を実行するネゴシエーション処理部を更に有し、前記ネゴシエーション処理部が、前記情報転送回路に含まれる仮想通信用バッファ領域に関する情報を含むネゴシエーション情報を送信することにより前記ネゴシエーション処理を実行し、前記ネゴシエーション情報は、前記情報転送回路に含まれる仮想通信用バッファ領域の数の情報を含むことを特徴とする。
【０００９】
また、請求項５に記載の発明は、請求項２に記載の情報転送回路において、前記情報転送回路に含まれる複数の仮想通信用バッファ領域が、前記対向装置に含まれる複数の仮想通信用バッファ領域とのネゴシエーション処理において夫々の仮想通信用バッファ領域毎にネゴシエーション処理が実行され、前記情報転送回路に含まれる複数の仮想通信用バッファ領域のうち、最初にネゴシエーション処理が実行される仮想通信用バッファ領域を前記ネゴシエーション処理の後に初期化するバッファ領域初期化部を更に有し、前記余分バッファ領域割り当て部が、前記使用バッファ領域として用いられる前記仮想通信用バッファ領域のうち前記ネゴシエーション処理が最初に実行される仮想通信用バッファ領域を含む仮想通信用バッファ領域を拡張する領域として、前記余分バッファ領域を割り当てることを特徴とする。
【００１０】
また、請求項６に記載の発明は、請求項１乃至５いずれか１項に記載の情報転送回路において、前記余分バッファ領域割り当て部が、前記情報転送回路が情報転送を実行する際のリトライに用いられるバッファ領域を拡張する領域として前記余分バッファ領域を割り当てることを特徴とする。
【００１１】
また、請求項７に記載の発明は、請求項１乃至６いずれか１項に記載の情報転送回路において、前記余分バッファ領域割り当て部が、前記余分バッファ領域と前記情報転送バッファ領域とを関連付ける情報を生成することにより、前記情報転送バッファ領域を拡張するための領域として前記余分バッファ領域を割り当てることを特徴とする。
【００１２】
また、請求項８に記載の発明は、請求項１乃至６いずれか１項に記載の情報転送回路において、前記余分バッファ領域割り当て部が、前記情報転送バッファ領域と前記余分バッファ領域との接続を切り換えることにより、前記情報転送バッファ領域を拡張するための領域として前記余分バッファ領域を割り当てることを特徴とする。
【００１３】
また、請求項９に記載の発明は、請求項１乃至８いずれか１項に記載の情報転送回路において、前記情報転送回路が前記対向装置との間で情報転送をする際の情報の方式に関する情報を記憶している方式情報記憶部と、前記余分バッファ割り当て部による前記余分バッファ領域の割り当て結果に応じて前記方式情報記憶部に記憶されている情報を更新する方式情報更新部とを更に有することを特徴とする。
【００１４】
また、請求項１０に記載の発明は、請求項９に記載の情報転送回路において、前記方式情報が、１つのパケットに含めることができる情報容量に関する容量情報を含み、前記方式情報更新部は、前記容量情報を更新することを特徴とする。
【００１５】
また、請求項１１に記載の発明は、請求項１０に記載の情報転送回路において、前記余分バッファ領域割り当て部が、前記余分バッファ領域割り当て部は、前記使用バッファ領域若しくは前記情報転送回路が情報転送を実行する際のリトライに用いられるリトライバッファ領域の少なくとも一方を拡張する領域として前記余分バッファ領域を割り当て、前記方式情報更新部が、前記余分バッファ領域割り当て部が前記使用バッファ領域及び前記リトライバッファ領域の両方を拡張する領域として前記余分バッファ領域を割り当てた場合に、前記１つのパケットに含めることができる情報容量を増やすように前記容量情報を更新することを特徴とする。
【００１６】
また、請求項１２に記載の発明は、請求項１乃至１１いずれか１項に記載の情報転送回路において、前記余分バッファ領域割り当て部が、前記情報転送回路による情報転送の実行に応じて前記余分バッファ領域を動的に割り当てることを特徴とする。
【００１７】
また、請求項１３に記載の発明は、情報処理装置であって、請求項１乃至１２いずれか１項に記載の情報転送回路を含むことを特徴とする。
【００１８】
また、請求項１４に記載の発明は、一の物理的なシリアル通信バスを複数の仮想通信用バッファ領域が共用することにより仮想的に独立した複数の情報通信バスである仮想通信バスを実現する情報転送回路の制御方法であって、前記シリアル通信バスを介して接続された対向装置に含まれる仮想通信用バッファ領域の数を対向バッファ数として認識し、前記認識された対向バッファ数が前記情報転送回路に含まれる仮想通信用バッファ領域の数よりも少ない場合、前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記対向バッファ数と同数の仮想通信用バッファ領域を前記仮想通信バスのために使用する使用バッファ領域として決定し、前記情報転送回路に含まれる仮想通信用バッファ領域のうち前記使用バッファ領域以外の余分バッファ領域を、前記情報転送回路が情報転送を実行する際に用いる情報転送バッファ領域を拡張するための領域として割り当てることを特徴とする。
【００１９】
また、請求項１５に記載の発明は、制御プログラムであって、請求項１４に記載の情報転送回路の制御方法を情報処理装置に実行させることを特徴とする。
【００２０】
また、請求項１６に記載の発明は、記録媒体であって、請求項１５に記載の制御プログラムを情報処理装置が読み取り可能な形式で記録したことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、一の物理的なシリアル通信バスを複数のバッファが共用することにより仮想通信バスを実現する情報転送において、バッファを有効利用することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
実施の形態１．
本実施形態においては、仮想通信バスを実現する情報転送回路を含む画像処理装置１を例として説明する。本実施形態に係る画像処理装置１は、スキャナ、プリンタ及び複写機としての機能を有する複合機として構成される。
【００２３】
図１は、本実施形態に係る情報転送回路が用いられる画像処理装置１のハードウェア構成を示すブロック図である。図１に示すように、本実施形態に係る画像処装置１は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理端末と同様の構成を含む。即ち、本実施形態に係る情報転送回路は、ＰＣ等の一般的な情報処理装置にも適用可能である。
【００２４】
即ち、本実施形態に係る画像処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、エンジン３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０、ＮＶＲＡＭ（Ｎｏｎ―Ｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６０及びＩ／Ｆ７０がバスＢを介して接続されている。また、Ｉ／Ｆ７０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）８０及び操作部９０が接続されている。
【００２５】
ＣＰＵ１０は演算手段であり、情報処理装置１全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。エンジン３０は、スキャナやプリンタ等の画像処理機能を実行する画像処理エンジンである。ＨＤＤ４０は、磁気記録媒体を用いた大容量記憶装置である。ＲＯＭ５０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。
【００２６】
ＮＶＲＡＭ６０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム及びアプリケーション・プログラムの動作パラメータの情報等が格納される。Ｉ／Ｆ７０は、バスＢと各種のハードウェアやネットワーク等を接続し制御する。本実施形態に係る情報転送回路は、Ｉ／Ｆ７０に含まれる。ＬＣＤ８０は、ユーザが画像処理装置１の状態を確認するための視覚的ユーザインタフェースである。操作部９０は、キーボードやマウス等、ユーザが画像処理装置１に情報を入力するためのユーザインタフェースである。
【００２７】
次に、本実施形態に係るＩ／Ｆ７０に含まれる情報転送回路について、詳細に説明する。図２は、本実施形態に係るＩ／Ｆ７０のうち、ＬＣＤ８０との接続部分を示す図である。図２に示すように、本実施形態に係るＩ／Ｆ７０は、情報転送回路１００及びＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）２００を有する。本実施形態に係る情報転送回路１００とＶＧＡ２００とは、高速シリアル通信の規格であるＰＣＩ  Ｅｘｐｒｅｓｓに従って情報の送受信を行なう。
【００２８】
情報転送回路１００は、コントローラ１０１、トランザクション層制御部１０２、データリンク層制御部１０３、物理層制御部１０４及び接続部１０５を有する。また、ＶＧＡ２００は、コントローラ２０１、トランザクション層制御部２０２、データリンク層制御部２０３、物理層制御部２０４及び接続部２０５を有する。情報転送回路１００とＶＧＡ２００とにおいて、同一の名称を付す構成は同一若しくは対応した機能を担う。従って、以下の説明においては、情報転送回路１００についてのみ説明するが、ＶＧＡ２００においても同様である。
【００２９】
コントローラ１０１は、情報転送回路１００において最も上位の構成であり、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＡＭ等に読み出された制御用プログラムが、ＣＰＵに従って動作することにより、コントローラ１０１が構成される。コントローラ１０１は、情報転送回路１０１において、バスＢを介してＣＰＵ１０とのやり取りを実行する。接続部１０５は、情報転送回路１００とＶＧＡ２００とを実際に接続する接続端子を含む。
【００３０】
本実施形態のようにＰＣＩ  Ｅｘｐｒｅｓｓ規格のアーキテクチャにおいて中心となるのは、トランザクション層、データリンク層及び物理層である。トランザクション層制御部１０２、データリンク層制御部１０３及び物理層制御部１０４は、夫々トランザクション層、データリンク層及び物理層の動作を制御する。
【００３１】
トランザクション層制御部１０２は、ＴＬＰ（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ：トランザクション・レイヤ・パケット）の組み立て及び分解を行なう。ＴＬＰとは、ＰＣＩ  Ｅｘｐｒｅｓｓ規格の通信において、情報の送受信やイベントのようなトランザクションの伝達に用いられるパケットである。また、トランザクション層制御部１０２は、本実施形態の要旨となるＶＣを制御する構成を含む。
【００３２】
データリンク層制御部１０３は、情報転送のエラー検出、エラー訂正若しくはリトライ処理を実行する。これにより、データリンク層制御部１０３は、ＴＬＰの完全性を保証する。また、データリンク層制御部１０３は、リンク管理を行なう。即ち、データリンク層制御部１０３は、リンク管理やフロー制御のためのパケットのやり取りを行なう。データリンク制御部１０３が処理するパケットは、ＤＬＬＰ（Ｄａｔａ  Ｌｉｎｋ  Ｌａｙｅｒ  Ｐａｃｋｅｔ：データ・リンク・レイヤ・パケット）である。
【００３３】
物理層制御部１０４は、インタフェース動作に必要な回路を含む。物理層制御部１０４が含む回路は、ドライバ、入力バッファ、パラレル／シリアル変換機、ＰＬＬ（Ｐｈａｓｅ−Ｌｏｃｋｅｄ  Ｌｏｏｐ：位相同期回路）及びインピーダンス整合回路等である。また、物理層制御部１０４は、インタフェースの初期化、保守の機能を有する。更に、物理層制御部１０４は、データリンク層制御部１０３及びトランザクション層制御部１０２を実際のリンクで使用される信号技術から独立させる機能を有する。
【００３４】
このような情報転送回路１００において、上述したように、トランザクション層制御部１０２に含まれるＶＣを制御する構成及び動作が本実施形態の要旨となる。図３を参照して、トランザクション層制御部１０２の詳細について説明する。図３は、本実施形態に係るトランザクション層制御部１０２の構成を示すブロック図である。図３に示すように、トランザクション層制御部０２は、ＶＣコントローラ１２０、ＶＣ用バッファ２１〜２７、信号分配・混合器１２５を含む。また、ＶＣコントローラ１２０は、情報転送制御部１２１、ＶＣ確立部１２２、使用バッファ認識部１２３ＶＣバッファ管理部１２４を含む。
【００３５】
ＶＣコントローラ１２０は、トランザクション層制御部１０２において、ＶＣを制御して情報転送を行なう。ＶＣコントローラ１２０及びＶＣコントローラ１２０に含まれる各要素は、ソフトウェアとハードウェアとの組み合わせによって実現される。即ち、具体的には、ＲＡＭ等に読み出された制御用プログラムが、ＣＰＵ等の演算手段に従って動作することにより、ＶＣコントローラ１２０が構成される。情報転送制御部１２１は、ＴＬＰを生成し、ＶＣ用バッファ２１〜２７を介して送出する。また、情報転送制御部１２１は、ＶＣ用バッファ２１〜２７を介して受信したＴＬＰを分解する。
【００３６】
ＶＣ確立部１２２は、接続部１０５を介して接続された対向デバイス（本実施形態においてはＶＧＡ２００）との間でＶＣを確立する。使用バッファ認識部１２３は、ＶＣ確立部１２２によるＶＣの確立結果に応じて、ＶＣの数を認識する。ＶＣバッファ管理部１２４は、使用バッファ認識部１２３によるＶＣ数の認識結果に応じて、ＶＣ用バッファ２１〜２７を管理する。ＶＣバッファ管理部１２４の機能が本実施形態の要旨の一つとなる。
【００３７】
ＶＣ用バッファ２１〜２７は、ＶＣを実現するために設けられた情報転送用のバッファである。ＶＣ用バッファ２１〜２７は、信号分配・混合器１２５を介して１つのシリアル通信バスに接続されている。ＶＣ用バッファ２１〜２７が、夫々独立して動作することにより、１つのシリアル通信バスで、仮想的に複数の独立した通信バスを実現することができる。
【００３８】
ＶＣ用バッファ２１〜２７は、夫々ＶＣ０〜ＶＣ６までの各チャネルに対応している。信号分配・混合器１２５は、１つのシリアル通信バスの信号をＶＣ用バッファ２１〜２７に夫々分配する。また、信号分配・混合器１２５は、ＶＣバッファ２１〜２７の信号を混合して１つのシリアル通信バスに入力する。
【００３９】
次に、本実施形態に係る情報転送回路１００の初期化処理について説明する。図４は、本実施形態に係る情報転送回路１００の初期化動作を示すフローチャートである。図４に示す初期化動作は、情報処理装置１への電源投入後において、Ｉ／Ｆ７０のパワーオンリセット処理の一部として実行される。
【００４０】
図４に示すように、情報転送回路１００の初期化処理においては、先ずデータリンク層制御部１０３が、ＶＣ０のネゴシエーション処理を実行する（Ｓ４０１）。即ち、データリンク層制御部１０３が、ネゴシエーション処理部として機能する。ネゴシエーション処理は、情報転送回路１００とＶＧＡ２００との間でＶＣの数を相互認識する処理である。
【００４１】
Ｓ４０１の処理について、図５を参照して説明する。図５は、ネゴシエーション処理の態様を模式的に示す図である。図５に示すように、ＶＣ０のネゴシエーション処理は、データリンク制御部１０３によるリンクアップを受けて実行される。図５に示すように、ネゴシエーション処理においては、ＩｎｉｔＦＣ（Ｉｎｉｔｉａｌｉｚｅ  Ｆｌｏｗ  Ｃｏｎｔｒｏｌ）というパケットがやり取りされる。即ち、ＩｎｉｔＦＣがネゴシエーション情報として用いられる。本実施形態においては、ＩｎｉｔＦＣ１及びＩｎｉｔＦＣ２がやり取りされることにより、ネゴシエーションが完了する。
【００４２】
図５に示すように、ＩｎｉｔＦＣ１を受けたＶＧＡ２００のデータリンク層制御部２０３は、トランザクション層制御部２０２に含まれるＶＣ０のＶＣ用バッファを参照する。そして、ＶＣ０が有効であれば、データリンク層制御部２０３は、ＩｎｉｔＦＣ１を返す。その後、ＩｎｉｔＦＣ２のやり取りにより、ＶＣ０のネゴシエーションが完了する。
【００４３】
ＩｎｉｔＦＣ１、ＩｎｉｔＦＣ２のパケットには、ＶＣ用バッファの容量に関する情報が含まれる。これにより、ＶＣ確立部１２２はは、ＶＧＡ２００に含まれるＶＣ用バッファ（ここではＶＣ０のバッファ）の容量を認識する。ＶＣ確立部１２２は、認識したＶＧＡ２００のＶＣ用バッファの容量に関する情報をＶＣバッファ管理部１２４に格納する。これにより、ＶＣ０による情報転送が可能となる。
【００４４】
ＶＣ０のネゴシエーションが完了すると、トランザクション層制御部１０２のＶＣ確立部１２２が、コントローラ１０１の制御に基づき、コンフィグリード・ライト処理を実行する（Ｓ４０２）。ＶＣ確立部１２２は、Ｓ４０２において、既にネゴシエーションの完了したＶＣ０を介して、コンフィグ情報をＶＧＡ２００に送信し、ＶＧＡ２００からコンフィグ情報を読み出す。
【００４５】
Ｓ４０２においてやり取りされるコンフィグ情報には、例えば、情報転送回路１００、ＶＧＡ２００夫々に含まれるＶＣ用バッファの数の情報（以降、実装ＶＣ情報とする）が含まれる。これにより、ＶＣ確立部１２２は、ＶＧＡ２００に含まれるＶＣ用バッファの数を認識することができる。即ち、ＶＣ確立部１２２が対向バッファ数認識部として機能する。また、ＶＧＡ２００は、情報転送回路１００からコンフィグ情報を受信することにより、トランザクション層制御部２０２のＶＣ用バッファを有効にする。
【００４６】
コンフィグリード・ライト処理が完了すると、使用バッファ認識部１２３及びＶＣバッファ管理部１２４が連動して未使用バッファの割り振り処理を実行する（Ｓ４０３）。図６に、Ｓ４０３の処理の詳細を示す。図６に示すように、先ず、使用バッファ認識部１２３が、実装ＶＣ情報に基づいて実装ＶＣ数を認識する（Ｓ６０１）。ここで言う実装ＶＣ数とは、情報転送回路１００、ＶＧＡ２００夫々に実装されたＶＣ用バッファの数である。
【００４７】
次に、使用バッファ認識部１２３は、ＶＣ用バッファ２１〜２７のうち使用するバッファを決定する（Ｓ６０２）。Ｓ６０２において、使用バッファ認識部１２３は、ＶＧＡ２００に実装されたＶＣ用バッファの数に基づいて、使用するバッファ（以降、使用バッファとする）を決定する。具体的には、使用バッファ認識部１２３は、ＶＧＡ２００に実装されたＶＣ用バッファの数と同数の下図のＶＣ用バッファを使用バッファとして決定する。即ち、使用バッファ認識部１２３が、使用バッファ決定部として機能する。
【００４８】
使用バッファの決定に際しては、ＶＣ０、ＶＣ１、ＶＣ２、・・・というように、番号の若いＶＣ用バッファが優先的に使用バッファとして決定される。使用バッファ認識部１２３は、使用バッファを決定すると、その情報をＶＣバッファ管理部１２４に記憶させる。
【００４９】
ＶＣバッファ管理部１２４は、使用バッファ数の情報を記憶すると、未使用バッファが有るか否か判断する（Ｓ６０３）。Ｓ６０３の判断の結果、未使用バッファがある場合（Ｓ６０３／Ｙｅｓ）、ＶＣバッファ管理部１２４は、未使用バッファの記憶領域を使用バッファの記憶領域として割り振り（Ｓ６０４）、処理を終了する。即ち、ＶＣバッファ管理部１２４が、余分バッファ領域割り当て部として機能する。図３に示すように、本実施形態に係るＶＣ用バッファ２１〜２７は、夫々別々の記憶媒体として設けられている。Ｓ６０４における未使用バッファの割り振り処理においては、ＶＣバッファ管理部１２４が、未使用バッファの記憶領域のアドレスを管理する情報（バッファ割り振り情報）を生成する。
【００５０】
図７に、ＶＣバッファ管理部１２４が生成するバッファ割り振り情報の例を示す。図７の例においては、ＶＣ０〜ＶＣ２のバッファ、即ちＶＣ用バッファ２１〜２３が使用バッファであり、ＶＣ３以降のバッファ、即ちＶＣ用バッファ２４以降が未使用バッファである場合を例とする。図７に示すように、バッファ割り振り情報は、未使用バッファ、未使用バッファの記憶領域を特定するアドレス情報及び記憶領域を割り振る先のバッファの情報を含む。
【００５１】
図７の例においては、例えば、“ＶＣ３”のバッファ、即ちＶＣ用バッファ２４のアドレス“＊＊＊〜＃＃＃”の領域が、ＶＣ１の記憶領域を拡張する領域として割り振られる。図７に示すバッファ割り振り情報は、ＶＣバッファ管理部１２４によって生成され、情報転送制御部１２１に含まれる記憶領域に格納される。尚、図７に示すように、本実施形態においては、ＶＣ０が割り当て先バッファになっていない、これについては後に詳述する。
【００５２】
他方、未使用バッファがない場合（Ｓ６０３／ＮＯ）、ＶＣコントローラ１２０は、そのまま初期化処理を終了する。このような処理により、対向装置であるＶＧＡ２００との関係で使用不可能なＶＣ用バッファを有効利用することが可能となる。
【００５３】
図４の説明に戻る。未使用バッファ割り振り処理が完了すると、データリンク層制御部１０３は、変数ｎに“１”をセットし（Ｓ４０４）、ＶＣｎについてネゴシエーションを実行する（Ｓ４０５）。ｎ＝１であれば、ＶＣ１についてのネゴシエーション処理となる。図５に示すように、ＶＣ１についてのネゴシエーション処理も、ＶＣ０についてのネゴシエーション処理と同様、ＩｎｉｔＦＣ１及びＩｎｉｔＦＣ２をやり取りすることにより完了する。
【００５４】
Ｓ４０５のＩｎｉｔＦＣのやり取りにおいて、データリンク層制御部１０３は、上述したように、対応するＶＣ用バッファの容量の情報をやり取りする。ここで、ＶＣ１以降のネゴシエーション処理において、データリンク層制御部１０３は、ＶＣバッファ管理部１２４によって未使用バッファが割り振られた後の合計の容量をやり取りする。例えば、図７の例において、ＶＣ１のネゴシエーションを実行する場合、データリンク層制御部１０３は、ＶＣ１のＶＣ用バッファ２２、ＶＣ３のＶＣ用バッファ２４及びＶＣ４のＶＣ用バッファ２５の合計の容量を、ＩｎｉｔＦＣのパケットに含める。
【００５５】
ＶＣ１についてのネゴシエーション処理において、ＶＣ１が有効であれば（Ｓ４０６／Ｎｏ）、ＶＣ１を有効としてネゴシエーション処理を完了する（Ｓ４０８）。ここで、トランザクション層制御部１０２に含まれる全ＶＣ用バッファについてネゴシエーションが完了した場合、即ち、ｎ＝全ＶＣ用バッファの数である場合（Ｓ４０９／Ｙｅｓ）、データリンク層制御部１０３は、ネゴシエーションを終了する（Ｓ４０７）。また、ネゴシエーション対象であるＶＣｎが無効である場合（Ｓ４０６／Ｙｅｓ）も、ネゴシエーションを終了する（Ｓ４０７）。
【００５６】
他方、未だ全ＶＣ用バッファについてネゴシエーションが完了していなければ（Ｓ４０９／Ｎｏ）、データリンク層制御部２０３は、ｎをｎ＋１とし（Ｓ４１０）、Ｓ４０５からの処理を繰り返す。本実施形態においては、上述したように、ＶＣ０〜ＶＣ２が有効と成る。この場合、図５に示すように、ＶＣ３についてＩｎｉｔＦＣを実行すると、ＶＧＡ２００においてＶＣ３が無効であるため、ＶＧＡ２００はＩｎｉｔＦＣを返さない。これにより、ｎ＝３の場合においてＶＣ３が無効（Ｓ４０６／Ｙｅｓ）と判断され、ネゴシエーション処理が終了する（Ｓ４０７）。尚、ＶＣ用バッファの数は、コンフィグリード＆ライト処理（Ｓ４０２）により判明する。従って、情報転送回路１００は、ＶＣ３のＩｎｉｔＦＣ１を送信せずに処理を終了しても良い。これにより、不要な信号の送信を省略し、処理効率を向上することができる。
【００５７】
このような処理により、本実施形態に係るネゴシエーション処理が完了する。図４において説明したように、本実施形態においては、ＶＣ０についてネゴシエーションを完了した後、コンフィグリード・ライトを行なう。この際、ＶＣ０を介して情報の送受信を行なうため、ＶＣ０については先にバッファ領域を確定する必要がある。具体的には、ＶＣバッファ管理部１２４に、ＶＣ０のＶＣ用バッファの記憶容量を登録する必要がある。
【００５８】
このため、ＶＣ０以外のＶＣに対して、ＶＣ用バッファの記憶領域を割り振る。これにより、本実施形態に係る未使用バッファの有効利用機能を容易に実装することが可能となる。尚、本実施形態においては、“ＶＣ０”と呼称しているが、これは本実施形態に係る呼称である。即ち、“ＶＣ０”とは、図６に示すネゴシエーション処理において、最初にネゴシエーションが実行されるチャネルを示す。
【００５９】
以上説明したように、本実施形態に係る情報転送回路１００を用いることにより、一の物理的な通信バスを複数のバッファが共用することにより仮想通信バスを実現する情報転送において、バッファを有効利用することが可能となる。
【００６０】
尚、上述した処理により、使用バッファの記憶領域が仮想的に拡張される。従って、保持可能な情報量が拡大され、転送速度を向上することが可能となる。これは、保持可能なパケット数が増大することによる効果である。しかしながら、パケット数が増大すると、その分オーバーヘッドの容量も拡大し、非効率となる。これに対して、図８に示すように、トランザクション層制御部１０２が扱うＴＬＰのＭａｘ  Ｐａｙｌｏａｄ  Ｓｉｚｅを拡張することが考えられる。これにより、パケット数を増やすことなく、転送する情報量を増やすことが可能となる。
【００６１】
図８にＴＬＰは、トランザクション層制御部１０２において生成される情報である。そして、ＴＬＰは、トランザクション層制御部１０２が対向装置との間で情報転送をする際の情報の方式である。このＴＬＰを生成するための情報（以降、方式情報とする）は、ＶＣコントローラ１２０に設けられた記憶媒体に記憶されている。即ち、ＶＣコントローラ１２０が、方式情報記憶部として機能する。
【００６２】
また、図８に示すようにＭａｘ  Ｐａｙｌｏａｄ  Ｓｉｚｅを拡張する場合、上記方式情報を更新する必要がある。この更新処理は、例えば、未使用バッファの割り当て結果に応じて、ＶＣバッファ管理部１２４により実行される。即ち、ＶＣバッファ管理部１２４が方式情報更新部として機能する。
【００６３】
また、上記の説明においては、図５において説明したように、未使用バッファの領域と使用バッファとを固定して対応付ける例を説明した。この他、情報転送制御部１２１による転送状況に応じて、動的にバッファ領域を割り振るようにしても良い。例えば、ＶＣ１を介して情報転送が実行されている間は、未使用バッファをＶＣ１の拡張領域として用いても良い。
【００６４】
このような場合、図４のＳ４０５においてやり取りされるＩｎｉｔＦＣのパケットには、対象のＶＣ用バッファ及び全未使用バッファの合計の容量がバッファ容量の情報として含まれる。これにより、ＶＣバッファ管理部１２４は、本来のＶＣ用バッファの容量及び全未使用バッファの合計の容量を、対象のＶＣ用バッファの容量として認識する。尚、情報転送の実行時においては、情報転送制御部１２１が、ＶＣ用バッファ２１〜２７との接続を動的に切り換えて情報転送を実行する。
【００６５】
また、上記の説明においては、図５に示すように、未使用バッファをＶＣ用バッファのうち使用バッファに割り当てる態様を説明した。しかしながら、未使用バッファを割り当てる先は、ＶＣ用バッファに限られない。例えば、リトライバッファに割り当てることも可能である。換言すると、未使用バッファ、即ち余分バッファ領域は、情報転送回路１００が情報転送を実行する際に用いるバッファ領域、即ち情報転送バッファ領域を拡張するための領域として用いることが可能である。
【００６６】
未使用バッファをリトライバッファの拡張領域として用いることにより、リトライが発生した場合において、リトライバッファが保持可能な情報量が増大する。従って、転送速度の低下を低減して、好適にリトライを実行することが可能となる。尚、リトライバッファとは、本来データリンク層制御部１０３に設けられている。未使用バッファをリトライバッファとして用いる場合、情報転送制御部１２１がリトライ処理の制御を実行する。
【００６７】
尚、図８に示すように、ＴＬＰのＭａｘ  Ｐａｙｌｏａｄ  Ｓｉｚｅを拡張する態様は、ＶＣ用バッファ及びリトライバッファ両方の領域が未使用バッファにより拡張された場合に行なうことが好ましい。Ｍａｘ  Ｐａｙｌｏａｄ  Ｓｉｚｅが拡張される場合、必然的に一パケットのサイズが増大する。従って、バッファサイズが拡張されない場合、バッファが保持可能なパケット数が減る。その結果、パフォーマンスが低下する可能性もある。ＶＣ用バッファ及びリトライバッファの両方が拡張されていれば、そのような不具合を回避することができる。
【００６８】
また、上記の説明においては、ＶＣコントローラ１２０がソフトウェアとハードウェアとの組み合わせによって実現される例を説明した。この他、ＶＣコントローラ１２０は、完全にハードウェアで構成することも可能である。この場合、未使用バッファの割り振りは、図５に示すようなアドレス情報の管理ではなく、ＶＣ用バッファ２１〜２７に含まれる記憶素子と情報転送制御部１２１との接続をスイッチング素子によって切り換えることにより実行する。
【００６９】
また、上記の説明においては、ＶＣ確立部１２２、使用バッファ認識部１２３及びＶＣバッファ管理部１２４がトランザクション制御部１０２内部のＶＣコントローラ１２０に設けられている例を説明した。これらの機能は、コントローラ１０１に設けることも可能である。若しくは、図１に示すＲＡＭ２０にロードされたプログラムがＣＰＵ１０の制御に従って動作することにより実現することもできる。
【００７０】
実施の形態２．
実施の形態１においては、実装の容易化のため、ＶＣ０には、未使用バッファを割り当てない態様を説明した。しかしながら、転送速度の向上のためには、ＶＣ０にも未使用バッファを割り当てることが好ましい。本実施形態においては、ＶＣ０にも未使用バッファを割り当てる例に付いて説明する。尚、実施の形態１と同様の符号を付す構成については、同一または相当部を示し、説明を省略する。
【００７１】
本実施形態に係る情報処理装置１及び情報転送回路１００は、図１〜３で説明した実施の形態１の態様と略同様の構成を有する。本実施形態に係る情報転送回路１００は、未使用バッファの割り振り処理が実施の形態１とは異なる。上述したように、ＶＣ０への未使用バッファの割り当ては、ネゴシエーション処理における制約があるため、困難である。この制約を解消するために、本実施形態に係る情報転送回路１００は、実施の形態１とは異なる初期化処理を実行する。
【００７２】
図９は、本実施形態に係るネゴシエーション処理の動作を示すフローチャートである。図９に示すように、Ｓ９０１、Ｓ９０２は、図４において説明したＳ６０１、Ｓ６０２と同様に処理が実行される。尚、本実施形態に係るコンフィグリード・ライト処理（Ｓ９０２）において、ＶＣ確立部１２２は、取得した実装ＶＣ数情報をＶＣバッファ管理部１２４に格納する。また、ＶＣ確立部１２２は、コンフィグリード・ライト処理が完了すると、ＶＣバッファ管理部１２４にコンフィグリード済みフラグをセットする。
【００７３】
コンフィグリード・ライト処理を終了すると（Ｓ９０２）、情報転送回路１００は、レジスタをリセットする（Ｓ９０３）。Ｓ９０３においては、少なくともＶＣバッファ管理部１２４に記憶されているＶＣ用バッファ２１、即ちＶＣ０の容量の情報をリセットされる。これらのリセットは、例えば、ＶＣコントローラ１２０により実行される。即ち、ＶＣコントローラ１２０がバッファ領域初期化部として機能する。図１０に、ＶＣ用バッファ管理部１２４に記憶されている情報の例を示す。図１０に示すように、ＶＣ用バッファ管理部１２４に設けられたレジスタは、実装ＶＣ数情報、コンフィグリード済みフラグ、使用バッファ情報、バッファ割り振り情報及びＶＣ用バッファ容量情報を記憶している。
【００７４】
実装ＶＣ数情報、コンフィグリード済みフラグとは、上述したように、コンフィグリード・ライト処理（Ｓ９０２）において、ＶＣ確立部１２２が取得し、ＶＣバッファ管理部１２４に記憶させる情報である。使用バッファ情報とは、実施の形態１において説明したように、使用バッファ認識部１２３によって決定される情報である。バッファ割り振り情報とは、実施の形態１において説明したように、ＶＣバッファ管理部１２４によって生成される情報である。ＶＣ用バッファ容量情報とは、ＩｎｉｔＦＣのやりとりにより記憶される情報である。
【００７５】
情報転送回路１００は、Ｓ９０３の処理において、図１０に二重線で示す情報、即ち、実装ＶＣ数情報、コンフィグリード済みフラグを保持したまま、他の情報を消去するようにリセットを実行する。リセットが完了すると、使用バッファ認識部１２３及びＶＣバッファ管理部１２４が未使用バッファの割り振りを実行する（Ｓ９０４）。ＶＣコントローラ１２０は、ＶＣバッファ管理部１２４に記憶されているコンフィグリード済みフラグを確認することにより、リセット処理（Ｓ９０３）の後に割り振り処理（Ｓ９０４）に進む。
【００７６】
Ｓ９０４においては、図６において説明した処理と略同様に処理が実行される。ここで、本実施形態においては、図１０に示すＶＣ用バッファ容量情報がリセットされている。従って、ＶＣ０の容量情報も記憶されていない。これにより、図６のＳ５０４において、ＶＣ０にも未使用バッファを割り振ることが可能となる。未使用バッファ割り振り処理が完了すると、データリンク層制御部１０３は、変数ｎに“０”をセットし（Ｓ９０５）、ＶＣ０からネゴシエーション処理を実行する（Ｓ９０６）。その後、図４のＳ４０５以降の処理と同様に、Ｓ９０６以降の処理が実行される。
【００７７】
以上説明したように、本実施形態に係る情報転送回路１００においては、コンフィグリード・ライトが完了した後、ＶＣ０をリセットする。これにより、ＶＣ０に対しても、未使用バッファを割り当てることが可能となる。その結果、無効となったＶＣ用バッファを有効に利用し、転送効率を向上することが可能となる。
【００７８】
実施の形態３．
実施の形態２においては、ネゴシエーション処理が完了した後、図１０において説明したようなリセットを実行することにより、ＶＣへの未使用バッファの割り当てを可能とする例を説明した。この場合、上述したようなリセットを実行するための新たな構成が必要となる。従って、実装のためには回路の変更が必要となる。本実施形態においては、ＶＣ０への未使用バッファの割り当てをより容易に実現する方法を説明する。尚、実施の形態１、２と同様の符号を付す構成については、同一または相当部を示し説明を省略する。
【００７９】
図１１は、本実施形態に係るネゴシエーション処理の動作を示すフローチャートである。図１１に示すように、本実施形態においても、まずデータリンク層制御部１０３が、ＶＣ０についてのネゴシエーションを実行する（Ｓ１１０１）。ここで、本実施形態に係るネゴシエーション処理においては、データリンク層制御部１０３がやりとりするＩｎｉｔＦＣに含まれる情報が異なる。図１２に、本実施形態に係るＩｎｉｔＦＣのＤＬＬＰフォーマットを示す。
【００８０】
図１２に示すように、本実施形態に係るＩｎｉｔＦＣは、コマンド、ＶＣＩＤ（Ｖｉｒｔｕａｌ  Ｃｈａｎｎｅｌ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）、バッファ領域容量、ＶＣ実装数及びＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）の情報を含む。本実施形態においては、図１２に示すように、ＩｎｉｔＦＣのパケット中にＶＣ実装数の情報を含む点が要旨となる。即ち、従来のＩｎｉｔＦＣは、図１２に示す各情報のうち、ＶＣ実装数の情報を含まない。ＩｎｉｔＦＣのパケットは、データリンク制御部１０３が生成する。従って、データリンク制御部１０３を改良することにより、図１２に示すようなフォーマットを実現することが可能となる。
【００８１】
ＩｎｉｔＦＣのパケット中にＶＣ実装数の情報が含まれることにより、情報転送回路１００及びＶＧＡ２００は、図５に示すＩｎｉｔＦＣのやり取りによって、対向装置のＶＣ実装数を認識することができる。これにより、情報転送回路１００及びＶＧＡ２００は、コンフィグリード・ライト処理無しでＶＣ用バッファ２０有効にすることができる。コンフィグリード・ライト処理が不要であるため、図４に示すネゴシエーション動作中にＶＣ０のバッファ領域を確定する必要がない。従って、図４のＳ４０３において、ＶＣバッファ管理部１２４は、ＶＣ０のＶＣ用バッファ２１に対しても、他のＶＣ用バッファと同様に未使用バッファを割り当てることが可能となる。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態に係るＩ／Ｆの機能構成を示すブロック図である。
【図３】本発明の実施形態に係るトランザクション層制御部の機能構成を示すブロック図である。
【図４】本発明の実施形態に係る初期化処理の動作を示すフローチャートである。
【図５】本発明の実施形態に係るネゴシエーション処理の態様を示す図である。
【図６】本発明の実施形態に係る未使用バッファの割り当て動作を示すフローチャートである。
【図７】本発明の実施形態に係るバッファ割り振り情報に含まれる情報の例を示す図である。
【図８】本発明の実施形態に係るＭａｘ  Ｐａｙｌｏａｄ  Ｓｉｚｅの拡張態様を示す図である。
【図９】本発明の他の実施形態に係る初期化処理の動作を示すフローチャートである。
【図１０】本発明の他の実施形態に係るＶＣバッファ管理部が記憶している情報の例を示す図である。
【図１１】本発明の他の実施形態に係る初期化処理の動作を示すフローチャートである。
【図１２】本発明の他の実施形態に係るＩｎｉｔＦＣのパケットのフォーマットを示す図である。
【符号の説明】
【００８３】
１    情報処理装置
１０    ＣＰＵ
２０    ＲＡＭ
２１〜２７    ＶＣ用バッファ
３０    エンジン
４０    ＨＤＤ
５０    ＲＯＭ
６０    ＮＶＲＡＭ
７０    Ｉ／Ｆ
８０    ＬＣＤ
９０    操作部
１００    情報転送回路
１０１    コントローラ
１０２    トランザクション層制御部
１０３    データリンク層制御部
１０４    物理層制御部
１０５    接続部
１２０    ＶＣコントローラ
１２１    情報転送制御部
１２２    ＶＣ確立部
１２３    使用バッファ認識部
１２４    ＶＣバッファ管理部
１２５    信号分配・混合器
２００    ＶＧＡ
２０１    コントローラ
２０２    トランザクション層制御部
２０３    データリンク層制御部
２０４    物理層制御部
２０５    接続部
【図１】
2010044569.tif 000003
【図２】
2010044569.tif 000004
【図３】
2010044569.tif 000005
【図４】
2010044569.tif 000006
【図５】
2010044569.tif 000007
【図６】
2010044569.tif 000008
【図７】
2010044569.tif 000009
【図８】
2010044569.tif 000010
【図９】
2010044569.tif 000011
【図１０】
2010044569.tif 000012
【図１１】
2010044569.tif 000013
【図１２】
2010044569.tif 000014