250x250
Notice
Recent Posts
Recent Comments
«   2024/10   »
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
Archives
Today
Total
관리 메뉴

SYDev

Chapter 04-1 : ALU와 제어장치 본문

Computer Architecture + Operating System/Computer Architecture

Chapter 04-1 : ALU와 제어장치

시데브 2023. 7. 23. 23:49
728x90

학습 목표

  • ALU와 제어장치가 어떤 정보를 내보내고 받아들이는지를 중심으로 두 장치의 역할을 학습

 

ALU

https://www.baeldung.com/cs/arithmetic-logic-unit

ALU가 받아들이는 정보

  • 피연산자 from 레지스터
  • 제어 신호 form 제어장치
  • 받아들인 제어 신호를 통해 피연산자로 산술 연산, 논리 연산 등을 수행

ALU가 내보내는 정보

  • 연산 결과 to 레지스터 -> ALU가 연산할 때마다 결과를 메모리에 저장하면 CPU가 메모리에 자주 접근하는데, 이는 레지스터에 접근하는 것보다 속도가 느리기 때문에 프로그램 속도가 느려짐 
  • 플래그 to 플래그 레지스터
  • 플래그: 연산 결과에 대한 추가적인 상태 정보

ALU가 내보내는 대표적인 플래그는 아래와 같다.

플래그 종류 의미 연산 결과
부호 플래그 연산한 결과의 부호를 나타낸다. 플래그가 1일 경우 음수, 0일 경우 양수
제로 플래그 연산 결과가 0인지 여부를 나타낸다. 플래그가 1일 경우 0, 0일 경우 1
캐리 플래그 연산 결과 올림수나 빌림수가 발생했는지를 나타낸다. 플래그가 1일 경우 발생, 0일 경우 발생X
오버플로우 플래그 오버플로우(연산 결과가 이를 담을 레지스터보다 큰 상황)가 발생했는지를 나타낸다. 플래그가 1일 경우 발생, 0일 경우 발생X
인터럽트 플래그 인터럽트가 가능한지를 나타낸다. 플래그가 1일 경우 가능, 0일 경우 불가능
슈퍼바이저 플래그 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지를 나타낸다. 플래그가 1일 경우 커널 모드, 0일 경우 사용자 모드로 실행중
  • 플래그 레지스터: 플래그 값들을 저장하는 레지스터. 연산 결과에 대한 추가적인 정보, 참고 정보를 얻을 수 있음
부호 플래그

0
제로 플래그

1
캐리 플래그

0
오버플로우
플래그
0
인터럽트
플래그
0
슈퍼바이저
플래그
0

=> 해당 레지스터를 읽음으로써 연산 결과는 0임을 알 수 있음.

 

제어장치

  • 제어장치: 제어 신호를 내보내고, 명령어를 해석하는 부품
  • 제어 신호: 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호

제어장치의 구조

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

  • 클럭 신호, 클럭: 컴퓨터의 모든 부품이 공유하여 작동하는 시간 단위

https://velog.io/@zenon8485/%EB%B9%84%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-CS-%EC%A7%80%EC%8B%9D-2.-CPU-%EC%9D%98-%EC%9E%91%EB%8F%99-%EC%9B%90%EB%A6%AC

  • 해석해야 할 명령어 from 명령어 레지스터
  • 플래그 from 플래그 레지스터
  • 제어 신호 from 제어 버스

제어장치가 내보내는 정보

  • CPU 내부에 전달하는 제어 신호 to 레지스터, ALU
  • CPU 외부에 전달하는 제어 신호 to 메모리, 입출력장치

  출처 : 강민철, <혼자 공부하는 컴퓨터구조 + 운영체제>, 한빛미디어(주), 2022.08.16

728x90