효과적인 다중 코어 프로세서를 사용하여 스마트 음성 지원 제품 제작
DigiKey 북미 편집자 제공
2020-02-14
사용자가 Amazon Alexa, Google Assistant, Apple Siri, Microsoft Cortana 등과 같은 가상 디지털 도우미에 익숙해지고 활용함에 따라 거의 모든 응용 분야에서 지능형 제품에 대한 수요가 확산되고 있습니다. 이러한 도우미는 편의성을 제공할 뿐 아니라 산업용 시스템 및 의료 응용 분야의 광범위한 제품에서 안전과 보안을 강화하는 데 점점 더 중요한 역할을 하고 있습니다. 하지만 개발자가 이렇게 제품을 기본 설계할 경우 향상된 성능, 최적화된 비용 및 실장 면적, 효과적인 작동을 지원할 수 있는 프로세서를 제공하기 어려울 수 있습니다.
이 기사에서는 개발자가 다중 코어 프로세서(이 경우 NXP의 i.MX 8M Nano)를 사용하여 스마트 홈, 산업 자동화, 의료 시스템 등 다양한 응용 분야에서 새롭게 등장하는 스마트 제품의 광범위한 처리 및 인터페이스 요구 사항을 충족할 수 있는 방법을 살펴봅니다. 특히, 개발자가 이 프로세서를 사용하여 고급 오디오 처리 기능을 갖춘 차세대 음성 지원 솔루션을 쉽게 구현할 수 있는 방법을 알아봅니다.
스마트 제품의 진화
음성 도우미 기술의 급증으로 사용자들이 스마트 제품에서 더 많은 기능을 원하고 있습니다. 따라서 새롭게 등장하는 제품은 센서, 카메라 등 제품의 다양한 입력 데이터를 활용하여 음성 명령에 응답하고 향상된 인텔리전스를 내장해야 합니다. 스마트 조명 스위치로 조명을 켜고 끄거나 음성 명령으로 식기 세척기를 작동하는 정도로는 충분하지 않습니다. 응용 제품이 점점 정교해지면서 기본 장치에서는 센서, 인공 지능(AI) 방법을 사용하는 향상된 처리 기능, 3D 그래픽 디스플레이 등을 더 다양하게 결합해야 합니다.
지능형 제품에 대한 요구 사항은 편의성 향상에만 국한되지 않습니다. 산업 자동화, 의료 등 중요 응용 분야에서 사용자에게 위험 또는 병리 조건을 미리 알려주는 경고 기능이 장치에 필수적입니다. 주위 환경을 모니터링할 수 있는 안전모를 착용한 공장 작업자는 위험을 쉽게 피할 수 있습니다. 또한 위험 상태에 있는 환자가 생명 징후를 지속적으로 모니터링하는 소형 의료 모니터를 착용한다면 위험이 발생하기 전에 필요한 의료 지원을 받을 수 있습니다.
이러한 스마트 제품의 설계 요구 사항은 대상 응용 분야에 따라 다르지만 대부분의 경우 고성능 처리, 멀티미디어 기능, 보안 작업에 대한 요구 사항을 공유합니다. 개발자는 강력한 응용 제품을 구동하기 위해 확장 가능하고, 크기, 비용 및 전력 소비 감소를 위한 사용자의 기대치를 충족하기 위해 물리적으로 축소 가능한 솔루션에 대한 기본 요구 사항에 이러한 기능적 요구 사항을 결합합니다. 이기종 다중 코어 아키텍처를 기반으로 하는 NXP i.MX 8M Nano 응용 프로세서 제품군은 새롭게 등장하는 스마트 제품에 대한 광범위하고 다양한 설계 요구 사항을 충족합니다.
고성능 코어
NXP i.MX 8M Nano는 확장 가능한 다중 코어 처리 플랫폼을 제공하도록 설계된 NXP i.MX 8M 프로세서의 최신 제품군입니다. 하이엔드 동영상 응용 제품의 경우 NXP i.MX 8M 주력 프로세서(예: MIMX8MQ5DVAJZAB)는 4K HDR(High Dynamic Range) 동영상 하드웨어 디코딩을 지원하는 최대 4K 디스플레이 해상도를 제공합니다. 1080p 동영상의 경우 NXP i.MX 8M Mini 프로세서(예: MIMX8MM6CVTKZAA)는 1080p 하드웨어 디코딩 지원을 제공합니다. i.MX 8M 계열과 8M Mini 계열은 모두 최대 4개의 Arm® Cortex®-A53 응용 프로세서 코어를 Arm Cortex-M4F 마이크로 컨트롤러 코어와 결합합니다.
반면에 NXP i.MX 8M Nano MIMX8MN6CVTIZAA 프로세서는 4개의 Arm Cortex-A53 코어를 Arm Cortex-M7 코어와 결합합니다. 이 코어는 Cortex-M4F를 포함한 Arm Cortex-M 계열의 코어 중 최고의 성능을 제공합니다.
프로세서 코어를 보완하는 외에도 i.MX 8M Nano 프로세서는 다양한 외부 메모리 장치를 지원하고 소비자 및 산업 응용 분야에 일반적으로 필요한 광범위한 외장형 주변 장치 인터페이스를 제공합니다(그림 1).
그림 1: NXP i.MX 8M Nano 프로세서는 최대 4개의 Arm Cortex-A53 응용 프로세서, Arm Cortex-M7 마이크로 컨트롤러, 특수 하드웨어 서브 시스템, 소비자 및 산업 응용 분야에 일반적으로 사용되는 포괄적인 외장형 주변 장치 인터페이스를 결합합니다. (이미지 출처: NXP)
개발자는 다양한 버전의 i.MX 8M Nano 프로세서 계열을 활용하여 비용 및 성능에 대한 특정 요구 사항을 쉽게 충족할 수 있습니다. 예를 들어 고성능 제품군은 보안, 3D 그래픽 디스플레이, 오디오 처리 등에 적합한 포괄적인 특수 서브 시스템을 통합합니다. 다른 i.MX 8M Nano 계열 제품군은 Cortex-A53 코어 수가 더 적은 옵션과 그래픽 기능이 축소된 "Lite" 버전을 제공합니다.
그럼에도 불구하고 모든 i.MX 8M Nano 프로세서 계열 제품군은 새롭게 등장하는 스마트 제품에 필요한 응용 제품 성능과 실시간 기능을 함께 제공할 수 있습니다.
고성능 응용 소프트웨어를 실행하도록 설계된 각 Arm Cortex-A53 응용 프로세서 코어는 전용 레벨 1(L1) 32Kbytes 명령어 캐시(I-cache), 32Kbytes 데이터 캐시(D-cache) 및 공유 L2 512Kbytes 통합 캐시에서 작업하면서 최대 1.5GHz의 클록 주파수에서 작동할 수 있습니다. 통합 부동 소수점 처리 장치(FPU)와 함께 이러한 코어는 디지털 신호 처리에 사용되는 고급 단일 명령어 다중 데이터(SIMD) 작업과 데이터 집약적 응용 분야의 다른 고급 알고리즘에 필요한 Arm의 Neon 기술을 지원합니다.
내장형 시스템 요구 사항을 충족하기 위해 Arm Cortex-M7 마이크로 컨트롤러 코어는 낮은 대기 시간과 결정적인 작업이 필요한 실시간 공정을 우수한 성능으로 실행하면서 최대 750MHz 주파수에서 실행합니다. 더 빠른 처리를 위해 코어에는 명령어 및 데이터 캐시에 사용되는 통합 FPU와 256Kbytes의 견고하게 결합된 메모리(TCM)가 포함되어 있습니다.
하지만 복잡한 실시간 처리 작업을 위해 개별 인터럽트 소스를 빠르게 인식하는 기능이 물리적 처리 성능만큼 중요할 수 있습니다. i.MX 8M Nano 프로세서에서 각 Arm Cortex-A53 코어에 내장된 전역 인터럽트 컨트롤러(GIC)와 Arm Cortex-M7 코어의 중첩 벡터형 인터럽트 컨트롤러(NVIC)를 사용하여 코어 상태, 타이머, 주변 장치 인터페이스 이벤트, 직접 메모리 액세스(DMA) 작업, 특수 하드웨어 공정 등에 따라 약 128개의 고유 인터럽트 요청 소스에서 인터럽트 처리를 세부적으로 조정할 수 있습니다.
이기종 다중 코어 처리
각 i.MX 8M Nano 프로세서 코어는 강력한 컴퓨팅 리소스를 제공합니다. 프로세서의 여러 코어를 함께 사용하여 스마트 제품의 설계를 어렵게 만드는 충돌하는 실시간 성능 요구 사항과 응용 소프트웨어 실행 요구 사항을 적절히 관리할 수 있는 강력한 컴퓨팅 플랫폼을 제공합니다. 예를 들어 이 프로세서를 기반으로 하는 스마트 제품에서 Cortex-M7 코어를 사용하여 오디오 스트림을 실시간으로 처리하고, 하나 이상의 Cortex-A53 코어에서 실행 중인 알고리즘을 사용하여 결과 데이터를 분석하고 사용자에게 결과를 3D 그래픽으로 표시할 수 있습니다.
하지만 이러한 종류의 조율된 이기종 다중 코어 처리를 안정적으로 수행하려면 다중 코어 시스템에서 다양한 코어, 특수 하드웨어 블록 및 주변 장치 간의 처리 작업 및 데이터 교환을 신중하게 조율해야 합니다. i.MX 8M Nano 프로세서에서 이 조율 작업은 다중 처리 환경의 하위 레벨 소프트웨어 서비스에서 일반적으로 사용되는 세마포 및 메시징을 위한 하드웨어 기반 메커니즘에 따라 실시됩니다.
또한 내장형 시스템에서는 이 조율 작업이 메모리, 주변 장치와 같은 하드웨어 리소스로 확장됩니다. 이 작업을 위해 프로세서에서는 안전한 리소스 공유(해당하는 경우) 또는 안정적인 분리(필요한 경우)를 보장하도록 설계된 전용 리소스 도메인 컨트롤러(RDC)를 통합합니다. 따라서 응용 소프트웨어 및 실시간 코드에서 일반 리소스를 공유하면서 도메인 전용 리소스를 제어할 수 있습니다(그림 2).
그림 2: NXP i.MX 8M Nano 프로세서의 하드웨어 기반 메커니즘은 필요에 따라 리소스를 안전하게 공유하면서 Cortex-A53 응용 도메인 또는 Cortex-M7 실시간 도메인 전용 리소스를 확실히 분리합니다. (이미지 출처: NXP)
스마트 제품 특별 지원
개발자는 i.MX 8M Nano 프로세서의 다중 코어 및 리소스 공유 기능만 활용하여 음성 도우미와 3D 그래픽이 내장된 새롭게 등장하는 스마트 제품을 위한 포괄적인 응용 제품을 제작할 수 있습니다. 이러한 응용 제품은 i.MX 8M Nano 프로세서에 내장된 스마트 제품용 특수 하드웨어 지원 덕택에 소프트웨어 실장 면적을 줄이면서 성능을 강화할 수 있습니다.
그래픽의 경우 프로세서의 통합 그래픽 처리 장치(GPU)에서 2D 및 3D 그래픽 가속을 제공하고 Vulkan, OpenCL(Open Computing Language), OpenGL(Open Graphics Library)을 비롯한 표준 그래픽 라이브러리를 지원합니다. 통합 액정 표시 장치 인터페이스(LCDIF) 컨트롤러는 1080p60(1080 progressive 60fps) 디스플레이를 지원합니다.
온칩 GPU는 코어에서 디스플레이 처리를 오프로드하고, 다른 하드웨어 서브 시스템은 기존 프로세서를 기반으로 하는 시스템을 일반적으로 느려지게 하는 다양한 오디오 처리 작업을 오프로드합니다. 마이크 입력 처리를 위해 프로세서의 펄스 밀도 변조(PDM) 마이크 인터페이스(MICFIL)는 PDM 마이크에서 수신되는 1비트 입력에서 필터링된 16비트 펄스 코드 변조(PCM) 데이터를 생성하도록 설계된 다중 스테이지 파이프라인을 제공합니다(그림 3).
그림 3: NXP i.MX 8M Nano 프로세서의 PDM 마이크 입력을 위한 인터페이스 서브 시스템은 오디오 신호 처리와 음성 활동 감지를 위한 별도 하드웨어 파이프라인을 결합합니다. (이미지 출처: NXP)
일반 음성 기반 응용 분야의 경우 설계자는 PDM 마이크를 프로세서에서 지원되는 8개 PDM 채널 중 하나에 연결해야 합니다. PDM 마이크 인터페이스 서브 시스템에서 입력 인터페이스는 마이크 쌍의 시간 멀티플렉싱된 PDM 데이터를 결합하여 좌/우 채널로 구성된 레인을 형성합니다.
각 채널의 다음 스테이지에서 전용 프로그래밍 가능 데시메이션 필터는 원하는 출력 속도와 6개 품질 선택(QSEL) 설정(높은 품질, 중간 품질, 낮은 품질 및 세 가지 매우 낮은 품질 레벨) 중 하나에 따라 다른 통과 대역을 제공합니다. 예를 들어 48kHz 출력 속도에서 매우 낮은 품질 모드의 경우 필터 통과 대역을 10.5Hz ~ 11.25kHz로 설정하고 높은 품질, 중간 품질 및 낮은 품질 모드의 경우 통과 대역을 21Hz ~ 22.5kHz로 설정합니다. 마지막으로 각 채널의 결과는 인터럽트 생성을 위해 각 채널의 별도 FIFO(First-In, First-Out) 버퍼에서 제공되며 DMA 또는 버스 액세스를 통해 전송됩니다.
하드웨어 기반 음성 활동 감지
이 오디오 신호 조절 파이프라인과 함께 PDM 마이크 인터페이스는 원하는 마이크 입력 채널을 모니터링하는 하드웨어 음성 활동 감지기(HWVAD) 세트를 제공합니다. (참고: 위 그림에서는 각 HWVAD가 레인에 연결된다고 나와 있지만, 설명서에는 채널 VADCHSEL 레지스터에서 해당 지원을 제공한다고 나와 있습니다). HWVAD 작업을 지원하기 위해 프로세서에서는 개발자가 응용 분야에 필요한 특정 HWVAD 구성을 정의할 수 있는 다양한 장치 레지스터를 제공합니다(표 1).
|
표 1: 프로세서의 PDM 마이크 인터페이스(MICFIL)에 통합된 하드웨어 음성 활동 감지기를 구성하는 데 일반적으로 사용되는 NXP i.MX 8M Nano 프로세서 레지스터 (표 출처: DigiKey, NXP 데이터를 기준으로 작성)
이러한 레지스터 설정에 따라 HWVAD는 내장된 음성 감지 알고리즘을 사용하여 음성 활동을 식별합니다. 감지 시 HWVAD는 추가 처리를 위해 코어(일반적으로 Cortex-M7)를 깨우는 인터럽트를 생성합니다(그림 4).
그림 4: 개발자가 프로그래밍한 구성 설정을 사용하여 NXP i.MX 8M Nano 프로세서 하드웨어 음성 활동 감지기에서는 음성이 감지되어 추가 음성 처리가 필요할 때까지 프로세서 코어를 절전 상태로 전환하거나 다른 처리를 수행하도록 허용합니다. (이미지 출처: NXP)
음성 도우미 응용 분야에서 코어는 오디오 스트림에 적절한 깨우기 언어가 있는지 확인합니다. 깨우기 언어가 감지되면 코어는 일반적으로 응용 제품에서 지원되는 클라우드 기반 음성 도우미 서비스에 오디오 스트림을 제공합니다.
PDM 마이크 인터페이스 서브 시스템 외에도 i.MX 8M Nano 프로세서에서는 Inter-IC Sound(I2S), 오디오 코덱 97(AC97), 시분할 멀티플렉싱된(TDM) 오디오, DSD(Direct Stream Digital), 코덱 또는 디지털 신호 처리(DSP) 데이터를 비롯한 다양한 표준 오디오 형식을 지원하는 5개의 동기식 오디오 인터페이스(SAI) 모듈을 제공합니다.
응용 분야의 특정 요구 사항을 충족하기 위해 개발자가 오디오 입력 샘플을 다른 필요한 샘플링 속도 및 분해능으로 변환하는 작업을 수행하는 경우도 있습니다. 프로세서 주기에 따라 이 일반 작업을 수행하는 대신 i.MX 8M Nano 프로세서에서는 전용 비동기식 샘플링 속도 컨버터(ASRC) 서브 시스템을 통합합니다.
최대 32개의 오디오 채널을 동시에 처리할 수 있는 ASRC는 소스 샘플을 원하는 샘플링 속도(8kHz ~ 384kHz)와 분해능(IEEE 단정밀도 부동 소수점 또는 고정 소수점 형식(16bps, 20bps, 24bps 또는 32bps))으로 자동으로 변환합니다. 공정에서 ASRC는 모든 입력 데이터를 64비트 IEEE 부동 소수점 형식으로 변환하여 필요에 따라 오디오 샘플 데이터를 정확히 상향 또는 하향 변환함으로써 원하는 결과를 얻을 수 있도록 해줍니다.
일반 전력 컨트롤러를 사용하여 전력 관리
프로세서 코어와 하드웨어 서브 시스템을 포괄적으로 통합하여 NXP i.MX 8M Nano 프로세서 아키텍처는 개별 코어 및 서브 시스템에 내장된 많은 개별 전력 도메인 및 전력 모드를 결합합니다. 이 코어 및 특수 블록 모음에 대한 전력을 관리하기 위해 i.MX 8M Nano 프로세서에는 여러 전력 관리 기능을 조율하도록 설계된 정교한 일반 전력 컨트롤러(GPC)가 포함되어 있습니다. GPC에서 시스템 모드 컨트롤러(SMC)는 각 코어의 저전력 모드(LPM)와 전체 중간 절전 모드(DSM)를 관리하고, 전력 게이팅 시간 슬롯 컨트롤러(PGTSC)는 비활성 서브 시스템에 대한 전력을 비활성화하여 시스템 전력을 절감하는 데 사용되는 클록 게이팅 기능을 관리합니다(그림 5).
그림 5: 시스템 레벨 전력 최적화를 개선하기 위해 NXP i.MX 8M Nano에서는 프로세서 코어에 내장된 전력 게이팅 기능 및 저전력 모드를 관리하는 정교한 전력 컨트롤러를 통합합니다. (이미지 출처: NXP)
소프트웨어 또는 하드웨어 제어를 통해 GPC에서는 PGTSC의 20개 시간 슬롯을 사용하여 프로세서의 여러 클록 게이트 전력 도메인에 전력을 공급하거나 차단합니다. 여기서 시간 슬롯 컨트롤러는 이러한 시간 슬롯을 통해 순차적으로 작동하며, 다음 슬롯으로 진행하기 전에 전력 공급 또는 전력 차단 요청을 활성화합니다. 특정 전력 시퀀싱 요구 사항을 충족하는 외에도 개발자는 이 방식을 사용하여 시스템 전원을 켜거나 저전력 또는 중간 절전 모드에서 시스템을 깨울 때 램프 공급 전류를 줄일 수 있습니다.
i.MX 8M Nano 프로세서의 다중 전력 도메인 공급은 간단합니다. NXP i.MX 8M Nano 프로세서를 지원하도록 특별히 고안된 ROHM Semiconductor BD71850MWV 전력 관리 집적 회로(PMIC)는 프로세서와 다른 시스템 주변 장치에 필요한 모든 전력 레일을 제공합니다. 실제로 BD71850MWV PMIC는 자체 전력 시퀀서를 통합하여, 프로세서뿐 아니라, 외장형 메모리, 센서, 기타 시스템 장치의 전원을 쉽고 안전하게 켜고 끌 수 있습니다(그림 6). 개발자의 경우 BD71850MWV PMIC를 설계에 통합하기 위해 일반 감결합 커패시터(표시 안 됨) 이외의 추가 부품이 필요하지 않습니다.
그림 6: NXP iMX 8M Nano 프로세서의 다중 코어 및 하드웨어 서브 시스템은 여러 공급 레일이 필요하지만, ROHM BD71850MWV 전력 관리 집적 회로(PMIC)는 준비된 솔루션을 제공합니다. (이미지 출처: NXP)
개발 지원
i.MX 8M Nano 기반 설계를 위한 하드웨어 인터페이스 요구 사항은 상대적으로 간단하지만 NXP를 사용하면 개발자가 프로세서를 평가하거나 새로운 스마트 제품의 시제품을 제작하는 상대적으로 간단한 설계 작업조차도 피할 수 있습니다. i.MX 8M Nano 프로세서에 대해 완전히 구현된 개발 키트 및 참조 설계를 제공하는 8MNANOD4-EVK 평가 키트는 i.MX 8M Nano 프로세서 및 BD71850MWV PMIC를 Murata Electronics LBEE5HY1MW Wi-Fi/Bluetooth 트랜시버 모듈과 결합하여 즉각적 평가 및 시제품 개발을 위한 플랫폼을 제공합니다. 다양한 인터페이스 옵션 및 연결된 커넥터와 함께 이 평가 키트에는 SDRAM(Static Dynamic Ram), NOR 플래시, NAND 플래시를 비롯한 전체 외장형 메모리 장치가 포함되어 있습니다. 평가 키트를 사용하여 개발자는 외장형 플래시에서 부트, 서명된 부트 이미지를 통한 보안 부트를 비롯한 다양한 작동 모드 및 구성을 탐색할 수 있습니다.
개발자가 맞춤형 소프트웨어 개발을 진행할 준비가 된 경우 NXP는 자체 MCUXpresso 통합 개발 환경(IDE) 및 타사 IDE에서 작동하도록 고안된 구동기, 기판 지지대 패키지(BSP) 및 미들웨어를 제공합니다. 머신 러닝 방법을 활용하도록 고안된 응용 제품을 제작하기 위해 설계자는 NXP eIQ 머신 러닝 소프트웨어 개발 환경 및 i.MX에 최적화된 인터페이스 라이브러리(예: Cortex-M7 기반 추론을 위한 TensorFlow Lite용 eIQ, Cortex-A53 기반 추론을 위한 NXP의 Arm 신경망 소프트웨어 개발 키트(NN SDK) 포트)로 전환할 수 있습니다.
결론
음성 도우미 제품의 급증으로 인해 차세대 스마트 제품은 향상된 오디오 지원을 제공하고, 우수한 성능, 향상된 그래픽 및 전력 효율적인 작동을 지원할 것이라는 기대가 높아지고 있습니다. 하지만 개발자의 경우 이러한 제품을 위한 시스템을 효과적으로 설계하기 위해 고성능 응용 소프트웨어 및 대기 시간이 짧은 실시간 기능을 조합해야 합니다. 이는 크기, 비용, 전력 제약이 있는 조건에서 달성하는 데 어려움이 있습니다. NXP의 확장 가능한 다중 코어 프로세서 제품군의 출시로 개발자는 소비자, 산업, 의료 등 광범위한 응용 분야의 스마트 제품 요구 사항을 쉽게 충족할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


