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

교실 테이블에서 전기 장비 작업을 하는 학생들을 위에서 내려다본 모습

작성자

Josh Schneider

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

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

FPGA(Field Programmable Gate Array)는 ASIC(Application-Specific Integrated Circuit)와 같은 기존 로직 소자와 달리 고성능 컴퓨팅(HPC) 및 프로토타이핑 등 다양한 용도에 맞게 프로그래밍(및 재프로그래밍) 가능하도록 설계된 다목적 집적 회로입니다.

'필드 프로그래머블'이라는 용어는 제조사에서 출하된 이후에도 FPGA를 현장에서 프로그래밍할 수 있는 기능을 의미합니다. 기술 제조업체인 Xilinx가 1985년에 FPGA를 처음 출시했습니다.

FPGA는 하드웨어를 물리적으로 수정하지 않고도 새로운 또는 실험적인 용도를 포함한 다양한 사용 사례에 맞게 적용할 수 있습니다. 이러한 재구성 가능한 유연성은 복잡한 연산 수행 또는 단순 로직 게이트 역할을 하도록 구성 가능한 고정 프로그래밍 가능 로직 블록(PLB) 배열과 유연한 상호 연결을 통해 구현됩니다. FPGA는 또한 장치 내 디지털 데이터 저장을 위해 단일 비트 플립플롭부터 고밀도 메모리 어레이까지 다양한 메모리 요소를 포함합니다.

FPGA는 고성능과 뛰어난 유연성을 모두 제공하여 높은 가치를 지닙니다. 특히 고성능, 저지연 및 실시간 유연성이 요구되는 애플리케이션에 유용합니다. 이러한 이유로 통신, 자동차, 항공우주 산업에서 널리 사용됩니다.

트랙에서 굴러가는 공의 3D 디자인

최신 AI 뉴스+인사이트


주간 Think 뉴스레터에서 전문가들이 선별한 AI, 클라우드 등에 관한 인사이트와 소식을 살펴보세요. 

FPGA(필드 프로그래머블 게이트 어레이), ASIC(주문형 반도체) 비교

FPGA와 ASIC는 서로 다른 용도로 사용됩니다.

ASIC는 특정 애플리케이션용으로 개발 및 최적화되며 재구성할 수 없습니다. 내부 회로 요소(트랜지스터)는 고정된 구조로 배열되며, 그 사이에 고정되어 변경 불가능한 상호 연결(배선)이 있습니다.

ASIC은 한 가지 목적으로만 사용되기 때문에 해당 목적에 필요한 로직 요소만 통합합니다. 예를 들어, 부동 소수점 승수가 필요하지 않은 경우 설계에 통합되지 않습니다.

반대로, FPGA는 잠재적인 애플리케이션에 대해 구성 및 재구성될 수 있습니다. ASIC과 마찬가지로 내부 회로 요소는 고정된 구조(프로그래밍 가능한 로직 블록 또는 PLB)로 배열되지만 그 사이에는 재구성 가능한 상호 연결이 있습니다. FPGA의 로직 요소는 다양한 애플리케이션을 지원하기 위해 선택되지만 특정 로직 요소를 사용하지 않으면 '손실'되는 문제가 있습니다. 특정 애플리케이션에 부동 소수점 승수가 필요하지 않지만 FPGA에 부동 소수점 승수가 포함되어 있는 경우, 해당 리소스는 연결되지 않고 FPGA 내에서 '낭비되는 공간'을 나타냅니다.

두 장치 모두 수억 개의 트랜지스터를 포함할 수 있지만 ASIC는 이러한 트랜지스터를 사용하여 유연성을 희생하는 대신 높은 효율성과 성능을 제공할 수 있습니다. ASIC을 개발하기 위한 초기 NRE 비용은 엄청날 수 있지만 단가는 상대적으로 낮을 수 있습니다.

FPGA는 트랜지스터를 사용하여 높은 효율성과 고성능을 제공하면서도 엄청난 유연성을 제공합니다. FPGA를 개발하는 데 드는 초기 NRE 비용은 매우 낮은 반면, 단가는 일반적으로 더 높습니다. 이러한 규칙은 어렵고 빠른 규칙이 아니라는 점에 유의하는 것이 중요합니다. 예를 들어 성능 분야의 경우, 최근 FPGA는 500MHz 이상의 클럭 속도를 제공하도록 발전했으며 일반적으로 최첨단 실리콘 공정 구조로 제작됩니다. 즉, 새로운 FPGA 세대가 등장할 때마다 FPGA와 ASIC의 경계가 점점 모호해지고 있습니다.

IBM Storage FlashSystem

IBM Storage FlashSystem: 비용, 단순성, 복원력 면에서 VMware 최적화

IBM FlashSystem이 비용 효율성, 단순성, 복원력 면에서 VMware 환경을 최적화하는 방법을 알아보세요. IBM FlashSystem이 데이터 안전성, 접근성, 성능을 향상시키는 방식, 이 시스템이 현대식 IT 인프라에 이상적인 솔루션인 이유를 소개합니다.

필드 프로그래머블 게이트 어레이는 어떻게 작동하나요?

FPGA는 Verilog 또는 VHDL과 같은 표준 하드웨어 기술 언어(HDL)를 사용하여 PLB와 상호 연결을 구성함으로써 맞춤형 하드웨어 디바이스가 됩니다.

특정 FPGA 기반 기능과 이러한 기능 간의 상호 연결은 HDL로 '설명'되어 있습니다. 이 설명은 FPGA 구성 파일을 생성하기 위해 컴파일됩니다. 하드웨어 기술 언어를 사용하면 내장 FPGA 리소스(메모리 어레이, PCI 코어 등)를 사용할 수 있을 뿐만 아니라 보다 원시적인 FPGA 요소에서 맞춤형 로직 회로(가산기, 멀티플렉서 및 기타 애플리케이션별 기능)를 생성할 수 있습니다.

합성이라는 과정에서 HDL 코드는 넷리스트(HDL 코드 구현에 필요한 로직 게이트 및 상호 연결에 대한 효과적인 설명)로 변환됩니다. 그런 다음 넷리스트는 실제 회로를 구성하는 PLB와 상호 연결에 매핑됩니다.

Intel, Altera 등의 제조업체에서 생산하는 최신 FPGA는 높은 로직 밀도, 플래시 메모리, 내장 프로세서, 디지털 신호 처리(DSP) 블록 등 광범위한 디지털 및 아날로그 기능을 제공합니다. FPGA는 전기적 입력 및 출력 수정, 사용할 내부 리소스 선택, 구성 가능한 라우팅 리소스를 통한 리소스 연결 방식 결정을 통해 구성 및 재구성할 수 있으며, 결과적으로 특정 문제를 해결하는 전용 하드웨어 솔루션을 구현할 수 있습니다.

소프트웨어와 마찬가지로 복잡한 FPGA 설계 개발은 IP(Intellectual Property) 코어라고 하는 다양한 기능과 디지털 회로의 사전 설계된 라이브러리를 사용하여 간소화할 수 있습니다. 이러한 라이브러리는 FPGA 벤더 및 다양한 기능 개발을 전문으로 하는 서드파티 공급업체로부터 구매 또는 임대할 수 있습니다.

FPGA 모듈 및 구성 요소

최신 FPGA 장치는 재구성 가능한 기능을 구현하기 위해 마이크로컨트롤러, 컨버터와 같은 기존 회로 구성 요소 외에도 다양한 프로그래밍 가능 요소를 조합하여 사용합니다.

이러한 프로그래밍 가능 요소는 주로 CLB(Configurable Logic Block), 프로그래밍 가능 상호 연결, 프로그래밍 가능 라우팅, IOB(Programmable Input/Output Block), 온칩 메모리, DSP(Digital Signal Processing) 블록입니다.

CLB(Configurable Logic Block)

CLB(Configurable Logic Block)는 FPGA의 핵심 구성 요소입니다. CLB는 일반적으로 몇 가지 기본 로직 요소(로직 게이트, 소형 룩업 테이블, 플립플롭, 멀티플렉서 등)를 포함합니다. CLB 내에서 플립플롭은 일반적으로 주요 데이터 저장 요소 역할을 하지만, 최신 제품군에서는 CLB 내에 소용량 메모리 요소가 통합될 수도 있습니다.

프로그래밍 가능 상호 연결

전기적으로 프로그래밍 가능한 스위치로 연결된 와이어 세그먼트로 구성된 연결은 FPGA의 로직 블록 간 라우팅 경로를 제공합니다. 여러 개의 기본 반도체 스위치를 포함하는 스위치 박스는 일반적으로 FPGA의 프로그래밍 가능 상호 연결을 구현하는 데 사용됩니다. 이러한 상호 연결을 통해 특정 유닛 또는 입력 패드의 출력을 회로 내의 다른 셀 또는 패드에 연결할 수 있습니다.

프로그래밍 가능 라우팅

사전 제작된 와이어 세그먼트는 프로그래밍 가능 상호 연결에 의해 연결(또는 미연결)되어 FPGA 내에 완전히 프로그래밍 가능한 라우팅 인프라를 제공합니다. 라우팅 리소스는 계층적 구조로 되어 있으며, FPGA 내에서 다양한 길이를 포괄하는 장선, 중선, 단선의 조합을 사용합니다. 프로그래밍 가능 상호 연결로 구현되는 이 프로그래밍 가능 라우팅 인프라를 통해 사용자는 특정 작업 또는 애플리케이션 구현을 위해 FPGA 리소스를 구성할 수 있습니다.

IOB(Programmable Input/Output Block)

FPGA와 다른 외부 장치 간의 인터페이스는 IOB(Input/Output Block)를 통해 구현됩니다. IOB는 FPGA가 연결되는 모든 외부 장치의 프로토콜과 일치하도록 구성된 프로그래밍 가능 입출력 리소스입니다. FPGA로 들어오거나 나가는 모든 신호는 장치 핀과 연결된 IOB를 통해 이루어집니다.

온칩 메모리

초기 FPGA는 플립플롭(FF)만 사용하여 FPGA 로직 블록에 메모리를 통합했습니다. 하지만 FPGA의 기능이 향상됨에 따라 점점 더 복잡해지는 설계에는 데이터 버퍼링 및 재사용을 위한 전용 온칩 메모리가 필요해졌습니다. 최신 FPGA는 대용량 SRAM 메모리 어레이, 소형 LUT(Look-Up Table), 기존 플립플롭 요소를 사용하여 특정 애플리케이션에 필요한 저장 공간을 제공합니다.

DSP(Digital Signal Processing) 블록

초기 FPGA에서 사용 가능한 유일한 산술 리소스는 단순 가산기였으며, 더 복잡한 연산은 기본 로직 요소를 조합하여 구현했습니다. 하지만 실리콘 기술이 발전함에 따라 더 복잡한 산술 리소스가 FPGA에 통합되었고, 결국 최신 FPGA DSP 블록으로 발전했습니다. DSP 블록은 고성능 산술 함수 구현에 필요한 고도로 최적화된 리소스(곱셈기, 누산기 등)를 제공합니다.

DSP 블록을 사용하면 범용 CLB로 이러한 기능을 구현할 필요가 없어 CLB를 다른 용도로 활용할 수 있습니다. 디지털 필터링, 컨볼루션, 푸리에 변환, 삼각 함수 연산 등의 작업에서 이러한 리소스를 활용하면 레이더 처리, 빔포밍, 패턴 인식 등 다양한 애플리케이션에서 실시간 성능을 구현할 수 있습니다.

필드 프로그래머블 게이트 어레이의 유형

FPGA는 다양한 유형의 구성 가능성, 전력 소비, 프로그래밍 가능 요소 및 온칩 메모리를 제공하는 여러 가지 종류로 제공됩니다.

  • 안티퓨즈 기반 FPGA: 구성은 가능하지만 재구성할 수 없는 FPGA입니다. 이 장치는 안티퓨즈라고 하는 일회성 프로그래밍 가능 요소를 사용하며, 이 요소는 내부 전선 사이에 연결을 생성하기 위해 고전압을 인가하여 구성됩니다. 안티퓨즈 기반 FPGA는 한 번만 구성할 수 있으며 재구성할 수 없습니다.
  • SRAM 기반 FPGA: 이러한 유형의 FPGA는 활용도가 매우 높으며 런타임에 구성할 수 있습니다. SRAM 기반 FPGA는 정적 랜덤 액세스 메모리(SRAM)을 사용하여 구성 명령을 저장하고 구성 코드를 저장하기 위해 외부 메모리를 필요로 합니다.
  • 플래시 기반 FPGA: SRAM 기반 FPGA와 달리 플래시 기반 FPGA는 비휘발성 플래시 메모리에 구성을 저장하므로 재프로그래밍이 가능하다는 추가적인 이점이 있습니다.
  • EEPROM 기반 FPGA: 이 종류의 FPGA는 플래시 기반 FPGA와 유사하지만 전자적으로 지울 수 있는 프로그래머블 읽기 전용 메모리(EEPROM)에 FPGA의 구성이 저장됩니다. 두 스타일 모두 비휘발성이며 재프로그래밍이 가능합니다.
  • 하이브리드 FPGA: 하이브리드 FPGA는 SRAM 또는 플래시 기반 로직 블록과 같은 다양한 프로그래밍 가능 요소의 조합을 통해 다양한 수준의 성능, 저전력 작동 및 다목적성을 제공합니다.
  • 시스템 온 칩 FPGA: 시스템 온 칩(SoC) FPGA는 프로그래머블 로직과 하드 프로세서 코어를 통합하여 CPU, GPU, RAM과 같은 여러 시스템 처리 칩을 하나의 유닛으로 결합하는 단일 실리콘 칩인 SoC와 FPGA의 기능을 결합합니다.

필드 프로그래머블 게이트 어레이 사용 사례

본질적으로 다목적인 FPGA는 다양한 애플리케이션에 적합합니다.

레이더 애플리케이션

FPGA는 고속 병렬 처리 기능으로 인해 신호 처리 및 데이터 수집에 선호됩니다.

무인 항공기(UAV)

FPGA는 고속 신호 처리 알고리즘으로 인해 드론과 같은 무인 항공기에 사용되는 비행 제어, 센서 처리 및 통신 작업을 수행하는 데 매우 적합합니다.

산업용 제어 시스템(ICS)

전력망, 정유 공장 및 정수 공장과 같은 인프라를 모니터링하는 데 사용되는 산업용 제어 시스템은 다양한 산업의 고유한 요구 사항을 충족하도록 쉽게 최적화할 수 있는 FPGA를 사용합니다. 이러한 중요 산업에서 FPGA는 효율적인 사이버 보안을 위해 다양한 자동화 및 하드웨어 기반 암호화 기능을 구현하는 데 사용할 수 있습니다.

ASIC 프로토타입 제작

FPGA는 유연성이 필요한 작업에 유용한 솔루션이지만, 작업별 ASIC는 표준화된 작업에 더 적합한 경우가 많습니다. 새로운 시스템이 개발됨에 따라 FPGA는 신기술을 위한 새로운 ASIC을 개발하고 프로토타이핑하는 데 유용합니다.

데이터 센터

FPGA는 고대역폭, 저지연 서버, 네트워킹 및 스토리지 인프라를 촉진하여 데이터 센터에 가치를 더합니다.

관련 솔루션
IBM® FlashSystem: 플래시 스토리지 솔루션

IBM® Storage FlashSystem은 사이버 복원력과 향상된 데이터 스토리지 기능을 제공합니다.

Storage FlashSystem 살펴보기
엔터프라이즈 데이터 스토리지 솔루션

IBM Storage는 데이터 스토리지 하드웨어, 소프트웨어 정의 스토리지, 그리고 스토리지 관리 소프트웨어로 구성된 제품군입니다.

데이터 스토리지 솔루션 살펴보기
IT 인프라 라이브러리 및 컨설팅 서비스

IBM® Technology Expert Labs는 IBM 서버, 메인프레임 및 스토리지를 위한 인프라 서비스를 제공합니다.

IT 인프라 라이브러리 서비스 살펴보기
다음 단계 안내

IBM® Storage FlashSystem은 사이버 복원력과 향상된 데이터 스토리지 기능을 제공합니다.

Storage FlashSystem 살펴보기 자세한 정보 보기