💻 Perforamance
말그대로 컴퓨터가 한 작업을 하는 성능을 의미한다.
1. 2 key metrics in computer performance
- Execution time (response time)
- 처음부터 끝까지 걸리는 시간
- Execution time과 response time이 같은것은 아니다.
- Throughput
- 주어진 시간동안 처리한 작업량
2. Performance = 1/ExecutionTIme
- 성능과 ExecutionTIme은 반비례함.
💻 Time Performance
먼저, 시간 측면에서의 성능에 대해 얘기해보고자 한다.
시스템 전체의 시간 측정에는 Elapsed time이라는 것이 쓰인다, CPU 작업 시간, I/O에 걸리는 시간 등 여러가지가 이에 해당된다.
그 중 CPU time 에 대해서 얘기해보고자 한다.
CPU time은 컴퓨터의 성능을 고려할 수 있는 하나의 기준으로 CPU에서 주어진 일을 처리하는 데 걸리는 시간이다.
CPU time을 구하는 공식은 다음과 같다.
CPU time = CPU clock cycles x Clock Cycle Time
여기서 나오는 clock이란, 회로에서 주기적으로 나타나는 신호인데, 이것들이 모여서 CPU 동작이 시행되는것이다. HIgh - LOW 상태가 반복되며, 주기적으로 반복되는 이 클럭을 통해 CPU는 연산을 수행한다.
CPU clock cycle은 CPU에서 clock 이 몇 주기 도는지를 의미하고 Clock Cycle Time 은 clock 한 cycle 당 걸리는 시간을 의미한다.
Clock Cycle을 더 잘게 쪼개서 instruction을 통해 더 살펴보겠다. instruction이란 편하게 명령어라고 생각하면 좋다.
CPI(Clock Cycles Per Instruction) : 한 명령어에 Clock Cycle이 몇사이클 들어가는지를 나타냈다.
IC(Instruction Count) : 프로그램을 수행하는데 필요한 Instruction 사용 개수
명령어의 수와 명령어당 cycle 수를 곱하면 한 작업에 들어가는 cycle 수가 나올것이다.
이를 통해, CPU Clock Cycle = CPI x IC 라는 결론이 나온다.
이것으로, CPU time을 재 정의해 본다면,
CPU time = IC x CPI x Clock Cycle Time
CPU time = IC x CPI / clock rate
로 정의할 수 있겠다.
문제로 예시를 보겠다.
Example
- Computer A has clock cycle time of 250ps and CPI of 2.0
- Computer B has clock cycle time of 500ps and CPI of 1.2
which computer is faster?
무슨 컴퓨터가 더 빠를까? 한마디로 CPU Time 이 누가 더 적은지를 무든 문제이다.
CPU Time은 위에서 말했듯이 IC x CPI x Clock Cycle Time 이다. 위에서 Clock Cycle Time과 CPI는 각각 나와있지만 IC는 나와있지 않다. iC는 둘다 N이라고 설정하고 문제를 풀어야겠따. 하나씩 CPU time을 구해보자.
CPU Time of A : N x 2.0 x 250 = 500N ps
CPU Time of B : N x 1.2 x 500 = 600N ps
CPU Time은 적을수록 성능은 좋은것이다.
따라서, A가 B보다 1.2배 빠르다. 여기서 중요한 것은 컴퓨터의 성능의 대소는 비율로 나타내야한다.
💻Power Trend
Power ≒ Capacitive load x Voltage^2 x Frequency
위 그래프는 CPU 발전에 따른 Power량을 보여준다.
2004년 Pentinum Prescott 까지는 마구마구 Clock Rate를 올렸다. Clock Rate를 올리면 CPU time이 작아지므로 당연지사, 컴퓨터의 성능이 올라간다.
그럼과 동시에 Power도 올라가는 문제점도 있었다. 너무많은 Power량은 냉각문제를 야기했다.
이 문제를 multi-core의 도입으로 해결하였다. 위 식에서 Frequency는 Clock Rate와 동일한 것인데 그것의 증가량은 Power의 증가로 이어진다고 했다. 이를 multi-core가 도입되면서 Voltage가 줄었다. 이로 Power도 줄게 된 것이다.
2002 - 4 년도에 출시된 제품들의 ㅣ름을 한번 보아라.
2 cores , 4 cores 등 multi-cores 를 암시하는 이름들이다.
이전에는, 하드웨어 성능이 증가함에따라 소프트웨어 성능도 자동적으로 올라갔다.
허나, multi-core 하드웨어에서는 소프트웨어들은 재작성되어야 한다.
💻 Amdahl's Law
간단하게 설명하자면, 암달의 법칙은 전체 일을 빠르게 만드는게 효율이 좋다는 얘기이다.
총 실행시간이 같은 프로그램이 두개 있다.
하나는 A부분의 속도를 2배로 업그레이드 하엿고, 하나는 B부분의 속도를 10퍼센트 업그레이드 하였다.
그렇다면 총 프로그램의 실행시간을 따져보자.
어이 없겠지만 프로그램 실행시간은 정확하게 알 수는 없겠지만, 사진을 봤을때, 딱 봐도 뒤에것이 조금 더 실행시간이 짧아보인다.. 한마디로, 발전 후의 총 실행시간을 계산할때 개선된부분과 안된부분을 따로 계산해야한다는 것이다.
자세하게 설명하면 매우 길기에, 이만 줄이겠다.
'2-2 > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Data Hazard (0) | 2022.11.23 |
---|---|
[컴퓨터 구조] Pipeline (0) | 2022.11.23 |
[컴퓨터 구조] Type of Instructions (0) | 2022.10.11 |
[컴퓨터 구조] 3. RISC-V Operands (1) | 2022.10.10 |
[컴퓨터 구조] Instruciton (0) | 2022.10.02 |