SPM (ScratchPad Memory) 기반 요소 기술 연구

매니코어OS
이동: 둘러보기, 검색

연구 배경

컴퓨터 시스템에서 코어의 확장성을 제한하는 요소 중의 하나로 메모리 계층 (Memory Hierarchy) 이 논의되고 있다. 특히 캐시 간에 동일한 메모리 이미지를 갖도록 해 주는 캐시 일관성 (Cache coherency) 은 메모리 계층 내에서도 확장성을 크게 저해하는 요인이다. SPM (ScratchPad Memory) 는 캐시에서 하드웨어적으로 제공하는 태그 및 일관성 기능이 제외된 메모리이다. SPM 은 데이터를 직접적으로 관리해야 한다는 부담이 있는 반면, 확장성이나 에너지, 공간 효율성 등에서 캐시에 비해 뛰어난 성능을 보이므로 다양한 아키텍처에서 이를 도입하고 있다.

연구 내용

코드 관리 기법

SPM 기반의 아키텍처에서는 효율적인 실행을 위해서 code / stack / heap 등을 각각 소프트웨어적으로 관리해 주어야 한다. 본 연구에서는 SPM 에서의 code management 를 연구하였으며, 그 중에서 많이 사용되는 방식인 function-to-region mapping 기술을 개선하였다. 

Spm-fig1.png

그림과 같이, function-to-region mapping algorithm 은 SPM 을 region 단위로 분할하고 각각의 function 을 region 에 할당함으로써 코드를 관리한다. 효율적인 mapping 을 만들기 위해서는 서로 자주 호출하는 함수들을 다른 region 에 할당하는 것이 중요한데, 본 연구에서는 함수 단위로 mapping 이 작동한다는 점에 착안하여 function splitting 기술을 제안하였다. 

RTENOTITLE​​​​​​​

함수의 내부에서 loop 구조를 새로운 함수로 만드는 방법을 기본으로 하여 loop 을 선택하는 방법과 그 구현에 대하여 제안하였다. 제안한 기술을 적용한 결과 기존 알고리즘에서 16%의 성능 향상이 확인되었다. 

연구 결과물

향후 계획

향후 연구 계획으로 stack 과 heap 을 관리하는 기술 개발 및 SPM 기술을 실제적인 OS에 적용하는 연구를 계획하고 있다.

  • SPM 에서의 stack 관리 기법 및 최적화 방법
  • SPM 에서의 heap 관리 기법 및 최적화 방법
  • LWK 에서 SPM 을 활용하는 방법에 대한 연구