Performance

charrrming·2022년 4월 11일

Computer Architecture

목록 보기
8/17

1. Resposne Time, Throughput

컴퓨터 성능은 어떻게 측정하는가?

- Resposne time: 하나의 task를 실행하는데 걸리는 시간 (시작~종료)
				 개인 사용자들에게 중요
                 
- Throughput: 주어진 시간동안 처리할 수 있는 task의 총 갯수
			  데이터 센터, 슈퍼 컴퓨터 관리자들에게 중요
              Server는 throughput에 더 집중
              
• Pipelining: 파이프라인은 response time엔 도움 안 됨
			  하지만 throughput은 증가시킴
              불균형한 길이의 파이프라인은 속도를 감소시킴
              대부분 speedup = # of pipeline stages
컴퓨터 성능을 최대화하기 위해 execution(response time)을 줄이고 싶음
=> performance(성능) = 1 / execution time(실행 시간)
=> 성능, 실행 시간은 역수 관계!
- Execution time: seconds per program
				  disk access, memory access, I/O, OS 등 포함

- CPU time: CPU가 주어진 일을 하는 동안 걸린 시간
			I/O, 다른 프로그램들은 포함하지 않음
            -> 간단하게 CPU time을 성능 측정할 때 사용하자! 

2. CPU Time

모든 컴퓨터는 clock으로 동기화

- 주기(T): 한 clock cycle 시간 
- 주파수(f): 1초당 clock cycle 수 (= 1/T)

CPU Time = CPU 클락 사이클 수 * clock 주기(T)
		 = CPU 클락 사이클 수 / 주파수(f)

-> 성능을 증가시키기 위해선, 클락 사이클 수 ↓ or 주파수 ↑

3. Instructions and CPI

컴퓨터는 instruction으로 실행 -> 실행 시간은 instruction 갯수에 의존적

CPU time = CPU clock cycles * T
CPU clock cycles = # instructions * Avg. clock cycles per inst 
				   (CPI, 명령어당 사용하는 평균 클락 사이클 수)

• CPU Time = # insts * CPI * T = # insts * CPI / f


0개의 댓글