(57)【要約】【課題】本発明は、スプリットトランザクションのプロトコルで通信を行う際の伝送路の利用効率を向上させたデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。【解決手段】ＡＳＩＣ５のアービタ１２は、ＤＭＡＣ１１ａ〜１１ｄからのライト要求に応じてライトデータを、ＰＣＩｅ  Ｉ／Ｆ回路１３からＰＣＩｅ伝送路７を経由させてＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１にバーストライト転送しているときに、該バーストライト転送のライト要求よりも優先度の高いリード要求がＤＭＡＣ１１ａ〜１１ｄから発行されると、バーストライト転送を分割して中断し、該リード要求を転送させた後に、中断した該バーストライト転送の後続データのバーストライト転送を再開する。【選択図】          図１
2011059979.tif 000002
【特許請求の範囲】
【請求項１】
リード要求を発行するリードマスタと、
ライト要求を発行するライトマスタと、
前記ライトマスタから発行されたライト要求と前記リードマスタから発行されたリード要求を調停してスプリットトランザクションの伝送路を経由させて該ライト要求と該リード要求を対向デバイスに転送するとともに、前記ライト要求にかかるライトデータをバーストライト転送する調停手段と、
前記バーストライト転送中に、該バーストライト転送のライト要求よりも優先度の高いリード要求が前記リードマスタから発行されると、該バーストライト転送を分割して中断させ、該リード要求を転送させた後、中断した該バーストライト転送の後続データのバーストライト転送を再開させるバーストライト転送制御手段と、
を備えていることを特徴とするデータ転送装置。
【請求項２】
前記データ転送装置は、前記対向デバイスにおいてリード要求の発行が抑制されているか否かを検知する検知手段を、さらに備え、
前記バーストライト転送制御手段は、前記検知手段が前記対向デバイスでリード要求の発行が抑制されていることを検知すると、前記バーストライト転送の分割を禁止して、該バーストライト転送をそのまま継続させることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記データ転送装置は、前記スプリットトランザクションの伝送路がPCI Expressであり、前記対向デバイスが、PCI Express Ｉ／Ｆを有し、
前記検知手段は、前記対向デバイスの前記PCI Express Ｉ／ＦからPCI ExpressのFlow Control情報を取得して前記リード要求の発行が抑制されているか否か検知することを特徴とする請求項２記載のデータ転送装置。
【請求項４】
前記データ転送装置は、前記バーストライト転送の分割の最小データサイズが設定される最小データサイズ設定手段をさらに備え、
前記バーストライト転送制御手段は、前記最小データサイズ設定手段で設定される最小データサイズに基づいて前記バーストライト転送を分割することを特徴とする請求項１から請求項３のいずれかに記載のデータ転送装置。
【請求項５】
前記データ転送装置は、前記スプリットトランザクションの伝送路がPCI Expressであり、
前記バーストライト転送制御手段は、前記対向デバイスと仮想的に直結するリンクであるバーチャルチャネルの情報または／及びレーン数に基づいて、前記バーストライト転送を分割して前記リード要求を挿入して転送するか、該バーストライト転送を継続するかを制御することを特徴とする請求項１から請求項４のいずれかに記載のデータ転送装置。
【請求項６】
前記データ転送装置は、１つの前記バーストライト転送に対する前記リード要求の最大挿入回数を設定する挿入回数設定手段を備え、
前記バーストライト転送制御手段は、前記挿入回数設定手段で設定されている最大挿入回数だけ１つのバーストライト転送にリード要求を挿入すると、該バーストライト転送に対するリード要求の挿入を禁止して、該バーストライト転送を最終データまで実行させることを特徴とする請求項１から請求項５のいずれかに記載のデータ転送装置。
【請求項７】
リード要求を発行するリード要求処理ステップと、
ライト要求を発行するライト要求処理ステップと、
前記リード要求処理ステップで発行されたリード要求と前記ライト要求処理ステップで発行されたライト要求を調停してスプリットトランザクションの伝送路を経由させて該ライト要求と該リード要求を対向デバイスに転送させるとともに、前記ライト要求にかかるライトデータをバーストライト転送する調停処理ステップと、
前記バーストライト転送中に、該バーストライト転送のライト要求よりも優先度の高いリード要求が前記リード要求処理ステップで発行されると、該バーストライト転送を分割して中断させ、該リード要求を転送させた後、中断した該バーストライト転送の後続データのバーストライト転送を再開させるバーストライト転送制御処理ステップと、
を有していることを特徴とするデータ転送制御方法。
【請求項８】
コンピュータに、
リード要求を発行するリード要求処理と、
ライト要求を発行するライト要求処理と、
前記リード要求処理で発行されたリード要求と前記ライト要求処理で発行されたライト要求を調停してスプリットトランザクションの伝送路を経由させて該ライト要求と該リード要求を対向デバイスに転送させるとともに、前記ライト要求にかかるライトデータをバーストライト転送する調停処理と、
前記バーストライト転送中に、該バーストライト転送のライト要求よりも優先度の高いリード要求が前記リード要求処理で発行されると、該バーストライト転送を分割して中断させ、該リード要求を転送させた後、中断した該バーストライト転送の後続データのバーストライト転送を再開させるバーストライト転送制御処理と、
を実行させることを特徴とするデータ転送制御プログラム。
【請求項９】
請求項８記載のデータ転送制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関し、詳細には、スプリットトランザクションのプロトコルで通信を行う際の伝送路の利用効率を向上させたデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
近年、要求と応答が分離され、応答を待たずに次の要求を発行できるＰＣＩ（Peripheral Component Interconnect） Express（以下、ＰＣＩｅという。）のような高速なスプリットトランザクションのバスが利用されるようになってきている。
【０００３】
一方、プリンタ、複写装置、複合装置、コンピュータ等の画像処理装置においては、外部とのインターフェイス処理を行う半導体集積回路であるＡＳＩＣ（Application Specific Integrated Circuit）を搭載して、ネットワーク、ＵＳＢ（Universal Serial Bus）、スキャナ、プロッタ及びコンピュータ等の外部とのインターフェイス処理をＡＳＩＣで行って、外部からのデータをメモリに保管したり、メモリに保管したデータを読み出して外部に出力する等のインターフェイス処理を行うようになってきている。
【０００４】
すなわち、ＡＳＩＣは、ネットワーク、スキャナ、プロッタ等との間でデータの送受信を行うとともに、ＰＣＩｅ  Ｉ／Ｆ回路を介して接続されたメモリとの間で、ＤＭＡ（Direct Memory Access）転送によってデータのやり取りを行う。
【０００５】
そして、複数のＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）を搭載する半導体集積回路においては、メモリの使用権の調停を行うアービタが必要となり、画像処理装置においては、プロッタへのデータ出力（ビデオ出力）は、一定期間の間に一定量のデータ転送を完了（ライン等時性）しない場合には、異常画像が発生するため、特定のマスタ（ＤＭＡＣ）からの要求を最優先のプライオリティにするアービタが存在する。
【０００６】
また、図８に示すように、ＡＳＩＣ１００が、ＰＣＩｅ経由でメモリアクセスを行う場合、ＡＳＩＣ１００からリード（Read）要求を出して、ＭＣＨ（Memory Controller Hub）１０１を介してメモリ１０２から応答（Completion）データを受け取る。この場合、図９に示すように、メモリ１０２から応答データがかえってくるまでのレイテンシー（Latency）の影響によって、ＰＣＩｅの転送レートが低くなる。なお、図８において、ＭＣＨ１０１には、ＣＰＵ（Central Processing Unit ）１０３が接続されており、ＭＣＨ１０１は、ＣＰＵ１０１とメモリ１０２及びＡＳＩＣ１００とのＰＣＩｅの接続を行う。
【０００７】
そこで、従来から、このレイテンシーによる転送レートの低下を回避するために、図１０及び図１１に示すように、リード要求を出してから、応答データが返る前に、次のリード要求を発行するリード要求先行処理が行われている。このリード要求先行処理を行う場合、先行させるリード要求の個数に応じて、応答データ格納用にＳＲＡＭ（Static Random Access Memoryを実装する必要がある。なお、図１０及び図１１において、ＡＳＩＣ１００は、アービタ１１０、ＰＣＩｅ  Ｉ／Ｆ回路１１１、リードＤＭＡＣ１１２及び優先度の低いライトＤＭＡＣ１１３等を搭載しており、リードＤＭＡＣ１１２からのリード要求をアービタ１１０が調停して、ＰＣＩｅ  Ｉ／Ｆ回路１１１、ＰＣＩｅバス１０４及びＭＣＨ１０１を介してメモリ１０２に送信して、メモリ１０２からリードデータが送り返されている状態を示している。
【０００８】
また、従来、アービタからのライトコマンドをバッファに保管し、ライトコマンドの保管中にリードコマンドを受け付けると、既に保管されているライトコマンドよりも先にリードコマンドをＰＣＩｅインターフェイスに渡すことにより、送信路と受信路の利用効率の向上を図った技術が提案されている（特許文献１参照）。
【０００９】
この手法は、一定期間、リードコマンドが権限を取れない場合、あるいは、特定の動作モードにおいて、連続したデータを転送する際に、アドレスの指定などの手順を一部省略することによって転送速度を上げるバーストライト転送の場合にも適用することができ、バーストライトをアービタで分割してリードコマンドを挿入することで、リードコマンドの待ち時間を短縮して、リードの転送効率を向上させることができる。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来技術にあっては、アービタに対する優先度の高いリード要求を行っている場合にも優先度の低いライト要求が挿入されて、意図する実行速度を確保することができないという問題があった。
【００１１】
すなわち、従来のアービタは、図１２に示すように、優先度の高いＤＭＡＣ１１２のリード要求の合間に、他の優先度の低いマスタであるライトＤＭＡＣ１１３からのバースト長の長いライトアクセスが挿入される事態が発生し、優先度が高いにもかかわらず、リード要求が待たされて、意図する実行転送速度を確保することができないという問題があった。すなわち、図１２は、ＰＣＩｅをｘ４レーンで使用しているときに、２５６Byteのバーストライトが挿入された場合の送信（Ｔｘ）伝送路の状態を示しており、リード要求が２５６ｎｓ待たされる持体、すなわち、受信（Ｒｘ）側の伝送路に２５６ｎｓ以上のアイドル期間が発生する。例えば、図１３及び図１４に示すように、ＰＣＩｅにおいては、４レーン構成の場合、１０２４Byteで転送するところを、一定期間１２８Byteに分割されると、ＰＣＩｅの転送能力は、３０％程度低下する。
【００１２】
これは、従来のアービタにおいては、一定の時間が経過すると、ライトパケットが分割されてしまうためであり、リードレイテンシーが大きいＰＣＩｅのようなＩ／Ｆ（ＰＣＩｅ  Ｉ／Ｆ）にあっては、必要以上にライトが分割されるモードに遷移してしまい、無駄に送信伝送路の転送効率が低下してしまうという問題があった。このような状態が発生すると、画像処理装置において、プロッタへの画像データの転送が間に合わず、異常画像が発生することとなる。
【００１３】
そこで、本発明は、バーストライト転送におけるデータ転送効率を適切に向上させるデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１４】
本発明は、上記目的を達成するために、ライト要求にかかるライトデータをスプリットトランザクションの伝送路を経由させて対向デバイスにバーストライト転送中に、該バーストライト転送のライト要求よりも優先度の高いリード要求が発行されると、該バーストライト転送を分割して中断し、該リード要求を転送させた後に、中断した該バーストライト転送の後続データのバーストライト転送を再開することを特徴としている。
【００１５】
また、本発明は、前記対向デバイスにおいてリード要求の発行が抑制されているか否かを検知して、該対向デバイスでリード要求の発行が抑制されていると、前記バーストライト転送の分割を禁止して、該バーストライト転送をそのまま継続させることを特徴としてもよい。
【００１６】
さらに、本発明は、前記バーストライトの分割の最小データサイズが設定されると、該最小データサイズに基づいて前記バーストライト転送を分割することを特徴としてもよい。
【００１７】
また、本発明は、１つの前記バーストライト転送に対する前記リード要求の最大挿入回数が設定された場合、該最大挿入回数だけ１つのバーストライト転送にリード要求を挿入すると、該バーストライト転送に対するリード要求の挿入を禁止して、該バーストライト転送を最終データまで実行することを特徴としてもよい。
【発明の効果】
【００１８】
本発明によれば、バーストライト転送におけるデータ転送効率を適切に向上させることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施例を適用した画像形成装置の要部ブロック構成図。
【図２】データ転送制御処理を示すフローチャート。
【図３】図２の続きの処理を示すフローチャート。
【図４】画像形成装置におけるデータ転送制御処理の説明図。
【図５】フローコントロールによる転送抑制発生の説明図。
【図６】フローコントロールによるUpdate  ＦＣ待ち発生の説明図。
【図７】フローコントロールによる転送抑制回避処理の説明図。
【図８】従来のＰＣＩｅにおけるリード処理を示すフローチャート。
【図９】従来のリード要求とリードデータ及びレイテンシーの関係を示す図。
【図１０】従来のリード要求先行処理時のリードデータとレイテンシーの関係を示す図。
【図１１】従来のライト要求が入らないときのリード要求とリードデータの関係を示す図。
【図１２】従来のリード要求の間にライト要求が入る場合のリードデータとの関係を示す図。
【図１３】ｘ１、ｘ２、ｘ４レーン構成におけるPayload Size毎の実行転送レートの一例を示す図。
【図１４】ｘ１、ｘ２、ｘ４レーン構成におけるPayload Size毎の実行転送レートの一例を示すグラフ。
【発明を実施するための形態】
【００２０】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００２１】
図１〜図７は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を示す図であり、図１は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を適用した画像形成装置１の要部ブロック構成図である。
【００２２】
図１において、画像形成装置１は、例えば、プリンタ、複合装置等であり、ＣＰＵ（Central Processing Unit ）２、ＭＣＨ（Memory Controller Hub）３、メモリ４及びＡＳＩＣ（Application Specific Integrated Circuit）５等を備えているとともに、プロッタ部６等を備えている。画像形成装置１は、ＡＳＩＣ５とＭＣＨ３が、スプリットトランザクションの伝送路であるＰＣＩｅ７で接続されている。
【００２３】
ＡＳＩＣ（データ転送装置）５は、メモリ４から出力データを読み取ってプロッタ部６に供給するマスタとしてのＤＭＡＣ１１ａ、その他のＤＭＡＣ１１ｂ〜１１ｄ、アービタ１２及びＰＣＩｅ  Ｉ／Ｆ回路１３等を備えており、アービタ１２は、データサイズ設定レジスタ２１と追い越し許可数設定レジスタ２２等を備えている。
【００２４】
ＭＣＨ３は、ＰＣＩｅ  Ｉ／Ｆ回路（対向デバイス）３１を備えており、ＰＣＩｅ  Ｉ／Ｆ回路３１は、ＣＰＵ２とメモリ４及びＡＳＩＣ５のＰＣＩｅ  Ｉ／Ｆ回路１３とのＰＣＩｅ７の接続を行うとともに、ＰＣＩｅの規格で定義されているフローコントロール（Flow Control）用バッファ３２を備えている。なお、ＡＳＩＣ５の搭載するＰＣＩｅ  Ｉ／Ｆ回路１３も、図示しないが、同様のバッファを備えている。
【００２５】
ＡＳＩＣ５は、そのアービタ（調停手段、バーストライト転送制御手段）１２が各マスタとしてのＤＭＡ１１ａ〜１１ｄからのライト要求及びリード要求を調停して、ＰＣＩｅ  Ｉ／Ｆ回路１３に渡す。ＰＣＩｅ  Ｉ／Ｆ回路１３は、ライト要求及びリード要求をＰＣＩｅ７の送信（Ｔｘ）伝送路７ｔを経由させてＭＣＨ３に送り、ＣＰＵ２がＭＣＨ３に接続されているメモリ４にアクセスさせる。
【００２６】
ＰＣＩｅ  Ｉ／Ｆ回路１３は、アービタ１２からの要求を受け付けてＰＣＩｅ７の送信伝送路７ｔを経由させてＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１に渡し、ＰＣＩｅ７の受信（Ｒｘ）伝送路７ｒを経由してＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１から送られてくるデータをアービタ１２に渡す。ＰＣＩｅ  Ｉ／Ｆ回路１３は、上述のようにフローコントロール用バッファを備えており、ＡＳＩＣ５内部のデータ転送速度がＰＣＩｅ７のパケット発行能力に比較して遅い場合に、データをバッファに格納して、データのアンダーフローが発生するのを防止する。
【００２７】
ＡＳＩＣ５のＤＭＡＣ１１ａは、画像データに基づいて用紙に画像を形成するプロッタ６に画像データを供給し、リード要求の十分な転送速度が要求されて、所望の転送速度が得られない場合には、プロッタ６での形成画像が異常画像となるおそれがある。
【００２８】
アービタ１２は、ＤＭＡＣ１１ａ〜１１ｄからのライト要求及びリード要求を調停して、ＰＣＩｅ  Ｉ／Ｆ回路１３に渡し、ＰＣＩｅ  Ｉ／Ｆ回路１３は、ライト要求及びリード要求をＰＣＩｅ７の送信伝送路７ｔを経由させてＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１に送って、ＣＰＵ２がＭＣＨ３に接続されているメモリ４にアクセスさせる。
【００２９】
ＰＣＩｅ  Ｉ／Ｆ回路１３は、対向デバイスであるＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１のフローコントロール用バッファ３２の空き状態、ＰＣＩｅ  Ｉ／Ｆ回路１３とＰＣＩｅ  Ｉ／Ｆ回路３１を仮想的に直結するリンクであるＶＣ（Virtual Channel）、レーン（Lane）数の利用状況をリアルタイムで取得して信号線１４を介してアービタ１２に伝える。上記ＰＣＩｅ  Ｉ／Ｆ回路１３及び信号線１４は、対向デバイスであるＰＣＩｅ  Ｉ／Ｆ回路３１においてリード要求の発行が抑制されているか否かを検知する検知手段として機能しており、このＰＣＩｅ  Ｉ／Ｆ回路３１においてリード要求の発行が抑制されているか否かを検知する情報は、フローコントロール用バッファ３２の空き状態、ＶＣ、レーン（Lane）数の利用状況である。
【００３０】
アービタ１２のデータサイズ設定レジスタ（最小データサイズ設定手段）２１は、ライトアクセス中断時の最小データサイズがプログラム（ソフトウェア）によって設定されるレジスタであり、アービタ１２は、このデータサイズ設定レジスタ２１に設定されたデータサイズよりも大きいサイズのバーストライト転送中に、優先度の高いリード要求が発生すると、少なくともデータサイズ設定レジスタ２１に設定されたサイズまでのバーストライト転送を完了させた上で、リード要求を受け付けて、先にリード要求を送信する追い越し処理を行う。このようなバーストライト転送を分割するデータサイズとして少なくとも最小データサイズを確保したリード要求の追い越し処理を行うことで、細切れのパケットが発生することを防止し、送信側の転送効率が低下するのを回避する。
【００３１】
追い越し許可数設定レジスタ２２は、プログラム（ソフトウェア）によって追い越し許可数が設定され、アービタ１２は、この追い越し許可数設定レジスタ２２に設定された追い越し許可数までは、リード要求によるライト要求の追い越しを許可するが、設定された追い越し許可数を超えると、後続のリード要求の追い越しを禁止する。
【００３２】
なお、画像形成装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送制御方法を実行するデータ転送制御プログラムを読み込んで図示しない不揮発メモリに導入することで、後述するバーストライト転送中の優先度の高いリード要求を効率的に転送処理するデータ転送制御方法を実行するデータ転送装置として構築されている。このデータ転送制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００３３】
次に、本実施例の作用を説明する。本実施例の画像形成装置１は、アービタ１２が、バーストライト転送中に、該ライト要求よりも優先度の高いリード要求が発生すると、図２及び図３に示すように、バーストライト転送を中断して独立したライト要求として転送し、その後にリードコマンドを転送して、該リードコマンドの後に、中断したバーストライトの後続データを前記ライト要求とは別のライト要求として転送する。
【００３４】
アービタ１２は、図２に示すように、ソフトウェアによって、アービタ１２の動作を設定するレジスタであるデータサイズ設定レジスタ２１にライトアクセス中断時の最小データサイズが設定され、追い越し許可数設定レジスタ２２にリード要求によるライト要求の追い越しを許可する追い越し許可数が設定されると（ステップＳ１０１）、バスであるＰＣＩｅ７の使用権を要求しているマスタであるＤＭＡＣ１１ａ〜１１ｄがあるかチェックし（ステップＳ１０２）、バスの使用権を要求しているＤＭＡＣ１１ａ〜１１ｄがあると、バス使用権を要求しているマスタであるＤＭＡＣ１１〜１１ｄのうち、優先度の最も高いＤＭＡＣ１１ａ〜１１ｄは、リード要求であるかチェックする（ステップＳ１０３）。
【００３５】
ステップＳ１０３で、リード要求のときには、アービタ１２は、リードコマンドをＰＣＩｅ  Ｉ／Ｆ回路１３に渡し、ＰＣＩｅ  Ｉ／Ｆ回路１３がリードコマンドを送信伝送回路７ｔを介してＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１に送信して、ステップＳ１０２に戻って、バスの使用権を要求しているマスタ（ＤＭＡＣ１１ａ〜１１ｄ）があるか否かのチェックから上記同様に処理する（ステップＳ１０２〜Ｓ１０４）。ＣＰＵ２は、このリードコマンドに応じて、ＭＣＨ３に接続されているメモリ４にアクセスさせ、リードレイテンシーの後に、メモリ４のデータをリードしてＰＣＩｅ  Ｉ／Ｆ回路３１から受信伝送路７ｒを介してＡＳＩＣ５のＰＣＩｅ  Ｉ／Ｆ回路１３に転送する。
【００３６】
ステップＳ１０３で、ライト要求であると、アービタ１２は、ライトデータの転送を開始するが、このとき、１つのライト要求でデータを連続的に転送するバーストライト転送を開始し（ステップＳ１０５）、バーストライト転送中のライト要求よりも優先度の高いリード要求が発生したかチェックする（ステップＳ１０６）。
【００３７】
ステップＳ１０６で、バーストライト転送中のライト要求よりも優先度の高いリード要求がないときには、アービタ１２は、バーストライト転送を継続して、バーストライト転送によるデータ転送が完了すると（ステップＳ１０７）、ステップＳ１０２に戻って上記同様の処理を繰り返し行う（ステップＳ１０２〜Ｓ１０７）。
【００３８】
ステップＳ１０６で、バーストライト転送中のライト要求よりも優先度の高いリード要求が発生すると、アービタ１２は、ＰＣＩｅ  Ｉ／Ｆ回路１３がＰＣＩｅ  Ｉ／Ｆ回路３１からリアルタイムで受け取って通知してくるフローコントロール用バッファ３２の空き状態、ＶＣ、レーン（Lane）数の利用状況からフローコントロール用バッファ３２に充分な空きがあるか否かチェックする（ステップＳ１０８）。
【００３９】
なお、図２及び図３では、フローコントロール用バッファ３２についてのみ考慮してリード要求の追い越し制御処理を行っている場合について説明しているが、ＶＣやレーン数についても考慮して追い越し制御処理を行ってもよい。すなわち、ＰＣＩｅにおいては、複数のＶＣを使用できる場合（デバイスの実装に依存する）であって、かつ、半導体集積回路であるＡＳＩＣ５内のマスタであるＤＭＡＣ１１ａ〜１１ｄの要求発行能力がＰＣＩｅ７のスループットよりも大きい場合においては、優先度の高いＶＣに優先度の高いリード要求をアサインし、他の要求を別のＶＣにアサインすることで、先に受け付けたライト要求よりも優先度の高いリード要求を先行させることができる。
【００４０】
この場合、アービタ１２内での追い越し機能は、冗長となり、無駄なタイムロスが発生することになる。
【００４１】
そこで、本実施例のＡＳＩＣ５のアービタ１２は、ＰＣＩｅ  Ｉ／Ｆ回路１３からのＶＣの情報に基づいて、バーストライト転送を分割してリード要求を挿入する追い越し機能の有効／無効を制御し、追い越し機能をＶＣで代替することができる場合には、冗長な追い越し機能を無効として、タイムロスを削減する。
【００４２】
なお、通常、ＶＣを複数持つと回路規模が大きくなり、コストも増大することから、ＡＳＩＣにおいては、ＶＣを１チャネルのみ有していることが多く、この場合には、ＶＣは、考慮しなくてもよい。
【００４３】
また、PCI Expressの規格では、レーン（Lane）数を動的に変更することが許容されており、レーン（Lane）数が少なく、ＡＳＩＣ５内のマスタであるＤＭＡＣ１１ａ〜１１ｄの要求発行能力がPCI Express７のスループットよりも大きい場合においては、アービタ１２で要求が競合するので、上記追い越し機能が冗長となり、無駄なタイムロスが発生することになる。
【００４４】
そこで、本実施例のＡＳＩＣ５のアービタ１２は、ＰＣＩｅ  Ｉ／Ｆ回路１３からのリアルタイムのレーン（Lane）数の情報に基づいて追い越し機能の有効／無効を制御して、冗長なタイムロスを削減する。
【００４５】
そして、ステップＳ１０８で、対向デバイスであるＰＣＩｅ  Ｉ／Ｆ回路３１のフローコントロール用バッファ３２に充分な空きがないときには、アービタ１２は、バーストライト転送の分割を行うことができないと判断して、バーストライトのデータの転送を継続して、バーストライト転送を完了し（ステップＳ１０７）、バーストライト転送が完了すると、ステップＳ１０２に戻って上記同様の処理を繰り返し行う（ステップＳ１０２〜Ｓ１０８）。
【００４６】
ステップＳ１０８で、対向デバイスであるＰＣＩｅ  Ｉ／Ｆ回路３１のフローコントロール用バッファ３２に充分な空きがあるときには、アービタ１２は、図３に示すように、バーストライト転送の要求サイズがステップＳ１０１で設定した設定最小データサイズ以下であるかチェックする（ステップＳ１０９）。ステップＳ１０９で、設定最小データサイズ以下であるときには、アービタ１２は、バーストライト転送を中断すると、不必要にバーストライト転送が分割されると判断して、バーストライトのデータの転送を継続して、バーストライト転送を完了し（ステップＳ１０７）、バーストライト転送が完了すると、ステップＳ１０２に戻って上記同様の処理を繰り返し行う（ステップＳ１０２〜Ｓ１０８）。この場合、バーストライト転送が完了した時点で、リード要求をＰＣＩｅ  Ｉ／Ｆ回路１３に渡して、ＰＣＩｅ  Ｉ／Ｆ回路１３がリードコマンドを送信伝送回路７ｔを介してＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１に送信して、ステップＳ１０２に戻って上記同様の処理を繰り返し行うことで、ステップＳ１０３で、優先度の高いリードが存在することとなり、このリードコマンドの発行を行う（ステップＳ１０４）。このようにすることで、細切れのパケットの発生を防止して、送信側の転送効率の低下を回避することができる。
【００４７】
ステップＳ１０９で、バーストライト転送の要求サイズが設定最小データサイズを超える場合には、アービタ１２は、該設定最小データサイズまでバーストライト転送を行った後に、該バーストライト転送を中断し、後続のリード要求をＰＣＩｅ  Ｉ／Ｆ回路１３に渡して、ＰＣＩｅ  Ｉ／Ｆ回路１３がリードコマンドを送信伝送回路７ｔを介してＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１に送信して、ステップＳ１０６に戻って、バーストライト転送のライト要求よりも優先度の高いリード要求があるか否かのチェックから上記同様に処理する（ステップＳ１０６〜Ｓ１０９）。
【００４８】
すなわち、画像形成装置１は、図４に示すように、アービタ１２が、優先度の低いマスタであるＤＭＡＣ１１ａ〜１１ｄ、例えば、ＤＭＡＣ１１ａからのライト要求を受付けて、バーストライト転送を開始しても、他の優先度の高いＤＭＡＣ１１ｂ〜１１ｄ、例えば、ＤＭＡＣ１１ｂからリード要求を受け付けると、バーストライト転送を分割して中断し、先にリード要求を発行する。
【００４９】
したがって、意図されている要求発行の優先順位を、実際のデータ転送に反映させることができ、特定のマスタであるＤＭＡＣ１１ａ〜１１ｄに対して、意図する転送性能を発揮させて、システム全体のスループットを向上させることができる。
【００５０】
また、アービタ１２は、ＰＣＩｅ  Ｉ／Ｆ回路１３にリードコマンドを発行させると、その後、分割したバーストライトに続くバーストライトのライトパケットを発行して、バーストライト転送を継続する。アービタ１２は、この場合、１つのバーストライト転送を分割して先行させるリードコマンドの回数を、追い越し許可数設定レジスタ２２に設定されている追い越し許可数に限定し、１つのバーストライト転送において、追い越し許可数の回数だけリードコマンドを先行させると、リードコマンドの挿入を禁止する。
【００５１】
すなわち、ＤＭＡＣ１１ａ〜１１ｄのリード要求の発行能力が充分に高い場合、アービタ１２は、連続してリード要求を発行することとなるが、このような場合、例えば、図５に示すように、ＤＭＡＣ１１ａ〜１１ｄのリード要求の発行能力が十分高い場合、ＤＭＡＣ１１ａ〜１１ｃがリードＤＭＡＣとしてリード要求を発行し、優先度の低いＤＭＡＣ１１ｄがライト要求を発行する場合、ＤＭＡＣ１１ｄからのライト要求によるバースト長が「８」のバーストライト転送を行っているときに、優先度の高いリードＤＭＡＣ１１ａ〜１１ｃから連続してリード要求が発行されると、バーストライト転送が中断された状態で、連続してリード要求が発行されることとなる。なお、図５に示す「ライト８」、「ライト４」は、ＡＳＩＣ５内部でバースト長８、バースト長４で扱われるデータ長のライトを意味している。このような場合、図６に示すように、NP-HeaderのCreditを使い切ってしまい、フローコントロール（Flow Control）により、Update FC待ちとなって、送信伝送路７ｔ側を使用できなくなってしまう事態が発生するおそれがある。
【００５２】
そこで、本実施例では、上述のように、アービタ１２は、ＰＣＩｅ  Ｉ／Ｆ回路１３がＰＣＩｅ  Ｉ／Ｆ回路３１からリアルタイムで受け取って通知してくるフローコントロール用バッファ３２の空き状態、ＶＣ、レーン（Lane）数の利用状況からフローコントロール用バッファ３２に充分な空きがあるか否かチェックし、図７に示すように、クレジット（Credit）が枯渇するおそれがある場合には、一時的に、リード要求の追い越し処理を中断（Disable）して、フローコントロール用バッファ３２に充分な空きがある場合にのみ、バーストライト転送を分割してリード要求を挿入している。なお、図７に示す「ライト８」、「ライト４」は、図５の場合と同様の内容を意味している。
【００５３】
したがって、リード要求に所望の帯域を与えつつ、フローコントロール（Flow Control）による転送の抑制を回避することができ、ＰＣＩｅ７の転送効率を向上させることができる。
【００５４】
さらに、本実施例のアービタ１２は、ライトアクセス中断時の最小データサイズを、予めデータサイズ設定レジスタ２１に設定されている設定最小データサイズに規制して、この最小設定データサイズよりも大きいデータサイズのバーストライト転送中に、優先度の高いリード要求が発生した場合に、設定最小データサイズまでのバーストライト転送を完了させた後で、バーストライト転送を分割してリード要求を挿入している。
【００５５】
したがって、バーストライト転送が分割されるタイミングを最小限に抑制して、ＰＣＩｅの送信伝送路７ｔ側の転送レートを維持しつつ、ＰＣＩｅの規格に準じた制約を考慮した規制を行って、細切れのパケットの発生を防ぎ、ＰＣＩｅの送信伝送路７ｔ及び受信伝送路７ｒの双方の転送効率を向上させることができる。
【００５６】
また、ステップＳ１１０でバーストライト転送を分割してリード要求を挿入する場合、アービタ１２は、リード要求に先行するバーストライト転送と、該リード要求の後に転送するバーストライト転送を別個のパケットとして送信するため、パケットのヘッダに使用するアドレス情報、Byte Enable情報を、分割する前のバーストライト相当のデータがメモリ４に書かれるように適宜書き換えて、後段のＰＣＩｅ  Ｉ／Ｆ回路１３に渡す。
【００５７】
このように、本実施例の画像形成装置１は、ＡＳＩＣ５のアービタ１２が、ＤＭＡＣ１１ａ〜１１ｄからのライト要求にかかるライトデータを、ＰＣＩｅ伝送路７を経由させてＭＣＨ３のＰＣＩｅ  Ｉ／Ｆ回路３１にバーストライト転送中に、該バーストライト転送のライト要求よりも優先度の高いリード要求がＤＭＡＣ１１ａ〜１１ｄから発行されると、該バーストライト転送を分割して中断し、該リード要求を転送させた後に、中断した該バーストライト転送の後続データのバーストライト転送を再開している。
【００５８】
したがって、バーストライト転送中でも、優先度の高いリード要求がくると、直ちにリード要求を優先して処理して、スプリットトランザクションのプロトコルでの大きな問題であるリード要求の合間に入ってきた優先度の低いバーストライトによる遅延の影響を受けることなく、バーストライト転送におけるデータ転送効率（特に、ＰＣＩｅ７の受信側伝送路７ｒの利用効率）を適切に向上させることができ、意図する転送性能を確保することができる。
【００５９】
また、本実施例の画像形成装置１は、ＡＳＩＣ５のアービタ１２が、対向デバイスであるＰＣＩｅ  Ｉ／Ｆ回路３１においてリード要求の発行が抑制されているか否かを、ＰＣＩｅ  Ｉ／Ｆ回路１３を介して取得し、対向デバイスであるＰＣＩｅ  Ｉ／Ｆ回路３１でリード要求の発行が抑制されていると、バーストライト転送の分割を禁止して、該バーストライト転送をそのまま継続させている。
【００６０】
したがって、優先度の高いリード要求を大量に発行した場合に、Flow Controlの概念により、対向デバイスのFlow Controlバッファ（Non-Posted Header Buffer）に空きができるまで、リード要求は発行できなくなってしまって、アービタ１２が本来送信できるはずのライト要求も発行が滞ってしまい、リード要求のフローコントロール用バッファ３２が空くまでＰＣＩｅ伝送路７の送信側７ｔが使用できなくなってしまう現象が発生することを未然に防止することができ、意図する転送性能を確保することができる。
【００６１】
さらに、本実施例の画像形成装置１は、ＡＳＩＣ５のアービタ１２が、スプリットトランザクションの伝送路がPCI Express（ＰＣＩｅ）の伝送路７であり、対向デバイスが、PCI Express Ｉ／Ｆ回路（ＰＣＩｅ  Ｉ／Ｆ回路）３１であって、対向デバイスであるＰＣＩｅ  Ｉ／Ｆ回路３１からPCI ExpressのFlow Control（フローコントロール）情報を取得してリード要求の発行が抑制されているか否か検知している。
【００６２】
したがって、ＰＣＩｅの状態を適切に把握して、優先度の高いリード要求のバーストライト転送への分割挿入を行うことができ、意図する転送性能をより一層適切かつ確実に確保することができる。
【００６３】
また、本実施例の画像形成装置１は、ＡＳＩＣ５のアービタ１２が、バーストライト転送の分割の最小データサイズの設定されるデータサイズ設定レジスタ２１を備えており、該データサイズ設定レジスタ２１に設定される最小データサイズに基づいてバーストライト転送を分割している。
【００６４】
したがって、優先度が高いリード要求が発行された場合にも、すぐにバーストライト転送を中断せずに、バーストライト転送の分割サイズとして、最小データサイズ以上のデータサイズを確保することで、データサイズが小さいことによってパケットのヘッダ部分のオーバーヘッドが大きくなって伝送路の転送効率が低下することを、適切に防止することができ、意図する転送性能を確保しつつ、送信側の伝送路７ｔの転送性能が低下することを回避することができる。
【００６５】
さらに、本実施例の画像形成装置１は、スプリットトランザクションの伝送路がPCI Expressであり、アービタ１２が、対向デバイスと仮想的に直結するリンクであるＶＣ（バーチャルチャネル：Virtual Channel）の情報または／及びレーン数に基づいて、バーストライト転送を分割してリード要求を挿入して転送するか、該バーストライト転送を継続するかを制御している。
【００６６】
したがって、バーストライト転送を分割してリード要求を挿入する追い越し機能をＶＣやレーン数で代替できるときには、追い越し機能を行わずに、より一層処理速度の向上を図ることができる。
【００６７】
また、本実施例の画像形成装置１は、ＡＳＩＣ５のアービタ１２が、１つのバーストライト転送に対するリード要求の最大挿入回数が設定される追い越し許可数設定レジスタ２２を備えており、ソフトウェアによって該追い越し許可数設定レジスタ２２に設定される最大挿入回数だけ１つのバーストライト転送にリード要求を挿入すると、該バーストライト転送に対するリード要求の挿入を禁止して、該バーストライト転送を最終データまで実行させている。
【００６８】
したがって、優先度の高いリード要求が発行されるたびに、無制限にバーストライト転送を分割することでライトパケットの数が増加して、対向デバイスであるＰＣＩｅ  Ｉ／Ｆ回路３１のフローコントロール用バッファ（Posted Header Buffer）３２に空きができるまで、ライト要求が発行できずに、本来、送信できるはずのリード要求の発行が滞ってしまって、ライト要求のフローコントロール用バッファ３２が空くまで送信側伝送路７ｔが使用できなくなってしまうことを、バーストライト転送を分割するタイミングを最小限に抑え、送信側伝送路７ｔの転送レートを維持しつつPCI Expressの規格に準じた制約を考慮に入れた制御を行うことで、適切に防止することができ、送信側伝送路７ｔ及び受信側伝送路７ｒ双方の転送効率を向上させることができる。
【００６９】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００７０】
本発明は、スプリットトラ−ンザクションのプロトコルでバーストライト転送を行う複合装置、プリンタ装置、コンピュータ等に適用されるデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に利用することができる。
【符号の説明】
【００７１】
１  画像形成装置
２  ＣＰＵ
３  ＭＣＨ
４  メモリ
５  ＡＳＩＣ
６  プロッタ部
７  ＰＣＩｅ
１１ａ〜１１ｄ  ＤＭＡＣ
１２  アービタ
１３  ＰＣＩｅ  Ｉ／Ｆ回路
２１  データサイズ設定レジスタ
２２  追い越し許可数設定レジスタ
３１  ＰＣＩｅ  Ｉ／Ｆ回路
３２  フローコントロール用バッファ
【先行技術文献】
【特許文献】
【００７２】
【特許文献１】特開２００８−２５０９８５号公報
【図１】
2011059979.tif 000003
【図２】
2011059979.tif 000004
【図３】
2011059979.tif 000005
【図４】
2011059979.tif 000006
【図５】
2011059979.tif 000007
【図６】
2011059979.tif 000008
【図７】
2011059979.tif 000009
【図８】
2011059979.tif 000010
【図９】
2011059979.tif 000011
【図１０】
2011059979.tif 000012
【図１１】
2011059979.tif 000013
【図１２】
2011059979.tif 000014
【図１３】
2011059979.tif 000015
【図１４】
2011059979.tif 000016