KOCW 최규상 교수님 컴퓨터구조 강의 정리
이 글은 공부한 것을 복습 및 기록하기 위한 게시물입니다.
잘못된 정보가 기입되어 있을 수 있으니 주의해주시기 바랍니다.
참고 : 컴퓨터 구조 및 설계 - David A. Patterson,John L. Hennessy
강의 링크 : http://www.kocw.net/home/cview.do?lid=0342b09d1a791dd8
1. Power Trends
wall은 파워와 메모리에서 사용하는 표현이다.
이 부분은 Powerwall에 대한 내용이다.
그래프롤 보게되면 2004년까지 clock rate는 급격히 증가하였으나 2004년 이후로는 정체되어 있다.
clock rate이 증가하면서 전력소모 또한 급격히 증가하게 되었다. 그러나 2004년 이후로 전력소모는 감소하게 된다.
이기간 동안 Power는 30배 증가하였고 전압은 5V에서 1V로 줄어들었으며 Frequency는 1000배 빨라졌다.
Frequency가 1000배 빨리진 것에 반해 전력소모는 30배밖에 증가하지 않았다.
왜냐하면 전압을 1v로 낮췄기 때문이다.
clock rate가 더 이상 증가하지 않은 이유는 전력 소모 때문이다.
2. reducing power
요즘 컴퓨터는 전력소모를 위해 많은 노력을 한다.
새로운 CPU를 설계한다고 할때 기존에 CPU보다 capacitive load를 85퍼센트 사용하고
전압과 Frequency를 15% 감소할 경우
공식을 이용해 계산하면 기존의 CPU보다 약 52퍼센트의 전력소모를 사용한다.
- Powerwall
더 이상 전압을 1V이하로 낮추지 못함
전력을 더 이상 낮추지 못하기 때문에 발열을 줄이지 못함
clock rate을 향상시키지 못한 이유는 발열을 더이상 낮추지 못했기 때문이다.
그래서 나온 성능향상 방법이 Multi Core이다.
3.Uniprocessor Performance
이 그래프는 싱글코어 프로세서의 퍼포먼스 그래프이다.
2004년을 기점으로 멀티코어가 나오게 된다.
싱글코어에서는 매년 52퍼센트씩 성능이 향상되었지만
2004년을 기점으로 성능 향상이 매년 22퍼로 낮아지게 되었다.
Power, instruction level parallelism(명령어 수준 병렬성), Memory latency와 같은 제약조건으로
성능향상에 제한이 생기게 되었다.
4.Multiprocessors
2004년을 기점으로 싱글코어의 clock rate을 더 이상 증가시키지 못했기 때문에 CPU의 성능 향상을 못하게 되었다.
그래서 다른 방식으로 성능향상을 꾀하였다.
그것이 바로 1개의 칩안에 프로세서를 여러개 두게 되는 Multi-Core이다.
Multi-Core의 성능향상을 위해선 Parallel 프로그램을 사용해야 한다.
기존에 사용한 Siquential 프로그램을 사용하면 Multi-Core에서의 성능향상은 없게 된다.
instruction level parallelism은 H/W가 알아서 명령어를 동시에 실행시켜주는 것이기 때문에
프로그래머는 이런 것을 고려할 필요가 없으며
CPU가 알아서 여러개의 명령을 동시에 실행시켜서 성능향상을 가져오게 된다.
하지만 프로그래머가 Parallel 프로그램을 만들어야 한다.
1개의 일을 여러개로 나눴을 경우 여러개의 일이 비슷한 Load를 가져야 한다.
그리고 communication과 synchronization의 overhead를 줄여줘야 한다.
이것은 아주 어려운 작업이다.
그래서 멀티코어에서의 성능향상은 기존 싱글코어보다 향상 폭이 낮아질 수 밖에 없어지는 것이다.
5. SPEC
5-1. SPEC CPU Benchmark
SPEC은 CPU, I/O, Web 등의 성능을 측정해주는 벤치마크를 만들어주는 회사이다.
그중 CPU에 관련된 벤치마크를 SPEC CPU Benchmark라고 한다.
이것을 통해 CPU 성능을 측정하게 된다.
5-2. CINT2006 for Intel Core i7 920
인텔 i7 920의 SPEC 벤치마크이다.
해당 CPU의 geometric mean의 spec ratio는 25.7이다.
즉 reference machine에 비해 25.7배 빠르다는 뜻이다.
해당 값이 클수록 성능이 좋은 것이다.
5-3. SPEC Power Benchmark
SPEC은 전력소모에 관련한 벤치마크 또한 만들었다.
Power 벤치마크의 단위는 ssj_ops per watt이다
Watt당 Server Side Java의 오퍼레이션의 수이다.
5-4. SPECpower_ssj2008 for Xeon X5650
인텔의 Xeon X5650 Power를 측정한 것이다.
해당 SPEC 벤치마크 결과는 2490이 되게 된다.
따라서 해당 값이 클수록 Watt당 많은 오퍼레이션을 수행한 것으로 전력효율이 좋은 것을 나타낸다.
6. Pitfall: Amdahl’s Law
컴퓨터의 어느 한 부분을 성능향상 시키면 전체 퍼포먼스의 성능향상은 그것에 비례하게 된다.
시스템의 한 Component의 성능을 향상하면 전체 시스템의 성능 향상은
그 Component가 시스템의 얼마나 비중을 차지하는지에 따라 비례해서 전체시스템의 성능이 향상되는 것이다.
예를 들어 곱하기 연산은 전체연산이 100초일 경우 80초를 차지하게 된다.
이럴 경우 곱셈 연산 성능을 향상시켜 전체 성능을 5배 향상시키려면 곱셈 연산을 얼마나 향상시켜야 하는가?
공식에 대입하여 보면 n은 무한대로 향해야만 성능향상이 된다. 즉, 해당 질문은 불가능 하다는 얘기다.
곱셈 연산의 성능 향상만으로는 전체 성능을 5배 향상시키는 것은 불가능하다는 것이다.
- corollary : 어떤 시스템의 성능향상을 하고자 하면 그 시스템에서 가장많은 비중을 차지하는 컴포넌트를 빠르게 만드는 것이그 시스템의 많은 성능향상을 가져오게 되는 것이다.
7. Fallacy: Low Power at Idle
idle일때의 전력소모에 관련한 것이다.
위에 나온 i7에 벤치마크를 보게되면
100%사용할 때는 258W, 50% 사용할 때는 170W를 사용하게 된다.
그러나 10%만 사용해도 121W를 사용하게 된다.
CPU는 10%만큼 사용하지 않아도 전력소모는 47%만큼 사용하게 되는 것이다.
CPU LOAD와 전력소모는 비례하지 않는다.
구글의 데이터센터를 예를 들었을 때
데이터 센터는 10~50% load만큼 사용하게 된다.
100%를 사용하는 것은 전체 사용시간에 1%도 되지 않는다.
그러나 load가 낮더라도 전력소모는 아주 많다.
따라서 프로세서를 만들때는 load에 비례되도록 전력소모를 만드는 것이 필요하게 된다.
그래서 이부분은 컴퓨터 아키텍트들의 큰 숙제이다.
8. Pitfall: MIPS as a Performance Metric
MIPS는 시간당 몇 백만개의 instruction을 실행하는 가를 나타내는 것이다.
MIPS를 성능의 단위로 쓴적이 있다.
그러나 MIPS는 많은 오해를 가져올 수 있다.
이유는 다음과 같다.
- 컴퓨터 마다 ISA가 다름
- 명령어 마다 필요한 CPI 값이 모두 다를 수 있음
MIPS 는 CPI에 의해 좌우된다.
하지만 CPI는 CPU와 프로그램에 의해 달라질 수 있게 된다.
그래서 정확한 성능측정단위가 되기 어렵게 되는 것이다.
SPEC CPU 벤치마크 프로그램을 사용하는 것이 더 정확하다고 볼 수 있다.
9. Concluding Remarks
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
6. Instructions: Language of the Computer 2 (0) | 2021.04.10 |
---|---|
5. Instructions: Language of the Computer 1 (0) | 2021.04.08 |
3. Computer Avstractions and Technology 3 (0) | 2021.03.31 |
2. Computer Avstractions and Technology 2 (0) | 2021.03.29 |
1. Computer Avstractions and Technology 1 (0) | 2021.03.28 |