ARM Cortex-M

NXP 반도체 및 실리콘 랩스 (Energy Micro)의 ARM Cortex-M0 및 Cortex-M3 마이크로컨트롤러 IC
STM32F100C4T6B IC의 다이.
16 KB 플래시 메모리, 4 KB RAM이 장착된 24 MHz ARM Cortex-M3 마이크로컨트롤러. ST마이크로일렉트로닉스에서 제조.

ARM Cortex-M은 ARM 리미티드가 라이선스를 부여한 32비트 RISC ARM 아키텍처 프로세서 코어 그룹이다. 이 코어들은 저가형 및 에너지 효율적인 집적 회로에 최적화되어 있으며, 수백억 개의 소비자 기기에 내장되어 있다. 주로 마이크로컨트롤러 칩의 주요 구성 요소로 사용되지만, 다른 유형의 칩 내부에도 내장되기도 한다. Cortex-M 제품군은 Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M52, Cortex-M55, Cortex-M85로 구성된다. Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 코어에는 부동소수점 장치 (FPU) 옵션이 제공되며, 실리콘에 포함될 경우 이 코어들은 때때로 "Cortex-MxF"로 알려져 있으며, 여기서 'x'는 코어 변형을 나타낸다.

개요

32비트
연도코어
2004Cortex-M3
2007Cortex-M1
2009Cortex-M0
2010Cortex-M4
2012Cortex-M0+
2014Cortex-M7
2016Cortex-M23
2016Cortex-M33
2018Cortex-M35P
2020Cortex-M55
2022Cortex-M85
2023Cortex-M52

ARM Cortex-M 제품군은 마이크로컨트롤러, ASIC, ASSP, FPGA, SoC에 사용하도록 설계된 ARM 마이크로프로세서 코어이다. Cortex-M 코어는 일반적으로 전용 마이크로컨트롤러 칩으로 사용되지만, 전원 관리 컨트롤러, I/O 컨트롤러, 시스템 컨트롤러, 터치스크린 컨트롤러, 스마트 배터리 컨트롤러 및 센서 컨트롤러와 같은 SoC 칩 내부에도 "숨겨져" 있다.

Cortex-A 코어와의 주요 차이점은 Cortex-M 코어는 "완전한" 운영체제에 필수적인 것으로 간주되는 가상 메모리용 메모리 관리 장치 (MMU)가 없다는 것이다. Cortex-M 프로그램은 대신 베어 메탈 또는 Cortex-M을 지원하는 다양한 실시간 운영체제 중 하나에서 실행된다.

과거에는 8비트 마이크로컨트롤러가 매우 인기가 있었지만, 저가형 Cortex-M 칩의 가격이 하락하면서 Cortex-M은 점차 8비트 시장을 잠식하고 있다. Cortex-M은 32비트 수학 연산에 이점이 있는 응용 분야에서 8비트 칩을 대체하고 있으며, ARM7 및 ARM9과 같은 오래된 ARM 코어를 대체하고 있다.

특히, 대부분의 SD 카드 또는 플래시 드라이브 내부에 내장된 마모 평준화 컨트롤러는 (8비트) 8051 마이크로컨트롤러 또는 ARM CPU이다.

라이선스

ARM 리미티드는 자체 설계에 기반한 CPU 장치를 제조하거나 판매하지 않고, 대신 프로세서 아키텍처를 관심 있는 당사자에게 라이선스한다. Arm은 비용과 결과물에 따라 다양한 라이선스 조건을 제공한다. 모든 라이선스 사용자에게 Arm은 ARM 코어의 통합 가능한 하드웨어 설명뿐만 아니라 완전한 소프트웨어 개발 도구 세트와 ARM CPU를 포함하는 제조된 규소를 판매할 권리를 제공한다.

실리콘 맞춤화

통합 장치 제조업체(IDM)는 합성 가능한 RTL (베릴로그로 작성됨) 형태로 ARM 프로세서 IP를 받는다. 이 형태로 그들은 아키텍처 수준의 최적화 및 확장을 수행할 수 있다. 이를 통해 제조업체는 더 높은 클록 속도, 매우 낮은 전력 소비, 명령어 세트 확장(부동 소수점 포함), 크기 최적화, 디버그 지원 등과 같은 맞춤형 설계 목표를 달성할 수 있다. 특정 ARM CPU 칩에 어떤 구성 요소가 포함되어 있는지 확인하려면 제조업체의 데이터시트 및 관련 문서를 참조해야 한다.

Cortex-M 코어의 실리콘 옵션 중 일부는 다음과 같다.

ARM Cortex-M 선택적 구성 요소
ARM 코어Cortex
M0
Cortex
M0+
Cortex
M1
Cortex
M3
Cortex
M4
Cortex
M7
Cortex
M23
Cortex
M33
Cortex
M35P
Cortex
M52
Cortex
M55
Cortex
M85
SysTick 24비트 타이머선택 사항
(0,1)
선택 사항
(0, 1)
선택 사항
(0,1)
예
(1)
예
(1)
예
(1)
선택 사항
(0, 1, 2)
예
(1, 2)
예
(1, 2)
예
(1, 2)
예
(1, 2)
예
(1, 2)
단일 사이클 I/O 포트아니요선택 사항아니요아니요아니요아니요선택 사항아니요아니요아니요아니요아니요
비트 밴드 메모리아니요아니요아니요*선택 사항선택 사항선택 사항아니요아니요아니요아니요아니요아니요
메모리 보호 장치 (MPU)아니요선택 사항
(0, 8)
아니요선택 사항
(0,8)
선택 사항
(0, 8)
선택 사항
(0, 8, 16)
선택 사항
(0, 4, 8, 12, 16)
선택 사항
(0, 4, 8, 12, 16)
선택 사항
(최대 16)*
선택 사항
(0, 4, 8, 12, 16)
선택 사항
(0, 4, 8, 12, 16)
선택 사항
(0, 4, 8, 12, 16)
보안 속성
단위 (SAU) 및
스택 제한
아니요아니요아니요아니요아니요아니요선택 사항
(0, 4, 8)
선택 사항
(0, 4, 8)
선택 사항
(최대 8)*
선택 사항
(0, 4, 8)
선택 사항
(0, 4, 8)
선택 사항
(0, 4, 8)
명령어 캐시아니요아니요아니요아니요아니요선택 사항
(최대 64 KB)
아니요아니요선택 사항
(최대 16 KB)
선택 사항
(최대 64 KB)
선택 사항
(최대 64 KB)
선택 사항
(최대 64 KB)
데이터 캐시아니요아니요아니요아니요아니요선택 사항
(최대 64 KB)
아니요아니요아니요선택 사항
(최대 64 KB)
선택 사항
(최대 64 KB)
선택 사항
(최대 64 KB)
명령어 TCM
(ITCM) 메모리
아니요아니요선택 사항
(최대 1 MB)
아니요아니요선택 사항
(최대 16 MB)
아니요아니요아니요선택 사항
(최대 16 MB)
선택 사항
(최대 16 MB)
선택 사항
(최대 16 MB)
데이터 TCM
(DTCM) 메모리
아니요아니요선택 사항
(최대 1 MB)
아니요아니요선택 사항
(최대 16 MB)
아니요아니요아니요선택 사항
(최대 16 MB)
선택 사항
(최대 16 MB)
선택 사항
(최대 16 MB)
TCM 및 캐시용 ECC아니요아니요아니요아니요아니요아니요아니요아니요선택 사항선택 사항선택 사항선택 사항
벡터 테이블 오프셋
레지스터 (VTOR)
아니요선택 사항
(0,1)
선택 사항
(0,1)
선택 사항
(0,1)
선택 사항
(0,1)
선택 사항
(0,1)
선택 사항
(0,1,2)
예
(1,2)
예
(1,2)
예
(1,2)
예
(1,2)
예
(1,2)

추가 실리콘 옵션:

명령어 집합

Cortex-M0 / M0+ / M1은 ARMv6-M 아키텍처를 구현하고, Cortex-M3은 ARMv7-M 아키텍처를 구현하며, Cortex-M4 / Cortex-M7은 ARMv7E-M 아키텍처를 구현하고, Cortex-M23 / M33 / M35P는 ARMv8-M 아키텍처를 구현하며, Cortex-M52 / M55 / M85는 ARMv8.1-M 아키텍처를 구현한다. 이 아키텍처들은 ARMv6-M에서 ARMv7-M, ARMv7E-M으로 바이너리 명령어 상위 호환이 된다. Cortex-M0 / Cortex-M0+ / Cortex-M1에서 사용할 수 있는 바이너리 명령어는 Cortex-M3 / Cortex-M4 / Cortex-M7에서 수정 없이 실행할 수 있다. Cortex-M3에서 사용할 수 있는 바이너리 명령어는 Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P에서 수정 없이 실행할 수 있다. Cortex-M 아키텍처에서는 Thumb-1 및 Thumb-2 명령어 세트만 지원되며, 기존의 32비트 ARM 명령어 세트는 지원되지 않는다.

모든 Cortex-M 코어는 대부분의 Thumb-1, 일부 Thumb-2를 포함하는 공통 명령어 하위 집합을 구현하며, 32비트 결과 곱셈도 포함한다. Cortex-M0 / Cortex-M0+ / Cortex-M1 / Cortex-M23은 가장 작은 실리콘 다이를 만들기 위해 설계되었으므로 Cortex-M 제품군 중 가장 적은 수의 명령어를 가지고 있다.

Cortex-M0 / M0+ / M1은 ARMv7-M 아키텍처에 추가된 새로운 명령어(CBZ, CBNZ, IT)를 제외한 Thumb-1 명령어를 포함한다. Cortex-M0 / M0+ / M1은 Thumb-2 명령어의 작은 하위 집합(BL, DMB, DSB, ISB, MRS, MSR)을 포함한다. Cortex-M3 / M4 / M7 / M33 / M35P는 모든 기본 Thumb-1 및 Thumb-2 명령어를 가지고 있다. Cortex-M3은 3개의 Thumb-1 명령어, 모든 Thumb-2 명령어, 하드웨어 정수 나눗셈 및 포화 연산 명령어를 추가한다. Cortex-M4는 DSP 명령어와 선택적 단정밀도 부동소수점 장치 (VFPv4-SP)를 추가한다. Cortex-M7은 선택적 배정밀도 FPU (VFPv5)를 추가한다. Cortex-M23 / M33 / M35P / M52 / M55 / M85는 TrustZone 명령어를 추가한다.

ARM Cortex-M 명령어 변형
Arm 코어Cortex
M0
Cortex
M0+
Cortex
M1
Cortex
M3
Cortex
M4
Cortex
M7
Cortex
M23
Cortex
M33
Cortex
M35P
Cortex
M52
Cortex
M55
Cortex
M85
ARM 아키텍처ARMv6-M
ARMv6-M
ARMv6-M
ARMv7-M
ARMv7E-M
ARMv7E-M
ARMv8-M
기준
ARMv8-M
주류
ARMv8-M
주류
Armv8.1-M
주류
Armv8.1-M
주류
Armv8.1-M
주류
컴퓨터 구조폰
노이만
폰
노이만
폰
노이만
하버드하버드하버드폰
노이만
하버드하버드하버드하버드하버드
명령어 파이프라인3단계2단계3단계3단계3단계6단계2단계3단계3단계4단계4-5단계7단계
인터럽트 지연 시간
(대기 상태 0 메모리)
16 사이클15 사이클NMI 23,
IRQ 26
12 사이클12 사이클12 사이클,
최악 14
사례
15 사이클,
NS IRQ 보안
24
12 사이클,
NS IRQ 보안
21
TBDTBDTBDTBD
Thumb-1 명령어대부분대부분대부분전체전체전체대부분전체전체전체전체전체
Thumb-2 명령어일부일부일부전체전체전체일부전체전체전체전체전체
곱셈 명령어
32×32 = 32비트 결과
예예예예예예예예예예예예
곱셈 명령어
32×32 = 64비트 결과
아니요아니요아니요예예예아니요예예예예예
나눗셈 명령어
32/32 = 32비트 몫
아니요아니요아니요예예예예예예예예예
포화 수학 명령어아니요아니요아니요일부예예아니요예예예예예
DSP 명령어아니요아니요아니요아니요예예아니요선택 사항선택 사항예예예
반정밀도 (HP)
부동소수점 명령어
아니요아니요아니요아니요아니요아니요아니요아니요아니요선택 사항선택 사항선택 사항
단정밀도 (SP)
부동소수점 명령어
아니요아니요아니요아니요선택 사항선택 사항아니요선택 사항선택 사항선택 사항선택 사항선택 사항
배정밀도 (DP)
부동소수점 명령어
아니요아니요아니요아니요아니요선택 사항아니요아니요아니요선택 사항선택 사항선택 사항
헬륨 벡터 명령어아니요아니요아니요아니요아니요아니요아니요아니요아니요선택 사항선택 사항선택 사항
TrustZone 보안 명령어아니요아니요아니요아니요아니요아니요선택 사항선택 사항선택 사항선택 사항선택 사항예
보조 프로세서 명령어아니요아니요아니요아니요아니요아니요아니요선택 사항선택 사항선택 사항선택 사항선택 사항
ARM 사용자 정의 명령어 (ACI)아니요아니요아니요아니요아니요아니요아니요선택 사항아니요선택 사항선택 사항선택 사항
포인터 인증 및 분기 대상
식별 (PACBTI) 명령어
아니요아니요아니요아니요아니요아니요아니요아니요아니요선택 사항아니요선택 사항
ARM Cortex-M 명령어 그룹
그룹명령어
비트 수
명령어Cortex
M0, M0+, M1
Cortex
M3
Cortex
M4
Cortex
M7
Cortex
M23
Cortex
M33
Cortex
M35P
Cortex
M52
Cortex
M55
Cortex
M85
Thumb-116ADC, ADD, ADR, AND, ASR, B, BIC, BKPT, BLX, BX, CMN, CMP, CPS, EOR, LDM, LDR, LDRB, LDRH, LDRSB, LDRSH, LSL, LSR, MOV, MUL, MVN, NOP, ORR, POP, PUSH, REV, REV16, REVSH, ROR, RSB, SBC, SEV, STM, STR, STRB, STRH, SUB, SVC, SXTB, SXTH, TST, UXTB, UXTH, WFE, WFI, YIELD예예예예예예예예예예
Thumb-116CBNZ, CBZ아니요예예예예예예예예예
Thumb-116IT아니요예예예아니요예예예예예
Thumb-232BL, DMB, DSB, ISB, MRS, MSR예예예예예예예예예예
Thumb-232SDIV, UDIV, MOVT, MOVW, B.W, LDREX, LDREXB, LDREXH, STREX, STREXB, STREXH아니요예예예예예예예예예
Thumb-232ADC, ADD, ADR, AND, ASR, B, BFC, BFI, BIC, CDP, CLREX, CLZ, CMN, CMP, DBG, EOR, LDC, LDM, LDR, LDRB, LDRBT, LDRD, LDRH, LDRHT, LDRSB, LDRSBT, LDRSH, LDRSHT, LDRT, LSL, LSR, MCR, MCRR, MLA, MLS, MRC, MRRC, MUL, MVN, NOP, ORN, ORR, PLD, PLDW, PLI, POP, PUSH, RBIT, REV, REV16, REVSH, ROR, RRX, RSB, SBC, SBFX, SEV, SMLAL, SMULL, SSAT, STC, STM, STR, STRB, STRBT, STRD, STRH, STRHT, STRT, SUB, SXTB, SXTH, TBB, TBH, TEQ, TST, UBFX, UMLAL, UMULL, USAT, UXTB, UXTH, WFE, WFI, YIELD아니요예예예아니요예예예예예
DSP32PKH, QADD, QADD16, QADD8, QASX, QDADD, QDSUB, QSAX, QSUB, QSUB16, QSUB8, SADD16, SADD8, SASX, SEL, SHADD16, SHADD8, SHASX, SHSAX, SHSUB16, SHSUB8, SMLABB, SMLABT, SMLATB, SMLATT, SMLAD, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, SMLAWB, SMLAWT, SMLSD, SMLSLD, SMMLA, SMMLS, SMMUL, SMUAD, SMULBB, SMULBT, SMULTT, SMULTB, SMULWT, SMULWB, SMUSD, SSAT16, SSAX, SSUB16, SSUB8, SXTAB, SXTAB16, SXTAH, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSAX, UHSUB16, UHSUB8, UMAAL, UQADD16, UQADD8, UQASX, UQSAX, UQSUB16, UQSUB8, USAD8, USADA8, USAT16, USAX, USUB16, USUB8, UXTAB, UXTAB16, UXTAH, UXTB16아니요아니요예예아니요선택 사항선택 사항예예예
SP Float32VABS, VADD, VCMP, VCMPE, VCVT, VCVTR, VDIV, VLDM, VLDR, VMLA, VMLS, VMOV, VMRS, VMSR, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VPOP, VPUSH, VSQRT, VSTM, VSTR, VSUB아니요아니요선택 사항선택 사항아니요선택 사항선택 사항선택 사항선택 사항선택 사항
DP Float32VCVTA, VCVTM, VCVTN, VCVTP, VMAXNM, VMINNM, VRINTA, VRINTM, VRINTN, VRINTP, VRINTR, VRINTX, VRINTZ, VSEL아니요아니요아니요선택 사항아니요아니요아니요선택 사항선택 사항선택 사항
획득/해제32LDA, LDAB, LDAH, LDAEX, LDAEXB, LDAEXH, STL, STLB, STLH, STLEX, STLEXB, STLEXH아니요아니요아니요아니요예예예예예예
TrustZone16BLXNS, BXNS아니요아니요아니요아니요선택 사항선택 사항선택 사항선택 사항선택 사항예
32SG, TT, TTT, TTA, TTAT
보조 프로세서16CDP, CDP2, MCR, MCR2, MCRR, MCRR2, MRC, MRC2, MRRC, MRRC2아니요아니요아니요아니요아니요선택 사항선택 사항선택 사항선택 사항선택 사항
ACI32CX1, CX1A, CX2, CX2A, CX3, CX3A, CX1D, CX1DA, CX2D, CX2DA, CX3D, CX3DA, VCX1, VCX1A, VCX2, VCX2A, VCX3, VCX3A아니요아니요아니요아니요아니요선택 사항아니요선택 사항선택 사항선택 사항
PACBTI32AUT, AUTG, BTI, BXAUT, PAC, PACBTI, PACG아니요아니요아니요아니요아니요아니요아니요선택 사항아니요선택 사항

사용 중단

ARM Cortex-M 시리즈를 위한 ARM 아키텍처는 이전 레거시 코어에서 일부 기능을 제거했다.

32비트 ARM 명령어 세트의 기능은 Thumb-1 및 Thumb-2 명령어 세트에 의해 여러 가지 방식으로 복제되지만, 일부 ARM 기능은 유사한 기능을 가지고 있지 않다.

16비트 Thumb-1 명령어 세트는 ARMv4T 아키텍처를 가진 기존 ARM7T 코어에 처음 출시된 이후 시간이 지남에 따라 진화했다. 각 기존 ARMv5 / ARMv6 / ARMv6T2 아키텍처가 출시됨에 따라 새로운 Thumb-1 명령어가 추가되었다. 일부 16비트 Thumb-1 명령어는 Cortex-M 코어에서 제거되었다.

Cortex-M0

Cortex-M0
명령어 집합ARMv6-M (Thumb-1 (대부분),
Thumb-2 (일부))

Cortex-M0 코어는 작은 실리콘 다이 크기와 가장 낮은 가격의 칩에 사용하기에 최적화되어 있다.

Cortex-M0 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

nRF51822

다음 마이크로컨트롤러는 Cortex-M0 코어를 기반으로 한다.

다음 칩은 Cortex-M0을 보조 코어로 사용한다.

Cortex-M0+

Cortex-M0+
명령어 집합Thumb-1 (대부분),
Thumb-2 (일부)
마이크로아키텍처ARMv6-M
NXP (프리스케일 세미컨덕터) KL25Z128VLK (Kinetis L)가 장착된 FRDM-KL25Z 보드

Cortex-M0+는 Cortex-M0의 최적화된 상위 집합이다. Cortex-M0+는 Cortex-M0와 완벽한 명령어 세트 호환성을 가지므로 동일한 컴파일러 및 디버그 도구를 사용할 수 있다. Cortex-M0+ 파이프라인은 3단계에서 2단계로 줄어들어 전력 사용량을 낮추고 성능을 향상시킨다 (분기가 한 사이클 더 적게 걸리므로 평균 IPC가 더 높다). 기존 Cortex-M0의 디버그 기능 외에도 마이크로 트레이스 버퍼(MTB)라는 실리콘 옵션을 Cortex-M0+에 추가할 수 있으며, 이는 간단한 명령어 트레이스 버퍼를 제공한다. Cortex-M0+는 또한 메모리 보호 장치(MPU) 및 벡터 테이블 재배치와 같은 Cortex-M3 및 Cortex-M4 기능을 실리콘 옵션으로 추가할 수 있다.

Cortex-M0+ 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

다음 마이크로컨트롤러는 Cortex-M0+ 코어를 기반으로 한다.

다음 칩은 Cortex-M0+를 보조 코어로 사용한다.

가장 작은 ARM 마이크로컨트롤러는 Cortex-M0+ 유형이다 (2014년 기준, 칩 스케일 패키지에서 1.6 mm x 2 mm로 가장 작은 것은 Kinetis KL03이다).

2018년 6월 21일, "세계에서 가장 작은 컴퓨터" 또는 컴퓨터 장치가 발표되었다 – 미시간 대학교 연구원들이 2018년 VLSI 기술 및 회로 심포지엄에서 "A 0.04mm3 16nW 무선 및 배터리 없는 센서 시스템, 통합 Cortex-M0+ 프로세서 및 셀룰러 온도 측정을 위한 광통신" 논문과 함께 ARM Cortex-M0+를 기반으로 한 (RAM 및 태양광 발전 기반의 무선 송수신기를 포함한) 장치이다. – 이 장치는 2018년 3월에 IBM이 이전에 주장했던 세계 기록 크기 컴퓨터보다 10분의 1 크기로, 소금 알갱이보다 작다.

Cortex-M1

Cortex-M1
명령어 집합Thumb-1 (대부분),
Thumb-2 (일부)
마이크로아키텍처ARMv6-M

Cortex-M1은 FPGA 칩에 로드되도록 특별히 설계된 최적화된 코어이다.

Cortex-M1 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

다음 공급업체는 Cortex-M1을 FPGA 칩의 소프트 코어로 지원한다.

Cortex-M3

Cortex-M3
명령어 집합Thumb-1, Thumb-2,
포화 (일부), 나눗셈
마이크로아키텍처ARMv7-M
아트멜 ATSAM3X8E (ARM Cortex-M3 코어) 마이크로컨트롤러가 장착된 아두이노 Due 보드
NXP LPC1343이 장착된 LPCXpresso 개발 보드

Cortex-M3 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

다음 마이크로컨트롤러는 Cortex-M3 코어를 기반으로 한다.

다음 칩은 Cortex-M3를 보조 코어로 사용한다.

다음 FPGA에는 Cortex-M3 코어가 포함되어 있다.

다음 공급업체는 Cortex-M3를 FPGA 칩의 소프트 코어로 지원한다.

Cortex-M4

Cortex-M4
명령어 집합Thumb-1, Thumb-2,
포화, DSP,
나눗셈, FPU (SP)
마이크로아키텍처ARMv7E-M
Silicon Labs (Energy Micro) Wonder Gecko STK Board with EFM32WG990
TI LM4F120이 장착된 Stellaris Launchpad 보드

개념적으로 Cortex-M4는 Cortex-M3에 DSP 명령어와 선택적 부동소수점 장치 (FPU)를 더한 것이다. FPU가 있는 코어는 Cortex-M4F로 알려져 있다.

Cortex-M4 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

마이크로 비트 v2의 nRF52833
STM32F407IGH6

다음 마이크로컨트롤러는 Cortex-M4 코어를 기반으로 한다.

다음 마이크로컨트롤러는 Cortex-M4F (M4 + FPU) 코어를 기반으로 한다.

다음 칩은 Cortex-M4 또는 M4F를 보조 코어로 사용한다.

Cortex-M7

Cortex-M7
명령어 집합Thumb-1, Thumb-2,
포화, DSP,
나눗셈, FPU (SP & DP)
마이크로아키텍처ARMv7E-M
Arduino GIGA R1 WiFi 보드와 (듀얼 코어 ARM Cortex-M7 + ARM Cortex-M4) STM32H747XIH6 마이크로컨트롤러

Cortex-M7은 이전 Cortex-M4보다 거의 두 배의 전력 효율을 가진 고성능 코어이다. 분기 예측을 포함한 6단계 슈퍼스칼라 파이프라인과 단정밀도 및 선택적으로 배정밀도 연산이 가능한 선택적 부동소수점 장치를 특징으로 한다. 명령어 및 데이터 버스는 이전 32비트 버스에서 64비트 폭으로 확장되었다. 코어에 FPU가 포함되어 있으면 Cortex-M7F로 알려져 있고, 그렇지 않으면 Cortex-M7이다.

Cortex-M7 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

다음 마이크로컨트롤러는 Cortex-M7 코어를 기반으로 한다.

Cortex-M23

Cortex-M23
명령어 집합Thumb-1 (대부분),
Thumb-2 (일부),
나눗셈, TrustZone
마이크로아키텍처ARMv8-M 기준

Cortex-M23 코어는 2016년 10월에 발표되었으며, 2015년 11월에 이전에 발표된 ARMv8-M 아키텍처를 기반으로 한다. 개념적으로 Cortex-M23은 Cortex-M0+와 유사하며, 정수 나눗셈 명령어와 TrustZone 보안 기능이 추가되었고, 2단계 명령어 파이프라인도 가지고 있다.

Cortex-M23 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

다음 마이크로컨트롤러는 Cortex-M23 코어를 기반으로 한다.

Cortex-M33

Cortex-M33
명령어 집합Thumb-1, Thumb-2,
포화, DSP,
나눗셈, FPU (SP),
TrustZone, 코프로세서
마이크로아키텍처ARMv8-M Mainline

Cortex-M33 코어는 2016년 10월에 발표되었으며, 2015년 11월에 이전에 발표된 ARMv8-M 아키텍처를 기반으로 한다. 개념적으로 Cortex-M33은 Cortex-M4와 Cortex-M23의 교차점과 유사하며, 3단계 명령어 파이프라인도 가지고 있다.

Cortex-M33 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

다음 마이크로컨트롤러는 Cortex-M33 코어를 기반으로 한다.

다음 칩은 Cortex-M33 또는 M33F를 보조 코어로 사용한다.

Cortex-M35P

Cortex-M35P
명령어 집합Thumb-1, Thumb-2,
포화, DSP,
나눗셈, FPU (SP),
TrustZone, 코프로세서
마이크로아키텍처ARMv8-M Mainline

Cortex-M35P 코어는 2018년 5월에 발표되었으며 Armv8-M 아키텍처를 기반으로 한다. 이는 새로운 명령어 캐시와 ARM SecurCore 제품군에서 가져온 새로운 변조 방지 하드웨어 개념, 구성 가능한 패리티 및 ECC 기능을 추가한 Cortex-M33 코어로 볼 수 있다.

현재 Cortex-M35P에 대한 정보는 기술 참조 매뉴얼 및 일반 사용자 가이드가 아직 출시되지 않았기 때문에 제한적이다.

칩

다음 마이크로컨트롤러는 Cortex-M35P 코어를 기반으로 한다.

Cortex-M52

Cortex-M52
명령어 집합Thumb-1, Thumb-2,
포화, DSP,
나눗셈, FPU (VFPv5),
TrustZone, 코프로세서, MVE
마이크로아키텍처ARMv8.1-M Mainline Helium

Cortex-M52 코어는 2023년 11월에 발표되었으며 Armv8.1-M 아키텍처를 기반으로 한다. 개념적으로는 Cortex-M33과 Cortex-M55의 교차점으로 볼 수 있다. 주요 차이점은 Helium 코프로세서가 단일 비트(M55는 듀얼 비트)이며, 애플리케이션 전환을 용이하게 하기 위해 M33과 유사한 32비트 메인 버스를 가지고 있다는 것이다. 4단계 명령어 파이프라인을 가지고 있다.

Cortex-M52 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

다음 마이크로컨트롤러는 Cortex M52 코어를 기반으로 한다.

Cortex-M55

Cortex-M55
명령어 집합Thumb-1, Thumb-2,
포화, DSP,
나눗셈, FPU (VFPv5),
TrustZone, 코프로세서, MVE
마이크로아키텍처ARMv8.1-M Mainline Helium

Cortex-M55 코어는 2020년 2월에 발표되었으며 Armv8.1-M 아키텍처를 기반으로 한다. 4단계 또는 5단계 명령어 파이프라인을 가지고 있다.

Cortex-M55 코어의 주요 기능은 다음과 같다.

실리콘 옵션:

칩

Cortex-M85

Cortex-M85
명령어 집합Thumb-1, Thumb-2,
포화, DSP,
나눗셈, FPU (VFPv5),
TrustZone, 코프로세서, MVE
마이크로아키텍처ARMv8.1-M Mainline Helium

Cortex-M85 코어는 2022년 4월에 발표되었으며 Armv8.1-M 아키텍처를 기반으로 한다. 7단계 명령어 파이프라인을 가지고 있다.

실리콘 옵션:

칩

개발 도구

문서

ARM 칩에 대한 문서는 광범위하다. 과거에는 8비트 마이크로컨트롤러 문서가 일반적으로 단일 문서에 담겼지만, 마이크로컨트롤러가 진화함에 따라 이를 지원하는 데 필요한 모든 것도 진화했다. ARM 칩의 문서 패키지는 일반적으로 IC 제조업체와 CPU 코어 공급업체(ARM 리미티드)의 문서 모음으로 구성된다.

일반적인 하향식 문서 트리는 다음과 같다.

문서 트리 (위에서 아래로)
  1. IC 제조업체 웹사이트.
  2. IC 제조업체 마케팅 슬라이드.
  3. 정확한 물리적 칩에 대한 IC 제조업체 데이터시트.
  4. 물리적 칩 제품군의 일반적인 주변 장치 및 측면을 설명하는 IC 제조업체 참조 매뉴얼.
  5. ARM 코어 웹사이트.
  6. ARM 코어 일반 사용자 가이드.
  7. ARM 코어 기술 참조 매뉴얼.
  8. ARM 아키텍처 참조 매뉴얼.

IC 제조업체는 평가 보드 사용자 매뉴얼, 애플리케이션 노트, 시작 가이드, 소프트웨어 라이브러리 문서, 오류 정정(errata) 등 추가 문서를 가지고 있다. 공식 Arm 문서 링크는 외부 링크 섹션을 참조한다.

같이 보기

각주

  1. ↑ ARM Cortex-M 웹사이트; ARM Limited.
  2. 1 2 “Cortex-M0 Home”. 《ARM Limited》.
  3. ↑ “Cortex-M0+ Home”. 《ARM Limited》.
  4. 1 2 “Cortex-M1 Home”. 《ARM Limited》.
  5. ↑ “Cortex-M3 Home”. 《ARM Limited》.
  6. ↑ “Cortex-M4 Home”. 《ARM Limited》.
  7. 1 2 3 “Cortex-M7 Home”. 《ARM Limited》.
  8. 1 2 “Cortex-M23 Home”. 《ARM Limited》.
  9. 1 2 “Cortex-M33 Home”. 《ARM Limited》.
  10. 1 2 3 “Cortex-M35P Home”. 《ARM Limited》.
  11. 1 2 3 “Cortex-M52 Home”. 《ARM Limited》.
  12. 1 2 3 “Cortex-M55 Home”. 《ARM Limited》.
  13. 1 2 “Cortex-M85 Home”. 《ARM Limited》.
  14. ↑ "On Hacking MicroSD Cards".
  15. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 “ARMv6-M Architecture Reference Manual”. 《ARM Limited》.
  16. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 “ARMv7-M Architecture Reference Manual”. 《ARM Limited》.
  17. 1 2 3 4 Cortex-M3 임베디드 소프트웨어 개발; App Note 179; ARM Limited.
  18. 1 2 3 “Cortex-M0 Technical Reference Manual”. 《ARM Limited》.
  19. 1 2 3 4 “Cortex-M0+ Technical Reference Manual”. 《ARM Limited》.
  20. 1 2 3 “Cortex-M1 Technical Reference Manual”. 《ARM Limited》.
  21. 1 2 3 “Cortex-M3 Technical Reference Manual”. 《ARM Limited》.
  22. 1 2 3 “Cortex-M4 Technical Reference Manual”. 《ARM Limited》.
  23. 1 2 3 4 “Cortex-M7 Technical Reference Manual”. 《ARM Limited》.
  24. 1 2 3 “Cortex-M23 Technical Reference Manual”. 《ARM Limited》.
  25. 1 2 3 “Cortex-M33 Technical Reference Manual”. 《ARM Limited》.
  26. 1 2 “Cortex-M52 Technical Reference Manual”. 《ARM Limited》.
  27. 1 2 “Cortex-M55 Technical Reference Manual”. 《ARM Limited》.
  28. 1 2 “Cortex-M85 Technical Reference Manual”. 《ARM Limited》.
  29. 1 2 3 “Cortex-M 시스템 설계 키트 (CMSDK)”. 《ARM 홀딩스》. 2016년 3월 4일에 원본 문서에서 보존된 문서.
  30. 1 2 3 4 5 6 7 8 9 10 ARM Cortex-M 메모리 배리어 명령어 프로그래밍 가이드; 섹션 3.6 시스템 구현 요구 사항; AppNote 321; ARM Limited.
  31. 1 2 3 4 5 6 7 8 9 10 11 12 “ARMv8-M Architecture Reference Manual”. 《ARM Limited》.
  32. ↑ 32비트 PIC 및 SAM 마이크로컨트롤러; Microchip.
  33. ↑ 핑가스, 존 (2014년 2월 25일). “프리스케일, 세계에서 가장 작은 ARM 컨트롤러 칩을 더욱 작게 만든다”. 2014년 10월 2일에 확인함.
  34. ↑ GOWIN Semiconductor, 자사 FPGA 제품군을 위한 ARM Cortex-M1 프로세서 무료 제공으로 ARM DesignStart 합류
  35. ↑ Cortex-M1 DesignStart FPGA XilinxEdition; ARM Limited.
  36. ↑ 사다시반, 샴. “ARM Cortex-M3 프로세서 소개” (PDF). ARM Limited. 2014년 7월 26일에 원본 문서 (PDF)에서 보존된 문서.
  37. ↑ “Samsung Exynos 7420 Deep Dive - 현대 14nm SoC 내부”. AnandTech. 2015년 6월 30일에 원본 문서에서 보존된 문서. 2015년 6월 15일에 확인함.
  38. ↑ Cortex-M3 DesignStart FPGA XilinxEdition
  39. ↑ “ARM, 고성능 Cortex-M7 프로세서로 MCU 시장에 활력 불어넣어” (보도자료). 《ARM Limited》. 2014년 9월 24일.
  40. 1 2 3 4 “새로운 ARM Cortex-M 프로세서, 보안 IoT를 위한 차세대 산업 표준 제공; ARM Limited; 2016년 10월 25일.” (PDF). 2017년 12월 1일에 원본 문서 (PDF)에서 보존된 문서. 2025년 11월 7일에 확인함.
  41. 1 2 ARMv8-M 아키텍처, 스마트 임베디드 장치의 보안 간소화; ARM Limited; 2015년 11월 10일.
  42. ↑ “nRF54H20 - Nordic Semiconductor” (영어). 《www.nordicsemi.com》. 2024년 10월 30일에 확인함.
  43. ↑ “세계 최초 Cortex-M52 프로세서를 특징으로 하는 듀얼 코어 실시간 제어 MCU, Electronica China 2024에서 공개”.

더 읽어보기

외부 링크

ARM Cortex-M 공식 문서
ARM
코어
비트
폭
ARM
웹사이트
ARM 일반
사용자 가이드
ARM 기술
참조 매뉴얼
ARM 아키텍처
참조 매뉴얼
Cortex-M032링크링크링크ARMv6-M
Cortex-M0+32링크링크링크ARMv6-M
Cortex-M132링크링크링크ARMv6-M
Cortex-M332링크링크링크ARMv7-M
Cortex-M432링크링크링크ARMv7E-M
Cortex-M732링크링크링크ARMv7E-M
Cortex-M2332링크링크링크ARMv8-M
Cortex-M3332링크링크링크ARMv8-M
Cortex-M35P32링크N/AN/AARMv8-M
Cortex-M5232링크링크링크ARMv8.1-M
Cortex-M5532링크링크링크ARMv8.1-M
Cortex-M8532링크링크링크ARMv8.1-M
빠른 참조 카드
마이그레이션
기타