KR19990066213A - 우선순위 인터럽트 컨트롤러 - Google Patents

우선순위 인터럽트 컨트롤러 Download PDF

Info

Publication number
KR19990066213A
KR19990066213A KR1019980001924A KR19980001924A KR19990066213A KR 19990066213 A KR19990066213 A KR 19990066213A KR 1019980001924 A KR1019980001924 A KR 1019980001924A KR 19980001924 A KR19980001924 A KR 19980001924A KR 19990066213 A KR19990066213 A KR 19990066213A
Authority
KR
South Korea
Prior art keywords
interrupt
register
priority
decoder
user
Prior art date
Application number
KR1019980001924A
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 KR1019980001924A priority Critical patent/KR19990066213A/ko
Publication of KR19990066213A publication Critical patent/KR19990066213A/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

Landscapes

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

Abstract

본 발명의 우선순위 인터럽트 컨트롤러는 사용자가 인터럽트의 우선순위를 세팅할 수 있는 인터럽트 우선순위 레지스터와 디코더 및 인터럽트 오프셋 레지스터를 포함한다. 마이크로 프로세서에 여러 개의 인터럽트가 동시에 요청될 때 가장 높은 우선순위의 인터럽트를 디코더에서 검출하고, 오프셋 레지스터에서 제공되는 오프셋 어드레스로 분기하여 인터럽트 서비스 루틴을 수행한다. 이는 하드웨어적인 방법으로 수행되는 것으로 인터럽트 서비스 루틴으로 분기하는데 걸리는 지연 시간을 단축할 수 있다. 더욱이 사용자가 임의로 우선순위를 세팅할 수 있도록 하여 사용자에게 보다 나은 편이를 제공할 수 있다.

Description

우선순위 인터럽트 컨트롤러(PRIORITY INTERRUPT CONTROLLER)
본 발명은 인터럽트 컨트롤러에 관한 것으로, 구체적으로는 하드웨어적인 방법으로 우선순위를 결정하는 인터럽트 컨트롤러에 관한 것이다.
일반적인 마이크로 프로세서(micro-processor)는 인터럽트 처리를 위한 인터럽트 컨트롤러를 가지고 있다. 인터럽트 우선순위는 여러 개의 인터럽트가 동시에 발생하였을 때, 먼저 수행할 인터럽트를 결정하기 위해 각 소스에 우선순위를 부여한 인터럽트 시스템을 말한다. 인터럽트 소스가 입력될 때 소프트웨어나 하드웨어적인 방법으로 상기 인터럽트 우선순위를 판단하여 이를 수행한다.
우선순위 인터럽트 방법은 각 장치의 인터럽트의 요청에 따라 각 비트가 개별적으로 세트될 수 있는 레지스터를 사용한다. 우선순위는 이 레지스터의 비트의 위치에 의해 결정된다.
도 1은 일반적인 마이크로 프로세서의 인터럽트 컨트롤러를 개략적으로 나타낸 도면이다.
도 1에 도시된 바와 같이 인터럽트 컨트롤러는 인터럽트 마스크 레지스터(Interrupt Mask Register; IMR)(10), 인터럽트 펜딩 레지스터(Interrupt Pending Register; IPR)(20) 및 인터럽트 제너레이터(Interrupt Generator)(30)로 구성되어 있다.
상기 인터럽트 마스크 레지스터(10)는 각 인터럽트 요청의 상태를 조절할 수 있어서, 인터럽트 프로세싱을 인에이블 시키거나 디스에이블 시킬 때 사용한다. 이는 인터럽트 소스가 입력되더라도 인터럽트 프로세싱을 처리하지 않고자 할 때 인터럽트 소스에 대응되는 비트를 0으로 마스킹하는 것으로 가능하다. 상기 마스크 레지스터(10)는 높은 순위의 인터럽트가 수행되고 때 낮은 순위의 인터럽트가 디스에이블 되도록 프로그램 될 수 있으며, 반면 낮은 순위의 인터럽트가 서비스를 받고 있을 때 높은 순위의 인터럽트가 요청되면 CPU에게 인터럽트를 요청할 수 있도록 한다.
상기 인터럽트 펜딩 레지스터(20)는 상기 마스크 레지스터(10)에 의해 마스킹 되지 않은 인터럽트 소스가 입력되면 그에 대응되는 비트가 세트된다. 이는 두 개 이상의 인터럽트 요청이 동시에 발생하였을 때 높은 우선순위를 가진 입력에 우선권을 주기 위한 것으로 각 장치의 인터럽트의 요청에 따라 대응되는 비트가 개별적으로 세트될 수 있는 레지스터이다. 상기 인터럽트 펜딩 레지스터(20)가 한 비트라도 세트되어 있다면 즉, 인터럽트 요청이 있다면, 인터럽트 제너레이터(30)는 인터럽트 요청 신호(IRQ)를 CPU(40)로 제공한다.
상기 CPU(40)는 인터럽트 요청 신호가 입력되면 어떤 인터럽트가 발생하였는가를 알아야 하며, 또한 동시에 여러 개의 인터럽트가 발생하였을 경우에 어떤 장치를 먼저 서비스할지를 결정해야 한다. 폴링(polling)절차는 소프트웨어적으로 우선순위가 높은 인터럽트를 알아내는 방법이다. 이 방법은 인터럽트가 발생했을 경우, 상기 인터럽트 펜딩 레지스터(20)의 각각의 비트를 차례로 검사하여 세트된 비트 가운데 가장 우선순위가 높은 소스를 찾아내는 것이다. 이 방법의 단점은 많은 인터럽트가 동시에 요청될 때 그들을 모두 조사하는데 많은 시간을 소비해야 한다는 것이다. 이러한 단점은 하드웨어적인 방법으로 해결할 수 있다.
따라서, 본 발명의 목적은 많은 수의 인터럽트가 요구될 때 빠르게 인터럽트 우선순위를 결정할 수 있는 장치를 제공하는데 있다.
도 1은 마이크로 프로세서의 인터럽트 컨트롤러를 개략적으로 나타낸 블록도; 그리고
도 2는 본 발명에 따른 인터럽트 컨트롤러의 바람직한 실시예에 보여주는 개략적인 블록도.
*도면의 주요 부분에 대한 부호의 설명*
10 : 인터럽트 마스크 레지스터 20 : 인터럽트 펜딩 레지스터
30 : 인터럽트 제너레이터 40 : CPU
50 : 인터럽트 우선순위 레지스터 60 : 디코더
70 : 인터럽트 오프셋 레지스터
상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 마이크로 프로세서의 인터럽트 컨트롤러는:
각각의 장치에서 요구하는 인터럽트를 인에이블 또는 디스에이블하기 위한 마스크 레지스터와; 한 개 이상의 인터럽트 소스가 입력될 때 상기 마스크 레지스터에 의해 마스킹 되지 않은 인터럽트 소스에 한하여, 그에 대응하는 비트들이 세트되는 펜딩 레지스터와; 상기 펜딩 레지스터가 한 비트 이상 세트되어 있을 때 상기 마이크로 프로세서로 소정의 인터럽트 요구 신호를 제공하는 인터럽트 제너레이터와; 사용자가 인터럽트의 우선순위를 정하여 저장할 수 있는 인터럽트 우선순위 레지스터와; 상기 펜딩 레지스터와 상기 인터럽트 우선순위 레지스터로부터 가장 우선순위가 높은 인터럽트를 검출하여 소정의 신호를 출력하는 디코더와; 상기 디코더에서 출력된 소정의 신호를 제공받아 소정의 오프셋 어드레스를 상기 마이크로 프로세서로 제공하는 오프셋 레지스터를 포함한다.
(실시예)
이하 본 발명에 따른 실시예를 첨부된 도면 도 2를 참조하여 상세히 설명한다.
본 발명의 신규한 우선순위 인터럽트 컨트롤러는 사용자가 인터럽트의 우선순위를 세팅할 수 있는 인터럽트 우선순위 레지스터와 디코더 및 인터럽트 오프셋 레지스터를 포함한다. 마이크로 프로세서에 여러 개의 인터럽트가 동시에 요청될 때 가장 높은 우선순위의 인터럽트를 디코더에서 검출하고, 오프셋 레지스터에서 제공되는 오프셋 어드레스로 분기하여 인터럽트 서비스 루틴을 수행한다. 이는 하드웨어적인 방법으로 수행되는 것으로 인터럽트 서비스 루틴으로 분기하는데 걸리는 지연 시간을 단축할 수 있다. 더욱이 사용자가 임의로 우선순위를 세팅할 수 있도록 하여 사용자에게 보다 나은 편이를 제공할 수 있다.
도 2는 본 발명에 따른 인터럽트 컨트롤러의 바람직한 실시예에 보여주는 개략적인 블록도이다.
도면에 도시된 바와 같이, 본 발명에 따른 인터럽트 컨트롤러는 종래의 인터럽트 컨트롤러에 인터럽트 우선순위 레지스터(Interrupt PRioriTy Register; IPRTR)(50), 디코더(Decoder)(60) 및 인터럽트 오프셋 레지스터(Interrupt OFfSet Register; IOFSR)(70)를 더 포함한다.
상기 인터럽트 우선순위 레지스터(50)는 사용자가 임의로 각 인터럽트 소스에 대응하는 우선순위를 16진수로 세팅할 수 있어서 사용자의 요구에 따라 우선순위를 정할 수 있는 레지스터이다.
여러 장치가 동시에 인터럽트를 요청하는 경우, 인터럽트 마스크 레지스터(10)에 의해 마스킹 되지 않은 인터럽트 소스들이 인터럽트 펜딩 레지스터(20)에 입력되어 각 인터럽트 소스에 대응되는 비트가 세트된다. 상기 펜딩 레지스터(20)가 한 비트 이상 세트되면 인터럽트 제너레이터(30)는 인터럽트가 발생했음을 알리는 인터럽트 요청 신호(IRQ)를 CPU(40)로 제공한다.
한편, 디코더(60)는 인터럽트 펜딩 레지스터(20)와 인터럽트 우선순위 레지스터(50)로부터 가장 우선 순위가 높은 인터럽트를 검출(detect)하여 소정의 신호를 출력한다. 상기 디코더에서 출력된 소정의 신호는 인터럽트 오프셋 레지스터(Interrupt OFfSet Register)(70)로 입력되고 상기 오프셋 레지스터(70)는 오프셋 어드레스를 버스 버퍼를 통하여 CPU(40)에 제공한다.
인터럽트 제너레이터(30)로부터 인터럽트 요구 입력 신호(IRQ)를 제공받은 CPU(40)는 현재의 프로그램 카운터(Program Counter; PC)의 값을 스택(Stack)에 저장하고, 인터럽트 서비스를 수행하기 위해 상기 인터럽트 오프셋 레지스터(I70)에 의해 미리 지정된 오프셋 어드레스로 분기(Branch)한다. 상기 스택에 저장되는 프로그램 카운터 값은 인터럽트를 수행하고 나서 돌아갈 주소이다.
이상과 같은 본 발명에 의하면, 마이크로 프로세서에 여러 개의 인터럽트가 동시에 요청될 때 가장 높은 우선순위의 인터럽트를 디코더에서 검출하고, 오프셋 레지스터에서 제공되는 오프셋 어드레스로 분기하여 인터럽트 서비스 루틴을 수행한다. 이는 하드웨어적인 방법으로 수행되는 것으로 인터럽트 서비스 루틴으로 분기하는데 걸리는 지연 시간을 단축할 수 있다. 더욱이 사용자가 임의로 우선순위를 세팅할 수 있도록 하여 사용자에게 보다 나은 편이를 제공할 수 있다.

Claims (1)

  1. 마이크로 프로세서의 인터럽트 컨트롤러에 있어서,
    각각의 장치에서 요구하는 인터럽트를 인에이블 또는 디스에이블하기 위한 마스크 레지스터와;
    한 개 이상의 인터럽트 소스가 입력될 때 상기 마스크 레지스터에 의해 마스킹 되지 않은 인터럽트 소스에 한하여, 그에 대응하는 비트들이 세트되는 펜딩 레지스터와;
    상기 펜딩 레지스터가 한 비트 이상 세트되어 있을 때 상기 마이크로 프로세서로 소정의 인터럽트 요구 신호를 제공하는 인터럽트 제너레이터와;
    사용자가 인터럽트의 우선순위를 정하여 저장할 수 있는 인터럽트 우선순위 레지스터와;
    상기 펜딩 레지스터와 상기 인터럽트 우선순위 레지스터로부터 가장 우선순위가 높은 인터럽트를 검출하여 소정의 신호를 출력하는 디코더와;
    상기 디코더에서 출력된 소정의 신호를 제공받아 소정의 오프셋 어드레스를 상기 마이크로 프로세서로 제공하는 오프셋 레지스터를 포함하는 것을 특징으로 하는 인터럽트 컨트롤러.
KR1019980001924A 1998-01-22 1998-01-22 우선순위 인터럽트 컨트롤러 KR19990066213A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980001924A KR19990066213A (ko) 1998-01-22 1998-01-22 우선순위 인터럽트 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980001924A KR19990066213A (ko) 1998-01-22 1998-01-22 우선순위 인터럽트 컨트롤러

Publications (1)

Publication Number Publication Date
KR19990066213A true KR19990066213A (ko) 1999-08-16

Family

ID=65892763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980001924A KR19990066213A (ko) 1998-01-22 1998-01-22 우선순위 인터럽트 컨트롤러

Country Status (1)

Country Link
KR (1) KR19990066213A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030004763A (ko) * 2001-07-06 2003-01-15 삼성전자 주식회사 인터럽트 처리장치
US7484024B2 (en) 2004-02-27 2009-01-27 Samsung Electronics Co., Ltd Apparatus and method for interrupt source signal allocation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030004763A (ko) * 2001-07-06 2003-01-15 삼성전자 주식회사 인터럽트 처리장치
US7484024B2 (en) 2004-02-27 2009-01-27 Samsung Electronics Co., Ltd Apparatus and method for interrupt source signal allocation

Similar Documents

Publication Publication Date Title
KR920004403B1 (ko) 인터럽트제어장치
US9792232B2 (en) Techniques for queueing interrupts in a data processing system
US5905898A (en) Apparatus and method for storing interrupt source information in an interrupt controller based upon interrupt priority
EP0702297A1 (en) A data processor with breakpoint circuit and method therefor
US5850555A (en) System and method for validating interrupts before presentation to a CPU
WO1997044738A1 (en) Multiprocessing interrupt controller on i/o bus
KR20020087387A (ko) 프로세서 시스템
KR19990066213A (ko) 우선순위 인터럽트 컨트롤러
US6292866B1 (en) Processor
JP2005242806A (ja) データ処理装置
JP2797760B2 (ja) 並列処理コンピュータシステム
US20030023799A1 (en) Interrupt processing apparatus
KR20160134994A (ko) 모듈형 plc 시스템의 인터럽트 처리 방법
JPH08287003A (ja) Dmaコントローラ
KR100209595B1 (ko) 인터럽트 발생장치 및 발생방법
KR940002711A (ko) 인터럽트 처리장치 및 그 방법
JPS59123933A (ja) アドレス比較方式
JPH11167500A (ja) エミュレータ装置のイベント回路及びデバッグシステム
KR200326854Y1 (ko) 프로세서간의인터럽트처리장치
JPH06103110A (ja) ブレークポイント設定方式
JPH02143361A (ja) 処理順序決定回路
JPH05313917A (ja) 割込み制御回路
JP2658342B2 (ja) データ処理装置
JPH09231203A (ja) ベクトルストア追い越し制御回路
KR100204571B1 (ko) 마아크로 제어기에 의한 이벤트 신호 제어 회로

Legal Events

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