Jul 23, 2007

네트워크 아키텍처의 하드웨어 기반 가속 기능

By Steven Pope Chief Technical Officer
David Riddoch Chief Software Architect - Solarflare Communications Inc.

네트워크 인터페이스 아키텍처는 더 많은 가속 기능을 추가하고 있다. 그 범위는 체크섬 검증에서 TCP와 상층 프로토콜의 전체 오프로드에 이른다. 이러한 가속 기능의 일부는 소프트웨어로 효율적으로 수행할 수 있다. 그러나 어떤 환경에서는 복잡한 가속 기능을 사용할 경우 성능, 시스템 무결성, 보안 기능이 저하될 수 있다.

지난 30년 동안 유비쿼터스 이더넷 표준이 발전을 거듭한 것처럼 호스트 네트워크의 아키텍처 또한 엄청난 혁신이 이루어지고 있다. 많은 아키텍처는 링크 속도가 증가함에 따라 OS와 응용 프로그램이 효과적으로 데이터를 처리할 수 있도록 하는데 목표를 두고 있다. 서버 I/O 성능이 네트워크 링크 속도의 증가를 따라가지 못하는 상황에서 새로운 가속 기능이 출현하는 것은 우연이 아니다. 일부 가속 기능은 시련의 시기를 극복하지만 다른 기능은 CPU와 코어 칩셋 성능 향상이 꾸준히 이루어지면서 사라진다. 시스템 환경에서 주어진 가속 기능이 어떻게 사용되는지 조사해보면 그 기능이 장기간 사용될 것인지 알 수 있다.

정상적인 네트워크 인터페이스는 링크 레이어 프로토콜 상위에 있는 패킷을 처리하지 않는다. 예를 들어 이더넷 인터페이스는 이더넷 프레임 체크섬(FCS)을 처리하고 L2 멀티캐스트 필터링을 수행할 수 있다. 스테이트리스 오프로드 어댑터는 단일 프레임의 상층 프로토콜에 포함된 국부 상태를 기준으로 최적화를 제공한다. 상위 레벨 프로토콜을 기반으로 수행될 수 있는 스테이트리스 오프로드에는 헤더 분할, TCP/IP 체크섬 계산 및 검증이 포함된다.

체크섬과 같은 단순한 오프로드도 시스템 동작에 충돌을 일으킬 수 있다. 예를 들어 이더넷 FCS로 감지하지 못하는 네트워크 오류 근본 원인에 대한 연구 결과, 네트워크 인터페이스 어댑터의 DMA 컨트롤러 등 하드웨어에서 시스템 오류가 발견되었다. 하드웨어에서 체크섬이 검증될 때 그러한 오류로부터 응용 프로그램이 보호되지 않는다. 따라서 복잡한 하드웨어를 채용하거나 문제 해결을 수행할 때 가속 기능을 해제하여 오류의 원인인 가속 기능을 제거해야 한다. 그러나 오프로드와 네트워크 어댑터가 복잡해지기 때문에 그 방법은 적합하지 않을 수 있다.

미래의 오프로드 기술에 있어서 고려해야 할 또 다른 절충 사항은 하드웨어 또는 소프트웨어가 가속 기능을 최대한 수행하는지 여부이다. 이것에 대한 좋은 예가 TCP 세그멘테이션 오프로드(TSO)이다. TSO는 TCP 레이어가 매우 큰 세그먼트(연결의 최대 세그먼트 크기보다 큼)를 스택을 통하여 네트워크 인터페이스로 전달하는 스테이트리스 오프로드이다. 네트워크 인터페이스는 전달된 세그먼트를 여러 패킷으로 분할해야 한다.

이 방법은 네트워크 스택의 패킷 당 소프트웨어 오버헤드를 줄임으로써 성능을 향상시킨다. 세그멘테이션은 보통 네트워크 어댑터가 담당하며, 각 패킷의 헤더를 생성하기 위해 복잡한 반도체 또는 임베디드 프로세서가 필요하다. 또는 Linux 일반 세그멘테이션 오프로드에서 수행되는 것처럼 스택의 최하위 레이어에서 소프트웨어 방식으로도 구현될 수 있다. 근래 측정 결과, 달성되는 성능은 하드웨어의 성능과 구별하기 힘들 정도로 거의 유사하며, 반도체 비용이 들지 않는다.

상태유지 오프로드는 프레임 시퀀스의 상층 프로토콜에 포함된 상태를 기반으로 하는 네트워크 인터페이스 가속 기능이다. TCP가 상위 레벨 프로토콜일 경우 상태유지 오프로드 어댑터를 TCP 오프로드 엔진(TOE)이라고 한다. 네트워크 인터페이스에서 상층 프로토콜을 처리하기 위한 고유한 필요 조건 때문에 상태유지 오프로드는 강력한 임베디드 CPU와 어댑터에서 많은 메모리가 필요하다. 추가적 비용과 전력 소비는 가속의 이점과 비교하여 평가해야 한다.

그리고 또한 TOE에는 호스트 OS로 구현한 것과는 완전히 다른, 완벽하게 구현된 TCP/IP 스택이 포함된다. 이러한 점이 OS 업계에서 관심을 불러 일으키고 있다. 10Gbps TOE의 TCP 적합성 측정 결과 Linux 2.6.9 커널보다 적합성이 낮은 것으로 나타났다.

TOE 공급자가 앞으로 TCP 스택의 품질을 향상시키는 동안 TOE 장치를 배치하려는 통합업체는 마이크로벤치 마크만을 기반으로 하는 시험을 실시하지 않아야 한다. 최종 사용자는 취약성을 수정하고 적합성을 향상시키기 위한 정기적 TOE 드라이버, 펌웨어, 반도체의 업데이트를 예상해야 한다.

하드웨어 기반 가속 기능은 잘 알고 사용해야 한다. 소프트웨어 기반 알고리즘은 보통 무어의 법칙에 따른 마이크로칩의 발전에 따라 성능이 향상된다. 모든 가속 기능은 응용 프로그램 수준 가속 기능의 범위가 마이크로벤치마크의 범위보다 훨씬 작기 때문에 암달(Amdahl)의 법칙에 따른다. 최종 사용자는 상태유지 오프로드 장치를 사용할 때 주의해야 하는데, 그 이유는 OS가 오프로드 될 때 동일한 적합성 또는 성능 수준으로 작동하지 않을 수 있기 때문이다.

게재 : 2007년 07월 16일 Global sources 전자엔지니어