JP2011151675A - 受信回路、情報処理装置、およびバッファ制御方法 - Google Patents

受信回路、情報処理装置、およびバッファ制御方法 Download PDF

Info

Publication number
JP2011151675A
JP2011151675A JP2010012341A JP2010012341A JP2011151675A JP 2011151675 A JP2011151675 A JP 2011151675A JP 2010012341 A JP2010012341 A JP 2010012341A JP 2010012341 A JP2010012341 A JP 2010012341A JP 2011151675 A JP2011151675 A JP 2011151675A
Authority
JP
Japan
Prior art keywords
signal
lane
lanes
address
circuit
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.)
Granted
Application number
JP2010012341A
Other languages
English (en)
Other versions
JP5544896B2 (ja
Inventor
Ryuji Iwatsuki
竜二 岩月
Kazumi Hayasaka
和美 早坂
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010012341A priority Critical patent/JP5544896B2/ja
Priority to EP11150819.8A priority patent/EP2355431B1/en
Priority to KR1020110004051A priority patent/KR101229840B1/ko
Priority to US13/009,661 priority patent/US9001954B2/en
Publication of JP2011151675A publication Critical patent/JP2011151675A/ja
Application granted granted Critical
Publication of JP5544896B2 publication Critical patent/JP5544896B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/08Speed or phase control by synchronisation signals the synchronisation signals recurring cyclically
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】複数レーンのシリアル通信を行う回路において、低レイテンシーの受信回路を提供すること
【解決手段】受信回路は、レーンごとに設けられた複数のバッファと、レーン間のスキューを検出し、該レーン間のスキューを無くすように前記バッファのリードアドレスを調節する第1の信号およびレーン間のスキューの調整を行うことを示すデスキュー信号を出力するマルチレーン制御回路と、前記デスキュー信号に応じて、前記第1の信号を前記バッファに出力する、レーンごとに設けられた複数のアドレス制御回路と、を備える。
【選択図】図10

Description

本発明は、複数レーンでシリアル通信を行う受信回路および該受信回路を備える情報処理装置に関する。
ポート間を複数レーンでシリアル通信を行う場合、接続元ポートの送信回路は送信データをレーン数に分割し、分割したデータをそれぞれのレーンで送信する。接続先ポートの受信回路は、それぞれのレーンで受信したデータを復元する。
図1は、従来の受信回路の構成図である。
受信回路11は、レーンブロック21−m(m=0〜7)およびデスキュー処理部31を備える。
ここではレーン数を8とし、レーンmは、レーンブロック21−mと接続している。
レーンブロック21−0は、DESerializer41、Gear-Box42、10bit境界検出回路43、エラスティックバッファ44、クロック周波数差補償パターン検出回路45、および8B10B変換回路46を備える。
レーンブロック21−1〜21−7は、レーンブロック21−0と同様の構成を持つ。
DESerializer41は受信した1ビット幅のシリアルデータを4ビット幅のパラレルデータ(DATA_4BIT51)に変換する。また、受信シリアルデータよりクロックリカバリして、受信クロック(RX_CLOCK_DIVIDE_4, RX_CLOCK_DIVIDE_10)を生成する。
RX_CLOCK_DIVIDE_4はシリアルデータ転送速度に対して1/4の周波数クロックであり、RX_CLOCK_DIVIDE_10は1/10の周波数クロックである。例えば、シリアルデータ転送速度が2.5GT/sの場合、RX_CLOCK_DIVIDE_4 = 625MHz, RX_CLOCK_DIVIDE_10 = 250MHzとなる。
シリアルデータ転送は一般的に良く知られた8B10B変換データで行う。8B10B変換では、送信回路で8ビットのデータ(8b-code)を10ビットのデータ(10b-code)に変換して、送信する。受信回路では、10b-codeを8b-codeに復元する。また、10b-codeをシンボルと呼ぶ。
Gear-Box42はFIFOであり、RX_CLOCK_DIVIDE_4クロックで4ビット幅のDATA_4BIT51を書き込み、RX_CLOCK_DIVIDE_10クロックで10ビット幅のDATA_10BIT_UNALIGNMENT52を読み出す。
10ビット境界検出回路43は境界パターンを検出して、DATA_10BIT_UNALIGNMENT52を10b-code単位の10ビット境界データ(DATA_10BIT_ALIGNMENT53)に調節し、DATA_10BIT_ALIGNMENT53をエラスティックバッファ44に出力する。10ビット境界パターンはシリアルバス初期化時に転送されるトレーニングパターンに含まれる。
トレーニングパターンは複数のシンボルから構成され、送信回路はそれぞれのレーンで同じタイミングでトレーニングパターンを送信する。
エラスティックバッファ44は、接続装置間のクロック周波数差を吸収するFIFOである。ライトアドレスは1サイクル毎に1ずつインクリメントされる。リードアドレスは通常時に1サイクルごとに1ずつインクリメントされるが、クロック周波数差補償パターン検出時にクロック周波数差補償パターン検出回路45からの信号に基づいて、ホールド、1インクリメント、もしくは、2インクリメントされる。
クロック周波数差補償パターンは複数のシンボルから構成され、シリアルバス初期化時および通常動作時に、それぞれのレーンで同じタイミングで送信される。
クロック周波数差補償パターン検出回路45は、エラスティックバッファ44のリードアドレスを調節する信号を出力する。
クロック周波数差補償パターンは接続装置間のクロック周波数差を補償するために、シリアルバスで定期的に送信される。例えば、接続装置間のクロック周波数許容誤差を±300ppm以内にする場合、送信回路は1666cycle以内に1個のクロック周波数差補償パターンを送信する。
8B10B変換回路46は10b-code(DATA_10BIT54)を8b-code(DATA_8BIT55)に変換する回路である。
デスキュー処理部31は、デスキューバッファ51−m(m=0〜7)およびデスキューパターン検出回路52を備える。
デスキューバッファ51は、FIFOであり、デスキューパターン検出位置に基づき、レーン間スキューを揃えて、復元データを出力する。
但し、単純なFIFOでなく、デスキュー位置調節時は、リードアドレスを変化させる。
デスキューパターン検出回路52は、各レーンからの出力されるデータから、デスキューパターンの位置を検出し、レーン間スキューを揃えるようにリードアドレスを制御する信号をデスキューバッファ51に出力する。
デスキューパターンはシリアルバス初期化時に転送されるトレーニングパターンに含まれる。
また、シリアルバス初期化時のデスキュー位置調節後も、定期的なクロック周波数差補償パターン受信毎に、デスキュー位置を再調節する。各レーンのエラスティックバッファ44は独立にクロック周波数差補償を行うため、デスキュー処理部31は、各レーンより、クロック周波数差補償情報56を受信し、デスキュー位置を再調節する。
特開2005−159578号公報 特開2008−172657号公報
従来、複数レーンのシリアルバスはIOバス等のレイテンシーが性能に大きく影響しないバスで使用されていた。
大規模サーバ等の情報処理装置のシステムバスに複数レーンのシリアルバスを採用した場合、サーバに搭載されるLSIの受信回路のレイテンシーは、サーバ全体の性能に大きく影響する。
しかしながら、従来の受信回路は、機能毎に分かれた2個のFIFO(エラスティックバッファおよびデスキューバッファ)を備えるため、レイテンシーが大きくなるという問題があった。
本発明の課題は、低レイテンシーの受信回路を提供することである。
実施の形態の受信回路は、複数のレーンでシリアル通信によるデータを受信し、複数のバッファ、マルチレーン制御回路、および複数のアドレス制御回路を備える。
バッファは、データの読み書きを行う。バッファは、レーン毎に設けられる。
マルチレーン制御回路は、レーン間のスキューを検出し、該レーン間のスキューを無くすように前記バッファのリードアドレスを調節する第1の信号およびレーン間のスキューの調整を行うことを示すデスキュー信号を出力する。
アドレス制御回路は、前記デスキュー信号に応じて、前記第1の信号を前記バッファに出力する。アドレス制御回路は、レーンごとに設けられる。
実施の形態の受信回路は、複数のレーンでシリアル通信によるデータを受信し、複数のバッファ、マルチレーン制御回路、および複数のアドレス制御回路を備える。
バッファは、データの読み書きを行い、データの読み書きを行い、ライトアドレスとリードアドレスとの差分が所定値より大きいか小さいかを示す差分信号を出力する。バッファは、レーン毎に設けられる。
マルチレーン制御回路は、レーン間のスキューの調整後に、所定のタイミングにおける複数の前記差分信号に基づいて、前記リードアドレスを調節する第1の信号を出力する。
アドレス制御回路は、前記第1の信号を前記バッファに出力する、アドレス制御回路は、レーンごとに設けられる。
実施の形態の受信回路によれば、受信回路のレイテンシーを小さくすることができる。
従来の受信回路の構成図である。 本実施の形態に係るサーバの構成図である。 実施の形態に係るSBの構成図である。 実施の形態に係るIOBの構成図である。 実施の形態に係るXBBの構成図である。 実施の形態に係るXBの構成図である。 実施の形態に係るデータ送受信方式を示す図である。 トレーニングパターンのフォーマットを示す図である。 クロック周波数差補償パターンのフォーマットを示す図である。 実施の形態に係る受信回路の構成図である。 受信回路のシリアルバス初期化時の動作のフローチャートである。 送信回路のシリアルバス初期化時の動作のフローチャートである。 実施の形態に係るエラスティックバッファの構成図である。 実施の形態に係るパターン検出回路の構成図である。 レーン単位のクロック周波数差補償タイムチャートである。 実施の形態に係るマルチレーン制御回路の構成図である。 実施の形態の受信回路の配置配線図である。 デスキュー時のレーンブロックのタイムチャートである。 デスキュー時のマルチレーン制御回路のタイムチャートである。 デスキュー完了後のクロック周波数差補償のレーンブロックのタイムチャートである。 デスキュー完了後のクロック周波数差補償のマルチレーン制御回路のタイムチャートである。
以下、図面を参照しながら本発明の実施の形態を説明する。
図2は、実施の形態に係るサーバの構成図である。
サーバ101は、システムボード(SB)102−i(i=0〜5)、IOボード(IOB)103−j(j=0〜1)、クロスバーボード(XBB)104−k(k=0〜1)、およびバックプレーンボード(BP)105を備える。
SB102は、Central Processing Unit(CPU)やDRAM(Dynamic Random Access Memory)等を備え、各種処理を行う基板である。
IOB103は、Local Area Network(LAN)やHard Disk Drive(HDD)等と接続するコネクタを備えた基板である。
XBB104は、SB102やIOB103を相互に接続するためのクロスバースイッチを備える基板である。
BP105は、SB102、IOB103、およびXBB104をコネクタを介して相互に接続するための基板である。
それぞれのSB-XBB間、IOB-XBB間とXBB-XBB間はBP105経由でシステムバス106−r(r=0〜17)で接続されている。システムバス106は、マルチレーンシリアルバスである。
SB102上のCPUが他SBのDRAMにアクセスする場合は、システムバス106を使用して、XBB104経由でパケットが送信される。同様にIOB103上のGigabit Ethernet (GbE)コントローラがSB102上のDRAMにアクセスする場合もシステムバス106を使用して、XBB104経由でパケットが送信される。
例えば、SB102−0からSB102−1にアクセスする場合は、SB102−0からXBB104−0を介してSB102−1へとパケットが送信される。
また、SB102−0からSB102−4にアクセスする場合は、SB102−0からXBB104−0およびXBB104−1を介してSB102−4へとパケットが送信される。
パケット送受信において、XBB104を経由することにより、アクセスレイテンシーが増加する。そのため、XBB104に搭載されるクロスバースイッチ(XB)等はパケット通過レイテンシーが小さいことが望まれる。
図3は、実施の形態に係るSBの構成図である。
SB102は、CPU111−n(n=1〜2)、DRAM112−n、およびMemory Controller (MC)113を備える。
CPU111は中央処理装置であり、SB102の各種処理を行う。
MC113は、DRAM112のデータの読み出し、書き出し、リフレッシュなどの制御を行う。MC113は、システムバス115でBP105を介してXBB104と接続されている。
MC113は、送信回路および受信回路を有するポート部114を備える。
送信回路は、システムバス115にデータを送信し、受信回路は、システムバス115からのデータを受信する。
受信回路には、後述の実施の形態の受信回路が用いられる。
MC113はCPU111から送信されるパケットにより、SB102内のDRAM112にアクセスするか、他のSB102内のDRAM112にアクセスするのか、IOB103内のGbEコントローラやシリアル・アタッチ・SCSIコントローラにアクセスするのかの制御を行う。
図4は、実施の形態に係るIOBの構成図である。
IOB103は、IOC121、GbEコントローラ122、シリアル・アタッチ・SCSI (SAS)コントローラ123、およびHDD124を備える。
IOC121はIOコントローラである。IOC121は、GbEコントローラ122およびSASコントローラ123とそれぞれIOバス126−1、126−2で接続されている。
IOC121はシステムバスでBP105を介してXBB104と接続されている。
IOC121は、送信回路および受信回路を有するポート部125を備える。
送信回路は、システムバスにデータを送信し、受信回路は、システムバスからのデータを受信する。
受信回路には、後述の実施の形態の受信回路が用いられる。
GbEコントローラ122は、GbEでの通信を行うコントローラであり、LANポートを有する。
SASコントローラ123は、シリアル通信を行うコントローラであり、HDD124と接続される。
図5は、実施の形態に係るXBBの構成図である。
XBB104は、複数のXB131−p(p=1〜2)を備える。
XB131は、データの経路を動的に選択するクロスバースイッチである。XB131はシステムバス132−s(s=1〜8)で他のXBB104、SB102、またはIOB103に接続されている。また、XB131−1とXB131−2の間もシステムバス132−9で接続されている。
XB131は、SB102等から送信されるパケットを受信し、そのパケットのヘッダーに含まれる宛先を認識し、送信先にルーティングを行う。
図6は、実施の形態に係るXBの構成図である。
XB131はXBB104に搭載されるLSI(Large Scale Integration)である。
XB131は、システムバス I/F141−p(p=1〜5)、ポート部142−p、およびルーティング部を143を備える。
システムバス I/F141は、マルチレーンのシリアルバスに接続するインターフェースであり、送信I/F(TX)と受信I/F(RX)を備える。
ポート部142はシステムバスのプロトコル制御を行う。
ポート部は、送信回路および受信回路を備える。
送信回路は、システムバスにデータを送信し、受信回路は、システムバスからのデータを受信する。
受信回路には、後述の実施の形態の受信回路が用いられる。
ルーティング部143は、ポート部142から入力されたパケットの宛先に対応するポート部142にパケットを出力する。
図7は、実施の形態に係るデータ送受信方式を示す図である。
ここでは、接続元装置の送信回路から接続先装置の受信回路にデータを送信する場合について述べる。
例えば、図2において、SB102−0からXBB104−0にデータを送る場合、接続元装置はSB102−0に該当し、接続先装置はXBB104−0に該当する。
接続元装置のポート部(以下、接続元ポート)201は、送信回路202、受信回路203、およびマルチレーン制御回路204を備える。
接続先装置のポート部(以下、接続先ポート)211は、送信回路212、受信回路213、およびマルチレーン制御回路214を備える。
接続元ポート201の送信回路202は複数レーン(ここでは、レーン0〜レーン7からなる8レーン)のシリアルバスにより、接続先ポート211の受信回路213に接続される。
送信回路202は、トレーニングパターンおよびクロック周波数差補償パターン生成回路206、送信データ分割部207、レーンm送信データ送信部208−m(m=0〜7)、セレクタ209−m、および8B10B変換部210−mを備える。
受信回路213は、トレーニングパターン受信回路217、レーンm受信データ処理部218−m、調節部219−m、および8B10B変換部220−mを備える
シリアルバス初期化完了後に、送信データ分割部202は、送信データを8レーンのそれぞれで送信するデータに分割する。
レーンm送信データ送信部208−mは、分割された送信データをセレクタ209−mに出力する。
セレクタ209は、送信データ、トレーニングパターン、またはクロック周波数差補償パターンのいずれかを選択して出力する。
8B10B変換部210−mは、送信データを8b-codeから10b-codeに変換してシリアルバスに出力する。
受信回路213は、レーンm受信データ処理部218−m、調節部219−m、8b10b変換部220−m、およびトレーニングパターン受信回路217を備える。
レーンm受信データ処理部218−mは、受信したデータから、クロックリカバリにより受信クロックの生成や10b-code単位のデータへ調節を行う。
調節部219−mは、レーン間のスキューやクロック周波数差を調節する。
8b10b変換部220−mは、それぞれのレーンで受信した10b-codeを8b-codeに変換して、受信データを復元する。正しくデータ復元を行うには、レーンスキュー調節、および、クロック周波数差補償が行われている必要がある。
シリアルバス初期化時は、データでなく、トレーニングパターンの送受信を行う。受信側はトレーニングパターン受信により、デスキュー等を行う。
マルチレーン制御回路204は、トレーニングパターンの送受信指示を送信回路202および受信回路203に行う。
マルチレーン制御回路214は、トレーニングパターンの送受信指示を送信回路212および受信回路213に行う。
マルチレーン制御回路204、214は、初期化完了後に、データの送受信指示を行う。
トレーニングパターンおよび周波数差補償パターンは、送信回路202のトレーニングパターンおよびクロック周波数差補償パターン生成回路206で生成される。
トレーニングパターンは、受信回路213のトレーニングパターン受信回路217に入力される。
接続元ポート201と接続先ポート211には、それぞれ別のオシレータ205、215からリファレンスクロックが供給される。オシレータの個体差により、各リファレンスクロック周波数は僅かに異なる。
トレーニングパターンおよびクロック周波数差補償パターン生成回路206は、シリアルバス初期化中または初期化完了後に関わらず、接続元ポート201と接続先ポート211のクロック周波数差補償のため、クロック周波数差補償パターンを定期的に送信する。例えば、接続装置間のリファレンスクロック周波数許容誤差を±300ppm以内とする場合は、1666cycle以内に一度、クロック周波数差補償パターンを送信する。
図8は、トレーニングパターンのフォーマットを示す図である。
実施の形態に係るトレーニングパターンは、32個のシンボルで構成される。シンボルの種類は、TH、AL、DS、およびSIである。尚、1つのシンボルは10ビットで構成されている。
THは、Training Pattern Headであり、トレーニングパターンの先頭を示すシンボルである。
ALは、Alignmentであり、10ビット境界パターンを示すシンボルである。
DSは、Deskewであり、デスキューパターンを示すシンボルである。
SIは、Sequence Informationであり、初期化手順で接続先ポートに通知する情報を示すシンボルである。
尚、1つのシンボルで"TH"、"AL"、"DS"の機能を持つフォーマットとすることも可能である。
図9は、クロック周波数差補償パターンのフォーマットを示す図である。
実施の形態に係るクロック周波数差補償パターンは、7個のシンボルで構成される。シンボルの種類は、CHおよびDMである。
CHは、Clock Headであり、クロック周波数差補償パターン先頭を示すシンボルである。
DMは、Dummyであり、クロック周波数差補償動作時に追加または削除されるシンボルである。DMの追加または削除は、エラスティックバッファのリードアドレス制御で行われる。
尚、トレーニングパターンおよびクロック周波数差補償パターンの長さは、上述した長さに限定されない。トレーニングパターンおよびクロック周波数差補償パターンの長さは、受信回路の動作周波数、配置配線やシリアルバスプロトコルに依存して、適宜変更することができる。
図10は、実施の形態に係る受信回路の構成図である。
受信回路301は、レーンブロック302−m(m=0〜7)およびマルチレーン制御回路303を備える。
受信回路301は、図7の受信回路203、213に対応する。
実施の形態において、レーン数は、レーン0〜レーン7からなる8レーンである。データは、送信回路で分割され、レーン0〜レーン7を通じて送信される。
以下の説明および図面において、レーンm(m=0〜7)と接続するレーンブロック302−mは、レーンmブロックと記すことがある。
レーンmブロックは、レーンmを通過するデータを処理する。
図10においては、レーン0ブロックのみ詳細な構成図を示す。レーン1ブロック〜レーン7ブロックの構成は、レーン0ブロックと同様である。
レーン0ブロック302−0は、DESerializer311、Gear-Box312、10ビット境界検出回路313、エラスティックバッファ314、パターン検出回路315、および8B10B変換回路316を備える。
DESerializer311は、受信した1ビット幅のシリアルデータを4ビット幅のパラレルデータ(DATA_4BIT321)に変換する。また、DESerializer311は、受信したシリアルデータからクロックリカバリにより、受信クロック(RX_CLOCK_DIVIDE_4, RX_CLOCK_DIVIDE_10)を生成する。
RX_CLOCK_DIVIDE_4はシリアルデータ転送速度に対して1/4の周波数クロックである。RX_CLOCK_DIVIDE_10はシリアルデータ転送速度に対して、1/10の周波数クロックである。
すなわち、データを送信する接続元ポートのリファレンスクロック周波数の定倍となる。
クロックINTERNAL_CLOCKは自ポート(接続先ポート)のリファレンスクロックより生成する。
RX_CLOCK_DIVIDE_4、RX_CLOCK_DIVIDE_10とINTERNAL_CLOCKの周波数比は略5:2:2となる。
例えば、シリアルバス転送速度が5.0GT/sの場合、RX_CLOCK_DIVIDE_4=1.25GHz, RX_CLOCK_DIVIDE_4=0.5GHz, INTERNAL_CLOCK=0.5GHzとなる。
Gear-Box312への書き込みまでは、RX_CLOCK_DIVIDE_4と同期して動作する。
Gear-Box312からの読み出し、10ビット境界検出回路313、およびエラスティックバッファの書き込みは、RX_CLOCK_DIVIDE_10と同期して動作する。
エラスティックバッファの読み出し、パターン検出回路315、マルチレーン制御回路303、8B10B変換回路316は、INTERNAL_CLOCKと同期して動作する。
また、DESerializer311が4ビット幅以外のパラレルデータを出力する場合、例えば、8ビット、16ビット幅で出力する場合は、DESerializer311はシリアルバス転送速度の1/8、1/16の受信クロックを出力し、Gear-Box312へ書き込みを行う。
Gear-Box312は、FIFOであり、RX_CLOCK_DIVIDE_4クロックで4ビット幅のDATA_4BIT321を書き込み、RX_CLOCK_DIVIDE_10クロックで10ビット幅のDATA_10BIT_UNALIGNMENT322を読み出す。Gear-Box312は、DATA_10BIT_UNALIGNMENT322を10ビット境界検出回路313に出力する。
10ビット境界検出回路313は、境界パターンを検出して、DATA_10BIT_UNALIGNMENT 322を10b-code単位の10ビット境界データ(DATA_10BIT_ALIGNMENT323)に調節する。10ビット境界検出回路313は、DATA_10BIT_ALIGNMENT323をエラスティックバッファ314に出力する。
エラスティックバッファ314は、クロック周波数差を吸収するFIFOである。エラスティックバッファ314は、リードアドレスは通常時に毎サイクル+1するが、パターン検出回路315からの制御信号に応じて、リードアドレスをホールド、1インクリメント、もしくは、2インクリメントする。
エラスティックバッファ314は、データ(DATA_10BIT324)を読み出し、該データをパターン検出回路315および8B10B変換回路316に出力する。また、ライトアドレスとリードアドレスとの差分と所定値の大小関係を示す信号を出力する。
パターン検出回路315は、エラスティクバッファ314に、リードアドレスを制御する信号を出力する。
シリアルデータ転送は8B10B変換データで行われる。送信回路で8ビット幅のデータ(8b-code)は10ビット幅のデータ(10b-code)に変換され、変換されたデータが送信される。受信回路では、10b-codeを8b-codeに復元する。
8B10B変換回路316は、10b-codeのデータ(DATA_10BIT324)を8b-code(DATA_8BIT325)に変換する。
尚、8B10B以外の変換を行うシリアルバスプロトコルの場合、8B10B変換回路316はプロトコルに依存した変換回路に適宜変更する。また、10ビット境界検出回路322もプロトコルに依存して適宜変更する。
マルチレーン制御回路303は、各レーンブロックのパターン検出回路315と接続している。マルチレーン制御回路303は、レーン間のスキューを検出し、レーン間スキューの調整を行うことを示すデスキュー指示(deskew_flag)およびレーン間のスキューを無くすためにリードアドレスを調節する信号を全てのレーンブロックのパターン検出回路315に出力する。
図1に示す従来の受信回路11と図10に示す実施の形態の受信回路301とを比較すると、実施の形態の受信回路301では、デスキューバッファ51とデスキューパターン検出回路52が削除されている。
従来の受信回路11でデスキューバッファ51とデスキューパターン検出回路52が行っていた、レーン間スキュー調節機能およびポート単位のクロック周波数差補償機能は、実施の形態ではパターン検出回路315、マルチレーン制御回路303およびエラスティックバッファ314で行われる。
次に、シリアルバス初期化時の受信回路301の動作を示す。
図11は、受信回路301のシリアルバス初期化時の動作のフローチャートである。
ステップS401において、受信回路301は、10ビット境界検出回路が受信するトレーニングパターンより10ビット境界パターンを検出した場合、制御はステップS402に進み、10ビット境界パターンを検出していない場合、10ビット境界パターン未検出を示す情報を送信して制御は最初に戻る。
ステップS402において、受信回路301は、10ビット境界パターンの検出後から10ビットのシンボル境界に合わせて、エラスティックバッファ314への書き込みおよびエラスティックバッファ314から読み出しを開始する。
ステップS403において、受信回路301がクロック周波数差補償パターンを受信した場合ステップS404に制御は進み、受信していない場合ステップS405に制御は進む。
ステップS404において、受信回路301の各レーンのエラスティックバッファは独立に、エラスティックバッファ314のライトアドレスとリードアドレスとの差分(ライトリードアドレス差分)が基準値になるように、エラスティックバッファ314のリードアドレスを調節し、クロック周波数差補償を行う。受信回路301は、デスキュー指示により、デスキューパターンを検出し、レーン間スキューを調節する。
ステップS405において、デスキューが完了した場合はステップS406に制御は進み、デスキューが完了していない場合はステップS403に制御は戻る。
ステップS406において、受信回路301がクロック周波数差補償パターンを受信した場合、ステップS407に制御は進み、受信していない場合、ステップS408に制御は進む。
ステップS407において、受信回路301は、レーン全体、すなわちポート単位でクロック周波数差補償を行う。
ステップS408において、受信回路301は、デスキュー完了を示す情報を持つトレーニングパターンを受信した場合、制御は終了し、受信していない場合、制御はステップS406に戻る。
シリアルバス初期化完了後に、送信回路202はトレーニングパターン送信を止め、データ送信を開始する。送信回路202、は初期化完了後も定期的なクロック周波数差補償パターン送信を継続する。
受信回路301は受信データの復元を行う。この時、受信回路301はポート単位のクロック周波数差補償を継続する。
初期化時に送信するトレーニングパターンは初期化状態を示す情報を持つ。それにより接続先ポートがどの状態であるか、例えば、10ビット境界パターンを検出した、デスキューが完了した等の状態を知ることができ、同期して初期化処理を完了することができる。例えば、受信回路301は、接続元ポート201から受信するトレーニングパターンと自ポート(接続先ポート)211が送信するトレーニングパターンから、両ポートがデスキュー可能状態であることを認識してデスキュー指示を行う。
次に、シリアルバス初期化時の送信回路202の動作を示す。
図12は、送信回路202のシリアルバス初期化時の動作のフローチャートである。
尚、トレーニングパターン、周波数差補償パターンは、送信回路のすべてのレーンで同じタイミングで送信する。
ステップS411において、送信回路202は10ビット境界パターン未検出を示す情報を持つトレーニングパターンを送信する。
ステップS412において、送信回路は202は、前回の周波数補償パターン送信より1666cycle経過しているか判定する。1666cycle経過している場合、ステップS413に制御は進み、1666cycle経過していない場合、ステップS414に制御は進む。
ステップS413において、送信回路202は、周波数差補償パターンを送信する
ステップS414において、受信回路203が10ビット境界パターン検出した場合、ステップS415に進み、10ビット境界パターンを検出していない場合、ステップS411に戻る。
ステップS415において、送信回路202はデスキュー可能状態を示す情報を持つトレーニングパターンを送信する。
ステップS416において、送信回路202は、前回の周波数補償パターン送信より1666cycle経過しているか判定する。1666cycle経過している場合、ステップS417に制御は進み、1666cycle経過していない場合、ステップS418に制御は進む。
ステップS417において、送信回路202は、周波数差補償パターンを送信する。
ステップS418において、受信回路203がデスキューを完了している場合、制御はステップS419に進み、デスキューを完了していない場合、制御はステップS415に戻る。
ステップS419において、送信回路202はデスキュー完了状態を示す情報を持つトレーニングパターン送信する。
ステップS420において、送信回路202は、前回の周波数補償パターン送信より1666cycle経過しているか判定する。1666cycle経過している場合、ステップS421に制御は進み、1666cycle経過していない場合、ステップS422に制御は進む。
ステップS421において、送信回路202は、周波数差補償パターンを送信する。
ステップS422において、受信回路203がデスキュー完了を示す情報を持つトレーニングパターン受信した場合、制御はステップS423に進み、受信しなかった場合、制御はステップS419に戻る。
ステップS423において、送信回路202は、デスキュー完了状態を示す情報を持つトレーニングパターンを16個送信する。
尚、シリアルバス初期化時の動作は図11、図12の動作に限定するものではない。シリアルバスプロトコルに合わせて、適宜変更する。
図13は、実施の形態に係るエラスティックバッファの構成図である。
エラスティックバッファ501は、Write Address制御回路502、Read Address制御回路503、FIFO504、FF505、同期化FF506−1、506−2を備える。
エラスティックバッファ501は、図10のエラスティックバッファ314に対応する。
クロックRX_CLOCK_DIVIDE_10は、Write Address制御回路502、FIFO504、FF505に入力される。Write Address制御回路502、FIFO504、およびFF505は、RX_CLOCK_DIVIDE_10に同期して動作する。上述のように、RX_CLOCK_DIVIDE_10は、DESerializer311で、受信したシリアルデータからクロックリカバリにより、生成される。
クロックINTERNAL_CLOCKは、同期化FF506−1、506−2およびRead Address制御回路503に入力される。同期化FF506−1、506−2、およびRead Address制御回路503は、INTERNAL_CLOCKと同期して動作する。
FIFO504は、10ビット幅の22段のFIFOである。また、ライトクロックとリードクロックの差のため、書き込みと読み出しに僅かなスループット差がある。実施の形態において、FIFO段数は22段であるが、これに限られるものではない。システムバスのレーン間スキューが小さい場合は、FIFO段数をより小さくしてもよい。
FIFO504には、Write Address制御回路502から入力されるライトアドレスwrite_addressでデータwrite_dataが書き込まれる。
FF505は、DATA_10BIT_ALIGNMENT323をRX_CLOCK_DIVIDE_10と同期してwrite_dataとして出力する。
Write Address制御回路502は10ビット境界検出回路からの境界検出通知(alignment_detect信号)を受けるとシンボル単位でFIFO504へデータ(write_data)の書き込みを開始する。
Write Address制御回路502は、RX_CLOCK_DIVIDE_10に同期して書き込みを行う。すなわち、RX_CLOCK_DIVIDE_10がライトクロックとなる。
Write Address制御回路502は、write_enable信号が1の時にFIFO504のアドレスwrite_addressにデータを書き込む。Write Address制御回路502は、ライトアドレス(write_address)を0から開始し、常に1づつインクリメントする。Write Address制御回路502は、ライトアドレスを21でラップラウンドして0に戻す。Write Address制御回路502は、ライトアドレスを0に戻す時に、リード側にライトアドレスが一周したことを通知するために、write_lap_round信号を反転する。
同期化FF506−1は、write_enable信号をRX_CLOCK_DIVIDE_10と同期して、write_enable_sync信号として出力する。
同期化FF506−2は、write_lap_round信号をRX_CLOCK_DIVIDE_10と同期して、write_lap_round_sync信号をして出力する。
Read Address制御回路503は、write_enable信号を同期化したwrite_enable_sync信号のアサートよりリードアドレス0より読み出しを開始する。Write Address制御回路502は、基本的にリードアドレスを1サイクルごとに1づつインクリメントし、リードアドレスが21になるとラップラウンドして、リードアドレスを0に戻す。
Read Address制御回路503は、INTERNAL_CLOCKと同期して読み出しを行う。すなわち、INTERNAL_CLOCKがリードクロックとなる。読み出されたデータDATA_10BIT324は、パターン検出回路315および8B10B変換回路316に出力される。
Read Address制御回路503はwrite_lap_round信号をINTERNAL_CLOCKと同期化したwrite_lap_round_sync信号の変化(反転)を検出することでライトアドレスが0になったことを認識する。これにより、ライトアドレスとリードアドレスの差分であるライトリードアドレス差分を認識する。ライトリードアドレス差分はクロック周波数差によって変化する。
ライトクロックとリードクロックを比較して、ライトクロックの方が速い(リードクロックの方が遅い)場合は、ライトリードアドレス差分は基準値より徐々に大きくなる。
ライトクロックの方が遅い(リードクロックの方が速い)場合は、ライトリードアドレス差分は基準値より徐々に小さくなる。
Read Address制御回路503は、ライトリードアドレス差分が基準値より大きい場合、リードクロックの方が遅いことを示すread_slow信号をアサートする。
Read Address制御回路503は、ライトリードアドレス差分が基準値より小さい場合、リードクロックの方が速いことを示すread_fast信号をアサートする。
ライトリードアドレス差分が基準値にある場合は、read_slow信号, read_fast信号のどちらもアサートしない。read_slow信号および read_fast信号は、パターン検出回路に315に出力される。
Read Address制御回路503はクロック周波数差補償機能により、ライトリードアドレス差分を基準値に調節する。
基準値への制御はaddress_hold信号、address_plus2信号に従う。address_hold信号、address_plus2信号は、パターン検出回路315から入力される。
Read Address制御回路503はaddress_hold信号が1の時はリードアドレスのインクリメントを行わないことにより、クロック周波数差補償パターンの"DM"を追加する。
Read Address制御回路503はaddress_plus2信号が1の時はリードアドレスを+2インクリメントすることにより、クロック周波数差補償パターンの"DM"を削除する。
ライトリードアドレス差分情報は、write_lap_round_sync信号の変化、もしくは、address_hold, address_plus2信号のアサートにより更新される。
図14は、実施の形態に係るパターン検出回路の構成図である。
パターン検出回路601は、デスキューパターン比較回路602、クロック周波数差補償パターン先頭比較回路603、カウンタ604、レーンリードアドレス制御回路605、およびセレクタ606を備える。
パターン検出回路601は、図10のパターン検出回路315に対応する。
クロックINTERNAL_CLOCKは、カウンタ604およびレーンリードアドレス制御回路605に入力される。カウンタ604およびレーンリードアドレス制御回路605は、INTERNAL_CLOCKと同期して動作する。
デスキューパターン比較回路は602トレーニングパターンに含まれる"DS"検出時にdeskew_pattern_detect信号をアサートする。デスキューパターン検出回路602は、deskew_pattern_detect信号をカウンタ604へ出力する。
クロック周波数差補償パターン先頭比較回路603は、クロック周波数差補償パターンに含まれる"CH"検出時にclock_pattern_detect信号をアサートする
クロック周波数差補償パターン先頭比較回路603は、clock_pattern_detect信号をレーンリードアドレス制御回路605およびマルチレーン制御回路303に出力する。
カウンタ604は、deskew_pattern_detect信号がアサートされている期間をカウントする。すなわち、カウンタは"DS"検出からのサイクル数をカウントする。カウントは1から7まで行い、このカウント値がレーン間のスキューとなる。例えば、カウント値が0の場合は"DS"未検出を示す。カウント値が1の場合は、"DS"検出から1サイクル後を示す。カウンタ604は、カウント値をdeskew_pattern_cycle信号としてマルチレーン制御回路303に出力する。
レーンリードアドレス制御部605は、clock_pattern_detect信号が1の時の、read_fast信号, read_slow信号の値により、address_hold_lane信号, address_plus2_lane信号を制御する。
read_fast信号およびread_slow信号は、Read Address制御回路503からレーンリードアドレス制御回路605およびマルチレーン制御回路303に入力されている。
レーンリードアドレス制御部605は、clock_pattern_detect信号が1の時、read_fast信号が1の場合は、address_hold_lane信号をアサートする。
レーンリードアドレス制御部605は、clock_pattern_detect信号が1の時、read_slow信号が1の場合は、address_plus2_laneをアサートする。
レーンリードアドレス制御部605は、read_fast信号が0、且つread_slow信号が0の場合はaddress_hold_lane信号およびaddress_plus2_lane信号のどちらもアサートしない。
セレクタ606は、マルチレーン制御回路303からのdeskew_flag信号が0のとき、address_hold_lane信号をaddress_hold、且つaddress_plus2_lane信号をaddress_plus2信号として出力する。
セレクタ606は、マルチレーン制御回路303からのdeskew_flag信号が1のとき、address_hold_port信号をaddress_hold信号、且つaddress_plus2_port信号をaddress_plus2信号として出力する。
セレクタ606は、address_hold信号 およびaddress_plus2信号をエラスティックバッファへ出力する。
図15は、レーン単位のクロック周波数差補償タイムチャートである。
デスキュー前は、各レーンのレーンリードアドレス制御部605がクロック周波数差補償を行う。
図15において、リードアドレス(read_address)が16のときに、"CH"が検出され、clock_pattern_detectがアサートされている。clock_pattern_detect信号が1且つread_fast信号が1なので、address_hold_lane信号がアサートされる。
リードアドレス(read_address)が17のときに、address_hold_lane信号がアサートされている。このとき、deskew_flagが0なので、address_hold_lane信号は、address_holdとして出力される。したがって、address_holdは、address_hold_lane信号と同様にアサートされている。
address_hold信号がアサートされているので、リードアドレスは17で2サイクル、ホールドされている。
図16は、実施の形態に係るマルチレーン制御回路の構成図である。
マルチレーン制御回路701は、配線ディレイ対策FF702−m−n(m=0〜7、n=1〜4)およびポートリードアドレス制御回路703を備える。
尚、以下の説明および図面において、レーン毎の信号名を区別するために、レーンmブロック(m=0〜7)の信号は、信号名の後ろに「_m」を付加して説明および記すことがある。例えば、レーン0ブロックのdeskew_pattern_cycleは、deskew_pattern_cycle_0と記すことがある。
クロックINTERNAL_CLOCKは、配線ディレイ対策FF702およびポートリードアドレス制御回路703に入力される。配線ディレイ対策FF702およびポートリードアドレス制御回路703は、INTERNAL_CLOCKと同期して動作する。
配線ディレイ対策FF702は、配線ディレイに対応するためのフリップフロップである。実施の形態において、マルチレーン制御回路701へ入力される信号は、2つの配線ディレイ対策FF702−m−0、702−m−1を通り、ポートリードアドレス制御回路703へ入力される。ポートリードアドレス制御回路703から出力される信号は、2つの配線ディレイ対策FF702−m−3、702−m−4を通り、パターン検出回路315へ出力される。
ポートリードアドレス制御回路703は各レーン個別でなく、レーン全体、すなわちポートで合わせての動作が必要となるデスキューとデスキュー完了後のクロック周波数差補償を行う。
ポートリードアドレス制御回路703には、配線ディレイ対策FF702−m−1、702−m−2を介して、レーンmブロックのパターン検出回路315からdeskew_pattern_cycle_m信号、clock_pattern_detect_m信号、read_fast_m信号、およびread_slow_m信号が入力される。
ポートリードアドレス制御回路703は、配線ディレイ対策FF702−m−3、702−m−4を介して、レーンmブロック302−mのパターン検出回路315にaddress_hold_port_m信号、address_plus2_port_m信号、およびdeskew_flag_m信号を出力する。
ポートリードアドレス制御回路703は、各レーンブロックから通知されるdeskew_pattern_cycle信号のすべてが0以外の時に、すべてのレーンブロック302で"DS"を検出したと認識する。この時、ポートリードアドレス制御回路703は、各レーンブロック302のdeskew_flag信号をアサートする。deskew_flag信号が1のときは、デスキュー中またはデスキュー完了後を示す。
ポートリードアドレス制御回路703は各レーンブロック302から通知されるclock_pattern_detect信号が1の時のread_fast信号およびread_slow信号に基づき、address_hold_port信号およびaddress_plus2_port信号を制御する。
clock_pattern_detect信号が1のとき、いずれかのレーンブロック302のread_fast信号が1の場合、ポートリードアドレス制御回路703は、すべてのレーンブロック302のaddress_hold_port信号をアサートする。
clock_pattern_detect信号が1のとき、すべてのレーンブロック302のread_slow信号が1の場合、ポートリードアドレス制御回路703は、すべてのレーンブロック302のaddress_plus2_port信号をアサートする。
図17は、実施の形態の受信回路301の配置配線図である。
実施の形態において、各レーンブロック302とマルチレーン制御回路303の間の配線距離が長い、特にレーン0ブロック302−0およびレーン7ブロック302−7とマルチレーン制御回路303との間の配線距離が長いとする。その場合、配線ディレイを満たすために、各レーンブロック302と接続する配線ディレイ対策FF702の段数は図16に示すように2とする。
2段の配線ディレイ対策FF702は例であり、これに限られるものではない。配置配線、動作周波数により、配線ディレイ対策FF702の段数とクロック周波数差補償パターン長を適宜設定することができる。
図17の受信回路の配置配線図では、8レーン構成を示しているが、システムバスは転送帯域が大きいことが望まれる。例えば、レーン数が16レーンの場合、遠くにあるレーンブロック302とマルチレーン制御回路303間の距離が長くなり、配線ディレイが大きくなる。この場合、動作周波数にも依存するが、図16のマルチレーン制御回路の配線ディレイ対策FF702数を増やし、図9に示すクロック周波数差補償パターン長を長くする。
逆に、転送帯域が小さいシリアルバスに実施の形態の受信回路を適応する場合、レーン数が少ないことや動作周波数が遅い条件等により、配線ディレイ対策FF702数を減らし、クロック周波数差補償パターン長を短くすることが可能である。
また、既存のシリアルバスプロトコルに実施の形態の受信回路を適応する場合、クロック周波数差補償パターン長がすでにプロトコルで決定されている。その場合は、シリアルバスプロトコルのクロック周波数差補償パターン長を満たすように、配線ディレイ対策FF702の段数を決定する。
各レーン個別でなく、ポートで合わせての動作が必要となるデスキューとデスキュー完了後のクロック周波数差補償について説明する。
図18は、デスキュー時のレーンブロックの各信号のタイムチャートを示す。
図18において、トレーニングパターンの”DS”が検出されると、deskew_pattern_detect信号はアサートされる。
deskew_pattern_detect信号がアサートされると、deskew_pattern_cycle信号は、カウントが開始される。
deskew_flag信号およびaddress_hold_port信号がアサートされると、セレクタ606はaddress_hold_port信号をaddress_hold信号として出力する。したがって、address_hold信号は、address_hold_port信号と同期する。
address_hold信号がアサートされると、リードアドレス(read_address)はホールドされる。したがって、図18において、read_addressは、アドレス12で4サイクル、ホールドされている。
図19は、デスキュー時のマルチレーン制御回路の各信号のタイムチャートを示す。
図19には、レーン0、1、および7ブロックのdeskew_pattern_cycle信号、deskew_flag信号、deskew_address_hold信号のタイムチャートを示し、レーン2〜6ブロックの信号は省略する。
ポートリードアドレス制御回路703は、各レーンブロックから通知されるdeskew_pattern_cycle信号のすべてが0以外の時に、すべてのレーンブロックで"DS"を検出したと認識する。この時、ポートリードアドレス制御回路703は、各レーンブロックのdeskew_flag信号をアサートする。deskew_flag信号が1のときは、デスキュー中またはデスキュー完了後を示す。
図19においては、レーン1ブロックで”DS”が最後に検出されている。したがって、deskew_pattern_cycle_1信号が1となるのは、他のレーンブロックのdeskew_pattern_cycle信号と比べて最後になる。
全てのレーンブロックのdeskew_flag信号をアサートするのと同時に、ポートリードアドレス制御回路703は、全てのレーンブロックのdeskew_pattern_cycle信号が0以外となったときの、各レーンブロックのdeskew_pattern_cycleの値に対応するサイクル間、各レーンブロックのaddress_hold_port信号をアサートする。
図19において、最後に”DS”が検出されるレーン1ブロックのdeskew_pattern_cycle_1信号が1となったとき、レーン0ブロックのdeskew_pattern_cycle_0信号の値は4である。すなわち、deskew_pattern_cycle_0信号が1となったときとdeskew_pattern_cycle_1信号が1となったときは、3サイクルの差がある。
したがって、レーン0ブロックのdeskew_address_hold_0信号は3サイクル、アサートされる。
レーン7ブロックのdeskew_address_hold_7信号は同様に2サイクル、アサートされる。
deskew_pattern_cycleに対応する値がレーン間のスキューとなる。
ポートリードアドレス制御回路703は、最後に"DS"を検出したレーンブロックのaddress_hold_portはアサートしない。
図19において、最後に"DS"を検出したレーン1ブロックのaddress_hold_port_1信号はアサートされない。
エラスティックバッファ501のRead Address制御回路503はaddress_hold_port信号がアサートされている間、リードアドレスをインクリメントしない。つまり、最後に"DS"を検出したレーンのエラスティックバッファのライトリードアドレス差分は基準値付近となる。それ以外のレーンのライトリードアドレスの差分は基準値よりも大きくなる。
尚、図18、図19のタイムチャートは、図16に示すようにマルチレーン制御回路に入力される前およびマルチレーン制御回路から出力された後の信号を示す。すなわち、入力信号(例えば、deskew_pattern_cycle)は配線ディレイ対策FFを通過する前の信号であり、出力信号(例えば、deskew_flag)は配線ディレイ対策FFを通過した後の信号である。
したがって、例えば、上述のようにポートリードアドレス制御回路703は、deskew_pattern_cycle信号のすべてが0以外の時に各レーンブロックのdeskew_flag信号をアサートしているが、図18および図19のタイムチャートは、配線ディレイ対策FF通過前または通過後の信号を示しているので、deskew_flag信号が1となるタイミングはdeskew_flag信号がアサートしたタイミングよりも数サイクル遅れて示されている。後述の図20、21も同様である。
次にポート単位でのクロック周波数差補償について説明する。
小規模サーバでは構成するLSI数が少ないため、システムバスを持つすべてのLSIに同じリファレンスクロックを供給することは容易である。そのため、小規模サーバのシステムバスではクロック周波数差補償機能は不要となる。
しかし、大規模サーバのシステムバスでは、多くのLSIに同じリファレンスクロックを分配すると、配線距離が長いことや、分配のためのリピーター段数が多くなることで、ジッター等が大きくなり、同じリファレンスクロックを分配できない。そのため、接続装置間のリファレンスクロックが異なるので、クロック周波数差補償機能が必要となる。
図20は、デスキュー完了後のレーンブロックのクロック周波数差補償のタイムチャートを示す。
図20において、クロック周波数差補償パターンの”CH”が検出されると、clock_pattern_detect信号はアサートされる。
deskew_flag信号がアサートされているので、address_hold信号およびaddress_plus2信号はそれぞれaddress_hold_port信号およびaddress_plus2_port信号と同期する。
したがって、address_plus2_port信号がアサートされるとaddress_plus2信号もアサートされる。リードアドドレス(read_address)が19のとき、address_plus2信号はアサートされているので、リードアドレスは、2インクリメントされ、21となる。
図21は、デスキュー完了後のマルチレーン制御回路のクロック周波数差補償のタイムチャートを示す。
図21において、レーン0、1、および7ブロックのdeskew_flag信号、read_fast信号、read_slow信号、clock_pattern_detect信号、address_hold信号、address_plus2信号のタイムチャートを示し、レーン2〜6ブロックの信号は省略している。
ポートリードアドレス制御回路703は各レーンブロックから通知されるclock_pattern_detect信号が1の時のread_fast信号およびread_slow信号に基づき、address_hold_port信号およびaddress_plus2_port信号を制御する。
clock_pattern_detect信号が1のとき、いずれかのレーンブロックのread_fast信号が1の場合、ポートリードアドレス制御回路703は、すべてのレーンブロックのaddress_hold_port信号をアサートする。
clock_pattern_detect信号が1のとき、すべてのレーンブロックのread_slow信号が1の場合、ポートリードアドレス制御回路703は、すべてのレーンブロックのaddress_plus2_port信号をアサートする。
図21において、デスキュー完了後はレーン間のスキュー位置がそろっているので、各レーンブロックのclock_pattern_detect信号は同時にアサートされている。
clock_pattern_detect信号がアサートされたとき、全てのレーンブロックのread_slow信号がアサートされているので、各レーンブロックのaddress_plus2_port信号はアサートされる。
各レーンブロックのdeskew_flagはアサートされているので、各レーンブロックのaddress_hold信号およびaddress_plus2信号は、それぞれaddress_hold_port信号およびaddress_plus2_port信号と同期する。
しがたって、上述のように各レーンブロックのaddress_plus2_port信号はアサートされると、各レーンブロックのaddress_plus2信号もアサートされる。
尚、図20、図21のタイムチャートは、図16に示すようにマルチレーン制御回路に入力される前およびマルチレーン制御回路から出力された後の信号を示す。すなわち、入力信号(例えば、deskew_pattern_detect)は配線ディレイ対策FFを通過する前の信号であり、出力信号(例えば、address_plus2_port)は配線ディレイ対策FFを通過した後の信号である。
したがって、例えば、上述のようにclock_pattern_detect信号が1のとき、すべてのレーンブロックのread_slow信号が1の場合、ポートリードアドレス制御回路703は、すべてのレーンブロックのaddress_plus2_port信号をアサートするが、図20および図21のタイムチャートは、配線ディレイ対策FF通過前または通過後の信号を示しているので、address_plus2信号が1となるタイミングは遅れて示されている。
実施の形態の受信回路によれば、従来の受信回路に存在したデスキューバッファが削減されているため、回路のレイテンシーを小さくすることができる。また、実施の形態の受信回路によれば、ポート単位でのクロック周波数差補償を行うことが出来る。
サーバに搭載されるシステムバスI/Fを持つすべてのLSIの受信回路に上述の受信回路を適応すれば、レイテンシー削減効果は、パケット送信時に経由するLSI個数倍となる。特に、大規模サーバでは、パケット送信時に経由するLSI数が多いため、レイテンシー削減効果は大きくなる。
尚、本発明は上述の実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、様々な変更を加えることができる。
11 受信回路
21 レーンブロック
31 デスキュー処理部
41 DESerializer
42 Gear-Box
43 10ビット境界検出回路
44 エラスティックバッファ
45 クロック周波数差補償パターン検出回路
46 8B10B変換回路
51 デスキューバッファ
52 デスキューパターン検出回路
101 サーバ
102 SB
103 IOB
104 XBB
105 BP
106 システムバス
111 CPU
112 DRAM
113 MC
114 ポート部
121 IOC
122 GbEコントローラ
123 SASコントローラ
124 HDD
125 ポート部
126 IOバス
131 XB
132 システムバス
141 システムバスI/F
142 ポート部
143 ルーティング部
201 接続元ポート
202 送信回路
203 受信回路
204 マルチレーン制御回路
205 オシレータ
207 送信データ分割部
208 レーン送信データ送信部
209 セレクタ
210 8B10B変換部
211 接続先ポート
212 送信回路
213 受信回路
214 マルチレーン制御回路
215 オシレータ
217 トレーニングパターン受信回路
218 レーン受信データ処理部
219 調節部
220 8B10B変換部
301 受信回路
302 レーンブロック
303 マルチレーン制御回路
311 DESerializer
312 Gear-Box
313 10ビット境界検出回路
314 エラスティックバッファ
315 パターン検出回路
316 8B10B変換回路
501 エラスティックバッファ
502 Write Address制御回路
503 Read Address制御回路
504 FIFO
601 パターン検出回路
602 デスキューパターン比較回路
603 クロック周波数差補償パターン先頭比較回路
604 カウンタ
605 レーンリードアドレス制御回路
606 セレクタ
701 マルチレーン制御回路
702 配線ディレイ対策FF
703 ポートリードアドレス制御回路

Claims (8)

  1. 複数のレーンでシリアル通信によるデータを受信する受信回路において、
    データの読み書きを行い、レーンごとに設けられた複数のバッファと、
    レーン間のスキューを検出し、該レーン間のスキューを無くすように前記バッファのリードアドレスを調節する第1の信号およびレーン間のスキューの調整を行うことを示すデスキュー信号を出力するマルチレーン制御回路と、
    前記デスキュー信号に応じて、前記第1の信号を前記バッファに出力する、レーンごとに設けられた複数のアドレス制御回路と、
    を備える受信回路。
  2. 複数のレーンでシリアル通信によるデータを受信する受信回路において、
    データの読み書きを行い、ライトアドレスとリードアドレスとの差分が所定値より大きいか小さいかを示す差分信号を出力する、レーンごとに設けられた複数のバッファと、
    レーン間のスキューの調整後に、所定のタイミングにおける複数の前記差分信号に基づいて、前記リードアドレスを調節する第1の信号を出力するマルチレーン制御回路と、
    前記第1の信号を前記バッファに出力する、レーンごとに設けられた複数のアドレス制御回路と、
    を備える受信回路。
  3. 前記マルチレーン制御回路は、いずれかの前記レーンの前記差分信号が前記所定値より小さいことを示す場合は、前記リードアドレスをインクリメントしない信号を出力し、全ての前記レーンの前記差分信号が前記所定値より大きいことを示す場合は、前記リードアドレスを2インクリメントする信号を出力する請求項2記載の受信回路。
  4. 複数のレーンでシリアル通信によるデータを受信する受信回路を備えた情報処理装置おいて、
    前記受信回路は、
    データの読み書きを行い、レーンごとに設けられた複数のバッファと、
    レーン間のスキューを検出し、該レーン間のスキューを無くすように前記バッファのリードアドレスを調節する第1の信号およびレーン間のスキューの調整を行うことを示すデスキュー信号を出力するマルチレーン制御回路と、
    前記デスキュー信号に応じて、前記第1の信号を前記バッファに出力する、レーンごとに設けられた複数のアドレス制御回路と、
    を備えることを特徴とする情報処理装置。
  5. 複数のレーンでシリアル通信によるデータを受信する受信回路を備えた情報処理装置おいて、
    前記受信回路は、
    データの読み書きを行い、ライトアドレスとリードアドレスとの差分が所定値より大きいか小さいかを示す差分信号を出力する、レーンごとに設けられた複数のバッファと、
    レーン間のスキューの調整後に、所定のタイミングにおける複数の前記差分信号に基づいて、前記リードアドレスを調節する第1の信号を出力するマルチレーン制御回路と、
    前記第1の信号を前記バッファに出力する、レーンごとに設けられた複数のアドレス制御回路と、
    を備えることを特徴とする情報処理装置。
  6. 前記マルチレーン制御回路は、いずれかの前記レーンの前記差分信号が前記所定値より小さいことを示す場合は、前記リードアドレスをインクリメントしない信号を出力し、全ての前記レーンの前記差分信号が前記所定値より大きいことを示す場合は、前記リードアドレスを2インクリメントする信号を出力する請求項5記載の情報処理装置。
  7. 複数のレーンでシリアル通信によるデータを受信する受信回路のバッファ制御方法において、
    データの読み書きをレーンごとに設けられた複数のバッファで行い、
    レーン間のスキューを検出し、該レーン間のスキューを無くすように前記バッファのリードアドレスを調節する第1の信号およびレーン間のスキューの調整を行うことを示すデスキュー信号を出力する工程と、
    前記差分信号に基づき、前記デスキュー信号に応じて、前記第1の信号を前記バッファに出力する工程と、
    を備えるバッファ制御方法。
  8. 複数のレーンでシリアル通信によるデータを受信する受信回路のバッファ制御方法において、
    ライトアドレスとリードアドレスとの差分が所定値より大きいか小さいかを示す差分信号を出力する工程と、
    レーン間のスキューの調整後に、所定のタイミングにおける複数の前記差分信号に基づいて、前記リードアドレスを調節する第1の信号を前記複数のレーンに出力する工程と、
    前記第1の信号をバッファに出力する工程と、
    を備えるバッファ制御方法。
JP2010012341A 2010-01-22 2010-01-22 受信回路、情報処理装置、およびバッファ制御方法 Expired - Fee Related JP5544896B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010012341A JP5544896B2 (ja) 2010-01-22 2010-01-22 受信回路、情報処理装置、およびバッファ制御方法
EP11150819.8A EP2355431B1 (en) 2010-01-22 2011-01-13 Reception circuit, information processing device, and buffer control method
KR1020110004051A KR101229840B1 (ko) 2010-01-22 2011-01-14 수신 회로, 정보 처리 장치 및 버퍼 제어 방법
US13/009,661 US9001954B2 (en) 2010-01-22 2011-01-19 Reception circuit, information processing device, and buffer control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010012341A JP5544896B2 (ja) 2010-01-22 2010-01-22 受信回路、情報処理装置、およびバッファ制御方法

Publications (2)

Publication Number Publication Date
JP2011151675A true JP2011151675A (ja) 2011-08-04
JP5544896B2 JP5544896B2 (ja) 2014-07-09

Family

ID=44168475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010012341A Expired - Fee Related JP5544896B2 (ja) 2010-01-22 2010-01-22 受信回路、情報処理装置、およびバッファ制御方法

Country Status (4)

Country Link
US (1) US9001954B2 (ja)
EP (1) EP2355431B1 (ja)
JP (1) JP5544896B2 (ja)
KR (1) KR101229840B1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014529245A (ja) * 2011-09-02 2014-10-30 ナパテック アクティーゼルスカブ データパケットの受信時点を識別するシステム及び方法
JP2014216981A (ja) * 2013-04-30 2014-11-17 富士通株式会社 受信装置、情報処理装置及びデータ受信方法
JP2015536073A (ja) * 2012-09-24 2015-12-17 ザイリンクス インコーポレイテッドXilinx Incorporated 非同期バッファを用いたクロック領域境界交差
JP2016517680A (ja) * 2013-03-18 2016-06-16 ザイリンクス インコーポレイテッドXilinx Incorporated スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正
WO2016203997A1 (ja) * 2015-06-16 2016-12-22 ヤマハ株式会社 出力制御装置、出力制御システム、出力制御方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013095526A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Block aligner-based dead cycle deskew method and apparatus
US9600431B2 (en) * 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US10445265B2 (en) * 2017-10-20 2019-10-15 Cisco Technology, Inc. Method and apparatus for deskewing decentralized data streams
JP7069936B2 (ja) * 2018-03-27 2022-05-18 富士通株式会社 送受信システム、データ受信装置、およびデータ受信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159578A (ja) * 2003-11-21 2005-06-16 Toshiba Corp 複数のデータ伝送路を持つシリアルデータ通信方式
JP2008067278A (ja) * 2006-09-11 2008-03-21 Oki Electric Ind Co Ltd エラスティックストア回路
JP2008172657A (ja) * 2007-01-15 2008-07-24 Kawasaki Microelectronics Kk 受信装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054331B1 (en) * 2000-09-13 2006-05-30 Intel Corporation Multi-lane receiver de-skewing
US6766464B2 (en) * 2001-02-13 2004-07-20 Sun Microsystems, Inc. Method and apparatus for deskewing multiple incoming signals
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7093061B2 (en) * 2004-02-19 2006-08-15 Avago Technologies Fiber Ip (Singapore) Pte. Ltd. FIFO module, deskew circuit and rate matching circuit having the same
US7454537B1 (en) * 2004-04-22 2008-11-18 Altera Corporation Synchronization and channel deskewing circuitry for multi-channel serial links
US7500131B2 (en) * 2004-09-07 2009-03-03 Intel Corporation Training pattern based de-skew mechanism and frame alignment
US7549074B2 (en) * 2005-06-02 2009-06-16 Agere Systems Inc. Content deskewing for multichannel synchronization
US8867683B2 (en) * 2006-01-27 2014-10-21 Ati Technologies Ulc Receiver and method for synchronizing and aligning serial streams
US20090063889A1 (en) * 2007-09-05 2009-03-05 Faisal Dada Aligning data on parallel transmission lines
JP5038207B2 (ja) * 2008-03-27 2012-10-03 日本オクラロ株式会社 伝送システム及びデータ伝送方法
JP5381305B2 (ja) * 2009-05-08 2014-01-08 富士通株式会社 受信装置、送受信装置、及び伝送システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159578A (ja) * 2003-11-21 2005-06-16 Toshiba Corp 複数のデータ伝送路を持つシリアルデータ通信方式
JP2008067278A (ja) * 2006-09-11 2008-03-21 Oki Electric Ind Co Ltd エラスティックストア回路
JP2008172657A (ja) * 2007-01-15 2008-07-24 Kawasaki Microelectronics Kk 受信装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014529245A (ja) * 2011-09-02 2014-10-30 ナパテック アクティーゼルスカブ データパケットの受信時点を識別するシステム及び方法
US9729259B2 (en) 2011-09-02 2017-08-08 Napatech A/S System and a method for identifying a point in time of receipt of a data packet
JP2015536073A (ja) * 2012-09-24 2015-12-17 ザイリンクス インコーポレイテッドXilinx Incorporated 非同期バッファを用いたクロック領域境界交差
JP2016517680A (ja) * 2013-03-18 2016-06-16 ザイリンクス インコーポレイテッドXilinx Incorporated スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正
JP2014216981A (ja) * 2013-04-30 2014-11-17 富士通株式会社 受信装置、情報処理装置及びデータ受信方法
WO2016203997A1 (ja) * 2015-06-16 2016-12-22 ヤマハ株式会社 出力制御装置、出力制御システム、出力制御方法
JP2017011335A (ja) * 2015-06-16 2017-01-12 ヤマハ株式会社 オーディオ機器
US10356527B2 (en) 2015-06-16 2019-07-16 Yamaha Corporation Output control device, output control system, and output control method

Also Published As

Publication number Publication date
EP2355431A1 (en) 2011-08-10
JP5544896B2 (ja) 2014-07-09
KR101229840B1 (ko) 2013-02-05
US20110182384A1 (en) 2011-07-28
EP2355431B1 (en) 2017-07-19
US9001954B2 (en) 2015-04-07
KR20110086509A (ko) 2011-07-28

Similar Documents

Publication Publication Date Title
JP5544896B2 (ja) 受信回路、情報処理装置、およびバッファ制御方法
JP6221328B2 (ja) 受信装置、情報処理装置及びデータ受信方法
US7747888B2 (en) Technique to create link determinism
KR100806445B1 (ko) 핫 추가/제거 기능을 갖춘 메모리 채널
JP6149150B2 (ja) スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正
JP3992100B2 (ja) 伝送リンク層コア速度を高くするためのネットワーク
EP1813039A2 (en) Method and apparatus for aligning data in a wide, high-speed, source synchronous parallel link
JPH03209510A (ja) クロック分散システム及び技術
WO2016058344A1 (zh) 一种确定链路延时的方法、装置、通信设备和存储介质
EP1271284B1 (en) Timing signal generating system
JP2006195602A (ja) システムクロック分配装置、システムクロック分配方法
US6952789B1 (en) System and method for synchronizing a selected master circuit with a slave circuit by receiving and forwarding a control signal between the circuits and operating the circuits based on their received control signal
US6640277B1 (en) Input staging logic for latching source synchronous data
KR102518285B1 (ko) PCIe 인터페이스 및 인터페이스 시스템
US20140365629A1 (en) Information processing system
JP2004280732A (ja) フォルトトレラントシステム及びそれに用いる同期化方法
US7672178B2 (en) Dynamic adaptive read return of DRAM data
JP3562416B2 (ja) Lsi間データ転送システム及びそれに用いるソースシンクロナスデータ転送方式
Romoth et al. Optimizing inter-FPGA communication by automatic channel adaptation
JP7337021B2 (ja) 産業用ネットワークに接続されるスレーブ装置を制御するマスタ装置及び当該マスタ装置に備えられる通信モジュール
WO2024086639A1 (en) Pcie retimer providing failover to redundant endpoint and multiple endpoint switching using synchronized multi-tile data interface
US7269681B1 (en) Arrangement for receiving and transmitting PCI-X data according to selected data modes
WO2024113681A1 (zh) 一种时钟架构及处理模组
KR20090063956A (ko) 신호 전송 장치 및 신호 전송 방법
TW202403740A (zh) 具有時脈閘控機制的資料傳輸裝置以及資料傳輸方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140428

R150 Certificate of patent or registration of utility model

Ref document number: 5544896

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees