(57)【要約】【課題】大量のデータを各部に適切に分配し、データ転送の高速化を図ることができるようにする。【解決手段】PCI Express規格のスイッチ及びバスを介してデータの転送を受けるPCI Express規格のエンドポイント２１を備える。バッファ２２は、上位のスイッチ及びバスを介して転送されたデータをバッファリングする。分配制御回路２３は、この転送されたデータを下位の複数の出力先である出力部に分配して転送する制御を行う。PCI Express規格のルートコンプレックス２４及びスイッチ２５は、分配制御回路２３の制御によりデータの転送を行なう。【選択図】図１７
2011181082.tif 000002
【特許請求の範囲】
【請求項１】
データの転送を行う上位のスイッチとバスで接続され、
前記スイッチ及びバスを介して転送されたデータをバッファリングするバッファと、
この転送されたデータを下位の複数の出力先に分配して転送する制御を行う分配制御回路と、
を備えているデータ分配装置。
【請求項２】
PCI Express規格の前記スイッチ及びバスを介してデータの転送を受けるPCI Express規格のエンドポイントと、
前記分配制御回路の制御により前記データの転送を行なうPCI Express規格のルートコンプレックス及びスイッチと、
をさらに備えている請求項１に記載のデータ分配装置。
【請求項３】
データの転送を行うPCI Express規格のバス、ルートコンプレックス及びスイッチと、
前記スイッチの下位に前記バスを介して接続されている請求項２に記載のデータ分配装置と、
を備えているデータ転送装置。
【請求項４】
画像データに関する所定の処理を行ない、
画像データを転送する請求項３に記載のデータ転送装置を備えている、
画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの転送を行なうデータ転送装置、及び画像データに関する所定の処理を行なう画像処理装置に関する。
【背景技術】
【０００２】
高速シリアルインタフェースとして、ＰＣＩバス方式の後継規格に当るPCI Express（登録商標）なるインタフェースが提案されている（例えば、非特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、このPCI Express規格では、その装置構成は後述のような木構造をなしているが、その木構造の根元に位置するルートコンプレックス（Root complex）を経る経路を利用して大量のデータの伝送を行なうと、データ転送の高速化を図れない場合がある。
【０００４】
本発明の目的は、大量のデータを各部に適切に分配し、データ転送の高速化を図ることができるようにすることである。
【課題を解決するための手段】
【０００５】
本発明は、データの転送を行う上位のスイッチとバスで接続され、前記スイッチ及びバスを介して転送されたデータをバッファリングするバッファと、この転送されたデータを下位の複数の出力先に分配して転送する制御を行う分配制御回路と、を備えているデータ分配装置である。
【発明の効果】
【０００６】
本発明によれば、PCI Express規格のルートコンプレックスなどの上位の装置ですべてのデータの転送処理を行わなくても、その下位に位置するデータ分配装置でさらにその下位に対するデータの分配の制御を行なうことができるので、大量のデータを各部に適切に分配し、データ転送の高速化を図ることができる。
【図面の簡単な説明】
【０００７】
【図１】既存PCIシステムの構成例を示すブロック図である。
【図２】PCI Expressシステムの構成例を示すブロック図である。
【図３】デスクトップ／モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。
【図４】ｘ４の場合の物理層の構造例を示す模式図である。
【図５】デバイス間のレーン接続例を示す模式図である。
【図６】スイッチの論理的構造例を示すブロック図である。
【図７】（ａ）は既存のPCIのアーキテクチャを示すブロック図、（ｂ）はPCI Expressのアーキテクチャを示すブロック図である。
【図８】PCI Expressの階層構造を示すブロック図である。
【図９】トランザクションレイヤパケットのフォーマット例を示す説明図である。
【図１０】PCI Expressのコンフィグレーション空間を示す説明図である。
【図１１】仮想チャネルの概念を説明するための模式図である。
【図１２】データリンクレイヤパケットのフォーマット例を示す説明図である。
【図１３】ｘ４リンクでのバイトストライピング例を示す模式図である。
【図１４】Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートの定義について説明する説明図である。
【図１５】アクティブステート電源管理の制御例を示すタイムチャートである。
【図１６】本実施の形態の画像処理装置の構成について説明するブロック図である。
【図１７】本実施の形態のデータ分配装置の構成について説明するブロック図である。
【図１８】データ分配装置によるデータの分配について説明するタイミングチャートである。
【図１９】設定部数をどの出力部で印刷するかの例について説明する説明図である。
【図２０】分配判定の処理について説明するフローチャートである。
【図２１】図１８の場合のトレース例について説明するタイミングチャートである。
【発明を実施するための形態】
【０００８】
本発明を実施するための最良の形態について図面を参照して説明する。
【０００９】
以下では、PCI Expressの詳細について、［PCI Express規格の概要］〜［PCI Express のアーキテクチャの詳細］の欄で説明し、その後、本実施の形態の画像処理装置について、［画像処理装置］の欄で説明する。
【００１０】
［PCI Express規格の概要］
まず、本実施の形態は高速シリアルバスの一つであるPCI Express（登録商標）を利用するものであり、本実施の形態の前提として当該PCI Express規格の概要について、非特許文献１の一部抜粋により説明する。ここに、高速シリアルバスとは、１本の伝送路を用いてシリアル（直列）伝送により高速（１００Ｍｂｐｓ程度以上）にデータをやり取りすることができるインタフェースを意味する。
【００１１】
PCI Expressは、PCIの後継規格としてコンピュータ全般に通用する標準拡張バスとして規格化されたバスであり、概略的には、低電圧差動信号伝送、ポイントツーポイントで送受信独立の通信チャネル、パケット化されたスプリットトランザクション、リンク構成の違いによる高いスケーラビリティなどの特徴を持つ。
【００１２】
図１に既存のPCIシステム、図２にPCI Expressシステムの各々の構成例を示す。既存のPCIシステムにあっては、ＣＰＵ１００やＡＧＰグラフィックス１０１やメモリ１０２が接続されたホストブリッジ１０３に対して、PCI-X（PCIの上位互換規格）デバイス１０４ａ，１０４ｂがPCI-Xブリッジ１０５ａを介して接続されたり、PCI-Xデバイス１０４ｃ，１０４ｄが接続されたPCI-Xブリッジ１０５ｂやPCIバススロット１０６が接続されたPCIブリッジ１０７がPCI-Xブリッジ１０５ｃを介して接続されたりしたツリー構造（木構造）とされている。
【００１３】
これに対して、PCI Expressシステムにあっては、ＣＰＵ１１０やメモリ１１１が接続されたルートコンプレックス１１２に対して、PCI Expressグラフィックス１１３がPCI Express１１４ａにより接続され、また、エンドポイント１１５ａやレガシーエンドポイント１１６ａがPCI Express１１４ｂにより接続されたスイッチ１１７ａがPCI Express１１４ｃにより接続され、さらには、エンドポイント１１５ｂやレガシーエンドポイント１１６ｂがPCI Express１１４ｄにより接続されたスイッチ１１７ｂやPCIバススロット１１８が接続されたPCIブリッジ１１９がPCI Express１１４ｅにより接続されたスイッチ１１７ｃがPCI Express１１４ｆにより接続されたツリー構造（木構造）とされている。
【００１４】
実際に想定されるPCI Expressプラットホーム例を図３に示す。図示例は、デスクトップ／モバイルへの適用例を示し、ＣＰＵ１２１がＣＰＵホストバス１２２により接続され、メモリ１２３が接続されたメモリハブ１２４（ルートコンプレックスに相当する）に対して、例えば、グラフィックス１２５がｘ１６のPCI Express１２６ａにより接続され、また、変換機能を有するＩ／Ｏハブ１２７がPCI Express１２６ｂにより接続されている。このＩ／Ｏハブ１２７には、例えば、Serial ATA１２８によりメモリ１２９が接続され、LPC１３０によりローカルＩ／Ｏ１３１が接続され、USB 2.0１３２やPCIバススロット１３３が接続されている。さらには、Ｉ／Ｏハブ１２７には、PCI Express１２６ｃによりスイッチ１３４が接続され、このスイッチ１３４には、各々、PCI Express１２６ｄ，１２６ｅ，１２６ｆによりモバイルドック１３５、ギガビットイーサネット（イーサネットは登録商標）１３６、アドインカード１３７が接続されている。
【００１５】
即ち、PCI Expressシステムでは、従来のPCI，PCI-X，AGPといったバスがPCI Expressで置き換わり、既存のPCI／PCI-Xデバイスを接続するためにブリッジが使用される。チップセット間の接続もPCI Express接続となり、IEEE1394，Serial ATA，USB 2.0などの既存のバスはＩ／ＯハブによりPCI Expressに接続される。
【００１６】
［PCI Expressの構成要素］
Ａ．ポート（Port）／レーン（Lane）／リンク（Link）
図４に物理層の構造を示す。ポートは、物理的には同一半導体内にあり、リンクを形成するトランスミッタ／レシーバの集合で、論理的にはコンポーネント間を１対１で接続（ポイント・ツー・ポイント）するインタフェースを意味する。転送レートは、例えば片方向２．５Ｇｂｐｓとされている（将来的には、５Ｇｂｐｓや１０Ｇｂｐｓが想定されている）。レーンは、例えば０．８Ｖの差動信号ペアのセットで、送信側の信号ペア（２本）、受信側の信号ペア（２本）からなる。リンクは、２つのポートとその間を結ぶレーンの集まりであり、コンポーネント間のデュアルシンプレックス通信バスである。「ｘＮリンク」はＮ本のレーンから構成され、現在の規格では、Ｎ＝１，２，４，８，１６，３２が定義されている。図示例は、ｘ４リンク例である。例えば、図５に示すように、デバイスＡ，Ｂ間を結ぶこのレーン幅Ｎを可変することにより、スケーラブルなバンド幅を構成することが可能となる。
【００１７】
Ｂ．ルートコンプレックス（Root Complex）
ルートコンプレックス１１２は、Ｉ／Ｏ構造の最上位に位置し、ＣＰＵやメモリサブシステムをＩ／Ｏに接続する。ブロック図などでは、図３に示すように、「メモリハブ」と記述されることが多い。ルートコンプレックス１１２（又は、１２４）は、１つ以上のPCI Expressポート（ルートポート）（図２中では、ルートコンプレックス１１２中の四角で示す）を持ち、各々のポートは独立したＩ／Ｏ階層ドメインを形成する。Ｉ／Ｏ階層ドメインは、単純なエンドポイントである場合（例えば、図２中のエンドポイント１１５ａ側の例）や、多数のスイッチやエンドポイントから形成される場合（例えば、図２中のエンドポイント１１５ｂやスイッチ１１７ｂ，１１５ｃ側の例）がある。
【００１８】
Ｃ．エンドポイント（End Point）
エンドポイント１１５は、タイプ００ｈのコンフィグレーション空間ヘッダを持つデバイス（具体的には、ブリッジ以外のデバイス）で、レガシーエンドポイントとPCI Expressエンドポイントとに分けられる。両者の大きな違いは、PCI ExpressエンドポイントはＢＡＲ（ベースアドレスレジスタ）で基本的にＩ／Ｏポートリソースを要求せず、このためＩ／Ｏリクエストを要求しない。また、PCI Expressエンドポイントは、ロックリクエストもサポートしていない。
【００１９】
Ｄ．スイッチ（Switch）
スイッチ１１７（又は、１３４）は、２つ以上のポートを結合し、ポート間でのパケットルーティングを行う。コンフィグレーションソフトウェアからは、当該スイッチは、図６に示すように、仮想PCI-PCIブリッジ１４１の集合体として認識される。図中、両矢印はPCI Expressリンク１１４（又は、１２６）を示し、１４２ａ〜１４２ｄはポートを示す。このうち、ポート１４２ａはルートコンプレックスに近い方のアップストリームポートであり、ポート１４２ｂ〜１４２ｄはルートコンプレックスから遠い方のダウンストリームポートである。
【００２０】
Ｅ．PCI Express１１４ｅ−PCIブリッジ１１９
PCI ExpressからPCI／PCI-Xへの接続を提供する。これにより、既存のPCI／PCI-XデバイスをPCI Expressシステム上で使用することができる。
【００２１】
［階層アーキテクチャ］
従来のＰＣＩのアーキテクチャは、図７（ａ）に示すように、プロトコルとシグナリングが密接に関連する構造であり階層という考え方はなかったが、PCI Expressでは、図７（ｂ）に示すように、一般的な通信プロトコルやInfiniBandのように、独立した階層構造とされ、各層に分けて仕様が定義されている。即ち、最上位のソフトウェア１５１、最下位の機構（メカニカル）部１５２間に、トランザクション層１５３、データリンク層１５４、物理層１５５を持つ構造とされている。これにより、各層のモジュール性が確保され、スケーラビリティを持たせることやモジュールの再利用が可能となる。例えば、新たな信号コーディング方式や伝送媒体を採用する場合、物理層を変更するだけでデータリンク層やトランザクション層は変更せずに対応できる。
【００２２】
PCI Expressのアーキテクチャの中心となるのは、トランザクション層１５３、データリンク層１５４、物理層１５５であり、各々図８を参照して説明する以下のような役割を持つ。
【００２３】
Ａ．トランザクション層１５３
トランザクション層１５３は、最上位に位置し、トランザクションレイヤパケット（ＴＬＰ）の組み立て、分解機能を持つ。トランザクションレイヤパケット（ＴＬＰ）は、リード／ライト、各種イベントといったトランザクションの伝達に用いられる。また、トランザクション層１５３は、トランザクションレイヤパケット（ＴＬＰ）のためのクレジットを用いたフロー制御を行う。各層１５３〜１５５におけるトランザクションレイヤパケット（ＴＬＰ）の概要を図９に示す（詳細は、後述する）。
【００２４】
Ｂ．データリンク層１５４
データリンク層１５４の主な役割は、エラー検出／訂正（再送）によりトランザクションレイヤパケット（ＴＬＰ）のデータ完全性を保証することと、リンク管理である。データリンク層１５４間では、リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは、トランザクションレイヤパケット（ＴＬＰ）と区別するために、データリンクレイヤパケット（ＤＬＬＰ）と呼ばれる。
【００２５】
Ｃ．物理層１５５
物理層１５５は、ドライバ、入力バッファ、パラレル−シリアル／シリアル−パラレル変換器、ＰＬＬ、インピーダンス整合回路といったインタフェース動作に必要な回路を含んでいる。また、論理的な機能としてインタフェースの初期化・保守の機能を持つ。物理層１５５は、データリンク層１５４／トランザクション層１５３を実際のリンクで使用される信号技術から独立させる役目も持っている。
【００２６】
なお、PCI Expressのハードウェア構成上、エンベデッド・クロックという技術を採用しており、クロック信号はなく、クロックのタイミングはデータ信号中に埋め込まれており、受信側でデータ信号のクロスポイントを基にクロックを抽出する方式とされている。
【００２７】
［コンフィグレーション空間］
PCI Expressは、従来のPCIと同様にコンフィグレーション空間を持つが、その大きさは従来のPCIが２５６バイトであるのに対して、図１０に示すように、４０９６バイトへと拡張されている。これにより、多数のデバイス固有レジスタセットを必要とするデバイス（ホストブリッジなど）に対しても、将来的に十分な空間が確保されている。PCI Expressでは、コンフィグレーション空間へのアクセスは、フラットなメモリ空間へのアクセス（コンフィグレーションリード／ライト）で行われ、バス／デバイス／機能／レジスタ番号はメモリアドレスにマップされている。
【００２８】
当該空間の先頭２５６バイトは、PCIコンフィグレーション空間として、ＢＩＯＳや従来のＯＳからＩ／Ｏポートを使用した方法でもアクセスできる。従来のアクセスをPCI Expressでのアクセスに変換する機能は、ホストブリッジ上に実装される。００ｈから３ＦｈまではPCI2.3互換のコンフィグレーションヘッダとなっている。これにより、PCI Expressで拡張された機能以外であれば、従来のＯＳやソフトウェアをそのまま使用することができる。即ち、PCI Expressにおけるソフトウェア層は、既存のPCIと互換性を保ったロード・ストア・アーキテクチャ（プロセッサが直接Ｉ／Ｏレジスタをアクセスする方式）を継承している。しかし、PCI Expressで拡張された機能（例えば、同期転送やＲＡＳ（Reliability,Availability and Serviceability）などの機能）を使用するには、４ＫバイトのPCI Express拡張空間にアクセスできるようにする必要がある。
【００２９】
なお、PCI Expressとしては様々なフォームファクタ（形状）が考えられるが、具体化している例としては、アドインカード、プラグインカード（NEWCARD）、Mini PCI Expressなどがある。
【００３０】
［PCI Express のアーキテクチャの詳細］
PCI Express のアーキテクチャの中心となっているトランザクション層１５３、データリンク層１５４、物理層１５５について、各々詳細に説明する。
【００３１】
Ａ．トランザクション層１５３
トランザクション層１５３の主な役割は、前述したように、上位のソフトウェア層１５１と下位のデータリンク層１５４との間でトランザクションレイヤパケット（ＴＬＰ）の組み立てと分解を行うことである。
【００３２】
ａ．アドレス空間とトランザクションタイプ
PCI Expressでは、従来のPCIでサポートされていたメモリ空間（メモリ空間とのデータ転送用）、Ｉ／Ｏ空間（Ｉ／Ｏ空間とのデータ転送用）、コンフィグレーション空間（デバイスのコンフィグレーションとセットアップ用）に加えて、メッセージ空間（PCI Expressデバイス間のインバンドでのイベント通知や一般的なメッセージ送信（交換）用…割り込み要求や確認は、メッセージを「仮想ワイヤ」として使用することにより伝達される）が追加され、４つのアドレス空間が定義されている。各々の空間に対してトランザクションタイプが定義されている（メモリ空間、Ｉ／Ｏ空間、コンフィグレーション空間は、リード／ライト、メッセージ空間は基本（ベンダ定義含む））。
【００３３】
ｂ．トランザクションレイヤパケット（ＴＬＰ）
PCI Expressは、パケット単位で通信を行う。図９に示したトランザクションレイヤパケット（ＴＬＰ）のフォーマットにおいて、ヘッダのヘッダ長は３ＤＷ（ＤＷはダブルワードの略；合計１２バイト）又は４ＤＷ（１６バイト）で、トランザクションレイヤパケット（ＴＬＰ）のフォーマット（ヘッダ長とペイロードの有無）、トランザクションタイプ、トラフィッククラス（ＴＣ）、アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は１０２４ＤＷ（４０９６バイト）である。
【００３４】
ＥＣＲＣは、エンドツーエンドのデータ完全性を保証するためのもので、トランザクションレイヤパケット（ＴＬＰ）部分の３２ビットＣＲＣである。これは、スイッチ内部などでトランザクションレイヤパケット（ＴＬＰ）にエラーが発生した場合、ＬＣＲＣ（リンクＣＲＣ）ではエラーを検出できないためである（エラーとなったＴＬＰでＬＣＲＣが再計算されるため）。
【００３５】
リクエストは、完了パケットが不要なものと必要なものとがある。
【００３６】
ｃ．トラフィッククラス（ＴＣ）と仮想チャネル（ＶＣ）
上位のソフトウェアは、トラフィッククラス（ＴＣ）を使用することによりトラフィックの差別化（優先度をつける）を行うことができる。例えば、映像データをネットワークのデータよりも優先して転送する、といったことが可能となる。トラフィッククラス（ＴＣ）はＴＣ０からＴＣ７まで８つある。
【００３７】
仮想チャネル（ＶＣ：Vertual Channel）は、各々独立した仮想通信バス（同一のリンクを共用する複数の独立したデータ・フロー・バッファを使用するメカニズム）で、各々がリソース（バッファやキュー）を持ち、図１１に示すように、独立したフロー制御を行う。これにより、１つの仮想チャネルのバッファが満杯の状態（full）になっても、他の仮想チャネルの転送を行うことができる。つまり、物理的には１つのリンクを仮想的な複数のチャネルに分けることで、有効に使用することができる。例えば、図１１中に示すように、スイッチを経由してルートのリンクが複数のデバイスに分かれる場合、各デバイスのトラフィックの優先度を制御することができる。ＶＣ０は必須で、コストパフォーマンスのトレードオフに応じてその他の仮想チャネル（ＶＣ１〜ＶＣ７）が実装される。図１１中の実線矢印は、デフォルト仮想チャネル（ＶＣ０）を示し、破線矢印はその他の仮想チャネル（ＶＣ１〜ＶＣ７）を示している。
【００３８】
トランザクション層内では、トラフィッククラス（ＴＣ）が仮想チャネル（ＶＣ）にマッピングされる。１つの仮想チャネル（ＶＣ）に対して１つ又は複数のトラフィッククラス（ＴＣ）をマッピングできる（仮想チャネル（ＶＣ）の数が少ない場合）。単純な例では、各トラフィッククラス（ＴＣ）から各仮想チャネル（ＶＣ）に１対１、全てのトラフィッククラス（ＴＣ）を仮想チャネルＶＣ０にマッピングする、といったことが考えられる。ＴＣ０−ＶＣ０のマッピングは、必須／固定で、それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラス（ＴＣ）を利用することで、トランザクションの優先度を制御することが可能となる。
【００３９】
ｄ．フロー制御
受信バッファのオーバーフローを避け、伝送順序を確立するためにフロー制御（ＦＣ：Flow Control）が行われる。フロー制御は、リンク間のポイントツーポイントで行われ、エンドツーエンドではない。従って、フロー制御により最終的な相手（コンプリータ）にパケットが届いたことを確認することはできない。
【００４０】
PCI Expressのフロー制御は、クレジット・ベースで行われる（データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバーフロー、アンダフローが発生しないメカニズム）。即ち、受信側はリンク初期化時にバッファ容量（クレジット値）を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには６種類ある。
【００４１】
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット（ＤＬＬＰ）を使用して行われる。フロー制御はトランザクションレイヤパケット（ＴＬＰ）のみに適用され、データリンクレイヤパケット（ＤＬＬＰ）には適用されない（ＤＬＬＰは常時送受信可能）。
【００４２】
Ｂ．データリンク層１５４
データリンク層１５４の主な役割は、前述したように、リンク上の２つのコンポーネント間での信頼性の高いトランザクションレイヤパケット（ＴＬＰ）交換機能を提供することである。
【００４３】
ａ．トランザクションレイヤパケット（ＴＬＰ）の扱い
トランザクション層１５３から受け取ったトランザクションレイヤパケット（ＴＬＰ）に対しては、先頭に２バイトのシーケンス番号、末尾に４バイトのリンクＣＲＣ（ＬＣＲＣ）を付加して、物理層１５５に渡す（図９参照）。トランザクションレイヤパケット（ＴＬＰ）は、リトライバッファに保管され、相手から受信確認（ＡＣＫ）が届くまで再送される。トランザクションレイヤパケット（ＴＬＰ）の送信に失敗が続いた場合は、リンク異常であると判断して物理層１５５に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層１５４の状態はインアクティブに遷移する。
【００４４】
物理層１５５から受け取ったトランザクションレイヤパケット（ＴＬＰ）は、シーケンス番号とリンクＣＲＣ（ＬＣＲＣ）が検査され、正常であればトランザクション層１５３に渡され、エラーがあった場合は再送を要求する。
【００４５】
ｂ．データリンクレイヤパケット（ＤＬＬＰ）
データリンク層１５４が生成するパケットは、データリンクレイヤパケット（ＤＬＬＰ）と呼ばれ、データリンク層１５４間でやり取りされる。データリンクレイヤパケット（ＤＬＬＰ）には、
・Ack／Nak：ＴＬＰの受信確認、リトライ（再送）
・InitFC1／InitFC2／UpdateFC：フロー制御の初期化とアップデート
・電源管理のためのＤＬＬＰ
なる種類がある。
【００４６】
図１２に示すように、データリンクレイヤパケット（ＤＬＬＰ）の長さは６バイトで、種類を示すＤＬＬＰタイプ（１バイト）、ＤＬＬＰの種類で固有の情報（３バイト）、ＣＲＣ（２バイト）から構成される。
【００４７】
Ｃ．物理層−論理サブブロック１５６
図８中に示す物理層１５５の論理サブブロック１５６での主な役割は、データリンク層１５４から受け取ったパケットを電気サブブロック１５７で送信できる形式に変換することである。また、物理層１５５を制御／管理する機能も有する。
【００４８】
ａ．データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“０”や“１”が続かないように（長い期間、クロスポイントが存在しない状態が続かないようにするため）、データ符号化に８Ｂ／１０Ｂ変換を用いる。変換されたデータは、図１３中に示すように、シリアル変換され、ＬＳＢからレーン上に送信される。ここに、レーンが複数ある場合は（図１３はｘ４リンクの場合を例示している）、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレル・バスのようにみえるが、レーン毎に独立した転送を行うので、パラレル・バスで問題となるスキューが大幅に緩和される。
【００４９】
ｂ．電源管理とリンクステート
リンクの消費電力を低く抑えるために、図１４に示すように、Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートが定義されている。
【００５０】
Ｌ０が通常モードで、Ｌ０ｓからＬ２へと低消費電力となるが、Ｌ０への復帰にも時間がかかるようになる。図１５に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。
【００５１】
Ｄ．物理層−電気サブブロック１５７
物理層１５５の電気サブブロック１５７での主な役割は、論理サブブロック１５６でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック１５６に渡すことである。
【００５２】
ａ．ＡＣカップリング
リンクの送信側では、ＡＣカップリング用のコンデンサが実装される。これにより、送信側と受信側のＤＣコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
【００５３】
ｂ．デエンファシス
PCI Expressでは、前述したように、８Ｂ／１０Ｂエンコーディングによってできるだけ連続した“０”や“１”が続かないように処理されるが、連続した“０”や“１”が続くこともある（最大５回）。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、２つ目のビットからは差動電圧レベル（振幅）を３．５±０．５ｄＢ落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
【００５４】
［画像処理装置］
図１６は、本実施の形態の画像処理装置１の概略構成を示すブロック図である。画像処理装置１は、画像データに関する所定の処理、この例では、原稿画像の読み取り、その読み取り画像の画像データの記憶装置への保存、この画像データの印刷出力などの処理を実行する。
【００５５】
画像処理装置１では、画像データの転送に本実施の形態のデータ転送装置を用いている。このデータ転送装置は、PCI Expressのバスで接続されたPCI Express規格のルートコンプレックス（Root Complex）１１とスイッチ（Switch）１２、さらには、スイッチ１２の下位にPCI Expressのバスで接続された接続されたデータ分配装置１３などから構成されている。
【００５６】
スイッチ１２には、データ分配装置１３の他にも、スキャナなどの入力部１４、画像データの一時記憶などに用いるメモリ１５、画像データに対して画像処理、圧縮、伸長、データ変換処理（プリンタ言語の展開、拡大、縮小）などの処理を行なう処理部１６、画像データを格納するハードディスクなどのストレージ部１７、外部のネットワークなどとの通信を行なう通信制御装置等である通信部１８が、PCI Expressのバスで接続されている。また、データ分配装置１３には、その下位に画像データに基づいて用紙などの媒体上に画像形成するプロッタ等である複数の出力部２０１，２０２，２０３，…，ｍが、PCI Expressのバスで接続されている。スイッチ１２以下は×ｎリンク（ｎ≧１）、データ分配装置１３以下は×１リンクとする。
【００５７】
図１７は、データ分配装置１３の構成を説明する説明図である。データ分配装置１３は、その上位のスイッチ１２とPCI Expressのバスで接続され、上位のルートコンプレックス１１、スイッチ１２を介してデータの転送を受けるPCI Express規格のエンドポイント（End Point）２１と、この転送されたデータをバッファリングするバッファ２２と、ＣＰＵを備えていてスイッチ１２を介して転送されたデータを一時的にバッファ２２に蓄積してデータの分配制御をする回路である分配制御回路２３と、この分配制御回路２３の制御に従って、データ分配装置１３の下位に位置するデータの出力先である出力部２０１，２０２，２０３，…，ｍに画像データを分配して転送するPCI Express規格のルートコンプレックス２４及びスイッチ２５と、を備えている。
【００５８】
データ分配装置１３は、分配制御回路２３の制御により、上位のスイッチ１２を介して転送された画像データを下位の出力部２０１，２０２，２０３，…，ｍに配送制御するが、以下では、その具体例について説明する。
【００５９】
（具体例１）
まず、各出力部２０１，２０２，２０３，…，ｍは、プリント速度の異なるものが混在するようにする。例えば、出力部２０１を高速プリント機、出力部２０２を中速プリント機、出力部２０３を低速プリント機などである。
【００６０】
そして、分配制御回路２３は、画像データの各出力部２０１，２０２，２０３，…，ｍへの分配の仕方を予め設定している。これは、例えば、プリント速度の速いものの優先度を高くする。これにより、バッファ２２がフルになったためにデータ送信が一時的に停止しても、自動的に画像データの出力先を変更することで、画像データの印刷のための待ち時間を低減することができる。さらに、プリント速度の速いものを優先することで、より印刷の高速化を図ることができる。
【００６１】
（具体例２）
また、各出力部２０１，２０２，２０３，…，ｍは、出力画質の異なるものが混在するようにしてもよい。例えば、出力部２０１を普通画質プリント機、出力部２０２も普通画質プリント機、出力部２０３は高画質プリント機とするなどである。ここで、プリント速度は、例えば、出力部２０１、出力部２０２、出力部２０３の順に速いものとする。
【００６２】
この例では、大量の部数を用途に応じて（お客様への配布用は高画質で、一般への配布用は普通画質で、など）、各出力部２０１，２０２，２０３，…，ｍで出力する場合、具体例１と同様に優先度を設けることで、用途に応じた印刷出力を高速に行うことができる。
【００６３】
（具体例３）
さらに、各出力部２０１，２０２，２０３，…，ｍが中速から低速のプリント機で、同程度の印刷速度のものである場合にも、大量の部数を印刷するに際して各出力部２０１，２０２，２０３，…，ｍを用いて印刷出力する場合、具体例１の場合と同様に、中速から低速のプリント機を用いても印刷出力全体の高速化を図ることができる。
【００６４】
次に、具体的にデータ分配装置１３が実行する処理について説明する。
【００６５】
具体例１の場合で、データ分配装置１３の下位に出力部２０１，２０２，２０３が接続され、そのプリント速度は、出力部２０１，２０２，２０３の順に速い（出力部２０１が最も速い）ものとする。
【００６６】
そして、この例で、１部あたり２ページのものを８部印刷出力する場合について図１８を参照して説明する。図１８においては、出力部２０１，２０２，２０３ごとにデータ転送とプロットについてのタイミングを表示している。各出力部２０１，２０２，２０３のデータ転送の欄においてデータ転送をしているのはＨレベルの期間、転送を待機しているのはプリントが終了するまでのＬレベルの期間とする。また、各出力部２０１，２０２，２０３のプロットの欄において、プリントをしているのはＨレベルの期間とする。各出力部２０１，２０２，２０３は１ページ分相当の画像データを記憶できるバッファを備えているものとする。各出力部２０１，２０２，２０３のデータ転送の欄において、Ｈレベルの期間では１ページ分のデータをバッファに転送し、バッファがいっぱいになるので、次のＬレベルの期間ではデータ転送を待機する。プリント中はバッファを確保し、プリントが終了したらリリースする。リリース後はバッファが空になるので、データ転送が可能となる。
【００６７】
データ分配装置１３によるデータの分配について説明する。図１８中に付した番号は、プリントされる部数の順番である。１部あたり２ページとしているので同じ番号が２つ付されている。同一番号で１番目のものが１ページ目、２番目のものが２ページ目になる。そしてプリント速度の速い出力部ほど優先度が高いものとする。最初に、最速のプリント速度の出力部２０１からスタートする。出力部２０１でデータ転送が終わったら、転送待機になるが、次に優先度が高い出力部２０２を選択する（図１８の分配１）。出力部２０２のデータ転送が終わったら出力部２０２ではデータ転送が転送待機になる。ここで、転送可能な優先度の高い出力部があれば新たに選択するが、出力部２０１は１部あたりの全ページ数のプリントが終了していないので、引き続きデータ転送、プリントが継続される（図１８の継続１）。出力部２０１の２回目のデータ転送が終わったら、出力部２０１では転送待機になる。ここで優先度が高いのは、出力部２０２だが、出力部２０２はプリント中で転送待機になっているので、出力部２０３が選択される（図１８の分配２）。
【００６８】
大きな処理の手順は以上のとおりだが、部数を考慮すると以下の処理の流れになる。
【００６９】
ここで、
t_sel：分配判定時に選択された出力部での１ページあたりのプリント時間。
r_num：分配判定時に設定部数（総プリント数）に対してプリントしなければならない残りのプリント枚数（図１９参照。なお、図１９の例は、図１８と関連はない）。なお、プリント中のページはプリント済みとはしない。
p_num：１部あたりのページ数。
plot_sel：分配判定時に選択された出力部。
sel_num：plot_selが１部プリントする時間において、plot_selより高速の各々の出力部においてプリント可能なページ数の総和。plot_selが全ての出力部で最速のものの場合は、１部あたりのページ数。
とする。
【００７０】
sel_numについて説明する。出力部２０１、出力部２０２、出力部２０３の１ページあたりのプリント時間を各々、ｔ１，ｔ２，ｔ３とする（図１８参照）。分配判定時に選択された出力部が出力部２０３であるとする。従って、“t_sel＝ｔ３”である。
【００７１】
出力部２０３より速い出力部は、出力部２０１、出力部２０２であるので、出力部２０３が１部プリントする時間においてプリント可能な出力部２０１、出力部２０２のページ数は各々、“（t_sel／ｔ１）×p_num”，“（t_sel／ｔ２）×p_num”である。従って、sel_numは、“sel_num＝（t_sel／ｔ１)×p_num＋（t_sel／ｔ２）×p_num”である。
【００７２】
初めに最速の出力部へデータ転送開始するともに最速の出力部でプリントを行う。データ転送が終了したら、分配判定を行う。分配判定の処理について図２０のフローチャートを参照して説明する。
【００７３】
分配制御回路２３のＣＰＵは、現在プリント中（転送待機）でない出力部２０１〜２０３の中で最速の出力部を選択する。この選択された最速の出力部にて、１部あたりでの全てのページのプリントが終了していないものは、今後もプリントを続けるので、利用可能な出力部なしと判断する（ステップＳ１のＮ）。１部あたりでの全てのページのプリントが終了している、または、まだ１ページもプリントしていない場合は、利用可能な出力部ありとする（ステップＳ１のＹ）。すべての出力部がプリント中の場合は、利用可能な出力部なしと判断する（ステップＳ１のＮ）。利用可能な出力部なしの場合は（ステップＳ１のＮ）、現在稼動中の出力部で１部あたりでの全てのページのプリントが終了するまで、データ転送、プリントを継続する（ステップＳ２）。利用可能な出力部がある場合は（ステップＳ１のＹ）、ステップＳ３の判定を行う。
【００７４】
ステップＳ３で、未プリントの残りページ数と比較して、選択された出力部で１部プリントする時間において、選択された出力部より高速の各々の出力部においてプリント可能な枚数の総和が小さい場合は（ステップＳ３のＹ）、選択された出力部を用いることを判定する（ステップＳ４）。そうでないときは（ステップＳ３のＮ）、現在稼動中の出力部でデータ転送、プリントを継続する（ステップＳ５）。すなわち、ステップＳ３では、選択された出力部でプリントすることで、逆に全体としてのプリント時間が長くならないかどうか判定している。この分配判定は、稼動している各出力部２０１〜２０３のデータ転送の終了後毎に設定部数になるまで行われる。
【００７５】
なお、プリントが設定部数分全て終了しなくても、設定部数の最後の部数（設定部数が１０部なら１０部目）の１ページ目のデータ転送の開始時点で、設定部数になったとみなす。全ての中で最速の出力部において１部あたりでの全てのページのプリントが終了後で、プリントが設定部数分全て終了していない場合は、最速の出力部ではデータ転送、プリントを継続する（図１８の継続２、継続３）。
【００７６】
以上は、データ転送を１ページの単位で示した例だが、１部単位やライン単位で行っても同様である。
【００７７】
次に、図１８のトレース例について、図２１を参照して説明する。
【００７８】
図２１の例では、
１部２ページ（p_num＝２）、８部プリント
ｔ２＝２×ｔ１，ｔ３＝４×ｔ１
出力部２０３選択時のsel_num＝１２（（ｔ３／ｔ１＋ｔ３／ｔ２）×２）
出力部２０２選択時のsel_num＝４（ｔ２／ｔ１×２）
出力部２０１選択時のsel_num＝２
という条件の例を示す。
【００７９】
この条件での分配判定での結果（分配判定でないところもある）は以下の通りである。以下の符号Ａ〜Ｌは、図２１に示すとおりである。
Ａ：利用可能な出力部は出力部２０２である。“r_num＝１６＞sel_num＝４”より、出力部２０２へデータ転送し、プリントする。
Ｂ：最速は出力部２０１だが、１部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。
Ｃ：利用可能な出力部は出力部２０３である。“r_num＝１５＞sel_num＝１２”より、出力部２０３へデータ転送し、プリントする。
Ｄ：利用可能な出力部は出力部２０１である。“r_num＝１４＞sel_num＝２”より、出力部２０１へデータ転送し、プリントする。または、設定部数になっていないので、出力部２０１でデータ転送、プリントを継続と判定させてもよい。
Ｅ：最速は出力部２０２だが、１部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。
Ｆ：最速は出力部２０１だが、１部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。
Ｇ：全ての出力部はプリント中なので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。
Ｈ：分配判定ではない。設定部数になっていないので出力部２０１でデータ転送、プリントを継続する。
Ｉ：利用可能な出力部は出力部２０２である。“r_num＝１０＞sel_num＝４”より、出力部２０２へデータ転送し、プリントする。
Ｊ：最速は出力部２０１だが、１部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。
Ｋ：最速は出力部２０３だが、１部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。
Ｌ：分配判定ではない。設定部数になっていないので出力部２０１でデータ転送、プリントを継続する。この後、設定部数分に達するので、以降は、分配判定は行わない。
【符号の説明】
【００８０】
１  画像処理装置
１２  スイッチ
１３  データ分配装置
２１  エンドポイント
２２  バッファ
２３  分配制御回路
２４  ルートコンプレックス
２５  スイッチ
【先行技術文献】
【非特許文献】
【００８１】
【非特許文献１】“PCI Express 規格の概要”Interface誌、July’2003 里見尚志
【図１】
2011181082.tif 000003
【図２】
2011181082.tif 000004
【図３】
2011181082.tif 000005
【図４】
2011181082.tif 000006
【図５】
2011181082.tif 000007
【図６】
2011181082.tif 000008
【図７】
2011181082.tif 000009
【図８】
2011181082.tif 000010
【図９】
2011181082.tif 000011
【図１０】
2011181082.tif 000012
【図１１】
2011181082.tif 000013
【図１２】
2011181082.tif 000014
【図１３】
2011181082.tif 000015
【図１４】
2011181082.tif 000016
【図１５】
2011181082.tif 000017
【図１６】
2011181082.tif 000018
【図１７】
2011181082.tif 000019
【図１８】
2011181082.tif 000020
【図１９】
2011181082.tif 000021
【図２０】
2011181082.tif 000022
【図２１】
2011181082.tif 000023
【手続補正書】
【提出日】平成23年5月2日(2011.5.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを保存するバッファと、
前記バッファに保存されたデータを処理中である出力先以外の出力先の中でデータの出力速度が速い出力先を選択し、前記バッファに保存されたデータを前記選択された出力先に分配する分配制御回路と、
を具備することを特徴とするデータ分配装置。
【請求項２】
前記分配制御回路は、前記バッファに保存された１部あたりのページ数分のデータを転送中の出力先以外の出力先の中でデータの出力速度が速い出力先を選択する分配制御回路であることを特徴とする請求項１に記載のデータ分配装置。
【請求項３】
前記分配制御回路と前記出力先との間に位置し、前記分配制御回路によって分配されたデータを出力先に転送するスイッチをさらに具備することを特徴とする請求項１に記載のデータ分配装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
本発明は、データを保存するバッファと、前記バッファに保存されたデータを処理中である出力先以外の出力先の中でデータの出力速度が速い出力先を選択し、前記バッファに保存されたデータを前記選択された出力先に分配する分配制御回路と、を具備することを特徴とするデータ分配装置である。