조밀한 배치가 짧은 배선보다 먼저 막히는 이유
셀 배치가 더 조밀해지고 연결 거리도 줄었는데, 배선 단계에서는 오히려 막히는 일이 생긴다. 가까워진 핀 사이의 연결들이 같은 좁은 통로를 차지하려고 경쟁하기 때문이다. Routability-driven placement는 셀 사이 거리뿐 아니라 그 연결들을 실제로 통과시킬 공간이 있는지 추정하여 셀 위치를 조정한다.
셀의 빈자리와 배선의 빈자리는 다르다
배치 밀도는 주로 셀이 차지한 면적을 본다. 배선 혼잡은 사용할 수 있는 층·트랙·통로에 비해 연결 수요가 얼마나 몰리는지를 본다. 셀 면적이 같은 두 영역이라도 핀 수와 연결 방향, 주변 매크로가 다르면 배선 상태는 달라질 수 있다. 전체 코어에 여유 면적이 있어도 특정 매크로 사이의 통로가 병목일 수 있다.
OpenROAD는 routability 모드에서 RUDY로 혼잡을 추정하고, 혼잡한 타일에 있는 셀의 면적을 배치 계산 안에서 부풀려 셀을 퍼뜨린다고 설명한다. 옵션에 따라 global router를 사용한 추정도 가능하지만 더 많은 실행 시간이 든다. 여기서 면적 부풀리기는 물리적인 셀 자체를 크게 제조하는 작업이 아니라 최적화가 더 많은 공간을 확보하도록 만드는 방법이다. OpenROAD의 routability 모드
네 연결이 두 자리짜리 통로를 원할 때
두 개의 수평 통로를 가진 가상 배치를 만들자. 중앙 통로와 위쪽 통로는 각각 독립적인 배선 두 개를 수용할 수 있다. 연결 네 개는 모두 왼쪽과 오른쪽을 이어야 하며, 다른 장애물이나 핀 접근 제한은 없다고 가정한다.
셀을 중앙에 모은 후보 A에서는 네 연결이 모두 중앙 통로를 선택한다고 하자. 각 연결의 길이 대용값은 10이고 합은 40이다. 중앙 수요 4, 용량 2이므로 초과량은 2다. 위쪽 통로는 비어 있다. 전체 용량이 4라는 사실만으로 이 배선 선택의 혼잡이 사라지지 않는다.
후보 B는 두 연결의 양쪽 셀을 위로 옮겨 위쪽 통로를 활용한다. 그 두 연결의 길이 대용값이 각각 12로 늘고, 나머지는 10이라고 놓으면 합은 44다. 중앙과 위쪽의 수요가 각각 2가 되어 이 단순 모델의 초과량은 0이다. 길이 합은 10% 늘었지만 특정 통로의 자원 경쟁을 해소했다.
이 수치는 설명용 배치 후보이며 실제 도구가 반드시 이렇게 이동한다는 예측은 아니다. 움직인 셀의 다른 연결까지 더 길어질 수 있고, 위쪽으로 가는 경로의 핀 접근이나 비아가 새로운 병목일 수도 있다. 그럼에도 이 예제는 총 길이만 줄이는 목적이 배선 가능한 위치를 자동으로 만들지는 않는다는 점을 분명히 보여 준다.
셀을 부풀려 여유를 요구하는 계산
가상의 혼잡 타일 면적을 100, 실제 셀 면적 합을 60으로 놓자. 배치의 목표 점유율은 70%다. 면적이 10인 셀 여섯 개가 들어 있고, 혼잡 때문에 각 셀의 계산용 면적을 1.25배로 부풀린다고 가정한다. 배치 계산에서는 점유 면적이 75가 되어 목표 70을 넘는다.
셀 하나를 다른 타일로 옮기면 남은 실제 면적은 50이고, 계산용 면적은 62.5가 된다. 과밀 비용이 줄어드는 방향으로 최적화가 움직일 수 있다. 1.25라는 계수와 타일 크기는 가정한 값이며 OpenROAD의 내부 계수를 재현한 실험은 아니다. 실제 셀 면적과 계산용 면적을 구분해야 이 조정의 뜻을 이해할 수 있다.
다만 셀이 움직였다는 사실은 그 이동이 필요한 통로를 비웠다는 증거와 다르다. 셀의 연결 관계에 따라 배선 수요가 다른 타일로 옮겨가거나 새로운 경계를 통과할 수 있다. 따라서 이동 후에 혼잡을 다시 추정하는 과정이 필요하다. OpenROAD도 추정·면적 조정·재배치를 반복하며, 혼잡 지표가 연속된 반복에서 줄지 않을 때 멈추는 조건을 설명한다. Global Placement의 반복 설명
추정이 낙관적이면 배선에서 다시 드러난다
배선 수요를 간단한 연결 박스에서 추정하는 방법은 빠르지만 세밀한 우회와 접근 조건을 전부 알 수 없다. Global routing을 이용한 추정도 최종 트랙의 모든 규칙을 대신하지 않는다. OpenROAD의 global routing 문서는 가정하는 트랙 자원을 줄여 배선을 퍼뜨리고, detailed routing의 어려움을 줄이는 자원 조정 방법을 제공한다. 숫자상 용량과 실제 사용 가능성이 다를 수 있음을 고려하는 접근이다. Global routing의 자원 조정
배치 후보를 비교할 때는 총 연결 거리와 함께 혼잡이 어디에 몰리는지 봐야 한다. 가장 나쁜 타일 하나뿐 아니라 그 주변까지 이동할 공간이 있는지, 동일 병목을 지나가는 연결이 몇 개인지 확인하면 조정의 방향이 구체화된다. 충분히 퍼뜨린 뒤에는 타이밍과 최종 합법 배치를 다시 확인해야 한다. 통로를 확보하려고 늘린 거리가 다른 경로의 예산을 소모할 수 있기 때문이다.
Routability-driven placement가 추구하는 것은 가장 넓게 퍼진 배치가 아니다. 연결이 지나가야 할 곳에 필요한 자원을 남기는 배치다. 짧은 연결들의 합이 조금 늘어도 막힌 통로의 경쟁이 줄어든다면 가치가 있을 수 있다. 그 가치를 확정하는 기준은 혼잡 추정의 개선과 실제 배선 결과가 함께 좋아졌는지에 있다.