시스템 소프트웨어 개발
-페키징
-브링업
-특성 평가
-BSP개발
-System integration
-Stress Test
시스템 반도체 핵심은 Arm프로세서
Arm사는 라이센스 비지니스
-파운드리에서는 SoC와 같은 시스템 반도체가 양산
-주요 IP에 대한 라이센스 판매
IP?
-지적 재산권의 약자로, 재사용 가능하도록 기능을 모듈화해 설계한 Core Design
-Digital IP / Mixed IP
---
Arm프로세서는 왜 배워야 하는가?
시스템 반도체(전기 자동차)의 핵심 부품
-대다수 시스템 반도체는 Arm프로세서를 탑재
-인포테인먼트(90%이상) 자율 주행(ADAS 50%이상)
IoT 및 임베디드 장치에서 많이 쓰임
-휴대폰 및 디지탈 TV에서 95%이상
-VR/AR 디바이스에서 사용
Arm사에서 제공하는 다양한 IP사용해 시스템 구축
-generic interrupt controller
-i/o mmu
RTOS나 리눅스 커널을 이루는 주요 서브시스템의 핵심 동작은 Arm아키텍쳐에 의존적임
-컨텍스트 스위칭
-시그널
-시스템 콜
-메모리 관리
Arm아키텍쳐의 기본 동작 원리를 모르면 RTOS나 리눅스 커널의 세부 동작을 제대로 이해하지 못할 지도
-범용 레지스터
-익셉션 레벨
-익셉션 벡터 핸들러
리눅스를 VM으로 사용하는 하이퍼바이저 환경에서 Arm아키텍쳐의 이해는 필수임
-Guset OS(커널)
---
Arm 사 소개
-Advanced Risc Machine : RISC구조
-SoC전체 IP로 사업 확대
-임베디드 분야 대부분의 SoC회사에서 사용됨
x86과는 달리 적은 양의 트랜지스터로 설계된 아키텍쳐 개발 -> 저전력 마이크로컨트롤러 시장에서 두각
2010년 이후 모바일 시장 석권
---
Arm 프로세서 패밀리
Cortex-A시리즈
-모바일에서 서버용 컴퓨터까지 다양한 플랫폼에서 사용
-어느 정도 성능을 만족해야하는 임베디드 기기(스마트폰, TV)에서 주로 사용
Cortex-R시리즈
-Real-time Processor 차량(자율주행), 무기 같은 실시간 처리를 위한 코어
-RTOS에서 MPU(메모리 보호 유닛)이나 TCM(타잇 커플드 메모리)와 같이 신뢰성을 보장하는 장치
-Cortex-A보다 낮은 성능
Cortex-M시리즈
-MCU를 위한 라인업, 저전력
-32비트급 MCU코어가 주력인 Cortex-M이 MCU시장에서 주도적 위치임
Arm프로세서를 SW적인 관점에서 바라보는 것을 -> Arm아키텍쳐
어셈블리 명령어를 실행 : Arm아키텍쳐
일반적인 개발에서 크래시 = Arm아키텍쳐에서는 익셉션
Armv6, Armv7
-Armv6: ARM11제품군으로 SIMD(하나의 명령어로 여러 데이타 계산) / TrustZone사용됨
-Armv7: Cortex제품 군, 2회의 대규모 확장(멀티코어 지원, 가상화 및 LPAE지원)
Armv8
-64비트 동작모드 지원(32비트 호환)
-모바일 시장 강화, 서버 시장 진출
-저전력 / 고효율
Armv8 아키텍처 시리즈 프로세서
-CortexA53, CortexA57, CortexA72
-전기자동차(인포테인먼트, 자율 주행)
-대부분 휴대폰, 디지털 TV
---
익셉션 레벨 : Arm 아키텍쳐에서 프로세서의 권한 수준을 나타내는 데 사용되는 개념
-익셉션 레벨은 privilege level과 비례
-동작 모드에서 확장된 개념
-EL0~EL3
-SW스택이 EL별로 구성됨
EL0
-User모드에 해당되며, 유저 애플리케이션이 실행됨
-시스템콜을 통해서 EL1로 진입
EL1
-Supervisor모드에 해당, 리눅스 커널이나 드라이버가 실행됨
-하이퍼바이저 콜 익셉션을 통해 EL2로 진입
EL2
-하이퍼바이저가 동작하는 모드
-Guest OS에 대한 하드웨어 리소스를 관리함
EL3
-모니터 모드로 시큐어 월드의 진입점
-보통 부트 시퀀스에서 가장 먼저 EL3로 설정함
'Linux' 카테고리의 다른 글
Arm 어셈블리 명령어 간단 소개 (0) | 2023.08.10 |
---|---|
프로젝트 단계 별 시스템 소프트웨어 개발 과정 정리 (0) | 2023.08.09 |
시스템 소프트웨어 분야 동향 정리 (0) | 2023.08.09 |