하드 드라이브에서 자료를 불러오고, 스마트폰에서 이메일을 확인하고, 또 매일 집에서 직장까지 안전하게 도착하는 것에 이르기까지, 우리는 하루에도 수없이 많은 ARM 코어텍스-R 기술을 이용하고 있다. 최근 ARM은 실시간 프로파일 계열의 새로운 제품, 코어텍스-R5 및 코어텍스-R7 프로세서를 발표했다. 본 글에서는 두 프로세서의 멀티코어와 일관성(Coherency) 기술, 외부 주변장치로의 빠른 접속, 그리고 산업계의 표준적인 요구사항에 의해서 증가하고 있는 높은 수준의 안전에 대한 기능들을 다룬다.
앤드류 프레임(Andrew Frame) / ARM 선임 프로젝트 매니저
크리스 터너(Chris Turner) / ARM 프로덕트 마케팅 매니저
우리가 미처 깨닫지 못하고 있지만, 하드 드라이브에서 자료를 불러오고, 스마트폰에서 이메일을 확인하고, 또 매일 아침 집에서 직장까지 안전하게 도착하는 것에 이르기까지, 우리는 하루에도 수없이 많은 ARM 코어텍스-R 기술을 이용하고 있다.
이는 HDD 컨트롤러, 산업 제어, 무선 베이스밴드 프로세서, 소비재, 자동차 시스템용 전자제어장치 등 다양한 분야에서 ARM 코어텍스-R4 프로세서가 사용되고 있기 때문이다. 이러한 분야의 시장이 진화를 거듭하고, 이를 위한 요구조건은 계속해서 복잡해짐에 따라 ARM 코어텍스-R 시스템의 차세대 혁신에 더욱더 관심이 집중되고 있다.
이러한 모든 것들은 명령 및 데이터 캐시 컨트롤러, TCM(Tightly-Coupled Memory) 인터페이스, 메모리 보호, 오류 수정, 패리티 검사, 부동 소수점 장치(FPU), 디버그, 트레이스에 대한 옵션 등과 같이 응용분야에서 요구하는 조건에 정확히 부응하기 위해서 선택적으로 구성(Configuration)하게 되어 있는 기능들과 밀접한 관련이 있다.
코어텍스-R4 고성능 실시간 프로세서
ARM 코어텍스-R4 프로세서 코어는 2006년 출시된 이래, 20여개 이상의 ARM 반도체 파트너사에서 중앙처리기능을 갖춘 반도체 생산에 도입되는 등, 임베디드 시스템 산업 분야에서 폭넓은 지지를 받았다.
이들 반도체 제품은 대부분 특정한 애플리케이션을 위한 시스템-온-칩(SoC), 혹은 SoC ASIC(주문형반도체)들로, 특히 자동차 전자제어장치, 고성능 데이터 스토리지, 진화된 3G 및 최신 4G 휴대전화기 및 모바일 컴퓨팅을 위한 무선 베이스밴드 처리와 같이 특정한 분야에 사용되도록 설계되었다.
일부 ARM 파트너들은 3G USB 모뎀 스틱에서부터, TI의 TMS570과 같은 자동차용 마이크로컨트롤러까지, 다양한 기능과 성능 수준을 갖춘 코어텍스-R4 프로세서 기반 제품군을 개발해왔다. 최근 인피니언은 코어텍스-R4 프로세서 기반의 의료기기 플랫폼 MD8710을 발표하기도 했다.
이러한 모든 기기들은, 코어텍스-R4 프로세서 특유의 탁월한 컴퓨팅 성능과 소프트 오류 처리와 같은 구성 가능한 기능(Configurable feature), 그리고 임베디드 시스템 내 하드 리얼타임(hard real-time) 이벤트에 확정적으로(deterministically) 반응하는 기능들이 있기에 가능한 것이다.
이러한 확정적 하드 리얼타임 응답(deterministic real-time responsiveness)은 모든 코어텍스-R 프로세서의 차별화 된 기능이다. 이는 곧, 코어텍스-R 프로세서는 예기치 않은 지연으로 인해 데이터 소실이나 기계적 손상이 발생할 수 있는 시스템에서 신뢰할 수 있음을 의미한다.
따라서 스티어 바이 와이어(steer-by-wire), 잠김 방지 브레이크(ABS), 하드 디스크 드라이브의 서보 제어장치, 3G 무선 데이터 모뎀과 같이 실시간 작업을 수행하는 시스템에는 언제나 코어텍스-R 프로세서가 사용되고 있다. 또한 이들 시스템뿐만 아니라 다른 시스템에서도 신뢰할 수 있는 고성능 프로세싱을 필요로 한다.
코어텍스-R4 프로세서는 나누기(division) 및 부동 소수점(floating point) 전용 하드웨어와 더불어 명령어 프리페치(Instruction pre-fetch), 분기 예측(branch prediction), 듀얼 이슈 실행(dual-issue execution)을 포함한 첨단 고성능 8단계 파이프라인을 특징으로 한다.
이 프로세서는 1MHz당 1.66 Dhrystone MIPS의 뛰어난 벤치마크 성능을 보여주며, 40nm 저전력 프로세스에서 표준 셀 라이브러리와 컴파일된 RAM을 이용하여 500MHz까지 클록 주파수를 높일 수 있다.
코어텍스-R4 프로세서의 고성능, 하드 리얼타임 기능에는 하버드 명령 및 데이터 캐시, 벡터 인터럽트 컨트롤러(VIC) 포트, 메모리 및 주변장치와 연결된 고속 AMBA3 AXI 버스 포트가 포함된다. 부동 소수점 장치(FPU) 옵션과 의도하지 않은 소프트웨어 접속으로부터 메모리와 주변장치 영역을 보호할 수 있는 메모리 보호 장치(MPU) 옵션도 있다.
또한 코어텍스-R4 프로세서에는 프로세서의 확정적 인터럽트 반응에 대비하는 TCM(Tightly-Coupled Memory)을 위한 특별한 메모리 인터페이스도 있다. TCM은 인터럽트 서비스 루틴(ISR)과 같이 실시간 성능에 중요한 코드와 데이터의 영역을 저장하기 위해 사용되는데, 메인 메모리 영역을 사용할 경우 메인 메모리에서 캐시로 가져오는 시간이 길어질 수도 있고 가변적인 것과는 달리, TCM에 저장된 ISR은 즉시 실행에 사용할 수 있다.
그리고 코어텍스-R4 프로세서는 신뢰할 수 있는 시스템 구축을 위한 독특한 기능도 갖추고 있다. 바로 패리티 검사와 오류 수정 코드(ECC) 로직의 조합으로, 소프트 오류는 물론, 경우에 따라서는 레벨 1 메모리 시스템(캐시, TCM RAM)에서 발생하는 하드 오류까지 검출하고 수정할 수 있다. 소프트 오류의 원인으로는 신호의 글리치 발생과 방사선 입자 등이 있는데, 반도체 공정에서 40나노급 이하의 미세공정이 적용됨에 따라, 이에 대한 해결책이 더욱 더 중요해지고 있다. 패리티 검사 및 ECC 로직이 프로세서의 마이크로아키텍처 내에 통합되면서, 오류가 발생하면 파이프라인 플러시가 일어나 수정이 이루어지고 실행이 자동으로 계속된다.
코어텍스-R4 프로세서는 또한 오류 검출에 중복 프로세서가 사용되는 듀얼 코어 록스텝 구성 (Dual core lock-step Configuration)에서도 사용할 수 있도록 설계되었다. 이러한 구성에서는 두 코어 모두 동일한 데이터를 이용하여 동일한 프로그램을 실행하고, 추가 검사 로직이 두 코어의 모든 동작 싸이클을 검사하여 소프트 및 하드 오류가 발생했음을 나타내는 두 코어의 동작 상의 차이점을 찾아낸다. 그런 다음 시스템은 페일 세이프(fail-safe) 모드로 전환되거나 다른 적절한 조치를 취할 수 있다.
오늘날 수백만의 사람들이 스마트폰, 디스크 드라이브, 자동차 시스템 등의 제품을 사용하기 위해 코어텍스-R4 프로세서에 의존하고 있다. 하지만 데이터 전송속도가 증가하고, 보다 작은 에너지 소비 및 비용이 요구되며, 더욱 광범위한 애플리케이션에서 마이크로일렉트로닉스가 사용됨에 따라, 이전보다 더 뛰어난 성능과 다양한 기능에 대한 요구도 높아지고 있다.
이와 더불어 안전과 신뢰성에 대한 중요성도 함께 증가하고 있다. 이러한 경향은 자동차 시스템에 대한 새로운 ISO 26262 표준에도 잘 반영되어 있으며, 소프트 오류에 더욱 민감한 첨단 반도체 공정 기술을 이용하는 분야가 점점 증가하고 있기 때문이기도 하다.
코어텍스-R5 프로세서의 도입
최근 ARM은 코어텍스-R4 프로세서가 출시된 이래 제기되어온 특정 요구조건을 충족하는 새로운 코어텍스-R5 프로세서를 발표했다. 코어텍스-R5 프로세서는 코어텍스-R4 프로세서의 일련의 기능을 확장하여 시스템 성능 수준을 높이고, 효율성 및 신뢰성을 개선하며, 믿을 수 있는 실시간 시스템의 오류 관리를 제공하는 새로운 시스템 레벨 통합 기능을 제공한다.
첫 번째로 소개할 새로운 기능은 LLPP(Low Latency Peripheral Port)로, LLPP는 빠른 주변장치 읽기 및 쓰기를 위한 목적의 추가 버스 포트로, 옵션인 AMBA AHB 포트와 함께 AMBA AXI 포트로 구현된다.
LLPP를 이용함으로써 프로세서는 제한적이고 확정적인 응답이 요구되는 시스템에서 주변장치 레지스터의 즉각적인 읽기나 쓰기를 항상 보장할 수 있으므로, 주변장치 읽기 또는 쓰기가 캐시 리필 또는 AMBA AXI 버스 상의 메인 메모리 및 기타 어드레스로 가는 대기 중인 트랜잭션에 의한 영향을 받지 않는다. 특히 LLPP는 ARM의 GIC(Generic Interrupt Controller)와의 인터페이스에도 사용할 수 있어 인터럽트에 더욱 즉각적으로 반응할 수 있다.
코어텍스-R5 프로세서의 또 다른 중요한 옵션 기능은 ACP(Accelerator Coherency Port)로, ACP는 외부 데이터 소스에 대한 캐시 일관성 메커니즘을 제공한다. 이러한 데이터 소스의 예가 바로 3G/4G 모뎀 또는 하드 디스크 읽기 채널과 같이 프로세서의 레벨 2 메모리 시스템으로 직접 데이터를 쓰는 것 들이다.
ACP를 통해 이러한 데이터 쓰기를 함으로써, 프로세서의 데이터 캐시는 micro-Snoop Control Unit(μSCU)을 이용한 검사를 받으며, 만약 동일한 데이터가 현재 캐시에 있으면 이 데이터는 무효 처리(Invalidated) 되어 프로세서가 다음번에 접속할 때 업데이트 될 수 있게 한다.
이러한 캐시 일관성은 개발자들에게 명확하게 보장되는 것이므로, 추가 소프트웨어 오버헤드를 통해 일관성을 감시하고 유지할 필요가 없다. 이런 기능은 소프트웨어 캐시 유지관리 코딩 오류가 시스템으로 유입될 가능성을 없애 코드 신뢰성을 높이는 한편, 소프트웨어가 캐시 유지관리를 수행하는 코어텍스-R4 프로세서 대비 실제 시스템 성능을 최대 25%까지 증가시킬 것으로 예상된다.
코어텍스-R5 프로세서는 싱글 또는 듀얼 코어로 구성할 수 있는데, 두 프로세서 모두, 싱글 ACP가 일관성을 유지한다. 코어텍스-R5 프로세서는 코어텍스-R4 프로세서에서 제공되었던 것보다 더욱 폭넓은 범위의 듀얼 코어 구성 옵션을 제공한다.
두 프로세서 모두 안전관련(Safety-critical) 시스템에서 중복되는 프로세서를 같은 방식으로(lock-step) 동작하는 듀얼 코어 프로세서 구성이 가능하다. 그러나 코어텍스-R5 프로세서는 독립적으로 구동하면서 각각 자체 인터페이스, 인터럽트, TCM 등으로 자체 프로그램을 실행하는 듀얼 코어로도 구성할 수 있다.
한쪽 코어에서는 레이어 2 프로토콜 스택 소프트웨어를 실행하고 다른 한쪽 코어에서는 레이어 3 스택 소프트웨어를 실행하는 3G 모뎀이 그런 예이다. 이런 시스템은 외부 데이터 소스에서 오는 동일 데이터에 두 프로세서 모두 접근할 필요가 있을 수 있으며, 이 듀얼 코어 구성에서 ACP와 ACP 관련 μSCU는 외부 데이터 소스에 대해서 두 코어 모두의 데이터 캐시에서의 일관성을 유지할 수 있게 한다.
코어텍스-R4 및 코어텍스-R5 프로세서의 FPU는 단정도(single-precision)와 배정도(double-precision) 둘 모두를 지원하나, 특히 단정도 성능이 최적화되어 있다. 코어텍스-R5 프로세서의 또 다른 기능은 단정도 전용 FPU를 사용하는 옵션이다. 단정도 전용 버전의 FPU는 배정도 계산이 필요하지 않을 때 실리콘 면적과 에너지 소비를 상당부분 절약할 수 있다.
마지막으로 코어텍스-R5 프로세서는 ECC와 패리티 오류 관리를 모든 AMBA3 AXI 버스 포트들 즉, 메인 AXI와 TCM, LLPP 및 ACP의 AXI 슬레이브 포트로 확장한다. 따라서 ECC 장착형의 레벨 2 메모리나 주변장치는 ECC 확장형의 AMBA AXI 버스를 통해 프로세서와 통신할 수 있으며, 오류가 검출되면 프로세서가 오류를 수정하여 읽기나 쓰기 명령을 재실행할 수 있다. 이는 엔드 투 엔드(end-to-end) ECC 기능을 넣어서, 자동차, 항공기 등 안전 관련 애플리케이션 시장의 핵심 요구사항을 충족하는 완전한 시스템 구축을 가능하게 한다.
차세대 실시간 프로세서
코어텍스-R7의 로드맵
ARM은 새로운 코어텍스-R7 프로세서를 2011년 내에 출시한다. 코어텍스-R7 프로세서는 이전보다 더욱 높아진 성능과 리얼타임 기능을 결합하여, 기능이 강화되고 더 높은 클록 주파수에서 동작하는 새로운 마이크로아키텍처를 구현한다. 전반적으로 코어텍스-R7 프로세서는 동일 반도체 공정에서 코어텍스-R4 이나 코어텍스-R5 프로세서 대비 두 배에 가까운 성능을 제공할 수 있다.
이렇게 강력해진 성능 수준은 최근 진화하는 애플리케이션에서 요구되는 필요사항, 예를 들면 강력한 단일 프로세서가 파워트레인과 안정성 관리, 충돌 회피, 조종, 제동 장치 등 차량 내 각종 센서로부터 정보를 처리하는 자동차 분야에서의 요구 사항들을 충족시킨다.
고성능 스토리지의 경우, 자기 디스크에서 얻을 수 있는 데이터 용량과 속도가 계속 증가함에 따라 서보(servo) 및 읽기/쓰기 채널 프로세서에 대한 성능 향상 요구가 더욱 증가하고 있다. 모바일 통신에서는, 3G LTE(Long Term Evolution)과 4G LTE-Advanced에서 제공하는 최대 1Gbps의 무선 광대역 데이터 전송 속도는 엄청난 수준의 처리 능력이 요구된다.
코어텍스-R7 프로세서는 향상된 분기 예측, 광범위한 슈퍼스칼라 실행 기능, 나누기 및 기타 기능을 위한 더 빠른 하드웨어 지원을 결합한 비순차적 명령어 처리(Out-of-order execution)와 동적 레지스터 리네이밍(dynamic register renaming) 같은 신기술을 마이크로아키텍처에 도입하여 더 높은 수준의 성능을 제공한다, 이 프로세서는 2.5DMIPS/MHz 이상에 기준을 정하며, 표준 컴파일 RAM을 이용한 40nm의 LP에서 600MHz 넘는 클록 주파수를 지원해야 한다. 단일 코어텍스-R7 프로세서가 2,000DMIPS의 성능을 제공하기 위해서는 최적화된 RAM과 기타 하드닝 기술(hardening techniques)을 통해 40나노미터 LP에서 800MHz 이상 주파수로 구동할 수 있어야 한다. 이 프로세서는 (그림 4)와 같이 싱글 코어 또는 듀얼 코어 구성으로 실행될 수 있다.
코어텍스-R7 프로세서의 핵심적 특징은 LLRAM(low-Latency RAM)으로 알려진 새로운 클래스의 레벨 2 메모리를 도입한 것이다. 이 RAM은 전용 AMBA3 AXI 버스 포트를 통해 연결하며, 코어텍스-R7 프로세서의 내부 TCM을 보완하도록 되어 있다. 코어텍스-R4/R5 프로세서를 이용한 빠른 실시간 SoC 시스템 설계에서 경험한 바로는, 크기가 더 크고 그로 인해 더 느린 RAM 어레이를 사용함으로 인해, 대기 상태 싸이클(wait state cycle)을 TCM에 도입하면 TCM의 성능이 제한될 수 있다.
이러한 현상은 코어텍스-R7 프로세서의 더 높은 클록 주파수에 의해 더욱 악화된다. 그러므로 코어텍스-R7 프로세서의 TCM은 고성능 하버드 메모리로 용으로 만들어 졌으며, 이를 위해 RAM 용량이 128킬로바이트로 제한되며 명령 및 데이터 TCM을 위한 별도 포트가 제공된다. 한편 LLRAM 포트는 메인 AMBA AXI 버스 포트에 있는 나머지 레벨 2 메모리와의 트랜잭션에 의해 차단되지 않는, 더 크고 유연하며 통합된 명령어 및 데이터 메모리를 제공한다.
이렇게 추가된 메모리 계층을 통해 설계자들은 시스템 성능을 극대화하고, 프로그램과 데이터의 각각 다른 부분을 가장 적절한 크기와 속도의 메모리에 배치하여 에너지 소비를 최소화할 수 있다. 중요한 것은, LLRAM 또한 듀얼 코어들간에 일관성을 유지하고 있다는 점인데, 이는 TCM에서는 달성할 수 없다(그림 5 참조).
코어텍스-R7 프로세서를 탑재한 시스템은 값비싼 대기 상태가 없는 TCM(zero wait-state TCM)에 대한 필요를 낮추거나 경우에 따라서 아예 없애기도 하면서, 예측 가능하고 제한된 반응시간의 이점을 누릴 수 있다.
코어텍스-R7 프로세서 역시 ARM의 실시간 프로세서 라인업에 듀얼 코어와 외부 데이터 일관성을 도입하고 있다. 싱글 또는 듀얼 코어 구성으로 구현할 수 있지만, 두 코어간의 자동화된 캐시 일관성을 제공하므로 소프트웨어 캐시 유지관리가 불필요하다. 이러한 능력으로 인해, 하드 리얼타임 임베디드 시스템에서 RTOS(Real-time Operating System)를 이용한 SMP(Symmetric Multi-Processing)를 도입할 수 있게 됐다.
코어텍스-R7 프로세서의 캐시 일관성은, 캐시 라인 전체를 관리하여 효율적으로 작동하는 강력한 SCU(Snoop Control Unit)를 통해 구현된다. 또 다른 장점은 캐시 일관성을 유지하면서도 프로세서의 캐시를 후기입(write-back) 모드로 운영할 수 있다는 점이다. ARM 코어텍스-A9 프로세서에 익숙한 독자라면, 이 프로세서가 코어텍스-A9 프로세서에서 가능한 쿼드 코어가 아닌, 듀얼 코어 구성(a dual core configuration)까지만 지원하므로 코어텍스-R7 프로세서의 SCU가 상당히 작다는 점을 유의해야 한다.
그리고 두 코어가 각기 다른 프로그램을 실행하면서 각각의 코어는 특정한 메모리 주소 또는 주변장치 위치에 접근하는데 다른 코어에 대해 우선순위를 정하게 구성하면, 실시간 시스템을 위한 코어텍스-R7의 코어텍스-A9와의 또 다른 차이점을 볼 수 있다. ARM은 SCU를 통한 이와 같은 우선순위 접근을 ‘서비스 품질(Quality of Service, QoS)’이라고 부른다.
코어텍스-R7 프로세서의 실시간 성능은 싱글 또는 듀얼 코어 구성의 프로세서 코어 내의 인터럽트 컨트롤러를 통합하면서 더욱 향상된다. 이 컨트롤러는 표준 ARM GIC와 유사한 능력을 갖고 있으며, 듀얼 코어 구성의 코어 전체에 인터럽트를 분배할 수 있다. 인터럽트 컨트롤러를 이러한 방식으로 통합하면, 외부로 연결된 컨트롤러를 통해 하는 것보다 더 적은 주기 내에 최초 인터럽트 이벤트와 인터럽트 벡터 둘 다 프로세서를 통과하므로 ISR로 더 빠르게 진입할 수 있다.
또한 코어텍스-R7 프로세서는 안전 관련 시스템에 적용하기 위한 혁신적인 새 오류 관리 기법들을 도입하고 있다. 소프트 오류와 하드 오류 모두 프로그래밍 지원 정책에 따라 관리되며, 이런 오류는 실행 도중에 발생 시, 명료하게 수정이 가능하다. 소프트 오류는 코어텍스-R5 프로세서와 비슷한 방식으로 ECC를 사용하여 수정된다. 하드 오류는 오류 뱅크 메모리를 통해 즉석에서 수정되는데, 프로세서는 일단 하드 오류 수정을 처음에 발견하면 오류 뱅크 메모리에 저장한다.
지금까지 열거된 기능과 또 다른 기능들을 통해, 코어텍스-R7 프로세서는 안전이 필수적이며 고가용성의(high availability) 애플리케이션에서 신뢰할 수 있는 차세대 시스템에 사용하기에 매우 적합하다. 이들 프로세서들은 이미, 첨단 반도체 프로세스 노드에서 증가하는 오류 민감도와 더불어, 데이터속도와 성능의 증가로 인해 진화된 요구조건들을 충족시키고 있다. 코어텍스-R7 프로세서는 엄청난 수준의 성능을 전달하면서 동시에, 40나노미터 LP 공정에서 11DMIPS/mW 이상의 업계 최고의 에너지 효율성을 달성하고 있다.
결론
코어텍스-R5/R7 프로세서의 출시와 더불어 ARM은 자사의 고성능, 실시간 프로세서 로드맵을 비약적으로 강화했다. 이를 통해 설계자들은 기능, 성능, 실리콘 면적 및 전력소비 측면에서 해당 애플리케이션에 가장 적합한 코어를 선택할 수 있다.
ARM의 반도체 파트너들은 ARMv7-R 아키텍처 정의에 따르는 범주 전체에서 소프트웨어 호환성을 유지하는 코어텍스-R 라인업 중 원하는 것을 선택하여 다양한 임베디드 시스템 SoC 제품을 개발할 수 있다. 코어텍스-R5 프로세서는 시스템 수준의 새로운 중요 기능을 도입했고 코어텍스-R7 프로세서는 한 발 더 나아가 실시간 SMP 기능과 훨씬 높은 성능을 제공한다.
세 프로세서 모두 뛰어난 구성성을 제공하여(highly configurable) 설계자들은 기능을 선택하고, 캐시 크기, 메모리 보호 지역, 디버그 기능과 같은 패러미터를 정할 수 있다. 이는 특정 분야에 최적화된 다이 영역(die area)과 에너지 효율성을 제공한다. 또한 모두 안전 관련 시스템을 위한 록스텝(lock-step)에서 실행될 수 있으며, 코어텍스-R5/R7 프로세서는 높은 성능을 위한 듀얼 코어로 구현이 가능하며, 특히 코어텍스-R7 프로세서에서는 SMP까지 지원된다.
새로운 코어텍스-R5/R7 프로세서의 출시는, 첨단 반도체 기술을 통해 생산되는 까다로운 응용분야를 위한 현대적이고 혁신적인 프로세서를 제공함과 동시에, 차세대 LTE 무선 베이스밴드 프로세싱, 초고속, 고용량 스토리지 제품 분야와, 자동차, 항공우주산업 및 유사 분야에서 쓰이는 차세대 안전관련 전자제어장치 등, 차세대 실시간 응용분야에서 요구되는 기능과 성능 수준을 제공한다.
<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>