본문 바로가기
운영체제

[컴퓨터 구조] CPU 작동 원리1 : ALU

by 송파감자 2024. 8. 6.

CPU 안에는 다양한 레지스터가 있당

 

1. ALU와 제어 장치


1.1. ALU (산술논리연산장치)

ALU는 연산한 결과값과 플래그를 내보냄

ALU는

  • 레지스터에게 피연산자를 받음
  • 제어장치에게 제어신호(수행할 연산)를 받음

연산 수행 결과는 숫자 or 문자 or 메모리 주소

이 결과 값은 메모리 저장 전 일시적으로 레지스터에 저장됨

 

CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도 보다 훨 느림

ALU가 연산 시 마다 결과를 메모리에 저장한다면?

-> CPU는 메모리에 자주 접근하게 되고, 프로그램 실행 속도도 늦추게 됨.

--> 즉, ALU의 결과 값을 레지스터에 우선 저장함


 

ALU가 내보내는 것

  • 결과 값( to 레지스터)
  • 플래그 (to 플래그 레지스터)

이진수로는 음수인지 양수인지 확인X

-> 구분 위해 플래그 사용

연산 결과 너무 크면 결과 값 너무 크다고도 알려줌

->ALU 연산 결과가 연산 결과를 담는 레지스터 보다 큰 상황 == Overflow


대표적인 플래그

  • 부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그, 슈퍼바이저 플래그
  • 참고로 부호 플래그가 0이면 양수, 1이면 음수

1.2. 제어장치

제어장치는 제어 신호 보내고, 명령어 해석하는 부품임

제어신호는 컴 부품 관리하고, 작동시키는 전기 신호

제어장치가 받는 정보 : 클럭 신호 받기-> 해석할 명령어 받기 -> 플래그 값 받기 -> 제어신호 받기

 

 

클럭Clock?

  • 컴퓨터의 모든 부품이 움직일 수 있게 하는 시간 단위임
  • 컴퓨터의 부품들이 클럭 마다 작동하는 것은 아님
  • 클럭 주기가 다를 수 있음

 

해석할 명령어?

  • CPU가 해석할 명령어는 명령어 레지스터 에 저장됨
  • 제어장치는 명령어 레지스터에게 해석할 명령어 받고 해석 후 제어 신호 발생 (컴퓨터 부품 수행할 내용 알려주기 위해)

 

플래그 레지스터 속 플래그 값 받기?

  • 플래그는 ALU 연산에 대한 추가적인 상태 정보임
  • 제어장치는 이 플래그 값 받아서 참고해서 제어 신호 발생시킴

 

시스템 버스 중 하나인 제어 버스로 전달 받은 제어 신호를 받는다구?

  • 제어 신호는 CPU뿐 아니라 CPU 외부 장치도 발생시킬 수 있음
  • 제어장치는 CPU 내 외부로 제어신호를 보냄