Data Engineering/혼공컴운
혼자 공부하는 컴퓨터구조 + 운영체제 4장 정리
potatode
2025. 1. 20. 07:13
4장. CPU의 작동 원리
4.1 ALU와 제어장치
ALU
- 연산한 결괏값과 플래그를 내보냄
- 그렇기에 계산을 위해 피연산자와 수행할 연산이 필요
⇒ 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들임
- 내보내는 정보 : 계산 결괏값, 플래그
- 플래그 - 연산 결과에 대한 추가적인 상태 정보
- 부호, 제로, 캐리, 오버플로우 등등 존재
- 플래그 - 연산 결과에 대한 추가적인 상태 정보
💡 제어장치/레지스터 → ALU → 레지스터/플래그 레지스터
제어장치
: 제어 신호를 내보내고, 명령어를 해석하는 부품
- 제어신호 : 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
- 제어장치가 받아들이는 정보
- 클럭하지만 모든 부품이 한 클럭마다 동일하게 작동하지는 않음
- 하나의 명령어가 여러 클럭에 걸쳐 실행될 수 있음
- : 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
- 해석할 명령어
- 플래그 레지스터 속 플래그 값
- 제어버스로 전달된 제어신호
- 제어버스를 통해 외부로부터 전달된 제어 신호를 받아들이기도 함
- 제어장치가 내보내는 정보
- CPU 외부
- 메모리에 전달
- 입출력장치에 전달
- CPU 내부
- ALU에 전달
- 레지스터에 전달
- CPU 외부
💡플래그 레지스터/명령어 레지스터 → 제어장치 → 제어신호 → 각각 전달 ← 제어버스
4.2 레지스터
반드시 알아야 할 레지스터
- 프로그램 카운터 : 명령어의 주소 저장
- 명령어 레지스터 : 명령어 저장
- 메모리 주소 레지스터 : 메모리 주소 저장
- 메모리 버퍼 레지스터 : 메모리와 주고받을 값 저장
이 CPU의 레지스터를 통해 프로그램을 차례대로 실행해 나감
특정 레지스터를 이용한 주소 지정 방식 - 스택 주소 지정 방식
: 스택과 스택 포인터를 이용한 주소 지정 방식
- 스택 포인터 : 스택의 꼭대기 ⇒ 스택의 어디까지 데이터가 채워져 있는지 표시
- 스택은 메모리 안에 존재
특정 레지스터를 이용한 주소 지정 방식 - 변위 주소 지정 방식
: 오퍼랜드 필드의 값과 특정 레지스터의 값을 더해 유효 주소를 얻어내는 주소 지정 방식
- 변위 주소 지정 방식 명령어 - 연산 코드 필드 + 레지스터 필드 + 오퍼랜드 필드
- 상대 주소 지정 방식
- 프로그램 카운터 - 명령어 주소 저장
- : 오퍼랜드 + 프로그램 카운터 값 ⇒ 유효주소 얻음
- 베이스 레지스터 주소 지정 방식
- 베이스 레지스터 - 기준 주소
- 오퍼랜드 - 기준 주소로부터 떨어진 거리
- : 오퍼랜드 + 베이스 레지스터의 값 ⇒ 유효주소 얻음
4.3 명령어 사이클와 인터럽트
- 인터럽트 : CPU의 정상적인 작업을 방해하는 신호
- 동기 인터럽트 : CPU에 의해 발생
- 예외
비동기 인터럽트 : 입출력장치에 의해 발생하는 인터럽트 = 하드웨어 인터럽트
- 완료 알림
- CPU가 효율적으로 명령어 처리 가능하게 함
- 인터럽트 요청 신호 : 입출력장치가 CPU에 요청
- 인터럽트 플래그 : 하드웨어 인터럽트 받을지, 무시할지 결정하는 플래그
- 인터럽트 서비스 루틴 : 인터럽트 처리 프로그램
- = 인터럽트 핸들러
- 인터럽트 벡터 : 인터럽트 서비스 루틴 식별 정보
⇒ 처리 순서 정리
- 인터럽트 요청 신호 보냄
- CPU는 인터럽트 요청을 확인 후, 인터럽트 플래그를 통해 현재 인터럽트 받는지 여부 확인
- CPU는 작업 백업, 인터럽트 벡터 참조하여 인터럽트 서비스 루틴 실행
- 루틴 실행이 끝나면 백업 작업 복구하여 실행 재개
반응형