이어서 설명하겠습니다.
이번장에서는 이전 장에서의 용어를 공부하신다고 생각하면 마음 편하실 것 같네요
Ⅰ. Clock Cycle Time
- Clock Cycle time은 당연히 critical path에 영향을 받는 요소이며, Transition 되기 위해 요구되는 시간을 의미합니다.
- 아래의 그림을 보시면 이해가 되실 겁니다.
- 앞서 말씀드렸듯이, clock cycle time은 Logic design과 가장 연관되어 있습니다.
+ 아래와 같이 가정을 해봅시다.
> 모든 저장 요소(fiip-flop)는 동일한 clock을 사용
> Eege-triggered 클럭을 사용
> Clock이 충분이 느리면, 어떠한 design이든 항상 동작이 가능
+ 위의 조건을 가지는 logic을 그림으로 표현하면 아래와 같습니다.
> "Longest propagatio delay"를 줄인다면, 그만큼 clock cycle time을 줄일 수 있겠죠?
> 위의 말을 다시 돌려 말하면, Logic을 최적화하여 설계를 해서 "Longest propagatio delay"을 줄이면 clock cycle time을 줄일 수 있다는 말입니다. 즉, 성능 향상이 가능하다는 것입니다.
※ Longest propagatio delay(=Critical path delay) : 많은 path들 중에서 가장 긴 timing delay를 가지는 path를 의미 (STA(Static Timing Analysis를 통해서 식별 가능)
Ⅱ. Execution time
- CPU의 Execution time은 빈번하게 사용되며, 계산하는 수식은 아래와 같습니다.
- Program의 Clock cycle 수와 Clock cycle time을 곱하면, Execution time을 손쉽게 계산 가능합니다.
Ⅲ. CPI(Cycle Per Instruction)
- CPI는 Instruction(ex. MOV. ADD 등) 마다 Clock Cycle 이 다르기 때문에, 평균값을 사용
- ISA(Instruction Set Architecture)들은 CPI를 사용하여 비교가 가능
(※ CPI는 낮을수록 좋으며, IPC(Instruction Per Cyle)은 클수록 좋음)
- CPI를 안다면, Excution time은 아래와 같이 다시 쓰일 수 있습니다.
Ⅳ. MIPS(Million Instruction Per Second)
- MIPS는 그대로 시간당 명령어(instruction)의 수만 카운트 합니다.
- 이것은 IPC를 고려하지 않았을 뿐만 아니라, 명령어의 Clock Cycle 등이 고려되어 있지 않습니다.
+ 쉽게 말씀을 드리면, RISC(Reduced Instruction Set Computer)와 CISC(Complex Instruction Set Computer)는 IPC가 크게 차이가 나는데, 이 둘의 IPC를 고려하지 않고 MIPS의 수치로만 성능을 판단하면 큰 실수로 이어지는 것이지요.
Ⅴ. Performance 향상 방법
- Performance를 향상시키는 방법은 "Execution time"을 감소시키는 것입니다. 이를 위해서는 아래의 방법이 존재합니다.
+ Clock rate를 향상 시키기
+ 더 낮은 CPI
+ Instruction을 감소시키기
- 성능을 향상시킬때에는 상충되는 metric 간에 trade-off를 잘 고려해서 최적화하여야 합니다.
- 최종적으로 execution time의 수식은 아래와 같이 정리할 수 있습니다.
- Instruction count / CPI / Clock rate의 영향은 아래와 같이 정리 가능합니다.
Instruction Count | CPI | Clock Rate | |
Program | √ | ||
Compiler | √ | √ | |
ISA | √ | √ | |
Organization | √ | √ | |
Technology | √ |
Ⅵ. Amdahls' law
- 정의 : Execution speedup은 향상의 정도와 영향을 받은 양에 비례
+ 어떤 시스템을 개선하여 P 만큼의 부분에서 S 만큼의 성능 향상이 있을 때, 전체 시스템의 최대 성능 향상은 1/ ( (1-P)* (P/S) )
- 수식은 아래와 같이 정의된다.
+예를 들어, 연산 명령어의 성능이 2배 향상되었고 해당 명령어는 전체의 20%를 차지할 경우 새로운 Execution time 은 아래와 같이 계산됨
> ExTime(new) = ExTime(old) x (0.8 + 0.2/2) = 0.90 x ExTime(old)
> Speedup(overall) = ExTime(old) / ( 0.90 x ExTime(old) ) = 1.11111
'Digital Hardware Design > Computer architecture' 카테고리의 다른 글
MIPS architecture & Instruction (0) | 2022.10.24 |
---|---|
Computer architecture(3) - Program language (0) | 2022.10.23 |
Computer Architecture (0) | 2022.10.14 |
댓글