Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

문타쿠, 공부하다.

[혼공컴운] Chapter 04. CPU의 작동 원리 본문

컴퓨터 구조/혼자 공부하는 컴퓨터 구조+ 운영체제

[혼공컴운] Chapter 04. CPU의 작동 원리

개발새발 문타쿠 2023. 8. 24. 19:55

04-1. ALU와 제어장치

  • CPU: 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 장치
    • ALU: 계산 담당
    • 제어장치: 명령을 읽어 들이고 해석
    • 레지스터: 작은 임시 저장 장치

"ALU"

계산을 담당하는 ALU는 어떤 정보를 받아들이고 계산하여 내보낼까?

<ALU가 받아들이는 정보>

  • 레지스터를 통해 1) 피연산자를 받아들이고,
  • 제어장치로부터 수행할 연산을 알려주는 2) 제어 신호를 받아들인다.
  • ALU는 레지스터와 제어장치로부터 받아들인 피연산자와 제어 신호로 산술 연산, 논리 연산 등 다양한 연산을 수행한다.

<ALU가 내보내는 정보>

1) 연산을 수행한 결과값

  • 특정 숫자나 문자가 될 수도 있고, 메모리 주소가 될 수도 있다.
  • 결과 값은 메모리에 저장되지 않고 일시적으로 레지스터에 저장된다.
    • CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 느리다.
    • ALU가 연산할 때마다 결과 값을 메모리에 저장한다면 CPU는 메모리에 자주 접근하게 되고, 이는 CPU가 프로그램의 실행 속도를 늦출 수 있기 때문에, ALU의 결과값은 메모리가 아닌 레지스터에 우선 저장하는 것이다.

2) 플래그

  • 연산 결과에 대한 추가적인 상태 정보
  • CPU가 프로그램을 실행하는 도중 반드시 기억해야 하는 일종의 참고 정보
    • 부호 플래그(연산 결과의 부호), 제로 플래그(연산 결과가 0인지), 캐리 플래그(연산 결과 올림수나 빌림수가 발생했는지), 오버플로우 플래그(오버플로우가 발생했는지), 인터럽트 플래그(인터럽트가 가능한지), 슈퍼바이저 플래그(커널 모드인지 사용자 모드인지) 등등
  • 플래그는 '플래그 레지스터'라는 플래그의 값들을 저장하는 레지스터에 저장된다.

"제어 장치"

제어장치

  • 제어 신호를 내보내고, 명령어를 해석하는 부품

제어 신호

  • 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호

<제어장치가 받아들이는 정보>

1) 클럭 신호

  • 클럭이란? 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위로, 클럭의 주기에 맞춰 한 레지스터에서 다른 레지스터로 이동되거나, ALU에서 연산이 수행되거나, CPU가 메모리에 저장된 명령어를 읽어 들이거나 한다.

2) (명령어 레지스터 속) 해석해야 할 명령어

  • CPU가 해석해야 할 명령어는 '명령어 레지스터'라는 레지스터에 저장된다.
  • 제어장치는 명령어 레지스터로부터 해석할 명령어를 받아들이고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에게 수행해야 할 내용을 알려준다.

3) (플래그 레지스터 속) 플래그 값

  • 플래그란? ALU 연산에 대한 추가적인 상태 정보
  • 제어장치는 플래그 값을 받아들이고 이를 참고하여 제어 신호를 발생 시킨다.

4) 시스템 버스 중 제어 버스로 전달된 제어 신호

  • 제어 신호는 CPU뿐만 아니라 입출력장치를 비롯한 CPU 외부 장치도 발생시킬 수 있다.
  • 제어장치는 제어 버스를 통해 외부로부터 전달된 제어 신호를 받아들이기도 한다.

<제어장치가 내보내는 정보>

1) CPU 외부에 전달하는 제어 신호(=제어 버스로 보내는 제어 신호)

  • 메모리에 전달하는 제어 신호
    • 제어장치가 메모리에 저장된 값을 읽거나 메모리에 새로운 값을 쓰고 싶다면 메모리로 제어 신호를 내보낸다,
  • 입출력장치(보조기억장치)에 전달하는 제어 신호
    • 제어장치가 입출력장치의 값을 읽거나 입출력 장치에 새로운 값을 쓰고 싶을 때는 입출력장치로 제어 신호를 내보낸다.

2) CPU 내부에 전달하는 제어 신호

  • ALU에 전달하는 제어 신호
    • 수행할 연산을 지시하기 위해
  • 레지스터에 전달하는 제어 신호
    • 레지스터 간에 데이터를 이동시키거나 레지스터에 저장된 명령어를 해석하기 위해

04-2. 레지스터

투 비 컨티뉴... 였는데 방 정리하면서 책 실종...