성능
- 응답 시간(Response time) : 작업을 수행하는 데 걸리는 시간
- 처리량(Throughput) : 단위 시간당 수행된 총 작업(예: 작업/트랜잭션/… 시간당)
- 응답 시간과 처리량은 어떤 영향을 받는가?
- 응답시간 : 프로세서를 더 빠른 버전으로 교체
- 처리량 : 더 많은 프로세서를 추가
- 이 수업에서는 응답 시간에 집중 → 싱글코어에 집중한다.
상대적 성능
- 성능 = 1 / 실행 시간
- "X는 Y보다 n배 빠릅니다."
X 성능 / Y 성능 = Y 실행시간 / X 실행시간 = n
- 예: 프로그램을 실행하는 데 걸린 시간
- A : 10초, B : 15초
- B 실행시간 / A 실행시간 = 15s / 10s = 1.5
- 따라서 A는 B보다 1.5배 빠릅니다.
실행 시간 측정
- 경과 시간(Elapsed time)
- 모든 측면을 포함한 총 응답 시간
- 프로세싱, I/O, OS 오버헤드, 유휴 시간
- 시스템 성능을 결정한다.
- 모든 측면을 포함한 총 응답 시간
- CPU 시간
- 주어진 작업을 처리하는 데 소요된 시간
- 경과시간에서 I/O 시간과 다른 작업 할당량 빼기
- 사용자 CPU 시간 & 시스템 CPU 시간
- 프로그램 마다 CPU 및 시스템 성능에 따라 다르게 영향을 받는다.
- 주어진 작업을 처리하는 데 소요된 시간
CPU 클로킹
- 일정한 속도의 클럭으로 제어되는 디지털 하드웨어의 작동
- 클럭 주기(period) : 클럭 사이클의 지속 시간
- 250ps = 0.25ns = 250×10^(–12)s
- 250ps = 0.25ns = 250×10^(–12)s
- 클럭 주파수(frequency) : 초당 사이클
- 4.0GHz = 4000MHz = 4.0×10^9Hz
주의사항
클럭 주기(period)의 단위는 시간!
클럭 주파수(frequency)의 단위는 Hz!
1 KHz = 1 ㎳
1 MHz = 1 ㎲
1 GHz = 1 ㎱
CPU 시간
CPU Time : CPU 시간
CPU Clock Cycle : CPU 클럭 싸이클
Clock Cycle Time : 클럭 싸이클 시간
Clock Rate : 클럭 속도
CPU 시간
= CPU 클럭 싸이클 X 클럭 싸이클 시간
= CPU 클럭 싸이클 / 클럭 속도
- 성능 향상(CPU 시간 감소)
- 클럭 사이클 수 감소
- 클럭 속도 증가
- 하드웨어 설계자는 사이클 수와 클럭 속도를 절충(trade-off)
CPU 시간 예
- 컴퓨터 A
- 클럭 속도 : 2GHz
- CPU 시간 : 10초
- 컴퓨터 B 설계
- CPU 시간 6초를 목표
- 클럭 싸이클이 A의 1.2배 → 클럭 싸이클(B) = 1.2 X 클럭 싸이클(A)
- 컴퓨터 B의 클럭 속도를 구하라.
클럭 속도(B) = 클럭 싸이클(B) / CPU 시간(B) = 1.2 x 클럭 싸이클(A) / 6s
클럭 싸이클(A) = CPU 시간(A) X 클럭 속도(A) = 10s X 2GHz = 20 X 10^9
클럭 속도(B) = 1.2 X 20 X 10^9 / 6s = 4GHz
명령어 수 및 CPI
CPI(Clock per Instruction) : 클럭 per 명령어
Insturction Count : 명령어 수
클럭 싸이클 = 명령어 수 X CPI
CPU 시간
= 명령어 수 X CPI X 클럭 싸이클 시간
= 명령어 수 X CPI / 클럭 속도
- 프로그램의 명령어 수
- 프로그램, ISA, 컴파일러에 의해 결정된다.
- 프로그램, ISA, 컴파일러에 의해 결정된다.
- 평균 사이클 per 명령어
- CPU 하드웨어에 따라 결정된다.
- 명령어마다 CPI가 다른 경우 : 평균 CPI
- 평균 CPI는 Instruction mix에 영향을 받는다.
CPI 예
- 컴퓨터 A
- 클럭 사이클 시간 : 250ps
- CPI : 2.0
- 컴퓨터 B
- 클럭 사이클 시간 : 500ps
- CPI : 1.2
- ISA가 같을 때 어느 것이 더 빠르고, 얼마나 더 빠른가?
CPU 시간(A) = 명령어 수 X CPI(A) X 싸이클 시간(A) = I X 2.0 X 250ps = I X 500ps
CPU 시간(B) = 명령어 수 X CPI(B) X 싸이클 시간(B) = I X 1.2 X 500ps = I X 600ps
CPU 시간(B) / CPU 시간(A) = 600 / 500 = 1.2
B가 A보다 1.2배 빠르다.
CPI
다른 명령어 클래스가 서로 다른 사이클 수를 사용하는 경우
클럭 싸이클 = n개의 (CPI X 명령어 수)
평균 CPI 가중치
평균 CPI = 클럭 싸이클 / 명령어 수 = n개의 (CPI X 명령어 i번째 수 / 명령어 수)
CPI 예
클래스 | A | B | C |
CPI | 1 | 2 | 3 |
1번 명령어 수 | 2 | 1 | 2 |
2번 명령어 수 | 4 | 1 | 1 |
- 1번일 때 명령어 수 = 5이면
- 클럭 싸이클 = 1X2 + 2X1 + 3X2 = 10
- 평균 CPI = 10/5 = 2
- 2번일 때 명령어 수 = 6이면
- 클럭 싸이클 = 1X4 + 2X1 + 3X1 = 9
- 평균 CPI = 9/6 = 1.5
성능 요약
CPU 시간 = (명령어 / 프로그램) X (클럭 싸이클 / 명령어) X (시간 / 클럭 싸이클)
- 성능은 다음에 따라 달라진다.
- 알고리즘 : IC, CPI에 영향
- 프로그래밍 언어 : IC, CPI에 영향
- 컴파일러 : IC, CPI에 영향
- 명령어 세트 아키텍처 : IC, CPI, 클럭 싸이클에 영향
'컴퓨터시스템구조' 카테고리의 다른 글
[컴퓨터시스템구조] 06. MIPS 포맷(R-포맷, I-포맷) (1) | 2023.10.14 |
---|---|
[컴퓨터시스템구조] 05. Signed, Unsigned, 2의 보수 (0) | 2023.10.14 |
[컴퓨터시스템구조] 04. MIPS 명령어(add, sub, addi, zero) (1) | 2023.10.13 |
[컴퓨터시스템구조] 02. 컴퓨터 추상화와 기술 (1) | 2023.10.13 |
[컴퓨터시스템구조] 01. 개요 (0) | 2023.10.13 |
성능
- 응답 시간(Response time) : 작업을 수행하는 데 걸리는 시간
- 처리량(Throughput) : 단위 시간당 수행된 총 작업(예: 작업/트랜잭션/… 시간당)
- 응답 시간과 처리량은 어떤 영향을 받는가?
- 응답시간 : 프로세서를 더 빠른 버전으로 교체
- 처리량 : 더 많은 프로세서를 추가
- 이 수업에서는 응답 시간에 집중 → 싱글코어에 집중한다.
상대적 성능
- 성능 = 1 / 실행 시간
- "X는 Y보다 n배 빠릅니다."
X 성능 / Y 성능 = Y 실행시간 / X 실행시간 = n
- 예: 프로그램을 실행하는 데 걸린 시간
- A : 10초, B : 15초
- B 실행시간 / A 실행시간 = 15s / 10s = 1.5
- 따라서 A는 B보다 1.5배 빠릅니다.
실행 시간 측정
- 경과 시간(Elapsed time)
- 모든 측면을 포함한 총 응답 시간
- 프로세싱, I/O, OS 오버헤드, 유휴 시간
- 시스템 성능을 결정한다.
- 모든 측면을 포함한 총 응답 시간
- CPU 시간
- 주어진 작업을 처리하는 데 소요된 시간
- 경과시간에서 I/O 시간과 다른 작업 할당량 빼기
- 사용자 CPU 시간 & 시스템 CPU 시간
- 프로그램 마다 CPU 및 시스템 성능에 따라 다르게 영향을 받는다.
- 주어진 작업을 처리하는 데 소요된 시간
CPU 클로킹
- 일정한 속도의 클럭으로 제어되는 디지털 하드웨어의 작동
- 클럭 주기(period) : 클럭 사이클의 지속 시간
- 250ps = 0.25ns = 250×10^(–12)s
- 250ps = 0.25ns = 250×10^(–12)s
- 클럭 주파수(frequency) : 초당 사이클
- 4.0GHz = 4000MHz = 4.0×10^9Hz
주의사항
클럭 주기(period)의 단위는 시간!
클럭 주파수(frequency)의 단위는 Hz!
1 KHz = 1 ㎳
1 MHz = 1 ㎲
1 GHz = 1 ㎱
CPU 시간
CPU Time : CPU 시간
CPU Clock Cycle : CPU 클럭 싸이클
Clock Cycle Time : 클럭 싸이클 시간
Clock Rate : 클럭 속도
CPU 시간
= CPU 클럭 싸이클 X 클럭 싸이클 시간
= CPU 클럭 싸이클 / 클럭 속도
- 성능 향상(CPU 시간 감소)
- 클럭 사이클 수 감소
- 클럭 속도 증가
- 하드웨어 설계자는 사이클 수와 클럭 속도를 절충(trade-off)
CPU 시간 예
- 컴퓨터 A
- 클럭 속도 : 2GHz
- CPU 시간 : 10초
- 컴퓨터 B 설계
- CPU 시간 6초를 목표
- 클럭 싸이클이 A의 1.2배 → 클럭 싸이클(B) = 1.2 X 클럭 싸이클(A)
- 컴퓨터 B의 클럭 속도를 구하라.
클럭 속도(B) = 클럭 싸이클(B) / CPU 시간(B) = 1.2 x 클럭 싸이클(A) / 6s
클럭 싸이클(A) = CPU 시간(A) X 클럭 속도(A) = 10s X 2GHz = 20 X 10^9
클럭 속도(B) = 1.2 X 20 X 10^9 / 6s = 4GHz
명령어 수 및 CPI
CPI(Clock per Instruction) : 클럭 per 명령어
Insturction Count : 명령어 수
클럭 싸이클 = 명령어 수 X CPI
CPU 시간
= 명령어 수 X CPI X 클럭 싸이클 시간
= 명령어 수 X CPI / 클럭 속도
- 프로그램의 명령어 수
- 프로그램, ISA, 컴파일러에 의해 결정된다.
- 프로그램, ISA, 컴파일러에 의해 결정된다.
- 평균 사이클 per 명령어
- CPU 하드웨어에 따라 결정된다.
- 명령어마다 CPI가 다른 경우 : 평균 CPI
- 평균 CPI는 Instruction mix에 영향을 받는다.
CPI 예
- 컴퓨터 A
- 클럭 사이클 시간 : 250ps
- CPI : 2.0
- 컴퓨터 B
- 클럭 사이클 시간 : 500ps
- CPI : 1.2
- ISA가 같을 때 어느 것이 더 빠르고, 얼마나 더 빠른가?
CPU 시간(A) = 명령어 수 X CPI(A) X 싸이클 시간(A) = I X 2.0 X 250ps = I X 500ps
CPU 시간(B) = 명령어 수 X CPI(B) X 싸이클 시간(B) = I X 1.2 X 500ps = I X 600ps
CPU 시간(B) / CPU 시간(A) = 600 / 500 = 1.2
B가 A보다 1.2배 빠르다.
CPI
다른 명령어 클래스가 서로 다른 사이클 수를 사용하는 경우
클럭 싸이클 = n개의 (CPI X 명령어 수)
평균 CPI 가중치
평균 CPI = 클럭 싸이클 / 명령어 수 = n개의 (CPI X 명령어 i번째 수 / 명령어 수)
CPI 예
클래스 | A | B | C |
CPI | 1 | 2 | 3 |
1번 명령어 수 | 2 | 1 | 2 |
2번 명령어 수 | 4 | 1 | 1 |
- 1번일 때 명령어 수 = 5이면
- 클럭 싸이클 = 1X2 + 2X1 + 3X2 = 10
- 평균 CPI = 10/5 = 2
- 2번일 때 명령어 수 = 6이면
- 클럭 싸이클 = 1X4 + 2X1 + 3X1 = 9
- 평균 CPI = 9/6 = 1.5
성능 요약
CPU 시간 = (명령어 / 프로그램) X (클럭 싸이클 / 명령어) X (시간 / 클럭 싸이클)
- 성능은 다음에 따라 달라진다.
- 알고리즘 : IC, CPI에 영향
- 프로그래밍 언어 : IC, CPI에 영향
- 컴파일러 : IC, CPI에 영향
- 명령어 세트 아키텍처 : IC, CPI, 클럭 싸이클에 영향
'컴퓨터시스템구조' 카테고리의 다른 글
[컴퓨터시스템구조] 06. MIPS 포맷(R-포맷, I-포맷) (1) | 2023.10.14 |
---|---|
[컴퓨터시스템구조] 05. Signed, Unsigned, 2의 보수 (0) | 2023.10.14 |
[컴퓨터시스템구조] 04. MIPS 명령어(add, sub, addi, zero) (1) | 2023.10.13 |
[컴퓨터시스템구조] 02. 컴퓨터 추상화와 기술 (1) | 2023.10.13 |
[컴퓨터시스템구조] 01. 개요 (0) | 2023.10.13 |