본문 바로가기
백수/컴퓨터구조

컴퓨터 기초 7(명령어 사이클과 인터럽트)

728x90
반응형

 

명령어 사이클

 ▷ 하나의 명령어를 처리하는 정형화된 흐름입니다.

 - 프로그램 속 각각의 명령어들은 명령어 사이클이 반복되어 실행됩니다.

 - 하나의 처리과정을 여러 단계로 세분화하여 독립적으로 다른 작업들이 수행되도록 병렬성을 높입니다.

 

인출 사이클

 - 메모리에 있는 명령어를 CPU로 가지고 오는 단계입니다.

 - 단일 명령어를 수행한 후 다음 명령을 메인 메모리에서 CPU로 꺼내는 단계입니다.

 

실행 사이클

 - CPU로 가져온 명령어를 실행하는 단계입니다.

 - 명령의 해독 결과에 해당하는 타이밍, 제어신호를 순차적으로 발생시켜 실제로 명령어를

    실행하는 단계입니다.

 

간접 사이클

 - 명령어를 실행하기 위해 메모리 접근을 추가적으로 하는 단계입니다.

 - 명령어에 포함되어 있는 주소를 이용후 그 명령어 실행에 필요한 데이터의 주소를 인출하는 사이클입니다.

 

인터럽트

  CPU는 정해진 흐름에 따라 명령어를 처리해 나가지만 흐름이 끊기는 경우입니다.

 - CPU가 수행 중인 작업은 방해를 받아 잠시 중단되는 신호입니다.

 

인터럽트 특권 명령

 - CPU가 수행하는 명령에는 일반, 특권 명령이 있습니다.

 - 일반 명령 : 메모리에서 자료를 읽어 CPU에서 계산하는 등의 명령이고 모든 프로그램이 수행 가능한 명령

 - 특권 명령 : 보안이 필요한 명령으로 입출력 장치, 타임 등의 장치를 접근하는 명령으로

   운영체제만이 수행 가능

 

동기 인터럽트

 - CPU가 실행하는 프로그래밍상의 오류와 같은 예외적인 상황에 마주쳤을 때 발생하는 인터럽트입니다.

 - 이런 점에서 동기 인터럽트를 예외라고 부릅니다.

 - 인터럽트를 발생시키기 위해 하드웨어/소프트웨어는 CPU 내에 있는 인터럽트 라인을 세팅하여 발생

 - CPU는 명령을 수행하기 전 인터럽트 라인 세팅 여부를 확인합니다.

 

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

 - 주로 입출력 장치에 의해 발생하는 인터럽트입니다.

 - '세탁기 완료 알림, 전자레인지 조리 완료 알림'과 같은 역할을 합니다.

 - CPU는 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 이런 알림과

    같은 인터럽트를 사용합니다.

 

비동기 인터럽트(하드웨어 인터럽트) 처리 순서

1. 입출력 장치는 CPU에 인터럽트 요청 신호를 전송

2. CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부 확인

3. CPU는 인터럽트 요청을 확인 후 인터럽트 플래그를 통해 현재 인터럽트를 수신 여부 확인

4. 인터럽트를 받아들일 수 있다면 CPU는 지금까지의 작업을 백업

5. CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행

6. 인터럽트 서비스 루틴 실행이 끝나면 '4'에서 백업해 둔 작업을 복구하여 실행을 재개

 

인터럽트 요청 신호

- CPU의 정상적인 실행 흐름을 끊는 것이기에 다른 인터럽트 하기 전에 사용 여부를 확인하는 신호입니다.

 

인터럽트 플래그

 - CPU가 인터럽트 요청을 수용하기 위해서는 인터럽트 플래그가 활성화되어야 합니다.

 - 인터럽트 플래그가 불가능으로 설정되어 있을지라도 무시할 수 없는 인터럽트 요청도 있습니다.

인터럽트 서비스 루틴(인터럽트 핸들러)

 - 인터럽트를 처리하기 위한 프로그램입니다.

 

인터럽트 벡터

- CPU는 수많은 인터럽트 서비스 루틴을 구분하기 위해 인터럽트 벡터를 사용합니다.

 

키워드 정리

  • 인터럽트 요청 신호 : CPU의 작업을 방해하는 인터럽트에 대한 요청
  • 인터럽트 플래그 : 인터럽트 요청 신호 사용 여부 결정
  • 인터럽트 벡터 : 인터럽트 서비스 루틴의 시작 주소를 포함하는 인터럽트 서비스 루틴의 식별 정보
  • 인터럽트 서비스 루틴 : 인터럽트를 처리하는 프로그램

예외

 ▷ 예외가 발생되는 경우 CPU는 하던 일을 중단하고 해당 예외를 처리합니다.

 

 

예외 종류

폴트 

 - 예외를 처리한 직후 예외가 발생한 명령어부터 실행을 재개합니다.

 - 

트랩 

 - 예외를 처리한 직후 예외가 발생한 명령어의 다음 명령어부터 실행을 재개합니다.

 - 주로 디버깅할 때 사용됩니다.

 

중단 

 - CPU가 실행 중인 프로그램을 강제로 중단시켜 심각한 오류를 발견했어 때 발생 예외입니다.

 - 프로그램이 실행 안되어 무조건 해결해야 하는 예외 처리입니다.

 

소프트웨어 인터럽트

 - 시스템 호출이 발생하는 경우 나타냅니다.

728x90
반응형

'백수 > 컴퓨터구조' 카테고리의 다른 글

컴퓨터 기초 9  (0) 2022.12.12
컴퓨터 기초 8  (0) 2022.12.10
컴퓨터 기초 6(레지스터)  (0) 2022.12.06
컴퓨터 기초 5  (0) 2022.11.29
컴퓨터 기초 4  (0) 2022.11.16