JP5151176B2 - データ通信装置、画像処理システムおよびデータ通信方法 - Google Patents

データ通信装置、画像処理システムおよびデータ通信方法 Download PDF

Info

Publication number
JP5151176B2
JP5151176B2 JP2007040628A JP2007040628A JP5151176B2 JP 5151176 B2 JP5151176 B2 JP 5151176B2 JP 2007040628 A JP2007040628 A JP 2007040628A JP 2007040628 A JP2007040628 A JP 2007040628A JP 5151176 B2 JP5151176 B2 JP 5151176B2
Authority
JP
Japan
Prior art keywords
packet
request
data
ack
transmitted
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
JP2007040628A
Other languages
English (en)
Other versions
JP2008204245A (ja
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 JP2007040628A priority Critical patent/JP5151176B2/ja
Publication of JP2008204245A publication Critical patent/JP2008204245A/ja
Application granted granted Critical
Publication of JP5151176B2 publication Critical patent/JP5151176B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Facsimiles In General (AREA)

Description

本発明は、データ通信装置、画像処理システムおよびデータ通信方法に関する。
データ通信装置は、図17に示すように、互いの送信ポートTX、受信ポートRXがシリアル伝送路で接続され、この間をリクエストパケット/データパケットならびに、リクエストパケットやデータパケットが受信されたことを送信元に応答するACK(ACKnowledgement)パケット、あるいは受信したリクエストやデータパケットにエラーが混入していて正常に受信できなかったことを伝えるNAK(Negative AcKnowledgement)パケットが相互に転送される。このようにパケットデータ転送時にエラーが発生したか否かを送信側に伝えることで、再送効率を向上させることができる。
ここで、連続したデータによって構成されるトランザクションのデータ転送例を図38に示す。図38は、パケットにエラーが発生した場合の転送例を示す模式図である。図38に示すように、送信したパケットにエラーが混入すると、相手先の装置はNAKパケットを応答してくる。NAK1(1はエラーとなったパケット番号)を受信した送信側の装置は、パケット1からデータの送信をやりなおす再送処理を実行する。図38に示す例では、パケット1を再送するのに要した時間が、エラー処理のオーバーヘッドとなる。
図39は、図38に示す再送動作の例を示すシーケンス図である。図38は、図39における装置Aの送信ポートTXと受信ポートRXのパケットのタイミングチャートに相当する。図39に示すように、パケット転送にエラーが発生した場合にNAKパケットが応答されてくることにより、ただちに再送動作が開始される。これにより、少ない時間のオーバーヘッドが発生するだけでエラーの無いデータ転送が成立するようになっている。
図40は、NAK応答パケットにもエラーが発生した場合の転送例を示す模式図である。図40に示す例では、NAK2応答パケットがエラーとなって受信できておらず、送信側の装置は次のパケット3を転送している。しかし、相手先の装置では、NAK応答したパケット2と異なるパケット番号のパケットを受信したため、再度NAK2を応答してくる。送信側の装置では、NAK2を受信することによりパケット2からの再送を開始するため、パケット2、パケット3の再送に要する時間だけのオーバーヘッドしか発生させずに、再送処理を実行することができている。図41は、図40に示す再送動作の例を示すシーケンス図である。
また、従来のデータ通信装置では、前述したように送信したパケットに対するACK/NAKパケットのいずれの応答も無い時間をタイマーで計測し、一定の時間が経っても応答が戻らないときには、自動的にパケットの再送を開始する機能も有しており、ACK/NAKパケットが何らかの原因で消失してしまった場合でも、通信がエラーによって遮断されないようになっている。
以上のように、従来のデータ通信装置では、受信したリクエストパケットやデータパケットに対して、正常に受信されたかどうかをACK/NAKパケット応答により送信元の装置に通達することによって、少ない時間のオーバーヘッドで再送の制御を実現している。
また、近年、ローカルI/Oの標準インタフェースとして登場したPCI Express等の高速シリアル通信規格においても、同様の方式が採用されている。
一方、PCI Express規格で規定された再送の仕組みに加えて、さらに高い信頼性を実現する技術が、特許文献1に開示されている。特許文献1に開示されている技術によれば、図42に示すように、PCI Expressによるデータ通信路を2重に設けることで、一方のリンクで発生したエラーをキャンセルすることにより、エラーの無い通信を確保するものである。
ところで、データ転送装置におけるエラー発生の悪影響を受けやすい装置の代表的なものとしては、画像出力装置や音声出力装置などが挙げられる。例えば、データ転送装置におけるエラー発生の影響は、紙に画像データを印刷する画像出力装置では印刷画像のノイズとして現れたり、動画を再生する画像出力装置では画像のチラツキやコマ落ちという形で現れたりする。また、音声出力装置でも同様に、エラーの影響は、音声のとぎれやノイズという形で現れることになる。この他にも、光ディスク書き込み用途のデータ転送装置などにおいても、同様の問題が発生することがある。
そこで、上述したような装置では、図43に示すように、たとえデータ転送装置でエラー発生が起きても出力装置側への影響が出ないように、あらかじめ大きなサイズの画像データバッファメモリや音声データバッファメモリを出力装置側に備える方式が多く用いられている。この場合、出力装置の必要とするデータ転送能力に対して十分大きなサイズのバッファメモリと、十分高速なデータ転送装置とを搭載することによって、ノイズなどの要因で生じたエラー再送によるデータ転送速度の乱れを吸収し、出力装置から安定した出力が得られるようにしている。
特開2004−326151号公報
上述したように、従来のデータ通信装置では、トランザクションが長く連続した大量のデータ通信によって構成される場合には、少ない時間のオーバーヘッドで再送の制御を実現している。しかしながら、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においては、再送のオーバーヘッドが大きすぎて同期転送違反が生じる場合がある。この点について具体的に説明する。図44および図45は、短い周期で一定量のデータを必ず伝送し終わらなければならない、という同期制約が強いデータ転送の例である。図44および図45に示す例では、1つのトランザクションが2つのパケットで構成され、各トランザクションはかならず許容時間内に完了しなければならない、という同期転送制約があるものとする。図44および図45に示す例は、エラー発生が無い通常のデータ転送の例であり、同期違反は発生していない状態を示している。また、図46および図47に示す例は、トランザクション1の転送途中でパケット転送にエラーが発生した例である。すなわち、図46および図47に示す例は、パケット2にエラーが発生して、NAK2が応答され、パケット2の再送が許容時間内に完了した例である。ところが、従来のデータ通信装置では、図25および図26に示すように、エラーを通知するNAK2パケットにもエラーが発生した場合、相手先の装置は次のトランザクション2の先頭パケットが届くまでは、NAK2のパケットを再送してこない。このため、送信側の装置では、ACK/NAK待ちのタイムアウトが発生するまでパケット2の再送が開始されない。この待ち時間のオーバーヘッドが通常のNAKを受信した場合の再送よりも長く、トランザクション1は許容時間内にパケット2の転送を完了できず、同期転送違反が発生する。
このような同期転送違反は、最新の高速シリアルインターフェース規格のPCI Expressにおいても、発生する可能性がある。ここで、PCI Expressの動作を説明するために、図48にMemory Writeリクエストの再送動作例、図49にPCI ExpressのMemory Readリクエストの再送動作例、図50にPCI ExpressのMemory Readリクエストに対するCompletion Dataの再送動作例を示す。図48〜図50に例示するように、PCI Expressにおける同期転送において最も再送のオーバーヘッドが大きくなる再送動作は、図49に示したMemory Readリクエストに対するエラーが発生した場合であり、このときはMemory Readリクエストに対するCompletion Dataの応答も併せて遅れるため、Memory Writeなどと比較して、大きな遅延が発生する。図22は、PCI Expressで同期転送違反となるワーストケースとして、Memory Read クエストのエラーに対するNAKパケットにエラーが発生した場合に、トランザクション1の終了時間がオーバーとなって同期転送違反が発生する例を示したものである。
短い周期で一定量のデータを必ず伝送し終わらなければならない、という同期転送の制約が強い用途の代表例としては、主走査および副走査方向の2次元配列によって構成される画像データについて、主走査方向の画素データを決められた時間周期に転送する処理を副走査方向に繰り返す同期転送を実行することが挙げられる。このような用途では、特にACK/NAKやパケットにおけるエラー混入によって、同期転送違反が発生する確率が高いという問題が生じている。
一方、図43に示したように、あらかじめ大きなサイズの画像データバッファメモリを出力装置側に備えた従来の画像データ転送装置においては、ノイズなどの要因で生じたエラー再送によるデータ転送速度の乱れがバッファメモリにおいて吸収されるため、出力装置から安定した出力が得られる。しかし、これを実現するために、通常は出力装置との同期が必要なデータサイズの数倍以上のバッファメモリを搭載する必要があり、回路実装規模を圧迫するとともにコストアップが避けられないという問題がある。また、バッファメモリによる非同期吸収を実現するためには、データ転送速度が出力装置の性能よりも高速なものを搭載しなければ、エラーが発生するたびにバッファメモリの空き容量が減っていくことになる。すなわち、高速なデータ転送装置を搭載することも、バッファメモリと同様にコストアップになる問題がある。また、画像や音声データの要求品質が高くなるに従って必要なバッファメモリとデータ転送性能も高くなり、コストアップの問題は、さらに大きくなる。
一方、特許文献1に開示されている技術によれば、PCI Expressによるデータ通信路を2重に設けることで、エラー発生に対する再送オーバーヘッドが生じにくく、同期転送違反も発生頻度も軽減されていると考えられるが、通信路を2重化することによりデータ通信装置を2つ以上組み込む必要があり、非常にコスト高となる。
本発明は、上記に鑑みてなされたものであって、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができるデータ通信装置、画像処理システムおよびデータ通信方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置において、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段と、ACK応答が無く、さらに、前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、ACK/NAKパケットを受信し、さらに当該受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行をタイムアウトが発生する迄、繰り返し指示するダミーリクエスト発行指示手段と、NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、を備える。
また、請求項2にかかる発明は、請求項1記載のデータ通信装置において、通信プロトコルとしてPCI Express規格が採用されており、前記ダミーリクエスト生成手段は、前記ダミーリクエストパケットとして、PCI Express規格におけるPostedのメッセージパケット、またはPCI Express規格におけるPostedのメモリライトリクエストを発行する。
また、請求項3にかかる発明は、請求項2記載のデータ通信装置において、前記リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである。
また、請求項4にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、既に送信した前記NAKパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続けるNAK連続送信手段、既に送信したACK(ACKnowledgement)パケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段と、を備える。
また、請求項にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、既に送信したACKパケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段を備える。
また、請求項にかかる発明は、複数のパケット群からなるトランザクションであるリクエスト/データパケットを送信するユーザーロジックと、前記ユーザーロジックから受信したリクエスト/データパケットを他の装置へ送信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置と、を備える画像処理システムにおいて、前記ユーザーロジックは、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段を備え、前記データ通信装置は、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、ACK応答が無く、さらに、前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、ACK/NAKパケットを受信し、さらに当該受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行をタイムアウトが発生する迄、繰り返し指示するダミーリクエスト発行指示手段と、NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、を備える。
また、請求項にかかる発明は、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信方法において、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶工程と、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成工程と、ACK応答が無く、さらに、前記パケット記憶工程に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、ACK/NAKパケットを受信し、さらに当該受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエストパケットの発行をタイムアウトが発生する迄、繰り返し指示するダミーリクエスト発行指示工程と、NAK応答を受信した場合、または、ACK応答がなく前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、記憶されている前記リクエスト/データパケットを再送するパケット再送工程と、を含む。
また、請求項にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、既に送信した前記NAKパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続け、既に送信したACK(ACKnowledgement)パケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続ける
また、請求項にかかる発明は、リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、既に送信したACKパケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続ける。
本発明によれば、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる、という効果を奏する。
以下に添付図面を参照して、この発明にかかるデータ通信装置、画像処理システムおよびデータ通信方法の最良な実施の形態を詳細に説明する。
[第1の実施の形態]
本発明の第1の実施の形態を図1ないし図26に基づいて説明する。以下では、PCI Expressの詳細について、[PCI Express規格の概要]〜[PCI Express規格におけるPosted]の欄で説明し、その後、本実施の形態の画像処理システムについて、[画像処理システム]の欄で説明する。
[PCI Express規格の概要]
まず、本実施の形態は高速シリアルバスの一つであるPCI Express(登録商標)を利用するものであり、本実施の形態の前提として当該PCI Express規格の概要について、「“PCI Express 規格の概要”Interface誌、July’2003 里見尚志」の一部抜粋により説明する。ここに、高速シリアルバスとは、1本の伝送路を用いてシリアル(直列)伝送により高速(100Mbps程度以上)にデータをやり取りすることができるインタフェースを意味する。
PCI Expressは、PCIの後継規格としてコンピュータ全般に通用する標準拡張バスとして規格化されたバスであり、概略的には、低電圧差動信号伝送、ポイントツーポイントで送受信独立の通信チャネル、パケット化されたスプリットトランザクション、リンク構成の違いによる高いスケーラビリティなどの特徴を持つ。
図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を介して接続されたりしたツリー構造(木構造)とされている。
これに対して、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により接続されたツリー構造(木構造)とされている。
実際に想定される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が接続されている。
即ち、PCI Expressシステムでは、従来のPCI,PCI-X,AGPといったバスがPCI Expressで置き換わり、既存のPCI/PCI-Xデバイスを接続するためにブリッジが使用される。チップセット間の接続もPCI Express接続となり、IEEE1394,Serial ATA,USB 2.0などの既存のバスはI/OハブによりPCI Expressに接続される。
[PCI Expressの構成要素]
A.ポート(Port)/レーン(Lane)/リンク(Link)
図4に物理層の構造を示す。ポートは、物理的には同一半導体内にあり、リンクを形成するトランスミッタ/レシーバの集合で、論理的にはコンポーネント・リンク間を1対1で接続(ポイント・ツー・ポイント)するインタフェースを意味する。転送レートは、例えば片方向2.5Gbpsとされている。レーンは、例えば0.8Vの差動信号ペアのセットで、送信側の信号ペア(2本)、受信側の信号ペア(2本)からなる。リンクは、2つのポートとその間を結ぶレーンの集まりであり、コンポーネント間のデュアルシンプレックス通信バスである。「xNリンク」はN本のレーンから構成され、現在の規格では、N=1,2,4,8,16,32が定義されている。図示例は、x4リンク例である。例えば、図5に示すように、デバイスA,B間を結ぶこのレーン幅Nを可変することにより、スケーラブルなバンド幅を構成することが可能となる。
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側の例)がある。
C.エンドポイント(End Point)
エンドポイント115は、タイプ00hのコンフィグレーション空間ヘッダを持つデバイス(具体的には、ブリッジ以外のデバイス)で、レガシーエンドポイントとPCI Expressエンドポイントとに分けられる。両者の大きな違いは、PCI ExpressエンドポイントはBAR(ベースアドレスレジスタ)でI/Oリソースを要求せず、このためI/Oリクエストを要求しない。また、PCI Expressエンドポイントは、ロックリクエストもサポートしていない。
D.スイッチ(Switch)
スイッチ117(又は、134)は、2つ以上のポートを結合し、ポート間でのパケットルーティングを行う。コンフィグレーションソフトウェアからは、当該スイッチは、図6に示すように、仮想PCI-PCIブリッジ141の集合体として認識される。図中、両矢印はPCI Expressリンク114(又は、126)を示し、142a〜142dはポートを示す。このうち、ポート142aはルートコンプレックスに近い方のアップストリームポートであり、ポート142b〜142dはルートコンプレックスから遠い方のダウンストリームポートである。
E.PCI Express114e−PCIブリッジ119
PCI ExpressからPCI/PCI-Xへの接続を提供する。これにより、既存のPCI/PCI-XデバイスをPCI Expressシステム上で使用することができる。
[階層アーキテクチャ]
従来のPCIのアーキテクチャは、図7−1に示すように、プロトコルとシグナリングが密接に関連する構造であり階層という考え方はなかったが、PCI Expressでは、図7−2に示すように、一般的な通信プロトコルやInfiniBandのように、独立した階層構造とされ、各層に分けて仕様が定義されている。即ち、最上位のソフトウェア151、最下位の機構(メカニカル)部152間に、トランザクション層153、データリンク層154、物理層155を持つ構造とされている。これにより、各層のモジュール性が確保され、スケーラビリティを持たせることやモジュールの再利用が可能となる。例えば、新たな信号コーディング方式や伝送媒体を採用する場合、物理層を変更するだけでデータリンク層やトランザクション層は変更せずに対応できる。
PCI Expressのアーキテクチャの中心となるのは、トランザクション層153、データリンク層154、物理層155であり、各々図8を参照して説明する以下のような役割を持つ。
A.トランザクション層153
トランザクション層153は、最上位に位置し、トランザクションレイヤパケット(TLP)の組み立て、分解機能を持つ。トランザクションレイヤパケット(TLP)は、リード/ライト、各種イベントといったトランザクションの伝達に用いられる。また、トランザクション層153は、トランザクションレイヤパケット(TLP)のためのクレジットを用いたフロー制御を行う。各層153〜155におけるトランザクションレイヤパケット(TLP)の概要を図9に示す(詳細は、後述する)。
B.データリンク層154
データリンク層154の主な役割は、エラー検出/訂正(再送)によりトランザクションレイヤパケット(TLP)のデータ完全性を保証することと、リンク管理である。データリンク層154間では、リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは、トランザクションレイヤパケット(TLP)と区別するために、データリンクレイヤパケット(DLLP)と呼ばれる。
C.物理層155
物理層155は、ドライバ、入力バッファ、パラレル−シリアル/シリアル−パラレル変換器、PLL、インピーダンス整合回路といったインタフェース動作に必要な回路を含んでいる。また、論理的な機能としてインタフェースの初期化・保守の機能を持つ。物理層155は、データリンク層154/トランザクション層153を実際のリンクで使用される信号技術から独立させる役目も持っている。
なお、PCI Expressのハードウェア構成上、エンベデッド・クロックという技術を採用しており、クロック信号はなく、クロックのタイミングはデータ信号中に埋め込まれており、受信側でデータ信号のクロス・ポイントを基にクロックを抽出する方式とされている。
[コンフィグレーション空間]
PCI Expressは、従来のPCIと同様にコンフィグレーション空間を持つが、その大きさは従来のPCIが256バイトであるのに対して、図10に示すように、4096バイトへと拡張されている。これにより、多数のデバイス固有レジスタセットを必要とするデバイス(ホストブリッジなど)に対しても、将来的に十分な空間が確保されている。PCI Expressでは、コンフィグレーション空間へのアクセスは、フラットなメモリ空間へのアクセス(コンフィグレーションリード/ライト)で行われ、バス/デバイス/機能/レジスタ番号はメモリアドレスにマップされている。
当該空間の先頭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拡張空間にアクセスできるようにする必要がある。
なお、PCI Expressとしては様々なフォームファクタ(形状)が考えられるが、具体化している例としては、アドインカード、プラグインカード(Express Card)、Mini PCI Expressなどがある。
[PCI Express のアーキテクチャの詳細]
PCI Express のアーキテクチャの中心となっているトランザクション層153、データリンク層154、物理層155について、各々詳細に説明する。
A.トランザクション層153
トランザクション層153の主な役割は、前述したように、上位のソフトウェア層151と下位のデータリンク層154との間でトランザクションレイヤパケット(TLP)の組み立てと分解を行うことである。
a.アドレス空間とトランザクションタイプ
PCI Expressでは、従来のPCIでサポートされていたメモリ空間(メモリ空間とのデータ転送用)、I/O空間(I/O空間とのデータ転送用)、コンフィグレーション空間(デバイスのコンフィグレーションとセットアップ用)に加えて、メッセージ空間(PCI Expressデバイス間のインバンドでのイベント通知や一般的なメッセージ送信(交換)用…割り込み要求や確認は、メッセージを「仮想ワイヤ」として使用することにより伝達される)が追加され、4つのアドレス空間が定義されている。各々の空間に対してトランザクションタイプが定義されている(メモリ空間、I/O空間、コンフィグレーション空間は、リード/ライト、メッセージ空間は基本(ベンダ定義含む))。
b.トランザクションレイヤパケット(TLP)
PCI Expressは、パケット単位で通信を行う。図9に示したトランザクションレイヤパケット(TLP)のフォーマットにおいて、ヘッダのヘッダ長は3DW(DWはダブルワードの略;合計12バイト)又は4DW(16バイト)で、トランザクションレイヤパケット(TLP)のフォーマット(ヘッダ長とペイロードの有無)、トランザクションタイプ、トラフィッククラス(TC)、アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は1024DW(4096バイト)である。
ECRCは、エンドツーエンドのデータ完全性を保証するためのもので、トランザクションレイヤパケット(TLP)部分の32ビットCRCである。これは、スイッチ内部などでトランザクションレイヤパケット(TLP)にエラーが発生した場合、LCRC(リンクCRC)ではエラーを検出できないためである(エラーとなったTLPでLCRCが再計算されるため)。
リクエストは、完了パケットが不要なものと必要なものとがある。
c.トラフィッククラス(TC)と仮想チャネル(VC)
上位のソフトウェアは、トラフィッククラス(TC)を使用することによりトラフィックの差別化(優先度をつける)を行うことができる。例えば、映像データをネットワークのデータよりも優先して転送する、といったことが可能となる。トラフィッククラス(TC)はTC0からTC7まで8つある。
仮想チャネル(VC:Vertual Channel)は、各々独立した仮想通信バス(同一のリンクを共用する複数の独立したデータ・フロー・バッファを使用するメカニズム)で、各々がリソース(バッファやキュー)を持ち、図11に示すように、独立したフロー制御を行う。これにより、1つの仮想チャネルのバッファが満杯の状態(full)になっても、他の仮想チャネルの転送を行うことができる。つまり、物理的には1つのリンクを仮想的な複数のチャネルに分けることで、有効に使用することができる。例えば、図11中に示すように、スイッチを経由してルートのリンクが複数のデバイスに分かれる場合、各デバイスのトラフィックの優先度を制御することができる。VC0は必須で、コストパフォーマンスのトレードオフに応じてその他の仮想チャネル(VC1〜VC7)が実装される。図11中の実線矢印は、デフォルト仮想チャネル(VC0)を示し、破線矢印はその他の仮想チャネル(VC1〜VC7)を示している。
トランザクション層内では、トラフィッククラス(TC)が仮想チャネル(VC)にマッピングされる。1つの仮想チャネル(VC)に対して1つ又は複数のトラフィッククラス(TC)をマッピングできる(仮想チャネル(VC)の数が少ない場合)。単純な例では、各トラフィッククラス(TC)から各仮想チャネル(VC)に1対1、全てのトラフィッククラス(TC)を仮想チャネルVC0にマッピングする、といったことが考えられる。TC0−VC0のマッピングは、必須/固定で、それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラス(TC)を利用することで、トランザクションの優先度を制御することが可能となる。
d.フロー制御
受信バッファのオーバーフローを避け、伝送順序を確立するためにフロー制御(FC:Flow Control)が行われる。フロー制御は、リンク間のポイントツーポイントで行われ、エンドツーエンドではない。従って、フロー制御により最終的な相手(コンプリータ)にパケットが届いたことを確認することはできない。
PCI Expressのフロー制御は、クレジット・ベースで行われる(データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバーフロー、アンダフローが発生しないメカニズム)。即ち、受信側はリンク初期化時にバッファ容量(クレジット値)を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには6種類ある。
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット(DLLP)を使用して行われる。フロー制御はトランザクションレイヤパケット(TLP)のみに適用され、データリンクレイヤパケット(DLLP)には適用されない(DLLPは常時送受信可能)。
B.データリンク層154
データリンク層154の主な役割は、前述したように、リンク上の2つのコンポーネント間での信頼性の高いトランザクションレイヤパケット(TLP)交換機能を提供することである。
a.トランザクションレイヤパケット(TLP)の扱い
トランザクション層153から受け取ったトランザクションレイヤパケット(TLP)に対しては、先頭に2バイトのシーケンス番号、末尾に4バイトのリンクCRC(LCRC)を付加して、物理層155に渡す(図9参照)。トランザクションレイヤパケット(TLP)は、リトライバッファに保管され、相手から受信確認(ACK)が届くまで再送される。トランザクションレイヤパケット(TLP)の送信に失敗が続いた場合は、リンク異常であると判断して物理層155に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層154の状態はインアクティブに遷移する。
物理層155から受け取ったトランザクションレイヤパケット(TLP)は、シーケンス番号とリンクCRC(LCRC)が検査され、正常であればトランザクション層153に渡され、エラーがあった場合は再送を要求する。
b.データリンクレイヤパケット(DLLP)
トランザクションレイヤパケット(TLP)は、物理層から送信されるときに自動的に図12に示すようなデータリンクレイヤパケット(DLLP)に分割されて各レーンに送信される。データリンク層154が生成するパケットは、データリンクレイヤパケット(DLLP)と呼ばれ、データリンク層154間でやり取りされる。データリンクレイヤパケット(DLLP)には、
・Ack/Nak:TLPの受信確認、リトライ(再送)
・InitFC1/InitFC2/UpdateFC:フロー制御の初期化とアップデート
・電源管理のためのDLLP
なる種類がある。
図12に示すように、データリンクレイヤパケット(DLLP)の長さは6バイトで、種類を示すDLLPタイプ(1バイト)、DLLPの種類で固有の情報(3バイト)、CRC(2バイト)から構成される。
C.物理層−論理サブブロック156
図8中に示す物理層155の論理サブブロック156での主な役割は、データリンク層154から受け取ったパケットを電気サブブロック157で送信できる形式に変換することである。また、物理層155を制御/管理する機能も有する。
a.データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“0”や“1”が続かないように(長い期間、クロス・ポイントが存在しない状態が続かないようにするため)、データ符号化に8B/10B変換を用いる。変換されたデータは、図13中に示すように、シリアル変換され、LSBからレーン上に送信される。ここに、レーンが複数ある場合は(図13はx4リンクの場合を例示している)、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレルバスのようにみえるが、レーン毎に独立した転送を行うので、パラレルバスで問題となるスキューが大幅に緩和される。
b.電源管理とリンクステート
リンクの消費電力を低く抑えるために、図14に示すように、L0/L0s/L1/L2というリンクステートが定義されている。
L0が通常モードで、L0sからL2へと低消費電力となるが、L0への復帰にも時間がかかるようになる。図15に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。
D.物理層−電気サブブロック157
物理層155の電気サブブロック157での主な役割は、論理サブブロック156でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック156に渡すことである。
a.ACカップリング
リンクの送信側では、ACカップリング用のコンデンサが実装される。これにより、送信側と受信側のDCコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
b.デエンファシス
PCI Expressでは、前述したように、8B/10Bエンコーディングによってできるだけ連続した“0”や“1”が続かないように処理されるが、連続した“0”や“1”が続くこともある(最大5回)。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、2つ目のビットからは差動電圧レベル(振幅)を3.5±0.5dB落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
[PCI Express規格におけるPostedリクエストとNon-Postedリクエスト]
PCI Expressにおけるリクエストは、PostedリクエストとNon-Postedリクエストの2種類に分けられる。Postedリクエストとは、リクエストの要求先からの応答が必要なリクエストである。例えば、メモリリードリクエストやコンフィグリードリクエストなどのように、リクエストに対してデータの応答が発生するリクエストが該当する。一方、Non-Postedリクエストは、リクエストの要求先からの応答が不要なリクエストである。例えば、メモリライトリクエストやメッセージリクエストのように、リクエストとともにデータを送信して要求先からの応答が発生しないリクエストが該当する。
[データ通信装置]
本実施の形態のデータ通信装置は、前述したようなPCI Express規格の高速シリアルバスに接続されるデバイスである。このようなデータ通信装置は、例えば、コピー機能、ファクシミリ(FAX)機能、プリント機能、スキャナ機能および入力画像(スキャナ機能による読み取り原稿画像やプリンタあるいはFAX機能により入力された画像)を配信する機能等を複合したいわゆるMFP(Multi Function Peripheral)と称されるデジタル複合機(画像処理システム)に備えられる。
ここで、図16は本発明の第1の実施の形態にかかるデジタル複合機に備えられるデータ通信装置1の概要を示すブロック図、図17はデータ通信装置1の接続構成を概略的に示す模式図である。
図17に示すように、データ通信装置1は、互いの送信ポートTX、受信ポートRXがシリアル伝送路で接続され、この間をリクエストパケット/データパケットならびに、リクエストパケットやデータパケットが受信されたことを送信元に応答するACK(ACKnowledgement)パケット、あるいは受信したリクエストやデータパケットにエラーが混入していて正常に受信できなかったことを伝えるNAK(Negative AcKnowledgement)パケットが相互に転送される。このようにパケットデータ転送時にエラーが発生したか否かを送信側に伝えることで、再送効率を向上させることができる。
図16に示すように、PCI Express接続されるデバイスであるデータ通信装置1は、接続相手先とのデータ通信処理を実行することによって特定の機能を実現するユーザーロジック2に接続されている。ユーザーロジック2は、トランザクション送信部3とトランザクション受信部4とによって構成されている。トランザクション送信部3は、データ通信装置1に対して、複数のパケット群からなるトランザクションであるリクエスト/データパケット(リクエスト情報およびデータ)を送信する。ここで、トランザクションとは、ある特定の機能を処理するために必要な量のデータの送信、または受信する単位を示すものとする。また、リクエスト情報とは、相手先にデータを送りたいのか(メモリライト等)、相手先のデータを受け取りたいのか(メモリリード等)、といったデータ転送の種類に関する情報を含む。データは、リクエストの種類に応じて送りたいデータを含む。本実施の形態のデータ通信装置1はPCI Express規格にしたがった通信プロトコルを用いたものであることから、リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである。
一方、データ通信装置1は、図16に示すように、送信部11と受信部21とにより構成されている。
送信部11は、図16に示すように、ダミーリクエスト生成手段として機能するダミーリクエスト生成部12と、パケット生成部13と、パケット番号生成部14と、調停部15と、パケット記憶手段として機能する再送パケットバッファ16と、パケット再送手段として機能する再送制御部17と、ACK/NAK生成部18とを備えている。
送信部11は、ユーザーロジック2から渡されたリクエスト情報やデータに対して、パケット生成部13において、パケット番号生成部14で生成されたパケット番号とCRC計算結果とを付加して、リクエスト/データパケットを生成する。
ここで、図18はリクエスト/データパケットの構成例を示す模式図である。図18に示すように、リクエスト/データパケットは、パケットを識別するためのパケット番号と、ユーザーロジック2から渡されたリクエスト情報を示すヘッダ情報、データの各フィールドと、CRC(Cyclic Redundancy Check)フィールドによって構成される。CRCフィールドの値は、CRC生成多項式と呼ばれるシフトや加算などを組み合わせた方式でパケットデータをもとに計算された値であり、このパケットに含まれるデータが正しく伝送されたか否かを判定するために用いられる。詳細は後述するが、データ通信装置1は、リクエスト/データパケットを受信した際に、このCRCフィールドの値が受け取ったパケットデータの内容に整合する場合は、ACKパケットを応答し、不整合がある場合にはNAKパケットを応答して、送信元にエラーの発生を伝える。図19は、ACK/NAKパケットの構成例を示す模式図である。図19に示すように、ACK/NAKパケットは、ACKかNAKかを示すACK/NAK情報、どのパケットに対する応答であるかを示すパケット番号、そしてACK/NAKパケット自体のエラー検出に利用するためのCRCフィールドによって構成される。
パケット生成部13で生成されたリクエスト/データパケットは、調停部15へ転送されてTXポートから相手先の装置へと送信される。このとき、パケット生成部13で生成されたリクエスト/データパケットは、再送パケットバッファ16にも転送される。すなわち、TXポートから送信されるリクエスト/データパケットと同じデータが再送パケットバッファ16に記憶されることになる。このようにして再送パケットバッファ16に記憶されるリクエスト/データパケットは、相手先からNAK応答が戻った際に再送するためのものである。
ダミーリクエスト生成部12は、ダミーリクエストパケットを生成する。このダミーリクエストパケットは、トランザクションを構成する連続したパケット群の送出に続けて送出するためのものである。ダミーリクエスト生成部12は、ダミーリクエストパケットとして、PCI Express規格におけるPostedのメッセージパケット、またはPostedのメモリライトリクエストを発行する。ここで、Postedリクエストとは、相手先の装置からのデータ応答を期待しない種類のパケットであり、メモリリードリクエストのように、Completion応答を期待するNon-Postedリクエストよりも、短時間でダミーリクエスト転送を完了することが可能となる。さらに、ダミーリクエストパケットに含むデータサイズを小さくすることで、転送オーバーヘッドをさらに軽減することができる。
上述したような再送パケットバッファ16に記憶されるリクエスト/データパケットの再送の制御は、再送制御部17によって実行される。再送制御部17はタイマー17aを備えており、パケット生成部13で生成されたリクエスト/データパケットが送信された際に時間がリセットされ、相手先からACK応答かNAK応答が戻るまでの間の時間を計測する。タイマー17aは、パケット生成部13からリクエスト/データパケットを送信した際に出力されるリセット情報によって時間0にリセットされる。
再送制御部17は、再送パケットバッファ16に、リクエスト/データパケットが記憶されている間、タイマー17aによるタイムアウトが発生していなくても、ダミーリクエスト生成部12に対してダミーリクエストパケットの発行の指示情報を伝達する。ここに、ダミーリクエスト発行指示手段が実現されている。また、再送制御部17は、受信したACK/NAKパケットにエラーが発生していた場合でも、ダミーリクエスト生成部12に対してダミーリクエストパケットの発行の指示情報を伝達する処理を行うものとする。
次に、データ通信装置1の受信部21について説明する。受信部21は、図16に示すように、パケット判別部22と、パケット受信部23と、CRCエラー判定部24と、ACK/NAK受信部25と、CRCエラー判定部26とを備えている。
受信部21は、RXポートより相手先の装置からパケットデータを受信する。受信したパケットは、パケット判別部22において、まずリクエスト/データパケットであるか、ACK/NAKパケットであるか判別される。
パケット判別部22においてリクエスト/データパケットであると判別された場合には、リクエスト/データパケットはパケット受信部23に転送され、さらにCRCエラー判定部24によりデータが壊れていないかどうかが判定される。
CRCエラー判定部24によりデータが壊れていないと判定された場合、すなわち「エラー無し」と判定された場合には、リクエスト/データパケットは、ユーザーロジック2のトランザクション受信部4にリクエスト情報とデータとして伝達される。一方、CRCエラー判定部24によりデータが壊れていると判定された場合、すなわち「エラー有り」と判定された場合には、そのリクエスト/データパケットは破棄される。
また、CRCエラー判定部24によるエラーの検出結果は、送信部11のACK/NAK生成部18に伝達される。ここで伝達される情報は、エラー発生の有無を示すエラー情報と、受信したパケット番号である。さらに、CRCエラー判定部24は、何番のパケットまで正常に受信できているかを記憶しており、次に受信することを期待しているパケット番号と異なる番号のパケットを受信した場合は、たとえCRCエラーが発生していなくとも、受信を期待しているパケット番号とともにエラー発生有りの情報を、送信部11のACK/NAK生成部18に伝達する。
送信部11のACK/NAK生成部18は、受け取った情報をもとに、「エラー無し」の場合はACKパケットを、「エラー有り」の場合はNAKパケットを生成して、調停部15に転送する。ACK/NAKのパケットは、図19に示したように、パケット番号を含み、この番号は受信部21が次に受信することを期待しているパケット番号となる。送信部11の調停部15は、TXポートに対してACK/NAKのパケットを送信する。
次に、受信部21で受け取ったパケットがパケット判別部22においてACK/NAKパケットであると判別された場合について説明する。
パケット判別部22で受け取ったパケットがACK/NAKパケットであった場合、パケットデータはACK/NAK受信部25に送られ、さらにCRCエラー判定部26へと転送される。
CRCエラー判定部26によりデータが壊れていると判定された場合、すなわち「エラー有り」と判定された場合には、そのACK/NAKパケットは破棄される。一方、CRCエラー判定部26によりデータが壊れていないと判定された場合、すなわち「エラー無し」と判定され、正常にACK/NAK情報が受け取れた場合は、CRCエラー判定部26は、送信部11の再送制御部17に対して、ACK/NAK情報(ACKを受信したか、NAKを受信したかを表す情報)と、ACK/NAKに含まれていたパケット番号を伝達する。
送信部11の再送制御部17は、受け取ったACK/NAK情報とパケット番号をもとに、再送パケットバッファ16に再送、またはクリアの制御情報を伝達して再送動作を制御する。このとき、ACK情報を受け取った場合は、そのパケット番号のパケットは相手先に正常に届いたことがわかるので、再送パケットバッファ16に記憶されていたリクエスト/データパケットをクリアする。一方、NAK情報を受け取った場合は、そのパケット番号のパケットは相手先でエラーとなったことがわかるので、再送パケットバッファ16に記憶されていたリクエスト/データパケットの再送処理を実行する。
以上のような構成によるデータ通信装置1における処理のうち、本実施の形態の特徴である送信側の送信処理について詳述する。
図20は、データ通信装置1の送信処理の流れを示すフローチャートである。図20に示すように、データ通信装置1は、パケット生成部13で生成したリクエスト/データパケット(パケット番号x)を調停部15を介して送信し(ステップS1)、再送制御部17のタイマー17aをリセットした後(ステップS2)、相手先からACK応答またはNAK応答を受信したか否かを判断する(ステップS3)。
相手先からACK応答(パケット番号=y)を受信した場合には(ステップS3のYes、ステップS4のNo、ステップS5のYes)、ACK応答のパケット番号yまで正常に届いたので、次に送信するパケット番号を“パケット番号x=y+1”とし(ステップS6)、ステップS1に戻る。
また、相手先からNAK応答(パケット番号=y)を受信した場合には(ステップS3のYes、ステップS4のNo、ステップS5のNo)、エラーで届かなかったので、次に送信するパケット番号を“パケット番号x=y”として、再送パケットバッファ16に記憶されていたパケット番号xのリクエスト/データパケットの再送処理を実行し(ステップS7)、ステップS1に戻る。
一方、相手先からACK応答またはNAK応答を受信しない状態、すなわち再送パケットバッファ16にリクエスト/データパケットが記憶されている状態で(ステップS3のNo)、タイマー17aによるタイムアウトが発生していない場合(ステップS8のNo)、または受信したACK/NAKパケットにエラーが発生していた場合には(ステップS4のYes)、パケット番号を“パケット番号x=x+1”として、ダミーリクエストパケットの発行をダミーリクエスト生成部12に指示して(ステップS9)、ステップSに戻る。
また、相手先からACK応答またはNAK応答を受信しないまま(ステップS3のNo)、タイマー17aによるタイムアウトが発生した場合には(ステップS8のYes)、再送制御部17により“パケット番号x=タイムアウトが発生したパケット番号“にして、再送パケットバッファ16に記憶されていたパケット番号xのリクエスト/データパケットの再送処理を実行して(ステップS10)、ステップS1に戻る。
図21は、Memory Read リクエストにエラーが発生して、応答されたNAKパケットにエラーが発生した場合の再送動作の例を示すシーケンス図である。
従来のPCI Express規格を用いたデータ通信装置では、ダミーリクエストパケットが発行されないため、図22に示すような同期転送違反が発生していたが、本実施の形態のデータ通信装置1によれば、Memory Read リクエスト(Memory Read2)に続けてダミーリクエストパケットとしてPostedリクエストパケット(パケット3)が送信されるため、相手先のデータ通信装置は受信を期待しているMemory Read リクエスト(Memory Read2)以外のパケットが届いたことによって、NAK2をただちに再送してくる。ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してMemory Read リクエスト(Memory Read2)がエラーとなったことが検出できるため、送信側のMemory Read リクエスト(Memory Read2)からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。PCI Express規格の通信プロトコルにも準拠しており、他のデータ通信装置との接続性も確保した上で、高速伝送性能と併せ、強い同期制約を必要とする高速データ転送に用いることが可能となる。
このように本実施の形態によれば、リクエスト/データパケットの送信が開始されてから次のリクエスト/データパケットの送信が開始されるまでの間、データ応答を期待しないダミーリクエストパケットを連続して送信することにより、同期転送時の再送オーバーヘッドを軽減することができるので、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる。
なお、本実施の形態においては、ダミーリクエスト生成部12をデータ通信装置1の送信部11に備えるようにしたが、これに限るものではなく、データ通信装置1の外に位置するユーザーロジック2のトランザクション送信部3に実装して、同様の処理を実現することも可能である。
また、本実施の形態のデータ通信装置は、PCI Express規格の高速シリアルバスに接続されるデバイスとしたが、これに限るものではなく、一般的なシリアル伝送路に接続されるデバイスに対しても適用可能である。このような構成のデータ通信装置1による同期転送の例を図23および図24に示す。この例では、パケット2にエラーが混入して応答されてきたNAK2のパケットにエラーが混入したケースである。従来のデータ通信装置では、図25および図26に示すように、エラーを通知するNAK2パケットにもエラーが発生した場合、相手先の装置は次のトランザクション2の先頭パケットが届くまでは、NAK2のパケットを再送してこない。このため、送信側の装置では、ACK/NAK待ちのタイムアウトが発生するまでパケット2の再送が開始されない。この待ち時間のオーバーヘッドが通常のNAKを受信した場合の再送よりも長く、トランザクション1は許容時間内にパケット2の転送を完了できず、同期転送違反が発生したものである。図23および図24の例に示すとおり、本実施の形態のデータ通信装置では、パケット2に続けて、ダミーパケット3を続けて送信するため、相手先のデータ通信装置は受信を期待しているパケット2以外のパケットが届いたことによって、NAK2をただちに再送してくる。ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してパケット2がエラーとなったことが検出できるため、送信側のパケット2からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。もし、図23および図24におけるパケット2にエラーが発生せず、受信側からACK2が応答され、このACK2にエラーが混入したとしても、ダミーパケット3に対するACK3がただちに応答されてくるため、送信側でACK/NAK待ちタイマーのタイムアウトが発生せず、同期転送違反は発生しなくなる。
なお、本実施の形態においては、MFPと称されるデジタル複合機の内部データ通信におけるチップ間、ボード間のデータ通信装置に適用した例について説明したが、PC内部モジュール間、オプションボード間の通信、有線LANや無線LANなどの機器間通信、システム間通信におけるデータ通信装置などにも適用可能である。
[第2の実施の形態]
次に、本発明の第2の実施の形態を図27ないし図31に基づいて説明する。なお、前述した第1の実施の形態と同じ部分は同じ符号で示し説明も省略する。本発明の第2の実施の形態は、リクエストを送信する側のデータ通信装置ではなく、リクエストを受信する側のデータ通信装置に関するものである。
図27は、本発明の第2の実施の形態にかかるデジタル複合機に備えられるデータ通信装置1の概要を示すブロック図である。図27に示すように、本実施の形態のデータ通信装置1は、第1の実施の形態において送信部11に備えていたダミーリクエスト生成部12に代えて、NAK連続送信手段およびACK連続送信手段として機能するACK/NAK連続生成部19を備えている。
ACK/NAK連続生成部19は、受信部21がACK/NAK生成部18に伝達するエラー情報とパケット番号を受け取り、NAKパケットを送信したパケット番号のパケットが正常に受信できるまでの間、連続して同じ番号のNAKパケットを調停部15に送り、相手先の装置へと応答し続ける処理を行う。さらに、ACK/NAK連続生成部19は、ACKパケットを送信したパケット番号のパケットが受信されるまでの間、連続して同じ番号のACKパケットを調停部15に送り、相手先の装置へと応答し続ける処理も行う。
以上のような構成によるデータ通信装置1における処理のうち、本実施の形態の特徴である受信側の受信処理について詳述する。
図28は、データ通信装置1の受信処理の流れを示すフローチャートである。図28に示すように、データ通信装置1は、パケット判別部22においてリクエスト/データパケットであると判別されたパケット番号xをパケット受信部23で受信すると(ステップS21のYes)、パケットx(パケット番号=x)を確認した後(ステップS22)、CRCエラー判定部24に転送してデータが壊れていないかどうかを判定する(ステップS23)。
データが壊れていないと判定された場合、すなわち「エラー無し」と判定された場合(ステップS23のNo)、かつ、リクエスト/データパケットが受信完了していない場合には(ステップS31のNo)、ACK/NAK生成部18は、ACKパケット(ACKx)を応答して(ステップS24)、ステップS21に戻る。
加えて、ACKパケットを送信したパケット番号のリクエスト/データパケットが受信されるまでの間は(ステップS21のNo、ステップS31のNo)、ACK/NAK連続生成部19は、ACKパケット(ACKx)を応答し続ける(ステップS24)。ACKパケットを送信したパケット番号のリクエスト/データパケットが受信されると(ステップS31のYes)、処理を終了する。
一方、データが壊れていると判定された場合、すなわち「エラー有り」と判定された場合には(ステップS23のYes)、ACK/NAK生成部18およびACK/NAK連続生成部19はNAKパケット(NAKx)を応答する(ステップS25)。
ACK/NAK連続生成部19は、パケット判別部22においてリクエスト/データパケットをパケット受信部23で受信し(ステップS26のYes)、「エラー無し」と判定され(ステップS27のNo)、パケットx(パケット番号=x)であると判定されるまで(ステップS28のYes)、NAKパケット(NAKx)を応答し続ける(ステップS29)。
一方、パケットx(パケット番号=x)であると判定された場合には(ステップS28のYes)、ACK/NAK生成部18は、ACKパケット(ACKx)を応答して(ステップS30)、ステップS21に戻る。
図29は、Memory Read リクエストにエラーが発生して、応答されたNAKパケットにエラーが発生した場合の再送動作の例を示すシーケンス図である。
従来のPCI Express規格を用いたデータ通信装置では、図22に示すような同期転送違反が発生していたが、本実施の形態のデータ通信装置1によれば、NAK2を応答したパケット番号と同じパケット番号のMemory Read リクエスト(Memory Read2)を正常に受信するまで、連続してNAK2を応答し続ける。送信側では、ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してMemory Read リクエスト(Memory Read2)がエラーとなったことが検出できるため、送信側のMemory Read リクエスト(Memory Read2)からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。
また、図29の例において、もしPCI Expressのリードリクエストにエラーが発生せず、ACKパケットが応答され、ACKパケットがエラーとなったとしても、本実施の形態のデータ通信装置1では、ACKリクエストパケットが連続して応答されるので、送信側では同期転送違反が発生しなくなる。PCI Express規格では、重複したパケット番号のACK/NAKパケットやすでに再送動作を開始したパケット番号のACK/NAKパケットを受信しても、受信部21において破棄されるので、他のデータ通信装置との接続性も確保した上で、高速伝送性能と併せ、強い同期制約を必要とする高速データ転送に用いることが可能となる。
このように本実施の形態によれば、NAKパケットを送信したパケット番号のリクエスト/データパケットが正常に受信される迄、リクエスト/データパケットのパケット番号と同じ番号のNAKパケットを繰り返し送信し続けることにより、同期転送時の再送オーバーヘッドを軽減することができるので、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる。
また、ACKパケットを送信したパケット番号のリクエスト/データパケットが受信される迄、リクエスト/データパケットのパケット番号と同じ番号のACKパケットを繰り返し送信し続けることにより、同期転送時の再送オーバーヘッドを軽減することができるので、短い周期で一定量のデータを必ず伝送し終わらなければならない、というような同期転送の制約が強い用途においても、低コスト、かつ、少ない再送オーバーヘッドでエラー発生時の処理を効率良く処理することができる。
また、本実施の形態のデータ通信装置は、PCI Express規格の高速シリアルバスに接続されるデバイスとしたが、これに限るものではなく、一般的なシリアル伝送路に接続されるデバイスに対しても適用可能である。このような構成のデータ通信装置1による同期転送の例を図30および図31に示す。この例では、パケット2にエラーが混入して、応答されてきたNAK2のパケットにエラーが混入したケースである。従来のデータ通信装置では、図25および図26に示すように、エラーを通知するNAK2パケットにもエラーが発生した場合、相手先の装置は次のトランザクション2の先頭パケットが届くまでは、NAK2のパケットを再送してこない。このため、送信側の装置では、ACK/NAK待ちのタイムアウトが発生するまでパケット2の再送が開始されない。この待ち時間のオーバーヘッドが通常のNAKを受信した場合の再送よりも長く、トランザクション1は許容時間内にパケット2の転送を完了できず、同期転送違反が発生したものである。図30および図31の例に示すとおり、本実施の形態のデータ通信装置では、NAKを応答したパケット番号と同じパケット番号(この例では2)のパケットを正常に受信するまで、連続してNAK2を応答し続ける。送信側では、ACK/NAK待ちタイマーのタイムアウト前にNAK2を受信してパケット2がエラーとなったことが検出できるため、送信側のパケット2からの再送動作の開始時間が早くなり、同期転送違反が発生しなくなる。なお、図30および図31の例は、パケット2にエラーが混入して、再送が必要なケースであったが、もしパケット2にエラーが混入せずに受信側に届き、応答されたACK2にエラーが発生したとしても、受信側は連続してトランザクション3のパケット3を受信するまでACK2を送信しつづけるため、送信側ではタイムアウトが発生しなくなり、再送のオーバーヘッドも発生しない。
[実施例]
ここで、上述した第1の実施の形態または第2の実施の形態で示したデータ通信装置1を用いたデータ転送例について説明する。
本実施例においては、図32に示すような主走査および副走査方向の2次元配列によって構成される画像データについて、主走査方向の画素データを決められた時間周期に転送する処理を副走査方向に繰り返す同期転送を実行するものである。
図32に示すような画像データのデータ転送は、図33に示すように、複数の画素データを1つのパケットデータとして主走査方向の1ラインについて複数パケット群から構成されるトランザクションを、副走査方向に画像が走査される速度に同期させて転送させることになる。
図32に示すような画像データのデータ転送を行う例についてMFPと称されるデジタル複合機について検討してみると、図34に示すように、データ通信装置1およびラインバッファメモリ51を備えた画像読み取り装置、画像印刷装置、画像表示装置などの画像入出力装置50と、デジタル複合機の制御主体となるものであってデータ通信装置1を備えるコントローラ60とにおける、PCI Express等の高速通信路を介したデータ転送が予想される。画像データを保持するメモリ61は、コントローラ60のみに設けられている。このような構成により、画像入出力装置50とコントローラ60との間では、1ラインごとのデータ通信を画像の入出力速度に同期して転送する処理が実行される。
図35に示すように、従来のデータ通信装置では、1ラインの最後に転送されるパケットにエラーが発生して応答されるNAKパケット(またはエラー発生が無かった際に応答されるACKパケット)がエラーとなったケースでは、ライン同期転送違反のエラーが発生していた。
これに対して、第1の実施の形態で示したデータ通信装置1においては、図36に示すように、1ラインの最後のデータパケットの転送が終了した後も、ダミーリクエストパケットが送信されるため、1ラインの最後のデータパケットのパケット番号のついたNAKパケット(または最後に送ったパケットのパケット番号のついたACKパケット)をただちに受信することができるため、再送開始時間が早まり、同期転送違反が発生しなくなる。
また、第2の実施の形態で示したデータ通信装置1においては、図37に示すように、1ラインの最後のデータパケットのパケット番号のついたACKまたはNAKパケットが連続して応答されてくるので、再送開始時間が早まり、同期転送違反が発生しなくなる。
すなわち、本実施の形態によれば、特に大量のデータを短い周期で同期転送しなければならない高速画像データ転送用途においても、少ない容量のラインメモリのみを設けることで、エラー発生による同期違反を防ぐことができる。大きな容量のバッファメモリと、より高速なデータ転送装置の搭載が必要だった、従来の画像データ転送装置に対して、大幅に少ないコストで、高い性能を実現することができる。
既存PCIシステムの構成例を示すブロック図である。 PCI Expressシステムの構成例を示すブロック図である。 デスクトップ/モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。 x4の場合の物理層の構造例を示す模式図である。 デバイス間のレーン接続例を示す模式図である。 スイッチの論理的構造例を示すブロック図である。 既存のPCIのアーキテクチャを示すブロック図である。 PCI Expressのアーキテクチャを示すブロック図である。 PCI Expressの階層構造を示すブロック図である。 トランザクションレイヤパケットのフォーマット例を示す説明図である。 PCI Expressのコンフィグレーション空間を示す説明図である。 仮想チャネルの概念を説明するための模式図である。 データリンクレイヤパケットのフォーマット例を示す説明図である。 x4リンクでのバイトストライピング例を示す模式図である。 L0/L0s/L1/L2というリンクステートの定義について説明する説明図である。 アクティブステート電源管理の制御例を示すタイムチャートである。 本発明の第1の実施の形態にかかるデジタル複合機に備えられるデータ通信装置の概要を示すブロック図である。 データ通信装置の接続構成を概略的に示す模式図である。 リクエスト/データパケットの構成例を示す模式図である。 ACK/NAKパケットの構成例を示す模式図である。 データ通信装置における送信処理の流れを示すフローチャートである。 再送動作の例を示すシーケンス図である。 従来の再送動作の例を示すシーケンス図である。 データ通信装置による同期転送の例を示す模式図である。 再送動作の例を示すシーケンス図である。 従来のデータ通信装置による同期転送の例を示す模式図である。 従来の再送動作の例を示すシーケンス図である。 本発明の第2の実施の形態にかかるデジタル複合機に備えられるデータ通信装置の概要を示すブロック図である。 データ通信装置の受信処理の流れを示すフローチャートである。 再送動作の例を示すシーケンス図である。 データ通信装置による同期転送の例を示す模式図である。 再送動作の例を示すシーケンス図である。 主走査および副走査方向の2次元配列によって構成される画像データを示す模式図である。 画像データ転送におけるトランザクションを示す模式図である。 画像データのデータ転送を行う例を示すブロック図である。 従来のデータ通信装置による同期転送の例を示す模式図である。 データ通信装置による同期転送の例を示す模式図である。 データ通信装置による同期転送の例を示す模式図である。 パケットにエラーが発生した場合の転送例を示す模式図である。 図38に示す再送動作の例を示すシーケンス図である。 NAK応答パケットにもエラーが発生した場合の転送例を示す模式図である。 図40に示す再送動作の例を示すシーケンス図である。 PCI Expressによるデータ通信路を2重に設けた従来のデータ通信装置を示すブロック図である。 大きなサイズのバッファメモリを出力装置側に備える従来のデータ通信装置を示すブロック図である。 同期転送の例を示す模式図である。 図44に示す転送動作の例を示すシーケンス図である。 パケットにエラーが発生した場合の転送例を示す模式図である。 図46に示す再送動作の例を示すシーケンス図である。 PCI ExpressにおけるMemory Writeリクエストの再送動作例を示すシーケンス図である。 PCI ExpressにおけるMemory Readリクエストの再送動作例を示すシーケンス図である。 PCI ExpressのMemory Readリクエストに対するCompletion Dataの再送動作例を示すシーケンス図である。
符号の説明
1 データ通信装置
2 ユーザーロジック
12 ダミーリクエスト生成手段
16 パケット記憶手段
17 パケット再送手段、ダミーリクエスト発行指示手段
19 NAK連続送信手段、ACK連続送信手段

Claims (9)

  1. 送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置において、
    送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、
    データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段と、
    ACK応答が無く、さらに、前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、ACK/NAKパケットを受信し、さらに当該受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行をタイムアウトが発生する迄、繰り返し指示するダミーリクエスト発行指示手段と、
    NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、
    を備えることを特徴とするデータ通信装置。
  2. 通信プロトコルとしてPCI Express規格が採用されており、前記ダミーリクエスト生成手段は、前記ダミーリクエストパケットとして、PCI Express規格におけるPostedのメッセージパケット、またはPCI Express規格におけるPostedのメモリライトリクエストを発行する、
    ことを特徴とする請求項1記載のデータ通信装置。
  3. 前記リクエスト/データパケットは、メモリリードリクエスト、メモリリードに対するデータ転送応答(コンプリーション)、メモリライトリクエストのいずれか、またはそれぞれの組み合わせにより構成されたものである、
    ことを特徴とする請求項2記載のデータ通信装置。
  4. リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、
    NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、既に送信した前記NAKパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続けるNAK連続送信手段と
    既に送信したACK(ACKnowledgement)パケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段と、
    を備える、
    ことを特徴とするデータ通信装置。
  5. リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信装置において、
    既に送信したACKパケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続けるACK連続送信手段を備える、
    ことを特徴とするデータ通信装置。
  6. 複数のパケット群からなるトランザクションであるリクエスト/データパケットを送信するユーザーロジックと、
    前記ユーザーロジックから受信したリクエスト/データパケットを他の装置へ送信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信装置と、を備える画像処理システムにおいて、
    前記ユーザーロジックは、データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成手段を備え、
    前記データ通信装置は、送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶手段と、ACK応答が無く、さらに、前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、ACK/NAKパケットを受信し、さらに当該受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエスト生成手段に対して前記ダミーリクエストパケットの発行をタイムアウトが発生する迄、繰り返し指示するダミーリクエスト発行指示手段と、NAK応答を受信した場合、または、ACK応答がなく前記パケット記憶手段に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、前記パケット記憶手段に記憶されている前記リクエスト/データパケットを再送するパケット再送手段と、
    を備えることを特徴とする画像処理システム。
  7. 送信したリクエスト/データパケットが送信先の装置で正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを送信先の装置から受信し、送信したリクエスト/データパケットが送信先の装置で正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを送信先の装置から受信するデータ通信方法において、
    送信した前記リクエスト/データパケットに対するACK応答があるまで当該リクエスト/データパケットを記憶するパケット記憶工程と、
    データ応答を期待しないダミーリクエストパケットを生成するダミーリクエスト生成工程と、
    ACK応答が無く、さらに、前記パケット記憶工程に前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生していない場合、または、ACK/NAKパケットを受信し、さらに当該受信したACK/NAKパケットにエラーが発生していた場合には、前記ダミーリクエストパケットの発行をタイムアウトが発生する迄、繰り返し指示するダミーリクエスト発行指示工程と、
    NAK応答を受信した場合、または、ACK応答がなく前記リクエスト/データパケットが記憶されている状態でタイムアウトが発生した場合には、記憶されている前記リクエスト/データパケットを再送するパケット再送工程と、
    を含むことを特徴とするデータ通信方法。
  8. リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、
    NAKパケットを送信したパケット番号の前記リクエスト/データパケットが正常に受信される迄、既に送信した前記NAKパケットのパケット番号と同じ番号の前記NAKパケットを繰り返し送信し続け、
    既に送信したACK(ACKnowledgement)パケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続ける、
    ことを特徴とするデータ通信方法。
  9. リクエスト/データパケットを正常に受信できた場合には、その旨を示すACK(ACKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信し、前記リクエスト/データパケットが正常に受信できなかった場合には、その旨を示すNAK(Negative AcKnowledgement)パケットを前記リクエスト/データパケットを送信してきた装置に対して送信するデータ通信方法において、
    既に送信したACKパケットに応じたパケット番号の前記リクエスト/データパケットが受信される迄、前記既に送信したACKパケットのパケット番号と同じ番号の前記ACKパケットを繰り返し送信し続ける、
    ことを特徴とするデータ通信方法。
JP2007040628A 2007-02-21 2007-02-21 データ通信装置、画像処理システムおよびデータ通信方法 Expired - Fee Related JP5151176B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007040628A JP5151176B2 (ja) 2007-02-21 2007-02-21 データ通信装置、画像処理システムおよびデータ通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007040628A JP5151176B2 (ja) 2007-02-21 2007-02-21 データ通信装置、画像処理システムおよびデータ通信方法

Publications (2)

Publication Number Publication Date
JP2008204245A JP2008204245A (ja) 2008-09-04
JP5151176B2 true JP5151176B2 (ja) 2013-02-27

Family

ID=39781677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007040628A Expired - Fee Related JP5151176B2 (ja) 2007-02-21 2007-02-21 データ通信装置、画像処理システムおよびデータ通信方法

Country Status (1)

Country Link
JP (1) JP5151176B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5151500B2 (ja) * 2008-01-18 2013-02-27 日本電気株式会社 コンピュータシステム、障害処理方法および障害処理プログラム
JP5760723B2 (ja) * 2010-08-19 2015-08-12 株式会社リコー 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP5736847B2 (ja) * 2011-03-02 2015-06-17 株式会社リコー 画像形成装置およびその制御方法
JP6734031B2 (ja) * 2015-10-05 2020-08-05 Necプラットフォームズ株式会社 送信装置、送受信システム、送信方法およびプログラム
JP6298030B2 (ja) 2015-10-28 2018-03-20 ファナック株式会社 低レイテンシと高スループットのデータ通信を両立するモータ制御装置
JP6578992B2 (ja) * 2016-03-02 2019-09-25 富士通株式会社 制御回路、情報処理装置、および情報処理装置の制御方法
WO2018131550A1 (ja) 2017-01-13 2018-07-19 日本電気株式会社 コネクション管理ユニット、およびコネクション管理方法

Also Published As

Publication number Publication date
JP2008204245A (ja) 2008-09-04

Similar Documents

Publication Publication Date Title
EP1681817B1 (en) Communication apparatus, electronic apparatus, imaging apparatus
JP5108261B2 (ja) 情報処理装置およびデータ通信装置
JP4928732B2 (ja) データ転送システム及び電子機器
JP4704050B2 (ja) データ転送システム及び電子機器
US7698484B2 (en) Information processor configured to detect available space in a storage in another information processor
US7755791B2 (en) Image processing apparatus and image forming apparatus
JP4564855B2 (ja) データ転送システム及び電子機器
JP2007087082A (ja) 情報処理装置およびオプションデバイス共有方法
JP5151176B2 (ja) データ通信装置、画像処理システムおよびデータ通信方法
JP2008172727A (ja) 制御装置および画像処理システム
JP4308680B2 (ja) 画像形成装置
JP4287325B2 (ja) 画像システム
JP4564740B2 (ja) 画像機器システム
JP4928715B2 (ja) シリアルデータ転送装置、画像出力装置、画像入力装置及び画像形成装置
JP4828899B2 (ja) 情報処理装置および記憶デバイス共有方法
JP2005332372A (ja) 画像処理装置及び画像形成装置
JP2007226494A (ja) データ転送システム
JP2005346629A (ja) 画像処理装置
JP4824422B2 (ja) 制御装置、画像処理システムおよびデータ転送経路切替方法
JP4690828B2 (ja) 情報処理システム、プログラムおよびパケット通信方法
JP2006113798A (ja) データ転送システム、受信バッファ装置、データ転送システムの仕様設定方法及び画像形成システム
JP2007282187A (ja) 情報処理装置、情報処理システムおよびデータ通信方法
JP4607706B2 (ja) 画像処理システム、プログラムおよびジョブ実行方法
JP2005332316A (ja) データ分配装置、データ転送装置及び画像処理装置
JP4271558B2 (ja) データ転送システム、画像形成システム及びデータ転送用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120905

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120912

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: 20121106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees