[컴퓨터 구조] 컴퓨터의 CPU 기본 구조

MyungHwan Kim·2022년 9월 27일
1

컴퓨터구조

목록 보기
10/12
post-thumbnail

01. CPU 기본 구조

  • CPU에는 레지스터(Register)라는 저장공간이 있음
  • 역할: 빠른 실행을 위해
  • PC(Program Counter): 다음 실행할 명령어 주소를 가리키는 레지스터
  • IR(Instruction Register): 가장 최근에 인출한 명령어 보관 레지스터
  • 누산기(ACC, Accumulator): 데이터 일시 보관 레지스터
  • MAR(Memory Address Register): CPU가 메모리 참조를 위해 보관하는 데이터 주소를 가진 레지스터
  • MBR(Memort Buffer Register): CPU가 메모리로부터 읽거나, 저장할 데이터 자체를 보관하는 레지스터

02. CPU 기본 실행 구조(4가지)

1. Instruction Fetch

  • 실행할 명령어를 메모리에서 읽어 CPU로 가져온다.
    • PC가 가리키는 주소 → MAR
    • MAR에 적힌 주소를 메모리(Memory)에서 읽어 → MBR
    • MBR에 있는 명령어 → IR 저장
    • 다음 명령어를 가리키도록 PC 주소값 증가

2. Instruction Decode

  • IR에 저장된 인출한 명령어를 해석을 해서 해당 명령어에 포함된 데이터를 가져오고 이 명령어(ex.10h)를 해독하는 과정
  • 여기서 "인출한 명령어에 포함된 데이터를 가져온다" 를 CPU 명령어 구조로 파악하자면,
    • 실제로 메모리에는 명령어 메모리, 주소 메모리를 따로 가지고 있지는 않다. 그냥 하나의 메모리에 명령어와 필요한 주소 데이터, 즉 인자(Argument)를 작성 해놓는다. (= 기본적으로 하나의 명령은 opcode + argument(operand)) 구조이다.
    • 그러면 실제로 이 부분은 아래 빨간 네모 박스처럼 RAM(메모리)에 저장되어 있다.
    • 위 그림에서 LOD A라는 명렁과 01h라는 주소가 00111110(OpCode)와 00000001(Operand, argument)처럼 2진수로 표현될 것이다.
    • 이것을 16진수로 표현하면 3E, 01로 표현되며, RAM에 순차적으로 저장되어 있다.

3. Instruction Execution : 명령어 실행

  • MBR의 데이터와 ACC(Accumulator)의 데이터로 연산 후, ACC(Accumulator)에 저장

4. Write Back : 실행 결과를 저장

profile
Back-end 개발자가 되기 위한 개발 노트(Java)

0개의 댓글