KR100186505B1 - 인터럽트 발생회로 - Google Patents

인터럽트 발생회로 Download PDF

Info

Publication number
KR100186505B1
KR100186505B1 KR1019960006724A KR19960006724A KR100186505B1 KR 100186505 B1 KR100186505 B1 KR 100186505B1 KR 1019960006724 A KR1019960006724 A KR 1019960006724A KR 19960006724 A KR19960006724 A KR 19960006724A KR 100186505 B1 KR100186505 B1 KR 100186505B1
Authority
KR
South Korea
Prior art keywords
interrupt
output
unit
signal
delay
Prior art date
Application number
KR1019960006724A
Other languages
English (en)
Other versions
KR970066868A (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 KR1019960006724A priority Critical patent/KR100186505B1/ko
Publication of KR970066868A publication Critical patent/KR970066868A/ko
Application granted granted Critical
Publication of KR100186505B1 publication Critical patent/KR100186505B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0018Industry standard architecture [ISA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]

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

본 발명은 하나의 인터럽트 핀에 디바이스에서 셋팅된 인터럽트 번호를 실어 시스템으로 출력하는 인터럽트 발생회로에 관한 것으로서, 특히 쓰고자 하는 인터럽트(IRQ) 번호가 셋팅되는 인터럽트 레지스터와, 인터럽트 요청을 알리는 내부 인터럽트 신호 발생시 상기 인터럽트 레지스터에 셋팅된 인터럽트(IRQ) 번호를 엔코딩하여 다수개의 인터럽트 핀중 한핀에 실어 시리얼로 출력하는 인터럽트 엔코딩부가 포함되는 외부 디바이스와, 상기 외부 디바이스의 인터럽트 엔코딩부로부터 엔코딩되어 소정 인터럽트 핀을 통해 제공되는 인터럽트 신호를 디코딩하여 실질적인 인터럽트(IRQ) 번호를 알아내는 인터럽트 디코딩부와, 상기 인터럽트 디코딩부에서 디코딩딘 인터럽트(IRQ) 번호에 해당하는 인터럽트를 실행하도록 제어하는 인터럽트 콘트롤러가 포함되는 시스템을 구비함으로써, 소프트웨어의 역할이 줄어들어 처리 속도가 빨라지고, 인터럽트 엔코딩에 의해 시스템의 역할은 단지 디코딩에 의한 IRQ 번호 발생하므로 시스템의 구성이 간단해진다.

Description

인터럽트 발생회로
제1도는 일반적인 ISA 버스 구조에서의 인터럽트 발생회로를 나타낸 블럭도
제2도는 종래의 PCI 버스 구조에서의 인터럽트 발생회로를 나타낸 블럭도
제3도는 본 발명에 따른 PCI 버스 구조에서의 인터럽트 발생회로를 나타낸 블럭도
제4도는 상기 제3도의 인터럽트 엔코딩부의 상세 블럭도
제5도는 상기 제4도의 각 부의 동작 타이밍도
제6도는 상기 제4도의 신호 발생부의 상세 회로도
제7도는 상기 제6도의 각 부의 동작 타이밍도
* 도면의 주요부분에 대한 부호의 설명
31 : 외부 디바이스 31-1 : 인터럽트 엔코딩부
33 : 시스템 33-1 : 인터럽트 디코딩부
33-2 : 인터럽트 콘트롤러 23-1 : 인터럽트 레지스터
41, 70 : 플립플롭 42 : 3비트 다운카운터
43, 47 : 멀티플렉서 44, 62~64, 66~68 : 인버터
45, 61, 69 : 노아 게이트 46 : 신호 발생부
65 : 앤드 게이트
본 발명은 인터럽트 발생회로에 관한 것으로서, 특히 하나의 인터럽트 핀에 엔코딩된 인터럽트 번호를 싣고 클럭에 동기시켜 시리얼하게 출력하는 인터럽트 발생회로에 관한 것이다.
일반적으로 버스(BUS)란 중앙처리장치(CPU), 메모리와 함께 퍼스널 컴퓨터(PC)를 구성하는 3대 구성요소의 하나로서 PC 내부에 발생하는 수많은 데이타가 통과하는 통로라 할수 있다.
이때, 버스를 통과하는 신호를 데이타화된 8비트, 즉 1바이트 단위로 통과한다.
때문에 버스의 두께도 8의 배수체계인 16,32,64라는 숫자의 비트로 표현된다.
따라서, 아이사(Industry Standard Architecture ; ISA) 피씨아이(Peripheral Component Interconnect ; PCI)등 버스 표준은 고유한 버스통로 두께를 가지고 있다.
여기서, ISA 버스 표준은 IBM이 286 컴퓨터를 제조하면서 내부에 장착된 80286 마치크로프로세서의 규격에 맞게 개발한 것으로, 모두 98개의 회로선을 갖고 있으며, IRQ0~IRQ15까지의 인터럽트 핀을 시스템 디자이너와 애드인 카드(Add-in Card)에 제공함으로써, 유저는 자신의 쓰고자 하는 인터럽트를 활용할 수 있다.
그러나, PC 환경이 급속도로 발전하면서 기존 ISA 버스 방식으로는 PC 시스템 운용에 문제점이 발생하기 시작하였다. 즉, PC가 고성능화되어가면서 내부에서 처리되는 데이타량이 많아져 버스에 병목현상이 나타나고 데이타의 통로 역할을 하는 버스의 크기와 처리속도의 향상이 필요해졌다.
따라서, PC의 고성능화에 따라 발전된 버스 표준중의 하나가 PCI 버스 표준이다.
상기 PCI 버스 표준은 메모리와 CPU간에 주고받는 데이타 통로를 칭하는 로컬버스 방식의 하나로서, CPU와 독립적으로 작용하며 인텔사가 발표했다.
PCI 버스 구조는 동일한 처리효율을 유지하면서 최대 10개의 주변기기를 연결할 수 있고, 32비트와 64비트 규격을 모두 지원하고 있다.
제1도는 일반적인 ISA 버스 구조상에서의 인터럽트 발생회로를 나타낸 블럭도로서, 시스템(11)에서 제공할 수 있는 인터럽트IRQ(15:0)를 외부 디바이스(13)에서 모두 활용하고 있다.
즉, IRQ0~IRQ15까지의 인터럽트 핀이 시스템(11)과 외부 디바이스(13) 사이에 연결되에 있으므로 외부 디바이스(13)에서는 최고 16개의 인터럽트를 자유롭게 활용할 수 있다.
제2도는 종래의 PCI 버스 구조상에서의 인터럽트 발생회로를 나타낸 블럭도로서, 시스템(21)에는 인터럽트 처리를 위해 인터럽트 콘트롤러(21-1)와 글루 로직(Glue Logic)부(21-3)가 포함되어 있고, 외부 디바이스(23)에는 인터럽트 제어를 위한 인터럽트 레지스터(23-1)가 포함되어 있다.
또한, 시스템(21)과 외부 디바이스(23) 사이에는 4개의 인터럽트 핀(INTA#~INTD#)이 연결되어 있고, 상기 시스템(21)의 인터럽트 콘트롤러(21-1)와 글루 로직부(21-3) 사이에는 16개의 인터럽트 핀(IRQ0~IRQ15)이 연결되어 있다.
여기서, 상기 인터럽트 핀 INTA#은 디바이스가 싱글 기능을 가질때 쓰고, 나머지 핀(INTB#~INTD#)은 여러 기능을 가지는 디바이스에서 쓸 수 있도록 제공한다.
따라서, 외부의 디바이스(23)가 쓸수 있는 인터럽트는 최대 4개이다.
이때, 외부 디바이스(23)의 인터럽트 레지스터(23-1)는 기존 버스와의 호환을 위해 구비된 것으로서, INTA#~INTD#가 IRQ의 몇번과 같은지를 나타내는 메모리를 사용되어진다.
따라서, 쓰고자 하는 인터럽트 번호가 소프트웨어와 디바이스 제공자에 의해 외부 디바이스(23)의 인터럽트 레지스터(23-1)에 셋팅되면 인터럽트 핀 INTA# 내지 INTD# 중 하나의 인터럽트 핀을 통해 시스템(21)의 글루 로직부(21-3)로 입력된다.
상기 글루 로직부(23-3)는 상기 외부 디바이스(23)로부터 INTA#~INTD#중 한핀을 통해 인터럽트가 발생하면 미리 약속된 정보에 의해 인터럽트 레지스터(23-1)에 셋팅된 인터럽트 번호를 인식하고 실질적인 IRQ0~IRQ15 신호로 인터럽트 콘트롤러(21-1)에 제공한다.
즉, 상기 외부 디바이스(23)는 INTA#~INTD#중 한핀을 통해 인터럽트가 발생하였다는 정보만 시스템(21)에 알려주고, 시스템(21)은 미리 약속된 정보에 의해 발생된 인터럽트 IRQ의 번호를 인식한다.
상기 인터럽트 콘트롤러(21-1)는 일종의 인터페이스로서, 상기 외부 디바이스(23)에서 발생시킨 인터럽트 IRQ 번호에 해당하는 인터럽트를 실행시키도록 마이크로 프로세서(도시되지 않았음.)에 제어신호를 출력한다.
이를 위해 소프트웨어는 글루 로직부(21-3)에게 INTA#~INTD# 신호가 어서트(Assert) 되었을때 몇번 IRQ로 셋팅되었는지를 외부 디바이스(23)의 인터럽트 레지스터(23-1)를 읽어 알려주어야 한다.
또한, 상기된 제2도의 PCI 버스상에서는 시스템과 외부 디바이스 사이에 4개의 인터럽트 핀밖에 없으므로 외부 디바이스에서 쓸수 있는 인터럽트 수가 너무 작고, 싱글 기능을 가진 디바이스가 두개의 인터럽트를 쓰는 것이 어렵다.
또한 소프트웨어에 의한 처리가 많아짐으로써, 처리속도가 떨어지는 문제점이 있었다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 내부의 레지스터를 이용하여 하나의 인터럽트 핀에 엔코딩된 인터럽트 번호를 싣고 클럭에 동기시켜 시리얼하게 출력함으로써, 소프트웨어의 역할이 줄어들어 처리속도가 빨라지고, 하나의 엔코딩부에 의해 다수의 인터럽트 신호를 처리할 수 있으므로 외부 디바이스에서 쓸수 있는 인터럽트의 범위가 넓어지는 인터럽트 발생회로를 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 인터럽트 발생회로의 특징은, PCI 버스구조를 갖는 컴퓨터에서의 인터럽트 발생회로에 있어서, 쓰고자 하는 인터럽트(IRQ) 번호가 셋팅되는 인터럽트 레지스터와, 인터럽트 요청을 알리는 내부 인터럽트 신호 발생시 상기 인터럽트 레지스터에 셋팅된 인터럽트(IRQ) 번호를 엔코딩하여 다수개의 인터럽트 핀중 한핀에 실어 시리얼로 출력하는 인터럽트 엔코딩부가 포함되는 외부 디바이스와, 상기 외부 디바이스의 인터럽트 엔코딩부로부터 엔코딩되어 소정 인터럽트 핀을 통해 제공되는 인터럽트 신호를 디코딩하여 실질적인 인터럽트(IRQ) 번호를 알아내는 인터럽트 디코딩부와, 상기 인터럽트 디코딩부에서 디코딩딘 인터럽트(IRQ) 번호에 해당하는 인터럽트를 실행하도록 제어하는 인터럽트 콘트롤러가 포함되는 시스템을 구비하는데 있다.
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명한다.
제3도는 본 발명에 따른 PCI 버스상에서의 인터럽트 발생회로의 블럭도이다.
제3도를 보면, 외부 디바이스(31)에는 소프트웨어와 디바이스 제공자에 의해 쓰고자하는 인터럽트번호가 셋팅되는 인터럽트 레지스터(23-1), 및 내부 인터럽트(internal_int) 신호 발생시 상기 인터럽트 레지스터(23-1)에 셋팅된 인터럽트 IRQ 번호를 엔코딩하여 INTA#~INTD# 중 한핀에 실어 시리얼로 출력하는 인터럽트 엔코딩부(31-1)가 포함된다.
그리고, 시스템(33)에는 상기 외부 디바이스(31)의 인터럽트 엔코딩부(31-1)로부터 엔코딩되어 INTA#~INTD# 핀을 통해 제공되는 신호를 디코딩하여 실질적인 IRQ 번호를 알아내는 인터럽트 디코딩부(33-1), 및 상기 인터럽트 디코딩부(33-1)에서 알아낸 인터럽트 IRQ 번호에 해당하는 인터럽트를 실행하도록 마이크로 프로세서(도시되지 않았음.)에 제어신호를 출력하는 인터럽트 콘트롤러(33-3)가 포함된다.
그리고, 상기 인터럽트 엔코딩부(31-1)는 제4도에 도시된 바와같이, 인터럽트 요청을 알리는 내부 인터럽트 신호(internal_int)를 한 클럭(CLK) 지연시켜 출력(CTL_A)하는 플립플롭(41), 인에이블 신호(EN)에 의해 동작되고 클럭(CLK)에 동기되어 초기값 4부터 다운 카운트하는 3비트 다운 카운터(42), 선택단(S2~S0)으로 입력되는 상기 다운 카운터(42)의 출력값(Q2~Q0)에 따라 입력단(I3~I0)으로 입력되는 인터럽트 레지스터(23-1)의 값을 선택 출력하는 멀티플렉서(43), 상기 다운 카운터(42)의 최상위 출력값(Q2)을 반전시키는 인버터(44), 상기 다운 카운터(42)의 하위 2비트 출력값(Q1,Q0)과 상기 인버터(44)의 출력을 논리 조합하는 노아 게이트(45), 상기 플립플롭(41)의 출력과 노아 게이트(45)의 출력을 조합하여 다운 카운트(42)의 인에이블 신호단(EN)으로 출력하는 신호 발생부(46), 및 선택단(S)으로 입력되는 상기 신호 발생부(46)의 출력(CTL_C)에 따라 상기 멀티플렉서(43) 또는 상기 내부 인터럽트 신호(internal_int)를 선택하여 INTA#~INTD# 중 한핀을 통해 출력하는 플립플롭(47)으로 이루어진다.
여기서, 상기 플립플롭(41) 및 다운 카운터(42)로 입력되는 클럭(Clk)은 시스템 클럭이다.
한편, 상기 시스템(33)의 인터럽트 디코딩부(33-1)는 상기 인터럽트 엔코딩부(33-1)의 역순으로 구성하면 해결가능하므로 도시 및 설명을 설명한다.
또한, 상기 신호 발생부(46)는 제6도에 도시된 바와같이, 상기 플립플롭(41)의 출력(CTL_A)을 순차 연결된 3개의 인버터(62~64)를 통해 반전 및 지연시킨 후 지연되지 않은 상기 플립플롭(41)의 출력(CTL_A)과 논리 조합하는 노아 게이트(61), 상기 노아 게이트(45)의 출력(CTL_B)을 순차 연결된 3개의 인버터(66~68)를 통해 반전 및 지연시킨 후 지연되지 않은 상기 노아 게이트(44)의 출력(CTL_B)과 논리 조합하는 앤드 게이트(65), 상기 노아 게이트(61)와 앤드 게이트(65)의 출력을 논리 조합하는 노아 게이트(69), 및 리셋 신호(reset)에 의해 출력이 제어되고 상기 노아 게이트(69)의 출력을 클럭(CP)으로 제공받아 QN 출력단을 통해 제어신호(CTL_C)를 상기 다운 카운터(42)의 인에이블단(EN)과 플립플롭(47)의 선택단(S)으로 동시에 출력하는 D 플립플롭(70)으로 이루어진다.
이와같이 구성된 본 발명에서 외부 디바이스(31)의 인터럽트 레지스터(23-1)에는 소프트웨어와 디바이스 제공자에 의해 쓰고자 하는 인터럽트 IRQ의 번호가 셋팅된다.
즉, 인터럽트 레지스터(23-1)에는 0000~1111b(IRQ0~IRQ15)중 하나가 셋팅된다.
이 값은 내부 인터럽트 신호(internal_int)가 가지게 될 엔코딩된 값이 된다.
그리고, 상기 외부 디바이스(31)의 인터럽트 엔코딩부(31-1)의 플립플롭(41)으로 내부 인터럽트 신호(internal_int)가 발생되면, 즉 내부 인터럽트 신호(internal_int)가 로우로 떨어지면 인터럽트 요청이 시작된다.
따라서, 인터럽트 엔코딩부(31-1)는 이 신호에 해당하는 코드를 인터럽트 레지스터(23-1)로부터 멀티플렉서(43)의 I3~I0 입력단으로 읽어들인다.
이 값이 mem_a3:0이다.
즉, 플립플롭(41)의 D 입력단으로 입력되는 내부 인터럽트 신호(internal_int)가 제5도(a)의 클럭 1에서 제5도(b)와 같이 로우로 떨어지면, 이 신호는 상기 플립플롭(41)에 의해 한 클럭 지연되어 제5도(c)와 같이 클럭 2에서 로우로 떨어진다. 그리고, 상기 플립플롭(41)에 의해 한 클럭 지연된 제5도(c)와 같은 CTL_A 신호는 신호 발생부(46)로 입력되어 신호 발생부(46)의 출력인 CTL_C 신호를 하이에서 로우로 변화시킨다.
이때, 하이에서 로우로 변환 CTL_C 신호는 3비트 다운 카운터(42)를 인에이블시킨다.
이로인해, 상기 다운 카운터(42)는 제5도(a)의 클럭 3에서 카운터 값이 4-73으로 변하고, 신호 발생부(46)로 입력되는 CTL_B 신호는 로우로 떨어지므로 다운 카운터(42)가 카운트중임을 알린다.
여기서, 상기 CTL_B 호는 제5도(d)에서와 같이 다운카운터(42)의 출력이 4(Q2=1,1=0,Q0=0)일때만 하이이고 그 이외 즉, 3,2,1,0일때는 로우로 떨어지는 신호이다. 즉, 다운 카운터(42)의 Q2 출력은 인버터(44)에 의해 반전된 후 반전된 Q2 출력과 상기 다운 카운터(42)의 Q1,Q0 출력은 노아 게이트(45)에 의해 논리조합되어 신호 발생부(46)에 CTL_B 신호로서 입력되므로, 다운 카운터(42)의 출력이 4일때만 CTL_B 신호는 하이가 된다.
상기 다운 카운터(42)는 초기값이 4인 카운터로서, 인에이블단(EN)으로 입력되는 신호 발생부(46)의 출력(CTL_C)이 로우일때 인에이블되어 동작되고, CTL_C 신호가 하이일땐 초기값 4(100b)를 유지한다.
따라서, 상기 다운 카운터(42)는 CTL_C 신호가 로우인 기간동안 즉, 제5도(e)에서와 같이 클럭 3에서 카운터 값이 4(Q2=1,Q1=0,Q0=0) - 3(Q2=0,Q1=1, Q0=1)으로 변하고, 클럭 4에서 3(Q2=0,Q1=1,Q0=1) - 2(Q2=0,Q1=1, Q0=0)로 변하고, 클럭 5에서 2(Q2=0,Q1=1,Q0=0) - 1(Q2=0,Q1=0,Q0=1)로 변하고, 클럭 6에서 1(Q2=0,Q1=0,Q0=1) - 0(Q2=0,Q1=0, Q0=0)로 변한다.
그리고, 클럭 7에서 카운터 값이 0 - 4로 변하는 순간 신호 발생부(46)로 입력되는 CTL_B 신호는 하이가 되어 카운팅이 끝났음을 알림과 동시에, 이 신호(CTL_B)는 신호 발생부(46)의 출력 신호(CTL_C)를 제5도(f)에서와 같이 하이로 변화시킨다.
상기 CTL_C 신호가 제5도(f)에서와 같이 하이로 변하는 순간에 상기 다운 카운터(42)는 제5도(e)에서와 같이 디제이블되면서 초기값 4를 유지한다.
한편, 상기 신호 발생부(46)의 동작을 제6도 및 제7도를 참조하여 상세히 설명한다.
즉, 상기 신호 발생부(46)의 플립플롭(47)의 QN 출력(CTL_C)은 리셋트 신호(reset)가 디어서트(Deassert)된 후 제7도(f)에서와 같이 하이값을 유지한다.
이때, 상기 플립플롭(41)에서 출력되는 CTL_A 신호는 순차 연결된 3개의 인버터(62~64)를 통해 반전 및 지연된 후 노아 게이트(61)에서 지연되지 않은 상기 플립플롭(41)의 출력(CTL_A)과 논리 조합된다.
따라서, 상기 노아 게이트(61)의 출력(A')은 제7도(d)에서와 같이 CTL_A 신호가 로우로 떨어지는 순간부터 상기 순차 연결된 인버터(62~64)의 지연시간 동안 하이 가 된다.
또한, 상기 노아 게이트(45)에서 출력되는 CTL_B 신호는 순차 연결된 3개의 인버터(66~68)를 통해 반전 및 지연된 후 앤드 게이트(65)에서 지연되지 않은 노아 게이트(45)의 출력(CTL_B)과 논리조합된다.
따라서, 상기 앤드 게이트(65)의 출력(B')은 제7도(e)에서와 같이 CTL_B 신호가 로우에서 하이로 변하는 순간부터 상기 순차 연결된 인버터(66~68)의 지연시간동안 하이가 된다.
상기 노아 게이트(61)의 출력(A')과 앤드 게이트(65)의 출력(B')은 다시 노아 게이트(69)에 의해 논리조합되어 플립플롭(70)의 클럭단(CP)으로 입력된다.
따라서, 상기 플립플롭(70)은 제7도(a)와 같은 리셋 신호(reset)에 의해 하이 상태를 유지하고 있다가 제7도(d)와 같은 노아 게이트(61)의 출력(A')이 하이일때 QN 출력단을 통해 로우 신호를 출력하고, 제7도(e)와 같은 앤드 게이트(65)의 출력(B')이 하이일때 하이 신호를 출력한다.
즉, 신호 발생부(46)는 CTL_A가 하이에서 로우로 변화하는 순간부터 CTL_B가 로우에서 하이로 변하는 순간까지 CTL_C 신호를 하이로 만드는 회로이다.
이때, 상기 플립플롭(70)에서 출력되는 CTL_C 신호는 3비트 다운 카운터(42)의 인에이블단(EN)과 플립플롭(47)의 선택단(S)으로 동시에 입력된다.
그러므로, 상기 CTL_C 신호가 로우에서 하이로 변화하면 상기 다운 카운터(42)는 디제이블되어 초기값 4를 유지하고, 또한 INTA#~INTD#중 한핀을 통해 인터럽트 번호를 출력하는 플립플롭(47)도 CTL_C 신호에 의해 제어된다.
여기서는 INTA#~INTD#중 INTA을 실시예로 설명한다.
즉, 상기 플립플롭(47)은 CTL_C 신호가 하이인 동안은 내부 인터럽트 신호(internal_int)를 INTA핀을 통해 시스템(33)으로 출력하고, CTL_C 신호가 로우로 변화하는 제5도(a)의 클럭 2에서부터 클럭 6까지는 상기 멀티플렉서(43)의 출력 신호를 INTA핀을 통해 시스템(33)으로 순차 출력한다.
이때, 클럭 2에선 다운 카운터(42)의 카운트값이 4이므로 멀티플렉서(43)의 출력은 I4 입력단으로 입력된 값이 되는데 이 값은 제로이다.
클럭 3에선 다운 카운터(42)의 값이 3이므로 멀티플렉서(43)의 I3 값을 출력하고, 클럭 4에선 I2 값을, 클럭 5에선 I1 값을, 클럭 6에선 I0 값을 순차적으로 출력한다.
이 값들은 그대로 플립플롭(47)의 출력신호인 INTA에 나타난다.
만일, 소프트웨어와 디바이스 제공자에 의해 인터럽트 레지스터(23-1)에 0011이 셋팅되었다고 가정하면 CTL_C 신호가 로우인 동안에 다운 카운터(42)의 제어에 의해 I3=0,I2=0,I1=1,I0=1 신호가 멀티플렉서(43)에서 순차적으로 출력되고, 이신호는 INTA에 실려 시스템(33)에 시리얼로 출력된다.
이때, 상기 플립플롭(47)의 INTA 신호는 클럭에 동기되어 출력된다.
한편, CTL_C 신호가 다시 하이로 변화하면 다시 내부 인터럽트 신호(internal_int)가 INTA를 통해 시스템(33)으로 출력된다.
그러므로, INTA에는 엔코딩된 인터럽트 값이 실리게 된다.
이와같이 본 발명은 하나의 인터럽트 엔코딩부(31-1)를 통해 즉, INTA 하나만으로도 여러 디바이스(예컨대, 16개까지)의 인터럽트 처리가 가능하므로 INTA#~INTD# 핀을 통해서는 모두 64개의 내부 인터럽트 신호를 처리할 수 있게 된다.
한편, 시스템(33)의 인터럽트 디코딩부(33-1)는 상기 인터럽트 엔코딩부(33-1)의 역순으로 구성되면 해결가능하다.
즉, 시스템(33)의 인터럽트 디코딩부(33-1)는 상기 외부 디바이스(31)의 인터럽트 엔코딩부(33-1)에서 엔코딩된 후 INTA#~INTD#를 통해 실려오는 엔코딩된 신호를 디코딩한다.
따라서, 상기 인터럽트 디코딩부(33-1)는 상기 INTA#~INTD# 핀의 값이 로우로 떨어지면 외부 디바이스(31)에서 인터럽트를 요구함을 알고, 이후에 들어오는 엔코딩된 IRQ 값을 클럭에 동기시켜 래치하여 현재 인터럽트를 요구하는 IRQ 번호를 알게된다.
그리고, 디코딩된 IRQ 번호에 해당하는 인터럽트를 마이크로프로세서가 실행하도록 디코딩된 IRQ 번호를 인터럽트 콘트롤러(33-3)에게 알리다.
이상에서와 같이 본 발명에 따른 인터럽트 발생회로는 다음과 같은 잇점이 있다.
첫째, 소정의 인터럽트 핀에 엔코딩된 인터럽트 번호를 실어 시리얼하게 출력함으로써, 소프트웨어의 역할이 줄어들어 처리속도가 빨라진다.
둘째, 소정의 인터럽트 핀에 인터럽트 레지스터값을 싣게 되므로 소프트웨어에 의해 레지스터 값을 변화시켜 주면 하드웨어적으로 이 값을 반영하여 출력함으로써, 인터럽트 범위가 넓어져 플러그 앤 플레이(Plug Play) 기능이 향상된다.
셋째, 인터럽트 엔코딩에 의해 시스템의 역할은 단지 디코딩에 의한 IRQ 번호 발생하므로 시스템의 구성이 간단해진다.
넷째, 입력 인터럽트를 제어할 멀티플렉서만을 이용함에 의해 하나의 엔코딩 블럭으로 여러 디바이스의 내부 인터럽트 신호를 처리함으로써, 외부 디바이스에서 쓸수 있는 인터럽트의 범위가 넓어져 멀티 기능 디바이스(Multi-function Device)의 이용이 가능하므로 PC의 성능을 향상시킨다.

Claims (12)

  1. 피씨아이(PCI) 버스구조를 갖는 컴퓨터에서의 인터럽트 발생회로에 있어서, 쓰고자 하는 인터럽트(IRQ) 번호가 셋팅되는 인터럽트 레지스터와, 인터럽트 요청을 알리는 내부 인터럽트 신호 발생시 상기 인터럽트 레지스터에 셋팅된 인터럽트(IRQ) 번호를 엔코딩하여 다수개의 인터럽트 핀중 한핀에 실어 시리얼로 출력하는 인터럽트 엔코딩부가 포함되는 외부 디바이스와; 상기 외부 디바이스의 인터럽트 엔코딩부로부터 엔코딩되어 소정 인터럽트 핀을 통해 제공되는 인터럽트 신호를 디코딩하여 실질적인 인터럽트(IRQ) 번호를 알아내는 인터럽트 디코딩부와, 상기 인터럽트 디코딩부에서 디코딩된 인터럽트(IRQ) 번호에 해당하는 인터럽트를 실행하도록 제어하는 인터럽트 콘트롤러가 포함되는 시스템을 구비함을 특징으로 하는 인터럽트 발생회로.
  2. 제1항에 있어서, 상기 인터럽트 레지스터의 인터럽트(IRQ) 번호는 소프트웨어와 디바이스 제공자에 의해 셋팅됨을 특징으로 하는 인터럽트 발생회로.
  3. 제1항에 있어서, 상기 인터럽트 엔코딩부는 인터럽트 요청을 알리는 내부 인터럽트 신호를 소정시간 지연시키는 지연부와, 인에이블 신호에 의해 동작되고 시스템 클럭에 동기되어 초기값부터 다운 카운트하는 다운 카운터와, 선택단으로 입력되는 상기 다운 카운터의 출력값에 따라 입력단으로 입력되는 인터럽트 레지스터의 값을 순차 출력하는 제1선택부와, 상기 다운 카운터의 출력값을 논리조합하여 상기 다운 카운터의 카운트 주기를 제어하기 위한 로직부와, 상기 지연부의 출력과 로직부의 출력을 조합하여 상기 다운 카운터의 인에이블을 제어하는 신호 발생부와, 선택단으로 입력되는 상기 신호 발생부의 출력에 따라 상기 제1선택부를 통해 순차 출력되는 인터럽트 레지스터값 또는 상기 지연부에서 지연된 내부 인터럽트 신호를 선택하여 다수개의 인터럽트 핀중 소정 인터럽트 핀에 실어 출력하는 제2선택부를 구비함을 특징으로 하는 인터럽트 발생회로.
  4. 제3항에 있어서, 상기 지연부는 플립플롭으로 이루어짐을 특징으로 하는 인터럽트 발생회로.
  5. 제3항에 있어서, 상기 다운 카운터는 초기값이 4(0100b)임을 특징으로 하는 인터럽트 발생회로.
  6. 제3항에 있어서, 상기 로직부는 상기 다운 카운터의 최상위 출력값을 반전시키는 인버터와, 상기 다운 카운터의 하위 2비트 출력값과 상기 인버터의 출력을 논리 조합하는 노아 게이트로 이루어짐을 특징으로 하는 인터럽트 발생회로.
  7. 제3항에 있어서, 상기 신호 발생부는 상기 지연부의 출력을 소정 시간 지연시킴과 동시에 반전시키는 제1지연 및 반전부와, 상기 지연부의 출력과 제1지연 및 반전부의 출력을 논리 조합하는 제1로직부와, 상기 로직부의 출력을 소정 시간 지연시킴과 동시에 반전시키는 제2지연 및 반전부와, 상기 로직부의 출력과 제2지연 및 반전부의 출력을 논리 조합하는 로직부와, 상기 제1, 제2로직부의 출력을 논리 조합하는 제3로직부와, 리셋 신호에 의해 출력이 제어되고 상기 제3로직부의 출력을 클럭으로 제공받아 상기 다운 카운터에 인에이블 신호를 출력함과 동시에 제2선택부에 선택 신호를 출력하는 플립플롭을 구비함을 특징으로 하는 인터럽트 발생회로.
  8. 제7항에 있어서, 상기 제1지연 및 반전부는 순차 연결된 다수개의 인버터로 이루어짐을 특징으로 하는 인터럽트 발생회로.
  9. 제7항에 있어서, 상기 제1로직부는 상기 지연부의 출력과 제1지연 및 반전부의 출력이 모두 로우일때만 하이 신호를 출력함을 특징으로 하는 인터럽트 발생회로.
  10. 제7항에 있어서, 상기 제2지연 및 반전부는 순차 연결된 다수개의 인버터로 이루어짐을 특징으로 하는 인터럽트 발생회로.
  11. 제7항에 있어서, 상기 제2로직부는 상기 로직부의 출력과 제2지연 및 반전부의 출력이 모두 하이일때만 하이 신호를 출력함을 특징으로 하는 인터럽트 발생회로.
  12. 제7항에 있어서, 상기 제3로직부는 상기 제1, 제2로직부의 출력이 모두 로우일때만 하이 신호를 출력함을 특징으로 하는 인터럽트 발생회로.
KR1019960006724A 1996-03-13 1996-03-13 인터럽트 발생회로 KR100186505B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960006724A KR100186505B1 (ko) 1996-03-13 1996-03-13 인터럽트 발생회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960006724A KR100186505B1 (ko) 1996-03-13 1996-03-13 인터럽트 발생회로

Publications (2)

Publication Number Publication Date
KR970066868A KR970066868A (ko) 1997-10-13
KR100186505B1 true KR100186505B1 (ko) 1999-05-15

Family

ID=19453024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960006724A KR100186505B1 (ko) 1996-03-13 1996-03-13 인터럽트 발생회로

Country Status (1)

Country Link
KR (1) KR100186505B1 (ko)

Also Published As

Publication number Publication date
KR970066868A (ko) 1997-10-13

Similar Documents

Publication Publication Date Title
KR100306636B1 (ko) Pci-isa인터럽트프로토콜컨버터및선택메카니즘
US5175819A (en) Cascadable parallel to serial converter using tap shift registers and data shift registers while receiving input data from FIFO buffer
JP4749556B2 (ja) 割込強制レジスタを含む柔軟な割込コントローラ
JP3616162B2 (ja) P/q整数比関係を有する周波数で動作するディジタル装置間で同期データ伝送を行うための装置
US5506997A (en) Device for mapping a set of interrupt signals generated on a first type bus to a set of interrupt signals defined by a second type bus and combing the mapped interrupt signals with a set of interrupt signals of the second type bus
US4631659A (en) Memory interface with automatic delay state
US5784599A (en) Method and apparatus for establishing host bus clock frequency and processor core clock ratios in a multi-processor computer system
EP0203304B1 (en) Data processor controller
US5805929A (en) Multiple independent I/O functions on a PCMCIA card share a single interrupt request signal using an AND gate for triggering a delayed RESET signal
US5692200A (en) Bridge circuit for preventing data incoherency by holding off propagation of data transfer completion interrupts until data clears the bridge circuit
US5519872A (en) Fast address latch with automatic address incrementing
US5410721A (en) System and method for incrementing a program counter
JP2003150270A (ja) 半導体集積回路
US5535376A (en) Data processor having a timer circuit for performing a buffered pulse width modulation function and method therefor
CN110928816B (zh) 一种片上可配置中断控制系统电路
KR100186505B1 (ko) 인터럽트 발생회로
US4802089A (en) Status flag handling in a digital data processing system
JPH03111960A (ja) ワンチップマイクロコンピュータ
US20020053927A1 (en) Logic unit and integrated circuit for clearing interrupts
EP0469543A2 (en) Multiple interrupt handling circuit
US5555559A (en) Microprocessor capable of ensuring flexible recovery time for I/O device by inserting idle states
Suan et al. Design and analysis of microcontroller system using AMBA-Lite bus
US5513367A (en) Multiprocessor system having respective bus interfaces that transfer data at the same time
EP0335502A2 (en) Microcontroller and associated method
US5875482A (en) Method and apparatus for programmable chip select negation in a data processing system

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
FPAY Annual fee payment

Payment date: 20091126

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee