성공적인 실시간 음향 처리 구현을 위한 선택: SoC vs. DSP

글: 데이비드 카츠(David Katz) 인포테인먼트 시스템 아키텍처 디렉터 / 아나로그디바이스(Analog Devices, Inc.)


저지연(low latency) 실시간 음향 처리는 음성 전처리, 음성 인식 및 액티브 노이즈 캔슬링(active noise canceling, ANC)를 비롯해 많은 임베디드 프로세싱 애플리케이션에서 핵심 요소이다. 이러한 애플리케이션 분야에서 실시간 성능에 대한 요구사항이 꾸준히 증가함에 따라, 개발자는 이러한 요건들을 적절히 수용할 수 있도록 전략적 사고를 갖출 필요가 있다. 많은 대형 시스템온칩(SoC)이 제공하는 엄청난 성능을 감안하면, 새롭게 추가되는 작업들을 이들 디바이스에 부담시키고 싶을 수도 있지만, 지연과 균일성(determinism)은 신중하게 고려하지 않을 경우 실시간 시스템에서 중대한 문제로 이어질 수 있다는 점을 잘 이해할 필요가 있다. 이 글에서는 설계자가 실시간 음향 시스템 설계에서 원치 않는 문제들과 맞닥뜨리고 싶지 않다면 SoC와 전용 오디오 DSP 중에서 하나의 솔루션을 선택해야 할 때 고려할 점들에 대해 알아본다.

저지연 음향 시스템은 광범위한 애플리케이션을 포괄한다. 일례로 자동차 분야만 해도, 독립 음장(personal audio zone, PAZ), 노면 소음 제거(road noise cancellation, RNC), 차량 내 통신 시스템 등에서 저지연 특성은 매우 중요하다. 차량의 전동화가 새로운 추세로 떠오름에 따라 소음이 발생하는 내연 기관이 없어지면서 RNC는 점점 더 중요해지고 있다. 차량이 도로와 맞닿으면서 발생하는 소리는 훨씬 더 크고 자극적으로 들릴 수 있다. 이러한 소음을 줄일 경우 주행 경험은 더 편안해지고 운전자의 피로도 역시 줄어든다. 저지연 음향 시스템을 SoC에서 구현할 경우, 전용 오디오 DSP와는 달리 많은 어려움을 겪게 된다. 여기에는 지연, 확장성, 업그레이드 가능성, 알고리즘 고려사항, 하드웨어 가속 및 고객 지원 문제 등이 포함된다. 이들을 하나씩 살펴보기로 한다.


지연

실시간 음향 처리 시스템에서 지연 문제는 매우 중요하다. 프로세서가 시스템의 실시간 데이터 이동과 계산 요구를 따라가지 못하면 음 손실 또는 음 튐 이라는 허용할 수 없는 상황이 발생할 수 있다.

SoC는 보통 용량이 작은 온칩 SRAM을 내장하므로 대부분의 로컬 메모리 액세스는 캐시에 의존해야 한다. 이는 코드와 데이터의 비결정적 이용을 초래하고 처리 지연을 증가시킨다. ANC 같은 실시간 애플리케이션에서는 이러한 상황만으로도 정상적인 처리가 불가능할 수 있다. 게다가 SoC는 무거운 멀티태스킹 부하를 관리하는 비실시간 운영체제도 실행한다. 이는 시스템의 비결정적 동작 특성을 증폭시켜 멀티태스킹 환경에서 상대적으로 복잡한 음향 처리 지원을 매우 어렵게 만든다.

그림 1은 실시간 오디오 처리 부하를 실행하는 SoC의 구체적인 사례를 나타낸 것이다. 더 높은 우선순위의 SoC 작업이 처리될 때 CPU 부하가 치솟는다. 이러한 스파이크는 예컨대 시스템에서 실행되는 미디어 렌더링, 검색 또는 앱 실행과 같은 SoC 중심 활동 때문에 발생할 수 있다. 스파이크가 100% CPU 부하를 넘을 때마다 SoC는 더 이상 실시간으로 동작하지 못하며, 이로 인해 음 손실이 발생한다.

 Instantaneous CPU loads for a representative SoC

그림 1. 다른 작업 외에도 높은 오디오 메모리 처리를 실행하는 대표적인 SoC의 순간 CPU 부하1

반면, 오디오 DSP는 샘플링된 오디오 입력에서 컴포지트(오디오 + 노이즈 제거 등) 스피커 출력까지 신호 처리 경로 전체에서 낮은 지연을 달성하도록 설계된다. L1 명령어 및 데이터 SRAM은 프로세서 코어에 가장 가까운 단일 사이클 메모리로, 중간 데이터를 오프칩 메모리에 넘기지 않고도 많은 프로세싱 알고리즘을 지원하기에 충분하다. 또한 코어로부터 떨어져 있지만 오프칩 DRAM보다 여전히 훨씬 빠른 액세스가 가능한 온칩 L2 메모리는 L1 SRAM 스토리지를 초과할 때 중간 데이터 동작을 위한 버퍼를 제공하도록 도와준다. 마지막으로 오디오 DSP는 입력 데이터를 처리하여 새로운 입력 데이터가 도착하기 전에 대상 목적지에 전송할 수 있게 하는 실시간 운영체제(RTOS)를 실행함으로써 실시간 동작 중에 데이터 버퍼가 넘치지 않도록 보장한다.

시스템 부팅 시 실제 지연(종종 오디오 재생까지 걸리는 시간으로 측정)은 특히 시동할 때 특정 윈도우 내에 청각적인 경고를 보내야 하는 자동차 시스템에서 중요한 지표이다. 보통 전체 디바이스의 운영체제를 불러와야 하는 긴 부트 시퀀스를 갖는 SoC 세계에서 스타트업 요구사항을 만족하기는 어렵거나 불가능할 수 있다. 반면에 다른 외부 시스템 우선순위의 영향을 받지 않는 자체 RTOS를 실행하는 독립형 오디오 DSP는 오디오 재생까지 시간 요구사항을 안정적으로 만족하는 빠른 부팅에 최적화할 수 있다.


확장성

소음 제어 같은 애플리케이션에서는 지연 시간이 SoC와 관련한 문제일 수 있지만, 음향 처리를 위한 SoC의 또 다른 주요 단점은 확장성에 있다. 다시 말해 많은 이질적인 하위 시스템들로 구성된 대형 시스템(자동차 헤드엔드 장치, 클러스터 등)을 제어하는 SoC는 각 하위 시스템 구성요소의 확장성 요구 간에 끊임없는 충돌이 존재하므로 로우엔드 오디오 요건에서 하이엔드 오디오 요건으로 쉽게 확장할 수 없으며, SoC 사용 전반에 걸쳐 절충이 필요하다. 예를 들어 헤드엔드 SoC가 원격 튜너에 연결되고, 자동차 모델 전체에 해당 튜너를 몇 개의 채널에서 많은 채널로 확장해야 한다면, 각 채널 구성은 앞에서 언급한 실시간 문제를 증폭시킨다. 이는 SoC가 제어하는 각각의 추가 기능이 SoC의 실시간 동작을 제한하고, 여러 기능에서 사용하는 주요 아키텍처 구성요소의 자원 가용성을 바꾸기 때문이다. 이러한 자원에는 메모리 대역폭, 프로세서 코어 사이클 및 시스템 버스 패브릭 중재 슬롯과 같은 측면이 포함된다.

멀티태스킹 SoC에 연결되는 다른 하위 시스템에 대한 문제와는 별도로, 음향 하위 시스템 자체에도 확장성 문제가 있다. 이를 테면 로우엔드에서 하이엔드로 확장(예: ANC 애플리케이션에서 마이크로폰 및 스피커 채널 수 증가)이 있으며, 기본 오디오 디코딩과 스테레오 재생에서부터 3D 가상화 및 기타 프리미엄 기능에 이르기까지 오디오 경험의 확장도 있다. 이러한 요구사항들이 ANC 시스템의 실시간 제약을 공유하지는 않지만, 그럼에도 시스템의 오디오 프로세서 선택과 직접적인 관련이 있다.

SoC에 대한 보조 프로세서로서 별도의 오디오 DSP를 활용하는 것은 오디오 확장성 문제에 대한 완벽한 해결책이며, 모듈식 시스템 설계와 비용에 최적화된 솔루션을 가능하게 한다. SoC는 더 큰 시스템의 실시간 음향 처리 요구에 훨씬 덜 집중하면서, 대신 그러한 처리를 저지연 오디오 DSP에 넘길 수 있다. 또한 포괄적인 코드 호환 및 핀 호환 로드맵을 통해 여러 가지 다양한 가격/성능/메모리 수준을 제공하는 오디오 DSP는 시스템 설계자에게 특정 제품 계층에 오디오 성능을 적절하게 제공할 수 있는 유연성을 극대화한다.

ADSP-2156x DSP, illustrative of a highly scalable audio processor

그림 2. 확장성이 뛰어난 오디오 프로세서를 보여주는 ADSP-2156x DSP


업그레이드 가능성

오늘날의 차량에 무선 펌웨어 업데이트가 흔히 적용되면서 중요한 패치를 발행하거나 새로운 기능을 제공하는 업그레이드 가능성이 점점 더 중요해지고 있다. 그러나 이러한 업그레이드 제공은 다양한 하위 시스템 사이에서 종속성을 증가시켜 SoC에 중대한 문제를 일으킬 수 있다. 첫째, SoC에서 여러 프로세싱 및 데이터 이동 스레드가 자원을 놓고 경쟁한다. 이는 새로운 기능이 추가될 때, 특히 활동이 급증하는 동안 프로세서 MIPS와 메모리에 대한 경쟁을 증가시킨다. 오디오 관점에서 볼 때 다른 SoC 제어 영역에서 기능 추가는 실시간 음향 성능에 예측할 수 없는 영향을 미칠 수 있다. 이러한 상황에 수반하는 한 가지 부정적 효과는 새로운 기능을 모든 동작 측면에서 교차 테스트해야 하므로 경쟁 하위 시스템의 다양한 동작 모드 간에 무수한 경우의 수가 발생한다는 점이다. 따라서 각 업그레이드 패키지마다 소프트웨어 검증이 기하급수적으로 증가한다.

다른 각도에서 보면 SoC의 오디오 성능 향상은 해당 SoC가 제어하는 다른 하위 시스템의 기능 로드맵과 함께 사용 가능한 SoC MIPS에 달려 있다고 말할 수 있다.


알고리즘 개발과 성능

실시간 음향 알고리즘 개발에 있어서 분명한 것은 오디오 DSP는 바로 이러한 작업을 위해 만들어졌다는 점이다. SoC와 중요한 차이점으로 독립형 오디오 DSP는 최소의 DSP 코딩 경험을 가진 엔지니어도 설계에 고품질 음향 처리를 추가할 수 있는 그래픽 개발 환경을 제공한다. 이러한 도구는 품질이나 성능을 저하시키지 않으면서 개발 시간을 단축하여 개발 비용을 낮춰준다.

예를 들어 ADI의 SigmaStudio® 그래픽 오디오 개발 환경은 직관적 그래픽 사용자 인터페이스(GUI)로 통합된 다양한 신호 처리 알고리즘을 제공하므로 복잡한 오디오 신호 흐름을 생성할 수 있다. SigmaStudio는 또한 오디오 전송을 위한 그래픽 A2B 구성을 지원하여 실시간 음향 시스템을 빠르게 개발하도록 도와준다.


오디오 친화적 하드웨어 기능

효율적인 병렬 부동 소수점 계산과 데이터 액세스를 위해 특별히 설계된 프로세서 코어 아키텍처 외에도, 오디오 DSP는 종종 고속 푸리에 변환(FFT), 유한 및 무한 임펄스 응답(FIR 및 IIR) 필터링, 비동기 샘플 레이트 변환(ASRC)과 같은 일반적인 오디오 기본 요소를 위한 전용 다중 채널 가속기를 포함한다. 따라서 이러한 기능을 통해 코어 CPU 외부에서 실시간 오디오 필터링, 샘플링 및 주파수 영역 변환이 가능해 코어 성능을 높일 수 있다. 또한 최적화된 아키텍처와 데이터 흐름 관리 기능으로 유연하고 사용자 친화적인 프로그래밍 모델을 쉽게 개발할 수 있다.

오디오 채널 수와 필터 스트림, 샘플링 속도 등이 급증하고 있기 때문에 인라인 샘플 레이트 변환, 정밀 클러킹 및 동기식 고속 직렬 포트를 이용해 데이터를 효율적으로 라우팅하고 추가 지연이나 외부 인터페이스 로직을 피할 수 있게 하는 구성 가능성을 극대화 한 핀 인터페이스를 갖는 것이 중요하다. ADI의 SHARC ® 프로세서 제품군의 디지털 오디오 인터커넥트(DAI)는 이러한 기능을 잘 보여준다(그림 4 참조).

Analog Devices’ SigmaStudio graphical development environment

그림 3. 아나로그디바이스의 SigmaStudio 그래픽 개발 환경

Digital audio interconnect (DAI) block diagram

그림 4. 디지털 오디오 인터커넥트(DAI) 블록 다이어그램.


고객 지원

임베디드 프로세서를 사용하여 개발할 때 흔히 간과되는 측면 중 하나는 디바이스에 대한 고객 지원이다.

SoC 공급회사는 통합 DSP 제품에 음향 알고리즘을 실행하도록 권장하지만, 여기에는 실제로 몇 가지 문제가 따른다. 우선, 음향 전문지식이 일반적으로 SoC 애플리케이션 개발 영역이 아니기 때문에 공급회사의 지원은 종종 더 복잡하다. 그 결과, SoC의 온칩 DSP 기술로 자체적인 음향 알고리즘을 개발하고자 하는 고객에 대한 지원이 약한 경향이 있다. 오히려 공급회사는 표준 알고리즘을 제공하고 1개 이상의 SoC 코어에 음향 알고리즘을 이식하는 데 상당한 NRE를 청구할 수 있다. 이 경우에도 특히 공급회사가 성숙한 저지연 프레임워크 소프트웨어를 제공하지 않으면 성공을 보장할 수 없다. 마지막으로, SoC 기반 음향 처리를 위한 써드파티 생태계는 SoC 중심이 아니며 오히려 기회에 따라 지원되는 기능에 초점을 맞추기 때문에 다소 취약한 편이다.

분명한 점은 특별히 제작된 오디오 DSP가 최적화된 알고리즘 라이브러리 및 장치 드라이버에서부터 실시간 운영체제, 사용하기 쉬운 개발 도구에 이르기까지 복잡한 음향 시스템 개발을 위한 훨씬 강력한 생태계를 제공한다는 것이다. 또한 제품 출시 기간을 단축시켜주는 오디오 중심의 레퍼런스 플랫폼(그림 5에서 보는 ADI의 SHARC 오디오 모듈 플랫폼 등)은 SoC에는 드물지만 독립형 오디오 DSP 분야에서는 매우 일반적이다.

SHARC audio module (SAM) development platform

그림 5. SHARC 오디오 모듈(SAM) 개발 플랫폼

요약하면, 실시간 음향 시스템 설계 작업은 시스템 자원에 대한 신중하고 전략적인 계획을 포함하며, 멀티태스킹 SoC에 남은 프로세싱 헤드룸을 할당하는 것으로는 단순히 관리할 수 없다. 반면 저지연 처리에 최적화된 독립형 오디오 DSP는 견고성을 높이고, 개발 시간을 단축할 뿐 아니라 미래의 시스템 요구와 성능 계층을 수용할 수 있는 최적의 확장성을 제공할 수 있다.


참고문헌

1Paul Beckmann. “Multicore SOC Processors: Performance, Analysis, and Optimization.” 2017 AES International Conference on Automotive Audio, August 2017.


저자 소개

데이비드 카츠(David Katz)는 아날로그, 디지털 및 임베디드 시스템 설계 분야에서 30여 년의 경험을 쌓아왔으며, 아나로그디바이스의 자동차 인포테인먼트 시스템 아키텍처 디렉터이다. 전 세계에 100개에 가까운 임베디드 프로세싱 원고를 발표했으며, 현장에서 여러 컨퍼런스 논문을 발표했다. 이전에는 모토롤라에서 케이블 모뎀 및 공장 자동화 그룹의 수석 설계 엔지니어로 근무했다. 코넬대학교에서 전기공학 학사 및 석사 학위를 받았다. 문의: david.katz@analog.com.