추상화된 PIM 컴파일러, 메모리와 로직을 하나로 묶다
초록
abstractPIM은 메모리 내 연산을 위한 새로운 컴파일 흐름을 제시한다. 대상 독립적인 ISA 기반 중간 표현을 먼저 생성하고, 이를 특정 PIM 기술에 맞는 마이크로코드로 변환한다. 이 구조는 다양한 상태 저장 로직 패밀리(MAGIC, IMPLY, CRS 등)와 ISA를 자유롭게 조합할 수 있게 하며, 기존 설계와의 역호환성을 확보한다. 코드 크기를 크게 줄여 CPU‑컨트롤러 간 전송 부하를 감소시키는 동시에, ISA 선택에 따라 실행 시간·셀 사용량의 트레이드오프를 관리한다.
상세 분석
abstractPIM이 제시하는 가장 큰 혁신은 컴파일 과정을 두 단계로 명확히 분리한 점이다. 첫 번째 단계에서는 “타깃 독립 ISA”라는 추상적인 명령 집합을 사용해 프로그램을 중간 표현(IR)으로 변환한다. 이 단계는 메모리 기술이나 물리적 구현에 전혀 의존하지 않으며, 기존의 고수준 언어 컴파일러와 유사한 역할을 한다. 두 번째 단계에서는 각 명령을 목표 PIM 아키텍처가 지원하는 마이크로 연산 시퀀스로 매핑한다. 여기서 사용되는 마이크로코드는 상태 저장 로직 패밀리마다 다른 전압·전류 제어 흐름을 반영한다. 예를 들어, MAGIC NOR 로직을 지원하는 장치에서는 단일 NOR 명령이 1개의 연산 사이클과 초기화 사이클만 필요하지만, 동일한 논리 연산을 NAND 기반 장치에서 구현하려면 두 번의 NAND 연산과 추가 초기화가 필요하다. 이러한 변환 과정을 자동화함으로써 설계자는 ISA만 정의하면 다양한 물리적 PIM 구현에 즉시 적용할 수 있다.
논문은 또한 ISA 설계가 실행 효율에 미치는 영향을 정량적으로 분석한다. “NOR‑전용 ISA”는 가장 미세한 제어 granularity를 제공해 최소 사이클 수를 달성하지만, 명령 수가 늘어나 코드 크기가 커진다. 반면, “AND·XOR 등 복합 명령을 포함한 ISA”는 코드 크기를 크게 줄여 CPU‑컨트롤러 간 전송 부하를 56 %까지 감소시키지만, 내부적으로는 여전히 NOR 연산으로 재구성되므로 전체 클럭 사이클이 증가할 수 있다. 즉, 코드 크기와 실행 시간 사이에 명확한 트레이드오프가 존재한다는 점을 강조한다.
또한, abstractPIM은 기존 매핑 툴(SIMPLE, SAID, SIMPLER 등)이 갖는 “타깃 종속성”을 해소한다. 기존 툴은 특정 로직 패밀리와 그에 맞는 최적화(예: 초기화 사이클 최소화)만을 지원했으며, 새로운 기술이 등장하면 전체 컴파일 파이프라인을 재작성해야 했다. 반면, abstractPIM은 중간 IR을 재사용하고, 마이크로코드 레이어만 교체하면 새로운 기술에 바로 적용 가능하다. 이는 메모리 기술이 빠르게 진화하는 현재 상황에서 매우 중요한 설계 원칙이다.
마지막으로, 논문은 실제 벤치마크(반가산기, 논리 합성 등)를 통해 코드 크기 감소와 실행 시간 증가 사이의 관계를 실험적으로 검증한다. 결과는 기대한 바와 같이, 복합 ISA를 사용했을 때 전송 부하는 크게 감소하지만, 전체 클럭 사이클은 약 10 %~30 % 정도 늘어나는 것으로 나타났다. 이러한 결과는 설계자가 시스템 요구사항(전력, 지연, 통신 대역폭 등)에 따라 적절한 ISA와 PIM 기술을 선택하도록 가이드한다.
댓글 및 학술 토론
Loading comments...
의견 남기기