KR20010032953A - 인터럽트 데스티네이션 리다이렉션을 수행하는 메카니즘 - Google Patents

인터럽트 데스티네이션 리다이렉션을 수행하는 메카니즘 Download PDF

Info

Publication number
KR20010032953A
KR20010032953A KR1020007006298A KR20007006298A KR20010032953A KR 20010032953 A KR20010032953 A KR 20010032953A KR 1020007006298 A KR1020007006298 A KR 1020007006298A KR 20007006298 A KR20007006298 A KR 20007006298A KR 20010032953 A KR20010032953 A KR 20010032953A
Authority
KR
South Korea
Prior art keywords
processor
priority
logic
processors
lpida
Prior art date
Application number
KR1020007006298A
Other languages
English (en)
Other versions
KR100380198B1 (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 KR20010032953A publication Critical patent/KR20010032953A/ko
Application granted granted Critical
Publication of KR100380198B1 publication Critical patent/KR100380198B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Abstract

본 발명의 일실시예는 컴퓨터 시스템과 관련하여 사용하기 위한 브리지와 같은 장치를 포함한다. 상기 장치는 최하위 우선순위 인터럽트 데스티네이션 중재(Lowest Priority Interrupt Destination Arbitration)(LPIDA)에 유효한 컴퓨터 시스템 내 각 프로세서(P0)의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하는 원격 우선순위 캡쳐 로직(32)을 포함한다. 또한, 상기 장치는 상기 원격 우선순위 캡쳐 로직(32)의 내용에 기반된 인터럽트 메시지를 수신할 컴퓨터 시스템 내 프로세서를 선택하기 위하여 LPIDA를 수행하는 최하위 우선순위 로직(42)을 포함한다.
본 발명의 다른 실시예는 프로세서들 및 상기 프로세서들(P0, P1, P2, P3)에 결합된 프로세서 버스(18)를 구비하는 멀티-프로세서 시스템을 포함한다. 상기 시스템은 프로세서들이 LPIDA에 유효한 동안에 프로세서들의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하는 원격 우선순위 캡쳐 로직(32)을 포함한다. 또한, 상기 시스템은 프로세서들 중 상기 원격 우선순위 캡쳐 로직(32)의 내용에 기반된 인터럽트 메시지를 수신할 프로세서들(P0, P1, P2, P3)을 선택하기 위하여 LPIDA를 수행하는 최하위 우선순위 로직(42)을 포함하고, 이때 상기 인터럽트 메시지는 상기 프로세서 버스(18)를 통해 상기 프로세서에게 제공되어진다.

Description

인터럽트 데스티네이션 리다이렉션을 수행하는 메카니즘{MECHANISM THAT PERFORMS INTERRUPT DESTINATION REDIRECTION}
인텔사에 의해 제조된 펜티엄(PentiumR) 프로세서 및 펜티엄 프로(PentiumRPro) 프로세서와 같은 프로세서들은 종종 멀티-프로세서 시스템에서 사용된다. 입력 및/또는 출력(I/O) 장치 및 다른 프로세서들을 포함하는 다양한 장치들은 임의의 한 프로세서를 인터럽트하려고 시도할 수 있다. 프로세서를 인터럽트하기 위해서 I/O 장치는 인터럽트 컨트롤러로 신호를 제공하고, 인터럽트 컨트롤러는 순서대로 프로세서에게 인터럽트 요청(request)을 제공한다.
펜티엄(PentiumR) 프로세서 및 펜티엄 프로(PentiumRPro) 프로세서의 경우, 인터럽트 컨트롤러는 APIC(Advanced Programmable Interrupt Controller) 버스라 불리는 3선 시리얼 버스(three-wire serial bus)를 통해 인터럽트 정보를 프로세서로 통신한다. APIC 시리얼 버스는 2개의 데이터 컨덕터(conductor)와 1개의 클럭 신호 컨덕터를 포함한다.
펜티엄(PentiumR) 프로세서 및 펜티엄 프로(PentiumRPro) 프로세서는 내부 APIC를 포함한다. APIC는 몇 개의 비트가 예약되어(reserved)있기는 하나, 256개의 우선순위 상태들을 표시하는 8비트를 가지는, 테스크 우선 순위 레지스터(Task Priority Register, 이하 TPR이라 함)라 불리는 로컬 마스크 레지스터를 포함한다. TPR의 내용은 프로세서에 의해 수행되어지는 테스크의 우선 순위 레벨을 나타내기 위해 변경된다.
최하위 우선순위 인터럽트는 특정 프로세서로 다이렉트되는 것이기는 하나, TPR에서 최하위 우선순위를 가진 프로세서의 그룹에 있는 프로세서로 리다이렉트될 수도 있다. 중재 프로세스(arbitration process)는 중재에 참여하는 각 프로세서의 TPR 8비트를 비교하는 것에 참여한다. 각 프로세서의 비트들은 프로세서의 각각에 오픈 드레인 배치(open drain arrangement)로 연결된 APIC 버스 라인 상에서 최상위 비트(the Most Significant Bit, 이하 MSB라 함)로 시작하여 한번에 한 비트씩 표명(assert)된다. 비트들은 로우 전압(0)이 하이 전압(1)보다 상위 우선순위를 가지도록 APIC 버스 라인 상에서 반전된다. 먼저, 중재에 참여하는 각 프로세서의 TPR로부터 MSB가 APIC 버스 라인 상에서 표명된다. 만일, 프로세서들 중 어느 하나가 APIC 버스 라인 상에서 로우 전압을 표명하면, 상기 라인은 로우로 끌어 내려진다. 하이 전압을 표명한 프로세서는 APIC 버스 라인이 로우로 끌어 내려지면, 하위 우선순위를 가진 다른 프로세서가 있음을 알게 된다. 프로세서는 다른 프로세서가 하위 우선순위를 가지는 지를 고려하여 드롭한다. 다음으로, 남아있는 각 프로세서의 TPR로부터 두 번째 MSB가 APIC 버스 라인 상에서 표명된다. 만일, 어느 한 프로세서가 두 번째 MSB로서 하이 전압을 표명하면, 상기 라인은 로우로 끌어내려지고, 상기 프로세서는 그를 고려하여 드롭한다. 남아있는 각 프로세서의 세 번째 MSB 및 그 다음 네 번째 MSB도 유사한 방식으로 APIC 버스 라인 상에서 표명되고, 그와 같은 방식으로 최하위 비트(the Least Significant Bit, 이하 LSB라 함)까지 표명된다. 만일, 8개 비트 모두가 표명된 후 두 개 또는 그 이상의 프로세서들이 동일한 우선순위를 가지면, 최하위 로컬 APIC 식별(identification, 이하 ID라 함) 번호를 가진 프로세서가 인터럽트 벡터를 수신받도록 선택된다. 로컬 APIC ID 번호는 전원 투입 시에 할당된다.
상기와 같은 APIC 시리얼 버스는 몇가지 단점을 갖는다. 첫째, 시리얼 버스는 인터럽트 컨트롤러(예, 3.3 volts)와 프로세서(예, 2.5 또는 1.8volts) 사이에서 전압 스케일링 특성이 나쁘다. 서로 다른 전압들 사이를 인터페이스하는 프로세서 내 트랜지스터를 제공하는 것이 어렵다. 이러한 문제는 프로세서 코어의 전압이 프로세서의 새로운 세대와 더불어 감소됨에 따라 더 커질 것이다.
둘째, 프로세서 코어의 주파수(예, 200MHz보다 종종 더 큰)가 APIC 시리얼 버스의 주파수(예, 16MHz)보다 훨씬 더 크다. 이러한 문제는 프로세서 주파수가 증가함에 따라 더 커질 것이다. 이러한 서로 다른 주파수 사이를 인터페이스하기는 어렵다. 상기 문제는 신호들이 서로 독립적이기 때문에 더 크다.
셋째, APIC 시리얼 버스는 상대적으로 느리다. 어떤 구현에서는 인터럽트를 전송하는 데에 대략 2 내지 3 ㎲가 걸린다. I/O의 강화된 기능이 더 많이 사용될수록 시리얼 버스가 인터럽트를 전송할 수 있는 속도는 제한된다.
본 발명은 상기에 인용된 APIC 시리얼 버스가 가진 문제들 중 하나 또는 그 이상의 영향을 극복하거나 줄이기 위한 것이다.
본 발명은 컴퓨터에 관한 것으로, 특히 컴퓨터 시스템에서 인터럽트 데스티네이션 리다이렉션(interrupt destination redirection)을 수행하는 장치에 관한 것이다.
도 1은 최하위 우선순위 프로세서에 인터럽트를 지정하기 위한 최하위 우선순위 로직을 포함하는 멀티-프로세서 시스템에 대한 블록 다이어그램도.
도 2는 상기 도 1의 시스템에서의 프로세서를 보다 상세히 도시한 일실시예적인 블록 다이어그램도.
도 3은 상기 도 1의 원격 우선순위 캡쳐 로직 및 최하위 우선순위 로직을 보다 상세히 도시한 일실시예적인 블록 다이어그램도.
도 4는 상기 도 3의 원격 우선순위 캡쳐 로직 내 원격 테스크 우선순위 레지스터(RTPR)에 대한 일실시 예시도.
도 5는 최하위 우선순위 프로세서에 인터럽트를 지정하기 위하여 브리지에 인터럽트 지정 로직, 원격 우선순위 캡쳐 로직 및 엔코드/디코드 로직을 포함하는 멀티-프로세서 시스템에 대한 일실시 블록 다이어그램도.
도 6은 APIC 시리얼 버스를 부가한 상기 도 5와 유사한 멀티-프로세서 시스템에 대한 블록 다이어그램도.
도 7은 RTPR 업데이트를 위한 2-페이즈 특정 사이클의 예시도.
발명의 요약
본 발명의 일실시예는 컴퓨터 시스템과 관련하여 사용하기 위한 장치를 포함한다. 상기 장치는 최하위 우선순위 인터럽트 데스티네이션 중재(Lowest Priority Interrupt Destination Arbitration)(이하, LPIDA라 함)에 유효한 컴퓨터 시스템 내 각 프로세서의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하는 원격 우선순위 캡쳐 로직(remote priority capture logic)을 포함한다. 또한, 상기 장치는 상기 원격 우선순위 캡쳐 로직의 내용에 기반된 인터럽트 메시지를 수신할 컴퓨터 시스템 내 프로세서를 선택하기 위하여 LPIDA를 수행하는 최하위 우선순위 로직을 포함한다.
본 발명의 다른 실시예는 프로세서 및 상기 프로세서에 결합된 프로세서 버스를 구비하는 멀티-프로세서 시스템을 포함한다. 상기 시스템은 프로세서가 LPIDA에 유효한 동안에 프로세서의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하는 원격 우선순위 캡쳐 로직을 포함한다. 또한, 상기 시스템은 프로세서 중 상기 원격 우선순위 캡쳐 로직의 내용에 기반된 인터럽트 메시지를 수신할 프로세서를 선택하기 위하여 LPIDA를 수행하는 최하위 우선순위 로직을 포함하고, 이때 상기 인터럽트 메시지는 상기 프로세서 버스를 통해 상기 프로세서에게 제공되어진다.
본 발명은 이하의 상세한 설명 및 본 발명의 실시예들에 따른 도면으로부터 보다 완전하게 이해될 것이나, 상기한 실시예는 본 발명의 설명과 이해를 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다.
도 1을 참조하면, 멀티-프로세서 컴퓨터 시스템(10)은 프로세서 버스(18)를 통해 연결되는 프로세서들(P0, P1, P2, P3)을 포함한다. 어떤 실시예들에서는 프로세서 버스(18)가 프론트 사이드 버스(front side bus)로 참조되기도 한다. 본 발명은 4개보다 많거나 적은 수의 프로세서를 가지는 시스템과 관련하여 사용될 수 있다. 프로세서들(P0, P1, P2, P3)은 인터럽트 제어 로직(22, 24, 26, 28)을 각각 포함하며, 인터럽트 제어 로직(22, 24, 26, 28)은 테스크 우선순위를 나타내는 테스크 우선순위 표시(task priority designation)를 포함하며, 테스크 우선순위는 인터럽트가 서비스되어지는 프로세서의 우선순위 레벨이다. 일례로서, 테스크 우선순위 표시는 8비트일 수 있다. 전형적으로, 인터럽트의 우선순위가 프로세서의 테스크 우선순위 레지스터에 있는 값보다 낮으면, 프로세서는 인터럽트에 대해 실행하지 않을 것이다.
원격 우선순위 캡쳐 로직(32)은 LPIDA에 유효한 프로세서들(P0, P1, P2, P3)의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드한다. 예를 들어, 테스크 우선순위 데이터는 프로세서들(P0, P1, P2, P3) 중의 하나 또는 그 이상의 테스크 우선순위 표시 중 4개 MSB일 수 있다. 이제까지 사용해왔던 것처럼, "원격"이라는 용어는 프로세서 다이(die)를 의미하지 않는다. 또한, 일실시예에서 원격 우선순위 캡쳐 로직(32)은 LPIDA에 유효하지는 않으나 시스템(10) 상에서 동작하는 프로세서들(P0, P1, P2, P3)의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드한다. 테스크 우선순위 데이터는 후술하는 바와 같이 원격 우선순위 캡쳐 로직(32)에서 조합될 수 있다. 프로세서들(P0, P1, P2, P3) 중의 하나 또는 그 이상의 테스크 우선순위를 나타내는 신호는 프로세서(들)에 의해 프로세서 버스(18)로 제공된다. 엔코드/디코드 로직(36)은 프로세서 버스(18)로부터의 이러한 신호를 디코드하고, 상기 신호에 응답된 신호를 컨덕터(38)를 통해 원격 우선순위 캡쳐 로직(32)으로 제공한다. 프로세서 버스(18), 컨덕터(38) 및 원격 우선순위 캡쳐 로직(32) 상의 상기 신호의 비트들은 서로 일대일로 일치할 필요가 없다. 예를 들어, 상기 비트들은 반전되어졌을 수 있다.
최하위 우선순위 인터럽트 메시지를 포함하는 쓰기 사이클 신호는 컨덕터(46)를 통해 최하위 우선순위 로직(42)에 의해 수신된다. 최하위 우선순위 로직(42)은 인터럽트를 수신하는 프로세서들(P0, P1, P2, P3) 중 어느 하나를 선택하기 위하여 원격 우선순위 캡쳐 로직(32)의 테스크 우선순위 데이터를 이용하는 LPIDA를 수행한다. 중앙 에이전트(central agent)(44)는 엔코드/디코드 로직(36), 원격 우선순위 캡쳐 로직(32) 및 최하위 우선순위 로직(42)을 포함한다. 리다이렉트된 인터럽트 메시지는 컨덕터(48)를 통해 엔코드/디코드 로직(36)으로 제공된다.
프로세서들(P0, P1, P2, P3)은, 전원 투입 시 또는 리셋 시에 지급되는 APIC ID같은 식별 번호를 가진다. 최하위 우선순위 로직(42)은 인터럽트 메시지에게 APIC ID 번호를 제공한다. 인터럽트 메시지는 엔코드/디코드 로직(36)을 통해 프로세서 버스(18) 및 선택된 프로세서로 제공된다. 선택된 프로세서의 엔코드/디코드 로직은 상기 APIC ID 번호를 인식하여 상기 인터럽트 메시지를 통과시킨다. 관련된 비트(예를 들면, APIC ID 번호)와 함께 인터럽트 메시지는 오직 한개, 또는 한 페이즈(phase)나 패킷보다 많게 통과될 것이다.
둘 또는 그 이상의 프로세서들이 동일한 최하위 우선순위를 가진 경우에, 최하위 우선순위 로직(42)은 예를 들어 최상위 또는 최하위 프로세서 APIC ID에 근거하여 프로세서를 선택하거나, 또는 라운드 로빈 베이시스(round robin basis)로 프로세서를 선택할 것이다. 용어 "최하위 우선순위"는 두 개의 서로 다른 우선순위 값보다 많은 값을 요구하지 않는다. 예를 들어, 테스크 우선순위 데이터에 오직 하나의 값이 있으면, 그것은 최하위 우선순위 값이다.
프로세서 버스(18)를 통해 제공되어지는 인터럽트 메시지 또는 다른 인터럽트 신호의 예는 인터럽트 데스티네이션 및 벡터 신호, 인터럽트 긍정응답(acknowledge) 신호, EOI 신호, 프로세서간 인터럽트(interprocessor interrupt, IPI), 다른 제어 신호 또는 이러한 신호들의 조합을 포함한다. 어떤 인터럽트 메시지는 최하위 우선순위 신호가 아니고, 리다이렉트되어지지 않아야 한다.
최하위 우선순위 인터럽트 메시지는 인터럽트 컨트롤러, 다른 회로 소자, 또는 운영 시스템(operating system, OS)에 의해 프로세서 데스티네이션으로 제공된다. 그러한 경우에, 최하위 우선순위 로직(42)은 데스티네이션 리다이렉션을 제공한다. 그러나, 최하위 우선순위 로직(42)에 의해 선택된 데스티네이션은, 원 데스티네이션(orignal destination)이 최하위 우선순위 프로세서이기 때문에 원 데스티네이션과 동일할 것이다. 따라서, 리다이렉션은 다른 다이렉션을 의미하는 것이 아니고 이후 스테이지에 제공되는 다이렉션을 의미한다. 또 다르게, 최하위 우선순위 인터럽트 메시지의 경우에, 프로세서 데스티네이션은 최하위 우선순위 로직(42)에 의해 처음으로 제공되어질 수 있다.
프로세서는 신호를 제공하는 프로세서의 초기 시 또는 외부 로직의 요청 하에서 테스크 우선순위를 나타내는 신호를 프로세서 버스(18)로 제공한다. 예를 들어, 제1 실시예에서 프로세서들(P0, P1, P2, P3)은 테스크 우선순위 표시가 변경될 때마다 그들의 테스크 우선순위 표시를 나타내는 신호를 프로세서 버스(18)로 제공한다. 제2 실시예에서, 프로세서들(P0, P1, P2, P3)은 프로세서가 수신한 최하위 우선순위 인터럽트 메시지에 응답된 최하위 우선순위 로직(42) 또는 인터럽트 컨트롤러로부터의 요청에 따라서 그들의 테스크 우선순위 표시를 나타내는 신호를 제공한다. 제3 실시예에서, 원격 우선순위 캡쳐 로직(32)은 주기적으로 프로세서들의 업데이트를 요청한다. 다른 메카니즘들은 원격 우선순위 캡쳐 로직(32)에서 테스크 우선순위 데이터를 업데이트하는 데 사용되어질 것이다. 운영 시스템 또는 다른 소프트웨어는 상기 업데이트를 다이렉트할 것이다.
도 2를 참조하면, 일례로 프로세서(P0)는 로컬 TPR(LTPR)(54)을 구비한 로컬 APIC(52)를 포함한다. APIC(52)는 인터럽트 제어 로직(22) 내의 구조예이다. 일실시예에서, LTPR(54)는 처음 4개 MSB가 16개 우선순위 클래스를 지정하는 8비트의 테스크 우선순위 표시를 홀드한다. 다른 실시예들에서 LTPR(54)는 8비트보다 더 많거나 더 적은 수의 비트를 가지거나, 상이한 또는 추가의 의미를 가지는 비트를 가질 수 있다. 도 1, 2 및 3을 참조하면, 엔코드/디코드 로직(58)은 예를 들어 LTPR(54)의 4개 MSB를 엔코드/디코드 로직(36)에 의해 디코드되어질 프로세서 버스(18)의 신호로 엔코드하는 엔코드 로직을 포함한다. 이때, 엔코드/디코드 로직(36)은 컨덕터(38)를 통해 디코드된 신호를 원격 우선순위 캡쳐 로직(32)으로 제공한다.
도 2 및 도 3을 참조하면, 원격 우선순위 캡쳐 로직(32)의 일실시예는 원격 테스크 우선순위 레지스터들(RTPR들)(62, 64, 66, 68)을 포함한다. RTPR(62)는 프로세서(P0)의 LTPR(54)에서 지정된 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드한다. RTPR들(64, 66, 68)은 각각, 프로세서(P1, P2, P3)의 LTPR(도시되지 않음)에서 지정된 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드한다.
도 4를 참조하면, 일례로서 RTPR(62)은 프로세서(P0)가 LPIDA에 유효하면, 프로세서(P0)의 LTPR(54)에서 지정된 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하는 4개의 비트(예, 비트 0-3)를 포함한다. RTPR(62)의 이러한 4비트는 LTPR의 4개 MSB와 일치할 필요는 없다. 예를 들어, 상기 비트들은 반전되어졌을 수 있다. 또한, RTPR(42)은 프로세서(P0)가 LPIDA에 유효한 지를 나타내는 1비트(예, 비트 7)를 포함한다. 또한, 특정 실시예에서 RTPR들(64, 66, 68) 각각은, 프로세서들(P1, P2, P3)이 LPIDA에 유효하면 프로세서들(P1, P2, P3) 각각의 LTPR(도시되지 않음)에서 지정된 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하는 4개의 비트를 포함한다. 또한, RTPR들(64, 66, 68)은 프로세서들(P1, P2, P3)이 LPIDA에 유효한 지를 나타내는 인에이블/디스에이블 비트(E/D)를 포함한다. 인에이블/디스에이블 비트는 프로세서가 LPIDA에 유효하다는 것을 나타내는 제1 전압 레벨(예, 논리 하이 전압)에서 인에이블된다. 인에이블/디스에이블 비트는 프로세서가 LPIDA에 유효하지 않다는 것을 나타내는 제2 전압 레벨(예, 논리 로우 전압)에서 디스에이블된다.
비록 RTPR 테스크 우선순위 데이터가 LTPR의 테스크 우선순위 표시와 일치하지 않을지라도, RTPR에서 테스크 우선순위 데이터는 LTPR의 테스크 우선순위 표시를 나타낸다. 예를 들어, 상술된 일실시예에서 RTPR은 대응하는 LTPR의 8비트 테스크 우선순위 표시 중 4개 MSB를 홀드한다. 그러나, 본 발명의 목적을 위하여 8개 비트 중 4개의 MSB는 전체 8개 비트를 나타내는 것으로 고려된다. 4개 MSB는 최하위 우선순위 시맨틱스(semantics)를 얻을 수 있는 만큼 충분히 포괄적이다. 다시말해, 8비트 테스크 우선순위 표시의 4개 LSB는 본 발명의 목적에 대해 문제가 될만큼 중요하지 않다. 물론, RTPR의 테스크 우선순위 데이터는 LTPR의 모든 비트를 포함할 수도 있었다.
더욱이, 구현에 따라서는 테스크 우선순위 표시가 시간에 따라 변화하기 때문에, 테스크 원격 우선순위 캡쳐 로직(32)의 테스크 우선순위 데이터가 LPIDA에 유효한 프로세서들의 실제 테스크 우선순위 표시를 정확히 나타내지 않을 수도 있을 것이다. 그러나, 비록 표시가 항상 완전하지 않거나 LPIDA가 최하위 우선순위를 가진 프로세서를 항상 선택하지 않을 지라도, 이전과 마찬가지로 테스크 우선순위 데이터는 LPIDA에 유효한 프로세서의 테스크 우선순위를 나타낸다. 일실시예에서 인에이블/디스에이블 비트가 디스에이블로 셋되어 LPIDA에 유효하지 않은 프로세서의 경우, RTPR에 있는 테스크 우선순위 데이터는 마치 인에이블/디스에이블 비트가 인에이블로 셋된 것처럼 업데이트된다. 다른 일실시예에서, 테스크 우선순위 데이터는 인에이블/디스에이블 비트가 인에이블로 셋될때까지 업데이트되지 않는다. 마지막에 상술된 실시예에서, 테스크 우선순위 데이터는 LPIDA에 사용되지 않기 때문에 문제가 되지 않음에도 불구하고, 해당 프로세서의 테스크 우선순위를 나타내지 않을 것이다. 이 실시예에서, 4개 비트의 내용은 업데이트되지 않는다. 물론, 프로세서가 시스템으로부터 엑티브(active) 또는 미싱(missing)되지 않기 때문에 LPIDA에 유효하지 않은 프로세서의 경우, 해당 RTPR의 4개 테스크 우선순위 데이터 비트의 내용은 무의미할 것이다.
멀티-프로세서 시스템의 프로세서들 중 한 프로세서가 주어진 APIC ID에서 시스템 내에 존재하지 않으면, 인에이블/디스에이블 비트는 해당 RTPR에서 디스에이블된다. 일실시예 하에서, RTPR의 인에이블/디스에이블 비트는 RTPR이 처음 억세스되었을 때(적절한 프로세서에 의해 업데이트되었을 때) 셋되어야 하고, 한번 셋되면 '콜드(cold)' 리셋 이벤트가 발생할 때까지 셋으로 유지되어야 한다. RTPR은 많은 이벤트 타입에 근거하여 업데이트될 수 있다. 가능한 옵션들 중 두 가지는, (1)다이렉트 바이오스(BIOS)가 RTPR을 억세스하거나, (2)해당 에이전트에 의한 RTPR 업데이트 특정 사이클 트랜잭션(transaction)(도 7과 관련하여 서술되는 예)이 인에이블/디스에이블 비트의 상태를 제어하는 것이다. RTPR의 업그레이드(upgrade)/다운그레이드(downgrade)는 I/O 인터럽트가 시스템으로 들어오기 전, 전원 투입시 자기 검사(Poser-On Self Test, POST)의 결과로서 발생할 것이다. 또한, 프로세서는 인터럽트를 피하기 위하여 최상위 레벨로 자신의 우선순위를 높일 것이다.
도 4의 예시된 예에서, RTPR(62)은 추가 비트(예, 비트 4-6)를 포함한다. 본 발명의 일실시예에서, 추가 비트는 사용되지 않고, 예약되어진다. 본 발명의 다른 실시예에서 상기 비트들 중 하나 또는 그 이상의 비트들은 다양한 목적을 위해 사용되어질 것이다. 그럼에도 불구하고, 다른 실시예에서 RTPR에 추가하는 비트는 없다. 인에이블/디스에이블 기능은 한 비트보다 두 비트로 실행될 것이다.
도 3을 참조하면, 일례로 최하위 우선순위 로직(42)은 버퍼(74) 및 분석 로직(analyzing logic)(76)을 포함할 것이다. 분석 로직(76)은 컨덕터(72)를 통하여 RTPR의 내용을 억세스한다. 분석 로직(76)은 참여하는 RTPR 중 최하위 우선순위를 가진 RTPR을 결정하는 LPIDA를 수행한다(최하위 우선순위의 어떤 관계를 분석하는 것을 포함할 것이다). 선택적인 버퍼(74)는 LPIDA가 완료될 때까지 최하위 우선순위 인터럽트 메시지를 홀드할 것이다. 컨덕터(86) 상의 신호는 APIC ID 번호 또는 선택된 프로세서의 다른 표시를 나타내고, 엔코드/디코드 로직(36)을 통해 버스(18)로 제공된다. APIC ID 번호 또는 다른 표시는 다양한 형태로 버스(18)에 제공될 것이고, 인터럽트 메시지의 다른 정보와 동일하거나 다른 페이즈 또는 패킷일 것이다.
최하위 우선순위 로직(42)은 참여하는 RTPR 중 최하위 값(또는 논리 '1'의 값이 논리 '0'보다 하위의 우선순위일 경우에는 최상위 값)을 가진 RTPR을 결정하는 잘 알려진 다양한 방법 중의 어떤 것을 사용할 것이다. 예를 들어, 최하위 우선순위 로직(42)은 MSB에 논리 '1'을 가진 RTPR을 제외한 후 두 번째 MSB에 논리 '1'을 가진 RTPR을 제거하고, 그 다음 비트들에 대해서도 이와 동일한 방식으로 진행한다. 최하위 우선순위 로직(42)은 결과가 양인지 음인지에 따라 어느 것이 더 큰 가를 보기 위해 값을 빼거나, 다른 다양한 방법들을 사용한다. 상기한 모든 방법들이 아니라면, 대부분 최하위 우선순위 로직(42)은 APIC 시리얼 버스 중재의 경우보다 훨씬 더 빠르게 프로세서를 선택할 것이다.
엔코드/디코드 로직(36) 및 원격 우선순위 캡쳐 로직(32) 사이와, 엔코드/디코드 로직(36) 및 최하위 우선순위 로직(42) 사이에 회로 소자(도 1에 도시되어 있지는 않는)가 있을 수 있다. 원격 우선순위 캡쳐 로직(32) 및 최하위 우선순위 로직(42)은 프로세서 버스 브리지(몇몇 실시예들에서 노스 브리지(North bridge)라 불려지는)내에 존재하도록 요구되는 것은 아니다. 도 5는 중앙 에이전트(44)가 프로세서 브리지(또는 칩셋)(104)에 포함된 시스템(100)을 예시한 것이다. 브리지(104)는 I/O 버스(108)와 거기에 연결된 주변장치들(112A 및 112B) 사이를 인터페이스한다(잘 알려진 주변장치 상호 접속(Peripheral Component Interconnect, PCI) 표준에 따라 인터페이스할 것이다). 주변장치들(112A, 112B)은 다른 버스들에 대해 인터럽트 컨트롤러 또는 브리지를 포함하는 여러 가지 구성요소들을 나타낸다. 브리지(104)는, 본 발명의 특징이 주변장치들 및/또는 운용 시스템 소프트웨어에 대해 명백해지도록 설계될 것이다. 즉, 일실시예 하에서 상기 주변장치 및/또는 운영 시스템은, 프로세서 버스 또는 APIC 시리얼 버스가 프로세서와 브리지 사이를 통신하기 위하여 사용되고 있는 지에 대해 알 필요가 없다.
도 5는 브리지(104)를 구현하는 다양한 방법들 중 하나를 예시한 것이다. I/O 인터럽트 컨트롤러(114)는 잘 알려진 방식에 따라서 구성되거나 또는 본 발명을 위해 특별히 설계되어질 것이다. 인터럽트 컨트롤러(114)는 I/O 인터럽트 요청과 목표로 정해진 요청의 데스티네이션 간의 관계를 제공하는 I/O 리다이렉션 테이블을 포함한다. I/O 리다이렉션 테이블은 엔트리를 식별하는 인터럽트 벡터를 적절한 인터럽트 서비스 루틴을 표시하는 테이블로 제공할 것이다. 인바운드 큐(inbound queue)(12)는 프로세서로 보내지도록 기다리는 인터럽트 요청을 홀드한다. 선택적인 아웃바운드 큐(outbound queue)(126)는 프로세서로부터 통신된 신호를 홀드한다.
도 5의 시스템(100)은 APIC 시리얼 버스를 포함하지 않는다. 도 6을 참조하면, 시스템(170)은 본 발명의 일실시예에 따른 원격 우선순위 캡쳐 로직 및 리다이렉션 로직을 구비한 브리지(174)를 포함한다. 브리지(174)는 인터럽트 메시지를 브리지(174)와 프로세서들(P0, P1, P2, P3) 사이의 프로세서 버스(18) 상으로 통과시킨다. 또한, 시스템(170)은 종래 기술의 APIC 시리얼 버스에 의해 수행되는 동작을 허용하는 APIC 시리얼 버스(178)를 포함한다. 그러므로, 브리지(174)는 프로세서 버스(18) 상의 인터럽트 메시지를 이해하는 프로세서에 의해 사용되고, APIC 시리얼 버스(178) 상의 인터럽트 메시지를 이해하는 프로세서에 의해 사용될 것이다. 프로세서에 따라 프로세서가 가진 직접 인터페이스가 서로 달라야할 것이지만 공통 브리지는 둘 간에 사용되어질 수도 있다.
예시 및 논의된 다양한 브리지는 종래에 잘 알려진 여러 가지의 구성 요소들을 포함할 것이나, 그러한 예시 및 논의가 본 발명을 이해하는 데 필요치 않기 때문에 여기서는 예시 및 논의되지 않는다.
최하위 우선순위 로직(42)은 IPI 메시지와 관련하여 사용되어진다. 예를 들어, 다이렉트하는 프로세서(P0, P1, P2, P3)로부터의 IPI 신호는 브리지(104 또는 170)로 발송된다. 단지 예로서, IPI 메시지는 I/O 버스(108)로 발송된 후, 브리지(104)를 통해 최하위 우선순위 로직(42)에 의해 선택된 프로세서로 다시 다이렉트될 것이다. 또 다르게는, IPI 신호는 인바운드 큐(120)로 직접 발송될 것이다. IPI가 버스(18)에 최초로 제공될 때, IPI의 제1 페이즈에 있는 어드레스 비트(예, Aa3#)는 인터럽트 요청이 프로세서들에 의해 무시되어졌으나, 브리지에 의해 소모되어졌음을 나타내는 제1 전압(예, 하이)으로 셋된다. IPI 요청이 브리지로부터 되돌아왔을 때, 상기 비트는 제2 전압(예, 로우)으로 셋되어서, 상기 선택된(타겟) 프로세서가 IPI를 소모할 것이다.
아래 표 1은 본 발명의 일실시예에서 프로세서 버스(18) 상의 어떤 신호들의 상태의 결과를 요약한 것이다. 여기서, X는 돈 케어(don't care)를 의미하고, Ab5#와 Ab6#는 트랜잭션의 제2 페이즈에 있고, 고정된 전송 모드 동안에 최하위 우선순위 로직(42)은 LPIDA를 수행하지 않으며, 리다이렉트된 전송 모드 동안에 최하위 우선순위 로직(42)이 LPIDA를 수행한다.
Aa3# Ab6#(EXF3#) Ab5#(EXF2#) 인터럽트 트랜잭션 타입
0 0 0 고정된 전송 모드 - 물리적 데스티네이션 모드
0 0 1 고정된 전송 모드 - 논리적 데스티네이션 모드
0 1 X 예약 모드
1 0 0 리다이렉트된 전송 모드 - 물리적 데스티네이션 모드
1 0 1 리다이렉트된 전송 모드 - 논리적 데스티네이션 모드
1 1 0 예약
1 1 1 EOI
인터럽트 메시지의 어드레스 필드에 있는 비트(예, Aa3#)는, 원격 우선순위 캡쳐 로직(32)의 인에이블/디스에이블 비트의 상태에도 불구하고, LPIDA가 특정 인터럽트 메시지에 대해 발생해야만 하는 지를 나타낼 것이다. 리다이렉션 비트라 불리는 이 비트는, 인터럽트 컨트롤러(114) 내 I/O 리다이렉션 테이블의 비트들 [10:8](예, 001)에 대한 최하위 우선순위 엔코딩에 근거하여 연산되어질 것이다.
최하위 우선순위 로직(42)은 물리적 데스티네이션 모드 및 논리적 데스티네이션 모드와 관련하여 사용되어질 것이다. 일실시예의 물리적 데스티네이션 모드 하에서 타겟 프로세서는 유일한 APIC ID에 근거하여 선택되어진다. 따라서, 각 인터럽트는 각각의 유일한 APIC ID 값에 근거하여 주어진 프로세서로 다이렉트될 수 있다. 논리적 데스티네이션 모드 하에서, 타겟 프로세서는 각 APIC로 프로그램된 논리적 ID값에 근거하여 선택된다. 논리적 ID가 프로그램되어지고, 그에 따라 주어진 프로세서에 대해 유일할 필요가 없기 때문에 논리적 ID 값은 목표로 정해질 프로세서의 그룹을 식별할 수 있다. 인터럽트 메시지 비트들(예, Ab5# 및 Ab6#)은 물리적 또는 논리적 데스티네이션 모드가 사용되는 지를 나타낸다. 물리적 데스티네이션 모드에서, 최하위 우선순위 로직(42)은 (원격 우선순위 캡쳐 로직(32)의 인에이블/디스에이블 비트가 프로세서에 대해 인에이블로 셋되었다고 가정하면) 인터럽트를 받는 프로세서처럼 클러스터(cluster) 상의 프로세서들 중에서 어느 것을 선택할 것이다.
논리적 데스티네이션 모드에서, 시스템은 아래와 같이 동작할 것이다. 최하위 우선순위 로직(42) 또는 다른 회로 소자는 인터럽트가 논리적 클러스터 내의 프로세서로 다이렉트되는 지를 결정하기 위하여 논리적 ID를 확인한다. 만약, 인터럽트 메시지가 프로세서 버스(18) 상의 프로세서들 중 하나로 다이렉트되면, 최하위 우선순위 로직(42)은 논리적 ID에 의해 지적된 프로세서의 그룹에서 데스티네이션 프로세서를 결정할 것이다. 프로세서 버스(18) 상에서 다이렉트된 인터럽트는 논리적 ID에 의해 지적된 프로세서의 그룹으로부터 최하위 인터럽트 우선순위를 가진 프로세서로 보내질 것이다. 예를 들어, 4개의 프로세서들이 시스템 내 00xxh(헥사)의 논리적 모드 클러스터 어드레스에 존재한다고 가정한다. 만일, I/O 인터럽트가 호스트 브리지에 도착하고, '00000111'의 논리적 ID를 가지며, 리다이렉트되도록 덧붙여진다면, LPIDA는 P2에서 P0으로 결정되어질 것이다.
도 1은 멀티-프로세서 시스템을 예시한다. 또 다르게, 중앙 에이젼트(44) 또는 브리지(100)는 단일 프로세서와 관련하여서도 사용될 것이다. 이러한 경우의 일실시예에서, 최하위 우선순위 로직(42)은 항상 인터럽트 메시지를 그 단일 프로세서로 보낸다. 일 접근 하에서, 오직 하나의 프로세서가 존재하면 원격 우선순위 캡쳐 로직(32)은 인엑티브(inactive)된다. 다른 접근 하에서는, 원격 우선순위 캡쳐 로직(32)이 엑티브되나, 프로세서에 대응된 RTPR이 유일하게 인에이블된 RTPR이다. 시스템에서 유일한 프로세서는 프로세서의 테스크 우선순위를 나타내는 신호를 제공하거나 제공하지 않을 것이다. 일실시예 하에서, 원격 우선순위 캡쳐 로직(32)의 오직 하나의 인에이블/디스에이블 비트가 셋되면, 최하위 우선순위 로직(42)은 TRP 필드가 무엇이든 지간에 인터럽트를 그 프로세서로 다이렉트할 것이다. 또 다르게는, 원격 우선순위 캡쳐 로직(32)은 오직 하나의 프로세서가 존재하는 것에 관해서 몇몇의 다른 표시를 포함할 수 있다. 오직 하나의 프로세서가 존재할 경우에, 원격 우선순위 캡쳐 로직(32)에 의해 캡쳐된 우선순위는 단지 프로세서가 인터럽트에 대해 유효하다는 것이다.
본 발명의 일실시예에 따라, 인터럽트 메시지는 메모리의 1 메가바이트 공간 내 메모리 어드레스에 할당된다. 4 기가바이트 공간에서, 1 메가바이트 위치는 FEE00000h와 FEEFFFFFh 사이에 있을 수 있다. 상기 메모리 위치는 특정 데스티네이션을 식별하기 위해 사용될 것이다.
일실시예에서, 프로세서들(P0, P1, P2, P3), 엔코드/디코드 로직(36) 및 (선택적인) 운영 시스템은 프로세서들(P0, P1, P2, P3)이 RTPR들(62, 64, 66, 68) 각각에 대해 직접적으로 RTPR 업데이트를 쓰기할 수 있도록 설계된다. 이 실시예에서, RTPR은 I/O 공간으로 취급될 것이다. 또다른 일실시예에서, 프로세서들(P0, P1, P2, P3), 엔코드/디코드 로직(36) 및 (선택적인) 운영 시스템은 프로세서들(P0, P1, P2, P3)이 RTPR들(62, 64, 66, 68)에 대해 직접적으로 RTPR 업데이트를 쓰기할 수 있도록 허용하지 않으나, RTPR을 업데이트하기 위하여 프로세서 버스(18)의 RTPR 업데이트 특정 사이클 트랜잭션을 얼마간 사용한다. 이 다른 실시예의 프로세서는 최근 사용되는 운영 시스템 및 인터럽트 시맨틱스에 특히 적합하다.
도 7을 참조하면, RTPR 업데이트 특정 사이클 트랜잭션의 일실시예는, 2개의 페이즈들(182, 184)을 포함한다. 페이즈(182)는 커맨드 필드(예, 5개 LSB) 및 어드레스 필드(예, 26개의 MSB)를 포함한다. 예로서, 커맨드 필드의 비트 "01000"은 특정 사이클을 나타낸다. 특정 사이클의 경우에, 어드레스 비트는 돈 케어일 것이다. 페이즈(184)는 RTPR 업데이트 사이클을 나타내는 바이트 인에이블 필드(BE)(예, 00001000 또는 08h); 어떤 프로세서가 업데이트를 제공하는 지를 나타내는 프로세서 ID 필드; 프로세서가 LPIDA에 유효한 지를 나타내는 인에이블/디스에이블(E/D) 비트; 및 예를 들어 해당 LTPR의 4개 MSB를 나타내는 TPR 비트를 포함한다. 도 4의 예에서, TPR 비트는 비트 0-3에 위치하고, E/D 비트는 RTPR의 비트 7에 위치할 것이다. 그렇지 않으면, E/D 비트 및 TPR 비트는 8비트 속성 필드(attribute field) 내에 제공되어질 것이다.
원격 우선순위 캡쳐 로직(32)에서 프로세서 ID 필드에 의해 표시된 RTPR에 업데이트를 제공함에 따라서 엔코드/디코드 로직(36)은 페이즈(182)의 커맨드 필드 및 페이즈(184)의 바이트 인에이블 필드에 응답한다. RTPR은 E/D 비트 및/또는 TPR 비트를 나타내는 비트들에 의해 업데이트된다. E/D 비트가 프로세서가 디스에이블된 것을 나타내는 경우에, RTPR은 TPR 비트에 의해 업데이트되거나 되지 않을 것이다. 일실시예에서, E/D 비트가 프로세서가 디스에이블된 것을 나타내는 경우 프로세서는 TPR 비트에 의미있는 테스크 우선순위 데이터를 제공하지 않는다. 다른 실시예에서, 프로세서는 E/D 비트의 상태에도 불구하고 현재 TPR 비트를 제공한다.
도 7의 신호를 통해, 프로세서들(P0, P1, P2, P3) 및 엔코드/디코드 로직(36)은, 업데이트를 감지하는 운영 시스템 없이 RTPR(62, 64, 66, 68)을 에일리어스(alias)하는 하드웨어 어시스트 메카니즘(hardware assist mechanism)을 제공한다. (또 다르게는, 운영 시스템이 업데이트를 감지할 수 있었다.) 다양한 다른 신호의 배치는 도 7에 예시된 것들 대신에 사용될 수 있다. 예를 들어, 모든 정보가 하나의 페이즈에 제공될 수 있다. 또다른 예로서, 페이즈(184)는 한번에 RTPR(62, 64, 66, 68) 중의 하나 이상에 대한 업데이트를 제공할 수 있다. 예시 및 기술된 예에서, RTPR은 프로세서 테스크 우선순위를 나타내기 위해 오직 4 비트를 홀드한다. RTPR이 테스크 우선순위를 나타내기 위하여 각각이 4개 비트보다 많거나 적게 홀드하는 경우에, 페이즈(184)의 TPR 비트는, 대응하는 LTPR의 4개 MSB보다 많거나 적게 나타낼 것이다.
추가 정보 및 실시예들
명세서는 잘 알려진 구성요소들, 특징들, 및 컨덕터들과, 본 발명을 이해하는데 필요하지 않은 논의 및 본 발명을 모호하게 만들 수 있는 내용을 기술하거나 예시하지 않는다. 그러므로, 본 발명의 일실시예를 구성함에 있어서, 실시예로부터 다른 실시예로 변화시키기 위한 다양한 설계의 절충(tradeoffs) 및 선택(choices)이 있어야할 것이다. 실제로, 예시 및 예시되지 않은 구성요소를 구현하는 여러 가지 방법들이 있다.
도면에서 박스의 경계는 예시적인 목적을 위한 것이고, 겹쳐질 수 있는 구성요소의 범위를 제한하지 않는다. 예시적인 구성요소의 상대적인 크기는 실제 상대적인 크기를 암시하지 않는다. 화살표는 일실시예에서의 원칙적인 데이터 플로우를 보여주나, 데이터 플로우에 대한 요청처럼 모든 신호를 보여주는 것은 아니다. 이러한 이유로 여기서 사용된 "논리"라는 것은 소프트웨어 컨트롤이 포함될 수 없는 것을 의미하지 않는다. 용어 "컨덕터"는 광범위하게 해석될 수 있도록 의도되어지고, 비록 그것이 얼마간의 절연적인 성질을 가지더라도 전도하는 장치를 포함한다. 예시된 구성요소와 컨덕터 사이에 중간 구성요소 또는 컨덕터가 존재할 수도 있을 것이다.
구(句) "일실시예에서"는 상기 구에 따르는 특정한 특징, 구조, 또는 성질이 적어도 본 발명의 일실시예에 포함되고, 본 발명의 일실시예보다 많은 실시예들에 포함될 것임을 의미한다. 또한, 명세서의 여러 군데에서 나타나는 구 "일실시예에서"는 반드시 동일한 일실시예를 모두 참조하는 것은 아니다.
최하위 우선순위 로직(42)은 다수 노드를 거쳐 인터럽트를 다이렉트(또는 리다이렉트)할 것이다.
프로세서는 다른 종류의 테스크를 위해 많은 우선순위를 가질 수 있고, 원격 우선순위 캡쳐 로직 및 최하위 우선순위 로직은 상기 서로 다른 우선순위를 고려할 것이다.
엔코드/디코드 로직(36)의 엔코드 및 디코드 로직은 물리적으로 연결 또는 분리될 것이다. 엔코드/디코드 로직(58)의 엔코드 및 디코드 로직은 물리적으로 연결 또는 분리될 것이다.
단일 칩 내 멀티프로세서 시스템을 위해 상기 칩 내에 인터럽트 캡쳐 로직 및 최하위 우선순위 로직이 있을 수 있다.
용어 "연결된" 및 "결합된"과, 이에 관련된 용어는 동작적인 의미로 사용되어지고, 반드시 직접 연결 또는 결합으로 제한되는 것은 아니다. 만약, 명세서가 구성요소 또는 특징을 가지거나 포함되어지도록 하기 위해 "일 것이다.", "할 수 있다.", "할 수 있었다." 또는 "더 좋다"로 상술하면, 특정 구성요소 또는 특징이 성질을 가지거나 포함되도록 요구되는 것은 아니다. 용어 "응답된"은 완전히 또는 부분적으로 응답되는 것을 포함한다.
본 명세서의 이점을 가지는 본 분야의 기술자들은, 전술한 설명 및 도면들로부터 많은 다른 변화들이 본 발명의 범위 내에서 만들어질 수 있다는 것을 알 수 있을 것이다. 따라서, 아래의 청구범위들은 본 발명의 범위를 정의하는 것으로부터의 어떠한 변경들도 포함한다.

Claims (24)

  1. 컴퓨터 시스템과 관련하여 사용하기 위한 장치에 있어서,
    최하위 우선순위 인터럽트 데스티네이션 중재(LPIDA)에 유효한 상기 컴퓨터 시스템에서 각 프로세서의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하기 위한 원격 우선순위 캡쳐 로직; 및
    상기 원격 우선순위 캡쳐 로직의 내용에 따라 인터럽트 메시지를 수신할 상기 컴퓨터 시스템의 프로세서를 선택하기 위하여 상기 LPIDA를 수행하는 최하위 우선순위 로직
    을 포함하는 장치.
  2. 제 1 항에 있어서,
    상기 컴퓨터 시스템은,
    오직 하나의 프로세서를 포함하는 장치.
  3. 제 1 항에 있어서,
    상기 컴퓨터 시스템은,
    다수의 프로세서들을 포함하고,
    LPIDA에 대한 상기 프로세서들의 유효함이 시간에 따라 변화되는 장치.
  4. 제 1 항에 있어서,
    상기 원격 우선순위 캡쳐 로직은 LPIDA에 유효하지 않는 상기 컴퓨터 시스템 내 각 프로세서의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하나,
    상기 최하위 우선순위 로직은 오직 LPIDA에 유효한 프로세서에 대응하는 상기 테스크 우선순위 데이터만을 고려하는
    장치.
  5. 제 1 항에 있어서,
    상기 원격 우선순위 캡쳐 로직은,
    프로세서가 상기 LPIDA에 유효한 지를 나타내는 인에이블/디스에이블 비트
    를 포함하는 장치.
  6. 제 1 항에 있어서,
    상기 원격 우선순위 캡쳐 로직은,
    인에이블/디스에이블 비트
    를 포함하는 장치.
  7. 제 6 항에 있어서,
    상기 원격 우선순위 캡쳐 로직은 테스크 우선순위 데이터를 홀드할 수 있으나, 상기 컴퓨터 시스템이 오직 하나의 프로세서를 가지는 경우에 실제 테스크 우선순위 데이터를 홀드하지 않으며,
    상기 최하위 우선순위 로직은 최하위 우선순위 데이터를 수행할 수 있고, 상기 인에이블/디스에이블 비트의 상태에 따라 상기 프로세서를 선택하는,
    장치.
  8. 제 1 항에 있어서,
    상기 장치는,
    브리지인 장치.
  9. 제 1 항에 있어서,
    상기 최하위 우선순위 로직은,
    인터럽트 리다이렉션을 수행하기 위하여 상기 LPIDA를 사용하는,
    장치.
  10. 제 1 항에 있어서,
    상기 인터럽트 메시지를 제공하는 인터럽트 컨트롤러
    를 더 포함하는 장치.
  11. 프로세서와 관련하여 사용하기 위한 장치에 있어서,
    상기 프로세서가 최하위 우선순위 인터럽트 데스티네이션 중재(LPIDA)에 유효한 동안에 상기 프로세서의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하기 위한 원격 우선순위 캡쳐 로직; 및
    상기 원격 우선순위 캡쳐 로직의 내용에 따라 인터럽트 메시지를 수신할 상기 프로세서를 선택하기 위하여 상기 LPIDA를 수행하는 최하위 우선순위 로직
    을 포함하는 장치.
  12. 제 11 항에 있어서,
    상기 프로세서는,
    상기 최하위 우선순위 로직에 결합된 유일한 프로세서이고,
    최하위 우선순위 로직은,
    상기 인터럽트 메시지를 수신할 상기 프로세서를 항상 선택하는
    장치.
  13. 제 11 항에 있어서,
    상기 원격 우선순위 캡쳐 로직은,
    프로세서가 상기 LPIDA에 유효한 지를 나타내는 인에이블/디스에이블 비트
    를 포함하는 장치.
  14. 프로세서와 관련하여 사용하기 위한 장치에 있어서,
    프로세서가 인터럽트를 받기 위해 유효하다는 표시를 홀드하기 위한 원격 우선순위 캡쳐 로직; 및
    상기 원격 우선순위 캡쳐 로직의 내용에 따라 인터럽트 메시지를 수신할 상기 프로세서를 선택하는 최하위 우선순위 로직
    을 포함하는 장치.
  15. 제 14 항에 있어서,
    상기 표시는,
    상기 프로세서에 대응되는 인에이블/디스에이블 비트의 세팅인
    장치.
  16. 멀티-프로세서 시스템의 프로세서들과 관련하여 사용하기 위한 장치에 있어서,
    최하위 우선순위 인터럽트 데스티네이션 중재(LPIDA)에 유효한 상기 프로세서들의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하기 위한 원격 우선순위 캡쳐 로직; 및
    상기 프로세서들 중 상기 원격 우선순위 캡쳐 로직의 내용에 따라 인터럽트 메시지를 수신할 프로세서를 선택하기 위하여 상기 LPIDA를 수행하는 최하위 우선순위 로직
    을 포함하는 장치.
  17. 멀티-프로세서 시스템에 있어서,
    프로세서들;
    상기 프로세서들에 결합된 프로세서 버스;
    상기 프로세서들이 최하위 우선순위 인터럽트 데스티네이션 중재(LPIDA)에 대해 유효한 동안에 상기 프로세서들의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하기 위한 원격 우선순위 캡쳐 로직; 및
    상기 프로세서들 중 상기 원격 우선순위 캡쳐 로직의 내용에 따라 인터럽트 메시지를 수신할 프로세서를 선택하기 위하여 상기 LPIDA를 수행하며, 상기 인터럽트 메시지는 상기 프로세서 버스를 통해 상기 프로세서로 제공되는 최하위 우선순위 로직
    을 포함하는 멀티-프로세서 시스템.
  18. 제 17 항에 있어서,
    상기 인터럽트 메시지를 제공하는 인터럽트 컨트롤러를 더 포함하고,
    상기 최하위 우선순위 로직은 LPIDA를 통해 인터럽트 데스티네이션 리다이렉션을 제공하는 멀티-프로세서 시스템.
  19. 제 17 항에 있어서,
    상기 프로세서들 중 적어도 하나는,
    상기 프로세서들 중 적어도 다른 하나가 LPIDA에 대해 유효하지 않는 시간 동안에 LPIDA에 대해 유효한
    멀티-프로세서 시스템.
  20. 제 17 항에 있어서,
    상기 원격 우선순위 캡쳐 로직은,
    상기 테스크 우선순위 데이터를 홀드하는 원격 테스크 우선순위 레지스터들(RTPR들)
    을 포함하는 멀티-프로세서 시스템.
  21. 제 17 항에 있어서,
    RTPR의 수는,
    상기 프로세서들의 수를 초과하는
    멀티-프로세서 시스템.
  22. 멀티-프로세서 시스템에 있어서,
    프로세서들;
    상기 프로세서들에 결합된 프로세서 버스;
    상기 프로세서 버스에 결합된 엔코드/디코드 로직;
    상기 프로세서들이 최하위 우선순위 인터럽트 데스티네이션 중재(LPIDA)에 대해 유효한 동안에 상기 프로세서들의 테스크 우선순위를 나타내는 테스크 우선순위 데이터를 홀드하기 위한 원격 우선순위 캡쳐 로직; 및
    LPIDA에 대해 유효한 상기 프로세서들 중 상기 원격 우선순위 캡쳐 로직의 내용에 따라 인터럽트 메시지를 수신할 프로세서를 선택하기 위하여 상기 LPIDA를 수행하며, 상기 인터럽트 메시지는 상기 엔코드/디코드 로직과 상기 프로세서 버스를 통해 상기 선택된 프로세서로 제공되는 최하위 우선순위 로직
    을 포함하는 멀티-프로세서 시스템.
  23. 제 22 항에 있어서,
    상기 최하위 우선순위 로직은,
    상기 선택된 프로세서를 나타내는 신호를 상기 인터럽트 메시지로 제공하는 멀티-프로세서 시스템.
  24. 제 22 항에 있어서,
    상기 인터럽트 메시지를 제공하는 인터럽트 컨트롤러를 더 포함하고,
    상기 최하위 우선순위 로직은 LPIDA를 통해 인터럽트 데스티네이션 리다이렉션을 제공하는 멀티-프로세서 시스템.
KR10-2000-7006298A 1997-12-10 1998-11-02 인터럽트 데스티네이션 리다이렉션을 수행하는 메카니즘 KR100380198B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/988,233 US6418496B2 (en) 1997-12-10 1997-12-10 System and apparatus including lowest priority logic to select a processor to receive an interrupt message
US08/988,233 1997-12-10
US8/988,233 1997-12-10

Publications (2)

Publication Number Publication Date
KR20010032953A true KR20010032953A (ko) 2001-04-25
KR100380198B1 KR100380198B1 (ko) 2003-04-11

Family

ID=25533952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7006298A KR100380198B1 (ko) 1997-12-10 1998-11-02 인터럽트 데스티네이션 리다이렉션을 수행하는 메카니즘

Country Status (8)

Country Link
US (1) US6418496B2 (ko)
EP (1) EP1038231B1 (ko)
KR (1) KR100380198B1 (ko)
CN (1) CN1199115C (ko)
AU (1) AU1376199A (ko)
DE (1) DE69833503T2 (ko)
TW (1) TW416038B (ko)
WO (1) WO1999030243A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US6652283B1 (en) * 1999-12-30 2003-11-25 Cerego, Llc System apparatus and method for maximizing effectiveness and efficiency of learning retaining and retrieving knowledge and skills
US6754754B1 (en) * 1999-12-30 2004-06-22 Intel Corporation Apparatus and method for end of interrupt handling
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6816916B1 (en) * 2000-06-29 2004-11-09 Emc Corporation Data storage system having multi-cast/unicast
US7024509B2 (en) * 2000-08-31 2006-04-04 Hewlett-Packard Development Company, L.P. Passive release avoidance technique
DE10048732A1 (de) * 2000-09-29 2002-04-18 Philips Corp Intellectual Pty Multiprozessor-Anordnung
US20020099893A1 (en) * 2001-01-24 2002-07-25 Nguyen Tuyet-Huong Thi System and method for the handling of system management interrupts in a multiprocessor computer system
US6591358B2 (en) * 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
US6848015B2 (en) * 2001-11-30 2005-01-25 Hewlett-Packard Development Company, L.P. Arbitration technique based on processor task priority
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US8386648B1 (en) 2003-06-26 2013-02-26 Nvidia Corporation Hardware support system for accelerated disk I/O
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US7426728B2 (en) * 2003-09-24 2008-09-16 Hewlett-Packard Development, L.P. Reducing latency, when accessing task priority levels
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
JP4241462B2 (ja) * 2004-03-26 2009-03-18 株式会社デンソー 制御ユニットおよびマイクロコンピュータ
US20050228851A1 (en) * 2004-03-29 2005-10-13 Intel Corporation Configuration of redirection tables
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
JP4148223B2 (ja) * 2005-01-28 2008-09-10 セイコーエプソン株式会社 プロセッサおよび情報処理方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
JP4457047B2 (ja) * 2005-06-22 2010-04-28 株式会社ルネサステクノロジ マルチプロセッサシステム
US20070088874A1 (en) * 2005-10-14 2007-04-19 Hewlett-Packard Development Company, L.P. Offload engine as processor peripheral
US7519752B2 (en) * 2006-02-07 2009-04-14 International Business Machines Corporation Apparatus for using information and a count in reissuing commands requiring access to a bus and methods of using the same
JP5243711B2 (ja) * 2006-11-10 2013-07-24 セイコーエプソン株式会社 プロセッサ
US8032681B2 (en) * 2007-09-06 2011-10-04 Intel Corporation Processor selection for an interrupt based on willingness to accept the interrupt and on priority
US8190864B1 (en) * 2007-10-25 2012-05-29 Oracle America, Inc. APIC implementation for a highly-threaded x86 processor
JP2009251802A (ja) * 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
US9032128B2 (en) * 2008-04-28 2015-05-12 Hewlett-Packard Development Company, L.P. Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared memory multi-processor systems
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
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
US8103816B2 (en) * 2008-10-28 2012-01-24 Intel Corporation Technique for communicating interrupts in a computer system
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US8151027B2 (en) * 2009-04-08 2012-04-03 Intel Corporation System management mode inter-processor interrupt redirection
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
US8352804B2 (en) * 2010-05-20 2013-01-08 Infineon Technologies Ag Systems and methods for secure interrupt handling
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US8972642B2 (en) * 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor
US9043521B2 (en) 2012-11-13 2015-05-26 Intel Corporation Technique for communicating interrupts in a computer system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
US5410710A (en) * 1990-12-21 1995-04-25 Intel Corporation Multiprocessor programmable interrupt controller system adapted to functional redundancy checking processor systems
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
ATE245290T1 (de) 1994-05-31 2003-08-15 Advanced Micro Devices Inc Unterbrechungssteuerungsgeräte in symmetrischen mehrprozessorsystemen
US5721931A (en) * 1995-03-21 1998-02-24 Advanced Micro Devices Multiprocessing system employing an adaptive interrupt mapping mechanism and method
DE69735575T2 (de) * 1996-08-20 2006-08-24 Compaq Computer Corp., Houston Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
US5819095A (en) * 1996-12-20 1998-10-06 International Business Machines Corporation Method and apparatus for allowing an interrupt controller on an adapter to control a computer system

Also Published As

Publication number Publication date
CN1199115C (zh) 2005-04-27
DE69833503D1 (de) 2006-04-20
EP1038231A1 (en) 2000-09-27
DE69833503T2 (de) 2006-08-10
CN1284183A (zh) 2001-02-14
US20010052043A1 (en) 2001-12-13
WO1999030243A1 (en) 1999-06-17
US6418496B2 (en) 2002-07-09
KR100380198B1 (ko) 2003-04-11
EP1038231A4 (en) 2001-01-17
AU1376199A (en) 1999-06-28
EP1038231B1 (en) 2006-02-15
TW416038B (en) 2000-12-21

Similar Documents

Publication Publication Date Title
KR100380198B1 (ko) 인터럽트 데스티네이션 리다이렉션을 수행하는 메카니즘
KR100380197B1 (ko) 인터럽트 데스티네이션 리다이렉션 및 레벨 트리거인터럽트 시맨틱스를 지원하는 트랜잭션
US4449183A (en) Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
US7096292B2 (en) On-chip inter-subsystem communication
US6401153B2 (en) Mechanisms for converting interrupt request signals on address and data lines to interrupt message signals
US7257658B2 (en) Message based interrupt table
WO1999056217A1 (en) Interrupt controller
US6263395B1 (en) System and method for serial interrupt scanning
US6681281B1 (en) System and method for implementing a multi-level interrupt scheme in a computer system
US6836812B2 (en) Sequencing method and bridging system for accessing shared system resources
US6598104B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
US6766386B2 (en) Method and interface for improved efficiency in performing bus-to-bus read data transfers
US6629178B1 (en) System and method for controlling bus access for bus agents having varying priorities
US5968144A (en) System for supporting DMA I/O device using PCI bus and PCI-PCI bridge comprising programmable DMA controller for request arbitration and storing data transfer information
US5933613A (en) Computer system and inter-bus control circuit
JPS6237428B2 (ko)
US20030065862A1 (en) Computer system and method for communications between bus devices
US6374321B2 (en) Mechanisms for converting address and data signals to interrupt message signals
US6282144B1 (en) Multi-ported memory with asynchronous and synchronous protocol
US5717931A (en) Method and apparatus for communicating between master and slave electronic devices where the slave device may be hazardous
US6940311B2 (en) Data transmission system
JPH09153009A (ja) 階層構成バスのアービトレーション方法
US20010005870A1 (en) External bus control system
JP2990800B2 (ja) 割込み処理装置
JPH0216667A (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: 20120323

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee