KR20040110167A - 하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법 - Google Patents

하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법 Download PDF

Info

Publication number
KR20040110167A
KR20040110167A KR1020030039356A KR20030039356A KR20040110167A KR 20040110167 A KR20040110167 A KR 20040110167A KR 1020030039356 A KR1020030039356 A KR 1020030039356A KR 20030039356 A KR20030039356 A KR 20030039356A KR 20040110167 A KR20040110167 A KR 20040110167A
Authority
KR
South Korea
Prior art keywords
interrupt
address
service
information
outputting
Prior art date
Application number
KR1020030039356A
Other languages
English (en)
Inventor
최준호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020030039356A priority Critical patent/KR20040110167A/ko
Publication of KR20040110167A publication Critical patent/KR20040110167A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

하드웨어와 소프트웨어의 코워크로 강화된 벡터드 인터럽트 콘트롤 시스템 및 그 방법이 개시된다. 상기 인터럽트 콘트롤 시스템은 강화된 벡터드 인터럽트 콘트롤 시스템으로서, 소프트웨어에 의하여 수정될 수 있는 옵셋 정보가 인터럽트 콘트롤러에서 발생될 때, 하드웨어적으로 인터럽트 명령어 벡터를 재생성하여 래퍼에 직접 전송함으로써, CPU는 바로 해당 어드레스에 대응하는 프로그램을 수행할 수 있다. 따라서, 인터럽트 처리 지연 시간이 줄어들고, 전체 시스템의 성능을 향상시킬 수 있는 효과가 있다.

Description

하드웨어와 소프트웨어의 코워크로 강화된 벡터드 인터럽트 콘트롤 시스템 및 그 방법{Enhanced vectored interrupt control system co-worked with hardware and software and method thereof}
본 발명은 CPU(cotrol processing unit)에 관한 것으로, 특히 CPU 주변의 인터럽트(interrupt) 콘트롤 시스템 및 그 방법에 관한 것이다.
일반적인 컴퓨터, 또는 MCU(micro controller unit) 등의 중앙 처리 장치(CPU: central processing unit)를 사용하는 디스플레이 장치나 정보 통신 시스템에서는, CPU가 정해진 인터럽트(interrupt) 소스(source)에서 발생되는 인터럽트 요청 정보에 대응한 적절한 서비스 루틴을 계산하여 프로그램 루틴을 변경시킨다. 이때, 인터럽트 요청 정보가 CPU에 처리를 요청하였을 때, CPU는 어느 인터럽트 소스가 인터럽트 요청신호를 발생시켰는지를 빠른 시간 내에 파악하여 해당되는 인터럽트 서비스 루틴을 수행하여야 한다.
일반적인 인터럽트 처리 시퀀스는 다음과 같다. CPU 주변 회로 블록들, 즉, DMA(direct memory access), UART(universal asynchronous receiver/transmitter), USB(universal serial bus) 등과 같은 다양한 인터럽트 소스들로부터 인터럽트가 발생하면, 먼저, 각 인터럽트 소스에 대응되는 인터럽트 펜딩(Pending) 레지스터 비트 값이 변경된다. 이때, 인터럽트 콘트롤러가 CPU에 인터럽트 발생 정보를 전달하면, 소정 소프트웨어에 의하여 우선 순위가 재배열되고 최고 우선 순위의 인터럽트 고유 ID(identification)에 대한 비교 명령어가 수행되어 일치하는 인터럽트 명령어를 찾는다. 이에 따라, CPU는 최고 우선 순위에 대응하는 인터럽트를 서비스하는 루틴으로 점프(jump)하여 프로그램 시퀀스를 변경한다. 이와 같은 인터럽트 처리 방식은 넌-벡터드(non-vectored) 인터럽트 방식으로서, 소정 소프트웨어에 의하여 대부분을 처리하고, 이에 따라 해당 인터럽트 서비스 루틴으로 프로그램 시퀀스를 변경하는데 많은 시간을 요하므로 시스템 성능을 저하시키는 문제점이 있다.
넌-벡터드(non-vectored) 인터럽트 방식을 개선하여 해당 인터럽트 서비스 루틴으로 점프하는 시간을 줄이고자하는 방식이, 벡터드(vectored) 인터럽트 방식이다. 벡터드 인터럽트 방식에서는, 인터럽트 콘트롤러가 CPU에 인터럽트 발생 정보를 전달할 때, 소프트웨어가 아닌 하드웨어적으로 우선 순위를 재배열하여 최고 우선 순위의 인터럽트 명령어 벡터를 동시에 전달한다. 이에 따라, CPU는 최고 우선 순위의 인터럽트 명령어 벡터에 대응하는 인터럽트 서비스 루틴으로 점프하여 프로그램 시퀀스를 변경한다. 이와 같은 일반적인 벡터드 인터럽트 방식에서는 CPU가 인터럽트 명령어 벡터를 페치(fetch)하고, 그 어드레스에 대응하는 프로그램을 소정 메모리에서 읽어들여 새로운 프로그램 루틴을 수행하므로, 위에서 기술한 넌-벡터드 인터럽트 방식보다는 인터럽트 처리 시간이 단축된다. 그러나, 일반적인 벡터드 인터럽트 방식에서도, 인터럽트 발생 시에, CPU가 인터럽트 콘트롤러에서 하드웨어적으로 발생된 인터럽트 명령어 벡터를 페치하고, 해당 어드레스에 대응하는 프로그램을 소정 메모리에서 읽어들이는 과정이 요구되므로, 이와 같은 처리 과정에서 소모되는 시간을 줄여 시스템 성능을 개선시킬 필요성이 있다.
따라서, 본 발명이 이루고자하는 기술적 과제는, 소프트웨어에 의하여 수정될 수 있는 옵셋(offset) 정보가 인터럽트 콘트롤러에서 발생될 때, 하드웨어적으로 인터럽트 명령어 벡터를 재생성하여 래퍼(wrapper)에 직접 전송함으로써, CPU는 바로 해당 어드레스에 대응하는 서비스 루틴을 수행할 수 있는 강화된 벡터드 인터럽트 콘트롤 시스템 및 그 방법을 제공하는 데 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템을 나타내는 블록도이다.
도 2는 도 1의 인터럽트 콘트롤 시스템의 동작 설명을 위한 흐름도이다.
도 3은 종래의 인터럽트 처리 방식과 도 1에서의 인터럽트 처리 방식을 비교하여 설명하기 위한 도면이다.
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 인터럽트 콘트롤 시스템은, 인터럽트 콘트롤러, CPU, 인터럽트 정보 재생성기, 인터럽트 선택기, 먹스,래퍼, 및 메모리를 구비한다.
상기 인터럽트 콘트롤러는 다수개의 인터럽트 소스들 각각으로부터 인터럽트 발생 신호를 수신하고, 최고 우선 순위에 대응하는 인터럽트 발생 신호에 응답하여 인터럽트 요청 정보와 옵셋 정보를 출력한다.
상기 CPU는 상기 인터럽트 요청 정보에 대응되어 있는 인터럽트 어드레스 및 프로그램 수행 중 프로그램 어드레스를 발생시켜 출력하며, 서비스 데이터를 받아 그에 대응하는 서비스 루틴을 수행한다.
상기 인터럽트 정보 재생성기는 상기 인터럽트 어드레스 및 상기 옵셋 정보를 수신하여 재처리한 인터럽트 서비스 어드레스 벡터를 생성시켜 출력한다.
상기 인터럽트 선택기는 상기 인터럽트 어드레스의 발생 상태를 체크하여 상기 인터럽트 어드레스의 수신 시에 제2 논리 상태, 상기 인터럽트 어드레스와 다른 어드레스 수신 시에 제1 논리 상태를 가지는 먹스 제어 신호를 발생시킨다.
상기 먹스는 상기 먹스 제어 신호의 논리 상태에 따라 상기 인터럽트 서비스 어드레스 벡터 또는 상기 프로그램 어드레스를 선택적으로 출력한다.
상기 래퍼는 상기 먹스에서 출력되는 어드레스를 수신하여, 운영 체제에 따라 상기 먹스에서 출력되는 어드레스에 대응하는 메모리 지정 어드레스를 출력한다.
상기 메모리는 상기 메모리 지정 어드레스에 응답하여 상기 서비스 데이터를 출력한다.
이에 따라, 상기 CPU는, 상기 인터럽트 요청 정보 수신 시에, 상기 인터럽트어드레스가 가리키는 명령어의 수행을 대신하여, 직접 상기 서비스 데이터에 대응하는 서비스 루틴으로 점프하는 것을 특징으로 한다.
상기 인터럽트 콘트롤러는, IRQ 모드 인터럽트 또는 FIQ 모드 인터럽트를 지원하는 것을 특징으로 한다.
상기 인터럽트 정보 재생성기는, 상기 인터럽트 어드레스, 상기 옵셋 정보, 및 다른 설정값을 합산하여 상기 인터럽트 서비스 어드레스 벡터를 생성하는 것을 특징으로 하는 한다. 상기 다른 설정값은, 소프트웨어에 의하여 프로그램 될 수 있는 것을 특징으로 한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 인터럽트 콘트롤 방법은, 다음과 같은 단계들을 구비한다.
즉, 본 발명에 따른 인터럽트 콘트롤 방법에서는, 먼저, 인터럽트 콘트롤 단계에서, 다수개의 인터럽트 소스들 각각으로부터 인터럽트 발생 신호를 수신하고, 최고 우선 순위에 대응하는 인터럽트 발생 신호에 응답하여 인터럽트 요청 정보와 옵셋 정보를 출력한다. 중앙 처리 단계에서는, 상기 인터럽트 요청 정보에 대응되어 있는 인터럽트 어드레스 및 프로그램 수행 중 프로그램 어드레스를 발생시켜 출력하며, 서비스 데이터를 받아 그에 대응하는 서비스 루틴을 수행한다.
인터럽트 정보 재생성 단계에서는, 상기 인터럽트 어드레스 및 상기 옵셋 정보를 수신하여 재처리한 인터럽트 서비스 어드레스 벡터를 생성시켜 출력한다. 인터럽트 선택 단계에서는, 상기 인터럽트 어드레스의 발생 상태를 체크하여 상기 인터럽트 어드레스의 수신 시에 제2 논리 상태, 상기 인터럽트 어드레스와 다른 어드레스 수신 시에 제1 논리 상태를 가지는 먹스 제어 신호를 발생시키고, 멀티플렉싱 단계에서, 상기 먹스 제어 신호의 논리 상태에 따라 상기 인터럽트 서비스 어드레스 벡터 또는 상기 프로그램 어드레스를 선택적으로 출력한다.
이에 따라, 래핑 단계에서는 상기 멀티플렉싱 단계에서 출력되는 어드레스를 수신하여, 운영 체제에 따라 상기 멀티플렉싱 단계에서 출력되는 어드레스에 대응하는 메모리 지정 어드레스를 출력하면, 소정 메모리에서 상기 메모리 지정 어드레스에 응답하여 상기 서비스 데이터를 출력한다.
상기 중앙 처리 단계는, 상기 인터럽트 요청 정보 수신 시에, 상기 인터럽트 어드레스가 가리키는 명령어의 수행을 대신하여, 직접 상기 서비스 데이터에 대응하는 서비스 루틴으로 점프하는 것을 특징으로 한다.
상기 인터럽트 콘트롤 단계는, IRQ 모드 인터럽트 또는 FIQ 모드 인터럽트를 지원하는 것을 특징으로 한다.
상기 인터럽트 정보 재생성 단계는, 상기 인터럽트 어드레스, 상기 옵셋 정보, 및 다른 설정값을 합산하여 상기 인터럽트 서비스 어드레스 벡터를 생성하는 것을 특징으로 하는 한다. 상기 다른 설정값은, 소프트웨어에 의하여 프로그램 될 수 있는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써,본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템은, 인터럽트 콘트롤러(110), CPU(120), 인터럽트 정보 재생성기(130), 인터럽트 선택기(140), 먹스(150), 래퍼(wrapper)(160), 및 메모리(170)를 구비한다.
상기 인터럽트 콘트롤러(110)는 다수개의 인터럽트 소스들 각각으로부터 인터럽트 발생 신호(IRS0, IRS1,...)를 수신하고, 최고 우선 순위에 대응하는 인터럽트 발생 신호에 응답하여 인터럽트 요청 정보(IRQ/FIQ)와 옵셋 정보(OFS)를 출력한다. 인터럽트는, CPU(120) 주변 회로 블록들, 즉, DMA(direct memory access), UART(universal asynchronous receiver/transmitter), USB(universal serial bus) 등과 같은 다양한 인터럽트 소스들로부터 발생하고, 상기 인터럽트 콘트롤러(110)는 이들 각각으로부터 인터럽트 발생 신호(IRS0, IRS1,...)를 수신한다. 상기 인터럽트 콘트롤러(110)는 라운드 로빈(round robin) 방식 등에 의하여 최고 우선 순위에 대응하는 인터럽트 발생 신호를 추출하고, 추출된 인터럽트 발생 신호에 대해서 그에 대응되어 있는 옵셋 정보(OFS)가 존재한다. 또한, 상기 인터럽트 콘트롤러(110)는, IRQ(interrupt request) 모드 인터럽트와 FIQ(fast interrupt request) 모드 인터럽트 모두를 지원한다. 최고 우선 순위를 정하는 라운드 로빈 방식과 IRQ(interrupt request) 모드 인터럽트, 또는 FIQ(fast interruptrequest) 모드 인터럽트 등에 대해서는 CPU 인터럽트 콘트롤 시스템에 대한 일반적인 내용을 참조하면 쉽게 이해될 수 있으므로, 여기서는 자세한 설명을 하지 않기로 한다.
상기 CPU(120)는 상기 인터럽트 요청 정보(IRQ/FIQ)에 대응되어 있는 인터럽트 어드레스(INTA) 및 프로그램 수행 중 프로그램 어드레스(PRA)를 발생시켜 출력하며, 서비스 데이터를 받아 그에 대응하는 서비스 루틴을 수행한다. 프로그램 어드레스(PRA)는 상기 CPU(120)가 상기 인터럽트 요청 정보(IRQ/FIQ)를 받지 않을 때, 다른 응용 프로그램이나 사용자의 요청을 처리하는 프로그램 등의 수행 중에 발생시키는 어드레스이다.
서비스 데이터는 CPU(120)가 새로운 서비스 루틴으로 점프하기 위하여 받는 데이터로서, 메모리(170)로부터 받는다. 이에 따라, 상기 CPU(120)는, 도 3의 오른쪽에 도시된 바와 같이, 상기 인터럽트 요청 정보(IRQ/FIQ) 수신 시에, 상기 인터럽트 어드레스(INTA)가 가리키는 명령어의 수행을 대신하여, 직접 상기 서비스 데이터에 대응하는 서비스 루틴(ISR)으로 점프한다. 상기 인터럽트 어드레스(INTA)는 ARM 사의 CPU에서 "0x18"과 같이, 인터럽트를 수행하기 위하여 CPU(120)에서 발생되는 어드레스이다. 종래의 인터럽트 처리 방식에서는, 도 3의 왼쪽에 도시된 바와 같이, "0x18"과 같은 어드레스 발생 시에, "0x18" 번지가 가리키는 명령어에 따라 소정 소프트웨어에 의하여 인터럽트 서비스 루틴(ISR)을 찾거나(넌-벡터드 인터럽트 방식), 하드웨어적으로 최고 우선 순위의 인터럽트 명령어 벡터를 페치하여 그에 대응하는 인터럽트 서비스 루틴(ISR)으로 프로그램 시퀀스를 변경하였다(벡터드인터럽트 방식). 이와 같이 종래의 인터럽트 처리 방식에 비하여, 본 발명의 일실시예에 따른 인터럽트 처리 방식은, "0x18" 번지의 명령어에 따른 소프트웨어의 실행이나 명령어 벡터를 페치한 후 다시 인터럽트 서비스 루틴(ISR)으로 점프하는 과정이 생략된다. 이에 따라 시스템의 성능 개선이 기대된다.
한편, 상기 서비스 데이터는, 하드웨어와 소프트웨어의 코워크에 의하여 동작하는 인터럽트 정보 재생성기(130)에서 생성하는 인터럽트 서비스 어드레스 벡터(ISA)를 참조하여, 메모리(170)가 출력한다.
즉, 상기 인터럽트 정보 재생성기(130)는 상기 인터럽트 어드레스(INTA) 및 상기 옵셋 정보(OFS)를 수신하여 재처리한 인터럽트 서비스 어드레스 벡터(ISA)를 생성시켜 출력한다. 상기 인터럽트 서비스 어드레스 벡터(ISA)는, 상기 인터럽트 어드레스(INTA), 상기 옵셋 정보(OFS), 및 다른 설정값이 합산된 값이고, 상기 다른 설정값이란 사용자가 미리 정해주는 값으로서, 소프트웨어에 의하여 프로그램 될 수 있다.
상기 인터럽트 선택기(140)는 상기 인터럽트 어드레스(INTRA)의 발생 상태를 체크하여 상기 인터럽트 어드레스(INTRA)의 수신 시에 제2 논리 상태(예를 들어, 논리 하이 상태), 상기 인터럽트 어드레스(INTRA)와 다른 어드레스(PRA) 수신 시에 제1 논리 상태(예를 들어, 논리 로우 상태)를 가지는 먹스 제어 신호를 발생시킨다.
상기 먹스(150)는 상기 먹스 제어 신호의 논리 상태에 따라 상기 인터럽트 서비스 어드레스 벡터(ISA) 또는 상기 프로그램 어드레스(PRA)를 선택적으로 출력한다.
상기 래퍼(160)는 상기 먹스(150)에서 출력되는 어드레스를 수신하여, 운영 체제(operating system)에 따라 상기 먹스(150)에서 출력되는 어드레스에 대응하는 메모리 지정 어드레스를 출력한다. 상기 메모리(170)는 상기 메모리 지정 어드레스에 응답하여 상기 서비스 데이터를 출력한다. 상기 래퍼(160)는 시스템 버스(SYSBUS)와 CPU(120) 사이에서 운영 체제(operating system) 프로토콜(protocol)에 맞도록 데이터를 재구성하여 주는 중재기이다.
상기한 바와 같은, 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템의 동작을 좀더 상세하게 설명한다.
도 2는 도 1의 인터럽트 콘트롤 시스템의 동작 설명을 위한 흐름도이다.
도 2를 참조하면, 도 1의 인터럽트 콘트롤 시스템이 인터럽트 발생 신호(IRS0, IRS1,...)를 수신하여 인터럽트 서비스 루틴(ISR)을 변경하는 과정이 도시되어 있다. 먼저, 도 1의 상기 인터럽트 콘트롤러(110)는 다수개의 인터럽트 소스들 각각으로부터 인터럽트 발생 신호(IRS0, IRS1,...)를 수신하고, 최고 우선 순위에 대응하는 인터럽트 발생 신호에 응답하여 인터럽트 요청 정보(IRQ/FIQ)와 옵셋 정보(OFS)를 출력한다(S210). 이에 따라, CPU(120)는 상기 인터럽트 요청 정보(IRQ/FIQ)에 대응되어 있는 인터럽트 어드레스(INTA)를 발생시켜 출력한다(S220).
인터럽트 정보 재생성기(130)는 상기 인터럽트 어드레스(INTA) 및 상기 옵셋 정보(OFS)를 수신하여 재처리한 인터럽트 서비스 어드레스 벡터(ISA)를 생성시켜출력한다(S230). 상기 인터럽트 서비스 어드레스 벡터(ISA)는, 상기 인터럽트 어드레스(INTA), 상기 옵셋 정보(OFS), 및 다른 설정값이 합산된 값이고, 상기 다른 설정값이란 사용자가 미리 정해주는 값으로서, 소프트웨어에 의하여 프로그램 될 수 있다. 따라서, 상기 인터럽트 서비스 어드레스 벡터(ISA)는 소프트웨어에 의하여 프로그램 될 수 있는 값이다.
결국, 인터럽트 선택기(140)가 상기 인터럽트 어드레스(INTRA)의 발생 상태를 체크하여 상기 인터럽트 어드레스(INTRA)의 수신 시에 제2 논리 상태의 먹스 제어 신호를 발생시키면, 먹스(150)는 상기 인터럽트 서비스 어드레스 벡터(ISA)를 출력하고, 상기 래퍼(160)는 상기 먹스(150)에서 출력되는 어드레스를 수신하여, 운영 체제(operating system)에 따라 상기 먹스(150)에서 출력되는 어드레스에 대응하는 메모리 지정 어드레스를 출력한다. 이때, 메모리(170)는 상기 메모리 지정 어드레스에 응답하여 상기 서비스 데이터를 출력한다(S240).
이와 같이, 출력되는 상기 서비스 데이터를 받는 CPU(120)는 그에 대응하는 인터럽트 서비스 루틴(ISR)을 수행한다(S250). 이와 같은, 본 발명의 일실시예에 따른 인터럽트 처리 방식은, "0x18" 번지의 명령어에 따른 소프트웨어의 실행이나 명령어 벡터를 페치한 후 다시 인터럽트 서비스 루틴(ISR)으로 점프하는 중간 과정을 가지는 종래의 인터럽트 처리 방식에 비하여, 인터럽트 처리 시간이 짧다. 이에 따라 시스템의 성능 개선이 기대된다.
위에서 기술한 바와 같이 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템은, 인터럽트 어드레스(INTA) 및 옵셋 정보(OFS)를 수신하여 재처리한 인터럽트서비스 어드레스 벡터(ISA)를 생성시켜 출력하는 인터럽트 정보 재생성기(130)를 구비하여, 인터럽트 발생 시에, 상기 인터럽트 서비스 어드레스 벡터(ISA)가 가리키는 인터럽트 서비스 루틴(ISR)으로 직접 점프할 수 있다. 이때, 상기 인터럽트 서비스 어드레스 벡터(ISA)는 소프트웨어에 의하여 프로그램 될 수 있는 값이므로, 사용자는 옵셋 정보(OFS)에 한정되지 않고 인터럽트 서비스 루틴(ISR)의 변경에 사용될 서비스 어드레스 벡터(ISA) 값을 다양한 값으로 자유롭게 설정할 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 강화된 벡터드 인터럽트 콘트롤 시스템에서는, 소프트웨어에 의하여 수정될 수 있는 옵셋 정보가 인터럽트 콘트롤러에서 발생될 때, 하드웨어적으로 인터럽트 명령어 벡터를 재생성하여 래퍼에 직접 전송함으로써, CPU는 바로 해당 어드레스에 대응하는 프로그램을 수행할 수 있다. 따라서, 인터럽트 처리 지연 시간이 줄어들고, 전체 시스템의 성능을 향상시킬 수 있는 효과가 있다.

Claims (10)

  1. 다수개의 인터럽트 소스들 각각으로부터 인터럽트 발생 신호를 수신하고, 최고 우선 순위에 대응하는 인터럽트 발생 신호에 응답하여 인터럽트 요청 정보와 옵셋 정보를 출력하는 인터럽트 콘트롤러;
    상기 인터럽트 요청 정보에 대응되어 있는 인터럽트 어드레스 및 프로그램 수행 중 프로그램 어드레스를 발생시켜 출력하며, 서비스 데이터를 받아 그에 대응하는 서비스 루틴을 수행하는 CPU;
    상기 인터럽트 어드레스 및 상기 옵셋 정보를 수신하여 재처리한 인터럽트 서비스 어드레스 벡터를 생성시켜 출력하는 인터럽트 정보 재생성기;
    상기 인터럽트 어드레스의 발생 상태를 체크하여 상기 인터럽트 어드레스의 수신 시에 제2 논리 상태, 상기 인터럽트 어드레스와 다른 어드레스 수신 시에 제1 논리 상태를 가지는 먹스 제어 신호를 발생시키는 인터럽트 선택기;
    상기 먹스 제어 신호의 논리 상태에 따라 상기 인터럽트 서비스 어드레스 벡터 또는 상기 프로그램 어드레스를 선택적으로 출력하는 먹스;
    상기 먹스에서 출력되는 어드레스를 수신하여, 운영 체제에 따라 상기 먹스에서 출력되는 어드레스에 대응하는 메모리 지정 어드레스를 출력하는 래퍼; 및
    상기 메모리 지정 어드레스에 응답하여 상기 서비스 데이터를 출력하는 메모리를 구비하는 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  2. 제 1항에 있어서, 상기 CPU는,
    상기 인터럽트 요청 정보 수신 시에, 상기 인터럽트 어드레스가 가리키는 명령어의 수행을 대신하여, 직접 상기 서비스 데이터에 대응하는 서비스 루틴으로 점프하는 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  3. 제 1항에 있어서, 상기 인터럽트 콘트롤러는,
    IRQ 모드 인터럽트 또는 FIQ 모드 인터럽트를 지원하는 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  4. 제 1항에 있어서, 상기 인터럽트 정보 재생성기는,
    상기 인터럽트 어드레스, 상기 옵셋 정보, 및 다른 설정값을 합산하여 상기 인터럽트 서비스 어드레스 벡터를 생성하는 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  5. 제 3항에 있어서, 상기 다른 설정값은,
    소프트웨어에 의하여 프로그램 될 수 있는 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  6. 다수개의 인터럽트 소스들 각각으로부터 인터럽트 발생 신호를 수신하고, 최고 우선 순위에 대응하는 인터럽트 발생 신호에 응답하여 인터럽트 요청 정보와 옵셋 정보를 출력하는 인터럽트 콘트롤 단계;
    상기 인터럽트 요청 정보에 대응되어 있는 인터럽트 어드레스 및 프로그램 수행 중 프로그램 어드레스를 발생시켜 출력하며, 서비스 데이터를 받아 그에 대응하는 서비스 루틴을 수행하는 중앙 처리 단계;
    상기 인터럽트 어드레스 및 상기 옵셋 정보를 수신하여 재처리한 인터럽트 서비스 어드레스 벡터를 생성시켜 출력하는 인터럽트 정보 재생성 단계;
    상기 인터럽트 어드레스의 발생 상태를 체크하여 상기 인터럽트 어드레스의 수신 시에 제2 논리 상태, 상기 인터럽트 어드레스와 다른 어드레스 수신 시에 제1 논리 상태를 가지는 먹스 제어 신호를 발생시키는 인터럽트 선택 단계;
    상기 먹스 제어 신호의 논리 상태에 따라 상기 인터럽트 서비스 어드레스 벡터 또는 상기 프로그램 어드레스를 선택적으로 출력하는 멀티플렉싱 단계;
    상기 멀티플렉싱 단계에서 출력되는 어드레스를 수신하여, 운영 체제에 따라 상기 멀티플렉싱 단계에서 출력되는 어드레스에 대응하는 메모리 지정 어드레스를 출력하는 래핑 단계; 및
    상기 메모리 지정 어드레스에 응답하여 상기 서비스 데이터를 출력하는 메모리 출력 단계를 구비하는 것을 특징으로 하는 인터럽트 콘트롤 방법.
  7. 제 6항에 있어서, 상기 중앙 처리 단계는,
    상기 인터럽트 요청 정보 수신 시에, 상기 인터럽트 어드레스가 가리키는 명령어의 수행을 대신하여, 직접 상기 서비스 데이터에 대응하는 서비스 루틴으로 점프하는 것을 특징으로 하는 인터럽트 콘트롤 방법.
  8. 제 6항에 있어서, 상기 인터럽트 콘트롤 단계는,
    IRQ 모드 인터럽트 또는 FIQ 모드 인터럽트를 지원하는 것을 특징으로 하는 인터럽트 콘트롤 방법.
  9. 제 6항에 있어서, 상기 인터럽트 정보 재생성 단계는,
    상기 인터럽트 어드레스, 상기 옵셋 정보, 및 다른 설정값을 합산하여 상기 인터럽트 서비스 어드레스 벡터를 생성하는 것을 특징으로 하는 인터럽트 콘트롤 방법.
  10. 제 9항에 있어서, 상기 다른 설정값은,
    소프트웨어에 의하여 프로그램 될 수 있는 것을 특징으로 하는 인터럽트 콘트롤 방법.
KR1020030039356A 2003-06-18 2003-06-18 하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법 KR20040110167A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030039356A KR20040110167A (ko) 2003-06-18 2003-06-18 하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030039356A KR20040110167A (ko) 2003-06-18 2003-06-18 하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20040110167A true KR20040110167A (ko) 2004-12-31

Family

ID=37382601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030039356A KR20040110167A (ko) 2003-06-18 2003-06-18 하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20040110167A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558597B2 (en) 2017-01-13 2020-02-11 Samsung Electronics Co., Ltd. Application processor and integrated circuit including interrupt controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558597B2 (en) 2017-01-13 2020-02-11 Samsung Electronics Co., Ltd. Application processor and integrated circuit including interrupt controller

Similar Documents

Publication Publication Date Title
KR19990044957A (ko) 데이터 처리기에서의 후속 명령 처리에 영향을 미치는 방법 및장치
JPS62243058A (ja) マルチプロセツサシステムの割込制御方法
JPH06314205A (ja) 割り込み源間の優先順位確立方法及びデータ処理システム
EP0652514B1 (en) Data processing apparatus handling plural divided interruptions
US6154832A (en) Processor employing multiple register sets to eliminate interrupts
JPH01197866A (ja) インターフエース装置と方法
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US5948093A (en) Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state
JP2022550059A (ja) プロセッサおよびその内部の割り込みコントローラ
JP3417463B2 (ja) 割り込み要求を処理する方法及びシステム
US6701388B1 (en) Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
JP2006268753A (ja) Dma回路及びコンピュータシステム
US20140052879A1 (en) Processor, information processing apparatus, and interrupt control method
KR20040110167A (ko) 하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법
US6112272A (en) Non-invasive bus master back-off circuit and method for systems having a plurality of bus masters
US6584514B1 (en) Apparatus and method for address modification in a direct memory access controller
US6665750B1 (en) Input/output device configured for minimizing I/O read operations by copying values to system memory
AU626067B2 (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
US20030018842A1 (en) Interrupt controller
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
EP1193607B1 (en) Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
IE62074B1 (en) Apparatus and method for synchronization of arithmetic exceptions in parallel pipelined execution units
EP1193606B1 (en) Apparatus and method for a host port interface unit in a digital signal processing unit
JP3067253B2 (ja) データ処理装置

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination