임베디드
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)
임베디드
인터넷과 클라우드 기반 컴퓨팅은 제조업체가 CNC 공작 기계를 작동하는 방식을 바꾸고 있습니다. 당신의 가게는 준비가 되었나요? 이더넷 포트는 20년 전 CNC 선반과 머시닝 센터에 처음 등장했습니다. MTConnect 공작 기계 통신 표준은 시카고에서 열린 2010 IMTS에서 공식 미국 데뷔를 했습니다. 제조업체들은 얼마 지나지 않아 독일 경제학자 Klaus Schwab이 2015년에 세계가 4차 산업혁명에 진입했다는 논문을 발표했을 때 주류가 된 용어인 클라우드 컴퓨팅과 산업용 사물 인터넷(IIoT)에 대해 이야기하기 시작
중고 로봇 시스템은 전 세계 기업에 존재합니다. 일부는 5년 동안 제조업체를 위해 열심히 일해 왔으며 다른 일부는 거의 20년 동안 매일매일 일했습니다. 로봇 시스템이 적절하게 유지 관리되면 제조 라인에서 새 로봇으로 시작하든 중고 로봇으로 시작하든 관계없이 무한정 작동할 수 있습니다. 그런 면에서 중고 로봇 시스템은 자동차와 매우 흡사합니다. 자동차를 적절하게 관리하기로 선택하면 필요한 만큼 오래 운행됩니다. 물론 다른 것과 마찬가지로 수십만 마일마다 모터를 교체해야 할 수도 있습니다. 중고 로봇 시스템의 이점은 새로운 로봇 시