FPGA

덤프버전 :


'''[[전기전자공학과|{{{#fff 전기·전자공학

Electrical & Electronic Engineering
]]'''
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px)"
[ 펼치기 · 접기 ]
학문
기반 학문
연관 학문
물리학​(전자기학​(회로이론 · 전자 회로 · 논리 회로) · 양자역학 · 물리화학 · 열역학 · 응집물질물리학) · 화학
수학​(공업수학 · 수치해석학 · 위상수학 · 미분방정식 · 대수학​(환론 · 표현론) · 선형대수학 · 이론 컴퓨터 과학 · 컴퓨터 공학​(프로그래밍 언어​(HDL · VHDL · C · C++ · 파이썬 · 베릴로그)) · 재료공학 · 제어 이론
전기·전자 관련 정보
제품
소자
스마트폰 · CPU · GPU​(그래픽 카드) · ROM · RAM · SSD · HDD · MPU · CCD · eMMC · USB · UFS · LCD · LED · OLED · AMOLED · IoT · 와이파이 · 스마트 홈 · 마그네트론 · 마이크 · 스피커 · 배터리
다이오드 · 진공관 · 트랜지스터​(BJT · FET · JFET · MOSFET · T-FT) · CMOS · 저항기 · 태양전지 · 연산 증폭기 · 사이리스터 · GTO · 레지스터​(IGBT) · 펠티어 소자 · 벅컨버터
용어
클럭 · 집적 회로 · ASIC · CPU 관련​(BGA · 마이크로아키텍처 · GPS · C-DRX · 소켓) · 전계강도계 · 축전기 · CMCI · 전송선 · 양공 · 도핑(반도체) · 이미터 · 컬렉터 · 베이스
이론 & 연구
반도체​(P형 반도체 · N형 반도체) · 디스플레이 · 논리 회로​(보수기 · 가산기 · 플립플롭 · 논리 연산) · 전자 회로 · RLC 회로 · PFC · DSP · 히스테리시스 곡선 · 휘트스톤 브릿지 · 임베디드 시스템
공식 및 법칙
전자기 유도 · 가우스 법칙 · 비오-사바르 법칙 · 무어의 법칙 · 키르히호프의 법칙 · 맥스웰 방정식 · 로런츠 힘 · 앙페르 법칙 · 드모르간 법칙 · 페르미 준위
자격증

전기 계열
전자 계열
기타
기​능​사
전기기능사 · 철도전기신호기능사
전자기기기능사 · 전자계산기기능사 · 전자캐드기능사
신재생에너지발전설비기능사(태양광)
기​사
전기기사 · 전기산업기사 · 전기공사기사 · 전기공사산업기사 · 전기철도기사 · 전기철도산업기사 · 철도신호기사 · 철도신호산업기사
전자기사 · 전자산업기사 · 전자계산기기사 · 전자계산기제어산업기사
소방설비기사 · 신재생에너지발전설비기사(태양광)
로봇소프트웨어개발기사 · 로봇하드웨어개발기사 · 로봇기구개발기사
기​능​장 및 기​술​사
전기기능장 · 건축전기설비기술사 · 발송배전기술사 · 전기응용기술사 · 전기안전기술사 · 철도신호기술사 · 전기철도기술사
전자기기기능장 · 전자응용기술사




[ 펼치기 · 접기 ]
기반 학문
수학 (해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학 (환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학 (형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학
SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술
기계어 · 어셈블리어 · C(C++ · C\#) · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍(디자인 패턴) · 해킹 · ROT13 · OTP · IoT · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화
연구및 기타 문서
논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 디자인 패턴 · 데이터베이스 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론} · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 정보처리이론 · 재귀 이론 · 자연 언어 처리(기계 번역 · 음성인식)
}}}



1. 개요
2. 역사
3. 상세
4. 제조업체
5. 활용
6. 관련 문서



1. 개요[편집]


Field-Programmable Gate Array

프로그래밍이 가능한 집적 회로 반도체. 모든 신호가 하드웨어 레벨에서 실시간 처리된다. HDL(Hardware Description Language)이라는 특수한 하드웨어 기술 언어를 통해 Synthesis(합성) [1]되고 업로드되어 하드웨어 내부의 논리 연산과 배선이 재조정된다. 현대에는 VHDLVerilog라는 하드웨어 기술 언어를 주로 쓴다.

일반적인 프로세서는 이미 보편적인 목적에 맞게 설계하여 양산하는 형태이고, FPGA는 어플리케이션에 맞게 최적화 된 프로세스 및 내부 연산처리 로직(곱셈 연산이 많은 경우, 곱셈 처리 로직을 여러 개 추가하여, 그 연산 속도를 높을 수 있음)을 직접 설계하여, 처음 구동 시에 그 로직을 로딩하여 사용하는 방식이다. 따라서 물리적인 교체 없이, CPU 또는 연산장치의 수정이 가능하다.


2. 역사[편집]


FPGA가 있기 전에 1970년대에 GAL, PAL 라고 하는 여러개의 로직 소자를 엮어서 입출력 구성을 자기 마음대로 바꿀수 있는 소자가 있었다. 다만 시기가 시기인 만큼 프로그래밍 가능한 수준은 아니었고 외부 핀과 연결되어서 제어하는 방식이었다. 아직 반도체 공학이 발전하지 않은 시절이라 이때의 소자수는 수십개 정도였는데 FPGA의 역사는 이곳에서 시작한다고 볼 수 있다.[2]

이후 PAL를 더 많이 사용해서 기능을 늘린 PLD가 탄생하고 이 PLD의 규모가 커진 CPLD(Complex Programmable Logic Device)가 나오게 되고 이후 더 발전한 개념인 FPGA가 나오게 된다.

field-programmable gate array라는 이름이 붙은 이유는 간단한데 기존에 PLC, CPLD 소자 같은 경우는 초창기의 ROM처럼 퓨즈 방식인 경우가 많아서 공장이 아니라면 프로그래밍이 불가능한 제품이 많았기 때문이다. FPGA에서는 메모리를 통한 소자 수정을 통해서 더 간단하게 기록할 수 있게 되었고 이때부터 제조사가 아니어도 논리 소자를 프로그래밍 할 수 있게 되었다.

시장에 나온 첫 FPGA는 알테라의 EP300이다. EP300은 자외선을 이용한 EPROM 구조로 되어 있는 제품이었다.


3. 상세[편집]


칩셋 내부에 로직 게이트를 자유자재로 구현할 수 있도록 진리표를 이용해 로직을 만들어 내는 RAM과 플립플롭이 빽빽히 박혀있고 내부 결선을 직접 변경할 수 있기 때문에 사용자의 용도에 맞게 온갖 칩을 설계 가능하다. 단순 MCU 대체 용도부터 시작해서 DSP나 아예 자기가 원하는 방식대로 새로운 논리 소자CPU를 만드는 것도 가능하며 이론상 한 클럭에 모든 작업을 수행할 수도 있다.

주요 성능의 지표로는 동작 속도가 아닌 논리 블록의 수로 평가되는데, 이는 게이트 간 결선을 통해 동시에 수 만에서 수백 만의 명령을 단 한 번에 병렬적으로 실행할 수도 있기 때문이다. 클럭 신호에 맞추어 명령어를 차례대로 수행하는 프로세서와는 근본적으로 동작 방법이 다르다고 할 수 있다.

프로그래밍이 가능한 주제에 비교 대상은 항상 ASIC이다. ASIC은 프로그래밍이 불가능한 양산형 집적 회로이고, 성능, 전력 소모, 칩 가격 모든 면에서 FPGA보다 뛰어나지만, 개발 비용이 어마무시하기 때문에 수요 규모가 크지 않으면[3] ASIC보다는 FPGA를 사용하는 게 일반적이다. ASIC과 비교해서 FPGA는 기본적으로 해당 공간에 모든 용도로 활용 가능한 로직 블록을 우겨 넣은 형태이기 때문에 전력 소모가 많으며 ASIC보단 소형화된 설계를 할 수 없다. 저전력으로 설계된 FPGA칩도 존재하며 이들도 나름의 시장을 형성하고 있다. ASIC는 인쇄 회로 기판, FPGA는 만능기판에 비유할 수도 있다. 실제로도 과거에는 PCB 또한 커스텀 제작이 어려웠다. 하지만 기술의 발달로 커스텀 PCB를 취급하는 제조업체가 상당히 늘어 옛말이 되었다.

단순 프로그래머블 논리 소자 말고도 별도의 CPU를 탑재할 필요 없이 자체적인 CPU를 탑재한 제품도 나오고 있으며 이를 통해서 다양한 분야에 널리 사용되는 중이다. 실제 산업현장에서 일반적으로 FPGA 단독으로 쓰이는 경우는 거의 없기 때문이다. 보통은 피코/나노초 단위로 고속처리가 중요한 분야만 FPGA를 적용하고 이 FPGA를 다른 CPU가 제어하는 식으로 많이 쓰인다. 자일링스의 ZYNQ, 인텔의 어질렉스 SOC 등등 둘다 ARM 코어텍스-A 기반 코어 탑재.

이런 특성 때문에 다양한 분야에서 쓰이고 있으며 대표적으로 인공지능이나 기계 제어 등에서 많이 쓰이고 있다.

비휘발성 FPGA는 전원을 꺼도 프로그램이 보존되니 상관이 없지만, 휘발성 FPGA는 전원을 끄면 프로그램이 삭제되기 때문에 전원을 켤 때마다 재설치가 필요하다. 일부 기종은 MCU가 내장되어 있어서 전원을 켤 시 자동으로 프로그램이 설치되는 것도 있고, 전원을 켤 때마다 외부에서 프로그램을 설치해주어야 하는 기종도 있다. 보통 이 경우는 외부에 MCU를 따로 설치한다.

4. 제조업체[편집]


FPGA 제조 업체 자체는 많다. 마이크로컨트롤러로 유명한 업체도 자사 마이크로컨트롤러 라인업에 FPGA를 끼워 놓은 경우가 많으며 코어텍스-M 코어 중에는 아예 FPGA 코어도 있다. 시장 점유율은 자일링스가 1위, 인텔이 2위로 경쟁하고 있으며 이 둘을 합하면 거의 90%에 가까운 시장 점유율을 보여준다.시장점유율 원래는 알테라였지만 인텔이 인수한 뒤 아예 알테라 브랜드를 지우고 인텔 브랜드에 편입한 상태다. 현재는 AMD가 자일링스를 인수하면서 사실상 AMD와 인텔의 경쟁이 되었다. 이 두 회사는 몇 안되는 빅칩 FPGA를 제조하는 회사들이며(각각 버텍스, 킨텍스/스트라틱스, 애질렉스) 따라서 좀 규모가 큰 장비에 들어가는 FPGA는 십중팔구 이 두 회사의 제품이다. [4]

이외에도 마이크로세미[5],Lattice Semiconductor등의 소규모 회사들이 있으며 이외의 회사들은 구색 갖추기 수준의 라인업만 갖춘 경우가 많다.


5. 활용[편집]


  • 프로토타입 -칩 양산 단계에서의- 테스트
  • 로봇제어 / 인공지능 / 채굴기 / 데이터 센터 등을 위한 가속기 또는 그래픽 가속기
  • 우주선 / 인공위성 / 대부분의 현대전 무기 / 전자전 무기 / 미사일와 같은 방위 산업 분야 [6]
  • 통신 시스템 등 높은 처리 능력과 유연성이 동시에 요구되는 분야
  • 기타 기존 시스템의 원칩화
  • ATE(Automatic Test Equipment) 반도체 자동화 테스트 장비
  • 데이터 수집 장치(DAQ,data acquisition)

빠르고 신뢰성 있는 하드웨어 프로그래밍을 요구로 하는 현장에서 주로 쓰인다. 일반적으로 ASIC(주문형 반도체) 설계용 테스트 용도나 DSP 개발용으로 쓰거나 일부에서 MCU 용도로 사용하기도 한다. [7]

한때는 다른 저전력 MCU들에 밀리다가 최근에 들어서 가속기 용도로 활약하며 AI 분야(마이크로소프트나 인텔이 이 부분에 적극적이다.)나 암호화폐 채굴 등 막대한 연산력을 필요로 하는 분야에서 두각을 드러내고 있다. 암호화폐 채굴 분야에서는 사실 ASIC으로 넘어가기 전 단계에 해당된다. 채굴 로직을 개발해서 FPGA에 탑재해 성능 확인 후 그대로 ASIC행.

가속기 용도에서는 GPGPU와 경쟁 상대. FPGA를 사용하면 하드웨어 레벨에서 애플리케이션의 병렬 처리를 최적화 할 수 있기 때문에 GPGPU보다 성능이나 전력 소모 등에서 훨씬 유리하다. 암호 화폐 채굴기 사례에서 알 수 있듯이 잘 설계된 하드웨어 가속기는 GPGPU를 전성비에서 밟아버릴 수 있다. 그러나 하드웨어를 설계해 줘야 하는 FPGA의 특성상 설계 난이도가 매우 높다는 큰 단점이 있다.(그 어렵다는 GPGPU보다 훨씬 더!) 예를 들어 박사 학위를 가진 엔지니어 한 명이 2달동안 어떤 동영상 처리 알고리즘을 GPGPU로 구현했는데, 동일한 알고리즘과 기능을 FPGA로 구현할 때 박사 학위를 가진 엔지니어 두 명이 1년동안 작업해야 했다는 보고가 있다. 단순 계산하면 동일한 기능의 구현에 GPGPU 보다 12배의 노동력이 필요했던 것이다. C 등의 프로그래밍 언어로 알고리즘을 짜면 HDL로 변환해주는 HLS(High Level Synthesis)도 많이 보급되었지만, 그게 하드웨어를 몰라도 쉽게 사용할 수 있는 만능 도구라 생각하면 곤란하고, FPGA 설계는 하드웨어 설계에 대한 지식이 없는 일반적인 사람에게는 불가능에 가까운 진입 장벽을 가지고 있다. 즉, FPGA를 설계할 줄 안다는 것은, 단순한 코딩 지식 뿐 아니라 하드웨어적인 지식까지 전체적으로 알고 있다는 이야기가 된다.

마이크로소프트에서는 데이터 센터 서버에 알테라(Altera)의 FPGA를 도입해서 Bing 검색엔진의 성능 및 전력 소모를 개선했다고 한다.

일반인들이 체감할 수 있는 사용 사례를 꼽아보면 G-SYNC나 카메라 등이 있는데 엔비디아는 자사의 G-SYNC 컨트롤 보드에 인텔의 ARRIA FPGA를 사용하였다. 이외에도 엔비디아는 인텔제 FPGA를 많이 사용한다. Quadro Sync II에도 인텔제 FPGA가 들어가 있음을 확인할 수 있다. 영상 캠코더 분야에서 초 고해상도 영상의 무지막지한 처리량을 감당하기 위해 아예 대형 FPGA를 통째로 넣고 처리해버리는 제품들이 많다. 또한 캡쳐 보드 분야에서도 FPGA가 쓰이는 등 영상 분야에 광범위하게 쓰인다. 그리고 대다수의 경우 이 FPGA가 발열의 원인이다.

이외에도 현재는 판매되지 않는 구형 칩셋의 구현을 위해서 사용하기도 하는데 Analogue Pocket과 같은 레트로 게임기의 물리적 구현이 대표적인 예시이다.

6. 관련 문서[편집]




파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-25 06:15:05에 나무위키 FPGA 문서에서 가져왔습니다.

[1] 컴파일이란 용어 대신 Synthesis(합성)이라고 부른다. 내부에 업로드 할 경우 단순히 코드만 저장되는 게 아니라 논리 회로가 물리적으로 재구성되기 때문이다.[2] 이러한 PAL 칩 등은 물론 당대 컴퓨터에도 자주 사용되었다. 가령 당시 대우나 금성에서 만든 국산 MSX 컴퓨터들의 메인보드에도 PAL 칩이 하나 이상 들어가있었다.[3] 수요 규모가 큰 비트 코인 채굴에는 세계적으로 ASIC가 쓰인다.[4] 대표적인 예시가 KF-X사업. 자일링스의 버텍스 FPGA가 사용된다.[5] Microchip Technology의 FPGA부분. [6] 이렇기 때문에 가끔씩 FPGA 관련 제품 구매 시 "군사적 용도로 사용할 것이냐"에 대해서 질의 응답을 하는 벤더들 또한 있는데. 몇몇 소자들은 수출 통제를 까다롭게 받아야 해서 팔지 말아야 하는 단체나 적성국에 수출 시 법적 제재를 받게 된다.[7] 다만 FPGA를 마이크로컨트롤러 대신에 사용하는건 보통 돈낭비라 마이크로컨트롤러로 처리 불가능한 작업을 처리하거나(나노/피코초 단위의 반응속도가 필요한 제어장비) 미친듯한 신뢰성을 이유로 절대로 고장나면 안되는 일부 기기에 마이크로 컨트롤러 대신 쓰는 정도가 대부분이다.