서지주요정보
하드웨어 캐시 분할을 이용한 캐시 경쟁 완화 = Reducing cache contentions using hardware cache partitioning
서명 / 저자 하드웨어 캐시 분할을 이용한 캐시 경쟁 완화 = Reducing cache contentions using hardware cache partitioning / 이강욱.
발행사항 [대전 : 한국과학기술원, 2014].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8027193

소장위치/청구기호

학술문화관(문화관) 보존서고

MCS 14047

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

Recently cache partitioning implemented in the real hardware computer system. Many previous research studied that cache partitioning could isolates contention of applications. By partitioning shared cache depends on overall system utilization, cache contention between processes could be minimized so that overall system performance is maximized. In reality, it is hard to calculate the effective cache partitioning size in real time on modern computer system without any hardware modification. In this research, I make a practical algorithm to find a proper cache partitioning size of each application for the improve system performance on a real hardware system. The algorithm consider giving a more cache if an application could utilize additional cache. The algorithm seperates memory intensive but not effectively using LLC threads from other threads sharing LLCs usefully. If user give a list of applications, cache contention reducing algorithm recommends best cache partitioning sizes for each application. By using hardware system performance monitoring units and hardware cache partitioning technology, cache contention of each application was reduced. Therefore overall system performance increased by recommended cache partitioning sizes up to 7.9% relative to Distributed Intensity(DI) only.

프로세서의 집적도가 높아짐에 따라 하나의 프로세서 칩 안에 여러 개의 코어가 포함되고 있으며, 그 수는 계속해서 증가하고 있다. 그에 따라 동시에 실행될 수 있는 쓰레드들의 개수도 증가하고 있으며, 이들 간의 자원 경쟁이 전체 시스템 성능에 주는 영향 역시 증가하고 있다. Last Level Cache(LLC)는 이러한 경쟁이 쉽게 나타나는 자원 중의 하나이다. LLC는 프로세서 안에서의 메모리 계층에서 최상위에 해당하기 때문에, 많은 쓰레드들이 LLC를 공유할 수 있다. 만약 상대적으로 캐시를 많이 사용하는 쓰레드가 존재하면, 이 쓰레드와 같은 LLC를 공유하는 모든 쓰레드들은 캐시 경쟁때문에 충분한 성능을 얻을 수 없다. LLC에서의 경쟁이 심해지면 메모리 계층 전체에 트래픽이 증가하면서 전체적인 시스템 성능 저하를 가져오게 되는데, 본 연구에서 실험을 통해 최대 2.5배까지 느려지는 것을 확인했다. 쓰레드 간의 자원 경쟁은 적절한 스케줄링을 통해 어느 정도 완화될 수 있다. [18]에 의하면, LLC 프리패처(prefetcher), 메모리 컨트롤러, 프론트 사이드 버스(Front Side Bus, FSB)에서의 자원 경쟁이 전체 시스템 성능에 많은 영향을 준다고 한다. 그래서 LLC들의 미스 비율(miss rate)이 서로 비슷하게 유지되도록 노력하는 Distributed Intensity(DI)라는 스케줄링 기법을 이용하면, 이러한 자원 경쟁이 완화되어 전체 시스템 성능을 높일 수 있다고 한다. DI를 이용하면 캐시를 많이 사용하는 쓰레드들이 LLC를 공유하는 것을 가능한 한 막아주므로, 캐시 경쟁 역시 완화된다고 볼 수 있다. 하지만 상대적으로 캐시를 적게 사용하는 쓰레드들은 여전히 캐시 경쟁때문에 성능에서의 손해를 볼 수밖에 없다. 또한, 쓰레드가 가지는 메모리 접근 패턴이 변하지 않기 때문에, 캐시에서 LLC를 공유하는 쓰레드를 다르게 해주는 정도의 캐시 경쟁 완화로는 충분히 해결되지 못하는 것을 본 연구의 실험을 통해서 알 수 있다. 본 논문에서는 AMD 불도저(Bulldozer) 프로세서에서 제공하는 캐시 분할(cache partitioning)을 이용하여, LLC에서의 경쟁을 완화함으로써 스케줄링을 보완하는 방법에 대해 논의한다. 캐시 분할과 관련된 기존 연구는 대부분 추가적인 하드웨어를 필요로 하므로 실제 시스템에 적용되기 어렵거나, 소프트웨어 수준에서 페이지 컬러링(page coloring) 등을 이용하여 캐시 분할의 효과를 얻는 정도였다. 하지만 최근에는 웨이 분할(way partitioning) 등의 기법을 이용하여 LLC에서의 캐시 분할을 지원하는 프로세서들이 출시되면서, 이제 캐시 분할은 실제 시스템에 적용 가능한 수준이 되었다. 본 연구에서는 Disstibuted Intensity(DI)[18]를 기본적인 스케줄러로 사용하면서, DI가 해결하지 못하는 캐시 경쟁을 캐시 분할로 줄여보려고 한다. 캐시 분할은 캐시 경쟁을 완화할 수 있는 좋은 방법이긴 하지만, 적절하게 설정하지 않으면 오히려 전체 시스템 성능을 저하할 수 있다. 어떤 쓰레드가 사용할 수 있는 캐시 양을 너무 줄여버리면, 캐시 경쟁이 없어지더라도 오히려 성능이 떨어질 수 있기 때문이다. 실험 결과, 캐시 분할을 적절하게 설정하면 스케줄링만을 이용했을 때보다 전체 시스템 성능을 12% 더 향상할 수 있었지만, 그렇지 않은 경우 오히려 5\% 감소할 수도 있었다. 이처럼 주어진 캐시 영역을 어떻게 분할하고 각 영역을 어떤 쓰레드에게 할당할 지 결정하는 것은, 캐시 분할을 실제 시스템에 적용하는 데 있어서 중요한 문제가 된다. 본 논문에서는 프로파일링으로 쉽게 알아낼 수 있는 애플리케이션 특성을 기반으로 하는 간단한 모델을 이용하여 캐시 분할을 비교적 적절하게 설정하는 방법을 제안한다. 제안한 방법은 DI만 이용했을 때보다 전체 시스템 성능을 최대 7.1% 향상시켰으며, 이는 최적의 캐시 분할 설정을 이용했을 때와 비교해도 큰 차이가 없었다. 본 논문의 구성은 다음과 같다. 2장에서는 본 연구와 관련된 기존의 캐시 분할 기법들 및 기타 배경지식을 설명한다. 3장에서는 본 연구의 동기로서, 스케줄링의 효과 및 적절한 캐시 분할 방법론의 필요성에 대해 논의한다. 4장에서는 적절한 캐시 분할을 위한 방법론을 제안하고, 5장에서는 실험을 통해 제안한 방법을 검증한다. 마지막으로 6장에서는 본 연구의 결론과 앞으로 연구 방향에 대해 논의한다.

서지기타정보

서지기타정보
청구기호 {MCS 14047
형태사항 v, 33 p : 삽화 ; 30 cm
언어 한국어
일반주기 저자명의 영문표기 : Gang-Uk Lee
지도교수의 한글표기 : 맹승렬
지도교수의 영문표기 : Seung-Ryoul Maeng
학위논문 학위논문(석사) - 한국과학기술원 : 전산학과,
서지주기 참고문헌 : p. 30-31
QR CODE qr code