2019년 2월 20일 수요일

ARM 마이크로프로세서 공부 정리



  • ARM의 역사와 아키텍쳐 버전별 주요 특징
버전 발표
연도
특징 적용 제품군
ARMv1 1985 최초의 상업용 RISC 프로세서, 26비트 어드레스 사용 ARM1
ARMv2 1987 32비트 곱셈기, 온칩 캐시, 32비트 보조 프로세서 지원 ARM2, ARM3
ARMv3 1992 MMU 지원, 32비트 어드레스 사용, 64비트 MAC ARM6, ARM7
ARMv4 1996 Thumb 모드 명령 추가, 26비트 어드레스 기능 폐지 ARM7TDMI, ARM8,
ARM9TDMI, StrongARM
ARMv5 1999 MAC 향상, DSP 및 Jazelle 명령 확장 기능 지원 ARM9E/J, ARM10, Xscale
ARMv6 2001 AIMD, Thumb-2, TrustZone, 멀티프로세싱 기능 지원 ARM11, ARM11 MP Core
ARMv7 2004 제품의 브랜드명을 Cortex로 통일하고, 용도에 따라 3가지 코어 제품군으로 나눔 Cortex-A, Cortex-R, Cortex-M



  • ARM의 제품군별 주요 특징

ARM7 ARM9 ARM10 ARM11
발표 연도 1993 1996 1998 2002
파이프라인 3단계 5단계 6단계 8단계/9단계
최고 동작 속도 133 MHz 250 MHz 325 MHz 550 MHz
소비전력 0.25mW/MHz 0.2mW/MHz 0.5mW/MHz 0.6mW/MHz
명령처리 속도 0.9 MIPS/MHz 1.1 MIPS/MHz 1.35 MIPS/MHz 1.35 MIPS/MHz
기본 아키텍쳐 폰노이만 구조
온칩 캐시
수정된 하버드 구조
명령캐시/데이터캐시
수정된 하버드 구조
명령캐시/데이터캐시
수정된 하버드 구조
명령캐시/데이터캐시
곱셈기 32x8 32x8 32x16 32x16
적용 제품 코어 ARM720T
ARM7EJ-S
ARM7TDMI
ARM7TDMI-S
ARM920T
ARM922T
ARM926EJ-S
ARM946E-S
ARM1020E
ARM1022E
ARM1026EJ-S
ARM1136J-S
ARM1136JF-S
ARM1176JZ-S
ARM1176JZF-S



  • 주요 특징
    1. ARM사는 반도체 제조회사가 아니다.
      • 자신이 설계한 ARM 코어를 IP(Intellectual Property) 라이센스 형태로 제공
      • 이 라이센스를 계약한 반도체 회사는 자사에서 설계한 I/O회로를 추가하여 제품 모델 생산 판매
      • ARM사도 에뮬레이터와 같은 하드웨어 개발 툴이나 C컴파일러 같은 소프트웨어 개발툴은 자사 제품을 가짐
    2. 가격이 싸다
      • 구조가 간단하고 라이센스로 받아 사용하므로 개발 비용이 적게듦
      • ARM은 전세계 32비트 임베디드 RISC 시장의 약 75% 장악
    3. 소비전력이 적다.
      • 빠른 속도에서 발열이 적다
      • 모바일 기기에서 각광받음
    4. 칩 면적(die size)이 작다
      • 적은 트랜지스터의 수를 사용하고 초미세 공정으로 칩 면적이 작게 설계
    5. 고성능 32비트 RISC 프로세서이다
      • RISC 구조
      • 캐시 메모리(cache memory) 내장
      • 파이프라인 처리방식 (평균적으로 1사이클에 1명령)
      • 초기에는 폰 노이만(Von Neumann) 구조
      • ARM7 제품군부터는 수정된 하버드 구조(Modified Harvard Architecture)
        • 명령 페치와 데이터 액세스를 동시에 수행할 수 있도록 개선
      • 명령처리 구조를 단순화
        • 모든 데이터 처리나 연산 명령은 내부 레지스터를 중심으로 이루어짐
        • 레지스터와 메모리 사이의 데이터 이동은 별도의 로드(load) 및 스토어(store) 명령으로 수행
    6. 많은 범용 레지스터와 효율적인 명령 세트를 가짐
      • 32비트의 고정 길이 명령을 가짐
      • 명령의 종류가 적음
      • 연산 명령보다는 데이터 이동이나 제어처리 명령이 많음
      • 효율적인 명령 세트를 가짐
        • 대부분의 명령에서 조건부 실행이 가능
      • 16비트의 Thumb 명령
        • 메모리에서 코드의 집적 효율을 높임
        • Cortex-M3 모델부터 Thumb-2 명령을 사용 (Thumb 명령 개선)
    7. 명령 세트를 확장하기가 매우 용이한 구조(ISA : Instruction Set Architecture)
      • 보조 프로세서를 이용한 명령 세트 확장이 용이
        • DSP 보조 프로세서나 VFP 부동소수점 연산 보조 프로세서 등이 이에 해당
      • 내부 구조가 철저하게 모듈식
      • 캐시 메모리나 MMU/MPU 또는 Jazelle, TrustZone 등의 기능을 추가로 확장하는 것이 매우 용이
      • Cortex-M4
        • DSP 기능과 VFP 부동소수점 연산장치를 내장하고 있는 Cortex-M3의 상위 모델
      • Cortex-M7
        • M4를 더욱 고속화한 모델
    8. 엔디안 모드 지원
      • 바이트 머신(byte machine)
        • 각 메모리 번지에 바이트 단위로 명령 코드나 데이터가 저장
      • 리틀 엔디안(little endian) 지원
        • 4바이트의 워드가 낮은 번지에 LSB(Least Significant Byte)부터 차례로 저장
      • 빅 엔디안(big endian) 지원
        • 4바이트의 워드가 낮은 번지에 MSB(Most Significant Byte)부터 차례로 저장
      • Cortex-M 모델들은 리틀 엔디안 방식으로 고정


  • ARM의 AMBA 버스
    • AMBA: Advanced Microcontroller Bus Architecture
    • AHB: Advanced High-performance Bus
    • ASB: Advanced System Bus
    • APB: Advanced Peripheral Bus



ARM Cortex 제품군의 종류 및 특징
ARM
패밀리
ARM
아키텍쳐
ARM
코어
특징 처리속도
Cortex-A ARMv7-A Cortex-A5 VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 1~4 cores 1.57 DMIPS/MHz per core
Cortex-A8 (2005년) VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 13-stage superscalar pipeline 2.0 DMIPS/MHz
Cortex-A9 MPCore (2007년) Application profile, VFPv3 FPU, NEON, Thumb/Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, 1~4 SMP cores 2.50 DMIPS/MHz per core
Cortex-A15 MPCore (2010년) Application profile, VFPv4 FPU, NEON, Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, Large Physical Address Extensions(LPAE), Hardware virtualization, 1~4 SMP cores 3.5 ~ 4.1 DMIPS/MHz per core
Cortex-R ARMv7-R Cortex-R4
Cortex-R4F
Real-time profile, Thumb-2, FPU 1.50 DMIPS/MHz
Cortex-M ARMv6-M Cortex-M0
Cortex-M0+
(2009년) Microcontroller profile, Thumb-2 subset.
Hardware multiply instruction.(Cortex-M0+는 2012년)
0.9 DMIPS/MHz
Cortex-M1 (2007년) FPGA targeted, Microcontroller profile, Thumb-2 subset. 0.8 DMIPS/MHz
ARMv7-M Cortex-M3 (2004년) Microcontroller profile, Thumb/Thumb-2.
Hardware multiply and divide instruction
1.25 DMIPS/MHz
ARMv7E-M Cortex-M4
Cortex-M4F
(2010년) Microcontroller profile, both Thumb/Thumb-2, FPU. Hardware MAC, SIMD and divide instructions 1.25 DMIPS/MHz
1.27 DMIPS/MHz
ARMv7E-M Cortex-M7 (2014년) single and double precision FPU. 0~64KB instruction cache and data cache, 6-stage superscalar 2.14 DMIPS/MHz







댓글 없음:

댓글 쓰기