[컴퓨터구조] Ch3. Arch Version

김규원·2024년 3월 25일
post-thumbnail

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?

profile
행복한 하루 보내세요

0개의 댓글