성능 분석
성능 카운터로 측정했더니 어떤 프로그램의 IPC(1사이클당 명령어 수)가 0.3으로 매우 낮고, 마지막 단계 캐시의 미스가 많았다. 가장 가능성이 높은 상황과 대책의 조합은?
- A메모리 대기로 CPU가 멈춰 있는 시간이 길다. 데이터 배치를 바꾸거나 블로킹을 수행하여 캐시를 효과적으로 사용한다
- B계산이 너무 빠르다. 주파수를 올린다
- C분기가 너무 적다. 분기를 늘린다
정답과 해설 보기
정답: A. 메모리 대기로 CPU가 멈춰 있는 시간이 길다. 데이터 배치를 바꾸거나 블로킹을 수행하여 캐시를 효과적으로 사용한다
현재의 CPU는 1사이클에 여러 명령어를 실행할 수 있으므로, IPC가 0.3이라는 것은 대부분의 시간 동안 무언가를 기다리고 있음을 나타냅니다. 마지막 단계 캐시의 미스가 많다면 주기억장치에서 오는 데이터를 기다리는 시간이 길다고 볼 수 있습니다. 데이터를 연속된 번지에 배치하거나, 루프의 순서를 바꾸거나, 블로킹으로 같은 데이터를 여러 번 사용하는 등으로 캐시 미스를 줄이는 것이 효과적입니다.
- A. 올바릅니다. 메모리 율속의 전형적인 증상입니다.
- B. 주파수를 올려도 메모리 대기는 짧아지지 않습니다.
- C. 분기를 늘려도 개선되지 않습니다.