티스토리 뷰
서로 다른 아키텍처끼리의 성능을 비교하려면 적절한 비교 기준(metrics)가 있어야 한다.
대표적으로 쓰이는 기준이 바로 CPU Time이다.
performance = 1 / execution time
performance(성능)은 어떤 작업을 처리하는데 걸리는 시간(execution time)의 역수로 정의한다.
한편, 두 개의 cpu 간 성능을 상대적으로 비교할 때 다음과 같이 표현한다.
"A가 B보다 n배 빠르다"
이를 수식으로 표현하면,
performance(A) / performance(B) = n
이는,
execution time(B) / execution time(B) = n 과 동치이다.
보통 상대적으로 비교할 때 execution time(=CPU time)으로 표현할 때가 많으니 분자와 분모가 바뀌지 않도록 주의하자.
elapsed time : total execution time
CPU time : elapsed time – ( I/O time + idle time)
I/O time은 input / output 과의 연결 과정에서 걸리는 시간이고, idle time은 cpu가 아무것도 하지 않고 다른 구성요소가 준비될 때 까지 대기하는 시간이다. 따라서 cpu의 성능과 무관하므로 cpu 작업 시간에서 제외한다.
Clock period (= Clock cycle time) : 한 클락 사이클이 도는 데 걸리는 시간.
Clock frequency(= Clock rate) : 1초당 클락 사이클의 횟수.
clock cycle time = 1 / clock rate
ex) 1 ns = 1 / 1 GHz ( 1 ns = 1 * 10^-9 s)
CPU time = clock cycle * clock cycle time
= clock cycle * ( 1 / clock rate)
clock cycles = Instruction Count * Cycles Per Instruction
이 때, Instruction Count : 총 명령어의 개수
Cycles Per Instruction : 한 명령어 당 필요한 사이클의 개수.
ex) application A 에는 명령어가 100개, application B 에는 명령어가 200개가 필요하다. (Instruction Count)
ADD라는 명령어는 실행을 위해 2 cycles 가 필요하고, BEQ는 3 cycles가 필요하다. (Cycles Per Instruction)
위 식을 이용하면 CPU time을 다음과 같이도 계산할 수 있다.
CPU time = Instruction Count * Cycles Per Instruction * clock cycle time
= Instruction Count * Cycles Per Instruction * (1 / clock rate)
참고) computer organization and design 5/e by Patterson & Hennessy
이혁준 교수님 컴퓨터구조와논리 2020 봄학기 수업
'ARCHITECTURE' 카테고리의 다른 글
Instruction type (MIPS) (0) | 2020.04.11 |
---|
- Total
- Today
- Yesterday
- gracefulshutdown
- 자바스터디
- OOP
- 프로그래머스
- c++
- 데코레이터패턴
- 자바
- 백기선
- 스프링
- 예외처리
- 서비스추상화
- 템플릿콜백
- 카카오
- 코테
- SOLID
- java
- AOP
- 객체지향
- 토비의스프링
- ec2
- 김영한
- 프록시패턴
- BOJ
- 토비의봄TV
- 토비
- 프록시
- 디자인패턴
- provider
- 코딩테스트
- 메서드레퍼런스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |