KR100498469B1 - 지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법 - Google Patents

지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법 Download PDF

Info

Publication number
KR100498469B1
KR100498469B1 KR10-2002-0082676A KR20020082676A KR100498469B1 KR 100498469 B1 KR100498469 B1 KR 100498469B1 KR 20020082676 A KR20020082676 A KR 20020082676A KR 100498469 B1 KR100498469 B1 KR 100498469B1
Authority
KR
South Korea
Prior art keywords
interrupt
value
interrupt table
address
pointer information
Prior art date
Application number
KR10-2002-0082676A
Other languages
English (en)
Other versions
KR20040056125A (ko
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 KR10-2002-0082676A priority Critical patent/KR100498469B1/ko
Publication of KR20040056125A publication Critical patent/KR20040056125A/ko
Application granted granted Critical
Publication of KR100498469B1 publication Critical patent/KR100498469B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs

Landscapes

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

Abstract

지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법이 개시된다. 상기 인터럽트 콘트롤 시스템은, 먼저, 우선 순위 인코더가 최고 순위별로 인터럽트 값을 발생시킨다. 인터럽트 테이블 베이스 레지스터는 상기 인터럽트 값에 대응하는 인터럽트 테이블 베이스 값을 추출하여 출력한다. 이에 따라, 합산기는 인터럽트 테이블 포인터 정보를 발생시킨다. 소정의 메모리를 구비하는 MCU는, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드하고, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 리드하여, 상기 프로그램 어드레스에 따른 서비스 루틴을 수행한다. 따라서, 비교 명령의 수행 없이, 단지 4개의 시스템 사이클만에 인터럽트 서비스 루틴으로 프로그램 시퀀스가 변경되도록 할 수 있으므로, 인터럽트 처리 지연 시간을 줄일 수 있고, 전체 시스템의 성능을 향상시킨다.

Description

지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법{Interrupt control system providing for the least delay and method thereof}
본 발명은 MCU(micro controller unit)에 관한 것으로, 특히 MCU(micro controller unit) 주변의 인터럽트(interrupt) 콘트롤 시스템 및 그 방법에 관한 것이다.
일반적인 컴퓨터, 또는 MCU(micro controller unit) 등의 중앙 콘트롤 유닛(unit)을 사용하는 디스플레이 장치나 정보 통신 시스템에서는, MCU(micro controller unit)가 정해진 인터럽트(interrupt) 소오스에서 발생되는 인터럽트(interrupt) 요청 정보에 대응한 적절한 서비스 루틴을 계산하여 프로그램 루틴을 변경시킨다. 이때, 인터럽트(interrupt) 요청 정보가 MCU(micro controller unit)에 처리를 요청하였을 때, MCU(micro controller unit)는 어느 인터럽트(interrupt) 소오스가 인터럽트(interrupt) 요청신호를 발생시켰는지를 빠른 시간 내에 파악하여 해당되는 인터럽트(interrupt) 서비스 루틴을 수행하여야 한다. 즉, MCU(micro controller unit)는 요청되는 인터럽트(interrupt) 값(ID)에 응답하여, 인터럽트(interrupt) 콘트롤 블럭에서 그 ID 값에 적절한 서비스 루틴으로 프로그램이 점프하도록 프로그램 시퀀스를 수행하여야 한다.
일반적인 인터럽트(interrupt) 처리 시퀀스는 다음과 같다. 일반 주변 회로 블럭(Peripheral Block)에서 발생하는 인터럽트(interrupt) 또는 외부 인터럽트(interrupt) 등의 다양한 인터럽트(interrupt) 소오스들로부터 인터럽트(interrupt)가 발생하면, 먼저, 각 인터럽트(interrupt) 소오스에 대응되는 인터럽트(interrupt) 펜딩(Pending) 레지스터 비트 값이 변경된다. 이때, MCU(micro controller unit)에도 인터럽트(interrupt)가 발생되었다는 정보가 전달되고, 펜딩된 인터럽트(interrupt) 정보들은 우선 순위 인코딩에 의하여 우선 순위가 재배열되며, 이에 따라 최고 우선 순위에 대응하는 인터럽트(interrupt) ID값을 발생시킨다. 인터럽트(interrupt) 값(ID)은 소정의 레지스터(IIR 레지스터)에 저장되고, MCU(micro controller unit)는 IIR 레지스터에 저장된 인터럽트(interrupt) 값(ID)을 읽어서, [알고리즘 1]과 같은 비교 명령어(CMP)를 수행한 뒤, 해당되는([알고리즘 1]에서 "LE"는 일치함을 나타냄) 인터럽트(interrupt)를 서비스하는 루틴으로 점프([알고리즘 1]에서 "jr"은 점프를 나타냄)하여 프로그램 시퀀스를 변경한다. 여기서, 비교 명령어(CMP)의 수행에서는 미리 설정해 놓은 인터럽트 소오스들 중 어느 인터럽트인지를 판단하여 해당 인터럽트로의 점프 경로를 발견하기 위하여, 인터럽트 수(n)만큼 비교 연산이 이루어진다. 발생되는 개별 인터럽트들을 하나의 MCU가 파악하여 해당 서비스 루틴이 이루어질 수 있게 하기 위하여는 이와 같은 비교 연산이 필수적이다. 즉, MCU가 읽어온 인터럽트 값(ID)에 해당하는 인터럽트 서비스 루틴 수행을 위한 해당 회로가 동작되도록 하기 위하여, 상기 비교 연산에 의하여 해당 서비스 루틴으로의 점프 경로가 지정될 수 있고, 점프 경로가 지정되면 해당 인터럽트에 따른 서비스가 실행된다.
[알고리즘 1]
ld r0, #(IO_BASE + IIR)
ld r0, @r0 ; read IIR
CMP r0, #01h
jr LE, intr_1st
CMP r0, #02h
jr LE, intr_2nd
CMP r0, #03h
jr LE, intr_3th
...
CMP r0, #nh
jr LE, intr_nth
intr_1st:
1st interrupt service routine
intr_2nd:
2nd interrupt service routine
intr_3th:
3th interrupt service routine
...
intr_nth:
nth interrupt service routine
그러나, 이와 같은 일반적인 인터럽트(interrupt) 처리 시퀀스는, 최대 인터럽트(interrupt) 소오스의 수([알고리즘 1]에서 "n")만큼 반복하여 인터럽트(interrupt) 값(ID)을 비교하는 명령어를 수행([알고리즘 1]에서 "CMP r0, #nh")하여야 하므로, 인터럽트(interrupt) 처리 시간를 지연시키고, 이로 인해 전체 시스템의 성능을 저하시킨다.
따라서, 본 발명이 이루고자하는 기술적 과제는, 지연 시간을 최소화한 인터럽트(interrupt) 콘트롤 시스템을 제공하는 데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 지연 시간을 최소화한 인터럽트(interrupt) 콘트롤 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 인터럽트 콘트롤 시스템은, 우선 순위 인코더, 인터럽트 테이블 베이스 레지스터, 합산기, 인터럽트 정보 레지스터, MCU, 및 데이터 메모리를 구비한다.
상기 우선 순위 인코더는 인터럽트 요청 정보들을 수신하여 우선 순위를 재배열하고, 최고 순위별로 인터럽트 값을 발생시킨다.
상기 인터럽트 테이블 베이스 레지스터는 상기 인터럽트 요청 정보들 각각에 대응하는 인터럽트 테이블 베이스 값들을 저장하고 있고, 상기 인터럽트 값에 대응하는 인터럽트 테이블 베이스 값을 추출하여 출력한다.
상기 합산기는 상기 인터럽트 값과 상기 추출된 인터럽트 테이블 베이스 값을 합산하여 인터럽트 테이블 포인터 정보를 발생시킨다.
상기 인터럽트 정보 레지스터는 상기 인터럽트 테이블 포인터 정보를 업데이트시켜 저장한다.
상기 MCU는 소정의 메모리를 구비하고, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드하고, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 리드하여, 상기 프로그램 어드레스에 따른 서비스 루틴을 수행한다.
상기 데이터 메모리는 상기 인터럽트 테이블 값별로 상기 프로그램 어드레스를 저장하고 있다.
여기서, 상기 인터럽트 테이블 값은, 상기 인터럽트 테이블 포인터 정보를 상기 소정의 메모리에 대한 어드레스로하여, 상기 소정의 메모리로부터 리드되는 값인 것을 특징으로 한다.
상기 프로그램 어드레스는, 상기 인터럽트 테이블 값을 상기 데이터 메모리에 대한 어드레스로하여, 상기 데이터 메모리로부터 리드되는 어드레스인 것을 특징으로 한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 인터럽트 콘트롤 방법은, 인터럽트 테이블 값별로 프로그램 어드레스를 저장하고 있는 데이터 메모리, 및 인터럽트 요청 정보를 처리하여 해당 서비스 루틴을 수행하는 MCU를 구비하는 인터럽트 콘트롤 시스템의 인터럽트 콘트롤 방법에 있어서, 다음과 같은 단계를 구비한다.
즉, 본 발명에 따른 인터럽트 콘트롤 방법은, 먼저, 상기 인터럽트 콘트롤 시스템이 인터럽트 요청 정보들을 수신하여 우선 순위를 재배열하고, 최고 순위별로 인터럽트 값을 발생시킨다.
다음에, 상기 인터럽트 요청 정보들 각각에 대응하는 인터럽트 테이블 베이스 값들을 저장하고 있는 상기 인터럽트 콘트롤 시스템은, 상기 인터럽트 값에 대응하는 인터럽트 테이블 베이스 값을 추출하여 출력한다.
상기 인터럽트 콘트롤 시스템은, 상기 인터럽트 값과 상기 추출된 인터럽트 테이블 베이스 값을 합산하여 인터럽트 테이블 포인터 정보를 발생시킨다.
상기 인터럽트 콘트롤 시스템은, 상기 인터럽트 테이블 포인터 정보를 업데이트시켜 저장한다.
소정의 메모리를 구비하는 상기 MCU에 의하여, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드한다. 또한, 상기 MCU는, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 상기 데이터 메모리로부터 리드하고, 상기 프로그램 어드레스에 따른 서비스 루틴을 수행한다.
여기서, 상기 인터럽트 테이블 값은, 상기 인터럽트 테이블 포인터 정보를 상기 소정의 메모리에 대한 어드레스로하여, 상기 소정의 메모리로부터 리드되는 값인 것을 특징으로 한다.
상기 프로그램 어드레스는, 상기 인터럽트 테이블 값을 상기 데이터 메모리에 대한 어드레스로하여, 상기 데이터 메모리로부터 리드되는 어드레스인 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 인터럽트(interrupt) 콘트롤 시스템을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 인터럽트(interrupt) 콘트롤 시스템은, 우선 순위 인코더(priority encoder)(110), 인터럽트 테이블 베이스 레지스터(interrupt table base register)(120), 합산기(adder)(130), 인터럽트 정보 레지스터(interrupt information register)(140), MCU(micro controller unit)(150), 및 데이터 메모리(data memory)(160)를 구비한다.
상기 우선 순위 인코더(priority encoder)(110)는 인터럽트 요청 정보들(IR)을 수신하여 우선 순위를 재배열하고, 최고 순위별로 인터럽트 값(ID)을 발생시킨다. 즉, 상기 우선 순위 인코더(priority encoder)(110)는 펜딩(pending) 레지스터 등으로부터 입력되는 인터럽트 요청 정보들(IR)을 입력받아, 어떤 인터럽트를 먼저 수행할 것인지 정하여 놓은 일반적인 알고리즘대로, 최고 순위와 그 하위 순위를 정하여 최고 순위에 해당하는 인터럽트 요청 정보에 대한 인터럽트 값(ID)을 발생시킨다.
상기 인터럽트 테이블 베이스 레지스터(interrupt table base register)(120)는 상기 인터럽트 요청 정보들(IR) 각각에 대응하는 인터럽트 테이블 베이스 값(IRQTBR)들을 저장하고 있고, 상기 인터럽트 값(ID)에 대응하는 인터럽트 테이블 베이스 값(IRQTBR)을 추출하여 출력한다. 여기서, 인터럽트 테이블 베이스 값(IRQTBR)은 인터럽트 요청 정보들(IR) 각각에 따라 다르게 지정되어 있고, 상기 인터럽트 값(ID)과 함께 인터럽트 테이블 포인터 정보로 된다.
상기 합산기(adder)(130)는 상기 인터럽트 값(ID)과 상기 추출된 인터럽트 테이블 베이스 값(IRQTBR)을 합산하여 인터럽트 테이블 포인터 정보를 발생시킨다.
상기 인터럽트 정보 레지스터(interrupt information register)(140)는 상기 인터럽트 테이블 포인터 정보를 업데이트시켜 저장한다. 즉, 상기 인터럽트 정보 레지스터(interrupt information register)(140)는 최고 순위에 해당하는 인터럽트 요청 정보가 계속적으로 입력되어 새로운 인터럽트 테이블 포인터 정보가 발생될 때마다, 업데이트시켜 저장한다.
상기 MCU(micro controller unit)(150)는 소정의 메모리를 구비하고, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드(read)하고, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 리드하여, 상기 프로그램 어드레스에 따른 서비스 루틴을 수행한다. 즉, 상기 인터럽트 테이블 값이 상기 소정의 메모리로부터 리드될 때, 상기 인터럽트 테이블 포인터 정보는 상기 소정의 메모리에 대한 어드레스로 된다. 또한, 상기 프로그램 어드레스가 상기 데이터 메모리(data memory)(160)로부터 리드될 때, 상기 인터럽트 테이블 값은 상기 데이터 메모리(data memory)(160)에 대한 어드레스로 된다. 여기서, 소정의 메모리는 인터럽트 테이블 포인터 정보별로 인터럽트 테이블 값을 저장하고 있다. 또한, 상기 MCU(micro controller unit)(150)는 데이터 메모리(data memory)(160)로부터 프로그램 어드레스를 리드한다.
상기 데이터 메모리(data memory)(160)는 상기 인터럽트 테이블 값별로 상기 프로그램 어드레스를 저장하고 있다. 여기서, 상기 프로그램 어드레스는 새로운 서비스 루틴으로의 변경을 위한, 서비스 루틴 또는 그 어드레스 등을 말한다.
상기한 바와 같은, 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템의 동작을 좀더 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템의 동작 설명을 위한 흐름도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템은, 인터럽트 테이블 값별로 프로그램 어드레스를 저장하고 있는 데이터 메모리(data memory)(160), 및 인터럽트 요청 정보를 처리하여 해당 서비스 루틴을 수행하는 MCU(micro controller unit)(150)를 구비하는 인터럽트 콘트롤 시스템으로서, 다음과 같이 인터럽트 콘트롤 수행을 한다.
즉, 본 발명의 일실시예에 따른 인터럽트 콘트롤 방법은, 비교 명령을 여러번 수행하여 일치되는 서비스 루틴을 찾아가는 종래의 [알고리즘 1]과는 달리 [알고리즘 2]와 같이 인터럽트 테이블 포인터 정보를 어드레스로 하여 직접 메모리에서 인터럽트 테이블 값을 리드하는 방법으로 수행한다.
[알고리즘 2]
ld r0, #(IO_BASE + IIR)
ld r0, @r0 ; read table index
ld r0, @r0 ; read table(service address)
jmpd r0 ; jump service routine
먼저, 상기 인터럽트 콘트롤 시스템내에 구비된 우선 순위 인코더(priority encoder)(110)가 인터럽트 요청 정보들(IR)을 수신한다(S210). 이에 따라, 우선 순위 인코더(priority encoder)(110)는 인터럽트 요청 정보들(IR)에 대한 우선 순위를 재배열하고, 최고 순위별로 인터럽트 값(ID)을 발생시킨다(S220). 이때, 상기 인터럽트 요청 정보들(IR) 각각에 대응하는 인터럽트 테이블 베이스 값(IRQTBR)들을 저장하고 있는 상기 인터럽트 콘트롤 시스템내의 인터럽트 테이블 베이스 레지스터(interrupt table base register)(120)는, 상기 인터럽트 값(ID)에 대응하는 인터럽트 테이블 베이스 값(IRQTBR)을 추출하여 출력한다(S220).
다음에, 상기 인터럽트 콘트롤 시스템내에 구비된 합산기(adder)(130)는, 상기 인터럽트 값(ID)과 상기 추출된 인터럽트 테이블 베이스 값(IRQTBR)을 합산하여 인터럽트 테이블 포인터 정보를 발생시킨다(S230). 이때 발생되는 인터럽트 테이블 포인터 정보는 인터럽트 정보 레지스터(interrupt information register)(140)에 업데이트되어 저장된다(S240).
소정의 메모리를 구비하는 상기 MCU(micro controller unit)(150)는, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드한다(S250). 또한, 상기 MCU(micro controller unit)(150)는, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 상기 데이터 메모리(data memory)(160)로부터 리드하고(S260), 상기 프로그램 어드레스에 따른 서비스 루틴을 수행한다(S270). 여기서, 상기 인터럽트 테이블 값은, 상기 인터럽트 테이블 포인터 정보를 상기 소정의 메모리에 대한 어드레스로하여, 상기 소정의 메모리로부터 리드되는 값이다. 상기 프로그램 어드레스는, 상기 인터럽트 테이블 값을 상기 데이터 메모리(data memory)(160)에 대한 어드레스로하여, 상기 데이터 메모리(data memory)(160)로부터 리드되는 어드레스이다. 즉, 실제 적용에서, 예를 들면, 발생 디바이스(device)별 해당 인터럽트 마다 또는 같은 디바이스라도 구분된 인터럽트마다 등과 같이 인터럽트 소오스 종류마다 서로 다른 인터럽트 테이블 베이스 값(IRQTBR)을 미리 설정하고, 이러한 인터럽트 테이블 베이스 값(IRQTBR) 각각에 대응하는 각각의 인터럽트 값(ID)를 미리 설정함으로써, MCU 주변의 인터럽트를 용이하게 관리할 수 있다. 인터럽트 테이블 포인터 정보는 상기 인터럽트 테이블 베이스 값(IRQTBR)과 해당 인터럽트 값(ID)의 합산에 의하여 발생되고, 이에 따라 종래와 같은 비교 명령이나 연산의 수행 대신에 해당 인터럽트 테이블 값이 리드되면, 해당 프로그램 어드레스로의 인터럽트 서비스 루틴이 수행될 수 있다.
위에서 기술한 바와 같이 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템은, 먼저, 우선 순위 인코더(priority encoder)(110)가 인터럽트 요청 정보들(IR)을 수신하여 우선 순위를 재배열하고, 최고 순위별로 인터럽트 값(ID)을 발생시킨다. 상기 인터럽트 요청 정보들(IR) 각각에 대응하는 인터럽트 테이블 베이스 값(IRQTBR)들을 저장하고 있는 인터럽트 테이블 베이스 레지스터(interrupt table base register)(120)는 상기 인터럽트 값(ID)에 대응하는 인터럽트 테이블 베이스 값(IRQTBR)을 추출하여 출력한다. 이에 따라, 합산기(adder)(130)는 상기 인터럽트 값(ID)과 상기 추출된 인터럽트 테이블 베이스 값(IRQTBR)을 합산하여 인터럽트 테이블 포인터 정보를 발생시킨다. 이때, 발생된 상기 인터럽트 테이블 포인터 정보는 인터럽트 정보 레지스터(interrupt information register)(140)에 업데이트되어 저장된다. 소정의 메모리를 구비하는 MCU(micro controller unit)(150)는, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드하고, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 리드하여, 상기 프로그램 어드레스에 따른 서비스 루틴을 수행한다. 데이터 메모리(data memory)(160)에는 상기 인터럽트 테이블 값별로 상기 프로그램 어드레스를 저장하고 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 인터럽트 콘트롤 시스템은, MCU(micro controller unit)가 인터럽트 테이블 베이스 값(IRQTBR)을 인터럽트 값(ID)과 합산한 정보, 즉, 인터럽트 테이블 포인터 정보를 기준으로, 직접 인터럽트 테이블 값을 리드하여 프로그램 루틴이 변경되도록 하므로, 종래의 비교 명령의 수행은 하지 않고, 단지 4개의 시스템 사이클만에 인터럽트 서비스 루틴으로 프로그램 시퀀스가 변경되도록 할 수 있다. 따라서, 인터럽트 처리 지연 시간이 줄어들고, 전체 시스템의 성능을 향상시킨다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일실시예에 따른 인터럽트 콘트롤 시스템의 동작 설명을 위한 흐름도이다.

Claims (6)

  1. 인터럽트 요청 정보들을 수신하여 우선 순위를 재배열하고, 최고 순위별로 인터럽트 값을 발생시키는 우선 순위 인코더;
    상기 인터럽트 요청 정보들 각각에 대응하는 인터럽트 테이블 베이스 값들을 저장하고 있고, 상기 인터럽트 값에 대응하는 인터럽트 테이블 베이스 값을 추출하여 출력하는 인터럽트 테이블 베이스 레지스터;
    상기 인터럽트 값과 상기 추출된 인터럽트 테이블 베이스 값을 합산하여 인터럽트 테이블 포인터 정보를 발생시키는 합산기;
    상기 인터럽트 테이블 포인터 정보를 업데이트시켜 저장하는 인터럽트 정보 레지스터;
    소정의 메모리를 구비하고, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드하고, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 리드하여, 상기 프로그램 어드레스에 따른 서비스 루틴을 수행하는 MCU; 및
    상기 인터럽트 테이블 값별로 상기 프로그램 어드레스를 저장하고 있는 데이터 메모리를 구비하는 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  2. 제 1항에 있어서, 상기 인터럽트 테이블 값은,
    상기 인터럽트 테이블 포인터 정보를 상기 소정의 메모리에 대한 어드레스로하여, 상기 소정의 메모리로부터 리드되는 값인 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  3. 제 1항에 있어서, 상기 프로그램 어드레스는,
    상기 인터럽트 테이블 값을 상기 데이터 메모리에 대한 어드레스로하여, 상기 데이터 메모리로부터 리드되는 어드레스인 것을 특징으로 하는 인터럽트 콘트롤 시스템.
  4. 인터럽트 테이블 값별로 프로그램 어드레스를 저장하고 있는 데이터 메모리, 및 인터럽트 요청 정보를 처리하여 해당 서비스 루틴을 수행하는 MCU를 구비하는 인터럽트 콘트롤 시스템의 인터럽트 콘트롤 방법에 있어서,
    상기 인터럽트 콘트롤 시스템에 의하여, 인터럽트 요청 정보들을 수신하여 우선 순위를 재배열하고, 최고 순위별로 인터럽트 값을 발생시키는 단계;
    상기 인터럽트 요청 정보들 각각에 대응하는 인터럽트 테이블 베이스 값들을 저장하고 있는 상기 인터럽트 콘트롤 시스템에 의하여, 상기 인터럽트 값에 대응하는 인터럽트 테이블 베이스 값을 추출하여 출력하는 단계;
    상기 인터럽트 콘트롤 시스템에 의하여, 상기 인터럽트 값과 상기 추출된 인터럽트 테이블 베이스 값을 합산하여 인터럽트 테이블 포인터 정보를 발생시키는 단계;
    상기 인터럽트 콘트롤 시스템에 의하여, 상기 인터럽트 테이블 포인터 정보를 업데이트시켜 저장하는 단계;
    소정의 메모리를 구비하는 상기 MCU에 의하여, 상기 인터럽트 테이블 포인터 정보에 대응되어 있는 인터럽트 테이블 값을 상기 소정의 메모리로부터 리드하는 단계;
    상기 MCU에 의하여, 상기 인터럽트 테이블 값에 대응되어 있는 프로그램 어드레스를 상기 데이터 메모리로부터 리드하는 단계; 및
    상기 MCU에 의하여, 상기 프로그램 어드레스에 따른 서비스 루틴을 수행하는 단계를 구비하는 것을 특징으로 하는 인터럽트 콘트롤 방법.
  5. 제 4항에 있어서, 상기 인터럽트 테이블 값은,
    상기 인터럽트 테이블 포인터 정보를 상기 소정의 메모리에 대한 어드레스로하여, 상기 소정의 메모리로부터 리드되는 값인 것을 특징으로 하는 인터럽트 콘트롤 방법.
  6. 제 4항에 있어서, 상기 프로그램 어드레스는,
    상기 인터럽트 테이블 값을 상기 데이터 메모리에 대한 어드레스로하여, 상기 데이터 메모리로부터 리드되는 어드레스인 것을 특징으로 하는 인터럽트 콘트롤 방법.
KR10-2002-0082676A 2002-12-23 2002-12-23 지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법 KR100498469B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0082676A KR100498469B1 (ko) 2002-12-23 2002-12-23 지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0082676A KR100498469B1 (ko) 2002-12-23 2002-12-23 지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20040056125A KR20040056125A (ko) 2004-06-30
KR100498469B1 true KR100498469B1 (ko) 2005-07-01

Family

ID=37348544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0082676A KR100498469B1 (ko) 2002-12-23 2002-12-23 지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100498469B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318452B2 (en) 2015-12-04 2019-06-11 Samsung Electronics Co., Ltd. Processor and controlling method thereof to process an interrupt

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102340871B1 (ko) * 2019-11-25 2021-12-20 주식회사 알티스트 인터럽트 처리 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318452B2 (en) 2015-12-04 2019-06-11 Samsung Electronics Co., Ltd. Processor and controlling method thereof to process an interrupt

Also Published As

Publication number Publication date
KR20040056125A (ko) 2004-06-30

Similar Documents

Publication Publication Date Title
EP2077503A1 (en) Interrupt control device of small hardware size which deals with much interrupt processing flexibility
US20030204655A1 (en) Prioritizing vector generation in interrupt controllers
US7328295B2 (en) Interrupt controller and interrupt controlling method for prioritizing interrupt requests generated by a plurality of interrupt sources
JP4817834B2 (ja) 割り込み制御装置及び割り込み制御方法
KR100498469B1 (ko) 지연 시간을 최소화한 인터럽트 콘트롤 시스템 및 그 방법
KR100528476B1 (ko) 컴퓨터 시스템의 인터럽트 처리 장치
JPH0619711B2 (ja) 優先ブランチ機構を備えたデータ処理システム
JP2003058381A (ja) プログラムによる例外処理設定を可能にしたプロセッサ
US7739438B2 (en) Method for priority-encoding interrupts and vectoring to interrupt code
US20100125720A1 (en) Instruction mode identification apparatus and method
TWI798976B (zh) 直接記憶體存取電路、其操作方法,以及記憶體存取指令的產生方法
US5732252A (en) Program counter system capable of incrementing or decrementing after a conditional jump instruction
JP2798275B2 (ja) 仮想記憶アドレス空間アクセス制御方式
JPH06324861A (ja) Cpu制御システム及び制御方法
US20040143692A1 (en) Method for controlling interrupts and auxiliary control circuit
US20050021894A1 (en) Method and system for interrupt mapping
CN114116555A (zh) 直接存储器访问电路、操作方法及存取指令的产生方法
JP2635863B2 (ja) 中央処理装置
CN116361079A (zh) 堆栈切换方法、堆栈切换装置、处理器以及存储介质
KR20230095775A (ko) Ndp 기능을 포함하는 메모리 확장 장치 및 이를 포함하는 가속기 시스템
JPH0895805A (ja) タスク管理装置
JP2000250762A (ja) マイクロコンピュータ
KR20030037572A (ko) 인터럽트 컨트롤러
JPS63229530A (ja) 割込み制御方式
KR20040110167A (ko) 하드웨어와 소프트웨어의 코워크로 강화된 벡터드인터럽트 콘트롤 시스템 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee