透過使用 ADB 並指定適當的延遲數值,在各功率模式下完成時脈差異的最小化。
由於 ADB 的佈局面積大小依賴於 ADB 指定的延遲數值之大小,因此必須將 ADB 指 定的延遲數值作最小化。
給定緩衝器時脈樹(buffered clock tree),TB,其中共有 m 個緩衝器(buffer),分別 為 B1, B2 ,.., Bm,而這些緩衝器共連接了 n 個正反器(flip-flops),分別為 FF1, FF2 ,.., FFn, 且共有 c 種功率模式(power mode),分別為模式 1, 模式 2 ,.., 模式 c,在 c 種不同的 功率模式下,各正反器具有 c 種的延遲時間(latency),又稱為到達時間(arrival time)。
由於 ADB 可指定的延遲數值是不連續且有限的,假設 ADB 可調的延遲數值範圍 (tuning range)共有 p 種,分別為 D1, D2 ,.., Dp (且 Di<Di+1 , 1
i p-1),必須在有限的
ADB 的可調的延遲數值範圍中指定適當的延遲數值於 ADB 上,以達到時脈差異的最 小化。由於在多電壓模式下達到零時脈差異是非常困難的,而在電路中時脈差異的限制 條件有時不需那麼嚴謹,其中一種方法是將時脈差異限制在特定的界限(bound)內,
於此界限內的時脈差異是可被電路容忍的。在完成時脈差異的最小化後,依照設定的 差異界限(skew bound)的大小,將時脈差異釋放(release)並放寬界限,使時脈差異只要 小於或等於差異界限即可滿足差異的限制條件,而不需達到最小化,進而減少 ADB 的數量並使 ADB 指定的延遲數值降低。假設差異界限為 B,最小化的時脈差異必須 小於或等於 B 才能滿足差異的限制條件。
執行 ADB 設定的步驟是將時脈樹中的緩衝器替換成 ADB,並在 ADB 可調的延 遲數值範圍中指定適當的延遲數值於插入的 ADB 上。本篇論文的目標是將 ADB 的 數量及指定的延遲數值作最小化,同時在維持界限內的時脈差異之條件下將時脈差異 作最佳化。
由於 ADB 指定的延遲數值為不連續的延遲數值,因此有些延遲數值無法被調整
25
出來,在指定 ADB 的延遲數值的過程中可能會使時脈樹中正反器的延遲時間(latency) 提高,而使時脈樹的最大延遲時間(maximum latency)改變。時脈樹最大的延遲時間提 高會使平均延遲時間變大,可能會使時脈週期發生變化,而使整體的效能變差。因此 必須妥善地指定 ADB 的延遲數值,使時脈樹中各緩衝器子樹的延遲時間小於時脈樹 最大的延遲時間,如此才能滿足延遲時間的限制條件。
以下為 ADB 設定演算法的輸入、輸出及限制條件:
如圖 3-1 所示,給定緩衝器時脈樹,TB,與 10 顆一般緩衝器,{B1, B2, B3, B4, B5,
B
6, B7, B8, B9, B10},及 12 個連接緩衝器的正反器,{FF1, FF2, FF3, FF4, FF5, FF6, FF7,FF
8, FF9, FF10, FF11, FF12},其中共有兩種不同的功率模式,模式 1 和模式 2,於這兩 種模式下,正反器的初始延遲時間分別為{3, 6, 6, 8, 8, 11, 10, 14, 6, 7, 8, 9}及{7, 9, 8, 9, 6, 10, 10, 15, 6, 9, 4, 6},藉由觀察可知模式 1 及模式 2 下初始的時脈差異分別為 12 和 11。假設給定的差異界限為 7,且 ADB 可調的延遲數值分別為延遲數值,1.5、2.5 及 3.5。藉由將一般緩衝器替換成 ADB,並指定適當的延遲數值於 ADB 上,如圖 3-2輸入:
緩衝器時脈樹(buffered clock tree):TB 輸出:
經過 ADB 設定後的緩衝器時脈樹:TADB 限制條件:
1.差異的限制條件(Skew Constraint):
最小化的時脈差異必須小於或等於差異界限,B。
2.延遲時間的限制條件(Latency Constraint):
各正反器的延遲時間(latency)必須小於或等於時脈樹最大的延遲時間,
LAT
max。26
所示,在模式 1 下使用的 ADB 數量為 3 個,緩衝器,B2、B4及 B7,被替換成 ADB1、
ADB
2及 ADB3,並分別指定延遲數值,1.5、2.5 及 1.5。此外在模式 2 下,如圖 3-3 所示,使用的 ADB 數量為 3 個,緩衝器,B2、B7及 B10,替換成 ADB1、ADB3及 ADB4, 並分別指定延遲數值,2.5、2.5 及 2.5。由於 ADB 可不指定任何延遲數值,換言之 ADB 可指定延遲數值,0,因此在兩種功率模式下共使用 4 顆 ADB,ADB1 ,.., ADB4, 且 ADB1 ,.., ADB4指定的延遲數值在(模式 1,模式 2)下分別為(1.5,2.5)、(2.5,0)、(1.5,2.5)及(0,2.5)。最後在不超過差異界限,7,的條件下,最佳化的時脈差異在兩種功 率模式下皆為 6.5。
FF5 FF6 FF4
FF3 FF2
FF1 FF7 FF8 FF9 FF10 FF11 FF12
B1
B2
B3
B4 B5 B6 B7
B8 B9 B10
模式 1 3 6 6 8 8 11 10 14 6 7 8 9 模式 2 7 9 8 9 6 10 10 15 6 9 4 6
圖 3-1 各正反器初始的延遲時間
FF5 FF6
FF4
FF3
FF2
FF1 FF7 FF8 FF9 FF10 FF11 FF12
B1
B2 B3
B4 B5 B6 B7
B8 B9 B10
模式 1 7 10 7.5 9.5 9.5 13.5 10 14 7.5 8.5 9.5 10.5 ADB1=+1.5
ADB2=+2.5 ADB3=+1.5
[7.5 , 14] ADB 可調的延遲數值範圍:
延遲 = +1.5 延遲 = +2.5 延遲 = +3.5 延遲= 0
圖 3-2 功率模式 1 下的 ADB 設定及正反器的延遲時間
27
FF5 FF6 FF4
FF3 FF2
FF1 FF7 FF8 FF9 FF10 FF11 FF12
B1
B2
B3
B4 B5 B6 B7
B8 B9 B10
模式 2 9.5 11.5 10.5 11.5 8.5 12.5 10 15 8.5 11.5 9 11 ADB1=+2.5
ADB3=+2.5
ADB4=+2.5 [8.5 , 15] ADB 可調的延遲數值範圍:
延遲 = +1.5 延遲 = +2.5 延遲 = +3.5 延遲= 0
圖 3-3 功率模式 2 下的 ADB 設定及正反器的延遲時間
28