본문 바로가기
책/혼공 컴퓨터구조+운영체제

컴퓨터 구조 - ALU,플래그,제어장치

by 코딩하는 돼징 2023. 11. 18.
반응형

 

 

ALU

01 받아들이는 정보

레즈스터로부터 피연산자를 받아들여 데이터를 일시적으로 저장하고 제어장치로부터 제어 신호를 받아들이면서 어떤 종류의 연산을 수행할지에 대한 정보를 담는다. 그리고 그 결괏값을 레지스터에 보낸다. 결괏값은 숫자가 될 수도 있고 문자가 될 수도 있고 주소가 될 수도 있다.

 

 

 

02 내보내는 정보

CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 훨씬 느립니다. ALU가 연산할 때 마다 결과를 메모리에 저장한다면 당연하게도 CPU는 메모리에 자주 접하게 되고 이는 CPU프로그램 실행 속도를 늦출 수 있다. 그래서 ALU의 결괏값을 메모리가 아닌 레지스터에 우선 저장하는 것이다.


플래그

연산 결과에 대한 부가 정보이다. 이렇게 내보내진 정보는 플래그 레지스터라고 하는 특수한 레지스터에 저장된다.

 

이진수를 음수로 표현하는 방법 중에서 이렇게 똑같이 생긴 양수랑 음수가 똑같이 생겼는데 이를 어떻게 구분할까?

 

더 다양한 플래그를 알아보자

01 부호 플래그

연산한 결과의 부호를 나타낸다. 1일 경우 계산 결과는 음수이고 0이면 양수이다.

02 제로 플래그

연산 결과가 0인지 여부를 나타낸다. 1일 경우 연산 결과는 0이고 0일 경우 0이 아니다.

03 캐리 플래그

연산 결과 올림수나 발림수가 발생했는지를 나타낸다. 1일 경우 올림수나 발림수가 발생했음을 의미하고 0일 경우 발생하지 않았음을 의미한다.

04 오버플로우 플래그

오버플로우가 발생했음을 나타낸다. 1일 경우 오버플로우가 발생하였고 0일 경우 발생하지 않았음을 의미한다.

05 인터럽트 플래그

인터럽트가 가능한지를 나타낸다. 1일 경우 인터럽트가 가능함을 의미하고 0일 경우 불가능함을 의미한다.

06 슈퍼바이저 플래그

CPU가 커널 모드로 실행 중인지 사용자 모드로 실행중인지를 나타낸다. 슈퍼바이저 플래그가 1일 경우 커널 모드로 실행 중임을 의미하고 0일 경우 사용자 모드로 실행 중임을 의미한다.


플래그 레지스터

아래 예시 같은 경우 ALU가 연산을 수행한 직후 부호플래그가 1이므로 연산 결과가 음수임을 알 수 있다.

이 밖에도 ALU내부에 여러 계산을 위한 회로들이 있다. 가산기, 보수기, 시프터, 오버플로우 검출기 등이 있다.


제어 장치

제어 신호를 내보내고 명령어를 해석하는 부품이다. 그리고 제어 신호는 컴퓨터 부품을 관리하고 작동 시키기 위한 일종의 전기 신호이다.

1. 받아들이는 정보

01 쿨럭

클럭 신호를 받아들여 컴퓨터의 모든 부품을 일치된 시간에 움직일 수 있도록 한다.

클럭(Clock)은 일정한 주기로 신호를 발생시켜 컴퓨터 시스템을 동기화 시킨다. 이때 클럭의 주기에 따라 한 클럭마다 일어나는 동작이 있다.

클럭 신호를 제어장치가 받아들이는 정보 중 하나는 해석할 명령어이다.

클럭 주기에 따라 명령어의 실행이 여러 클럭에 걸쳐 진행될 수 있다. 이렇게 함으로써 여러 단계로 이루어진 명령어를 효율적으로 처리할 수 있다. 클럭 신호와 명령어 해석은 컴퓨터의 핵심적인 작동 원리 중 하나이며 이를 통해 다양한 작업이 조절되고 처리된다.

02 현재 수행할 명령

CPU가 해석해야 할 명령어는 명령어 레지스터에 저장된다. 제어장치는 이 명령어 레지스터로부터 명령어를 받아들이고 해당 명령어를 해석하여 제어 신호를 발생시켜 수행할 작업을 알려준다.

03 플래그

플래그는 ALU연산에 대한 추가적인 상태 정보이다. 제어장치는 플래그 값을 받아들이고 플래그에 따라 제어 신호를 생성하여 다음 동작을 실행한다.

04 제어 신호

제어 신호는 제어 버스를 통해 외부에서 전달된 신호를 받아들인다. 이는 CPU외부에서 발생하는 이벤트에 대한 응답 등을 수행하는데 사용된다.


2. 내보내는 정보

01 CPU 외부에 전달하는 제어 신호

제어 장치가 CPU 외부에 제어 신호를 전달한다는 말은 제어 버스로 제어 신호를 내보낸다는 말과 같다. 

메모리에 전달하는 제어 신호 : CPU는 메모리에 데이터를 읽거나 쓸 때 메모리에 관련된 제어 신호를 내보낸다. 이는 메모리 주소를 지정하고 데이터를 읽거나 쓰는 등의 동작을 수행하기 위한 제어 신호이다.

입출력장치에 전달하는 제어 신호 : CPU는 입출력장치와 통신할 때 관련된 제어 신호를 내보낸다. 이는 입출력 장치와 데이터를 주고받거나 입출력장치의 동작을 제어하기 위한 제어 신호이다.

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

ALU에 전달하는 제어 신호 : CPU의 산술 논리 장치(ALU)에는 수행할 연산을 지시하는 제어 신호가 전달된다. ALU는 이에 따라 두 개의 피연산자를 이용하여 다양한 산술 논리 연산을 수행한다.

레지스터에 전달하는 제어 신호 : CPU는 레지스터 간 데이터 이동이나 레지스터에 저장된 명령어를 해석하기 위해 레지스터에 관련된 제어 신호를 내보낸다.

 

 

 

 

 

참고 :  본 내용은개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제강의를 수강하여 작성하였습니다.
https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

 

 

 

반응형

댓글