CPU는 어떻게 동작할까?

Ariul·2023년 5월 11일
0

KEYWORD 뽑아먹기🥢

목록 보기
4/4
post-thumbnail
post-custom-banner

CPU(중앙 처리 장치)란?

  • Central Processing Unit
  • 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행·처리하는 가장 핵심적인 컴퓨터의 제어 장치, 혹은 그 기능을 내장한 칩
  • 역할
    • 기계어로 쓰인 컴퓨터 프로그램의 명령어를 해석하여 실행한다.
    • CPU는 프로그램에 따라 외부에서 정보를 입력받아,이를 기억하고, 연산하며, 결과를 외부로 출력한다.

CPU의 구성

1. 레지스터(Register)

  • CPU 내부에서 데이터를 일시적으로 저장하는 장치로, 속도가 가장 빠른 메모리이다
  • 레지스터 종류
    • 프로그램 카운터(PC): 다음번에 수행할 메모리의 주소가 들어있다
    • 메모리 주소 레지스터(MAR): 프로그램 카운터에서 수행할 주소를 넘겨 받은 다음에 그 주소를 찾아가 데이터를 가져오는 역할을 한다
    • 메모리 버퍼 레지스터(MBR): 메모리 주소 레지스터가 가져온 데이터나 명령들을 일시적으로 저장한다
      • 메모리 버퍼 레지스터에 저장된 내용 중 명령은 명령어 레지스터로 이동한다.
      • 메모리 버퍼 레지스터에 저장된 내용 중 연산에 사용될 데이터는 누산기 레지스터로 이동한다.
    • 명령어 레지스터(IR): 명령에 관한 데이터가 저장된다.
    • 누산기 레지스터(AC): 연산의 결과 값이나 중간 값을 일시적으로 저장한다. 최종 결과는 메모리 버퍼 레지스터를 통해 메모리로 전송된다.

2. 제어장치(Control Unit)

  • 명령어 레지스터에 있는 명령어를 받아 해석하고, 해석된 명령을 각 시스템이 수행하도록 지시한다.

3. 산술 논리 장치(Arithmetic Logic Unit, ALU)

  • 산술 논리 연산을 실행한다
    • 산술: 더하기 빼기 등 산수를 계산한다
    • 논리 연산 : AND나 OR 같은 논리를 연산한다
  • 논리게이트를 이용해서 산술 논리 장치(ALU)를 만든다

논리게이트(AND, OR, XOR, NOT)

In AIn BANDORXORNOT A
0 (Off)00001
1 (On)00110
010111
111100

CPU의 연산

명령어 사이클 : 인출 → 해석 → 실행 → (메모리) → 저장

Fetch(인출)

  • 프로그램 카운터(PC)에 저장된 주소를 메모리 주소 레지스터(MAR)로 전달한다.
  • 메모리 주소 레지스터(MAR)에 저장된 주소를 찾아서 명령어를 인출한다.
  • 인출한 명령어를 메모리 버퍼 레지스터(MBR)에 저장한다.
  • 다음 명령어를 인출하기 위해 프로그램 카운터(PC)의 값을 증가시킨다.
  • 메모리 버퍼 레지스터(MBR)에 저장된 내용을 명령어 레지스터(IR)에 전달한다.

Decode(해석)

  • 명령어 레지스터(IR)에 있는 명령어는 제어장치로 이동되어 해석된다.
  • 명령어를 해석하여 명령어 내의 데이터 정보와 연산 정보를 추출한 뒤, CPU 내의 각 장치에 적절한 제어 신호를 보내 연산, 처리에 대한 준비를 한다.

Execute(실행)

  • 명령어에서 추출한 두 데이터와 연산 정보를 이용해 실제로 연산을 실행한다.
  • 명령어 레지스터(IR)의 내용을 메모리 주소 레지스터(MAR)로 전달한다.
  • 메모리에 저장된 데이터 값을 메모리 버퍼 레지스터(MBR)에 저장한다.
  • 누산기(AC)에 저장된 값에 연산을 실행한다.

Memory(메모리)

  • 실행 단계의 연산 결과가 다음 명령어에 바로 사용되지 않는다면, 결과를 메모리에 저장한다.

Write Back(저장)

  • 실행 단계의 연산 결과가 다음 명령어의 입력 데이터로 사용될 경우, 계산 결과를 레지스터에 다시 저장한다.

Q&A

Q. CPU는 어떻게 작동하나요?

Q. 함수 호출과 연관하여 레지스터에 대해 자세히 설명해 주세요.

Q. 32bit cpu와 64bit cpu는 어떤 차이가 있나요?

  • RAM

Q. 32bit와 64bit 호환되지 않을 때

Q. CPU 스케줄링에 대해 설명해 주세요.


Reference

profile
정성과 진심을 담아 흔적을 기록하자💡
post-custom-banner

0개의 댓글