Modern DRAMs provide multiple low-power states to save their energy consumption during idle times. The use of low-power states, however, can cause performance degradation because state transitions from a low-power state to an active state incur time penalty. In this paper, we propose DRAM power-aware rank scheduling to save DRAM energy consumption. Our DRAM power-aware rank scheduling scheme is applied to the last-level cache and the memory controller. Our scheme utilizing the last-level cache reduces the number of write requests to DRAM and the number of state transitions by selecting victim cache block with considering cache block state and ranks state. In addition, our scheme utilizing the memory controller reinforces the effect of our scheme utilizing the last-level cache. Our scheme utilizing the memory controller increases DRAM rank idleness and decreases the number of state transitions by rank state-aware batch write. To verify the effectiveness of our proposed scheme, we compared our scheme with the conventional scheme which uses multiple low-power states. With our scheme, write requests are reduced by 10.8\% on average. Performance is improved by 0.3\% and DRAM power and energy consumption is reduced by 11.2\% and 11.4\%, respectively, on average.
오늘날 컴퓨팅 시스템은 서버 시스템과 모바일 시스템으로 양분화 되고 있다. 디램은 가격이 저렴하기 때문에 주 기억장치로써 서버 시스템과 모바일 시스템에 사용되고 있다. 하지만 디램을 사용하는 서버 시스템과 모바일 시스템의 전력 소비량을 분석해보면 각각 전체 전력의 최고 40\%, 20\% 까지 메모리 시스템에서 전력을 소비한다. 따라서 디램 메모리 시스템의 전력 소비량을 줄이면 전체 시스템의 전력 소비를 줄이는데 큰 기여를 할 수 있다. 현재까지 제안된 방법들 중 첫 번째 방법은 페이지 이동을 통한 디램 랭크를 핫랭크와 콜드랭크로 인위적으로 만들어 콜드 랭크는 상대적으로 접근횟수가 줄어들게 된다. 콜드 랭크의 대기 시간을 늘어 나게 되고 이 대기 시간동안 콜드 랭크가 파워다운(저전력 상태) 상태에 있으므로 전력 소모를 줄인다. 첫번째 방식은 페이지 이동으로 인한 오버헤드와 핫랭크에서의 메모리 트래픽 경쟁으로 인해 성능이 악화되는 단점이 있다. 두 번째 방법은 랭크를 우선순위 랭크와 비 우선순위 랭크로 나눈뒤 우선순위 랭크로 향하는 쓰기 트래픽을 줄이고 우선순위 랭크의 셀프 리프레쉬 상태로의 진입 시간을 강제적으로 앞당겨서 우선순위 랭크에서의 전력 소비를 줄이는 방식이다. 이 방식은 우선순위 랭크의 선정이 지능적으로 이루어지지 못해 성능을 크게 악화시키는 단점이 있다. 세번째 방식은 메모리 컨트롤러에서 디램으로 향하는 읽기와 쓰기 명령을 강제적으로 연기시켜 디램 랭크가 그 시간동안 파워다운에 있도록 하는 방식이다. 이 방식은 성능을 심각하게 악화시킨다.
이 논문에서는 위에 소개된 방법들의 성능 악화를 극복 하기 위해서 디램 파워를 고려한 랭크 스케쥴링 알고리즘을 제안한다. 디램 파워를 고려한 랭크 스케쥴은 라스트 레벨 캐쉬 교환 정책과 메모리 컨트롤러의 트랜잭션 스케쥴링 정책으로 구성되어 있다. 라스트 레벨 캐쉬 교환정책은 더티 블록보다 클린 블록을 캐쉬에서 내 ??으므로 인해서 디램으로 향하는 쓰기 트래픽을 줄인다. 클린 블록이 없을경우 더티 블록들중 활성화되어 있는 랭크로 향하는 캐쉬블록을 내 ??는다. 트랜잭션 스케쥴링 정책은 메모리 컨트롤러에서 쓰기 요청들을 뒤로 연기시켜서 디램 랭크가 파워다운에 조기 진입을 가능하게 한다. 그리고 어떤 랭크가 셀프 리프레쉬 진입전에 그 랭크로 향하는 미뤄졌던 쓰기 요청들을 일괄 처리 함으로써 셀프 리프레쉬의 머무는 시간을 극대화 하였다. 제안된 기법의 효과를 측정하기 위해서 SPEC2000 벤치마크와 CPU 시뮬레이터와 디램 시뮬레이터를 사용하였다. 실험 결과 성능은 평균 0.3\% 향상 되었고 디램 전력 및 에너지 소비는 각각 평균 11.2\%, 11.4\%가 감소하였다.