Goolge_adsense_default_ad




[용어설명] cut-through(컷스루) 스위칭과 wormhole(웜홀) 스위칭 칩 설계 지식 공유해요~


이번 글에서는 cut-through 스위칭과 wormhole 스위칭에 대해 간단히 용어를 설명해 보도록 하겠습니다. 사실 이 용어는 Network-on-Chip (NoC) 분야 보다는 컴퓨터 네트워크에서 먼저 나온 용어이지만, NoC를 이해하기 위해서 알아두면 여러모로 도움이 되는 용어이기도 합니다. 

우선 cut-through 스위칭은 store-and-forward 스위칭과 비교되는 개념입니다. 패킷을 전송하는 네트워크가 있고 패킷은 아래 그림과 같이 1개의 header flit과 3개의 payload flit, 그리고 1개의 tail flit으로 이루어져 있다고 가정해 봅시다. (flit에 관한 설명은 링크 참조) Store-and-forward 스위칭은 아래 그림의 왼쪽과 같이 하나의 스위치에서 다음 스위치로 패킷을 전송할 때 이전 스위치로 부터 패킷을 이루는 모든 flit이 도착한 후에 다음 스위치로 패킷을 전송하는 방법 입니다. 반면에 cut-through 스위칭의 경우에는 모든 flit이 도착할 때 까지 기다리는 대기시간을 줄이기 위해 header flit만 전달 되면 바로 다음 스위치로의 패킷 전송을 시작합니다. 이 결과로 cut-through 스위칭에서는 아래 그림의 오른쪽과 같이 하나의 패킷이 여러개의 스위치에 걸쳐 존재할 수 있게 됩니다. 

(이미지를 클릭하시면 크게 보입니다.)

cut-through 스위칭의 단점은 스위치에 패킷의 일부만 존재하기 때문에 ethernet과 같이 패킷의 일부가 사라질수 있는 네트워크의 경우 하나의 스위치에서 다른 스위치로 패킷을 전송하기 전에 패킷의 무결성을 검사할 수 없다는 점입니다. 이 때문에 망가진 패킷을 모르고 계속 전송해서 네트워크에 필요없는 부하를 줄 수도 있습니다. 하지만 NoC의 경우는 칩 안에서만 패킷이 전송되기 때문에 특별한 경우가 아니면 항상 패킷 또는 flit이 온전한 상태로 전송된다고 가정하는 것이 일반적입니다. NoC에서는 패킷 전송에 길어야 수십에서 수백 ns 정도의 시간이 걸리기 때문에 조금이라도 빠르게 패킷을 전송할 수 있는 cut-through 스위칭이 보다 유리하지요. 

이제 cut-through 스위칭에 대해서 개념을 잡았으니 이번에는 wormhole 스위칭과의 차이점을 말씀드리도록 하겠습니다. 두 스위칭 방법의 가장 큰 차이점은 네트워크 상에서 flow control이 발생할 경우에 발생합니다. Header flit이 있는 스위치에서 다음 스위치로 패킷을 일시적으로 전송하지 못하고 기다려야 하는 상황이 발생할 경우, cut-through 스위칭에서는 header flit이 대기하는 동안 이전의 스위치에 퍼져있던 payload flit과 tail flit이 header flit이 있는 스위치로 전송되어 하나의 패킷으로 모이게 됩니다. 반면에 wormhole 스위칭에서는 header flit의 전송이 멈춰지면 이전 스위치의 payload flit과 tail flit도 함께 전송이 멈춰져서 패킷은 여러 스위치에 걸쳐 존재하는 채로 header flit이 다시 전송 될 수 있을 때 까지 대기하게 됩니다. 

Wormhole 스위칭의 장점은 스위치마다 두어야 하는 버퍼 사이즈를 줄일 수 있다는 점인데 이 때문에 스위치에 많은 버퍼를 두기가 어려운 NoC에서 선호되는 스위칭 방법입니다. Wormhole 스위칭에서는 패킷이 여러 스위치에 걸쳐 존재할 수 있기 때문에 스위치에 패킷 사이즈 보다 작은 버퍼를 두더라도 패킷을 전송하는데 문제가 발생하지 않습니다. 하지만 cut-through 스위칭의 경우에는 flow control이 발생할 경우를 대비해서 적어도 패킷 사이즈 만큼은 버퍼를 두어야 하지요. 반면에 wormhole 스위칭의 단점은 패킷이 여러개의 스위치를 점유하기 때문에 패킷이 전송되는 동안 다른 패킷의 전송을 cut-through 스위칭보다 오랫동안 방해한다는 점입니다. NoC 설계시에 조심하지 않으면 의도치 않은 dead-lock을 발생 시킬 수도 있습니다. 




덧글

  • JH 2014/09/14 17:26 # 삭제 답글

    포스팅 잘 보았습니다^^
  • SiliconVal 2016/05/11 10:21 # 삭제 답글

    cut through와 wormhole 차이점을 잘 설명해두셨군요
    wormhole에서는 traffic density와 packet max size 에 따라 buffer size를 결정하게 되겠군요
    wormhole은 performance mesurement 하는 scenario의 갯수가 많아지고, 여러가지로 검증하는데 어려움이 있겠네요
댓글 입력 영역