KOCW 최규상 교수님 컴퓨터구조 강의 정리
이 글은 공부한 것을 복습 및 기록하기 위한 게시물입니다.
잘못된 정보가 기입되어 있을 수 있으니 주의해주시기 바랍니다.
참고 : 컴퓨터 구조 및 설계 - David A. Patterson,John L. Hennessy
강의 링크 : http://www.kocw.net/home/cview.do?lid=8cc704c8dfcaf55b
1. CPU Time
CPU Time은 CPU에서 걸린 Cycle의 수와 하나의 Clock Cycle Time의 곱으로 표현할 수 있다.
이것을 통해 알 수 있는 것은 성능은 Clock Cycle의 수를 줄이면 향상이 된다는 것이다.
마찬가지로 Clock Rate를 증가시키면 CPU Time은 감소하게 되며 성능은 향상이 된다.
컴퓨터 아키텍트는 Clock Rate와 Clock Cycle에 민감할 수 밖에 없다.
Cycle의 수를 감소시키면 Clock Rate가 감소하거 반대로 Clock Rate를 증가시키면 Cycle의 수도 늘어날 수 있기 때문이다.
컴퓨터 아키텍트는 이 두가지를 잘 조절하여 성능을 향상시켜야 한다.
1-2. CPU Time Example
컴퓨터A는 2GHz Clock을 가지며 10초의 CPU Time을 가진다.
컴퓨터B를 설계할 때 컴퓨터A에서의 CPU Time 10초를 6초로 줄이려 한다.
그리고 1.2배 빠른 Clock Cycle을 사용하려 한다.
이런 경우의 컴퓨터B의 Clock Rate는 몇이여야 하는가?
위 공식을 따라 계산을 하게 되면 Clock Rate는 4GHz가 필요하게 된다.
2. Instruction count and CPI
Clock Cycle은 Instruction의 수와 Instruction당 Cycle의 수(CPI) 곱으로 결정이 된다.
CPU Time은 Instruction과 CPI와 Clock Cycle Time 곱으로 결정이 된다.
또한 Instruction과 CPI의 곱을 Clcock Rate로 나눈 값으로 결정이 될 수 있다.
Instruction의 수는 프로그램, ISA, 컴파일러에 의해 결정이 된다.
CPI는 CPU H/W에 따라 결정이 된다.
또한 Instruction의 종류가 다를 경우 각각의 다른 Instruction은 서로 다른 CPI를 요구한다.
Instruction이 혼합되어 있는 경우에는 Average CPI를 사용해야 한다.
2-1. CPI Example
컴퓨터 A의 Cycle Time이 250ps 일때(4GHz Clock Rate) CPI는 2.0이다.
컴퓨터 B의 Cycle Time이 500ps 일때(2GHz Clock Rate) CPI는 1.2이다.
이 두 컴퓨터는 같은 ISA를 사용한다.(Instruction의 수가 동일함)
이 경우 두개의 컴퓨터중 어느것이 더 빠른가?
공식에 따라 계산을 해보면 컴퓨터A가 컴퓨터B보다 CPU time이 1.2배 빠르다는 것을 알 수 있다.
2-2. CPI in More Detail
다른 Instruction Class들은 다른 Cycle의 수를 요구하게 된다.
여러 개의 Instruction Class를 사용할 경우에는 Average CPI를 사용해야 한다.
2-3. CPI Example 2
sequence1과 sequence2라는 2가지의 컴파일 코드가 있다.
sequence1의 Instruction의 수는 5개이며 sequence2의 Instruction의 수는 6개로
sequence2가 sequence1보다 Instruction이 1개 더 많게 된다.
Clock Cycle은 각 Class의 수와 CPI를 곱하면 된다.
sequence1의 Clock Cycle은 10, sequence2의 Clock Cycle은 9가 된다.
Average CPI는 전체 Clock Cycle를 Instruction의 수로 나눠주면 된다.
sequence1의 Average CPI는 2.0, sequence2의 Average CPI는 1.5가 된다.
sequence2의 Instruction의 수는 sequence1보다 1개가 더 많았지만 실제로 걸린 Clock Cycle의 수는 1만큼 덜 걸리게 된다.
따라서 sequence2가 sequence1보다 더 빨리 실행될 수 있게 된다.
1개의 Instruction을 실행할 때 걸리는 CPI가 sequence1보다 짧기 때문이다.
3. Performance Summary
CPU Time을 보게 되면 Program은 Instruction으로 구성되어 있고 Instruction은 Clock Cycle로 구성되어있고
Clock Cycle은 Seconds로 구성되어 있다.
이것을 보고 알 수 있는 것은 아래와 같다.
- Algorithm은 Instruction의 수에 영향을 주고 , CPI는 영향을 줄 수도 있다.
- 프로그램 언어는 Instruction의 수와 CPI 모두에게 영향을 준다.
- 컴파일러 또한 마찬가지로 Instruction의 수와 CPI 모두에게 영향을 준다.
- ISA는 Instruction의 수와 CPI, Clock Cycle Time에 영향을 준다.
3-1. Example
Instruction의 종류는 총 4가지가 있다.
- ALU
- Load
- Store
- Branch
각 명령의 Freq는 각각 50, 20, 10, 20이며 CPI는 1, 5, 3, 2이다.
이럴 경우 Freq와 CPI를 곱하면 각각 0.5, 1.0, 0.3, 0.4가 된며 총합은 2.2이다.
Data Cache를 사용해서 Average load time을 2 cycles로 줄였을 때 기존에 비해서 CPU Time이 얼마나 향상되는가
Average loat time을 2 Cycles로 줄이면 Load는 0.4가 되며 총합은 1.6이 된다.
기존에 비해 37.5%만큼 향상이 되는 것이다.Branch prediction을 사용해서 Branch Time을 1 Cycle 만큼 줄였을 때 CPU Time이 얼마나 향상되는가
Branch Time을 1 Cycle만큼 줄이게 되면 Branch의 Freq는 10%가 되며 CPI와 곱한 값은 0.2가 된다.
총합은 2.0으로 바뀌게 된다.
기존에 비해 10%만큼 향상이 되는 것이다.2개의 ALU를 한꺼번에 실행할 경우 CPU Time이 얼마나 향상되는가
기존에 ALU의 CPI가 1이였는데 ALU 2개를 동시에 실행하면 CPI는 0.5가 된다.
그러므로 계산을 하게되면 총합은 1.95가 되며
기존에 비해 12.8% 향상이 되는 것이다.
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
6. Instructions: Language of the Computer 2 (0) | 2021.04.10 |
---|---|
5. Instructions: Language of the Computer 1 (0) | 2021.04.08 |
4. Computer Avstractions and Technology 4 (0) | 2021.04.03 |
2. Computer Avstractions and Technology 2 (0) | 2021.03.29 |
1. Computer Avstractions and Technology 1 (0) | 2021.03.28 |