강좌 & 팁
앞으로 ARM ●에 대해 강좌를 하려고 합니다.
강좌라기 보다는 제가 아는 부분에 대해서 글을 써보겠습니다.
많이 부족 하지만 많은 관심으로 끝가지 강좌를 마칠수 도와주셨으면 좋겠습니다.
1.ARM cortex-M3 소개
ARM cortex-M3 프로세서를 설명 드리기전에 ARM에 대해 좀 설명 드리겠습니다.
ARM은 1990년 Apple Computerm, acorn Computer Group, VLSI Technology의 합작 벤처 회사로서 Advanced RISC Machines Ltd.라는 이름으로 설립되었습니다. 1991년 ARM은 ARM6 프로세서군을 소개하며 VLSI가 처음으로 이를 라이센싱하였습니다. 그 다음으로 TI,NEC,Sharp,ST microelectronics를 포함 한 추가적인 회사들이 ARM 프로세서 설계를 라이센싱 하였습니다. 처음에는 프로세서에 그 특징을 가리키는 접미사도 사용 하였으나 나중에는 이러한 접미사는 더이상 새로운 프로세서군에 추가되지 않았습니다. 대신 메모리 인터페이스, 캐시, TCM과 관련된 파생어가 프로세서명에 새롭게 붙게 되었습니다. 이로하여 많은 업체들의 관심에 지금의 전자 제품까지 사용하게 된것입니다.이제 ARM은 뒤로 하고 본론으로 ARM cortex-M3에 대해 소개 하겠습니다.
cortex-M3는 2006년에 첫번째로 프로세서 이며 기본적으로 32비트 마이크로프로세서를 갖추어 설계되었습니다.
낮의 게이트 훌륭한 성능을 제공하며 고급의 프로세서에서 사용 할 수 있었던 장점만 모아서 설계 하였습니다.
cortex-M3 장점들을 보자면
■ 속도 전력 요구 사항을 증가 하지 않아도 많은 작업이 가능 하다.
■ 낮은 전력이 들어가는 휴대형 제품에서 중요한 베터리 수명을 길게 해주었다.
■ 인터럽트가 정해진 작업에서 가능한 빨리 처리 하도록 보장하고 있다.
■ 가장 작은 메모리 풋프린트 안에도 코드가 실장될 수 있다.
■ 프로그래밍 디버깅이 쉬워졌다.
■ Low-end를 가능하게 하며 최저가격으로 처음으로 32비트 마이크로컨트롤러를 만들었다.
■ 다양하게 개발 툴을 사용 할 수 있다.
이렇게 다양한 장점들이 있으며 cortex-M3는 시스템 비용을 줄이고자 검토하는 설계자들이 점점 늘어나고 있는 추세이며 업체들은 Device aggregation(소자들의 집적화)을 구현하고 보다 더 좋은 소자 하나가 여러개의 8비트 소자들을 대체하는 것이 가능해졌습니다.
현제 많은 전자 제품에 들어가는 ARM7은 가장 폭넓게 사용된 32비트 임베디드 프로세서로 자동차, 컴퓨터, 폰등 다양한 전자 제품 안에서 사용되고 있습니다. 반면 cortex-M3 프로세서는 위에 장점에서 설명 한것과 같이 프로그래밍과 디버깅은 쉽지만 처리 능력은 더 향상되도록 만들어졌으며 크리티컬한 태스크들을 위해 마스킹할 수 없는 인터럽트 지원과 높은 결정성을 갖는 중첩 벡터 인터럽트 지원,단일 비트 조작 가능, 선택 가능한 메모리 보호 장치 등을 들을 수 있다. 이것이 바로 32비트 사용하는 개발자들이 cortex-M3에 관심을 갖는 이유라고 봅니다.
2.아키텍처 버전
ARM 아키텍처의 버전 번호는 프로세서에 의존적 입니다.
ARMv5E 아키텍처는 ARM926E-S와 ARM946E-S프로세서를 포함하고 있는 ARM9E프로세서에 소개되었고 이 아키텍처는 멀티미디어 어플리케이션을 위한 임베비드 DSP 명령어가 추가되어 있습니다.
ARMv6 아키텍처는 메모리 시스템 특징과 단일 명령어-다중데이터 명령어를 포함하며, ARMv6 아키텍처를 기반으로 하는 프로세서들은 ARM1136j(F)-S,ARM1156j(F)-S,ARM1176j(F)-S를 포함합니다.
이렇게 ARM 프로세서가 소개 되면서 마이크로컨트롤러와 자동차 컴포넌트들의 저가 시장에 최적화된 Thumb-2 명령어 세트와 같은 많은 기술들이 채택되게 되었습니다.
3.명령어 세트
아키텍처 혁명의 핵심 원천으로 명령어 세트의 확장 입니다.
역사적으로 ARM 프로세서에는 32비트의 ARM 명령어와 16비트의 Thumb 명령어 두 개의 다른 명령어 세트가 지원되었습니다. 두 상태를 동적으로 전환할 수 있는데 Thumb명령어 세트는 ARM 명령어 세트의 일부입니다. 하지만 더 높은 코드는 집적도를 제공할 수 있으며 적은메모리 요구사항을 갖는 제품에 유용 합니다.
아키텍처 버전이 업데이트됨에 따라 ARM과 Thumb명령어 모두에 추가적인 명령어들이 추가 되었습니다.
Thumb-23ISA는 사용의 편의성과 같이 상당한 이점이 있는 매우 효율적이면서 강력한 명령어 세트 입니다. Thumb-2명령어 세트는 이전의 16비트 Thumb 명령어 세트를 포함하고 있으며, 추가적으로 32비트 명령어와 유사한 16비트 명령어들을 포함하고 있습니다. 이것은 ARM 상태와 Thumb 상태 사이에서의 상태 전환 수를 줄여줌으로써 더 높은 효율성을 제공합니다.
Cortex-M3 프로세서는 전통적인 ARM프로세서와 하위 호환되지 않습니다. 즉 ARM7프로세서를 위횐 바이너리 이미지를 Cortex-M3 프로세서를 위해 사용할 수 없습니다. 그럼에도 불구하고 Cortex-M3 프로세서는 ARM7군의 프로세서에 지원되는 16비트 Thumb 명령어를 포함하여 거의 모든 16비트 Thumb 명령어를 실행시킬 수 있기 때문에 어플리케이션을 쉽게 포팅이 가능 합니다.
Thumb-2 명령어 세트 안에 16비트와 32비트 명령어 모두를 지원하기 때문에 Thumb 상태와 ARM상태 사이에서 프로세서를 전환 할 필요가 없습니다. Thumb-2 명령어 세트는 ARMv7 아키텍처의 매우 중요한 특징입니다. ARM7군의 프로세서에서 지원되는 명령어들과 비교해 볼때 Cortex-M3 프로세서 명령어 세트는 많은 새로운 특징들을 갖습니다. 최초로 하드웨어 나눗셈 명령어가 ARM프로세서에서 가능하게 되었으며, 데이터 고속처리 성능을 향상시키기 위한 많은 곱셈 명령어들도 Cortex-M3 프로세서에서 사용할 수있게 되었습니다. Cortex-M3 프로세서는 High-end 프로세서에서만 가능했던비정렬 데이터 접근도 지원합니다.
ARM은 몇년간 CPU 개발을 여러가지로 다양화함으로써 제품 포트폴리오를 화자하는데 그 결과 아키텍처 버전 7인 7v를 만들어 냈으며 그 버전은 아키텍처 버전이 A형,R형,M형 의 세가지 종류로 나누어 졌습니다.
●A형은 리눅스 윈도우즈등 High-end 임베디드 OS이며 높은 전력 소모와 MMU를 지원하는 가상 메모리 시스템 선택
가능한 진보된 자바 지원 보안 프로그램 실행 환경을 필요로 한다.(고성능 개발형 어플리케이션 플랫폼을 위한 설계이다.)
●R형은 시스템이 보장된 기간 내에 반응을 얻을 수 있고 성능이 요구되는 High-end 임베디드 시스템을 위한 설계 입니다.
●M형은 비용, 전력 소모, 낮은 인터럽트 자연시간 사용의 편의성이 있으며 저가의 산업 제어 어플리케이션들을 타깃하로 하는 프로세서 입니다.
위의 내용을 보시면 ARM cortex-M3는 M형을 쓰고 있다는것을 알수 있겠죠?ARM cortex-M3는 자동차,데이터 통신 등 8비트 16비트 마이크로 컨트롤러 제품들과 경쟁 하며 그중 편의성 이라는 장점으로 임베디드 개발자들이 32비트 시스템과 개발 제품들로 전환 할 수 있도록 합니다. ARM cortex-M3 프로세서는 다양한 분야의 어플리케이션에서 사용하고 있습니다.
여기까지 Cortex-M3 소개에 대해 설명 했는데 제가 잘못 알고 있는 지식은 댓글로 알려주시고 다음 시간에 뵙겠습니다.^^
Joseph Yiu 의 The Defiitive Guie to the ARM Cortex-M3 를 그대로 요약하신 건가요?