미니 AMD. FPGA 요소를 코어에 통합하는 CPU 설계에 대해 특허 출원
- 스퀴니
- 조회 수 280
- 2021.01.06. 00:01
AMD는 최근 FPGA요소를 CPU 코어 핵심 부분에 통합하는 CPU 설계에 대한 특허를 미국 특허청에 출원하였습니다
[컴퓨터 시스템에서 효율적인 프로그래밍이 가능한 명령어를 위한 방법 및 장치] 라는 이름을 가진 특허는 FPGA 요소가 핵심 설계에 새겨진 CPU를 설명하며, 여기서 FPGA 요소는 실제로 부동 소수점 및 정수 실행 단위에 대한 레지스터와 같은 CPU 자원을 공유합니다
이 특허는 의심할 여지 없이 AMD가 발표한 Xilinx 인수 계획을 계기로 나온 것이며, FPGA와 CPU 결혼을 전혀 다른 수준으로 끌어올리는 것입니다. FPGA는 이름에서 알 수 있듯이, 원하는 특정 기능을 실행하기 위해 미리 결정된 테이블(또한 업데이트될 수 있음)에 따라 자신을 재구성할 수 있는 하드웨어 구성입니다.
인텔도 이미 같은 패키지로 CPU + FPGA 콤보를 출하했습니다. 예를 들어, Xeon 6138P에는 Arria 10 GX 1150 FPGA 온 패키지가 포함되어 있으며, 1,150,000개의 논리 요소를 제공합니다. 그러나 이것은 단순히 동일한 기판의 CPU + FPGA 콤보일 뿐이며 코어 통합 FPGA 설계가 아닙니다. 인텔의 제품은 FPGA에서 수행되는 복잡한 작업을 CPU에서 꺼내 FPGA에서 처리한 후 결과를 CPU로 반환해야 한다는 사실 때문에 성능과 지연 시간이 심하다는 단점이 있습니다. AMD의 디자인은 그것을 효과적으로 제거하므로 훨씬 더 높은 성능이 나오게 된다는 것입니다.
특허 출원서에 작성된 내용 중 일부는 다음과 같습니다
- 프로세서는 서로 다른 유형의 사용자 지정 명령을 실행하도록 프로그래밍할 수 있는, '하나 이상의 재 프로그래밍 가능한 실행 단위'를 포함합니다
- 프로세서가 프로그램을 로드할 때 PEU가 사용자 정의된 명령을 실행하도록 프로그램하는 프로그램과 관련된 비트 파일을 로드합니다
- CPU의 디코딩 및 디스패치 부서는 전문화된 명령어를 적절한 PEU에 자동으로 디스패치합니다.
- PEU는 부정소수점 및 정수 계산 유닛 레지스터를 공유합니다.
- 속도 향상이 필요한 경우 PEU는 정수 또는 부정소수점 워크로드도 가속화 할 수 있습니다.
- 시스템 보안 기능을 사용하면서 PEU를 가상화 할 수 있습니다.
- 각 PEU는 시스템의 다른 PEU와 다르게 프로그래밍 할 수 있습니다.
- PEU는 일반적인 FP32/FP64가 아닌 데이터 형식 (예 : Bfloat16, FP16, Sparse FP16 등)에서 작동하여 데이터를 처리하기 위해 새로운 실리콘이 만들어 질 때까지 기다릴 필요없이 머신 러닝을 가속화 할 수 있습니다.
- PEU는 (런타임 동안) 즉석에서 다시 프로그래밍 할 수 있습니다
- 워크로드에 따라 성능을 최대화하도록 PEU를 조정할 수 있습니다.
- PEU는 단일 주기로 더 복잡한 작업을 수행하여 IPC를 대폭 증가시킬 수 있습니다.
현재 이러한 종류의 디자인은 새로운 명령을 지원하기 위한 업그레이드가 필요없어지는 [업데이트 가능한 CPU]를 가능하게 할 것입니다. FPGA는 프로그래밍 가능한 하드웨어 논리이기 때문에 간단한 펌웨어 업데이트로 CPU가 FPGA 어레이를 재구성하여 새로운 명령을 처리할 수 있습니다.
이러한 통합에 대한 또 다른 주장은 오늘날 CPU에서 레거시 x86 에 해당하는 일부 고정 기능 실리콘을 FPGA 패키지 자체에서 처리할 수 있으며 필요할 때 스틸 온 보드 하드웨어 가속기를 가능하게 한다는 것입니다.
이것은 또한 AMD가 현재 존재하는 CPU의 "다크실리콘" 부분을 다듬을 수 있게 합니다.
간단히 말해서, CPU의 작은 부분의 공간을 고도로 전문화된 작업을 위해 예약되므로써 다른 리소스(예: 더 많은 코어)에 사용할 수 있는 더 많은 다이 면적을 얻을수 있고, 처리 요구에 따라 즉시 재구성되는 통합된 FPGA 요소를 갖추고 있는 CPU 설계를 의미합니다. 그리고 AI 가속, AVX, 비디오 하드웨어 가속 또는 기타 작업 부하와 같은 이색 작업이 필요하지 않은 경우 FPGA 요소를 CPU 자체의 부동 소수점과 정수 단위를 "터보"하도록 재구성하여 사용 가능한 리소스를 늘릴 수 있습니다. 흥미로운 특허 출원이죠.
=====================
최대한 자연스럽게 번역해봤는데..
힘드네요 ㅠㅠㅠ
특수목적의 가속장치 이상으로는 쓰기 힘들겁니다. FPGA로 구현할 수 있는 스케일이 제한적이니까요.
https://twitter.com/IanCutress/status/1164166421523390464
참고로 이정도로 정말 실로 크고 아름다운 FPGA 하나에 들어있는 로직셀 갯수가 900만개 입니다. 그리고 요즘시대의 CPU 코어들의 게이트 카운트는 기본 억에서 시작합니다.
fpga가 깊숙히 반영되있으면 클럭 올리기가 빡세질거같은데 그 점은 어떨까 궁금하네요.