필드 프로그래머블 게이트 어레이(FPGA)와 마이크로컨트롤러 비교: 차이점은 무엇인가요?
2024년 6월 3일
6분 분량

필드 프로그래머블 게이트 어레이(FPGA)마이크로컨트롤러 유닛(MCU)은 일반적으로 임베디드 시스템 및 디지털 설계에 사용되는 두 가지 유형의 집적 회로(IC)입니다. FPGA와 마이크로컨트롤러는 모두 장치와 더 큰 시스템에 통합할 수 있는 '작은 컴퓨터'로 생각할 수 있습니다.

프로세서로서 FPGA와 마이크로컨트롤러의 주요 차이점은 프로그래밍 가능성과 처리 기능에 있습니다. FPGA는 더 강력하고 용도가 다양하지만 가격도 더 비쌉니다. 마이크로컨트롤러는 사용자 정의가 쉽지 않지만 비용이 저렴합니다. 많은 애플리케이션에서 마이크로컨트롤러는 뛰어난 성능과 비용 효율성을 제공합니다. 그러나 병렬 처리가 필요한 애플리케이션과 같이 까다롭거나 개발 중인 특정 애플리케이션의 경우 FPGA가 필요합니다.

마이크로컨트롤러와 달리 FPGA는 하드웨어 수준에서 재프로그래밍 기능을 제공합니다. 고유한 설계를 통해 사용자는 작업에 따라 칩의 아키텍처를 구성하고 재구성할 수 있습니다. FPGA 설계는 병렬 입력을 동시에 처리할 수도 있는 반면, 마이크로컨트롤러는 한 번에 한 줄의 코드만 읽을 수 있습니다. FPGA는 마이크로컨트롤러의 기능을 수행하도록 프로그래밍할 수 있습니다. 그러나 마이크로컨트롤러는 FPGA로 작동하도록 재프로그래밍할 수 없습니다.

필드 프로그래머블 게이트 어레이(FPGA)란 무엇인가요?

1985년 제조업체인 Xilinx에서 처음 도입한 FPGA는 다양한 기능과 처리 능력으로 높은 평가를 받고 있습니다. 그 결과, 이는 많은 고성능 컴퓨팅(HPC), 디지털 신호 처리(DSP) 및 프로토타이핑 애플리케이션에서 선호되는 선택지입니다.

기존의 애플리케이션별 집적 회로(ASIC)와 달리 FPGA는 초기 제조 공정이 완료된 후 '현장에서' 구성(및 재구성)할 수 있도록 설계되었습니다. 커스터마이징은 FPGA가 제공하는 가장 큰 가치이지만, FPGA는 프로그래밍 기능을 제공할 뿐만 아니라 이를 필요로 한다는 점에 유의해야 합니다. ASIC과 달리 FPGA는 '즉시 사용 가능한' 솔루션이 아니며, Verilog 또는 VDL과 같은 하드웨어 설명 언어(HDL)와 함께 사용하기 전에 구성해야 합니다. FPGA를 프로그래밍하려면 전문 지식이 필요하며, 이로 인해 비용이 증가하고 배포가 지연될 수 있습니다. 일부 FPGA는 전원이 꺼져도 프로그래밍 명령을 유지할 수 있는 비휘발성 메모리를 제공하기도 하지만, 일반적으로 FPGA는 시작 시 구성해야 합니다.

FPGA의 이점

이러한 문제에도 불구하고 FPGA는 고성능, 짧은 지연 시간 및 실시간 유연성이 필요한 애플리케이션에서 여전히 유용합니다. FPGA는 특히 다음이 필요한 애플리케이션에 적합합니다.

  • 신속한 프로토타이핑: FPGA를 여러 유형의 맞춤형 디지털 회로로 빠르게 구성할 수 있으므로 많은 비용과 시간이 소요되는 제작 프로세스 없이도 신속하게 배포, 평가 및 수정할 수 있습니다. 
  • 하드웨어 가속화: 까다로운 애플리케이션은 FPGA의 병렬 처리 기능을 활용할 수 있습니다. FPGA는 신호 처리, 암호화머신 러닝 알고리즘과 같은 계산 집약적인 작업에 대해 상당한 성능 향상을 제공할 수 있습니다.
  • 커스터마이징: FPGA는 특정 프로젝트 요구 사항을 충족하도록 쉽게 최적화할 수 있는 유연한 하드웨어 솔루션입니다. 
  • 수명: FPGA 기반 설계는 진화하는 프로젝트 요구 사항과 기술 표준을 충족하도록 FPGA를 업데이트하고 재구성할 수 있으므로 하드웨어 수명이 길어지는 이점을 누릴 수 있습니다. 

FPGA 구성 요소

재구성 가능성을 달성하기 위해 FPGA는 프로그래밍 가능한 라우팅 패브릭으로 상호 연결된 프로그래밍 가능한 로직 블록 어레이로 구성됩니다. 일반적인 FPGA의 주요 구성 요소는 다음과 같습니다.

  • 구성 가능한 로직 블록(CLB): CLB는 컴퓨팅 기능을 제공하며 로직 게이트, 소형 룩업 테이블(LUT), 멀티플렉서 및 데이터 저장을 위한 플립플롭과 같은 소수의 기본 로직 요소를 포함할 수 있습니다. 
  • 프로그래밍 가능한 상호 연결: 전기적으로 프로그래밍 가능한 스위치로 연결된 와이어 세그먼트로 구성된 이러한 연결은 다양한 FPGA 리소스 간의 라우팅 경로를 제공하여 다양한 구성과 맞춤형 디지털 회로 생성을 가능하게 합니다. 
  • I/O 블록(IOB): FPGA와 다른 외부 장치 간의 인터페이스는 입력 출력(I/O) 블록을 통해 활성화되며, 이를 통해 FPGA는 주변 장치로부터 데이터를 수신하고 주변 장치를 제어할 수 있습니다. 

FPGA 사용 사례

본질적으로 다재다능한 FPGA는 다양한 산업 및 애플리케이션에서 흔히 볼 수 있습니다.

  • 항공우주 및 방위: 데이터 획득에 유용한 고속 병렬 처리를 제공하는 FPGA는 레이더 시스템, 이미지 처리 및 보안 통신에 선호되는 선택입니다. 
  • 산업용 제어 시스템(ICS): 전력망, 정유 공장 및 정수 공장과 같은 인프라를 모니터링하는 데 사용되는 산업용 제어 시스템은 다양한 산업의 고유한 요구 사항을 충족하도록 쉽게 최적화할 수 있는 FPGA를 사용합니다. 이러한 중요 산업에서 FPGA는 효율적인 사이버 보안을 위해 다양한 자동화 및 하드웨어 기반 암호화 기능을 구현하는 데 사용할 수 있습니다.
  • ASIC 개발: FPGA는 새로운 ASIC 칩의 프로토타이핑에 자주 사용됩니다. 
  • 자동차: 고급 신호 처리 기능을 탑재한 FPGA는 고급 운전자 지원 시스템(ADAS), 센서 융합, GPS를 포함한 자동차 애플리케이션에도 적합합니다.
  • 데이터 센터: FPGA는 고대역폭, 저지연 서버, 네트워킹 및 스토리지 인프라를 최적화하여 데이터 센터에 가치를 더합니다.

FPGA 기능

  • 프로세싱 코어: 구성 가능한 로직 블록
  • 메모리: 외부 메모리 인터페이스 
  • 주변 장치: 구성 가능한 I/O 블록
  • 프로그래밍: 하드웨어 설명 언어(VHDL, Verilog) 
  • 재구성 가능성: 고도로 재구성 가능하고 재프로그래밍 가능한 로직
마이크로컨트롤러란 무엇인가요?

마이크로컨트롤러는 마이크로컨트롤러에서 실행되는 사용자 지정 프로그램을 저장하기 위한 프로세서 코어(또는 코어), 메모리(RAM) 및 지울 수 있는 프로그래밍 가능한 읽기 전용 메모리(EPROM)를 포함하는 일종의 소형 기성 ASIC입니다. '시스템 온 칩(SoC)' 솔루션으로 알려진 마이크로컨트롤러는 기본적으로 하나의 하드웨어에 통합된 소형 컴퓨터로, 독립적으로 사용하거나 더 큰 임베디드 시스템에서 사용할 수 있습니다.

Arduino 스타터 키트 또는 Microchip Technology PIC와 같은 소비자 가용 마이크로컨트롤러는 어셈블리 언어 또는 일반 프로그래밍 언어(C, C++)를 사용하여 구성할 수 있으며, 비용 효율적인 접근성으로 인해 애호가와 교육자가 선호합니다. 또한 마이크로컨트롤러는 더 복잡하고 중요한 작업을 처리할 수 있으며 산업 애플리케이션에서 일반적입니다. 그러나 처리 능력과 메모리 리소스가 감소하면 더 까다로운 애플리케이션에서 마이크로컨트롤러의 효율성이 제한될 수 있습니다.

마이크로컨트롤러의 이점

마이크로컨트롤러는 한계에도 불구하고 다음과 같은 많은 이점을 제공합니다.

  • 컴팩트한 디자인: 마이크로컨트롤러는 필요한 모든 구성 요소를 작은 단일 칩에 통합하여 크기와 무게가 우선시되는 애플리케이션에 유용한 작은 설치 공간을 제공합니다.
  • 에너지 효율성: 저전력으로 작동하도록 설계된 마이크로컨트롤러는 배터리 구동 장치 및 전력 소비가 우려되는 기타 애플리케이션에 적합합니다.
  • 비용 효율적: 마이크로컨트롤러는 추가 주변 장치 및 구성 요소의 필요성을 줄여주는 완벽한 SoC 솔루션을 제공합니다. 저렴한 범용 마이크로컨트롤러를 사용하면 전체 프로젝트 비용을 크게 줄일 수 있습니다.
  • 유연성: FPGA만큼 다재다능하지는 않지만 마이크로컨트롤러는 다양한 애플리케이션에 맞게 프로그래밍할 수 있습니다. 하드웨어 수준에서는 재프로그래밍이 불가능하지만, 마이크로컨트롤러는 소프트웨어 수준에서 쉽게 재구성, 업데이트, 최적화할 수 있습니다.

마이크로컨트롤러 구성 요소

재프로그래밍이 우선순위가 아닌 경우, 독립형 마이크로컨트롤러는 컴팩트하고 성능이 뛰어난 대안을 제공합니다. 다음은 마이크로컨트롤러의 주요 구성 요소입니다.

  • 중앙 처리 장치(CPU): 흔히 “뇌”라고 하는 중앙 처리 장치(CPU)는 명령 실행 및 작업 제어를 담당하는 핵심 구성 요소 역할을 합니다.
  • 메모리: 마이크로컨트롤러에는 시스템 전원이 꺼질 경우 손실될 수 있는 임시 데이터를 저장하는 휘발성 메모리(RAM)와 마이크로컨트롤러의 프로그래밍 코드를 저장하기 위한 비휘발성 메모리(ROM, FLASH)가 모두 포함되어 있습니다.
  • 주변 장치: 마이크로컨트롤러는 사용 용도에 따라 타이머, 카운터, 아날로그-디지털 변환기(ADC) 및 통신 프로토콜(UART, SPI, I2C) 등의 입력/출력(I/O) 인터페이스와 같은 다양한 주변 장치 구성 요소를 포함할 수 있습니다.

마이크로컨트롤러 사용 사례

FPGA와 달리 작고 경제적인 비휘발성 마이크로컨트롤러는 현대 전자제품에 널리 사용되고 있으며, 다음과 같은 특정 작업을 위해 자주 배포됩니다.

  • 자동차 시스템: 마이크로컨트롤러는 엔진 제어, 에어백 전개, 차량 내 인포테인먼트 시스템 등에 사용됩니다.
  • 가전제품: 마이크로 컨트롤러는 스마트폰, 스마트 TV 및 기타 가전 제품, 특히 사물인터넷(IoT)에 통합되는 장치에 매우 중요합니다.
  • 산업 자동화: 마이크로컨트롤러는 기계 제어, 모니터링 시스템, 프로세스 자동화 등 산업용 애플리케이션에 적합합니다.
  • 의료 기기: 마이크로컨트롤러는 Pacemaker, 혈당 모니터, 진단 도구 등 생명을 구하는 장치에 주로 사용됩니다.

마이크로컨트롤러의 기능

  • 프로세싱 코어: 고정 CPU
  • 메모리: 통합 RAM 및 ROM/플래시 
  • 주변 장치: 다음을 위한 내장 I/O 인터페이스
  • 프로그래밍: 소프트웨어(C, 어셈블리) 
  • 재구성 가능성: 제한된, 펌웨어 업데이트
FPGA와 마이크로컨트롤러의 주요 차이점

FPGA와 마이크로컨트롤러를 비교할 때는 하드웨어 아키텍처, 처리 기능, 전력 소비, 개발자 요구 사항 등 여러 가지 주요 차이점을 고려하는 것이 중요합니다.

  • 하드웨어 구조
    • FPGA: 고도로 구성 가능한 프로그래밍 가능한 로직 블록 및 상호 연결을 통해 재프로그래밍 가능한 맞춤형 디지털 회로를 사용할 수 있습니다.
    • 마이크로 컨트롤러: 사전 정의된 구성 요소(CPU, 메모리, 주변 장치)가 단일 칩에 통합된 고정 아키텍처입니다.
  • 처리 능력
    • FPGA: 고급 병렬 처리를 통해 여러 작업을 동시에 수행할 수 있습니다.
    • 마이크로컨트롤러: 순차 처리를 위해 설계된 마이크로컨트롤러는 한 번에 하나씩만 명령을 실행할 수 있습니다.
  • 전력 소비량
    • FPGA: 일반적으로 마이크로컨트롤러보다 더 많은 전력을 소비합니다.
    • 마이크로 컨트롤러: 낮은 전력 소비에 최적화되어 배터리 구동식 애플리케이션에 적합합니다.
  • 프로그래밍
    • FPGA: 구성 및 디버깅을 위해 하드웨어 설명 언어에 대한 전문 지식이 필요합니다.
    • 마이크로컨트롤러: Javascript, Python, C, C++, 어셈블리 언어 등의 소프트웨어 개발 언어를 사용하여 프로그래밍할 수 있습니다.
  • 비용
    • FPGA: 향상된 성능을 제공하지만 고급 기술이 필요한 FPGA 하드웨어는 높은 전력 소비와 전문 프로그래머 인력에 대한 추가 비용으로 인해 더 비싼 경우가 많습니다.
    • 마이크로컨트롤러: 일반적으로 기성품을 사용할 수 있고, 전력 소비가 적으며, 접근성이 높은 프로그래밍 언어를 지원하는 비용 효율적인 솔루션입니다.
  • 다목적성
    • FPGA: FPGA는 마이크로컨트롤러보다 훨씬 더 유연하여 하드웨어 수준에서 사용자 정의가 가능합니다.
    • 마이크로컨트롤러: 마이크로컨트롤러는 광범위한 애플리케이션에 적합하지만 FPGA에 비해 피상적인 커스터마이징만 제공합니다.
IBM 인프라 솔루션 살펴보기

다재다능하고 강력한 FPGA 프로세서를 찾고 있든, 컴팩트하고 비용 효율적인 마이크로컨트롤러를 찾고 있든, IBM이 최첨단 인프라 솔루션을 통해 비즈니스를 한 단계 더 발전시키는 데 어떤 도움을 줄 수 있는지 생각해 보세요. 새로운 IBM FlashSystem 5300은 향상된 성능과 사이버 복원력을 제공합니다. 새로운 IBM Storage Assurance는 스토리지 소유권을 간소화하고 IT 라이프사이클 문제를 해결할 수 있도록 지원합니다.

 
작가
Josh Schneider Senior Writer, IBM Blog