임베디드 시스템

eunsukim·2024년 10월 14일

임베디드 컴퓨팅 시스템이란?

  • 정의: 일반적인 목적의 컴퓨터 그 자체가 아닌, 프로그래밍 가능한 컴퓨터 장치가 탑재된 어떠한 장치

  • PC는 임베디드 시스템으로 볼 수 없다. 그럼에도 불구하고 PC들은 임베디드 컴퓨팅 시스템을 구현하는데 자주 사용된다.

  • 응용 프로그램 특성을 활용하여 설계를 최적화한다.

    • 임베디드 시스템은 특정 응용 프로그램의 요구사항에 맞게 설계되므로, 불필요한 범용 기능들은 필요하지 않음.

임베디드 시스템의 예시

  • 핸드폰
  • 프린터
  • 자동차
  • 비행기
  • 디지털 TV 등

임베디드 시스템의 역사

  • 1940년대 후반 MIT Whirlwind computer

  • 1970년대 초반 첫 마이크로 프로세서 Intel 4004 등장

  • 1972 HP-35 calculator

  • 자동차는 1970년대부터 마이크로프로세서 기반의 엔진 컨트롤러를 사용.

    • 싱글-칩
    • 연료/공기 비율 조정
    • 여러가지 작동 모드: 웜업, 크루즈, 힐 클라이밍 등
    • 낮은 배기량, 연료 효율 상승 기여

마이크로프로세서의 종류

  • 마이크로컨트롤러:
    입출력 장치와 온보드 메모리를 포함한다. 임베디드 시스템에서 자주 사용되며, 센서나 액추에이터 같은 입출력 장치와 통신하기 위한 기능을 가진다. 모든 기능이 칩 하나에 통합되어 있어서 작은 장치에 사용하기 좋다.

  • DSP(Digital Signal Processor, 디지털 신호 처리기):
    디지털 신호 처리를 최적화함. 주로 오디오, 비디오, 통신 시스템에서 신호 처리를 빠르게 하기 위해 사용된다.

일반적으로 임베디드 시스템에서 사용하는 워드 크기는 8비트, 16비트, 32비트이다. 여기서 워드 크기란 시스템에서 한번에 처리 가능한 데이터 크기를 의미한다.

적용 예시

  • 간단한 조작: 전자레인지 또는 오븐의 프론트 패널

  • 디지털 TV: 프로그래밍 가능한 CPU들과 비디오, 오디오 디코드 로직 및 메뉴

  • 오늘날의 하이엔드 자동차들은 약 100개 가량의 마이크로프로세서가 탑재됨.

    • 4비트 마이크로컨트롤러는 좌석 벨트를 체크함.

    • 마이크로컨트롤러가 대쉬보드 장치를 실행시킴.

    • 16/32 비트 마이크로프로세서는 엔진을 조작함.

      BMW 850i 브레이크와 안정성 제어 시스템:

    • Anti-lock brake system(ABS): 차량의 바퀴가 잠기는 것을 방지하여 미끄러짐을 줄이기 위해 브레이크를 펌프질하는 시스템

    • Automatic stability control(ASC + T): 차량의 엔진을 제어하여 안정성을 향상시키는 시스템이다. 미끄러짐이나 회전 방지와 같은 상황에서 엔진 출력을 조절함.

    • ABS와 ASC+T의 통신: 두 시스템은 서로 통신하며 협력한다. 이를 통해 차량의 제동력과 안정성을 제어함.

    임베디드 시스템의 특징

  • 정교한 기능의 수행.

    • 정교하거나, 복수의 알고리즘을 자주 실행해야하고, 정교한 유저 인터페이스를 제공한다.
  • 실시간으로 작동된다.

    • 많은 시스템이 다중 속도(Multi rate)로 운영된다.

    • 제약 시간내에 작업을 끝내야한다.

      • Hard real time: 제약 시간에 도달하지 못하면 시스템 failure. (항공기, 의료기기)
      • Soft real time: 제약 시간에 도달하지 못하면 성능이 저하. (비디오 스트리밍)
  • 제조 비용이 저렴하다.

    • 대량 생산 제품들은 낮은 제조 비용을 가져야함.
  • 전력 소모가 낮다.

    • 전력 소모량은 배터리 장치에서 매우 중요하다.
  • 소규모 팀이 짧은 개발 기간 내에 설계한다.

    • 타이트한 개발 기한이 존재함.

왜 마이크로프로세서를 쓰는가?

대안으로는 Field-programmable gate arrays(FPGAs), custom logic 등이 존재한다. 하지만 마이크로프로세서는 매우 효율적이다. 같은 논리 회로로 다양한 기능을 수행할 수 있기 때문이다. 이를 통해 다양한 제품군을 쉽게 설계할 수 있어 개발 및 설계 과정이 단순해지고, 유연성을 확보한다.

The performance paradox

  • 마이크로프로세서는 커스텀 로직에 비해 훨씬 더 많은 로직을 사용한다. 하나의 기능을 구현하는데 커스텀 로직보다 훨씬 더 많은 자원과 회로를 필요로 한다.

  • 하지만 마이크로프로세서는 더 많고 복잡한 자원을 사용함에도 불구하고 성능적으로 뛰어나다.

이유:

  1. Heavily pipelined(파이프라이닝)
    마이크로프로세서는 파이프라인 구조를 통해 여러 명령을 동시 수행가능하다.

  2. Large design teams
    마이크로프로세서는 대규모 팀의 체계적 설계로 이루어지기 때문에 성능 최적화가 우수함.

  3. Aggressive VLSI technology
    VLSI(초대규모 집적회로) 기술은 마이크로프로세서에서 매우 고도로 집적된 회로를 만들 수 있게 함.

전력

  • 커스텀 로직은 전력을 적게 소모하지만 CPU 또한 이것에 대해 이점을 가진다.

    • 최신 마이크로프로세서는 전력 소모 제어를 돕기 위한 기능을 제공함.
    • 소프트웨어 설계 기술을 활용해 전력 소모를 최적화 가능.
  • 이종 시스템(Heterogeneous systems)

    • 이종 시스템은 정의된 특정 기능을 수행하는 커스텀 로직과 다양한 작업을 처리할 수 있는 CPU 및 소프트웨어를 결합한 시스템을 의미한다. 즉 어떤 작업은 커스텀 로직으로, 어떤 작업은 CPU와 소프트웨어가 처리하여 전력 효율성 및 성능을 최적화함.

플랫폼

  • 임베디드 컴퓨팅 플랫폼: 하드웨어 아키텍처, 그와 연관된 소프트웨어를 포함하는 시스템이다.

  • 현대의 많은 임베디드 플랫폼은 다중 프로세서 구조를 가진다. 즉, 하나의 시스템에서 여러 프로세서가 동시에 작업을 처리할 수 있음.

  • 예시

    • Single-chip multiprocessors for cell phone baseband:
      휴대폰의 베이스밴드 처리를 위한 단일 칩 다중 프로세서 구조이다. 휴대폰 통신 관련 기능을 처리하는 칩이 여러 프로세서를 가지고 빠르고 효율적인 처리를 함.

    • Automotive network + processors:
      자동차의 네트워크와 프로세서가 결합된 구조이다.

임베디드 시스템 디자인의 도전과제들

  • 하드웨어가 얼마나 필요한지?

    • CPU와 메모리가 얼마나 커야하는가?
  • 데드라인을 어떻게 맞출 것인가?

    • 성능의 향상: 더 빠른 하드웨어 vs 더 효율적인 소프트웨어
  • 전력을 어떻게 최소화할 것인가?

    • 불필요한 논리 회로를 끄거나, 메모리 접근을 줄이거나.
  • 정말로 잘 작동할지?

    • 사양이 정확한가?
    • 구현이 사양을 충족하나?
    • 실시간 성능을 어떻게 테스트할 것인가?
    • 실제 데이터를 어떻게 사용하여 테스트할 것인가?
  • 시스템을 어떻게 다룰 것인가?

    • 관찰 가능성과 제어 가능성이 중요함.
    • 개발 플랫폼이 무엇인지?

성능의 의미가 무엇인가?

  • 범용 컴퓨팅에서 성능은 주로 평균적인 경우로 정의된다. 즉, 일반적인 컴퓨팅에서 성능이 구체적으로 정의되지 않으며, 평균적 처리 속도나 응답시간을 통해 성능을 평가함.

  • 실시간 시스템에서의 성능:

    • 데드라인을 맞추는 것이 성능의 핵심이다. 데드라인을 조금이라도 넘긴다면 큰 문제가 발생한다. 예를들어 항공기나 의료기기에서 데드라인을 지키지 못한다면 치명적인 사고가 발생할 수 있다.
    • 그러나 마감 기한보다 더 빨리 작업을 완수하는 것이 성능 개선에 크게 기여하지 못할 수 있다. 중요한 것은 작업을 정확한 시간 안에 완료하는 것이다.

정리: 일반적인 컴퓨팅에서 성능은 평균적인 처리 능력으로 평가되나, 실시간 시스템에서는 데드라인을 지키는 것이 성능의 가장 중요한 요소이다. 데드라인을 지키지 못하면 시스템 failure 또는 성능이 저하될 수 있다.

0개의 댓글