[컴퓨터구조] 2. 컴퓨터 성능

2019. 11. 7. 18:55연구과제

컴퓨터의 성능은 여러 가지 방법으로 정의 가능하다.

  • 컴퓨터 사용자 개인의 입장에서는 응답시간(response time)
  • 작업 개시에서 종료까지의 시간, 실행시간(execution time)
  • 데이터센터 관리자에게는 일정 시간동안 처리하는 작업의 양, 처리량(throughput) 혹은 대역폭(Bandwidth)

컴퓨터를 공유하는 경우 프로세서 하나가 여러 프로그램을 동시에 실행하는 경우가 많다. 이런 환경에서는 프로그램의 경과시관을 최소화하는 것 보다 처리량을 최적화하는게 중요할 수 있다. 그러므로 경과시간과 구분해서 프로세서가 순수하게 프로그램을 실행하기 위해 소비한 시간을 계산할 필요가 있다. 이 시간을 CPU 실행시간(CPU execution time)이라 한다. 

 

이 CPU 실행시간은 실제로 사용자 프로그램 실행에 소요된 사용자 cpu 시간(user CPU time)과 운영체제가 소비한 시스템 cpu 시간(system CPU time)으로 나눌 수 있다. 하지만 시스템 cpu 시간과 사용자 cpu 시간을 정확히 구하기는 쉽지 않다. 

 

거의 모든 컴퓨터는 H/W 이벤트가 발생하는 시점을 결정하는 클럭을 이용하여 만들어진다. 

이 클럭의 시간 간격을 클럭 사이클(clock cycle)이라 한다.

클럭 주기(clock period) : 한 클럭 사이클에 걸리는 시간이나 클럭 속도로 표시한다. 클럭 속도는 클럭 주기의 역수이다.

 

CPU execution time = CPU clock cycle 수 * Clock Cycle 시간

CPU clock cycle 수 = Instruction 수 * Instruction 당 평균 Clock cycle 수(CPI)

고전적인 CPU 성능식 ) CPU execution time = Instruction 개수 * CPI * clock cycle 시간

 

그렇다면 성능식의 세 가지 인자값은 어떻게 구할까? 

CPU execution time은 실제 프로그램을 실행시켜서 얻을 수 있고

Clock cycle time은 보통 컴퓨터 하드웨어 매뉴얼에 기록되어 있음.

명령어 개수와 CPI는 구하기가 조금 어렵다. 

 

명령어 개수는 실행과정을 추적하는 S/W 도구나 컴퓨터 구조의 시뮬레이터를 이용해서 측정 가능하다. 

이를 이용하면 실행 명령어 수나 평균 CPI, 성능 저하의 원인까지 찾아낼 수 있다.

하지만 CPI는 프로그램 실행에 사용되는 명령어 배합(instruction mix)뿐 아니라 메모리 시스템과 프로세서 구조를 포함하는 여러 컴퓨터 세부 설계에 따라 달라진다. 따라서 CPI는 명령어 집합이 같아도 구현 방식에 따라서 달라질 뿐만 아니라 응용 프로그램에 따라서도 달라진다. 따라서 CPI와 명령어 개수는 클럭 속도가 같더라도 반드시 비교해야 한다.