최규상 님의 KOCW 강의 "컴퓨터 구조"를 정리한 글입니다.
* David A. Patterson님과 John L. Hennessy 님의
"컴퓨터 구조 및 설계" 책을 교제로 한 강의입니다. (책의 내용은 포함되지 않았습니다)
1. Performance
구성 요소
개념 | 설명 |
Response Time | 오퍼레이션이 완료되기까지 걸리는 시간. |
Throughput | 단위 시간당 처리할 수 있는 작업의 양. |
상관 관계
- Response Time이 줄어들면, Throughput이 증가함
- Throughput은 Response Time에 영향을 주지 않음
Execution time
개념 | 설명 |
Elapsed Time (실행 시간) | 명령 실행에 걸린 총 시간. System Performance를 정의하는데 중요한 요소. - Processing: 연산에 걸린 시간. - I/O: 입출력에 걸린 시간. - OS Overhead: 운영체제에서 소요된 시간. - Idle Time: 대기 시간. |
CPU Time (CPU 시간) |
CPU에서 실행되는 작업에 걸린 총 시간.
- User CPU Time: 사용자가 수행한 작업에 걸린 시간. - System CPU Time: 운영체제가 수행한 작업에 걸린 시간. |
- Performance는 Execution Time과 반비례 관계
- Execution Time이 짧아지면 성능이 향상됨
CPU Time
- CPU가 작업을 완료하는데 걸리는 시간
- CPU Time = CPU Clock Cycle / CPU Rate
개념 | 설명 |
Clock Cycle Time |
하나의 클락 사이클에 소요되는 시간.
단위: picoseconds (ps), 1 ps = 10−12초. |
Clock Rate |
초당 발생하는 클락 사이클의 횟수.
Clock Period와 반비례 관계. 단위: Gigahertz (GHz), 1 GHz = 109 사이클/초. |
성능 향상
- Clock Cycle Time 감소
- Clock Cycle Time가 줄어들면, 작업을 완료하는 데 걸리는 시간이 짧아짐
- 하나의 클락 사이클에 필요한 시간이 적어지면 더 빠르게 작업을 처리할 수 있음
- Clock Rate 증가
- Clock Rate가 높아지면 초당 처리할 수 있는 클락 사이클이 많아짐
- 더 많은 작업을 더 빨리 처리할 수 있음
Instruction Conut and CPI
항목 | 설명 |
CPI (Cycles per Instruction) |
각 명령어가 실행되는 데 필요한 클락 사이클 수.
|
Clock Cycle |
전체 클락 사이클 수 = Instruction count(실행해야 할 명령어 수) × CPI(각 명령어의 클락 사이클 수)
|
CPU Time |
전체 CPU 시간 = Instruction count × CPI × 클락 주기 시간
|
성능 결정 요소
항목 | 설명 |
Instruction Count |
한 인터페이스 명령에 사용하는 기계 명령의 횟수가 적을수록 성능이 좋음.
(알고리즘, 프로그래밍 언어, 컴파일러에 따라 결정됨) |
Average Cycle |
인터페이스 명령이 다양하므로 평균을 내어 factor로 사용.
(ISA 및 CPU 하드웨어에 따라 결정됨) |
2. The Power Wall
Power
- 전력 소비량
- = capacitive load(회로가 전하를 저장하는 능력) * Voltage^2 * Frequency(클록 주파수)
Trend
clock rate
- clock rate는 2004년부터 급격히 증가하였으나, 계속해서 정체중
- clock rate이 빨라지면 속도가 빨라지지만, 전력 소모도 급격히 증가
power
- power도 clock rate에 따라 급격히 증가하였으나, 계속해서 완만히 감소중
- 전압 감소와 주파수 감소 등의 기술적 개선 덕분에 완만하게 감소하는 추세입니다.
voltage과 frequency
- frequency는 1000배 빨라지고, Voltage 사용을 5->1V 로 낮아짐
- 전압이 낮아져 전력소비는 30배정도만 power가 증가하는 수준으로 제한됨
Reducing Power
- capacitive load, voltage 및 frequency가 85%까지 줄여 전력 소비를 개선하였음
- 그러나 이 이상 발전하지 못하였음
Power Wall
- 전력 소비를 줄이는데 있어 드라마틱한 성능 향상이 더이상 가능하지 않음
전압과 주파수를 낮추지 못함
- 전압을 낮추면 반도체 소자가 제대로 동작하지 못하거나 성능이 급격히 떨어짐
- 주파수를 낮춰도 성능이 감소함 (한 사이클당 처리할 수 있는 명령어 수가 줄어듬)
열 문제
- 전압이나 주파수를 높이면 성능은 향상되지만 그만큼 더 많은 열이 발생함
- 이 열을 처리하는데 한계가 있고, 일정 수준 이상의 과열은 시스템을 불안하게 만듬
3. The Sea Change: The Switch to Multiprocessors
- Power Wall을 해결하기 위한 방법
Uniprocessor
- 성능 향상에 한계 발생
- Power, Instruction-Level Parallelism(ILP), Memory Latency 제약 존재
Multiprocessor
- 성능 향상을 위해 parallel programming을 사용해야 함
어려움
- 프로그래머가 일일이 병렬 프로그래밍 스타일로 짜야 함
- 스레드별 할당작업을 균등하게 나누어줘야 함
- 동시성 오버헤드를 줄여줘야 함
SPEC
- Standard Performance Evaluation Corp
CPU Benchmark
- CPU 성능 측정
Power Benchmark (서버)
- 초당 워크로드 처리
Fallacies and Pitfalls
Amdahl's Law
- 컴퓨터에 어느 한 부분을 성능 향상 시키면, 전체 성능향상이 비례함
출처