JP4476088B2 - Data transfer apparatus and image forming system - Google Patents
Data transfer apparatus and image forming system Download PDFInfo
- Publication number
- JP4476088B2 JP4476088B2 JP2004281236A JP2004281236A JP4476088B2 JP 4476088 B2 JP4476088 B2 JP 4476088B2 JP 2004281236 A JP2004281236 A JP 2004281236A JP 2004281236 A JP2004281236 A JP 2004281236A JP 4476088 B2 JP4476088 B2 JP 4476088B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual channel
- data transfer
- packet
- data
- payload size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Description
本発明は、シリアルバスを用いるデータ転送装置及び画像形成システムに関する。 The present invention relates to a data transfer apparatus and an image forming system using a serial bus.
シリアルバスを仮想チャネル単位で時分割に使い分けることで複数トラフィックのパケットデータを伝送する仮想チャネル機能と、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション機能とを有するデータ転送装置がある。このような仕組みのデータ転送装置によれば、データ転送の優先度が異なる複数トラフィックのパケットデータをシリアルバスを用いて同時転送させたい場合に、転送レートの調整が可能となる。 There is a data transfer apparatus having a virtual channel function for transmitting packet data of a plurality of traffic by using a serial bus in a time division manner in units of virtual channels and an arbitration function for arbitrating the priority for issuing packet data for each virtual channel . According to the data transfer apparatus having such a mechanism, it is possible to adjust a transfer rate when packet data of a plurality of traffics having different data transfer priorities are to be transferred simultaneously using a serial bus.
一例として、PCIバス方式の後継規格に当るPCI Express(登録商標)なるシリアルインタフェース(例えば、非特許文献1参照)の仮想チャネル(Virtual Channel)のアービトレーションのアルゴリズムでは、ラウンドロビン(Round Robin)方式、ウエイテッドラウンドロビン(Weighted Round robin)方式、ストリクト(Strict)方式があり、シリアルバス上に転送するパケットを、トランザクション単位で優先度の調整が可能である。なお、これらの方式については、後述するが、ラウンドロビン方式は各仮想チャネルVC毎に均等な頻度でパケットデータを発行させる方式、ウエイテッドラウンドロビン方式は各仮想チャネルVC毎に任意に指定可能なテーブルに従った重み付けされた頻度でパケットデータを発行させる方式、ストリクト方式は各仮想チャネルVC毎に固定の優先順でパケットデータを発行させる方式である。 As an example, in the arbitration algorithm of a virtual channel (Virtual Channel) of a serial interface (for example, see Non-Patent Document 1) that is a PCI Express (registered trademark) equivalent to the successor standard of the PCI bus method, a round robin (Round Robin) method, There are a weighted round robin method and a strict method, and it is possible to adjust the priority of packets transferred on the serial bus in units of transactions. Although these methods will be described later, the round robin method is a method in which packet data is issued at an equal frequency for each virtual channel VC, and the weighted round robin method can be arbitrarily designated for each virtual channel VC. The method of issuing packet data at a weighted frequency according to the table, the strict method is a method of issuing packet data in a fixed priority order for each virtual channel VC.
ところが、PCI Express規格の仮想チャネルVCのアービトレーション機能に従い、仮想チャネルVC毎のパケットデータの発行頻度の優先度を指定しただけでは優先度制御の自由度が低く、複数トラフィックのパケットデータに対して高精度にデータ転送レートを制御することは難しい。 However, according to the arbitration function of the virtual channel VC of the PCI Express standard, simply specifying the priority of the packet data issue frequency for each virtual channel VC has a low degree of freedom in priority control, and is high for packet data of multiple traffic. It is difficult to accurately control the data transfer rate.
本発明の目的は、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段を有するデータ転送装置において、自由度が高く高精度なデータ転送レート制御を可能にすることである。 An object of the present invention is to enable high-precision data transfer rate control with a high degree of freedom in a data transfer apparatus having arbitration means for adjusting the priority of issuing packet data for each virtual channel.
請求項1記載の発明は、シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、前記仮想チャネル毎のパケット発行頻度を検出する手段と、前記仮想チャネル毎のデータ転送レートの設定値を指定する指定手段と、検出された前記仮想チャネル毎のパケット発行頻度と前記仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の前記仮想チャネル間の比率が、前記指定手段によって指定された前記仮想チャネル毎のデータ転送レートの設定値の比率に近づく値となるように、前記仮想チャネル毎にパケットデータのペイロードサイズを決定するペイロードサイズ決定手段と、前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、を備える。 According to the first aspect of the present invention, virtual channel means for transmitting packet data of a plurality of traffic by using a serial bus in a time division manner in units of virtual channels, and arbitration means for arbitrating priority for issuing packet data for each virtual channel Means for detecting a packet issuance frequency for each virtual channel, designation means for designating a setting value of a data transfer rate for each virtual channel, and packet issuance for each detected virtual channel The ratio between the virtual channels of the integrated value of the frequency and the payload size of the packet data issued for each virtual channel approaches the ratio of the set value of the data transfer rate for each virtual channel specified by the specifying means. as a value, payload of packet data for each of the virtual channel Comprises a payload size determining means for determining a size in the break conditions of channel B., and packet generating means for outputting said arbitration means generates the packet data of the determined payload size for each of the virtual channel.
請求項2記載の発明は、シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、前記仮想チャネル毎のパケット発行頻度を検出する手段と、前記仮想チャネル毎のデータ転送レートの設定値を指定する指定手段と、前記仮想チャネル毎に発行されるパケットデータのペイロードサイズを検出する手段と、検出された前記仮想チャネル毎のパケット発行頻度、検出された前記仮想チャネル毎のパケットデータのペイロードサイズに基づくフィードバック制御により、前記仮想チャネル間のデータ転送レートの比率が、前記指定手段によって指定された前記仮想チャネル毎のデータ転送レートの設定値の比率に近づく値となるように、前記仮想チャネル毎にパケットデータの修正されたペイロードサイズを決定するペイロードサイズ決定手段と、前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、を備える。 According to a second aspect of the present invention, there is provided virtual channel means for transmitting packet data of a plurality of traffic by using a serial bus in a time division manner in units of virtual channels, and arbitration means for arbitrating the priority for issuing packet data for each virtual channel. Means for detecting a packet issuance frequency for each virtual channel, designation means for designating a setting value of a data transfer rate for each virtual channel, and packet data issued for each virtual channel The ratio of the data transfer rate between the virtual channels by means of feedback control based on the means for detecting the payload size of the packet, the packet issue frequency for each detected virtual channel, and the payload size of the detected packet data for each virtual channel but it is designated by the designation unit Wherein to a value closer to the ratio of the set value of the data transfer rate for each virtual channel a, and payload size determining means for determining a modified payload size of the packet data for each of the virtual channel, determined for each of the virtual channel Packet generating means for generating packet data of the payload size thus set and outputting the packet data to the arbitration means.
請求項3記載の発明は、請求項2記載のデータ転送装置において、前記ペイロードサイズ決定手段は、検出された前記仮想チャネル毎のパケット発行頻度と検出された前記仮想チャネル毎のパケットデータのペイロードサイズとの積算処理により前記仮想チャネル間のデータ転送レートの比率を算出する手段と、算出された前記仮想チャネル間のデータ転送レートの比率を外部より指定される前記仮想チャネル毎のデータ転送レートの設定値の前記仮想チャネル間の比率と比較して前記仮想チャネル毎の優先度の高低を判定する手段と、判定された前記仮想チャネル毎の優先度の高低の結果に応じて前記各仮想チャネル間のパケットデータのペイロードサイズの大小関係を相対的に修正して前記仮想チャネル毎のペイロードサイズを決定する手段と、を有する。 According to a third aspect of the present invention, in the data transfer device according to the second aspect, the payload size determining means includes the detected packet issue frequency for each virtual channel and the detected payload size of the packet data for each virtual channel. Means for calculating the ratio of the data transfer rate between the virtual channels by the integration process, and setting the data transfer rate ratio between the virtual channels for each virtual channel specified from the outside. Means for determining the level of priority for each virtual channel compared with a ratio between the virtual channels of a fixed value, and between the virtual channels according to the result of the level of priority for each determined virtual channel The payload size for each virtual channel is determined by relatively modifying the size relationship of the payload size of the packet data. It has a stage, a.
請求項4記載の発明は、請求項3記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。
Invention of
請求項5記載の発明は、請求項3記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。
Invention of
請求項6記載の発明は、請求項3記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。
Invention of claim 6, wherein the data transfer device of
請求項7記載の発明は、請求項3ないし6の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。
Invention of
請求項8記載の発明は、請求項3ないし6の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。
Invention of claim 8, wherein the data transfer device of any one of
請求項9記載の発明は、請求項3ないし6の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。
Invention of claim 9, wherein the data transfer device of any one of
請求項10記載の発明は、請求項1ないし9の何れか一記載のデータ転送装置において、前記シリアルバスは、PCI Express規格のシリアルバスである。 According to a tenth aspect of the present invention, in the data transfer device according to any one of the first to ninth aspects, the serial bus is a PCI Express standard serial bus.
請求項11記載の発明は、請求項10記載のデータ転送装置において、前記アービトレーション手段の仮想チャネル(Virtual Channel)毎のアルゴリズムは、前記PCI Express規格のラウンドロビン(Round Robin)、又は、ウエイテッドラウンドロビン(Weighted Round Robin)である。
The invention according to
請求項12記載の発明は、請求項11記載のデータ転送装置において、前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル(Virtual Channel)毎のアルゴリズムとして、前記PCI Express規格のラウンドロビン(Round Robin)、又は、ウエイテッドラウンドロビン(Weighted Round Robin)の何れが用いられているかを検出する手段である。 According to a twelfth aspect of the present invention, in the data transfer apparatus according to the eleventh aspect, the means for detecting the packet issue frequency is a round robin of the PCI Express standard as an algorithm for each virtual channel of the arbitration means. (Round Robin) or a weighted round robin (Weighted Round Robin).
請求項13記載の発明は、請求項12記載のデータ転送装置において、前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル(Virtual Channel)毎のアルゴリズムとして、前記PCI Express規格のウエイテッドラウンドロビン(Weighted Round Robin)が用いられていることを検出した場合には、前記PCI Express規格により規定されている仮想チャネル毎のアービトレーションテーブルを参照して前記仮想チャネル毎のパケット発行頻度を検出する。 According to a thirteenth aspect of the present invention, in the data transfer apparatus according to the twelfth aspect, the means for detecting the packet issue frequency is a weighted signal of the PCI Express standard as an algorithm for each virtual channel of the arbitration means. When it is detected that Round Robin is used, the packet issue frequency for each virtual channel is detected by referring to the arbitration table for each virtual channel defined by the PCI Express standard. .
請求項14記載の発明の画像形成システムは、パケットデータの転送方向が同方向で必要とするデータ転送レートの異なる複数のデバイスを有するエンジンと、このエンジンを制御駆動するコントローラと、これらのコントローラと前記エンジン中の前記デバイスとの間を1本のリンクによるシリアルバスで接続する請求項1ないし13の何れか一記載のシリアルデータ転送装置によるインタフェースと、を備える。
An image forming system according to a fourteenth aspect of the present invention includes an engine having a plurality of devices having different data transfer rates required in the same packet data transfer direction, a controller for controlling and driving the engine, and these controllers, 14. An interface using a serial data transfer device according to
本発明によれば、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段の機能に加えて、仮想チャネル毎のパケット発行頻度を検出する手段と、仮想チャネル毎のデータ転送レートの設定値を指定する指定手段と、検出された仮想チャネル毎のパケット発行頻度と仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の仮想チャネル間の比率が、指定手段によって指定された仮想チャネル毎のデータ転送レートの設定値の比率に近づく値となるように、仮想チャネル毎にパケットデータのペイロードサイズを決定するペイロードサイズ決定手段と、仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成してアービトレーション手段に出力するパケット生成手段と、を備えているので、パケットデータのペイロードサイズを、指定手段によって指定される必要なデータ転送レートの設定値が得られるように決定することで、アービトレーション手段による優先度の調停のみでデータ転送レートを調整する場合に比べ、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となる。 According to the present invention, in addition to the function of the arbitration means for arbitrating the priority for issuing packet data for each virtual channel , the means for detecting the packet issue frequency for each virtual channel and the setting of the data transfer rate for each virtual channel The ratio between the virtual channels of the integrated value of the designation means for designating the value and the detected packet issuance frequency for each virtual channel and the payload size of the packet data issued for each virtual channel is designated by the designation means. Payload size determination means for determining the payload size of the packet data for each virtual channel and packet data of the payload size determined for each virtual channel so that the value approaches the ratio of the setting value of the data transfer rate for each channel. Packet generating means for generating and outputting to the arbitration means Since it is, the payload size of the packet data, by determining as setting value of the data transfer rate required to be designated by the designating means is obtained to adjust the data transfer rate only arbitration priority by arbitration means Compared to the case, it is possible to control the data transfer rate with high accuracy with a higher degree of freedom.
また、別の本発明によれば、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段の機能に加えて、仮想チャネル毎のパケット発行頻度を検出する手段と、仮想チャネル毎のデータ転送レートの設定値を指定する指定手段と、仮想チャネル毎に発行されるパケットデータのペイロードサイズを検出する手段と、検出された仮想チャネル毎のパケット発行頻度、検出された仮想チャネル毎のパケットデータのペイロードサイズに基づくフィードバック制御により、仮想チャネル間のデータ転送レートの比率が、指定手段によって指定された仮想チャネル毎のデータ転送レートの設定値の比率に近づく値となるように、仮想チャネル毎にパケットデータの修正されたペイロードサイズを決定するペイロードサイズ決定手段と、仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成してアービトレーション手段に出力するパケット生成手段と、を備えているので、パケットデータのペイロードサイズを、指定手段によって指定される必要なデータ転送レートの設定値が得られるようにフィードバック制御に基づき動的に修正しながら決定することで、アービトレーション手段による優先度の調停のみでデータ転送レートを調整する場合に比べ、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となる。 According to another aspect of the present invention, in addition to the function of arbitration means for adjusting the priority for issuing packet data for each virtual channel , means for detecting the packet issue frequency for each virtual channel, and data for each virtual channel Specification means for specifying the set value of the transfer rate, means for detecting the payload size of the packet data issued for each virtual channel, packet issue frequency for each detected virtual channel, packet data for each detected virtual channel Feedback control based on the payload size of each virtual channel so that the ratio of the data transfer rate between virtual channels approaches the ratio of the data transfer rate setting value for each virtual channel specified by the specifying means. Payload size that determines the modified payload size of the packet data A constant section, so generates the packet data payload size determined for each virtual channel includes a packet generating means for outputting the arbitration unit, the need for a payload size of the packet data is designated by the designating means by setting values of the data transfer rate is determined while dynamically modified based on the feedback control to obtain, compared to the case of adjusting the data transmission rate only arbitration priority by arbitration means, more flexibility In a high state, it is possible to control the data transfer rate with high accuracy.
本発明を実施するための最良の形態について図面を参照して説明する。 The best mode for carrying out the present invention will be described with reference to the drawings.
[PCI Express規格の概要]
まず、本実施の形態は高速シリアルバスの一つであるPCI Express(登録商標)に準拠するものであり、本実施の形態の前提として当該PCI Express規格の概要について、非特許文献1の一部抜粋により説明する。ここに、高速シリアルバスとは、1本の伝送路を用いてシリアル(直列)伝送により高速(100Mbps程度以上)にデータをやり取りすることができるインタフェースを意味する。
[Outline of PCI Express standard]
First, this embodiment conforms to PCI Express (registered trademark), which is one of high-speed serial buses. As a premise of this embodiment, an outline of the PCI Express standard is a part of Non-Patent
PCI Expressは、PCIの後継規格としてコンピュータ全般に通用する標準拡張バスとして規格化されたバスであり、概略的には、低電圧差動信号伝送、ポイントツーポイントで送受信独立の通信チャネル、パケット化されたスプリットトランザクション、リンク構成の違いによる高いスケーラビリティなどの特徴を持つ。 PCI Express is a standardized expansion bus that can be used for all computers as a successor to PCI. In general, low-voltage differential signal transmission, point-to-point independent communication channels, and packetization Split transactions and high scalability due to differences in link configuration.
図1に既存のPCIシステム、図2にPCI Expressシステムの各々の構成例を示す。既存のPCIシステムにあっては、CPU100やAGPグラフィックス101やメモリ102が接続されたホストブリッジ103に対して、PCI-X(PCIの上位互換規格)デバイス104a,104bがPCI-Xブリッジ105aを介して接続されたり、PCIデバイス104c,104dが接続されたPCIブリッジ105bやPCIバススロット106が接続されたPCIブリッジ107がPCIブリッジ105cを介して接続されたりしたツリー構造(木構造)とされている。
FIG. 1 shows a configuration example of an existing PCI system, and FIG. 2 shows a configuration example of a PCI Express system. In the existing PCI system, PCI-X (PCI upward compatible standard) devices 104a and 104b connect the PCI-X bridge 105a to the
これに対して、PCI Expressシステムにあっては、CPU110やメモリ111が接続されたルートコンプレックス112に対して、PCI Expressグラフィックス113がPCI Express114aにより接続され、また、エンドポイント115aやレガシーエンドポイント116aがPCI Express114bにより接続されたスイッチ117aがPCI Express114cにより接続され、さらには、エンドポイント115bやレガシーエンドポイント116bがPCI Express114dにより接続されたスイッチ117bやPCIバススロット118が接続されたPCIブリッジ119がPCI Express114eにより接続されたスイッチ117cがPCI Express114fにより接続されたツリー構造(木構造)とされている。
On the other hand, in the PCI Express system, the PCI Express
実際に想定されるPCI Expressプラットホーム例を図3に示す。図示例は、デスクトップ/モバイルへの適用例を示し、CPU121がCPUホストバス122により接続され、メモリ123が接続されたメモリハブ124(ルートコンプレックスに相当する)に対して、例えば、グラフィックス125がx16のPCI Express126aにより接続され、また、変換機能を有するI/Oハブ127がPCI Express126bにより接続されている。このI/Oハブ127には、例えば、Serial ATA128によりストレージ129が接続され、LPC130によりローカルI/O131が接続され、USB 2.0132やPCIバススロット133が接続されている。さらには、I/Oハブ127には、PCI Express126cによりスイッチ134が接続され、このスイッチ134には、各々、PCI Express126d,126e,126fによりモバイルドック135、ギガビットイーサネット(イーサネットは登録商標)136、アドインカード137が接続されている。
An example of an actually assumed PCI Express platform is shown in FIG. The illustrated example shows an application example to desktop / mobile. For example,
即ち、PCI Expressシステムでは、従来のPCI,PCI-X,AGPといったバスがPCI Expressで置き換わり、既存のPCI/PCI-Xデバイスを接続するためにブリッジが使用される。チップセット間の接続もPCI Express接続となり、IEEE1394,Serial ATA,USB 2.0などの既存のバスはI/OハブによりPCI Expressに接続される。 That is, in the PCI Express system, the conventional PCI, PCI-X, AGP bus is replaced with PCI Express, and a bridge is used to connect an existing PCI / PCI-X device. Connection between chipsets is also PCI Express connection, and existing buses such as IEEE1394, Serial ATA, and USB 2.0 are connected to PCI Express by an I / O hub.
[PCI Expressの構成要素]
A.ポート(Port)/レーン(Lane)/リンク(Link)
図4に物理層の構造を示す。ポートは、物理的には同一半導体内にあり、リンクを形成するトランスミッタ/レシーバの集合で、論理的にはコンポーネント間を1対1で接続(ポイント・ツー・ポイント)するインタフェースを意味する。転送レートは、例えば片方向2.5Gbpsとされている(将来的には、5Gbpsや10Gbpsが想定されている)。レーンは、例えば0.8Vの差動信号ペアのセットで、送信側の信号ペア(2本)、受信側の信号ペア(2本)からなる。リンクは、2つのポートとその間を結ぶレーンの集まりであり、コンポーネント間のデュアルシンプレックス通信バスである。「xNリンク」はN本のレーンから構成され、現在の規格では、N=1,2,4,8,16,32が定義されている。図示例は、x4リンク例である。例えば、図5に示すように、デバイスA,B間を結ぶこのレーン幅Nを可変することにより、スケーラブルなバンド幅を構成することが可能となる。
[Components of PCI Express]
A. Port / Lane / Link
FIG. 4 shows the structure of the physical layer. A port is a set of transmitters / receivers that are physically in the same semiconductor and form a link, and logically means an interface that connects components one-to-one (point-to-point). The transfer rate is, for example, one-way 2.5 Gbps (in the future, 5 Gbps or 10 Gbps is assumed). The lane is, for example, a set of 0.8 V differential signal pairs, and includes a transmission-side signal pair (two) and a reception-side signal pair (two). A link is a collection of lanes connecting two ports and the two ports, and is a dual simplex communication bus between components. The “xN link” is composed of N lanes, and N = 1, 2, 4, 8, 16, 32 are defined in the current standard. The illustrated example is an x4 link example. For example, as shown in FIG. 5, by changing the lane width N connecting the devices A and B, a scalable bandwidth can be configured.
B.ルートコンプレックス(Root Complex)
ルートコンプレックス112は、I/O構造の最上位に位置し、CPUやメモリサブシステムをI/Oに接続する。ブロック図などでは、図3に示すように、「メモリハブ」と記述されることが多い。ルートコンプレックス112(又は、124)は、1つ以上のPCI Expressポート(ルートポート)(図2中では、ルートコンプレックス112中の四角で示す)を持ち、各々のポートは独立したI/O階層ドメインを形成する。I/O階層ドメインは、単純なエンドポイントである場合(例えば、図2中のエンドポイント115a側の例)や、多数のスイッチやエンドポイントから形成される場合(例えば、図2中のエンドポイント115bやスイッチ117b,115c側の例)がある。
B. Root Complex
The
C.エンドポイント(End Point)
エンドポイント115は、タイプ00hのコンフィグレーション空間ヘッダを持つデバイス(具体的には、ブリッジ以外のデバイス)で、レガシーエンドポイントとPCI Expressエンドポイントとに分けられる。両者の大きな違いは、PCI ExpressエンドポイントはBAR(ベースアドレスレジスタ)で基本的にI/Oポートリソースを要求せず、このためI/Oリクエストを要求しない。また、PCI Expressエンドポイントは、ロックリクエストもサポートしていない。
C. End point
The
D.スイッチ(Switch)
スイッチ117(又は、134)は、2つ以上のポートを結合し、ポート間でのパケットルーティングを行う。コンフィグレーションソフトウェアからは、当該スイッチは、図6に示すように、仮想PCI-PCIブリッジ141の集合体として認識される。図中、両矢印はPCI Expressリンク114(又は、126)を示し、142a〜142dはポートを示す。このうち、ポート142aはルートコンプレックスに近い方のアップストリームポートであり、ポート142b〜142dはルートコンプレックスから遠い方のダウンストリームポートである。
D. Switch
The switch 117 (or 134) couples two or more ports and performs packet routing between the ports. From the configuration software, the switch is recognized as a collection of virtual PCI-PCI bridges 141 as shown in FIG. In the figure, double-headed arrows indicate PCI Express links 114 (or 126), and 142a to 142d indicate ports. Of these, the port 142a is an upstream port closer to the root complex, and the ports 142b to 142d are downstream ports farther from the root complex.
E.PCI Express114e−PCIブリッジ119
PCI ExpressからPCI/PCI-Xへの接続を提供する。これにより、既存のPCI/PCI-XデバイスをPCI Expressシステム上で使用することができる。
E. PCI Express 114e-PCI bridge 119
Provides connection from PCI Express to PCI / PCI-X. Thereby, an existing PCI / PCI-X device can be used on the PCI Express system.
[階層アーキテクチャ]
従来のPCIのアーキテクチャは、図7(a)に示すように、プロトコルとシグナリングが密接に関連する構造であり階層という考え方はなかったが、PCI Expressでは、図7(b)に示すように、一般的な通信プロトコルやInfiniBandのように、独立した階層構造とされ、各層に分けて仕様が定義されている。即ち、最上位のソフトウェア層151、最下位の機構(メカニカル)部152間に、トランザクション層153、データリンク層154、物理層155を持つ構造とされている。これにより、各層のモジュール性が確保され、スケーラビリティを持たせることやモジュールの再利用が可能となる。例えば、新たな信号コーディング方式や伝送媒体を採用する場合、物理層を変更するだけでデータリンク層やトランザクション層は変更せずに対応できる。
[Hierarchical architecture]
As shown in FIG. 7A, the conventional PCI architecture has a structure in which protocols and signaling are closely related and has no concept of hierarchy. In PCI Express, as shown in FIG. 7B, Like general communication protocols and InfiniBand, it has an independent hierarchical structure, and specifications are defined for each layer. In other words, the
PCI Expressのアーキテクチャの中心となるのは、トランザクション層153、データリンク層154、物理層155であり、各々図8を参照して説明する以下のような役割を持つ。
The core of the PCI Express architecture is a
A.トランザクション層153
トランザクション層153は、最上位に位置し、トランザクションレイヤパケット(TLP)の組み立て、分解機能を持つ。トランザクションレイヤパケット(TLP)は、リード/ライト、各種イベントといったトランザクションの伝達に用いられる。また、トランザクション層153は、トランザクションレイヤパケット(TLP)のためのクレジットを用いたフロー制御を行う。各層153〜155におけるトランザクションレイヤパケット(TLP)の概要を図9に示す(詳細は、後述する)。
The
B.データリンク層154
データリンク層154の主な役割は、エラー検出/訂正(再送)によりトランザクションレイヤパケット(TLP)のデータ完全性を保証することと、リンク管理である。データリンク層154間では、リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは、トランザクションレイヤパケット(TLP)と区別するために、データリンクレイヤパケット(DLLP)と呼ばれる。
B.
The main role of the
C.物理層155
物理層155は、ドライバ、入力バッファ、パラレル−シリアル/シリアル−パラレル変換器、PLL、インピーダンス整合回路といったインタフェース動作に必要な回路を含んでいる。また、論理的な機能としてインタフェースの初期化・保守の機能を持つ。物理層155は、データリンク層154/トランザクション層153を実際のリンクで使用される信号技術から独立させる役目も持っている。
The
なお、PCI Expressのハードウェア構成上、エンベデッド・クロックという技術を採用しており、クロック信号はなく、クロックのタイミングはデータ信号中に埋め込まれており、受信側でデータ信号のクロスポイントを基にクロックを抽出する方式とされている。 The PCI Express hardware configuration uses a technology called embedded clock, there is no clock signal, the clock timing is embedded in the data signal, and the receiving side is based on the crosspoint of the data signal. The clock is extracted.
[コンフィグレーション空間]
PCI Expressは、従来のPCIと同様にコンフィグレーション空間を持つが、その大きさは従来のPCIが256バイトであるのに対して、図10に示すように、4096バイトへと拡張されている。これにより、多数のデバイス固有レジスタセットを必要とするデバイス(ホストブリッジなど)に対しても、将来的に十分な空間が確保されている。PCI Expressでは、コンフィグレーション空間へのアクセスは、フラットなメモリ空間へのアクセス(コンフィグレーションリード/ライト)で行われ、バス/デバイス/機能/レジスタ番号はメモリアドレスにマップされている。
[Configuration space]
PCI Express has a configuration space like conventional PCI, but its size is expanded to 4096 bytes as shown in FIG. 10, whereas conventional PCI has 256 bytes. As a result, sufficient space is secured in the future even for devices (such as host bridges) that require a large number of device-specific register sets. In PCI Express, the configuration space is accessed by accessing a flat memory space (configuration read / write), and the bus / device / function / register number is mapped to a memory address.
当該空間の先頭256バイトは、PCIコンフィグレーション空間として、BIOSや従来のOSからI/Oポートを使用した方法でもアクセスできる。従来のアクセスをPCI Expressでのアクセスに変換する機能は、ホストブリッジ上に実装される。00hから3FhまではPCI2.3互換のコンフィグレーションヘッダとなっている。これにより、PCI Expressで拡張された機能以外であれば、従来のOSやソフトウェアをそのまま使用することができる。即ち、PCI Expressにおけるソフトウェア層は、既存のPCIと互換性を保ったロード・ストア・アーキテクチャ(プロセッサが直接I/Oレジスタをアクセスする方式)を継承している。しかし、PCI Expressで拡張された機能(例えば、同期転送やRAS(Reliability,Availability and Serviceability)などの機能)を使用するには、4KバイトのPCI Express拡張空間にアクセスできるようにする必要がある。 The first 256 bytes of the space can be accessed as a PCI configuration space by a method using an I / O port from a BIOS or a conventional OS. The function of converting the conventional access to the access by PCI Express is implemented on the host bridge. From 00h to 3Fh, it is a PCI2.3 compatible configuration header. As a result, a conventional OS and software can be used as they are except for functions extended by PCI Express. That is, the software layer in PCI Express inherits a load / store architecture (a method in which a processor directly accesses an I / O register) that is compatible with the existing PCI. However, in order to use functions expanded by PCI Express (for example, functions such as synchronous transfer and RAS (Reliability, Availability and Serviceability)), it is necessary to make it possible to access a 4 Kbyte PCI Express expansion space.
なお、PCI Expressとしては様々なフォームファクタ(形状)が考えられるが、具体化している例としては、アドインカード、プラグインカード(Express Card)、Mini PCI Expressなどがある。 Various form factors (shapes) are conceivable as PCI Express. Examples of specific examples include add-in cards, plug-in cards (Express Cards), and Mini PCI Express.
[PCI Express のアーキテクチャの詳細]
PCI Express のアーキテクチャの中心となっているトランザクション層153、データリンク層154、物理層155について、各々詳細に説明する。
[PCI Express architecture details]
The
A.トランザクション層153
トランザクション層153の主な役割は、前述したように、上位のソフトウェア層151と下位のデータリンク層154との間でトランザクションレイヤパケット(TLP)の組み立てと分解を行うことである。
The main role of the
a.アドレス空間とトランザクションタイプ
PCI Expressでは、従来のPCIでサポートされていたメモリ空間(メモリ空間とのデータ転送用)、I/O空間(I/O空間とのデータ転送用)、コンフィグレーション空間(デバイスのコンフィグレーションとセットアップ用)に加えて、メッセージ空間(PCI Expressデバイス間のインバンドでのイベント通知や一般的なメッセージ送信(交換)用…割り込み要求や確認は、メッセージを「仮想ワイヤ」として使用することにより伝達される)が追加され、4つのアドレス空間が定義されている。各々の空間に対してトランザクションタイプが定義されている(メモリ空間、I/O空間、コンフィグレーション空間は、リード/ライト、メッセージ空間は基本(ベンダ定義含む))。
a. Address space and transaction type
In PCI Express, memory space (for data transfer with memory space), I / O space (for data transfer with I / O space), and configuration space (device configuration and setup) supported by conventional PCI In addition to message space (in-band event notification between PCI Express devices and general message transmission (exchange) ... Interrupt requests and confirmations are communicated by using the message as a "virtual wire" And four address spaces are defined. Transaction types are defined for each space (memory space, I / O space, configuration space is read / write, and message space is basic (including vendor definition)).
b.トランザクションレイヤパケット(TLP)
PCI Expressは、パケット単位で通信を行う。図9に示したトランザクションレイヤパケット(TLP)のフォーマットにおいて、ヘッダのヘッダ長は3DW(DWはダブルワードの略;合計12バイト)又は4DW(16バイト)で、トランザクションレイヤパケット(TLP)のフォーマット(ヘッダ長とペイロードの有無)、トランザクションタイプ、トラフィッククラス(TC)、アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は1024DW(4096バイト)である。
b. Transaction layer packet (TLP)
PCI Express performs communication in units of packets. In the transaction layer packet (TLP) format shown in FIG. 9, the header length of the header is 3DW (DW is an abbreviation of double word; total 12 bytes) or 4DW (16 bytes), and the transaction layer packet (TLP) format ( Information such as header length and presence / absence of payload), transaction type, traffic class (TC), attribute, and payload length are included. The maximum payload length in the packet is 1024 DW (4096 bytes).
ECRCは、エンドツーエンドのデータ完全性を保証するためのもので、トランザクションレイヤパケット(TLP)部分の32ビットCRCである。これは、スイッチ内部などでトランザクションレイヤパケット(TLP)にエラーが発生した場合、LCRC(リンクCRC)ではエラーを検出できないためである(エラーとなったTLPでLCRCが再計算されるため)。 ECRC is an end-to-end data integrity guarantee and is a 32-bit CRC of the transaction layer packet (TLP) portion. This is because when an error occurs in the transaction layer packet (TLP) inside the switch or the like, the LCRC (link CRC) cannot detect the error (because the LCRC is recalculated with the TLP in error).
リクエストは、完了パケットが不要なものと必要なものとがある。 Some requests do not require a completion packet, and some requests.
c.トラフィッククラス(TC)と仮想チャネル(VC)
上位のソフトウェアは、トラフィッククラス(TC)を使用することによりトラフィックの差別化(優先度をつける)を行うことができる。例えば、映像データをネットワークのデータよりも優先して転送する、といったことが可能となる。トラフィッククラス(TC)はTC0からTC7まで8つある。
c. Traffic class (TC) and virtual channel (VC)
Upper software can differentiate (prioritize) traffic by using a traffic class (TC). For example, video data can be transferred with priority over network data. There are eight traffic classes (TC) from TC0 to TC7.
仮想チャネル(VC:Vertual Channel)は、各々独立した仮想通信バス(同一のリンクを共用する複数の独立したデータ・フロー・バッファを使用するメカニズム)で、各々がリソース(バッファやキュー)を持ち、図11に示すように、独立したフロー制御を行う。これにより、1つの仮想チャネルのバッファが満杯の状態(full)になっても、他の仮想チャネルの転送を行うことができる。つまり、物理的には1つのリンクを仮想的な複数のチャネルに分けることで、有効に使用することができる。例えば、図11中に示すように、スイッチを経由してルートのリンクが複数のデバイスに分かれる場合、各デバイスのトラフィックの優先度を制御することができる(アービトレーション手段)。VC0は必須で、コストパフォーマンスのトレードオフに応じてその他の仮想チャネル(VC1〜VC7)が実装される。図11中の実線矢印は、デフォルト仮想チャネル(VC0)を示し、破線矢印はその他の仮想チャネル(VC1〜VC7)を示している。 A virtual channel (VC) is an independent virtual communication bus (a mechanism that uses a plurality of independent data flow buffers sharing the same link), each having resources (buffers and queues) As shown in FIG. 11, independent flow control is performed. Thereby, even if the buffer of one virtual channel becomes full (full), the transfer of another virtual channel can be performed. In other words, it can be used effectively by physically dividing one link into a plurality of virtual channels. For example, as shown in FIG. 11, when a route link is divided into a plurality of devices via a switch, the priority of traffic of each device can be controlled (arbitration means). VC0 is indispensable, and other virtual channels (VC1 to VC7) are mounted in accordance with the cost performance trade-off. The solid line arrow in FIG. 11 indicates the default virtual channel (VC0), and the broken line arrow indicates the other virtual channels (VC1 to VC7).
トランザクション層内では、トラフィッククラス(TC)が仮想チャネル(VC)にマッピングされる。1つの仮想チャネル(VC)に対して1つ又は複数のトラフィッククラス(TC)をマッピングできる(仮想チャネル(VC)の数が少ない場合)。単純な例では、各トラフィッククラス(TC)から各仮想チャネル(VC)に1対1、全てのトラフィッククラス(TC)を仮想チャネルVC0にマッピングする、といったことが考えられる。TC0−VC0のマッピングは、必須/固定で、それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラス(TC)を利用することで、トランザクションの優先度を制御することが可能となる。 Within the transaction layer, a traffic class (TC) is mapped to a virtual channel (VC). One or more traffic classes (TC) can be mapped to one virtual channel (VC) (when the number of virtual channels (VC) is small). In a simple example, it can be considered that each traffic class (TC) is mapped to each virtual channel (VC) on a one-to-one basis, and all traffic classes (TC) are mapped to the virtual channel VC0. The mapping of TC0-VC0 is essential / fixed, and the other mappings are controlled from the upper software. The software can control the priority of the transaction by using the traffic class (TC).
d.フロー制御
受信バッファのオーバフローを避け、伝送順序を確立するためにフロー制御(FC:Flow Control)が行われる。フロー制御は、リンク間のポイントツーポイントで行われ、エンドツーエンドではない。従って、フロー制御により最終的な相手(コンプリータ)にパケットが届いたことを確認することはできない。
d. Flow control Flow control (FC) is performed to avoid the overflow of the reception buffer and establish the transmission order. Flow control is done point-to-point between links, not end-to-end. Therefore, it cannot be confirmed that the packet has reached the final partner (completer) by flow control.
PCI Expressのフロー制御は、クレジット・ベースで行われる(データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバフロー、アンダフローが発生しないメカニズム)。即ち、受信側はリンク初期化時にバッファ容量(クレジット値)を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには6種類ある。 PCI Express flow control is performed on a credit basis (a mechanism that confirms the buffer availability on the receiving side before starting data transfer and prevents overflow and underflow). That is, the receiving side notifies the transmitting side of the buffer capacity (credit value) at the time of link initialization, and the transmitting side compares the credit value with the length of the packet to be transmitted, and transmits the packet only when there is a certain remaining. There are six types of credits.
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット(DLLP)を使用して行われる。フロー制御はトランザクションレイヤパケット(TLP)のみに適用され、データリンクレイヤパケット(DLLP)には適用されない(DLLPは常時送受信可能)。 Flow control information exchange is performed using data link layer packets (DLLP) in the data link layer. The flow control is applied only to the transaction layer packet (TLP) and not to the data link layer packet (DLLP) (DLLP can always be transmitted / received).
B.データリンク層154
データリンク層154の主な役割は、前述したように、リンク上の2つのコンポーネント間での信頼性の高いトランザクションレイヤパケット(TLP)交換機能を提供することである。
B.
The main role of the
a.トランザクションレイヤパケット(TLP)の扱い
トランザクション層153から受け取ったトランザクションレイヤパケット(TLP)に対しては、先頭に2バイトのシーケンス番号、末尾に4バイトのリンクCRC(LCRC)を付加して、物理層155に渡す(図9参照)。トランザクションレイヤパケット(TLP)は、リトライバッファに保管され、相手から受信確認(ACK)が届くまで再送される。トランザクションレイヤパケット(TLP)の送信に失敗が続いた場合は、リンク異常であると判断して物理層155に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層154の状態はインアクティブに遷移する。
a. Handling of transaction layer packet (TLP) For the transaction layer packet (TLP) received from the
物理層155から受け取ったトランザクションレイヤパケット(TLP)は、シーケンス番号とリンクCRC(LCRC)が検査され、正常であればトランザクション層153に渡され、エラーがあった場合は再送を要求する。
The transaction layer packet (TLP) received from the
b.データリンクレイヤパケット(DLLP)
データリンク層154が生成するパケットは、データリンクレイヤパケット(DLLP)と呼ばれ、データリンク層154間でやり取りされる。データリンクレイヤパケット(DLLP)には、
・Ack/Nak:TLPの受信確認、リトライ(再送)
・InitFC1/InitFC2/UpdateFC:フロー制御の初期化とアップデート
・電源管理のためのDLLP
なる種類がある。
b. Data link layer packet (DLLP)
A packet generated by the
-Ack / Nak: TLP reception confirmation, retry (retransmission)
-InitFC1 / InitFC2 / UpdateFC: Flow control initialization and update-DLLLP for power management
There are different types.
図12に示すように、データリンクレイヤパケット(DLLP)の長さは6バイトで、種類を示すDLLPタイプ(1バイト)、DLLPの種類で固有の情報(3バイト)、CRC(2バイト)から構成される。 As shown in FIG. 12, the length of the data link layer packet (DLLP) is 6 bytes. From the DLLP type (1 byte) indicating the type, the information specific to the type of DLLP (3 bytes), and CRC (2 bytes) Composed.
C.物理層−論理サブブロック156
図8中に示す物理層155の論理サブブロック156での主な役割は、データリンク層154から受け取ったパケットを電気サブブロック157で送信できる形式に変換することである。また、物理層155を制御/管理する機能も有する。
C. Physical layer-
The main role of the
a.データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“0”や“1”が続かないように(長い期間、クロス・ポイントが存在しない状態が続かないようにするため)、データ符号化に8B/10B変換を用いる。変換されたデータは、図13中に示すように、シリアル変換され、LSBからレーン上に送信される。ここに、レーンが複数ある場合は(図13はx4リンクの場合を例示している)、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレル・バスのようにみえるが、レーン毎に独立した転送を行うので、パラレル・バスで問題となるスキューが大幅に緩和される。
a. Data encoding and parallel-serial conversion
PCI Express uses 8B / 10B conversion for data encoding so that consecutive “0” s and “1” s do not continue (in order not to maintain a state where there is no cross point for a long period of time). The converted data is serial-converted and transmitted from the LSB onto the lane as shown in FIG. Here, when there are a plurality of lanes (FIG. 13 illustrates the case of x4 link), data is allocated to each lane in units of bytes before encoding. In this case, it looks like a parallel bus at first glance, but since the transfer is performed independently for each lane, the skew which is a problem with the parallel bus is greatly reduced.
b.電源管理とリンクステート
リンクの消費電力を低く抑えるために、表1に示すように、L0/L0s/L1/L2というリンクステートが定義されている。
b. Power management and link state As shown in Table 1, a link state of L0 / L0s / L1 / L2 is defined in order to keep the power consumption of the link low.
L0が通常モードで、L0sからL2へと低消費電力となるが、L0への復帰にも時間がかかるようになる。図14に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。 L0 is a normal mode, and power consumption is reduced from L0s to L2, but it takes time to return to L0. As shown in FIG. 14, by actively performing active state power management in addition to software power management, it is possible to reduce power consumption as much as possible.
D.物理層−電気サブブロック157
物理層155の電気サブブロック157での主な役割は、論理サブブロック156でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック156に渡すことである。
D. Physical layer—
The main role of the
a.ACカップリング
リンクの送信側では、ACカップリング用のコンデンサが実装される。これにより、送信側と受信側のDCコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
a. AC coupling On the transmission side of the link, a capacitor for AC coupling is mounted. This eliminates the need for the DC common mode voltage on the transmission side and the reception side to be the same. For this reason, it is possible to use different designs, semiconductor processes, and power supply voltages on the transmission side and the reception side.
b.デエンファシス
PCI Expressでは、前述したように、8B/10Bエンコーディングによってできるだけ連続した“0”や“1”が続かないように処理されるが、連続した“0”や“1”が続くこともある(最大5回)。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、2つ目のビットからは差動電圧レベル(振幅)を3.5±0.5dB落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
b. De-emphasis
In PCI Express, as described above, processing is performed so that continuous “0” and “1” do not continue as much as possible by 8B / 10B encoding, but continuous “0” and “1” may continue (maximum). 5 times). In this case, it is specified that the transmission side must perform de-emphasis transfer. When bits of the same polarity are consecutive, it is necessary to increase the noise margin of the signal received on the receiving side by dropping the differential voltage level (amplitude) from the second bit by 3.5 ± 0.5 dB. . This is called de-emphasis. Due to the frequency-dependent attenuation of the transmission line, there are many high-frequency components in the case of changing bits, and the waveform on the receiving side becomes small due to attenuation. Becomes larger. For this reason, de-emphasis is performed in order to make the waveform on the receiving side constant.
[画像形成システム]
本実施の形態のデータ転送装置は、プリンタのような画像出力装置やスキャナのような画像入力装置、さらには、これらを併せ持つデジタル複写機、MFPのような画像形成装置、その他、各種機器・デバイスの適宜組合せ等からなる画像形成システムにおいて高速シリアルインタフェースとして利用されるものであり、前述したようなPCI Express規格に準拠するものである。
[Image forming system]
The data transfer apparatus according to the present embodiment includes an image output apparatus such as a printer, an image input apparatus such as a scanner, a digital copier having both of these, an image forming apparatus such as an MFP, and other various devices and devices. Is used as a high-speed serial interface in an image forming system including an appropriate combination of the above, and conforms to the PCI Express standard as described above.
本実施の形態のデータ転送装置が適用される画像形成システムの一例を図15を参照して説明する。図15は、本実施の形態のデータ転送装置が適用される画像形成システムの各機器・デバイス等の接続の概要を示すブロック図である。当該画像形成システム1はシリアルデータ転送にPCI Express規格のバスシステムを用いている。即ち、画像形成システム1の各部を集中的に制御するCPU11と、CPU11の作業エリアとなるシステムメモリ12がPCI Express規格のルートコンプレックス(Root Complex)13に接続されている。また、ルートコンプレックス13とPCI Express規格のスイッチ(或いはスイッチ網)14とがPCI Express規格の汎用バス15を介して接続されている。PCI Express規格のスイッチ(或いはスイッチ網)14には、PCI Express規格のエンドポイント(End Point)となる各種機器・デバイスが接続されている。即ち、画像データなどを記憶するハードディスク(HDD)ユニット21、画像メモリユニット22、及び、メモリユニット23、各種の画像処理を行なう画像処理ユニット24、外部のネットワークなどと通信を行なう高速ネットワーク25、画像入力エンジンとしてのスキャナ26、画像出力エンジンとしてのプロッタ27、画像入力エンジン、画像出力エンジンを併せ持つ他の複合機28などである。
An example of an image forming system to which the data transfer apparatus of this embodiment is applied will be described with reference to FIG. FIG. 15 is a block diagram showing an outline of connections of devices, devices, etc. of an image forming system to which the data transfer apparatus of this embodiment is applied. The
[アービトレーションに関する規格]
このような画像形成システムでは、各々の機器・デバイスに必要とされるデータ転送レートが異なるため、精度の高いデータ転送レート調整が必要となる。このための規格として、前述したようなシリアルバスを仮想チャネルVC単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段を利用し、仮想チャネルVC毎にパケットデータを発行する優先度を調停する機能(アービトレーション手段)がある。
[Arbitration standard]
In such an image forming system, since the data transfer rate required for each device / device is different, it is necessary to adjust the data transfer rate with high accuracy. As a standard for this purpose, priority is given to issuing packet data for each virtual channel VC by using virtual channel means for transmitting packet data of a plurality of traffic by using the serial bus as described above in a time division manner for each virtual channel VC. There is a function to arbitrate (arbitration means).
図16は、PCI Express規格のアービトレーション機能に従い構成された従来のシリアル送信回路(データ転送装置)の構成例を示す概略ブロック図である。図示例は、最大8チャネルの仮想チャネルVCのうち、4チャネル構成に規定された例を示している。シリアル送信回路31は、デバイスから各チャネル毎のデータ1〜4を受け取り、パケットデータ1〜4を生成するパケット生成回路32と、生成されたパケットデータ1〜4を仮想チャネルVC毎に一時蓄える仮想チャネルバッファ(仮想チャネル手段)33a〜33dと、仮想チャネルバッファ33a〜33dに蓄えられたパケットデータ1〜4を仮想チャネルVC毎に予め規定されている優先度に従い調停してシリアル出力バッファ34を介して信号出力回路35に出力するアービトレーション回路(アービトレーション手段)36とにより構成されている。
FIG. 16 is a schematic block diagram showing a configuration example of a conventional serial transmission circuit (data transfer device) configured according to the arbitration function of the PCI Express standard. The illustrated example shows an example defined in a 4-channel configuration among a maximum of 8 virtual channels VC. The
図示例は、各仮想チャネルVC毎に均等な頻度でパケットデータを発行させるアービトレーションのアルゴリズムによる場合を例示しており、上記アービトレーションに従い、シリアル送信回路31の信号出力回路35からシリアルバス上にはパケットデータ1〜4が図示の如く均等に出力される。
The illustrated example illustrates the case of an arbitration algorithm for issuing packet data with equal frequency for each virtual channel VC. According to the arbitration, a packet is transmitted from the
ところが、前述したように、PCI Express規格の仮想チャネルVCのアービトレーションのように、仮想チャネルVC毎のパケットデータの発行頻度の優先度を指定しただけでは優先度制御の自由度が低く、複数トラフィックのパケットデータに対して高精度にデータ転送レートを制御することは難しい。 However, as described above, just by specifying the priority of the packet data issuance frequency for each virtual channel VC as in the arbitration of the virtual channel VC of the PCI Express standard, the degree of freedom of priority control is low, and multiple traffic It is difficult to control the data transfer rate with high accuracy for packet data.
[データ転送装置]
そこで、本実施の形態のシリアル送信回路(データ転送装置)では、仮想チャネルVC毎に送信するパケットデータのペイロードサイズに着目し、発行するパケットデータのペイロードサイズを仮想チャネルVC毎に任意に指定可能とし、仮想チャネルVC毎に指定されたペイロードサイズのパケットデータを生成してアービトレーション回路36に出力させるようにしたものである。
[Data transfer device]
Therefore, in the serial transmission circuit (data transfer apparatus) of the present embodiment, paying attention to the payload size of packet data transmitted for each virtual channel VC, the payload size of the packet data to be issued can be arbitrarily designated for each virtual channel VC. Packet data having a payload size designated for each virtual channel VC is generated and output to the
図17は、本実施の形態のシリアル送信回路(データ転送装置)37の構成例を示す概略ブロック図である。図16に示した部分と同一部分は同一符号を用いて示し、説明も省略する。本実施の形態のシリアル送信回路37では、各仮想チャネルVC毎に送信するパケットデータのペイロードサイズを決定した大きさで指定するロジック構成のペイロードサイズ決定回路(ペイロードサイズ決定手段)38が付加され、パケット生成回路32がペイロードサイズ決定回路38の決定により指定されたペイロードサイズに従い各仮想チャネルVC毎のパケットデータを生成してアービトレーション回路36に出力するパケット生成手段として設けられている。ここに、「ペイロードサイズ」とは、パケットデータ全体のサイズのうち、ヘッダ情報以外のデータ部分のサイズを意味する。また、アービトレーション回路36に対しては、仮想チャネルVC毎のパケット発行頻度を検出する手段(図示せず)が設けられており、検出した仮想チャネルVC毎のパケット発行頻度に関する情報をペイロードサイズ決定回路38に対して出力するように構成されている。
FIG. 17 is a schematic block diagram showing a configuration example of the serial transmission circuit (data transfer device) 37 of the present embodiment. The same parts as those shown in FIG. 16 are denoted by the same reference numerals, and description thereof is also omitted. In the
このパケット発行頻度を検出する手段は、本実施の形態のように、PCI Express規格を想定する場合、アービトレーション回路36の仮想チャネルVC毎のアルゴリズムとして、PCI Express規格のラウンドロビン(Round Robin)、ウエイテッドラウンドロビン(Weighted Round Robin)、又は、ストリクト(Strict)(詳細は後述する)の何れが用いられているかを検出する手段であり、特に、ウエイテッドラウンドロビン(WRR)が用いられていることを検出した場合には、PCI Express規格により規定されている仮想チャネル毎のアービトレーションテーブル39を参照して仮想チャネルVC毎のパケット発行頻度を検出するものである。図17に示す例は、発行頻度が均等割のラウンドロビン(RR)を想定しているため、アービトレーションテーブル39中にはラウンドロビン(RR)による均等割のテーブル例を示している(即ち、各パケット1〜4が、1,2,3,4の順に均等割で発行されるデータ例1234,1234,…を示しているが、ウエイテッドラウンドロビン(WRR)の場合であれば、1111,1212,1213,1234,…の如く設定される)。
The means for detecting the packet issuance frequency is assumed to be the PCI Express standard round robin or the way as an algorithm for each virtual channel VC of the
また、ペイロードサイズ決定回路38に対しては、仮想チャネルVC毎のパケットデータのデータ転送レートの所望とする優先度設定値が外部の操作部等からの入力操作により適宜指定自在とされている。例えば、4チャネルの場合において、各々のパケットデータ1〜4の優先度設定値としては、データ1:データ2:データ3:データ4=w:x:y:zの如く比率で指定される。
For the payload size determination circuit 38, a desired priority setting value of the data transfer rate of the packet data for each virtual channel VC can be appropriately designated by an input operation from an external operation unit or the like. For example, in the case of 4 channels, the priority setting values of the
そして、ペイロードサイズ決定回路38においては、検出された仮想チャネルVC毎のパケット発行頻度と仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の仮想チャネルVC間の比率が、外部より指定される仮想チャネルVC毎のデータ転送レートの優先度設定値の仮想チャネル間の比率w:x:y:zに最も近づく値となるように、パケットデータのペイロードサイズを仮想チャネルVC毎に決定する機能を有する。図示例では、仮想チャネルVC毎のパケットデータ1〜4のペイロードサイズがペイロードサイズ決定回路38によりその四角の大きさの違いで示すようにパケットデータ1>2>3>4の如く決定されて指定されているものとする。なお、ペイロードサイズ決定回路38等によるペイロードサイズ決定処理としては、CPUによるプログラム処理により実現するようにしてもよい。
In the payload size determination circuit 38, the ratio between the virtual channels VC of the integrated value of the packet issue frequency for each detected virtual channel VC and the payload size of the packet data issued for each virtual channel is designated from the outside. The payload size of the packet data is determined for each virtual channel VC so as to be a value closest to the ratio w: x: y: z of the priority setting value of the data transfer rate for each virtual channel VC. It has a function. In the illustrated example, the payload size of the
図18は、仮想チャネル毎のペイロードサイズ決定処理例を示す概略フローチャートである。ここでは、各々のパケットデータ1〜4の所望の優先度設定値の比率としては、外部からの操作により、データ1:データ2:データ3:データ4=w:x:y:zの如く指定されているものとする。また、仮想チャネルは4チャネルの例とし、各仮想チャネル1〜4のペイロードサイズとしてはA,B,C,Dの如く設定されているものとする。
FIG. 18 is a schematic flowchart illustrating an example of payload size determination processing for each virtual channel. Here, the ratio of the desired priority setting values of the
まず、アービトレーション回路36に対して設けられた検出手段により、仮想チャネルVC毎のパケット発行頻度を検出する(ステップS1,S2)。この処理は、基本的には前述したようにアービトレーションのアルゴリズム方式の検出であるが、ウエイテッドラウンドロビン(WRR)の場合には、仮想チャネル毎のアービトレーションテーブル39を読み込み(S1)、当該テーブルから各仮想チャネルのパケット発行回数を演算することにより(S2)、仮想チャネルVC毎のパケット発行頻度を検出することとなる。次いで、算出された発行回数(検出されたパケット発行頻度)とパケットデータのペイロードサイズとの積算値を仮想チャネル1〜4毎のデータ転送量Sum A,B,C,Dとしたとき、各々
Sum A=発行回数1×A
Sum B=発行回数2×B
Sum C=発行回数3×C
Sum D=発行回数4×D
により算出し、これらのデータ転送量(積算値)の仮想チャネル間の比率Sum A:Sum B:Sum C:Sum Dが、優先度設定値の仮想チャネル間の比率である1:データ2:データ3:データ4=w:x:y:zに一致、即ち、
w:x:y:z=Sum A:Sum B:Sum C:Sum D
となる仮想チャネル1〜4毎のペイロードサイズA,B,C,Dを決定する(S3)。なお、この決定処理においては、比率に対して端数となる場合もあり得るので、必ずしも厳密に一致するとは限らない。よって、要は、最も近づく値に決定することを意味する。
First, the detection means provided for the
Sum B = number of issuances 2 x B
Sum C = number of issues 3 x C
Sum D = number of issues 4 x D
The ratio of these data transfer amounts (integrated values) between virtual channels Sum A: Sum B: Sum C: Sum D is the ratio between the virtual channels of the priority setting values, 1: data 2: data 3:
w: x: y: z = Sum A: Sum B: Sum C: Sum D
Payload sizes A, B, C, and D are determined for each of the
このように決定された仮想チャネル1〜4毎のペイロードサイズA,B,C,Dは、パケット生成回路32に通知され(S4)、パケット生成回路32では仮想チャネル1〜4毎に決定されたペイロードサイズのパケットデータを生成してアービトレーション回路36に出力することでデータ転送を開始させる(S5)。
The thus determined payload sizes A, B, C, and D for the
従って、図17に示す例によれば、各仮想チャネルVC毎に均等な頻度でパケットデータを発行させるラウンドロビン(RR)による優先度付けのアービトレーションのアルゴリズムに加えて、パケットデータのペイロードサイズの決定による調整を含む場合のシリアルバス出力例を示しており、シリアル送信回路37の信号出力回路35からシリアルバス上にはパケットデータ1〜4が、優先度設定値の仮想チャネル間の比率、即ち、データ1:データ2:データ3:データ4=w:x:y:zに従い、パケットデータ1>2>3>4の順にデータ転送量が優先されるようにデータ転送レートが制御されて出力される。
Therefore, according to the example shown in FIG. 17, in addition to the arbitration algorithm for prioritization by round robin (RR) for issuing packet data with equal frequency for each virtual channel VC, the determination of the payload size of the packet data The serial bus output example in the case of including adjustment according to the above is shown. From the
つまり、各リンクで複数の仮想チャネルVCを用いる場合に、仮想チャネルVC毎の優先度付けのアービトレーションのアルゴリズムに対して、仮想チャネルVC毎のパケットデータのペイロードサイズを、外部から指定された優先度設定値に一致させるための組合せを適正に決定することで、各機器・デバイス間で精度の高い所望通りのデータ転送レートの制御が可能となる。 That is, when a plurality of virtual channels VC are used in each link, the payload size of the packet data for each virtual channel VC is set to the priority specified from the outside with respect to the algorithm for prioritizing arbitration for each virtual channel VC. By appropriately determining the combination for matching the set value, it is possible to control the data transfer rate with high accuracy as desired between the devices and devices.
図19は画像形成システムの単純構成例を示すブロック図、図20はペイロードサイズ変更に伴う転送レート調整の様子を示す説明図である。本実施の形態方式による効果を図19に示す簡単な例を挙げて説明する。図19では、2つのプロッタ41,42を有する連結エンジン43とコントローラ44とをスイッチ14を介して1本のリンク15(高速シリアルバス)で繋いだ例(スイッチ14の異なるポート0,1に対して連結エンジン43とコントローラ44とが各々物理的に1つのポートA,Bにより接続されている)を示しており、連結エンジン43とコントローラ44との間のパケットデータの転送レートを調停する必要がある。なお、プロッタ41は例えばレーザプリンタ、プロッタ42は例えばインクジェットプリンタの如く印刷処理速度の異なるデバイスであって、パケットデータの転送方向が同方向で必要とするデータ転送レートの異なるデバイスを意味する。
FIG. 19 is a block diagram illustrating a simple configuration example of the image forming system, and FIG. 20 is an explanatory diagram illustrating a state of transfer rate adjustment accompanying a payload size change. The effect of the present embodiment will be described with reference to a simple example shown in FIG. In FIG. 19, a
この場合、仮想チャネルVCのアービトレーションのアルゴリズムとして、均等な頻度でパケットデータを発行させるラウンドロビン(RR)しか規格でサポートされていないような場合であっても、上述したように、コントローラ44側からプロッタ41,42に対して転送されるパケットデータのペイロードサイズを所望の優先度設定値の比率に合致するように決定して、コントローラ44側からデータ転送させることにより、精度の高い所望通りのデータ転送レートの制御が可能となる。即ち、前述したようなデータ転送装置を各ポートの仮想チャネル毎に用いることで、速度の異なるプロッタデータをパケットデータとして複数のプロッタ41,42に同時に転送する場合に、速度の比率に合わせて、仮想チャネル毎の優先度設定値を指定することにより、ペイロードサイズ決定回路38において自動的にペイロードサイズが調整され、高精度なデータ転送レートの調整が可能となる。
In this case, as the arbitration algorithm of the virtual channel VC, even if only the round robin (RR) that issues packet data with an equal frequency is supported by the standard, as described above, the
例えば、図20(a)は、仮想チャネルVCのアービトレーションのアルゴリズムとして、ラウンドロビン(RR)しか規格でサポートされていない条件下で、プロッタ41,42間の優先度設定値の比率が4:1として指定されている場合(プロッタ41がプロッタ42よりも4倍速い場合)においては、ペイロードサイズ決定回路38で、プロッタ41用の仮想チャネルのペイロードサイズをプロッタ42用の仮想チャネルのペイロードサイズに対して4倍になるように決定することで、所望通り、単位時間当たりプロッタ42側に対するデータ転送量の4倍のデータを転送できることを示している。
For example, FIG. 20A shows that the ratio of the priority setting values between the
また、図20(b)は、仮想チャネルVCのアービトレーションのアルゴリズムとして、ラウンドロビン(RR)しか規格でサポートされていない条件下で、プロッタ41,42間の優先度設定値の比率が2:1として指定されている場合(プロッタ41がプロッタ42よりも2倍速い場合)においては、ペイロードサイズ決定回路38で、プロッタ41用の仮想チャネルのペイロードサイズをプロッタ42用の仮想チャネルのペイロードサイズに対して2倍になるように決定することで、所望通り、単位時間当たりプロッタ42側に対するデータ転送量の2倍のデータを転送できることを示している。
Further, FIG. 20B shows that the ratio of the priority setting values between the
ところで、上述の説明では、仮想チャネルVCのアービトレーションのアルゴリズムとして、PCI Express規格のラウンドロビン(RR)の例で説明したが、アービトレーションのアルゴリズムとしては、この他、各仮想チャネル毎に重み付けされた頻度でパケットデータを発行させる方式(PCI Express規格上であれば、ウエイテッドラウンドロビン(WRR)、各仮想チャネル毎に固定の優先順位でパケットデータを発行させる方式(PCI Express規格上であれば、ストリクト(Strict))がある。これらの仮想チャネルVCのアービトレーションのアルゴリズムについて説明する。 By the way, in the above description, the arbitration algorithm of the virtual channel VC has been described as an example of the round robin (RR) of the PCI Express standard. However, as the arbitration algorithm, the frequency weighted for each virtual channel is also used. Packet data issuance method (weighted round robin (WRR if the PCI Express standard is used), packet data is issued with a fixed priority for each virtual channel (strict if the PCI Express standard is used) (Strict)) The arbitration algorithm of these virtual channels VC will be described.
図21はこれらのアービトレーションのアルゴリズムの各方式の基本特性例を示す特性図である。なお、アービトレーション特性の測定結果は動的な変動を観測する必要があるため、図21ではデータ積算図として示す。図において、横軸は時間、縦軸は転送されたデータ量(積算値)である。なお、ペイロードサイズは、4種類とも128byte(約8000)固定の条件での測定例とする。図21(a)はストリクト(strict)特性を示すもので、単純に、順番にデータを流していくアルゴリズムである。図21(b)はラウンドロビン(RR)特性を示し、4種類のデータを順番に均等に分けながら流していくアルゴリズムであり、図面上、4種類の特性は1本の特性に重なって表現されている。図21(c)はウエイテッドラウンドロビン(WRR)特性として、4種類に関して1:2:4:8の比率でデータ転送させるように設定した場合の特性例を示し、1つのトラフィッククラスのデータ転送が終了すると、残りのトラフィッククラスについて8:4:2、さらには、8:4の如く、比率を変遷させながらデータ転送させるアルゴリズムである。 FIG. 21 is a characteristic diagram showing an example of basic characteristics of each system of these arbitration algorithms. In addition, since it is necessary to observe the dynamic fluctuation | variation for the measurement result of arbitration characteristic, in FIG. 21, it shows as a data integration figure. In the figure, the horizontal axis represents time, and the vertical axis represents the amount of transferred data (integrated value). Note that the payload size is a measurement example under the condition that all four types are fixed to 128 bytes (about 8000). FIG. 21A shows a strict characteristic, which is an algorithm for simply flowing data in order. FIG. 21 (b) shows the round robin (RR) characteristic, which is an algorithm for flowing four types of data while dividing them evenly in order. In the drawing, the four types of characteristics are represented by overlapping one characteristic. ing. FIG. 21 (c) shows an example of characteristics when weighted round robin (WRR) characteristics are set so that data transfer is performed at a ratio of 1: 2: 4: 8 for the four types. Data transfer of one traffic class Is completed, the data is transferred while changing the ratio of the remaining traffic class, such as 8: 4: 2 and further 8: 4.
また、ストリクト(Strict)のアルゴリズムで測定した場合のペイロードの基本特性を図22に示す。図22では、個々のトラフィックのペイロードサイズの指定を左側から順に、8,16,32,64Bytesの如く変えた例を示している。図22によれば、4つのトラフィックの傾きに注目すると、ペイロードサイズが小さいほど転送レートが遅く、ペイロードサイズが大きいほど転送レートが大きいことが分かる。このようなペイロード特性は、他のアービトレーションのアルゴリズムを用いた場合も同様である。つまり、仮想チャネルVCのアービトレーションのアルゴリズムの設定と、ペイロードイズの指定とを組合せることにより、より木目細やかにトラフィック調整が可能なことが判る。 FIG. 22 shows the basic characteristics of the payload when measured by the strict algorithm. FIG. 22 shows an example in which the designation of the payload size of each traffic is changed in order from the left side, such as 8, 16, 32, and 64 Bytes. According to FIG. 22, paying attention to the inclinations of the four traffics, it can be seen that the smaller the payload size, the slower the transfer rate, and the larger the payload size, the larger the transfer rate. Such payload characteristics are the same when other arbitration algorithms are used. That is, it can be seen that the traffic adjustment can be performed more finely by combining the setting of the arbitration algorithm of the virtual channel VC and the designation of the payload size.
図23は、ペイロードサイズと仮想チャネルVCのアービトレーションのアルゴリズムとの相互作用について説明するための特性図である。前述したように、ペイロードサイズと仮想チャネルVCのアービトレーションのアルゴリズムとの組合せ次第で転送レートが変化するため、相互に影響を与える。図23に示す典型例を参照してその影響について説明する。 FIG. 23 is a characteristic diagram for explaining the interaction between the payload size and the arbitration algorithm of the virtual channel VC. As described above, since the transfer rate changes depending on the combination of the payload size and the arbitration algorithm of the virtual channel VC, they affect each other. The influence will be described with reference to a typical example shown in FIG.
図23(a)は、アービトレーションのアルゴリズムがラウンドロビン(RR)で、ペイロードサイズが8Bytes固定の場合を示し、図23(b)は、アービトレーションのアルゴリズムがラウンドロビン(RR)で、ペイロードサイズが順に8,16,32,64Bytesの如く不均一に指定されている場合を示し、図23(c)は、アービトレーションのアルゴリズムが1:2:4:8なる重み付けのウエイテッドラウンドロビン(WRR)で、ペイロードサイズが順に8,16,32,64Bytesの如く不均一に指定されている場合を示している。 FIG. 23A shows a case where the arbitration algorithm is round robin (RR) and the payload size is fixed at 8 Bytes, and FIG. 23B shows the arbitration algorithm is round robin (RR) and the payload size is in order. FIG. 23 (c) shows a weighted round robin (WRR) weighted with an arbitration algorithm of 1: 2: 4: 8. This shows a case where the payload size is specified non-uniformly in order, such as 8, 16, 32, and 64 bytes.
まず、図23(a)と図23(b)とは、4つの仮想チャネルVCに割当てているトラフィックのペイロードサイズのみが異なる例を示しているが、その特性には大きな違いがある。特に、図23(b)に示す設定例は、アービトレーションのアルゴリズムがラウンドロビン(RR)であるが、各トラフィックのペイロードサイズを同じとした場合のアービトレーションのアルゴリズムであるウエイテッドラウンドロビン(WRR)の場合の特性と等価となる。 First, FIG. 23 (a) and FIG. 23 (b) show an example in which only the payload size of the traffic allocated to the four virtual channels VC is different, but there is a great difference in the characteristics. In particular, in the setting example shown in FIG. 23B, although the arbitration algorithm is round robin (RR), the weighted round robin (WRR), which is an arbitration algorithm when the payload size of each traffic is the same, is used. This is equivalent to the case characteristics.
また、図23(b)と図23(c)とは、アービトレーションのアルゴリズムのみが異なる例を示しているが、各8kBのデータ転送区間においては、明らかに違う特性となっている。 FIG. 23B and FIG. 23C show an example in which only the arbitration algorithm is different, but the characteristics are clearly different in each 8 kB data transfer section.
以上の場合とは逆に、パラメータの設定が全く別であるが、似た特性を示す場合もある。図23(a)と図23(c)との例であり、ペイロードサイズ及びアービトレーションのアルゴリズムが異なる例を示している。即ち、全て別個の設定であるが、4トラフィックの傾きがほぼ均等になっている(もっとも、図23(c)に示す例では、ヘッダのオーバヘッド分の差が生ずる)。 Contrary to the above case, the parameter settings are completely different, but may have similar characteristics. FIG. 23 (a) and FIG. 23 (c) show examples in which the payload size and arbitration algorithm are different. That is, although all of the settings are separate, the slopes of the four traffics are almost equal (although, in the example shown in FIG. 23C, a difference corresponding to the header overhead occurs).
以上のように、外部より指定された優先度設定値なる目的とする平均的なデータ転送レートを得るための決定方法としては、複数の方法が存在する。この選択の自由度を有効に活用し、他の構造的な設計制約(例えば、バッファサイズ、タグ段数等)があっても、目的とするトラフィック制御が可能となる。また、仮想チャネルVCのアービトレーションのアルゴリズムの設定を変更するためには、コンフィグライトで仮想チャネルVCのアービトレーションテーブルの変更が必要となるが、ペイロードサイズの決定変更によれば、ユーザロジックの作り方次第で高速変更が可能になる。これにより、例えば動的な平均レートの変更は、高速対応可能なペイロードサイズ決定変更で対応し、静的な平均レートの変更は、仮想チャネルVCのアービトレーションのアルゴリズムの変更で対応する、等の使い分けが可能になる。 As described above, there are a plurality of methods as a determination method for obtaining a target average data transfer rate that is a priority setting value designated from the outside. By effectively utilizing this degree of freedom of selection, even if there are other structural design constraints (for example, buffer size, number of tag stages, etc.), target traffic control can be performed. In order to change the arbitration algorithm setting of the virtual channel VC, it is necessary to change the arbitration table of the virtual channel VC with config write. However, depending on how the payload size is determined, depending on how the user logic is created. Fast change is possible. As a result, for example, a dynamic average rate change is handled by a payload size determination change that can be handled at high speed, and a static average rate change is handled by a change in the arbitration algorithm of the virtual channel VC. Is possible.
データ転送回路の別の実施の形態を図24及び図25に基づいて説明する。図24は、本実施の形態のシリアル送信回路(データ転送装置)51の構成例を示す概略ブロック図である。図17に示した部分と同一部分は同一符号を用いて示し、説明も省略する。本実施の形態のシリアル送信回路51では、仮想チャネル毎のパケット発行頻度を検出する手段としてのパケット発行頻度検出回路52に加えて、仮想チャネル毎に発行されるパケットデータのペイロードサイズを検出する手段としてのペイロードサイズ検出回路53が設けられ、これらの検出回路52,53により検出される仮想チャネル毎のパケット発行頻度、及び、パケットデータのペイロードサイズに基づくフィードバック制御により、仮想チャネル間のデータ転送レートの比率が外部より指定される仮想チャネル毎のデータ転送レートの優先度設定値の仮想チャネル間の比率に近づくように仮想チャネル毎にパケットデータの修正されたペイロードサイズを決定するペイロードサイズ決定回路54がペイロードサイズ決定手段として設けられている。ペイロードサイズ決定回路54等によるペイロードサイズ決定処理としては、CPUによるプログラム処理により実現するようにしてもよい。
Another embodiment of the data transfer circuit will be described with reference to FIGS. FIG. 24 is a schematic block diagram showing a configuration example of the serial transmission circuit (data transfer device) 51 of the present embodiment. The same parts as those shown in FIG. 17 are denoted by the same reference numerals, and description thereof is also omitted. In the
図25は、仮想チャネル毎のペイロードサイズ決定処理のフィードバック制御例を示す概略フローチャートである。ここでは、各々のパケットデータ1〜4の所望の優先度設定値の比率としては、前述の実施の形態の場合と同様に、外部からの入力操作により、データ1:データ2:データ3:データ4=w:x:y:zの如く比率で指定されているものとする。また、仮想チャネルは4チャネルの例とし、或る時点で設定されている各仮想チャネルのペイロードサイズはA,B,C,Dであるとする。
FIG. 25 is a schematic flowchart illustrating an example of feedback control of payload size determination processing for each virtual channel. Here, as the ratio of the desired priority setting values of the
まず、パケット生成回路32によりアービトレーション回路36に対して仮想チャネル1〜4毎にパケットデータを発行させ(S11)、このアービトレーション回路36から設定されている優先度に従い実際にパケットデータを発行させる(S12)。このパケットデータ発行の際に、パケットデータが発行された仮想チャネル番号をパケット発行頻度検出回路52において順次受信することにより仮想チャネル毎のパケット発行頻度が検出されるとともに、発行された仮想チャネル毎のパケットデータのペイロードサイズをペイロードサイズ検出回路53において順次受信することによりペイロードサイズを検出する(S13)。
First, the packet generation circuit 32 causes the
そして、仮想チャネル1〜4毎のデータ転送量の総和を各々Sum A,B,C,Dとしたとき、受信した仮想チャネル番号1〜4毎にその時のペイロードサイズを順次積算する(S14)。即ち、仮想チャネル番号が1であれば、Sum A=Sum A+Aなる積算処理、仮想チャネル番号が2であれば、Sum B=Sum B+Bなる積算処理、仮想チャネル番号が3であれば、Sum C=Sum C+Cなる積算処理、仮想チャネル番号が4であれば、Sum D=Sum D+Dなる積算処理を行なう。このような積算処理により、仮想チャネル1〜4間のデータ転送レートの比率Sum A:Sum B:Sum C:Sum Dを算出する。引き続き、算出されたこれらのデータ転送量(積算値)の仮想チャネル間の比率Sum A:Sum B:Sum C:Sum Dを、優先度設定値の仮想チャネル間の比率データ1:データ2:データ3:データ4=w:x:y:zと比較することにより、現状の仮想チャネル毎の優先度(転送レート)の高低を判定する(S15)。この判定結果である優先度の高低の結果に応じてペイロードサイズの大小関係を相対的に修正する処理を行い、仮想チャネル毎のペイロードサイズを決定する(S16)。
The sum of the data transfer amounts for each of the
即ち、比較判定の結果、優先度設定値w:x:y:zよりも転送レートの低い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズがその時点で設定されているペイロードサイズ(現在値)よりも大きくなるように修正する。また、逆に、優先度設定値w:x:y:zよりも転送レートの高い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。 That is, as a result of the comparison determination, if there is a virtual channel having a transfer rate lower than the priority setting value w: x: y: z, the payload size of the packet data issued from the virtual channel is determined at that time. Modify to be larger than the set payload size (current value). Conversely, when there is a virtual channel with a transfer rate higher than the priority setting value w: x: y: z, the payload size of the packet data issued from the virtual channel is smaller than the current value. Modify to be.
なお、このステップS16におけるペイロードサイズの修正は、仮想チャネル間で相対的なものであり、例えば、比較判定の結果、優先度設定値w:x:y:zよりも転送レートの低い仮想チャネルが存在していた場合には、当該仮想チャネル以外の他の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも小さくなるように修正したり、また、逆に、優先度設定値w:x:y:zよりも転送レートの高い仮想チャネルが存在していた場合には、当該仮想チャネル以外の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも大きくなるように修正したりしてもよい。さらには、優先度設定値w:x:y:zよりも転送レートの低い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正すると同時に当該仮想チャネル以外の他の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも小さくなるように修正してもよい。また、優先度設定値w:x:y:zよりも転送レートの高い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正すると同時に該仮想チャネル以外の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも大きくなるように修正してもよい。 The correction of the payload size in step S16 is relative between the virtual channels. For example, as a result of the comparison determination, a virtual channel having a lower transfer rate than the priority setting value w: x: y: z If it exists, the payload size of the packet data issued from other virtual channels other than the virtual channel is corrected to be smaller than the current value, or conversely, the priority setting value w: x : If there is a virtual channel with a transfer rate higher than y: z, the payload size of packet data issued from a virtual channel other than the virtual channel is modified to be larger than the current value. Also good. Furthermore, when there is a virtual channel with a lower transfer rate than the priority setting value w: x: y: z, the payload size of the packet data issued from the virtual channel is larger than the current value. At the same time, the payload size of packet data issued from other virtual channels other than the virtual channel may be modified to be smaller than the current value. Also, when there is a virtual channel with a transfer rate higher than the priority setting value w: x: y: z, the payload size of packet data issued from the virtual channel is made smaller than the current value. Simultaneously with the correction, the payload size of packet data issued from a virtual channel other than the virtual channel may be corrected to be larger than the current value.
何れにしても、このような処理結果に従い、仮想チャネル毎のペイロードサイズA,B,C,Dの値を更新してパケット生成回路32に通知する(S17)。パケット生成回路32では仮想チャネル1〜4毎に決定されたペイロードサイズのパケットデータを生成してアービトレーション回路36に出力することでパケット発行を行う(S11)。
In any case, according to such a processing result, the values of the payload sizes A, B, C, and D for each virtual channel are updated and notified to the packet generation circuit 32 (S17). The packet generation circuit 32 issues packet by generating packet data of the payload size determined for each of the
本実施の形態によれば、パケットデータのペイロードサイズを、外部より指定される必要なデータ転送レートの優先度設定値が得られるようにフィードバック制御に基づき動的に修正しながら決定することで、アービトレーション回路36による優先度の調停のみでデータ転送レートを調整する場合に比べ、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となる。
According to the present embodiment, by determining the payload size of the packet data while dynamically correcting based on feedback control so as to obtain the priority setting value of the required data transfer rate specified from the outside, Compared with the case where the data transfer rate is adjusted only by priority arbitration by the
32 パケット生成手段
33a〜33d 仮想チャネル手段
36 アービトレーション手段
37 データ転送装置
38 ペイロードサイズ決定手段
41,42 デバイス
43 エンジン
44 コントローラ
51 データ転送装置
52 パケット発行頻度を検出する手段
53 ペイロードサイズを検出する手段
54 ペイロードサイズ決定手段
32 packet generation means 33a-33d virtual channel means 36 arbitration means 37 data transfer device 38 payload size determination means 41, 42
Claims (14)
前記仮想チャネル毎のパケット発行頻度を検出する手段と、
前記仮想チャネル毎のデータ転送レートの設定値を指定する指定手段と、
検出された前記仮想チャネル毎のパケット発行頻度と前記仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の前記仮想チャネル間の比率が、前記指定手段によって指定された前記仮想チャネル毎のデータ転送レートの設定値の比率に近づく値となるように、前記仮想チャネル毎にパケットデータのペイロードサイズを決定するペイロードサイズ決定手段と、
前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、
を備えることを特徴とするデータ転送装置。 In a data transfer apparatus having virtual channel means for transmitting packet data of a plurality of traffics by using a serial bus in a time division manner in units of virtual channels, and arbitration means for arbitrating the priority for issuing packet data for each virtual channel,
Means for detecting a packet issue frequency for each virtual channel;
A designation means for designating a setting value of a data transfer rate for each virtual channel;
The ratio between the virtual channels of the integrated value of the detected packet issue frequency for each virtual channel and the payload size of the packet data issued for each virtual channel is determined for each virtual channel specified by the specifying unit. Payload size determination means for determining the payload size of packet data for each virtual channel so as to be a value that approaches the ratio of the setting value of the data transfer rate ;
Packet generation means for generating packet data of a payload size determined for each virtual channel and outputting the packet data to the arbitration means;
A data transfer device comprising:
前記仮想チャネル毎のパケット発行頻度を検出する手段と、
前記仮想チャネル毎のデータ転送レートの設定値を指定する指定手段と、
前記仮想チャネル毎に発行されるパケットデータのペイロードサイズを検出する手段と、
検出された前記仮想チャネル毎のパケット発行頻度、検出された前記仮想チャネル毎のパケットデータのペイロードサイズに基づくフィードバック制御により、前記仮想チャネル間のデータ転送レートの比率が、前記指定手段によって指定された前記仮想チャネル毎のデータ転送レートの設定値の比率に近づく値となるように、前記仮想チャネル毎にパケットデータの修正されたペイロードサイズを決定するペイロードサイズ決定手段と、
前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、
を備えることを特徴とするデータ転送装置。 In a data transfer apparatus having virtual channel means for transmitting packet data of a plurality of traffics by using a serial bus in a time division manner in units of virtual channels, and arbitration means for arbitrating the priority for issuing packet data for each virtual channel,
Means for detecting a packet issue frequency for each virtual channel;
A designation means for designating a setting value of a data transfer rate for each virtual channel;
Means for detecting a payload size of packet data issued for each virtual channel;
By the feedback control based on the detected packet issuance frequency for each virtual channel and the payload size of the detected packet data for each virtual channel, the ratio of the data transfer rate between the virtual channels is specified by the specifying unit. Payload size determination means for determining a modified payload size of packet data for each virtual channel so as to approach a ratio of a set value of a data transfer rate for each virtual channel;
Packet generation means for generating packet data of a payload size determined for each virtual channel and outputting the packet data to the arbitration means;
A data transfer device comprising:
検出された前記仮想チャネル毎のパケット発行頻度と検出された前記仮想チャネル毎のパケットデータのペイロードサイズとの積算処理により前記仮想チャネル間のデータ転送レートの比率を算出する手段と、
算出された前記仮想チャネル間のデータ転送レートの比率を外部より指定される前記仮想チャネル毎のデータ転送レートの設定値の前記仮想チャネル間の比率と比較して前記仮想チャネル毎の優先度の高低を判定する手段と、
判定された前記仮想チャネル毎の優先度の高低の結果に応じて前記各仮想チャネル間のパケットデータのペイロードサイズの大小関係を相対的に修正して前記仮想チャネル毎のペイロードサイズを決定する手段と、
を有することを特徴とする請求項2記載のデータ転送装置。 The payload size determining means includes
Means for calculating a ratio of a data transfer rate between the virtual channels by an integration process of the detected packet issue frequency for each virtual channel and the payload size of the detected packet data for each virtual channel;
It calculated the level of priority for each of the virtual channels as compared to the ratio between the virtual channels of the set value of the data transfer rate for each virtual channel a ratio of the data transfer rate is specified from the outside between the virtual channels Means for determining
Means for determining the payload size for each virtual channel by relatively correcting the magnitude relation of the payload size of the packet data between the virtual channels according to the determined priority level result for each virtual channel; ,
The data transfer apparatus according to claim 2, further comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004281236A JP4476088B2 (en) | 2004-09-28 | 2004-09-28 | Data transfer apparatus and image forming system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004281236A JP4476088B2 (en) | 2004-09-28 | 2004-09-28 | Data transfer apparatus and image forming system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006099180A JP2006099180A (en) | 2006-04-13 |
| JP4476088B2 true JP4476088B2 (en) | 2010-06-09 |
Family
ID=36238962
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004281236A Expired - Fee Related JP4476088B2 (en) | 2004-09-28 | 2004-09-28 | Data transfer apparatus and image forming system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4476088B2 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7664904B2 (en) | 2006-03-10 | 2010-02-16 | Ricoh Company, Limited | High speed serial switch fabric performing mapping of traffic classes onto virtual channels |
| JP4878185B2 (en) | 2006-03-17 | 2012-02-15 | 株式会社リコー | Data communication circuit and arbitration method |
| JP5108261B2 (en) * | 2006-07-11 | 2012-12-26 | 株式会社リコー | Information processing apparatus and data communication apparatus |
| JP4728896B2 (en) * | 2006-07-13 | 2011-07-20 | エヌイーシーコンピュータテクノ株式会社 | Computer system |
| US20090310489A1 (en) * | 2008-06-17 | 2009-12-17 | Bennett Andrew M | Methods and apparatus using a serial data interface to transmit/receive data corresponding to each of a plurality of logical data streams |
-
2004
- 2004-09-28 JP JP2004281236A patent/JP4476088B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006099180A (en) | 2006-04-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4878185B2 (en) | Data communication circuit and arbitration method | |
| JP5108261B2 (en) | Information processing apparatus and data communication apparatus | |
| US7813362B2 (en) | Communication apparatus, electronic apparatus, imaging apparatus | |
| JP4928732B2 (en) | Data transfer system and electronic device | |
| JP4704050B2 (en) | Data transfer system and electronic device | |
| JP4308680B2 (en) | Image forming apparatus | |
| JP4564855B2 (en) | Data transfer system and electronic device | |
| JP4928715B2 (en) | Serial data transfer device, image output device, image input device, and image forming device | |
| JP2006092286A (en) | Data transfer apparatus and image forming system | |
| JP4425766B2 (en) | Image forming system | |
| JP2005323159A (en) | Imaging system | |
| JP4476088B2 (en) | Data transfer apparatus and image forming system | |
| JP4777723B2 (en) | Information processing system, program, and data transfer method | |
| JP5218377B2 (en) | Image forming system | |
| JP4603336B2 (en) | Data transfer system, image forming system, and data transfer method | |
| JP4603335B2 (en) | Data transfer system, image forming system, and data transfer method | |
| JP2005346629A (en) | Image processing device | |
| JP2007282187A (en) | Information processing apparatus, information processing system, and data communication method | |
| JP2006113798A (en) | Data transfer system, reception buffer device, data transfer system specification setting method, and image forming system | |
| JP2007272871A (en) | Information processing apparatus and data communication method | |
| JP4271558B2 (en) | Data transfer system, image forming system, and data transfer program | |
| JP4690828B2 (en) | Information processing system, program, and packet communication method | |
| JP2007241882A (en) | Data communication apparatus and image forming system | |
| JP4824422B2 (en) | Control device, image processing system, and data transfer path switching method | |
| JP2007226494A (en) | Data transfer system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070208 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070319 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090813 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090825 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091023 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100302 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100309 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |
