학교강의/컴퓨터구조

7주차 컴퓨터구조

Fel.Forest 2024. 4. 25. 17:18

명령어 사이클

  • 명령어 사이클
    • 수많은 명령어들로 이루어진 프로그램을 CPU는 일정한 주기로 반복하여 실행
  • 인출 사이클
    • 메모리에 있는 명령어를 CPU로 가지고 오는 단계

  • 실행 사이클
    • CPU로 가져온 명령어를 실행하는 단계
    • 제어 장치가 명령어 레지스터에 담긴 값을 해석
    • 제어 신호를 발생시키는 단계

  • BUT, CPU로 명령어를 가지고 와도 바로 실행이 불가능 한 경우있음
    • 불러온 데이터 안에 값이 있는게 아님 주소가 들어있는경우
    • 명령어를 실행하기 위해서는 메모리 접근을 한번 더 해야함
    • 이를 간접 사이클이라고 함

인터럽트

  • 방해하다, 중단 시키다
  • CPU가 수행중인 작업을 방해하는 신호
  • CPU가  꼭 주목해야할 때 or CPU가 얼른 처리해야 할 다른 작업이 생겼을때 발생

종류

  • 동기 : 예외
  • 비동기 : 하드웨워 인터럽트

동기인터럽트(예외)

  • CPU에의해 발생하는 인터럽트
  • CPU가 명령어들을 수행하가다 예상치 못한 상황을 마주쳤을때 발생하는 인터럽트
  • 예외 발생시
    1. CPU는 하던 일을 중단
    2. 해당 예외를 처리
    3. CPU는 본래 하던 작업으로 되돌아와 실행을 재개
  • 종류
    • 폴트 : 예외를 처리한 직후 예외가 발생한 명령어부터 실행에 재개
    • 트랩 : 예외를 처리한 직후 예외가 발생한 명령어의 다음 명령어부터 실행을 재개 , 주로 디버깅용
    • 중단 : CUP가 실행 중인 프로그램을 강제로 중단시킬 수 밖에 없는 심각한 오류를 발견했을때 발생하는 예외
    • 소프트웨어 인터럽트 : 시스템 호출이 발생할 때 나타남

비동기 인터럽트(하드웨워적 인터럽트)

  • 주로 입출력 장치에서 일어남

하드웨어 인터럽트

  • 알림과 같은 인터럽트
  • 입출력 작업 도중에도 효율적으로 명령어를 처이하기 위해사용
    • 입출력 장치는 CPU에 비해 느리다
    • 하드웨워 인터럽트를 이용하면  CPU는 입출력 작업 동안 다른 일을 할 수 있음
  • 하드웨워 인터럽트 처리 순서
    • 입출력장치는 CPU에 인터럽트 요청 신호를 보냄
    • CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부를 확인
    • CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 여부를 확인
    • 인터럽트를 받아들일 수 있다면 CPU는 지금까지의 작업을 백업
    • CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행
    • 인터럽트 서비스 루틴 실행이 끝나면 4에서 백업해 둔 작업을 복구하여 실행을 재개

인터럽트 플래그

  • 하드웨어 인터럽트를 받아들일지,무시할지를 결정하는 플래그
  • 불가능
    • CPU가 중요한 작업을 처리해야 하거나 어떤 방해도 받지 않아야 할때
    • CPU는 인터럽트 요청이 오더라도 해당 요청을 무시
  • 가능
    • CPU는 인터럽트 요청 신호를 받아들이고 인터럽트를 처리
  • 막을 수 없는 인터럽트
    • 인터럽트 플래그가 불가능으로 설정되어 있을지라도 무시할 수 없는 인터럽트 요청
    • 가장 우넌 순위가 높은 인터럽트 -> 정전 or 하드웨워 고장

인터럽트 서비스 루틴

  • 인터럽트 발생시 해당 인터럽트를 어떻게 처리하기 위한 프로그램
  • 인터럽트 서비스 루틴도 프로그램이기에 메모리에 저장

  • 언터럽트 벡터
    • 인터럽트 서비스 루틴의 시작 주소를 포함하는 인터럽트 서비스 루틴의 식별정보