<aside> 💡
한빛미디어의 <혼자 공부하는 컴퓨터 구조+운영체제>를 요약 정리했습니다.
</aside>
ALU : 피연산자와 제어 신호를 기반으로 다양한 연산을 수행하는 장치
오버플로우 : 연산 결과가 연산 결과를 담을 레지스터보다 큰 상황
플래그 : 연산 결과에 대한 추가적인 상태 정보
플래그 종류 | 의미 | 사용 예시 |
---|---|---|
부호 플래그 | 연산한 결과의 부호를 나타냄 | 1일 경우 계산 결과는 음수, 0일 경우 계산 결과는 양수를 의미함 |
제로 플래그 | 연산 결과가 0인지 여부를 나타냄 | 1일 경우 연산 결과는 0, 0일 경우 연산 결과는 0이 아님을 나타냄 |
캐리 플래그 | 연산 결과 올림수나 빌림수가 발생했는지를 나타냄 | 1일 경우 올림수나 빌림수가 발생, 0일 경우 발생하지 않았음을 의미함 |
오버플로우 플래그 | 오버플로우가 발생했는지를 나타냄 | 1일 경우 오버플로우가 발생했음을 의미하고, 0일 경우 발생하지 않았음을 의미함 |
인터럽트 플래그 | 인터럽트가 가능한지를 나타냄 | 1일 경우 인터럽트가 가능함을 의미하고, 0일 경우 불가능함을 의미함 |
슈퍼바이저 플래그 | 커널 모드로 실행 중인지 사용자 모드로 실행중인지 나타냄 | 1일 경우 커널 모드로 실행 중임을 의미하고, 0일 경우 사용자 모드로 실행 중임을 의미함 |
제어장치 : 제어 신호를 내보내고, 명령어를 해석하는 부품
확인 문제 (p.110 ~ 111)
아래와 같은 플래그 레지스터를 가진 CPU가 있다고 가정해 봅시다. 이 CPU의 ALU가 연산한 결과가 다음과 같을 때 계산 결과를 십진수로 말해 보세요
레지스터에 저장된 값 : 101
플래그 레지스터에 저장된 값
부호 플래그 | 제로 플래그 | 캐리 플래그 | 오버플로 플래그 | 인터럽트 플래그 | 슈퍼바이저 플래그 |
---|---|---|---|---|---|
1 | 0 | 0 | 0 | 0 | 0 |
정답
-3
부호 플래그가 음수이므로 101은 2의 보수를 취하여 음수로 표현된 값임
이를 원래대로 되돌리기 위해 1을 빼고 0과 1을 바꾸면 11이 되고 이를 십진수로 표현하면 3이기 때문에 -3이 됨
다음 중 제어장치와 관련된 설명 중 옳지 않은 것을 고르세요.
(1) 제어장치는 제어 버스로 제어 신호를 내보냅니다.
(2) 제어장치는 제어 신호를 통해 ALU에게 연산을 지시합니다.
(3) 제어장치는 클럭 신호를 받아들입니다.
(4) 제어장치는 CPU 내에서 산술 연산과 논리 연산을 담당하는 부품입니다.
정답
4
CPU 내에서 산술 연산과 논리 연산을 담당하는 부품은 ALU임
(1), (2), (3)에 들어갈 알맞은 단어를 채워 보세요.
(1) : 제어장치에 플래그를 전달
(2) : 제어장치에 해석할 명령어를 전달
(3) : 제어신호를 CPU 외부에 전달
정답
플래그 레지스터, 명령어 레지스터, 제어 버스
CPU의 구성 요소로 적절하지 않은 것을 고르세요.
(1) ALU
(2) 레지스터
(3) 제어장치
(4) 하드 디스크
정답
(4) 하드 디스크
CPU의 구성 요소에는 레지스터, ALU 제어장치가 있음
레지스터
일반적으로 프로그램 카운터는 꾸준히 증가하며 프로그램을 차례대로 실행한다. 하지만 JUMP, CONDITIONAL JUMP, CALL, RET과 같이 특정 메모리 주소로 실행 흐름을 이동하는 명령어가 실행되었을 때 프로그램은 차례대로 실행되지 않는다.
스택 주소 지정방식
변위 주소 지정 방식
연산 코드, 레지스터, 오퍼랜드 필드를 사용하여 주소를 지정하는 방식
상대 주소 지정 방식
오퍼랜드와 프로그램 카운터의 값을 더하여 유효 주소를 얻는 방식
연산 코드 | 프로그램 카운터 | -3 |
---|
이 경우 프로그램 카운터(실행할 명령어)로부터 -3번째 번지로 접근한다.
베이스 레지스터 주소 지정 방식
확인 문제 (p.124 ~ 125)
명령어 사이클 : 하나의 명령어를 처리하는 정형화된 흐름
인터럽트 : 명령어 사이클이 끊어지는 상황으로 CPU가 수행 중인 작업을 방해하는 신호
확인 문제 (p.140 ~ 141)