KR940002087B1 - 프로그램 가능한 인터럽트 제어기 - Google Patents

프로그램 가능한 인터럽트 제어기 Download PDF

Info

Publication number
KR940002087B1
KR940002087B1 KR1019900017520A KR900017520A KR940002087B1 KR 940002087 B1 KR940002087 B1 KR 940002087B1 KR 1019900017520 A KR1019900017520 A KR 1019900017520A KR 900017520 A KR900017520 A KR 900017520A KR 940002087 B1 KR940002087 B1 KR 940002087B1
Authority
KR
South Korea
Prior art keywords
interrupt
interrupt request
edge
register
bit
Prior art date
Application number
KR1019900017520A
Other languages
English (en)
Other versions
KR910010326A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR910010326A publication Critical patent/KR910010326A/ko
Application granted granted Critical
Publication of KR940002087B1 publication Critical patent/KR940002087B1/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
    • 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
    • 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

Abstract

내용 없음.

Description

프로그램 가능한 인터럽트 제어기
제1도는 주변 장치를 서비스하기 위해 본 발명에 따른 인터럽트 제어기(interrupt controller)를 이용한 컴퓨터 시스템의 블럭도.
제2도는 본 발명에 따른 인터럽트 제어기의 블럭도.
제3도는 본 발명의 양호한 실시예에 이용된 초기화 제어 워드 레지스터(initialization control word register)의 하드웨어 구성을 도시한 논리도.
제4도 내지 제6도는 제3도에 도시된 각종 초기화 제어워드 레지스터의 상세 논리도.
제7도는 제2도에 도시된 인터럽트 요구 레지스터(request register; IRR)의 스테이지를 도시한 상세 논리도.
제8a도 및 제8b도는 각기 제7도에 도시된 에지 검출기(edge detector)의 제1실시예도 및 제2실시예도.
제9a도 내지 제9e도는 프로그램 가능한 인터럽트 제어기의 양호한 실시예의 초기화 제어워드 레지스터가 각종 시스템 구성을 위해 프로그램 될 수 있는 방법을 나타낸 테이블.
* 도면의 주요부분에 대한 부호의 설명
2 : 컴퓨터 시스템 버스 4 : 중앙 처리 장치
8 : 인터럽트 제어기 58 : 인터럽트 요구 라인
66 : 인터럽트 요구 레지스터 242 : 에지 검출기
248 : 에지 검출기 래치
본 발명은 컴퓨터 시스템용 프로그램 가능한 인터럽트 제어기(programmable interrupt controller)에 관한 것으로, 특히, 복수의 인터럽트 요구(interrupt request) 입력을 가진 인터럽트 제어기에 관한 것인데, 그 입력 각각은 입력 기준마다 에지-트리거되거나(edge triggered) 레벨-트리거된(level triggered) 인터럽트 요구중 어느하나를 검출하도록 프로그램될 수 있다.
많은 컴퓨터 시스템은 하나 또는 그 이상의 주변 장치와 인터페이스(interface)하도록 설계되어 있다. 컴퓨터 시스템은 통상 데이타, 어드레스 및 제어 라인을 가진 시스템 버스에 접속된 중앙 처리 장치(CPU)를 구비하며, 이런 버스는 프로그램 메모리 등의 다른 컴퓨터 시스템 부품과, 접속되며 또한 알맞은 인터페이스를 통해 주변 장치에 접속된다. 이 인터페이스는 컴퓨터 시스템과 주변 장치 사이의 호환성을 갖도록 전압 또는 신호 포맷(signal format)을 번역하는 인터페이스 장치를 가질 수 있으며, 이에 적합한 인터페이스 접속자가 종종 이용된다. CPU와 주변 장치간의 통신에는 감지 또는 명령정보가 포함될 수 있으며, 특히, 감지기로서 동작하는 주변 장치는 파라미터로 표시한 데이타 신호를 발생하며, 이러한 주변 감지 장치는 온도, 전압 또는 다른 파라미터 등을 감지한다. 데이타 신호는 적합한 형태로 번역되어, 감지된 파라미터에 관한 필요한 데이타를 CPU에 제공하도록 인터페이스를 거쳐 CPU에 의해 판독된다. 주변 장치는 제어기일 수 있다. CPU는 인터페이스를 통해 적합한 명령문을 주변 제어장치에 기록함으로써 그 주변 제어장치에 명령하며, 그러면 제어 장치는 그 명령문에 따라 알맞게 동작된다.
복수의 주변 장치를 갖고 있는 시스템에 있어서, CPU와 주변 장치간에는 빈번하고 연속적인 통신이 필요하며, 각종의 스킴(schemes)이 주변 장치와 CPU를 접촉하는 데에 이용되었는바, 그 제1스킴은 폴링(polling)이라 명칭되며, 폴링 시스템에서, CPU는 시간 간격을 두고 폴링 루틴을 실행하며, 통상적으로, 하드웨어 타이머(hardware timer)에 의해 CPU는 폴링 루틴을 주기적으로 실행할 수 있다. 폴링 루틴 동안에, CPU는 감지된 파라미터의 상태가 변하는지 또는 명령문을 주변 장치로 전송할 필요가 있는지를 나타내는 정보를 주변 장치로 부터 판독한다. 폴링 루틴 동안 소정의 주변장치로 부터 수신된 정보에 따라서, CPU는 주변 장치에 명령문을 전송하거나, 컴퓨터 시스템 메모리에 저장된 주변 장치의 상태에 대한 기록을 갱신하는 등의 적당한 동작을 행한다. 폴링은 통상 복수의 주변 장치와 인터페이스 하는 컴퓨터 시스템내에서 이용되는데, 이러한 폴링에는 폴링 루틴이 자주 실행되야 하는 결점이 있으므로 상당량의 CPU처리 시간이 필요하다. 많은 경우에 있어서, 주변 장치로 부터 판독된 상태 정보는 어떤 동작도 필요치 않은것을 나타냄에 따라서 폴링 루틴을 실행에 있어 시간 소모는 비생산적이며, 상당한 동작량 또는 실시간 활용이 있는 컴퓨터 시스템에 있어서, 폴링 루틴을 반복함에 의한 시간 소모는 처리 효율을 감소시킬 수 있다.
폴링 대신에 통상, 컴퓨터 시스템은 인터럽트로서 주변장치를 서비스한다. 인터럽트 시스템에서, 주변 장치는 CPU에 의해 어떤 형태의 동작을 필요로 하는 조건이 검출될 시에 인터럽트 요구를 신호를 전송한다. 대다수의 CPU는 인터럽트 요구 입력 라인을 포함하도록 설계되며, 그러한 인터럽트 요구 입력을 가진 CPU는 인터럽트 서비스 루틴을 실행시켜 인터럽트 요구 라인상에서 소정의 전압신호에 응답한다. 따라서, CPU와 주변 장치 사이의 인터페이스는 서비스가 필요되는 주변 장치내의 상태 변환을 검출하여, 적합한 인터럽트 요구 신호를 CPU에 제공하는 회로를 구비한다.
이런 형태의 인터럽트 구동 시스템은 인터럽트 루틴이 필요될 시에만 실행되므로 개선된 처리 효율을 제공하지만, CPU는 복수의 주변 장치를 서비스하도록 빈번히 사용되며, 그런 시스템에 있어서, 주변 장치가 인터럽트 요구에 응답하여 서비스되야 할 필요가 있는지를 판단하는 방법에 관해 질의문이 제기된다. 또한, 몇 개의 주변 장치가 인터럽트 요구 신호를 동시에 제공할 경우, 어느 하나가 먼저 서비스되는 지를 판단하는 방법이 있다. 이런 질의문에 대한 실제 응답을 위해, 프로그램 가능한 인터럽트 제어기가 설계되어, 컴퓨터 시스템과 관련하여 활용되었다. 인터럽트 제어기는 통상적으로 CPU의 인터럽트 요구 입력에 접속되는 단일 인터럽트 요구를 출력을 갖고 있으며, 또한 복수의 인터럽트 요구 입력을 가지며, 각 인터럽트 요구 입력은 주변 장치에 접속되어 있다. 따라서, 주변 장치가 서비스를 필요로할 시에 이 주변장치는 적합한 인터럽트 요구신호를 발생시키며, 이 신호는 인터럽트 제어기에 의해 수신된다. 인터럽트 제어기는 그때 CPU를 인터럽트하고, 알맞은 인터럽트 서비스 루틴이 실행되게 한다.
이 인터럽트 제어기의 공지 예로서 인텔사(Interl corporation) 제조의 8259 A 프로그램 가능 인터럽트 제어기가 있는데, 이 8259 A는 두가지의 상이한 방법으로 다중 인터럽트 요구 입력을 지지하는 두가지 상이한 형태의 마이크로 프로세서로서 동작하도록 설계되어 있는 바, 제1형태는 오퍼랜드(operand)로서 서브루틴 어드레스를 가진 서브루틴(subroutine)을 호출하는 소프트웨어 명령어를 실행시키므로써 인터럽트 요구를 서비스하는 인텔 8080/8085 마이크로 프로세서이며, 제2형태는 인접한 메모리 페이지 내에 저장된 어드레스 테이블에서 인터럽트 서비스 루틴 어드레스를 선택하도록 8비트 벡터를 이용하여 인터럽트 요구를 서비스하는 인텔 8086 마이크로 프로세서 이다. 상기 마이크로 프로세서에 의해, 8259 A는 인터럽트 요구 입력에 응답하여 프로그램되고, CPU를 인터럽트하여, 인터럽트 서비스 루틴 어드레스에 선행하는 서브루틴 호출 명령이나 8비트 인터럽트 벡터를 시스템 버스를 통해 CPU에 제공한다. 따라서, 어느 경우에도, 8259 A는 실행할 상기 인터럽트 서비스 루틴에 관한 정보를 CPU에 제공하여, CPU는 적당한 방식으로 인터럽트를 요구한 주변 장치를 확실히 서비스 할 수 있다.
8259 A는 저/고(low-to-high) 전압 전이 또는 고전압 레벨로서 인터럽트 요구 입력상에서 검출된 인터럽트 요구로 구성될 수 있다. 환언하면, 8259 A 인터럽트 요구 입력은 에지-트리거(edge-trigger) 또는 레벨-트리거(level trigger)중 어느하나로 구성될 수 있다. 많은 주변 장치는 저/고 전압 전이 형으로 에지-트리거된 인터럽트 요구 신호를 발생시키도록 설계되어 있다. 특히, 에지-트리거된 인터럽트 요구는 소정의 시간 한계내에서 저 전압에서부터 고전압으로 인식 가능하게 전이한다. 그러나, 고전압 레벨에 의한 서비스를 요구하는 주변 장치가 일반적이다. 인터럽트 제어기가 레벨-트리거된 인터럽트를 검출하여 레벨 트리거된 인터럽트 요구를 내는 주변장치를 이용할 수 있어서 인터페이스 설계에 있어서 더큰 융통성을 갖게하는 것이 바람직하다. 또한, 인터럽트 제어기를 가지는 컴퓨터 시스템은 레벨-트리거된 인터럽트 요구를 내는 새로운 주변장치에 잘 어울리게 융통성을 가지면서 에지 트리거된 요구를 내는 구형의 주변장치와도 호환성을 갖게하는 것이 바람직하다.
그러나, 지금까지의 프로그램 가능 인터럽트 제어기는 모든 인터럽트 요구 입력이 같은 식으로 구성되는 결점을 갖고 있었다. 통상, 단일 에지/레벨 구성제어 비트(single edge/level configuration control bit)는 에지-트리거 되거나, 레벨-트리거 중 어느 하나로 되도록 모든 인터럽트 요구 입력을 프로그램하는 데에 이용된다. 상기 결점으로 레벨-트리거된 인터럽트 요구를 내는 주변 장치를 구비하는 시스템을 엎 그레이드하는데 모든 주변 장치가 그에 맞게 갱신되어야 하는 단점이 수반된다. 레벨-트리거방식 주변장치와 구형의 에지-트리거방식 주변 장치를 같이 사용할 수는 없다. 이렇게 하면 시스템의 융통성이 감소되고 사용자 부담의 비용이 증가한다.
본 발명의 제1목적은 각각의 주변 장치를 기본으로 주변 장치로 부터 에지-트리거 및 레벨 트리거방식 인터럽트 요구를 검출하는 프로그램 가능한 인터럽트 제어기를 제공하는데 있으며, 본 발명의 제2목적은 에지-트리거 및 레벨-트리거된 인터럽트 요구의 혼재를 변화시키면서 주변 장치를 서비스할 수 있는 시스템 능력을 가지는 방식으로 주변장치가 대체되거나 갱신되어야 할 그룹에 있게하는 컴퓨터 시스템용의 인터럽트 제어기를 제공하는데 있으며, 본 발명의 제3목적은 각각의 주변장치의 어드레스 위치와 관계없이 에지-트리거 및 레벨-트리거된 인터럽트 요구를 가지는 특정의 주변장치를 같이 사용하여도 인터럽트 요구에 대하여 서비스할 수 있는 컴퓨터 시스템용의 인터럽트 제어기를 제공하는데 있다. 환언하면, 각각의 주변 장치는 에지-트리거 또는 레벨-트리거 중 어느 하나로된 인터럽트 요구를 가질 수 있으며, 인터럽트 제어기는 각 인터럽트 라인을 기본하여 에지-트리거 및 레벨-트리거된 인터럽트를 조화시킬 수 있다.
본 발명의 제4목적은 상기 프로그램 가능한 인터럽트 제어기용으로 기록된 현재에 있는 소프트웨어에 따라 프로그램될 수 있는 상기 목적들에 부합하는 프로그램 가능한 인터럽트 제어기를 기존의 데 있으며, 제어기가 그렇게 프로그램될 경우, 모든 입력은 에지-트리거된 인터럽트 요구 또는 레벨-트리거된 인터럽트 요구를 검출함으로써, 본 발명에 따른 제어기는 기존의 프로그램 가능한 인터럽트 제어기와 부합하게 동작한다. 따라서, 제어기는 현재의 컴퓨터 시스템과도 호환성을 갖는다.
본 발명의 제5목적은 전술한 목적들에 따라 프로그램 가능한 인터럽트 제어기를 포함하는 컴퓨터 시스템을 제공하는데 있으며, 본 발명의 제6목적은 에지-트리거 및 레벨-트리거된 인터럽트를 수신 및 서비스하는 방법을 제공하는데 있다.
전술한 목적을 충족하기 위하여 본 발명에 따라서 컴퓨터 시스템에 사용을 위한 프로그램 가능 인터럽트 제어기가 제공되는데, 상기 시스템은 주변 장치 그룹으로 부터 인터럽트 요구를 수신하도록 접속된 다수의 입력, CPU에 접속된 인터럽트 요구 출력, CPU가 인터럽트 요구에 대하여, 서비스 하게 하도록 하는 인터럽트 요구 입력을 통해 수신된 임의의 인터럽트 요구에 응답하여 인터럽트 요구 출력을 통해 인터럽트 신호를 전송함으로써 CPU를 인터럽트 하는 수단, 시간 중첩 인터럽트 요구들이 수신되는 경우, 어느 인터럽트 요구가 먼저 서비스되게 할지를 결정하기 위하여 계층(hierarchy)을 형성하도록 상기 복수의 입력내의 각 입력에 대해 우선 순위 위치를 결정하는 우선 순위 결정자(priority resolver)와, 에지-트리거되거나 레벨-트리거된 인터럽트 요구중 어느하나에 응답하도록 각 입력을 독립적으로 설정하는 수단을 포함한다.
또한, 본 발명에 따르면, 제1소스로 부터의 에지-트리거된 인터럽트 요구 및 제2소스로 부터의 레벨-트리거된 인터럽트 요구를 수신하고 서비스하는 방법이 제공되는데, 상기 방법은 제1인터럽트 요구 입력을 통해 들어오는 에지-트리거된 인터럽트 요구와, 제2인터럽트 요구 입력을 통해 들어오는 레벨-트리거된 인터럽트 요구를 검출하도록 제1 및 2인터럽트 요구 입력을 갖고 있는 인터럽트 제어기를 프로그램하되, 각 입력을 기본으로하여 프로그램하는 단계, 제1입력을 통해 들어오는 에지-트리거된 인터럽트 요구를 검출하고 래치하는 단계, CPU가 에지-트리거된 인터럽트 요구를 서비스하게 하도록 CPU를 인터럽트하는 단계, 제2입력을 통해 들어오는 레벨-트리거된 인터럽트 요구를 검출하는 단계와, CPU가 레벨-트리거된 인터럽트 요구를 서비스하게 하도록 CPU를 인터럽트하는 단계로 이루어진다.
본 발명에 따른 프로그램 가능한 인터럽트 제어기는 에지-트리거되거나 레벨-트리거된 인터럽트 요구를 이용한 주변 장치가 각종 인터럽트 요구 입력상에서 이용될 수 있다는 점에서 컴퓨터 시스템의 설계 및 실행의 융통성을 제공하는 특징을 가지며, 또한, 그러한 주변 장치는 상호 교환성이 있다. 에지-트리거방식 주변 장치를 레벨-트리거방식 주변장치로의 대체하는 데에는 단지 인터럽트 제어기의 프로그래밍 구성의 변화가 필요로하다. 따라서, 컴퓨터 시스템은 다른 기능의 주변 장치를 대체하도록 불필요하게 비용을 증가시키지 않고 신규의 레벨-트리거방식 주변 장치로 엎그레이드될 수 있다.
본원에서 청구된 발명에 따른 방법은 컴퓨터 시스템 설계에 있어 프로그램시 융통성 및 편의성을 제공하고, 또한 인터럽트 제어기와 관련하여 기술된 바와같이 일반적으로 시스템의 엎그레이드를 용이하게 한다.
본 발명의 상기 목적의 그 밖의 목적, 특징 및 장점은 첨부된 도면을 참조로 하여 상세히 기술된다.
제1도에서, 본 발명에 따른 인터럽트 제어기를 사용한 컴퓨터 시스템이 도시된다. 컴퓨터 시스템 버스(2)는 중앙 처리 장치(CPU)(4), 메모리(6), 인터럽트 제어기(8) 및, 다수의 인터페이스(10 내지 24)에 접속된다. 인터페이스(10 내지 24)는 임의 타입의 적당한 공유 경계부(shared boundary)이고, 일반적인 비동기성 수신기/송신기(UARTS) 및 적합한 접속자와 같은 전자 인터페이스 장치를 포함할 수 있다. 인터페이스(10 내지 24)는 열전대 또는 전압 센서와 같은 감지 또는 모니터링 장치, 모터 및 전자 스위치와 같은 제어 장치 또는, 컴퓨터 제어식 응용에 적합한 다른 장치 일 수 있는 주변 장치(26 내지 40)에 접속된다. 주변 장치(26 내지 40)는 라인(42 내지 56)을 통해 인터럽트 제어기(8)상의 인터럽트 요구 입력에 접속되는 인터럽트 요구 출력을 갖는다. 인터럽트 제어기(8)는 라인(58)을 통해 CPU(4)상의 인터럽트 요구 입력에 접속된 인터럽트 요구 출력을 가진다. 인터럽트 인식 라인(interrupt acknowledge line; 60)은 CPU(4)로부터 인터럽트 인식 신호를 인터럽트 제어기(8)로 되돌리도록 접속된다. 통상 라인(58, 60)은 데이타, 어드레스 및 제어 라인을 포함한 일부의 시스템 버스로서 처리된다. 그러나 설명을 위해, 제1도는 별개의 라인으로서 인터럽트 제어기(8) 및 CPU(4) 사이에서 가동하는 인터럽트 요구 라인(58) 및 인터럽트 인식 라인(60)을 도시한 것이다.
제2도는 인터럽트 제어기(8)의 상세도인데, 데이타 버스 버퍼(62)는 시스템 데이타 버스(2)(제1도)와 내부 데이타 버스(64) 사이에 인터페이스를 제공한다. 인터럽트 요구 레지스터(IRR)(66)는 데이타 버스(64)에 연결되고, 68로서 공동으로 도시된 8개의 인터럽트 요구 입력을 갖는다. 인터럽트 요구 입력(68)은 각기 IRQ0내지 IRQ7로 표시된다. IRR(66)은 제1도에 도시된 라인(58)에 연결된 인터럽트 요구 출력 INTR(70)을 가지며, 또한, 제2도에서 표시된 실시예는 CPU(4)로부터 인터럽트 인식 라인(60)에 연결된 인터럽트 인식 입력 INTA(72)를 포함한다. CPU(4)가 인터럽트 제어기(8)를 선택하여, 제어기(8)에 기록하고, 그로부터 판독하게 하기 위하여, 판독/기록 제어 모듈(read/write control module; 74)은 판독 및 기록 입력(IOR, IOW)(76, 78), 칩 선택 입력(CS)(80)과 어드레스 선택 입력(Aø)(82)을 갖는다. 다수의 인터럽트 제어기가 단일 컴퓨터 시스템 내에서 종속(cascade)되게 하기 위하여, 종속 제어부(84)는 제어기가 주 제어기로서 이용될시의 출력과, 종속 제어기로서 이용될 시의 입력인 3비트 종속 버스(CAS)(86)를 갖는다.
제2도에 도시된 것은 인 서비스(in service) 레지스터(ISR)(88)이다. ISR(88)은 각 인터럽트 요구 입력(68)에 대응하는 비트를 저장한다. ISR(88)내의 비트는 인터럽트 레벨이 서비스됨을 나타내도록 세트된다. IRR(66)은 인터럽트 요구라인(70)을 통해 CPU(4)로 전달되는 인터럽트 요구를 발생시킨다. CPU(4)로 부터의 긍정 응답문은 인터럽트 인식라인(72)을 통해 IRR(66), ISR(88), 벡터 발생기(90) 및 우선 순위 결정자(92)에 의해 수신되는데, 상기 소자는 모두 통상의 설계를 가진다.
인터럽트 제어기(8)는 또한 94로서 집합적으로 도시된 일련의 초기화 명령 워드(ICM)레지스터를 포함하며, 상기 레지스터의 ICW는 초기화와 동시에 데이타 버스 버퍼(62) 및 내부 데이타 버스(64)를 통해 CPU(4)에 의해 그에 기록된다. 통상적인 방식으로, ICW 레지스터(94)는 교대로 적당한 인터럽트 벡터 또는 서비스 루틴 어드레스를 내부 데이타 버스(64)상으로 제공하는 벡터 발생기(90)에 벡터 비트를 제공한다. 우선 순위 결정자(92)는 동시성 또는 시간 중첩 인터럽트 요구가 IRR(66)에 의해 수신될 시에 어느 인터럽트 요구가 먼저 서비스되게 할지를 결정하기 위하여 계층을 형성하도록 각 인터럽트 요구 입력(IRQ0내지 IRQ7)(68)에 대해 다른 입력(68)에 관한 우선 순위 위치를 결정한다. 적당한 우선 순위 스킴(scheme)이 이용될 수 있다. 제1예로서, 우선 순위는 주어진 순서로 고정될 수 있다. 제2예로서, 우선 순위는 순환할 수 있다. 즉 입력은 서비스된 후에 우선 순위 계층의 최하부로 진행할 수 있다. 최종으로, 동작 명령워드(OCW) 레지스터 OCW1, OCW2및 OCW3는 인터럽트 제어기(8)가 공지된 방식으로 각종 모드로에서 동작하게 할 수 있다. OCW1은 마스크 레지스터(96)내에 저장된다. OCW1레지스터의 비트는 선택된 IRQ입력(68)을 마스크하는 역할을 한다. OCW2및 OCW3는 동작 레지스터(98)내에 저장되고, 다른 동작 모드를 제공한다.
ICW 레지스터(94)는 제3도에 더욱 상세히 도시된다. 이런 레지스터는 ICW1(100), ICW2(102), ICW3(104), ICW4(106) 및 ICW5(108)을 포함한다. 제3도에서, ICW 레지스터(94)는 임의의 상호 접속에 따라 블럭도로 도시된다. 상기 레지스터를 상호 접속하는 데에 이용된 부가적인 논리를 포함하는 더욱 상세한 도면과 관련하여 이하에 기술한다. 이하의 설명이 상기 레지스터 내의 비트에 의해 제어된 각종 가능에 의해 양호한 실시예를 기술하지만, 본 발명의 사상 및 영역에 따른 인터럽트 제어기는 레지스터의 변수를 포함하며, 본 실시예와 다른 장치에서 아래에 기술된 바와같은 기능을 위한 비트 지정을 할 수 있다. 또한, 각 비트는 전체 장치가 본 발명의 사상 및 영역과 일치하는 식으로 기능을 수행하는 한 서로 다르게 정의될 수 있다. ICW 레지스터(94)는 바람직한 식으로 인터럽트 제어기(8)를 구성하도록 비트를 세트하기 위해 레지스터내로 값을 기록하는 CPU(4)에 의해 초기화 동안 프로그램된다. 각종 구성을 위한 ICW 프로그래밍의 예들이 제9a도 내지 제9e도 및 관련 텍스트 내에 도시되어 있다. 본 실시예에 있어서, ICW 레지스터(94)는 순서적으로 기록된다. 또한, ICW 레지스터(94)는 임의의 바람직한 순서로 판독 및 기록하기 위해 분리하여 어드레스 될 수 있다. 각 레지스터는 기록됨을 나타내는 신호를 발생한다. 제3도에서, 이런 신호는, COMPL ICW2, COMPL ICW3, COMPL ICW4 및 ICW COMPLETE로서 표시된다. 이런 신호는 부수적인 레지스터 내로 기록을 인에이블하는 데에 이용된다. 모든 ICW 레지스터(94)가 완전하게 인터럽트 제어기(8)를 구성하는 데에 이용되는 동안, 어떤 레지스터는 특히 본 발명에 개시된 실시예에 관련된 비트를 포함한다. 이런 레지스터는 아래에 더욱 상세히 기술된다.
제3도는 이하에 기술하는 보다 상세한 주요한 문제를 요약한 도면이다. 제3도에 도시된 바와같은 양호한 실시예의 구조는 여러 관점에서, 전술된 인텔 8259 A 프로그램 가능한 인터럽트 제어기와 유사하다. 특히, ICW1, ICW2, ICW3 및 ICW4 레지스터(100), (102), (104) 및 (106)는 상기 8259 A 내의 비교 가능한 레지스터와 거의 유사하다. 8259 A 및 양호한 실시예에서 이용된 바와같은 상기 레지스터사이의 명확한 한계는 아래에 기술된다.
ICW5레지스터(108)는 양호한 실시예의 신규 특징을 갖고 있다. 본 발명의 목적은 다수의 인터럽트 요구 입력이 각 인터럽트를 기본으로 에지-감지성(edge-sensitive) 또는 레벨-감지성(level-sensitive)중 어느 하나로 프로그램될 수 있는 프로그램 가능한 인터럽트 제어기를 제공하는 것이므로, ICW5레지스터(108)는 각 인터럽트 요구 입력에 대응하는 비트를 포함한다. 각 비트는 에지-감지성 및 레벨-감지성에 제각기 대응하는 두 상태 중의 하나의 상태로 프로그램될 수 있으며, 따라서, 본 발명에 따라서 유저는 제3도에 도시된 바와같이 인터럽트 제어기를 프로그램하여, 에지-트리거링(edge-triggering) 또는 레벨-트리거링(level-triggering)의 인터럽트 선택 능력에 의하여 바람직한 바를 제공할 수 있다.
이것을 염두에 두면, 본 발명에 따른 프로그램 가능한 인터럽트 제어기는 이러한 정확한 구조를 따를 필요가 없다는 것을 알수 있을 것이다. 서로 다른 형태의 인터럽트 제어기는 서로 다른 형태의 프로그래밍 특성을 갖는다. 다른 인터럽트 제어기의 구성 파라미터는 다른 제어 레지스터를 사용하여 다른 식으로 프로그램될 수 있다. 또한, 유사한 구성 파라미터는 초기화 제어 레지스터와 관련하여 아래에 기술된 바로부터 서로다른 프로그램 가능한 비트에 의해 정의될 수 있다. 그러나, 그러한 임의의 프로그램 가능한 인터럽트 제어기는 다수의 인터럽트 요구 입력이 ICW 레지스터(108)와 같은 레지스터의 사용 또는 다른 적당한 수단을 통해 에지-감지성 또는 레벨-감지성을 갖도록 각 인터럽트를 기본하여 프로그램 될 경우 본 발명의 사상 및 영역내에 있다.
이하에 기술되는 바와같이, 인텔 8259 A가 호환성이비트를 이용하여 제공된다. 8259 A가 에지-민감성 또는 레벨-민감성이 되도록 모든 인터럽트 요구 입력을 프로그램하기 위해 단일 비트를 이용하지만, 본 발명의 양호한 실시예는 모든 인터럽트 요구 입력을 위한 에지-감지성 또는 ICW5 레지스터(108)내의 비트의 사용을 통해 인터럽트를 기본으로 한 선택 능력을 선택하도록 동일한 비트를 이용한다.
이러한 LEVEL/EDGE의 사용은 본 발명의 부가적인 신규 특징을 갖고 있다. 상기 특징은 양호한 실시예에서 인텔 8259 A와의 역 호환성(backward compatibility)을 갖도록 한정되지만, 다른프로그램 가능한 인터럽트 제어기는 적당한 형식으로 자체 구성 파라미터의 정의를 채용하므로써 거의 유사한 식으로 앞에 있는 인터럽트 제어기의 역 호환성을 제공할 수 있다.
또한, 제3도는 모든 초기화 명령 워드 레지스터에 제공되는 각종 시스템 신호를 도시한 것으로서, 이런 신호는 사실상 모두 통상적인 신호이다. 이런 신호는 표준 컴퓨터 시스템 데이타, 어드레스 및 제어 버스 신호이다. 예를들면, 라인 DATA0 내지 DATA7은 데이타 버스 라인이다. 이들은 제2도에 도시된 8비트 데이타 버스(64)를 함께 구성하는 개별라인이다. 라인 A은 통상적인 어드레스 버스의 최하위 비트이다. 인터페이스 장치 및 인터럽트 제어기와 같은 많은 대규모의 집적 회로는 메모리-맵식(memory-mapped)의 입력/출력의 사용을 통해 프로그램될 수 있다. 이것은 하나 이상의 메모리 어드레스가 인터페이스 장치 또는 인터럽트 제어기와 같은 주변 장치를 프로그램 하는데 이용되는 통상적인 프로그래밍 기술이다. 하나 이상의 어드레스 입력이 장치내에 설계되는 경우에, 시스템 어드레스 버스 라인은 하드웨어 내에서 상기 입력에 연결되어, 소프트웨어 프로그래밍을 통해 어드레스 가능성을 제공한다. 최종으로, 신호 I/O WRITE PULSE, CCLK 및 BCLK는 통상적인 제어 신호로서, 특히, 양호한 본 실시예는 2개의 별개의 클럭 신호 CCLK 및 BCLK를 활용한다. 통상적으로, 다수의 클럭 신호는 그들이 서로 소정의 위상 관계를 가질 경우에 이용될 수 있다. 다른 통상적인 시스템에서는 단일 클럭이 이용될 수 있다.
제4도에서, ICW1 레지스터(100)와 그 내부의 기록을 위해 이용된 논리를 나타내는 보다. 상세한 도면이 도시되는데, ICW1 레지스터(100)내로의 기록이 시스템 클럭 BCLK 및 CCLK에 의해 용이해진다. AND 게이트(110)는 시스템 CCLK를 인에이블링하여 시스템 CCLK이 적당한 조건하에서 ICW1 레지스터(100)의 C입력(112)에 도달하게 하기 하도록 채용된다. ICW1 레지스터(100)의 B입력은 시스템 BCLK에 직접 연결된다. CPU가 인터럽트 제어기(8)내에서 각 레지스터를 어드레스하게 하기 위하여, 어드레스 라인 Aø(116)은 I/O WRITE PULSE(118)과 같이 하이(High)이다. 데이타 버스(64)의 데이타 라인 DATA4이 하이일때, 명령이 ICW1 레지스터(100)에 대해 행해지는 것으로 해석된다. 따라서, DATA4는 또한 AND 게이트(110)에 연결된다.
데이타 버스(64)상의 데이타 비트는 통상적인 방식으로 ICW1 레지스터(100)내에 기록되어, 인터럽트 제어기의 바람직한 구성을 나타내는 각종 정의의 신호를 제공한다. 본 발명의 양호한 실시예에 따르면, ICW1 레지스터의 비트(3)는비트(120)이다. 8259 A 인터럽트 제어기에서, 대응 비트는 모든 인터럽트 요구 입력이 레벨-감지성 또는 에지-감지성 인지를 규정한다. 본 발명의 양호한 실시예에 있어서,비트(120)의 함수는 본 발명에 따라 각 인터럽트를 기본하여 8259 A와의 역 호환성 뿐만 아니라 선택성을 제공하도록 변형되었다.비트(120)가 로우 일시에, 모든 인터럽트 요구 입력은 에지-감지성이 된다.비트(120)가 하이일때, 인터럽트 요구 입력은 에지-감지성 또는 레벨-감지성이 되도록 각 인터럽트를 기본으로하여 프로그램 될 수 있다. 각 인터럽트 요구 입력이 ICW5 레지스터(108)와 관련하여 인터럽트 요구를 검출하기 위해 어떻게 프로그램 되는지가 이하에 기술된다. 이런 식으로 ICW1 레지스터(100)의 비트(3)의 정의는 역 호환성을 제공하면서 본 발명을 구현하는 실제적인 방식이다. 8259 A를 사용한 많은 기존의 시스템이 에지-트리거된 인터럽트 요구를 가진 주변 장치를 이용하므로, 8259 A를 구성하는 시스템 소프트웨어는 통상적으로 에지-트리거를 위해 로우(low)가 되도록 ICW1 레지스터(100)의 비트 3를 프로그램한다. 따라서, 로우가 되도록 상기 비트를 프로그램하는 본 발명에 따른 인터럽트 제어기는 8259 A와 같은 식으로 동작한다. 한편, 본 발명에 따른 인터럽트 제어기 및 신규 레벨-트리거방식 주변 장치를 사용한 신규 시스템은비트(120)를 하이로 쉽게 프로그램하여, 각 인터럽트를 기본으로하여 인터럽트 선택능력을 제공한다.
역 호환성을 가진 본 발명에 따른 인터럽트 제어기를 구현하기 위해서는, 전술된 바와의 실행이 본 발명을 수행하는 최상의 모드가 된다. 그러나, 에지-트리거 및 레벨-트리거된 인터럽트를 수행하는 다른 방법은 본 발명의 사상 및 영역내에 있음을 알 수 있다. 예를 들면,비트(120)는 하이값이 레벨-민감성이 되도록 모든 인터럽트 요구 입력을 구성하고, 로우 값으로서 각 입력 선택 능력을 가질 수 있도록 구현될 수 있다. 선택적으로,비트(120)는 무시되고, 각 인터럽트 요구 입력은 항상, 아래에 기술되는 바와같이 ICW의 대응 비트에 따라 구성된다. 또한,비트(120)의 상태는 반전되고, 즉 하이 상태는 에지-감지성 인터럽트 요구에 대응한다. 그때 이상태는비트가 된다.
ICW1 레지스터의 비트 ø는 IC4 비트(122)이다. 이 비트가 1일 시에, ICW4 레지스터(106)는 프로그램되고, 상기 레지스터의 비트가 제5도에 관련하여 기술되고, 제9a도 내지 제9e도에 표로 작성된 바와같이 인터럽트 제어가 파라미터를 정의한다. IC4비트(122)가 0일 경우, ICW4 레지스터(106)는 프로그램되지 않고, 파라미터는 IC4비트(122)가 로우인 경우를 설명한 제9e도를 참조로 기술된 바와같이 잘못된 값으로 세트된다.
제4도는 또한비트(124)는 ICW1 레지스터(100)의 비트 1를 도시한 것이다. 이런 비트는 다수의 인터럽트 제어기가 시스템내에 이용될시에 통상적인 방식으로 이용된다. 주 인터럽트 제어기는 8개까지의 종속 제어기와 함께 이용되어, 64까지의 우선 순위 레벨에서 64까지의 인터럽트 요구 입력이 조절되게 한다. 제2도에서 도시되고, 전술된 바와같이, 종속 제어부(84)는 3비트 종속 버스(86)를 갖고 있다. 종속 모드가비트(124)를 로우로 프로그래밍하여 선택되고, 제어기가 (ICW4 레지스터(106)와 관련하여 아래에 기술되는 바와같이) 주 제어기로서 구성될 경우, 종속 버스(86)를 만드는 3라인은 8개까지의 종속 제어기중 하나를 선택하는 데에 이용되는 출력이다.
또한, 제4도에는 신호 ICW1의 하이-참(high-true) 및 로우-참(low-true) 비젼(version)을 발생시키는 AND 게이트(126) 및 인버터(128)가 도시된다. AND 게이트(126)는 시스템 I/O WRITE PULSE(118), 어드레서 라인 Aø(116) 및 DATA4, 데이타 버스(64)의 제4비트를 수신하도록 연결된 입력을 가진다. 따라서, AND 게이트(126)는 ICW1 레지스터(100)가 기록될 시에 I/O WRITE PULSE(118)와 동기된 펄스로서 신호 ICW1를 출력시킨다. 이런 신호 ICW1는 ICW1 레지스터(100)로 시작하는 프로그래밍 순서가 개시하여, 순서내의 다른 레지스터의 프로그래밍을 인에이블 할 경우 잔여 ICW 레지스터를 클리어하는 데에 이용된다.
제5도에는, ICW4 레지스터(106) 및 부수 회로가 도시되는데 논리가 기술되어 있다. 다른 레지스터와 같이, ICW4 레지스터(106)는 인에이블링 논리 네트워크에 의해 인에이블된 바와같이 시스템 BCLK 및 시스템 CCLK에 의해 클럭된다. 양호한 실시예에 따르면, ICW2 및 ICW3 레지스터(102, 104)가 ICW4 레지스터(106)를 기록하는 데에 필수 요소로서 기록되어야 하므로, 인에이블링 논리 네트워크는 레지스터(102, 104)내의 기록 완료를 나타내는 신호를 수신한다. 이런 신호는 COMPL ICW2 및 COMPL ICW3라 호칭되는데 제각기(130) 및 (132)로서 제3도에 도시된다. 이들은 통상적인 구성이므로, ICW2 및 ICW3 레지스터(102), (104)는 본 명세서에 상세히 기술되지 않는다. 네트워크는 (ICW2 레지스터(102)가 프로그램됨을 나타내는) 신호 COMPL ICW2와, ICW1 레지스터(100)의비트(124)를 입력으로서 수신하도록 연결된 AND 게이트(134)를 포함한다. OR게이트(136)는 ICW3 레지스터(104)가 프로그램 되었음을 나타내는 신호 COMPL ICW3, 및 AND 게이트(134)의 출력을 입력으로서 수신하도록 연결된다. 제13도에 도시되고, 단일 모드로 이하에 기술되는 바와같이, ICW3 레지스터(104)는 프로그램되지 않는다. 따라서, ICW4 레지스터(106)의 프로그래밍은 ICW3 레지스터(104)의 프로그래밍의 종료나, 단일 모드로 ICW2 레지스터(102)의 프로그래밍을 종료하므로써 인에이블될 수 있다.
OR 게이트(136)의 출력은 AND 게이트(138)의 입력에 연결된다. AND 게이트(138)는 모든 필요 요건이 충족될시에, AND 게이트(140)를 통해 시스템 CCLK을 ICW4 레지스터(106)로 인에이블하는 출력을 발생시킨다. OR 게이트(136)로 부터의 출력은 한 필요 요건이다. 또한, I/O WRITE PULSE(118) 및 어드레스 라인 Aø(116)은 CCLK를 ICW4 레지스터(106)로 인에이블하기 위한 필요 요건이다. 최종으로, ICW4 레지스터(106) 내에 이용되지 않는 데이타 버스(64)의 비트 5, 6 및 7는 로우이다. 이들 3개의 데이타 비트는 AND 게이트(138)의 동적인 하이 입력을 조절하도록 통상적인 방식으로 반전되는 것으로 도시된다.
또한, 모든 ICW 레지스터의 프로그래밍 종료와 동시에 프로그램 가능한 인터럽트 제어기(8)를 인에이블하기 위한 회로가 제5도에 제공된다. 제어기(8)는 LEVEL/EDGE 비트(120)가 하이일 경우 ICW5 레지스터(108)가 프로그램될 때 인에이블된다. 이하 기술되는 바와같이, ICW5 레지스터(108)는 각 인터럽트를 기본하여 에지-트리거링 또는 레벨-트리거링을 선택하도록 프로그램된다.비트(120)가 로우로 프로그램 되었을 경우, 모든 인터럽트 요구 입력은 에지-민감성이 되지 않는다. 따라서, AND 게이트(142)는 프로그램 가능한 인터럽트 제어기(8)를 인에이블 하도록 제공되며, 이때비트(120)가 하이이고, /ICW5 레지스터(108)는 ICW5 COMPLETE 신호(114)로 나타내진 바와같이 프로그램된다.
세트/리세트 래치(set/reset latch; 146)는 ICW4 레지스터(106)가 (148)로 도시된 신호 COMPL ICW4를 발생시킴으로써 기록됨을 표시하도록 제공된다. 래치(146)의 출력은 또한 인터럽트 제어기(8)의 프로그래밍이 완료됨을 표시하는 데에 이용된다.비트(120)는 인터럽트 제어기(8)가 모든 입력이 에지-감지성 상황으로 이행하지 않음을 나타내는 로우인 경우에, ICW5 레지스터(108)를 프로그램할 필요가 없다. 따라서, 인터럽트 제어기(8)는 ICW4 레지스터(106)가 프로그램된 후에 인에이블되기 쉽다.
비트(120)는 하이일시에 에지-트리거링을 표시하도록 인버터(150)에 의해 반전된다. 래치(146)의 하이-참 출력(152)은 반전된 LEVEL/EDGE 비트(120)에 따라 AND 게이트(154)에 연결된다. AND 게이트(142 및 154)의 출력은 OR 게이트(156)의 입력에 연결된다. OR 게이트(156)의 출력은 하이일시에 프로그램 가능한 인터럽트 제어기(8)가 인에이블됨을 나타내는 PIC ENABLE 신호(158)이다. PIC ENABLE(158)는 프로그램 가능한 인터럽트 제어기가 인에이블됨을 나타내는 동적인 로우 신호가 요구되는 경우에 이용되는신호(162)를 발생시키도록 인버터(160)에 의해 반전된다.
래치(146)는 시스템 COLK 및 BCLK에 의해 클럭된다. CK(4)가 ICW 레지스터를 프로그램 하도록 개시할 시에, 로우값이 래치(146)내로 클럭된다. 따라서, 래치(146)의 로우-참 출력(164)은 하이가 되어, ICW4 디코딩 신호를 수신하는 AND게이트(138)를 인에이블시킨다. ICW4가 기록되고, AND게이트(138)가 하이로 진행할 시에, OR게이트(166)는 하이로 진행하여, AND게이트(170)의 제1입력(168)을 상승시키고, 그 출력은 래치(146)의 데이타 입력(172)에 연결된다. AND게이트(170)의 제2입력(174)은에 연결된다.은 정상적으로 하이이고, ICW1 레지스터(100)이 기록되는 경우에만 로우로 진행하여, 프로그래밍을 개시케 한다. 따라서, ICW1 신호가 로우로 진행하는 순간에, 로우값이 래치(146)내로 클럭된다. 래치(146)의 로우-참 출력(164)은 하이가 되어, AND게이트(138)를 인에이블시킨다. 래치(146)의 하이-참 출력(152)은 로우로 진행하여, OR게이트(166)은 AND게이트(138)의 출력이 하이로 진행할때까지 로우로 남는다. AND게이트(138)의 출력이 하이가 되어, AND게이트(140)를 통해 CCLK를 ICW4 레지스터(106)의 C 입력으로 인에이블시키고, 또한 OR게이트(166)의 출력을 상승시켜, 래치(146)의 데이타 입력(172)에 연결된 AND게이트(170)의 출력을 상승시키므로 래치(146)는 ICW4 레지스터(106)가 기록될 시에 최종으로 세트된다. 따라서,비트(120)가 로우일 경우, PIC ENABLE 신호(158)는 ICW4 레지스터(106)가 기록될 시에 래치(146)가 세트되는 시간에 하이로 진행한다.
인터럽트(AEOI) 비트(180)의 자동 종료는 프로그램가능한 인터럽트 제어기(8)가 인터럽트 긍정 인식라인(72)을 통해 수신된 최종 인터럽트 인식 펄스를 따르는 인터럽트 동작의 비-지정 종료를 자동으로 수행하게 하도록 하이로 프로그램될 수 있다. AEOI 비트(180)는 순환하는(rotating) 인터럽트 요구 우선 순위와 관련하여 통상적인 방식으로 이용될 수 있다. 인터럽트 모드의 자동 종료의 순환이 이용될 수 있다.
제6도에서는 ICW5 레지스터(108)가 도시되는데, ICW5 레지스터(108)는 8개의 데이타 입력을 가지며, 그중 하나는 각 인터럽트 요구 입력에 대응한다. 데이타 버스(64)는 AND게이트(182), (184), (186), (188), (190), (192), (196)를 통해 ICW5 레지스터(108)의 각 입력으로 인에이블된다. 레지스터(108)가 기록될 시에, 데이타 버스(64)상의 비트는 출력 신호IRQ0내지 LEVEL/EDGE가 구동되게 하도록 레지스터(108)내에 로드되어, 각 인터럽트를 기본으로 하여 각 입력이 레벨-민감성 또는 에지-감지성 되는지 여부를 설정한다.
또한, 제6도에는 시스템 CCLK을 ICW5 레지스터(108)로 인에이블하기 위한 논리 네트워크가 도시되는데,(162)는 하이이며, 이는 ICW 레지스터(94)의 프로그래밍이 진행상태에 있지만 완료하지 않음을 나타낸다. COMPL IDCW4(148)는 하이이며, 이는 ICW4 레지스터(106)가 이미 기록되었음을 나타낸다. 도시된 회로는 시스템 CCLK을 ICW5 레지스터(108)의 C입력으로 인에이블하기 위한 AND게이트(198)를 포함하고 있다. AND게이트(198)는 어드레스 라인 Aø(116) 및 I/O WRITE PULSE(118) 뿐만 아니라신호(162) 및 COMPL ICW4 신호를 수신한다.
다른 AND게이트(200)는 시스템 CCLK 및 하이-참 ICW1 신호를 수신하도록 연결된다. AND게이트(198, 200)의 출력은 ICW5 레지스터(108)의 C입력에 연결된 출력을 가진 OR게이트(202)의 입력에 연결된다. AND게이트(200)가 제공됨으로써, ICW5 레지스터(108)는 ICW1 레지스터(100)가 기록될 시에 기록된다. 이때에, AND게이트(182), (184), (186), (188), (190), (192), (194), (196)는 로우인 ICW1 신호에 연결된 각 입력에 의해 디스에이블된다. 이런 신호가 비활동적이므로, AND게이트(182 내지 196)의 출력은 모두가 로우로 되어, ICW1 레지스터(100)가 기록될 시에 ICW5 레지스터(108)의 모든 비트를 클리어한다. 이것이 수행됨으로써,비트(120)가 로우인 경우, 모든 ICW 비트는 클리어되어, 모든 인터럽트 요구 입력이 에지-민감성이 됨을 나타낸다. 각 게이트는 두 입력을 가지며, 그중 하나는 내부 데이타 버스(64)의 데이타 버스 라인에 연결되고, 다른 하나는 ICW1 신호에 연결된다. ICW1은 ICW1 레지스터(100)가 기록될 시에만 로우이다. 따라서, 이때에, ICW5 레지스터(108)에 대한 모든 입력은 로우가 된다. 마찬가지로, CCLK 인에이블링 논리는 ICW1 신호 및 시스템 CCLK에 연결된 입력을 가진 AND게이트(200)를 포함하고 있다. 따라서, 하나의 클럭 펄스는 ICW1 레지스터(100)가 기록될 경우에 ICW5 레지스터(108)의 C입력으로 통해 인에이블될 것이다. 따라서, 모든 ICW 비트는 ICW1 레지스터(100)가 기록될시에 클리어됨이 확실하다. ICW5 레지스터(108)가 연속적으로 기록될 경우, 그 최종값은 이때에 설정될 것이다. 그렇지 않으면, 모든 인터럽트 요구 입력은 에지-트리거링하도록 구성될 것이다.
또한, 제6도에는 ICW4 레지스터(106)와 관련하여 도시된 세트/리세트 래치(146)와 유사한 세트/리세트 래치(204)가 도시된다. 래치(204)는 정상적으로 하이이지만, ICW1 레지스터(100)가 기록될 시에 클리어된다. 이것은 래치(204)의 D입력에 연결된 출력과, ICW1에 연결된 입력을 가진 AND게이트(206)에 의해 수행된다. 상술한 바와같이, ICW1은 ICW1 레지스터(100)가 기록될 시에 로우로 진행한다. 따라서, 이때에, 로우 값은 래치(204)로 클럭된다. 래치(204)는 COMPL ICW4(148)이 하이로 진행할 시에 세트되며, 이는 ICW4 레지스터(106)가 이미 기록되었음을 나타내고, 또한(162)가 하이일 시는 ICW4 레지스터(106)가 기록되지만, 제5도의 세트/리세트 래치(146)의 D입력에 연결된 논리가 아직까지 프로그램가능한 인터럽트 제어기(8)를 인에이블하지 않았음을 나타낸다. 이들 신호는 AND게이트(208)에 대한 입력이고, 그 출력은 전술된 모든 조건이 충족될 시에 하이로 진행한다. AND게이트(208)는 OR게이트(210)의 제1입력에 연결된 출력을 가진다. OR게이트(210)의 제2입력은 래치(204)의 출력에 연결된다. 따라서, 래치가 하이로 진행하면, OR게이트(210)의 출력은 AND게이트(208)의 출력이 로우로 진행할지라도 하이로 남는다. 따라서 하이 값은 프로그래밍 순서가 ICW1 레지스터(100)를 프로그래밍 함으로써 다시 개실될 때까지 래치(204)내로 계속 클럭된다. ICW1이 로우로 진행하고, AND게이트(206)의 출력은 로우로 진행하며, 그리고 로우값은 래치(204)내로 클럭된다. OR게이트(210)의 출력 및 신호는 AND게이트(206)의 입력에 연결된다.
전술한 바는 본 실시예에서 제2도의 (94)로 도시된 프로그램 가능한 인터럽트 제어기(8)를 구현하는 초기화 명령워드 레지스터에 대한 설명이었다.
제7도는 제2도에 도시된 일부의 인터럽트 요구 레지스터(IRR)(66)의 상세 논리도이다. IRR(66)은 8개의 스테이지로 구성되고, 각 스테이지는 한 인터럽트 요구 입력에 대응한다. 하나의 통상적인 스테이지(212)가 제7도에 도시되어 있다. 전체로서의 IRR(66)은 제7도에 도시된 바와같은 8개의 스테이지를 포함하는 것을 알 수 있다. 또한 본 발명의 사상 및 영역에 따른 프로그램 가능한 인터럽트 제어기는 어느 적당한 수의 상기 스테이지를 포함하는 것을 알 수 있다.
본 발명에 따르면, 제7도는 에지-트리거 및 레벨-트리거된 인터럽트 요구를 검출하도록 설계된 하드웨어를 포함한다.IRQn로 칭하는 입력신호(214)가 도시되는데 이런 신호는 스테이지(212)에 대응하는 인터럽트 요구 입력이 에지-트리거되거나 레벨-트리거되는지 여부를 나타낸다.IRQn신호(214)는 제6도에 도시된 ICW5 레지스터(108)의 8개의 출력중 하나가 된다. 또한, 입력신호 IRQn(216)가 도시된다. 이것은 인터럽트 요구 입력이고, 제2도에 도시된 인터럽트 요구 입력(68)중의 어느 하나이다.IRQn신호(214)의 상태에 따라, 제7도에 도시된 하드웨어의 적당한 부분이 인터럽트 요구를 검출하여, IRR(66)의 적당한 비트로 래치하는 데에 이용된다.
레벨-트리거된 동작의 경우에,IRQn신호(214)는 하이로 되어 AND게이트(218) 및 OR게이트(220)를 통해 인터럽트 요구 IRQn(216)을 데이타 입력(224)에서 준안정성(metastability) 래치(222)로 인에이블한다. 준안정성 래치(222)는 AND게이트(228)를 통해신호(226)에 의해 인에이블될 경우 시스템 BCLK 및 시스템 CCLK에 의해 클럭된다.(226)은 정상적으로 하이이고, 레벨-트리거된 인터럽트 요구의 검출이 연기될 수 있는 인터럽트 인식 싸이클 동안에만 로우로 진행한다.
준안정성 래치(222)의 출력은 OR게이트(230)를 통해 AND게이트(232)의 입력으로 통과한다. AND게이트(232)의 나머지 입력은 ICW 레지스터(94) 및(234)를 위한 프로그래밍 순서 동안을 제외하고 하이인신호를 포함한다. 이 후자의 신호는 정상적으로 하이이지만, 제2도에 도시된 인서비스 레지스터(ISR)(88)의 대응 비트가 세트될 시에 로우로 진행하는 펄스이다. 따라서, 준안정성 래치(222)의 출력은 AND게이트(232)를 통해 인터럽트 요구 레지스터(IRR) 래치(236)의 데이타 입력으로 통과한다. 이런 래치(236)는 인터럽트 요구를 저장함으로써, 인터럽트 제어기(8)는 그것을 활용하여 CPU(4)를 인터럽트할 수 있으며, CPU가 어느 인터럽트 서비스 루틴이 실행하는지를 결정하도록 CPU(4)에 알맞은 정보를 제공할 수 있다.
상술한 바와같이, FREEZE가 레벨-트리거된 인터럽트 요구가 있을 시에 인터럽트 인식을 나타내는 로우일 경우, 인터럽트 요구는 인터럽트 인식이 종료할때까지 준안정성 래치(222)로 래치되지 않는다.
인터럽트가 인식되는 시간 간격 동안에, 인터럽트 제어기(8)가 8080/8085 시스템 또는 8086 시스템용으로 ICW4 레지스터(106)의 각 μPM 비트(176)로서 구성되는가의 여부에 따라, INTA 라인(72)상에는 2 또는 3개의 펄스가 있게 된다. 인터럽트가 인식되는 시간 동안에, IRR 래치(236)는 리세트되고, 그 대응의 ISR(88)비트는 세트된다. ISR 비트가 세트될 시에, 신호(234)는 로우로 펄스되며 따라서, AND게이트(232)의 출력은 로우로 펄스되고, 로우 값이 IRR 래치(236)로 클럭된다. 이것은 준안정성 래치(222)의 상태와 무관하게 참이다. 인터럽트 인식 동안 그리고 적당한 수의펄스가 발행한 후에, IRR 비트는 리세트되고, ISR 비트는 세트된다. 인터럽트(AEOI) 모드의 자동 종료가 ICW4 레지스터의 AEOI 비트(180)를 하이로 프로그램 하므로써 선택될 경우, ISR 비트는 최종펄스의 단부에서 클리어된다. 또한, ISR 비트는 적당한 EOI 명령이 인터럽트 서비스 루틴에 의해 발생할 시에 클리어된다. 최종 INTA 펄스의 단부에서, FREEZE는 하이로 진행하고, CCLK는 준안정성 래치(222)의 C입력으로 통과된다. 또한 IRR 래치(236)에 대한 데이타 입력은 OR게이트(229) 및 AND게이트(232)를 통해 인에이블된다. 따라서, 준안정성 래치(222)의 출력은 IRR 래치(236)로 래치된다.
에지-트리거된 동작에서, 전술된 제7도의 하부내의 하드웨어는 전술한 바와같이 작업한다. 그러나, 도면의 상부부분에서의 하드웨어는 에지-트리거된 인터럽트 요구를 검출하고 래치하여, 래치된 인터럽트 요구를 OR게이트(220)의 입력에 제공한다. 에지-트리거된 인터럽트 요구는 AND게이트(240)를 통해 인버터(238)에 의해 에지 검출기(242)의 입력으로 반전된IRQn신호(214)에 의해 인에이블된다. 에지 검출기(242)의 출력은 OR게이트(244)를 통해 레벨 변환기(246)의 입력에 연결된다.
제8a도 및 제8b도는 제7도의 에지 검출기(242)의 두 양호한 실시예를 도시한 것이다. 제8a도에서, 래치(248)의 입력 및 로우-참 출력에 연결된 입력을 가진 래치(248) 및 AND게이트(250)가 도시된다. 에지-트리거된 인터럽트 요구가 수신될 시에, IRQn신호(216)는 로우 상태에서 하이 상태로 전이한다. 검출될 유효 에지를 위해, 한 클럭 싸이클과 같이 특정 시간 제한내에서 전이가 되어야 한다. 시스템 CCLK 및 BCLK은 연속적으로 가동하여, 입력신호를 래치(348)로 래치시킨다. 전이가 행해질시에, 한 클럭 싸이클 동안 앞에 있는 로우 입력은 래치(248)내로 래치되어, 로우-참 출력을 하이로 구동시키며, 또한 전이에 수반된 입력도 하이로 한다. AND게이트(250)의 두 입력은 상기 시간 간격 동안에 하이로 된다. AND게이트(250)로 부터의 출력 신호는 한 클럭 싸이클 동안에 하이로 된다. 이런 하이 신호는 레벨 변환기(246)내로 래치된다. 제7도를 다시 참조하면, 레벨 변환기(246)의 하이-참 출력은 AND게이트(252)의 입력으로 다시 진행하며, 그 출력은 OR게이트(244)의 입력에 접속된다. 따라서, 레벨 변환기(246)는 하이로 래치될 시에,이 로우로 진행하거나 ICW1이 로우로 진행할때까지 하이로 머무는데, 이는 초기화 제어 워드가 재프로그램 되는 것을 나타낸다. 이것은 에지-트리거된 인터럽트를 하이 상태로 유효하게 래치시킨다. 레벨 변환기(246)의 출력은 그때 OR게이트(220)의 입력에 연결된다. 지금까지, 래치 에지-트리거된 인터럽트는 전술된 바와같이 레벨-트리거된 인터럽트 처럼 처리되었다.
제8b도에서는 에지 검출기(242)의 제2실시예가 도시되는데, 이 실시예는 동기화 래치(synchronizing latch; 254)가 래치(248)의 앞에 접속되는 제8a도의 실시예와 다르다. IRQn입력은 동기화 래치(254)의 데이타 입력에 연결되고, 동기화 래치(254)의 출력은 에지 검출기 래치(248)의 입력 및 AND게이트(250)에 연결된다. 래치(248) 및 AND게이트(250)는 제8a도의 실시예와 같은식으로 작업한다. 그 차이는 동기화 래치(254)가 시스템 CCLK 및 BCLK에 의해 에지-트리거된 인터럽트 요구를 동기화시킨다는 것이다. 이것은 동작의 큰 신뢰성을 제공하여, 동기화 래치(254)의 타이밍 특성이 에지-트리거된 인터럽트 요구 IRQn의 타이밍 특성에 따라 결정되게 한다.
제9a도 내지 제9e도는 각종 시스템 구성을 위한 초기화 명령 워드 프로그래밍 순서를 통상적으로 도시한 표이다. ICW1, ICW4 및 ICW5 레지스터(100), (106) 및 (108) 이외에, ICW2 및 ICW3 레지스터(102) 및 (104)가 도시된다. 각 경우에, 구성의 현저한 특성은 우측상에 기록되며, 상기 시스템을 구현하기 위해 임의의 요구 값을 가진 비트는 요구된 값에 따라 식별된다. 제9a도에서, 프로그램 가능한 인터럽트 제어기(8)는 종속 모드 구성된다. 따라서, ICW1 비트 1,비트(124)는 0으로 세트된다. 제어기(8)는 또한 인텔 8080 또는 8085 마이크로 프로세서에 따른 동작을 위해 구성된다. μPM 비트(176), ICW4 비트, 0은 제로이다. 또한, ICW2 레지스터와 ICW1 레지스터(100)의 3개의 최상위 비트는 인터럽트 서비스 루틴 어드레스의 테이블을 가진 메모리 페이지의 어드레스를 제공하는 비트 A15-A5로 프로그램된다. 어드레스 구간(ADI) 비트, ICW1의 비트 2는 4 인터럽트 서비스 루틴 어드레스 사이의 4바이트의 구간을 나타내는 1이거나, 인터럽트 서비스 루틴 어드레스 사이의 8바이트의 구간을 나타내는 0이다. 후자의 경우에, ICW1 레지스터(100)의 비트 5는 이용되지 않는다. 최종으로, 인터럽트 제어기(8)가 종속 모드로 세트되고, 하나의 주 인터럽트 제어기 및 하나 이상의 종속 인터럽트 제어기가 사용되므로, 이런 특정 인터럽트 제어기(8)는 주 제어기가 되도록 프로그램된다. 이것은 버퍼된 모드 비트 BUF, ICW4 비트 3를 1로 세트하고, M/S 비트(178), ICW4 비트 2를 1로 세트함으로써 수행된다.
제9b도에서, 프로그램 가능한 인터럽트 제어기(8)가 8086 및 8088 마이크로 프로세서로서 이용하기 위해 구성되는 것을 제외하고 제9a도와 동일한 프로그래밍 구성이 도시된다. 그 차이는 ICW4 비트 0, μPM 비트(176)가 1이다는 것이다. 제9a도에 도시된 ICW2 및 ICW1 레지스터(102) 및 (100)내의 인터럽트 루틴 어드레스 비트의 위치에, ICW2 레지스터(102)의 비트 3 내지 7는 CPU(4)에 공급된 인터럽트 벡터의 5개의 최상위 비트를 포함한다. 인터럽트 벡터의 나머지를 형성하는 3개의 최하위 비트는 인터럽트 요구 라인 IRQn(216)이 동적으로 됨에 의해 결정된다.
제9c도에서, 인터럽트 제어기(8)가 종속으로 구성되는 것을 제외하고 제9a도와 동일한 프로그래밍 구성이 도시된다. 이것은 M/S 비트(178), ICW4의 비트 2를 0으로 세트함으로써 간단히 수행된다.
제9d도에서, 종속 모드 대신에, 인터럽트 제어기(8)가 단일 모드로 구성되는 것을 제외하고 제9a도와 유사한 구성이 도시된다. 이것은비트(124), ICW1 비트 1를 1로 세트함으로써 수행된다. 마찬가지로, 버퍼된 모드 비트, ICW4 비트 3은 버퍼된 모드가 여기서 활용 불가능하기 때문에 0으로 세트된다. 또한,비트(178)의 값은 부적절하다. ICW 레지스터(104)는 제9d도에 도시된 프로그래밍 시퀀스로 부터 생략되었다. ICW3는 하나의 주 인터럽트 제어기 및 하나 이상의 종속 인터럽트 제어기가 제공될 시에만 적절한 정보를 포함하고 있다. 제9a도에 도시된 바와같이 주 제어기의 경우에, ICW3 레지스터(104)는 각각의 대응 인터럽트 요구 입력이 그에 부착된 종속 제어기를 갖는지 여부를 나타내도록 세트되는 8개의 비트 S7 내지 S0를 포함한다. 제9c도에 도시된 바와같이 종속 제어기의 경우에, ICW3 레지스터(104)의 비트 2 내지 0만이 이용된다. 이런 3개의 비트는 종속 ID를 제공하며, 그 값은 종속 장치가 연결되는 주 인터럽트 제어기의 인터럽트 요구 입력에 대응한다. 다시말하면, 주 및 종속의 개념(notion)이 단일 인터럽트 제어기가 사용될 경우에 부적절하므로, ICW3 레지스터(104)는 단일 모드에서 생략된다.
최종적으로 제9e도에서, ICW4 레지스터(106)가 생략된 프로그래밍 구성이 도시된다. ICW4가 프로그램 되는지 여부는 ICW4 비트, ICW1의 비트 0에 의해 결정된다. 제9a도 내지 제9d도에서, 상기 비트는 0이다. 따라서, ICW4 레지스터(106)는 생략되고, 임의의 고장(default)값은 ICW4 레지스터(106)내에 발생한 비트로 설정된다. 무엇보다도 먼저 시스템은 ICW4의 비트 0가 0으로 세트되는 것처럼 구성된다. 이는 8080/8085 마이크로 프로세서를 나타낸다. 둘째로, 시스템은 버퍼 비트, ICW4 비트 3가 0인 것으로 구성된다. 즉 시스템은 버퍼되지 않는 모드로 구성된다. 인터럽트 제어기(8)가 버퍼되지 않는 모드로 구성될 시에, 하드웨어 신호 SP/EN는 입력으로서 처리되고, 그 상태는 인터럽트 제어기가 종속 주 제어기로서 구성되는지를 결정한다. 제9e도의 경우에, 신호는 하이로 추정된다. 이런 추정에 의해, 인터럽트 제어기는 그 자체가 주 제어기로서 구성한다.
요약하면, 본 발명에 따라 주변장치로 부터 에지-트리거되거나 레벨-트리거된 인터럽트 요구를 검출할 수 있는 다수의 인터럽트 요구 입력을 가진 프로그램 가능한 인터럽트 제어기가 제공된다. 설명된 실시예에서 도시된 바와같이, ICW5 레지스터(108)는 각 인터럽트 요구 입력에 대응하는 비트를 갖는다. 이 비트는 제각기 에지-트리거링 또는 레벨-트리거링에 대응하는 두 상태 중의 하나로 프로그램될 수 있다. 이런 비트는 각 비트를 기본으로 하여 프로그램 가능하다. 따라서, 인터럽트 제어기의 인터럽트 요구 입력은 레벨-민감성 또는 에지-민감성 둘중 어느 하나를 갖도록 각 인터럽트를 기본으로 하여 프로그램될 수 있다. 인터럽트 요구 입력이 이런식으로 에지-민감성 또는 레벨-민감성을 갖도록 프로그램될 수 있으므로, 에지-트리거되거나 레벨-트리거된 인터럽트 요구의 혼재를 변경시킴으로써 인터럽트 제어기를 사용한 시스템을 엎그레이드시킬 수 있다. 따라서, 이런 시스템은 구형의 에지-트리거방식 주변장치와 역 호환성을 갖는 동시에, 신규의 레벨-트리거방식 주변장치와 부합한다. 게다가,비트(120)의 사용에도 불구하고, 인터럽트 제어기는 인텔 8259 A 인터럽트 제어기와 부합하게 구성될 수 있다. 따라서, 본 발명에 따른 제어기는 8259 A를 프로그래밍하기 위해 기록된 소프트웨어와 역 호환성을 가진다.
전술한 바는 본 발명의 양호한 실시예를 나타낸 것이지만, 본 발명은 상기 실시예로 제한되지 않음을 알 수 있다. 오히려, 특정 인터럽트 제어기의 구조에 알맞게 에지-민감성 또는 레벨-민감성 둘중 어느 하나를 갖도록 각 인터럽트를 기본으로 하여 프로그램 가능한 다수의 인터럽트 요구 입력을 제공함으로써 다른 형태의 인터럽트 제어기로 본 발명을 구현시킬 수 있다.

Claims (16)

  1. 중앙처리장치, 메모리 및 CPU와 복수의 주변장치 사이의 입/출력 동작을 통제하는 인터럽트 제어기를 가진 컴퓨터 시스템에서 사용을 위한 인터럽트 제어기에 있어서, 복수의 주변장치에서 인터럽트 요구를 수신하는 복수의 입력; CPU에 대해 인터럽트 요구가 있음을 가리키는 인터럽트 요구 라인; 하나 이상의 주변장치에 의해 인터럽트 요구를 송출해서 CPU에 그 인터럽트 요구를 전송하는 복수의 입력에 대응하는 복수의 스테이지를 가지는데, 각각의 스테이지는, a) 복수의 입력중 하나에 결합되어 복수의 입력중 하나에 의해 수신된 에지-트리거된 인터럽트 요구를 래치하는 에지 검출기, b) 복수의 입력중 하나에 결합되어 복수의 입력중 하나에 의해 수신된 레벨-트리거된 인터럽트 요구를 래치하는 레벨 검출기, c) 상기 에지 검출기 및 레벨 검출기에 결합되어 검출된 인터럽트 신호를 수신 및 기억하는 기억장치를 가지며; 모든 에지 검출기가 인에이블된 것을 나타내는 제1상태 또는 에지 검출기중 단지 어느 하나가 인에이블된 것을 나타내는 제2상태를 가지는 레벨/에지 신호; 인터럽트 제어기의 동작을 프로그래밍하는 한 세트의 초기화 제어 레지스터; 및, 상기 초기화 제어 레지스터를 프로그래밍하도록 단일 어드레스를 통해 어드레스 가능하며, 상기 레벨/에지 신호가 제1상태에 있을 때 각각의 스테이지에서 모든 에지 검출기를 인에이블시키며, 상기 레벨/에지 신호가 제2상태에 있을 때 각 스테이지에서 에지 검출기를 독립적으로 구성하는 모드 선택 수단을 포함하는 인터럽트 제어기.
  2. 제1항에 있어서, 상기 모드 선택 수단은 복수의 비트를 가지는 복수의 입력에 접속된 제1레지스터를 포함하며, 이 각각의 비트는 각기 복수의 입력중 각각의 입력에 대응하며, 상기 복수의 입력 각각은 각 비트가 제1상태에 있을 때 하나의 에지 검출기 수단을 인에이블하며, 각 비트가 제2상태에 있을 때 하나의 에지 검출기 수단을 디스에이블시키는 인터럽트 제어기.
  3. 제2항에 있어서, 각각의 에지 검출기는 상기 제1레지스터의 각각의 비트가 에지-트리거된 인터럽트 요구를 한 레벨로서 수신하여 래치하도록 레벨 변환기 래치에 접속된 출력에서 에지-트리거된 인터럽트 요구를 수신하고 에지-트리거된 인터럽트 요구를 래치하도록 제1상태에 있을 때 동작하며, 복수의 입력중 각 입력에 접속된 데이타 입력을 가지는 인터럽트 제어기.
  4. 제2항에 있어서, 각각의 레벨 검출기는 복수의 입력중 각각의 입력에 접속되며, 각각의 비트가 제2상태에 있을 때 레벨-트리거된 인터럽트 요구를 수신하며, 각각의 비트가 제1상태에 있을 때 에지 검출기에 의한 한 레벨로서 유지된 인터럽트 요구를 수신하도록 상기 에지 검출기 수단에 결합된 준안정 래치를 가지는 인터럽트 제어기.
  5. 제2항에 있어서, 상기 모드 선택 수단은 하나의 비트를 가지는 제2레지스터를 포함하며, 상기 비트는 제1레지스터에 모든 에지 검출기가 인에이블되야 할 것을 나타내도록 제1상태와 상기 스테이지중 임의의 스테이지에서 에지 검출기가 선택적으로 인에이블되야 할 것을 나타내도록 제2상태에 있는 인터럽트 제어기.
  6. 제2항에 있어서, 각각의 에지 검출기는 제1레지스터의 대응 비트가 제1상태로 세트되었을 때 인터럽트 요구중 각각의 요구를 수신하도록 복수의 입력중 어느 하나에 응답하는 동기화 래치; 에지 검출기 래치의 데이타 입력에 접속된 동기화 래치의 데이타 출력; 및 에지 트리거된 인터럽트 요구 신호가 시스템 클럭과 동기하여 에지 검출기 래치의 데이타 입력에 나타나도록 복수의 입력중 하나에서 상기 동기화 래치의 데이타 출력으로 인터럽트 요구를 래치시키도록 상기 시스템 클럭을 수신하게 접속된 동기화 래치의 클럭 입력을 포함하는 인터럽트 제어기.
  7. 제5항에 있어서, 시스템 데이타 버스에 접속된 데이타 버스 버퍼를 추가로 포함하며, 상기 시스템 데이타 버스는 CPU, 제1 및 제2레지스터를 포함하는 판독/기록 제어 논리 모듈(read/write control logic module) 및 상기 데이타 버스 버퍼와 상기 판독/기록 데이타 논리 모듈 사이에 접속된 내부 데이타 버스에 접속되며, 상기 판독/기록 제어 논리 모듈은 CPU로 부터의 명령문에 응답하여 상기 데이타 버스 버퍼 및 상기 내부 데이타 버스를 통해 상기 제1 및 제2레지스터내에 시스템 데이타 버스상의 데이타를 기록하는 수단을 추가로 포함하는 인터럽트 제어기.
  8. 제7항에 있어서, 상기 판독/기록 제어 논리 모듈은 제1 및 제2출력 상태를 가진 인터럽트 출력을 포함하며, 이 인터럽트 출력이 인터럽트 요구 레지스터내의 대응비트가 인터럽트 요구를 수신하여 홀드할시에 제1상태를 입력시켜 CPU로 하여금 인터럽트 요구에 대하여 서비스하게 하도록 CPU를 인터럽트하는 인터럽트 제어기.
  9. 컴퓨터 시스템으로서, 중앙처리장치(CPU); 메모리; 복수의 주변장치; 상기 복수의 주변장치를 시스템 데이타 버스에 접속하는 복수의 인터페이스; 및, 상기 인터페이스를 통해 상기 CPU와 복수의 주변장치 사이에서 입/출력 동작을 통제하는 인터럽트 제어기를 포함하는데, 상기 인터럽트 제어기는 복수의 주변장치에서 인터럽트 요구를 수신하는 복수의 입력; CPU에 대해 인터럽트 요구가 있음을 가리키는 인터럽트 요구라인; 하나 이상의 주변장치에 의해 인터럽트 요구를 송출해서 CPU에 그 인터럽트 요구를 송출하는 복수의 입력에 대응하는 복수의 스테이지를 가지는데, 각각의 스테이지는 a) 복수의 입력중 하나에 결합되어 복수의 입력중 하나에 의해 수신된 에지-트리거된 인터럽트 요구를 래치하는 에지 검출기, b) 복수의 입력중 하나에 결합되어 복수의 입력중 하나에 의해 수신된 레벨-트리거된 인터럽트 요구를 래치하는 레벨 검출기, c) 상기 에지 검출기 및 레벨 검출기에 결합되어 검출된 인터럽트 요구를 수신 및 기억하는 기억장치를 가지며; 모든 에지 검출기가 인에이블될 것을 나타내는 제1상태, 또는 에지 검출기중 단지 어느 하나가 인에이블될 것을 나타내는 제2상태를 가지는 레벨/에지 신호; 인터럽트 제어기의 동작을 프로그래밍하는 한 세트의 초기화 제어 레지스터; 및, 상기 초기화 제어 레지스터를 프로그래밍하도록 단일 어드레스를 통해 어드레스 가능하며, 상기 레벨/에지신호가 제1상태에 있을 때 각각의 스테이지에서 모드 에지 검출기를 인에이블시키며, 상기 레벨/에지 신호가 제2상태에 있을 때 각 스테이지에서 에지 검출기를 독립적으로 구성하는 모드 선택 수단을 포함하는 컴퓨터 시스템.
  10. 제9항에 있어서, 상기 모드 선택 수단을 복수의 비트를 가지는 복수의 입력에 접속된 제1레지스터를 포함하며, 이 각각의 비트는 각기 복수의 입력중 각각의 입력에 대응하며, 상기 복수의 입력 각각은 각 비트가 제1상태에 있을 때 하나의 에지 검출기 수단을 인에이블하며, 각 비트가 제2상태에 있을 때 하나의 에지 검출기 수단을 디스에이블시키는 컴퓨터 시스템.
  11. 제10항에 있어서, 각각의 에지 검출기는 상기 제1레지스터의 각각의 비트가 에지 트리거된 인터럽트 요구를 한 레벨로서 수신하여 래치하도록 레벨 변환기 래치에 접속된 출력에서 에지 트리거된 인터럽트 요구를 수신하고 에지 트리거된 인터럽트 요구를 래치하도록 제1상태에 있을 때 동작하며, 복수의 입력중 각 입력에 접속된 데이타 입력을 가지는 컴퓨터 시스템.
  12. 제10항에 있어서, 각각의 레벨 검출기는 복수의 입력중 각각의 입력에 접속되며, 각각의 비트가 제2상태에 있을 때 레벨 트리거된 인터럽트 요구를 수신하며, 각각의 비트가 제1상태에 있을 때 에지 검출기에 의한 한 레벨로서 유지된 인터럽트 요구를 수신하도록 상기 에지 검출기 수단에 결합된 준안정 래치를 가지는 컴퓨터 시스템.
  13. 제10항에 있어서, 상기 모드 선택 수단은 하나의 비트를 가지는 제2레지스터를 포함하며, 상기 비트는 제1레지스터에 모든 에지 검출기가 인에이블되야 할 것을 나타내도록 제1상태와 상기 스테이지중 임의의 스테이지에서 에지 검출기가 선택적으로 인에이블되야 할 것을 나타내도록 제2상태에 있는 컴퓨터 시스템.
  14. 제10항에 있어서, 각각의 에지 검출기는 제1레지스터의 대응 비트가 제1상태로 세트되었을 때 인터럽트 요구중 각각의 요구를 수신하도록 복수의 입력중 어느 하나에 응답하는 동기화 래치; 에지 검출기 래치의 데이타 입력에 접속된 동기화 래치의 데이타 출력; 및 에지 트리거된 인터럽트 요구 신호가 시스템 클럭과 동기하여 에지 검출기 래치의 데이타 입력에 나타나도록 복수의 입력중 하나에서 상기 동기화 래치와 데이타 출력으로 인터럽트 요구를 래치시키도록 상기 시스템 클럭을 수신하게 접속된 동기화 래치의 클럭 입력을 포함하는 컴퓨터 시스템.
  15. 제13항에 있어서, 시스템 데이타 버스에 접속된 데이타 버스 버퍼를 추가로 포함하며, 상기 시스템 데이타 버스는 CPU, 제1 및 제2레지스터를 포함하는 판독/기록 제어 논리 모듈 및 상기 데이타 버스 버퍼와 상기 판독/기록 제어 논리 모듈 사이에 접속된 내부 데이타 버스에 접속되며, 상기 판독/기록 제어 논리 모듈은 CPU로 부터의 명령문에 응답하여 상기 데이타 버스 버퍼 및 상기 내부 데이타 버스를 통해 상기 제1 및 제2레지스터내에 시스템 데이타 버스상의 데이타를 기록하는 수단을 추가로 포함하는 컴퓨터 시스템.
  16. 제15항에 있어서, 상기 판독/기록 제어 논리 모듈은 제1 및 제2출력 상태를 가진 인터럽트 출력을 포함하며, 이 인터럽트 출력이 인터럽트 요구 레지스터내의 대응비트가 인터럽트 요구를 수신하여 홀드할시에 제1상태를 입력시켜 CPU로 하여금 인터럽트 요구에 대하여 서비스하게 하도록 CPU를 인터럽트하는 컴퓨터 시스템.
KR1019900017520A 1989-11-03 1990-10-31 프로그램 가능한 인터럽트 제어기 KR940002087B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US43127589A 1989-11-03 1989-11-03
US431275 1989-11-03
US431,275 1989-11-03

Publications (2)

Publication Number Publication Date
KR910010326A KR910010326A (ko) 1991-06-29
KR940002087B1 true KR940002087B1 (ko) 1994-03-17

Family

ID=23711223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900017520A KR940002087B1 (ko) 1989-11-03 1990-10-31 프로그램 가능한 인터럽트 제어기

Country Status (9)

Country Link
EP (1) EP0426331B1 (ko)
JP (1) JPH0612526B2 (ko)
KR (1) KR940002087B1 (ko)
CN (1) CN1020813C (ko)
AU (1) AU635338B2 (ko)
BR (1) BR9005533A (ko)
DE (1) DE69031530D1 (ko)
GB (1) GB9012950D0 (ko)
MY (1) MY107293A (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU706450B2 (en) * 1993-07-06 1999-06-17 Tandem Computers Incorporated A processor interface circuit
JP2921412B2 (ja) * 1994-09-30 1999-07-19 日本電気株式会社 データ処理装置
KR100393765B1 (ko) * 1996-03-26 2004-03-10 엘지전자 주식회사 인터럽트제어장치
US6298410B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Apparatus and method for initiating hardware priority management by software controlled register access
CN100437394C (zh) * 2006-04-14 2008-11-26 华为技术有限公司 一种硬件单元的控制方法
CN101872330B (zh) * 2009-11-04 2012-07-25 杭州海康威视数字技术股份有限公司 多pcie设备系统中断处理方法
CN102200770B (zh) * 2011-04-06 2013-04-10 北京配天大富精密机械有限公司 一种基于pci的信息交互系统及方法、上位机
US20120271968A1 (en) * 2011-04-21 2012-10-25 Microchip Technology Incorporated Logic device for combining various interrupt sources into a single interrupt source and various signal sources to control drive strength
US9450585B2 (en) 2011-04-20 2016-09-20 Microchip Technology Incorporated Selecting four signals from sixteen inputs
CN102693193B (zh) * 2012-04-26 2015-05-27 重庆重邮信科通信技术有限公司 中断辅助处理装置、实时系统及中断处理方法
CN103617137B (zh) * 2013-11-29 2016-09-07 暨南大学 一种兼容8051 ip核的中断控制器及其控制方法
CN105278408B (zh) * 2015-10-26 2017-07-25 重庆电子工程职业学院 一种基于计算机ic控制的多功能定时器电路
CN107463494B (zh) * 2017-06-30 2020-11-03 百富计算机技术(深圳)有限公司 中断服务程序调试方法、装置、存储介质及其计算机设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5741726A (en) * 1980-08-22 1982-03-09 Hitachi Ltd Process interruption input circuit
PH24865A (en) * 1987-03-24 1990-12-26 Ibm Mode conversion of computer commands
CA1319441C (en) * 1988-09-09 1993-06-22 Paul R. Culley Programmable interrupt controller

Also Published As

Publication number Publication date
JPH03196225A (ja) 1991-08-27
BR9005533A (pt) 1991-09-17
AU635338B2 (en) 1993-03-18
EP0426331B1 (en) 1997-10-01
EP0426331A2 (en) 1991-05-08
MY107293A (en) 1995-10-31
DE69031530D1 (de) 1997-11-06
EP0426331A3 (en) 1991-11-06
JPH0612526B2 (ja) 1994-02-16
CN1052202A (zh) 1991-06-12
GB9012950D0 (en) 1990-08-01
KR910010326A (ko) 1991-06-29
AU6375790A (en) 1991-05-09
CN1020813C (zh) 1993-05-19

Similar Documents

Publication Publication Date Title
US5261107A (en) Programable interrupt controller
JP2573566B2 (ja) バスコンバータ
KR940002087B1 (ko) 프로그램 가능한 인터럽트 제어기
US4878174A (en) Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
US5819096A (en) PCI to ISA interrupt protocol converter and selection mechanism
US5163146A (en) System responsive to interrupt levels for changing and restoring clock speed by changing and restoring a register value
KR100385871B1 (ko) 인터럽트 제어기
US5628027A (en) Method of determining the configuration of devices installed on a computer bus
EP0313097B1 (en) Microcomputer system including master processor and slave processor
CA1121068A (en) Microcontroller for disk files
JPS6319854Y2 (ko)
EP0463775B1 (en) Multiple speed expansion card
KR900002438B1 (ko) 프로세서간 결합방식
US5809227A (en) Detecting the presence of a device on a computer system bus by measuring the response time of data signals on bus, and maximizing system performance based on that response time
US4047245A (en) Indirect memory addressing
US4225921A (en) Transfer control technique between two units included in a data processing system
EP0338564B1 (en) Microprogram branching method and microsequencer employing the method
KR100249080B1 (ko) 마이크로컴퓨터와의주변장치접속용제어기
EP0363567B1 (en) A computer with interrupt controlled clock speed and its method of operation
US4217639A (en) Logic for generating multiple clock pulses within a single clock cycle
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor
US5247640A (en) Dual access control system including plural magnetic disk control units and contention control circuitry
US5396599A (en) Computer system with a bus controller
US5537664A (en) Methods and apparatus for generating I/O recovery delays in a computer system
Mustafa Microcomputer interfacing and applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19970220

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee