2.1. 二維平面規劃
過去面對平面規劃問題大多使用模擬退火法(simulated annealing, SA)來處理,
並結合不同類型的表示式,常見的表示方法大致可分成兩個架構,可分割架構 (slicing structure)與不可分割架構(non-slicing structure)。可分割架構中著名的就是 Otten [24]採用分割樹(Slicing Tree, ST)的平面規劃,分割樹是一種二元樹(binary
tree)的結構,擺置結果是利用終端節點(leaf node)的模組與內部節點(internal node) 的切割型態組合而成,切割型態有分水平切割或垂直切割。在不可分割架構中,
Adya 和 Markov [1]使用了序列對(sequence pair) [21]的表示法,用兩個序列來表 示模組之間的拓樸關係,再按照此拓樸限制可得到一個擺置情形。除此之外,
Chang et al. [6]等人提出了有序二元樹的應用 B*-tree,並延伸此表示法得到一個 以連線為導向的多階層平面規劃架構IMF [3]。He et al. [9]等人利用了有序四叉 樹(ordered quadtree)的表示法,每個模組的位置及形狀能藉由遞迴方式與解一組 四個二次方程式來得到,稱這個能處理零空白區域的平面規劃為SAFFOA。近年 來,Lin 和 Hung [17]提出了一個新的資料結構 SKB-tree,它能利用動態的分配區 域來擺置模組。以上皆是模擬退火法的應用,能根據不同的目標選擇較適合表示
利用了延遲決策(deferred decision making, DDM)的技術處理固定框架的問題,首 先它利用著名的hMetis [12]來分割整個晶片,接著再將分割完的模組建立成一般 化分割樹(generalized slicing tree, GST),在一般化分割樹中的終端節點表示十個 以下的模組集合,每個內部節點記錄著子節點的所有組合情形,至底部由下而上 建立每個節點的形狀曲線(shape curve) [25],最後在根節點中找出一個滿足固定 框架的結果,利用座標回朔的方法決定每個模組的位置和形狀,完成一個無重疊 的平面規劃。
除此之外,還有兩階段式的平面規劃方法,分成全域分佈階段(global distribution stage)與合法化階段(legalization stage),有別於模擬退火法 SA 將其 稱之為DL(distribution-legalization)。Chan et al. [2]等人利用 DL 架構來處理固定 框架的平面規劃,首先在全域分佈階段利用了數學解析法(mathematical
analytical approach),以最小化線長為目標均勻的分散模組;接著在合法化階段 移除掉模組之間的重疊,先使用遞迴的二分割演算法(recursively bi-partitioning) 建立一顆分割樹,再利用枚舉合併(enumerative packing, EP) [27]完成合法化的擺 置。另外,Luo et al.[19]等人提出了一個凸面最佳化(convex optimization)模型,
在全域分佈階段利用吸引與排斥(attractor-repeller, AR)來分散模組以取得相對位 置;在合法化階段使用了二階錐規劃(second-order cone programming, SOCP) [18]來限制模組的形狀並同時最小化線長,得到一個無重疊的擺置結果。Lin 和 Hung [16]在兩階段皆使用凸面最佳化來解決,第一個階段提出了一個推拉模型 (push-pull, PP)均勻分散模組在固定框架內,此時已經最小化繞線長度;在第二 階段根據前一個階段模組擺置的位置,利用德勞內三角剖分法(Delaunay triangulation, DT) [10]建立出拓樸關係的限制圖,以限制模組之間不能相互重
疊,最後再利用一個二次函式來限制固定框架的條件,決定出模組的位置與形 狀,而他們在二階錐規劃合法化階段(second-order cone programming for
legalization, SOPL)只單純移除掉模組的重疊,並不須考慮線長的因素。
2.2. 三維平面規劃
當由二維平面規劃轉向三维時,有些研究沿用二維的模擬退火法,如 sequence triple [23]、3D-subTCG [28]、3D slicing tree [5]、3D CBL [20]…等,這 些方法會將模組視為立體的區塊,在三维空間內去做堆疊,擺置出來的三维晶片 如 圖 3 , 比 較 適 合 實 現 在 動 態 可 重 組 態 現 場 可 程 式 閘 陣 列 (dynamically reconfigurable field programmable gate array, DR-FPGAs),可以重複配置硬體電路,
且在系統運作時動態改變部分功能以提高晶片的使用率,但這種擺置方式並沒有 辦法考慮到模組在晶片中所位於的層數。
圖 3. 立體區塊在三维晶片中的擺置
另外,有些研究有考慮到晶片的分層,對於任何類型的 TSV 或固定框架限 制加以處理,這種三维晶片延伸了實際的二維晶片結構,部分還可以考量其他議 題。如Cong et al. [7]等人提出了一個熱導向的三維晶片平面規劃器,結合了桶結 構(bucket structure)與 TCG [15]表示法,稱之為 CBA(combined bucket and 2D array),
再藉由熱模型(thermal model)的溫度計算,得到一個低溫的三维晶片擺置。另外,
Zhou et al. [29]等人提出了一個可熱拓展的三维平面規劃器 3D-STAF,利用溫度 感知(temperature-aware)與力導向(force-directed)的演算法,在擺置同時去考量繞 線長度與晶片溫度。Xiao et al. [26]等人則是利用了兩階段式模擬退火法架構,第 一階段主要優化晶片面積、長寬比例和繞線長度;第二階段則是希望降低峰值溫 度,最後的平面規劃結果不但可以考量熱的議題,還可以滿足固定框架的條件限 制。
近年來,Li et al. [14]等人提出一個非模擬退火法的三維平面規劃 Co-place,首先以最小化信號 TSV 為目標對模組做分層(layer assignment),接著使 用了分割樹與枚舉擺置方法,針對每一層記錄其面積曲線並列舉出可能的平面 規劃組合,再從中選擇一個最短線長且滿足固定框架的結果,最後利用最小費 用流(minimum cost flow)的演算法重新分配信號 TSV 的位置,使線長能更進一 步的優化,是一個快速且有效的三维平面規劃方法。