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