WARP-V: MIPS ISA를 지원하는 RISC-V CPU 코어 생성기

개방형 표준 RISC-V ISA CPU 코어를 작업해 왔다면 WARP-V를 접했을 가능성이 큽니다. 초보자를 위한 WARP-V는 RISC-V 뿐만 아니라 MIPS ISA도 지원하는 TL-Verilog (Transaction-Level Verilog)로 작성된 RISC-V CPU 코어 제너레이터입니다 . WARP-V는 적은 양의 코드에서 비교할 수 없는 아키텍처 확장성으로 인해 한동안 논의되었습니다.

"필요는 발명의 어머니"라는 유명한 속담은 TL-Verilog의 발명과 이 WARP-V CPU 코어 생성기에 적용됩니다. 수십 년 동안 수백 명의 엔지니어가 더 높은 단일 코어 성능을 달성하기 위한 경쟁에서 더 복잡한 단일 CPU 코어를 설계하기 위해 노력해 왔습니다. 그러나 반도체 산업의 최근 발전과 함께 수십 년의 CPU 코어 설계 경험을 가진 개발자이자 엔지니어인 Steve Hoover는 고급 CPU 마이크로아키텍처 기술을 사용하지 않고 단 1.5주 만에 WARP-V 코어를 개발한다는 아이디어를 내놓았습니다.

우리 마음에 오는 중요한 질문 중 하나는 Verilog와 VHDL이 있는데 왜 또 다른 HDL, TL-Verilog가 있느냐는 것입니다. (스포일러: TL-Verilog는 하드웨어 설명 언어가 아닙니다). CPU를 간결하고 유연하며 명시적으로 설계하는 것과 같은 몇 가지 이유가 있습니다. TL-Verilog를 사용하면 SystemVerilog의 1주기 설계에 비해 1~7주기 파이프라인 깊이에 대해 코드 크기가 거의 절반으로 줄어듭니다. 이것은 TL-Verilog 모델이 Verilog에 상응하는 크기의 절반이기 때문에 발생합니다. 다른 HDL을 볼 때 정적 설계에 대한 설명으로 더 많이 작동하지만 설계 프로세스를 위해 구축된 TL-Verilog의 개념이 아니므로 하드웨어 설계 언어입니다.

WARP-V CPU 코어 생성기란 무엇입니까?

WARP-V 코어로 돌아가면 코어의 유연성 측면에서 마이크로 컨트롤러 또는 7단계 범용 프로세서와 같은 단일 단계 CPU를 구현할 수 있습니다. 오픈 소스 프로젝트이기 때문에 이제 작은 소스 코드를 사용하여 애플리케이션에 적합하게 만들 수 있습니다. WARP-V CPU 코어는 가상 메모리, 캐시 및 I/O가 없는 CPU 코어 구현만 제공합니다. 사용자 정의 ISA, 당신은 지금에 추가 할 수있는 옵션 RISC-V 확장 (기본 정수 명령어 세트 (E), 정수의 곱셈과 나눗셈 (M), 단 정밀도 부동 소수점 (F), 비트 조작을위한 표준 확장처럼, 비).

WARP-V의 CPU 설계 마이크로아키텍처를 보면 각 수직 녹색 선이 가상 파이프라인 단계를 구분한다는 것을 알 수 있습니다. 이러한 모든 가상 파이프라인 단계는 단일 물리적 단계 또는 다른 물리적 단계에 매핑될 수 있습니다. RISC-V 구현이므로 디코드, 분기 대상 계산 및 레지스터가 동일한 물리적 단계에 매핑됩니다. 코드는 생성된 코드를 소스 코드로 사용하고 마이크로아키텍처를 조정할 수 있는 매크로 전처리기 M4를 사용하여 개발됩니다.

하지만 코어의 유연성을 이야기할 때 이를 만족시키기 위해서는 유연한 검증 모델링도 있어야 합니다. 오픈 소스 프로젝트로서 많은 기여자들이 코어 설계에서 통합 수준을 이해하고 작업할 수 있는 기회를 제공합니다. GSoC(Google Summer of Code) 2018에서 TU Delft의 석사 과정 학생인 Ákos Hadnagy는 Steve Hoover와 함께 검증 모델링을 위한 TL-Verilog의 사용 및 유연성 이점을 발표했습니다.

WARP-V의 다음 단계는 무엇입니까?

WARP-V의 향후 개발에 대해 이야기하기 전에 먼저 이 CPU 코어 생성기를 시작하는 방법을 이해하겠습니다. WARP-V를 구성하려면 Makerchip 의 IDE를 사용하여 컴파일 및 디버깅하는 동안 명령줄로 매개변수를 수정할 수 있습니다 . TL-Verilog 및 Makerchip에 대한 자습서를 완료했다고 가정하고 "NAV-TLV" 창에서 모델을 선택, 컴파일 및 작업합니다. 시작하는 방법에 대한 자세한 내용은 공식 GitHub 저장소 에서 찾을 수 있습니다 .

메이커칩 IDE

WARP-V가 반드시 최선의 선택은 아니지만 CPU를 민주화하는 방법입니다. WARP-V 주변에서 수행할 수 있는 작업이 많지 않을 수 있지만 트랜잭션 흐름을 표시하기 위해 멀티코어로 만들거나 TL-Chisel에서 작업하는 것과 같은 다른 관련 워크로드에서 확실히 작업할 수 있습니다. 디자이너인 Steve Hoover는 “RISC-V는 ISA를 해방시켰습니다. 이제 CPU 및 기타 구성 요소를 해제할 때입니다. 더 큰 일을 위해 특허를 아껴두십시오.”

 

 

https://www.cnx-software.com/2021/07/19/warp-v-a-risc-v-cpu-core-generator-supporting-mips-isa/

 

WARP-V: A RISC-V CPU Core Generator Supporting MIPS ISA - CNX Software

WARP-V is a RISC-V based CPU core generator written in TL-Verilog (Transaction-Level Verilog) that supports RISC-V and MIPS ISA.

www.cnx-software.com

 

 

+ Recent posts