Publications

Detailed Information

다중 코어 환경의 캐시 성능 향상을 위한 용량 공유 조절 및 스택 처리 기법 : Capacity Sharing and Stack Processing for High Performance Caches in Multi-core Environment

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

엄영식

Advisor
전주식
Major
공과대학 전기·컴퓨터공학부
Issue Date
2013-02
Publisher
서울대학교 대학원
Keywords
용량 공유용량 분할다중 코어 프로세서전용 캐시공유 캐시스택 처리
Description
학위논문 (박사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2013. 2. 전주식.
Abstract
마이크로 프로세서는 공정의 미세화 뿐 아니라 컴퓨터 구조상의 발전으로 성능향상을 이루어 왔다. 공정의 미세화로 인한 트랜지스터 속도 증가로 회로의 속도가 빨라졌으며, 명령어 단계 병렬성(instruction level parallelism) 등을 이용하여 명령어들을 병렬실행 함으로써 빠르게 프로그램을 실행하였다. 하지만 최근 공정뿐 아니라 명령어 단계 병렬성이 한계에 부딪히게 되면서, 쓰레드 단계 병렬성(thread level parallelism)을 이용하는 단일칩 다중코어(chip multiprocessors)라는 새로운 컴퓨터 구조가 개발되었고 널리 퍼지고 있다.
마이크로 프로세서에는 명령어와 데이터를 빠른 시간에 공급하기 위해 캐시 구조를 사용한다. 캐시는 빠른 클럭의 프로세서 코어와 느린 메모리간의 속도차를 메꿈으로써 메모리 장벽(memory wall)문제를 완화하는 역할을 한다. 최근 마이크로프로세서의 다중 코어화는 메모리 장벽 문제를 심화시키고 있으며, 따라서 캐시의 역할은 더욱 중요해 지고 있다. 다중코어 프로세서의 단계 2 캐시에는 공유 캐시(shared cache)와 전용캐시(private cache)라는 두 가지 중요한 설계 개념이 있으며, 현재 여러 연구에서 두 가지 방법의 장단점을 조합하여 성능, 에너지, 대역폭 등의 문제를 해결하려고 하고 있다.
본 논문에서는 다중 코어 환경에서 캐시를 효율적으로 공유 및 분할함으로써 각각의 코어에게 더 빠른 메모리 접근 속도를 제공하여 성능을 향상시키는 기법을 제안한다. 세부적으로 살펴보면 다음과 같다.

첫째, 다중코어 단계 2 캐시의 두 가지 중요한 설계 개념 중 하나인 전용 캐시(private cache)에서 효율적인 용량 공유 기법을 제안한다. 전용 캐시 설계에서는 각 코어가 각기 작은 캐시만을 사용하기 때문에 접근 시간(access time)이 작으며 성능 고립(performance isolation), 타일 구조 등의 장점이 있다. 하지만 작은 캐시의 크기는 많은 캐시 용량이 필요한 응용프로그램의 성능을 크게 하락시킬 수 있다. 이 문제를 해결하기 위해 캐시에서 희생된 블록을 다른 코어의 전용 캐시에 전달하는 방법을 사용하여 전용 캐시 간에 용량을 공유할 수 있도록 하는 기법들이 등장하였다. 하지만 기존 연구는 전달된 블록이 성능에 실제로 도움이 되는지 고려하지 않고 있다. 이를 위해 본 논문에서는 다른 코어에 전달된 희생 블록이 사용되어 성능에 도움이 되는지 알려주는 모델을 제시하였다. 그리고 제안된 모델을 기존 단계 2 캐시에 적용하기 위한 하드웨어를 소개하고, 실험을 통해 제안된 기법의 성능을 검증하였다. 실험 결과 제안된 방식은, 기존 전용캐시에 비해 평균 48.79%의 성능향상이 있었으며, 기존 용량 공유 기법인 CC(Cooperative Caching)와 DSR(Dynamic Spiller-Receiver)에 비해 각각 평균 6.37%와 5.44%의 성능을 향상시켰다.

둘째, 공유 캐시(shared cache) 환경에서 동적 삽입 교체 정책을 포함하는 캐시 분할 기법 제안한다. 공유 캐시는 여러 코어가 하나의 큰 캐시를 공유하기 때문에, 캐시가 각 코어에게 얼마만큼의 용량으로 할당될지 결정하는 용량 분할(partitioning) 정책이 중요하다. 기존 UCP(Utility Based Paritioning) 용량 분할 기법은 LRU(Least Recently Used) 교체 정책 하에서 각 코어의 캐시 용량 요구량을 구하고, 캐시 적중이 많이 일어나도록 용량을 분할하였다. 하지만 LRU 교체 정책은 캐시 용량보다 더 큰 작업 세트(Working set)를 가진 응용 프로그램일 경우, 필요한 블록이 계속 희생되어 적중 실패가 많아지는 현상이 발생한다. 이 단점을 극복하기 위해 동적 삽입(DIP, Dynamic Insertion Policy) 캐시 교체 정책은 새로 들어오는 블록을 LRU 위치에 삽입하거나 우회하는 방법으로 기존 작업 세트를 보호하여 성능향상을 이루었다. 본 논문에서는 LRU 교체 정책 뿐 아니라 동적 삽입 교체 정책에서도 각 코어의 캐시 요구량을 측정하는 스택 처리(stack processing) 방법을 제안하였다. 그리고 새 스택 처리 방법을 구현할 하드웨어를 소개 한 후, 실험을 통해 새로운 스택 처리 방법을 사용한 캐시 용량 분할 기법을 검증하였다. 실험 결과 제안된 방식은 기존 공유 캐시에 비해 평균 7.5%의 성능향상을 보였으며, UCP(Utility-aware Cache Partitioning) 방법에 비해 4.7%의 성능향상을 보였다.

본 논문에서 제안된 두 가지 방식은, 전용 캐시에서의 효율적인 용량 공유 기법과 공유 캐시에서의 새로운 캐시 분할 기법이다. 제안된 방식은 다중코어 프로세서의 코어의 수가 점점 늘어가는 상황에서, 캐시 용량의 공유와 분할이 더욱 중요해 지며 더욱 효과적으로 사용될 수 있으리라 예상된다.
Language
Korean
URI
https://hdl.handle.net/10371/118887
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share