Floorplan design에 대해서
이전 게시글에서 언급했듯, Floorplan 단계는 Chip을 설계할 때 밑그림을 그리는 단계라고 했다.
그러면 밑그림을 그리는 단계에서는 무엇이 중요할까?
이를 생각해보면 아래 3가지가 중요한 요소로 고려된다.
1. Chip/Module의 면적
2. Chip/Module의 비율
3. 총 Wire의 길이
첫 번째 요소인 Chip/Module의 면적을 생각해보자.
Chip/Module의 면적이 작으면 여러 Scaling 이득(특히나 경제적 이득)을 얻을 수 있지만, 반대로 Routing 할 수 있는 공간이 줄어들어 Congestion이 발생할 수 있다. (여러 레이어를 사용해도 연결 못할 수 있다.)
따라서 Routing 할 공간을 최소한으로 남겨두고 최대한 작게 만드는 것이 최선이다.
두 번째로, Chip/Module의 비율(가로세로 비)을 생각해보자.
제조 비용과 패키지 크기를 고려하면 정사각형에 가까운 Chip이 낫다. (가로세로 비가 1에 가까운)
또한 각 모듈을 융통성 있게 배치/이용하기 위해서는 Chip의 비율은 정사각형에 가까운 것이 낫다.
세 번째로, Wire의 길이에 대해서 생각해보자.
Wire의 길이가 긴 경우
Interconnect delay는 증가하고, Power 소모도 커지고, Routability가 감소하고, 제조 비용도 증가한다.
무엇하나 장점이 없다. Wire는 그냥 짧으면 좋다.
자, 그러면 3가지 중요한 요소를 모두 확인하였으니 위 요소들이 모두 최고로 좋은 Floorplan design을 진행하면 되겠다!
...라고 생각했으나 우리가 한 가지 간과한 사실이 있다.
첫 번째 요소인 Chip/Module의 면적을 줄이는 것은 앞서 설명했듯 서로 연결할 공간을 줄어들게 만들어 Routability를 감소시킨다.
이렇게 Routability가 감소하면, Module끼리 바로 연결할 수 있었던 Wire가 우회하여 돌아가거나 여러 Metal layer를 사용하여 연결해야 하는 상황을 초래한다. (이러면서 세 번째 요소인 Total Wire length가 증가하게 된다.)
이 말이 의미하는 바는 당연하게도
면적과 총 Wire 길이는 Trade-off 관계가 되며, 이는 해당 Chip과 Module의 쓰임에 따라 최적의 Design이 달라진다는 것이다.
$\alpha$ : Floorplan design시 중요도를 의미한다.
$area(F)$ : Chip/Module의 면적을 의미한다.
$L(F)$ : 근사치로 빠르게 계산한 총 Wire length를 나타낸다.
정리하면, 모든 상황에서 최고인 Floorplan design은 존재하지 않으니 쓰임에 맞게 $\alpha$값을 잘 조정하며 design을 진행하면 해당 쓰임에 최적인 밑그림이 생성될 것이다.
+ 점점 소자의 Scale이 작아짐에 따라서, Transistor delay보다는 Interconnect delay가 커지게 되었다.
따라서 Floorplan시 Gate-level에서 판별된 가장 긴 critical path에 속하는 interconnect을 먼저 연결하도록 우선권을 주면 추후 Routing으로 인한 delay 손실을 줄일 수 있다.