FPGA란 무엇입니까?

click fraud protection

현장 프로그래밍 가능 게이트 어레이는 복잡해 보이지만 개발자에게 완전히 새로운 세계를 열어줍니다.

레트로 게임 에뮬레이션에 대해 읽어본 적이 있다면 FPGA(Field-Programmable Gate Array)라는 반도체 유형을 접했을 것입니다. 이는 구성 가능 논리 블록(CLB) 덕분에 제조 후 자체적으로 재구성할 수 있는 특수 집적 회로입니다. 즉, 기본적으로 AI, 칩셋 설계 및 기타 분야에 여러 응용 프로그램이 있는 다른 유형의 디지털 회로처럼 작동하도록 칩셋을 다시 프로그래밍할 수 있습니다.

FPGA에는 다양한 사용 사례가 있으며 Analogue Pocket과 같은 장치는 이를 활용하여 다양한 휴대용 장치를 지원합니다. 그러나 Microsoft는 또한 FPGA를 사용하여 Bing을 구동합니다. 이를 통해 회사는 개발되는 새로운 알고리즘을 지원하도록 FPGA를 신속하게 재프로그래밍할 수 있습니다.

FPGA와 기존 CPU 비교: 차이점은 무엇입니까?

표준 칩셋과 달리 스냅드래곤 8 2세대예를 들어 FPGA는 현장에서 다시 프로그래밍되도록 설계되지 않았습니다. GPU, NPU, CPU 등 여러 부분으로 구성된 시스템 온 칩(SoC)입니다. 일단 배송되면 소비자와 기업은 이를 받게 됩니다.

그러나 FPGA는 사용자가 추가 비용이나 위험 없이 칩의 일부를 변경할 수 있도록 유연성을 갖도록 설계되었습니다. 자율 주행 자동차와 같이 빠르게 변화하는 산업에서는 장치의 모든 측면에 대해 언제든지 새로운 규정과 표준이 도입될 수 있습니다. FPGA를 사용하면 OTA 업데이트를 통해 새로운 표준을 지원하도록 칩을 다시 프로그래밍할 수 있습니다.

FPGA와 기존 CPU의 큰 차이점 중 하나는 훨씬 낮은 클럭 속도를 희생하면서 데이터를 병렬로 처리하도록 설계되었다는 것입니다. 예를 들어, 데이터 처리를 위한 10개의 파이프라인이 있는 FPGA는 각 파이프라인에 대해 두 개의 숫자에 대해 곱셈 작업을 실행하여 주기당 20개의 숫자를 곱할 수 있습니다. 기존 CPU는 사이클당, 코어당, 순차적 순서로 두 개의 숫자를 곱할 수 있습니다.

FPGA는 에뮬레이션에서 어떻게 작동합니까?

FPGA는 하드웨어 에뮬레이션에 자주 사용되며, 칩셋 설계 프로세스의 흥미로운 부분은 테스트 시 SoC의 다양한 부분을 에뮬레이션하기 위해 FPGA를 사용한다는 것입니다. 칩셋 설계자는 여러 FPGA를 사용하여 ASIC(Application-Specific Integrated Circuit)의 프로토타입을 제작할 수 있습니다. HDL(하드웨어 설명 언어)은 하드웨어 설계를 생성하는 데 사용되며 이 언어는 FPGA에 자체 배열 방법을 알려줍니다. Analogue Pocket의 경우 이러한 디자인은 일반적으로 Verilog로 작성된 "코어" 형태로 배포되며 사용자는 코어를 다운로드하여 특정 콘솔용 핸드헬드를 준비할 수 있습니다.

예를 들어 Analogue Pocket은 카트리지 슬롯에서 Game Boy 게임을 직접 읽고 마치 원래 콘솔인 것처럼 재생할 수 있습니다. 뿐만 아니라 카트리지 어댑터는 Game Gear, Atari Lynx 등과 같은 다른 장치에 대한 추가 지원도 추가합니다. 이는 게임 플레이를 보장하기 위해 소프트웨어 에뮬레이션 대신 하드웨어 에뮬레이션을 활용하는 FPGA의 재프로그래밍 가능 특성 때문에만 가능합니다. MiSTer(DE-10 Nano FPGA 보드를 베이스로 사용하고 그 위에 추가 모듈이 필요함) SNES, Sega Genesis, 심지어는 게임 큐브. 하드웨어 에뮬레이션은 일반적으로 소프트웨어 에뮬레이션보다 더 정확하면서도 성능상의 이점도 제공합니다.

하드웨어는 시간이 지남에 따라 노후화되고 불안정해질 수 있지만 FPGA는 동일한 하드웨어 경험을 에뮬레이트하도록 간단히 다시 프로그래밍할 수 있습니다.

물론 그렇다고 해서 코어가 칩셋에 대한 완벽한 일대일 HDL 해석이라는 의미는 아닙니다. 그것들은 매우 비슷하지만 정상적인 사용에서 식별될 수 있는 문제를 해결하기 위해 시간이 지남에 따라 코어에 대한 수정 및 개선이 이루어졌습니다. 이러한 코어는 이러한 장치에 들어가는 칩셋을 리버스 엔지니어링하여 만들어지며 마더보드의 모든 구성 요소를 매핑해야 합니다. 맞춤형 독점 칩셋에서는 개발자가 종종 확인해야 하므로 훨씬 더 어려워집니다. 칩 내부에서 정확히 무슨 일이 일어나는지 확인하고 이를 복제하기 위한 현미경이 있는 "캡이 없는" 칩입니다.

그렇기 때문에 FPGA는 하드웨어 보존에도 중요합니다. 하드웨어는 시간이 지남에 따라 노후화되고 불안정해질 수 있지만 FPGA는 동일한 하드웨어 경험을 에뮬레이트하도록 간단히 다시 프로그래밍할 수 있습니다. 칩은 주어진 코어에 맞게 자체 물리적 논리를 자체적으로 재배열합니다. openFPGA 생태계는 하드웨어 보존을 돕기 위해 설계되었습니다.

게다가, 합법적인 느낌을 주면서 전반적으로 더 나은 하드웨어에서 게임을 플레이할 수 있는 추가적인 이점도 얻을 수 있습니다. 220달러에 Analogue Pocket을 선택하면 과거와 마찬가지로 Game Boy 게임을 플레이할 수 있지만 더 높은 빌드 품질, 더 나은 화면, 심지어 도킹 지원까지 제공됩니다.

FPGA의 단점

MiSTer FPGA 빌드용 DE-10 Nano

그러나 몇 가지 단점이 있습니다. 우선, 기존 CPU보다 훨씬 더 많은 공간을 차지하며 생산 비용도 훨씬 더 비쌉니다. Analogue Pocket 및 MiSTer FPGA와 같은 장치는 많은 비용이 들며, 후자의 경우 몇 가지 추가 기능도 선택하면 500달러 이상을 돌려받을 수 있습니다. 대부분의 사람들은 스마트폰이나 컴퓨터에서 게임을 에뮬레이션하는 것을 선호하며 하드웨어 수준 에뮬레이션이 제공하는 완벽한 픽셀 정확도에는 관심이 없습니다.

물론 FPGA는 소비자 관련 초기 단계에 있으며 최근 몇 년간 인기가 높아지고 있습니다. 실제로 과학자, 칩셋 설계자, AI 등의 전문적인 사용 사례에서 오랫동안 사용되어 왔지만 최근 몇 년 동안 소비자 기기가 등장하여 좀 더 캐주얼하거나 열정적인 방식으로 사용할 수 있게 되었습니다.

에뮬레이션을 원하는 대부분의 사람들에게는 원본에 충실한 경험은 매력적이지만 모든 사람이 필요로 하거나 관심을 갖는 것은 아닙니다. 개인적으로 슈퍼마리오 브라더스 같은 게임을 하고 싶다면 이동 중에도 휴대폰으로 플레이하는 것만으로도 만족스럽습니다. 전용 장치가 필요하지는 않지만 장치가 있는 것의 매력을 이해합니다.