KR100331028B1 - 단일신호인터럽트방식의프로세서를위한인터럽트요구제어기및그제어방법 - Google Patents

단일신호인터럽트방식의프로세서를위한인터럽트요구제어기및그제어방법 Download PDF

Info

Publication number
KR100331028B1
KR100331028B1 KR1019980049407A KR19980049407A KR100331028B1 KR 100331028 B1 KR100331028 B1 KR 100331028B1 KR 1019980049407 A KR1019980049407 A KR 1019980049407A KR 19980049407 A KR19980049407 A KR 19980049407A KR 100331028 B1 KR100331028 B1 KR 100331028B1
Authority
KR
South Korea
Prior art keywords
interrupt
processor
request
bit
interrupt request
Prior art date
Application number
KR1019980049407A
Other languages
English (en)
Other versions
KR20000032810A (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 KR1019980049407A priority Critical patent/KR100331028B1/ko
Publication of KR20000032810A publication Critical patent/KR20000032810A/ko
Application granted granted Critical
Publication of KR100331028B1 publication Critical patent/KR100331028B1/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/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/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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/54Interprogram communication

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

본 발명은 디지털 컴퓨터 시스템에서 프로세서 외부에서 발생한 여러 종류의 인터럽트를 단일 신호 인터럽트 방식의 프로세서(Single Signal Interrupted Processor)에게 신속하고 효과적으로 알려주기 위하여, 내부에 인터럽트 제어 레지스터(Interrupt Control Register)를 내장한 인터럽트 요구 제어기(Interrupt Request Controller) 및 그 제어 방법을 제공하는데 그 목적이 있다.
본 발명에 따르면, 단일 신호 인터럽트 방식의 프로세서의 인터럽트 요구 제어 기능을 수행하고, 상기 프로세서와 프로세서 인터페이스를 통하여 연결된 인터럽트 요구 제어기에 있어서, 외부에서 입력되는 인터럽트 요구 신호를 일시적으로 저장하고, 상기 프로세서로부터 읽기 및 쓰기를 수행할 수 있는 인터럽트 제어 레지스터를 내부에 포함하며, 상기 인터럽트 제어 레지스터에 저장된 인터럽트 제어 정보를 이용하여 인터럽트를 제어하고, 단일 인터럽트 요구 신호를 상기 프로세서 인터페이스를 거치지 아니하고 직접 상기 프로세서에게 전송하는 것을 특징으로 하는 인터럽트 요구 제어기가 제공된다.

Description

단일 신호 인터럽트 방식의 프로세서를 위한 인터럽트 요구 제어기 및 그 제어 방법{Interrupt request controller and control method for a single signal interrupted processor}
본 발명은 인터럽트 요구 제어기 및 그 제어 방법에 관한 것이며, 특히, 디지털 컴퓨터 시스템에서 프로세서 외부의 사건(Event)을 인터럽트를 통하여 단일 신호 인터럽트 방식의 프로세서에게 신속하고 효과적으로 알려주고, 프로세서로 입력되는 단일 인터럽트 신호의 구동(Assertion) 및 철회(Deassertion)를 신속하고 효율적으로 수행하는 인터럽트 요구 제어기 및 그 제어 방법에 관한 것이다.
디지털 컴퓨터 시스템에서 인터럽트는 비정기적이고 예외적인 사건(Event)으로서, 프로세서의 제어를 현재 수행중인 프로그램으로부터 비정기적이고 예외적으로 발생한 사건을 서비스하는 또 다른 프로그램으로 일시적으로 옮기게 한다. 여기서 프로세서는 중앙 처리 장치(CPU : Central Processing Unit)라고도 한다.
인터럽트는 사건(Event)이 발생하는 위치에 따라, 내부 인터럽트(Internal Interrupt)와 외부 인터럽트(External Interrupt)로 구분된다. 내부 인터럽트는 프로세서 내부에서 발생하는 인터럽트로서, 프로그램의 특권 명령의 실행, 중앙 처리 장치 내부의 연산 결과의 오버플로우(Overflow) 및 기억 장치의 패리티 오류 등이 있으며, 트랩(Trap)이라고도 불리운다. 외부 인터럽트는 프로세서 외부에서 발생하는 인터럽트로서, 전원 이상이나 키보드의 인터럽트 키가 눌려진 경우 등이 있으며, 일반적으로 인터럽트 요구 신호(Interrupt Request Signal)를 통하여 프로세서에게 입력된다.
프로세서에게 인터럽트를 알려주는 기본적인 방법은 프로세서에게 인터럽트 요구 신호를 구동하는 것이다. 프로세서 입력 신호인 인터럽트 요구 신호의 개수는 프로세서마다 다르며, 프로세서에 따라 1개 또는 여러 개가 존재할 수 있다.
위에서 서술한 인터럽트에 관한 일반적인 내용은 M.M. Mano가 쓴 'Computer System Architecture' 및 John P. Hayes가 쓴 'Computer Architecture and Organization'에서 상세하게 설명하고 있다.
한편 프로세서는 수행되는 각 명령어(Instruction)의 끝에서 주기적으로 인터럽트를 조사한다. 프로세서가 인터럽트 발생을 인지하면 프로세서는 해당 인터럽트를 서비스하는 특정 프로그램을 수행하여야 한다. 인터럽트 서비스 프로그램의 수행을 마치면, 프로세서는 다시 원래의 프로그램으로 복귀하여 인터럽트에 의하여 중단되었던 위치에서부터 프로그램 수행을 계속한다.
또한, 인터럽트는 프로세서 내부에서 마스크(Mask)될 수 있다. 마스크된 인터럽트는 마스크가 해제될 때까지 서비스되지 않고, 대기 상태에 머물게 된다. 프로세서 내부에서 인터럽트의 마스크와 해제는 프로그램에 의하여, 레지스터에 쓰기를 수행함으로써 이루어지며, 일반적으로 프로세서 명령어 집합(Instruction Set)에는 인터럽트 요구를 마스크하기 위한 별도의 명령어가 존재한다.
상기와 같이 프로세서가 인위적으로 마스크할 수 있는 인터럽트를 가리켜 마스크 가능 인터럽트(Maskable Interrupt)라고 한다. 반면, 긴급한 사건을 처리하기 위하여 대부분의 프로세서는 마스크 불가능 인터럽트(Non-Maskable Interrupt)를 가지고 있으며, 마스크 불가능 인터럽트는 프로세서가 어떠한 프로그램을 수행하고 있는가에 상관없이 반드시 서비스해야 하는 인터럽트이다. 별도의 설명이 없는 한 본 발명에서 언급되는 인터럽트는 마스크 가능 인터럽트를 의미한다.
프로세서가 인터럽트 요구를 접수하면 해당 인터럽트의 서비스 프로그램을 수행하여야 한다. 프로세서의 제어를 현재 수행중인 프로그램으로부터 인터럽트 서비스 프로그램으로 옮기기 위하여, 프로세서는 인터럽트 서비스 프로그램의 시작 주소를 알아야 하는데, 이 주소를 인터럽트 벡터(Interrupt Vector) 또는 간단히벡터라고 한다. 또한, 인터럽트를 요구하는 외부 장치가 프로세서에게 인터럽트 벡터를 직접 제공하는 방식을 벡터 인터럽트(Vectored Interrupt)라고 부른다. 벡터 인터럽트 방식을 사용하는 프로세서는 보통 하나의 인터럽트 요구 신호를 갖는다.
한편 인터럽트 제어기에 관련된 종래 기술들을 살펴보면 다음과 같다.
미국의 시러스 로직사(Cirrus Logic. Inc.)가 등록 받은 미국 특허 'Interrupt request control logic reducing the number of interrupts required for I/O data transfer(US. 5,797,037)'의 내용을 살펴보면 다음과 같다.
본 선행 특허는 직접 메모리 읽기(DMA : Direct Memory Access) 데이터 전송 시스템에서 필수적으로 사용되는 인터럽트 요구 제어기를 고안한 것으로서, 인터럽트 요구 제어기는 다음의 네 가지 경우에 대하여 프로세서에게 인터럽트를 요구한다. 첫째, 외부 입력 인터럽트가 인터럽트 요구 제어기에게 인가되었을 때이다. 둘째, 이미 결정된 시간 간격 동안에 DMA 요구가 발생하지 않을 때이다. 셋째, 이미 설정된 데이터 전송량이 한계에 도달할 때이다. 넷째, 데이터 전송 과정에 오류가 발생할 때이다.
상기 선행 특허에 따른 인터럽트 요구 제어기는 프로세서에게 인터럽트를 요구하기 전에 상기 네 가지 조건을 확인해 봄으로써 프로세서에게 요구하는 인터럽트의 수를 줄일 수 있는 장점이 있으나, DMA에 국한되므로 프로세서에서 구동되는 모든 인터럽트를 처리할 수 없다는 문제점이 있다.
또한, 일본의 도시바사(Kabushiki Kaisha Toshiba)가 등록 받은 미국 특허 'Interrupt control system provided in a computer(US. 5,752,043)'의 내용을 살펴보면 다음과 같다.
본 선행 특허는 프로세서, PCI 버스(병렬 통신 접속 버스, Peripheral Component Interconnect bus), ISA 버스(업계 표준 아키텍쳐 버스, Industrial Standard Architecture bus) 및 직렬 전송선을 갖는 컴퓨터에 사용되는 인터럽트 제어 시스템에 관한 것으로서, 직렬 전송선을 통하여 전송된 인터럽트 요구 신호는 ISA 인터럽트 요구 신호로 변환된다. 또한, ISA 인터럽트 요구와 PCI 버스 인터럽트 요구는 각각 우선 순위를 가지며, 이 우선 순위에 따라 인터럽트 처리 순위가 다르게 된다. 인터럽트 요구 제어기는 이들 외부 인터럽트를 받아서 우선 순위에 따라 프로세서에게 인터럽트를 요구하게 되며, 인터럽트 제어기로 입력되는 각각의 외부 인터럽트 신호는 에지(Edge) 검출 또는 레벨(Level) 검출 중 하나로 고정된다.
그러나, 상기 선행 특허는 외부 인터럽트 중 PCI 버스, ISA 버스 및 직렬 전송선으로 입력된 외부 인터럽트에만 적용된다는 문제점이 있다.
또한, 일본의 후지쓰사(Fujitsu Limited)가 등록 받은 미국 특허 'Interrupt control circuit(US. 5,615,375)'의 내용을 살펴보면 다음과 같다.
본 선행 특허는 명령어를 인출하여 수행하는 데이터 처리 장치에 사용되는 인터럽트 제어 회로에 관한 것으로서, 인터럽트 제어 회로는 외부 장치로부터 인터럽트를 입력받아 데이터 처리 장치로 요구한다. 인터럽트 제어 회로는 인터럽트 레벨 레지스터에 인터럽트 수락(Interrupt Accept) 레벨 데이터를 저장하는데, 이 데이터는 외부에서 요구된 인터럽트의 레벨을 나타낸다. 인터럽트 제어 회로는 저장된 인터럽트 수락 레벨 데이터를 인터럽트 구동 및 내부 제어에 이용한다.
그러나, 상기 선행 특허는 인터럽트 레벨을 갖추어야 하는 단계가 더 포함되므로 시간 지연이 발생할 수 있고, 컴퓨터 시스템의 성능을 저하시킬 수 있는 문제점이 있다.
프로세서에게 인터럽트를 요구하는 방법은 각각의 프로세서마다 다르기 때문에, 사용되는 프로세서에 맞도록 설계되어야 한다. 인터럽트 요구 제어 회로는 프로세서 외부에서 발생한 여러 종류의 사건을 프로세서에게 인터럽트로 알려주는 기능을 수행하며, 발생한 사건의 개수와 중요성 및 프로세서의 제한 사항 등을 고려하여 최적의 성능을 발휘하도록 설계되어야 한다.
이와 같이 주어진 제한된 조건에서 인터럽트를 프로세서에게 신속하고 효과적으로 전달하는 구체적인 인터럽트 요구 제어 방법은 위에서 서술한 종래의 기술들에 나타나지 않고 있다.
본 발명은 앞서 설명한 바와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로서, 단일 신호 인터럽트 방식의 프로세서로 입력되는 단일 인터럽트 신호의 구동 및 철회를 신속하고 효율적으로 수행하는 인터럽트 요구 제어기 및 그 제어 방법을 제공하는 데 그 목적이 있다.
도 1은 본 발명의 일 실시예에 따른 인터럽트 관련 장치의 연결 구성도이고,
도 2는 도 1에 도시된 인터럽트 제어 레지스터의 구성도이고,
도 3은 본 발명의 일 실시예에 따른 인터럽트 요구 제어 방법을 나타낸 흐름도이다.
♠ 도면의 주요부분에 대한 부호의 설명 ♠
100 : 프로세서 110 : 프로세서 인터페이스
120 : 인터럽트 요구 제어기 121 : 인터럽트 제어 레지스터
134 : 로컬 버스 135 : 프로세서 외부 버스
앞서 설명한 바와 같은 목적을 달성하기 위한 본 발명에 따르면, 단일 신호 인터럽트 방식의 프로세서의 인터럽트 요구 제어 기능을 수행하고, 상기 프로세서와 프로세서 인터페이스를 통하여 연결된 인터럽트 요구 제어기에 있어서, 상기 인터럽트 요구 제어기 내부에 포함되어 있어 상기 프로세서가 읽기 및 쓰기를 수행할수 있고, 외부에서 입력되는 인터럽트 요구 신호를 일시적으로 저장하고 인터럽트를 제어하는데 사용되는 인터럽트 레지스터; 및 상기 프로세서 인터페이스를 거치지 아니하고 인터럽트 요구를 직접 상기 프로세서에게 전송하는 신호선을 구비하고, 상기 인터럽트 요구 제어기로부터 프로세서에게 요구한 인터럽트의 유형을 수신하고, 인터럽트 응답의 처리가 완료되면, 상기 인터럽트 요구 제어기에게 인터럽트 응답 완료 신호를 전송하는 인터럽트 응답 제어기와 응답 제어기 연결용 신호선을 통해 상호 연결되어 있는 것을 특징으로 하는 인터럽트 요구 제어기가 제공된다.
또한, 프로세서의 인터럽트 요구 제어를 위하여 내부에 인터럽트 제어 레지스터를 포함한 인터럽트 요구 제어기의 제어 방법에 있어서, 상기 인터럽트 제어 레지스터의 요구(Request) 비트열이 셋팅되었는지 여부를 판단하는 제 1 단계와; 상기 제 1 단계의 판단 결과, 요구 비트열이 셋팅되어 있으면, 인터럽트 제어 레지스터의 구동(Assertion) 비트열을 셋팅하고, 상기 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 2 단계와; 인터럽트 응답 제어기로부터 인터럽트 응답 완료 신호가 수신되면, 제 1 단계로 복귀하는 제 3 단계를 포함하여 이루어진 것을 특징으로 하는 인터럽트 요구 제어기의 제어 방법이 제공된다.
또한, 컴퓨터에, 프로세서의 인터럽트 요구 제어를 위하여 내부에 인터럽트제어 레지스터를 포함한 인터럽트 요구 제어기의 제어 방법을 실행시킬 수 있는 방법에 있어서, 상기 인터럽트 제어 레지스터의 요구(Request) 비트열이 셋팅되었는지 여부를 판단하는 제 1 단계와; 상기 제 1 단계의 판단 결과, 요구 비트열이 셋팅되어 있지 않으면, 상기 제 1 단계로 복귀하고, 요구 비트열이 셋팅되어 있으면, 상기 인터럽트 제어 레지스터의 구동(Assertion) 비트열을 셋팅한 후, 상기 인터럽트 제어 레지스터의 마스크(Mask) 비트열이 셋팅되었는지 여부를 판단하는 제 2 단계와; 상기 제 2 단계의 판단 결과, 마스크 비트열이 셋팅되어 있으면, 상기 제 1 단계로 복귀하고, 마스크 비트열이 셋팅되어 있지 않으면, 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 3 단계와; 인터럽트 응답 제어기로부터 인터럽트 응답 완료 신호가 수신되면, 제 1 단계로 복귀하는 제 4 단계를 실행시킬 수 있는 프로그램을 기록하고 있는 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.
아래에서, 본 발명에 따른 양호한 일 실시예를 첨부한 도면을 참조로 하여 상세히 설명하겠다.
본 실시예에서 적용되는 프로세서는 하나의 인터럽트 신호를 갖고 있으며, 프로세서 외부의 모든 마스크 가능 인터럽트는 이 단일 신호를 통하여 프로세서에게 요구된다.
도 1은 본 실시예에 따른 디지털 컴퓨터 시스템에 있어서, 인터럽트 관련 장치의 연결 구성도로서 프로세서(Processor, 100), 프로세서 인터페이스(Processor Interface, 110), 인터럽트 요구 제어기(Interrupt Request Controller, 120), 로컬 버스(Local Bus, 134) 및 프로세서 외부 버스(Processor External Bus, 135)로 구성되어 있다.
이를 상세히 설명하면 다음과 같다.
인터럽트 요구 제어기(120)는 인터럽트 요구 신호인 INTR 신호를 통하여 프로세서(100)와 연결되고, 로컬 버스(134)를 통하여 프로세서 인터페이스(110)와 연결된다. 프로세서 인터페이스(110)는 프로세서(100)와 인터럽트 요구 제어기(120) 사이의 인터페이스 역할을 수행하는 제어 회로로서, 프로세서 외부 버스(135)를 통하여 프로세서(100)와 연결되고, 로컬 버스(134)를 통하여 인터럽트 요구 제어기 (120)와 연결되어 있다.
인터럽트 요구 제어기(120)는 프로세서 외부의 인터럽트 요구를 INTR 신호를 통하여 프로세서(100)에게 알려주는 기능을 수행하며, 단일 인터럽트 신호(Single Interrupt Signal)인 INTR 신호의 구동(Assertion) 및 철회(Deassertion)를 제어하기 위하여, 인터럽트 제어 레지스터(Interrupt Control Register, 121)를 내장하고 있다. 인터럽트 제어 레지스터는 인터럽트 요구 제어에 사용되는 레지스터로서, 인터럽트 요구와 관련되는 제어 정보를 포함하고 있다. 한편, 본 실시예에서는 상기 인터럽트 제어 레지스터는 24 비트로 구성하였다.
인터럽트 요구 제어기(120)로부터 인터럽트 응답 제어기(Interrupt Acknowledge Controller)로 출력되는 ITYPE 신호는 인터럽트 요구 제어기(120)가 프로세서(100)에게 요구한 인터럽트 유형(Type)을 나타내는 신호로서, 본 실시예에서는 신호의 값에 따라 4 종류의 인터럽트 유형을 표시하기 위하여 2 비트로 구성하였다.
인터럽트 응답 제어기로부터 인터럽트 요구 제어기(120)로 입력되는 IACK 신호는 인터럽트 응답의 처리 완료 여부를 나타내는 신호로서, IACK 신호가 1이면 인터럽트 응답 제어기에서 인터럽트 응답이 처리 완료되었음을 나타내고 0이면 처리되지 않았음을 나타낸다.
외부로부터 인터럽트 요구 제어기(120)에 입력되는 4 개의 인터럽트 요구 신호는 TINT 신호, SLINT 신호, IPINT 신호 및 NLINT 신호이다.
TINT 신호는 타이머(Timer)로부터 발생한 주기적인 타이머 인터럽트(Timer INTerrupt)의 요구 신호로서, 다른 인터럽트보다 우선적으로 처리되어야 하며, TINT 신호가 1이면 타이머 인터럽트를 요구함을 나타내고, 0이면 요구하지 않음을 나타낸다.
SLINT 신호는 프로세서 주변 장치로부터 발생한 중요 로컬 인터럽트(Significant Local INTerrupt)의 요구 신호로서, SLINT 신호가 1이면 중요 로컬 인터럽트를 요구함을 나타내고, 0이면 요구하지 않음을 나타낸다.
IPINT 신호는 프로세서간 인터럽트 제어기로부터 발생한 프로세서간 인터럽트(Inter-Processor INTerrupt)의 요구 신호로서, IPINT 신호가 1이면 프로세서간 인터럽트를 요구함을 나타내고, 0이면 요구하지 않음을 나타낸다.
NLINT 신호는 프로세서 주변 장치로부터 발생한 일반 로컬 인터럽트(Normal Local INTerrupt)의 요구 신호로서, NLINT 신호가 1이면 일반 로컬 인터럽트를 요구함을 나타내고, 0이면 요구하지 않음을 나타낸다.
도 2는 도 1에 도시된 인터럽트 제어 레지스터의 구성도로서, 마스크(Mask) 비트열, 구동(Assertion) 비트열 및 요구(Request) 비트열로 구성되어 있다.
마스크 비트열은 프로세서에 의하여 읽기 및 쓰기가 가능하며, 본 실시예에서 상기 마스크 비트열은 TM 비트(201), SM 비트(202), IM 비트(203) 및 NM 비트(204)로 구성되어 있고, 각 비트에 1 또는 0을 쓸 수 있다.
TM 비트(201)는 타이머 인터럽트의 마스크(Mask) 여부를 나타내는 비트로서, TM 비트(201)가 1이면 타이머 인터럽트가 마스크 되었음을 나타내고, 0이면 마스크 되지 않은 상태임을 나타낸다.
SM 비트(202)는 중요 로컬 인터럽트의 마스크(Mask) 여부를 나타내는 비트로서, SM 비트(202)가 1이면 중요 로컬 인터럽트가 마스크 되었음을 나타내고, 0이면 마스크 되지 않은 상태임을 나타낸다.
IM 비트(203)는 프로세서간 인터럽트의 마스크(Mask) 여부를 나타내는 비트로서, IM 비트(203)가 1이면 프로세서간 인터럽트가 마스크 되었음을 나타내고, 0이면 마스크 되지 않은 상태임을 나타낸다.
NM 비트(204)는 일반 로컬 인터럽트의 마스크(Mask) 여부를 나타내는 비트로서, NM 비트(204)가 1이면 일반 로컬 인터럽트가 마스크 되었음을 나타내고, 0이면 마스크 되지 않은 상태임을 나타낸다.
구동 비트열은 INTR 신호의 구동 여부를 나타내는 비트열로서, 본 실시예에서는 TA 비트(211), SA 비트(212), IA 비트(213) 및 NA 비트(214)로 구성되어 있다.
TA 비트(211)는 타이머 인터럽트 요구에 대한 INTR 신호의 구동 여부를 나타내는 비트로서, TA 비트(211)가 1이면 타이머 인터럽트 요구에 대하여 INTR 신호를 구동하였음을 나타내고, 0이면 구동하지 않음을 나타낸다.
SA 비트(212)는 중요 로컬 인터럽트 요구에 대한 INTR 신호의 구동 여부를 나타내는 비트로서, SA 비트(212)가 1이면 중요 로컬 인터럽트 요구에 대하여 INTR 신호를 구동하였음을 나타내고, 0이면 구동하지 않음을 나타낸다.
IA 비트(213)는 프로세서간 인터럽트 요구에 대한 INTR 신호의 구동 여부를 나타내는 비트로서, IA 비트(213)가 1이면 프로세서간 인터럽트 요구에 대하여 INTR 신호를 구동하였음을 나타내고, 0이면 구동하지 않음을 나타낸다.
NA 비트(214)는 일반 로컬 인터럽트 요구에 대한 INTR 신호의 구동 여부를 나타내는 비트로서, NA 비트(214)가 1이면 일반 로컬 인터럽트 요구에 대하여 INTR 신호를 구동하였음을 나타내고, 0이면 구동하지 않음을 나타낸다.
요구 비트열은 외부 인터럽트 신호를 통하여 인터럽트의 요구 여부를 나타내는 비트열로서, 본 실시예에서는 TR 비트(221), SR 비트(222), IR 비트(223) 및 NR 비트(224)로 구성되어 있다.
TR 비트(221)는 TINT 신호를 통한 타이머 인터럽트의 요구 여부를 나타내는 비트로서, TR 비트(221)가 1이면 TINT 신호를 통하여 타이머 인터럽트가 요구되었음을 나타내고, 0이면 요구되지 않음을 나타낸다.
SR 비트(222)는 SLINT 신호를 통한 중요 로컬 인터럽트의 요구 여부를 나타내는 비트로서, SR 비트(222)가 1이면 SLINT 신호를 통하여 중요 로컬 인터럽트가요구되었음을 나타내고, 0이면 요구되지 않음을 나타낸다.
IR 비트(223)는 IPINT 신호를 통한 프로세서간 인터럽트의 요구 여부를 나타내는 비트로서, IR 비트(223)가 1이면 IPINT 신호를 통하여 프로세서간 인터럽트가 요구되었음을 나타내고, 0이면 요구되지 않음을 나타낸다.
NR 비트(224)는 NLINT 신호를 통한 일반 로컬 인터럽트의 요구 여부를 나타내는 비트로서, NR 비트(224)가 1이면 NLINT 신호를 통하여 일반 로컬 인터럽트가 요구되었음을 나타내고, 0이면 요구되지 않음을 나타낸다.
한편, 상기 TR 비트(221), SR 비트(222), IR 비트(223) 및 NR 비트(224)는 각각 아래의 [수학식 1]에 의하여 설정된다.
[수학식 1]
정의되지 않은 필드(Reserved Field, 200, 210. 220)는 사용되지 않는 영역으로서, 이 필드의 값은 아무런 의미가 없으며, 향후의 기능 확장시에 정의하여 사용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 인터럽트 요구 제어 방법을 나타낸 흐름도로서, 인터럽트 요구 제어기(120)가 단일 인터럽트 신호를 갖는 프로세서(100)에게 인터럽트를 요구하는 일련의 제어 과정 및 방법을 나타낸다.
먼저, 스텝 S301에서, 인터럽트 요구 제어기(120)가 초기화가 되며, 이 때, 인터럽트 제어 레지스터(121)의 모든 비트의 값은 0이 된다. 이어서, 스텝 S302에서, 인터럽트 요구 제어기(120)는 인터럽트 제어 레지스터(121)의 TR 비트(221)가 1인지 여부를 판단한다.
상기 스텝 S302에서의 판단 결과, 1이면, 스텝 S303에서, 인터럽트 제어 레지스터(121)의 TA 비트(211)를 1로 설정하고, 프로세서(100)에게 INTR 신호를 1로 전송하며, 인터럽트 응답 제어기에게 ITYPE 신호를 11로 전송한 후, 스텝 S310으로 진행한다.
상기 스텝 S302에서의 판단 결과, 1이 아니면, 스텝 S304에서, 인터럽트 요구 제어기(120)는 인터럽트 제어 레지스터(121)의 SR 비트(222)가 1인지 여부를 판단한다.
상기 스텝 S304에서의 판단 결과, 1이면, 스텝 S305에서, 인터럽트 제어 레지스터(121)의 SA 비트(212)를 1로 설정하고, 프로세서(100)에게 INTR 신호를 1로 전송하며, 인터럽트 응답 제어기에게 ITYPE 신호를 10으로 전송한 후, 스텝 S310으로 진행한다.
상기 스텝 S304에서의 판단 결과, 1이 아니면, 스텝 S306에서, 인터럽트 요구 제어기(120)는 인터럽트 제어 레지스터(121)의 IR 비트(222)가 1인지 여부를 판단한다.
상기 스텝 S306에서의 판단 결과, 1이면, 스텝 S307에서, 인터럽트 제어 레지스터(121)의 IA 비트(213)를 1로 설정하고, 프로세서(100)에게 INTR 신호를 1로 전송하며, 인터럽트 응답 제어기에게 ITYPE 신호를 01로 전송한 후, 스텝 S310으로 진행한다.
상기 스텝 S306에서의 판단 결과, 1이 아니면, 스텝 S308에서, 인터럽트 요구 제어기(120)는 인터럽트 제어 레지스터(121)의 NR 비트(222)가 1인지 여부를 판단한다.
상기 스텝 S308에서의 판단 결과, 1이 아니면, 스텝 S302 내지 스텝 S308을 반복 수행하고, 1이면, 스텝 S309에서, 인터럽트 제어 레지스터(121)의 NA 비트 (214)를 1로 설정하고, 프로세서(100)에게 INTR 신호를 1로 전송하며, 인터럽트 응답 제어기에게 ITYPE 신호를 00으로 전송한 후, 스텝 S310에서, 인터럽트 응답 제어기로부터의 수신한 IACK 신호가 1인지 여부를 판단한다.
상기 스텝 S310에서의 판단 결과, 1이면, 인터럽트 제어 레지스터(121)의 TA 비트(211), SA 비트(212), IA 비트(213) 및 NA 비트(214)를 모두 0으로 설정하고, INTR 신호를 0으로 철회(Deassertion)한 후, 상기 스텝 S301로 복귀한다.
상기 스텝 S310에서의 판단 결과, 1이 아니면, 상기 스텝 S310부터 반복 수행한다.
상기와 같은 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 기록되고, 컴퓨터에 의하여 처리된다.
앞서 상세히 설명한 바와 같이 본 발명은 인터럽트 요구 제어기 내부에 프로세서에 의하여 읽기 및 쓰기가 가능한 인터럽트 제어 레지스터를 내장하고, 상기 인터럽트 제어 레지스터의 제어 정보를 이용하여 여러 종류의 외부 인터럽트를 제어함으로서 프로세서의 인터럽트 처리 속도 및 처리율을 증대시킬 수 있으며, 궁극적으로는 컴퓨터 시스템의 성능을 향상시킬 수 있는 효과가 있다.
이상에서 본 발명에 대한 기술 사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 가장 양호한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술 분야의 통상의 지식을 가진 자이면 누구나 본 발명의 기술 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.

Claims (8)

  1. 단일 신호 인터럽트 방식의 프로세서의 인터럽트 요구 제어 기능을 수행하고, 상기 프로세서와 프로세서 인터페이스를 통하여 연결된 인터럽트 요구 제어기에 있어서,
    상기 인터럽트 요구 제어기 내부에 포함되어 있어 상기 프로세서가 읽기 및 쓰기를 수행할 수 있고, 외부에서 입력되는 인터럽트 요구 신호를 일시적으로 저장하고 인터럽트를 제어하는데 사용되는 인터럽트 레지스터; 및
    상기 프로세서 인터페이스를 거치지 아니하고 인터럽트 요구를 직접 상기 프로세서에게 전송하는 신호선을 구비하고,
    상기 인터럽트 요구 제어기로부터 프로세서에게 요구한 인터럽트의 유형을 수신하고, 인터럽트 응답의 처리가 완료되면, 상기 인터럽트 요구 제어기에게 인터 럽트 응답 완료 신호를 전송하는 인터럽트 응답 제어기와 응답 제어기 연결용 신호선을 통해 상호 연결되어 있는 것을 특징으로 하는 인터럽트 요구 제어기.
  2. 제 1 항에 있어서,
    상기 인터럽트 제어 레지스터는,
    외부 인터럽트의 마스크 여부를 나타내고, 프로세서가 읽기 및 쓰기가 가능한 마스크(Mask) 비트열과;
    상기 인터럽트 요구 제어기가 외부로부터 인터럽트 요구 신호를 수신하였는지 여부를 나타내는 요구(Request) 비트열과;
    상기 인터럽트 요구 제어기로부터 상기 프로세서에게 전송되는 인터럽트 요구 신호가 구동되었는지 여부를 나타내는 구동(Assertion) 비트열을 포함하는 것을 특징으로 하는 인터럽트 요구 제어기.
  3. 제 2 항에 있어서,
    상기 마스크 비트열, 요구 비트열 및 구동 비트열은,
    외부에서 입력되는 각각의 인터럽트 유형을 처리하기 위하여, 각각의 인터럽트 유형에 대하여 적어도 하나 이상의 마스크 비트, 요구 비트 및 구동 비트를 할당하는 것을 특징으로 하는 인터럽트 요구 제어기.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 마스크 비트열, 요구 비트열 및 구동 비트열은,
    외부에서 입력되는 타이머로부터 발생한 주기적인 타이머 인터럽트(Timer Interrupt), 프로세서 주변 장치로부터 발생한 중요 로컬 인터럽트(Significant Local Interrupt), 프로세서간 인터럽트 제어기로부터 발생한 프로세서간 인터럽트 (Inter-Processor Interrupt) 및 프로세서 주변 장치로부터 발생한 일반 로컬 인터럽트(Normal Local Interrupt)를 처리하기 위하여, 각각 적어도 하나 이상의 마스크 비트, 요구 비트 및 구동 비트를 할당하는 것을 특징으로 하는 인터럽트 요구 제어기.
  5. 프로세서의 인터럽트 요구 제어를 위하여 내부에 인터럽트 제어 레지스터를 포함한 인터럽트 요구 제어기의 제어 방법에 있어서,
    상기 인터럽트 제어 레지스터의 요구(Request) 비트열이 셋팅되었는지 여부를 판단하는 제 1 단계와;
    상기 제 1 단계의 판단 결과, 요구 비트열이 셋팅되어 있으면, 인터럽트 제어 레지스터의 구동(Assertion) 비트열을 셋팅하고, 상기 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 2 단계와;
    인터럽트 응답 제어기로부터 인터럽트 응답 완료 신호가 수신되면, 제 1 단계로 복귀하는 제 3 단계를 포함하여 이루어진 것을 특징으로 하는 인터럽트 요구 제어기의 제어 방법.
  6. 제 5 항에 있어서,
    상기 제 2 단계는,
    제 1 단계의 판단 결과, 요구 비트열이 셋팅되어 있으면, 상기 인터럽트 제어 레지스터의 마스크(Mask) 비트열이 셋팅되어 있는지 여부를 판단하는 제 4 단계와;
    상기 제 4 단계의 판단 결과, 마스크 비트열이 셋팅되어 있으면, 제 1 단계로 복귀하는 제 5 단계를 더 포함하는 것을 특징으로 하는 인터럽트 요구 제어기의제어 방법.
  7. 제 5 항에 있어서,
    상기 제 1 단계는,
    타이머로부터 발생한 주기적인 타이머 인터럽트(Timer Interrupt) 요구 비트가 셋팅되어 있는지 여부를 판단하는 제 6 단계와;
    상기 제 6 단계의 판단 결과, 인터럽트 요구 비트가 셋팅되어 있으면, 상기 인터럽트 제어 레지스터의 타이머 인터럽트 구동 비트를 셋팅하고, 상기 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 7 단계와;
    상기 제 6 단계의 판단 결과, 타이머 인터럽트 요구 비트가 셋팅되어 있지 않으면, 프로세서 주변 장치로부터 발생한 중요 로컬 인터럽트(Significant Local Interrupt) 요구 비트가 셋팅되어 있는지 여부를 판단하는 제 8 단계와;
    상기 제 8 단계의 판단 결과, 중요 로컬 인터럽트 요구 비트가 셋팅되어 있으면, 상기 인터럽트 제어 레지스터의 중요 로컬 인터럽트 구동 비트를 셋팅하고, 상기 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 9 단계와;
    상기 제 8 단계의 판단 결과, 중요 로컬 인터럽트 요구 비트가 셋팅되어 있지 않으면, 프로세서간 인터럽트 제어기로부터 발생한 프로세서간 인터럽트 (Inter-Processor Interrupt) 요구 비트가 셋팅되어 있는지 여부를 판단하는 제 10단계와;
    상기 제 10 단계의 판단 결과, 프로세서간 인터럽트 요구 비트가 셋팅되어 있으면, 상기 인터럽트 제어 레지스터의 프로세서간 인터럽트 구동 비트를 셋팅하고, 상기 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 11 단계와;
    상기 제 11 단계의 판단 결과, 프로세서간 인터럽트 요구 비트가 셋팅되어 있지 않으면, 프로세서 주변 장치로부터 발생한 일반 로컬 인터럽트(Normal Local Interrupt) 요구 비트가 셋팅되어 있는지 여부를 판단하는 제 12 단계와;
    상기 제 12 단계의 판단 결과, 일반 로컬 인터럽트 요구 비트가 셋팅되어 있으면, 상기 인터럽트 제어 레지스터의 일반 로컬 인터럽트 구동 비트를 셋팅하고, 상기 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 13 단계와;
    상기 제 12 단계의 판단 결과, 일반 로컬 인터럽트 요구 비트가 셋팅되어 있지 않으면, 상기 제 1 단계로 복귀하는 제 14 단계를 더 포함하는 것을 특징으로 하는 인터럽트 요구 제어기의 제어 방법.
  8. 컴퓨터에 프로세서의 인터럽트 요구 제어를 위하여 내부에 인터럽트 제어 레지스터를 포함한 인터럽트 요구 제어기의 제어 방법을 실행시킬 수 있는 방법에 있어서,
    상기 인터럽트 제어 레지스터의 요구(Request) 비트열이 셋팅되었는지 여부를 판단하는 제 1 단계와;
    상기 제 1 단계의 판단 결과, 요구 비트열이 셋팅되어 있지 않으면, 상기 제 1 단계로 복귀하고, 요구 비트열이 셋팅되어 있으면, 상기 인터럽트 제어 레지스터의 구동(Assertion) 비트열을 셋팅한 후, 상기 인터럽트 제어 레지스터의 마스크 (Mask) 비트열이 셋팅되었는지 여부를 판단하는 제 2 단계와;
    상기 제 2 단계의 판단 결과, 마스크 비트열이 셋팅되어 있으면, 상기 제 1 단계로 복귀하고, 마스크 비트열이 셋팅되어 있지 않으면, 프로세서에게 인터럽트 요구 신호를 전송하며, 상기 프로세서에게 요구한 인터럽트의 유형을 인터럽트 응답 제어기에게 전송하는 제 3 단계와;
    인터럽트 응답 제어기로부터 인터럽트 응답 완료 신호가 수신되면, 제 1 단계로 복귀하는 제 4 단계를 실행시킬 수 있는 프로그램을 기록하고 있는 컴퓨터로 읽을 수 있는 기록 매체.
KR1019980049407A 1998-11-18 1998-11-18 단일신호인터럽트방식의프로세서를위한인터럽트요구제어기및그제어방법 KR100331028B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980049407A KR100331028B1 (ko) 1998-11-18 1998-11-18 단일신호인터럽트방식의프로세서를위한인터럽트요구제어기및그제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980049407A KR100331028B1 (ko) 1998-11-18 1998-11-18 단일신호인터럽트방식의프로세서를위한인터럽트요구제어기및그제어방법

Publications (2)

Publication Number Publication Date
KR20000032810A KR20000032810A (ko) 2000-06-15
KR100331028B1 true KR100331028B1 (ko) 2002-09-04

Family

ID=19558745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980049407A KR100331028B1 (ko) 1998-11-18 1998-11-18 단일신호인터럽트방식의프로세서를위한인터럽트요구제어기및그제어방법

Country Status (1)

Country Link
KR (1) KR100331028B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0468454A2 (en) * 1990-07-25 1992-01-29 Kabushiki Kaisha Toshiba Interrupt controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0468454A2 (en) * 1990-07-25 1992-01-29 Kabushiki Kaisha Toshiba Interrupt controller

Also Published As

Publication number Publication date
KR20000032810A (ko) 2000-06-15

Similar Documents

Publication Publication Date Title
KR100742718B1 (ko) 컴퓨터 시스템의 제1 및 제2버스사이에 연결된 투명브리지, 이를 포함하는 시스템 및 컴퓨터 시스템의 제1 및 제2 버스의 브리징 방법
KR0160193B1 (ko) 직접메모리접근 제어장치
EP0166272A2 (en) Processor bus access
US5488728A (en) Microprocessor having a run/stop pin for accessing an idle mode
JPS62151971A (ja) マイクロ・プロセツサ装置
JPH0430053B2 (ko)
JPH07311716A (ja) コンピュータシステム、コンピュータシステムに周辺装置をインタフェースさせるための並列ポート回路、およびその動作方法
EP0437550B1 (en) Information processing system emulation apparatus and method
JPH0512736B2 (ko)
US6189117B1 (en) Error handling between a processor and a system managed by the processor
US7516260B2 (en) Method of communicating with embedded controller
JPS58129568A (ja) 補助サ−ビス計算機を備えた計算機システム
US6026455A (en) Architecture and method for providing guaranteed access for a retrying bus master to a data transfer bridge connecting two buses in a computer system
KR100331028B1 (ko) 단일신호인터럽트방식의프로세서를위한인터럽트요구제어기및그제어방법
KR100331027B1 (ko) 단일신호인터럽트방식의프로세서를위한인터럽트응답제어기및그제어방법
JP2011138401A (ja) プロセッサシステム、プロセッサシステムの制御方法、及び制御回路
US6085271A (en) System bus arbitrator for facilitating multiple transactions in a computer system
JPH09167117A (ja) マイクロコンピュータおよびこれを用いたリアルタイムシステム
KR970002400B1 (ko) 다중프로세서 인터럽트 요청기에서의 인터럽트 송신 및 완료 제어방법(Control scheme of interrupt go and done in a multiprocessor interrupt requester)
KR100260518B1 (ko) 마스크불가능인터럽트신호제어기의구조및그제어방법
JP2000276357A (ja) 割り込み処理装置および割り込み通知方法
JP4182321B2 (ja) デュアルポートメモリシステム
JPH0644193A (ja) I/oレジスタアクセス方式
JPH11143732A (ja) マイクロコンピュータ及びエミュレータ
JPS5960633A (ja) 回線装置の診断方式

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: 20080307

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee