CPU의 구성요소

김명재·2023년 3월 24일
0
post-custom-banner

우선 CPU에대해서 간단하게 설명하자면

CPU는 메모리에 저장 된 명령어를 읽어들이고 해석하고 실행해주는 장치이다.

CPU의 구성요소

CPU는

  • CPU내부에서 계산을 담당하는 ALU(산술논리연산장치)

  • CPU내부에 임시저장장치인 레지스터

  • 명령어를 읽어들이고 해석하는 제어장치

-데이터드리

이렇게 3가지의 요소로 구성되어있다.

📺 ALU(산술논리연산장치)

ALU는 CPU내부에서 계산을 담당하는 부품이라고 했다.

우선 계산을 하려면 수행할 연산과 계산당할 피연산자가 필요하다.

피연산자는 레지스터로부터 얻고 수행할 연산은 제어장치로부터 어떤 연산을 해! 라는 제어신호를 받는다.

그리고 계산한 결과값은 보통 바로 메모리로 보내지 않고 일시적으로 레지스터에 저장이 된다.(만약 결과값이 나올때마다 메모리에 접근해서 값을 저장한다면 프로그램 실행속도가 매우 줄어들 것이다.)

그리고 계산을 하면서 나오는 부가적인 정보들을 플래그라고 하는데 ALU에서 계산을 하다보면 플래그가 발생할 수 있다. 플래그들은 플래그레지스터에 저장한다.

📺 제어장치

제어장치는 명령어를 읽어들이고 해석하고컴퓨터 부품들을 관리하고 작동시키기 위한 제어신호를 내보내고 받아들인다.

그럼 이제 제어장치는 어떤 신호를 받아들이는지 알아보자

  • 클러신호를 받아들인다
    (클럭은 컴퓨터 부품들이 수행하는 시간 단위이다. 예를 들면 클럭이라는 주기에 맞춰 CPU가 메모리에 저장된 명령어를 읽고, ALU연산이 수행되는등 모든 동작이 클럭이라는 주기에서 발생한다.)

  • 플래그 레지스터 속 플래그 값을 받아들인다.

    제어장치가 제어신호를 내보낼 때 플래그에 참고해야하는 정보가 있을 수 있기 때문에

  • 해석해야 할 명령어를 받아들인다.

    제어장치는 기본적으로 명령어를 읽고 해석한다고 하였다. 명령어를 해석할려면 우선 해석할 명령어를 받아들여야 한다.


  • 시스템버스 중 제어 버스로 전달되는 제어 신호를 받아들인다.

    제어신호는 제어장치 뿐만 아니라 입출력장치를 비롯한 CPU외부 장치들도 보낼 수 있다. 이러한 신호를 제어 장치가 받아들인다.


지금까지 제어장치가 어떤 정보를 받아들이는지 알아보았는데 이번에는 제어장치가 어떤 신호를 내보내는지 알아보겠다.


우선 크게 2가지 신호로 나뉜다.

  • CPU내부에 보내는 제어 신호

    • ALU에 전달하는 제어 신호
      ALU에는 수행할 연산을 지시하기 위해

    • 레지스터에 전달하는 제어 신호
      레지스터간에 데이터 이동을 시키거나 레지스터에 있는 명령어를 읽기 위해


  • CPU외부에 보내는 제어 신호

    • 메모리에 전달하는 제어 신호
      제어장치가 메모리에 저장된 값을 읽거나 메모리에 새로운 값을 쓰기 위해

    • 입출력장치에 전달하는 제어 신호
      입출력장치의 값을 읽기 위해

📺 레지스터

프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장 되기 때문이 레지스터에 들어오고 나가는 명령어와 데이터들만 잘 관찰해도 프로그램의 자세한 실행과정을 알 수 있다.

  • 프로그램 카운터(PC)
    메모리에서 읽어 들일 명령어나 데이터의 주소를 저장한다.

  • 메모리 주소 레지스터(MAR)
    메모리의 주소를 저장하는 레지스터이다. 이게 약간 헷갈릴 수 있는데
    보통 프로그램 카운터에 저장 되어있는 주소값에 저장되어있는 데이터나 명령어를 읽기 위해 주소 버스로 주소값을 내보내야 한다. 이를 위해 메모리 주소 레지스터에 주소값이 저장된다.

  • 메모리 버퍼 레지스터(MBR)
    메모리에 쓰고 싶은 값이나 메모리보부터 전달받은 값은 메모리 버퍼 레지스터에 저장된다.

  • 명령어 레지스터(IR)
    메모리 버퍼 레지스터에 저장된 값인 명령어가 명령어 레지스터로 이동하여 저장된다. 제어장치는 명령어 레지스터에게 제어 신호를 보내어 명령어를 읽어들인다.

  • 범용 레지스터
    범용이라는 단어가 들어간 그대로 다양한 값들을 저장 할 수 있는 레지스터이다. 메모리 버퍼 레지스터는 데이터값만 메모리 주소 레지스터는 주소값만 저장하지만 범용 레지스터는 데이터와 주소를 모두 저장할 수 있는 특징을 가지고 있다.

  • 플래그 레지스터
    연산 결과에 대한 부가 정보인 플래그 또는 CPU 상태에 대한 부가적인 정보를 저장하는 레지스터

출처:혼자 공부하는 컴퓨터구조+운영체제

profile
steadyness is all time way
post-custom-banner

0개의 댓글