오늘날 시리얼 RapidIO(sRIO)는 모든 분야의 디자이너들이 선호하는 임베디드 연결 방식으로 채택되어 사용되고 있다. 이러한 움직임은 무선 통신 인프라, 특히 베이스밴드에 의해 주도되고 있다. 이는 전세계적으로 주요 OEM들이 시리얼 RapidIO 사양 1.2 및 1.3 버전 기반의 시스템 디자인을 생산 중이라는 사실을 통해 확인할 수 있다.
베이스밴드에서의 표준 sRIO 기능 사용법
글│트레버 하이아트, IDT 플로우 제어관리 사업부 애플리케이션 매니져
감수│IDT 코리아 오순영 이사
오늘날 시리얼 RapidIO(sRIO)는 모든 분야의 디자이너들이 선호하는 임베디드 연결 방식으로 채택되어 사용되고 있다. 이러한 움직임은 무선 통신 인프라, 특히 베이스밴드에 의해 주도되고 있다. 이는 전세계적으로 주요 OEM들이 시리얼 RapidIO 사양 1.2 및 1.3 버전 기반의 시스템 디자인을 생산 중이라는 사실을 통해 확인할 수 있다.
시리얼 RapidIO는 오랫동안 낮은 지연시간, 높은 대역폭, 그리고 높은 신뢰도를 갖는 연결 방식으로 임베디드 구성 시 사용되었다. 오늘날 이러한 디바이스들은 2세대, 3세대 스위치 및 종단 장치(end-point)를 통해 계속해서 발전하고 있다. 최근 디바이스는 선택 사항인 시리얼 RapidIO 확장 사양과 여러 독점기능들을 포함하는 등, 기존 시리얼 RapidIO의 사양을 뛰어넘는 기능을 제공한다. 이 글은 시리얼 RapidIO 표준에 관한 3부작 기술원고 중 첫 번째로, 베이스밴드에서 사용되는 표준 sRIO 기능에 대해 살펴보고, 앞으로 논의 될 스위치 및 데이터 파이프(data pipe) 향상을 위한 전처리 기능 사용에 대한 기반을 마련할 것이다.
sRIO의 이해
시리얼 RapidIO는 스위치 기반의 피어 투 피어(peer to peer) 네트워크를 표준화한다. 실제로 스위치에 대한 기본 요구 사항 및 기능은 각 사양에 대한 표준이다. 시리얼 RapidIO 기반의 스위치는 동종 최고의 지연시간과 처리량은 물론 유연한 네트워크 토폴로지(topology)도 가능하게 해준다. 스위치는 ATCA 또는 microTCA와 같은 표준에서 모듈형(modular)의 유연한 백플레인(back-plane)을 지원할 수 있다.
sRIO 표준은 멀티캐스트 이벤트 제어 심볼(multicast event control symbols)을 사용함으로써 종단 장치를 비롯한 모든 디바이스의 동기화를 가능하게 한다. 호스트는 제어 심볼을 생성하는 한편, 스위치는 이를 최저 지연으로 출력 포트의 모든 목적지에 전달하게 된다. 이러한 기능은 베이스밴드 내에서 프레임 동기화 시 모든 구성 요소를 동기화 할 때 매우 유용하다.
모든 sRIO 기반 디바이스는 최소한의 수신기 제어식 흐름 제어(receiver-controlled flow control)를 제공한다. 이는 디바이스가 하드웨어의 물리계층(physical layer)에 있는 입력 포트에서 패킷 누락 없이 정체 현상을 처리할 수 있게 한다. 모든 트랜잭션(transaction)은 트랜잭션 ID를 통해 추적된다. 전송된 패킷에 대한 응답에도 트랜잭션 ID가 붙는다. 백프레셔(backpressure)와 트랜잭션 완료 모두 물리계층에서 처리되며, 정체 조건에서의 응답 시간 최소화 및 패킷 전달이 보장된다.
이 사양에서는 도어벨 패킷(doorbell packet) 또한 표준이다. 시리얼 RapidIO시스템의 종단장치는 이 패킷을 인터럽트로 사용한다. 베이스밴드에서 DSP는 이 인터럽트를 사용하여 전체 IQ 데이터 블록이 수신되었으며, 따라서 처리 작업이 시작되어야 함을 알린다. 또한 호스트 프로세서는 도어벨을 지정된 시스템 이벤트를 알릴 때 사용할 수도 있다.
베이스밴드 고려 사항
sRIO와 ATCA 표준 모두 모듈 방식을 허용하지만, sRIO의 스위치드아키텍처(switched architecture)는 하드웨어 확장성에 탁월하다. 이러한 유연성을 활용함으로써 OEM은 비용을 절감하고 여러 종류의 무선 표준을 지원할 수 있다. 새롭게 부상하는 아키텍처는 하나의 스위치 보드로 통합된 4개 이상의 디지털 신호 프로세서를 갖춘 여러 개의 베이스밴드 카드(baseband cards) 형태이다(그림 1참조).
그림 1. 스위치 카드 및 BB(baseband)카드를 볼 수 있는 일반적 베이스밴드. 이 구성에서는 백플레인(backplane)에 시리얼 RapidIO가 사용되었다. FIC(Fabric Interface Chip)를 사용하여 CPRI, OBSAI 와 같은 무선 인터페이스 프로토콜(air interface protocol)이나 그 외 인터페이스에 RapidIO 연결이 가능하다.
sRIO 연결을 지원하는 여러 업체들의 최상급 DSP가 상용화되고 있다. 이러한 DSP는 여러 개의 고성능 DMA(Direct Memory Access) 엔진을 활용하여 내부 메모리에서 sRIO 포트로, 또는 그 반대 방향으로 데이터를 전송하며, 많은 경우 포트 처리량을 극대화한다. 대부분의 디바이스에는 여러 개의 디바이스 ID가 할당된다. 따라서 디바이스는 ‘유니캐스트(unicast) ID’로써 고유한 대상으로 지정되거나, DSP가 동일한 ‘멀티캐스트(multicast) ID’로써 구성되는 경우 여러 멀티캐스트 수신자 중 하나가 된다. 또한 일부 DSP는 모든 대상 ID의 패킷을 수신하는 “무차별 모드(promiscuous mode)”를 제공 하기도 한다. 이 유연성은 특정 DSP 대상의 트래픽 제어 및 다수의 DSP에 대한 멀티캐스트인 업링크 데이터(uplink data)를 대상으로 하는 트래픽 제어에 핵심적인 요소이다. 또한 무차별 모드는 라우팅 제한 사항을 완화하기 때문에 복잡한 데이터 경로를 요구하는 시스템에서도 유용하다.
보통 FPGA는 DSP 팜(farm)과 더불어 베이스밴드 보조 처리(co-processing)를 제공하여 초고속 병렬 신호 처리를 가능하게 한다. FPGA는 일반적으로 하나의 sRIO 포트를 갖춘 참조(look-aside) 디바이스로 설정되며, 종종 2개의 sRIO 포트를 사용하여 데이터 경로에 인라인으로 사용되기도 한다. 여러 sRIO 포트와 스위치 패브릭(switch fabric) 구현은 비싼 비용 때문에, 일반적으로 FPGA는 스위칭에 사용되지 않는다.
FPGA는 시스템의 성능이 인라인으로 구현될 시 최적화되도록 시스템 트래픽 조정이 가능한 수준의 물리계층을 제공한다. 이는 수신 프로세서 또는 전처리기에서 적절한 IPG(Inter-Packet Gap) 타이밍을 보장하는 데 필수적이다. sRIO는 앞서 언급된 백프레셔 메커니즘을 지원하지만, 보통의 경우 베이스밴드에 FPGA 소자를 장착 하면 종단 장치 간의 트래픽 조절에 도움이 된다. 이는 트래픽 간격이 일정하게 될 수 있도록 보장한다.
예를 들어, DSP를 위한 기본 데이터 전송 메커니즘이 최대 가능 속도에서 긴 길이의 패킷을 버스트(burst)하는 경향이 있는 DMA라고 가정해 보자. ‘버스트’하는 특성은 수신 종단 장치나 스위치에서 정체 현상을 일으킬 수 있으며, 궁극적으로 DSP에서 트래픽을 재전송하도록 만들기도 한다. 이때, IPG를 일정하게 제공하면 트래픽 성능을 향상시킬 수 있을 뿐 아니라 처리 종단 장치에서 입력 버퍼 오버플로우나 패킷 재시도를 피할 수 있다. IPG는 패킷 간의 유휴 클럭 사이클(idle clock cycles)을 FPGA의 물리계층 IP에 제공해서 제어된다.
시스템 운영 및 유지보수를 수행하며 제어 정보도 제공하는 베이스밴드 카드에서는 최소 하나 이상의 호스트 프로세서가 존재한다. 무선 인프라 가용성에 대한 요구 사항 충족을 위해, sRIO에서는 모든 중재 기능과 함께 듀얼 호스트(dual hosts)를 조건으로 명시하고 있다.
업링크(uplink)의 프레임 지연에 대한 요구 사항을 충족하거나 전역 저장 메모리(global storage memory) 역할을 수행하기 위해, 지속적으로 sRIO의 높은 처리량을 지원하는 대용량 버퍼를 구현도 가능하다. IDT 구현에서 이러한 디바이스가 베이스밴드 보드에 구현되어 있는 예를 들어보자. 이 때, 주어진 플랫폼에서 여러 가지 표준을 지원하기 위해 선택되는 버퍼 구성 요소는 모듈형으로 제작될 수 있다. 요즘 많은 OEM들이 이러한 별도 버퍼의 필요성을 인식하고 있다.
시스템 디자이너들은 종단 장치의 메모리(예: DSP 메모리)를 중앙 저장 공간으로 활용 시, 종단 장치에서 포트 정체(port congestion) 현상으로 이어질 수 있음을 깨달았다. 정체 현상이 만연할 경우, 궁극적으로 종단 장치의 기능에 영향을 미치게 된다. 이러한 병목 현상은 메모리 요구 사항에 대한 부담을 별도 디바이스로 덜어냄으로써 완화된다. 따라서 종단 메모리를 전역적으로 공유하는 것이 적절한지에 대한 판단 시, 종단 장치의 포트 대역폭에 대한 요구 사항을 시스템 디자인 측면에서 신중히 고민 해야 한다.
결론
무선 통신 인프라와 같은 애플리케이션에서 시리얼 RapidIO 표준의 도입이 증가함에 따라 시리얼 RapidIO와 이 표준의 다양한 디자인 고려 사항에 대한 완벽한 이해가 시스템 디자이너의 필수 요건이 되고 있다. 이러한 이해는 특히 고수준의 3세대 애플리케이션을 디자인할 때 유용하다. 뿐만 아니라 시리얼 RapidIO 표준이 적절히 구현 될 시, sRIO 사양을 뛰어 넘는 수준의 구성 가능성(configurability)이 가능하다.