KR20150076187A - 메시지 시그널 인터럽트의 통신 - Google Patents

메시지 시그널 인터럽트의 통신 Download PDF

Info

Publication number
KR20150076187A
KR20150076187A KR1020157012497A KR20157012497A KR20150076187A KR 20150076187 A KR20150076187 A KR 20150076187A KR 1020157012497 A KR1020157012497 A KR 1020157012497A KR 20157012497 A KR20157012497 A KR 20157012497A KR 20150076187 A KR20150076187 A KR 20150076187A
Authority
KR
South Korea
Prior art keywords
interrupt
pending
data
destinations
destination
Prior art date
Application number
KR1020157012497A
Other languages
English (en)
Other versions
KR102064764B1 (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 KR20150076187A publication Critical patent/KR20150076187A/ko
Application granted granted Critical
Publication of KR102064764B1 publication Critical patent/KR102064764B1/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
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

메시지 시그널 인터럽트에서 사용하기 위해 글로벌 인터럽트 번호 공간(38)이 설치된다. 인터럽트 목적지들(10, 12, 14, 16)에는 모든 캐시들이 공유하는 글로벌 보류 상태 메모리(34)에 의해 제공된 보조 기억장치 또는 별개의 개별적인 보류 상태 메모리들(56)을 갖는 보류 인터럽트 캐시들(24)이 설치된다. 인터럽트 번호 공간은 어떤 인터럽트 목적지들이 어떤 영역에 대해 책임이 있는지를 표시하는데 사용되는 프로그래머블 매핑 데이터를 갖는 영역들로 분할된다. 한 개의 인터럽트 목적지로부터 다른 인터럽트 목적지로 인터럽트들이 이동하면, 이와 같은 프로그래머블 매핑 데이터가 갱신된다. 재할당 처리중에 보류 인터럽트들이 다시 글로벌 보류 상태 메모리(34)로 플러시되어, 이와 같은 보류 인터럽트 데이터가 새롭게 책임이 있는 인터럽트 목적지에 의해 픽업된다.

Description

메시지 시그널 인터럽트의 통신{COMMUNICATION OF MESSAGE SIGNALLED INTERRUPTS}
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 특히, 본 발명은, 한 개 이상의 인터럽트 소스들과 복수의 인터럽트 목적지들 사이에서 메시지 시그널 인터럽트의 통신에 관한 것이다.
한 개 이상의 인터럽트 소스들(예를 들어, 컴퓨터 시스템 내부의 장치들)과 복수의 인터럽트 목적지들(예를 들면, 이들 인터럽트를 처리하는 프로세서들) 사이에서 전달된 메시지 시그널 인터럽트를 지원하는 통신 메카니즘을 제공하는 것이 알려져 있다. 각각의 개별적인 인터럽트 목적지가 각각의 인터럽트 번호를 갖는 수백개 이상의 서로 다른 인터럽트들에 응답하도록 형성되는 것이 가능하다. 메시지 시그널 인터럽트는 인터럽트 목적지의 주소와 이 인터럽트 목적지의 인터럽트 번호를 포함한다. 이와 같은 다수의 인터럽트 번호들을 제공하는 것은 사용된 인터럽트 번호의 덕분으로 인터럽트 소스로부터 인터럽트 목적지로 정보가 전달될 수 있도록 하여, 인터럽트 통신 오버헤드를 줄이고 인터럽트 처리 속도를 높인다.
복수의 프로세서를 갖고 현재 액티브한 다수의 프로세서들이 시간의 경과에 따라 동적으로 변경되는 데이터 처리 시스템을 제공하는 것도 알려져 있다. 프로세싱 작업량이 많으면, 모든 프로세서들이 액티브하게 되지만, 프로세싱 작업량이 하강하며, 한 개 이상의 프로세서들이 정지하여 전력을 절감한다. 이와 같은 상황에서는, 정지하고 있는 프로세서가 이 프로세서에 의해 처리할 보류중인 인터럽트들에 대한 책임을 다른 프로세서에 넘겨주는 것이 필요하다. 한가지 시나리오에서는, 모든 프로세서가 정지하고 그들의 보류중인 인터럽트들에 대한 책임을 한 개의 나머지 프로세서에 전달하고, 모든 정지된 프로세서들은 그들의 인터럽트들 전체가 보류된 상태에서 있을 수도 있다. 이와 같은 상황을 처리하기 위해서는, 책임을 인계받은 프로세서가, 잠재적으로 모든 나머지 프로세서들로부터의 모든 인터럽트들이 버퍼링될 수 있는 충분한 개수로 기억장치 자원, 보통 이 프로세서에 대한 인터럽트 핸들러의 일부를 구성하는 레지스터들을 가져야만 한다.
전술한 접근방식은 프로세서들의 수가 증가하고 인터럽트들의 수가 증가하면 이에 따라 조정되지 않는다는 것을 알 수 있다. 기존의 기억수단 메카니즘을 확장시킴으로써 각각의 프로세서와 관련된 보류중인 인터럽트들을 버퍼링하는 레지스터들의 설치는, 회로 면적과 소비전력을 바람직하지 않게 증가시키는 과도한 오브헤드를 필요로 하게 된다.
일면에 따르면, 본 발명은, 한 개 이상의 인터럽트 소스들과 복수의 인터럽트 목적지들 사이에서 메시지 시그널 인터럽트들을 통신하는 인터럽트 통신장치로서,
상기 한 개 이상의 인터럽트 소스들 중에서 한 개로부터 메시지 시그널 인터럽트를 수신하고, 보류 상태(pending status) 데이터 기억회로 내부에 존재하고 상기 복수의 인터럽트 목적지들에 의해 공유된 글로벌(global) 인터럽트 번호 공간 내부의 상기 메시지 시그널 인터럽트의 인터럽트 번호를 표시하는 관련된 기억 위치를 갖는 보류 상태 데이터의 기억을 기동하도록 구성된 인터럽트 변환회로와,
상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고, 상기 보류 상태 데이터 기억회로로부터 상기 글로벌 인터럽트 번호 공간 내부의 관련된 인터럽트 번호를 갖는 보류 상태 데이터를 판독하고 상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지에 의해 인터럽트 처리를 기동하도록 구성된 복수의 인터럽트 데이터 판독회로를 구비한 인터럽트 통신장치를 제공한다.
본 발명은, 메시지 시그널 인터럽트들을 특정한 프로세서들로 향하게 하는 어드레스들과 이 프로세서에 대한 인터럽트를 명시하는 인터럽트 번호들을 갖는 메시지 시그널 인터럽트들을 발생하는 것보다는, 복수의 인터럽트 목적지들(예를 들면, 프로세서들)에 의해 공유되는 글로벌 인터럽트 번호 공간을 지원하는 것이 유리하다는 것을 인식하였다. 이와 같은 글로벌 인터럽트 번호 공간을 설치하는 것은 더욱 효율적인 기억과, 인터럽트 목적지들 사이에서의 인터럽트들의 처리 및 재할당을 용이하게 한다. 이때, 전체의 가능한 수의 인터럽트들 중에서 비교적 작은 수가 임의의 특정한 시간에 보류되고 있는 경우가 많지만, 그럼에도 불구하고 시스템은 큰 수 또는 전체의 보류중인 인터럽트들이 특정한 시간에 보류되어 있는 상황에 대처할 수 있어야만 한다는 것을 알 수 있다.
보류 상태 데이터 인터럽트들이 처리될 때의 효율 증가를 위한 한가지 가능한 방법은, 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고 각각의 인터럽트 목적지에 대해 보류중인 인터럽트 번호들을 표시하는 데이터를 기억하도록 구성된 복수의 보류 인터럽트 캐시들을 포함하는 형태로 보류 상태 데이터 기억회로를 제공하는 것이다. 이에 따르면, 큰 글로벌 인터럽트 번호 공간이 여전히 제공되면서도, 비교적 작고 효율적인 캐시를 사용하여 각각의 인터럽트 목적지와 관련된 보류 상태 데이터에 대한 고속 액세스를 제공한다. 보류 상태 데이터 기억장치는 전체적으로 전체의 글로벌 인터럽트 번호 공간을 기억할 수 있지만, 보류 인터럽트 캐시는 특정한 인터럽트 목적지들과 관련되는 이 데이터의 로컬 복사본들(local copies)을 기억할 수 있다.
보류 인터럽트 캐시들은 후기록 캐시(writeback cache)로 구성되어도 된다. 이에 따르면, 보류 캐시 내부에 기억 공간을 사용할 수 있으면, 보류 인터럽트 데이터를 캐시의 보조 기억장치에 다시 기록할 필요가 없이, 보류 인터럽트 데이터가 수신될 때 이 보류 인터럽트 캐시에 직접 기록된다. 이와 같은 구성은 소비전력을 줄이고 연산의 속도를 높인다.
새로운 메시지 시그널 인터럽트가 수신되어 이미 완전히 채워진 캐시를 갖는 인터럽트 목적지에 대한 보류 상태 데이터를 발생하는 경우에는, 이 캐시에 이미 기억된 것 중에서 가장 낮은 우선순위의 보류 인터럽트 데이터와 새로운 인터럽트가 보조 기억장치로 유출되어(spill), 적절하다면, 잠재적으로 더 높은 우선순위를 갖는 새로 도착하는 인터럽트 데이터에 대한 공간을 만든다.
마찬가지로, 보류 인터럽트 캐시가 완전히 채워지지 않고 보조 기억장치 내부에 기억되고 캐시 내부에 존재하지 않은 보류 데이터 상태가 존재하는 경우에는, 가장 높은 우선순위의 보류 인터럽트 데이터가 보조 기억장치로부터 보류 인터럽트 캐시로 페치되어도 된다.
보류 상태 데이터의 글로벌 기억 이외에, 인터럽트들과 관련된 우선순위 데이터 및 인에이블 데이터를 위한 글로벌 기억 공간을 설치하는 것도 가능하다. 이와 같은 우선순위 데이터 및 인에이블 데이터도 각각의 인터럽트 목적지들에 의해 캐시에 기억되어도 된다. 따라서, 이와 같은 우선순위 및 인에이블 데이터는, 보조 기억장치가 큰 볼륨의 이와 같은 우선순위 및 인에이블 데이터를 처리할 수 있는 기억용량을 제공하는 동안 신속한 사용을 위해 이용가능하다. 또한, 우선순위 및 인에이블 데이터의 캐싱은 이 데이터 내부에 집약성(locality)이 존재한다는 것을 인식하고 있다. 예를 들어, 특정한 인터럽트에 대한 우선순위 데이터가 우선순위 캐시 내부로 페치된 경우에는, 동일한 인터럽트가 곧 다시 발생하며 우선순위 데이터가 우선순위 캐시 내부에 이미 존재할 상당한 가능성이 존재한다.
일부 실시예에서는, 우선순위 레벨을 공유하는 연속된 인터럽트 번호들의 그룹들을 제공하는 것이 가능하다. 개별적인 인터럽트 번호의 최고 레벨의 그래뉴래리티(granularity)에서 우선순위 레벨을 명시할 수 있는 능력은 실제로는 많은 실제적인 상황에서는 필요하지 않을 수도 있으며, 연속된 인터럽트 번호들의 그룹들에 대해서만 우선순위 레벨들을 제공함으로써 기억 공간이 절감된다.
일부 실시예에서는, 인터럽트 목적지들 둥에서 한 개와 각각 관련되고, 해당 인터럽트 목적지가 보류중인 인터럽트들을 서비스하는 책임이 있는 글로벌 인터럽트 번호 공간 내부의 한 개 이상의 영역들을 표시하는 역할을 하는 복수의 매핑 제어기가 설치되어도 된다. 따라서, 각각의 인터럽트 목적지가 모든 인터럽트 번호를 처리하는 것이 가능하기는 하지만, 관련된 매핑 데이터가 그것의 매핑 제어기 내부에 기억되어 있는 경우에만 이것이 가능하다. 글로벌 인터럽트 번호 공간은 프로그래머블 매핑 데이터를 사용하여 인터럽트 목적지들 사이에서 우회하여(diverted), 각각의 인터럽트 목적지들은 보류 인터럽트 데이터의 캐시를 유지하는 것에만 관심을 가질 필요가 있으며 그것이 책임지고 있는 이들 영역에 대해서 인터럽트를 서비스한다.
이와 같은 실시예들에서는, 보류 상태 데이터 기억회로가 복수의 인터럽트 데이터 판독회로에 의해 공유되는 글로벌 보류 상태 메모리를 구비해도 된다. 이와 같은 글로벌 보류 상태 메모리는 보류 비트들을 기억할 목적으로 특별히 설치된 전용 메모리이어도 되고, 다른 환경에서 다른 데이터를 기억할 수 있는 범용 메모리를 갖는 전체적인 컴퓨터 시스템의 범용 메모리의 일부이어도 된다.
이와 같은 종류의 실시예와 관련하여, 보류 인터럽트 캐시는, 관련된 인터럽트 목적지가 책임이 있다는 것을 프로그래머블 매핑 데이터가 표시하는 메모리의 영역들에 대한 보류 인터럽트들을 기억하게 된다. 특정한 인터럽트 번호에 대한 책임의 재할당이 존재하는 경우에는, 현재의 인터럽트 목적지의 보류 인터럽트 캐시 내부에 기억된 관련된 보류 인터럽트 데이터가 글로벌 보류 상태 메모리로 다시 플러시(flush)되고, 이 글로벌 보류 상태 메모리에서 새롭게 책임이 있는 인터럽트 목적지에 의해 이 데이터가 픽업된다. 모든 인터럽트 목적지들이 글로벌 보류 상태 메모리를 공유하고, 이들 목적지가 이와 같은 보류 인터럽트에 대한 책임이 있다는 것을 표시하도록 이들 목적지의 프로그래머블 매핑 데이터가 갱신될 때 모든 인터럽트 목적지들이 보류 상태 데이터를 그 자신의 보류 인터럽트 캐시 내부로 픽업하게 되기 때문에, 책임이 재할당되는 경우에는 글로벌 보류 상태 메모리 내부에 이미 존재하는 보류 인터럽트 데이터를 이동할 필요가 없다.
특정한 인터럽트 번호들에 대한 책임의 이동(migration)이 일어나고 있을 때에는, 모든 캐시된 보류 인터럽트 데이터에 대해 보조 기억장치로의 플러시(flush back)가 완료할 때까지 새롭게 수신된 메시지 시그널 인터럽트들이 중지된다.
본 발명의 실시예의 또 다른 종류는, 복수의 인터럽트 목적지들 각각에 대해 별개의 보류 상태 메모리를 설치한다. 별개의 보류 상태 메모리들은, 전체 글로벌 인터럽트 번호 공간을 기억할 수 있으며, 예를 들어, 전용 레지스터들이 아니라 랜덤 액세스 메모리 기억장치를 이용하여, 캐싱 등의 기술을 이용하여 속도 및 효율을 향상시킬 수 있다.
각각의 인터럽트 목적지에 대해 설치된 별개의 보류 상태 메모리는, 예를 들면, 보류 비트들을 기억하는 전용 메모리이거나, 보류 비트들 이외에 기타 데이터도 기억하는 범용 메모리의 일부일 수 있다. 보류 상태 메모리는 관련된 데이터 처리 시스템의 범용 메모리 공간의 일부이어도 된다.
이와 같은 종류의 실시예에 관련하여, 인터럽트 번호가 현재의 인터럽트 목적지로부터 새로운 인터럽트 목적지로 이동할 때, 현재의 인터럽트 목적지에 대한 별개의 보류 상태 메모리에 있는 대응하는 엔트리(entry)가 새로운 인터럽트 목적지의 별개의 보류 상태 메모리로 전달된다. 따라서, 재할당될 보류 인터럽트 데이터가 이 상태 메모리로부터 이 인터럽트 번호에 대한 새롭게 책임이 있는 인터럽트 목적지의 상태 메모리로 전달된다.
인터럽트 목적지들 사이에서 이와 같은 인터럽트 번호들의 재할당을 행할 때, 전달이 완료될 때까지, 새로 수신된 메시지 시그널 인터럽트들이 인터럽트 변환회로에 의해 중지될 수 있다.
또 다른 일면에 따르면, 본 발명은, 한 개 이상의 인터럽트 소스들과 복수의 인터럽트 목적지들 사이에서 메시지 시그널 인터럽트들을 통신하는 인터럽트 통신장치로서,
상기 한 개 이상의 인터럽트 소스들 중에서 한 개로부터 메시지 시그널 인터럽트를 수신하고, 보류 상태 데이터를 기억하는 보류 상태 데이터 기억수단 내부에 존재하고 상기 복수의 인터럽트 목적지들에 의해 공유된 글로벌 인터럽트 번호 공간 내부의 상기 메시지 시그널 인터럽트의 인터럽트 번호를 표시하는 관련된 기억 위치를 갖는 보류 상태 데이터의 기억을 기동하는 인터럽트 변환수단과,
상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고, 상기 보류 상태 데이터 기억수단으로부터 상기 글로벌 인터럽트 번호 공간 내부의 관련된 인터럽트 번호를 갖는 보류 상태 데이터를 판독하고 상기 복수의 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 의해 인터럽트 처리를 기동하는 복수의 인터럽트 데이터 판독수단을 구비한 인터럽트 통신장치를 제공한다.
또 다른 일면에 따르면, 본 발명은, 한 개 이상의 인터럽트 소스들과 복수의 인터럽트 목적지들 사이에서 메시지 시그널 인터럽트를 통신하는 통신방법으로서,
상기 한 개 이상의 인터럽트 소스들 중에서 한 개로부터 메시지 시그널 인터럽트를 수신하는 단계와,
보류 상태 데이터 기억회로 내부에 존재하고 상기 복수의 인터럽트 목적지들에 의해 공유된 글로벌 인터럽트 번호 공간 내부의 상기 메시지 시그널 인터럽트의 인터럽트 번호를 표시하는 관련된 기억 위치를 갖는 보류 상태 데이터의 기억을 기동하는 단계와,
상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지에 대해, 상기 보류 데이터 기억회로로부터 상기 글로벌 인터럽트 번호 공간 내부의 관련된 인터럽트 번호를 갖는 보류 상태 데이터를 판독하는 단계와,
상기 복수의 인터럽트 목적지의 상기 각각의 인터럽트 목적지에 의해 인터럽트 처리를 기동하는 단계를 포함하는 통신방법을 제공한다.
이하, 다음의 첨부도면을 참조하여 본 발명의 실시예들을 상세히 설명한다.
도 1은 복수의 인터럽트 소스들, 복수의 인터럽트 목적지들과 메시지 시그널 인터럽트들을 통신하는 인터럽트 통신장치를 포함하는 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는, 프로그래머블 매핑 데이터에 의해 복수의 영역들로 분할된 글로벌 인터럽트 번호 공간과, 인터럽트 번호들과 글로벌 보류 상태 메모리 내부의 비트들 사이의 관계를 개략적으로 나타낸 것이다.
도 3은 도 1의 실시예에서 한 개의 인터럽트 목적지로부터 다른 인터럽트 목적지로의 인터럽트 번호의 재할당을 개략적으로 나타낸 흐름도이다.
도 4는, 복수의 인터럽트 소스들과, 복수의 인터럽트 목적지들과, 각각이 특정한 인터럽트 목적지 전용인 복수의 별개의 보류 상태 메모리들을 포함하는 인터럽트 통신장치를 갖는 데이터 처리장치의 제 2 실시예를 나타낸 것이다.
도 5는 글로벌 인터럽트 번호 공간을 통한 메시지 시그널 인터럽트의 통신을 개략적으로 나타낸 흐름도이다.
도 1은 복수의 데이터 인터럽트 소스들(4, 6, 8)과 복수의 인터럽트 목적지들(10, 12, 14, 16)을 포함하는 데이터 처리 시스템(2)을 개략적으로 나타낸 것이다. 인터럽트 목적지들은 보통 멀티프로세서 시스템 내부의 서로 다른 프로세서들일 수 있다. 이들 개별적인 프로세서들은 프로세싱 작업량에 따라 동적으로 전원이 켜지고 전원이 차단된다. 프로세서의 전원이 차단되면, 이 프로세서에 대한 보류중인 인터럽트들이 다른 프로세서에 재할당되어 서비스를 제공할 필요가 있다.
인터럽트 소스들(4, 6, 8)은, U/O 디바이스, DMA 엔진 및 기타의 주변 기기들과 같은 다양한 다른 형태를 취할 수 있다. 인터럽트 소스들(4, 6, 8)은 메시지 시그널 인터럽트들 MSI-X를 발생하고, 이 인터럽트들은 루트 콤플렉스(root complex)(18)로 특정한다. 이와 같은 메시지 시그널 인터럽트들은, 예를 들면, PCI-익스프레스를 지원하는 시스템으로부터 공지되어 있다. 이와 같은 메시지 시그널 인터럽트들 자체와 루트 콤플렉스(18)는 본 기술분야의 당업자에게 있어서 친숙하므로 본 명세서에서는 설명을 생략한다.
종래의 기술과 다른 메시지 시그널 인터럽트의 한가지 면은, 모든 인터럽트 목적지들(10, 12, 14, 16)에 의해 공유되는 글로벌 인터럽트 번호 공간을 사용한다는 것이다. 따라서, 메시지 시그널 인터럽트가 그것의 어드레스로서 특정한 인터럽트 목적지를 명시하고 이 인터럽트 목적지 특유의 인터럽트 번호를 제공하는 것 대신에, 더 큰 수의 인터럽트 번호들이 글로벌 인터럽트 번호 공간에 의해 제공되고 인터럽트 변환회로(22)에 의해 서로 다른 인터럽트 목적지들(10, 12, 14, 16)에게 할당된다.
도 1에 도시된 것과 같이, 인터럽트 변환회로(20)는, 서로 다른 인터럽트 목적지들(10, 12, 14, 16)이 책임지고 있는 글로벌 인터럽트 번호 공간 내부의 서로 다른 영역들을 표시하는 프로그래머블 매핑 데이터(22)에 응답한다. 인터럽트 변환회로(22)는, 수신된 메시지 시그널 인터럽트를 원하는 인터럽트 목적지(10, 12, 14, 16)에 보내 서비스한다.
각각의 인터럽트 목적지들(10, 12, 14, 16)은 각각 관련된 보류 인터럽트 캐시(24), 매핑 제어기(26), 우선순위 및 인에이블 캐시(28)(이것은 별개의 개별적인 우선순위 및 인에이블 캐시 또는 통합된 우선순위 및 인에이블 캐시의 형태를 취할 수 있다), 인터럽트 데이터 판독회로(32) 및 캐시 제어기(30)를 갖는다. 보류 인터럽트 캐시(24)는 후기록 캐시로 구성되므로, 새로 수신된 인터럽트가 보류 인터럽트 캐시(24) 내부에 기억되고(공간 허용), 이 인터럽트가 보류 인터럽트 캐시(24)로부터 유출되거나 플러시되지 않는 한 글로벌 보류 상태 메모리(34)에 기록되지 않는다. 인터럽트 데이터 판독회로(32)는 보류 인터럽트 캐시(24) 내부에 기억된 보류중인 인터럽트 데이터를 판독하여 인터럽트 신호들을 발생하고, 이들 인터럽트 신호들은 관련된 인터럽트 목적지(10, 12, 14, 16)에 주어져, 명시된 인터럽트 번호에 따라 인터럽트 처리를 기동한다.
이때, 서로 다른 인터럽트 번호들은 그것들과 관련된 서로 다른 우선순위 레벨들을 가져도 된다는 것은 자명하다. 이와 같은 우선순위 정보는 글로벌 우선순위 데이터 기억회로(28, 36) 내부에 기억되어도 된다. 이때, 본 실시예에서의 우선순위 데이터 기억회로는 우선순위 및 인에이블 글로벌 메모리(36)와 결합하는 우선순위 및 인에이블 캐시(28)의 형태를 취한다는 것을 알 수 있다. 마찬가지로, 보류 인터럽트 데이터에 대한 보류 상태 데이터 기억회로는 보류 인터럽트 캐시(24)와 이 보류 인터럽트 캐시(24)에 대한 보조 기억장치로서의 역할을 하는 글로벌 보류 상태 메모리(34)의 형태를 갖는다.
캐시 콘트롤러들(30)은, 캐시들(24, 28)로의 데이터의 페칭과, 캐시들(24, 28)로부터의 데이터의 유출과, 캐시들(24, 28)의 플러싱을 제어한다. 보류 인터럽트 캐시(24)가 완전히 채워지고 새로운 인터럽트가 수신되면, 보류 인터럽트 캐시 내부에 유지된 가장 낮은 우선순위의 인터럽트들과 새로 수신된 인터럽트가 글로벌 보류 상태 메모리(34)로 다시 유출된다. 마찬가지로, 보류 인터럽트 캐시(24)가 채워지지 않고 특정한 인터럽트 목적지와 보류 인터럽트 기억장치(24)가 책임지고 있는 영역에 대한 글로벌 보류 상태 메모리 내부의 보류 인터럽트를 표시하는 보류 비트가 존재하는 경우에는, 가장 높은 우선순위의 이와 같은 보류 인터럽트가, 해당 인터럽트 목적지들(10, 12, 14, 16)에 의해 서비스되고 있는 위치로부터 보류 인터럽트 캐시(24)로 다시 페치된다.
매핑 제어기들(26)은 비트들의 필드를 포함하는 매핑 데이터를 기억하고, 이들 비트 각각은 글로벌 인터럽트 번호 공간 내부의 연속된 인터럽트 번호들의 영역에 대응한다. 매핑 데이터 내부의 특정한 비트가 설정되면, 이것은, 관련된 인터럽트 목적지가 해당 글로벌 인터럽트 번호 공간의 대응하는 영역 내부에서 인터럽트를 서비스할 책임이 있다는 것을 표시한다. 따라서, 캐시 제어기(30)는 매핑 데이터를 판독하여, 글로벌 보류 상태 메모리(34) 내부에 기억된 보류 비트 데이터의 어떤 영역들이 이 매핑 제어기(26)와 관련된 인터럽트 목적지를 책임지고 있는지를 판정한다. 따라서, 캐시 제어기(30)는, 보류 인터럽트 캐시(24) 내부에 공간이 허용될 때, 이 인터럽트 목적지에 대한 명시된 영역들로부터의 보류 비트들에 의해 표시된 보류 인터럽트 데이터를 페치하여, 이 인터럽트 목적지에 의해 서비스를 제공한다. 인터럽트 목적지의 전원이 차단되고 있는 경우와 같이, 인터럽트 목적지들 사이에서 영역이 재할당되면, 인터럽트 목적지의 새로운 책임을 반영하도록 프로그래머블 매핑 데이터가 변경되어, 전원이 차단되고 있는 인터럽트 목적지에 의해 이전에 관리되었던 글로벌 인터럽트 번호 공간 내부의 영역들로부터 인터럽트들의 서비스를 인계받는다. 이와 같은 전달이 발생하고 있을 때, 인터럽트 변환회로(20)는, 해당 인터럽트 번호들의 영역들에 대해 새로 수신된 인터럽트들을 중지하는 역할을 하여, 이들 인터럽트들이 새롭게 책임이 있는 인터럽트 목적지에 도달하기 전에, 새롭게 책임이 있는 인터럽트 목적지가 적절히 수립된다(즉r, 이들 영역에 대한 그것들의 책임을 알게 된다).
서로 다른 인터럽트들과 관련된 우선순위 및 인에이블 데이터는 우선순위 및 인에이블 캐시들(28) 내부에 기억되고, 글로벌 우선순위 및 인에이블 메모리(36)는 그것에 대한 보조 기억장치로서의 역할을 한다. 우선순위 및 인에이블 데이터가 필요한 특정한 인터럽트 번호가 발생하는 경우에, 동일한 인터럽트, 또는 인터럽트 번호 공간에서의 인접한 인터럽트가 그후 곧바로 발생할 가능성이 큰 것과 같이, 우선순위 및 인에이블 캐시들(28)은 특정한 우선순위 및 인에이블 데이터에 대해 행해진 액세스들 내부의 집약성으로부터 이득을 얻을 수도 있다. 따라서, 이와 같은 새로운 인터럽트에 대한 우선순위 및 인에이블 데이터는 통계적으로 우선순위 및 인에이블 캐시(28) 내부에 이미 존재할 가능성이 높다. 우선순위 데이터는 보류중인 인터럽트들이 서비스되는 순서를 제어하는 우선순위 레벨을 표시한다. 더 높은 우선순위를 갖는 보류중인 인터럽트들은 더 낮은 우선순위 레벨을 갖는 보류중인 인터럽트 이전에 서비스가 이루어진다. 인에이블 데이터는 특정한 인터럽트 번호가 시스템 전체에 대해 인에이블되는지 특정한 인터럽트 목적지에 대해 인에이블 되는지를 표시한다.
도 2는 글로벌 인터럽트 번호 공간(38)을 개략적으로 나타낸 것이다. 개별적인 인터럽트 번호들 N(40)은 이 글로벌 인터럽트 번호 공간(38) 내부에 배치된다. 글로벌 인터럽트 번호 공간은 연속된 인터럽트 번호들로 각각 구성된 복수의 영역들로 분할된다. 전술한 것과 같이, 이들 영역들 각각은 프로그래머블 매핑 데이터(42) 내부의 비트에 대응한다. 프로그래머블 매핑 데이터는, 각각의 인터럽트 목적지들(10, 12, 14, 16)에 대해 제공되며, 글로벌 인터럽트 번호 공간 내부의 어느 영역들에 대해 이 인터럽트 목적지가 서비스를 제공할 책임이 있는지는 표시한다. 프로그래머블 매핑 데이터는, 프로그래머블 매핑 데이터를 관리하고 조정할 책임이 있는 인터럽트 변환회로(20)의 레지스터들(22) 내부에도 기억된다. 프로그래머블 매핑 데이터는, 예를 들어, 운영체계 소프트웨어에 의한 소프트웨어 제어하에서 수립되거나, 일부 실시예에서는 배선에 의해 연결된 구성이어도 된다.
각각의 영역들 내부에는, 동일한 우선순위 레벨을 공유하는 인터럽트 번호들의 복수의 그룹들이 설치된다. 일부 실시예에서는, 인터럽트 번호마다 개별적인 우선순위 레벨의 작은 단위의(fine grained) 레벨로 우선순위 레벨들을 명시할 필요는 없으며, 연속된 인터럽트 번호들의 그룹이 우선순위 레벨을 공유할 수 있다. 인터럽트 번호 기준으로 인터럽트 인에이블들이 개별적인 인터럽트 번호에 대해 설정되어도 된다.
도 2에는 글로벌 보류 상태 메모리(34)가 더 도시되어 있다. 이것은 글로벌 인터럽트 번호 공간(38) 내부의 인터럽트 번호들 각각에 대해 보류 비트(44)를 제공한다. 이와 같은 보류 비트가 설정되면, 이것은 관련된 인터럽트 번호로부터 보류 인터럽트가 존재한다는 것을 표시한다. 따라서, 글로벌 보류 상태 메모리(34) 내부의 보류 비트의 기억 위치가 글로벌 인터럽트 번호 공간(38) 내부의 대응하는 인터럽트 번호를 표시한다. 보류 비트가 설정되면, 보류중인 인터럽트가 존재하고, 보류 비트가 소거이면, 보류중인 인터럽트가 존재하지 않는다. 글로벌 보류 상태 메모리(34)는 인터럽트들에 대한 보류 상태 데이터의 밀집되고 효율적인 기억을 제공한다.
도 3은 인터럽트 목적지들(10, 12, 14, 16) 사이에서의 인터럽트 번호의 재할당을 개략적으로 나타낸 흐름도이다. 스텝 46에서는, 재할당할 인터럽트 번호가 존재할 때까지 처리를 대기한다. 스텝 48은, 추가적인 인터럽트 요구를 인터럽트 변환회로(20)에서 중지함으로써 인터럽트 변환회로(20)가 이 인터럽트 번호에 대한 이 추가적인 인터럽트 요구를 차단하는 것을 나타낸 것이다. 스텝 50에서는, 전환되고 있는 인터럽트 번호와 관련된 보류 인터럽트 캐시(24)가 글로벌 보류 상태 메모리(34)로 플러시된다. 스텝 52에서는, 현재 및 새로운 인터럽트 목적지들에 대한 프로그래머블 매핑 데이터를 갱신하여 책임의 변화를 표시한다. 도 1의 실시예에서는, 인터럽트 번호들이 영역 기준으로 재할당된다(다른 실시예에서는 개별적인 인터럽트들이 재할당되어도 된다). 스텝 54에서는, 재할당된 인터럽트 번호에 대한 추가적인 인터럽트 요구들의 차단이 인터럽트 변환회로(20)에 의해 제거된다.
도 4는 제 2 실시예를 나타낸 것이다. 각각의 인터럽트 목적지들(10, 12, 14, 16)에 대해 별개의 보류 상태 메모리들(56)이 설치된 것을 제외하고는, 본 실시예는 도 1에 도시된 실시예와 유사하다. 간략을 위해 도 1의 실시예에서의 다수의 공통된 구성요소(판독회로(32) 등)를 도 4에서는 생략하였지만 실제로는 존재하고 있다. 본 실시예에서는, 글로벌 인터럽트 번호 공간을 다수의 영역들로 분할하는 프로그래머블 매핑 데이터가 제공되지 않으며, 개별적인 기준으로 인터럽트 목적지들(10, 12, 14, 16) 사이에서 인터럽트들이 재할당된다. 특정한 인터럽트 목적지(10, 12, 14, 16)의 전원이 차단되면, 그것이 보류 인터럽트 캐시(24)와 그것과 관련된 별개의 보류 상태 메모리(56) 내부에 기억하고 있는 보류 인터럽트 데이터가 판독되어, 이들 보류중인 인터럽트들에 대한 책임을 인계받고 잇는 인터럽트 목적지의 별개의 보류 상태 메모리(56)(와 아마도 보류 인터럽트 캐시(24) 내부로 복사된다. 본 실시예는, 프로그래머블 매핑 데이터와 글로벌 인터럽트 번호 공간의 분할을 필요가 없게 하며, 전체의 글로벌 인터럽트 번호 공간을 각각 기억할 수 있는 별개의 보류 상태 메모리들(56)을 제공한다. 본 실시예는, 재할당이 발생할 때, 별개의 보류 상태 메모리들(56) 사이에서 보류 비트들을 복사할 필요가 있다는 단점을 갖고 있다. 이에 반해, 도 1의 공유 글로벌 보류 상태 메모리(34)는 모든 보류중인 인터럽트들의 통합된 모습을 하여 이와 같은 메모리간 복사가 필요하지 않다. 보류 상태 메모리(56)가 레지스터들이나 플롭이 아니라 효율적인 RAM메모리이기 때문에, 보류 인터럽트 캐기(24)와 별개의 보류 상태 메모리(56) 내부의 보류 상태 데이터에 대한 기억장치의 설치가 비교적 매우 밀집한 데이터 기억을 허용한다. 별개의 보류 상태 메모리(56)는, RAM의 전용 블록이거나, 이 용도로 할당된 시스템 RAM의 일부(즉, 범용 메모리의 일부)이어도 된다.
도 5는 메시지 시그널 인터럽트의 통신을 개략적으로 나타낸 흐름도이다. 스텝 58에서는 메시지 시그널 인터럽트가 수신된다. 스텝 60에서는, 해당 인터럽트 번호에 대한 보류 상태 데이터가 글로벌 인터럽트 번호 공간(38) 내부에 설정된다. 이와 같은 보류 상태 데이터는 보류 인터럽트 캐시(24) 또는 보류 상태 메모리들(34, 56) 중에서 한 개 내부에 기억되어도 된다. 스텝 62에서는, 판독회로(32)가 목표로 된 인터럽트 목적지에 있는 보류 상태 데이터를 판독한다. 그후, 스텝 64에서는, 목표로 된 인터럽트 목적지의 인터럽트를 처리하고, 보류 인터럽트 데이터를 소거하여 이 인터럽트가 처리되었다는 것을 표시한다.

Claims (25)

  1. 한 개 이상의 인터럽트 소스들과 복수의 인터럽트 목적지들 사이에서 메시지 시그널 인터럽트들을 통신하는 인터럽트 통신장치로서,
    상기 한 개 이상의 인터럽트 소스들 중에서 한 개로부터 메시지 시그널 인터럽트를 수신하고, 보류 상태 데이터 기억회로 내부에 존재하고 상기 복수의 인터럽트 목적지들에 의해 공유된 글로벌 인터럽트 번호 공간 내부의 상기 메시지 시그널 인터럽트의 인터럽트 번호를 표시하는 관련된 기억 위치를 갖는 보류 상태 데이터의 기억을 기동하도록 구성된 인터럽트 변환회로와,
    상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고, 상기 보류 상태 데이터 기억회로로부터 상기 글로벌 인터럽트 번호 공간 내부의 관련된 인터럽트 번호를 갖는 보류 상태 데이터를 판독하고 상기 복수의 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 의해 인터럽트 처리를 기동하도록 구성된 복수의 인터럽트 데이터 판독회로를 구비한 인터럽트 통신장치.
  2. 제 1항에 있어서,
    상기 보류 상태 데이터 기억회로는, 상기 인터럽트 목적지들의 각각의 목적지와 각각 관련되고 상기 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 의해 처리될 한 개 이상의 보류 인터럽트들의 인터럽트 번호들을 표시하는 데이터를 기억하도록 각각 구성된 복수의 보류 인터럽트 캐시들을 구비한 인터럽트 통신장치.
  3. 제 2항에 있어서,
    상기 보류 인터럽트 캐시들이 후기록 캐시(write back cache)들로 구성되어, 특정한 보류 인터럽트 캐시 내부에 기억 공간이 이용가능한 경우에는, 새로 수신된 메시지 시그널 인터럽트에 대한 보류 상태 데이터가 보조 기억장치에 기록되지 않고 상기 특정한 보류 인터럽트 캐시에 기록되는 인터럽트 통신장치.
  4. 제 3항에 있어서,
    상기 특정한 보류 인터럽트 개시가 완전히 채워진 경우에, 새로 수신된 보류 상태 데이터가 더 높은 우선순위 인터럽트에 대응하는 경우에는, 가장 낮은 보류 인터럽트의 보류 상태 데이터가 상기 보조 기억장치로 유출되는(spill) 인터럽트 통신장치.
  5. 제 3항 또는 제 4항에 있어서,
    상기 보류 인터럽트 캐시가 완전히 채워지지 않은 경우에는, 상기 보조 기억장치 내부의 가장 높은 우선순위의 보류 인터럽트에 대한 보류 상태 데이터가 상기 보조 기억장치로부터 상기 보류 인터럽트 캐시로 페치되는 인터럽트 통신장치.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 복수의 인터럽트 데이터 판독회로는, 보류 인터럽트의 인터럽트 번호에 대응하는 우선순위 데이터 기억회로 내부의 기억 위치와 관련된 우선순위 데이터를 판독하도록 구성되고, 상기 우선순위 데이터는 상기 보류 인터럽트의 우선순위 레벨을 표시하는 인터럽트 통신장치.
  7. 제 6항에 있어서,
    상기 우선순위 데이터 기억회로는, 상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고 상기 복수의 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 대한 최근에 액세스된 우선순위 데이터를 각각 기억하는 복수의 우선순위 데이터 캐시를 구비한 인터럽트 통신장치.
  8. 제 6항 또는 제 7항에 있어서,
    상기 인터럽트 번호들은 복수의 그룹들의 연속된 인터럽트 번호들로 분할되고, 각각의 그룹의 연속된 인터럽트 번호들은 우선순위 레벨을 공유하는 인터럽트 통신장치.
  9. 제 1항 내지 제 8항 중 어느 한 항에 있어서,
    상기 복수의 인터럽트 데이터 판독회로는 보류 인터럽트의 인터럽트 번호에 대응하는 인에이블 데이터 기억회로 내부의 기억 위치와 관련된 인에이블 데이터를 판독하도록 구성되고, 상기 인에이블 데이터는 상기 보류 인터럽트가 인에이블되는지 아닌지를 표시하는 인터럽트 통신장치.
  10. 제 9항에 있어서,
    상기 인에이블 데이터 기억회로는, 상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고 상기 복수의 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 대한 최근에 액세스된 인에이블 데이터를 각각 기억하는 복수의 인에이블 데이터 캐시들을 구비한 인터럽트 통신장치.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서,
    상기 복수의 인터럽트 목적지들 중에서 대응하는 인터럽트 목적지가 보류 상태 데이터에 응답하여 인터럽트 처리를 행할 책임이 있는 상기 글로벌 인터럽트 번호 공간 내부의 한 개 이상의 영역들을 표시하는 상기 복수의 인터럽트 목적지들 중에서 상기 각각의 대응하는 목적지에 대한 프로그래머블 매핑 데이터를 기억하도록 각각 구성된 복수의 매핑 제어기를 구비하고,
    상기 복수의 인터럽트 데이터 판독회로는, 상기 프로그래머블 매핑 데이터에 의해 표시된 한 개 이상의 영역들 내부의 관련된 인터럽트 번호를 갖는 보류 상태 데이터를 판독하고 상기 복수의 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 의해 인터럽트 처리를 기동함으로써, 상기 복수의 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 대한 상기 프로그래머블 매핑 데이터에 응답하도록 구성된 인터럽트 통신장치.
  12. 제 11항에 있어서,
    상기 보류 상태 데이터 기억회로는 상기 복수의 인터럽트 데이터 판독회로들에 의해 공유되고 각각의 인터럽트 번호들에 매핑된 위치들을 갖는 보류 비트들을 기억하는 글로벌 보류 상태 메모리를 구비하고, 상기 보류 비트들은 각각의 인터럽트 번호들에 대해 인터럽트가 보류되고 있는지 여부를 표시하는 인터럽트 통신장치.
  13. 제 12항에 있어서,
    상기 글로벌 보류 상태 메모리는,
    상기 보류 비트들을 기억하도록 구성된 전용 메모리와,
    상기 보류 비트들 이외에 다른 데이터를 기억하도록 구성된 범용 메모리의 일부 중에서 한 개인 인터럽트 통신장치.
  14. 제 11항 내지 제 13항 중 어느 한 항에 있어서,
    상기 보류 상태 데이터 기억회로는, 상기 인터럽트 목적지들의 각각의 목적지와 각각 관련되고 상기 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 대한 상기 프로그래머블 매핑 데이터에 의해 표시된 상기 한 개 이상의 영역들 내부의 한 개 이상의 보류 인터럽트들의 인터럽트 번호들을 표시하는 데이터를 기억하도록 각각 구성된 복수의 보류 인터럽트 캐시를 구비한 인터럽트 통신장치.
  15. 제 11항 내지 제 14항 중 어느 한 항에 있어서,
    상기 인터럽트 목적지들에 대한 각각의 프로그래머블 매핑 데이터를 변경함으로써 인터럽트 목적지들 사이에서 인터럽트 번호들의 영역들이 재할당되는 인터럽트 통신장치.
  16. 제 15항에 있어서,
    상기 보류 상태 데이터 기억회로는, 상기 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고 상기 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 대해 상기 프로그래머블 매핑 데이터에 의해 표시된 상기 한 개 이상의 영역들 내부의 한 개 이상의 보류 인터럽트들의 인터럽트 번호들을 표시하는 데이터를 기억하도록 각각 구성된 복수의 보류 인터럽트 캐시를 구비하고, 인터럽트 번호들의 영역이 인터럽트 목적지로부터 이동하면, 상기 프로그래머블 매핑 데이터가 변경되기 전에, 상기 인터럽트 목적지와 관련된 보류 인터럽트 캐시가 보조 기억장치로 플러시되는 인터럽트 통신장치.
  17. 제 16항에 있어서,
    상기 보조 기억장치로의 상기 플러시가 완료할 때까지, 상기 영역에 대한 새로 수신한 메시지 시그널 인터럽트가 상기 인터럽트 변환회로에 의해 중지되는 인터럽트 통신장치.
  18. 제 1항 내지 제 17항 중 어느 한 항에 있어서,
    상기 보류 상태 데이터 기억회로는, 각각의 인터럽트 번호들에 매핑된 위치들을 갖는 보류 비트들을 기억하기 위해 상기 복수의 인터럽트 목적지들의 각각에 대해 별개의 보류 상태 메모리를 구비하고, 상기 보류 비트들은 각각의 인터럽트 번호들에 대해 인터럽트가 보류중인지 여부를 표시하는 인터럽트 통신장치.
  19. 제 18항에 있어서,
    각각의 상기 별개의 보류 상태 메모리는,
    상기 보류 비트들을 기억하도록 구성된 전용 메모리와,
    상기 보류 비트들 이외에 다른 데이터를 기억하도록 구성된 범용 메모리의 일부 중에서 한 개인 인터럽트 통신장치.
  20. 제 18항 또는 제 19항에 있어서,
    현재의 인터럽트 목적지로부터 새로운 인터럽트 목적지로 인터럽트 번호가 이동할 때, 상기 현재의 인터럽트 목적지의 별개의 보류 상태 메모리 내부의 대응하는 엔트리가 상기 새로운 인터럽트 목적지의 별개의 보류 상태 메모리로 전달되는 인터럽트 통신장치.
  21. 제 20항에 있어서,
    상기 전달이 완료할 때까지, 상기 인터럽트 번호에 대한 새로 수신한 메시지 시그널 인터럽트가 상기 인터럽트 변환회로에 의해 중지되는 인터럽트 통신장치.
  22. 한 개 이상의 인터럽트 소스들과 복수의 인터럽트 목적지들 사이에서 메시지 시그널 인터럽트들을 통신하는 인터럽트 통신장치로서,
    상기 한 개 이상의 인터럽트 소스들 중에서 한 개로부터 메시지 시그널 인터럽트를 수신하고, 보류 상태 데이터를 기억하는 보류 상태 데이터 기억수단 내부에 존재하고 상기 복수의 인터럽트 목적지들에 의해 공유된 글로벌 인터럽트 번호 공간 내부의 상기 메시지 시그널 인터럽트의 인터럽트 번호를 표시하는 관련된 기억 위치를 갖는 보류 상태 데이터의 기억을 기동하는 인터럽트 변환수단과,
    상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지와 각각 관련되고, 상기 보류 상태 데이터 기억수단으로부터 상기 글로벌 인터럽트 번호 공간 내부의 관련된 인터럽트 번호를 갖는 보류 상태 데이터를 판독하고 상기 복수의 인터럽트 목적지들의 상기 각각의 인터럽트 목적지에 의해 인터럽트 처리를 기동하는 복수의 인터럽트 데이터 판독수단을 구비한 인터럽트 통신장치.
  23. 한 개 이상의 인터럽트 소스들과 복수의 인터럽트 목적지들 사이에서 메시지 시그널 인터럽트를 통신하는 통신방법으로서,
    상기 한 개 이상의 인터럽트 소스들 중에서 한 개로부터 메시지 시그널 인터럽트를 수신하는 단계와,
    보류 상태 데이터 기억회로 내부에 존재하고 상기 복수의 인터럽트 목적지들에 의해 공유된 글로벌 인터럽트 번호 공간 내부의 상기 메시지 시그널 인터럽트의 인터럽트 번호를 표시하는 관련된 기억 위치를 갖는 보류 상태 데이터의 기억을 기동하는 단계와,
    상기 복수의 인터럽트 목적지들의 각각의 인터럽트 목적지에 대해, 상기 보류 데이터 기억회로로부터 상기 글로벌 인터럽트 번호 공간 내부의 관련된 인터럽트 번호를 갖는 보류 상태 데이터를 판독하는 단계와,
    상기 복수의 인터럽트 목적지의 상기 각각의 인터럽트 목적지에 의해 인터럽트 처리를 기동하는 단계를 포함하는 통신방법.
  24. 첨부도면을 참조하여 전술한 것과 같은 인터럽트 통신장치.
  25. 첨부도면을 참조하여 전술한 것과 같은 메시지 시그널 인터럽트 통신방법.
KR1020157012497A 2012-10-26 2013-08-29 메시지 시그널 인터럽트의 통신 KR102064764B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/661,456 2012-10-26
US13/661,456 US8924615B2 (en) 2012-10-26 2012-10-26 Communication of message signalled interrupts
PCT/GB2013/052265 WO2014064417A1 (en) 2012-10-26 2013-08-29 Communication of message signalled interrupts

Publications (2)

Publication Number Publication Date
KR20150076187A true KR20150076187A (ko) 2015-07-06
KR102064764B1 KR102064764B1 (ko) 2020-01-10

Family

ID=49151252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012497A KR102064764B1 (ko) 2012-10-26 2013-08-29 메시지 시그널 인터럽트의 통신

Country Status (11)

Country Link
US (1) US8924615B2 (ko)
EP (1) EP2912559B1 (ko)
JP (1) JP6254603B2 (ko)
KR (1) KR102064764B1 (ko)
CN (1) CN104756094B (ko)
GB (1) GB2507396B (ko)
IL (1) IL237894B (ko)
IN (1) IN2015DN02347A (ko)
MY (1) MY169875A (ko)
TW (1) TWI573076B (ko)
WO (1) WO2014064417A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150127914A (ko) * 2014-05-07 2015-11-18 에스케이하이닉스 주식회사 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9715469B1 (en) * 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US20190108149A1 (en) * 2017-10-10 2019-04-11 Qualcomm Incorporated I3c in-band interrupts directed to multiple execution environments

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62156756A (ja) * 1985-12-28 1987-07-11 Hitachi Ltd 浮動割込処理方法
KR940001878B1 (ko) 1990-03-08 1994-03-10 가부시끼가이샤 히다찌세이사꾸쇼 멀티 프로세서시스템 및 인터럽션 제어장치
US5613128A (en) 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
JPH1011411A (ja) 1996-06-26 1998-01-16 Nec Corp 割込み制御システム
JP3769428B2 (ja) * 1999-09-30 2006-04-26 富士通株式会社 浮動割込みを保留できる情報処理装置および割込み条件変更命令実行方法
US6629179B1 (en) * 2000-07-31 2003-09-30 Adaptec, Inc. Message signaled interrupt generating device and method
US7013358B2 (en) * 2003-08-09 2006-03-14 Texas Instruments Incorporated System for signaling serialized interrupts using message signaled interrupts
JP2006119802A (ja) 2004-10-20 2006-05-11 Hitachi Ltd マルチプロセッサシステム
US20060095624A1 (en) 2004-11-03 2006-05-04 Ashok Raj Retargeting device interrupt destinations
US8510491B1 (en) * 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
US20070106827A1 (en) * 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US7328296B1 (en) 2006-01-03 2008-02-05 Emc Corporation Interrupt processing system
US8725914B2 (en) 2006-08-28 2014-05-13 International Business Machines Corporation Message signaled interrupt management for a computer input/output fabric incorporating platform independent interrupt manager
WO2008066511A1 (en) * 2006-11-27 2008-06-05 Intel Corporation Centralized interrupt controller
US20090300232A1 (en) * 2008-05-29 2009-12-03 Himax Technologies Limited Data transmission method between a host device and a display apparatus
US7913017B2 (en) * 2008-09-25 2011-03-22 Mediatek Inc. Embedded system and interruption handling method
TW201038051A (en) * 2009-04-03 2010-10-16 Hon Hai Prec Ind Co Ltd Communication method and communication system and communication apparatus

Also Published As

Publication number Publication date
WO2014064417A1 (en) 2014-05-01
GB2507396B (en) 2020-09-23
US8924615B2 (en) 2014-12-30
CN104756094B (zh) 2018-04-24
TWI573076B (zh) 2017-03-01
CN104756094A (zh) 2015-07-01
US20140122760A1 (en) 2014-05-01
KR102064764B1 (ko) 2020-01-10
JP2015532994A (ja) 2015-11-16
TW201416982A (zh) 2014-05-01
MY169875A (en) 2019-05-28
IN2015DN02347A (ko) 2015-08-28
EP2912559B1 (en) 2017-07-26
GB201315345D0 (en) 2013-10-09
JP6254603B2 (ja) 2017-12-27
GB2507396A (en) 2014-04-30
IL237894B (en) 2018-05-31
EP2912559A1 (en) 2015-09-02

Similar Documents

Publication Publication Date Title
KR102064764B1 (ko) 메시지 시그널 인터럽트의 통신
US10534719B2 (en) Memory system for a data processing network
US9575889B2 (en) Memory server
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
KR101558427B1 (ko) 가상화된 입/출력을 위한 프로세서 로컬 코히어런시를 갖는 컴퓨터 시스템
US20080104329A1 (en) Cache and method for cache bypass functionality
KR101511972B1 (ko) 계층적 캐싱 설계에서 캐시들 간 효율적 통신을 위한 방법 및 장치
US9355035B2 (en) Dynamic write priority based on virtual write queue high water mark for set associative cache using cache cleaner when modified sets exceed threshold
US20230214326A1 (en) Computer Memory Expansion Device and Method of Operation
US20040128452A1 (en) Allocating cache lines
US8566532B2 (en) Management of multipurpose command queues in a multilevel cache hierarchy
CN107851065B (zh) 预先缓存分配器
JP2016057763A (ja) キャッシュ装置、及びプロセッサ
US20200356486A1 (en) Selectively honoring speculative memory prefetch requests based on bandwidth state of a memory access path component(s) in a processor-based system
JP6055456B2 (ja) 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
JP2014059661A (ja) 情報処理装置及びその制御方法、プログラム
US7840757B2 (en) Method and apparatus for providing high speed memory for a processing unit
KR20080028681A (ko) 멀티 웨이 스트림 버퍼 관리 장치 및 그의 프리페치 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant