산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

ARMv8 기반 펌웨어 시스템의 아키텍처

ARMv8 프로세서 아키텍처는 2011년 출시 이후 모바일 기기 시장에 널리 보급되었습니다. ARM Limited CEO의 예측에 따르면 이 세대의 프로세서는 2020년까지 세계 시장 점유율이 최대 25%에 달할 것이라고 합니다. 소프트웨어 지원이 확립되고 기능과 일반 역사적으로 형성된 기반 시설의 원칙.

시장의 서버 부문에서는 근본적으로 다른 상황이 관찰됩니다. X86 기반 서버는 오랫동안 이 영역을 지배해 왔으며 ARMv8은 이제 막 그 길을 찾고 있습니다(특정 비즈니스 부문에만 해당). ARM에 대한 이 시장의 참신함과 승인된 표준 및 사양(주로 ACPI 및 UEFI)의 대부분이 최근까지 ARM 시스템에 맞게 조정되지 않았다는 사실은 소프트웨어 인프라 개발에 흔적을 남겼습니다.

이 기사는 ARM 기반 서버 시스템 및 프로세서 기능에 대한 개요에 중점을 두고 있으며 완전한 설명을 요구하지 않습니다. 저자는 또한 제공된 데이터가 빠르게 쓸모없게 될 수 있다는 사실에 독자의 주의를 환기시키고자 합니다. 곧 새로운 프로세서에는 소프트웨어 인프라 구현에 대한 다른 접근 방식이 필요할 수 있는 새로운 기술 솔루션이 제공될 것입니다.

먼저 ARMv8 서버 시스템용 펌웨어의 현재 구현은 몇 가지 비교적 독립적인 구성 요소로 구성되어 있다는 점을 지적해야 합니다. 이는 서버와 임베디드 시스템의 펌웨어 모두에서 동일한 구성 요소를 사용할 수 있는 가능성과 도입된 변경 사항의 상대적 독립성과 같은 많은 이점을 제공합니다.

그렇다면 이러한 시스템에는 어떤 모듈과 구성 요소가 사용되며 그 기능은 무엇입니까? 모듈의 로딩 및 상호 작용에 대한 전체 차트는 그림 1에 나와 있습니다. 프로세스는 RAM 및 프로세서 간 인터페이스와 같은 하위 시스템의 초기화로 시작됩니다. 현재 구현에서 이것은 주 CPU 전원을 켠 직후 EL3S 모드에서 별도의 모듈에 의해 실행됩니다. 따라서 시스템의 이 구성 요소는 가능한 최대 권한을 갖습니다. 일반적으로 OS와 직접 상호 작용하지 않습니다.


그림 1. 모듈의 로딩과 상호작용. (출처:Auriga)

나중에 제어가 다음 구성 요소, 가장 자주 동일한 모드에서 실행되는 ARM ATF(신뢰할 수 있는 펌웨어) 모듈로 전송됩니다. ATF 제어는 이전 단락에서 설명한 레벨 0 로더에서 직접 전달되거나 PEI(PreEFI 초기화)를 구현하는 특수 UEFI 모듈을 통해 간접적으로 전달될 수 있습니다. ATF는 서로 다른 시간에 제어를 수신하는 여러 모듈로 구성됩니다.

BL1 시작 모듈은 보안 프로세서 모드에 할당된 플랫폼 부분의 초기화를 수행합니다. ARMv8 기반 시스템은 RAM을 포함하여 신뢰할 수 있는 리소스와 신뢰할 수 없는 리소스에 대해 하드웨어 분리를 사용하므로 BL1 모듈은 신뢰할 수 있는 코드를 실행할 수 있는 환경을 준비합니다. 특히 이러한 유형의 초기화에는 메모리/캐시 컨트롤러 구성(신뢰할 수 있는 영역과 신뢰할 수 없는 영역이 이러한 장치의 레지스터 프로그래밍을 통해 표시됨) 및 온칩 장치(에너지 독립형 메모리 컨트롤러)의 표시가 포함됩니다. 이 마크업은 또한 장치 유형(신뢰/비신뢰)을 기반으로 하는 DMA 트랜잭션 필터링을 도입합니다. 이 모든 것을 감안할 때 보안 설정이 장치의 보안 설정과 일치하는 영역에서만 메모리 쓰기/읽기가 가능합니다. 신뢰할 수 있는 환경의 구현은 매우 복잡할 수 있습니다. 예를 들어 별도의 OS를 포함할 수 있습니다. 그러나 이러한 구현에 대한 설명은 이 문서의 범위를 벗어납니다.

BL1 모듈은 MMU 주소 변환 테이블과 예외 핸들러 테이블을 구성합니다. 여기서 가장 중요한 요소는 SMC(Secure Monitor Call) 명령에 대한 예외 핸들러입니다. 이 시점에서 핸들러는 최소한이며 실제로는 RAM에 로드된 이미지에만 제어를 전달할 수 있습니다. 실행하는 동안 BL1 모듈은 다음 단계(BL2)를 RAM에 로드하고 제어를 RAM에 전달합니다. BL2 모듈은 제한된 권한으로 EL1S 모드에서 작동합니다. 따라서 이 모듈로의 제어 전달은 "ERET" 명령을 사용하여 수행됩니다.

BL2 모듈의 목적은 나머지 펌웨어 모듈(BL3 부품)을 로드하고 제어를 전달하는 것입니다. 감소된 권한 수준은 메모리에 이미 있는 코드 및 EL3S 데이터의 손상 가능성을 방지하는 데 사용됩니다. 이들 부품의 코드는 SMC 명령을 사용하여 BL1 단계에 있는 EL3S 코드를 호출하여 실행됩니다.

ATF의 로딩 및 초기화의 3단계는 3단계로 구성될 수 있으나 일반적으로 2단계는 생략된다. 따라서 실제로는 두 개만 남아 있습니다. BL3-1 모듈은 런타임에 범용 소프트웨어(OS 등)에 액세스할 수 있는 신뢰할 수 있는 코드의 일부입니다. 이 모듈의 핵심 부분은 "SMC" 명령에 의해 호출되는 예외 처리기입니다. 모듈 자체에는 표준 SMC 호출을 구현하기 위한 기능이 있습니다. 표준 PSCI 인터페이스(프로세서 코어 활성화/비활성화, 플랫폼 전체의 전원 관리 및 재부팅과 같은 전체 플랫폼을 제어하도록 설계됨)를 구현하고 공급업체도 처리합니다. -특정 호출(플랫폼에 대한 정보 제공, 임베디드 장치 관리 등).

위에서 언급했듯이 BL3-2 모듈의 존재는 선택 사항입니다. 해당 코드(모듈의 경우)는 EL1S 모드에서 실행됩니다. 일반적으로 플랫폼 운영 중 발생하는 이벤트(특정 타이머, 장치 등의 인터럽트)에 대한 전문 서비스/모니터 역할을 합니다.

사실 BL3-3은 ATF 모듈이 아니라 비보안 모드에서 실행되는 펌웨어 이미지다. 일반적으로 EL2 모드에서 제어하며 널리 알려진 U-Boot와 유사한 부트로더 또는 서버 시스템의 표준인 UEFI 환경의 이미지를 나타냅니다.

ATF 모듈 초기화의 전체 차트는 그림 2와 같습니다.


그림. 2. ATF 모듈 초기화. (출처:Auriga)


임베디드

  1. 양날의 SaaS 검을 장악하십시오
  2. 영국의 상위 10개 클라우드 컴퓨팅 작업
  3. emtrion, 새로운 핵심 모듈 emSTAMP-Argon 도입
  4. MicroMax:견고한 릴레이 시스템 인터페이스 장치
  5. 에지 컴퓨팅:미래의 아키텍처
  6. 21세기 시스템 통합업체
  7. 제어 시스템 설계:가장 단순한 설계에서 가장 복잡한 설계까지
  8. 전기 제어반의 기초
  9. 사이버 물리 시스템:인더스트리 4.0의 핵심
  10. 전자유압 밸브 적용의 기본 사항