KR100847366B1 - 컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기위한 시스템 및 방법 - Google Patents

컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기위한 시스템 및 방법 Download PDF

Info

Publication number
KR100847366B1
KR100847366B1 KR1020037006641A KR20037006641A KR100847366B1 KR 100847366 B1 KR100847366 B1 KR 100847366B1 KR 1020037006641 A KR1020037006641 A KR 1020037006641A KR 20037006641 A KR20037006641 A KR 20037006641A KR 100847366 B1 KR100847366 B1 KR 100847366B1
Authority
KR
South Korea
Prior art keywords
interrupt
bus
interrupt signal
priority level
level
Prior art date
Application number
KR1020037006641A
Other languages
English (en)
Other versions
KR20030051834A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24874745&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100847366(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20030051834A publication Critical patent/KR20030051834A/ko
Application granted granted Critical
Publication of KR100847366B1 publication Critical patent/KR100847366B1/ko

Links

Images

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
    • 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

컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기 위한 시스템 및 방법이 제공된다. 컴퓨터 시스템에서 버스 디바이스들(130) 및 버스 제어기(200)는 공유 버스(124)에 연결될 수 있다. 상기 버스는 상기 버스에 연결된 각 버스 디바이스에 대한 인터럽트 라인을 포함할 수 있다. 버스 디바이스(130)는 소정의 인터럽트의 인터럽트 우선순위 레벨에 의존하여 그의 인터럽트 라인에서 서로 다른 타입의 인터럽트 신호들을 전송하도록 구성된다. 상기 버스 제어기(200)는 상기 버스에 연결된 각 버스 디바이스로부터 인터럽트 신호들을 수신하도록 구성되며, 각 인터럽트 신호의 인터럽트 우선순위 레벨에 근거하여 상기 인터럽트 신호들을 중재한다. 상기 버스 제어기(200)는 가장 높은 우선순위 레벨에 대응하는 인터럽트를 허여할 수 있다. 다중 인터럽트들이 한 그룹의 인터럽트들에서 동일한 가장 높은 우선순위 레벨에 대응한다면, 상기 버스 제어기는 어떤 적절한 중재 방식을 이용하여 인터럽트를 허여할 수 있다.
인터럽트, 다중-레벨, 컴퓨터 시스템, 우선순위, 버스

Description

컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR IMPLEMENTING A MULTI-LEVEL INTERRUPT SCHEME IN A COMPUTER SYSTEM}
본 발명은 일반적으로 컴퓨터 시스템 분야 특히, 컴퓨터 시스템에서 버스 인터럽트 시스템에 관한 것이다.
컴퓨터 시스템은 서로 다른 기능들을 수행하는 다수의 디바이스들을 포함할 수 있다. 각각의 디바이스는 시스템의 디바이스 타입에 의존하여 일반적인 기능들 또는 특정적인 기능들을 수행할 수 있다. 상기 디바이스들은 전형적으로 상기 시스템의 중앙 처리 장치(CPU)와 상호동작한다. 그렇게 하기 위해서, 상기 디바이스들 중 다수는 상기 CPU와 연결시킬 수 있는 버스와 연결될 수 있다. 이들 디바이스들을 버스 디바이스들이라 칭한다. 버스는 상기 CPU와 직접 연결될 수 있거나 버스 브리지를 이용하여 상기 CPU와 연결될 수 있다. 버스들의 예로는 PCI 버스, EISA/ISA 버스 및 USB 버스가 있을 수 있다. 이들 버스들 각각은 버스 사양서에서 설명된 버스 프로토콜에 따른다. 버스 디바이스는 자신을 버스 프로토콜에 따르도록 해주는 하드웨어 또는 소프트웨어를 포함할 수 있다.
어떤 버스 아키텍처들에 있어서, 버스 디바이스는 인터럽트를 이용하여 CPU 와의 통신을 요구하는 신호를 보낼 수 있다. 버스 디바이스는 자신의 전용 인터럽트 라인을 이용하여 버스 제어기에 인터럽트 신호를 전송할 수 있다. 상기 버스 디바이스는 그의 인터럽트 라인을 단지 어서트(assert)함으로써 인터럽트 신호를 전송할 수 있다. 버스 제어기는 버스 디바이스들로부터 인터럽트 신호들을 수신할 수 있고, 그리고 인터럽트 요구들이 충돌하는 경우에 상기 인터럽트 요구들을 중재하여 충돌하는 인터럽트 요구들 중 하나에 대응하는 버스 디바이스들 중 하나에 인터럽트를 허여(grant)할 수 있다. 버스 제어기가 충돌하는 인터럽트 요구들을 중재하는 방식은 상기 버스 제어기에 의해 이용되는 중재 방식에 따라 컴퓨터 시스템들 사이에서 변할 수 있다. 상기 중재 방식은 순환 순서 방식(round robin) 시스템 또는 예를 들어, 임의의 버스 디바이스들에 대해 다른 타입의 버스 디바이스들보다 높은 우선순위를 제공하는 시스템일 수 있다. 인터럽트 요구가 허여된 버스 디바이스는 CPU와 통신할 수 있다.
최근 소프트웨어 모뎀들과 같은 버스 디바이스들은 점점 시간 결정적(time critical)인 동작들을 수행하며, 인터럽트 요구들에 대한 더욱 빠른 응답들을 요구한다. 그러나, 버스 제어기들에 의해 이용되는 중재 방식들은 이러한 증가하는 요구에 응하지 못할 수 있다. 인터럽트 요구들이 충돌할 때, 버스 제어기는 다른 버스 디바이스의 요구보다 덜 시급한 버스 디바이스의 인터럽트 요구를 허여하게 되는 문제가 발생할 수 있다. 예를 들어, 소프트웨어 모뎀의 경우 상기 모뎀의 인터럽트 요구가 다른 디바이스의 충돌하는 인터럽트 요구에 우선하여 허여되지 않으면 연결이 끊어질 수 있다. 버스 제어기가 인터럽트 요구들이 충돌할 때 어떤 버스 디 바이스가 다른 버스 디바이스보다 더욱 시급한 인터럽트 요구를 갖는지를 결정할 수 있는 경우 이러한 문제 상황은 피할 수 있다. 버스 디바이스로 하여금 버스 제어기에 인터럽트 우선순위 레벨을 나타내도록 하는 시스템 및 방법이 요구된다. 또한, 버스 디바이스로 하여금 버스 제어기에 인터럽트 우선순위 레벨을 나타내도록 할 수 있으며, 기존의 버스 아키텍처들에 통합될 수 있는 시스템 및 방법이 요구된다.
US-A-4,788,639는 호스트 컴퓨터에 대한 입/출력 디바이스들의 액세스를 제어하는데 이용되는 다중-레벨 우선순위 인터럽트 시스템을 개시한다. 동작하는 동안, 각 입/출력 제어 디바이스는 인터럽트의 레벨에 의해 결정된 주파수의 인터럽트 신호를 출력하여 상기 호스트 컴퓨터에 전송되도록 한다. 상기 인터럽트 신호들의 수신시, 상기 호스트 컴퓨터는 상기 신호의 주파수로부터 인터럽트의 우선순위를 결정하고, 그 다음 대응하는 인터럽트 루틴을 실행한다.
상기 제시된 문제점들은 대부분 본원에 설명된 시스템 및 방법의 사용에 의해 해결된다. 일반적으로 말하면, 컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기 위한 시스템 및 방법이 제공된다. 컴퓨터 시스템에서 버스 디바이스들과 버스 제어기는 공유 버스에 연결될 수 있다. 상기 버스는 상기 버스에 연결된 각 버스 디바이스에 대한 인터럽트 라인을 포함할 수 있다. 버스 디바이스는 그의 지정된 인터럽트 라인을 이용하여 인터럽트를 전송하도록 구성된다. 각 버스 디바이스는 소정의 인터럽트의 인터럽트 우선순위 레벨에 의존하여 그의 인터럽트 라인에서 서로 다른 타입의 인터럽트 신호들을 전송하도록 구성된다. 상기 버스 제어기는 상기 버스에 연결된 각 버스 디바이스로부터 인터럽트 신호들을 수신하도록 구성되며, 각 인터럽트 신호의 인터럽트 우선순위 레벨에 근거하여 상기 인터럽트 신호들을 중재한다. 상기 버스 제어기는 가장 높은 우선순위 레벨에 대응하는 인터럽트를 허여할 수 있다. 다중 인터럽트들이 한 그룹의 인터럽트들에서 동일한 가장 높은 우선순위 레벨에 대응한다면, 상기 버스 제어기는 어떤 적절한 중재 방식을 이용하여 인터럽트를 허여할 수 있다.
본 발명의 일 양상에 따르면, 일 시스템이 제공되며, 이 시스템은 제 1 디바이스와; 상기 제 1 디바이스에 연결된 버스와; 그리고 상기 버스에 연결된 버스 제어기를 포함하며, 여기서, 상기 버스는 상기 제 1 디바이스에 대응하는 제 1 인터럽트 라인을 포함하고, 상기 제 1 디바이스는 상기 제 1 인터럽트 라인을 이용하여 제 1 인터럽트 우선순위 레벨에 대응하는 제 1 인터럽트 신호를 상기 버스 제어기에 전송하도록 구성되고, 그리고 상기 제 1 디바이스는 상기 제 1 인터럽트 라인을 이용하여 제 2 인터럽트 우선순위 레벨에 대응하는 제 2 인터럽트 신호를 상기 버스 제어기에 전송하도록 구성되고, 상기 제 1 인터럽트 신호는 제 1 듀티 사이클을 갖고, 상기 제 2 인터럽트 신호는 제 2 듀티 사이클을 갖고, 그리고 상기 제 1 듀티 사이클은 상기 제 2 듀티 사이클과 서로 다르다.
본원에 설명된 시스템 및 방법은 다른 시스템들 및 방법들보다 높은 성능 장점들을 제공한다. 다중-레벨 인터럽트 방식의 사용은 버스 제어기가 각 인터럽트 요구의 우선순위를 결정함으로써 한 그룹의 충돌하는 인터럽트 요구들 중 임의의 인터럽트 요구를 적절하게 허여하도록 해준다. 한 그룹의 인터럽트 요구들 각각의 우선순위를 결정함으로써, 버스 제어기는 버스 디바이스가 그의 인터럽트의 서비스 제공을 적시에 수신하게 할 수 있다. 본원에 설명된 시스템 및 방법은 또한 기존의 버스 하드웨어를 이용하여 구현될 수도 있다. 버스 디바이스는 기존의 인터럽트 라인에서 버스 제어기에 서로 다른 신호들을 전송함으로써 서로 다른 인터럽트 우선순위 레벨들을 나타낼 수 있다. 따라서, 본원에 설명된 시스템 및 방법은 기존의 버스 시스템들에 통합될 수 있다.
일 실시예에 있어서, 버스 디바이스는 서로 다른 주파수를 갖는 인터럽트 신호들을 전송하여, 인터럽트 우선순위 레벨을 나타낼 수 있다. 상기 버스 디바이스는 제 1 주파수를 갖는 인터럽트 신호를 전송하여, 제 1 우선순위 레벨을 나타낼 수 있으며, 제 2 주파수를 갖는 인터럽트 신호를 전송하여, 제 2 우선순위 레벨을 나타낼 수 있다. 다른 신호 주파수들의 사용은 다른 우선순위 레벨들을 나타낼 수 있다. 다른 실시예에 있어서, 버스 디바이스는 서로 다른 듀티 사이클(duty cycles)을 갖는 인터럽트 신호들을 전송하여, 인터럽트 우선순위 레벨을 나타낼 수 있다. 상기 버스 디바이스는 제 1 듀티 사이클을 갖는 인터럽트 신호를 전송하여, 제 1 우선순위 레벨을 나타낼 수 있으며, 제 2 듀티 사이클을 갖는 인터럽트 신호 를 전송하여, 제 2 우선순위 레벨을 나타낼 수 있다. 다른 펄스 듀티 사이클들의 사용은 다른 우선 순위 레벨들을 나타낼 수 있다.
본 발명의 다른 목적들 및 장점들은 단지 예시적인 첨부 도면들을 참조로 한 다음의 상세한 설명을 읽음으로써 명백해질 것이다.
도 1은 다중-레벨 인터럽트 방식을 구현하도록 구성된 컴퓨터 시스템의 일 실시예를 예시하는 블럭도이고;
도 2는 다중-레벨 인터럽트 방식을 구현하도록 구성된 컴퓨터 시스템의 일 실시예를 예시하는 블럭도이고;
도 3a는 다중-레벨 인터럽트 방식의 일 실시예를 예시하는 타이밍도이고;
도 3b는 다중-레벨 인터럽트 방식의 일 실시예를 예시하는 타이밍도이고;
도 4는 다중-레벨 인터럽트 방식을 구현하는 방법을 예시하는 흐름도이다.
본 발명은 다양한 수정들과 변형들을 갖지만, 본원에서는 특정 실시예들을 예시적으로 도면들에 도시하여 상세하게 설명할 것이다. 그러나, 이러한 특정 실시예들은 본 발명을 개시된 특정 형태들로만 한정하지 않으며, 본 발명은 첨부된 청구항들에 의해 정의되는 본 발명의 정신과 범위내에 있는 모든 수정들, 등가물들 및 대안들을 포함한다는 것을 이해해야 한다.
이제 도 1을 참조하면, 다중-레벨 인터럽트 방식을 구현하도록 구성된 컴퓨터 시스템의 일 실시예를 예시하는 블럭도가 도시된다. 도 1에서, CPU(100)가 노스 브리지(110) 및 사우스 브리지(120)에 연결된다. 사우스 브리지(120)는 또한 버스(124)를 통해 버스 디바이스들(130a 내지 130(n))에 연결된다. 버스 디바이스들(130a 내지 130(n))은 소프트웨어 모뎀을 포함하는 어떤 적절한 디바이스들일 수 있으며, 이 버스 디바이스들(130a 내지 130(n))을 총체적으로는 "버스 디바이스들(130)" 또는 개별적으로는 "버스 디바이스(130)"라 칭한다. 버스 디바이스(130a)와 버스 디바이스(130(n)) 사이에 점들로 표시된 바와 같이, 버스(124)의 버스 프로토콜과 일치하여 임의의 수의 버스 디바이스들(130)이 버스(124)에 연결될 수 있다. 노스 브리지(110) 및 사우스 브리지(120)는 칩셋을 포함할 수 있다. 또한, 도 1에 표시된 바와 같이, 노스 브리지(110)는 비디오 하부시스템, 메모리 하부시스템 및 캐시와 연결될 수 있으며, 사우스 브리지(120)는 오디오 하부시스템, 디스크 제어기 및 다른 버스와 연결될 수 있다.
도 1은 다중-레벨 인터럽트 방식이 구현될 수 있는 시스템을 도시한다. 버스(124)는 PCI 버스와 같은 공유 버스 또는 다른 타입의 공유 버스일 수 있으며, 상기 버스에 연결된 각 버스 디바이스(130)에 대한 인터럽트 라인을 포함할 수 있다. 각 버스 디바이스(130)는 그의 지정된 인터럽트 라인을 이용하여 인터럽트를 전송하도록 구성될 수 있다. 각 버스 디바이스(130)는 소정의 인터럽트의 인터럽트 우선순위 레벨에 의존하여 그의 개별 인터럽트 라인에서 서로 다른 타입의 인터럽트 신호들을 전송하도록 구성된다. 사우스 브리지(120)에 위치한 버스 제어기는 상기 버스에 연결된 각 버스 디바이스로부터 인터럽트 신호들을 수신하도록 구성되며, 각 인터럽트 신호의 인터럽트 우선순위 레벨에 근거하여 충돌하는 인터럽트 신 호들을 중재한다. 상기 버스 제어기는 가장 높은 우선순위 레벨에 대응하는 인터럽트를 허여한다. 다중 인터럽트 요구들이 한 그룹의 인터럽트 요구들에서 동일한 가장 높은 우선순위 레벨에 대응한다면, 상기 버스 제어기는 어떤 적절한 중재 방식을 이용하여 인터럽트를 허여할 수 있다.
이제 도 2를 참조하면, 다중-레벨 인터럽트 방식을 구현하도록 구성된 컴퓨터 시스템의 일 실시예를 예시하는 블럭도가 도시된다. 도 2는 버스(124)를 통해 버스 디바이스들(130a 내지 130(n))에 연결된 사우스 브리지(120)를 도시한다. 사우스 브리지(120)는 버스 제어기(200)를 포함하며, 이 버스 제어기(200)는 인터럽트 제어기(210)를 포함한다. 버스(124)는 표시된 바와 같이 인터럽트 라인들(212a 내지 212(n))을 포함한다. 인터럽트 라인들(212a 내지 212(n))은 각각 버스 디바이스들(130a 내지 130(n))에 대응할 수 있다. 인터럽트 라인들(212a 내지 212(n))을 총체적으로는 "인터럽트 라인들(212)" 또는 개별적으로는 "인터럽트 라인(212)"이라 칭한다.
인터럽트를 요구하기 위해서, 버스 디바이스들(130)은 그들의 개별적인 인터럽트 라인들(212)에서 인터럽트 신호를 전송하도록 구성된다. 각 버스 디바이스(130)는 인터럽트 우선순위 레벨에 의존하여 그의 인터럽트 라인(212)에서 서로 다른 신호들을 전송하도록 구성된다. 인터럽트 제어기(210)는 인터럽트 라인들(212)에서 각 버스 디바이스(130)로부터 인터럽트 신호들을 수신하도록 구성되며, 각각의 인터럽트 신호가 포함하는 상기 인터럽트 우선순위 레벨에 근거하여 충돌하는 인터럽트 요구들을 중재한다. 인터럽트 제어기(210)는 가장 높은 우선순위 레벨에 대응하는 인터럽트를 허여한다. 다중 인터럽트 요구들이 한 그룹의 인터럽트 요구들에서 동일한 가장 높은 우선순위 레벨에 대응한다면, 인터럽트 제어기(210)는 어떤 적절한 중재 방식을 이용하여 인터럽트를 허여할 수 있다.
도 2에 도시된 다중-레벨 인터럽트 방식은 다른 시스템들보다 높은 성능 장점들을 제공한다. 다중-레벨 인터럽트 방식의 이용은 버스 제어기(200)에 있는 인터럽트 제어기(210)가 각 인터럽트 요구의 우선순위를 결정함으로써 버스 디바이스들(130)로부터 한 그룹의 충돌하는 인터럽트 요구들 중 임의의 인터럽트 요구를 적절하게 허여하도록 할 수 있다. 한 그룹의 인터럽트 요구들 각각의 우선순위를 결정함으로써, 인터럽트 제어기(210)는 버스 디바이스(130)가 그의 인터럽트의 서비스 제공을 적시에 수신하게 할 수 있다.
도 2의 시스템은 기존의 버스 하드웨어를 이용하여 구현될 수 있다. 버스 디바이스(130)는 인터럽트 라인(212)에서 버스 제어기에 서로 다른 신호들을 전송함으로써 서로 다른 인터럽트 우선순위 레벨들을 나타낼 수 있다. 따라서, 본원에 설명된 시스템 및 방법은 PCI 버스와 같은 기존의 버스 시스템들에 통합될 수 있으며, 여기서 각 버스 디바이스에 대한 인터럽트 라인은 버스 사양에 의해 요구된다.
일 실시예에 있어서, 버스 디바이스(130)는 서로 다른 주파수들을 갖는 인터럽트 신호들을 전송하여, 인터럽트 우선순위 레벨을 나타낼 수 있다. 도 3a는 다중-레벨 인터럽트 방식의 실시예를 예시하는 타이밍도를 도시하며, 여기서 서로 다른 주파수들은 서로 다른 우선순위 레벨들을 나타내는데 이용된다. 도 3a의 실시예에서, 3개의 인터럽트 우선순위 레벨들 즉, 인터럽트 레벨 2(310), 인터럽트 레 벨 1(312) 및 인터럽트 레벨 0(314)이 도시된다. 인터럽트 레벨 2(310)는 가장 높은 우선순위 인터럽트에 대응하고, 인터럽트 레벨 1(312)은 그 다음으로 가장 높은 우선순위 인터럽트에 대응하고, 그리고 인터럽트 레벨 0(314)은 가장 낮은 우선순위 인터럽트에 대응한다. 다른 실시예들은 다른 수의 인터럽트 우선순위 레벨들을 포함할 수 있다. 볼 수 있는 바와 같이, 인터럽트 레벨 0(314)은 제 1 주파수(f)에 대응하고, 인터럽트 레벨 1(312)은 제 2 주파수(2 x f)에 대응하고, 그리고 인터럽트 레벨 2(310)는 제 3 주파수(4 x f)에 대응한다.
이 실시예에 있어서, 인터럽트 제어기(210)는 그것이 수신한 각각의 충돌하는 인터럽트 신호의 주파수를 이용하여 버스 디바이스들(130)로부터의 충돌하는 인터럽트 요구들 사이에 인터럽트를 허여하도록 구성된다. 예를 들어, 버스 디바이스(130a)가 f의 주파수의 인터럽트 신호를 전송했고, 버스 디바이스(130(n))가 4 x f의 주파수의 충돌하는 인터럽트 신호를 전송했다면, 4 x f의 주파수의 인터럽트 신호가 f의 주파수의 인터럽트 신호보다 더 높은 인터럽트 우선순위 레벨(즉, 인터럽트 레벨 2(310) 대 인터럽트 레벨 3(314))에 대응하기 때문에 인터럽트 제어기(210)는 버스 디바이스(130(n))에 인터럽트를 허여하도록 구성된다. 2개 이상의 버스 디바이스들(130)이 동일한 우선순위 레벨에 대응하는 즉, 동일한 주파수의 충돌하는 인터럽트 신호들을 전송했다면, 인터럽트 제어기(210)는 순환 순서 중재 방식(round robin arbitration scheme)과 같은 중재 방식에 근거하여 상기 버스 디바이스들(130) 중 하나의 버스 디바이스에 인터럽트를 허여하도록 구성된다.
다른 실시예에 있어서, 버스 디바이스(130)는 서로 다른 듀티 사이클을 갖는 인터럽트 신호들을 전송하여, 인터럽트 우선순위 레벨을 나타낼 수 있다. 도 3b는 다중-레벨 인터럽트 방식의 실시예를 예시하는 타이밍도를 도시하며, 여기서 서로 다른 듀티 사이클은 서로 다른 우선순위 레벨을 나타내는데 이용된다. 도 3b의 실시예에 있어서, 3개의 인터럽트 우선순위 레벨들 즉, 인터럽트 레벨 2(320), 인터럽트 레벨 1(322) 및 인터럽트 레벨 0(324)이 도시된다. 인터럽트 레벨 2(320)는 가장 높은 우선순위 인터럽트에 대응하고, 인터럽트 레벨 1(322)은 그 다음으로 가장 높은 우선순위 인터럽트에 대응하고, 그리고 인터럽트 레벨 0(324)은 가장 낮은 우선순위 인터럽트에 대응한다. 다른 실시예들은 다른 수의 인터럽트 우선순위 레벨들을 포함할 수 있다. 볼 수 있는 바와 같이, 인터럽트 레벨 2(320)는 50%의 하이(high) 듀티 사이클에 대응하고, 인터럽트 레벨 1(322)은 25%의 하이 듀티 사이클에 대응하고, 그리고 인터럽트 레벨 0(324)은 75%의 하이 듀티 사이클에 대응한다.
이 실시예에 있어서, 인터럽트 제어기(210)는 그것이 수신한 각각의 충돌하는 인터럽트 신호의 듀티 사이클을 이용하여 버스 디바이스들(130)로부터의 충돌하는 인터럽트 요구들 사이에 인터럽트를 허여하도록 구성될 수 있다. 예를 들어, 버스 디바이스(130a)가 75%의 하이 듀티 사이클의 인터럽트 신호를 전송했고, 버스 디바이스(130(n))가 50%의 하이 듀티 사이클의 충돌하는 인터럽트 신호를 전송했다면, 50%의 하이 듀티 사이클의 인터럽트 신호가 75%의 하이 듀티 사이클의 인터럽트 신호보다 더 높은 인터럽트 우선순위 레벨(즉, 인터럽트 레벨 2(320) 대 인터럽트 레벨 0(324))에 대응하기 때문에 인터럽트 제어기(210)는 버스 디바이스(130(n))에 인터럽트를 허여하도록 구성된다. 2개 이상의 버스 디바이스들(130)이 동일한 우선순위 레벨에 대응하는 즉, 동일한 듀티 사이클의 충돌하는 인터럽트 신호들을 전송했다면, 인터럽트 제어기(210)는 순환 순서 중재 방식과 같은 중재 방식에 근거하여 상기 버스 디바이스들(130) 중 하나의 버스 디바이스에 인터럽트를 허여하도록 구성된다.
이제 도 4를 참조하면, 다중-레벨 인터럽트 방식을 구현하는 방법을 예시하는 흐름도가 도시된다. 상기 방법에 대한 변형이 가능하고 고려된다. 블럭(402)에 표시된 바와 같이, 제 1 디바이스로부터 제 1 인터럽트 신호가 전송된다. 블럭(404)에 표시된 바와 같이, 제 2 디바이스로부터 제 2 인터럽트 신호가 전송된다. 블럭(406)에 표시된 바와 같이, 상기 제 1 인터럽트 신호 및 상기 제 2 인터럽트 신호가 수신된다. 블럭(408)에서, 상기 제 1 인터럽트 신호가 상기 제 2 인터럽트 신호보다 더 높은 우선순위에 대응하는지에 대한 결정이 이루어진다. 상기 제 1 인터럽트 신호가 상기 제 2 인터럽트 신호보다 더 높은 우선순위에 대응한다면, 블럭(410)에 표시된 바와 같이 상기 제 1 디바이스에 인터럽트가 허여된다.
상기 제 1 인터럽트 신호가 상기 제 2 인터럽트 신호보다 더 높은 우선순위에 대응하지 않는다면, 블럭(412)에 표시된 바와 같이 상기 제 2 인터럽트 신호가 상기 제 1 인터럽트 신호보다 더 높은 우선순위에 대응하는지에 대한 결정이 이루어진다. 상기 제 2 인터럽트 신호가 상기 제 1 인터럽트 신호보다 더 높은 우선순위에 대응한다면, 블럭(414)에 표시된 바와 같이 상기 제 2 디바이스에 인터럽트가 허여된다. 상기 제 2 인터럽트 신호가 상기 제 1 인터럽트 신호보다 더 높은 우선 순위에 대응하지 않는다면, 블럭(416)에 표시된 바와 같이 상기 인터럽트는 중재 방식에 따라 상기 제 1 디바이스 또는 상기 제 2 디바이스에 허여된다.
비록 상기 실시예들이 상당히 상세하게 설명되었지만은, 다른 버전들도 가능하다. 일단 완전하게 상기 개시를 이해한다면, 다수의 변형들 및 수정들은 이 기술분야의 당업자들에게 명백해질 것이다. 하기의 청구항들은 모든 이러한 변형들 및 수정들을 포함한다.
본 발명은 컴퓨터 시스템들에 이용가능하다.

Claims (17)

  1. 제 1 디바이스와;
    상기 제 1 디바이스에 연결된 버스와; 그리고
    상기 버스에 연결된 버스 제어기를 포함하며,
    여기서, 상기 버스는 상기 제 1 디바이스에 대응하는 제 1 인터럽트 라인을 포함하고, 상기 제 1 디바이스는 상기 제 1 인터럽트 라인을 이용하여 제 1 인터럽트 우선순위 레벨에 대응하는 제 1 인터럽트 신호를 상기 버스 제어기에 전송하고, 그리고 상기 제 1 디바이스는 상기 제 1 인터럽트 라인을 이용하여 제 2 인터럽트 우선순위 레벨에 대응하는 제 2 인터럽트 신호를 상기 버스 제어기에 전송하고, 상기 제 1 인터럽트 신호는 제 1 듀티 사이클을 갖고, 상기 제 2 인터럽트 신호는 제 2 듀티 사이클을 갖고, 그리고 상기 제 1 듀티 사이클은 상기 제 2 듀티 사이클과 서로 다른 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 시스템.
  2. 제 1 항에 있어서, 상기 제 1 인터럽트 신호는 제 1 주파수에 대응하며, 상기 제 2 인터럽트 신호는 제 2 주파수에 대응하며, 상기 제 1 주파수는 상기 제 2 주파수와 서로 다른 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 시스템.
  3. 제 1 항에 있어서,
    상기 버스에 연결된 제 2 디바이스를 더 포함하며,
    여기서, 상기 버스는 상기 제 2 디바이스에 대응하는 제 2 인터럽트 라인을 포함하고, 상기 제 2 디바이스는 상기 제 2 인터럽트 라인을 이용하여 상기 제 1 인터럽트 우선순위 레벨에 대응하는 제 3 인터럽트 신호를 상기 버스 제어기에 전송하고, 그리고 상기 제 2 디바이스는 상기 제 2 인터럽트 라인을 이용하여 상기 제 2 인터럽트 우선순위 레벨에 대응하는 제 4 인터럽트 신호를 상기 버스 제어기에 전송하는 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 시스템.
  4. 제 3 항에 있어서, 상기 제 1 디바이스는 제 1 시간 주기 동안 상기 제 1 인터럽트 신호를 전송하고, 상기 제 2 디바이스는 상기 제 1 시간 주기 동안 상기 제 4 인터럽트 신호를 전송하고, 그리고 상기 버스 제어기는 상기 제 1 시간 주기 동안 상기 제 1 인터럽트 신호 및 상기 제 4 인터럽트 신호의 수신에 응답하여 상기 제 1 디바이스에 제 1 인터럽트를 허여하는 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 시스템.
  5. 제 4 항에 있어서, 상기 제 1 디바이스는 제 2 시간 주기 동안 상기 제 2 인터럽트 신호를 전송하고, 상기 제 2 디바이스는 상기 제 2 시간 주기 동안 상기 제 3 인터럽트 신호를 전송하고, 그리고 상기 버스 제어기는 상기 제 2 시간 주기 동안 상기 제 2 인터럽트 신호 및 상기 제 3 인터럽트 신호의 수신에 응답하여 상기 제 2 디바이스에 제 2 인터럽트를 허여하는 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 시스템.
  6. 제 3 항에 있어서, 상기 제 1 인터럽트 우선순위 레벨은 상기 제 2 인터럽트 우선순위 레벨보다 더 높은 인터럽트 우선순위에 대응하는 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 시스템.
  7. 제 1 디바이스로부터의 제 1 인터럽트 우선순위 레벨에 대응하는 제 1 인터럽트 신호를 전송하는 단계와;
    제 2 디바이스로부터의 제 2 인터럽트 우선순위 레벨에 대응하는 제 2 인터럽트 신호를 전송하는 단계와;
    상기 제 1 인터럽트 신호 및 상기 제 2 인터럽트 신호를 수신하는 단계와; 그리고
    상기 제 1 인터럽트 신호 및 상기 제 2 인터럽트 신호의 수신에 응답하여 상기 제 1 디바이스에 제 1 인터럽트를 허여하는 단계를 포함하며, 여기서, 상기 제 1 인터럽트 우선순위 레벨은 상기 제 2 인터럽트 우선순위 레벨보다 더 높고,
    여기서, 상기 제 1 인터럽트 신호는 제 1 듀티 사이클을 갖고, 상기 제 2 인터럽트 신호는 제 2 듀티 사이클을 갖고, 그리고 상기 제 1 듀티 사이클은 상기 제 2 듀티 사이클과 서로 다른 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 방법.
  8. 제 7 항에 있어서, 상기 제 1 인터럽트 신호는 제 1 주파수에 대응하며, 상기 제 2 인터럽트 신호는 제 2 주파수에 대응하며, 상기 제 1 주파수는 상기 제 2 주파수와 서로 다른 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 방법.
  9. 제 7 항에 있어서, 상기 제 1 인터럽트 신호 및 상기 제 2 인터럽트 신호의 수신에 응답하여 상기 제 2 디바이스에 상기 제 1 인터럽트를 허여하는 단계를 더 포함하며, 상기 제 2 인터럽트 우선순위 레벨은 상기 제 1 인터럽트 우선순위 레벨보다 높은 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 방법.
  10. 제 9 항에 있어서, 상기 제 1 인터럽트 신호 및 상기 제 2 인터럽트 신호에 응답하여 중재 방식에 따라 상기 제 1 디바이스 또는 상기 제 2 디바이스에 상기 제 1 인터럽트를 허여하는 단계를 더 포함하며, 상기 제 1 인터럽트 우선순위 레벨은 상기 제 2 인터럽트 우선순위 레벨과 일치하는 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 방법.
  11. 제 7 항에 있어서,
    상기 제 1 디바이스로부터의 상기 제 2 인터럽트 우선순위 레벨에 대응하는 제 3 인터럽트 신호를 전송하는 단계와;
    상기 제 2 디바이스로부터의 상기 제 1 인터럽트 우선순위 레벨에 대응하는 제 4 인터럽트 신호를 전송하는 단계와;
    상기 제 3 인터럽트 신호 및 상기 제 4 인터럽트 신호를 수신하는 단계와; 그리고
    상기 제 3 인터럽트 신호 및 상기 제 4 인터럽트 신호의 수신에 응답하여 상기 제 2 디바이스에 제 2 인터럽트를 허여하는 단계를 더 포함하며, 상기 제 1 인터럽트 우선순위 레벨은 상기 제 2 인터럽트 우선순위 레벨보다 높은 것을 특징으로 하는 컴퓨터 시스템에서 다중-레벨 인터럽트를 구현하는 방법.
  12. 프로세서와;
    상기 프로세서에 연결된 칩셋과;
    상기 칩셋에 연결된 제 1 버스 디바이스와; 그리고
    상기 칩셋에 연결된 제 2 버스 디바이스를 포함하며;
    여기서, 상기 제 1 버스 디바이스는 제 1 인터럽트 우선순위 레벨에 대응하는 제 1 인터럽트 신호를 상기 칩셋에 전송하고, 상기 제 2 버스 디바이스는 제 2 인터럽트 우선순위 레벨에 대응하는 제 2 인터럽트 신호를 상기 칩셋에 전송하고, 그리고 상기 칩셋은 상기 제 2 인터럽트 우선순위 레벨보다 높은 상기 제 1 인터럽트 우선순위 레벨에 응답하여 상기 제 1 버스 디바이스에 인터럽트를 허여하고, 상기 제 1 인터럽트 신호는 제 1 듀티 사이클을 갖고, 상기 제 2 인터럽트 신호는 제 2 듀티 사이클을 갖고, 상기 제 1 듀티 사이클은 상기 제 2 듀티 사이클과 서로 다른 것을 특징으로 하는 컴퓨터 시스템.
  13. 제 12 항에 있어서, 상기 칩셋은 상기 제 1 인터럽트 우선순위 레벨보다 높은 상기 제 2 인터럽트 우선순위 레벨에 응답하여 상기 제 2 버스 디바이스에 상기 인터럽트를 허여하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제 13 항에 있어서, 상기 칩셋은 상기 제 2 인터럽트 우선순위 레벨과 일치하는 상기 제 1 인터럽트 우선순위 레벨에 응답하여 인터럽트 중재 방식에 따라 상기 인터럽트를 허여하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제 12 항에 있어서, 상기 제 1 인터럽트 신호는 제 1 주파수에 대응하며, 상기 제 2 인터럽트 신호는 제 2 주파수에 대응하며, 상기 제 1 주파수는 상기 제 2 주파수와 서로 다른 것을 특징으로 하는 컴퓨터 시스템.
  16. 제 12 항에 있어서, 상기 칩셋은 노스 브리지 및 사우스 브리지를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제 12 항에 있어서, 상기 제 1 버스 디바이스는 소프트웨어 모뎀을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
KR1020037006641A 2000-11-17 2001-08-07 컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기위한 시스템 및 방법 KR100847366B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/715,606 2000-11-17
US09/715,606 US6681281B1 (en) 2000-11-17 2000-11-17 System and method for implementing a multi-level interrupt scheme in a computer system
PCT/US2001/024690 WO2002041153A2 (en) 2000-11-17 2001-08-07 System and method for implementing a multi-level interrupt scheme in a computer system

Publications (2)

Publication Number Publication Date
KR20030051834A KR20030051834A (ko) 2003-06-25
KR100847366B1 true KR100847366B1 (ko) 2008-07-21

Family

ID=24874745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037006641A KR100847366B1 (ko) 2000-11-17 2001-08-07 컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기위한 시스템 및 방법

Country Status (8)

Country Link
US (1) US6681281B1 (ko)
EP (1) EP1336139A2 (ko)
JP (1) JP4837235B2 (ko)
KR (1) KR100847366B1 (ko)
CN (1) CN1214332C (ko)
AU (1) AU2001284738A1 (ko)
TW (1) TWI289758B (ko)
WO (1) WO2002041153A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6766824B2 (en) 2001-12-20 2004-07-27 Koninklijke Philips Electronics N.V. Fluid control valve and a feedback control system therefor
US8595394B1 (en) 2003-06-26 2013-11-26 Nvidia Corporation Method and system for dynamic buffering of disk I/O command chains
KR100555501B1 (ko) * 2003-06-26 2006-03-03 삼성전자주식회사 동적으로 버스 점유 우선 순위를 정하는 버스 중재기 및그 버스 중재 방법
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US7080179B1 (en) * 2004-03-26 2006-07-18 Foundry Networks, Inc. Multi-level interrupts
CN1969268B (zh) * 2004-06-15 2010-05-26 Nxp股份有限公司 主机控制器、总线通信设备和操作主机控制器的方法
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
CN101128808A (zh) * 2005-02-28 2008-02-20 皇家飞利浦电子股份有限公司 具有中断控制器的数据处理系统和中断控制方法
US7627705B2 (en) * 2005-12-30 2009-12-01 Stmicroelectronics Pvt. Ltd. Method and apparatus for handling interrupts in embedded systems
US7788434B2 (en) * 2006-12-15 2010-08-31 Microchip Technology Incorporated Interrupt controller handling interrupts with and without coalescing
CN101526929B (zh) * 2008-03-07 2012-08-29 深圳迈瑞生物医疗电子股份有限公司 一种集成设备驱动的系统及其应用方法
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US8943252B2 (en) * 2012-08-16 2015-01-27 Microsoft Corporation Latency sensitive software interrupt and thread scheduling
US10078603B2 (en) 2012-11-30 2018-09-18 Red Hat Israel, Ltd. MSI events using dynamic memory monitoring
US9830286B2 (en) * 2013-02-14 2017-11-28 Red Hat Israel, Ltd. Event signaling in virtualized systems
CN103106113A (zh) * 2013-02-25 2013-05-15 广东威创视讯科技股份有限公司 一种中断事件处理方法和处理设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4788639A (en) 1985-05-22 1988-11-29 Kabushiki Kaisha Toshiba Frequency-coded multi-level interrupt control system for a multiprocessor system
US5758105A (en) 1995-12-04 1998-05-26 International Business Machines Corporation Method and apparatus for bus arbitration between isochronous and non-isochronous devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59216254A (ja) * 1983-05-25 1984-12-06 Hitachi Ltd 割込みレベル制御方式
US5125093A (en) * 1990-08-14 1992-06-23 Nexgen Microsystems Interrupt control for multiprocessor computer system
US5555420A (en) * 1990-12-21 1996-09-10 Intel Corporation Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management
JPH04342052A (ja) * 1991-05-17 1992-11-27 Yaskawa Electric Corp アービトレーション回路
US5392033A (en) * 1993-01-05 1995-02-21 International Business Machines Corporation Priority generator for providing controllable guaranteed fairness in accessing a shared bus
US5905898A (en) 1994-05-31 1999-05-18 Advanced Micro Devices, Inc. Apparatus and method for storing interrupt source information in an interrupt controller based upon interrupt priority
US5555430A (en) 1994-05-31 1996-09-10 Advanced Micro Devices Interrupt control architecture for symmetrical multiprocessing system
JP3208332B2 (ja) * 1995-12-20 2001-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 割込み装置
JPH09244991A (ja) 1996-03-11 1997-09-19 Commuter Herikoputa Senshin Gijutsu Kenkyusho:Kk 分散型バスアービタ装置およびバス調停方法
US5918057A (en) 1997-03-20 1999-06-29 Industrial Technology Research Institute Method and apparatus for dispatching multiple interrupt requests simultaneously
JPH11232210A (ja) 1998-02-16 1999-08-27 Fuji Xerox Co Ltd 情報処理装置
JP3556465B2 (ja) 1998-04-21 2004-08-18 株式会社ルネサステクノロジ 割り込みコントローラ
US6041105A (en) * 1998-09-01 2000-03-21 Umax Data Systems Inc. Adapter circuitry for computers to support computer telephony
TW445422B (en) * 1999-10-06 2001-07-11 Via Tech Inc Software simulation testing system allowing the north bridge and south bridge to perform circuit tests respectively

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4788639A (en) 1985-05-22 1988-11-29 Kabushiki Kaisha Toshiba Frequency-coded multi-level interrupt control system for a multiprocessor system
US5758105A (en) 1995-12-04 1998-05-26 International Business Machines Corporation Method and apparatus for bus arbitration between isochronous and non-isochronous devices

Also Published As

Publication number Publication date
JP2004521410A (ja) 2004-07-15
WO2002041153A2 (en) 2002-05-23
CN1474971A (zh) 2004-02-11
TWI289758B (en) 2007-11-11
CN1214332C (zh) 2005-08-10
JP4837235B2 (ja) 2011-12-14
WO2002041153A3 (en) 2002-08-08
EP1336139A2 (en) 2003-08-20
KR20030051834A (ko) 2003-06-25
AU2001284738A1 (en) 2002-05-27
US6681281B1 (en) 2004-01-20

Similar Documents

Publication Publication Date Title
KR100847366B1 (ko) 컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기위한 시스템 및 방법
US5996037A (en) System and method for arbitrating multi-function access to a system bus
US5572686A (en) Bus arbitration scheme with priority switching and timer
US6016528A (en) Priority arbitration system providing low latency and guaranteed access for devices
US5555413A (en) Computer system and method with integrated level and edge interrupt requests at the same interrupt priority
US20100318706A1 (en) Bus arbitration circuit and bus arbitration method
US6598104B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
KR20010085709A (ko) 공유 버스상에서의 등시성 트랜잭션 및 비동기 트랜잭션의스케줄링을 위한 우선 순위 매커니즘
KR930002787B1 (ko) 주변 제어기와 어댑터 인터페이스
US20070067527A1 (en) Data transfer bus system connecting a plurality of bus masters
KR100480605B1 (ko) 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US20030229743A1 (en) Methods and structure for improved fairness bus arbitration
US6212589B1 (en) System resource arbitration mechanism for a host bridge
US6629178B1 (en) System and method for controlling bus access for bus agents having varying priorities
US7054970B2 (en) Bus arbiter for integrated circuit systems
US5680554A (en) Method and apparatus for arbitrating among processors for access to a common bus
US6804736B2 (en) Bus access arbitration based on workload
US6477600B1 (en) Apparatus and method for processing isochronous interrupts
JPH10177546A (ja) バス上でのデータ転送をスケジューリングするコンピュータ装置
US6826644B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
EP1096387A1 (en) An arbitration unit for a bus
US20010021967A1 (en) Method and apparatus for arbitrating deferred read requests
KR930005726B1 (ko) Cpu의 버스 소유권의 해제 방지 지연논리
US6138197A (en) Apparatus and method for limit-based arbitration scheme

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 12