728x90
- 본 문서는 KOCW 에 공개된 컴퓨터구조 - 영남대학교 최규상 교수님의 2015년도 2학기 강의를 보고 정리한 내용입니다.
CPU time
CPU Time = CPU Clock Cycles (클럭 수) * Clock Cycle Time (하나의 클럭 당 시간)
CPU Clock Cycles
= ----------------
Clock Rate
- 성능이 향상되는 시기
- CPU time 이 감소할 때
- 클럭 수가 감소할 때
- 클럭 비율이 증가할 때
- 사이클 수와 클럭 비율에 대해 민감하게 반응한다 (간혹 사이클 수가 증가하는데 클럭 비율도 증가하는 경우도 있다 -> 잘 봐야 한다)
- 예
- Computer A : 2GHz clock, 10s CPU time / Designing Computer B(새로운 컴퓨터) : 목표 CPU time 6초, 더 빠른 클럭 사용, 1.2 배의 클럭 사이클이 걸리도록 -> Computer B 의 클럭은?
-
Clock Cycles B 1.2 * Clock Cycles A Clock Rate B = ---------------- = --------------------- CPU Time B 6s Clock Cycles A = CPU Time A * Clock Rate A = 10s * 2GHz = 20 * 10^9 1.2 * 20 * 10^9 24 * 10^9 Clock Rate B = ----------------- = ----------- = 4GHz 6s 6s
-
- Computer A : 2GHz clock, 10s CPU time / Designing Computer B(새로운 컴퓨터) : 목표 CPU time 6초, 더 빠른 클럭 사용, 1.2 배의 클럭 사이클이 걸리도록 -> Computer B 의 클럭은?
Instruction Count and CPI
Clock Cycles = Instruction Count (명령 수) * Cycles per Instruction (CPI, 하나의 명령 당 걸린 사이클)
CPU Time = Instruction Count * CPI * Clock Cycle Time
Instruction Count * CPI
= -------------------------
Clock Rate
- 프로그램의 Instruction Count
- 프로그램, ISA, 컴파일러에 의해 결정
- Cycles per instruction 의 평균
- CPU 하드웨어에 의해 결정
- instruction 의 종류가 다른 경우 서로 다른 CPI를 사용
- => instruction 이 섞여있는 경우 CPI 의 평균을 사용
- 예)
- Computer A : Cycle Time = 250ps (4GHz), CPI = 2.0
- Computer B : Cycle Time = 500ps (2GHz), CPI = 1.2
- Same ISA => A 와 B 의 Instruction Count 수가 같다
- 어떤 컴퓨터가 얼마나 빠른가?
-
CPU Time A = Instruction Count * CPI A * Cycle Time A = I * 2.0 * 250ps = I * 500ps CPU Time B = Instruction Count * CPI B * Cycle Time B = I * 1.2 * 500ps = I * 600ps => A 가 더 빠르다 CPU Time B I * 600ps ------------ = ----------- = 1.2 CPU Time A I * 500ps => 1.2 배 더 빠르다
-
CPI 자세히 보기
- 다른 instruction 클래스들은 다른 사이클 수를 요구한다.
- CPI 의 가중평균(Weighted Average)
- 예)
- 클래스 A, B, C의 명령어를 사용하여 컴파일된 대체 코드 배열
-
Class A B C CPI for class 1 2 3 IC in sequence 1
(컴파일된 코드 1)2 1 2 IC in sequence 2
(컴파일된 코드 2)4 1 1 - Sequence 1 : IC = 5
- Clock Cycle = 2 * 1 + 1 * 2 + 2 * 3 = 10
- Avg. CPI = 10/5 = 2.0
- Sequence 2 : IC = 6
- Clock Cycle = 4 * 1 + 1 * 2 + 1 * 3 = 9
- Avg. CPI = 9/6 = 1.5
- => Sequence 2 가 1보다 더 빨리 실행된다.
요약
Instructions Clock cycles Seconds
CPU Time = -------------- * -------------- * -------------
Program Instruction Clock cycle
- 성능 의존
- Algorithm : IC, CPI 에 영향을 준다
- Programming 언어 : Ic, CPI 에 영향을 준다
- 컴파일러 : IC, CPI 에 영향을 준다
- Instruction set architecture (ISA) : IC, CPI, Clock cycle time 에 영향을 준다.
728x90
'Alchitecture' 카테고리의 다른 글
컴퓨터 하드웨어의 연산과 피연산자부 (0) | 2022.01.03 |
---|---|
전력 장벽과 멀티코어, 성능 벤치마크 (0) | 2021.12.31 |
프로세서와 메모리 그리고 성능 (0) | 2021.12.29 |
컴퓨터 구조의 8가지 기막힌 아이디어와 프로그램 (0) | 2021.12.28 |
클러스터(cluster) 알아보기 (0) | 2021.08.20 |