ARM9

**ARM9**은 ARM 홀딩스가 마이크로컨트롤러용으로 라이선스한 32비트 RISC ARM 아키텍처 프로세서 코어 그룹이다. ARM9 코어 제품군은 ARM9TDMI, ARM940T, ARM9E-S, ARM966E-S, ARM920T, ARM922T, ARM946E-S, ARM9EJ-S, ARM926EJ-S, ARM968E-S, ARM996HS로 구성된다. ARM9 코어는 **1998년**부터 **2006년**까지 출시되었으며, 더 이상 새로운 IC 설계에 권장되지 않고, 최신 대안은 ARM Cortex-M 코어이다.

## 개요

이 설계 세대에서 ARM은 폰 노이만 구조 (프린스턴 아키텍처)에서 별도의 명령어 및 데이터 버스 (및 캐시)를 갖는 (수정된; 즉 분할된 캐시) 하버드 아키텍처로 전환하여 잠재적 속도를 크게 증가시켰다. 이러한 코어를 통합하는 대부분의 실리콘 칩은 분리된 중앙 처리 장치 캐시 및 밀접하게 결합된 메모리의 반대편에서 두 주소 버스를 결합하여 이를 수정된 하버드 아키텍처 칩으로 패키징한다.

두 가지 서브패밀리가 있으며, 서로 다른 ARM 아키텍처 버전을 구현한다.

### ARM7 코어와의 차이점
더 많은 트랜지스터를 사용하여 ARM7 코어에 비해 주요 개선 사항은 다음과 같다.

* 열 발생 감소 및 과열 위험 감소.
* 클럭 속도 개선. 3단계 파이프라인에서 5단계 파이프라인으로 전환하여 동일한 실리콘 제조 공정에서 클럭 속도를 약 두 배로 높일 수 있다.
* 사이클 수 개선. 많은 수정되지 않은 ARM7 바이너리가 ARM9 코어에서 실행하는 데 약 30% 더 적은 사이클이 걸리는 것으로 측정되었다. 주요 개선 사항은 다음과 같다.
** 더 빠른 로드 및 스토어; 많은 명령어가 이제 단 1사이클만 소요된다. 이는 수정된 하버드 아키텍처 (버스 및 캐시 경합 감소)와 새로운 파이프라인 단계 모두에 의해 도움을 받는다.
** 파이프라인 인터록 노출로, 컴파일러 최적화를 통해 단계 간의 블로케이지를 줄일 수 있다.

또한 일부 ARM9 코어는 디지털 신호 처리 알고리즘의 보다 효율적인 구현을 지원하기 위해 곱셈-누산과 같은 "향상된 DSP" 명령어를 통합한다.

폰 노이만 아키텍처에서 전환하는 것은 비통합 캐시를 사용하는 것을 의미했으며, 따라서 명령어 인출은 데이터를 쫓아내지 않는다 (그 반대도 마찬가지). ARM9 코어는 별도의 데이터 및 주소 버스 신호를 가지고 있으며, 칩 설계자는 이를 다양한 방식으로 사용한다. 대부분의 경우 적어도 주소 공간의 일부를 폰 노이만 방식으로 연결하여 명령어와 데이터 모두에 사용하며, 일반적으로 AHB 인터커넥터에 연결하여 DRAM 인터페이스 및 NOR 플래시 메모리와 함께 사용할 수 있는 외부 버스 인터페이스를 통해 연결한다. 이러한 하이브리드는 더 이상 순수한 하버드 아키텍처 프로세서가 아니다.

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

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

## 코어

ARM MPCore 제품군 멀티코어 프로세서는 비대칭 (AMP) 또는 대칭 (SMP) 멀티프로세서 프로그래밍 패러다임을 사용하여 작성된 소프트웨어를 지원한다. AMP 개발을 위해 MPCore 내의 각 중앙 처리 장치는 독립적인 프로세서로 간주될 수 있으며 따라서 전통적인 단일 프로세서 개발 전략을 따를 수 있다.

### ARM9TDMI

ARM9TDMI는 인기 있는 ARM7TDMI 코어의 후속 제품이며, ARMv4T 아키텍처를 기반으로 한다. 이를 기반으로 한 코어는 32비트 ARM 및 16비트 썸 명령어 세트 모두를 지원하며 다음을 포함한다.
* 16&nbsp;KB의 I/D 캐시와 MMU를 갖춘 ARM920T
* 8&nbsp;KB의 I/D 캐시와 MMU를 갖춘 ARM922T
* 캐시 및 메모리 보호 장치(MPU)를 갖춘 ARM940T

### ARM9E-S 및 ARM9EJ-S
ARM9E와 그 형제인 ARM9EJ는 기본 ARM9TDMI 파이프라인을 구현하지만, 일부 DSP 유사 명령어 집합 확장 기능을 포함하는 ARMv5TE 아키텍처를 지원한다. 또한, 곱셈기 유닛 너비가 두 배로 늘어나 대부분의 곱셈 작업에 필요한 시간이 절반으로 줄었다. 이들은 32비트, 16비트, 그리고 때로는 8비트 명령어 세트를 지원한다.
* 하드웨어에서 8비트 자바 바이트코드를 직접 실행할 수 있게 하는 ARM 자젤 기술 및 MMU를 갖춘 ARM926EJ-S
* ARM946
* ARM966
* ARM968
TI-Nspire CX (2011) 및 CX II (2019) 그래프 계산기는 각각 132 및 396&nbsp;MHz의 클럭 속도로 작동하는 ARM926EJ-S 프로세서를 사용한다.

## 칩
[섬네일|right|[닌텐도 DSi는 ARM9 및 ARM7 코어를 포함하는 칩을 가지고 있다.]]
[섬네일|[레고 마인드스톰 EV3 브릭에는 ARM9 TI 시타라 AM1x가 있다.]]
[섬네일|[삼성 SGH-D900 전화의 ARM946E-S 베이스밴드 프로세서]]

;ARM920T
* 아트멜 AT91RM9200
* 시러스 로직 EP9315 ARM9 CPU, 200&nbsp;MHz
* NXP 반도체 i.MX1
* 삼성 S3C2410, S3C2440, S3C2442, S3C2443

;ARM922T섬네일|삼성 S3C2416XH-26
* 마이크렐/켄딘 KS8695
* NXP 반도체 LH7A4xx

;ARM925T
* 텍사스 인스트루먼트 OMAP 1510

;ARM926EJ-S
* ASPEED AST2400
* 사이프러스 세미컨덕터 EZ-USB FX3
* 마이크로칩 테크놀로지 (구 아트멜) AT91SAM9260, AT91SAM9G, AT91SAM9M, AT91SAM9N/CN, AT91SAM9R/RL, AT91SAM9X, AT91SAM9XE (참고: AT91SAM9)
* 닌텐도 스타렛 (Wii 보조 프로세서)
* 누보톤 NUC900
* NXP 반도체 (구 프리스케일 세미컨덕터) i.MX2 시리즈, (참고: I.MX), LPC3100 및 LPC3200 시리즈
* 삼성 S3C2412, S3C2416, S3C2450
* ST마이크로일렉트로닉스 노마딕
* 텍사스 인스트루먼트 OMAP 850, 750, 733, 730, 5912 (또한 5948은 보쉬를 위해 만들어진 고객 특정 버전), 1610
* 텍사스 인스트루먼트 시타라 AM1x, OMAP L137/L138, Davinci DA830/DA850/DM355/DM365
* HP iLO 4 베이스보드 관리 컨트롤러
*5V 테크놀로지스 5VT1310/1312/1314
* ST마이크로일렉트로닉스 SPEAr300/600
* 비아 원더미디어 8505 및 8650

;ARM940T
* 코넥산트 CX22490 STB SoC

;ARM946E-S
* 닌텐도 NTR-CPU (닌텐도 DS CPU), TWL-CPU (닌텐도 DSi CPU; DS와 동일하나 67&nbsp;MHz 대신 133&nbsp;MHz 클럭)
* NXP 넥스페리아 PNX5230

;ARM966E-S
* LSI 로직 LSI53C1030
* ST마이크로일렉트로닉스 STR9

;ARM968E-S
* NXP 반도체 LPC2900

;미참조 ARM9 코어
* 아니카 AK32xx
* 아트멜 AT91CAP9
* CSR 콰트로 4300
* 센트럴리티 아틀라스 III
* 디지 NS9215, NS9210
* 하이실리콘 기린 K3V1
* 인피니온 테크놀로지스 S-GOLDlite PMB 8875
* 리프프로그 LF-1000
* NXP 반도체 (구 프리스케일 세미컨덕터) i.MX1x
* 미디어텍 MT1000, MT6235-39, MT6268, MT6516
* 프라그마텍 래빗V3 (ARM920T rev 0 (v4l)) (카로츠에 사용됨)
* 퀄컴 MSM6xxx
* 퀄컴 아세로스 AR6400
* 텍사스 인스트루먼트 TMS320DM365/TMS320DM368 ARM9EJ-S
* 자일로그 앙코르! 32

## 문서
모든 ARM 칩에 대한 문서는 특히 초보자에게는 벅찬 양이다. 지난 수십 년 동안의 마이크로컨트롤러 문서는 단일 문서에 쉽게 포함될 수 있었지만, 칩이 발전함에 따라 문서도 늘어났다. 모든 ARM 칩에 대한 전체 문서는 IC 제조업체의 문서와 CPU 코어 공급업체 (ARM 홀딩스)의 문서로 구성되므로 파악하기가 특히 어렵다.

전형적인 하향식 문서 트리는 다음과 같다: 고급 마케팅 슬라이드, 정확한 물리적 칩에 대한 데이터시트, 동일한 시리즈 내의 공통 주변 장치 및 기타 물리적 칩 측면을 설명하는 상세 참조 설명서, 칩 내의 정확한 ARM 코어 프로세서에 대한 참조 설명서, 모든 명령어 세트에 대한 자세한 설명을 포함하는 코어의 ARM 아키텍처 참조 설명서.

;문서 트리 (위에서 아래로):

# IC 제조업체 마케팅 슬라이드.
# IC 제조업체 데이터시트.
# IC 제조업체 참조 설명서.
# ARM 코어 참조 설명서.
# ARM 아키텍처 참조 설명서.

IC 제조업체는 또한 평가 보드 사용자 설명서, 애플리케이션 노트, 개발 소프트웨어 시작하기, 소프트웨어 라이브러리 문서, 에라타 등과 같은 추가 문서를 보유하고 있다.

## 같이 보기

* ARM 아키텍처
* ARM 아키텍처 및 코어 목록
* JTAG
* 인터럽트, 인터럽트 핸들러
* 실시간 운영체제, 실시간 운영 체제 비교

## 각주

## 외부 링크

;ARM9 공식 문서
* 
* 아키텍처 참조 설명서: ARMv4/5/6
* 코어 참조 설명서: ARM9E-S, ARM9EJ-S,ARM9TDMI,ARM920T,ARM922T,ARM926EJ-S,ARM940T,ARM946E-S,ARM966E-S,ARM968E-S
* 보조 프로세서 참조 설명서: VFP9-S (부동 소수점), MOVE (MPEG4)

;빠른 참조 카드
* 명령어: 썸 (1), ARM 및 썸-2 (2), 벡터 부동 소수점 (3)
* Opcode: 썸 (1, 2), ARM (3, 4), GNU 어셈블러 지시어 5.

분류:32비트 마이크로프로세서
분류:ARM 마이크로프로세서