440 likes | 602 Views
Design Partitioning for 3D IC. 張 至 詹久儀. Outline. Introduction & problem definition Algorithm BFS-Based Initial Partitioning FM-Based Partition Optimization Experimental results Analysis. 三維電路. Introduction & Problem Definition. 跨層的繞線以 TSV 傳遞 TSV 種類有: TSV_IO( 都在最底層 )
E N D
Design Partitioning for 3D IC 張 至 詹久儀
Outline • Introduction & problem definition • Algorithm • BFS-Based Initial Partitioning • FM-Based Partition Optimization • Experimental results • Analysis
三維電路 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
Outline • Introduction & problem definition • Algorithm • BFS-Based Initial Partitioning • FM-Based Partition Optimization • Experimental results • Analysis
Queues Initialization Initial Partitioning Complete? YES NO Working Layer Selection Seed Dequeue NO Unassigned Neighbors Exist? YES Assign to Highest Priority Layer Update Layer Priorities DONE BFS-Based Initial Partitioning Flow
Queues Initialization Queue 4 Queue 3 Layer 4 Queue 2 Layer 3 Layer 2 Queue 1 Layer 1
Queues Initialization Initial Partitioning Complete? YES NO Working Layer Selection Seed Dequeue NO Unassigned neighbors exist? YES Assign to Highest Priority Layer Update Layer Priorities DONE BFS-Based Initial Partitioning Flow
Working Layer Selection & Dequeue L4 L3 L2 L1 Area Queue 4 Queue 3 Layer 4 Queue 2 Layer 3 Layer 2 Queue 1 Layer 1
Queues Initialization Initial Partitioning Complete? YES NO Working Layer Selection Seed Dequeue NO Unassigned neighbors exist? YES Assign to Highest Priority Layer Update Layer Priorities DONE BFS-Based Initial Partitioning Flow
Working Layer Selection & Dequeue L4 L3 L2 L1 Area Priority Queue 4 Queue 3 Layer 4 Queue 2 Layer 3 Layer 2 Queue 1 Layer 1
Queues Initialization Initial Partitioning Complete? YES NO Working Layer Selection SeedDequeue NO Unassigned neighbors exist? YES Assign to Highest Priority Layer Update Layer Priorities DONE BFS-Based Initial Partitioning Flow
Outline • Introduction & problem definition • Algorithm • BFS-Based Initial Partitioning • FM-Based Partition Optimization • Experimental results • Analysis
FM-Based Partition Optimization • 反覆的呼叫 Optimizer 函式來移動 nodes • Optimizer 可以接受以下參數 • 移動來源/目標層 • 面積誤差上限 (平衡的權重) • TSV gain下限 (TSV數的權重) • 透過設定參數便可依照不同的策略來進行最佳化 • 移動策略: • 降低最大層面積 • 減少整體TSV數
Runtime Strategy RT = Current RunTime KT = Kill Time
Outline • Introduction & problem definition • Algorithm • BFS-Based Initial Partitioning • FM-Based Partition Optimization • Experimental results • Analysis
Outline • Introduction & problem definition • Algorithm • BFS-Based Initial Partitioning • FM-Based Partition Optimization • Experimental results • Analysis
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 針對每一層建立一個seed Queue,以達成動態切換、輪流進行多層BFS的目的 Queue 4 Queue 3 Layer 4 Layer 3 Queue 2 Layer 2 Layer 1 Queue 1 Seed : 已經被assign 入指定layer,需要檢查其他與之相鄰的neighbors。但可能有尚未被assign的neighbor (untraveled neighbor)
Determine Working Layer (Lw) • 在我們多層seed Queue的架構下,各層間存在互搶node(seed)的競爭關係,為了達成產生各層面積相近的(initial solution)目標,我們發展一套動態切換Working Layer 的機制來進行BFS。 • 每個node只會被assign入指定layer一次且不會被重新修正(只會進入seed queue一次)。 • Working Layer (Lw)可以同時push seeds到每一層Queues,不限定僅能把node放入自己的Queue。 • 動態切換至最小的layer直到該layer成為面積最大的layer或是當Lw的seed Queue中以無seed。
1 1 2 1 2 2 1 2 1 1 2 1 Determine Working Layer (Lw) 1 TSV個數: 3 面積比:7 : 5 TSV個數: 3 面積比:11 : 1 1 1 1 1 1 1 1 1 1 Dead Seed ! 2 1
Determine Span for Each Hyperedge Span 1 TSV for MANY nodes 1 TSV for 1 node MAX Span_size = Hyperedge fanout node數 / 2 或 layer數
Determine direction for each hyperedge Span_size = 3 Lw = 3 Upper Layer 4 Layer 3 Layer 3 Lower Layer 2 Layer 1 • 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)
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 Priority Queue 4 Lw = Layer3 Span = 3 Area Fanout direction = 向下 Queue 3 Layer 4 Queue 2 Layer 3 Layer 3 Layer 2 Queue 1 Layer 1
Outline • Introduction & problem definition • Algorithm • BFS-Based Initial Partitioning • FM-Based Partition Optimization • Experimental results
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