기술(Tech, IT)/임베디드 (Embedded)

[Tech, Embedded] FPGA (Field Programmable Gate Array)

Daniel803 2024. 3. 1. 06:12

FPGA는 고객 또는 설계자가 제조 후 구성할 수 있도록 설계된 직접 회로, 즉 "field-programmable(현장 프로그래밍 가능)"한 회로다. FPGA에는 프로그래밍 가능한 논리 블록 어레이와 재구성 가능한 상호 연결 계층 구조가 포함되어 있어 서로 다른 구성으로 상호 연결할 수 있는 여러 논리 게이트처럼 블록을 함께 배선할 수 있다. 논리 블록은 복잡한 조합 기능을 수행하도록 구성할 수도 있고, AND 및 XOR과 같은 단순한 논리 게이트로 구성할 수도 있다. 대부분의 FPGA에서 이러한 블록에는 단순한 flip-flops(플립플롭) 또는 보다 완전한 메모리 블록일 수 있는 메모리 요소도 포함된다.

 

FPGA의 주요 특징은 재구성이 가능하기 때문에 제조 후에도 다양한 목적과 애플리케이션에 사용할 수 있다는 점이다. 이 때문에 FPGA는 통신, 자동차, 항공우주, 가전 등의 산업에서 디지털 신호 처리, 소프트웨터 정의 라디오, 의료 이미징 및 기타 여러 애플리케이션에 사용할 수 있는 다용도 도구로 활용되고 있다.

 

특정 설계 작업을 위해 맞춤형으로 제조되는 애플리케이션 직접회로(ASIC)에 비해 FPGA는 일반적으로 속도가 느리고 전력 소비가 많으며 단위당 가격이 더 비싸다. 그러나 재프로그래밍이 가능하기 때문에 개발 속도, 배포 후 하드웨어 업데이트 기능, 초기 투자 비용 절감 등 상당한 이점이 있으므로 프로토타이핑, 중소규모의 대량 생산에 적합하다. 아래는 FPGA가 실제로 사용되는 예시다.

 

  1. 통신 및 네트워킹
    : FPGA는 복잡한 디지털 신호를 처리하고 데이터 트래픽을 효율적으로 관리하기 위해 라우터, 스위치, 네트워크 인터페이스 카드와 같은 네트워킹 장비에 광범위하게 사용된다. 에를 들어, FPGA를 사용하면 셀룰러 네트워크 기지국에서 다양한 프로토콜과 신호 처리 기능을 유연하게 구현할 수 있어 5G와 같은 새로운 표준을 빠르게 업데이트하고 적용할 수 있다.
  2. 자동차
    : ADAS(Advanced Driver-Assistance Systems) 및 자율 주행 기술은 센서 융합을 위해 FPGA를 활용하며, 이를 통해 LIDAR, 레이더, 카메라 등 다양한 센서의 데이터를 실시간으로 통합하고 처리해 주행 결정을 내린다. FPGA는 병렬 처리 작업을  처리할 수 있으므로 이러한 민감한 애플리케이션에 이상적이다.
  3. 항공 우주 및 방위
    : FPGA는 상업용 및 군사용 위성 통신, 레이더 시스템, 항공 전자 공학에 사용된다. 높은 신뢰성과 현장에서 재구성할 수 있는 기능 덕분에 상황이 예측할 수 없이 변할 수 있는 우주 임무 및 기타 중요한 방위 시스템에 적합하다.
  4. 소비자 가전
    : 일부 고화질 텔레비전과 카메라는 비디오 인코딩/디코딩, 이미지 향상 및 형식 변환가 같은 이미지 처리 작업에 FPGA를 사용한다. FPGA를 사용하면 제조업체는 새로 하드웨어 없이도 새로운 기능이나 표준으로 디바이스를 업데이트할 수 있다.
  5. 의료 기기
    : FPGA는 MRI, CT 스캐너, 초음파 장비와 같은 의료용 이미지 장치에 사용된다. 이미지 재구성 및 향상을 위한 복잡한 알고리즘을 처리하여 진단 정확도에 중요한 실시간 이미징을 가능하게 한다.
  6. 데이터 센터 및 컴퓨팅
    : FPGA는 데이터 암호화, 머신 러닝 추론과 같은 특정 유형의 컴퓨팅 집약적인 작업을 가속화하는 데 사용된다. 예를 들어, Microsfot는 네트워킹 및 머신 러닝 작업을 가속화하기 위해 Azure 클라우드 서비스에 FPGA를 배포해 다양한 워크로드에 대한 FPGA의 적응성을 보여줬다.
  7. 산업 및 과학 기기
    : FPGA는 오실로스코프, 신호 발생기 및 기타 테스트 및 측정 장비에 사용되어 디지털 신호를 고속으로 처리하고 실시간 분석을 수행하며 시스템 응답을 제어한다.
  8. 금융 시스템
    : 고빈도 거래 플랫폼에서 FPGA는 거래 시간을 최소화하는 데 사용된다. 병렬 연산을 실행할 수 있기 때문에 초고속 데이터 처리와 주문 실행이 가능하며, 이는 밀리초가 큰 차이를 만들 수 있는 시장에서 매우 중요한 요소다.