본문 바로가기
RTOS

FreeRTOS 멀티코어 지원

by Embedded.AI 2024. 10. 17.
반응형

FreeRTOS는 IoT와 임베디드 시스템에서 가장 널리 사용되는 실시간 운영체제로, 안정성과 확장성이 검증되어 있습니다. 최근 FreeRTOS는 멀티코어 시스템을 지원하기 위해 SMP(Symmetric Multiprocessing) 기능을 도입했습니다. SMP는 하나의 운영체제가 여러 개의 코어를 동시에 관리하고 사용할 수 있게 해주는 기술입니다. 이를 통해 태스크들이 여러 코어에 자동으로 분배되어 실행되므로, 시스템의 전체적인 성능과 효율성을 크게 향상시킬 수 있습니다.

FreeRTOS 멀티코어 지원

실제로 FreeRTOS의 SMP 기능은 Raspberry Pi Pico 보드에서 성공적으로 구현되고 테스트되었습니다. Raspberry Pi Pico는 듀얼코어 ARM Cortex-M0+ 프로세서를 탑재한 RP2040 마이크로컨트롤러를 사용하고 있어, FreeRTOS의 SMP 기능을 테스트하기에 최적의 플랫폼입니다. FreeRTOS 개발팀은 GNU ARM Embedded Toolchain을 사용하여 Raspberry Pi Pico용 데모 애플리케이션을 제작했습니다. 이 데모를 통해 FreeRTOS 커널의 SMP 지원 기능이 실제 하드웨어에서 안정적으로 동작함을 입증했습니다. 마지막으로, 이러한 SMP 지원은 FreeRTOS가 더 복잡하고 고성능이 요구되는 임베디드 시스템에도 적용될 수 있음을 보여주는 중요한 이정표가 되었습니다.

FreeRTOS 멀티코어 지원의 도입

FreeRTOS는 마이크로컨트롤러와 소형 마이크로프로세서를 위한 실시간 운영체제입니다. 2017년 아마존에 인수된 이후, IoT 기기를 위한 기능이 크게 확장되었습니다.  FreeRTOS는 버전 10.4.0부터 공식적으로 대칭형 멀티프로세싱(SMP) 기능을 지원하기 시작했습니다. 이를 통해 여러 코어에서 태스크를 동시에 실행할 수 있게 되었습니다.

FreeRTOS-SMP의 주요 특징

  1. 유연한 태스크 실행: 태스크는 어떤 코어에서도 실행될 수 있습니다.
  2. 효율적인 스케줄링: 스케줄러는 사용 가능한 모든 코어에서 우선순위가 가장 높은 태스크를 실행합니다.
  3. 일관된 우선순위 체계: 태스크 우선순위와 시간 슬라이싱은 단일 코어 FreeRTOS와 동일하게 작동합니다.
  4. 코어 간 동기화: 스핀락을 사용하여 코어 간 동기화를 관리합니다.

설정 옵션

  1. 코어 선호도: 특정 태스크를 특정 코어에서 실행하도록 제한할 수 있습니다.
  2. 태스크 격리: 태스크 그룹을 특정 코어 세트로 제한할 수 있습니다.

제한사항 및 고려사항

  • 현재 FreeRTOS-SMP는 최대 4개의 코어만 지원합니다.
  • 멀티코어 환경에서의 동기화와 데이터 일관성에 주의해야 합니다.
  • 적절한 설계와 최적화가 필요합니다.

FreeRTOS의 발전 과정

FreeRTOS는 지속적으로 발전해 왔습니다. 주요 버전별 변경사항을 살펴보면:

  • v7.0.0 (2012년): 메모리 관리 개선, 타이머 기능 추가
  • v8.0.0 (2014년): 스트림 버퍼, 메시지 버퍼, 태스크 알림 기능 도입
  • v9.0.0 (2016년): 저전력 티킹 모드 추가, 소프트웨어 타이머 개선
  • v10.0.0 (2017년): Amazon 인수 후 AWS IoT 플랫폼 통합, 보안 강화
  • v10.4.0 (2020년): SMP 지원 추가, 커널 최적화
  • v11.0.0 (2022년): MPU 지원 개선, POSIX 호환 API 추가

FreeRTOS의 멀티코어 지원은 임베디드 시스템의 성능을 크게 향상시킬 수 있는 중요한 기능입니다. 하지만 멀티코어 프로그래밍의 복잡성을 고려할 때, 신중한 설계와 구현이 필요합니다. FreeRTOS는 계속해서 발전하고 있으며, 특히 IoT와 클라우드 연결성 측면에서 더욱 강화될 것으로 예상됩니다. 자세한 내용은 "SMP Demo for the Raspberry Pi Pico Board" 를 참고하세요.

반응형

'RTOS' 카테고리의 다른 글

RTOS 비교 분석  (1) 2024.11.22