• 沒有找到結果。

圖 4. 三维平面規劃流程圖

我們的三维平面規劃流程主要可分成兩個階段,全域分佈階段與合法化階 段。整個演算法的流程如圖4,程式一開始會先讀入所有檔案的資訊,包含所有 要擺置的模組和連線關係,以及三維晶片的層數和固定框架的大小。除此之外,

每個模組在讀入時就已經決定其位於的晶片層,也因此可得知各晶片層中的TSV 數量。

在全域分佈階段,我們以最小化線長為目標,將模組均勻分散到三維晶片中。

這邊會使用一個數學解析的演算法來達成,特別是堆疊式模組,其子區塊在各層 之中的座標必需是相同的。此階段結束後,模組之間仍有些微的重疊,會利用下 一個階段會移除這些重疊的部分,並在固定框架下盡量維持住模組在全域階段的 位置,目的是不希望影響已優化的繞線品質。

在合法化階段中,先將模組在全域擺置的結果利用Delaunay 三角剖分法 [10]

建立出一組幾何限制圖,包含水平限制圖和垂直限制圖,它們描述了鄰近模組的

相對關係,再根據這兩張圖來決定模組間的相對位置,並依不同類型的模組給予 AGC(addition geometric constraints),可提高程式的執行效率與增加得到解的機率。

兩個模組距離很遙遠時,並不需要限制邊就能避免它們重疊,只有兩個相鄰

圖,實線為原始的限制邊,虛線為本方法所新增加的限制條件。

圖 5. (a) 將全域擺置結果利用三角剖分法可得到兩個三角形共五條邊:兩條水 平限制邊 (𝑚1, 𝑚3)、(𝑚2, 𝑚4),三條垂直限制邊(𝑚1, 𝑚2)、(𝑚3, 𝑚2)、 (𝑚3, 𝑚4)。

(b) 若沒有限制邊(𝑚1, 𝑚4),可能會得到𝑚1和𝑚4重疊的擺置結果。

圖 6. 隨著 AGC 迭代次數增加,限制邊數量與模組數量的關係圖。

經過實驗結果測試,只執行一次 AGC 或直接用初始建立的限制條件來求 解,模組之間還是有很高的機率會產生重疊,所以本演算法剛開始會先執行兩 次 AGC,再用整數線性規劃的方法來進行合法化,這樣能讓程式的執行更有效 率。我們初始得到一個三角剖分圖之後,會持續執行 AGC 演算法,直到模組 之間不存在任何的重疊。圖 6 為限制邊數量與 AGC 迭代次數的關係圖,𝑥座標 為模組的數量,𝑦座標為限制邊的總數量,隨著迭代次數增加限制邊的數量也會 跟著增加。圖 6 中,最下面的直線是原始三角剖分圖的限制邊數量,最上面的

曲線則是限制邊可允許的最大數量。假設二維平面中共有𝑛個模組,即在三角剖 分圖中有𝑛個頂點,若將所有模組之間都建立起連線關係,則每個頂點都會連接 到自己以外共𝑛 − 1個點,故共會有𝑛 × (𝑛 − 1) 2⁄ 條限制邊。由此可知,一旦模 組的數量增加,限制邊數量最大值會成二次方的成長;反之,我們執行了數次 的 AGC,模組數量與限制邊都是呈線性的成長,因此當模組的數量越多,使用 此方法的效益也就越高。

3.3. 彈性模組的面積限制近似

為了在合法化過程使用整數線性規劃的方法,必需要把所有非線性的限制 轉換成線性。本研究中考慮了兩種不同類型的模組,固定模組與彈性模組。其中 固定模組的面積限制較為單純,由於模組只能翻轉,長和寬只會有兩種組合情形;

反之,彈性模組可容許在限定的範圍內任意的變型,它的面積限制為一條雙曲線 (hyperbola)。因此本小節將介紹如何將非線性的面積曲線,轉換成適合且適量的 折線(polyline)限制。

彈性模組除了面積大小的限制之外,還有長寬比例的限制,我們可以利用一 條面積曲線與兩條直線來表示可接受的長寬解區域。如圖7(a),橫座標和縱座標 分別表示此模組的長和寬,而這些斜線範圍內的每個點即為此模組可接受的形狀。

其中兩直線分別是斜率為1/3 和斜率為 3 通過原點的斜直線,它們限制了長寬比 必需介於1/3 與 3 之間,此兩條斜線的夾角可記為𝜃 = tan−13 − tan−11/3。假設 要把面積曲線轉成𝑁個線段的折線,可將夾角𝜃切割成𝑁等分,則每一條等分線可 與面積曲線相交於一點,這些點就為折線中的折點(break point),我們將所有的點 依其寬度𝑤由高至低排序可以得到: 𝑝0, 𝑝1, … , 𝑝𝑁。每個折點𝑝𝑗的座標為(𝑤𝑖𝑗, ℎ𝑖𝑗),

表示彈性模組𝑚𝑖的其中一種長寬組合。圖7 (b)與圖 7 (c)把原始的面積曲線分別 轉換成兩線段與三線段的折線。

圖 7. (a) 原始彈性模組的面積限制 (b) 轉換成兩線段折線的面積限制 (c) 轉換 成三線段折線的面積限制

其中折點的數量可以由使用者定義,它會影響到求解的品質和速度。由圖7 可知,隨著折點數量越多,折線方程就越接近真實的曲線方程式,面積的誤差也 就越小;可是當限制的條件越多,求解的速度就會越慢。為了決定適當的折點數

量,我們將計算當彈性模組𝑚的面積曲線轉成折線時,面積的誤差量會增加多少。

我們應給予較大面積的彈性模組的折線較多的折點數,為的是讓大模組得到更精

以下為ILP 中一些參數定義:

1) 𝑀𝐿(𝑀𝑅): 分別表示所有水平限制𝐶中所屬最左(右)邊界的模組集合。

2) 𝑀𝐵(𝑀𝑇): 分別表示所有垂直限制𝐶𝑣中所屬最下(上)邊界的模組集合。

3) 𝑀𝐻𝑎𝑟𝑑(𝑀𝑆𝑜𝑓𝑡): 固定(彈性)模組的集合。

4) (𝑤𝑖0, ℎ𝑖0)、(𝑤𝑖1, ℎ𝑖1): 固定模組𝑚𝑖的兩種長寬組合。

5) (𝑤𝑖𝑘, ℎ𝑖𝑘): 彈性模組𝑚𝑖的所有長寬折點,𝑘 = 0,1, … , 𝑁𝑖。其中𝑁𝑖表示將面 積曲線轉成折線的線段數量。

本研究的整數線性規劃問題是由一項目標函式與三種類型的限制式組合而 成,限制式包含了不重疊限制、邊界限制、模組面積限制。式(3.5)為目標函式,

希望擺置的結果越接近固定框架大小越佳。式(3.6)和式(3.7)為不重疊限制,分別 在水平方向與垂直方向保證相鄰的兩個模組不互相重疊,可利用每晶片層𝑘所建 立的幾何限制圖𝑐𝑘和𝑐𝑣𝑘來實現。式(3.8)至式(3.13)為邊界限制,由式(3.10)和式 (3.11)可計算出實際擺置的框架長𝐻和寬𝑊。在模組面積限制方面,依模組的種類 不同限制式也會有所不同。式(3.14)至式(3.17)為固定模組的面積限制,由於模組 只能翻轉不能變形,所以長寬解只會有兩種,原始的長寬(𝑤𝑖0, ℎ𝑖0)和翻轉後的長 寬(𝑤𝑖1, ℎ𝑖1)。式(3.18)至式(3.20)為彈性模組的面積限制,其中式(3.18)和式(3.19)限 制了模組的長寬比例必需介於 1/3 至 3 之間,而式(3.20)為多條線段所構成的彈 性模組面積限制,下段針對這部分作更詳細的說明。

圖 9. 一條直線對彈性模組的面積限制

由於 3.3 小節已介紹了如何將面積曲線轉換成線性的折線,並已決定其折點 數量。這邊假設彈性模組𝑚𝑖要轉換成𝑁𝑖條線段的折線,折點(𝑤𝑖𝑘, ℎ𝑖𝑘)即表示彈 性模組𝑚𝑖一個長寬的解,其中𝑘 = 0,1, … , 𝑁𝑖,接著把每個折點的寬度由大至小 排序可得到𝑤𝑖𝑘 > 𝑤𝑖𝑘+1(ℎ𝑖𝑘+1 > ℎ𝑖𝑘),因為折線上的每個線段都會對彈性模組有 所限制,我們將取出其中一條來解釋,如圖 9,由於已知此條直線上的兩個端 點(𝑤𝑖0, ℎ𝑖0)和(𝑤𝑖1, ℎ𝑖1),故可以利用直線方程式中的兩點式(two-point form)來表 示此線,圖 9 中不等式限制範圍內的任何一點,即表示此條線可接受的長寬 解。

相關文件