필드 프로그래머블 게이트 어레이 (Field-Programmable Gate Array)

전기전자공학
한 줄 정의: 제조 후에도 사용자가 내부 논리 회로 구조를 원하는 대로 재구성할 수 있는 반도체 칩입니다.

쉽게 풀면

보통의 반도체 칩은 공장에서 회로가 고정된 채로 나오지만, FPGA는 마치 레고 블록처럼 내부 논리 조각들을 사용자가 다시 조립할 수 있습니다. 이 조각들은 룩업테이블이라는 작은 프로그래머블 단위들로 이루어져 있으며, 이들을 어떻게 연결하느냐에 따라 완전히 다른 회로가 됩니다. 그래서 새로운 알고리즘을 검증하고 싶을 때, 새로 칩을 제작하지 않고도 같은 하드웨어 위에서 다른 기능을 구현할 수 있습니다. 한 번 산 칩을 여러 번 다른 용도로 다시 쓸 수 있는 만능 회로판이라고 생각하면 됩니다.

왜 중요한가

전용 반도체(ASIC)를 설계하려면 막대한 개발비와 시간이 들지만, FPGA는 설계를 즉시 회로에 반영해 시제품을 빠르게 검증할 수 있어 연구와 산업 양쪽에서 널리 활용됩니다. 특히 신호처리, 통신, 인공지능 가속기 연구에서 알고리즘을 하드웨어로 구현해 성능을 실측하는 표준적인 수단으로 쓰입니다.

논문에서는 이렇게 쓰입니다

"제안한 딥러닝 가속 아키텍처는 FPGA 상에 구현되어 실시간 추론 지연시간을 측정하였다."

이 문장은 제안된 하드웨어 설계를 실제 FPGA 보드에 올려 성능을 검증했다는 뜻입니다.

"본 연구에서는 FPGA 기반 프로토타입을 통해 제안된 통신 프로토콜의 실현 가능성을 검증하였다."

ASIC 제작 전 단계에서 FPGA로 설계를 미리 시험해 보았다는 의미입니다.

조금 더 깊게 보면

FPGA 내부는 다수의 룩업테이블 기반 논리 블록, 플립플롭, 그리고 이들을 연결하는 프로그래머블 배선망으로 구성됩니다. 설계자는 하드웨어 기술 언어(HDL)로 회로를 기술한 뒤 합성 및 배치·배선 과정을 거쳐 이를 실제 FPGA 자원에 매핑합니다. 최근에는 저전력 임베디드 응용을 위해 클록 게이팅이나 전력 게이팅 같은 저전력 설계 기법이 FPGA 설계에도 함께 적용되는 경우가 많습니다.

주의할 점

FPGA는 재구성이 가능한 대신 동일 기능의 ASIC보다 일반적으로 속도가 느리고 전력 효율이 낮은 경향이 있습니다. 또한 FPGA와 ASIC은 서로 대체재라기보다 개발 단계와 목적에 따라 선택되는 상호 보완적인 기술로 이해하는 것이 정확합니다.

관련 용어