用于切換運行在不同時鐘頻率下的多個鏈路的時鐘頻率的裝置和用于切換時鐘頻率的方法
【專利說明】用于切換運行在不同時鐘頻率下的多個鏈路的時鐘頻率的裝置和用于切換時鐘頻率的方法
本申請是申請號為201080056178.8、申請日為2010年12月10日、發明名稱為“用于切換運行在不同時鐘頻率下的多個鏈路的時鐘頻率的裝置和用于切換時鐘頻率的方法”的發明專利申請的分案申請。
相關申請的交叉引用
[0001]本申請要求的美國的非臨時申請序列號為12/635,942,申請日為2009年12月11日的權利,將該申請的內容在此處全部弓I用以供參考。
技術領域
[0002]本申請涉及計算機總線和互聯協議,諸如高速外部組件互連協議(PCIe:Peripheral Component Interconnect Express),超級傳遞協議(HyperTransport),或者類似的協議。
【背景技術】
[0003]在計算機系統中,提供多種總線用于將主機處理器和其他設備進行互連并且在其中傳送數據。例如,已開發的取代舊版本的外部組件互連(PC1-Peripheral ComponentInterconnect)和 PC1-X 標準的高速外部組件互連(PCIe 〖Peripheral ComponentInterconnect Express) o PCIe被用在客戶端、服務器以及工業應用中以作為主板(motherboard)級的互連來鏈接裝配在主板上的外設以及作為附加主板的擴展卡接口。
[0004]PCIe和早期的PCI或PC1-X總線之間的區別是基于點到點串行鏈路的拓撲結構,而不是共享的并行總線結構。可以認為PCIe是取代舊的并行PCI和PC1-X總線的高速串行協議。在軟件級上,PCIe則維持與PCI的兼容,這樣的話,可在與PCIe的新特征沒有直接的關系的遺留應用(legacy applicat1n)和操作系統中配置以及使用PCIe裝置。
[0005]在PCIel.0或1.1版本中,每條通道支持的數據速率為250MB/S。而在2007年發布的PCIe2.0版本中,加入了第二代信號模式,將信號的傳輸速率翻倍為500MB/S。而在目前開發的PCIe3.0中,將加入第三代信號模式從而使速率達到lGB/s。
[0006]PCIe2.0和3.0也維持與早期版本的PCIe(例如,PCIe 1.x)的兼容性。由于市場中依然使用與PCIe 1.X兼容的裝置,因此與PCIe 2.0或3.0兼容的裝置則需要與PCIe 1.X兼容的裝置相連。PCIe 2.0或3.0裝置需要切換由一個端口所請求的時鐘頻率(clock speed)并且在一段時間內不中斷在任意其他端口上的數據傳輸的情況下無干擾(glitch-free)的更新該時鐘頻率。
【發明內容】
[0007]用于切換運行在不同時鐘頻率下的多鏈路的時鐘頻率的裝置,包括分頻器和時鐘切換控制器。該分頻器用于從源時鐘信號生成多個不同頻率的時鐘信號。該時鐘切換控制器用于在由多個鏈路端口請求的多個數據速率中選擇一個最大的數據速率,并在選定的最大數據速率處將傳送時鐘信號與每個端口的時鐘使能信號一起輸出到端口,每個端口的時鐘使能信號選擇性地使能傳輸時鐘信號來匹配由多個端口中的每一個所請求的數據速率。
[0008]用于切換運行在不同時鐘頻率下的多鏈路的時鐘頻率的方法,包括從一個源時鐘信號生成多個不同頻率的時鐘信號。在由多個鏈路端口所請求的多個數據速率中確定一個最大的數據速率。在選定的最大速率處提供到多個端口中的每一個的傳送時鐘信號。提供時鐘使能信號到多個端口中的每一個來選擇性地使能傳送時鐘信號以匹配由多個端口的每一個所請求的數據速率。
[0009]一種存儲由通用計算機執行的切換運行在不同時鐘頻率下的多鏈路的時鐘信號的指令組的計算機可讀存儲介質。該指令組包括用于從一個源時鐘信號生成多個不同頻率的時鐘信號的生成代碼部分(segment);用于在由多個鏈路端口請求的數據速率中確定最大數據速率的確定代碼部分(segment);用于為多個端口的每一個提供最大數據速率的時鐘信號的第一提供代碼部分(segment);以及用于為多個端口的每一個提供時鐘使能信號的第二提供代碼部分(segment),該時鐘使能信號選擇性地使能傳輸時鐘信號以匹配由多個端口的每一個所請求的數據速率。該指令組可以是用于構建裝置的硬件描述語言(HDL:hardware descript1n language)指令。
【附圖說明】
[0010]結合說明書中的實施例和附圖,從下述說明書中可以得到更詳細的描述,其中,
[0011]圖1顯示了分頻器和時鐘切換控制器的第一部分;
[0012]圖2顯示了時鐘切換控制器的第二部分;
[0013]圖3顯示了時鐘使能信號生成器;
[0014]圖4顯示了時鐘生成器的時鐘切換時序;以及
[0015]圖5顯示了端口 A-C的使能信號的示例性時序圖。
【具體實施方式】
[0016]本申請描述的實施例允許裝置選擇由多個端口中的一個所請求的多個時鐘頻率中的一個,并且使得時鐘頻率無干擾的(glitch-free)更新,即在已知的時間內不中斷其他端口上的數據傳輸。本實施例為多頻率下運行多鏈路的裝置提供了時鐘切換的方案。本實施例可用在符合任何計算機總線和互連協議的支持多時鐘頻率的任意裝置上。例如,本實施例可應用在任何支持PCIe 2.0或3.0,或未來將開發出來的任何版本的任意PCIe兼容設備上。隨后,本實施例將參照PCIe協議來解釋。然而,應該注意的是,本實施例適用于任何計算機總線和互連協議,包括但不限于高速外部組件互連協議(PCIe PeripheralComponent Interconnect Express),超級傳遞協議(HyperTransport),等等。
[0017]圖1-3顯示了根據一個實施例在不同頻率中用于生成三個時鐘信號和改變時鐘頻率的示例性的時鐘生成器。時鐘生成器100包括分頻器110和時鐘切換控制器200。圖1顯示了分頻器110和時鐘切換控制的第一部分200a。圖2顯示了時鐘切換控制器的第二部分200b。圖3顯示了作為時鐘切換控制器200的一部分的時鐘使能信號產生器300。圖4顯示了時鐘生成器100的時鐘切換時序圖(timing)。應該注意的是,圖1_3中所示的時鐘生成器只是一個示例,并不是一個限定,任何用于頻率分解和時鐘信號切換的配置都可用來實現時鐘生成器。此外,時鐘生成器可生成不同的兩個或多于三個頻率信號并根據需要在這些信號中切換。
[0018]參考圖1,時鐘生成器100從鎖相環路150 (PLL: phase locked loop)接收鎖相環路時鐘信號102(PLLCLK:phase locked loop clock)。在這個實施例中,PLL時鐘信號102的頻率是2GHz并且利用分頻器110將該PLL時鐘信號102除以2,4,8以分別對應于PCIe的第三、第二、第一代的處理(圖4中線1-4顯示了該PLL時鐘信號和三個時鐘信號)。應該注意的是,PLL時鐘信號102可以是任何頻率并且可以根據系統的要求被分解為任意頻率信號。盡管本實施例使用了 PLL時鐘信號,本領域技術人員應該知道也可以使用其他源時鐘信號。
[0019]圖1中的示例性分頻器110包括倒相器112,專用或非(NOR)門118,126,或(OR)門 124和D觸發器(D flip-flops) 114,116,120,122,128,13(LD觸發器 114,116,120,122,128,130由PLL時鐘信號同步。D觸發器114的輸出進入到D觸發器116中并且經過反相器112后也反饋回D觸發器114。D觸發器114的輸出使每一個PLL時鐘周期被反相,因此,D觸發器116在PLL時鐘信號的半頻處輸出PCIe第三代時鐘信號132c (即,生成PCIe第三代時鐘信號)。
[0020]D觸發器120的輸出進入到D觸發器122中并且也通過專用或非邏輯門118后反饋回D觸發器120中。D觸發器114的輸出進入到專用或非邏輯門118的另一個輸入中。D觸發器122在PLL時鐘信號的四分之一頻率處輸出PCIe第二代時鐘信號132b。
[0021]D觸發器128的輸出進入到D觸發器130中并且也通過專用或非邏輯門126后反饋回D觸發器128中。在進入專用或非126之前,D觸發器114和D觸發器120的輸出被或門124進行選通(gated)。D觸發器130在PLL時鐘信號102的八分之一頻率處輸出PCIe第一代時鐘信號132a。
[0022]時鐘門控(clock-gating)單元212a,212b,212c截止上面生成的時鐘信號132a,132b,132c 中的兩個信號并且根據控制信號 244a,244b,244c (clk_gl_en,clk_g2_en,clk_g3_en)上述時鐘信號132a,132b,132c中僅有一個可被輸出以作為提供給鏈路的傳送時鐘信號(TXCLK:tranmit clock signal)。TXCLK信號在圖4中由線17表示。控制信號244a,244b,244c在圖4中由線14-16表示。時鐘門控單元212a,212b,212c中的每一個分別包括門控D鎖存器214a,214b,214c和與邏輯門216a,216b,216c。控制信號244a,244b,244c (clk_gl_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分別進入到與邏輯門216a,216b,216c中。與邏輯門216a,216b,216c的輸出進入到或門218中。當選定clk_gl_en信號244a時,則輸出第一代時鐘信號132a ;當選定clk_g2_en信號244b時,則輸出第二代時鐘信號132b ;當選