MCAPI

MCAPI

멀티코어 통신 API(Miccore Communications API, McAPI)는 멀티코어 협회에 의해 생산된 최초의 사양이다.MCAPI는 밀접하게 분산된(칩 및/또는 보드 상의 칩의 다중 코어) 임베디드 시스템 간의 통신과 동기화를 위한 표준화된 API를 제공한다.

개요

MCAPI는 멀티 코어 장치를 프로그래밍하는 데 사용되는 언어 독립적인 프로세서 및 운영 체제 불가지론 통신 프로토콜이다.MCAPI는 메시지, 패킷, 스칼라의 세 가지 통신 모드를 제공한다.MCAPI는 메시지 전달 애플리케이션 프로그래머 인터페이스로서, 그것의 특징이 어떤 구현에서 어떻게 작용해야 하는지에 대한 프로토콜 및 의미 규격과 함께 있다.모든 MCAPI 구현의 주요 목표는 매우 높은 성능과 낮은 메모리 설치 공간이다.

MCAPI는 MPI버클리 소켓과 같은 통신 API로 그 유산을 추적한다.MPI와 소켓 모두 주로 컴퓨터 간 통신을 염두에 두고 개발되었으며, MCAPI는 주로 멀티코어 칩의 코어 간 통신을 대상으로 한다.따라서 MCAPI의 주요 설계 목표는 멀티코어 칩의 효율적인 온칩 인터커넥트를 활용하는 낮은 지연 시간 인터페이스의 역할을 하는 것이었다.그러나 멀티코어 통신의 범위가 더 제한적이고 대기 시간이 짧다는 목표 때문에 MCAPI는 MPI나 소켓에 비해 유연성이 떨어진다.

MCAPI 통신 모드

MCAPI는 다음과 같은 세 가지 통신 모드를 제공한다.

  1. 메시지 – 무연결 데이터그램메시지는 약간의 성능 저하가 있더라도 페이로드, 동적으로 변화하는 수신기, 우선순위 및 구성 노력에 대해 유연하도록 의도된다.
  2. 패킷 – 연결 지향, 임의 크기, 단방향 및 FIFO 스트림.패킷은 페이로드와 관련하여 유연하도록 설계되어 구성 노력을 희생하여 메시지보다 더 높은 성능을 제공한다.
  3. 스칼라 – 연결 지향, 고정 크기, 단방향 및 FIFO 스트림.스칼라는 페이로드 유연성과 구성 노력을 희생시키기는 하지만 최고 성능의 통신 모드여야 한다.

MPI와 비교한 MCAPI

MCAPI는 순수하게 임베디드 통신에 초점을 맞추고 있으며, 메시지, 패킷 및 스칼라 + 연결된 채널의 아이디어를 추가한다.이를 통해 MCAPI는 연결된 채널이 기본 내장 하드웨어를 이용할 수 있는 다양한 서비스 품질을 지원할 수 있다.또한 MCAPI는 다양한 종류의 우선순위를 지원하며, 메시지는 메시지당 우선순위를 가질 수 있으며, 채널 역시 우선순위가 다른 것으로 간주되어 구현이 일부 또는 모든 채널을 전용 하드웨어에 매핑할 수 있다.MCAPI는 또한 연결된 채널에 속성을 할당함으로써 제로 카피를 지원할 수 있다.

그 밖의 큰 차이점은 다음과 같다.

  • MCAPI는 FORTRAN에 대한 언어 바인딩이 없다. 이는 임베디드 시스템에서는 흔히 찾아볼 수 없기 때문이다.
  • MCAPI는 MPI에서처럼 집단 통신을 지원하지 않는다.이를 통해 MCAPIv는 더 작은 구현을 할 수 있다.
  • MCAPI는 그룹의 개념을 가지고 있지 않다.
  • MCAPI는 MPI와 같이 어떠한 동기화 방법도, 장벽도, 울타리도, 자물쇠도 없다.
  • MCAPI에는 파일 개체나 파일 개체와 관련된 기능이 없다.
  • MCAPI는 프로세스의 생성이나 관리를 위한 모델이 없다.

참조

  • Holt, Jim; Agarwal, Anant; Brehmer, Sven; Domeika, Max; Griffin, Patrick; Schirrmeister, Frank (June 2009), "Software Standards for the Multicore Era", IEEE Micro, 29 (3): 40–51, doi:10.1109/MM.2009.48, hdl:1721.1/52432

외부 링크