전자전기공학/컴퓨터구조

[컴퓨터구조][CPU의 기본역할 및 성능]

Sim 2024. 9. 27. 18:45
반응형

· 목차

  - CPU의 기본 역할

  - CPU 성능 요소


 

 

 

안녕하세요, 이번에는 CPU기본 역할과 성능에 대해서 배워보도록 하겠습니다.

 

 

 

CPU(Central Processing Unit)는 다양한 연산 작업과 명령 처리를 수행하는 장치고, 컴퓨터가 프로그램을

실행하고 시스템을 제어하는 데 핵심적인 기능을 합니다. CPU는 입력된 명령어를 처리하고, 데이터를 연산하고,

메모리와 입출력 장치 간의 데이터를 교환하며, 프로그램의 흐름을 제어합니다.

 

 

위의 역할을 수행하기 때문에 모두가 들어봤던 것 처럼 CPU가 컴퓨터의 '두뇌 역할'을 한다는 라는 말이 있습니다.

 

 

 

 

 

 

 

 

CPU의 기본 역할

 

 

 

 

 

 

 

CPU의 주요 역할은 아래의 네 가지를 기본적으로 꼽아볼 수 있습니다.

 

 

 

 

1. 명령어 처리(Instruction Processing) 

    CPU는 메모리에서 명령어를 가져와(Fetch) 해독(Decode)한 후 실행(Execute)합니다.

 

 

2. 연산(Computation): CPU는 산술연산과 논리연산을 수행합니다. 이를 통해 다양한 계산 작업을 수행합니다.

 

 

3. 데이터 전송(Data Transfer): CPU는 메모리와 입출력 장치 간 데이터를 전송합니다. 프로그램이 실행되는 동안

                                                CPU는 지속적으로 데이터를 읽고 쓰는 작업을 수행합니다.

 

 

4. 제어(Control): CPU는 프로그램이 순차적으로 실행될 수 있도록 제어합니다. 제어 유닛은 명령어의 순서를 관리하고,

                           조건에 따라 Branch나 Loop를 처리합니다.

 

 

 

 

 

 

 

 

CPU 성능 요소

 

 

그렇다면 CPU 수행능력은 어떤 것들이 결정할까요?

 

 

물론 CPU의 수행 능력을 여러 요인에 의해서 결정되기는 하지만, 대표적인 세 가지로

 

Instruction Count, CPI( Cycles Per Instruction), Cycle Time에 의해서 결정됩니다.

 

 

 

Instruction Count는 프로그램이 실행되기 위해 CPU가 처리해야 하는 총 명령어의 수를 말합니다.

프로그램마다 명령어 수는 다르고 컴파일러와 사용된 알고리즘의 효율성에 따라 명령어의 수가 달라질 수 있습니다.

해당 부분은 하드웨어 엔지니어보다는 소프트웨어 엔지니어가 주로 다루는 영역입니다.

 

 

 

CPICycle Time는 주로 CPU의 하드웨어에 의해서 결정됩니다. 한마디로 하드웨어 엔지니어에 의해서

성능이 좋아질수도 있고, 안좋아질 수도 있는 것 입니다. CPI와 Cycle Time을 설명하자면 아래와 같습니다.

 

 

 

CPI는 CPU가 한 명령어를 실행하는 데 필요한 평균 클럭 사이클의 수를 의미합니다.

 

CPU의 마이크로아키텍처가 얼마나 효율적인지, 파이프라이닝(Pipelining) 기술이 얼마나 잘 활용되고 있는지에

따라 CPI는 다를 수 있습니다. 뒤에서 다루겠지만 파이프라이닝은 효율적이라고해서 무조건 많이 적용하게 되면

오히려 효율이 낮아지는 문제가 발생하기도 합니다.

 

 

 

Cycle Time은 하나의 클럭 사이클이 걸리는 시간입니다. CPU의 클럭 속도가 높을수록 사이클 시간이 짧아집니다.

예를 들어서 클럭 속도가 2GHz인 CPU는 초당 20억 번의 클럭 사이클을 가지므로, 한 사이클의 시간이 약 0.5nsec이 됩니다.

 

 

위의 세 가지 요소를 바탕으로 CPU 성능을 평가하는 공식이 있는데, 공식은 아래와 같습니다.

 

 

$\text{Execution Time = Instruction Count} \; * \; CPI \; * \; Cycle Time$

 

$\text{Excution Time} = \frac{Instruction\; Count\; * \; CPI}{Clock \; Rate(클럭 속도)}$

 

또한,

 

$\text{Time = Second/Program =} \; \frac{Instructions}{Program} \; * \; \frac{Clock cycle}{Instruction} \; * \; \frac{Second}{Clock cycle}$

 

 

여기서 Instruction Count는 프로그램에서 실행되는 총 명령어 수,

CPI는 명령어 하나를 실행하는 데 필요한 평균 클럭 사이클 수,

Cycle Time은 클럭 사이클당 걸리는 시간(클럭 주파수의 역수) 입니다.

 

 

$\frac{Cycle}{Instruction}$부분은 CPI이고, 해당 부분은 Compiler와 ISA를 최적화해서 성능을 향상시킬 수 있습니다.

 

또한, $\frac{Second}{Clock cycle}$의 경우에는 공정을 통해서 최적화 시킬 수 있습니다.

 

 

 

 

 

마지막으로 아래의 기본적인 Arm Architecture의 CPU 구조를 보고 마치도록 하겠습니다.

 

추후에 CPU에 대해서 준비해서 총 정리하는 글을 작성해보도록 하겠습니다.

 

 

 

 

 

지금까지 배웠던 ALU와 더불어 명령어가 어떻게 수행되는지는 위의 회로를 살펴보면서 하나씩 따져보면

금방 왜 회로가 이렇게 구성되었는지 이해하실 수 있으실 거에요.

 

 

 

 

지금까지 짧지만 간략한 CPU의 기본 역할과 성능에 대해서 살펴봤는데요, 아직 추가적으로 확인해봐야 할 것들이 많아서,

추후에 총 정리 형식으로 올려보도록 하겠습니다.

 

 

 

 

 

글 읽어주셔서 감사합니다.

 

 

 

 

반응형