CS지식 쌓기

명령어 사이클과 인터럽트

류도토리 2023. 12. 29. 16:51
  1. 명령어 사이클
    1. 프로그램 속 명령어들은 일정한 주기가 반복되며 실행되는데 이 주기를 명령어 사이클이라고 함
    2. 인출 사이클 - 가장 먼저 CPU로 갖고 와야 한다
    3. 실행 사이클 - 갖고 왔으면 실행해야 한다
    4. 보통은 인출 - 실행으로 사이클을 돌리지만 어떤 명령어는 메모리 접근이 더 필요한 경우 간접 사이클을 거쳐 실행 사이클로 감
  2. 인터럽트
    1. 정해진 흐름을 끊는 것
    2. CPU가 주목해야할 때, CPU가 얼른 처리해야 할 다른 작업이 생겼을 때 발생
    3. 동기 인터럽트(예외)
      1. CPU가 예기치 못한 상황을 접했을 때
      2. 폴트, 트랩, 중단, 소프트웨어 인터럽트
    4. 비동기 인터럽트(하드웨어 인터럽트)
      1. 주로 입출력 장치에 의해 발생
      2. 알림(세탁기 완료 알림, 프린트 완료)과 같은 역할
      3. CPU가 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 하드웨어 인터럽트 사용 ( 인터럽트가 없다면 주기적으로 확인해줘야함)
    5. 하드웨어 인터럽트 처리 순서
    6. 인터럽트 요청 신호
      1. CPU의 작업을 방해하는 인터럽트에 대한 요청 다만, 하드웨어 고장, 정전 등의 상황 일 경우 막을 수 없음
    7. 인터럽트 플래그
      1. 인터럽트 요청 신호를 받아들일지 무시할지를 결정하는 비트
    8. 인터럽트 서비스 루틴
      1. 인터럽트를 처리하는 프로그램
      2. 프로그램을 실행하다가 인터럽트가 들어오면 그 인터럽트에 해당하는 인터럽트 서비스 루틴을 실행 후 다시 돌아와서 프로그램 실행
    9. 인터럽트 벡터
      1. 인터럽트 서비스 루틴의 시작 주소를 포함하는 인터럽트 서비스 루틴의 식별 정보
    10. CPU가 인터럽트를 처리한다 - 인터럽트 서비스 루틴을 실행하고, 본래 수행하던 작업으로 다시 되돌아온다
    11. 인터럽트를 처리하기 위해 기존 작업을 스택에 백업했다가 인터럽트 실행 후 다시 불러와 실행한다
    12.  
     

'CS지식 쌓기' 카테고리의 다른 글

명령어 병렬 처리 기법  (0) 2023.12.29
클럭,코어,스레드  (0) 2023.12.29
ALU와 제어장치  (0) 2023.12.29
명령어와 주소 지정방식  (0) 2023.12.29
고급언어, 저급언어  (1) 2023.12.29