2. CPU의 구조와 기능(1)

2025. 3. 12. 17:30Computer Science/Computer Structure

반응형

Central Processing Unit

이 녀석이 없으면 컴퓨터는 그냥 깡통이나 다름이 없다.

다른 하드웨어에 대해서도 다룰때 결국 중요한건 CPU가 어떻게 다른 녀석들을 효율적으로 접근하고 관리할까에 대한 이야기이다. CPU가 대장인데 굳이 CPU의 체계와 동떨어지게 만들지는 않았을 것이니 말이다.

 

1. CPU의 기능

  • 명령어 인출 (Instruction Fetch) : 기억장치로 부터 명령어를 읽어온다.
  • 명령어 해독 (Instruction Decode) : 동작을 결정하기 위해 명령어를 해독한다.

이 두 기능은 모든 명령어에 대해서 공통적으로 수행된다.

  • 데이터 인출 (Data Fetch)
  • 데이터 처리 (Data Process)
  • 데이터 저장 (Data Store)  

명령어와 데이터를 따로 정리 했지만 사실 같다.

인출 - 해독 - 실행 의 과정으로 우리의 CPU는 동작한다.

 

2. CPU의 기본 구조

  • ALU ( Arithmetic Logic Unit ) : 각종 산술 연산들과 논리 연산을 수행하는 회로들의 하드웨어 모듈
  • 레지스터 : 액세스 속도가 가장 빠른 기억장치. CPU의 내부에 한정적으로 존재하며 종류도 다양하다,,,
  • 제어 유니트 : 명령어를 해석하고, 그것을 실행하기 위한 제어신호들을 순차적으로 발생하는 하드웨어 모듈
  • CPU 내부 버스 : ALU와 레지스터 간의 데이터 이동을 위한 선들과 제어 유니트로부터 발생되는 제어 신호로 구성
    CPU외부의 시스템 버스들과 직접적으로 연결되지 않고 반드시 버퍼 레지스터 혹은 인터페이스를 통해서 연결됨(문제방지)

3. 명령어 실행과 필요한 레지스터들

CPU들 작동하게 하는건 명령어이고 프로그램을 실행한 순간부터 전원이나 치명적 오류가 발생하여 중단될 때까지 반복된다.

명령어는 계속 반복된 과정을 거쳐서 실행되는데 이를 명령어 사이클이라고 한다. 세부적으로 두가지 정도로 분리되는데

인출 사이클실행 사이클로 나뉜다.

기억장치로 명령어를 읽어오고, 실행하는 사이클이다.

이제 명령어 실행에 관여하는 레지스터들에 대해서 보자.

  • PC (Program Counter) 
    다음에 인출할 명령어의 주소를 가지고 있는 레지스터이다. 각 명령어가 인출된 후에는 자동적으로 한 명령어의 크기만큼 증가하여 다음 명령어를 계속 가르킨다.
  • AC (Accumulator)
    데이터를 일시적으로 저장하는 레지스터로 CPU가 한번에 처리할 수 있는 데이터 비트수(word) 와 동일하다.
  • IR (Instruction Register)
    가장 최근에 인출된 명령어가 저장되는 레지스터이다.
  • MAR (Memory Address Register)
    PC에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전에 일시적으로 저장되는 주소 레지스터이다.
  • MBR (Memory Buffer Register)
    기억장치에 쓰여질, 기억장치로부터 읽혀진 데이터를 일시적으로 저장하는 버퍼 레지스터이다.

    MAR, MBR은 위에 설명처럼 CPU내부 버스와 시스템 버스가 직접 연결되지 않도록 구성되어 있다.

명령어 인출과 실행에 관련된 레지스터를 봤으니 이제 실제 과정을 살펴보자

사이클을 구성하는 각 과정을 마이크로 연산이라고 한다.

첫번째 주기 : 현재의 PC 내용을 CPU내부 버스를 통해 MAR로 전송

두번째 주기 : 그 주소가 지정하는 기억장치(M[MAR])로 부터 읽혀진 명령어가 데이터 버스를 통해 MBR로 적재,
PC+1을한다.

세번째 주기 : MBR에 있는 명령어 코드가 IR로 이동

 

참고

명령어 인출 사이클

'Computer Science > Computer Structure' 카테고리의 다른 글

1. 컴퓨터 시스템 개요  (0) 2025.03.10