함수형 프로세서 시스템에서 기능 단위 디코딩 및 분배를 위한 아키텍처 접근법
본 논문은 함수 수준의 프로그램을 해석하여 이들을 이기종 기능 처리 유닛(FPU)으로 효율적으로 배분하는 새로운 프로세서 아키텍처를 제안한다. 함수 파이프라인을 디코딩하고 주소 매핑을 이용해 적절한 FPU에 할당함으로써 전통적인 명령어 기반 페치‑실행 모델을 대체하고, 함수 단위의 병렬성을 극대화한다. 현재는 이론적 설계 단계이며, 실제 하드웨어 구현을 위
초록
본 논문은 함수 수준의 프로그램을 해석하여 이들을 이기종 기능 처리 유닛(FPU)으로 효율적으로 배분하는 새로운 프로세서 아키텍처를 제안한다. 함수 파이프라인을 디코딩하고 주소 매핑을 이용해 적절한 FPU에 할당함으로써 전통적인 명령어 기반 페치‑실행 모델을 대체하고, 함수 단위의 병렬성을 극대화한다. 현재는 이론적 설계 단계이며, 실제 하드웨어 구현을 위해서는 대규모 엔지니어링 작업이 필요하다.
상세 요약
이 논문은 기존의 명령어 중심 프로세서 설계와는 근본적으로 다른 패러다임을 제시한다. 핵심 아이디어는 프로그램을 ‘함수’라는 고수준 단위로 분해하고, 각 함수를 독립적인 작업 흐름으로 간주하여 전용 기능 처리 유닛(FPU)에 직접 매핑하는 것이다. 이를 위해 저자는 먼저 함수 파이프라인 디코더를 설계하여 프로그램 바이너리에서 함수 경계와 호출 관계를 추출한다. 이 단계에서 함수의 입력·출력 타입, 연산 특성, 데이터 의존성을 메타데이터 형태로 기록하고, 이를 기반으로 주소 매핑 테이블을 생성한다. 주소 매핑 테이블은 함수 ID와 FPU 종류(예: 벡터 연산 전용, 정수 연산 전용, 신경망 전용 등)를 1:1 대응시켜, 스케줄러가 함수 호출 시 즉시 적절한 FPU에 작업을 전달하도록 한다.
논문은 이러한 매핑이 가능한 전제 조건으로 이기종 FPU가 사전에 정의된 인터페이스와 공통 메모리 모델을 공유해야 함을 강조한다. 특히, 함수 간 데이터 흐름을 최소화하기 위해 공유 메모리 대신 메시지 패싱 혹은 DMA 기반 데이터 이동을 제안한다. 이는 함수가 독립적으로 실행될 수 있는 ‘무상태(stateless)’ 특성을 전제로 하며, 상태를 유지해야 하는 경우에는 별도의 상태 관리 유닛을 두어 함수와 연계한다.
스케줄링 전략은 크게 두 가지로 나뉜다. 첫 번째는 ‘함수 우선(FIFO)’ 방식으로, 호출 순서대로 FPU에 할당해 파이프라인 깊이를 유지한다. 두 번째는 ‘자원 최적화’ 방식으로, 함수의 연산 특성(예: 부동소수점 연산 비중, 메모리 접근 패턴)을 분석해 가장 효율적인 FPU에 동적으로 매핑한다. 저자는 시뮬레이션 결과, 두 번째 방식이 평균 30% 이상의 성능 향상을 보였으며, 특히 데이터 병목이 적은 벡터 연산 중심 워크로드에서 큰 이점을 확인했다.
하지만 논문은 아직 구현 단계에 있지 않으며, 하드웨어 레벨에서의 파이프라인 정합성, 인터럽트 처리, 전력 관리 등 실질적인 문제들을 상세히 다루지는 않는다. 또한, 함수 단위의 디코딩 비용이 높아질 경우 전체 시스템 지연이 증가할 위험도 존재한다. 이러한 한계점을 보완하기 위해 저자는 향후 컴파일러와 연계한 정적 분석, 하드웨어 지원 디코더, 그리고 동적 재스케줄링 메커니즘을 연구할 계획이라고 밝힌다.
📜 논문 원문 (영문)
🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...