Ca 3 Performance
Time – the first type of performance
Wall-clock time, response time, or elapsed time
- actual time from start to completion
- includes everything: CPU time for other programs as well as for itself, I/O, operating system overheads, etc 성능 측정방법
- Wall clock time(CPU를 점유하는 모든 사례를 합친 시간)을 퍼포먼스 측정으로 하면 어떤 문제? 불확실성(unpredictability)
- 다른 프로세서 개수, 우선순위 등에 의해 불확실성 야기
- CPU Time: 내가 쓴 시간(user CPU time + system CPU time)
- 어떤 프로세서를 위해 쓴 시간인지 애매한 작은 문제가 남음(예: Timer 인터럽트가 돌면 갑자기 그 때 돌던 프로세서에게 차지가 되니깐)
time command
Decomposition of CPU (Execution) Time
1GHz의 1 Cycle time? 1ns
ISA가 Instruction program에 영향 미치는 이유 - 예) RISC인지 CISC인지에 따라 하나의 기능을 수행하는데 필요한 명령어의 수가 차이날 수도 있으므로 ISA가 Instruction당 평균 사이클수에도 영향 이유 - 예) 복잡하면 여러 사이클 걸릴테니깐
Sequential 5사이클 vs pipelined 1사이클(예: 컨베이어 벨트 1사이클에서 차가 생산되어 나오는?)
MIPS (typical RISC) vs. VAX8700 (typical CISC)
- 퍼포먼스는 RISC가 2~3배 더 나은 것으로 측정하는데 왜 X86(CISC)을 쓰는가?
- x86이 ISA는 CISC 스타일이지만 내부에서는 RISC 방식의 Operation으로 바꾼 뒤 실행시킨다.(무늬만 CISC)
- 그럼 왜 인텔은 RISC로 바꾸지 않고 CISC를 쓰는가? Installed base, 기존 시스템이 CISC로 되어 있어서 매몰비용이 더 클 수 있으므로?
CISC가 나온 배경
- 프로세서가 메모리에 비해 너무 빨라서 한 번에 많은 양을 처리하려고
- 하지만 캐시가 나와서 메모리 속도가 올라감
ARM
- ARM은 처음 만드는 것이므로 CISC와 같은 배경이 없고 Installed base도 없었으므로 RISC 기반으로 출발
- Power 효율성 때문에 전력 소모에 신경을 씀(배터리 2시간 쓰고 방전되면 안 되니깐)
- 이러한 ARM 개발 이후에 데이터센터나 클라우드 컴퓨팅 프로세서도 모바일 프로세서를 쓴다(그린 컴퓨팅)
MIPS 값(1초당 백만개 인스트럭션 실행) cf) MIPS ISA와는 다른 것 문제
- 단위시간에 얼마나 실행만 수행, 각 인스트럭션이 어느 작업을 수행하는지는 상관 X
- 똑같은 프로그램이라도 컴퓨터마다 다를 수 있다
- 경우에 따라 퍼포먼스에 반비례
- A: 4사이클 걸리는 instruction 2개
- B: 1사이클 걸리는 instruction 10개
- MIPS값은 B가 높지만 총 성능은 A가 높다(A: 8사이클, B:10사이클이므로)
A:2초, B:4초 A는 B보다 2배 빠르다 A는 B보다 100% 빠르다
Benchmarks
컴퓨터 작업의 특징을 잘 표현한 엑기스 공평하게 경쟁할 환경을 만들어주는 것 도메인별 벤치마크 다름
- Relevant: meaningful within the target domain
- Coverage: does not oversimplify important factors in the target domain
- Understandable
- Good metric(s)
- Scalable
- Acceptance: vendors and users embrace it
일반적인 벤치마크
- SPEC: CPU performance
- TPC: OLTP (On-Line Transaction Processing) performance
챕터 1을 다 읽으라 강의는 큰 그림만 그려줄 뿐 세세한 것은 책을 보아야 함