Computer Science/CS 컴퓨터구조

CPU 중앙처리장치란?

LKBaekjoon 2023. 11. 8. 12:45
반응형

 "혼자 공부하는 컴퓨터구조와 운영체제" 책을 정독 후 정리한 지식들을 공유하고자 글을 쓴다.

 

아래는  북링크이다.

[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제 (hanbit.co.kr)

 

[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제

좋은 개발자는 컴퓨터를 분석의 대상으로 바라볼 뿐, 두려워하지 않는다!‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접

hongong.hanbit.co.kr

 

우선 컴퓨터 시스템은 다음과 같이 크게 두 가지로 나뉜다.

  • 하드웨어 : 컴퓨터를 구성하는 기계적 장치
  • 소프트웨어 : 하드웨어의 동작을 지시하고 제어하는 명령어의 집합

하드웨어

  • 중앙처리장치 (CPU), 입출력장치, 기억장치로 이루어져 있다.
  • 이들은 시스템 버스로 연결되어 있으며, 시스템 버스는 데이터와 명령 제어 신호를 각 장치로 실어나르는 역할을 한다.

CPU

  • 프로그램 명령어와 데이터를 주기억장치에서 읽어와 처리하고, 명령어의 수행 순서를 제어한다.
  • 소형 컴퓨터에서는 CPU를 마이크로프로세서라고 부른다.
  • ALU : 비교 / 연산을 수행
  • 제어장치 : 명령어의 해석 / 실행 담당
  • 레지스터 : 속도가 빠른 데이터 기억장소

기억장치

  • 프로그램, 데이터, 연산의 중간 결과를 저장하는 장치

시스템 버스

  • 하드웨어 구성 요소를 물리적으로 연결하는 선을 의미한다.
  • 데이터 버스 : CPU와 기타 장치들 사이에서 데이터를 전달하는 통로
  • 주소 버스 : CPU가 주기억장치나 입출력장치로 기억장치 주소를 전달하는 통로
  • 제어 버스 : 주소 버스와 데이터 버스는 모든 장치에 공유되기 때문에 이를 제어할 수단이 필요하다.
    • CPU가 기억장치나 입출력장치에 제어 신호를 전달하는 통로
    • 종류 : 기억장치 읽기 및 쓰기, 버스 요청 및 승인, 인터럽트 요청 및 승인, 클락, 리셋
    • 읽기 동작과 쓰기 동작을 모두 수행하기 때문에 "양방향" 버스이다.
  • 컴퓨터는 기본적으로 읽고 처리한 뒤 저장하는 과정으로 이루어진다.
    • 이 과정에서 끊임없이 RAM과 소통한다.

연산 장치 (ALU)

  • 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보낸다.

제어 장치

  • 명령어를 순서대로 실행할 수 있도록 제어하는 장치
  • 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보낸다.
  • 장치가 보낸 신호를 받아서 다음에 수행할 동작을 결정한다.

레지스터

  • 고속 기억장치 / 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장
  • CPU 종류에 따라 사용할 수 있는 레지스터 갯수나 크기가 다르다.
    • 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장한다.
    • 특수목적 레지스터 : 특별한 용도로 사용하는 레지스터
      • MAR (메모리 주소 레지스터) : 읽기 / 쓰기 연산을 수행할 주기억장치 주소 저장
      • PC (프로그램 카운터) : 다음에 수행할 명령어 주소 저장
      • IR (명령어 레지스터) : 현재 실행중인 명령어 저장
      • MBR (메모리 버퍼 레지스터) : 주기억장치에서 읽어온 데이터 / 저장할 데이터를 임시 저장
      • AC (누산기) : 연산 결과를 임시 저장

 CPU의 동작과정

  1. 주기억장치입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다.
  2. CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어나 데이터를 읽어와 처리하고, 결과를 다시 주기억장치에 저장한다.
  3. 주기억장치처리 결과를 보조기억장치에 저장하거나 출력장치로 보낸다.
  4. 제어장치는 1~3번 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어한다.

명령어 세트

  • CPU가 실행할 명령어 집합을 말한다. (연산코드 + 피연산자로 구성)
  • 연산 코드 : 연산, 제어, 데이터 전달, 입출력 기능을 가진다.
  • 피연산자 : 주소, 숫자/문자, 논리 데이터 등을 저장한다.

CPU가 주기억장치에서 한 번에 하나의 명령어를 인출하여 실행하는데 필요한 일련의 활동  -> "명령어 사이클"

  • 명령어 사이클은 인출 / 실행 / 간접 / 인터럽트 사이클로 나누어진다.
  • 주기억장치의 지정된 주소에서 하나의 명령어를 가져오고, 실행 사이클에서 명령어를 실행한다.
  • 하나의 명령어 실행이 완료되면, 그 다음 명령어에 대한 인출 사이클이 시작된다.
  • 인출 사이클실행 사이클에 의한 명령어 처리 과정
    • 인출 사이클에서 가장 중요한 부분은 PC (프로그램 카운터) 값 증가
      • PC에 저장된 주소를 MAR로 전달
      • 저장된 걸 토대로 주기억장치의 해당 주소에서 명령어 인출
      • 그걸 MBR에 저장
      • 다음 명령어 인출하기 위해 PC값 증가
      • MBR에 저장된 내용을 IR에 전달
반응형