JP6170970B2 - 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法 - Google Patents

異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法 Download PDF

Info

Publication number
JP6170970B2
JP6170970B2 JP2015145998A JP2015145998A JP6170970B2 JP 6170970 B2 JP6170970 B2 JP 6170970B2 JP 2015145998 A JP2015145998 A JP 2015145998A JP 2015145998 A JP2015145998 A JP 2015145998A JP 6170970 B2 JP6170970 B2 JP 6170970B2
Authority
JP
Japan
Prior art keywords
clock
signal
clock signal
data rate
ports
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.)
Active
Application number
JP2015145998A
Other languages
English (en)
Other versions
JP2016006658A (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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2016006658A publication Critical patent/JP2016006658A/ja
Application granted granted Critical
Publication of JP6170970B2 publication Critical patent/JP6170970B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Description

関連出願の相互参照
この出願は2009年12月11日出願の米国非暫定出願第12/635,942号の利益を主張し、その全てがここに記載されているものとして参照として組み込まれる。
この出願は、コンピュータバス及び相互接続プロトコル、例えば周辺コンポーネント相互接続エクスプレス(Peripheral Component Interconnect Express)(PCIe)、ハイパートランスポート(HyperTransport)等、に関する。
コンピュータシステムにおいては、単一又は複数のホストプロセッサと他のデバイスを相互接続すると共にそれらの間でデータを転送するために、種々のバスが設けられている。例としては、旧来の周辺コンポーネント相互接続(PCI)及びPCI−X規格に代わるものとして、PCIeが開発されてきた。PCIeは、マザーボード搭載の周辺機器をリンクするためのマザーボードレベル相互接続として、及びアドインボードのための拡張カードインタフェースとして、消費者、サーバ、及び産業応用において用いられる。
PCIeバスと旧来のPCIバス又はPCI−Xバスとの相違点は、共有パラレルバスアーキテクチャよりもむしろ点対点(point-to-point)シリアルリンクに基づくトポロジである。PCIeは、旧来のパラレルPCI及びPCI−Xバスの高速シリアル置換であると考えることができる。ソフトウエアレベルでは、PCIeはPCIとの互換性を保っているので、PCIeデバイスは、PCIeの新しい特徴に関する情報を何ら有していない旧式のアプリケーション及びオペレーティングシステムにおいて設定され且つ使用され得る。
PCIe1.0又は1.1においては、各レーン(lene)は250MB/sを搬送する。2007年後期にリリースされたPCIe2.0では、速度を500MB/sに倍増する第2世代シグナリングモード(second generation signaling mode)が追加されている。
PCIe2.0及び3.0もまた、旧世代のPCIe(即ちPCIe1.x)との互換性を維持している。PCIe1.x適合デバイスはまだ市場で用いられているので、PCIe2.0又は3.0適合デバイスは、PCIe1.x適合デバイスに接続される必要があるであろう。PCIe2.0又は3.0デバイスは、ポートの1つによる要求に応じてクロック速度を切り換え、且つ任意の他のポートでのデータ転送を遮断することなしに特定の時間の間、更新されたクロック速度をグリッチなしに(glitch-free)有する必要があろう。
異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイスは、周波数ディバイダ及びクロック切り換え制御器を含む。周波数ディバイダは、ソースクロック信号から複数のクロック信号を異なる周波数で生成するように構成される。クロック切り換え制御器は、複数のリンクのポートによって要求されるデータ速度のうちの最大データ速度を選択すると共に選択された最大データ速度で送信クロック信号を複数のポートの各々のためのクロック有効化信号と共にポートへ出力するように構成され、クロック有効化信号の各々は、複数のポートの各々によって要求されるデータ速度に整合するための送信クロック信号を選択的に有効化する。
異なるクロック速度で動作中の多重リンクのためにクロック信号を切り換えるための方法は、ソースクロック信号から複数のクロック信号を異なる周波数で生成することによって開始する。複数のリンクのポートによって要求されるデータ速度のうちの最大データ速度が決定される。送信クロック信号は、選択された最大データ速度で複数のポートの各々に供給される。複数のポートの各々によって要求されるデータ速度に整合するための送信クロック信号を選択的に有効化するために、複数のポートの各々にクロック有効化信号が供給される。
異なるクロック速度で動作中の多重リンクのためにクロック信号を切り換えるための汎用コンピュータによる実行のための一連の命令を記憶するコンピュータ可読記憶媒体。一連の命令は、ソースクロック信号から複数のクロック信号を異なる周波数で生成するための生成コードセグメントと、複数のリンクのポートによって要求されるデータ速度のうちの最大データ速度を決定するための決定コードセグメントと、選択された最大データ速度で送信クロック信号を複数のポートの各々に供給するための第1の供給コードセグメントと、複数のポートの各々によって要求されるデータ速度に整合するための送信クロック信号を選択的に有効化するために複数のポートの各々にクロック有効化信号を供給するための第2の供給コードセグメントと、を含む。一連の命令は、デバイスの製造のために用いられるハードウエア記述言語(HDL)命令であってよい。
添付の図面と共に例示を目的とする以下の説明から、更に詳細な理解がもたらされるであろう。
図1は周波数ディバイダとクロック切り換え制御器の第1の部分とを示す図である。
図2はクロック切り換え制御器の第2の部分を示す図である。
図3はクロック有効化信号生成器を示す図である。
図4はクロック生成器のクロック切り換えタイミングを示す図である。
図5はポートA〜Cに対する有効化信号の例示的なタイミング図である。
ここに説明される実施形態は、デバイスが、ポートの1つによる要求に応じて複数のクロック速度の1つを選択すると共に、任意の他のポートでのデータ転送を遮断することなしに既知の時間の間、更新されたクロック速度をグリッチなしに有することを可能にする。実施形態は、多重速度で多重リンクを動作させるデバイスに対してクロック切り換えのための解決法を提供する。実施形態は、任意のコンピュータバス及び相互接続プロトコルに従い多重クロック速度をサポートする任意のデバイスにおいて用いられてよい。例えば実施形態は、PCIe2.0若しくは3.0又は将来開発されるであろう任意の他のバージョンをサポートする任意のPCIe適合デバイスに実装されてよい。以下、PCIeプロトコルを参照して実施形態を説明する。しかし、実施形態は、任意のコンピュータバス及び、限定はされないが、PCIe、ハイパートランスポート等を含む相互接続プロトコルに適用可能であることを付言しておく。
図1〜3は、1つの実施形態に従い、異なる周波数で3つのクロック信号を生成すると共にクロックの速度を変更するように構成される例示的なクロック生成器を示している。クロック生成器100は周波数ディバイダ110及びクロック切り換え制御器200を備える。図1は周波数ディバイダ110とクロック切り換え制御器の第1の部分200aとを示している。図2はクロック切り換え制御器の第2の部分200bを示している。図3はクロック切り換え制御器200の一部であるクロック有効化信号生成器300を示している。図4はクロック生成器100のクロック切り換えタイミングを示している。尚、図1〜3に示されるクロック生成器は例示的なものであり限定的ではなく、分周及びクロック信号切り換えのための任意の他の構成が実装されてよい。また、クロック生成器は、2つ又は4つ以上の異なる周波数信号を生成すると共にそれらの間で要求に応じて切り換えてよい。
図1を参照すると、クロック生成器100は、位相ロックループ(phase locked loop)(PLL)クロック(PLLCLK)信号122をPLL150から受け取る。この例では、PLLクロック信号102の周波数は2GHzであり、PLLクロック信号102は、PCIe第3、第2及び第1世代処理のために周波数ディバイダ110によってそれぞれ2、4及び8分周される(PLLクロック信号及び3つのクロック信号は図4における行1〜4に示されている)。尚、PLLクロック信号102は任意の周波数であってよく、またシステムによる要求に応じて任意の周波数信号に分周されてよい。この例はPLLクロック信号を用いているが、当業者であれば他のソースクロック信号が用いられ得ることを認識するはずである。
図1の例示的な周波数ディバイダ110は、インバータ112、排他的NORゲート118,126、ORゲート124、及びDフリップフロップ114,116,120,122,128,130を含む。Dフリップフロップ114,116,120,122,128,130は、PLLクロック信号102によってクロックされる。Dフリップフロップ114の出力は、Dフリップフロップ116に入力し、またインバータ112を介してDフリップフロップ114にフィードバックされる。Dフリップフロップ114の出力はPLLクロックサイクル毎に反転され、従ってDフリップフロップ116はPCIe第3世代クロック信号132cをPLLクロック信号の半分の周波数で出力する(即ちPCIe第3世代クロック信号を生成する)。
Dフリップフロップ120の出力は、Dフリップフロップ122に入力し、また排他的NORゲート118を介してDフリップフロップ120にフィードバックされる。Dフリップフロップ114の出力は、排他的NORゲート118の別の入力に入力する。Dフリップフロップ122は、PCIe第2世代クロック信号132bをPLLクロック信号122の1/4の周波数で出力する。
Dフリップフロップ128の出力は、Dフリップフロップ130に入力し、また排他的NORゲート126を介してDフリップフロップ128にフィードバックされる。Dフリップフロップ114及びDフリップフロップ120の出力は、ORゲート124でゲートされてから排他的NORゲート126に入力する。Dフリップフロップ130は、PCIe第1世代クロック信号132aをPLLクロック信号122の1/8の周波数で出力する。
生成されたクロック信号132a,132b,132cのうちの2つはクロックゲートセル212a,212b,212cによってブロックされ、クロック信号132a,132b,132cの1つだけが、制御信号244a,244b,244c(clk_g1_en,clk_g2_en,clk_g3_en)に従って、リンクへ供給されるべき送信クロック信号(TXCLK)140として出力される。TXCLK信号は図4の行17に示されている。制御信号244a,244b,244cは図4の行14〜16に示されている。クロックゲートセル212a,212b,212cは、ゲートされたDラッチ214a,214b,214c及びANDゲート216a,216b,216cをそれぞれ含む。制御信号244a,244b,244c(clk_g1_en,clk_g2_en,clk_g3_en)は、ゲートされたDラッチ214a,214b,214cのD入力にそれぞれ入力し、クロック信号132a,132b,132cは、ゲートされたDラッチ214a,214b,214cのG入力にインバータを介してそれぞれ入力する。クロック信号132a,132b,132cは、ゲートされたDラッチ214a,214b,214cをバイパスしてANDゲート216a,216b,216cにそれぞれ入力する。ANDゲート216a,216b,216cの出力はORゲート218に入力する。clk_g1_en信号244aがアサートされるとORゲート218を介して第1世代クロック信号132aが出力され、clk_g2_en信号244bがアサートされるとORゲート218を介して第2世代クロック信号132bが出力され、clk_g3_en信号244cがアサートされるとORゲート218を介して第3世代クロック信号132cが出力される。
制御信号244a,244b,244cは、要求_clk信号(request_clk signals)232に基づいて生成される。要求_clk信号232の生成は、図2を参照して詳細に説明されることになる。要求_clk信号232は、クロック信号が生成されるべきことを示す信号である。要求_clk信号232は、この例では3つのクロック速度のうちの1つを示す2ビット信号であってよい(例えば「00」は第1世代クロック信号を示し、「01」は第2世代クロック信号を示し、そして「10」は第3世代クロック信号を示す)。
生成された要求_clk信号232(図2の回路(circuit in FIG. 2)からの出力信号)は、直列の4つのDフリップフロップ234,235,236,237を通ってゲートされてからDフリップフロップ238に入力してよい。Dフリップフロップ234,235,236,237は、直列の4つの遅延バッファ246,247,248,249によって遅延させられた送信クロック信号(TXCLK)140によりクロックされる。4つの遅延バッファ246,247,248,249によって遅延させられたTXCLK信号(TXCLK_buf0, TXCLK_buf1, TXCLK_buf2, TXCLK_buf3)は、図4の行21〜24に示されている。遅延バッファ246,247,248,249の各々は、特定の遅延時間(例えば1ギガヘルツ(GHz)で遅延バッファあたり最大で1ナノ秒(ns))だけクロック信号140を遅延させてよい。これは、TXCLK挿入遅延がコア論理に整合することを確実にし、またクロック遅延を後退させてクロック生成論理での挿入遅延に確実に整合するようにするためである。
Dフリップフロップ238はPLLクロック信号102によってクロックされ、またNORゲート240によってゲートされたDフリップフロップ114,120,128からの3つの出力信号は、Dフリップフロップ238のイネーブル入力にそれぞれ入力し、その結果、Dフリップフロップ114,120,128の全ての出力が「低」の場合にのみ、直列のDフリップフロップ234〜237によって遅延させられた要求_clk信号232が転送される(そしてTXクロック信号速度を変更する)。Dフリップフロップ238を介して出力された要求_clk信号232は、要求_clk信号232に従って3つのANDゲート242a,242b,242cのうち1つを「高」に、2つを「低」に駆動し、そしてANDゲート242a,242b,242cの出力は、それぞれクロックゲートセル212a,212b,212cへの制御信号244a,244b,244cになる。
図2を参照して、要求_clk信号232の生成を詳細に説明する。PCIeデバイスは2つ以上のリンクをサポートすることが要求されるであろうし、また各リンクは異なるクロック速度を必要とするであろう。複数のリンクのために必要なクロック速度(clk_sel_A,clk_sel_B,…,clk_sel_N)のうち、最大クロック速度(maximum clock speed: max)がセレクタ252によって選択される。clk_sel[1:0]信号254は、この例では2ビット信号であり、選択された最大クロック速度を表す(この例で3つのクロック速度の1つを選択するためには2ビット必要である)。選択されたクロック速度信号(clk_sel[1:0])254は、Dフリップフロップ256を介して要求_clk信号232として出力される。clk_sel[1:0]信号及び要求_clk信号232は、図4の行5及び6に示されている。
Dフリップフロップ256は、TXCLKによってクロックされ、またカウント信号(count signal)263(Dフリップフロップ262の出力)、現在_clk信号(current_clk signal)274(Dフリップフロップ272の出力)と要求_clk信号232(Dフリップフロップ256の出力)の比較、及び位相信号(phase signal)286(Dフリップフロップ284の出力)に基づいて有効化又は無効化される。Dフリップフロップ272は、現在選択されているクロック速度を示す現在_clk信号274を記憶する(例えば「00」は第1世代クロック信号を示し、「01」は第2世代クロック信号を示し、そして「10」は第3世代クロック信号を示す)。要求_clk信号232は、TXCLK信号が切り換わるときに現在_clk信号274になる。
比較器264は要求_clk信号232が現在_clk信号274と異なるかどうかを決定し、そして比較器264の出力はDフリップフロップ262のイネーブル入力に入力する。Dフリップフロップ262は、要求_clk信号232と現在_clk信号274が異なる場合(即ち要求_clk信号が変更された場合)にのみ有効化される。Dフリップフロップ262、及びDフリップフロップ262のD入力に戻るフィードバックループ内の+1加算器266は、要求_clk信号232と現在_clk信号274が異なるようになってからのTXCLKサイクルの数をカウントする2ビットカウンタとして動作する。カウント信号263は図4の行12に示されている。
比較器268は、カウント信号263が「11」になった場合に「高」を出力する。比較器268の出力はDフリップフロップ272のイネーブル入力に入力する。従ってこの例では、図4の行6〜10に示されるように、要求_clk信号232は、要求_clk信号232が変更された後TXCLKの4サイクルで現在_clk信号274になる。TXCLKの4サイクルは、最も速いクロック信号(1GHz)と最も遅いクロック信号(250MHz)の比が4であるからであり、システムによって要求されるクロック速度に応じて異なるTXCLKサイクルが必要になるであろう。比較器276は、現在_clk信号274と要求_clk信号232を比較してANDゲート292に出力する。
現在_clk信号274は、第1及び第2のマルチプレクサ282,290を駆動する。第1のマルチプレクサ282は、現在_clk信号274が「00」であれば「00」を出力し、現在_clk信号274が「01」であれば位相信号+2を出力し、そして現在_clk信号274が「10」であれば位相信号+1を出力する。マルチプレクサ282の出力はDフリップフロップ284のD入力に入力し、Dフリップフロップ284の2ビット出力が位相信号286(図4の行11)である。位相信号286は、この例では2ビット信号である。比較器288aは、位相信号286が「00」であれば「高」を出力し、さもなければ「低」を出力する。比較器288bは、位相信号286が「01」であれば「高」を出力し、さもなければ「低」を出力する。比較器288cは、位相信号286が「10」であれば「高」を出力し、さもなければ「低」を出力する。第2のマルチプレクサ290は、現在_clk信号274に応じて比較器288a,288b,288cの出力の1つを出力する。比較器276及び第2のマルチプレクサ290からの出力は、ANDゲート292によってゲートされ、ANDゲート292の出力はDフリップフロップ256を有効化し又は無効化する。
カウント信号263及び位相信号286の生成並びに現在_clk信号274及び要求_clk信号232の比較を含むクロック切り換え制御器の論理は、クロック信号(TXCLK)の切り換えが、任意の他のポートでのデータ転送を遮断することなしに、既知の時間の間グリッチなしに特定の位相のみを生じさせることを確実にする。
図3を参照して、クロック有効化信号(clock enabling signal: clk_en)の生成を詳細に説明する。ソースクロックは、PCIeIPによってサポートされる最大データ速度(例えばPCIe3.0サポートに対して1GHz)で動作中であることが予定されている。クロック生成器100は、1GHz、500MHz及び250MHzのクロック信号を生成し、生成されたクロック信号の1つを全てのPCIeリンクに供給する。クロック切り換え制御器200は、PCIeIPコアにおけるアクティブなリンクによって要求される最も速いクロック速度を決定し、そしてその最も速いクロック信号を全てのPCIeリンクに供給する。同じクロック信号が全てのPCIeリンクに供給されるので、クロック切り換え制御器200はまた、より遅いクロック信号を要求する各リンクのためのクロック有効化信号を生成する。例えば、リンクによって要求される最も速いクロック速度が1GHzである場合には、クロック切り換え制御器200は、1GHzクロック信号を生成して全てのリンクにこれを供給することになる。クロック切り換え制御器200はまた、500MHzクロック速度を要求するリンクに対して1GHz信号が1つおきのクロックサイクルで有効化され、また250MHzクロック速度を要求するリンクに対して1GHz信号が4クロックサイクル毎にだけクロック有効化信号によって有効化されるように、クロック有効化信号を各リンクに供給する。クロック有効化信号は図4の行18〜20に示されている。3つのクロック有効化信号の1つが各リンクに対して選択される。
図3はリンクAのための例示的なクロック有効化信号生成回路300を示している。多重リンクをサポートするためには、図3に示される回路の多重セットがクロック切り換え制御器200内に含まれる。
リンクAによって要求されるクロック速度はclk_sel_Aであり、この2ビット信号は、要求されたクロック速度(例えば第1世代クロック信号に対する「00」、第2世代クロック信号に対する「01」、及び第3世代クロック信号に対する「10」)に応じて3つの入力(有効化信号309a,309b,309c)のうちの1つを出力するようにマルチプレクサ310を駆動する。
3つの有効化信号309a,309b,309c(clk_en[0],clk_en[1],clk_en[2])は、現在_clk信号274、要求_clk信号232、カウント信号263、及び位相信号286に基づいて生成される。カウント信号263に応じて、現在_clk信号274又は要求_clk信号232のいずれかが3つの比較器322,332,342に入力する(即ちカウント信号が「11」であれば要求_clk信号、そうでなければ現在_clk信号)。カウント信号263は比較器302で比較され、比較器302の出力がマルチプレクサ304を制御する。
現在_clk信号274又は要求_clk信号232が「00」である場合には、第1のブランチ320は、常時オン信号、50%デューティサイクル信号、又は25%デューティサイクル信号を現在_clk信号274に応じて生成する。現在_clk信号274又は要求_clk信号232が「00」である場合には、比較器322の出力(及びそれに従いORゲート324の出力)は常時「高」であり、常時オン信号が生成されそしてDフリップフロップ308を介してマルチプレクサ310に供給される。比較器325a及び325cは現在_clk信号274をそれぞれ「01」及び「10」と比較し、そして比較器325b及び325dは位相信号286をそれぞれ「00」及び「10」と比較する。現在_clk信号274が「01」である場合には、比較器322の出力及びANDゲート328の出力は「低」であるが、ANDゲート326は位相値が「00」の間オンになる。現在_clk信号274が「01」である間の位相信号286は「00」と「01」の間で変わるので、ANDゲート326の出力(及び結果としてORゲート324の出力)は50%の時間オンになる。現在_clk信号274が「10」である場合には、比較器322及びANDゲート326の出力は「低」であるが、ANDゲート328は位相信号が「00」の間オンになる。現在_clk信号が「10」である間の位相信号286は、「00」、「01」、「10」、及び「11」の間で変わるので、ANDゲート328の出力(及び結果としてORゲート324の出力)は25%の時間オンになる。例えば、現在_clk信号が「10」(TXCLK信号が1GHzであることを意味する)であり、且つリンクAに要求されるクロック速度が250MHz(即ちclk_sel_Aが「00」)である場合には、マルチプレクサ310は第1のブランチ信号を出力し、これはANDゲート328から出力される25%デューティサイクル信号であり、1GHzでのTXCLKは25%の時間の間だけ有効化されて、共通の1GHzのTXCLKから250MHzクロック信号をリンクAに対して引き出す。現在_clk信号が「01」(TXCLK信号が500MHzであることを意味する)であり、且つリンクAに要求されるクロック速度が250MHz(即ちclk_sel_Aが「00」)である場合には、マルチプレクサ310は第1のブランチ信号を出力し、これはANDゲート326から出力される50%デューティサイクル信号である。
現在_clk信号274又は要求_clk信号232が「01」である場合には、第2のブランチ330は、常時オン信号又は50%デューティーサイクル信号のいずれかを生成する。現在_clk信号274又は要求_clk信号232が「01」である場合には、比較器322の出力(及びその結果としてORゲート324の出力)は常時「高」であり、常時オン信号が生成されそしてDフリップフロップ308bを介してマルチプレクサ310に供給される。比較器335aは現在_clk信号を「10」と比較し、そして比較器335bは位相信号の第1ビットを「0」と比較する。現在_clk信号274が「10」である場合には、比較器332の出力は「低」であるが、ANDゲート336は位相信号286の第1ビットが「0」の間オンになり、50%デューティサイクル信号を生成する。
現在_clk信号274又は要求_clk信号232が「10」である場合には、第3のブランチ340(即ち比較器342)は、Dフリップフロップ308aを介してゲートされる常時オン信号をマルチプレクサ310に対して生成する。
図5はポートA〜Cに対する有効化信号の例示的なタイミング図を示している。最初、ポートA〜Cに要求されるデータ速度(portA data rate, portB data rate, portC data rate)は全て250MHz(即ち毎秒2.5ギガ転送(GT/s))である。従って、TXCLKは250MHzで生成され、またポートA〜Cに対する有効化信号(portA clk en, portB clk en, portC clk en)は全て常時オン信号である。リンクBに要求されるデータ速度が500MHzに増大する(即ち転送速度が5GT/sに増大させられる)。TXCLKは500MHzに切り換えられ、そして全てのリンクA〜Cに供給される。リンクA及びCのためのデータ速度は250MHzのままであるから、50%デューティサイクルクロック有効化信号がリンクA及びCに供給される。次いで、リンクCに要求されるデータ速度が1GHzに増大する。TXCLKは1GHz信号に切り換えられ、そして全てのリンクA〜Cに供給される。リンクA及びBのためのデータ速度はそれぞれ250MHz及び500MHzであるから、リンクA及びBに対するクロック有効化信号は、それぞれ25%及び50%デューティサイクル信号になる。次いで、リンクCに要求されるデータ速度が250MHzに低下する。TXCLKは500MHzに戻され、そして全てのリンクA〜Cに供給される。リンクA〜Cに対するクロック有効化信号は、それぞれ50%デューティサイクル信号、常時オン信号、及び50%デューティサイクル信号になる。次いで、ポートBに要求されるデータ速度が250MHzに低下し、そしてTXCLKが250MHzに切り換えられる。次いで、ポートCのためのデータ速度が1GHzに増大し、そしてTXCLKが1GHzに切り換えられる。ポートA及びBのためのデータ速度は250MHzであるから、ポートA及びBに対するクロック有効化信号は25%デューティサイクル信号になる。次いで、ポートCのためのデータ速度が250MHzに低下してTXCLKが250MHzに切り換えられ、そしてポートA〜Cに対するクロック有効化信号が常時オン信号になる。
上に開示される実施形態に従うクロック切り換えは、PCIeIPコアにおけるPCIeリンク毎の1つのPLLに代えてPCIeIPコア毎に1つのPLLだけが用いられるであろうという領域節約及び電力節約の利点を有する。リンク毎に1つのPCIeIPをインスタンシエイトする(instantiate)必要性に代えて、多重速度で動作する複数のリンクを動作させるために、1つのPCIeIPコアを用いることができる。クロック切り換え回路がグリッチなしに(glitch-free)クロック速度を変更するという事実により、実施形態は、速度を変更していないリンクが中断せずに動作することを可能にする。加えて、実施形態によると、クロック切り換えは、4クロックサイクル内で更新されたクロック速度を提供することが保証される。
今日、電子回路の多くは、ソフトウエア(例えばハードウエア記述言語(HDL))を用いることによって設計され、そして製造される。HDLは、電子回路の構成、動作、及び/又は挙動を記述するためのコンピュータ言語である。クロック生成器100(即ち電子回路)は、ソフトウエア(例えばHDL)を用いることによって設計され、そして製造されてよい。HDLは、現在用いられており又は将来改良されるであろう従来のHDLの任意の1つであってよい。クロック生成器100の構成、動作、及び/又は挙動を記述するために、一連の命令がHDLで生成される。一連の命令は任意の種類のコンピュータ可読記憶媒体内に記憶されてよい。
特徴及び要素が特定の組み合わせにおいて上述されているが、各特徴又は要素は、他の特徴及び要素を伴わずに単独で用いられてよく、あるいは他の特徴及び要素を伴い又は伴わずに種々の組み合わせにおいて用いられてよい。ここに提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによる実行のためにコンピュータ可読記憶媒体内に組み込まれるコンピュータプログラム、ソフトウエア、又はファームウエアにおいて実装されてよい。コンピュータ可読記憶媒体の例は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内部ハードディスク及びリムーバブルディスク等の磁気媒体、磁気光学媒体、及びCD−ROMディスク等の光学媒体、更にはデジタル多用途ディスク(DVD)を含む。
適切なプロセッサは、例としては、汎用プロセッサ、専用プロセッサ、標準的なプロセッサ、デジタル信号プロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアに付随する1つ以上のマイクロプロセッサ、制御器、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、任意の他の種類の集積回路(IC)、及び/又は状態マシンを含む。

Claims (18)

  1. 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイスであって、
    ソースクロック信号から複数のクロック信号を異なる周波数で生成するように構成された周波数ディバイダと、
    複数のポートのための前記複数のクロック信号のうち1つのクロック信号を選択し、選択されたクロック信号を、前記複数のポートに要求されるデータ速度のうち最大のデータ速度が要求されるポートへ出力するように構成されたクロック切り換え制御器と、を備え、
    前記クロック切り換え制御器は、データ速度が、前記複数のポートによって要求される前記最大データ速度以外のデータ速度に整合するように、前記選択されたクロック信号の変更されたバージョンを出力するように構成されている、
    デバイス。
  2. 前記選択されたクロック信号は、各ポートによって要求されたデータ速度に整合するようにダウンコンバートされる、請求項1のデバイス。
  3. 前記選択されたクロック信号のクロックサイクルをカウントするためのカウンタを備え、
    前記クロック切り換え制御器は、前記最大のデータ速度が変更された後の所定数のクロックサイクルで、前記生成された複数のクロック信号のうち1つのクロック信号を再選択するように構成されている、請求項1のデバイス。
  4. 前記クロック切り換え制御器は、前記選択されたクロック信号が、前記最大のデータ速度が変更された状態において前記選択されたクロック信号の所定の位相で切り換えられるように、前記選択されたクロック信号の位相の情報を記憶するための記憶装置を備える、請求項1のデバイス。
  5. 前記デバイスは、周辺コンポーネント相互接続エクスプレス(PCIe)適合デバイスである、請求項1のデバイス。
  6. 前記デバイスは、ハイパートランスポート適合デバイスである、請求項1のデバイス。
  7. 前記周波数ディバイダは、250メガヘルツ(MHz)信号、500MHz信号及び1ギガヘルツ(GHz)信号のうち少なくとも2つを生成するように構成されている、請求項1のデバイス。
  8. 前記ソースクロック信号は、位相ロックループクロック信号である、請求項1のデバイス。
  9. 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるための方法であって、
    周波数ディバイダを介して、ソースクロック信号から複数のクロック信号を異なる周波数で生成することと、
    スイッチを用いて、複数のポートのための前記複数のクロック信号のうち1つのクロック信号を選択することと、
    選択されたクロック信号を、前記複数のポートに要求されるデータ速度のうち最大のデータ速度が要求されるポートへ出力することと、を備え、
    データ速度が、前記複数のポートによって要求される前記最大データ速度以外のデータ速度に整合するように、前記選択されたクロック信号の変更されたバージョンが選択される、
    方法。
  10. 前記選択されたクロック信号は、各ポートによって要求されたデータ速度に整合するようにダウンコンバートされる、請求項9の方法。
  11. 前記生成された複数のクロック信号のうち1つのクロック信号は、前記最大のデータ速度が変更された後の所定数のクロックサイクルで再選択される、請求項9の方法。
  12. 前記選択されたクロック信号は、前記最大のデータ速度が変更された状態において前記選択されたクロック信号の所定の位相で切り換えられる、請求項9の方法。
  13. 前記リンクは、周辺コンポーネント相互接続エクスプレス(PCIe)適合リンクである、請求項9の方法。
  14. 前記リンクは、ハイパートランスポート適合リンクである、請求項9の方法。
  15. 前記生成された複数のクロック信号は、250メガヘルツ(MHz)信号、500MHz信号及び1ギガヘルツ(GHz)信号のうち少なくとも2つである、請求項9の方法。
  16. 前記ソースクロック信号は、位相ロックループクロック信号である、請求項9の方法。
  17. 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるようにコンピュータを実行させるための命令のセットを記憶するコンピュータ可読記憶媒体であって、
    前記命令のセットは、
    ソースクロック信号から複数のクロック信号を異なる周波数で生成するためのコードセグメントと、
    複数のポートのための前記複数のクロック信号のうち1つのクロック信号を選択するためのコードセグメントと、
    選択されたクロック信号を、前記複数のポートに要求されるデータ速度のうち最大のデータ速度が要求されるポートへ出力するためのコードセグメントと、を備え、
    データ速度が、前記複数のポートによって要求される前記最大データ速度以外のデータ速度に整合するように、前記選択されたクロック信号の変更されたバージョンが出力される
    コンピュータ可読記憶媒体。
  18. 前記命令は、デバイスの製造のために用いられるハードウエア記述言語(HDL)命令である、請求項17のコンピュータ可読記憶媒体。
JP2015145998A 2009-12-11 2015-07-23 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法 Active JP6170970B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/635,942 2009-12-11
US12/635,942 US8190944B2 (en) 2009-12-11 2009-12-11 Device configured to switch a clock speed for multiple links running at different clock speeds and method for switching the clock speed

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012542615A Division JP5785183B2 (ja) 2009-12-11 2010-12-10 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法

Publications (2)

Publication Number Publication Date
JP2016006658A JP2016006658A (ja) 2016-01-14
JP6170970B2 true JP6170970B2 (ja) 2017-07-26

Family

ID=43982246

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012542615A Active JP5785183B2 (ja) 2009-12-11 2010-12-10 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法
JP2015145998A Active JP6170970B2 (ja) 2009-12-11 2015-07-23 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012542615A Active JP5785183B2 (ja) 2009-12-11 2010-12-10 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法

Country Status (6)

Country Link
US (2) US8190944B2 (ja)
EP (2) EP2510417B1 (ja)
JP (2) JP5785183B2 (ja)
KR (1) KR101375799B1 (ja)
CN (2) CN104866009B (ja)
WO (1) WO2011070328A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009107108A1 (en) * 2008-02-28 2009-09-03 Nxp B.V. Clock switching circuits and methods
WO2010071634A1 (en) * 2008-12-16 2010-06-24 Hewlett-Packard Development Company, L.P. Clock signals for dynamic reconfiguration of communication link bundles
US8190944B2 (en) * 2009-12-11 2012-05-29 Ati Technologies Ulc Device configured to switch a clock speed for multiple links running at different clock speeds and method for switching the clock speed
JP5434812B2 (ja) * 2010-06-21 2014-03-05 富士通セミコンダクター株式会社 データ処理システム
CN105122172B (zh) * 2012-12-13 2017-10-27 相干逻辑公司 同步数字系统及避免其中的时钟信号错误的方法
CN103064461B (zh) * 2012-12-31 2016-03-09 华为技术有限公司 一种时钟使能信号的产生方法及装置
KR102251813B1 (ko) 2015-04-07 2021-05-13 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102507714B1 (ko) * 2016-05-02 2023-03-09 삼성전자주식회사 SRIS를 지원하는 PCIe 장치
US10241536B2 (en) * 2016-12-01 2019-03-26 Intel Corporation Method, apparatus and system for dynamic clock frequency control on a bus
US10459477B2 (en) * 2017-04-19 2019-10-29 Seagate Technology Llc Computing system with power variation attack countermeasures
CN109254617B (zh) * 2017-07-14 2020-11-06 华为技术有限公司 时钟信号产生方法以及装置
CN109426329A (zh) * 2017-08-30 2019-03-05 比亚迪股份有限公司 片上系统及其时钟频率动态控制方法和装置
EP3726749B1 (en) * 2017-12-12 2023-10-25 Mitsubishi Electric Corporation Optical communication device, control method, and control program
KR20200143910A (ko) * 2019-06-17 2020-12-28 삼성전자주식회사 이미지 장치 및 그 구동 방법

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232853A (ja) 1997-02-18 1998-09-02 Toshiba Corp シリアルデータ転送回路
JP2923882B2 (ja) * 1997-03-31 1999-07-26 日本電気株式会社 クロック供給回路を備える半導体集積回路
JP4130006B2 (ja) * 1998-04-28 2008-08-06 富士通株式会社 半導体装置
JP2000181566A (ja) * 1998-12-14 2000-06-30 Mitsubishi Electric Corp マルチクロック並列処理装置
EP1189444A1 (en) * 2000-09-16 2002-03-20 Deutsche Thomson-Brandt Gmbh Method and data recorder for converting first data packet timestamps based on a first clock rate to second data packet timestamps based on a second clock rate
US6445228B1 (en) * 2001-08-28 2002-09-03 Xilinx, Inc. Programmable even-number clock divider circuit with duty cycle correction and optional phase shift
US6483888B1 (en) * 2001-10-11 2002-11-19 International Business Machines Corporation Clock divider with bypass and stop clock
US6515530B1 (en) * 2001-10-11 2003-02-04 International Business Machines Corporation Dynamically scalable low voltage clock generation system
TWI221369B (en) * 2003-04-29 2004-09-21 Via Tech Inc Device and method for adjusting the frequency of the timing signal
KR20050118569A (ko) * 2004-06-14 2005-12-19 삼성전자주식회사 컴퓨터 시스템
US7724059B2 (en) * 2004-10-29 2010-05-25 International Business Machines Corporation Clock scaling circuit
JP2006252656A (ja) * 2005-03-10 2006-09-21 Nec Electronics Corp マルチポートメモリ装置
US7401243B2 (en) * 2005-06-21 2008-07-15 Dell Products L.P. Demand-based dynamic clock control for transaction processors
US7433263B2 (en) * 2006-02-28 2008-10-07 Samsung Electronics Co., Ltd. Multi-port semiconductor device and method thereof
US7369453B2 (en) * 2006-02-28 2008-05-06 Samsung Electronics Co., Ltd. Multi-port memory device and method of controlling the same
US7639561B2 (en) * 2006-03-30 2009-12-29 Silicon Image, Inc. Multi-port memory device having variable port speeds
US7308523B1 (en) * 2006-04-10 2007-12-11 Pericom Semiconductor Corp. Flow-splitting and buffering PCI express switch to reduce head-of-line blocking
US7734858B2 (en) * 2006-04-27 2010-06-08 Dell Products L.P. Fabric interposer for blade compute module systems
TWM307793U (en) * 2006-09-04 2007-03-11 Iei Technology Corp Half-sized PCI central processing unit interface and computer device with PCIe extensible capability
US8090263B2 (en) * 2007-08-24 2012-01-03 Mission Technology Group Inc. System and method for expanding PCIe compliant signals over a fiber optic medium with no latency
US7921322B2 (en) * 2007-10-17 2011-04-05 Spansion Llc Optimize personalization conditions for electronic device transmission rates with increased transmitting frequency
JP5160856B2 (ja) * 2007-10-24 2013-03-13 ルネサスエレクトロニクス株式会社 Ddrメモリコントローラ及び半導体装置
JP5287297B2 (ja) * 2008-03-18 2013-09-11 株式会社リコー データ処理回路、省電力方法、省電力プログラム、記録媒体及び機器
US7999581B1 (en) * 2008-03-23 2011-08-16 Freescale Semiconductor, Inc. System and a method for providing an output clock signal
JP2009234445A (ja) * 2008-03-27 2009-10-15 Toyota Motor Corp 車両用電子制御ユニット、動作クロック切り替え方法
US8098993B2 (en) * 2008-05-08 2012-01-17 Alpenio, Inc. Method and apparatus for transporting computer bus protocols over an optical link
US7886103B2 (en) * 2008-09-08 2011-02-08 Cisco Technology, Inc. Input-output module, processing platform and method for extending a memory interface for input-output operations
CN101482762B (zh) * 2009-02-11 2010-12-01 华为技术有限公司 一种调节cpu时钟频率的方法及系统
CN101556571B (zh) * 2009-04-08 2011-11-23 苏州国芯科技有限公司 实现clb总线与从属模块之间高低速切换的桥接器
US8190944B2 (en) * 2009-12-11 2012-05-29 Ati Technologies Ulc Device configured to switch a clock speed for multiple links running at different clock speeds and method for switching the clock speed

Also Published As

Publication number Publication date
EP2957981A1 (en) 2015-12-23
CN102725708B (zh) 2015-05-20
CN104866009B (zh) 2017-10-24
US8984322B2 (en) 2015-03-17
US20120221883A1 (en) 2012-08-30
EP2510417B1 (en) 2015-09-02
JP2016006658A (ja) 2016-01-14
CN102725708A (zh) 2012-10-10
JP2013513843A (ja) 2013-04-22
US8190944B2 (en) 2012-05-29
WO2011070328A2 (en) 2011-06-16
EP2510417A2 (en) 2012-10-17
WO2011070328A3 (en) 2011-11-03
KR20120123269A (ko) 2012-11-08
KR101375799B1 (ko) 2014-03-19
CN104866009A (zh) 2015-08-26
EP2957981B1 (en) 2018-08-08
JP5785183B2 (ja) 2015-09-24
US20110145622A1 (en) 2011-06-16

Similar Documents

Publication Publication Date Title
JP6170970B2 (ja) 異なるクロック速度で動作中の多重リンクのためにクロック速度を切り換えるように構成されるデバイス及びクロック速度を切り換えるための方法
JP6801959B2 (ja) 同期型デジタルシステムにおけるオンチップクロックの自動的な選択
JP2002141911A (ja) データ転送制御装置及び電子機器
US20090153194A1 (en) Clock circuitry
US20090150706A1 (en) Wrapper circuit for globally asynchronous locally synchronous system and method for operating the same
Sheng et al. Towards Low-Latency Communication on FPGA Clusters with 3D FFT Case Study
US20070011366A1 (en) Bus system and data transfer method
TWI579706B (zh) 使用可選擇之同步器於非同步邊界上進行資料同步化以最小化潛時
EP0529369A2 (en) Asynchronous clock switching for advanced microprocessors
JP2008178017A (ja) クロック同期システム及び半導体集積回路
CN105740177B (zh) 信号传输的控制方法和装置、以及信号锁存装置
Pontes et al. Hermes-glp: A gals network on chip router with power control techniques
CN111143122B (zh) 一种可靠的交换芯片复位结构及其复位方法
US9584305B2 (en) Deskew FIFO buffer with simplified initialization
US11860685B2 (en) Clock frequency divider circuit
US11955982B2 (en) Granular clock frequency division using dithering mechanism
US20170212551A1 (en) Semiconductor device, a semiconductor system, and a method of operating the semiconductor device
US11693461B1 (en) Module reset circuit, reset unit and SoC reset architecture
US8164973B2 (en) Storage apparatus and method of controlling storage apparatus
US20140181571A1 (en) Managing fast to slow links in a bus fabric
CN117811539A (zh) Fpga时钟无毛刺切换电路
WO2012049355A1 (en) Apparatus for synchronizing and providing a glitch-free clock
Al-Bayati et al. A novel hybrid FIFO asynchronous clock domain crossing interfacing method
JP2001117665A (ja) 種々のクロックレートを参照するコンピュータマザーボード用コンピュータチップセット
JP2013150047A (ja) 情報処理装置および情報処理装置の制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160802

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170703

R150 Certificate of patent or registration of utility model

Ref document number: 6170970

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250