[go: up one dir, main page]

JP4476088B2 - Data transfer apparatus and image forming system - Google Patents

Data transfer apparatus and image forming system Download PDF

Info

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
Application number
JP2004281236A
Other languages
Japanese (ja)
Other versions
JP2006099180A (en
Inventor
純一 池田
光冶 竹尾
幸治 押切
典之 寺尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2004281236A priority Critical patent/JP4476088B2/en
Publication of JP2006099180A publication Critical patent/JP2006099180A/en
Application granted granted Critical
Publication of JP4476088B2 publication Critical patent/JP4476088B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 規格の概要”Interface誌、July’2003 里見尚志“Outline of PCI Express Standard” Interface, July’2003 Naoshi Satomi

ところが、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 claim 4, wherein the data transfer device of claim 3 wherein said means for determining the said determined the result of the level of priority for each virtual channel, a lower priority than the setpoint virtual If the channel exists, the payload size of the packet data issued by the virtual channel is corrected so as to be larger than the current value.

請求項5記載の発明は、請求項3記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。 Invention of claim 5, wherein the data transfer device of claim 3 wherein said means for determining the said determined the result of the level of priority for each virtual channel, a lower priority than the setpoint virtual If a channel exists, the payload size of packet data issued by a virtual channel other than the virtual channel is corrected so as to be smaller than the current value.

請求項6記載の発明は、請求項3記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。 Invention of claim 6, wherein the data transfer device of claim 3 wherein said means for determining the said determined the result of the level of priority for each virtual channel, a lower priority than the setpoint virtual If a channel exists, the payload size of the packet data issued by the virtual channel is larger than the current value, and the payload size of the packet data issued by another virtual channel other than the virtual channel is smaller than the current value. Modify to be.

請求項7記載の発明は、請求項3ないし6の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。 Invention of claim 7, wherein the data transfer device of any one of claims 3 to 6, wherein the means for determining is the determined said high and low priority for each virtual channel a result, from the set value If a virtual channel with high priority exists, the payload size of the packet data issued by the virtual channel is corrected so as to be smaller than the current value.

請求項8記載の発明は、請求項3ないし6の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。 Invention of claim 8, wherein the data transfer device of any one of claims 3 to 6, wherein the means for determining is the determined said high and low priority for each virtual channel a result, from the set value If a virtual channel with high priority exists, the payload size of packet data issued by other virtual channels other than the virtual channel is corrected so as to be larger than the current value.

請求項9記載の発明は、請求項3ないし6の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。 Invention of claim 9, wherein the data transfer device of any one of claims 3 to 6, wherein the means for determining is the determined said high and low priority for each virtual channel a result, from the set value If there is a virtual channel with a higher priority, the payload size of the packet data issued by the virtual channel is smaller than the current value, and the payload size of the packet data issued by another virtual channel other than the virtual channel Is corrected to be larger than the current value.

請求項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 claim 11 is the data transfer apparatus according to claim 10, wherein the algorithm for each virtual channel of the arbitration means is a round robin of the PCI Express standard or a weighted round. Robin (Weighted Round Robin).

請求項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 claim 1, wherein the device in the engine is connected to the device by a serial bus using a single link.

本発明によれば、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段の機能に加えて、仮想チャネル毎のパケット発行頻度を検出する手段と、仮想チャネル毎のデータ転送レートの設定値を指定する指定手段と、検出された仮想チャネル毎のパケット発行頻度と仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の仮想チャネル間の比率が、指定手段によって指定された仮想チャネル毎のデータ転送レートの設定値の比率に近づく値となるように、仮想チャネル毎にパケットデータのペイロードサイズを決定するペイロードサイズ決定手段と、仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成してアービトレーション手段に出力するパケット生成手段と、を備えているので、パケットデータのペイロードサイズを、指定手段によって指定される必要なデータ転送レート設定値が得られるように決定することで、アービトレーション手段による優先度の調停のみでデータ転送レートを調整する場合に比べ、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となる。 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 Document 1. Explained with excerpts. Here, the high-speed serial bus means an interface capable of exchanging data at high speed (about 100 Mbps or more) by serial (serial) transmission using a single transmission line.

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 host bridge 103 to which the CPU 100, the AGP graphics 101, and the memory 102 are connected. Or a PCI bridge 105b to which the PCI devices 104c and 104d are connected and a PCI bridge 107 to which the PCI bus slot 106 is connected are connected via the PCI bridge 105c (tree structure). Yes.

これに対して、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 graphics 113 is connected by the PCI Express 114a to the root complex 112 to which the CPU 110 and the memory 111 are connected, and the endpoint 115a and the legacy endpoint 116a. The switch 117a connected by the PCI Express 114b is connected by the PCI Express 114c, and the PCI bridge 119 to which the switch 117b to which the end point 115b and the legacy end point 116b are connected by the PCI Express 114d and the PCI bus slot 118 are connected is a PCI. The switch 117c connected by the Express 114e has a tree structure (tree structure) connected by the PCI Express 114f.

実際に想定される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, graphics 125 is x16 with respect to a memory hub 124 (corresponding to a root complex) to which a CPU 121 is connected by a CPU host bus 122 and a memory 123 is connected. PCI Express 126a and an I / O hub 127 having a conversion function are connected by PCI Express 126b. For example, a storage 129 is connected to the I / O hub 127 by a Serial ATA 128, a local I / O 131 is connected by an LPC 130, and a USB 2.0 132 and a PCI bus slot 133 are connected. Furthermore, a switch 134 is connected to the I / O hub 127 by a PCI Express 126c. The switch 134 is connected to the mobile dock 135, Gigabit Ethernet (Ethernet is a registered trademark) 136, and an add-in by PCI Express 126d, 126e, and 126f, respectively. A card 137 is connected.

即ち、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 root complex 112 is located at the highest level of the I / O structure, and connects the CPU and the memory subsystem to the I / O. In a block diagram or the like, as shown in FIG. 3, it is often described as “memory hub”. The root complex 112 (or 124) has one or more PCI Express ports (root ports) (indicated by squares in the root complex 112 in FIG. 2), and each port is an independent I / O hierarchical domain. Form. The I / O hierarchical domain is a simple endpoint (for example, the example of the endpoint 115a side in FIG. 2), or is formed from a large number of switches and endpoints (for example, the endpoint in FIG. 2). 115b and switches 117b and 115c side).

C.エンドポイント(End Point)
エンドポイント115は、タイプ00hのコンフィグレーション空間ヘッダを持つデバイス(具体的には、ブリッジ以外のデバイス)で、レガシーエンドポイントとPCI Expressエンドポイントとに分けられる。両者の大きな違いは、PCI ExpressエンドポイントはBAR(ベースアドレスレジスタ)で基本的にI/Oポートリソースを要求せず、このためI/Oリクエストを要求しない。また、PCI Expressエンドポイントは、ロックリクエストもサポートしていない。
C. End point
The endpoint 115 is a device having a configuration space header of type 00h (specifically, a device other than a bridge), and is divided into a legacy endpoint and a PCI Express endpoint. The major difference between the two is that the PCI Express endpoint basically does not request I / O port resources in the BAR (base address register), and therefore does not request an I / O request. PCI Express endpoints also do not support lock requests.

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 transaction layer 153, the data link layer 154, and the physical layer 155 are provided between the uppermost software layer 151 and the lowermost mechanism (mechanical) unit 152. Thereby, the modularity of each layer is ensured, and it becomes possible to provide scalability and reuse the module. For example, when adopting a new signal coding method or transmission medium, it is possible to cope with only changing the physical layer without changing the data link layer or the transaction layer.

PCI Expressのアーキテクチャの中心となるのは、トランザクション層153、データリンク層154、物理層155であり、各々図8を参照して説明する以下のような役割を持つ。   The core of the PCI Express architecture is a transaction layer 153, a data link layer 154, and a physical layer 155, each having the following roles described with reference to FIG.

A.トランザクション層153
トランザクション層153は、最上位に位置し、トランザクションレイヤパケット(TLP)の組み立て、分解機能を持つ。トランザクションレイヤパケット(TLP)は、リード/ライト、各種イベントといったトランザクションの伝達に用いられる。また、トランザクション層153は、トランザクションレイヤパケット(TLP)のためのクレジットを用いたフロー制御を行う。各層153〜155におけるトランザクションレイヤパケット(TLP)の概要を図9に示す(詳細は、後述する)。
A. Transaction layer 153
The transaction layer 153 is located at the highest level and has a function of assembling and disassembling a transaction layer packet (TLP). The transaction layer packet (TLP) is used for transmission of transactions such as read / write and various events. The transaction layer 153 performs flow control using credits for transaction layer packets (TLP). An outline of a transaction layer packet (TLP) in each of the layers 153 to 155 is shown in FIG. 9 (details will be described later).

B.データリンク層154
データリンク層154の主な役割は、エラー検出/訂正(再送)によりトランザクションレイヤパケット(TLP)のデータ完全性を保証することと、リンク管理である。データリンク層154間では、リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは、トランザクションレイヤパケット(TLP)と区別するために、データリンクレイヤパケット(DLLP)と呼ばれる。
B. Data link layer 154
The main role of the data link layer 154 is to guarantee data integrity of the transaction layer packet (TLP) by error detection / correction (retransmission) and link management. Packets for link management and flow control are exchanged between the data link layers 154. This packet is called a data link layer packet (DLLP) to distinguish it from a transaction layer packet (TLP).

C.物理層155
物理層155は、ドライバ、入力バッファ、パラレル−シリアル/シリアル−パラレル変換器、PLL、インピーダンス整合回路といったインタフェース動作に必要な回路を含んでいる。また、論理的な機能としてインタフェースの初期化・保守の機能を持つ。物理層155は、データリンク層154/トランザクション層153を実際のリンクで使用される信号技術から独立させる役目も持っている。
C. Physical layer 155
The physical layer 155 includes circuits necessary for interface operations such as a driver, an input buffer, a parallel-serial / serial-parallel converter, a PLL, and an impedance matching circuit. It also has interface initialization / maintenance functions as logical functions. The physical layer 155 also serves to make the data link layer 154 / transaction layer 153 independent of the signaling technology used in the actual link.

なお、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 transaction layer 153, data link layer 154, and physical layer 155, which are the core of the PCI Express architecture, will be described in detail.

A.トランザクション層153
トランザクション層153の主な役割は、前述したように、上位のソフトウェア層151と下位のデータリンク層154との間でトランザクションレイヤパケット(TLP)の組み立てと分解を行うことである。
A. Transaction layer 153
The main role of the transaction layer 153 is to assemble and disassemble transaction layer packets (TLP) between the upper software layer 151 and the lower data link layer 154 as described above.

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. Data link layer 154
The main role of the data link layer 154 is to provide a reliable transaction layer packet (TLP) exchange function between two components on the link, as described above.

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 transaction layer 153, a 2-byte sequence number at the beginning and a 4-byte link CRC (LCRC) at the end are added to the physical layer. To 155 (see FIG. 9). The transaction layer packet (TLP) is stored in the retry buffer and retransmitted until a reception confirmation (ACK) is received from the partner. When the transmission of the transaction layer packet (TLP) continues to fail, it is determined that the link is abnormal, and the physical layer 155 is requested to retrain the link. If link training fails, the state of the data link layer 154 transitions to inactive.

物理層155から受け取ったトランザクションレイヤパケット(TLP)は、シーケンス番号とリンクCRC(LCRC)が検査され、正常であればトランザクション層153に渡され、エラーがあった場合は再送を要求する。   The transaction layer packet (TLP) received from the physical layer 155 is inspected for the sequence number and the link CRC (LCRC). If normal, the transaction layer packet (TLP) is passed to the transaction layer 153.

b.データリンクレイヤパケット(DLLP)
データリンク層154が生成するパケットは、データリンクレイヤパケット(DLLP)と呼ばれ、データリンク層154間でやり取りされる。データリンクレイヤパケット(DLLP)には、
・Ack/Nak:TLPの受信確認、リトライ(再送)
・InitFC1/InitFC2/UpdateFC:フロー制御の初期化とアップデート
・電源管理のためのDLLP
なる種類がある。
b. Data link layer packet (DLLP)
A packet generated by the data link layer 154 is called a data link layer packet (DLLP), and is exchanged between the data link layers 154. Data link layer packet (DLLP)
-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-logical sub-block 156
The main role of the physical layer 155 in the logical sub-block 156 shown in FIG. 8 is to convert the packet received from the data link layer 154 into a format that can be transmitted by the electrical sub-block 157. It also has a function of controlling / managing the physical layer 155.

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.

Figure 0004476088
Figure 0004476088

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—Electric sub-block 157
The main role of the physical layer 155 in the electrical sub-block 157 is to transmit the data serialized in the logical sub-block 156 onto the lane, and to receive the data on the lane and pass it to the logical sub-block 156. is there.

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 image forming system 1 uses a PCI Express standard bus system for serial data transfer. That is, a CPU 11 that centrally controls each part of the image forming system 1 and a system memory 12 that is a work area of the CPU 11 are connected to a root complex 13 of the PCI Express standard. A root complex 13 and a PCI Express standard switch (or switch network) 14 are connected via a PCI Express standard general-purpose bus 15. The PCI Express standard switch (or switch network) 14 is connected to various devices and devices serving as PCI Express standard end points. That is, a hard disk (HDD) unit 21 for storing image data, an image memory unit 22 and a memory unit 23, an image processing unit 24 for performing various image processing, a high-speed network 25 for communicating with an external network, A scanner 26 as an input engine, a plotter 27 as an image output engine, an image input engine, another multifunction device 28 having an image output engine, and the like.

[アービトレーションに関する規格]
このような画像形成システムでは、各々の機器・デバイスに必要とされるデータ転送レートが異なるため、精度の高いデータ転送レート調整が必要となる。このための規格として、前述したようなシリアルバスを仮想チャネル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 serial transmission circuit 31 receives data 1 to 4 for each channel from the device, and generates packet data 1 to 4 and virtual data for temporarily storing the generated packet data 1 to 4 for each virtual channel VC. The channel buffers (virtual channel means) 33a to 33d and the packet data 1 to 4 stored in the virtual channel buffers 33a to 33d are arbitrated according to the priority defined in advance for each virtual channel VC, and passed through the serial output buffer 34. And an arbitration circuit (arbitration means) 36 for outputting to the signal output circuit 35.

図示例は、各仮想チャネル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 signal output circuit 35 of the serial transmission circuit 31 to the serial bus. Data 1 to 4 are output equally as shown.

ところが、前述したように、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 arbitration circuit 36.

図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 serial transmission circuit 37 of the present embodiment, a payload size determination circuit (payload size determination means) 38 having a logic configuration that specifies the payload size of packet data to be transmitted for each virtual channel VC is added. The packet generation circuit 32 is provided as packet generation means for generating packet data for each virtual channel VC according to the payload size specified by the determination of the payload size determination circuit 38 and outputting the packet data to the arbitration circuit 36. Here, “payload size” means the size of the data portion other than the header information in the size of the entire packet data. The arbitration circuit 36 is provided with means (not shown) for detecting the packet issuance frequency for each virtual channel VC, and the payload size determination circuit stores information on the detected packet issuance frequency for each virtual channel VC. 38 to the output.

このパケット発行頻度を検出する手段は、本実施の形態のように、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 arbitration circuit 36 when the PCI Express standard is assumed as in this embodiment. A means for detecting whether Ted Round Robin (Weighted Round Robin) or Strict (details will be described later) is used, and in particular, Weighted Round Robin (WRR) is used. Is detected, the packet issue frequency for each virtual channel VC is detected with reference to the arbitration table 39 for each virtual channel defined by the PCI Express standard. Since the example shown in FIG. 17 assumes a round robin (RR) with an issuance frequency equal to an even number, the arbitration table 39 shows an example of an even table with a round robin (RR) (that is, each The data examples 1234, 1234,... Issued in the order of 1, 2, 3, and 4 in the order of 1, 2, 3, and 4 are shown. However, in the case of weighted round robin (WRR), 1111, 1212 are shown. , 1213, 1234,...

また、ペイロードサイズ決定回路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 packet data 1 to 4 are specified by a ratio such as data 1: data 2: data 3: data 4 = w: x: y: z.

そして、ペイロードサイズ決定回路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 packet data 1 to 4 for each virtual channel VC is determined and specified as packet data 1> 2> 3> 4 by the payload size determination circuit 38 as indicated by the difference in the square size. It is assumed that The payload size determination process by the payload size determination circuit 38 or the like may be realized by a program process by the CPU.

図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 respective packet data 1 to 4 is designated as data 1: data 2: data 3: data 4: data w = x: y: z by an external operation. It is assumed that Also, assume that the virtual channel is an example of 4 channels, and the payload sizes of the virtual channels 1 to 4 are set as A, B, C, and D.

まず、アービトレーション回路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
となる仮想チャネル1〜4毎のペイロードサイズA,B,C,Dを決定する(S3)。なお、この決定処理においては、比率に対して端数となる場合もあり得るので、必ずしも厳密に一致するとは限らない。よって、要は、最も近づく値に決定することを意味する。
First, the detection means provided for the arbitration circuit 36 detects the packet issue frequency for each virtual channel VC (steps S1 and S2). This process is basically the detection of the arbitration algorithm method as described above, but in the case of weighted round robin (WRR), the arbitration table 39 for each virtual channel is read (S1), and from this table. By calculating the number of packet issuances for each virtual channel (S2), the packet issuance frequency for each virtual channel VC is detected. Next, the integrated value of the calculated issuance count (detected packet issuance frequency) and the payload size of the packet data is used as the data transfer amount Sum for each of the virtual channels 1 to 4. A, B, C, D A = Issuance count 1 x A
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: data 4 = w: x: y: z, that is,
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 virtual channels 1 to 4 (S3). In this determination process, it may be a fraction with respect to the ratio, so it does not always match exactly. Therefore, the point is to determine the closest value.

このように決定された仮想チャネル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 virtual channels 1 to 4 are notified to the packet generation circuit 32 (S4), and the packet generation circuit 32 determines for each of the virtual channels 1 to 4. Data transfer is started by generating payload size packet data and outputting it to the arbitration circuit 36 (S5).

従って、図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 signal output circuit 35 of the serial transmission circuit 37 to the serial bus, the packet data 1 to 4 is a ratio between the virtual channels of the priority setting values, that is, Data 1: Data 2: Data 3: Data 4: = According to w: x: y: z, the data transfer rate is controlled and output so that the data transfer amount is given priority in the order of packet data 1> 2> 3> 4 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 connection engine 43 having two plotters 41 and 42 and a controller 44 are connected via a switch 14 by a single link 15 (high-speed serial bus) (for different ports 0 and 1 of the switch 14). The connection engine 43 and the controller 44 are each physically connected by one port A and B), and it is necessary to adjust the packet data transfer rate between the connection engine 43 and the controller 44. is there. Note that the plotter 41 is a device having a different print processing speed, such as a laser printer, and a plotter 42 is an inkjet printer, for example, and means a device having a different data transfer rate in the same direction of packet data transfer.

この場合、仮想チャネル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 controller 44 side By determining the payload size of the packet data transferred to the plotters 41 and 42 to match the ratio of the desired priority setting value and transferring the data from the controller 44 side, the desired data with high accuracy is obtained. The transfer rate can be controlled. That is, by using the data transfer device as described above for each virtual channel of each port, when plotter data having different speeds is simultaneously transferred to the plurality of plotters 41 and 42 as packet data, according to the speed ratio, By designating the priority setting value for each virtual channel, the payload size is automatically adjusted in the payload size determination circuit 38, and the data transfer rate can be adjusted with high accuracy.

例えば、図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 plotters 41 and 42 is 4: 1 under the condition that only the round robin (RR) is supported by the standard as the arbitration algorithm of the virtual channel VC. Is specified (when the plotter 41 is four times faster than the plotter 42), the payload size determination circuit 38 sets the payload size of the virtual channel for the plotter 41 to the payload size of the virtual channel for the plotter 42. In other words, it is possible to transfer data that is four times the data transfer amount to the plotter 42 per unit time as desired.

また、図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 plotters 41 and 42 is 2: 1 under the condition that only the round robin (RR) is supported by the standard as the arbitration algorithm of the virtual channel VC. Is specified (when the plotter 41 is twice as fast as the plotter 42), the payload size determination circuit 38 sets the payload size of the virtual channel for the plotter 41 to the payload size of the virtual channel for the plotter 42. It is shown that the data can be transferred twice as much as the data transfer amount to the plotter 42 per unit time as desired.

ところで、上述の説明では、仮想チャネル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 serial transmission circuit 51 of the present embodiment, in addition to the packet issue frequency detection circuit 52 as means for detecting the packet issue frequency for each virtual channel, means for detecting the payload size of the packet data issued for each virtual channel The data transfer rate between virtual channels is provided by feedback control based on the packet issuance frequency for each virtual channel detected by these detection circuits 52 and 53 and the payload size of the packet data. Payload size determination circuit 54 determines the modified payload size of the packet data for each virtual channel so that the ratio of the packet data approaches the ratio between the virtual channels of the priority setting value of the data transfer rate for each virtual channel specified from the outside Is the payload size determination means It is provided. The payload size determination processing by the payload size determination circuit 54 or the like may be realized by program processing by the CPU.

図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 respective packet data 1 to 4, as in the case of the above-described embodiment, data 1: data 2: data 3: data by an input operation from the outside. It is assumed that the ratio is specified as 4 = w: x: y: z. The virtual channel is an example of 4 channels, and the payload size of each virtual channel set at a certain time is A, B, C, and D.

まず、パケット生成回路32によりアービトレーション回路36に対して仮想チャネル1〜4毎にパケットデータを発行させ(S11)、このアービトレーション回路36から設定されている優先度に従い実際にパケットデータを発行させる(S12)。このパケットデータ発行の際に、パケットデータが発行された仮想チャネル番号をパケット発行頻度検出回路52において順次受信することにより仮想チャネル毎のパケット発行頻度が検出されるとともに、発行された仮想チャネル毎のパケットデータのペイロードサイズをペイロードサイズ検出回路53において順次受信することによりペイロードサイズを検出する(S13)。   First, the packet generation circuit 32 causes the arbitration circuit 36 to issue packet data for each of the virtual channels 1 to 4 (S11), and the packet data is actually issued according to the priority set by the arbitration circuit 36 (S12). ). When the packet data is issued, the packet issue frequency detection circuit 52 sequentially receives the virtual channel number from which the packet data was issued, thereby detecting the packet issue frequency for each virtual channel, and for each issued virtual channel. The payload size is detected by sequentially receiving the payload size of the packet data in the payload size detection circuit 53 (S13).

そして、仮想チャネル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 virtual channels 1 to 4 is summed. When A, B, C, and D are set, the payload size at that time is sequentially accumulated for each of the received virtual channel numbers 1 to 4 (S14). That is, if the virtual channel number is 1, Sum A = Sum Summation processing of A + A, if the virtual channel number is 2, Sum B = Sum B + B integration process, if the virtual channel number is 3, Sum C = Sum Summation process of C + C, if the virtual channel number is 4, Sum D = Sum Integration processing of D + D is performed. By such an integration process, the data transfer rate ratio Sum between the virtual channels 1 to 4 A: Sum B: Sum C: Sum D is calculated. Subsequently, the ratio Sum between virtual channels of these calculated data transfer amounts (integrated values) A: Sum B: Sum C: Sum By comparing D with the ratio data 1: data 2: data 3: data 4: data 4 = w: x: y: z of the priority setting value, the current priority for each virtual channel (transfer rate) Is determined (S15). A process of relatively correcting the size relationship of the payload size is performed in accordance with the result of the priority as the determination result, and the payload size for each virtual channel is determined (S16).

即ち、比較判定の結果、優先度設定値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 virtual channels 1 to 4 and outputting the packet data to the arbitration circuit 36 (S11).

本実施の形態によれば、パケットデータのペイロードサイズを、外部より指定される必要なデータ転送レートの優先度設定値が得られるようにフィードバック制御に基づき動的に修正しながら決定することで、アービトレーション回路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 arbitration circuit 36, it is possible to control the data transfer rate with high accuracy with a higher degree of freedom.

既存PCIシステムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the existing PCI system. PCI Expressシステムの構成例を示すブロック図である。FIG. 2 is a block diagram illustrating a configuration example of a PCI Express system. デスクトップ/モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。It is a block diagram which shows the structural example of the PCI Express platform in desktop / mobile. x4の場合の物理層の構造例を示す模式図である。It is a schematic diagram which shows the structural example of the physical layer in the case of x4. デバイス間のレーン接続例を示す模式図である。It is a schematic diagram which shows the example of lane connection between devices. スイッチの論理的構造例を示すブロック図である。It is a block diagram which shows the logical structural example of a switch. (a)は既存のPCIのアーキテクチャを示すブロック図、(b)はPCI Expressのアーキテクチャを示すブロック図である。(A) is a block diagram showing an existing PCI architecture, and (b) is a block diagram showing a PCI Express architecture. PCI Expressの階層構造を示すブロック図である。It is a block diagram which shows the hierarchical structure of PCI Express. トランザクションレイヤパケットのフォーマット例を示す説明図である。It is explanatory drawing which shows the format example of a transaction layer packet. PCI Expressのコンフィグレーション空間を示す説明図である。It is explanatory drawing which shows the configuration space of PCI Express. 仮想チャネルの概念を説明するための模式図である。It is a schematic diagram for demonstrating the concept of a virtual channel. データリンクレイヤパケットのフォーマット例を示す説明図である。It is explanatory drawing which shows the format example of a data link layer packet. x4リンクでのバイトストライピング例を示す模式図である。It is a schematic diagram which shows the byte striping example in x4 link. アクティブステート電源管理の制御例を示すタイムチャートである。It is a time chart which shows the example of control of active state power management. 本実施の形態の画像形成システムの構成例を略図的に示すブロック図である。1 is a block diagram schematically showing a configuration example of an image forming system of an embodiment. PCI Express規格のアービトレーション機能に従い構成された従来のシリアル送信回路の構成例を示す概略ブロック図である。It is a schematic block diagram which shows the structural example of the conventional serial transmission circuit comprised according to the arbitration function of the PCI Express specification. 本実施の形態のシリアル送信回路の構成例を示す概略ブロック図である。It is a schematic block diagram which shows the structural example of the serial transmission circuit of this Embodiment. 仮想チャネル毎のペイロードサイズ決定処理例を示す概略フローチャートである。It is a schematic flowchart which shows the payload size determination process example for every virtual channel. 画像形成システムの単純構成例を示すブロック図である。1 is a block diagram illustrating a simple configuration example of an image forming system. ペイロードサイズ変更に伴う転送レート調整の様子を示す説明図である。It is explanatory drawing which shows the mode of the transfer rate adjustment accompanying a payload size change. アービトレーションのアルゴリズムの各方式の基本特性例を示す特性図である。It is a characteristic view which shows the example of a basic characteristic of each system of the algorithm of arbitration. ストリクト(strict)のアルゴリズムで測定した場合のペイロードの基本特性図である。It is a basic characteristic diagram of a payload when measured by a strict algorithm. ペイロードサイズと仮想チャネルVCのアービトレーションのアルゴリズムとの相互作用について説明するための特性図である。It is a characteristic view for demonstrating interaction with a payload size and the arbitration algorithm of virtual channel VC. 別の実施の形態のシリアル送信回路の構成例を示す概略ブロック図である。It is a schematic block diagram which shows the structural example of the serial transmission circuit of another embodiment. 仮想チャネル毎のペイロードサイズ決定処理のフィードバック制御例を示す概略フローチャートである。It is a schematic flowchart which shows the example of feedback control of the payload size determination process for every virtual channel.

符号の説明Explanation of symbols

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 device 43 engine 44 controller 51 data transfer device 52 means for detecting packet issue frequency 53 means for detecting payload size 54 Payload size determination means

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:
前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する、ことを特徴とする請求項3記載のデータ転送装置。 Said means for determining is the determined said high and low priority for each virtual channel a result, when the low virtual channel priority than the set value is present, the payload of the packet data to which the virtual channel is issued 4. The data transfer apparatus according to claim 3, wherein the size is corrected so as to be larger than a current value. 前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する、ことを特徴とする請求項3記載のデータ転送装置。 Said means for determining is the determined said high and low priority for each virtual channel a result, when the low virtual channel priority than the set value is present, the other virtual channels other than the virtual channel 4. The data transfer apparatus according to claim 3, wherein the payload size of the packet data to be issued is corrected so as to be smaller than a current value. 前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する、ことを特徴とする請求項3記載のデータ転送装置。 Said means for determining is the determined said high and low priority for each virtual channel a result, when the low virtual channel priority than the set value is present, the payload of the packet data to which the virtual channel is issued 4. The data transfer according to claim 3, wherein the size is larger than the current value, and the payload size of packet data issued by another virtual channel other than the virtual channel is modified to be smaller than the current value. apparatus. 前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する、ことを特徴とする請求項3ないし6の何れか一記載のデータ転送装置。 Said means for determining is the determined said high and low priority for each virtual channel a result, when the high virtual channel priority than the set value is present, the payload of the packet data to which the virtual channel is issued 7. The data transfer device according to claim 3, wherein the size is corrected so as to be smaller than a current value. 前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する、ことを特徴とする請求項3ないし6の何れか一記載のデータ転送装置。 Said means for determining is the determined said high and low priority for each virtual channel a result, when the high virtual channel priority than the set value is present, the other virtual channels other than the virtual channel 7. The data transfer device according to claim 3, wherein the payload size of the packet data to be issued is corrected so as to be larger than a current value. 前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する、ことを特徴とする請求項3ないし6の何れか一記載のデータ転送装置。 Said means for determining is the determined said high and low priority for each virtual channel a result, when the high virtual channel priority than the set value is present, the payload of the packet data to which the virtual channel is issued 7. The size of the packet data issued by another virtual channel other than the virtual channel is corrected so that the size is smaller than the current value and larger than the current value. A data transfer apparatus according to any one of the above. 前記シリアルバスは、PCI Express規格のシリアルバスである、ことを特徴とする請求項1ないし9の何れか一記載のデータ転送装置。   10. The data transfer device according to claim 1, wherein the serial bus is a PCI Express standard serial bus. 前記アービトレーション手段の仮想チャネル(Virtual Channel)毎のアルゴリズムは、前記PCI Express規格のラウンドロビン(Round Robin)、又は、ウエイテッドラウンドロビン(Weighted Round Robin)である、ことを特徴とする請求項10記載のデータ転送装置。   11. The algorithm for each virtual channel (Virtual Channel) of the arbitration means is the PCI Express standard round robin or weighted round robin. Data transfer device. 前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル(Virtual Channel)毎のアルゴリズムとして、前記PCI Express規格のラウンドロビン(Round Robin)、又は、ウエイテッドラウンドロビン(Weighted Round Robin)の何れが用いられているかを検出する手段である、ことを特徴とする請求項11記載のデータ転送装置。   The means for detecting the packet issuance frequency is an algorithm for each virtual channel of the arbitration means, either the round robin of the PCI Express standard or the weighted round robin. The data transfer apparatus according to claim 11, wherein the data transfer apparatus is means for detecting whether or not is used. 前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル(Virtual Channel)毎のアルゴリズムとして、前記PCI Express規格のウエイテッドラウンドロビン(Weighted Round Robin)が用いられていることを検出した場合には、前記PCI Express規格により規定されている仮想チャネル毎のアービトレーションテーブルを参照して前記仮想チャネル毎のパケット発行頻度を検出する、ことを特徴とする請求項12記載のデータ転送装置。   The means for detecting the packet issue frequency is when detecting that the weighted round robin of the PCI Express standard is used as an algorithm for each virtual channel of the arbitration means. 13. The data transfer apparatus according to claim 12, wherein the packet transfer frequency for each virtual channel is detected by referring to an arbitration table for each virtual channel defined by the PCI Express standard. パケットデータの転送方向が同方向で必要とするデータ転送レートの異なる複数のデバイスを有するエンジンと、このエンジンを制御駆動するコントローラと、これらのコントローラと前記エンジン中の前記デバイスとの間を1本のリンクによるシリアルバスで接続する請求項1ないし13の何れか一記載のシリアルデータ転送装置によるインタフェースと、を備えることを特徴とする画像形成システム。   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 one controller between these controllers and the devices in the engine 14. An image forming system comprising: an interface by a serial data transfer device according to claim 1 connected by a serial bus using a link of
JP2004281236A 2004-09-28 2004-09-28 Data transfer apparatus and image forming system Expired - Fee Related JP4476088B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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