CS 기초학습(10) - CPU가 일하는 방법

김진아·2024년 8월 6일

CS

목록 보기
9/15
post-thumbnail

movie


  • 주기억장치에 담겨있는 데이터와 명령어를 임의 접근*을 통해 CPU가 필요한 순간마다 정보를 가져다 연산한다.

CPU의 레지스터


  • CPU 내에서 데이터를 임시로 저장하고 처리하는 작은 메모리 공간
  • CPU의 성능을 결정하는 중요한 요소 중 하나

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

  • 다음 명령어의 주소를 저장

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

  • 현재 실행 중인 명령어를 저장

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

  • 메모리 주소를 저장

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

  • 연산에 필요한 데이터를 저장

어큐뮬레이터(Accumulator, ACC)

  • 주로 산술 연산과 논리 연산의 결과를 저장
  • ALU(산술 논리 장치)와 함께 작동


레지스터들 간의 처리과정


예시를 통해 알아보자

1. 1st 명령어 - LOAD 10 실행

1) 처음 실행될 명령어 주소가 PC에 저장

2) (첫번째 명령어 LOAD 10실행 시작)PC에 담겨있는 명령어 주소가 MAR에 복사

3) MAR에 담겨있는 명령어 주소에 맞는 명령어 데이터를 MDR에 저장

4) MDR에 저장된 명령어 데이터를 IR에 복사

5) 현재 실행될 명령어 데이터가 IR에 저장되자마자 PC는 다음 실행 명령어 주소를 가져와 저장

6) IR에 저장된 명령어 데이터가 제어 장치로 복사

7) 제어 장치가 명령어 데이터를 해석 후 필요한 데이터가 있는 주소를 MAR에 복사

8) MAR에 있는 데이터 주소에 맞는 데이터를 MDR에 복사

9) 명령어를 실행한 결과(LOAD 10), 즉 MDR에 있는 데이터를 어큐뮬레이터에 저장

2. 2nd 명령어 - ADD 11 실행

10~14) 2~6) 동일 진행





15) ADD 명령어를 실행하기 위해 기존 데이터(어큐뮬레이터에 있는)를 ALU로 복사

16~18) 7~9) 동일 반복



19) ADD 명령어 실행: ALU에서 기존 데이터와 새로 가져온 데이터를 더함

20) ADD 명령어 결과 어큐뮬레이터에 저장



notice

※ 실행되는 명령어에 따라 레지스터들 간의 상호작용 순서가 매번 달라질 수 있다.




*참고)

profile
https://develop-chick.tistory.com/ 첫번째 블로그

0개의 댓글