• ADAS
  • SDN
  • video
무선 애플리케이션: 징크(Zynq) 올 프로그래머블 SoC를 위한 OS 고찰
무선 애플리케이션: 징크(Zynq) 올 프로그래머블 SoC를 위한 OS 고찰
2015-01-01
글 / 유안 구 (Yuan Gu)

무선 데이터 처리량이 폭발적으로 증가하면서, 디지털 시그널 프로세싱 기술 및 무선(Radio) 장비에 대한 개선요구가 갈수록 높아지고 있다. 현재 주력은 4G LTE이다. 4G 네트워크는 전세계에 걸쳐 대대적으로 확산되고 있다. 또한 4G 네트워크에 비해 데이터 처리량이 1천배를 넘어설 것으로 예상되는 5G 네트워크에 대한 초기 연구 및 개발작업도 이미 시작되었다. 이러한 최신 기술의 개발은 시스템 벤더들에게 보다 향상된 시스템 통합 및 보다 높은 시스템 성능, 낮은 시스템 BOM 비용, 보다 뛰어난 디자인 유연성, 보다 빠른 시장출시 시간 등과 같은 새롭게 진화된 요건을 제기하고 있다. 

전통적인 ASIC 기반 디바이스는 전력 및 비용 목표에 부합하는 하드웨어 솔루션을 지원할 수 있지만, 매우 높은 NRE 비용 및 유연성 부족, 매우 느린 시장출시 시간 등으로 인해 어려움이 수반된다. 이러한 모든 요건에 부합하고, 필요한 과제들을 해결하기 위해 자일링스(Xilinx)는 업계에 올 프로그래머블 SoC(APSoC; All Programmable SoC) 아키텍처를 선보였으며, 성공적으로 징크-7000(Zynq-7000) 제품군을 구현했다. 

자일링스의 APSoC 아키텍처에 기반한 징크-7000 디바이스는 하드웨어 및 소프트웨어, I/O 프로그래머빌리티를 통해 상당한 수준의 시스템 레벨의 차별화 및 통합, 유연성을 달성했다.(그림 1 참조) 지난 2011년 12월에 발표된 이후, 징크-7000 디바이스는 통신 및 데이터 센터, 오토모티브, 산업 및 우주항공, 방위 분야 등 다양한 마켓에 적용되고 있다. 통신 마켓의 경우, 특히 무선 애플리케이션에서 징크-7000은 독보적인 혜택을 제공하고 있다. 통합 프로그래머블 로직(PL; Programmable Logic)은 디지털 시그널 프로세싱을 위해 고도로 최적화되어 있고, ARM Cortex A9 기반 프로세싱 서브시스템(PS; Processing Subsystem)은 원격 무선(Radio) 및 무선 백홀 장치와 같은 전형적인 무선 장비의 제어 기능을 매우 효과적으로 구현할 수 있도록 해준다.

 
[그림 1] 징크-7000 올 프로그래머블 SoC 아키텍처

징크 APSoC 디바이스를 기반으로 무선 애플리케이션을 구현할 때, 애플리케이션 요건에 부합하는 운영 시스템을 선택해야 한다. 이를 위해서는 각기 다른 무선 애플리케이션과 관련된 여러 핵심 요인들을 고려해야 한다. 
1.    캐리어급의 운영성: 시스템 안정성(99.999%)은 캐리어 등급 시스템에서 요구되는 가장 보편적인 요건이다. 이는 장치에 필요한 가동시간을 정의하며, 운영 중에는 cold/warm 재시동, 오류 모니터링 및 검출, 처리, 그리고 리던던시와 같은 시스템 기능을 지원하게 된다.

2.    실시간 프로세싱: 실시간은 예측 가능한 반응 시간을 말하며, 단지 빠른 것을 의미하는 것은 아니다. 원격 무선(Radio)은 무선 백홀 프로세싱과 비교해 각기 다른 실시간 요건을 가지고 있다. 무선 장비는 시그널 프로세싱 부담이 크기 때문에 시그널 프로세싱을 지원하는 프로세서는 반드시 엄격한 타이밍 규격에 부합해야 한다.

3.    진단: 현장 진단 및 사후 분석을 지원하기 위해서는, 상당한 규모의 성능 측정 및 로그(Logs)가 수집되고 저장되어야 한다. 이를 통해 성능 측정 및 통계, CPU 활용도 및 오류 모니터링, OS 작업 전환(Task Switching) 및 이벤트 히스토리 등과 같은 무선 애플리케이션에서 중요한 여러 핵심 지표들을 추적하거나 관리할 수 있다. 

4.    툴 및 프로토콜 통합: 디버그 및 진단 환경과 일부 OS 벤더들이 제공하는 특정 네트워크 프로토콜 스택을 포괄적으로 통합함으로써 디자이너들은 효율적인 시스템을 개발하고 관리하는데 활용할 수 있다. 

징크 SoC는 2개의 ARM Cortex A9 코어를 통합하고 있다. 소프트웨어 설계자는 지원되는 멀티-프로세서 아키텍처, 즉 SMP(Symmetric Multi-Processing) 또는 AMP(Asymmetric Multi-Processing) 중에 선택해야 한다. 그림 2에 나타낸 것처럼, SMP는 2개 이상의 동일한 프로세서가 단일 OS 인스턴스(Instance) 구동으로 리소스를 공유한다. 이론상으로 이 아키텍처는 모든 프로세서를 단일 OS 인스턴스로 동일하게 처리한다. 이와 반대로, AMP 아키텍처는 OS 인스턴스를 사용하거나 사용하지 않는 등 프로세서를 따로따로 처리하며, 서로 인식하지 못한다. OS가 구동하지 않는 코어는 ‘베어 메탈(Bare Metal)’ 인스턴스처럼 간주되는 하나의 마이크로 코드로 실행된다. 

일반적으로, SMP는 하이-레벨 애플리케이션에 통일된 단일 OS 플랫폼을 제공한다. 소프트웨어 설계자는 OS 상에 애플리케이션을 구현할 때, 2개의 코어 및 프로세스간 통신 사이의 리소스 공유를 고려하지 않아도 된다. 반면 SMP에는 성능 오버헤드가 있는데, 이는 타이밍이 중요한 무선 애플리케이션의 성능을 영향을 줄 수 있다. SMP와 AMP를 비교해보면, AMP의 OS 인스터스로 구현된 간단한 소프트웨어는 전혀 오버헤드가 없지만, 공유된 프로세스 리소스 및 프로세서간 통신을 위해 매우 세밀한 커스텀 소프트웨어 디자인이 필요하다. 

 
[그림 2] SMP와 AMP 비교

무선(Radio) 및 무선 백홀과 같은 여러 핵심 무선 애플리케이션은 하나의 징크 APSoC 디바이스를 통해 매우 효율적으로 구현이 가능하다. 각각의 무선 애플리케이션은 각기 다른 성능 요건을 가지고 있으며, 서로 다른 기능을 지원하는 OS가 필요하다. 징크 디바이스는 모든 디지털 프론트 엔드 프로세싱을 아우르는 완벽하게 통합된 하드웨어 및 소프트웨어 솔루션을 구현하는데 사용될 수 있다는 점에서 무선 애플리케이션은 좋은 사례가 될 수 있다. 

무선 디지털 프론트 엔드 애플리케이션은 4G 무선 네트워크에서 일반적으로 사용되는 RRH(Remote Radio Head)의 중요한 부분이다. 이에 대한 프로세싱 요건은 시그널 프로세싱 및 제어 프로세싱으로 각기 분리될 수 있다. 시그널 프로세싱 도메인에서 징크 디바이스는 디지털 업/다운(Up-and-Down) 컨버전 및 CFR(Crest Factor Reduction), DPD(Digital Pre-Distortion)을 위한 높은 샘플링 속도의 필터를 구현하는데 사용될 수 있다. DPD는 특별한 경우인데, 징크 PS와 징크 PL을 모두 활용해야 한다.

DPD 프로세싱은 고속 데이터 경로나 업데이트 경로로 구분할 수 있다. 업데이트 경로는 주기적으로 필터 뱅크 계수를 업데이트하는데 사용되며, ARM Cortex A9 코어에 구현하는 것이 적합하다. 일반적으로 계수 업데이트는 각각 10ms 내에 완료되어야 한다. 산술 연산의 복잡성 때문에 A9 코어 및 임베드 NEON SIMD 벡터 컴퓨팅 유닛을 필요한 고성능에 부합하기 위해 사용할 수 있다. 또한 징크 PL은 집중적인 프로세서 클럭 사이클 기능에 대한 하드웨어 가속을 지원할 수 있기 때문에 징크 PL과 ARM A9 코어, NEON 코프로세서를 모두 조합하여 함께 사용할 수 있다. 

무선 제어 프로세싱 부분은 일반적으로 네트워크에서 초기 무선 측정 및 컨피규레이션, 경보, 스케쥴링, 메시지 착신 등에 사용된다. 이는 무선 애플리케이션에서 일반적으로 높은 성능은 아니기 때문에 징크의 단일 ARM A9 코어로 쉽게 처리할 수 있다. 

DPD 애플리케이션과 제어 프로세싱 애플리케이션을 모두 지원하는 적절한 아키텍처를 선택하는 것은 전반적인 성능과 안정성, 관리의 편의성을 결정하기 때문에 매우 중요하다. 

무선 라디오 애플리케이션에 일반적으로 사용되는 아키텍처는 AMP 모드이다. 이는 베어 메탈 모드로 구동할 때 모든 ARM 코어를 DPD 프로세싱을 위해 할당하게 되며, DPD 계수 업데이트 타이밍 요건에 부합하도록 더 많은 컴퓨팅 헤드룸을 제공한다. 제어 및 OAM과 같은 다른 모든 애플리케이션은 OS로 제어되는 두 번째 ARM A9 코어로 구동된다. 이 아키텍처는 OS가 2개의 AMR 코어 중 하나만 제어하기 때문에, 프로세서 간 채널은 OCM(On Chip Memory) 또는 공유 메모리를 이용하는 것처럼 2개의 분리된 코어로 애플리케이션 사이에 구현되어야 한다. 이는 DPD 모듈 상태 모니터링 애플리케이션처럼 일부 핵심 제어 애플리케이션에서 특히 중요하다. 이러한 IPC(Inter-Process Communication) 솔루션은 표준이 없으며, AMP 모드에서 별도로 개발해야 한다.

SMP 아키텍처는 두 개의 ARM 코어를 제어하는 단일 OS 인스턴스를 갖춘 매우 간단한 구조이기 때문에 모든 애플리케이션에 적합하다. IPC와 디버깅, 지원 툴 체인은 모두 동일한 OS 상에 놓여 있다. 리소스를 DPD 애플리케이션에 모두 할당시키기 위해 Core Affinity 및 인터럽트 쉴딩(Interrupt Shielding)과 같은 특정 기법을 소프트웨어 애플리케이션에 적용할 수 있다. 전자의 경우, DPD 애플리케이션은 하나의 코어에서만 동작하게 되며, 잠재적으로는 다른 작업과 리소스를 공유하지 않는다.(OS 스케쥴러 오버헤드 외에) 후자의 경우, 인터럽트 서비스(DPD 애플리케이션으로 트리거되는 것 이외에)는 두 번째 코어에 해당된다. 따라서 리소스는 DPD 애플리케이션으로 모두 활용된다. 

따라서 징크 APSoC는 AMP 또는 SMP 아키텍처를 지원하는 이상적인 플랫폼이다. 그림 3에 나타낸 것처럼, 징크는 2개의 ARM 코어 프로세서와 12.5Gb/s SerDes, 500MHz+ DSP를 보다 안정적으로 통합하고 있으며, DPD, CFR, DUC/DDC, CPRI/JESD 인터페이스와 같은 모든 디지털 프론트 엔드 기능을 제공한다. 이 솔루션은 프로세서 및 독립된 FPGA 간의 인터페이스가 필요하지 않아, PCB 디자인을 간소화해 준다. 

디스크리트 멀티-칩 솔루션에서 징크 플랫폼 기반의 단일 칩 통합 솔루션으로의 마이그레이션은 매우 간단하다. 자일링스는 포괄적인 하드웨어 및 소프트웨어 솔루션을 제공함으로써 원활하게 징크 디바이스로 마이그레이션할 수 있도록 해준다. 이러한 솔루션에는 DUC, DDC, CFR, DPD를 위한 디지털 시그널 프로세싱 IP 라이브러리도 포함되어 있다. 또한 디바이스 드라이버 및 부트 로더, BSP 탬플릿, 범용 툴을 비롯해 다중 OS 솔루션이 지원된다. 이 솔루션은 징크 플랫폼으로 성공적으로 마이그레이션함으로써 시스템을 성능을 향상시키고, 전체 전력소모를 줄이고, BOM 비용을 절감할 수 있도록 해준다.

 
[그림 3] 디스크리트 솔루션에서 징크 솔루션으로의 마이그레이션

이 글에서 우리는 무선 애플리케이션을 위한 운영 시스템을 선택할 때 고려해야 할 핵심 사항들을 비롯해 구현 아키텍처 및 이에 대한(AMP와 SMP 비교) 고려사항, 자일링스 징크 7000 디바이스에 적합한 애플리케이션에 대해 살펴보았다. 결론적으로, 자일링스의 이러한 첨단 디바이스는 인프라 장비 디자이너들이 성능을 향상시키고, 시스템 집적도를 높이고, 총 BOM 비용은 낮추고, 전체 전력소모는 줄이고, 높은 안정성 및 시장 출시시기를 단축할 수 있도록 해주며, 또한 소프트웨어 및 하드웨어 모두 완벽한 프로그래머빌티를 갖출 수 있도록 해준다. 디자이너는 이제 장비를 보다 신속하게 개발하는 것은 물론, 장비가 구축된 이후에도 오랫동안 필드에서 업데이트를 지속할 수 있으며, ASSP나 ASIC과 같은 디바이스와 관련된 위험요소들을 제거할 수 있다. 

적용분야 :
Wireless Communications
관련제품 :
ZYNQ