본문 바로가기
CS/컴퓨터 구조

컴퓨터 구조 - CPU ( 코어 ) [혼공컴구]

by 블로블로글 2023. 11. 17.

1. CPU의 구조

  1-1. ALU

    - 계산을 담당

    - 동작 과정

      1. 레지스터를 통해 피연산자를 받아들임

      2. 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들임

      3. 레지스터와 제어장치로부터 받아 들인 피연산자와 제어 신호로 산술 연산, 논리 연산등을 수행

      4-1. 연산 결과는 바로 메모리에 저장하지 않고 일시적으로 레지스터에 저장

        - 연산 결과는 특정 숫자나 문자, 메모리 주소 등으로 표현됨

        - 연산 결과를 레지스터에 저장하는 이유는 메모리 접근 횟수를 줄여 속도를 향상 시키기 위함

      4-2. 플래그 레지스터를 내보냄

          - 음수 양수 구분 등 연간 결과에 대한 추가적인 정보를 담음

          - 연산을 실행한 직후 플래그를 합쳐 연산 결과를 확인함

 

 

 

 

 

 

 

 

 

  1-2. 제어장치

    - 제어장치는 제어 신호를 내보내고, 명령어를 해석

    - 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호

    - 작동 방식

      1. 클럭 신호를 받음

          - 클럭 : 컴퓨터의 시간 단위

          - 컴퓨터의 부품들은 클럭 신호에 맞춰 작동

      2. 해석해야할 명령어를 받음

          - 명령어 레지스터로부터 해석할 명령어를 받고 해석, 제어 신호를 발생

      3. 플래그 레지스터 속 플래그 값을 받음

          - 플래그 레지스터의 값을 참고해서 제어 신호 발생

      4. 제어 버스로 전달된 신호를 받음

          - 제어 버스를 통해 CPU 외부로 부터 전달된 신호를 받기도함

          4-1. 제어버스로 전달되는 신호 구분

            - 외부

              - 메모리, 입출력 장치에 전달하는 제어 신호

            - 내부

              - ALU, 레지스터에 전달하는 제어 신호

              - ALU에는 수행할 연산을 지시

              - 레지스터에는 레지스터 간에 데이터를 이동시키거나 레지스터에 저장된 명령어를 해석하기 위한 제어 신호를 보냄

 

  1-3. 레지스터

    - 대표적인 레지스터

      - 프로그램 카운터 (PC)

        - 메모리에서 읽어 들일 명령어의 주소 저장

 

      - 명령어 레지스터 (IR)

        - 메모리에서 읽어 들인 명령어를 저장

        - 제어 장치가 이를 받아들이고 이를 해석한 뒤 제어신호 발생

 

      - 메모리 주소 레지스터 (MAR)

        - 메모리의 주소를 저장

        - CPU가 읽어들이고자 하는 주소를 주소 버스에 내보낼 때 사용

 

      - 메모리 버퍼 레지스터 (MBR)

        - 메모리와 주고받을 값을 저장하는 레지스터

        - 메모리에 쓰고 싶은 값이나, 전달 받은 값이 거치는 레지스터

        - 사용 이유

          - CPU가 메모리에서 직접 값을 읽으면 CPU와 메모리의 처리 속도 차이 때문에 CPU가 대기상태로 들어감

          - 메모리 버퍼 레지스터를 통해, CPU는 메모리에 직접 접근하지 않고 MBR에 데이터를 읽거나 씀으로써 이러한 대기시간을 줄임

          - 캐시 메모리와 다른 점

            - MBR은 CPU 내부에서 CPU와 메모리 사이의 데이터 전송을 임시로 저장하고 관리

            - 캐시 메모리는 CPU와 메인 메모리 사이에 위치하여 CPU가 자주 사용하는 데이터를 빠르게 접근하고 재사용할 수 있도록 보관

      - 범용 레지스터

        - 다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터

        - 데이터와 주소 모두 저장 가능

        - 일반적으로 현대 대다수 CPU는 모두 범용 레지스터를 여러개 가지고 있음

 

      - 플래그 레지스터

        - 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장

 

      - 스택 포인터

        - 스택 주소 지정 방식에 사용

        - 스택의 꼭대기를 가리키는 레지스터

 

      - 베이스 레지스터

        - 베이스 레지스터 주소 지정 방식에 사용

        - 베이스 레지스터 주소 지정 방식의 기준 주소를 저장함.