(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-29
(45)【発行日】2024-09-06
(54)【発明の名称】低遅延レシーバ
(51)【国際特許分類】
H04L 7/033 20060101AFI20240830BHJP
【FI】
H04L7/033 700
(21)【出願番号】P 2021577646
(86)(22)【出願日】2020-06-01
(86)【国際出願番号】 US2020035570
(87)【国際公開番号】W WO2021002988
(87)【国際公開日】2021-01-07
【審査請求日】2023-05-11
(32)【優先日】2019-07-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ノベリッニ,パオロ
(72)【発明者】
【氏名】テイラー,デイビッド・エフ
(72)【発明者】
【氏名】リチャードソン,アラステア・ジェイ
【審査官】北村 智彦
(56)【参考文献】
【文献】特表2007-505578(JP,A)
【文献】特開2003-023352(JP,A)
【文献】米国特許第09960902(US,B1)
【文献】特開2012-253429(JP,A)
【文献】特開2010-166605(JP,A)
【文献】特開2014-027333(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/033
(57)【特許請求の範囲】
【請求項1】
装置であって、
第1の速度でデータを受信するように構成された物理媒体アタッチメント(PMA)を含み、前記PMAは、受信した前記データを第2の速度にオーバークロックするようにさらに構成され、前記第2の速度は、第1の速度よりも高く、
前記PMAから前記第2の速度で前記データを受信するように構成された物理コーディングサブレイヤ(PCS)と、
位相検出器とを含み、前記位相検出器は、前記PCSから別のデータを受信するように構成されまたは前記第2の速度で前記PMAから前記データを直接に受信するように構成され、前記別のデータは、
前記PMAから前記第2の速度で受信した前記データに依存し、前記位相検出器は、ビット遷移に基づいて
基準クロック信号の位相を調整するようにさらに構成され、
前記位相検出器に連結された発振器を含み、前記発振器は、
前記基準クロック信号を生成するように構成され、前記基準クロック
信号の
前記位相は、前記位相検出器によって調整され、前記発振器は、前記調整されたクロックに基づいて前記PMAを計時するように構成される、装置。
【請求項2】
前記発振器に連結された位相ロックループ(PLL)をさらに含み、
前記PLLは、前記調整されたクロックの周波数を増加させるように構成される、請求項1に記載の装置。
【請求項3】
前記PMAによって送信された前記データは、前記PCSをバイパスし、前記位相検出器によって受信される、請求項1に記載の装置。
【請求項4】
前記PMAから前記位相検出器への前記データの送信を容易にするように構成された指向性インターフェイスをさらに含む、請求項3に記載の装置。
【請求項5】
前記位相検出器は、フィールドプログラマブルゲートアレイ(FPGA)のファブリック内に実装され、
前記PMAおよび前記PCSは、トランシーバ内に実装され、
前記PMA
のクロックおよびデータ復元(CDR)は、無効にされる、請求項1に記載の装置。
【請求項6】
装置であって、
第1の速度でデータを受信するように構成された物理媒体アタッチメント(PMA)を含み、前記PMAは、受信した前記データを第2の速度にオーバークロックするようにさらに構成され、前記第2の速度は、第1の速度よりも高く、
前記PMAから前記第2の速度で前記データを受信するように構成された物理コーディングサブレイヤ(PCS)と、
位相検出器とを含み、前記位相検出器は、前記PCSから別のデータを受信するように構成されまたは前記第2の速度で前記PMAから前記データを受信するように構成され、前記別のデータは、
前記PMAから前記第2の速度で受信した前記データに依存し、前記位相検出器は、ビット遷移に基づいて位相を調整するようにさらに構成され、
クロック信号を生成するように構成された発振器と、
前記位相検出器に連結された位相ロックループ(PLL)とを含み、前記PLLは、
前記発振器によって生成された前記クロック
信号の周波数を増加させるように構成され、前記PLLは、基準クロック信号を生成するように、前記位相検出器の前記位相調整に基づいて調整され、前記PLLは、前記基準クロック
信号に基づいて前記PMAを計時するように構成される、装置。
【請求項7】
前記PMAによって送信された前記データは、前記PCSをバイパスし、前記位相検出器によって受信される、請求項6に記載の装置。
【請求項8】
前記PMAから前記位相検出器への前記データの送信を容易にするように構成された指向性インターフェイスをさらに含む、請求項7に記載の装置。
【請求項9】
前記PCSから前記位相検出器への前記別のデータの送信を容易にするように構成された逆指向性インターフェイスをさらに含む、請求項1または6に記載の装置。
【請求項10】
装置であって、
第1の速度でデータを受信するように構成された物理媒体アタッチメント(PMA)を含み、前記PMAは、クロック信号を受信するようにさらに構成され、前記PMAは、受信した前記データを第2の速度にオーバークロックするようにさらに構成され、前記第2の速度は、第1の速度よりも高く、
前記PMAから前記第2の速度で前記データを受信するように構成された物理コーディングサブレイヤ(PCS)と、
位相検出器とを含み、前記位相検出器は、前記PCSから別のデータを受信するように構成されまたは前記第2の速度で前記PMAから前記データを受信するように構成され、前記別のデータは、
前記PMAから前記第2の速度で受信した前記データに依存し、前記位相検出器は、ビット遷移に基づいて制御信号を生成するようにさらに構成され、前記制御信号は、前記位相検出器から前記PMAに送信され、前記制御信号は、前記PMAの
クロックおよびデータ復元(CDR)を制御するための前記PMAのクロック信号の位相を調整する、装置。
【請求項11】
発振信号を生成するように構成された発振器と、
前記発振器に連結された位相ロックループ(PLL)とをさらに含み、
前記PLLは、前記発振信号の周波数を増加させることによって、前記クロック信号を生成するように構成される、請求項10に記載の装置。
【請求項12】
前記PCSは、前記第2の速度で
前記PMAから受信した前記データの速度を第3の速度に増加させるようにオーバークロックされ、
前記PCSからの前記データは、逆指向性インターフェイスを介して、前記第3の速度で前記位相検出器に送信される、請求項1、6または10に記載の装置。
【請求項13】
前記PMAによって送信されたデータは、前記PCSをバイパスし、指向性インターフェイスを介して前記位相検出器によって受信される、請求項10に記載の装置。
【請求項14】
調整される位相に関連する統計データを蓄積するように、前記位相検出器の出力に連結されたフィルタをさらに含む、請求項1、6または10に記載の装置。
【請求項15】
前記位相検出器は、フィールドプログラマブルゲートアレイ(FPGA)のファブリック内に実装され、
前記PMAおよび前記PCSは、トランシーバ内に実装される、請求項6または10に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本開示は、一般的にはレシーバに関し、具体的には物理媒体アタッチメント(PMA)のオーバークロックに関する。
【背景技術】
【0002】
背景
特定の通信アプリケーションは、低遅延から利益を得ている。例えば、自動取引は、為替取引の大部分を占めており、例えばファイバー、マイクロ波、銅線などの通信チャネルを介して様々なデータセンタから送信される市場データフィードを含む要素間の低遅延接続、並びに取引所の取引およびローカル市場データへの接続から非常に大きな利益を得ている。したがって、特定の取引および/またはアプリケーション、例えば金融テクノロジーの高頻度取引は、低遅延から非常に大きな利益を得ている。したがって、遅延を低減するために、多くの高頻度取引業者は、取引所の近傍に本拠地を配置する。
【0003】
残念ながら、トランシーバの遅延は、取引に使用される電子回路の遅延全体の約50%を占める。したがって、トランシーバの遅延を低減するために、いくつかの試みを行われてきた。しかしながら、トランシーバの物理媒体アタッチメント(PMA)をオーバークロックすることによってPMAの遅延を改善する試みは、まだ行われていない。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
したがって、ジッタトレランスを制御すると共にランレングス性能を保証しながら、物理媒体アタッチメント(PMA)をオーバークロックする必要がある。いくつかの実施形態において、物理コーディングサブレイヤ(PCS)の遅延を低減するか否かに係わらず、PMAをオーバークロックすることができる。例えば、PCSの遅延を低減するようにPCSをオーバークロックするまたはPCSをバイパスすると共に、PMAの遅延を低減するようにPMAをオーバークロックすることができる。いくつかの実施形態において、PCSを変更せず、PMAをオーバークロックすることができる。
【0005】
いくつかの非限定的な例において、装置は、物理媒体アタッチメント(PMA)と、物理コーディングサブレイヤ(PCS)と、位相検出器と、発振器とを含む。PMAは、第1の速度でデータを受信し、受信したデータを第2の速度にオーバークロックする。第2の速度は、第1の速度よりも高い。PCSは、第2の速度でデータを受信する。位相検出器は、PCSから別のデータを受信するように構成され、または位相検出器は、第2の速度でPMAからデータを直接に受信するように構成される。別のデータは、第2の速度で受信したデータに依存する。位相検出器は、ビット遷移(bit transition)に基づいて位相を調整する。発振器は、位相検出器に連結され、基準クロック信号を生成する。基準クロックの位相は、位相検出器によって調整される。発振器は、調整されたクロックに基づいてPMAを計時する。
【0006】
いくつかの実施形態において、装置は、発振器に連結された位相ロックループ(PLL)をさらに含む。PLLは、調整されたクロックの周波数を増加させるように構成される。PCSは、第2の速度で受信したデータの速度を第3の速度に増加させるようにオーバークロックされてもよい。このデータは、第3の速度で位相検出器に送信される。いくつかの非限定的な例において、PMAによって送信されたデータは、PCSをバイパスし、位相検出器によって受信される。
【0007】
いくつかの非限定的な例において、装置は、PMAから位相検出器へのデータの送信を容易にするように構成された指向性インターフェイスをさらに含む。いくつかの非限定的な例において、装置は、PCSから位相検出器への別のデータの送信を容易にするように構成された逆指向性インターフェイスを含む。
【0008】
いくつかの非限定的な例において、装置は、調整される位相に関連する統計データを蓄積するように、位相検出器の出力に連結されたフィルタをさらに含む。位相検出器は、フィールドプログラマブルゲートアレイ(FPGA)のファブリック内に実装されてもよく、PMAおよびPCSは、PMAの基準のロックを無効にしたトランシーバ内に実装されてもよい。
【0009】
いくつかの非限定的な実施形態によれば、装置は、PMAと、PCSと、位相検出器と、発振器と、PLLとを含む。PMAは、第1の速度でデータを受信するように構成されてもよい。PMAは、受信したデータを第2の速度にオーバークロックするようにさらに構成される。第2の速度は、第1の速度よりも高い。PCSは、第2の速度でデータを受信するように構成される。位相検出器は、PCSから別のデータを受信するように構成され、または第2の速度でPMAからデータを受信するように構成される。別のデータは、第2の速度で受信したデータに依存する。位相検出器は、ビット遷移に基づいて位相を調整するようにさらに構成されてもよい。発振器は、クロック信号を生成するように構成される。PLLは、位相検出器に連結される。PLLは、クロックの周波数を増加させるように構成され、PLLは、基準クロック信号を生成するように、位相検出器の位相調整に基づいて調整される。PLLは、基準クロックに基づいてPMAを計時するように構成される。
【0010】
いくつかの非限定的な実施形態において、装置は、第1の速度でデータを受信するように構成されたPMAを含む。PMAは、クロック信号を受信し、受信したデータを第2の速度にオーバークロックするようにさらに構成される。第2の速度は、第1の速度よりも高い。PCSは、第2の速度でデータを受信するように構成される。位相検出器は、PCSから別のデータを受信するように構成され、または第2の速度でPMAからデータを受信するように構成される。別のデータは、第2の速度で受信したデータに依存する。位相検出器は、ビット遷移に基づいて制御信号を生成するようにさらに構成される。制御信号は、位相検出器からPMAに送信され、制御信号は、PMAの基準のロックを制御するためのPMAのクロック信号の位相を調整する。
【0011】
以下の詳細な説明を参照して、これらの態様および他の態様を理解することができる。
上述した特徴の詳細を理解できるように、添付の図面に示されたいくつかの実装例を参照して、上記の簡単な要約をより具体的に説明することができる。なお、添付の図面は、代表的な実装例を例示するものに過ぎず、本発明の範囲を限定するものと見なすべきではない。
【図面の簡単な説明】
【0012】
【
図1A】いくつかの例に従って、物理媒体アタッチメント(PMA)がオーバークロックされているトランシーバを示すブロック図である。
【
図1B】いくつかの例に従って、例示的な位相検出および補正を示す図である。
【
図1C】いくつかの例に従って、例示的な位相検出および補正を示す図である。
【
図1D】いくつかの例に従って、例示的な位相検出および補正を示す図である。
【
図1E】いくつかの例に従って、例示的な位相検出および補正を示す図である。
【
図2】いくつかの例に従って、PMAがオーバークロックされているトランシーバを示す別のブロック図である。
【
図3A】いくつかの例に従って、トランシーバ内に実装され且つオーバークロックされている代替的なPMAを示すブロック図である。
【
図3B】いくつかの例に従って、トランシーバ内に実装され且つオーバークロックされている代替的なPMAを示すブロック図である。
【
図4A】いくつかの例に従って、トランシーバ内に実装され且つオーバークロックされている別の代替的なPMAを示す別のブロック図である。
【
図4B】いくつかの例に従って、トランシーバ内に実装され且つオーバークロックされている別の代替的なPMAを示す別のブロック図である。
【
図5】いくつかの例に従って、プログラマブル集積回路(IC)を示すブロック図である。
【
図6】いくつかの例に従って、プログラマブルICに実装されたフィールドプログラマブルゲートアレイ(FPGA)を示す図である。
【発明を実施するための形態】
【0013】
詳細な説明
理解を容易にするために、できる限り、同一の参照番号を使用して、図面に共通する同一の要素を示す。なお、1つの例の要素は、他の例に有利に組み込まれてもよい。
【0014】
本明細書に記載された例は、トランシーバ、例えば、10Gbeのシリアライザ/デシリアライザ(serdes:シリアル/デシリアル)内の物理媒体アタッチメント(PMA)の遅延を低減することに関する。上記で説明したように、特定のアプリケーション、例えばHFTは、低遅延から利益を得ることができる。したがって、本明細書に記載された実施形態は、遅延、例えば物理コーディングサブレイヤ(PCS)の遅延を低減するために、他の装置と共に使用され得るPMAの遅延を低減することに対処する。例えば、PCSをオーバークロックするまたはPCSをバイパスすることによってPCSの遅延を低減すると共に、PMAのレシーバをオーバークロックすることによってPMAの遅延を低減することができる。いくつかの実施形態において、PCSを変更せず、PMAをオーバークロックすることができる。トランシーバの遅延を低減することによって、遅延全体の約25%以上を低減することができる。いくつかの非限定的な例において、ジッタトレランスを適切に制御しながら、ランレングス性能を保証すると共に、PMAをオーバークロックすることができる。なお、例示のために、10Gbeのシリアル/デシリアルトランシーバおよびフィールドプログラマブルゲートアレイ(FPGA)内の実装を参照して、実施形態を説明するが、10Gbeのシリアル/デシリアルトランシーバに関する実施形態およびその説明、ならびにFPGA内のその実装は、本発明の範囲を限定するものとして解釈されるべきではない。
【0015】
以下、図面を参照して様々な特徴を説明する。なお、図面は、一定の縮尺で描かれていない場合もあり、同様の構造または機能を有する要素は、図面の全体を通して同様の参照番号によって示される。また、図面は、単に特徴の説明を容易にすることを意図しており、本発明を網羅的に説明することまたは本発明の範囲を限定することを意図していない。例えば、いくつかの例に係る様々な方法は、より多いまたはより少ない動作を含んでもよく、いくつかの例に係る様々な方法の動作の順番は、本明細書に記載されたものと異なってもよい。さらに、図示された例は、全ての態様または利点を含む必要がない。特定の例に関連して説明された態様または利点は、必ずしもその例に限定されず、そのように図示されなくてもまたはそのように明示的に説明されなくても、任意の他の例に実施されてもよい。
【0016】
まず、本明細書に使用される用語および術語を明確にするために、いくつかの一般概念を説明する。
【0017】
図1Aを参照して、
図1Aは、いくつかの例に従って、物理媒体アタッチメント(PMA)がオーバークロックされているトランシーバを示すブロック図である。トランシーバは、PMA110およびPCS120を含むことができる。データ102は、10Gbeなどの特定の速度でトランシーバによって受信され、1つ以上のアプリケーション、例えばアプリケーションロジック132、134、...、136に送信される。アプリケーションロジックは、任意のアプリケーション、例えば、低遅延から利益を得ることができるHFTアプリケーションを含むことができる。PMA110は、例えば2倍または3倍にオーバークロックされる。いくつかの実施形態において、例えばシリアル/デシリアルレシーバに実装されたPMA110のクロックおよびデータ復元(CDR)は、無効にされる。PMA110は、発振器150および/または位相ロックループ(PLL)160から受信したクロック信号を用いて、受信したデータ102をロックオンするように構成される。PMA110は、受信したデータ102をサンプリングすることによって、データ112を生成することができる。例えば、各受信ビットは、3回または4回にサンプリングされてもよい。例示的な例として、データ102が10Gbeで受信され、3回にサンプリングされた場合、PMA110は、30.9375ギガビット/秒を生成する。
【0018】
図1Aに示すように、データ112は、PCS120に送信される。いくつかの実施形態において、PCS120は、受信したデータ112が先入れ先出し(FIFO)バッファをバイパスすることによって遅延を低減するクロッキング構造を含むように構成される。いくつかの実施形態において、PCS120は、シリコンスクリーニングによってインターフェイス(例えば、ファブリックのシリアル/デシリアルインターフェイス)にオーバークロックされてもよい。データ122は、PCS120を用いて生成され、PCSは、データ112の入力速度とは異なる速度、例えばより高い速度を有してもよい。なお、データ122は、逆指向性インターフェイスを介してアプリケーションに送信されてもよい。いくつかの例示的な例において、例えば、指向性インターフェイスを介して、データ112をファブリック内のアプリケーションに提供することによって、PCS120を完全にバイパスしてもよい。ローカルクロックツリーを用いて、PCS120をバイパスすることができる。その結果、PCS120をオーバークロックすることによって、FIFOをバイパスすることによって、またはPCS120をバイパスすることによって、遅延を改善する。なお、PCS120を変更しなくてもよい。
【0019】
いくつかの実施形態において、PCS120をバイパスした場合、データ122は、データ112と同じであってもよい。PCS120をオーバークロックした場合、データ122は、データ112と異なってもよい。データ122は、適切なアプリケーションロジック、例えばアプリケーションロジック132、134、...、136に送信される。また、データ122は、位相検出器140に送信される。以下、
図1B~1Eを参照して、位相検出器140の動作を説明する。位相検出器140は、データサンプルS
1、S
2、S
3、...、S
15を受信することができる。位相検出器140は、データサンプル間の遷移から、位相を調整すべきか否かを判断することができる。例えば、
図1Bにおいて、位相検出器140のウィンドウは、サンプルデータS
6から遷移して来たサンプルデータS
7、S
8およびS
9をカバーしている。このウィンドウは、データ102の速度の各ビットの期間に対応する。例えば、10Gbeのデータ102の場合、ウィンドウは、97ピコ秒であってもよい。位相検出器140のウィンドウが同じビット値を有するサンプルデータS
7、S
8およびS
9をカバーし且つPMA110が受信したデータを3回にサンプリングしたため、位相を調整する必要がないと判断される。対照的に、
図1Cにおいて、位相検出器140のウィンドウは、異なる値を有するサンプルデータS
9、S
10およびS
11をカバーしており、S
9は、前の2つのサンプルビットS
7およびS
8と同じ値を有し、サンプルデータS
10およびS
11とは異なる値を有する。したがって、位相検出器140は、位相を調整すべきである、すなわち、(図示のように)位相を左側にシフトすべきであると判断することができる。
【0020】
図1Dを参照して、位相検出器140のウィンドウは、異なる値を有するサンプルデータS
6、S
7およびS
8をカバーしており、S
6は、前のサンプルビットと同じ値を有し、サンプルデータS
7およびS
8とは異なる値を有する。したがって、位相検出器140は、位相を調整すべきである、すなわち、(図示のように)位相を右側にシフトすべきであると判断することができる。対照的に、
図1Eを参照して、位相検出器140のウィンドウは、サンプルデータS
12、S
13およびS
14をカバーしており、サンプルデータS
13は、前のサンプルデータ、例えばS
10、S
11、S
12および後のサンプルデータ、例えばS
14およびS
15とは異なる値を有する。PMA110が受信したデータ102を3回にサンプリングしたため、位相検出器140は、前のビットおよび後のビットとは異なる値を有するS
13がジッタまたは他の誤差によって生じたものであり得ると判断することができる。したがって、位相検出器140は、位相を変更する必要がないと判断することができる。
【0021】
いくつかの実施形態において、位相検出器140は、発振器150の位相を調整するために、発振器150に信号を出力する。発振器150は、調節可能である。すなわち、発振器150の位相および周波数を制御することによって、サンプルデータの遷移をファブリックインターフェイス内の固定位置にロックする。いくつかの実施形態において、発振器150は、周波数を増加させるために、位相ロックループ(PLL)160に供給され得る基準クロック信号を生成する。PLL160の出力は、クロック信号の適切な位相で受信信号102をロックするためにPMA110に供給される。換言すれば、PMA110が外部発振器150および位相検出器140を介して設定されたため、PMA110のCDR機能は、無効にされる。位相検出器140は、直列に動作するではなく、他のアプリケーションロジックと並列に動作するため、レシーバの遅延を増加しない。
【0022】
なお、PMA110、PCS120およびPLL160を含むトランシーバは、FPGA内に実装されてもよい。アプリケーションロジック132、134、...、136および位相検出器140は、ファブリック内に実装されてもよい。発振器150は、基板上に実装されてもよい。PCS120は、ファブリックインターフェイスを介して、アプリケーションロジック132、134、...、136および位相検出器140に連結される。なお、FPGAを使用した実装は、例示的なものであり、実施形態を限定するものとして解釈されるべきではない。例えば、特定用途向け集積回路(ASIC)を使用してもよく、ASICとFPGAの組み合わせを使用してもよい。例示の目的で、PLL160を使用して実施形態を説明したが、PLL160の使用は、実施形態の範囲を限定するものとして解釈されるべきではない。例えば、いくつかの実施形態において、発振器150は、クロック信号を生成して、PLLを介さず、クロック信号をPMA110に供給することができる。
【0023】
次に
図2を参照して、
図2は、いくつかの例に従って、PMAがオーバークロックされているトランシーバを示す別のブロック図である。
図2は、サンプルデータの遷移および位相の変更に関する統計情報を収集するために、位相検出器140に連結されたフィルタ210を除いて、
図1Aと同様である。例えば、フィルタ210は、一定の期間においてデータを収集することができ、その期間中の位相の変更が適切であると判断した場合、発振器150によって生成されたクロック信号の位相を変更するための信号を生成することができる。
【0024】
図3Aおよび3Bを参照して、
図3Aおよび3Bは、いくつかの例に従って、トランシーバ内に実装され且つオーバークロックされている代替的なPMAを示すブロック図である。
図3Aは、
図1Aと実質的に同様である。しかしながら、この実施形態において、位相の変更は、発振器150ではなく、PLL160を制御する。すなわち、発振器150は、位相検出器140によって制御されない自走発振器であってもよい。しかしながら、位相検出器140は、PLL160の出力周波数を変調する。
図3Bは、
図2で説明したものと同様のフィルタ310を含むことを除いて、
図3Aと同様である。
【0025】
図4Aおよび4Bを参照して、
図4Aおよび4Bは、いくつかの例に従って、トランシーバ内に実装され且つオーバークロックされている別の代替的なPMAを示す別のブロック図である。
図4Aは、
図1Aと実質的に同様である。しかしながら、この実施形態において、PMA110のCDR機能は、無効にされておらず、位相検出器140によって制御されている。位相検出器140は、発振器150および/またはPLL160を制御しない。よって、発振器140は、自走発振器であってもよい。したがって、位相検出器140は、PMA110のCDR出力周波数を直接に変調する。
図4Bは、
図2で説明したものと同様に、統計情報を収集するためにフィルタ410が使用されることを除いて、
図4Aと同様である。
【0026】
図5は、一例に係るプログラマブル集積回路(IC)900を示すブロック図である。プログラマブルIC900は、
図1A~4Bに示されたシステムの集積回路(IC)チップの全体または一部を実装することができる。プログラマブルIC900は、処理システム902と、プログラマブルロジック904と、構成ロジック906と、構成メモリ908とを含む。プログラマブルIC900は、不揮発性メモリ910、RAM912、および他の回路914などの外部回路に連結されてもよい。
【0027】
処理システム902は、マイクロプロセッサ、メモリ、サポート回路、IO回路などを含むことができる。プログラマブルロジック904は、ロジックセル916と、サポート回路918と、プログラマブル相互接続920とを含む。ロジックセル916は、複数の入力の一般的なロジック機能を実現するように構成され得る回路を含む。サポート回路918は、トランシーバ、入力/出力ブロック、デジタル信号プロセッサ、メモリなどの専用回路を含む。ロジックセルおよびサポート回路918は、プログラマブル相互接続920を介して相互接続されてもよい。ロジックセル916をプログラミングするための情報、サポート回路918のパラメータを設定するための情報、およびプログラマブル相互接続920をプログラミングするための情報は、構成ロジック906によって構成メモリ908に記憶される。構成ロジック906は、不揮発性メモリ910または任意の他のソース(例えば、RAM912または他の回路914)から、構成データを取得することができる。
【0028】
図6は、プログラマブルIC900のFPGA実装を示す。FPGAは、構成可能なロジックブロック(CLB)930、ランダムアクセスメモリブロック(BRAM)932、信号処理ブロック(DSP)934、入力/出力ブロック(IOB)936、構成およびクロックロジック(CONFIG/CLOCKS)938、デジタルトランシーバ940、専用入力/出力ブロック(I/O)942(例えば、構成ポートおよびクロックポート)、および他のプログラマブルロジック944(例えば、デジタルクロックマネージャ、およびシステム監視ロジックなど)を含む多数の異なるプログラマブルタイルを含む。また、FPGAは、PCIeインターフェイス946、アナログデジタル変換器(ADC)948などを含むことができる。
【0029】
いくつかのFPGAにおいて、
図6の例示によって示されたように、各プログラマブルタイルは、同じタイル内のプログラマブルロジック要素の入力および出力端子952との接続を有する少なくとも1つのプログラマブル相互接続要素(INT)950を含むことができる。また、各プログラマブル相互接続要素950は、同じタイルまたは他のタイル内の隣接するプログラマブル相互接続要素の相互接続セグメント954との接続を含むことができる。また、各プログラマブル相互接続要素950は、ロジックブロック(図示せず)間の一般的なルーティングリソースの相互接続セグメント956との接続を含むことができる。一般的なルーティングリソースは、相互接続セグメント(例えば、相互接続セグメント956)のトラックを含むロジックブロック(図示せず)と、相互接続セグメントを接続するためのスイッチブロック(図示せず)との間のルーティングチャネルを含むことができる。一般的なルーティングリソースの相互接続セグメント(例えば、相互接続セグメント956)は、1つ以上のロジックブロックに亘って延在することができる。プログラム可能相互接続要素950は、一般的なルーティングリソースと共に、図示のFPGAのためのプログラム可能相互接続構造(プログラム可能相互接続)を実装する。
【0030】
例示的な実装形態において、CLB930は、ユーザロジックを実装するようにプログラムできる構成可能なロジック要素(CLE)960と、単一のプログラマブル相互接続要素(INT)950とを含むことができる。BRAM932は、1つ以上のプログラマブル相互接続要素の他に、BRAMロジック要素(BRL)962を含むことができる。一般的には、タイルに含まれる相互接続要素の数は、タイルの高さに依存する。図示の例示において、BRAMタイルは、5つのCLBと同様の高さを有するが、他の数(例えば、4つ)のCLBと同様の高さを有してもよい。信号処理ブロック934は、適切な数のプログラマブル相互接続要素の他に、DSPロジック要素(DSPL)964を含むことができる。IOB936は、例えば、1つのインスタンスのプログラマブル相互接続要素950に加えて、2つのインスタンスの入力/出力ロジック要素(IOL)966を含むことができる。当業者には明らかなように、例えば、I/Oロジック要素966に接続された実際のI/Oパッドは、一般的に入力/出力ロジック要素966の領域に限定されない。
【0031】
図示の例示において、ダイの中央付近の水平領域は、構成、クロックおよび他の制御ロジックに使用される。この水平領域または列から延在する垂直列968は、FPGAの全幅にわたってクロックおよび設定信号を分配するために使用される。
【0032】
図6に示されたアーキテクチャを利用する一部のFPGAは、FPGAの大部分を構成する規則的な列構造を乱すための追加のロジックブロックを含む。追加のロジックブロックは、プログラマブルブロックおよび/または専用ロジックであってもよい。
【0033】
なお、
図6は、単に例示的なSOCアーキテクチャを示すことを意図している。例えば、行内のロジックブロックの数、行の相対幅、行の数および順序、行に含まれたロジックブロックの種類、ロジックブロックの相対サイズ、および
図6の上部に示された相互接続/ロジックの実装は、単に例示的なものである。例えば、実際のFPGAにおいて、ユーザロジックの効率的な実装を容易にするために、一般的に、CLBの2つ以上の隣接する列は、CLBの出現する箇所に含まれ、隣接するCLB行の数は、FPGAの全体的なサイズに応じて変化する。
【0034】
上記は、特定の例を記載するが、本発明の基本的な範囲から逸脱することなく、他の例およびさらなる例を考案することができる。本発明の範囲は、以下の特許請求の範囲によって規定される。