[통신]

임베디드 시스템의 'sRIO 아키텍처'

Neo Park 2013. 6. 10. 14:09

 

임베디드 시스템의 sRIO(Serial RapidIO) 아키텍처
Texas Instruments
 

  첨단 임베디드 애플리케이션은 정교함, 다이렉트 피어-투-피어 통신, 높은 신뢰도, QoS(quality of service), 분배형 프로세싱 토폴로지 및 상호 운영성 등 성능의 요구조건을 필요로 한다. 유연한 고속 IO를 갖춘 고성능 DSP 제품들이 오늘날 애플리케이션의 실시간 요구조건을 충족시키기 위해 필요하다. 임베디드 디바이스는 칩에 업계 표준의 Serial RapidIO(sRIO) 버스 기술이 집적되어, 업계가 필요로 하는 신뢰성, 고대역폭, 높은 버스 속도 등을 만족시키는 고성능 패킷 스위치형 인터커넥트 기술을 제공한다. 개방형의 표준, 고대역폭 및 시스템 레벨 인터커넥트는 스위칭 및 프로세서 어그리게이션(processor aggregation)을 위해 사용되는 추가 디바이스에 대한 필요성을 줄여 시스템 전체 비용을 감소시킨다.

 

 

멀티프로세싱을 위한 필수 조건의 이해
임베디드 시스템은 단일 시스템온칩(SoC) 디바이스에 대한 멀티 프로세싱 요소를 포함한다. 이러한 프로세싱 요소들은 신호 프로세싱, 데이터 프로세싱 및 제어 기능을 포함한 전체 애플리케이션에서 각각 다른 기능을 수행한다. 하나의 보드에 있는 여러 개의 디바이스에서 수많은 개별적인 프로세싱 요소들을 갖춘 시스템도 존재한다. 이러한 디바이스는 데이터와 상태를 공유해 시스템 프로세싱 작업을 완성할 수 있도록 서로 통신해야 한다. 많은 디바이스들은 많은 통신 라인을 갖추게 되고, 이것은 프로세서 사이를 인터커넥트하는 통신을 위한 요구조건을 작동시킨다.

인터커넥트 요구조건은 기능과 비기능의 2가지로 분류된다. 기능 요구조건은 피어-투-피어 통신과 다양한 디바이스 토폴로지 지원 등이 포함된다. 비기능 요구조건들은 낮은 레이턴시, 확장성 높은 대역폭, 신뢰성, 유연성, 효율성(하드웨어 및 소프트웨어 모두와 관련된 성능 조건에서) 등 새롭게 생겨나는 요구조건들을 처리한다. 특히 애플리케이션의 공간에 따라 수많은 시스템 설계 방안이 존재하기 때문에 유연성이 중요하다.

 

 

인터커넥트 문제를 위한 RapidIO
오늘날, 인터네트워킹의 필요성을 피력하는 몇 가지 공통적인 전략이 존재한다:

 

 - 브릿징               : 프로토콜 및 물리적 트랜스레이션을 실행하는 외부 디바이스
 - 유연한 인터페이스: 다중 인터커넥트 및 버스 지원용으로 구성가능한 디바이스
 - 디바이스 버전     : 칩 제조업체, 다양한 인터페이스를 지원하는 맞춤형 디바이스 출시

 

DSP 알고리즘 같은 수많은 멀티 프로세서 알고리즘은 문제를 공유하는 다양한 연산 노드 가운데 대용량의 데이터 세트의 흐름에 의존한다.

 

시스템 인터커넥트에 대한 전송 성능은 종종 전체 시스템 성능을 제한한다.

RapidIO(RIO, www.rapidio.org)는 인터커넥트 문제에 대한 솔루션이다. RapidIO은 임베디드 시스템에서 일반화되고 있는 업계 표준형 고속 스위치 패킷 인터커넥트이며, 인터커넥트 및 통신 모델을 요구하는 애플리케이션의 요건을 지원한다.

RIO의 주요 설계 목표는 시스템 CPU에 가벼운 프로토콜을 제공하고, 소프트웨어의 충격을 제한하며 ‘인사이드-더-박스(inside-the-box)’ 통신에 집중한다. 폭넓게 호환되는 아키텍처는 칩-투-칩 뿐만 아니라 보드-투-보드 통신을 위해 증가된 대역폭에서 신뢰성 높은 고성능, 패킷 스위치형 기술을 제공한다.(그림 1)

 


그림 1. 증가된 대역폭에서 폭넓게 호환되는 RIO 아키텍처

 

백워드 호환성을 유지하면서 확장성과 미래의 기능향상을 구현하기 위해, RapidIO는 물리, 전송, 로직의 3가지 레이어 하드웨어 아키텍처를 갖추고 있다. 특별한 것은, 이를 통해 전송이나 물리층 스펙에 대한 수정 없이 로직 스펙에 새로운 트랜잭션 유형을 추가하는 유연성을 가능하게 한다.

 

물리 레이어는 전기적 신호 및 링크 레벨 핸드쉐이킹 매커니즘일 뿐만 아니라 CRC 기반의 오류 검출이기도 하다. RapidIO은 8비트 혹은 16비트의 폭을 갖춘 병렬식 인터페이스이며, 양 단에서 클록된 데이터를 이용해 250MHz~1GHz에서 동작한다. 전송 레이어는 스위치 환경에서 패킷이 어떻게 라우트되는지 알려준다. RIO는 패킷에서 임베디드된 디바이스 ID를 기반으로 패킷을 라우트 하기위해 목적지 기반의 라우팅을 사용한다. 로직 레이어는 패킷 유형과 기능을 결정하는 가장 높은 단계의 레이어다. RIO는 최고 256바이트 패킷 페이로드를 보유할 수 있다.

 

 

온칩 직렬 RapidIO (sRIO)
RapidIO의 직렬 버전도 있다. 시리얼 RapidIO는 포인트-투-포인트 스위치 직렬 인터커넥트다. sRIO는 병렬식 RapidIO 기술과 물리적으로 호환이 되지 않기 때문에 개발자들은 병렬과 직렬 연결의 정확한 혼합을 선택해야 한다. sRIO를 위한 신호 속도는 다른 전송 및 수신 페어 (레인(lane)으로 불림) 당 1.25, 2.5, 3.125Gbps이다. 이것은 레인당 각 방향에서 최대 312.5MBps를 제공한다. 각각의 sRIO 포트는 포트당 최대 1.25Gbps의 데이터 속도를 제공할 수 있는 1개 혹은 4개의 레인으로 구성되어 있다.

 

sRIO는 멀티프로세싱을 쉽게 지원할 수 있게 하며 다양한 토폴로지를 지원할 수 있는 성능을 갖춘 어그리게이션 로직의 필요성을 제거한다. 예를 들면, 비디오 인프라 애플리케이션에서, 물리 레이어의 데이터 전송은 SERDES(analog serializer/deserializers) 기술을 사용하여 데이터 스트림에서부터 클록 복구를 실행하며 8B/10B 코딩을 통합시킨다. 직렬 스펙은 1레인(1x) 및 4레인(4x) 포트 크기를 지원한다. 1x sRIO 링크는 디바이스 간에 2개 채널 HD 1080i 고화질 비디오를 전송할 수 있을 정도로 빠르다. 4x 링크는 여유 있는 대역폭을 통해 디바이스 간에 HD 1080p 고화질 비디오에 4개 채널을 쉽게 전송할 수 있다.

 

직렬식 아키텍처는 패킷당 256바이트의 최대 페이로드를 제공하며 PCI 익스프레스나 병렬식 RIO와 같이 다른 인터커넥트에 대한 확장성을 제공하지 않는다. 예를 들어, 컴퓨터에서, PCI 버스는 시스템에 여러 개의 디스크 채널을 연결하기 위해 사용된다. 디스크의 처리량이 증가함에 따라, 더 높은 버스 주파수에 도달할 수 있도록 많은 시스템 처리량에 대한 필요성도 증가한다. 이것은 버스 세그먼트당 지원 가능한 디바이스의 개수를 줄인다. 그러나 동일한 개수의 디바이스를 연결하기 위해, 더 많은 버스 세그먼트가 필요하다. PCI-투-PCI 브릿지 디바이스는 이같은 문제를 해결하기 위해 사용될 수 있으나, 시스템 레이턴시 및 비용을 증가시키는 트리 유형의 계층 내에서 더욱 많은 PCI 디바이스들이 시스템에 부가된다. 대신, 더 높은 시스템 레벨 성능은 RapidIO를 사용함으로써 달성될 수 있다. RIO의 포인트-투-포인트 토폴로지는 이웃해 있는 디바이스나 서브시스템에 전기적 영향이 거의 없이, 혹은 전혀 영향을 미치지 않고 디바이스를 제거할 수 있다.

 

임베디드 애플리케이션에서 RIO 및 sRIO의 사용이 증가되는 예로, TI의 TMS320C6455 DSP 디바이스(그림 2)는 sRIO 버스 인터페이스를 지원한다. 이 인터페이스는 비디오 및 음성 트랜스코딩, 비디오컨퍼런싱 서버, HD 비디오 인코딩 및 무선 기지국 트랜시버와 같은 하이엔드 멀티 채널 애플리케이션에서 성능과 I/O 대역폭을 향상시킨다. 시스템 성능은 최대 12배까지 증가될 수 있다. sRIO가 낮은 레이턴시, 고대역폭(10Gbps 풀 듀플렉스), 낮은 핀수 인터커넥트를 제공함으로써 IO 병목현상을 제거하기 때문이다. 온 보드 sRIO는 써드 파티 툴, FPGA, sRIO 스위치 및 sRIO 장착형 임베디드 프로세서에 통신 연결성을 제공한다.

 

그림 2. C6455 DSP를 지원하는 sRIO 버스 인터페이스

 

소프트웨어와 인프라
sRIO로 제공되는 성능 이외에도, 소프트웨어 개발자는 수많은 낮은 레벨의 디바이스 프로그래밍을 수행할 필요없이 애플리케이션을 개발할 수 있다. 여러 임베디드 프로세서 공급업체들은 커넬 레벨 소프트웨어 레이어에서 sRIO 전용 지원을 제공한다. 예를 들어, TI의 RTOS와 DSP/BIOS 소프트웨어 커넬 기반은 “sRIO Message Queue API”를 가지며, 이를 통해 애플리케이션 개발자들은 더 높은 레벨의 추상화 단계에서 발전된 소프트웨어 애플리케이션을 개발할 수 있다.

 

대규모 “DSP Farms”을 이용한 인프라 애플리케이션에서 sRIO의 사용은 디바이스 수, 보드 크기 및 디바이스 비용의 관점에서 시스템 비용을 절감시켜 줄 것이다. 예를 들어, 임베디드 시스템 개발은 DMA (Direct Memory Access)의 사용 증가 뿐만 아니라 더욱 높은 속도에서 데이터를 이동시킬 수 있는 스마트 주변기기를 포함한다. 전류 멀티 드롭 인터커넥트는 전체 시스템 비용을 증가시키는 많은 신호/핀 및 커넥트 등을 이용하지 않고서는 필수적인 대역폭을 지원할 수 없다. DSP Farms을 탑재한 sRIO는 비용에 영향을 주지 않으면서 이러한 문제들을 해결한다.

 

서로 다른 애플리케이션이 또 다른 시스템 토폴로지를 요구할 수 있기 때문에, sRIO는 시스템 개발자가 링(ring) 및 메시(mesh) 토폴로지 모두에서 sRIO 기반 네트워크로 배열할 수 있도록 유연성이 높다. sRIO는 방송 라우팅 방식 대신 소스 라우팅을 사용하기 때문에, 토폴로지에서 송신자와 수신자 간의 경로만이 실제로 트랜잭션에 부담된다. 이것은 동시에 통신할 수 있는 시스템에서 다른 DSP 기기를 위해 토폴로지에서 이용할 수 있도록 더욱 많은 대역폭을 남긴다. 또한, 다중 프로세싱 요소들은 또 다른 하나, ASIC, FPGA에 로컬 연결을 하던, 하지 않던 간에 스위치를 통해 연결될 수 있다. 다중 프로세싱 요소들은 스타 토폴로지(5개의 DSP는 그림 3에서 다른 DSP에 모두 연결)에 연결될 수 있다.

 


그림 3. 스타 토폴로지에 연결 가능한 다중 프로세싱 요소

 

마지막으로, 상호운영성 작업은 애플리케이션에서 RapidIO 기술 기반의 시스템 개발을 더욱 쉽게 도와주는 중요한 초석이 될 것이다. 상호운영성 테스트는 트레이드 어소시에이션의 RapidIO 인터커넥트 스펙 디바이스의 상호운영성 및 컴플라이언스 체크리스트에 기반한다. 또한 엔지니어가 멀티 프로세싱, 멀티 채널 신호 프로세싱 솔루션을 개발할 수 있도록 개발되었다. 예를 들어, 디바이스 상호운영성 테스트의 1단계는 “디바이스 A”가 “디바이스 B”를 이용하여 주어진 테스트를 통과하는 것이 검증되도록 보장한다. sRIO 개발 시스템은 보드 설계에 영향을 주기 전에 sRIO 시스템을 평가하고 프로토타입 할 수 있다. 따라서, 모든 핵심적인 시스템 요소들은 설계자들이 sRIO 시스템을 구축할 수 있도록 한다.

 

 

 

첨부파일 : SRIO.pdf

 

참조 : http://www.ti.com/ww/kr/article/08jan_num03.html

SRIO.pdf
0.36MB