본문 바로가기
컴퓨터.반도체

컴퓨터 구조 1 응답시간 및 처리량(Response Time and Throughput)

by JROK 2023. 5. 11.

상대적 성능

만나는 지점을 잘 계산해야겠죠

성능 정의(Define Performance)는 실행 시간의 역수라는 것으로, "X는 Y보다 n시간 빠릅니다."와 같은 형태로 표현됩니다. 예를 들어, 프로그램 실행에 소요되는 시간을 비교할 때 A에는 10초, B에는 15초가 소요된다면 실행 시간B/실행 시간A=15초/10초=1.5가 됩니다. 따라서 A는 B보다 1.5배 빠르다고 할 수 있습니다. 성능 정의는 컴퓨터 추상화 및 기술 관련한 중요한 개념 중 하나입니다.

이를 이해하면서 컴퓨터의 성능을 높이는 방법 등에 대한 추가적인 이해도 가능합니다.

 

실행시간 측정 ( Measuring Execution Time )

프로그램 실행 시간을 측정하는 데에는 여러 가지 방법이 있습니다.

그 중에서도 대표적인 두 가지 방법으로는 경과 시간(elapsed time)과 CPU 시간(CPU time)이 있습니다. 경과 시간은 처리, 입출력, 운영 체제 오버헤드, 대기 시간 등을 모두 포함하여 측정한 총 응답 시간을 말합니다. 이러한 경과 시간을 측정함으로써 전체 시스템의 성능을 파악할 수 있습니다. 반면, CPU 시간은 특정 작업을 수행하는 데에 사용된 CPU 시간만을 측정합니다. 이 때, 입출력 시간이나 다른 작업의 차지하는 비중 등은 고려하지 않습니다. CPU 시간은 사용자 CPU 시간과 시스템 CPU 시간으로 구성되며, 이 둘을 합한 것이 CPU 시간입니다. 또한, 서로 다른 프로그램들은 CPU와 시스템 성능에 영향을 받는 정도가 다르기 때문에, CPU 시간 측정 결과가 다를 수 있습니다. 이러한 방법들을 통해 프로그램의 성능을 파악하고, 최적화하는 것이 중요합니다.

 

CPU Clocking

크게보면, 컴퓨터에서 명령어를 처리하는 과정입니다. 주기적으로 발생하는 클럭 신호에 따라 처리되는 사이클을 통해 명령어가 처리됩니다. 이 때, 명령어를 처리하는 과정은 데이터 전송 및 계산, 상태 업데이트 등으로 이루어집니다. 데이터 전송은 메모리에서 레지스터로 데이터를 전송하는 과정을 말하며, 계산은 레지스터에서 데이터를 처리하는 과정을 말합니다. 상태 업데이트는 명령어가 실행됨에 따라 레지스터나 메모리 등의 상태가 갱신되는 과정을 말합니다. 이러한 과정들은 클럭 주기에 따라 일어나며, 클럭 주기란 클럭 신호가 한 번 주기적으로 발생하는 시간 간격을 의미합니다. 따라서, 클럭 주기가 짧을수록 명령어를 처리하는 속도가 빨라지며, 클럭 주기에는 한계가 존재하기 때문에 이를 극복하기 위해 다양한 기술적인 개선 방법들이 연구되고 있습니다.

 

컴퓨터 시스템에서 클럭 주기란 클럭 신호가 한 주기를 완료하는 데에 걸리는 시간을 말합니다. 이 클럭 주기는 일반적으로 피코초(ps) 또는 나노초(ns) 단위로 나타내며, 클럭 주기가 짧을수록 명령어를 처리하는 속도가 빨라집니다. 이 때, 클럭 주기와 클럭 주파수는 역의 관계를 가지며, 클럭 주파수는 초당 클럭 주기의 횟수를 의미합니다. 클럭 주파수는 일반적으로 기가헤르츠(GHz) 단위로 표현되며, 예를 들어 4.0GHz는 1초당 40억 개의 클럭 주기가 발생함을 의미합니다. 클럭 주기와 클럭 주파수는 컴퓨터 시스템의 성능을 결정하는 중요한 요소 중 하나이며, 이를 통제하기 위해서는 여러 가지 기술적인 제약 조건을 고려해야 합니다. 예를 들어, 클럭 주파수를 높이면 처리 속도가 빨라지지만, 발생하는 열과 에너지 소모가 증가하여 발열 문제와 전력 소모량 증가 등의 문제가 발생할 수 있습니다. 따라서, 클럭 주기와 주파수를 조절하는 것은 컴퓨터 시스템의 성능 최적화에 있어서 중요한 과제 중 하나입니다.

CPU Time

CPU Time은 CPU가 실행되는데 걸리는 시간을 나타내며, CPU Clock Cycles는 CPU가 실행되는데 필요한 클럭 신호의 주기 수를 나타냅니다. 또한, Clock Rate는 클럭 신호가 발생하는 빈도를 나타내며, 클럭 주파수와 같은 개념입니다. 이 때, CPU Time은 CPU Clock Cycles와 Clock Cycle Time의 차이로 계산됩니다. 이를 통해 CPU 성능을 향상시키는 두 가지 방법이 제시됩니다. 첫째, clock cycle 수를 줄이는 방법이며, 이는 해당 명령어를 처리하는 데 필요한 클럭 사이클의 횟수를 줄여 CPU가 더 빠르게 작동하도록 만드는 방법입니다. 둘째, clock rate를 증가시키는 방법이며, 이는 클럭 주파수를 높여 클럭 신호가 발생하는 빈도를 높이는 것입니다. 이러한 성능 개선 방법은 하드웨어 디자이너가 클럭 주파수와 클럭 사이클 수를 상호 보완적으로 고려하여 최적의 성능을 얻을 수 있도록 조정해야 합니다. 따라서, 하드웨어 디자이너는 CPU 시스템의 성능을 최적화하는 데 있어서 매우 중요한 역할을 수행하며, 이를 위해 다양한 기술적인 전문 지식을 보유하고 있어야 합니다.

 

예시를 한번 볼까요?

 

Computer A : 2GHz clock, 10s CPU time의 성능을 가지고 있습니다

Computer B를 디자인할 때 CPU time을 6s로 목표하고, 최대한 더 높은 clock을 위해 1.2 × clock cycles까지 증가시킵니다.

위와 같은 계산식이 나옵니다

 

 

결론

클럭 주기와 주파수를 조절하는 것은 컴퓨터 시스템의 성능 최적화에 있어서 중요한 과제 중 하나입니다. 다음 시간에는 CPI에 대해서 알아보도록 하겠습니다 (clock cycles per instruction)

댓글