View
221
Download
0
Embed Size (px)
Citation preview
Design Partitioning for 3D IC
張 至 詹久儀
2/23
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results• Analysis
3/23
Introduction & Problem Definition
• 跨層的繞線以 TSV 傳遞• TSV 種類有:
- TSV_IO( 都在最底層 )- TSV_CELL( 具有面積 )- TSV_LAND( 不具面積 )- TSV_THROUGHT( 由一個 CELL 及 LAND 組成 )
• 以下 TSV_CELL 以 TSV 簡稱之• 每個 PI/PO 都各有一個 TSV_IO 在最底層• 一個 TSV 所傳遞的 signal 可 fanout 給多個 nodes
三維電路
4/23
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results• Analysis
5/23
BFS-Based Initial Partitioning Flow
Update Layer Priorities
Assign to Highest Priority Layer
Queues Initialization
Working Layer Selection
Seed Dequeue
DONE
YES
Initial Partitioning Complete?
Unassigned Neighbors Exist?
YES
NO
NO
6/23
Queues Initialization
Layer 4
Layer 3
Layer 2
Layer 1
Queue 4
Queue 3
Queue 2
Queue 1
seed
seed
seed
seed seed seed seed
7/23
Update Layer Priorities
Assign to Highest Priority Layer
Queues Initialization
Working Layer Selection
Seed Dequeue
DONE
YES
Initial Partitioning Complete?
Unassigned neighbors exist?
YES
NO
NO
BFS-Based Initial Partitioning Flow
8/23
Working Layer Selection & Dequeue
Layer 4
Layer 3
Layer 2
Layer 1
Queue 4
Queue 3
Queue 2
Queue 1
seed seed
seed seed seed seed
seed
seed seed seed seed
Area 10 5 27
L4 L3 L2 L1
seed seed seed
9/23
Update Layer Priorities
Assign to Highest Priority Layer
Queues Initialization
Working Layer Selection
Seed Dequeue
DONE
YES
Initial Partitioning Complete?
Unassigned neighbors exist?
YES
NO
NO
BFS-Based Initial Partitioning Flow
10/23
Working Layer Selection & Dequeue
Layer 4
Layer 3
Layer 2
Layer 1
Queue 4
Queue 3
Queue 2
Queue 1
seed seed
seed seed seed
seed seed
seed seed seed seed
Area 10 5 27
L4 L3 L2 L1
Priority 0.05 0.066 0.1250.071
seed seed seed
0.047
11/23
Update Layer Priorities
Assign to Highest Priority Layer
Queues Initialization
Working Layer Selection
Seed Dequeue
DONE
YES
Initial Partitioning Complete?
Unassigned neighbors exist?
YES
NO
NO
BFS-Based Initial Partitioning Flow
12/23
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results• Analysis
13/23
FM-Based Partition Optimization
• 反覆的呼叫 Optimizer 函式來移動 nodes• Optimizer 可以接受以下參數
- 移動來源 / 目標層- 面積誤差上限 ( 平衡的權重 )- TSV gain 下限 (TSV 數的權重 )
• 透過設定參數便可依照不同的策略來進行最佳化• 移動策略 :
- 降低最大層面積- 減少整體 TSV 數
14/23
FM-Based Partition Optimization
15/23
Runtime Strategy
RT = Current RunTime
KT = Kill Time
16/23
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results• Analysis
17/23
Experimental Results
Bench 2 Bench 3 Bench 4
TSV Area TSV Area TSV Area
TeamA 977
(4)
232114
(3)
-- -- 748
(3)
278127
(1)
TeamB 836
(2)
240862
(4)
17664
(3)
2224978
(4)
843
(4)
299677.5
(4)
TeamC 663
(1)
221068
(1)
171
(2)
1412973
(1)
501
(2)
283519.5
(2)
TeamD 914
(3)
251638
(5)
164
(1)
1413955
(2)
242
(1)
309630
(5)
Our 1011
(5)
221914
(2)
22380
(4)
1975022.5
(3)
883
(5)
288188
(3)
18/23
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results• Analysis
19/23
Analysis: Case 4
20/23
Analysis: Case 2
21/23
Analysis: Case 3
22/23
Analysis: Case 3
23/23
Thank you
Backup Slides
cadb013
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results
Introduction & Problem Definition
二維電路三維電路
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results
BFS-Based Initial Partitioning
• 以一個 heuristic 的方法來控制 TSV 數量的增長- 盡量把 TSV 使用在有 mutiple fanout 的 hyperedge
上
• 不斷避免面積懸殊的 partitions ,達到各層面積相近- 動態切換、輪流進行多層 BFS
BFS-Based Initial Partitioning – Data structure
Layer 4
Layer 3
Layer 2
Layer 1
Queue 4
Queue 3
Queue 2
Queue 1
Seed : 已經被 assign 入指定 layer ,需要檢查其他與之相鄰的 neighbors。但可能有尚未被 assign 的 neighbor (untraveled neighbor)
seed
seed seed seed seed seed
seed seed
seed seed seed seed
針對每一層建立一個 seed Queue ,以達成動態切換、輪流進行多層 BFS 的目的
Determine Working Layer (Lw)
1. 在我們多層 seed Queue 的架構下,各層間存在互搶node(seed) 的競爭關係,為了達成產生各層面積相近的 (initial solution) 目標,我們發展一套動態切換Working Layer 的機制來進行 BFS 。
2. 每個 node 只會被 assign 入指定 layer 一次且不會被重新修正 ( 只會進入 seed queue 一次 ) 。
3. Working Layer (Lw) 可以同時 push seeds 到每一層Queues ,不限定僅能把 node 放入自己的 Queue 。
4. 動態切換至最小的 layer 直到該 layer 成為面積最大的layer 或是當 Lw 的 seed Queue 中以無 seed 。
Determine Working Layer (Lw)
1 2
11
1
1
1
1
1
1
1
1
1 2
1 1
2
22
2
1
1
1
1TSV 個數: 3
面積比: 11 : 1
TSV 個數: 3
面積比: 7 : 5
Dead Seed !
Determine Span for Each Hyperedge
1 TSV for 1 node
1 TSV for MANY nodes
Span
MAX Span_size = Hyperedge fanout node 數 / 2 或 layer 數
Layer 3
Determine direction for each hyperedge
Upper_avg_area = SUM(area_L3, area_4) / 2
Lower_avg_area = SUM(area_L1, area_L2, area_3) / 3
Direction = MIN(Upper_avg_area, lower_avg_area)
Layer 4
Layer 3
Layer 2
Layer 1
Lw = 3 Span_size = 3
Upper
Lower
Determine Span and direction for each hyperedge
• Span
MIN( Initial Span, Lw( 向下 ) 或最高層 -Lw+1( 向上 ) )
• Layer Span Direction- Upper_avg_area = SUM( Lw~ 最高層 ) / 層數- Lower_avg_area = SUM( 最底層 ~Lw ) / 層- fanout Direction = MIN(Upper_avg_area,
lower_avg_area)
Push one neighbor into Queue with highest priority
• 決定了 hyperedge 的 fanout span 及 direction 後,把fanout node 逐一分散到 Span 內的 layer 中 (push into seed Queue)
• 在 Span 內的所有 Layers 中,我們以 Priority 機制來挑選 Layer
• Priority[i] = 1/ (current_area[i]) * | Q[i] |
• Node 會被 Assign 到 Priority 最高的 Layer
Push one neighbor into Queue with highest priority
Layer 4
Layer 3
Layer 2
Layer 1
Queue 3
Queue 2
Queue 1
seed seed
seed seed seed seed
L3AreaLw = Layer3
Layer 3
Span = 3
Fanout direction = 向下
1 / ( L3 * 5 )Priority
L2 L1
1 / ( L1 * 4 )1 / ( L2 * 2 )
Queue 4
seed
seed seed seed seed seedseed seed seed seed seed
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results
FM-Based Partition Optimization
FM-Based Partition Optimization
FM-Based Partition Optimization
FM-Based Partition Optimization
• Tuner 會在 graph 上尋找- span 末端在來源層且 span 包含目標層的 net- 計算將該 net 所有位於來源層的 terminal 移動至目
標層對整個電路 tsv 的影響- 將 (net, tsv_gain) 存入 priority queue 並依據 tsv 減
少量排序• Tuner 會不斷從 priority queue 中 pop 出
(net,tsv_gain) 並實際進行移動• 直到 目標層面積 * 面積反差 >= 來源層面積或是
queue 已經空了
Outline
• Introduction & problem definition • Algorithm
- BFS-Based Initial Partitioning- FM-Based Partition Optimization
• Experimental results
Experimental results
Thank you