FPGA channel width의 최소 배선 성공값이 최고 속도는 아닌 이유
FPGA routing track을 늘렸더니 회로가 배선됐다. 그런데 같은 회로의 모든 경로가 더 빨라지지는 않는다. FPGA channel width는 배선에 사용할 자원의 폭을 나타내지만, 실제 신호가 선택한 경로의 delay를 단독으로 정하지는 않는다. 배선 성공과 속도 목표를 따로 측정해야 한다.
먼저 통과해야 하는 연결의 수를 센다
작은 계산용 routing 모델에서 한 절단면을 서로 다른 다섯 net이 지나야 하고, 각 track은 그 절단면에서 net 하나만 담는다고 하자. 공유나 시간분할을 허용하지 않는다. 이 모델에서는 폭 W가 5 이상이어야 한다. W=4라면 적어도 두 net이 같은 자원을 요구하므로 배선할 수 없다.
W≥5는 이 절단면에 필요한 조건이다. 모든 net이 그 track에 접근할 수 있는지, 다른 구간의 병목이 없는지까지 증명하지는 않는다. 예를 들어 서로 다른 두 입력 pin으로 가는 경로가 반드시 같은 1edge를 지나야 하고, 그 edge를 독립적인 두 net이 동시에 요구한다면, 멀리 있는 channel이 8track이어도 그 1edge 병목은 그대로다.
실제 architecture의 pin 연결, switch pattern과 segment를 포함한 graph에서 연결 가능성을 판단해야 한다. track 수와 모든 경로의 자유도를 같은 양으로 취급하면 이런 실패를 놓친다.
도구가 찾은 최소값의 의미
VPR 문서는 기본 routing에서 channel width를 탐색하고, 고정 폭은 --route_chan_width로 지정한다고 설명한다. 또한 탐색과 router의 한계 때문에 찾은 폭을 확인하는 옵션을 따로 제공한다. VPR Router Options
따라서 한 실행에서 얻은 ‘최소 routable width’에는 architecture와 netlist뿐 아니라 도구 버전, placement, router 설정과 탐색의 결과가 들어 있다. 실제 run을 하지 않은 상태에서 작은 절단면 산술을 VPR이 얻은 최소값이라고 부르지는 않는다.
한 폭에서 성공했다는 결과는 그 실행의 연결을 배선했다는 증거다. 수학적으로 가능한 모든 배선을 탐색해서 전역 최적값을 증명했다는 뜻까지 포함하지 않는다. 실패 역시 존재 가능한 경로가 전혀 없다는 증명과 구별한다.
폭이 늘면서 줄어드는 우회 경로
한 신호의 가상 경로를 비교해 보자. W=5에서는 우회하며 switch 8개를 통과하고, switch당 delay 0.08ns와 나머지 wire delay 0.40ns를 갖는다고 지정한다. 총 1.04ns다. W=8에서는 더 직접적인 경로를 사용할 수 있어 switch 3개와 wire 0.30ns라면 총 0.54ns다.
다른 신호가 처음부터 switch 2개와 wire 0.20ns의 경로를 사용했고 바뀌지 않았다면 그 delay는 계속 0.36ns다. 폭을 늘렸다는 입력 변경이 모든 path의 delay를 일괄적인 배율로 줄이지 않는다. 이 숫자들은 설명을 위해 지정한 경로이며 실제 FPGA나 VPR의 측정 결과가 아니다.
배선 폭의 여유는 혼잡을 줄이거나 특정 우회를 제거할 가능성을 제공한다. 그 가능성이 어느 net에서 실현됐는지 routing 결과와 timing report로 확인한다. 전체 clock은 개선한 한 path 대신 다른 path가 critical해질 수도 있어 모든 endpoint의 제약과 함께 판단한다.
더 넓은 물리 구조의 delay도 다시 지정한다
동일한 routing graph에 기존 edge를 그대로 두고 edge만 추가한다면, 정확한 최소-delay 경로는 기존 경로도 선택할 수 있으므로 더 나빠질 수 없다. 그런데 폭이 다른 실제 architecture를 만드는 것은 이 조건과 다를 수 있다. mux와 wiring의 물리적 비용이 함께 바뀐다.
자체 모델의 W=12에서는 직접적인 3switch 경로가 있지만, switch당 delay를 0.12ns로 새로 지정했다고 하자. wire는 0.30ns로 유지하면 총 0.66ns다. W=8의 0.54ns보다 길다. 이는 넓어진 구조의 다른 delay를 가정한 비교이지, 변하지 않은 graph에 track만 추가했는데 최적 경로가 악화됐다는 반례는 아니다.
실제 heuristic router가 경로를 다르게 고르는 효과도 물리적 delay 변화와 구분한다. 폭을 비교할 때에는 성공 여부, 경로와 critical delay, routing 자원 비용을 함께 기록하고 바꾼 조건을 명시한다.
FPGA channel width의 좋은 값은 배선할 수 있는 가장 작은 값과 자동으로 같지 않다. 필요한 연결을 성공시킨 뒤 관심 timing과 자원 비용을 평가한다. 폭이 제공한 여유가 어떤 우회와 병목을 바꿨는지까지 추적하면, track 증가의 효과를 경로별로 설명할 수 있다.