用于時鐘網絡設計的方法和裝置制造方法
【專利摘要】本發明涉及一種用于時鐘網絡設計的方法和裝置。一種具有匯點定位器單元的電子自動設計工具從時鐘網絡設計的扇區內的多個負載創建負載群集,所述創建基于在所述負載群集之間平衡所述負載的大小,并基于每個所述群集和所述時鐘網絡設計的所述扇區內的多個匯點位置中的相應位置的最小延遲。所述工具確定所述負載群集的中心,并確定對應于所述群集的中心以便連接扇區緩沖器的輸出端點的匯點位置。所述扇區緩沖器中的每個扇區緩沖器將時鐘信號驅動到所述負載群集中的一個對應負載群集。
【專利說明】用于時鐘網絡設計的方法和裝置
【技術領域】
[0001]本發明主題的實施例一般地涉及計算機領域,更具體地說,涉及設計功率高效的時鐘分配網絡。
【背景技術】
[0002]高性能超大規模集成(VLSI)芯片具有取決于外部時鐘信號的內部時鐘信號。將內部時鐘信號(以下稱為“時鐘信號”)分配給大量時鐘引腳。時鐘引腳是VLSI芯片(以下稱為“芯片”)上的特定位置或金屬形狀,它們具有已知或估計的有效引腳電容。時鐘信號的頻率決定芯片的頻率和周期時間。需要更短的周期時間和更高的芯片頻率以便提高芯片性能。時鐘偏斜(clock skew)是時鐘信號在芯片中不同位置處的到達時間之差。時鐘偏斜可以限制可實現的周期時間并降低芯片性能。時鐘偏斜是時鐘信號電壓的變化率。
[0003]時鐘緩沖器(以下稱為“扇區(sector)緩沖器”)驅動時鐘分配網絡的扇區(S卩,區段)中的時鐘信號。扇區緩沖器有助于減少時鐘偏斜并提高芯片性能。扇區緩沖器的輸出端點可以連接在扇區內的多個位置中的ー個或多個位置處。扇區緩沖器的輸出端點所連接的位置稱為匯點(sink)位置。
【發明內容】
[0004]本發明主題的實施例包括ー種方法,所述方法在時鐘網絡設計內的扇區中確定多個初始匯點位置以便連接扇區緩沖器的輸出端點。所述扇區包括多個負載。至少部分地基于所述負載的大小以及所述負載與所述多個初始匯點位置之間的路徑的延遲而跨所述多個初始匯點位置平衡所述多個負載。跨所述多個初始匯點位置平衡所述多個負載將從所述多個負載產生負載群集。對于所述負載群集中的每個負載群集,確定至少大約在該負載群集的中心處的中心匯點位置。基于所述中心匯點位置而指示最終匯點位置。所述最終匯點位置是將時鐘信號驅動到該負載群集的負載的扇區緩沖器的輸出端點的連接。
[0005]本發明主題的實施例包括ー種方法,所述方法從時鐘網絡設計的扇區內的多個負載創建負載群集,所述創建基于在所述負載群集之間平衡所述負載的大小,并基于所述群集中的每個群集和所述時鐘網絡設計的所述扇區中的多個匯點位置中的相應位置的最小延遲。確定所述負載群集的中心。確定對應于所述群集的中心以便連接扇區緩沖器的輸出端點的匯點位置。所述扇區緩沖器中的每個扇區緩沖器將時鐘信號驅動到所述負載群集中的ー個對應負載群集。
【專利附圖】
【附圖說明】
[0006]通過參考附圖,可以更好地理解本發明,并且眾多目標、特性和優點將對本領域的技術人員變得顯而易見,這些附圖是:
[0007]圖1示出了具有匯點定位器単元的設計工具的實例概念圖,所述匯點定位器単元用于確定扇區中的扇區緩沖器的ー個或多個輸出端點的連接點;[0008]圖2示出了用于確定時鐘分配網絡的扇區中的扇區緩沖器的初始匯點位置、群集和最終匯點位置的匯點定位器単元的實例概念圖;
[0009]圖3示出了用于確定扇區中的扇區緩沖器的匯點位置的實例操作的流程圖;以及
[0010]圖4示出了具有匯點定位器単元的實例計算機系統。
【具體實施方式】
[0011]下面的描述包括包含本發明主題的技術的示例性系統、方法、技術、指令序列和計算機程序產品。但是,應當理解,可以在沒有這些特定的細節的情況下實現所述實施例。例如,實例涉及在時鐘設計網絡中確定匯點位置以便連接扇區緩沖器的輸出終端的匯點定位器単元。但是,實施例并不限于在時鐘設計網絡中確定匯點位置以便連接扇區緩沖器的輸出終端的匯點定位器単元。可以由包含在電路設計工具中的其它單元或系統存儲器確定匯點位置。在其它情況下,未詳細示出公知的指令實例、協議、結構和技術以避免使說明書變得模糊不清。
[0012]匯點定位器単元通過減少時鐘偏斜以及時鐘信號的最小和最大轉換率之間的差,允許設計功率高效的時鐘分配網絡。驅動時鐘信號的扇區緩沖器通常具有高扇出。此外,時鐘分配網絡通常具有不均勻分布的負載(例如,表示接收時鐘信號的電路的輸入電容的容性負載),這與傳統工具假設的均勻分布的負載相反。此外,多個負載通常通過時鐘網格、或一個或多個時鐘脊柱(clock spine)、或其它局部布線結構而在局部連接在一起。這些局部布線結構在選擇的某些匯點位置連接到扇區緩沖器的輸出端點,以便減少時鐘偏斜并提高時鐘轉換率(clock slew)。此外,當選擇扇區緩沖器的匯點位置以便平衡到要驅動的負載的路徑上的延遲時,可以進一步提聞芯片性能。
[0013]圖1示出了具有匯點定位器単元的設計工具的實例概念圖,所述匯點定位器単元用于確定扇區中的扇區緩沖器的ー個輸出端點的連接點。圖1示出了扇區100和具有匯點定位器単元的設計工具102。扇區100是時鐘分配網絡中的多個扇區之一。從時鐘分配網絡的地理角度(由扇區表示)而高效調諧時鐘分配網絡。設計工具調諧時鐘分配網絡以獲得所需的時鐘偏斜和時鐘轉換率。扇區緩沖器將扇區中的時鐘信號驅動到扇區中的負載。扇區緩沖器可能不與扇區靠近,但扇區緩沖器的輸出端點連接到扇區中的匯點位置以便驅動時鐘信號。扇區100包括局部網格101 (由最粗網格線表示)和可用軌道103 (由點劃網格線表示)。局部網格可以備選地包括垂直或水平時鐘脊柱、或任何其它布線結構、或共同連接扇區100中的負載的結構。時鐘信號通過局部網格101發送。使用軌道103發送被驅動到芯片的信號。局部網格101包括負載105、107和109。局部網格101上的負載通常是容性負載,因為驅動時鐘信號的邏輯門具有高扇出。候選點111和113是扇區100中位于局部網格101和軌道103的交叉點的位置。候選點111和113表示可以連接扇區100中的扇區緩沖器的輸出端點117的位置。為了簡化,未在扇區100中示出所有候選點。扇區100還包括點115,該點開始作為候選點,并且最終被選擇作為連接點。連接點115經由連接導線119連接到扇區緩沖器的輸出端點117。連接點115也稱為扇區緩沖器的匯點位置。
[0014]設計工具102選擇候選點115作為連接點115,以便連接扇區緩沖器的輸出端點117。為了簡化,圖1僅示出單個匯點位置。但是,設計工具102可以針對扇區100中的每個扇區緩沖器確定ー個或多個匯點位置。在某些現有技術中,根據扇區中的負載對稱分布的假設,將扇區緩沖器的匯點位置確定為扇區中的幾何對稱點。但是,負載通常并不均勻分布。假設負載均勻分布的時鐘分配網絡設計將導致較高的時鐘偏斜和較大的時鐘轉換率變化。此外,時鐘轉換率影響要使用的時鐘信號的功率。減小最大和最小時鐘轉換率之間的差將允許設計人員增加平均時鐘轉換率,這將減少要使用的時鐘信號的功率。例如,最大和最小時鐘轉換率之間的差減小1皮秒,可以允許平均時鐘轉換率增加0.5皮秒。平均時鐘轉換率増加0.5皮秒,可以導致時鐘信號功率要求降低大約1.5%。具有匯點定位器単元的設計工具102經由每個匯點位置,平衡要驅動的負載的大小。首先,設計工具102確定扇區中要驅動的負載集合。主要由單個匯點位置驅動的負載集合稱為群集。設計工具102然后通過群集中的候選點,確定扇區100中的匯點位置。設計工具102確定如下候選點:在到要由匯點位置驅動的所有負載的路徑上具有最小延遲。使用RC導線延遲計算或其它導線延遲估計技術來估計負載路徑上的延遲。例如,使用常用的埃爾莫爾(Elmore)延遲近似,負載的導線段的延遲為電阻(包括連接負載的導線的電阻)與該導線段驅動的總電容的乘積。在某些實施例中,設計工具102可以使用其它技術(例如,靜態計時分析)估計到負載的路徑上的延遲。
[0015]參考圖1,設計工具102將要由單個匯點位置驅動的負載105、107和109的集合確定為群集。群集中的候選點為111、113和115。在一個實例中,設計工具102通過每個候選點111、113和115,計算到負載105、107和109的路徑上的埃爾莫爾延遲。設計工具102確定候選點115將最小化到負載的最大埃爾莫爾延遲。設計工具102將候選點115確定為匯點位置。
[0016]盡管圖1針對每個扇區緩沖器示出單個匯點位置,但匯點位置數可以大于或小于扇區緩沖器數。例如,設計工具102可以確定僅使用4個扇區緩沖器驅動扇區中的5個匯點位置。設計工具102可以使用其中ー個扇區緩沖器驅動2個匯點位置,并使用其它3個扇區緩沖器中的每ー個驅動1個匯點位置。相反地,如果匯點位置數小于已經放置的扇區緩沖器數,則可以刪除ー個或多個扇區緩沖器,或者可以將兩個扇區緩沖器的輸出短接在一起以便驅動單個匯點位置。
[0017]圖2示出了用于在時鐘分配網絡的扇區中確定扇區緩沖器的最終匯點位置的匯點定位器単元、不斷增長的群集的實例概念圖。圖2示出了具有四個扇區緩沖器以便驅動扇區總負載的扇區的ー個實例。圖2包括匯點定位器単元200。圖2還包括群集201、204、207和210。群集201包括初始匯點位置202和最終匯點位置203。群集204包括初始匯點位置205和最終匯點位置206。群集207包括初始匯點位置208和最終匯點位置209。群集210包括初始匯點位置211和最終匯點位置212。匯點定位器単元200設置扇區緩沖器的初始匯點位置,確定對應于初始匯點位置的群集,并確定群集的最終匯點位置。圖2示出了匯點定位器単元200在一系列階段A-C中執行的操作。
[0018]在階段A,匯點定位器単元200設置扇區緩沖器的初始匯點位置202、205、208和211。匯點定位器単元200具有有關要用于扇區的扇區緩沖器數量的信息。匯點定位器單元200還可以確定要用于扇區的匯點位置數。例如,匯點定位器単元200使用有關扇區中要驅動的負載的大小以及扇區緩沖器的負載驅動容量的信息來確定匯點位置數。匯點定位器單元200可以在扇區中的幾何對稱位置處設置初始匯點位置202、205、208和211。匯點定位器単元200還可以在某些預定位置處設置初始匯點位置。初始位置集合稱為隨機種子,但某些實施例可以采用確定性地選擇的種子(如果需要)。如果扇區中存在多個脊柱或其它連接負載的布線結構(而不是單個局部網格),則每個単獨脊柱上具有至少ー個種子位置,使得扇區緩沖器和所選擇的匯點位置驅動所有負載。
[0019]在階段B,匯點定位器単元200通過將負載與群集關聯而擴展群集。匯點定位器單元200將局部網格中的負載與對應于初始匯點位置202、205、208和211的群集關聯。匯點定位器単元200擴展群集,同時跨群集平衡負載。例如,匯點定位器単元200將大小為5pF(皮法)的負載與對應于初始匯點位置202的群集關聯。匯點定位器単元200然后將五個lpF的負載與對應于初始匯點位置211的群集關聯。匯點定位器単元200并行將負載與群集關聯,因此確保平衡與每個群集關聯的負載的大小。匯點定位器単元200還基于從相應群集的初始匯點位置到負載的路徑上的延遲,將負載與群集關聯。例如,當多個負載之一可以與群集關聯時,匯點定位器単元200確定在從初始匯點位置到負載的路徑上具有最小延遲的負載。當扇區的局部網格中的該扇區的所有負載均與群集關聯時,匯點定位器単元200確定群集的邊界。
[0020]在階段C,匯點定位器單元200分別將群集201、204、207、210的中心確定為最終匯點位置203、206、209和212。匯點定位器單元200基于從負載到群集中的某些候選點的路徑上的延遲而確定群集中心。匯點定位器単元200可以基于群集的対稱性確定候選點,或者將候選點確定為群集中的隨機點。匯點定位器単元200將在負載路徑上具有最小延遲的候選點確定為群集中心。匯點定位器単元200可以并行確定多個群集的中心或者毎次確定ー個群集。某個群集的中心位置不受其它群集的中心位置的影響。在某些實施例中,當匯點定位器単元200執行多次迭代以確定最終匯點位置吋,匯點定位器単元200可以將群集中心確定為下一次迭代的初始匯點位置。
[0021]圖3示出了用于確定扇區中的扇區緩沖器的匯點位置的實例操作的流程圖。圖3的流程圖中的操作可以包括上面參考圖2示出的操作的一次或多次迭代。可以針對時鐘分配網絡中的每個扇區運行圖3的操作。
[0022]在方框301,確定對應于在扇區中使用的扇區緩沖器的群集數量。群集數量與匯點位置數量相同,而匯點位置數量可以大于或小于扇區中的扇區緩沖器的數量。換言之,確定要驅動扇區的總負載的群集/匯點位置的數量。
[0023]在方框302,確定隨機種子數量(N)。隨機種子是ー組初始匯點位置。例如,匯點定位器単元200使用隨機種子執行圖2中描述的操作的單次迭代。可以基于要針對扇區中的時鐘信號實現的目標時鐘偏斜和時鐘轉換率而確定隨機種子數量。各實施例不一定使用所有隨機種子。例如,一旦使用某些隨機種子確定滿足目標時鐘偏斜和時鐘轉換率約束的扇區緩沖器的最終匯點位置,就不使用其余隨機種子。
[0024]在方框303,針對每個隨機種子啟動循環。所述循環包括方框305、307、309、311、313、314、315和317處的操作。
[0025]在方框307,基于平衡負載的大小以及從初始匯點位置到負載的路徑上的延遲,將負載與初始匯點位置關聯。基于跨初始匯點位置的最小延遲和平衡后的負載關聯,將每個負載與ー個初始匯點位置關聯。負載與初始匯點位置的首次關聯將產生群集,后續關聯將擴展群集。例如,設計工具選擇初始匯點位置A,并基于確定初始匯點位置A與所有其它負載中的負載α之間具有最小延遲而選擇負載α。因此,所述工具將負載α與初始匯點位置A關聯。對于該實例,負載α具有5皮法的負載。所述工具然后選擇初始匯點位置Β。所述工具確定初始匯點位置Β與負載β之間的延遲具有初始匯點位置Β和其余不關聯負載之間的最小延遲。所述工具將負載β (具有1皮法的負載)與初始匯點位置Β關聯。所述工具然后比較與初始匯點位置Α和Β關聯的負載,并確定負載不平衡。所述工具然后將其它負載與初始匯點位置B關聯,直到位置B與初始匯點位置A平衡。換言之,在轉到創建第三群集之前,將第二群集與第一群集平衡。各實施例可以使用不同技術來使初始關聯逐步發展。例如,所述工具可以基于平衡后的負載大小而推遲關聯負載,直到至少ー個負載與每個初始匯點位置關聯。各實施例可以設置用于平衡負載大小的閾值。例如,只要差小于2皮法,一個實施例便可以認為已平衡群集的負載。各實施例還可以針對延遲使用閾值。例如,工具可以將負載與如下初始匯點位置關聯:該位置比延遲最小的負載具有更大的延遲,前提是延遲僅大0.1皮秒并且負載差不超過0.5皮法。各實施例維護群集“邊界”。維護邊界包括跟蹤群集的最外層負載。因此,從這些最外層負載(即,位于群集邊界的外部)附近的那些不關聯負載開始,選擇要考慮用干與群集關聯的后續負載。設計工具可以利用設計中的物理信息確定負載的位置信息。各實施例可以采用各種數據結構來表示群集并跟蹤群集的發展(例如,向量、集合、圖結構等)。
[0026]要指出的是,在某些實例中,群集可以短接在一起,因此延遲計算實際上是近似的。可以單獨分析每個群集,盡管它可能通過局部網格、脊柱等與另ー個群集短接在一起,也可能未短接。每個匯點位置對應于ー個群集。但是,一個扇區緩沖器可以驅動多個匯點位置。創建群集時,將計算與匯點位置/群集關聯的總電容。
[0027]在方框309,根據從中心到負載的路徑上的延遲,確定每個群集的中心。工具評估包含在群集中的候選匯點位置,以便找到相對于群集的所有負載而言具有最小延遲總和值的候選匯點位置。工具可以被配置為遍歷所有候選匯點位置,以便找到最小的延遲總和值;可以被配置為遍歷給定數量的候選匯點位置,以便在給定數量的候選匯點位置中找到最小的延遲總和值;可以被配置為評估候選匯點位置,直到滿足目標延遲;等等。
[0028]在方框311,將在方框309確定的群集中心設置為最終匯點位置。
[0029]在方框313,判定是否針對隨機種子執行另一次迭代。在某些實施例中,評估最終匯點位置以判定它們是否滿足某些條件,這些條件用于確定是否針對隨機種子執行另一次迭代。例如,匯點定位器単元200判定每個群集中的負載之間的差是否在某一范圍內(例如,變化為2%)。在某些實施例中,針對隨機種子繼續到另一次迭代包括判定從最終匯點位置到負載的路徑上的延遲是否大于某ー值(例如,10皮秒)。如果要針對隨機種子執行另ー次迭代,則控制流向方框315。如果不針對隨機種子執行另一次迭代,則控制流向方框314。
[0030]在方框315,將最終匯點位置(S卩,在方框311設置的最終匯點位置)設置為方框307,309和311處的隨機種子操作的下一次迭代的初始匯點位置。
[0031]在方框314,判定負載是否平衡,以及到負載的路徑上的延遲是否在預定范圍內。例如,匯點定位器単元200驗證以平衡方式在群集之間分布負載,以便滿足時鐘偏斜和時鐘轉換率的目標范圍。匯點定位器単元200還可以驗證從最終匯點位置(即,在方框311設置的最終匯點位置)到負載的路徑上的延遲是否小于某ー值(例如,10微秒)。在某些實施例中,針對隨機種子保存最終匯點位置。如果負載已平衡并且到負載的路徑上的延遲在預定范圍內,則控制流向方框319。如果負載不平衡或者到負載的路徑上的延遲不在預定范圍內,則控制流向方框317。
[0032]在方框317,判定是否已針對所有隨機種子執行迭代。如果未針對所有隨機種子執行迭代,則控制流向方框303。如果已針對所有隨機種子執行迭代,則控制流向方框319。
[0033]在方框319,確定扇區中的扇區緩沖器的端點的連接點。各實施例可以使用ー個或多個先前存儲的最終匯點位置,以便確定扇區緩沖器的端點的連接點(匯點位置)。例如,當針對多個隨機種子存儲多個最終匯點位置時,將連接點確定為最終匯點位置的幾何中心。
[0034]所屬【技術領域】的技術人員應當理解,示出的流程圖包括有助于理解本發明主題的實例,并且這些實例不應當用于限制權利要求的范圍。圖3的流程圖示出確定單個扇區中的扇區緩沖器的匯點位置。但是,各實施例可以并行確定多個扇區中的扇區緩沖器的匯點位置。各實施例可以執行其它未示出的操作,執行比示出操作更少的操作,以不同順序執行操作,并行執行操作等。盡管未在該流程圖中示出,但各實施例還可以將扇區中的扇區緩沖器的端點與相應扇區緩沖器中的匯點位置相連接。
[0035]所屬【技術領域】的技術人員知道,本發明主題的各個方面可以實現為系統、方法或計算機程序產品。因此,本發明主題的各個方面可以具體實現為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統稱為“電路”、“模塊”或“系統”。此外,本發明主題的各個方面還可以實現為在ー個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0036]可以采用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是ー但不限于ー電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者上述的任意合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何能夠包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0037]計算機可讀的信號介質可以包括例如在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括一但不限于ー電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0038]計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括一但不限于ー無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0039]可以以ー種或多種程序設計語言的任意組合來編寫用于執行本發明主題的各方面的操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言ー諸如Java、Smalltalk、C++等,還包括常規的過程式程序設計語言ー諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為ー個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡ー包括局域網(LAN)或廣域網(WAN) —連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
[0040]下面將參照根據本發明主題的實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述本發明主題的各個方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出ー種機器,使得這些指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。
[0041]也可以把這些計算機程序指令存儲在計算機可讀介質中,這些指令使得計算機、其它可編程數據處理裝置、或其它設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的指令的制造品(article of manufacture
[0042]也可以把計算機程序指令加載到計算機、其它可編程數據處理裝置、或其它設備上,使得在計算機、其它可編程裝置或其它設備上執行一系列操作步驟,以產生計算機實現的過程,從而使得在計算機或其它可編程裝置上執行的指令提供實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的過程。
[0043]圖4示出了具有匯點定位器単元的實例計算機系統。圖4示出了計算機系統400。計算機系統400包括處理器単元401 (可能包括多個處理器、多個核心、多個節點和/或實現多線程等)。所述計算機系統包括存儲器403。存儲器403可以是系統存儲器(例如,以下ー項或多項:高速緩存、SRAM、DRAM、零電容RAM、雙晶體管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、S0N0S、PRAM等),或者上面已經描述的機器可讀介質的可能實現的任意ー種或多種。所述計算機系統還包括總線411 (例如,PC1、ISA、PC1-Express、HyperTransport?、InfiniBand?、NuBus 等)、網絡接ロ 407 (例如,ATM接ロ、以太網接ロ、幀中繼接ロ、S0NET接ロ、無線接ロ等)、存儲設備(多個)413 (例如,光存儲裝置、磁存儲裝置等),以及匯點定位器単元405。匯點定位器単元405包含用于確定時鐘分配網絡的扇區中的扇區緩沖器的匯點位置的功能。匯點定位器単元405選擇扇區中的初始匯點位置。匯點定位器単元405可以基于扇區中的幾何対稱性而選擇初始匯點位置。匯點定位器単元405然后創建用于每個初始匯點位置的群集。群集是ー組負載(例如,容性負載),它們對應于匯點位置(因此對應于將時鐘信號驅動到群集中的負載的扇區緩沖器)。匯點定位器単元405將扇區中的負載與群集關聯,并擴展群集。匯點定位器単元405通過計算與扇區中的其余群集關聯的負載,確定將負載與群集關聯。匯點定位器単元405將負載與群集關聯,以便以平衡方式在群集之間分配負載。例如,匯點定位器単元405將具有較高電容的負載與ー個群集關聯,將多個具有較小電容的負載與其它群集關聯。匯點定位器単元405還基于從相應群集的初始匯點位置到負載的路徑上的延遲,將負載與群集關聯。匯點定位器単元405將負載與ー個群集關聯,以便最小化從相應群集的初始匯點位置到負載的路徑上的延遲。當設計網格中的所有負載都與群集關聯時,匯點定位器単元405將最終匯點位置確定為每個群集的中心。匯點定位器単元405基于到群集中的負載的路徑上的延遲,確定群集中心。匯點定位器単元405可以執行多次迭代,以便微調群集和群集中心。匯點定位器単元405然后確定最終匯點位置以便連接扇區緩沖器的端點。匯點定位器単元405可以使用多個初始匯點位置并執行迭代,以便確定對應于多個初始匯點位置的多個最終匯點位置。匯點定位器単元405然后可以使用多個最終匯點位置,確定扇區緩沖器的匯點位置。這些功能中的任意ー個都可以部分(或全部)在硬件和/或處理單元401中實現。例如,所述功能可以使用專用集成電路實現、以在處理單元401中實現的邏輯實現、在外圍設備或卡中的協處理器中實現等。匯點定位器単元405可以是示出的獨立単元,或者是電路設計程序的組件。匯點定位器単元405可以是包含在存儲器403中的程序代碼。此外,實現可以包括未在圖4中示出的更少或其它組件(例如,視頻卡、音頻卡、其它網絡接ロ、外圍設備等)。處理器単元401、存儲設備(多個)413、網絡接ロ 407和匯點定位器単元405都耦合到總線411。盡管被示出為耦合到總線411,但存儲器403可以耦合到處理器単元401。
[0044]雖然參考各種實現和利用描述實施例,但應當理解,這些實施例是示例性的,并且本發明主題的范圍并不限于這些實施例。一般而言,可以使用與任何ー個或多個硬件系統一致的工具,實現此處描述的用于確定時鐘分配網絡的扇區中的扇區緩沖器的匯點位置的技術。可能存在許多變化、修改、増加和改進。
[0045]可以為作為單個實例在此描述的元件、操作或結構提供多個實例。最后,各種元件、操作和數據存儲之間的界限具有某種程度的任意性,并且在特定示例性配置的上下文中示出特定操作。將設想其它功能分配,并且這些分配可以落入本發明主題的范圍之內。一般而言,在示例性配置中作為單獨元件提供的結構和功能可以被實現為組合的結構或元件。同樣,作為單個元件提供的結構和功能可以被實現為單獨元件。這些和其它變化、修改、増加和改進可以落入本發明主題的范圍之內。
【權利要求】
1.一種用于時鐘網絡設計的方法,所述方法包括: 在時鐘網絡設計內的扇區中確定多個初始匯點位置以便連接扇區緩沖器的輸出端點,其中所述扇區包括多個負載; 至少部分地基于所述負載的大小以及所述負載與所述多個初始匯點位置之間的路徑的延遲而跨所述多個初始匯點位置平衡所述多個負載,其中跨所述多個初始匯點位置平衡所述多個負載將從所述多個負載產生負載群集;以及對于所述負載群集中的每個負載群集, 確定至少大約在該負載群集的中心處的中心匯點位置;以及 基于所述中心匯點位置而指示最終匯點位置,其中所述最終匯點位置是將時鐘信號驅動到該負載群集的負載的扇區緩沖器的輸出端點的連接。
2.根據權利要求1的方法,還包括: 使用所述負載群集中的每個負載群集的所述中心匯點位置作為初始匯點位置; 至少部分地基于所述負載的大小以及所述負載與所述中心匯點位置之間的路徑的延遲而跨所述中心匯點位置平衡所述多個負載,其中跨所述中心匯點位置平衡所述多個負載將從所述多個負載產生第二負載群集; 對于所述第二負載群集中的每個群集, 確定至少大約在所述第二負載群集中的該群集的中心處的第二中心匯點位置; 其中基于所述中心匯點位置而指示所述最終匯點位置包括選擇所述第二中心匯點位置,作為所述第二負載群集中的該群集的最終匯點位置。
3.根據權利要求1的方法,其中至少部分地基于所述負載的大小以及所述負載與所述多個初始匯點位置之間的路徑的延遲而跨所述多個初始匯點位置平衡所述多個負載包括: 對于所述初始匯點位置中的每個初始匯點位置, 選擇所述多個負載中的不關聯負載,所述選擇基于所述多個負載中的所述不關聯負載的大小以及每個其它匯點位置的所述多個負載中的關聯負載的大小總和,以及基于從所述多個負載中的不關聯負載到所述初始匯點位置的路徑的延遲。
4.根據權利要求1的方法,其中對于所述負載群集中的每個負載群集,確定至少大約在該負載群集的中心處的中心匯點位置包括從該負載群集內的多個候選匯點位置選擇所述中心匯點位置。
5.根據權利要求4的方法,其中從該負載群集內的多個候選匯點位置選擇所述中心匯點位置包括確定以下項之ー的最小值:從所述多個候選匯點位置中的每個候選匯點位置到所述負載的路徑上的延遲的總和、最大值或標準偏差。
6.根據權利要求1的方法,其中對于所述負載群集中的每個負載群集,確定至少大約在該負載群集的中心處的中心匯點位置包括確定該群集的幾何中心。
7.一種用于時鐘網絡設計的方法,所述方法包括: 從時鐘網絡設計的扇區內的多個負載創建負載群集,所述創建基于在所述負載群集之間平衡所述負載的大小,并基于所述群集中的每個群集和所述時鐘網絡設計的所述扇區中的多個匯點位置中的相應位置的最小延遲; 確定所述負載群集的中心;以及標識對應于所述群集的中心以便連接扇區緩沖器的輸出端點的匯點位置,其中所述扇區緩沖器中的每個扇區緩沖器將時鐘信號驅動到所述負載群集中的ー個對應負載群集。
8.根據權利要求7的方法,還包括確定所述時鐘網絡設計的所述扇區內的所述多個匯點位置作為初始匯點位置。
9.根據權利要求7的方法,其中從多個負載創建負載群集包括: 對于所述多個匯點位置中的每個匯點位置,將所述多個負載中的不關聯負載與該匯點位置關聯,所述關聯基于以下兩者:相對于所述多個負載中已經與所述多個匯點位置之一關聯的那些負載的大小的所述不關聯負載的大小,以及該匯點位置與所述多個負載中的不關聯負載之間的最小延遲。
10.一種用于時鐘網絡設計的裝置,所述裝置包括: 配置為從時鐘網絡設計的扇區內的多個負載創建負載群集的模塊,所述創建基于在所述負載群集之間平衡所述負載的大小,并基于所述群集中的每個群集和所述時鐘網絡設計的所述扇區中的多個匯點位置中的相應位置的最小延遲; 配置為確定所述負載群集的中心的模塊;以及 配置為標識對應于所述群集的中心以便連接扇區緩沖器的輸出端點的匯點位置的模塊,其中所述扇區緩沖器中的每個扇區緩沖器將時鐘信號驅動到所述負載群集中的ー個對應負載群集。
11.根據權利要求10 的裝置,還包括配置為確定所述時鐘網絡設計的所述扇區內的所述多個匯點位置作為初始匯點位置的模塊。
12.根據權利要求10的裝置,其中配置為從多個負載創建負載群集的模塊包括配置為執行以下操作的模塊: 對于所述多個匯點位置中的每個匯點位置,將所述多個負載中的不關聯負載與該匯點位置關聯,所述關聯基于以下兩者:相對于所述多個負載中已經與所述多個匯點位置之一關聯的那些負載的大小的所述不關聯負載的大小,以及該匯點位置與所述多個負載中的不關聯負載之間的最小延遲。
13.一種用于時鐘網絡設計的裝置,所述裝置包括: 配置為在時鐘網絡設計內的扇區中確定多個初始匯點位置以便連接扇區緩沖器的輸出端點的模塊,其中所述扇區包括多個負載; 配置為至少部分地基于所述負載的大小以及所述負載與所述多個初始匯點位置之間的路徑的延遲而跨所述多個初始匯點位置平衡所述多個負載的模塊,其中跨所述多個初始匯點位置平衡所述多個負載的模塊被配置為從所述多個負載產生負載群集;以及 對于所述負載群集中的每個負載群集, 配置為確定至少大約在該負載群集的中心處的中心匯點位置的模塊;以及 配置為基于所述中心匯點位置而指示最終匯點位置的模塊,其中所述最終匯點位置是將時鐘信號驅動到該負載群集的負載的扇區緩沖器的輸出端點的連接。
14.根據權利要求13的裝置,還包括: 配置為使用所述負載群集中的每個負載群集的所述中心匯點位置作為初始匯點位置的模塊; 配置為至少部分地基于所述負載的大小以及所述負載與所述中心匯點位置之間的路徑的延遲而跨所述中心匯點位置平衡所述多個負載的模塊,其中配置為跨所述中心匯點位置平衡所述多個負載的模塊被配置為從所述多個負載產生第二負載群集; 對于所述第二負載群集中的每個群集, 配置為確定至少大約在所述第二負載群集中的該群集的中心處的第二中心匯點位置的模塊; 其中配置為基于所述中心匯點位置而指示所述最終匯點位置的模塊包括配置為選擇所述第二中心匯點位置,作為所述第二負載群集中的該群集的最終匯點位置的模塊。
15.根據權利要求13的裝置,其中配置為至少部分地基于所述負載的大小以及所述負載與所述多個初始匯點位置之間的路徑的延遲而跨所述多個初始匯點位置平衡所述多個負載的模塊包括: 對于所述初始匯點位置中的每個初始匯點位置, 配置為選擇所述多個負載中的不關聯負載的模塊,所述選擇基于所述多個負載中的所述不關聯負載的大小以及每個其它匯點位置的所述多個負載中的關聯負載的大小總和,以及基于從所述多個負載中的不關聯負載到所述初始匯點位置的路徑的延遲。
16.根據權 利要求13的裝置,其中對于所述負載群集中的每個負載群集,配置為確定至少大約在該負載群集的中心處的中心匯點位置的模塊包括配置為從該負載群集內的多個候選匯點位置選擇所述中心匯點位置的模塊。
17.根據權利要求16的裝置,其中配置為從該負載群集內的多個候選匯點位置選擇所述中心匯點位置的模塊包括配置為確定以下項之ー的最小值的模塊:從所述多個候選匯點位置中的每個候選匯點位置到所述負載的路徑上的延遲的總和、最大值或標準偏差。
18.根據權利要求13的裝置,其中對于所述負載群集中的每個負載群集,配置為確定至少大約在該負載群集的中心處的中心匯點位置的模塊包括配置為確定該群集的幾何中心的模塊。
【文檔編號】G06F1/10GK103455086SQ201310216924
【公開日】2013年12月18日 申請日期:2013年6月3日 優先權日:2012年6月4日
【發明者】C·J·阿爾珀特, J·N·柯扎亞, 李卓, J·J·帕倫博, 錢海峰, P·J·萊斯特爾, 施展毅, 周英 申請人:國際商業機器公司