업계 최초의 Arm® Cortex®-M33 기반 MCU 활용 – 1부: 전력 및 성능 관리
DigiKey 북미 편집자 제공
2019-06-19
편집자 주: 2부작 시리즈의 1부에 해당하는 이 기사에서는 개발자가 단일 범용 마이크로 컨트롤러 제품군을 사용할 때 광범위한 성능 및 낮은 전력 소비 요구 사항을 충족할 수 있는 방법을 보여줍니다. 2부에서는 NXP Semiconductors의 LPC55S6x 마이크로 컨트롤러에 통합된 확장 보안 기능이 프로비저닝, 커미셔닝, 통신, 보안 부트, 보안 펌웨어 업데이트 등 수명 주기 전반에서 보안을 어떻게 지원하는지를 설명합니다.
개발자는 광범위한 기능 및 응용 분야에서 응용 제품 성능 향상과 전력 소비 감소라는 서로 상충되는 요구를 조율하는 데 어려움을 겪고 있습니다. 이러한 응용 분야에는 사물 인터넷(IoT), 산업 자동화, 의료 시스템, 소비자 장치 등이 있습니다. 이러한 응용 분야에서 강력한 보안 요구가 빠르게 늘고 있기 때문에, 개발자가 광범위하고 다양하고 갈수록 많아지는 서로 상충되는 설계 요구 사항 목록을 충족할 수 있는 단일 마이크로 컨트롤러 제품군을 찾는 것이 더욱 어려워지고 있습니다.
이 문제를 해결하기 위해 NXP Semiconductors는 LPC55S6x 마이크로 컨트롤러 제품군을 도입했습니다. 이러한 장치를 사용하면 개발자가 강력한 범용 코어를 매우 효율적인 특수 하드웨어 및 처리 엔진과 결합하여 문제를 해결할 수 있습니다.
다양한 요구 사항 식별 및 해결
연결된 제품은 상대적으로 간단한 시스템에서 빠르게 진화하고 있으며, 아무리 까다로운 설계 요구 사항도 일반적으로 통신의 몇 가지 측면을 중심으로 돌아갑니다. 이제 설계자는 모든 응용 분야에서 확장된 요구 사항에 맞게 타협하는 것이 거의 불가능할 정도로 훨씬 더 까다로운 환경에서 작업하고 있습니다. 개발자는 응용 분야의 고유한 문제를 해결하기 위해 필요할 경우 응용 분야에 따라 중심을 이동해야 합니다. 높은 성능과 적은 전력 소비에 대한 요구는 대부분의 메인스트림 응용 분야에서 공통적입니다.
예를 들어 스마트 공장에서는 대기 시간이 짧은 고성능 장치를 사용하여 신호를 처리하는 동시에, 공장 엔지니어가 협소한 공간에서 많은 장치를 통합할 수 있도록 전력 소비를 줄여야 합니다. 소비자 웨어러블의 경우 전력 소비를 줄여서 배터리 수명을 연장하고 더 복잡한 워크로드를 처리할 수 있는 신호 처리 기능에 대한 높아지는 요구 사항을 충족시켜야 합니다. 모든 응용 분야에서 설계자는 개별 사이버 범죄자, 범죄 단체, 국영 그룹 등에서 발생하는 즉각적 공격 또는 진화한 영구 위협에 대한 개별 장치, 네트워크 및 자산의 실제 취약성 문제에 효과적으로 대응해야 한다는 부담감이 증가하고 있습니다.
이러한 다양한 요구 사항을 충족하기 위해 개발자는 설계의 일부 측면에서 타협을 선택하는 것이 일반적입니다. 저성능 프로세서를 사용하거나, 클록 속도를 줄이거나, 저전력 상태에 맞게 프로세서의 듀티 사이클을 줄이는 방식으로 응용 제품 성능을 희생하여 전력 소비를 줄일 수도 있습니다. 엄격한 성능 요구 사항을 충족하기 위해 설계자는 높은 전력 소비를 감수하는 대신 프로세서, 클록 속도 및 듀티 사이클을 강화하는 상반된 방식을 고수할 수도 있습니다. 더 복잡한 컴퓨팅 응용 분야의 경우 전용 디지털 신호 처리(DSP) 장치를 추가하여 알고리즘 실행 속도를 높일 수 있지만 설계 복잡성, 비용 및 시스템 전력 소비가 증가하게 됩니다. 전력과 성능을 허용 가능한 수준에서 조율하더라도 보안 요구 사항을 충족하려면 일반적으로 설계 비용과 복잡성이 증가하는 것을 감수해야 합니다.
설계자가 요구 사항으로 인해 골머리를 안고 있는 반면, 사용자는 의료 장비, 산업 자동화 시스템, 소매 결제 장치 등 중요 응용 분야에서 점차적으로 이러한 타협을 줄이거나 허용하지 않을 것을 요구하고 있습니다. NXP Semiconductors의 LPC55S6x 마이크로 컨트롤러 제품군을 사용하면 범용 프로세서의 유연성을 새롭게 등장하는 응용 분야에 필요한 특수 처리 및 보안 기능과 결합하는 아키텍처를 통해 성능 저하를 해소할 수 있습니다.
전용 처리 코어를 포함하는 광범위한 기능
NXP Semiconductors의 단일 코어 LPC55S66 및 이중 코어 LPC55S69 마이크로 컨트롤러는 업계 최초의 Arm® Cortex®-M33 기반 범용 MCU로서 Arm M 시리즈 아키텍처에 내장된 짧은 대기 시간의 결정적 성능을 기반으로 합니다. NXP LPC55S6x 장치의 향상된 아키텍처 기능으로는 회사의 고성능 PowerQuad DSP 가속기, CASPER(Cryptographic Accelerator and Signaling Processing Engine with RAM) 암호화 엔진, 포괄적인 보안 서브 시스템 등이 있습니다. 최대 640Kb 플래시, 최대 320Kb SRAM, 128Kb ROM과 함께 LPC55S6x 장치는 내장형 시스템 설계에 일반적으로 필요한 포괄적인 기능 요소를 통합합니다(그림 1).
그림 1: LPC55S6x 마이크로 컨트롤러 아키텍처는 일반 내장형 설계에서 사용되는 주변 장치를 전체적으로 보완하면서 신호 처리, 암호화, 보완 스토리지 및 키 관리를 위한 특수 하드웨어 블록을 통해 Arm Cortex-M33 코어의 범용 처리 기능을 확장합니다. (이미지 출처: NXP Semiconductors)
이러한 요소와 함께 LPC55S6x 장치에는 포괄적인 타이머 서브 시스템, 여러 직렬 인터페이스, 보안 직접 메모리 액세스(DMA) 컨트롤러 및 최대 64개의 범용 I/O(GPIO) 핀이 포함되어 있습니다. 이러한 디지털 서브 시스템과 함께 LPC55S6x 장치는 다중 채널 16비트 연속 근사화 레지스터(SAR) 아날로그 디지털 컨버터(ADC), 아날로그 비교기 및 온도 센서를 통합합니다. 또한 개발자는 온칩 프로그래밍이 가능한 논리 유닛(PLU)을 사용하여 26개의 5자리 입력 대조표(LUT) 요소 어레이로부터 상태 시스템을 비롯한 맞춤형 조합 또는 순차 논리를 구축할 수 있습니다. 개발자는 PLU 레지스터에 액세스하여 소규모 논리 네트워크에 대한 PLU를 직접 프로그래밍하거나 NXP 도구를 사용하여 Verilog 레지스터 전송 언어(RTL)로 설명된 대규모 네트워크를 구현할 수 있습니다.
여러 서브 시스템에 액세스할 때 병목 현상을 방지하기 위해 LPC55S6x 장치에는 Arm 고급 마이크로 컨트롤러 버스 아키텍처(AMBA) 고성능 버스(AHB) 아키텍처로 구축된 다층 버스 매트릭스가 포함되어 있습니다. AHB 버스 매트릭스는 버스 마스터와 주변 장치 또는 메모리를 직접 연결합니다. 예를 들어 이 접근 방식을 사용하면 프로세서의 메모리 액세스 성능에 영향을 주지 않으면서 최고 속도로 계속해서 DMA를 전송할 수 있습니다. 실제로 다양한 설계 요구 사항 중에서 프로세서 효율성 극대화 기능이 LPC55S6x 아키텍처의 기반이 됩니다.
LPC55S6x 아키텍처에서 Cortex-M33 코어는 설계자가 다양한 설계 요구 사항을 보다 쉽게 해결할 수 있도록 돕기 위해 고안된 여러 기능을 제공합니다. 동급의 다른 장치와 마찬가지로 LPC55S6x 프로세서는 다양한 저전력 모드를 지원합니다. 장시간 사용하지 않을 경우 개발자는 장치를 절전 모드로 전환하여 15.4µA만 소비하면서 전체 SRAM을 보존하거나, 최대 전력 차단 모드로 전환하여 약 0.59µA를 소비하면서 전력을 4Kb 슬라이스 SRAM으로 유지할 수 있습니다. 절전 모드 및 최대 절전 모드에서는 주변 장치와 메모리를 다양한 수준으로 작동하면서 프로세서를 종료합니다. 즉, 절전 모드에서는 약 2.7mA를 소비하면서 전체 작동을 지원하고, 최대 절전 모드에서는 주변 장치를 클록 게이팅하여 전력 소비를 약 110µA로 줄입니다.
강화된 기능
저전력 모드 외에도 LPC55S6x 아키텍처는 통합된 기능을 통해 다양한 설계 요구 사항에 대한 지원을 확장하여 성능과 보안을 개선합니다. 기본 Cortex-M33 코어에 내장된 이러한 통합 기능에는 Arm TrustZone 보안 확장(SECEXT), 메모리 보호 장치(MPU), IEEE 754 표준 부동 소수점 처리 장치(FPU) 및 ETM(Embedded Trace Macrocell)이 있습니다. 또한 기본 코어는 DSP 및 단일 명령어 다중 데이터(SIMD) 연산을 위한 CASPER 암호화 엔진 및 PowerQuad 가속기를 포함합니다.
참고: 이러한 추가 기능은 이중 코어 LPC55S69 마이크로 컨트롤러에 제공되는 두 번째 Cortex-M33 코어에는 포함되지 않습니다.
각 통합 서브 시스템 및 아키텍처는 포괄적인 기능을 제공하지만, 이러한 기능은 이 기사의 범위를 벗어나므로 자세히 다루지 않습니다. 예를 들어 PowerQuad DSP 가속기는 메모리를 버스 마스터로 액세스하면서 신호 처리 함수를 독립적으로 계산할 수 있는 그 자체로 정교한 보조 프로세서입니다.
내부적으로 PowerQuad 가속기는 여러 레지스터 및 인터페이스를 하드웨어 엔진 배터리와 결합하여 고속 프리에 변환(FFT), 이산 소자 코사인 변환(DCT), 무한 임펄스 응답(IIR), 유한 임펄스 응답(FIR), 삼각 함수를 효과적으로 계산하는 데 사용되는 CORDIC(COordinate Rotation DIgital Computer) 알고리즘을 비롯한 주요 신호 처리 기능을 지원합니다(그림 2).
그림 2: NXP Semiconductors의 LPC55S6x 마이크로 컨트롤러 제품군은 회사의 PowerQuad 보조 프로세서를 통합합니다. 이 프로세서는 특수 엔진을 사용하여 신호 처리 응용 분야에 일반적으로 필요한 알고리즘 실행을 가속화합니다. (이미지 출처: NXP Semiconductors)
PowerQuad 가속기를 사용하여 개발자는 호스트 프로세서의 실시간 이벤트 응답 기능 또는 확장된 작업 완료 성능에 영향을 주지 않으면서 복잡한 신호 처리 작업을 실행할 수 있습니다. 호스트 프로세서는 필요한 신호 처리 기능을 통해 PowerQuad 레지스터를 간단히 설정하고 소스, 대상 및 작업 메모리 영역에 대한 메모리 주소를 지정합니다. 호출된 경우 PowerQuad 가속기는 실제 보조 프로세서로 작동하며, AHB 매트릭스를 사용하여 버스 마스터 역할로 128비트 메모리 전송을 수행합니다. 호스트 프로세서는 주 처리 작업으로 즉시 돌아가서 PowerQuad 사용 중 비트를 주기적으로 폴링하거나 PowerQuad 완료 인터럽트에 간단히 응답하여 결과에 액세스할 수 있습니다.
하지만 PowerQuad 운영은 대부분 개발자에게 투명하게 드러납니다. 개발자는 CMSIS(Arm Cortex Microcontroller Software Interface Standard) DSP 라이브러리를 위한 표준 응용 프로그래밍 인터페이스(API)를 사용합니다. NXP Semiconductors MCUXpresso 소프트웨어 개발 키트(SDK)에 포함된 NXP의 PowerQuad 지원 라이브러리 버전은 소프트웨어에서 구현되는 하위 수준 수학 함수를 PowerQuad API 호출로 대체합니다.
예를 들어 복잡한 FFT를 계산하기 위해 개발자는 표준 CMSIS-DSP 함수 arm_cfft_q31()에서 Q 형식 데이터를 사용합니다. 이 형식에서는 부호용 1비트와 지수용 31비트를 사용하여 32비트 고정 소수점 숫자를 나타냅니다. 순수 소프트웨어 구현에서 arm_cfft_q31() 함수는 CMSIS DSP FFT 나비 소프트웨어 함수 arm_radix4_butterfly_q31()와 종료 함수 arm_cfft_radix4by2_q31()를 호출하거나 복잡한 역방향 FFT를 위한 역방향 버전을 호출합니다.
하지만 NXP DSP 라이브러리 및 PowerQuad를 사용할 경우 arm_cfft_q31()에 대한 일반 호출은 하드웨어에서 동일한 계산을 처리하는 PQ_TransformCFFT() 함수를 호출합니다. 최종적으로 Cortex-M33 코어의 처리 부하가 감소하는 동시에 DSP 함수가 더 빠르게 실행됩니다(그림 3).
그림 3: MCUXpresso 소프트웨어 개발 키트는 하위 CMSIS-DSP 함수를 PowerQuad 가속기 호출로 투명하게 대체하여 표준 Arm CMSIS DSP 라이브러리에 대한 상위 호출과의 호환성을 유지하면서 일반 DSP 알고리즘 실행 시간을 획기적으로 단축합니다. (이미지 출처: NXP Semiconductors)
마찬가지로 다른 보조 프로세서인 CASPER 암호화 엔진은 비대칭 암호화 알고리즘과 연결된 높은 계산 부하로부터 메인 프로세서의 부담을 덜어 줍니다. CASPER 엔진의 암호화에서는 RSA(Rivest–Shamir–Adleman), 디피-헬먼, 타원 곡선 암호화(ECC) 및 타원 곡선 디지털 서명 알고리즘(ECDSA)을 Cortex-M33 코어에서 실행 중인 동급 암호화 소프트웨어보다 최대 8배 더 빠르게 실행합니다.
또한 대칭 알고리즘 실행을 가속화하기 위해 LPC55S6x에서는 고급 암호화 표준 256비트(AES-256) 및 보안 해시 알고리즘 2(SHA-2)를 위한 하드웨어 블록을 통합합니다.
개발자는 이러한 하드웨어 블록과 CASPER 엔진을 조합하여 연결된 제품에서 데이터 교환을 보호하는 데 필요한 인증 및 데이터 암호화에 일반적으로 사용되는 암호화 알고리즘을 하드웨어별로 지원할 수 있습니다.
이 2부작 시리즈의 2부에 설명된 대로 LPC55S6x 제품군은 기본 암호화 알고리즘 이상으로 보안 지원을 확장하여 전체 수명 주기 보안에 필요한 하드웨어 기반 보안 기능을 제공합니다.
시스템 개발
개발자는 NXP LPC55S69 EVK를 사용하여 LPC55S6x 마이크로 컨트롤러의 암호화 엔진 DSP 및 범용 처리 기능을 빠르게 살펴볼 수 있습니다. 이러한 장치를 통해 개발 시간을 단축하기 위해 설계된 LPC55S69 EVK에는 이중 코어 LPC55S69 마이크로 컨트롤러, NXP의 MMA8652FCR1 가속도계, LED, 버튼, 디버그 인터페이스 및 여러 확장 옵션 지원(Arduino UNO, MikroElektronica Click, Digilent PMod 애드온 하드웨어 등)이 포함되어 있습니다.
개발자는 여러 점퍼와 헤더를 통해 다양한 하드웨어 구성을 손쉽게 설정하고 세부 성능을 자세히 검사할 수 있습니다(그림 4). 예를 들어 전력 소비를 걱정하는 개발자는 전압계로 헤더 P12에서 전압 강하를 측정하여 LPC55S69 공급 전류를 측정할 수 있습니다.
그림 4: NXP Semiconductors의 이중 코어 LPC55S69 마이크로 컨트롤러를 기반으로 구축된 NXP Semiconductors의 LPC55S69 EVK는 여러 점퍼와 헤더를 제공합니다. 개발자는 이러한 점퍼 및 헤더를 사용하여 구성을 손쉽게 설정하고 마이크로 컨트롤러 전류 소비를 비롯한 세부 성능을 검사할 수 있습니다. (이미지 출처: NXP Semiconductors)
개발을 위해 설계자는 MCUXpresso 통합 개발 환경(IDE) 및 SDK에서 기판을 사용하여 앞서 언급한 PowerQuad 기능과 같은 LPC55S6x 특수 하드웨어를 사용합니다. 또한 LPC55S69-EVK는 IAR 및 Keil IDE에서 지원됩니다. NXP는 LPC55S6x 기능 사용을 위한 주요 소프트웨어 설계 패턴을 보여주는 샘플 코드를 포함하는 무료 소프트웨어 패키지를 제공합니다.
결론
개발자는 IoT, 산업 자동화, 의료 시스템, 소비자 장치를 비롯한 광범위한 응용 분야에서 성능, 저전력 및 보안을 균형 조정하는 방법을 모색하고 있습니다. 여기서 설명한 대로 특수 하드웨어 및 처리 엔진과 마이크로 컨트롤러의 강력한 범용 코어로 구성된 LPC55S6x 제품군을 활용하면 개발자가 전력 소비를 제약하면서 고성능 특수 기능에 대한 요구를 손쉽게 충족할 수 있습니다.
이 시리즈의 2부에서는 LPC55S6x 제품군을 사용하여 장치 수명 주기 전반에서 보안을 관리하는 방법을 보여줍니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.