인터럽트 벡터 테이블

Interrupt vector table
X86 Interrupt Vector Table.svg

인터럽트 벡터 테이블(IVT)은 인터럽트 처리기 목록을 인터럽트 벡터 테이블의 인터럽트 요청 목록과 연결하는 데이터 구조다.인터럽트 벡터라고 불리는 인터럽트 벡터 테이블의 각 항목은 인터럽트 핸들러의 주소다.개념은 프로세서 아키텍처 전반에 걸쳐 공통적이지만 IVT는 아키텍처별 패션에서 구현될 수 있다.예를 들어, 디스패치 테이블은 인터럽트 벡터 테이블을 구현하는 한 방법이다.

배경

대부분의 프로세서는 인텔, AMD, 인피니온, 마이크로칩[1] 아트멜,[2] NXP, ARM[3][4] 등의 칩을 포함한 인터럽트 벡터 테이블을 가지고 있다.

인터럽트 핸들러

취급방법

인터럽트 벡터 테이블은 인터럽트 서비스 루틴의 시작 주소를 찾는 가장 인기 있는 세 가지 방법에 사용된다.

"미리 정의됨"

"미리 정의" 방법은 인터럽트 벡터 테이블 내부에 있는 일부 항목의 주소로 프로그램 카운터(PC)를 직접 로드한다.점프 테이블 자체에는 실행 가능한 코드가 포함되어 있다.원칙적으로 극히 짧은 인터럽트 핸들러는 인터럽트 벡터 테이블 안에 완전히 저장될 수 있지만, 실제로 각 항목에서 코드는 해당 인터럽트에 대한 전체 인터럽트 서비스 루틴(ISR)으로 점프하는 단일 점프 명령이다.Intel 8080,[5] Atmel AVR[6][7] 및 모든 8051 및 마이크로칩 마이크로컨트롤러는[8] 사전 정의된 접근방식을 사용한다.

"페치"

"페치" 방법은 인터럽트 벡터 테이블 내부에 있는 일부 항목의 주소를 사용하여 그 테이블에서 주소를 꺼낸 다음 그 주소로 PC를 로딩한다.[8]IVT의 모든 입력은 인터럽트 서비스 루틴의 주소다.모든 모토로라/프리스케일 마이크로컨트롤러는 가져오기 방식을 사용한다.[8]

"중단 확인"

"중복 확인" 방법의 경우 외부 장치는 CPU에 인터럽트 처리기 번호를 부여한다.인터럽트 승인 방법은 Intel Pentium과 많은 구형 마이크로프로세서에 의해 사용된다.[8]

CPU가 인터럽트의 영향을 받으면 인터럽트 벡터 테이블에서 인터럽트 핸들러를 조회하여 CPU로 제어권을 전송한다.

참고 항목

참조

  1. ^ "dsPIC33F 패밀리 레퍼런스 매뉴얼" 섹션 29.1.1 인터럽트 벡터 테이블
  2. ^ "AVR Libc 사용 설명서" 섹션:avr-libc 인터럽트 처리 소개
  3. ^ "Documentation – Arm Developer". developer.arm.com. Retrieved 2020-07-26.
  4. ^ "Documentation – Arm Developer – AArch64 exception vector table". developer.arm.com. Retrieved 2020-07-26.
  5. ^ Intel 8080 Microcomputer Systems User's Manual. Intel Corporation. September 1975. pp. 2–11 Interrupt Sequences. OCLC 2058546. OL 24210843M.
  6. ^ 로저 L.트레이러."간섭: AVR 인터럽트 서비스"
  7. ^ 게리 힐."Atmel AVR 인터럽트 및 타이밍 하위 시스템: ATMEGA328P 인터럽트 벡터 테이블"
  8. ^ a b c d Huang, Han-Wat (2005). Pic Microcontroller: An Introduction to Software and Hardware Interfacing. Cengage Learning. p. 247. ISBN 978-1-4018-3967-3. Retrieved 22 April 2013.

외부 링크