핵심 요약
- 소프트웨어 런타임이나 커널 없이 하스켈을 직접 연산하는 콤비네이터 그래프 축약 기반 전용 프로세서 '우로스(Ouros)'가 FPGA에 구현되었습니다.
- 명시적인 병렬 코드 없이도 하드웨어가 자동으로 멀티스레딩을 처리하고 가비지 컬렉션까지 하드웨어 단에서 동시 수행합니다.
- UART 입출력 모나드까지 하드웨어 버스로 직접 처리하며, 소형 RISC-V 코어 수준의 자원 사용량만으로 100MHz 구동에 성공했습니다.
요약 운영체제 커널이나 소프트웨어 런타임 없이 하드웨어 레벨에서 함수형 언어 하스켈(Haskell)을 직접 실행하는 전용 프로세서 연구가 공개되었습니다. 이번 프로젝트를 진행한 연구자는 비엄격(non-strict) 함수형 언어를 위한 하드웨어 아키텍처를 연구 중인 박사과정생으로, 하스켈 전용 프로세서인 '우로스(Ouros)'에 입출력(IO) 기능을 구현하고 이를 FPGA에 성공적으로 탑재해 동작시키는 데 성공했습니다.
일반적인 CPU가 명령어 시퀀스를 순차적으로 처리하는 것과 달리, 우로스는 하스켈 프로그램을 콤비네이터 그래프로 컴파일한 뒤 함수 적용(App)을 반복적으로 축약(reduction)하는 데이터플로우 기반 그래프 축약 머신입니다. 포인터를 추적하고 스레드를 관리하는 힙, 콤비네이터 축약을 수행하는 리듀서(Reducer), 연산을 처리하는 ALU 등으로 구성되어 있습니다. 특히 프로그래머가 명시적으로 멀티스레딩 코드를 짜지 않아도 독립적인 연산 값을 감지해 하드웨어 파이프라인에서 자동으로 세분화된 멀티스레딩을 수행하며, 동시성 하드웨어 가비지 컬렉터가 탑재되어 실행 중 사용하지 않는 메모리를 즉시 수거합니다.
순수 표현식 계산을 넘어 독립적인 컴퓨터로 작동할 수 있도록 AXI4-Lite 기반의 IO 모나드 구조도 구현했습니다. 하스켈 개발자는 단순한 레지스터 읽기/쓰기 프리미티브를 호출하는 방식이지만, 하드웨어 전용 IO 유닛이 버스 트랜잭션을 직접 제어해 소프트웨어 런타임 없이도 UART 통신 등의 외부 상호작용을 처리합니다. AMD에서 기증받은 AUP-ZU3 FPGA 보드에서 100MHz 속도로 테스트한 결과, 소형 파이프라인 RISC-V 코어 수준의 가벼운 하드웨어 자원(LUT 약 27%, BRAM 약 40%)만으로 그래프 축약과 자동 스레딩, 하드웨어 GC까지 안정적으로 구현해 냈습니다. 다만 현재는 정수 나눗셈이나 부동소수점(Float, Double) 미지원 등 연산 프리미티브의 한계가 남아 있습니다.
Sponsored · 광고