Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

Interrupt (인터럽트) 본문

Electronic Calculator Architecture

Interrupt (인터럽트)

d5ngs 2019. 10. 17. 14:27

Interrupt

  • 정의
    - 컴퓨터 프로그램을 실행하는 중에 예기치 못한 상황이 발생할 경우 진행중인 작업을 중단하고, 발생된 긴급 상황을 우선 처리한 후 원래 실행하던 작업으로 복귀하여 계속해서 진행

  • 특징
    - 인터럽트 서비스 루틴을 실행할 때, 인터럽트 Flag를 0으로 하면 인터럽트 발생을 방지

    - 인터럽트 발생 시 CPU는 다음 사항을 확인
    > PC의 내용
    > 사용한 모든 레지스터의 내용
    > 상태 조건의 내용(PSW)

  • 종류
    - 외부 인터럽트 (CPU의 H/W 신호에 의해 발생
    > 전원 이상 인터럽트
    "정전, 전원 이상"

    > 기계 착오 인터럽트
    "CPU의 기능적인 오류가 발생"

    > 외부 신호 인터럽트
    "외부 장치로부터 인터럽트 요청"
    "키보드로 인터럽트 키를 누른 경우"
    "타이머에 의해 규정된 시간을 알리는 경우"

    > I/O 인터럽트
    "I/O 데이터의 오류나 이상 현상이 발생한 경우"
    "I/O 장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우"

    - 내부 인터럽트 (CPU의 H/W 신호에 의해 발생)
    > 잘못된 명령이나 데이터를 사용할 때 발생, Trap 이라고도 불림

    > 프로그램 검사 인터럽트
    "0으로 나누기가 발생"
    "Overflow, Underflow가 발생"
    "프로그램에서 명령어를 잘못 사용"
    "부당한 기억장소의 참조와 같은 오류"


    - S/W 인터럽트 (명령어의 수행에 의해 발생)
    > SVC 인터럽트
    "사용자가 직접 SVC 명령을 사용해 의도적으로 불러오는 인터럽트"
    "복잡한 I/O 처리를 해야 하는 경우"


  • 순서
    1. 인터럽트 요청
    - 인터럽트 발생 장치로부터 인터럽트 기능을 요청

    2. 프로그램 실행 중단
    - 현재 실행중이던 명령어(Micro Instruction)는 끝까지 실행

    3. 현 상태 보존
    - 실행 중이던 프로그램의 상태를 다음에 실행할 명령의 번지로서 PC에 저장

    4. 인터럽트 처리 루틴 실행
    - 인터럽트를 요청한 장치를 식별

    5. 인터럽트 서비스 루틴 실행
    - 처리기 상태 복구
    - 인터럽트 원인 결정
    - 처리기 레지스터의 상태 보존
    - 상대적으로 낮은 레벨의 마스크 레지스터 클리어

    6. 원 상태로 복귀
    - 인터럽트 요청 시 보관되었던 상태를 이용하여 원래 프로그램이 계속 되도록 함
    - 보관한 PC의 값을 다시 PC에 저장

    7. 중단된 프로그램 실행 재개
    - PC의 값을 이용하여 인터럽트 발생 이전에 수행중이던 프로그램을 계속 실행

  • 우선순위
    1. 전원 이상
    2. 기계 착오
    3. 외부신호
    4. I/O
    5. 명령어 잘못
    6. 프로그램 검사
    7. SVC

  • 우선순위 판별 방법
    - Polling (S/W적 방식)
    > 가장 높은 우선순위의 인터럽트 자원 ~ 인터럽트 요청 플래그 까지 차례로 검사
    > 우선순위가 가장 높은 인터럽트 자원을 찾아내 해당되는 인터럽트 서비스 루틴을 수행하는 방식
    > 우선순위 변경이 쉬움
    > 자기디스크와 같이 속도가 빠른 장치에 높은 등급을 부여
    > 많은 인터럽트가 있을 경우 모두 조사하는 데 많은 시간이 걸려 느림
    > 별도의 H/W가 필요없고 회로가 간단하여 경제적

    - Vectored Interrupt (H/W적 방식)
    > CPU와 인터럽트를 요청할 수 있는 장치 사이에 장치번호에 해당하는 버스를 병렬, 직렬로 연결하여 요청 장치 번호를 CPU에 알리는 방식
    > 인터럽트를 발생한 장치가 CPU에게 분기할 곳에 대한 정보를 제공하는데 이를 Interrupt Vector라고 함
    > 장치 판별을 위한 별도의 프로그램 루틴이 없어 빠름
    > 복잡하고 추가적인 H/W 가 필요하기 때문에 비경제적

    > 직렬 우선순위 부여 방식 / 데이지 체인 (Daisy-Chain) 방식
    "인터럽트가 발생하는 모든 장치를 한 개의 회선에 직렬로 연결"
    "우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결"

    > 병렬 우선순위 부여 방식
    "인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결"
    "각 장치의 인터럽트 요청을 제어하기 위해 각 비트를 개별적으로 Set 할 수 있는 Mask Register를 사용"
    "Mask Register의 비트 위치에 의해 우선순위 결정"


'Electronic Calculator Architecture' 카테고리의 다른 글

I/O 장치  (1) 2019.10.17
I/O 제어  (0) 2019.10.17
명령어  (0) 2019.10.17
논리 회로  (0) 2019.10.17
병렬 컴퓨터  (0) 2019.10.17