본문으로 이동

ARM9

위키백과, 우리 모두의 백과사전.
ARM9T
설계 회사ARM 홀딩스
명령어 집합ARM (32비트),
Thumb (16비트)
마이크로아키텍처ARMv4T
ARM9E
최대 CPU 클럭 속도100 MHz ~ 600 MHz
명령어 집합ARM (32비트),
Thumb (16비트)
마이크로아키텍처ARMv5TE
ARM9EJ
명령어 집합ARM (32비트),
Thumb (16비트),
자젤 (8비트)
마이크로아키텍처ARMv5TEJ

ARM9ARM 홀딩스마이크로컨트롤러용으로 라이선스한 32비트 RISC ARM 아키텍처 프로세서 코어 그룹이다.[1] 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 코어이다.[2]

개요

[편집]

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

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

ARM7 코어와의 차이점

[편집]

더 많은 트랜지스터를 사용하여 ARM7 코어에 비해 주요 개선 사항은 다음과 같다.[4]

  • 열 발생 감소 및 과열 위험 감소.
  • 클럭 속도 개선. 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 칩에 어떤 구성 요소가 포함되었는지 확인하려면 제조업체 데이터시트 및 관련 문서를 참조한다.

코어

[편집]
연도 ARM9 코어
1998 ARM9TDMI
1998 ARM940T
1999 ARM9E-S
1999 ARM966E-S
2000 ARM920T
2000 ARM922T
2000 ARM946E-S
2001 ARM9EJ-S
2001 ARM926EJ-S
2004 ARM968E-S
2006 ARM996HS

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

ARM9TDMI

[편집]

ARM9TDMI는 인기 있는 ARM7TDMI 코어의 후속 제품이며, ARMv4T 아키텍처를 기반으로 한다. 이를 기반으로 한 코어는 32비트 ARM 및 16비트 썸 명령어 세트 모두를 지원하며 다음을 포함한다.

  • 16 KB의 I/D 캐시와 MMU를 갖춘 ARM920T
  • 8 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 MHz의 클럭 속도로 작동하는 ARM926EJ-S 프로세서를 사용한다.[6]

[편집]
닌텐도 DSi는 ARM9 및 ARM7 코어를 포함하는 칩을 가지고 있다.
레고 마인드스톰 EV3 브릭에는 ARM9 TI 시타라 AM1x가 있다.
삼성 SGH-D900 전화의 ARM946E-S 베이스밴드 프로세서
ARM920T
ARM922T
삼성 S3C2416XH-26
ARM925T
ARM926EJ-S
ARM940T
ARM946E-S
ARM966E-S
ARM968E-S
미참조 ARM9 코어

문서

[편집]

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

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

문서 트리 (위에서 아래로)
  1. IC 제조업체 마케팅 슬라이드.
  2. IC 제조업체 데이터시트.
  3. IC 제조업체 참조 설명서.
  4. ARM 코어 참조 설명서.
  5. ARM 아키텍처 참조 설명서.

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

같이 보기

[편집]

각주

[편집]
  1. ARM9 Family Webpage; ARM Holdings.
  2. ARM9; OEMDrivers.
  3. Furber, Steve (2000). 《ARM System-on-Chip Architecture》. 344쪽. ISBN 0201675196. 
  4. "Performance of the ARM9TDMI and ARM9E-S cores compared to the ARM7TDMI core", Issue 1.0, dated 9 February 2000, ARM Ltd.
  5. “MPCore Sample Code”. 2015년 4월 11일에 원본 문서에서 보존된 문서. 
  6. “Teardown Tuesday: Graphing Calculator - News”. 《www.allaboutcircuits.com》 (영어). 2021년 7월 12일에 확인함. 
  7. Atmel Legacy ARM-Based Solutions; Atmel.
  8. SAM9G ARM9 Microcontrollers; Atmel.
  9. SAM9M ARM9 Microcontrollers; Microchip.
  10. SAM9N/CN ARM9 Microcontrollers; Atmel.
  11. SAM9R/RL ARM9 Microcontrollers; Atmel.
  12. SAM9X ARM9 Microcontrollers; Atmel.
  13. SAM9XE ARM9 Microcontrollers; Atmel.
  14. “Hardware/Starlet”. 《Wiibrew》. 2020년 5월 16일에 원본 문서에서 보존된 문서. 2020년 6월 14일에 확인함. 
  15. i.MX28 Applications Processors; NXP.
  16. “LPC3100/200 Series: Arm9-based microcontrollers|NXP”. 《www.nxp.com》. 2018년 7월 27일에 확인함. 
  17. “iLO 4 Cryptographic Module FIPS 140-2 Non-Proprietary Security Policy” (PDF). Hewlett Packard Enterprise. 2016년 2월 10일. 
  18. “SPEAr ARM 926 Microprocessors - STMicroelectronics”. 
  19. GBATEK - GBA/NDS Technical Info - ARM CP15 ID Codes; Martin Korth
  20. STR9 ARM9 Microcontrollers; STMicroelectronics.
  21. “NS9210/NS9215 32-bit NET+ARM Processor Family” (PDF). 디지 인터내셔널. 

외부 링크

[편집]
ARM9 공식 문서
빠른 참조 카드
  • 명령어: 썸 (1), ARM 및 썸-2 (2), 벡터 부동 소수점 (3)
  • Opcode: 썸 (1, 2), ARM (3, 4), GNU 어셈블러 지시어 5.