• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
66
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

多電壓模式下使用可調式延遲緩衝器完成時 脈差異最小化

Assignment of Adjustable Delay Buffers for Clock Skew Minimization in Multi-Voltage

Mode Designs

系 所 別:資訊工程學系碩士班 學號姓名:M09902001 黃建榮 指導教授:顏金泰 博士

中 華 民 國 102 年 8 月

(2)

i

摘要

在高效能的 VLSI 設計中,時脈差異的最小化問題已成為一項非常重要的議題。

在此篇論文中,於多電壓模式下使用可調式延遲緩衝器(ADB)於緩衝器時脈樹中以完 成時脈差異的最小化。給定緩衝器時脈樹,藉由可調式延遲緩衝器具靈活設定延遲的 特性,本篇論文首先提出由下而上的 ADB 設定以插入 ADB,藉由在各功率模式下指 定適當的延遲數值於 ADB 上,使整體的時脈差異達到最小化。考量到 ADB 可指定 的延遲數值是不連續的延遲數值,此篇論文提出有效率的演算法妥善地指定適當的延 遲數值於插入的 ADB 上。此外由下而上的移除演算法被提出,在多電壓模式下將多 餘的 ADB 移除,使 ADB 數量達到最小化,同時維持界限內時脈差異的大小。和先 前的研究結果比較,實驗結果顯示本論文提出的方法使用更少的執行時間對 ADB 的 數量作最小化,同時在平均上減少 8.6%的佈局面積及 5.5%的平均延遲時間。

關鍵字:時脈樹、可調式延遲緩衝器、時脈差異最小化

(3)

ii

ABSTRACT

It is well known that clock skew minimization becomes critical in high-performance VLSI designs. In this paper, the assignment of adjustable delay buffers (ADBs) is applied to minimize the clock skew in a buffered clock tree in a multi-voltage mode design. Given a buffered clock tree, based on the assignment flexibility of the delay value on an ADB, bottom-up ADB assignment is firstly proposed to insert ADBs to minimize the clock skew by assigning the delay values of the inserted ADBs for each power mode. Under the consideration of discrete delay values on ADBs, an efficient algorithm is proposed to appropriately assign the feasible delay values on the inserted ADBs. Furthermore, bottom-up ADB elimination is proposed to eliminate the redundant ADBs to minimized the number of the inserted ADBs in a multi-voltage mode design while maintaining the bounded clock skew. Compared with Lim’s optimal algorithm, the experimental results show that our proposed algorithm uses less CPU time to minimize the number of the ADBs, reduced 8.6% of layout areas and 5.5% of the average latency on the average.

Keywords: Clock tree, Adjustable delay buffer, Skew minimization

(4)

iii

致謝

在研究所的求學過程中,能夠順利的完成學業並完成論文,真的要非常感謝指導 教授顏金泰老師的細心教導,無論在課業的方面及研究上的指導,或在為人處事上及 做學問的態度上都使我獲益良多。感謝老師這幾年來的督促與教誨,使我可以順利的 完成碩士學業,向職場的方向邁進。

除了師長的諄諄教誨外,也特別感謝各位學長姐及學弟妹的支持及幫助。感謝學 長志瑋對於課業及論文上的指導與幫助,及學長凱平、東彥、科銓、育成、忠位、潤 民、明謙及學姊佳涵的關心與建議;還有學弟明群、聖凱、昱仁、鈞強、書延、學妹 孟苓的協助與支持。有你們的陪伴,使我研究所生活變得多采多姿。

最後,謹將此論文獻給默默支持我的家人、爺爺與我所愛的人,及一路上協助過 我的師長、同學與朋友們,與大家分享這份得來不易的榮耀,並致上十二萬分的感謝。

(5)

iv

目錄

摘要……….i

ABSTRACT………...ii

致謝………...iii

目錄………...iv

表目錄………...vi

圖目錄………..vii

第一章 簡介………..…1

1.1 時脈信號(Clock Signal)的運用………..2

1.2 時脈差異(Clock Skew)的問題..………..3

1.3 時脈分配網路(Clock Distribution Network) ..………..……..5

1.4 多電壓模式(Multi-Voltage Mode)設計………...7

1.5 時脈拓樸的選擇………..9

1.6 可調式延遲緩衝器(ADB)常見的元件構造……….10

第二章 先前相關研究與動機………....14

2.1 Su 的研究論文簡介……….………..14

2.2 Lim 的研究論文簡介……….………17

2.3 Lin 的研究論文簡介………..……....19

2.4 研究動機………...…23

第三章 問題描述………...24

第四章 限制最大延遲時間條件下的 ADB 設定………...….………...……28

4.1 由下而上的 ADB 設定完成時脈差異最小化…..……..…………..……….29

4.2 維持界限內的時脈差異條件下之由上而下 ADB 分佈…..……….40

4.3 維持界限內的時脈差異條件下之由下而上 ADB 移除……..…..………...45

第五章 放鬆最大延遲時間條件下的 ADB 設定………...……50

(6)

v

第六章 實驗結果……….………...……53 第七章 結論……….………...……55 參考文獻………...…...56

(7)

vi

表目錄

表 1-1 網狀拓樸和樹狀拓樸的比較………..10 表 6-1 測試檔資訊………..53 表 6-2 ADB 的數量及 ADB 指定最大的延遲數值之比較結果……….……….….54

(8)

vii

圖目錄

圖 1-1 超大型積體電路(VLSI)的處理器……….1

圖 1-2 同步化電路設計………2

圖 1-3 時脈信號的週期性循環………3

圖 1-4 組合路徑………4

圖 1-5 樹狀拓樸的結構:H 樹………6

圖 1-6 緩衝器時脈樹………6

圖 1-7 網狀拓樸的結構………7

圖 1-8 樹狀拓樸結構+網狀拓樸結構……….7

圖 1-9 在多電壓模式下種功率模式的例子………8

圖 1-10 電容為基礎的 ADB 構造……….……….………..11

圖 1-11 反相器為基礎的 ADB 構造………..………..12

圖 2-1 ADB 指定延遲數值之例子………...16

圖 2-2 決定子 ADB(ADB2)是否保留或移除的三種情況……….…18

圖 2-3 Lin 的演算法步驟..………..……….………….20

圖 2-4 ADB 的延遲數值合併運算………..22

圖 3-1 各正反器初始的延遲時間………..………26

圖 3-2 功率模式 1 下的 ADB 設定及正反器的延遲時間………26

圖 3-3 功率模式 2 下的 ADB 設定及正反器的延遲時間………27

圖 4-1 演算法設計流程………..28

圖 4-2 緩衝器,Bi,可能的樹型結構及各緩衝器的延遲時間區間………..…….29

圖 4-3 Bi及 Bk延遲時間區間可能分佈情形……….…….…..30

圖 4-4 區間,RL和 RR……….……….………31

圖 4-5 藉由指定延遲數值,Di,使區間,RL,被完全地包含在區間,RR,中………..…32

圖 4-6 情況 1 時 RL及 RR可能合併情形………32

(9)

viii

圖 4-7 藉由指定延遲數值,Di,使區間,RL,將區間,RR,包含在其中………....…..…33

圖 4-8 情況 2 時 RL及 RR可能合併情形………34

圖 4-9 區間合併運算………..35

圖 4-10 模式 1 下 ADB 的設定及各正反器的延遲時間………....…39

圖 4-11 模式 2 下 ADB 的設定及各正反器的延遲時間………39

圖 4-12 ADB 的分佈運算……….………40

圖 4-13 ADB 的移除運算………41

圖 4-14 分佈 ADB 的延遲範圍至分支中………..42

圖 4-15 模式 1 下的 ADB 的分佈運算……….………..44

圖 4-16 模式 2 下的 ADB 的分佈運算………...44

圖 4-17 找到共同交集的延遲範圍,並移除多餘的 ADB……….…45

圖 4-18 指定位於最頂層的 ADB 的延遲數值………..………..………46

圖 4-19 模式 1 下 ADB 的移除運算………48

圖 4-20 經過 ADB 移除運算後模式 1 下的時脈樹………..………….48

圖 4-21 模式 2 下 ADB 的移除運算……..……….49

圖 4-22 經過 ADB 移除運算後於模式 2 下的時脈樹………..49

圖 5-1 更新後的設計流程………..50

圖 5-2 模式 1 下改良的 ADB 設定及各正反器的延遲時間…………..………52

圖 5-3 模式 2 下 ADB 的設定及各正反器的延遲時間……….……….…52

(10)

1

第一章 簡介

在現今資訊化時代中,各式各樣的電子設備及科技產物已完全地融入於日常生活 中。舉凡生活用品如電視、電腦、手機、洗衣機等,或工業、國防、金融業等產業皆 使用到大量的電子設備,這些電子科技產品由許多電晶體(Transistor)等零件所構成。

隨著半導體(Semiconductor)產業的迅速發展,在單一晶片(Chip)內所含的電晶體及邏 輯閘數量越來越多,密度也越來越高。根據 Intel 創辦人高登莫爾於 1965 年所提出的 莫爾定律,在單一特定大小的晶片中,每隔十八個月電晶體的數量將會增加一倍。如 圖 1-1 所示,這使得晶片內所含的邏輯閘個數已跨越了數百萬邏輯閘的層次,往後的 設計也邁向超大型積體電路(Very-large-Scale Integration ,VLSI) 設計。半導體的革新,

使處理器(Processor)的功能越來越多元化,功能類型從單一功能的晶片發展到多功能 的系統單晶片(System-on-Chip ,SoC)。隨著製程的進步,半導體尺寸已由 0.25 微米的 製程技術,邁入奈米的領域。在龐大的邏輯閘數量及製程越來越小的情況下,使積體 電路(Integration Circuit, IC)的設計變得越來越複雜,增加電晶體設計及驗證工作的困 難度,於是透過計算機輔助設計軟體(Computer-Aided Design, CAD)來協助處理龐大 的電路設計及後續的驗證。利用計算機輔助設計軟體,得以處理複雜度較高的設計,

來完成超大型積體電路晶片的設計、分析、驗證、佈局、佈線、版圖等流程,這也是 電子設計自動化(Electronic Design Automation, EDA)主要的使命。

圖 1-1 超大型積體電路(VLSI)的處理器

(11)

2

1.1 時脈信號(Clock Signal)的運用

隨著電腦科技的日新月異,各種技術的突飛猛進,及製程的不斷進步、資料傳輸 速度持續的提升,使積體電路的設計越來越複雜。在複雜的電路架構下,佈線的配置 越來越高密度化,對於中央處理器(CPU)的運算速度方面也增加需求,使時脈頻率在 電腦系統中的動作也隨之頻繁。為了使電路中所有元件能在系統內部維持資料傳輸的 正確性,且滿足運算速度上的需求,及提供系統內部各區塊時間上合理的分配,現今 的設計趨勢主要使用同步化電路的設計(Synchronous circuit designs)。而非同步化電路 設 計 (Asynchronous circuit designs) 如 單 穩 態 電 路 (One-shot circuit) 、 兩 階 段 時 脈 (Two-phase clock)和四階段時脈(Four-phase clock)皆已很少使用甚至被淘汰。

如圖 1-2 所示,圖為同步化的電路設計,電路中所有的同步元件,如正反器 (Flip-flops)或暫存器(Register),皆是由時脈信號(Clock signal)所同步化的。同步化系 統中的時脈產生器(Clock generator)為一時脈源,產生時脈信號至各正反器及暫存器的 時脈接腳(Clock pins)上,而得以控制電路中各功能區塊的資料處理時間,並提供各同 步元件時間上妥善的分配。

c c

c

c c

內存管 理單元 讀取/儲存

系統

浮點暫 存器

音頻 數位訊 號處理 影像

圖 1-2 同步化電路設計

(12)

3

如圖 1-3 所示,時脈信號為具有規律性週期的電壓信號。時脈訊號決定何時該將 資料讀取或寫入至同步元件內,經由時脈訊號的邊緣觸發(Edge-triggering),將經電路 運算後產生的資料或資訊儲存至各同步元件中。而時脈週期(Clock period)為完成一次 時脈信號的循環所需要的時間,每個重複的時脈的循環皆具有固定的長度,時脈週期 的長度決定了電路的速度,越短的時脈週期代表越快速的電路運算。

時 脈 的 循 環

時脈週期

圖 1-3 時脈信號的週期性循環

1.2 時脈差異(Clock Skew)的問題

從時脈產生器到各端點的時脈路徑(Clock path)上,可能會經過一些邏輯運算或是 緩衝器。理論上來說,時脈訊號從時脈源出發,經由各路徑抵達各時脈端點所需的時 間是相同的。然而在實體設計中可能會存在著時間上的差異於時脈路徑上,產生這些 差異主要的原因,第一點與線路(Wire)有關,線路長度(Length)或寬度(Width)的不同 導致時脈路徑上有不同的延遲(Delay),即使所有的線路皆使用相同的電子材質或特性,

因環境或製程的變異也會造成這些路徑上延遲的不一致。另一方面,產生差異的原因 與緩衝器(Buffer)的特性有關,由於時脈路徑上通常存在不同的緩衝器以驅動電路的 訊號,這些緩衝器的延遲也是造成各路徑上時間差異的原因。而各正反器的延遲時間 (Latency)即為從時脈源到各時脈端點上累計的延遲,此為時序分析(Timing analysis) 上重要的變異(Variation)之一。如圖 1-4 所示,時脈源產生固定的時脈信號傳送至各 正反器內,而某一輸入的正反器,i,經由組合邏輯(Combinational logic)傳送資料至 另一個輸出的正反器,j,內,這些正反器間資料的傳送與接收的動作皆由時脈信號 控制。而由於時脈路徑上存在不同時間的差異,因此時脈源至各正反器的延遲時間會

(13)

4

有所不同,Di為正反器,i,時脈路徑上的延遲時間,而 Dj為正反器,j,的延遲時間。

正反器 i

正反器 j 組合邏輯

時脈信號

Di Dj

圖 1-4 組合路徑

另一項時序分析上的變異為時脈差異(Clock skew),時脈差異為時脈路徑中最大 的延遲時間及最小的延遲時間之間的差異。如圖 1-4 所示,若是 Di及 Dj分別為所有 時脈路徑中最大的延遲時間及最小的延遲時間,則整體系統內的時脈差異即為 Di

D

j。造成時脈差異的主要原因有兩種,一種是設計及製程上造成的變異所導致,另一 種則是環境的變異。由製程造成的變異是產生時脈差異主要的來源,其變異可能因電 路中線路尺寸的不同,而造成線路內電阻及電容負載不同,或因緩衝器內電晶體尺寸 不同,而造成緩衝器的電容負載和門檻電壓的差異,這些原因都是造成時脈差異主要 的根源。而另一種由電路環境造成的變異跟溫度有關,電路的功率消耗,造成橫跨於 晶片上不同的溫度梯度,為造成變異的主要原因。由於溫度會造成時脈路徑上的緩衝 器其活動度或是電壓的變動,因此各路徑上的延遲會因為溫度而造成相當大的差異性,

造成時脈差異的問題。

時脈差異在同步化電路設計中可能會產生準備時間 (Set-up time)和保持時間 (Hold time)的變異性,而造成電路無法預期的錯誤。由於在各時脈路徑上一定會存在 著不同的延遲時間(到達時間),因此時脈差異在電路設計中是必然存在的。既然電路 無法避免時脈差異的產生,則可將時脈差異最小化或將其限制在可容忍的界限(Bound) 內,時脈差異的最小化問題在高效能的 VLSI 設計中已成為非常重要的課題。

(14)

5

1.3 時脈分配網路(Clock Distribution Network)

現今的同步化電路設計中,都是由同一個時脈產生器產生時脈信號,對電路中各 循序元件作同步化的動作。時脈源藉由時脈的分配網路(Clock distribution network)傳 送時脈信號至各時脈端點中,而時脈分配網路遍佈電路的各個角落以同步電路中所有 的功能區塊。時脈分配網路是電路中功率消耗的主要來源之一,因此時脈分配網路的 設計重點偏向於電源的消耗及對時序變異的容忍度上。隨著製程技術越來越小化的趨 勢下,在時脈網路的設計中對於變異的容忍度也變得越來越重要。

常見的時脈分配網路的拓樸主要有兩種,一種為樹狀的結構(Tree structure),通 常稱為時脈樹(Clock tree)。時脈樹為單一路徑(Single path)的網路,從時脈源到各時脈 端點只有單一路徑,因此可達到較少的線路長度以減少繞線的資源,同時也有較低的 電源供應的負載以節省功率消耗,且在時序的分析上如時脈的延遲時間(Clock latency) 及時脈差異的計算上比較容易。如圖 1-5 所示,圖中 H 樹即為一種樹狀的拓樸,H 樹 為局部且對稱的結構,從時脈源到各正反器之間的路徑長度均相同,使各時脈路徑的 延遲一致以降低時脈樹中的時脈差異。如圖 1-6 所示,若在時脈樹中各分支點的位置 上加入緩衝器,即形成了緩衝器時脈樹(Buffered clock tree)。樹狀拓樸由於是單一路 徑的網路結構,因此當時脈路徑中任一條線路因製程上發生變異時而產生斷路的情形,

可能導致成品與設計者的設計結果之間有很大的差異,造成無法預期的錯誤,所以樹 狀結構的時脈拓樸在可靠度的表現上較差。

早期的時脈分配網路為達到最短線路長度的設計,大多採用時脈樹的拓樸。隨著 處理器(Processor)的迅速發展,在現代高效能的中央處理器(CPU)中大多使用另一種 時脈拓樸-網狀的結構(Mesh structure),網狀拓樸為多路徑(multiple path)的網路結構,

從時脈源到各時脈端點之間存在多餘的路徑(Redundancy paths)。如圖 1-7 所示,網狀 拓樸採用網格(Grid)的型式,各橫線與垂直線的交叉點(Intersection)為網狀端點(Mesh node),其上面連接一緩衝器以推動負載,而在各網格中連接了正反器。如圖 1-8 所示,

在交叉點上的各緩衝器是由另一種時脈網路-時脈樹網路所驅動的。

(15)

6

正反器

圖 1-5 樹狀拓樸的結構:H 樹

緩衝器

正反器 時脈源

圖 1-6 緩衝器時脈樹

由於網狀拓樸中各時脈路徑有多餘的線段,當任一路徑發生變異時,另一條路徑 會對其作補償,因此網狀拓樸有較高的可靠度及對變異的容忍度。但由於網狀拓樸為 網格的結構,將會耗費大量的連線資源,而這些連線資源消耗的電源功率與電容負載 也相當龐大。時脈源到時脈端點多餘的路徑也造成時序分析上的不易,因此這些因素 是在選擇時脈分配網路拓樸時必須要考量和取捨的。

(16)

7

正反器

圖 1-7 網狀拓樸的結構

圖 1-8 樹狀拓樸結構+網狀拓樸結構

1.4 多電壓模式(Multi-Voltage Mode)設計

在現代的積體電路設計中,隨著製程技術的演進,奈米等級的 CMOS 電路在近 三十年來其電晶體密度呈現劇烈的增加,造成電路中功率消耗的密度增加。據研究顯 示,微處理器上的功率密度每隔三年以兩倍的速度增長,如此高密度的功率消耗會導 致晶片的溫度過熱,使電路的可靠度降低,因此功率消耗的問題不得不被重視。尤其

(17)

8

在近代的處理器中,使用的時脈拓樸大多為網狀的結構,其消耗的電源及負載相當高。

由於時脈分配網路和連接的時脈端點在每次的時脈週期中皆需充放電,且時脈網路遍 佈於電路的各個功能區塊中,常需要驅動大部分的電路元件,因此時脈分配網路為同 步化電路中功率消耗主要的來源之一。據統計在微處理器中時脈系統使用的電容負載 占了整體的 40%左右,因此功率消耗在使用時脈系統的同步化電路中為相當重要的課 題之一。

近年來針對功率消耗及功率密度問題的方法紛紛被提出,其中廣受歡迎的方法為 多電壓模式設計(Multi-Voltage Mode Designs)。如圖 1-9 所示,圖中有許多功能區塊 的模組(Module),每個模組所供應的電壓有三種,分別為 0V、0.9V 及 1.1V。隨著電 路運算所需的效能不同,多電壓模式設計有許多不同種類的功率模式(Power mode),

若電路運行非常複雜的計算時,則電路會於全速模式下運行,如圖 1.9(a)所示,電路 中所有的模組皆供應電壓,1.1V,以達到高速的計算。而當電路處於閒置模式時,如 圖 1.9(d)所示,電路中大部分的模組供應較低的電壓,0.9V,且部分的模組切斷供應 電壓以節省電源。隨著運算的不同,藉由將需要精密複雜計算的模組供應較高的電壓,

1.1V,其他模組則供應較低的電壓,0.9V,如圖 1-9(b)、(c)所示,分別為兩種不同的 功率模式,透過這樣的方式滿足不同效能的需求外,並節省功率的消耗。

M1

F F

M4

M2 M3

M5 M6

M7 M8

M1

M4

M2 M3

M5 M6

M7

M8

M1

M4

M2 M3

M5 M6

M7

M8

F

M1

M4

M2 M3

M5 M6

M7

M8

(a)全速模式 (b)功率模式 1 (c)功率模式 2 (d)閒置模式

: 1.1 V : 0.9 V : 0 V

圖 1-9 在多電壓模式下各功率模式的例子

(18)

9

然而當電路的模組操作在不同的供應電壓下,可能使時脈系統中各路徑的延遲時 間改變,使時脈差異在不同的功率模式下有著顯著的改變。許多解決時脈差異問題的 方法如時脈的繞線(Clock routing)、緩衝器的插入(Buffer insertion)或尺寸調整(Buffer sizing)、線路的尺寸調整(Wire sizing)等方法,在多電壓模式設計下皆有可能失效。由 於這些方法主要都在單一(Single)功率模式的條件下運行,隨著不同的功率模式的轉 變,在時脈路徑上的延遲可能會隨運行的功率模式改變而產生差異。換言之這些方法 雖已在某功率模式下對時脈樹作最佳化,且解決時脈差異的問題,但可能在另一個功 率模式下改變時脈樹的時脈差異,而違反時脈差異的限制條件。即使先前的方法有可 能設計出解決任何功率模式下時脈差異問題的時脈樹,但此時脈樹有可能使用太長的 線路,或是根本沒有時脈樹可滿足在不同功率模式下時脈差異的限制條件。因此在多 電壓模式下產生的時脈差異的問題是必須去解決的。

1.5 時脈拓樸的選擇

隨著多電壓模式出現,對本篇論文的演算法在時脈拓樸的選擇上產生了影響。表 1-1 為時脈樹(Tree)結構及網狀(Mesh)結構兩種拓樸的比較,現今大部分的處理器大多 使用網狀結構的拓樸方式,且由於網狀拓樸屬於多路徑的網路結構,時脈源到各時脈 端點之間有額外的路徑可補償時脈差異較差的路徑,因此網狀拓樸的時脈差異較小。

但若在多電壓模式下,由於時脈差異會隨著路徑上供應電壓的轉變而造成時脈差異在 不同功率模式下劇烈的變動,且網狀拓樸在時序分析上較為困難,因此網狀拓樸在多 電壓模式下的可調性較差。另一方面,由於樹狀結構為單一路徑的網路,沒有其他多 餘的路徑當作補償,因此各路徑之間的時脈差異較高。由於樹狀拓樸可達到最低的繞 線長度,其在計算時間的數據上及時序分析上較為容易,透過在時脈樹中各分支點的 緩衝器上插入可調式延遲緩衝器(Adjustable Delay Buffers, 簡稱 ADB),於不同的功率 模式下調整 ADB 指定的延遲數值,使各功率模式下的時脈差異滿足時脈差異的限制 條件。藉由這樣的方式,樹狀拓樸在多電壓模式下的可調性會較佳,因此本篇論文在

(19)

10

拓樸的選擇上使用樹狀的拓樸結構。

表 1-1 網狀拓樸和樹狀拓樸的比較

網狀拓樸 樹狀拓樸

時脈分配網路的類型 多路徑的網路結構 單一路徑網路結構

差異的大小 較低 較高

時序分析的難易度 困難 容易

在多電壓模式下的可調度 較差 較佳

1.6 可調式延遲緩衝器(ADB)常見的元件構造

如前一節所言,藉由在多電壓模式下使用可調式延遲緩衝器(Adjustable Delay Buffers,ADB),以解決時脈差異的問題。ADB 可解決由製程或環境變異產生的時脈 的問題,藉由調整 ADB 的輸入控制線以改變指定的延遲數值,使 ADB 可調整出多 種的延遲數值以增加時脈路徑上累計的延遲大小,進一步改善時脈差異。ADB 常見 的構造主要有兩種:一種為電容為架構的構造(Capacitor-Based Structure),另一種為 反相器為架構的構造(Inverter-Based Structure)。如圖 1-10 所示,圖中為第一種電容為 架構的構造,這種電容為基礎的 ADB 的結構包含了兩側的輸入(Input)及輸出(Output) 的兩個反相器、中間的電容槽(Capacitor bank)及電容槽的控制器(Capacitor bank controller)。假設電容槽裡使用的所有電容皆是統一的尺寸,當電容槽裡啟動的 (Activated)電容數目越多時,ADB 指定的延遲數值則越大。原則上電容槽裡啟動的電 容的數量與 ADB 指定的延遲數值的大小呈正比,若要增加 ADB 指定的延遲數量時,

可藉由增加電容槽裡電容的數量以達到目的。而如果要調整 ADB 指定的延遲數值的 精確度,可透過設定電容槽裡各個電容的尺寸以達到不同的精確度。

(20)

11

電 容 槽 控 制 器

輸入 輸出

電 容 槽 控制位元

圖 1-10 電容為基礎的 ADB 構造

另一種 ADB 構造為反相器為基礎的結構,如圖 1-11 所示,此結構包含兩側的輸 入及輸出反相器(以電晶體層級來看),平行連接的反相器(NMOS 與 PMOS 的組合)及 選擇線的腳位,SELECT(SELECT),藉由設定 SELECT 的訊號為 0 或 1 來調整 ADB 延遲數值的大小。當 SELECT 的訊號設為 0 時,與 SELECT 對應的反相器將一起被關 閉(NMOS 輸入訊號為 0 時為斷路),而當 SELECT 的訊號設為 1 時,與 SELECT 對應 的反相器則被啟動,藉由控制 SELECT 的訊號以產生不同排列組合的延遲數值。

舉個例子,若將電路中所有的 SELECT 的訊號設為 0 時,中間所有反相器將被關 閉,此時只有最外圍兩側的反相器為啟動狀態,電路在傳輸的路徑上沒有任何的反相 器(或緩衝器)可提供推動的負載,因此電路可產生較大的延遲數值。另一方面,若是 將電路中所有的 SELECT 的訊號設為 1 時,此時所有的反相器都為啟動狀態,電路的 速度會較快,因此若是電路中越多的 SELECT 的信號被設為 1,ADB 所調整的延遲數 值越小。此反相器為基礎的 ADB 架構可以藉由增加所連接的反相器的數量來增加 ADB 可指定延遲數值的多寡,而如果想要調整 ADB 所指定延遲數值的精確度,也可 以藉由調整中間這些反相器的電晶體(Transistor)尺寸大小以達到不同的精確度。

(21)

12

輸入 輸出

V

dd

V

dd

SELECT1 SELECTn

SELECT1 SELECTn

圖 1-11 以反相器為基礎的 ADB 構造

比較這兩種不同的 ADB 結構,由於調整電容的方式比調整反相器容易,因此電 容為基礎的結構比反相器為基礎的結構提供較佳的延遲數值的間隔大小。舉個例子,

電容的結構可調整出如延遲數值,1.5、2.5、3.5,等數值,數值與數值之間的間隔較 為一致。而反相器的結構可能調整出如延遲數值,2、5、14,其間隔大小較為不一致。

另一方面,反相器的結構比電容的結構使用更小的實作面積,因此反相器的結構比較 適用於時脈差異相當高的設計中,以降低使用的佈局面積及相關成本。而電容的結構 比較適用於較精確的延遲數值之時脈系統,或對延遲數值較敏感的高速設計中。於本 篇論文中,採用的是電容為基礎的 ADB 結構。

ADB 的特點為在不同的功率模式下,改善時脈系統中的時脈差異,且 ADB 對於 指定的延遲數值具有相當大的靈活性。然而 ADB 同時也存在許多缺點,由於 ADB 增加額外的電容槽及控制器(線),因此 ADB 比一般緩衝器占用更多的硬體面積。ADB 指定的延遲數值越大,占用的佈局面積(Layout area)也越多,因此當佈局面積受限的 情況下,可能無法在可利用的空間中插入 ADB 而導致失敗。且由於 ADB 使用電容 為基礎的結構,其指定的延遲數值的精確度受到電容槽中電容的尺寸大小的影響,因 此 ADB 無法調整出所有的延遲數值。換句話說 ADB 指定的延遲數值範圍是不連續

(22)

13

(Discrete)且受到限制的。另一方面,在時脈樹中各分支上插入 ADB 後,會導致時脈 樹中各時脈端點上的平均延遲時間(Latency)提高,使時脈週期發生改變,而導致電路 的效能變差。

(23)

14

第二章 先前相關研究與動機

在複雜的功率模式(power mode)設計中,電路特定的模組或區塊供應了不同的電 壓。由於在實體設計中時脈樹必須滿足多種功率模式下的限制條件,所以時脈差異難 以被最小化,因此透過使用可調式延遲緩衝器(Adjustable Delay Buffer, ADB),解決在 多電壓模式下時脈差異的問題。在多電壓模式中使用 ADB 以解決時脈差異問題的研 究中,較具代表性的有下列三篇論文:

1. “Value assignment of adjustable delay buffers for clock skew minimization in multi-voltage mode designs ”, IEEE, 2009. [Y. S. Su et.al.,]

2. ”An optimal algorithm for allocation, placement and delay assignment of adjustable delay buffers for clock skew minimization in multi-voltage mode designs”, Asia-South

Pacific Design Automation Conference 2011. [K. H. Lim et.al.,]

3. “An efficient algorithm of adjustable delay buffer insertion for clock skew minimization in multiple dynamic supply voltage designs”, Asia-South Pacific Design

Automation Conference, 2011.[K. Y. Lin et.al.,]

下面的章節將分別對上述三篇論文作詳細的介紹。

2.1 Su 的研究論文簡介

由於在多電壓模式下難以藉由傳統的方法以改良時脈差異,因此 Su 等人首度提 出在多電壓模式下使用 ADB 並指定適當的延遲數值[8-9]。

在時脈樹中,給定 k 個 ADB 的位置,及各個葉節點(leaf node),Su 的論文提出 在線性時間內完成的演算法來指定 ADB 適當的延遲數值,以達到時脈差異的最佳化。

在決定 ADB 的插入位置上,假設時脈樹中最多只能插入 k 個 ADB,一開始 k 個 ADB 的位置是隨機分佈的。在指定 ADB 的延遲數值後,再重複地變換 ADB 的位置以達 到更好的結果。

(24)

15

雖然 ADB 可被放置在時脈樹任意的分支上,但仍有一些限制條件。例如將 ADB 放置在根節點(root)上,由於無法改善時脈差異,因此會浪費資源。此外 ADB 置放的 位置不應該將根節點及各葉節點完全地隔離開,形成一個切割(cut)的區塊。因此在 ADB 的分支內,一定有不是 ADB 的子(child)分支。

在指定 ADB 延遲數值的步驟上,可以分為下列四個部分:

第一部分:葉節點的分割(Leaf node partition)

已知 k 個 ADB 位置的前提下,首先將時脈樹中所有的葉節點,根據與 ADB 連 接的關係,分割成 k+1 個區塊。分割的原因是要將受到同個 ADB 影響的葉節點作分 群(cluster)的動作,由於被同個 ADB 影響的葉節點,其到達時間(arrival time)將會以 相同的步調改變,因此第一部分先將受同個 ADB 影響的葉節點作分群。

在分群的步驟上,如圖 2-1(a)所示,首先假設在時脈樹中根節點的位置為虛擬的 ADB,ADBroot,任意的葉節點可能會位於 ADB 或是 ADBroot的分群中,而 ADBi的分 群以 partition(ADBi)表示之。若是有葉節點,v,落於分群,partition(ADBi)內,則代 表從葉節點,v,向上搜索到根節點的路徑中第一個碰到的 ADB 為 ADBi。由於前面 有假設 ADB 不會形成切割的區塊,因此一定會有葉節點落於分群,partition(ADBroot) 中。所有葉節點做完分群的步驟後,再進行下一個步驟。

第二部分:線性時間內差異最佳化演算法(Skew-optimal linear time algorithm)

做完所有葉節點的分群後,接下來執行差異最佳化的演算法。第二部份的基本概 念 是 將 任 意 的 分 群 , partition(ADBi) , 的 最 早 到 達 時 間 (earliest time) 與 分 群 ,

partition(ADB

root),的最早到達時間對齊,使整體的時脈差異與分群中最大的延遲差

值(latency skew)相同。透過由上而下(bottom-up)的流程,將時脈樹中各分群的最早到 達時間對齊,如此可決定時脈樹中任意的 ADB 分群,partition(ADBi) 內的 ADB,ADBi

指定的延遲數值,藉由以下的判斷式:

(25)

16

0; earliestAT(ADBi) > earliestAT(ADBroot) earliestAT(ADBroot)-earliestAT(ADBi); 否則

如圖 2-1(b)所示,在指定 ADBi的延遲數值後,將受到 ADBi影響的所有葉節點的 到達時間更新,最後可得最佳化的時脈差異。

(a) 時脈樹的分群及 ADB 指定的延遲數值

Partition(ADB2) Partition(ADB1) Partition(ADB4)

Partition(ADB3)

2 10 15

Partition(ADBroot)

14

(b)指定延遲數值後各 ADB 分群之到達時間範圍 圖 2-1 ADB 指定延遲數值之例子

第三部分:最佳化時脈差異之計算(Calculation of clock skew under optimal assignment) 經過第二部分演算法的步驟後,可得時脈樹中時脈差異的最佳化。但在時脈樹中 存在一些多餘的 ADB(redundant ADB),這些多餘的 ADB 指定的延遲數值為 0,可從 時脈樹中移除。移除多餘的 ADB 後,再將這些 ADB 的分群併入上一條分支的分群 中,並重新計算合併後分群的延遲差值。

ADB

i

(26)

17

第四部分:精簡時脈最大的延遲時間 (Reduction of the maximum clock latency)

由於第二部分的演算法是藉由對齊各個分群中最早的到達時間,因此時脈中最晚 的到達時間可能會變得更大。第四步驟透過反覆的拉回(pull-back)分群中最晚的到達 時間,並藉由將最晚的到達時間之分群對齊第二個最晚的到達時間之分群,以降低 ADB 的延遲數值並降低時脈樹最晚的到達時間,且不影響最佳化的時脈差異。此外 由於 k 個 ADB 的位置是隨機找尋的,此論文提出啟發式的 ADB 位置搜尋演算法重 複地增加 ADB 並移除另一個 ADB,觀察時脈差異是否可改善,以達到更好的時脈差 異的結果。透過在不同的功率模式下執行 ADB 位置搜尋的演算法,最後在所有功率 模式下完成時脈差異的最小化。

2.2 Lim 的研究論文簡介

在前一個章節中,Su 等人的論文在多電壓模式下完成時脈差異最小化具有很大 的貢獻,但是卻沒有對 ADB 的數量作最小化。由於 ADB 相較於一般緩衝器多了額 外的電容槽與控制線,所以 ADB 會消耗較多的硬體成本及硬體空間上(area overhead) 的浪費。因此由 Lim 等人提出在不同的電壓模式下將 ADB 數量作最小化,並在線性 時間內找到 ADB 的位置及指定適當的延遲數值[10]。

假設給定的的差異界限(skew bound)為 B,一開始先將時脈樹中所有的緩衝器替 換成 ADB,再決定這些 ADB 是否要保留或是移除。藉由妥善的決定這些 ADB 的去 留,並指定適當的延遲數值於保留的 ADB 上,使最佳化的時脈差異滿足差異的限制 條件。如圖 2-2 所示,假設在 ADB1為根的子樹中,其分支連接一個 ADB 子樹,ADB2以及數個正反器,EAT1及 EAT2,分別代表在 ADB1及 ADB2中最早的到達時間之正反 器,而 LAT1及 LAT2為 ADB1及 ADB2中最晚的到達時間之正反器,且 LATv代表在子 樹中最晚的到達時間之正反器,且 LATv為 LAT1及 LAT2中取最大值。在判斷 ADB 的 位置上,透過由下而上的流程對時脈樹作處理,利用下列三種情況判斷 ADB2是否要 保留或移除:

(27)

18

情況 1:EAT1≧LATv-B , EAT2<LATv-B

如圖 2-2(a)所示,若是符合情況 1,則代表子樹中的延遲差值大於差異界限,B,

違反時脈差異的限制條件,因此保留 ADB2,並指定延遲數值,α2,於 ADB2 上。α2

為 ADB2子樹中最大到達時間的正反器與 ADB1子樹中最大到達時間的正反器之間的 差值(LATv-LAT2)。如圖 2-2(a)右側所示,最後將整個子樹化簡,化簡的子樹只保留 了最早到達時間與最晚到達時間的正反器以便於後續的計算。

(a) 情況 1:保留 ADB

ADB1

8 (EAT2) 12 (LAT2) ADB2

(remove)

12 (LATv)

3 (EAT1) 7 (LAT1)

H I

E F G

H’ I’

EAT1'=

min(EAT1, EAT2)

=3

LAT1'=

max(LAT1, LAT2)

=12 ADB1

(b) 情況 2:移除 ADB

(c)情況 3:違反時脈差異的限制條件

圖 2-2 決定子 ADB(ADB2)是否保留或移除的三種情況

情況 2:EAT1≧LATv-B , EAT2≧LATv-B

如圖 2-2(b)所示,若是符合情況 2,則代表子樹中的延遲差值符合差異的限制條 件,因此移除 ADB2,並進一步將整個子樹給化簡。

(28)

19

情況 3:EAT1<LATv-B

如圖 2-2(c)所示,若是符合情況 3,則代表即使保留 ADB2也無法使子樹的延遲 差值符合時脈差異的限制條件。由於 ADB 無法指定為負數的延遲數值,因此子樹無 法藉由使用 ADB 以減少延遲差值,所以若是符合情況 3,必須重設更大的差異界限 以滿足時脈差異的限制條件。

藉由判斷時脈樹中各子樹屬於何種情況,透過由下而上的流程來設定 ADB,並 指定 ADB 適當的延遲數值及移除多餘的 ADB,在各功率模式下完成時脈差異的最小 化,並使 ADB 的數量達到最小化。

2.3 Lin 的研究論文簡介

在前面的章節中,使用的緩衝器時脈樹之樹型為比較簡單的形式。另一方面,由

Lin 等人所提出的論文[11-12]則採用差異為導向的時脈樹(Skew-based buffered clock

tree)。如圖 2-3 所示,時脈樹採用一正反器連接到唯一的緩衝器的型式,其優點為藉 由在新增的緩衝器上插入 ADB 使時脈差異降低,因此整體得時脈差異會更小,甚至 可達到零時脈差異(zero skew)的結果。缺點為在緩衝器的數量上會高出許多,因此會 浪費較多的硬體成本與佈局面積。

此論文提出高效率的演算法找到適當的位置以插入 ADB 並指定適當的延遲數值,

對時脈差異作最小化。然後在設定的差異界限(skew bound)內釋放(release)緊繃的時脈 差異的大小,使 ADB 指定的延遲數值降低及移除多餘的 ADB,同時在不同的功率模 式下找到各 ADB 指定的延遲數值的之交集範圍,使緩衝器的面積降低。

演算法可切割成下面四個步驟:

第一步驟:由上而下插入 ADB 並指定延遲數值 (Top-down ADB insertion and delay

value assignments)

如圖 2-3(a)所示,給定差異導向的時脈樹,由於在時脈樹中越高的位置插入 ADB 會影響到越多端點的延遲時間,因此第一步驟透過由上而下的流程移除多餘的 ADB。

(29)

20

首先在單一功率模式中,找尋時脈樹中最大延遲時間(到達時間)的正反器,以由下而 上的流程對各個緩衝器作運算,藉由將各緩衝器子樹中最大到達時間,Llt,的正反器,

與時脈樹中最大到達時間,Lgt,的正反器對齊,若是兩者的最大到達時間之值不一致,

則在緩衝器中插入 ADB,並指定兩者之間的差值,Lgt-Llt,於 ADB 上。如圖 2-3(b) 所示,時脈樹最終可達到零時脈差異。

2

3 3 3 4

5 4 3 4 6 4 5 4 5 3 4

:緩衝器 :ADBs :正反器

10 9 8 9 11 9 10 10 11 9 10

(a) 初始的時脈樹,時脈差異為 3

11

2

4 3 4 4

5 5 5 6 6 5 5 5 5 5 5

11 11 11 11 11 11 11 11 11 11 ADBs

(b) 經過由上而下 ADB 設定的時脈樹,時脈差異為 0

11

2

4 3 4 4

5 4 4 5 6 4 5 4 5 4 4

10 10 10 11 10 11 10 11 10 10

(c)經過由下而上 ADB 移除的時脈樹,時脈差異為 2 圖 2-3 Lin 的演算法步驟

(30)

21

第二步驟:由下而上移除多餘的 ADB 並延伸延遲數值(Bottom-up ADB and delay value

extensions)

在經過第一步驟的演算法後,可達到零時脈差異。但達到零時脈差異在 ADB 的 使用數量上及佈局面積上會造成過多的浪費,在實體的晶片設計中,界限內的時脈差 異是允許存在的。換言之在不超過設定的差異界限之時脈差異是可以被容忍的,此限 制條件即為差異的限制條件(skew constraint)。要滿足差異的限制條件,必須使時脈差 異小於設定的差異界限(skew bound)。如圖 2-3(c)所示,假設差異界限為 B,第二步驟 的演算法以由下而上的流程,將所有 ADB 指定的延遲數值與 B 作比較,若指定的延 遲數值比 B 小,則此 ADB 可視為多餘的 ADB,並將其從時脈樹中移除。如果指定的 延遲數值比 B 大,則將 ADB 指定的延遲數值與 B 相減之差值延伸至 ADB 的延遲範 圍(delay range)內,指定延遲範圍內的延遲數值將不會違反差異的限制條件,藉由這 樣的方式將多餘的 ADB 移除。

第三步驟:多功率模式下 ADB 的插入及指定延遲數值(ADB insertion with delay value

assignments in multiple power modes)

接下來的步驟使用兩階段的演算法,在所有功率模式下插入 ADB 並指定適當的 延遲數值,使時脈差異符合差異的限制條件。由於在多電壓模式下,於某種功率模式 中找到 ADB 的位置並指定延遲數值,可能在其他功率模式的相同位置上不需要 ADB,

而產生意外的錯誤。因此第三步驟在未使用 ADB 的相同位置上將 ADB 指定的延遲 數值設為 0,透過這樣的方式在各功率模式下找到所有 ADB 指定的延遲數值。

第四步驟:多功率模式下 ADB 的插入及指定延遲數值(ADB delay value reduction in

multiple power modes )

在前面第二步驟中,可計算出各 ADB 的延遲範圍,如圖 2-4 所示,透過在不同 功率模式下找到延遲範圍之間的交集,以降低 ADB 指定的延遲數值之數量,藉由上

(31)

22

述的方式在不同的功率模式下指定 ADB 適當的延遲數值。經過這四個步驟後,可完 成在不同的功率模式下時脈差異的最小化,同時也降低 ADB 的佈局面積。

6 7 8 9 10 11 12 13 PM0

PM5 PM4 PM3 PM2 PM1

功率模式

延遲 數值(ns)

6 7 8 9 10 11 12 13 PM0

PM5 PM4 PM3 PM2 PM1

功率模式

延遲 數值(ns) (a)ADB 初始的延遲數值 (b)找出各模式下 ADB 的延遲範圍之交集點

:初始延遲 功率模式

初始延遲 (ns) 延遲範圍

(ns)

PM0 PM1 PM2 PM3 PM4 PM5

10 11 8 7 13 10

8.5~10 9.5~11 6.5~8 5.5~7 11.5~13 8.5~10

:延伸範圍

:交集範圍

(c)各功率模式下 ADB 的延遲範圍 圖 2-4 ADB 的延遲數值合併運算

2.4 研究動機

從先前相關的研究中,可在多電壓模式下完成時脈差異的最小化,且使用的 ADB 的數量也達到最小化。然而在這些研究中 ADB 指定的延遲數值沒有達到最小化。由 於 ADB 指定的延遲數值越大,使用的佈局面積也越大,換言之若在複雜的設計下可 使用的佈局面積有限,可能無法在有限的空間內插入 ADB,而造成電路的錯誤。另 一方面,先前的研究假設 ADB 可調的延遲數值的範圍是連續的(continuous),但實際

(32)

23

上 ADB 可指定的延遲數值的範圍是不連續的(discrete),有可能無法調整(tuning)出 ADB 所有的延遲數值。因此必須在有限的 ADB 可調的延遲數值範圍(tuning range)之 前提下妥善的指定 ADB 適當的延遲數值,使時脈差異達到最小化。

本篇論文達成的目標如下所述:

在多電壓模式設計下,於緩衝器時脈樹(buffered clock tree)中,解決不同的 功率模式下時脈差異最佳化的問題,同時也滿足以下條件:

1. 在不同功率模式下完成時脈差異的最小化

2. 維持界限內的時脈差異之條件下,將 ADB 的數量作最小化 3. 使 ADB 指定的延遲數值達到最小化

(33)

24

第三章 問題描述

透過使用 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

ip-1),必須在有限的

ADB 的可調的延遲數值範圍中指定適當的延遲數值於 ADB 上,以達到時脈差異的最 小化。

由於在多電壓模式下達到零時脈差異是非常困難的,而在電路中時脈差異的限制 條件有時不需那麼嚴謹,其中一種方法是將時脈差異限制在特定的界限(bound)內,

於此界限內的時脈差異是可被電路容忍的。在完成時脈差異的最小化後,依照設定的 差異界限(skew bound)的大小,將時脈差異釋放(release)並放寬界限,使時脈差異只要 小於或等於差異界限即可滿足差異的限制條件,而不需達到最小化,進而減少 ADB 的數量並使 ADB 指定的延遲數值降低。假設差異界限為 B,最小化的時脈差異必須 小於或等於 B 才能滿足差異的限制條件。

執行 ADB 設定的步驟是將時脈樹中的緩衝器替換成 ADB,並在 ADB 可調的延 遲數值範圍中指定適當的延遲數值於插入的 ADB 上。本篇論文的目標是將 ADB 的 數量及指定的延遲數值作最小化,同時在維持界限內的時脈差異之條件下將時脈差異 作最佳化。

由於 ADB 指定的延遲數值為不連續的延遲數值,因此有些延遲數值無法被調整

(34)

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

(35)

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 設定及正反器的延遲時間

(36)

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 設定及正反器的延遲時間

(37)

28

第四章 限制最大延遲時間條件下的 ADB 設定

本篇演算法主要在多電壓模式下,透過可調式延遲緩衝器(ADB)具靈活設定延遲 數值的特性,於時脈樹中將一般緩衝器替換成 ADB,並指定 ADB 適當的延遲數值,

在各功率模式下改善時脈差異以符合差異的限制條件。由於 ADB 可指定的延遲數值 不是連續的,因此在本篇演算法中,除了設定 ADB 於適當的位置上外,同時必須考 慮 ADB 可調的延遲數值範圍(tuning range)以指定適當的延遲數值。如圖 4-1 所示為 演算法的設計流程,本篇演算法可以分成下列三大步驟:

第一步驟:由下而上的 ADB 設定完成時脈差異最小化

(Bottom-Up ADB Assignment for Clock Skew Minimization) 第二步驟:維持界限內的時脈差異條件下之由上而下 ADB 分佈

(Top-Down Slack-Aware ADB Distribution under Bounded Clock Skew) 第三步驟:維持界限內的時脈差異條件下之由下而上 ADB 移除

(Bottom-Up ADB Elimination under Bounded Clock Skew)

限制最大延遲時間條件下對各 功率模式使用由下而上的ADB 設定完成時脈差異最小化

時脈差異大於 差異界限,B?

初始的緩衝器 時脈樹

維持界限內的時脈差異條件下 對各功率模式使用由上而下

的ADB分佈 維持界限內的時脈差異條件下

對各功率模式使用由下而上 的ADB移除

各ADB的 彈性範圍皆為空

集合?

各功率模式下滿足 時脈差異的限制條件

改善時脈差異 失敗!

圖 4-1 演算法設計流程

(38)

29

4.1 由下而上的 ADB 設定完成時脈差異最小化

在緩衝器時脈樹中,緩衝器(buffer)設定於樹型的各分支(branch)上。給定緩衝器,

B

i,在 Bi為根(root)的子樹中,首先將最小延遲時間(lower latency),li,的正反器,及 最大延遲時間(upper latency),ui,的正反器,分別定義為 Bi的最小延遲時間和最大延 遲時間。此外在 Bi中,定義延遲時間區間(latency range),[li

, u

i],為從最小延遲時間,

l

i,到最大延遲時間,ui,之間的區間。因此 Bi的延遲差值(latency skew)即定義為 Bi

的最大延遲時間和最小延遲時間之間的絕對差值,ui-l。若 Bi i位於時脈樹的根節點(最 高節點)上,則 Bi的延遲差值即為時脈差異(clock skew)。

在 Bi為根的子樹中,有兩種可能的樹型結構。如圖 4-2(a)所示,若 Bi的分支只 連接 p 個正反器(flip-flop),其延遲時間(latency)分別為 d1, d2,.., dp,於 Bi為根的子樹 中無法找到緩衝器的位置替換成 ADB,因此無法降低 Bi的延遲差值,而 Bi的延遲時 間區間為[Min{d1 ,.., dp} , Max{d1 ,.., dp}]。另一方面,如圖 4-2(b)所示,若 Bi連接 p 個 正反器和 q 個緩衝器,B1, B2,.., Bq,其延遲時間分別為 d1, d2 ,.., dp,且緩衝器,B1, B2 ,..,

B

q,的延遲時間區間分別為[l1 , u1], [l2 , u2] ,.., [lq , uq],則可將部分的緩衝器替換成 ADB,並指定 ADB 適當的延遲數值(delay values)以降低 Bi的延遲差值。

B

i

d

1

d

p

[l

i

, u

i

]

Bi

d1 dp

[li, ui]

B1 Bq

[lq, uq] [l1, u1]

(a) (b)

圖 4-2 緩衝器,Bi,可能的樹型結構及各緩衝器的延遲時間區間

參考文獻

相關文件

In Section 3, we propose a GPU-accelerated discrete particle swarm optimization (DPSO) algorithm to find the optimal designs over irregular experimental regions in terms of the

The main advantages of working with continuous designs are (i) the same method- ology can be essentially used to find continuous optimal designs for all design criteria and

Other advantages of our ProjPSO algorithm over current methods are (1) our experience is that the time required to generate the optimal design is gen- erally a lot faster than many

In Paper I, we presented a comprehensive analysis that took into account the extended source surface brightness distribution, interacting galaxy lenses, and the presence of dust

An Analysis of the January Effect of the United State, Taiwan and South Korean Stock Market, Asia Pacific Journal of Management, 9,

資料來源:‘ASEAN: A Community Stalled?’ in Jim Rolfe, ed., The Asia-Pacific: A Region in Transition (Honolulu: Asia-Pacific Centre for Security Studies, 2004),

✓ Express the solution of the original problem in terms of optimal solutions for subproblems. Construct an optimal solution from

✓ Express the solution of the original problem in terms of optimal solutions for subproblems.. Construct an optimal solution from