중앙처리장치(CPU) 작동 원리

2022. 11. 24. 00:28·CS/Computer Architecture

[CPU 구성 요소]

CPU는 컴퓨터에서 가장 핵심적인 부분이다. 인간으로 따지면 '두뇌'에 해당된다.

크게 연산장치, 제어장치, 레지스터 3가지로 구성된다.

연산 장치 (ALU)

산술연산과 논리연산 수행한다.
연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터에 보낸다.

제어 장치 (CU)

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

또한 이들 장치가 보낸 신호를 받아, 다음에 수행할 동작을 결정한다.

레지스터

고속 기억장치로 CPU 내부 메모리이다. 

명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장한다. 

용도에 따라 범용 레지스터와 특수목적 레지스터로 구분된다.

(중앙처리장치 용도에 따라 사용 가능한 레지스터의 개수와 크기가 다름)

  • 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장한다.
  • 특수 레지스터 : 특별한 용도로 사용하는 레지스터

중요한 특수 레지스터

  • MAR(메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 Memory 주소 저장
  • MBR(메모리 버퍼 레지스터) : Memory 에서 읽어온 데이터 or 저장할 데이터 임시 저장
  • PC(프로그램 카운터) : 다음에 수행할 명령어 주소 저장
  • IR(명령어 레지스터) : 현재 실행 중인 명령어 저장
  • AC(누산기): 연산 결과 임시 저장

[CPU의 동작 과정]

1. Memory가 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다. 

2. CPU는 프로그램을 실행하기 위해 Memory에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 Memory에 저장한다.

3. Memory는 처리 결과를 보조기억장치에 저장하거나 출력장치에 보낸다.

4. CU는 1~3 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어한다. 

즉 CPU는 Memory로부터 명령어와 데이터를 읽어와 처리하고 다시 쓰는 작업을 계속 반복한다.

[명령어]

명령어 형식

명령어의 형식은 연산 코드와 피연산자로 이루어진다.

연산 코드 (Operation Code)
- CPU가 수행할 동작
- 연산, 제어, 데이터 전달, 입출력 기능을
피연산자 (Operand)
- CPU가 명령어를 수행할 대상
- 주소, 숫자/문자, 논리 데이터 등이 있다.

 

명령어 사이클

- CPU가 Memory에서 한 번에 하나의 명령어를 읽어와 처리하는데 필요한 일련의 활동을 말한다.

- 대표적으로 Fetch와 Execution으로 나누어짐.

 

1) 인출 단계 (Fetch Stage)

  • PC에 저장된 주소를 MAR로 전달
  • Memory에서 해당 주소의 명령어를 인출
  • 인출한 명령어를 MBR에 저장
  • 다음 명령어를 인출하기 위해 PC 값 증가
  • MBR에 저장된 내용을 명령어 레지스터(IR) 에 전달

2) 실행 단계 (Execution Stage) 

  • 명령어 레지스터(IR)에 저장된 명령어를 실행
  • 제어장치(CU)는 명령어를 해독하고 제어신호를 생성해 각 구성요소에 전달
  • 제어신호에 따라 ALU는 해당하는 연산을 수행
  • 각 신호와 데이터는 내부버스를 통해 전달
  • 연산에 필요한 데이터와 명령어는 레지스터에 전달

'CS > Computer Architecture' 카테고리의 다른 글

[프로그램과 컴파일 과정]  (0) 2023.01.11
[메모리 계층]  (0) 2023.01.09
컴퓨터의 구성  (0) 2022.11.22
'CS/Computer Architecture' 카테고리의 다른 글
  • [프로그램과 컴파일 과정]
  • [메모리 계층]
  • 컴퓨터의 구성
저스티
저스티
  • 저스티
    justy
    저스티
  • 전체
    오늘
    어제
    • 분류 전체보기 (20)
      • CS (14)
        • Computer Architecture (4)
        • Network (5)
        • OS (4)
        • Database (1)
      • TDD (4)
      • 생각 정리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ㅕㄴㅗ
    DDD
    유지보수성
    도메인주도설계
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
저스티
중앙처리장치(CPU) 작동 원리
상단으로

티스토리툴바