taeyounkim LOG

[Tech] FPGA에 대한 간단한 정리 본문

Tech

[Tech] FPGA에 대한 간단한 정리

taeyounkim 2021. 12. 1. 20:58
728x90

FPGA는 Field Programmable Gate Array의 약자이다. 최근 들어 이 칩의 이름이 굉장히 많이 거론되는 것을 볼 수 있었다. 그만큼 핫한 기술이라는 것이다. 요즘 읽고 있는 책에서도 자세하게 설명이 되어있어 흥미롭게 읽어보았다. 그리고 비록 내가 이 칩을 다루고 프로그램할 수 있는 것은 아니지만 공부한 내용에 대해 요약을 해보고자 한다. 이 포스트는 매우 기본적인 지식에 대한 포스트이며, 추가적인 공부를 통해 지식을 확장해나아가고 싶은 마음이다. 또한 나도 과거의 기술을 배우는 것에 머무르는 것이 아니라 미래에 유망할 기술들에 대해 알아가고 그 분야에 종사를 해야 승산이 있기 때문에 그러한 취지도 있다고 하고 싶다.

FPGA는 한마디로 요약하자면 설계 가능 논리 소자와 프로그래밍이 가능한 내부 회로가 포함된 반도체 소자이다. VDHL과 Verilog로 설계가 가능하다.

역사
FPGA의 원래 목적은 "시뮬레이션"이다.
웨이퍼로 실물 칩을 만들기 전에 칩의 설계를 검증하기 위해 사용하던 칩이다. 반도체 설계를 하는 단계에서 실수가 일어나게 된다면 감수해야하는 비용이 굉장히 크다. 이런 문제를 극복하기 위한 방법으로 컴퓨터 시뮬레이션이 존재하지만, 시간이 굉장히 오래 걸린다는 커다란 단점이 존재한다.
이를 해결할 칩으로 고안된 것이 FPGA이다. 순차적으로 각 하드웨어를 수행해야만 하는 컴퓨팅 시뮬레이션과는 다르게 실존하는 칩인 FPGA는 모든 하드웨어를 동시에 작동할 수 있다는 커다란 우위가 있다. FPGA의 시작은 1985년 Xilinx의 CPLD (복합 프로그래머블 논리 소자, Complex Programmable Logic Device)이다.


활용도
(1) 데이터센터
SNS와 메타버스, 그리고 클라우드 기술의 발전에 따라 저장해야하는 용량은 늘어나고 있다. 이에 따라 데이터센터라는 개념이 최근 들어 주목을 받고 있다고 한다. 저장해야하는 용량이 늘었을 때 데이터센터의 설비를 단순히 늘린다고 해서 저장공간의 문제가 해결되지 않는다고 한다. 장비들을 늘림에 따라 계속되는 효율화가 설비의 유지에 핵심적이라고 하는데, ASIC으로 이 문제를 해결하려면 시간적, 인적, 금전적 자원이 굉장히 많이 소모된다. 시간과 돈을 투자하여 새롭게 칩을 설계하고 그것을 또 다시 구매해야하기 때문이다. 하지만 FPGA의 경우 새로 생기는 문제에 대해 대응을 유연하게 할 수 있다는 부분에서 ASIC에 우위를 가지고 있다고 한다.


(2) AI, 머신러닝

(3) 항공, 우주, 국방, 철도

(4) 의료


장점
(1) 프로그래밍 가능
FPGA는 단어 그대로 현장(Field)에서 프로그램할 수 있는(Programmable)한 칩이다. 예를 들어서 4개의 정수 연산장치와 3개의 벡터 연산기가 있는 칩이 있다고 해보자. 이 연산기는 이미 웨이퍼에 그려져 있기에 수정할 수 없다. 따라서 4개보다 많은 정수 연산이 들어올 시에는 나눠서 처리를 해야만 한다.
FPGA의 경우 이런 상황에서 실시간으로 처리해야하는 연산의 개수만큼 연산기의 개수를 바꿀 수 있다는 장점이 있다.

(2) 병렬 컴퓨팅
병렬 컴퓨팅 또한 FPGA의 장점이다. 메모리에서 프로그램을 불러와 CPU에서 해독하는 일반적인 프로세서와는 다르게 FPGA는 수행할 프로그램에 맞게 회로를 설계하여 병렬적으로 실행을 한다. 수만에서 수백만 개의 명령을 한 번에 처리할 수 있어 직렬적인 컴퓨팅을 사용하는 CPU와 비교하면 압도적인 속도를 보여준다는 것이다.

(3)가격
FPGA는 ASIC(주문형반도체)에 비해서 저렴하다. 칩의 설계와 생산 단계에서 발생하는 비용이 소비자에게 전가된다는 것이 그 이유이다. 항공, 국방, 우주산업 등에서는 칩을 대량으로 구매할 필요가 없기 때문에 소량생산이 가능한 FPGA를 구입하여 자체적으로 프로그래밍을 하는 것이 비용 측면에서 훨씬 유리하다고 볼 수도 있다.

단점
FPGA는 시뮬레이션을 위해 개발된 칩이다. 그렇기 때문에 CPU와 비교하였을 때 성능이 비교적 떨어질 수 밖에 없다.
또한, 구글과 같이 자신들이 원하고 필요한 연산이 무엇인지 정확하게 아는 회사는 굳이 FPGA를 사용할 필요가 없으며, 자신들이 독자적으로 개발한 칩을 사용하는 것이 오히려 나을수도 있다.
"모든 것을 잘하지만 제일 잘하는 것은 없는" 위치에 놓일 수 있다는 책의 말 그대로 애매한 포지션에서 이도저도 아닌 존재가 될 수 있는 것이다.

기술 동향
최근에 비메모리 반도체 시장의 경쟁은 정말 뜨겁다. 이 시장을 이끌어가고 있는 대표적인 거인들은 엔비디아, AMD, 그리고 인텔이다.

엔비디아와 AMD가 엄청난 성장을 거듭하며 반도체 시장의 절대 강자로 군림하고 있는 반면, 칩의 소형화가 일어나며 AP의 수요가 급증함에 따라 인텔은 CPU를 통해 독점을 하던 과거의 명예에는 전혀 미치지 못한다는 평가를 받고 있다고 한다.
이에 인텔과 AMD는 각각 FPGA회사 Altera와 Xilinx를 인수하며 기존의 CPU가 가지고 있는 단점을 극복하는 동시에 CPU와 FPGA를 통합하는 형식으로 효율을 극대화하는 전략을 구사할 것으로 예상이 된다고 한다.

이에 맞춰 현재 엔비디아도 ARM 인수를 진행하는 움직임을 보이고 있다.

솔직히 실무적인 부분을 배우고 싶어 미치겠다.
FPGA의 이론적인 부분을 아는 것에서 끝나지 않고 Verilog나 VDHL로 직접 설계를 해보면서 이 이론을 같이 배웠으면 얼마나 더 좋았을까 싶다. 2학년 2학기~4학년에 걸쳐 Verliog에 대해서는 배운다고 들었는데 그때부터 기회가 생기지 않을까 싶다.

-끝
2021.12.01

https://www.youtube.com/watch?v=Hun9zmOMIVM

https://www.youtube.com/watch?v=Xi8P8s7FQns&t=643s


http://www.epnc.co.kr/news/articleView.html?idxno=81703

FPGA의 특징과 적용 애플리케이션 - 테크월드뉴스

[테크월드=양대규 기자] 최근 FPGA(Field Programmable Gate Array)에 대한 관심이 커지고 있다. FPGA는 프로그램이 가능한 비메모리 반도체의 일종으로, 주로 항공, 우주, 방산 등의 특수한 영역이나 특정

www.epnc.co.kr

728x90