JP2011040965A - データリンク層処理回路および通信回路 - Google Patents

データリンク層処理回路および通信回路 Download PDF

Info

Publication number
JP2011040965A
JP2011040965A JP2009186052A JP2009186052A JP2011040965A JP 2011040965 A JP2011040965 A JP 2011040965A JP 2009186052 A JP2009186052 A JP 2009186052A JP 2009186052 A JP2009186052 A JP 2009186052A JP 2011040965 A JP2011040965 A JP 2011040965A
Authority
JP
Japan
Prior art keywords
ack
transmission
tlp
transmission request
link layer
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.)
Pending
Application number
JP2009186052A
Other languages
English (en)
Inventor
Nobutaka Suzuki
信貴 鈴木
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009186052A priority Critical patent/JP2011040965A/ja
Publication of JP2011040965A publication Critical patent/JP2011040965A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】PCI Express規格に準拠した通信システムの送受信効率を高める。
【解決手段】データリンク層処理部113におけるACK/NAK処理部230は、送信制御部220に対してACK DLLPの送信要求を行う際に、該送信要求に対して高優先順位または低優先順位を付与可能である。送信制御部220は、ACK/NAK処理部230からの送信要求が高優先順位を有するときに、該送信要求に対応するACK DLLPの送信をTLPの送信よりも優先させる。一方、ACK/NAK処理部230からの送信要求が低優先順位を有するときに、TLPの送信間隔が予め設定された間隔閾値T以上であることを条件に、該送信要求に対応するACK DLLPが送信されるように制御を行う。
【選択図】図2

Description

本発明は、PCI Express(登録商標)に準拠した通信回路に関する。
PCI(Peripheral Component Interconnect)バスは、パーソナルコンピュータやサーバ、組込みシステムなどの各種通信機器に用いられてきた。近年、デジタルメディアの普及、ブロードバンドなどの通信網の高速化にしたがって、通信機器は大容量のデータを扱うことができるように要求され、PCIバスはシステム性能のボトルネックになっている。
このような背景において、PCI−SIG(PCI Special Interest Group)により、PCIバスより高速なシリアル転送を実現する次世代のインタフェースとして、PCI Express規格が策定された。
図14は、非特許文献1におけるFigure5−1であり、PCI Express規格で定義された階層構造を示す。図示のように、PCI Express規格では、ソフトウェア層(Software layer)、トランザクション層(Transaction layer)、データリンク層(Data Link layer)、物理層(Physical layer)が定義されている。
図14における白い矢印が示すデータリンク層に対して、リンク間で送受信されたTLP(Transaction Layer Packet)の正当性を保証する仕組みが定められている。これについて図15を参照して説明する。
図15は、非特許文献1におけるFigure5−2における一部の構成要素に対して符号と名称を追加して分かりやすくしたものである。図示のように、PCI Express準拠の通信回路のデータリンク層において、送信部分(図中Device A)は送信パケット処理部10を有し、受信部分(Device B)は、受信パケット処理部20とACK/NAK処理部30を有する。
送信パケット処理部10は、対向接続された通信回路(以下対向通信回路という)に送信するTLPにシーケンス番号とLCRCを付加して送信する。シーケンス番号は、送信順に沿った12ビットの連番IDであり、TLPの送信時に該TLPに対して生成される。LCRCは、32ビットのCRC(Cyclic Redundancy Check)であり、TLPの送信時に該TLPに対して生成される。対向通信回路のデータリンク層は、受信したTLPの正当性の確認に際して、TLPのシーケンス番号の連続性を利用してTLPの受信抜けなどが無いかのチェックをすると共に、LCRCと、自身で計算したCRCとを比較することにより誤り検出する。
送信パケット処理部10は、送信したTLPとそのシーケンス番号とを対応付けて再送バッファ(図15におけるReply Buffer)に保存する。そして、対向通信回路から該TLPの正当性を肯定するACK DLLP(ACK DLLP:Acknowledgement Data Link Layer Packet)を受信すると、当該TLPを再送バッファから削除する。一方、対向通信回路から該TLPの正当性を否定するNAK DLL(NAK DLLP:Negative Acknowledgement Data Link Layer Packet)を受信すると、再送バッファに保存された、該TLP以降の全てのTLPを再送する。
受信パケット処理部20は、対向通信回路から受信したTLPに対して、上述したようにTLPのシーケンス番号の連続性のチェックとLCRCによる誤り検出を行って、該TLPの正当性を確認する。そして、確認結果をACK/NAK処理部30に出力する。
ACK/NAK処理部30は、受信パケット処理部20からの確認結果に応じて、当該TLPについて、正当性を肯定するACK DLLPまたは正当性を否定するNAK DLLPを生成して対向通信回路に返送する。以下、ACK DLLPとNAK DLLPを合わせて返答パケットという。
なお、ACK DLLPについて、受信側の通信回路は、受信したTLP毎にACK DLLPを返送する必要がなく、最後に承認したTLPのシーケンス番号をACK DLLPに付加することにより、そのシーケンス番号が示すTLPまでの全てのTLPの正当性を承認することができる。例えば、送信側の通信回路は、シーケンス番号が「10」と「11」であるTLPを送信し、この2つのTLPを再送バッファに保存する。受信側の通信回路は、受信したこの2つのTLPについても正当性を肯定する確認結果を得た場合、シーケンス番号「11」を付加したACK DLLPを返送する。送信側の通信回路は、このACK DLLPを受信すると、再送バッファから「10」と「11」のTLPを削除する。
また、Device AとDevice Bは、それぞれMUX部を有する。送信パケット処理部10は、Device AのMUX部にTLPの送信要求をすることにより該MUX部を介してTLPを送信する。ACK/NAK処理部30は、Device BのMUX部に返答パケットの送信要求をすることにより該MUX部を介して返答パケットを送信する。
TLPと返答パケットは、同じバスで送信されるため、送信パケット処理部10とACK/NAK処理部30から同時に送信要求があった場合に、いずれの送信要求に応じた送信を先に行うかの送信調停が必要である。この送信調停は、上記MUX部を含んだ送信調停部40で行われる。
図16は、非特許文献1におけるFigure5−3における一部の構成に対して符号と名称を追加して分かりやすくしたものであり、図15の一部をより詳細に示している。図中タイマー32(ACKNAK_LAT Timer)とACK/NAK生成部34(ACK/NAK Generator)は、図15に示すDevice BのACK/NAK処理部30に備えられている。
PCI Express規格では、ACK DLLPは、対応するTLPの受信後、送信遅延時間と呼ばれる時間が経過した後に送信されるように定められている。この送信遅延時間は、タイマー32に対して設定される。タイマー32は、TLPが正常に受信され、その正当性が肯定されると、時間のカウントアップを開始する。タイマー32のカウント値が設定された送信遅延時間になると、ACK/NAK生成部34は、ACK DLLPを生成して送信要求をする。例えば、シーケンス番号が「10」であるTLPの正常受信後、タイマー32がカウントアップを開始するが、カウント値が送信遅延時間になったときに、シーケンス番号が「11」と「12」のTLPも既に正常に受信されている場合を考える。この場合、ACK/NAK生成部34は、ACK DLLPにシーケンス番号「12」を付加して送信することで、シーケンス番号が「10」、「11」、「12」である3つのTLPの正当性の承認を一度にできる。
図17は、このような従来型のPCI_Express準拠の通信回路のデータリンク層における送信パケット処理部10、受信パケット処理部20、ACK/NAK処理部30、送信調停部40の処理における課題を導出するための動作を示す図である。
図17を参照して、送信パケット処理部10と、受信パケット処理部20、ACK/NAK処理部30、送信調停部40の処理をまとめて説明する。なお、ACK/NAK処理部30と送信調停部40については、ACK DLLPが送信される場合に重点を置いて説明する。
送信パケット処理部10は、TLPの送信に際して、該TLPと送信要求を送信調停部40に出力する。
受信パケット処理部20は、受信したTLPの正当性を確認し、確認結果を示す正常/エラー情報をACK/NAK処理部30に出力する。また、正常に受信したTLPの場合には、該TLPを上位層に出力する。
受信パケット処理部20からの正常/エラー情報が「正常」を示す場合に、ACK/NAK処理部30のタイマー32は、時間のカウントアップを開始する。そして、カウント値が設定された送信遅延時間に達したときに、ACK/NAK生成部34にACK DLLPの生成要求を行う。
ACK/NAK生成部34は、タイマー32からACK DLLPの生成要求を受信すると、ACK DLLPを生成すると共に、生成したACK DLLPと、該ACK DLLPの送信要求とを送信調停部40に出力する。
送信調停部40は、送信パケット処理部10からの送信要求に応じてTLPを送信し、ACK/NAK処理部30からのACK DLLPの送信要求に応じてACK DLLPを送信する。TLPの送信要求とACK DLLPの送信要求が同時になされた場合には送信調停を行う。この場合に対して、PCI Express規格では、ACK DLLPの送信を優先することが推奨されている。そのため、PCI Expressに準拠した通信回路において、通常、図18に示すように、送信パケット処理部10からのTLPの送信要求と、ACK/NAK処理部30からのACK DLLPの送信要求とが同時にあった際に、ACK DLLPは先に送信され、TLPの送信は待たされる。
特開2007−180611号公報
Ravi Budruk,Don Anderson,Tom Shanley,"PCI Express System Architecture",Addison Wesley 刊
以上の説明から分かるように、PCI Express規格に準拠した通信回路において、TLPの送信要求と、ACK DLLPの送信要求が同時にあった際に、通常、ACK DLLPの送信が優先され、TLPの送信が待たされる。これでは、送信側の通信回路では、データ転送効率が良くない。
また、対向通信回路からTLPを正常に受信した際に、自身の送信パケット処理部10からTLPの送信要求が無くても、設定された送信遅延時間が経過しないとACK DLLPを送信しないようになっている。これでは、対向通信回路において、当該TLPが再送バッファに保持される時間が長く、対向通信回路のデータ転送効率を低下させ、ひいてはシステム全体の送受信効率を低下させる恐れがある。
なお、PCI Express規格では、タイマー32に対する設定値(送信遅延時間)に到達する前のタイミングでACK DLLPを送信してもかまわないとの記述があるが、具体的な制御方法の示唆が無い。
本発明の一つの態様は、PCI Express規格に準拠した通信回路においてデータリンク層の処理を行うデータリンク層処理回路である。このデータリンク層処理回路は、TLPとACK DLLPの送信を制御する送信制御部と、対向通信回路から正常に受信したTLPについてのACK DLLPが送信されるまでACK DLLPの送信要求を送信制御部に行う返答部を有する。
返答部は、ACK DLLPの送信要求を行う際に、該送信要求に対して高優先順位または低優先順位を付与可能である。
送信制御部は、返答部からの送信要求が高優先順位を有するときに、該送信要求に対応するACK DLLPの送信をTLPの送信よりも優先させ、返答部からの送信要求が低優先順位を有するときに、TLPの送信間隔が予め設定された所定の閾値以上であることを条件に、該送信要求に対応するACK DLLPが送信されるように制御を行う。
なお、上記態様のデータリンク層処理回路を装置や方法に置き換えて表現したもの、該データリンク層処理回路またはその一部の処理をコンピュータに実行せしめるプログラム、該データリンク層処理回路を備えた通信回路、該通信回路を備えた通信システムなども、本発明の態様としては有効である。
本発明にかかる技術によれば、PCI Expressに準拠した通信システムの送受信効率を向上させることができる。
本発明の第1の実施の形態にかかる通信システムを示す図である。 図1に示す通信システムの通信回路におけるデータリンク層処理部を示す図である。 図2に示すデータリンク層処理部のACK/NAK処理部におけるタイマーの処理を示すフローチャートである(その1)。 図2に示すデータリンク層処理部のACK/NAK処理部におけるタイマーの処理を示すフローチャートである(その2)。 図2に示すデータリンク層処理部のACK/NAK処理部におけるACK/NAK生成部の処理を示すフローチャートである(その1)。 図2に示すデータリンク層処理部のACK/NAK処理部におけるACK/NAK生成部の処理を示すフローチャートである(その2)。 図2に示すデータリンク層処理部の送信制御部がACK DLLPの送信要求に対する処理を示すフローチャートである。 本発明の第2の実施の形態にかかるデータリンク層処理部を示す図である。 図8に示すデータリンク層処理部におけるACK/NAK処理部を示す図である。 図9に示すACK/NAK処理部におけるパケット数カウンタの処理を示すフローチャートである。 図9に示すACK/NAK処理部におけるパケット総サイズカウンタの処理を示すフローチャートである。 図9に示すACK/NAK処理部におけるACK/NAK生成部の処理を示すフローチャートである(その1)。 図9に示すACK/NAK処理部におけるACK/NAK生成部の処理を示すフローチャートである(その2)。 PCI Express規格で定義される階層構造を示す図である。 データリンク層を説明するための図である。 図15の一部を詳細に示す図である。 データリンク層における送信パケット処理部、受信パケット処理部、ACK/NAK処理部、送信調停部の処理を説明するための図である。 TLPとACK DLLPの送信調停を説明するための図である。
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
<第1の実施の形態>
図1は、本発明の第1の実施の形態にかかる通信システム100を示す。通信システム100は、通信回路110と通信回路120とが対向して接続されてなり、これらの2つの通信回路は、PCI Express規格に準拠する。
通信回路110は、ソフトウェア層処理部111と、トランザクション層処理部112と、データリンク層処理部113と、物理層処理部114を備える。通信回路120は、ソフトウェア層処理部121と、トランザクション層処理部122と、データリンク層処理部123と、物理層処理部124を備える。通信回路110と通信回路120は、同様の構成を有する。
すなわち、トランザクション層処理部122はトランザクション層処理部113と、データリンク層処理部123はデータリンク層処理部113と、物理層処理部124は物理層処理部114と、それぞれ同じ回路構成であるものとする。
このため、以下では、通信回路110についてのみ説明する。また、通信回路110は、データリンク層処理部113を除き、他の各構成要素は、PCI Express規格に準拠した通常の通信回路のものと同様であるので、データリンク層処理部113についてのみ説明する。さらに、データリンク層処理部113について、PCI Express規格に準拠した通常の通信回路におけるデータリンク層処理部と同一の点に対して詳細な説明および図示を適宜省略する。
図2は、データリンク層処理部113を示す。データリンク層処理部113は、送信パケット処理部210と、送信制御部220と、ACK/NAK処理部230と、受信パケット処理部280を有する。ここで、送信制御部220は、上述の送信調停部40に対応する部分であるが、その動作は、以下に説明するように異なったものである。
送信パケット処理部210は、トランザクション層処理部112からTLPを受け取ると、該TLPと、該TLPの送信要求RDを送信制御部220に出力する。
送信パケット処理部210は、再送バッファ212を備え、再度送信要求をする必要のあるTLPをそのシーケンス番号と共に再送バッファ212に格納する。再度送信要求をする必要のあるTLPは、下記の2種類がある。
1.送信パケット処理部210が送信要求RDをしたものの、送信制御部220による後述の調停の結果、送信待ちになったTLP。
2.送信パケット処理部210の送信要求RDに応じて送信制御部220から送信されたものの、対向通信回路から、該TLPについてのACK DLLPをまだ受信していないTLP。
すなわち、送信パケット処理部210は、TLPを、対向通信回路から該TLPに対応するACK DLLPを受信するまで再送バッファ212に格納する。なお、対向通信からACK DLLPを受信すると、送信パケット処理部210は、該ACK DLLPに対応するTLP(1つまたは複数)を再送バッファ212から削除する。また、対向通信回路からNAK DLLPを受信すると、再送バッファ212に保存された、該NAK DLLPに付加されているシーケンス番号に対応するTLP以降のすべてのTLPを再送する。これらは、PCI Express規格に準拠した通常の通信回路にて行われる処理と同様である。
送信パケット処理部210は、さらに、送信間隔監視部214を備える。送信間隔監視部214は、TLPの送信間隔を監視し、それを示す間隔情報INTを送信制御部220に出力する。
対向通信回路(ここでは通信回路120)から受信したTLPは、物理層処理部114により受信され、物理層処理部114から受信パケット処理部280に入力される。受信パケット処理部280は、TLPの正当性を確認し、確認結果を示す正常/エラー情報を得て、ACK/NAK処理部230に出力する。
ACK/NAK処理部230は、正常/エラー情報に応じた返答パケット(ACK DLLPまたはNAK DLLP)を生成すると共に、返答パケットが送信されるまでその送信要求RIを送信制御部220に行う返答部として機能する。
返答パケットの1つであるACK DLLPは、正常/エラー情報が「正常」である場合に生成され、もう1つであるNAK DLLPは、正常/エラー情報が「エラー」である場合に生成される。
ACK/NAK処理部230には、タイマー232とACK/NAK生成部234を有する。タイマー232は、PCI Express規格でいうACKNAK_LATENCY TIMERであり、カウントアップの停止中に受信パケット処理部280から「正常」を示す正常/エラー情報を受信したときに時間のカウントアップを開始する。また、カウントアップ中に送信制御部220からACK DLLPを送信したことを示す信号(ACK送信済信号S)を受信すると、カウント値をクリアしてカウントアップを停止する。
ACK/NAK生成部234は、正常/エラー情報と、タイマー232のカウント値に応じて返答パケットを生成すると共に、生成した返答パケットと共に、送信制御部220に送信要求RIを出力する。本実施の形態において、ACK/NAK生成部234は、各送信要求RIに優先順位を付与している。
図3と図4は、タイマー232の停止時とカウントアップ中の処理をそれぞれ示す。図3に示すように、タイマー232は、停止中において、TLPの受信に応じて受信パケット処理部280から出力した正常/エラー情報が「正常」を示す場合にのみカウントアップを開始する(S100:Yes、S102:正常、S104)。
また、図4に示すように、タイマー232は、カウントアップ中において、送信制御部220からACK送信済信号Sを受信した場合にのみ、カウント値をクリアし、カウントアップを停止する(S110:Yes、S112)。すなわち、カウントアップ中に、他のTLPを正常に受信しても、ACK送信済信号Sを受信しない限り、停止中に正常に受信した最初のTLPについてのカウントアップを継続する(S110:No、S114)。
図5と図6は、ACK/NAK生成部234による返答パケットと送信要求RIの生成に関する処理の流れを示すフローチャートである。図5に示すように、ACK/NAK生成部234は、TLPの受信があり、該TLPについて受信パケット処理部280から出力した正常/エラー情報が「エラー」であるときに、NAK DLLPを生成して、該NAK DLLPと共に高優先順位の送信要求RIを送信制御部220に出力する(S100:エラー、S110)。
一方、受信パケット処理部280からの正常/エラー情報が「正常」であるときに、ACK/NAK生成部234は、ACK DLLP処理フローを実行する(S100:正常、S120)。
図6は、図5におけるステップS120のACK DLLP処理を示す。ACK/NAK生成部234は、正常に受信された全てのTLPについて既にACK DLLPが送信された場合には、ACK DLLPと送信要求RIの生成および送信をしない(S122:No、S122〜)。一方、既に正常に受信され、まだACK DLLPが送信されていないTLPがある場合には(S122:Yes)、ACK/NAK生成部234は、ACK DLLPと送信要求RIを生成して送信制御部220に出力する。ACK DLLPを生成する際に、ACK/NAK生成部234は、最後に受信したTLPのシーケンス番号を用いる。また、送信要求RIに対しては、ACK/NAK生成部234は、タイマー232のカウント値が予め設定された送信遅延時間C1以上であるか否かに応じて異なる優先順位を付与する。具体的には、タイマー232のカウント値が送信遅延時間C1未満である場合に、ACK/NAK生成部234は、ACK DLLPと、低優先順位の送信要求RIとを生成して送信制御部220に出力する(S124:Yes、S130)。一方、タイマー232のカウント値が送信遅延時間C1以上である場合には、ACK/NAK生成部234は、ACK DLLPと、高優先順位の送信要求RIとを生成して送信制御部220に出力する(S124:No、S140)。
すなわち、ACK/NAK生成部234は、ACK DLLPがまだ送信されていないTLPについてのACK DLLPが送信されるまで、送信要求RIを送信制御部220に出力し続ける。また、送信要求RIに対しては、タイマー232のカウント値に応じて優先順位を付与する。
送信制御部220は、送信パケット処理部210からの送信要求RDとACK/NAK生成部234からの送信要求RIに応じてTLPと返答パケットをそれぞれ送信する。また、返答パケットの送信要求RIに付与された優先順位に応じて、TLPと返答パケットのいずれの送信を優先させるかについての調停を行う。
具体的には、高優先順位が付与された送信要求RIに対して、送信制御部220は、該送信要求RIと共に送信されてきた返答パケットの送信を、TLPの送信よりも優先する。すなわち、送信制御部220は、高優先順位が付与された送信要求RIを必ず受け付けて送信する。
本実施の形態において、NAK DLLPの送信要求RIは常に高優先順位が付与されるため、送信制御部220は、NAK DLLPの送信要求RIを必ず受け付けて、NAK DLLPを送信する。
ACK DLLPの場合については、図7を参照して説明する。
図7は、送信制御部220がACK DLLPの送信要求RIを受信した際の処理を示すフローチャートである。送信制御部220は、ACK DLLPの送信要求RIを受信すると、その優先順位を確認する(S150)。高優先順位であれば、送信制御部220は、該送信要求RIを受け付けてACK DLLPを送信すると共に、ACK送信済信号SをACK/NAK処理部230に出力する(S150:高、S154)。
一方、送信要求RIに低優先順位が付与されていれば、送信制御部220は、送信パケット処理部210における送信間隔監視部214からの間隔情報INTと、予め設定された間隔閾値Tとを参照して該送信要求RIを受け付けるか否かを決定する。具体的には、間隔情報INTが示すTLPの送信間隔が予め設定された間隔閾値T以上であれば、送信制御部220は、該送信要求RIを受け付けてACK DLLPを送信すると共に、ACK送信済信号SをACK/NAK処理部230に出力する(S150:低、S152:No)。一方、間隔情報INTが示すTLPの送信間隔が間隔閾値T未満であれば(S150:低、S152:Yes)、送信制御部220は、該送信要求RIを受け付けず、ACK DLLPの送信もしない。
なお、送信制御部220に対して設定された間隔閾値Tは、ACK DLLPを送信するために必要な最短時間であることが好ましく、それ以上の値であってもよい。
このように、本実施の形態において、タイマー232のカウント値が送信遅延時間C1未満であるときに、ACK DLLPの送信要求RIに低優先順位が付与される。低優先順位の送信要求RIに対応するACK DLLPは、TLPの送信間隔が間隔閾値T以上であるときに送信される。これにより、TLPの送信を優先させながら、TLPが送信されていない期間を利用してACK DLLPを送信することができる。そのため、ACK DLLPの送信がTLPの送信に与える影響を減らすことができ、通信回路のTLPの転送効率を向上させることができる。
また、タイマー232のカウント値が間隔閾値T以上にならなくてもACK DLLPが送信されるので、対向通信回路では、再送バッファの解放が早くでき、データ転送効率が向上する。
また、タイマー232のカウント値が送信遅延時間C1以上であるときに、ACK DLLPの送信要求RIに対して高優先順位が付与され、該送信要求RIに対応するACK DLLPの送信はTLPの送信より優先される。これにより、TLPの送信間隔に関係なく、タイマー232のカウント値が送信遅延時間C1以上になれば、ACK DLLPが必ず送信されるため、PCI Expressの規定を満たすことができる。
また、NAK DLLPの送信要求RIが常に高優先順位が付与されるため、NAK DLLPの送信はTLPより優先される。これも、PCI Expressの規定を満たしている。
このように、データリンク層処理部113は、PCI Express規格に準拠した通信回路においてデータリンク層の処理を行うデータリンク層処理回路であって、TLPとACK DLLPの送信を制御する送信制御部(220)と、対向通信回路から正常に受信したTLPについてのACK DLLPが送信されるまでACK DLLPの送信要求を前記送信制御部に行う返答部(すなわちACK/NAK処理部230)とを有し、返答部は、ACK DLLPの送信要求を行う際に、該送信要求に対して高優先順位または低優先順位を付与可能であり、送信制御部は、返答部からの送信要求が高優先順位を有するときに、該送信要求に対応するACK DLLPの送信をTLPの送信よりも優先させ、返答部からの送信要求が低優先順位を有するときに、TLPの送信間隔が予め設定された所定の閾値以上であることを条件に、該送信要求に対応するACK DLLPが送信されるように制御を行うことを特徴とするデータリンク層処理回路である。
すなわち、本実施の形態の通信システム100によれば、PCI Expressの規定を守りながら、TLPの送受信効率を高めることができる。
<第2の実施の形態>
本発明の第2の実施の形態もPCI Express規格に準拠した通信回路が対向接続してなる通信システムである。これらの通信回路は、データリンク層処理部以外の各構成要素が図1に示す通信システム100における通信回路のものと同様であるため、本実施の形態について、データリンク層処理部のみを説明する。
図8は、本実施の形態の通信システムにおける通信回路のデータリンク層処理部300を示す。図8において、図2に示すデータリンク層処理部113のものと同様の構成要素について同一の符号を付与し、それらの説明を省略する。
データリンク層処理部300は、送信パケット処理部210と、送信制御部220と、ACK/NAK処理部330と、受信パケット処理部380を有する。
受信パケット処理部380は、受信したTLPの正当性を確認し、確認結果を示す正常/エラー情報を得てACK/NAK処理部330に出力する。本実施の形態において、受信パケット処理部380は、さらに、受信したTLPのサイズを示すパケットサイズ情報もACK/NAK処理部330に出力する。
ACK/NAK処理部330は、正常/エラー情報に応じた返答パケット(ACK DLLPまたはNAK DLLP)を生成すると共に、返答パケットが送信されるまでその送信要求RIを送信制御部220に行う返答部として機能する。図9を参照してACK/NAK処理部330を説明する。
図9は、ACK/NAK処理部330を示す。ACK/NAK処理部330は、タイマー232と、パケット数カウンタ334と、パケット総サイズカウンタ336と、比較器342と、比較器344と、比較器346と、論理和回路350と、ACK/NAK生成部360を備える。
タイマー232は、第1の実施の形態にかかる通信システム100のときに説明した通り、PCI Express規格でいうACKNAK_LATENCY TIMERであり、停止状態においてTLPを正常に受信したときにカウントアップを開始し、カウントアップ中においてACK送信済信号Sを受信したときにカウント値をクリアしてカウントアップを停止する。タイマー232のカウント値は、比較器342に出力される。
図10はパケット数カウンタ334の処理を示すフローチャートである。図示のように、パケット数カウンタ334は、対向通信回路から正常にTLPを受信する度に、現在のカウント値に「1」を加算する(S200:Yes、S210:正常、S212)。また、送信制御部220からACK送信済信号Sを受信する度にカウント値をクリアする(S230:Yes、S232)。パケット数カウンタ334のカウント値は、比較器344に出力される。
図11はパケット総サイズカウンタ336の処理を示すフローチャートである。図示のように、パケット総サイズカウンタ336は、対向通信回路から正常にTLPを受信する度に、受信パケット処理部380からのパケットサイズ情報が示す該TLPのサイズを現在のカウント値に加算する(S240:Yes、S250:正常、S252)。また、送信制御部220からACK送信済信号Sを受信する度にカウント値をクリアする(S260:Yes、S262)。パケット総サイズカウンタ336のカウント値は、比較器346に出力される。
比較器342は、予め設定された送信遅延時間C1と、タイマー232のカウント値とを比較し、タイマー232のカウント値が送信遅延時間C1未満であるときには論理和回路350にLowを出力する一方、タイマー232のカウント値が送信遅延時間C1以上であるときには論理和回路350にHighを出力する。
比較器344は、予め設定されたパケット数閾値C2と、パケット数カウンタ334のカウント値とを比較し、パケット数カウンタ334のカウント値がパケット数閾値C2未満であるときには論理和回路350にLowを出力する一方、パケット数カウンタ334のカウント値がパケット数閾値C2以上であるときには論理和回路350にHighを出力する。
比較器346は、予め設定された総サイズ閾値C3と、パケット総サイズカウンタ336のカウント値とを比較し、パケット総サイズカウンタ336のカウント値が総サイズ閾値C3未満であるときには論理和回路350にLowを出力する一方、パケット総サイズカウンタ336のカウント値が総サイズ閾値C3以上であるときには論理和回路350にHighを出力する。
なお、パケット数閾値C2と総サイズ閾値C3は、対向通信回路におけるTLPの再送バッファのサイズに応じて設定されたものである。
論理和回路350は、比較器342、比較器344、比較器346の出力の論理和Qを得てACK/NAK生成部360に出力する。
すなわち、タイマー232、パケット数カウンタ334、パケット総サイズカウンタ336のうちのいずれか1つのカウント値が、予め設定された相対応する閾値(C1またはC2またはC3)以上になった場合に、論理和回路350からHighである論理和Qが出力される。一方、タイマー232、パケット数カウンタ334、パケット総サイズカウンタ336のいずれのカウント値も、予め設定された相対応する閾値未満である場合に、論理和回路350からLowである論理和Qが出力される。
ACK/NAK生成部360は、正常/エラー情報と、論理和Qに応じて返答パケットを生成すると共に、生成した返答パケットと共に、送信要求RIを送信制御部220に出力する。
図12と図13は、ACK/NAK生成部360による返答パケットと送信要求RIの生成に関する処理の流れを示すフローチャートである。図12に示すように、ACK/NAK生成部360は、TLPの受信があり、該TLPについて受信パケット処理部380から出力した正常/エラー情報が「エラー」であるときに、NAK DLLPを生成して、該NAK DLLPと共に高優先順位の送信要求RIを送信制御部220に出力する(S300:エラー、S310)。
一方、受信パケット処理部380からの正常/エラー情報が「正常」であるときに、ACK/NAK生成部360は、ACK DLLP処理フローを実行する(S300:正常、S320)。
図13は、図12におけるステップS320のACK DLLP処理を示す。ACK/NAK生成部360は、正常に受信された全てのTLPについて既にACK DLLPが送信された場合には、ACK DLLPと送信要求RIの生成および送信をしない(S322:No、S322〜)。一方、既に正常に受信され、まだACK DLLPが送信されていないTLPがある場合には(S322:Yes)、ACK/NAK生成部360は、ACK DLLPと送信要求RIを生成して送信制御部220に出力する。ACK DLLPを生成する際に、ACK/NAK生成部360は、最後に受信したTLPのシーケンス番号を用いる。また、送信要求RIに対しては、ACK/NAK生成部360は、論理和回路350からの論理和QがHighであるかLowであるかに応じて異なる優先順位を付与する。具体的には、論理和QがLowである場合に、ACK/NAK生成部360は、ACK DLLPと、低優先順位の送信要求RIを生成して送信制御部220に出力する(S324:No、S330)。一方、論理和QがHighである場合には、ACK/NAK生成部360は、ACK DLLPと、高優先順位の送信要求RIを生成して送信制御部220に出力する(S324:Yes、S340)。
すなわち、ACK/NAK生成部360は、ACK DLLPがまだ送信されていないTLPについてのACK DLLPが送信されるまで、送信要求RIを送信制御部220に出力し続ける。また、送信要求RIに対しては、論理和Qに応じて優先順位を付与する。
送信制御部220の処理については、第1の実施の形態のときに説明した通りである。
本実施の形態の通信システムは、第1の実施の形態にかかる通信システム100が得られる各効果に加え、さらに以下の効果を得ることができる。
ACK/NAK生成部360は、タイマー232のカウント値が送信遅延時間C1以上になった場合以外に、パケット数カウンタ334のカウント値がパケット数閾値C2以上になったときと、パケット総サイズカウンタ336のカウント値が総サイズ閾値C3以上になったときにもACK DLLPの送信要求RIに高優先順位を付与するため、実質的には、対向通信回路におけるTLPの再送バッファの空き容量に応じてACK DLLPの送信間隔を調整している。従って、対向通信回路における、TLPの再送バッファの空き容量が少ないことに起因するTLPの送信停滞を確実に軽減することができ、ひいては通信システムの送受信効率をより高めることができる。
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば、上述した2つの実施の形態において、制御の簡単化のため、NAK DLLPの送信要求RIにも優先順位(常に高優先順位)が付与されるようになっているが、NAK DLLPの送信要求RIに優先順位を付与せず、優先順位が付与されていない送信要求RIに対しても、それに対応する返答パケット(NAK DLLP)の送信をTLPの送信より優先させるようにしてもよい。
また、第2の実施の形態において、パケット数カウンタ334とパケット総サイズカウンタ336を用いたが、いずれか1つのみを用いるようにしてもよい。
10 送信パケット処理部
20 受信パケット処理部
30 ACK/NAK処理部
32 タイマー
34 ACK/NAK生成部
40 送信調停部
100 通信システム
110 通信回路
111 ソフトウェア層処理部
112 トランザクション層処理部
113 データリンク層処理部
114 物理層処理部
120 通信回路
121 ソフトウェア層処理部
122 トランザクション層処理部
123 データリンク層処理部
124 物理層処理部
210 送信パケット処理部
212 再送バッファ
214 送信間隔監視部
220 送信制御部
230 ACK/NAK処理部
232 タイマー
234 ACK/NAK生成部
280 受信パケット処理部
300 データリンク層処理部
330 ACK/NAK処理部
334 パケット数カウンタ
336 パケット総サイズカウンタ
342 比較器
344 比較器
346 比較器
350 論理和回路
360 ACK/NAK生成部
380 受信パケット処理部

Claims (9)

  1. PCI Express規格に準拠した通信回路においてデータリンク層の処理を行うデータリンク層処理回路であって、
    TLPとACK DLLPの送信を制御する送信制御部と、
    対向通信回路から正常に受信したTLPについてのACK DLLPが送信されるまでACK DLLPの送信要求を前記送信制御部に行う返答部とを有し、
    前記返答部は、ACK DLLPの送信要求を行う際に、該送信要求に対して高優先順位または低優先順位を付与可能であり、
    前記送信制御部は、
    前記返答部からの送信要求が高優先順位を有するときに、該送信要求に対応するACK DLLPの送信をTLPの送信よりも優先させ、
    前記返答部からの送信要求が低優先順位を有するときに、TLPの送信間隔が予め設定された所定の閾値以上であることを条件に、該送信要求に対応するACK DLLPが送信されるように制御を行うことを特徴とするデータリンク層処理回路。
  2. 前記所定の閾値は、ACK DLLPの送信に必要な最短時間以上であることを特徴とする請求項1に記載のデータリンク層処理回路。
  3. 前記返答部は、
    対向通信回路から正常に受信し、ACK DLLPが送信されていないTLPのうちの最初に受信したTLPを受信してからの時間をカウントするタイマーを有し、
    前記タイマーのカウント値が予め設定された所定の送信遅延時間未満であるときに、ACK DLLPの送信要求に低優先順位を付与し、
    前記タイマーのカウント値が前記送信遅延時間以上であるときに、ACK DLLPの送信要求に高優先順位を付与することを特徴とする請求項1または2に記載のデータリンク層処理回路。
  4. 前記返答部は、
    対向通信回路から正常に受信し、ACK DLLPが送信されていないTLPの個数をカウントするパケット数カウンタをさらに備え、
    該パケット数カウンタのカウント値が、予め設定された所定のパケット数閾値以上になったときにも、ACK DLLPの送信要求に高優先順位を付与することを特徴とする請求項3に記載のデータリンク層処理回路。
  5. 前記パケット数閾値は、対向通信回路におけるTLPの再送バッファのサイズに応じて設定されたものであることを特徴とする請求項4に記載のデータリンク層処理回路。
  6. 前記返答部は、
    対向通信回路から正常に受信し、ACK DLLPが送信されていないTLPの総サイズをカウントするパケット総サイズカウンタをさらに備え、
    該パケット総サイズカウンタのカウント値が、予め設定された所定の総サイズ閾値以上になったときにも、ACK DLLPの送信要求に高優先順位を付与することを特徴とする請求項3から5のいずれか1項に記載のデータリンク層処理回路。
  7. 前記総サイズ閾値は、対向通信回路におけるTLPの再送バッファのサイズに応じて設定されたものであることを特徴とする請求項6に記載のデータリンク層処理回路。
  8. 前記返答部は、前記送信制御部に対してNAK DLLPの送信要求も行うものであり、NAK DLLPの送信要求に対して高優先順位を付与することを特徴とする請求項1から7のいずれか1項に記載のデータリンク層回路。
  9. PCI Express規格に準拠し、請求項1から8のいずれか1項に記載のデータリンク層処理回路を備えた通信回路。
JP2009186052A 2009-08-10 2009-08-10 データリンク層処理回路および通信回路 Pending JP2011040965A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009186052A JP2011040965A (ja) 2009-08-10 2009-08-10 データリンク層処理回路および通信回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009186052A JP2011040965A (ja) 2009-08-10 2009-08-10 データリンク層処理回路および通信回路

Publications (1)

Publication Number Publication Date
JP2011040965A true JP2011040965A (ja) 2011-02-24

Family

ID=43768291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009186052A Pending JP2011040965A (ja) 2009-08-10 2009-08-10 データリンク層処理回路および通信回路

Country Status (1)

Country Link
JP (1) JP2011040965A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075602B2 (en) * 2010-06-02 2015-07-07 Realtek Semiconductor Corp. Method and device of power saving for transmitting signals
JP2019133567A (ja) * 2018-02-02 2019-08-08 富士通株式会社 データ受信装置、データ送受信システム、及びデータ送受信システムの制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075602B2 (en) * 2010-06-02 2015-07-07 Realtek Semiconductor Corp. Method and device of power saving for transmitting signals
JP2019133567A (ja) * 2018-02-02 2019-08-08 富士通株式会社 データ受信装置、データ送受信システム、及びデータ送受信システムの制御方法
JP7087419B2 (ja) 2018-02-02 2022-06-21 富士通株式会社 データ受信装置、データ送受信システム、及びデータ送受信システムの制御方法

Similar Documents

Publication Publication Date Title
JP4638216B2 (ja) オンチップバス
KR100624610B1 (ko) 데이터 무결성을 관리하는 범용 입출력 아키텍쳐 프로토콜및 관련 방법
US7827325B2 (en) Device, system, and method of speculative packet transmission
US8370552B2 (en) Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
EP1750202A1 (en) Combining packets for a packetized bus
US9256564B2 (en) Techniques for improving throughput and performance of a distributed interconnect peripheral bus
JP5591729B2 (ja) トレースデータの優先度の選択
US20110145469A1 (en) Apparatus for processing peripheral component interconnect express protocol
KR101077512B1 (ko) 전송 시스템, 전송 장치 및 전송 방법
US20120328038A1 (en) Transmission system, transmission device and method for controlling transmission device
US8588234B2 (en) Data processing apparatus, method, and computer-readable storage medium for dynamically controlling a transmission interval
US7676621B2 (en) Communications bus transceiver
US20110029706A1 (en) Electronic device and method for controlling an electronic device
JP2011040965A (ja) データリンク層処理回路および通信回路
JP2009188508A (ja) データ送受信装置
CN111026694B (zh) 数据接收方法、设备,图像形成装置、系统和电子设备
KR100932968B1 (ko) 호스트 컴퓨터의 개입이 없는 toe의 tcp 재전송 처리방법
JP2018137637A (ja) 通信ネットワーク及び通信端末
Hyun et al. Design and verification for PCI express controller
JP2011061536A (ja) 通信システム及び再送バッファ容量の測定装置
JP2014230072A (ja) データ通信デバイス、データ通信装置及びデータ通信方法
JP5182417B2 (ja) 伝送データのエラーチェック装置および方法
WO2012093475A1 (ja) 情報転送装置および情報転送装置の情報転送方法
US7979766B2 (en) Architecture for a message bus