• 沒有找到結果。

第三章 DBL 表示法之模擬退火板面規劃

3.4 雙重界限串列表示法(DBL)

3.4.1 相鄰關係 27

在一個緊密的板面規劃 F 中,給兩個區塊 Bi 和 Bj,在 Bi 和 Bj之間存在一 個水平 (垂直) 相鄰關係,如果

(1) Bi 水平 (垂直) 緊接著 Bj,或

(2)在沒有移動任何其他區塊之下,Bi能夠水平移動到在它的右邊(垂直地向上) 去緊接 Bj

最初,假設兩個矩形邊界 L 和 B,被認為是在一個緊密的板面規劃 F 中兩 個虛擬的區塊,如果建構了 F 中的所有水平和垂直的相鄰關係,任何區塊能夠很 容易找到它的右方和上方的相鄰區塊。因此,能夠在 F 的所有鄰近關係中,建構 一個相鄰圖表 Gadj(VF, EF),其中 VF是 F 中區塊組{ L, B }的結合,EF則是在 V 中 所有相鄰關係組;在從一個緊密的板面規劃建構的相鄰圖表中,由區塊近鄰搜查 中,大多數的相鄰關係是屬於傳遞關係,因此,在屬於板面規劃的所有相鄰關係 的表示法中,相鄰圖表的一些鄰近關係,可能被簡化。在 F 中的任一區塊 Bi,為 了保證保持其所有區塊相鄰關係,Bi區塊的所有水平相鄰關係,能夠被所有水平 相鄰關係的右下和右上相鄰關係 RBPtr(Bi) 和 RTPtr(Bi)所界限,而 Bi區塊的所 有垂直相鄰關係,能夠被所有垂直相鄰關係的上左和上右相鄰關係 TLPtr(Bi)和 TRPtr(Bi)所界限,如圖 3.6(a)所示。一般而言,如果 RBPtr(Bi)與 RTPtr(Bi)相 等則 RTPtr(Bi)的相鄰關係可以忽略。同樣地,如果 TLPtr(Bi) 與 TRPtr(Bi)相等 則 TRPtr(Bi)的相鄰關係可以忽略。很明顯的,在一個緊密的板面規劃 F 中放入 區塊 B1, B2,…,Bn和兩個虛擬的區塊 L 和 B,則所有水平相鄰關係,能夠被所有 水平相鄰關係 RBPtr(L), RTPtr(L), RBPtr(B1), RTPtr(B1),…, RBPtr(Bn) and RTPtr(Bn)連結,而所有垂直相鄰關係,能夠被所有垂直相鄰關係 TLPtr(B), TRPtr(B), TLPtr(B1), TRPtr(B1),…, TLPtr(Bn) and TRPtr(Bn)連結,此外, 在 一個緊密的板面規劃中所有相鄰關係,能夠由一個雙重界限串列所連結且雙重界

限串列能夠被定義。

在一個緊密的板面規劃F中,放入區塊B1, B2,…,Bn,和兩個虛擬的區塊L 和 B,在F中雙重界限串列表示法,被定義為為鄰近關係的圖形表示法G(VF, EF),其 中VF為{ B1, B2,…,Bn } 和 { L, B }的集合, EF則為{ RBPtr(L), RTPtr(L), RBPtr(B1), RTPtr(B1),…, RBPtr(Bn) and RTPtr(Bn)} 和 { TLPtr(B), TRPtr(B), TLPtr(B1), TRPtr(B1),…, TLPtr(Bn) and TRPtr(Bn) }的集合。

B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

B1

B8

Bi L

RBPtr RTPt r

TLPtr TRPt r

B9 B12

B7

B2 B3 B4 B5

B6

B10

B11

B1

B8

B L

B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

B1

B8

B

(a) (b)

(c) (d)

圖3.6 一個緊密板面規劃的雙重界限串列表示法(DBL)

一個緊密的板面規劃的雙重界限串列表示法(DBL),為一非週期圖表表示 法。因為用兩個水平邊界關係和兩個垂直邊界關係來表示每一個區塊的所有水平 和垂直的鄰近關係,也就是所有水平和垂直的鄰近關係,能夠被一個DBL所界限,

因此一個 DBL 鄰近關係的數目至多是 4n+4 ,n 是一個緊密的板面規劃的區塊 數目,提到圖3.4(l)的板面規劃,它的水平和垂直邊界的串列,分別如圖3.6(b) 和圖3.6(c)所示。

3.4.2 一個緊密板面規劃的雙重界限串列表示法(DBL)

存在一個唯一的 DBL 表示法,對應一個緊密板面規劃。

一個緊密的板面規劃的結果,可以看成一個區塊的串列在一個階層式階梯 輪廓上的擺置,如圖 3.2 和 3.3 所示,放置一個區塊 Bt在 L 類型角落上, Bj ->

Bj+1一個內部的階層式階梯輪廓,可看見區塊 Bt的一個外部水平區塊 Bi,和一個 外部垂直區塊 Bk,首先 Bj區塊水平相鄰關係 RBPtr(Bj) (RTPtr(Bj)),如果區塊 Bj緊接區塊 Bt,將被分派從區塊 Bj到區塊 Bt,並且那裡存在在區塊 Bj上水平相鄰 關係 RBPtr(Bj)(RTPtr(Bj)),或如果區塊 Bj上存在兩個水平相鄰關係,其水平相 鄰關係(RTPtr(Bj)),將重新被分派從區塊 Bj到區塊 Bt,同樣地,Bj+1區塊垂直相 鄰關係 TLPtr(Bj+1) (TRPtr(Bj+1)),如果區塊 Bj+1緊接區塊 Bt,將被分派從區塊 Bj+1 到區塊 Bt,並且那裡存在在區塊 Bj+1上水平相鄰關係 TLPtr(Bj+1) (TRPtr(Bj+1)),

或如果區塊 Bj+1上存在兩個垂直相鄰關係,其垂直相鄰關係 TRPtr(Bj+1),將重新 被分派從區塊 Bj+1到區塊 Bt,另外,如果在 Bi 和 Bj之間有個角落區塊 Bp沒有水 平相鄰關係,而區塊 B p與區塊 Bt相鄰,則區塊 B p的水平相鄰關係 RBPtr(Bp)會 被指派從 B p到 Bt,同樣地,如果在 Bj+1和 Bk之間有個角落區塊 Bq 沒有垂直相鄰 關係,而區塊 Bq與區塊 Bt相鄰,則區塊 Bq的垂直相鄰關係 TLPtr(Bq)會被指派從 Bq到 Bt

在圖3.3中,把一個區塊Bt,放置在凹陷的 L 類型角落上,其裡面的階層式 階梯輪廓Bj -> Bj+1,區塊Bt內部可看見一個水平的區塊Bu和一個垂直的區塊Bv

如果一個在Bj 和 Bj+1之間的區塊Bp輪廓與區塊Bt毗鄰,則區塊Bp的水平相鄰關係 RBPtr(Bp)指派從B p到Bt,同樣地,如果一個在Bj和Bj+1之間的區塊Bq輪廓與區塊Bt 毗鄰,則區塊Bq的垂直相鄰關係TLPtr(Bq)指派從Bq到Bt,而且如果一個在Bj 和 Bj+1 之間的區塊Bp輪廓,有一水平的相鄰關係從Bp 到 Bj+1和一水平的相鄰關係從Bp 到 Bt,則Bp 到Bj+1的水平相鄰關係將被刪除,區塊Bt的一個從Bt到Bj+1新水平相鄰關係 RBPtr(Bt)將被建立,同樣地,如果一個在Bj 和 Bj+1之間的區塊Bq 輪廓,有一垂 直的相鄰關係從Bq到 Bj,和一水平的相鄰關係從Bq到Bt,則Bq到Bj的垂直相鄰關係 將被刪除,區塊Bt的一個從Bt到Bj新水平相鄰關係TLPtr(Bt),將被建立。

最後,如果 L 類型角落上Bj -> Bj+1,是位於一個外部凹陷的 L 類型角落 Bx -> By裡面,區塊Bt的水平相鄰關係,可能被指派從Bt 到 By或區塊Bt的垂直相 鄰關係,可能被指派從Bt到Bx,參照圖 3.4(l),B1, B2,…, and B12區塊依次被放 置在切實可行L 類型角落上,並且最後緊密板面規劃的雙重界限串列表示法 (DBL),如圖3.6(d)所示。

3.4.3 一個雙重界限串列表示法(DBL)的緊密板面規劃

存 在 一 個 唯 一 的 DBL 表 示 法 , 對 應 一 個 緊 密 板 面 規 劃 。 且 DBL 是 一 個 P-admissible的表示法。

一個 DBL 表示法是非週期圖形表示法,並且每一個區塊水平或垂直的鄰近 關係的數目最多是 2。因此,DBL表示法中所有水平或垂直的相鄰關係的數目為 O(n),n是一個緊密板面規劃的區塊數目,因此透過在DBL表示法跑一個拓撲學排 序的過程,能夠在O(n)時間中很容易獲得一個 DBL 表示法的壓縮順序,如同一 個區塊Bi被壓縮進入到一個緊密板面規劃,在DBL 表示法可以發現一個左邊的區

邊的區塊Bs,從Bs到Bi與最左邊實質垂直相鄰關係TLPtr(Bs) 或 TRPtr(Bs),而且 隨著所有的區塊被完全地壓縮進一個緊密板面規劃,透過跑一個左下壓縮 (LB-packing)的程序,區塊Bi能更進一步放置在Br -> Bs的L類型角落上,且可以 獲得最後緊密板面規劃和計算緊密板面規劃的面積,明顯地,在DBL表示法中,

找到所有區塊的壓縮L類型角落和分派所有區塊在切實可行L類型角落上的複雜 度與邊的數目相當,因此,一個DBL 表示法的左下壓縮(LB-packing)的程序需要 O(n)的時間。

參照圖 3.6(d),如 B1, B8, B9, B12, B10, B2, B3, B4, B5, B6, B7 和 B11可知 DBL 表示法的壓縮順序,如同區塊 B1被壓縮,L 類型角落 L->B 被上面的程序抽出 和被放置在 L 類型角落 L->B 上;如同區塊 B8被壓縮,L 類型角落 B1->B 被上面 的程序抽出和被放置在 L 類型角落 B1->B 上,同樣地,其他區塊 B9, B12, B10, B2, B3, B4, B5, B6, B7 和 B11被放置在它們相關的 L 類型角落上且獲得最後的緊密板 面規劃。

3.5 以模擬退火為基礎藉 由有效搗亂操作的板面規劃設計

以模擬退火為基礎透過DBL表示法作一個緊密的板面規劃的方法是被提議 的,這個以模擬退火為基礎的方法描述如下: 一個初始 DBL 給出了一個表示初 始緊密板面規劃的解,以模擬退火為基礎的方法,根據一個搗亂操作產生一個新 緊密的板面規劃,並且這個原始DBL表示的板面規劃藉由跑一左下壓縮的過程,

修改成新的DBL表示的新板面規劃。一般而言,根據目標功能的定義,初始 DBL 和 新 DBL 的板面規劃結果,在以模擬退火為基礎的空間解中,是用來被比較和找 尋一個更好的解。在每一個反覆跑搗亂的操作以後,從相關的 DBL 逐漸遞增得

到一個緊密的板面規劃。随著使溫度冷卻,最後 DBL 代表最後緊密的板面規劃。

在建議的以模擬退火為基礎的板面規劃方法中,有三個有效搗亂操作,旋轉、移 動和交換,被運用來獲得新 DBL,如下 :

‧旋轉:使區塊Bi旋轉

‧搬移:移動區塊Bi到一個空空間

‧交換:交換兩個區塊Bi和Bj

旋轉操作是要使這個給予的區塊Bi旋轉,且放置在相同的L類型角落上。搬移操 作是要移動和放置這個給予的區塊Bi,在一個隨機空的空間裡面的一個L類型角 落上。交換操作是要互換放置兩個區塊Bi和區塊Bj。從擺放位置的觀點,旋轉操 作代表在相同的位置上,一個區塊刪除和一個區塊插入,搬移操作代表在不同位 置上一個區塊刪除和一個區塊插入,而交換操作代表在不同位置上兩個塊刪除和 兩個塊插入。因此,對任何搗亂操作的一個 DBL 的修正。被認為如同是刪除操 作和插入操作。

考慮 DBL 對一個刪除 (插入)操作的修正,給一個刪除 (插入)區塊 Bi,根據 在水平相鄰關係 RBPtr(Bi)的遞迴搜尋中,和在垂直相鄰關係 TLPtr(Bi)的遞迴搜 尋中,區塊序列的幾何結構,是把這個原始緊密的板面規劃分成左下板面規劃區 和右上板面規劃區。在左下板面規劃區裡面的任何區塊,不能夠改變放置位置,

而右上板面規劃區裡面的任何區塊,在一個區塊的刪除(插入)中可以改變放置位 置。如同區塊 Bi的左下板面規劃區被找到,左下板面規劃區的階層式階梯輪廓能 夠被建構,此外,基於左下板面規劃區的階層式階梯輪廓,在右上板面規劃區中 的所有區塊,也能藉由跑一個左下壓縮的程序相繼地被壓縮,且原始 DBL 也會 被 修 改 成 新 的 DBL , 因 此 , 這 個 以 模 擬 退 火 為 基 礎 的 板 面 規 劃 方 法

SA_Floorplan(),如下所示:

SA_Floorplan()

Input: TCGR routing result;

{ Set initial temperature, Temp ;

Set initial solution, Solution = Initial DBL from one original compacted floorplan;

while ( Temp > Stop_Temperature )

{ Select one of the perturbation operations, Move, Rotate or Swap;

NewSolution = One new DBL from one perturbation operation, Move, Rotate or Swap for the original compacted floorplan;

△C = Cost(NewSolution) – Cost(Solution);

if (△C < 0 )

Solution = NewSolution;

else if (RANDOM(0, 1) < Temp

C

e

) Solution =NewSolution;

Temp = γ*Temp;

}

Output the final compacted floorplan from the final DBL;

}

參照在圖 3.4 中提到緊密的板面規劃,在圖 3.7 中說明對板面規劃三個連 續的搗亂操作。在圖 3.7(a)中,搬移操作被用來使這個區塊 B8搬移到在一個空 的空間中 L 類型角落 B2->B3,板面規劃被分成一個包含區塊 B1,B2 和 B3的左下板 面規劃區和一個包含區塊 B4, B5, B6, B7, B8, B9, B10, B11和 B12的右上板面規劃 區,最後,左下板面規劃區的階層式階梯輪廓為 L->B2->B3->B1->B,且在右上板 面規劃區的所有區塊,將被壓縮成最後的緊密板面規劃,與一個新的 DBL;在圖 3.7(b)中,旋轉操作被用來旋轉區塊 B8,並放置這個區塊在相同的 L 類型角落 B2->B3上,板面規劃被分成一個包含區塊 B1, B2, B3, B9, B10和 B12的左下板面規 劃區和一個包含區塊 B4, B5, B6, B7, B8 和 B11的右上板面規劃區,最後左下板面 規劃區的階層式階梯輪廓為一個外部的輪廓 L->B2->B3->B1->B10->B12->B,與一個

(b) Rotate Block B8

(c) Swap Blocks B7and B10

B2

B3

B4 B5

B6

B7

B9

B10

B11

B12

B L

B1

B8

B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

B L

B1

B8

B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

B L

B1

B8

B9 B12

B7

B2

B3

B4 B5

B6 B10

B11

B L

B1

B8

(a) Move Block B8 B7

B2

B3

B4 B5

B6

B L

B1

B9 B12

B10

B11

B8

B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

B L

B1

B8

B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

B L

B1

B8

B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

B L

B1

B8

B B9 B12

B7

B2

B3

B4 B5

B6

B10

B11

L

B1

B8

圖 3.7 一個緊密板面規劃的搗亂操作

內部的輪廓 B10->B9-> B12,且在右上板面規劃區的所有區塊,將被壓縮成最後的 緊密的板面規劃,與一個新的 DBL;在圖 7(c)中,交換操作被用來互換區塊 B7 和 B10,並各自放置這兩個區塊在 L 類型角落 B6->B4 和 B1->B9上,板面規劃被分成 一個包含區塊 B1, B2, B3, B4, B5, B6, B8, B9 和 B12的左下板面規劃區和一個包含 區塊 B, B 和 B 的右上板面規劃區,最後左下板面規劃區的階層式階梯輪廓為

一個外部的輪廓 L->B6->B4->B5->B1->B7-> B12->B 與兩個內部的輪廓 B6->B2-> B8 和 B7->B9-> B12,且在右上板面規劃區的所有區塊,將被壓縮成最後的緊密的板面規 劃,與一個新的 DBL。

相關文件