1) 프로그램 A를 실행 했을 때, CPI는 얼마인가?
● Performance
컴퓨터를 사용하는 사용자 입장에서는 작업을 시작하고 종료하기 까지의 시간 (response time)이 중요할 것입니다. 이런 관점에서 Performance를 논할 때 이와 관련된 척도를 정리해야합니다.
● 성능의 척도
clock cycle
컴퓨터는 하드웨어적으로 명령어의 이벤트가 발생되는 시점을 결정하는데 이것을 clock 신호라 합니다. clock cycle 이란 일정한 속도를 가지고 동작하는 프로세스의 clock의 한 주기동안의 시간을 의미합니다.
clock period
clock 주기란 clock 사이클에서 한 주기가 도는데 걸리는 시간을 의미하며 이는 clock frequency(clock speed)와 역수 관계입니다.
● CPI(Cycles Per Instruction) 란?
프로그램이 있으면 그 프로그램의 한 명령어를 수행하는데 걸리는 평균 clock cycles 수를 CPI(Cycles Per Instruction) 라 합니다.
프로그램을 실행하는데 한 명령어당 clock cycle의 개수가 있을 것입니다. 전체 명령어를 실행하는데는 (각 명령어)*(각 명령어의 clock cycle의 수)로 생각할 수 있습니다.
이것을 정리해보면
CPU clock cycle의 수 = 명령어의 수 * 명령어 당 clock cycle의 수로 생각할 수 있습니다.
따라서 아래의 CPI를 구하는 공식이 됩니다.
● CPI 구하는 방법
● CPI 구하기
2) CPU Clock Frequency가 1.5 GHz일 때, 프로그램 A의 CPU time은 얼마인가?
CPU time이란?
시스템 전체의 시간 측정에는 Elapsed time개념이 사용됩니다. 이 개념은
I/O 작업 시간, CPU의 작업 시간, OS overhead 시간, 등 모든 내용이 고려되는 개념입니다.
그 중 CPU time이라는 것은 CPU에서 일을 처리하는데 걸리는 시간을 뜻합니다.
하지만 CPU time의 순수한 성능 측정이 어렵습니다.
그 이유는 총 응답시간에 CPU가 다른 작업을 같이하고 있는 간섭이 있을 수 있기 때문에 이는 응답 시간을 느리게 만들고 CPU의 성능을 감소시키는 원인이 됩니다.
따라서 정밀한 CPU time을 측정하는 것은 힘든일입니다.
● CPU time 구하는 방법
CPU time을 구하는 방법은 만약 프로그램의 전체 명령어의 개수가 n개라고 가정하고 각 명령어는 10cycle을 가진다고 가정하겠습니다. 그리고 CPU가 1GHz의 속도로 명령어를 수행한다고 가정할 때, CPU time을 구하는 방법은 n개의 명령어는 10n이라는 cycle을 필요로 하게 됩니다. 그리고 이 10n이라는 프로그램 전체 명령어의 전체 cycle수에다가 한 cycle을 처리하는데 걸리는 시간을 곱해주게 되면 CPU time을 구할 수 있습니다.
이 말을 공식으로 나타내면 아래와 같습니다.
● CPU time 구하는 공식
CPU Time = CPU Clock Cycles * Clock Cycle Time
위 공식을 좀더 자세히 나타내면 CPU Clock Cycles란 전체 명령어를 처리하는데 필요한 cycle의 개수를 의미하는데 이 값은 Instrunction count * CPI가 됩니다. 따라서
CPU Time = instrunction count * CPI * Clock cycles TIme입니다.
Clock Rate은 Clock cycles Time의 역수 이므로
CPU Time = instrunction count * CPI / Clock Rate 입니다.
● CPU time 구하기
'전공 > 컴퓨터 구조' 카테고리의 다른 글
8. Pipeline이란 (0) | 2021.12.27 |
---|---|
7. Pipeline에서 데이터 처리 (0) | 2021.12.27 |
6. Processor Design (0) | 2021.10.29 |
4. Calling Convention(Caller-save, Callee-save, Hybrid) (0) | 2021.10.07 |
3. MIPS 문법 정리 (0) | 2021.10.07 |