728x90
- 본 문서는 KOCW 의 [컴퓨터구조] - 영남대학교 최규상 교수님의 강의 2주차 2강을 보고 정리한 내용입니다.
Power Trends
- poser wall (전력 장벽) : 전압은 제곱으로 곱해지기 때문에 전압을 2배 낮추게 되면 전력은 4배 적어도 동일한 양의 capacity load 와 frequency 를 유지할 수 있지만 2004년 부터 전압을 낮추면 전류가 새어나가는 상황이 되어 더이상의 전압을 낮출 수 없게 되어 이러한 방법으로 성능을 개선하는 것이 불가능하게 되었다. 이러한 현상을 전력 장벽이라 한다.
-
칩의 전력 소모량 Power = Capacitive load * Voltage^2 * Frequency
Reducing Power
- 요즘의 컴퓨터들은 전력 소모를 줄이기 위해 많은 노력을 한다.
- ex) 새로운 CPU를 설계
- capacitive load 85%, voltage 15%, frequency 15%
-
기존의 cpu보다 52% 의 전력소모량을 보인다.P new C old * 0.85 * (V old * 0.85)^2 * F old * 0.85 ------- = ------------------------------------------------ = 0.85^4 = 0.52 P old C old * V old^2 * F old
- 전력 장벽 (power wall)
- 전압을 더이상 낮추지 못한다
- 열을 더이상 낮추지 못한다
- => 전력 소모가 많아진다
- 2004년부터는 다른 방법으로 성능을 개선하고자 한다. -> Multi-Core
Multiprocessors
- 2004년을 기점으로 컴퓨터의 성능을 개선하기 위해 사용되는 방법
- 하나의 칩 안에 프로세서를 한 개 이상 사용하는 구조이다.
- 병렬 (parallel) 프로그래밍을 사용해야 한다
- 기존의 시퀀스 프로그래밍이 아닌 병렬 구조를 가져야 한다.
- 시퀀스 프로그래밍에서는 하드웨어가 알아서 여러개의 프로그램을 실행해주는 instruction level parallelism 구조를 가졌다.
- 프로그래머는 신경쓰지않고 프로그램을 짜면 된다.
- 병렬 프로그래밍에서는 프로그래머가 신경쓸 것이 많아진다
- 성능을 위한 프로그래밍
- load balancing : 여러 일을 나눴을 때 하나의 일이 비슷한 load 를 가져야 한다.
- 통신 및 동기화 최적화 (optimizing communication and synchronization)
SPEC CPU Benchmark
- Standard Performance Evaluation Corp (SPEC) : 성능을 측정해주는 벤치마크 프로그램을 만드는 회사
- CPU, I/O, Web 과 관련된 성능을 측정하는 벤치마크 프로그램을 만든다.
- SPEC CPU2006
- 2006년에 만들어진 CPU측정 프로그램
- 여러 개의 프로그램을 실행해서 총 실행 시간을 활용한다.
- I/O 에 관한 부분은 무시할 정도이기 때문에 CPU 성능에 초점을 맞췄다.
- 표준으로 잡은 reference machine 과 비교하여 성능을 비교할 수 있다.
- CINT2006(integer), CFP2006(floating-point) 로 구별된다.
- Geometric mean : 전체 평균 -> 값이 클수록 성능이 더 좋다
SPEC Power Benchmark
- 서버의 전력소비를 측정
- ssj_ops/sec : 초당 서버 사이드 자바 오퍼레이션 수
- power : Watts (Joules/sec)
- => 전체 : watt 당 서버 사이드 자바 오퍼레이션 수로 측정
- 값이 클수록 성능이 좋다
최종 결론
- 가격 대비 성능이 향상되고 있다
- 무어의 법칙에 의거함
- 추상화 계층
- 하드웨어와 소프트웨어
- 명령어 집합 구조 (instruction set architecture)
- 하드웨어/소프트웨어 인터페이스
- 실행 시간 (execution time) : 성능 측정에 가장 좋음
- 전력 (power) 은 성능의 제한 요소이다.
- 멀티코어를 사용하여 성능을 개선하고자 한다
- 멀티코어는 병렬 구조를 통해 설계된다.
Pitfall : Amdahl's Law
- 컴퓨터의 어느 한 부분을 성능 향상 시키면 전체 성능은 비례하여 향상된다.
-
T affected T improved = -------------------- + T unaffected improvement factor
- 예) 곱하기 연산은 80s/100s 를 차지한다.
- 곱하기 연산의 성능을 향상시켜 전체 성능을 5배 향상시키고 싶다
-
80 20 = ---- + 20 n 80 (곱하기 연산) 100/5 = --------------- + 20 (곱하기 연산 제외) n (구할 수)
- n 이 무한대로 갈 때에만 가능하다 -> 불가능하다
- 곱하기 연산의 성능 향상만으로는 전체 성능의 5배 향상은 불가능하다.
Fallacy : Low Power at Idle
- i7 power banchmark
- At 100% load: 258W
- At 50% load : 170W (66%)
- At 10% load : 121W (47%)
- -> load 와 전력 소모는 비례하지 않다.
- Google data center
- 대부분 10 ~ 50% load 만 사용
- 100% load 는 전체 시간의 1%도 안된다.
- 프로세서를 만들 때 load 에 비례되도록 전력소모를 만드는 것이 필요하다 => 앞으로 필요한 기술
Pitfall : MIPS as a Performance Metric
- MIPS : Milions of Instructions Per Second ( 초당 몇 백만 개의 명령을 실행하는가)
- 컴퓨터마다 ISA 가 다르다.
- 명령마다 복잡도가 다르다.
-
Instruction count MIPS = ----------------------- Execution time * 10^6 Instruction count Clock rate = --------------------------------- = ------------ Instruction count * CPI CPI * 10^6 ------------------------- * 10^6 Clock rate
- CPI 는 CPU 에 따라 달라질 수도 있고 프로그램에 따라 달라질 수도 있다.
- => MIPS 는 정확한 성능 측정 단위라고 할 수 없다.
- => SPEC CPU Benchmark 등이 더 정확한 측정 방법이다.
CPU Time = Instruction Count * CPI * Clock Cycle Time
- Performance = 1/Execution time 을 구할 수 있다.
728x90
'Alchitecture' 카테고리의 다른 글
ISA와 MIPS (0) | 2022.01.04 |
---|---|
컴퓨터 하드웨어의 연산과 피연산자부 (0) | 2022.01.03 |
컴퓨터의 성능 (0) | 2021.12.30 |
프로세서와 메모리 그리고 성능 (0) | 2021.12.29 |
컴퓨터 구조의 8가지 기막힌 아이디어와 프로그램 (0) | 2021.12.28 |