CPU가 일하는 방법

알비레오·2024년 8월 6일

컴퓨터 여러가지

목록 보기
1/21

movie

EX) 1 + 2 = 3 연산수행

각종 레지스터 및 제어장치의 역할

1. 프로그램 카운터(Program Counter PC)

  • 역할 : 현재 실행할 명령어의 메모리 주소를 저장한다
  • 작동 : 프로그램이 실행되면서 명령어 주소를 가리키며, 명령어를 하나씩 읽어들인다. 예를 들어 처음에 프로그램 카운터는 명령어 1의 주소를 가리키고, 명령어를 실행한 후에는 다음 명령어의 주소를 증가한다.

2. 메모리 주소 레지스터(Memory Address Register, MAR)

  • 역할 : 메모리에서 데이터를 읽거나 쓸 때의 주소를 저장한다
  • 작동 : 프로그램 카운터가 가리키는 주소가 MAR에 저장되어, 해당 주소에서 명령어를 읽어들이거나 결과를 저장한다.

3. 메모리 데이터 레지스터(Memory Data Register, MDR)

  • 역할 : 메모리에서 읽어온 데이터나 메모리에 쓸 데이터를 임시로 저장한다.
  • 작동 : MAR에 저장된 주소에서 메모리로부터 데이터를 읽어 MDR에 저장하거나, MDR의 데이터를 메모리에 기록한다.

4. 명령어 레지스터(Instruction Register, IR)

  • 역할 : 현재 실행 중인 명령어를 저장한다
  • 작동 : 프로그램 카운터가 가리키는 주소에서 명령어를 읽어와 IR에 저장하고, 이 명령어를 해석하고 실행하는 데 사용된다.

5. 제어장치(Control Unit, CU)

  • 역할 : 명령어를 해석하고, CPU의 다른 구성요소들에게 명령을 내리는 역할을 한다.
  • 작동 : IR에 저장된 명령어를 해석하고, 이를 실행하기 위해 ALU나 다른 장치에 신호를 보낸다. 제어장치는 전체 컴퓨터 시스템의 동작을 조율한다.

6. 어큐뮬레이터(Accumulator, ACC)

  • 역할 : 연산 결과를 저장하는 임시 저장소
  • 작동 : ALU가 수행한 연산 결과를 저장한다. 예를 들어 1 + 2의 결과인 3이 계산되면 이 결과는 어큐뮬레이터에 저장된다.

7. ALU(Arithmetic Logic Unit)

  • 역할 : 산술 및 논리 연산을 수행하는 장치
  • 작동 : 두 개의 입력값을 받아서 덧셈, 뺄셈, 곱셈 등의 연산을 수행한다. 예를 들어, ALU는 1+2 연산을 수행하고 결과인 3을 어큐뮬레이터에 저장한다.

연산 수행 과정

1. 명령어 가져오기

  • 프로그램 카운터(PC)가 첫 번째 명령어의 주소를 MAR에 저장한다.
  • 메모리에서 명령어를 읽어 MDR에 저장한다
  • MDR의 내용을 명령어 레지스터(IR)에 저장한다
  • 프로그램 카운터는 다음 명령어의 주소로 증가한다.

2. 명령어 해석

  • 제어장치가 IR의 명령어를 해석하고, ALU에게 필요한 작업을 지시한다.

3. 연산 수행

  • ALU는 두 개의 피연산자 1과 2를 받아서 덧셈 연산을 수행한다
  • 연산 결과인 3을 어큐뮬레이터(ACC)에 저장한다

4. 결과 저장

  • 결과가 필요한 경우, 어큐뮬레이터의 내용을 메모리나 다른 레지스터에 저장할 수 있다.

0개의 댓글