20160128

1. [HPCA’15] Talus: A simple way to remove cliffs in cache performance 읽기 (paper, slides)
– Cache에는 performance cliff 현상이 발생한다. 약간의 크기 차이로 miss rate, 성능의 차이가 크게 나는 것이다. 이러한 cliff는 캐시 성능을 떨어뜨릴 뿐 아니라, 캐시 관리를 어렵게 한다. 이를 해결하고자 이 논문에서는 Talus라는 기법을 제안한다. Talus는 한 어플리케이션의 캐시 접근을 내부적으로 파티셔닝해, 캐시 크기에 따른 miss rate curve의 convexity를 보장하고자 한다 (figure from paper).
talus miss curve.PNG
– Performance cliff는 세 가지 문제를 초래한다. 첫째로, 자원을 낭비하고 성능을 떨어뜨린다. 둘째로, 불안정하고 예측할 수 없는 성능을 내게 만든다. 마지막으로, 캐시 관리 기법을 어렵게 만든다. Convex하지 않은 miss rate curve의 조합에서 최적의 캐시 할당을 찾는 것은 NP-complete이다.
– 캐시 성능을 높이기 위해, 교체 기법과 파티셔닝 기법이 많이 연구되었다. 우선 캐시 교체 기법은 recency, classification, protection의 특성을 사용해 성능 개선하려 했음. 이러한 교체 기법들은 우수한 성능을 내곤 했으나, heuristic에 기반해 만들었기 때문에 실제와 일치하지 않을 수도 있고, miss rate curve의 추정이 어려웠다. LRU는 stack property를 가지므로 이를 사용하면 miss rate 추정할 수 있는데, 그 외의 교체 기법은 miss rate 추정이 어렵다. 캐시 파티셔닝은 QoS, 성능 향상, 우선 순위 구현 등의 목적으로 많이 연구되었음. 이 연구에서는 캐시 파티셔닝을 performance cliff 제거에 사용하고자 한다.
– Miss rate curve의 convexity는 캐시 자원 할당의 용이성과 공평성 문제에서 중요함. Convex하지 않은 miss rate curve에서는 최적 자원 할당이 NP-complete하며, 성능을 높이면서 공평성을 달성하기가 힘들다.
– Talus는 cache miss rate curve의 convexity를 달성하고자, 전체 캐시를 일부는 작은 크기의 캐시로, 일부는 큰 크기의 캐시로 사용하겠다는 것이다 (figure from paper).
talus concept.PNG
– 몇 가지 가정에서 출발해, 두 개의 shadow partition으로 목표 miss rate을 맞출 수 있다는 결론에 다다른다. 하지만 이러한 가정들 자체가 이론적이므로, 목표 miss rate을 맞추지 못할 가능성도 크다. 기본적인 가정은 캐시 크기와 miss rate의 두 지점을 안다고 할 때, 이를 interpolate해서 중간 지점의 miss rate을 구할 수 있다는 것이다.
– Talus는 파티셔닝 기법을 고안하지는 않으며, 기존의 파티셔닝 기법을 보조하는 역할이다. 따라서 miss rate curve는 기존의 UMON과 같은 하드웨어 모니터링 툴에서 제공된다고 가정한다. 기존의 파티셔닝 기법들이 miss rate curve의 convexity에 기반해 문제를 풀면, target miss rate에 맞추어 shadow partitioning을 해주는 것이다 (figure from slides).
talus convetional partitioningtalus partitioning with proposed mechanism


2. [PACT’15] Decoupled Direct Memory Access Isolating CPU and IO Traffic by Leveraging 읽기 (paper, slides)
– 메모리 채널 수준에서의 경쟁은 현대 컴퓨터 시스템의 성능에 큰 영향을 주고 있다. 이렇게 메모리 채널에서 경쟁이 발생하는 것은 CPU 뿐만 아니라, IO도 메모리 채널을 사용하기 때문이다. 이 연구에서는 프로세서와 입출력의 메모리 채널을 격리함으로써 경쟁 수준을 낮추고 성능 향상하고자 한다. HW, SW가 협력해 데이터를 전송하는 메커니즘인 decoupled DMA (DDMA)를 제안한다. DDMA는 기존의 메모리 시스템과 달리, 두 개의 독립적인 데이터 채널을 갖는다. 하나는 CPU channel, 다른 하나는 IO channel이다. 이와 같은 아키텍쳐 변화를 통해 실제 사용 가능한 대역폭 향상을 이끌어낼 수 있다. 그리고 이 논문에서 이러한 아키텍쳐가 적용 가능한 사례에 대해 소개한다.
– 현대 컴퓨터 시스템에서 입출력 장치와 프로세서가 메모리 컨트롤러와 메모리 채널을 공유하고 있고, 이것이 경쟁을 일으키고 있다. 현대 컴퓨터 시스템에서는 높은 입출력 대역폭을 지원하는데, 더군다나 코어의 수가 늘어나면서 이 문제가 더 심화되고 있다.
DDMA motivation.PNG
– 메모리 채널 경쟁 문제를 해결하는 방법으로 채널의 수를 늘리는 것과 메모리 클럭을 빠르게 하는 방법이 있을 수 있다. 하지만 메모리 채널을 늘리는 것은 추가적인 프로세서 핀을 요구하고, 클럭을 높이는 것은 더 많은 비용을 초래한다. DDMA에서는 프로세서의 메모리 채널과 입출력 메모리 채널을 분리해 성능을 높이고자 한다.
DDMA architecture.PNG– 기존의 DRAM에서는 여러 개의 bank가 한 개의 data, control path를 공유함으로 인해 성능 저하가 발생함. 이를 해결하고자 dual data port DRAM을 사용함.
DDMA single dual port.PNG
– 단순히 두 채널을 분리한 것 뿐만 아니라, Port-Bypass mode를 추가함. 입출력 장치가 메모리를 거치지 않고 바로 프로세서에 데이터를 공급할 수 있도록 한다.
– DDMA는 다음의 세 가지 경우에 사용할 수 있음.
DDMA compute unit.PNG
DDMA in memory communication.PNG
DDMA memory storage transfer.PNG
– motivation과 문제 해결이 직관적이다. 문제의 원인을 잘 파악하고, 아키텍쳐를 깔끔하게 잘 설계했다고 생각한다. 메모리 채널 경쟁이 문제가 있다는 점과, 그리고 CPU와 IO를 분리할 수 있다는 아이디어가 중요함. 그리고 적용 사례들을 잘 찾아, 실용적이라는 점을 강조했다는 점에서 좋음.
– 실험 환경이 메모리 채널의 경쟁을 부각시키기 위해 어느 정도 특이하다는 점이 있음. 일반적으로 코어 당 1MB LLC를 갖는데, 여기서는 더 작은 크기의 LLC를 설정함 (태훈). 그리고 채널의 수도 2개로 요즘 컴퓨터 시스템에 비해 작다고 함 (강욱)

Advertisements
Tagged with: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 98,786 hits
%d bloggers like this: