Data Engineering/혼공컴운

혼자 공부하는 컴퓨터구조 + 운영체제 4장 정리

potatode 2025. 1. 20. 07:13

4장. CPU의 작동 원리

4.1 ALU와 제어장치

ALU

  • 연산한 결괏값과 플래그를 내보냄
  • 그렇기에 계산을 위해 피연산자와 수행할 연산이 필요

⇒ 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들임

  • 내보내는 정보 : 계산 결괏값, 플래그
    • 플래그 - 연산 결과에 대한 추가적인 상태 정보
      • 부호, 제로, 캐리, 오버플로우 등등 존재

💡 제어장치/레지스터 → ALU → 레지스터/플래그 레지스터

제어장치

: 제어 신호를 내보내고, 명령어를 해석하는 부품

  • 제어신호 : 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
  • 제어장치가 받아들이는 정보
    • 클럭하지만 모든 부품이 한 클럭마다 동일하게 작동하지는 않음
    • 하나의 명령어가 여러 클럭에 걸쳐 실행될 수 있음
    • : 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
    • 해석할 명령어
    • 플래그 레지스터 속 플래그 값
    • 제어버스로 전달된 제어신호
      • 제어버스를 통해 외부로부터 전달된 제어 신호를 받아들이기도 함
  • 제어장치가 내보내는 정보
    • CPU 외부
      • 메모리에 전달
      • 입출력장치에 전달
    • CPU 내부
      • ALU에 전달
      • 레지스터에 전달

💡플래그 레지스터/명령어 레지스터 → 제어장치 → 제어신호 → 각각 전달 ← 제어버스


4.2 레지스터

반드시 알아야 할 레지스터

  • 프로그램 카운터 : 명령어의 주소 저장
  • 명령어 레지스터 : 명령어 저장
  • 메모리 주소 레지스터 : 메모리 주소 저장
  • 메모리 버퍼 레지스터 : 메모리와 주고받을 값 저장

이 CPU의 레지스터를 통해 프로그램을 차례대로 실행해 나감

특정 레지스터를 이용한 주소 지정 방식 - 스택 주소 지정 방식

: 스택과 스택 포인터를 이용한 주소 지정 방식

  • 스택 포인터 : 스택의 꼭대기 ⇒ 스택의 어디까지 데이터가 채워져 있는지 표시
  • 스택은 메모리 안에 존재

특정 레지스터를 이용한 주소 지정 방식 - 변위 주소 지정 방식

: 오퍼랜드 필드의 값과 특정 레지스터의 값을 더해 유효 주소를 얻어내는 주소 지정 방식

  • 변위 주소 지정 방식 명령어 - 연산 코드 필드 + 레지스터 필드 + 오퍼랜드 필드
  1. 상대 주소 지정 방식
    • 프로그램 카운터 - 명령어 주소 저장
  2. : 오퍼랜드 + 프로그램 카운터 값 ⇒ 유효주소 얻음
  3. 베이스 레지스터 주소 지정 방식
    • 베이스 레지스터 - 기준 주소
    • 오퍼랜드 - 기준 주소로부터 떨어진 거리
  4. : 오퍼랜드 + 베이스 레지스터의 값 ⇒ 유효주소 얻음

4.3 명령어 사이클와 인터럽트

  • 인터럽트 : CPU의 정상적인 작업을 방해하는 신호
  • 동기 인터럽트 : CPU에 의해 발생
    • 예외

비동기 인터럽트 : 입출력장치에 의해 발생하는 인터럽트 = 하드웨어 인터럽트

  • 완료 알림
  • CPU가 효율적으로 명령어 처리 가능하게 함
  • 인터럽트 요청 신호 : 입출력장치가 CPU에 요청
  • 인터럽트 플래그 : 하드웨어 인터럽트 받을지, 무시할지 결정하는 플래그
  • 인터럽트 서비스 루틴 : 인터럽트 처리 프로그램
    • = 인터럽트 핸들러
  • 인터럽트 벡터 : 인터럽트 서비스 루틴 식별 정보

⇒ 처리 순서 정리

  1. 인터럽트 요청 신호 보냄
  2. CPU는 인터럽트 요청을 확인 후, 인터럽트 플래그를 통해 현재 인터럽트 받는지 여부 확인
  3. CPU는 작업 백업, 인터럽트 벡터 참조하여 인터럽트 서비스 루틴 실행
  4. 루틴 실행이 끝나면 백업 작업 복구하여 실행 재개
반응형