Why Arm?
Arm 기반 칩 출하
- 지난 30년간 2000억 개(초당 1개)
- 현재, 초당 900개의 Arm 기반 칩이 생산
1994년 ARM7TDMI 프로세서 개발
모바일 컴퓨팅에서 입지를 확보
- 1990년대 핀란드의 노키아 사가 GSM 폰을 개발
현재 저전력 임베디드 시장 점유율
- Arm 기반의 칩이 3/4를 차지
- 2000억 개의 누적 칩 중에 Cortex-M 마이크로 컨트롤러가 절반을 차지
스마트폰 혁명
- Cortex-A 애플리케이션 프로세서
- 2011년 big, Little 코어 출시
- 2011년 한 해에만 10억 개 칩 출하 - 매년 대폭 증가 추세
새로운 신 기술 - AI, 5G, IoT
- End-point, Edge, Cloud
- 안정성(stability), 신뢰성(reliability), 보안(security)
Computer Architecture vs. Organization
Architecture
- 컴퓨터가 할 수 있는 일을 기술
- 컴퓨터의 요구 사항과 설계 구현에 대한 기능적 설명
- 컴퓨터 시스템의 기능적 동작을 다루며, 컴퓨터를 설계할 때 computer organization에 앞서 기술한다
Organization
- 동작 속성들을 함께 연결하여 아키텍처 사양을 구현
- 구조적(computer structure) 관계를 다룸
즉, 컴퓨터 아키텍처는 시스템의 전반적인 디자인과 기능을 다루는 데 초점. 컴퓨터 조직은 시스템 내부의 하드웨어 구조와 동작에 대해 더 깊이 파고듦.
우리는 Arm Architecture의 상세 내용과 Organization 일부를 다룸.
Development of the Arm Architecture
v4T
- Halfword and signed(부호)
- Halfword / byte support
- System mode
: 특권 mode, 주로 OS와 관련된 기능을 처리하는 System mode지원(↔User mode)
- Thumb instruction set
Halfword란 2byte(16bit)의 크기 데이터를 의미, word란 32bit(4byte) 크기 데이터를 의미
Halfword vs Thumb
- Halfword
: 메모리나 데이터 버스에서 처리되는 데이터 단위(16bit)
- Thumb
: Arm 아키텍처에서 사용되는 명령어 집합
: 명령어 집합은 16bit로 구성
v5TE
- Improved Arm/Thumb(개선된 Arm/Thumb)
- Interworking(인터워킹)
: 서로 다른 명령어 집합이나 모드 간 상호 작용이 가능한 기능
- CLZ(Count Leading Zeros)
: 레지스터 내의 값에서 가장 상위 비트로부터 연속적으로 0이 나오는 개수를 세는 기능
- Saturated arithmetic(포화 산술)
: 숫자가 특정 범위를 벗어날 때 최대값 또는 최솟값으로 제한하여 overflow나 underflow를 방지하는 연산 방법
- DSP multiply-accumulate instructions
: 디지털 신호 처리(DSP)에서 주로 사용되며, 한 번에 곱셈과 덧셈을 동시에 수행하는 명령어
v6
- SIMD Instructions(단일 명령어, 다중 데이터)
: 한 번의 명령어 실행으로 여러 개의 데이터를 동시에 처리 가능
- Multi-processing(다중 처리)
: 여러 개의 프로세서 코어가 동시에 작업을 수행 가능
- v6 Memory architecture
- Unaligned data support
: 비정렬 데이터 지원
Extensions(추가 기능)
- Thumb-2(v6T2)
- TrustZone(v6Z)
: 보안 기능 강화, 안전영역/일반영역 구분
- Multicore(v6K)
- Thumb-only(v6-M)
: Thumb 명령어 만을 사용하게 함
v7
- Thumb-2
: Thumb 명령어 집합의 확장 버전
: 더 많은 기능 제공
- NEON
: 고성능 멀티미디어 확장 기술
- TrustZone
: 안전 영역/일반 영역 나눠 보안 강화
- Virtualization
: 하드웨어 가상화 제공
- Architecture Profiles
: 다양한 프로파일 제공.
: 프로파일은 특정 응용 분야에 최적화된 기능을 제공하는 정보의 집합
v8
- 64bit registers
: 64bit 레지스터 도입으로 인한 더 큰 메모리 주소 공간 지원
- Privilege Levels(권한 수준)
: 다양한 권한 수준 지원
- New exception model
: 새로운 예외 모델 도입
- New memory model
: 새로운 메모리 모델 도입
- New instructions
: 새로운 명령어 도입
- Armv7 compatible
: Armv7과의 호환성 유지
v8-M(Microcontroller)
: 32bit 아키텍처의 하위 세대로 마이크로 컨트롤러를 위해 주로 설계
- 32bit only
: 32bit만 지원
- Baseline / Mainline
: Baseline - 최소한의 요구 사항 충족
: Mainline - 더 많은 기능과 성능 제공
- TrustZone for Armv8-M
Note that implementations of the same architecture can be different:
- Cortex-M3
: architecture v7-M with a 3-stage integer pipeline
: 3단계의 정수 파이프라인 존재
- Cortex-M7
: architecture v7-M with a 6-stage integer pipeline
: 6단계의 정수 파이프라인 존재
정수 파이프라인
: 명령어를 실행하기 위해 여러 단계로 나뉜 프로세스
: 파이프라인이 더 많은 단계로 나뉠수록 명령어 처리 속도가 빨라짐
마이크로 컨트롤러란?
하나의 칩 안에 cpu/memory/io/timer ... 을 통합한 소형 컴퓨터. 주로 임베디드 시스템에 사용


비트가 1개일 때 2개 구분 가능
2개 일 때는 4개, 3개 일 때는 8개 구분 가능
즉 , arm 프로세서는 32bit 기반이기 때문에 2^32승 = 4기가 바이트 구분 가능함.
Arm Classic Processor Portfolio

Arm Cortex Advanced Processors

- Arm Cortex-A 패밀리
: 풍부한 운영 체제 및 서드 파티 애플리케이션에 적합한 응용 프로세서
: 고성능 처리, 다양한 인터페이스 및 운영체를 지원함.
- Arm Cortex-R 패밀리
: 실시간 신호 처리 및 제어 응용 분야에 적합한 임베디드 프로세서
: 실시간 작업 처리를 중시
: 안정성과 예측 가능한 동작이 필요한 환경에서 사용
- Arm Cortex-M 패밀리
: 마이크로 컨트롤러(MCU) 등의 분야에 적합한 프로세서
: 작고 저전력
: 신뢰성 높은 임베디드 시스템에서 사용
: Arm SecureCore는 보안이 중요한 응용 분야에 사용되는 임베디드 프로세서
Development of the Arm Architecture
Arm v4
- Halfword / signed halfword / byte support
- System mode
- Thumb instruction set
Arm v5
- Improved ARM/Thumb Interworking
- CLZ(Counting Leading Zone)
- Saturated arithmetic(포화 산술)
- DSP multiply-accumulate instructions
- Extensions: Jazelle(5TEJ)
: Thumb 명령어 세트와 java 바이트 코드를 직접 실행 가능
Arm v6
- SIMD Instructions
: Multiprocessing
: 단일 명령어 다중 데이터 처리
: 데이터 병렬 처리를 위한 명령어 집합, 한 번의 명령으로 여러 데이터를 동시 처리 가능
- v6 Memory architecture : Unaligned data support
Extensions
: Thumb2(6T2)
: TrustZone(6Z)
: Multicore(6K)
: Thumb only(6-M)
Arm v7
- Thumb2
- 7-A(Real time) : Hardware divide
- 7-M(Microcontroller) : Hardware divide, Thumb-2-only
Note
동일한 아키텍처도 다르게 구현될 수 있다
ex.
Cortex-A8
: ARMv7-A, with a 13 stage pipeline
Cortex-A9
: ARMv7-A, with an 8 stage pipeline
Arm Architecture Profiles
Application profile(Arm v7-A and Armv8)
- 특징이 많은 os와 서드파티 응용 프로그램을 위한 응용 프로세서
- MMU(메모리 관리 지원)
- 저전력에서 최고의 성능
- 멀티태스킹 운영체제 시스템 요구 사항에 영향을 받음
- 선택적 가상화 및 보안 확장 기능
Real-time profile(Armv7-R and Armv8-R)
- 실시간 신호 처리 및 제어 응용을 위한 내장형 프로세서
: 실시간 신호 처리 및 제어 응용에 적합하게 설계
- 보호된 메모리(MPU)
: 내장형 프로세서는 보호된 메모리를 제공하여 프로세스 간의 메모리 보호를 보장
: 시스템 안정성 높이고, 실시간 응용 프로그램의 신뢰성을 보장
- 낮은 대기 시간 및 예측 가능한 실시간 요구 사항
: 실시간 시스템에서 이벤트 발생 및 응답 시간을 보장하는데 필수적
- 전통적인 내장형 비지니스의 진화 경로
: 새로운 기술에 대응하기 위해 지속적인 개선을 함.
Arm v7 Profiles
Microcontroller profile(Armv6-M, Armv7-M, Armv8-M)
- Microcontroller(MCU)
: ASSP(응용표준제품) 및 SoC(시스템 온 칩)응용을 위한 프로세서
: 주로 제한된 리소스와 하드웨어에 의존하는 임베디드 시스템에서 사용
- 가장 낮은 게이트 수 진입 지점
: 마이크로 컨트롤러 프로세서는 최소한의 하드웨어 리소스로도 작동할 수 있도록 설계
: 제한된 공간 및 리소스로 인한 제약 사항을 고려하여 구현
- 결정론적이고 예측 가능한 동작을 우선 사항으로
- 깊은 임베디드 사용
: 깊은 임베디드(작은 메모리, 낮은 능력, 깊은 최적화)를 의미
Example Arm based system
시스템 온 칩(SoC)에 깊게 내장된 ARM 코어에 대해서...

- SoC 내에 깊게 내장된 ARM 코어
: ARM 코어는 SoC내부에 깊게 내장
: SoC의 핵심 구성 요소 중 하나
: 다양한 기능과 인터페이스 제공
- JTAG 또는 CoreSight 인터페이스를 통한 외부 디버그 및 추적
: 외부 디버그 및 추적은 JTAG 또는 CoreSight 인터페이스를 통해 수행
: 개발자는 이를 통해 코어의 동작 분석, 디버깅 가능
- 외부 및 내부 메모리를 모두 포함한 설계
: 시스템 요구 사항에 따라 다양한 폭, 속도 및 크기의 외부 및 내부 메모리를 가질 수 있음
- Arm 라이센스 된 CoreLink 주변 장치 포함 가능
: 코어에는 두 개의 인터럽트 소스만 존재하기에 인터럽트 컨트롤러와 같은 주변 장치를 포함할 수 있음.
: 또한 다른 주변 장치와 인터페이스를 추가할 수 있음
- Arm Artisan 물리적 IP 라이브러리에서 제공되는 칩 내 메모리 포함 기능
: Arm Artisan 물리적 IP 라이브러리에서 제공되는 칩 내 메모리를 포함 가능
- AMBA(고급 마이크로 컨트롤러 버스 아키텍처)를 사용하여 요소 연결
: AMBA는 SoC 내부의 다양한 주변 장치 및 컴포넌트 간 통신을 지원하는 표준 버스 아키텍처임.
- 선들의 묶음 => BUS
- 버스 규격은 -> BUS Protocol
- 요즘은 대부분 SoC(System of Chip) 사용
: system이란 하드웨어와 소프트웨어가 혼합된 것
Which Architecture is my processor?
