자동차 애플리케이션에 이상적인 부동소수점 프로세서 선택
2007년 04월호 지면기사  / 글 | 피터 르윈(Peter Lewin)*, 리처드 요크(Richard York)** / * 프로덕트 매니저 ** CPU 프로덕트 매니저 ARM

자동차 애플리케이션용 전자장치의 개발 추세가 계속해서 상승곡선을 그리고 있다. 이에 따라 자동차용 반도체 매출이 2005~2010년 사이 8.2%의 연평균 복합성장률을 기록할 것으로 예상되고 있다. 이는 경차시장 전체 성장률의 두 배에 해당하는 것으로, 차량 한 대당 들어가는 반도체 수량이 두 배가량 증가할 것이란 의미를 내포하고 있다. 이와 더불어 사용되는 제어 장치가 상당히 정교해질 것으로 예상된다.
전자기술은 오늘날 자동차산업에서 혁신의 가장 중심에 있다. 지금도 자동차에 전자기술의 도입을 위한 새롭고 잠재적인 애플리케이션이 끊임없이 등장하고 있다.
특히, 이러한 경향은 운전자지원 컨트롤 분야에서 두드러진다. 적응형 크루즈 컨트롤(adaptive cruise control), 차선 이동 모니터링 시스템, 운전자 피로 및 부주의 모니터링 등의 기능은 미래 차량에 보편적으로 도입될 것으로 기대되는 운전자지원 안전성 개선의 예이다.
이러한 새로운 기능은 데이터 처리량의 증가를 수반하기 때문에 한 차원 높은 수준의 마이크로프로세서 성능을 요구할 것이다. 동시에 비용절감은 주류 시장인 가장 저렴한 자동차에서도 기술을 성공적으로 보급하는데 중요한 요건이 되고 있다.
현재 전자기술을 통해 혁신하고자 하는 자동차 제조업체들의 기대와 더불어 안전/배기가스 규제 강화로 인하여 많은 기능들이 향상되고 있음은 분명한 사실이다.

프로세서 통합
오늘날의 자동차에는 많게는 70개의 ECU(Electronic Control Unit)가 들어가는데, 그 중 대부분이 8비트나 16비트 프로세서이다. 따라서 더 큰 용량의 프로세서에 자동차 기능을 통합함으로써 프로세서 수를 줄일 수 있는 여지가 있다. 하나의 32비트 프로세서에 여러 개의 8비트 프로세서의 기능을 통합하게 되면 디스크리트 부품 수와 BOM(Bill of Material)을 최소화함으로써 비용절감을 달성할 수 있으며, 전반적인 개발 프로세스를 단순화시키고 소유 및 유지 비용이 많이 드는 자동차 개발실 내의 분산된 개발 시스템의 증가를 막을 수 있다.
주요 차량용 네트워크는 파워트레인/변속기 클러스터, 섀시 컨트롤 클러스터, body/ comfort 클러스터, 안전 클러스터(active/ passive), 인포테인먼트/멀티미디어 클러스터 등 몇 개의 클러스터로 구분할 수 있다. 프로세서 통합은 클러스터 내에서도 일어날 수 있고 클러스터 간에 일어날 수도 있다. 각 클러스터별로 보안 무결성(security integrity) 수준은 대략 비슷할 것이며, 따라서 비슷한 32비트 프로세서로 통합하기가 용이하다.
그러나, 향후에는 관련이 없어 보이는 클러스터 또는 시스템 간의 상호작용이 증가할 것으로 예상된다. 예를 들어 원격 잠금장치, 운전자 좌석위치, 에어백 장치 등은 각각 별개의 기능을 제공하는 것으로 보인다.
기존에 시스템들은 각각 별도의 마이크로컨트롤러(MCU) 시스템에 의해 제어되고 따로 분리된 클러스터에 있었지만, 이러한 시스템들이 미래에는 융합될 것으로 예상되기 때문에 비슷한 수준의 보안 무결성을 가질 것으로 예상된다.
예를 들어 원격 잠금장치는 차문을 여는 것은 물론이고 운전자를 식별하고 운전석를 셋팅하기 전 위치로 옮겨 해당 운전자가 선호하는 위치로 좌석이 조정되도록 할 수 있다. 운전석 위치는 충돌발생 시 에어백 작동방법을 결정할 것이며 충돌 탐지장치는 자동차 문을 열어 운전자가 탈출하거나 구출될 수 있도록 할 것이다. 이러한 여러 기능들을 하나의 프로세서에 통합하면 통신 오버헤드를 줄이고 부품 수와 비용을 억제하며 프로세서 간 통신을 줄여 신뢰성을 개선할 수 있다. 확실히 고성능 32비트 프로세서는 기능 통합을 실현하는데 이상적인 플랫폼이 될 수 있다.
부동소수점(Floating Point) 요건
복잡한 제어 알고리즘 사용이 현저하게 증가하고 있는 자동차 전자장치에 부동소수점 기능이 점점 더 강조되고 있는 데는 몇 가지 이유가 있다.
매스웍스(The MathWorks)의 매트랩(MATLAB) 같은 툴은 전체 엔진 제어 및 파워트레인 서브시스템의 모델 개발에 일반적으로 사용된다. 제어 시스템은 물론이고 엔진과 같은 부품을 포함하는 상당히 복잡한 폐쇄형 루프 모델을 개발할 수 있으며, 이것은 전체 시스템의 시뮬레이션을 가능하게 한다.
8비트 소자의 프로그래밍 작업은 여전히 어셈블리 코드에 의존해야 하지만, 32비트 플랫폼은 ‘C’나 UML, 또는 하이-레벨 툴인 매스웍스의 시뮬링크(Simulink) 등의 고수준 접근방식으로 코드 개발을 할 수 있다. 부동소수점 기능을 추가하게 되면 부동소수점 알고리즘이 시뮬링크나 ASCET-SD 등의 모델링 환경과 매스웍스의 Real Time Workshop Embedded Coder, ASCET-SE 또는 dSPACE Targetlink 등의 툴을 사용해서 자동 생성된 코드로부터 직접 맵핑될 수 있다.
코드 생성 및 모델링 기반의 방법론을 이용하면 품질이 개선되고 개발시간을 단축할 수 있다. 부동소수점 기능성을 갖춘 프로세서는 타깃 플랫폼이 이 방법론에 적합하게 만든다. 특별히 임베디드 자동차 애플리케이션을 고려하여 설계된 ARM Cortex-R4F 프로세서의 FPU(Floating Point Unit)는 고정소수점 연산보다 다이내믹 범위와 정확도가 우수한 부동소수점 연산을 수행한다.
이 FPU는 앞서 출시된 ARM FPU와 호환되며 자동차 애플리케이션에서 가장 일반적으로 이용되는 단일 정밀 프로세싱에 최적화되어 있다.
64비트 표시형(double precision)으로 전환할 필요가 없다면 요구되는 정확도는 유지하면서도 데이터를 두 배 빨리 처리할 수 있다.

무결함성 안전 관련 시스템
브레이크 및 차량 안전제어 시스템 등 자동차 애플리케이션의 대부분은 엄격한 기능 안전 표준인 IEC61508 표준을 만족해야만 한다. 자동차 시스템 간의 연결이 점차 긴밀해지고 기타 자동차 기능까지 안전요건이 확대되면서 무결함성(fault tolerant)과 높은 신뢰성에 대한 요구가 커질 것으로 예상된다.
Cortex-R4F 프로세서는 프로세서-인터커넥트-주변장치에 이르기까지 연속적인 오류 검출을 지원한다. Cortex-R4F 프로세서는 무결함성 특성을 갖도록 해주는 다수의 유연한 내장 기능을 포함하고 있다.

오류 정정 코딩
(ECC: Error-Correction Coding)
작은 크기의 반도체 프로세스는 중성자 및 알파 입자에 의해 발생하는 소프트 오류에 더욱 취약하다. 특히, 기능들이 밀집해 있는 메모리 구조에서는 더욱 취약하다. 메모리 구조 내에서 발생하는 소프트 에러는 집적회로(IC) 내에서 발생하는 신뢰성 문제의 가장 흔한 발생 원인이 된다.
오류 정정 코딩(ECC) 기술은 메모리 액세스를 모니터해서 오류를 감지하고 정정한다. ECC 로직은 메모리 오류가 발생하면 단순히 그러한 오류가 발생했다는 사실을 알리고 시스템을 정지시키는 데에 그치지 않고 해당 오류를 복원한다.
ARM Cortex-R4F 프로세서의 이전 모델인 Cortex-R4는 개발팀이 자체 ECC 스킴을 구현할 수 있도록 하는 강결합 메모리(TCM: Tightly-Coupled Memory) 인터페이스에 대한 오류 및 대기(wait) 입력을 제공한다. 현장 의견은 이러한 유연성이 매우 유용하다고 확인시켜 주었으며 유저들도 이것이 ECC 구현의 전반적인 성능을 개선시키기 때문에 캐시의 일부로서 ECC에 대한 통합 및 지원이 필요하다는 입장이다.
임베디드 오류 정정 기능이 Cortex-R4F 프로세서에 미리 통합되어 있기 때문에 추가로 ECC 로직을 설계할 필요가 없다. ECC를 프로세서 파이프라인에 통합함으로써 코어로부터 외부에서 구현될 경우 일반적으로 이러한 수준의 보호 장치에 따르는 성능 약화(최대 20% 정도)를 유발하지 않고 이를 달성할 수 있다.
ECC 옵션과 마찬가지로 캐시와 TCM도 패리티(parity)를 가능하게 한다. 저비용 ECC 구현에 필수적인 읽기-수정-쓰기 작업은 전력 소비에 큰 영향을 미치지는 않는다. 애플리케이션에 대한 패리티 보호 기능이 충분한 경우 ECC를 이용하는 것보다는 읽기-수정-쓰기를 이용하는 것이 더 유리할 수도 있다. 예를 들어 외부 메모리의 명령 캐시 리프레시(재생)와 같은 오류 정정 대안이 있을 경우가 주로 그러하다.

로직 오류 관리
안전 우선(safety critical) 시스템의 경우 Cortex-R4F 프로세서는 합성(synthesis) 옵션을 제공하여 설계에 프로세서 로직의 여분 복제(redundant copy)가 예시로 포함되도록 하여 외부 로직이 두 가지 프로세서의 출력 비교를 통해서 소프트 오류와 하드 오류를 확인할 수 있도록 한다. 여분의 코어 인터페이스로 여분의 프로세서가 마스터 프로세서의 RAM을 공유할 수 있어서 전체 시스템 면적이 줄어드는 데 기여한다. 그렇지 않으면 여분의 프로세서에는 예상 Cortex-R4F 프로세서 로직이 모두 들어가게 된다.
비교 로직(comparison logic)은 디자인 팀에 의해 오류에 대한 대응의 관점에서 그들의 정확한 요건에 대처하기 위해 지정되고 구현된다. 이러한 기능성은 결합 로직 및 레지스터가 모두 오류로부터 보호될 수 있도록 보증한다.
게다가, AMBA 3 AXI™ 버스에는 패리티가 포함되어 있어서 무결함성 능력이 시스템의 다른 부분까지 확대될 수 있다.

메모리 보호 장치
메모리 보호는 태스크 간의 최대 보호 기능을 제공하면서 멀티태스킹을 가능하게 하기 때문에 안전 우선 자동차 애플리케이션에 필수적이다. 이는 다수의 태스크가 하나의 32비트 프로세서에 통합되었을 경우에 특히 중요하다.
Cortex-R4F 프로세서는 여러 독립적인 소프트웨어 태스크에 대한 강력한 관리 기능을 제공하는 고해상도 메모리 보호 장치(MPU: Memory Protection Unit)를 포함하고 있다. 이것은 8개 또는 12개 영역(regions)으로 구성될 수 있으므로 공간 활용에 있어서 유연함을 더했다. MPU 영역의 최소 크기는 32바이트로 정밀 제어 및 메모리 절감이 가능하다. 또한 MPU는 범위를 벗어난 메모리의 액세스는 신속하게 막음으로써 유용한 소프트웨어 개발 및 디버깅 툴로 사용될 수 있다. 이는 설계의 질을 더욱 개선하면서도 개발시간을 단축한다.
메모리 보호는 OSEK 표준, JasPar 자동차 소프트웨어 플랫폼 아키텍처 및 AutoSAR 런타임 환경을 기반으로 하는 애플리케이션에 필수적이다.

인터럽트 처리
인터럽트 지연은 시스템이 변화하는 상황에 따라 신속하게 대응해야 하는 안정성 제어와 같은 기능에 있어서 중요한 파라미터이다. 안전과 관련되어 있기 때문에 최악의 경우에 발생할 수 있는 지연은 반드시 자세하게 구체화되어야 한다. 만약 안전이 우선되어야 하는 자동차 서브시스템이 인터럽트될 가능성이 있다면, 처리 시간은 반드시 예측할 수 있어야 한다.
Cortex-R4F 프로세서 내에 포함된 다수의 새로운 기능은 인터럽트 처리와 관련된 최대 지연을 상당히 줄여준다. AMBA 3 AXI 버스를 사용하면 완료 순서와 상관없이 프로세서는 캐시 라인 필(cache line fill)과 같은 다른 진행 작업이 백그라운드에서 완료되는 동안에도 인터럽트를 처리할 수 있다.
멀티사이클 명령은 시작되고 난 후에 완료 전에 종료될 수 있다. 정상 메모리에 블록 단위로 로드하고 저장하는 (LDM, STM) 것 등이 이러한 멀티사이클 명령에 해당한다.
Cortex-R4F 프로세서는 필요한 IRQ 서비스 루틴의 벡터 주소를 공급하기 위한 인터럽트 컨트롤러에 대한 인터페이스를 가지고 있다. 이러한 특징으로 전용 하드웨어 장치는 최우선 순위의 미해결 인터럽트에 대한 처리 루틴의 시작 주소를 검색할 수 있다. 이 인터페이스에는 특정 인터럽트가 발생한 경우 이를 인식하는 Cortex-R4F 프로세서의 hands-hake가 포함된다.
인터럽트 인터페이스는 Cortex-R4F 프로세서의 메인 클록에 동기적으로나 비동기적으로 클록된 컨트롤러가 관리하는 인터럽트를 처리하도록 설계되었다. 이러한 기능이 있기 때문에 컨트롤러는 프로세서 클록 및 AXI 클록에 대한 동기 또는 비동기 인터페이스가 있는 시스템에서 사용될 수 있다.
Cortex-R4F 프로세서 내에 이러한 기능들이 있다는 것은 최대 응답시간이 ARM946E-S™의 경우 118사이클이지만, Cortex-R4F에서는 20사이클로 줄어든다는 것을 의미한다.
차단 불가능 인터럽트(non-maskable interrupt) 옵션도 Cortex-R4F 프로세서에서 사용할 수 있기 때문에 소프트웨어가 FIQ(fast interrupt requests) 기능을 억제하는 것을 방지한다. 이러한 특징은 안전 우선 애플리케이션의 경우 특히 중요하다.

고성능, 저비용 구현
첨단 자동차 애플리케이션을 지원하기 위해서는 최고 수준의 성능을 제공하는 것 이외에도 엄격한 비용 목표를 달성할 수 있는 프로세서를 구현하는 것이 중요하다. Cortex-R4F 프로세서에는 높은 수준의 성능을 제공하면서 동시에 구현 및 개발 비용을 조절하는 여러 가지 기능이 포함돼 있다.

명령어 세트 아키텍처
Cortex-R4F 프로세서는 Thumb짋-2 명령어 세트를 포함한 ARMv7 ISA 아키텍처로서 기존 ARM 코드와의 완벽한 호환성을 갖추었다. Thumb-2 명령어 세트를 ARM 리얼뷰 개발 스위트(Rearview Development Suite)와 함께 사용하면 온칩 메모리 사이즈를 최대 30%까지 줄일 수 있어 시스템 비용을 절감할 수 있다. ARM946E-S와 비교하면 프로세서에서 실행되는 기존 Thumb 명령어 세트의 성능을 40% 가량 향상시킬 수 있다. 메모리가 칩에서 차지하는 비중이 점점 더 증가함에 따라, 이 프로세서를 자동차 설계용으로 사용하는 칩 개발자들은 상당한 면적 및 비용 절감의 혜택을 누릴 수 있다.

구성용이성(Configurability)
Cortex-R4F 프로세서는 여러 가지 애플리케이션에 대해 코어를 최적화시킬 수 있고 비용 대비 성능 목표를 달성할 수 있도록 합성되는 동안 구성용이성을 제공한다.
합성 옵션에는 부동소수점 처리장치, 고해상도 메모리 보호 장치(MPU), 강결합 메모리(TCM), DMA, 디버그 기능 등이 포함된다. 이러한 구성용이성은 ARM 명령어 세트의 호환성을 저하시키지 않기 때문에 애플리케이션 개발자와 제3자가 투자한 기존 소프트웨어의 재사용을 극대화할 수 있다.

성능
자동차 전자 기기에서 성능을 더욱 개선하고자 하는 데는 몇 가지 이유가 있다. 배기가스 관리 기준이 점차 강화되면서 엔진의 효율성을 개선하기 위해서 고성능 알고리즘, 정확성 및 타이밍 개선이 요구된다. 이러한 요건은 엔진 제어와 파워트레인 클러스터와 가장 밀접하게 관련되어 있다. 현재 여러 개의 8비트 프로세서 내에 있는 기능을 하나의 32비트 프로세서로 통합하고자 하는 요구로 인하여 성능에 대한 요구가 더욱 커지고 있다.
Cortex-R4F 프로세서에는 ARM Artisan짋 Advantage™ 라이브러리를 기반으로 하여 성능이 최적화된 90nm 사용 시 800 Dhrystone MIPS 이상을 제공하는 이중 명령어 이슈 기능을 갖춘 첨단 마이크로아키텍처를 포함하고 있다. 다음 데이터는 레이아웃을 포함한 Cortex-R4F 프로세서의 내부 경화 실험을 바탕으로 한 예측치이다.
FPU를 포함한 속도가 최적화된 TSMC90G:
· 최악 상황(worst case) 속도: 400MHz
· 캐시 없는 면적: 1.53mm²
· 캐시 있는 면적: 2.26mm²
· 전력: 0.32mW/MHz

Cortex-R4F 프로세서는 면적이 최적화된 90nm 공정에서 1mm2 미만의 면적을 차지하며 전력 소비도 0.27mW/MHz 미만이다. L1 메모리의 완화 타이밍(relaxed timing)으로 고밀도 저전력 RAM을 이용할 수 있어서 프로세서 로직 뿐만 아니라 총 비용의 상당한 부분을 차지하는 메모리 부분까지 면적 절감을 실현할 수 있다.
FPU를 제외한 면적이 최적화된 TSMC90G:
· 최악 상황 속도: 273MHz
· 캐시 없는 면적: 0.86mm²
· 캐시 있는 면적: 1.43mm²
· 전력: 0.24mW/MHz

이상의 수치는 표준 자동차 스펙인 125℃에서 측정되었다는 것을 주목할 필요가 있다. 위에 제시된 최악 상황 빈도는 많은 애플리케이션에서 일어날 수는 있지만, 실제로 대다수의 자동차 구현은 더 낮은 속도에서 일어나게 되며 일반적으로 250MHz 영역에서 일어난다. 이는 한편으로는 더 신중하고 입증된 실리콘 제조 프로세스(속도가 느린)를 이용하기 때문이고, 또 한편으로는 거친 자동차 환경에서 긴 수명(10년 이상)을 보장하기 위해서다.

하드웨어 분할
많은 자동차 제어 알고리즘은 자주 분할 작업을 수행하며 Cortex-R4F 프로세서는 이를 효율적인 하드웨어 디바이더로 최적화한다.
이 디바이더는 사이클 당 결과 지수에 대해 2개 비트로 간주하는, 즉 4가지 가능한 값을 고려하는 Radix-4 알고리즘을 이용한다. 32비트 분할의 경우에 이 알고리즘은 최대 16사이클을 이용해서 전체 결과를 생성한다. 이 최대 수치는 피제수와 제수의 선행제로의 수를 계산하고 데이터를 프리스케일링해서 0이 아닐 것 같은 비트에 대해서만 분할 연산이 일어나도록 함으로써 줄일 수 있다.
이러한 조기 종결 방식은 많은 경우에 사이클 수를 줄이기는 하지만, 프리스케일링 하는 데 추가 사이클이 필요하기 때문에 오버헤드를 늘린다. 분할 연산 종결 시점에 디바이더는 작업이 종결되었다는 신호를 보내며 파이프라인은 분할의 결과가 등록 파일에 작성되도록 한 사이클을 지연한다. 양수와 음수 간의 분할의 경우 필요하다면 최종 반전 작업을 실행하기 위해 메인 파이프라인의 로직을 재사용한다.

개발 환경
디버그 기능은 점점 더 복잡해지는 자동차 시스템에서 안전 기준을 유지하는 데 매우 중요하다.
여기서 중요한 이슈는 시스템의 모든 부분에 대한 가시성을 보장하는 것이며 이는 ARM의 CoreSight™ 온칩 디버그 및 트레이스 솔루션으로 확보될 수 있다.
CoreSight 기술은 디버그 액세스 포트 및 기타 메커니즘을 제공하여 저 오버헤드로 높은 가시성을 제공하는 디버그 및 트레이스 작업을 보장한다.
ARM의 공통 아키텍처(common archi-tecture)는 개발 시스템의 소유 비용을 줄여준다. 많은 ARM 개발 툴들은 다양한 자동차 인포테인먼트 시스템의 토대를 제공하는 Cortex-M3 프로세서와 Cortex-A8 애플리케이션 프로세서를 포함하는 전체 Cortex 프로세서 제품군에서 재사용할 수 있다.



<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>


  • 100자평 쓰기
  • 로그인


  • 세미나/교육/전시

TOP