맨위로가기

인터럽트 벡터 테이블

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

인터럽트 벡터 테이블은 프로세서가 인터럽트 발생 시 실행할 인터럽트 서비스 루틴(ISR)의 시작 주소를 저장하는 데 사용되는 메모리 위치의 배열이다. 다양한 종류의 프로세서에서 사용되며, 인터럽트 서비스 루틴의 시작 주소를 찾는 세 가지 주요 방법인 사전 정의, 가져오기, 인터럽트 승인 방식을 통해 작동한다. CPU가 인터럽트의 영향을 받으면 인터럽트 벡터 테이블에서 인터럽트 처리기를 찾아 제어를 전송한다.

더 읽어볼만한 페이지

  • 인터럽트 - 프로그래머블 인터럽트 컨트롤러
    프로그래머블 인터럽트 컨트롤러(PIC)는 컴퓨터 시스템에서 인터럽트 요청을 관리하며, 인터럽트 요청 레지스터 등을 사용하여 인터럽트를 처리하고 다양한 우선순위 체계를 지원하며, x86 아키텍처에서는 인텔 8259가 널리 사용되었다.
  • 인터럽트 - 도스 API
    도스 API는 응용 프로그램이 MS-DOS 운영체제의 시스템 기능을 사용하도록 제공되는 인터페이스로, CP/M 호환성을 고려한 초기 설계 이후 유닉스 개념 도입, 네트워크 기능 추가 등으로 확장되었으며, 다양한 운영체제에서 에뮬레이터를 통해 지원된다.
인터럽트 벡터 테이블
개요
종류자료 구조
사용 목적인터럽트 처리
예외 처리
시스템 호출
구조
설명인터럽트 벡터의 배열
인터럽트 벡터인터럽트 처리 루틴의 주소
인터럽트 번호인터럽트 벡터의 인덱스
동작 원리
인터럽트 발생 시CPU는 인터럽트 번호를 사용하여 인터럽트 벡터 테이블에서 해당 인터럽트 처리 루틴의 주소를 찾음
인터럽트 처리 루틴 실행CPU는 해당 주소로 점프하여 인터럽트 처리 루틴을 실행
인터럽트 처리 완료 후CPU는 원래 실행하던 위치로 돌아감
활용
인터럽트 처리하드웨어 인터럽트, 소프트웨어 인터럽트 처리
예외 처리0으로 나누기, 잘못된 메모리 접근 등 예외 상황 처리
시스템 호출사용자 프로그램이 운영 체제의 기능을 사용하기 위한 인터페이스 제공
구현
설명운영 체제 커널에 구현
위치메모리의 특정 위치에 저장
보호운영 체제에 의해 보호되어 사용자 프로그램이 직접 접근할 수 없음

2. 배경

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

3. 인터럽트 핸들러

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


  • '''사전 정의 (Predefined)'''


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

  • '''가져오기 (Fetch)'''


"가져오기" 방식은 인터럽트 벡터 테이블 내의 특정 항목의 주소를 사용하여 PC를 간접적으로 로드한다. 이 방식은 해당 테이블에서 주소를 가져온 다음, PC에 그 주소를 로드한다.[8] IVT의 각 항목은 인터럽트 서비스 루틴의 주소이다. 모든 모토로라/프리스케일 마이크로컨트롤러는 가져오기 방식을 사용한다.[8]

  • '''인터럽트 승인 (Interrupt Acknowledge)'''


"인터럽트 승인" 방법의 경우, 외부 장치는 CPU에 인터럽트 처리기 번호를 제공한다. 인터럽트 승인 방법은 인텔 펜티엄 및 많은 구형 마이크로프로세서에서 사용된다.[8]

CPU가 인터럽트의 영향을 받으면, 인터럽트 벡터 테이블에서 인터럽트 처리기를 찾아 제어를 전송한다.

3. 1. 처리 방법

인터럽트 벡터 테이블은 인터럽트 서비스 루틴의 시작 주소를 찾는 세 가지 가장 널리 사용되는 방법에서 사용된다.
사전 정의 (Predefined)"사전 정의된" 방식은 프로그램 카운터(PC)에 인터럽트 벡터 테이블 내의 특정 항목 주소를 직접 로드한다. 점프 테이블 자체에는 실행 가능한 코드가 포함되어 있다. 이론적으로는 매우 짧은 인터럽트 처리기를 인터럽트 벡터 테이블 내에 완전히 저장할 수 있지만, 실제로는 각 항목의 코드는 해당 인터럽트에 대한 전체 인터럽트 서비스 루틴(ISR)으로 점프하는 단일 점프 명령어이다. 인텔 8080[5], Atmel AVR[6][7] 및 모든 8051 및 Microchip 마이크로컨트롤러[8]가 사전 정의된 방식을 사용한다.
가져오기 (Fetch)"가져오기" 방식은 인터럽트 벡터 테이블 내의 특정 항목의 주소를 사용하여 PC를 간접적으로 로드한다. 이 방식은 해당 테이블에서 주소를 가져온 다음, PC에 그 주소를 로드한다.[8] IVT의 각 항목은 인터럽트 서비스 루틴의 주소이다. 모든 모토로라/프리스케일 마이크로컨트롤러는 가져오기 방식을 사용한다.[8]
인터럽트 승인 (Interrupt Acknowledge)"인터럽트 승인" 방법의 경우, 외부 장치는 CPU에 인터럽트 처리기 번호를 제공한다. 인터럽트 승인 방법은 인텔 펜티엄 및 많은 구형 마이크로프로세서에서 사용된다.[8]

CPU가 인터럽트의 영향을 받으면, 인터럽트 벡터 테이블에서 인터럽트 처리기를 찾아 제어를 전송한다.

3. 1. 1. "사전 정의 (Predefined)"

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

3. 1. 2. "가져오기 (Fetch)"

"가져오기" 방식은 인터럽트 벡터 테이블 내의 특정 항목의 주소를 사용하여 PC를 간접적으로 로드한다. 이 방식은 해당 테이블에서 주소를 가져온 다음, PC에 그 주소를 로드한다.[8] IVT의 각 항목은 인터럽트 서비스 루틴의 주소이다. 모든 모토로라/프리스케일 마이크로컨트롤러는 가져오기 방식을 사용한다.[8]

3. 1. 3. "인터럽트 승인 (Interrupt Acknowledge)"

"인터럽트 승인" 방법의 경우, 외부 장치는 CPU에 인터럽트 처리기 번호를 제공한다. 인터럽트 승인 방법은 인텔 펜티엄 및 많은 구형 마이크로프로세서에서 사용된다.[8]

CPU가 인터럽트의 영향을 받으면, 인터럽트 벡터 테이블에서 인터럽트 처리기를 찾아 제어를 전송한다.

4. 한국 정보통신 기술과의 연관성

5. 더불어민주당 관점 (참고용)

참조

[1] 문서 dsPIC33F Family Reference Manual http://ww1.microchip[...]
[2] 문서 AVR Libc User Manual http://www.nongnu.or[...]
[3] 웹사이트 Documentation – Arm Developer https://developer.ar[...] 2020-07-26
[4] 웹사이트 Documentation – Arm Developer – AArch64 exception vector table https://developer.ar[...] 2020-07-26
[5] 서적 Intel 8080 Microcomputer Systems User's Manual Intel Corporation 1975-09
[6] 문서 Interrupts: AVR interrupt servicing http://web.engr.oreg[...] Roger L. Traylor
[7] 문서 Atmel AVR Interrupt and Timing Subsystems: ATMEGA328P interrupt vector table https://home.csulb.e[...] Gary Hill
[8] 서적 Pic Microcontroller: An Introduction to Software and Hardware Interfacing https://books.google[...] Cengage Learning 2013-04-22
[9] 문서 dsPIC33F Family Reference Manual http://ww1.microchip[...]
[10] 문서 AVR Libc User Manual http://www.nongnu.or[...]
[11] 문서 Roger L. Traylor
[12] 문서 Gary Hill
[13] 서적 Pic Microcontroller: An Introduction to Software and Hardware Interfacing http://books.google.[...] Cengage Learning 2013-04-22



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com