OpenAMP 는 AMP (Asymmetric Multiprocessing) 시스템 용 애플리케이션 및 프로세서 간 통신 기능을 제공하는 오픈소스 프로젝트이다.
원격 컴퓨팅 수명주기 관리, 리소스 및 소프트웨어 컨텍스트를 관리하기위한 프로세서 간 통신에 사용될 수 있다.
주요 기능 및 특징:
Remoteproc 을 통한 원격 제어: 마스터가 원격 프로세서를 제어/관리.
RPMsg 를 통한 메세징: VirtIO를 사용하여 IPC 구현.
플랫폼 및 HAL로써 libmetal 에 의존.
다음과 같은 AMP 구성을 지원한다.
Libmetal
장치에 액세스, 인터럽트를 처리하고, 다양한 운영 환경에서 메모리를 요청하기위한 사용자 API를 제공한다. libmetal은 다음 운영체제 및 시스템에서 사용할 수 있다.
RPMsg (Remote Processor Messaging)
비대칭 멀티 프로세서 시스템에서 서로 다른 코어가 협력하는 가장 일반적인 방법은 공유 메모리 기반 통신을 사용하는 것이다.
VirtIO
Linux rpmsg 버스 드라이버는 Linux 커널의 virtio 구현을 활용하여 마스터 및 원격 구성에서 Linux 용 IPC를 활성화한다. rpmsg 는 virtio 제공 인터페이스를 사용하여 해당 구성 요소와 데이터를 송수신한다.
저장소: https://github.com/OpenAMP