KR100634248B1 - 이벤트 전달 - Google Patents

이벤트 전달 Download PDF

Info

Publication number
KR100634248B1
KR100634248B1 KR1020057007653A KR20057007653A KR100634248B1 KR 100634248 B1 KR100634248 B1 KR 100634248B1 KR 1020057007653 A KR1020057007653 A KR 1020057007653A KR 20057007653 A KR20057007653 A KR 20057007653A KR 100634248 B1 KR100634248 B1 KR 100634248B1
Authority
KR
South Korea
Prior art keywords
event
processor
chipset
virtual wire
pin
Prior art date
Application number
KR1020057007653A
Other languages
English (en)
Other versions
KR20050052547A (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 KR20050052547A publication Critical patent/KR20050052547A/ko
Application granted granted Critical
Publication of KR100634248B1 publication Critical patent/KR100634248B1/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Saccharide Compounds (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Alarm Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

이벤트 전달을 위한 머신 판독가능 매체, 방법 및 장치가 설명된다. 일부 실시예에서, 이벤트에 응답하여 가상 와이어 메시지가 생성된다. 가상 와이어 메시지는 목적지 및 메시지 타입 정보를 제공하는 헤더를 포함할 수 있다. 가상 와이어 메시지는 하나 이상의 이벤트에 대한 상태 정보를 제공하는 페이로드를 더 포함할 수 있다.
이벤트 전달, 페이로드, 가상 와이어 메시지, 프로세서, 칩셋

Description

이벤트 전달{EVENT DELIVERY}
프로세서 및 칩셋은 통상적으로 이벤트 신호를 이용하여 서로에게 이벤트를 통지한다. 이벤트 신호를 지원하기 위해, 프로세서 및 칩셋은 이벤트 신호를 전송하고 수신하기 위한 핀을 포함한다. 그러나, 이벤트 신호를 아예 없애거나 그 수를 줄여야 하는 다양한 개별적 이유들이 존재한다. 이벤트 신호를 없애거나 그 수를 줄여야 하는 이유 중 하나는 이벤트 신호를 수신하고 전송하기 위한 핀과 관련된 제조 비용을 줄이기 위함이다. 프로세서 및 칩셋은 패키지나 패드 제약으로 인해 핀-제한형(pin-limited)이 되는 경향이 있다. 프로세서 또는 칩셋의 다이가 패드-제한형인 경우, 가외의 패드를 사용한다는 것은 다이 크기의 직접적인 증가를 가져오게 된다. 다이가 코어-제한형인 경우라도, 패드를 해제(freeing the pad)할 경우 그 패드를 전원이나 그라운드로 이용할 수 있게 되므로, 따라서 패키지의 전기적 특성을 개선하게 된다.
또 다른 이유는 이벤트 신호의 라우팅이 단일-프로세서 환경(uni-processor environments)에서도 어렵고 멀티-프로세서 환경(multi-processor environments)에서는 더욱 어렵다는 점이다. 이벤트 신호 라인의 물리적 라우팅은 종종 마더보드의 크기를 제한한다. 이벤트 신호 및 대응하는 이벤트 신호 라인의 수를 줄이는 것은 보드 크기를 줄이는데 도움이 된다. 이벤트 신호를 없애거나 줄이려는 또 다 른 이유는 이벤트 신호를 지원하는 풀업 저항기 및 전력 평면(power plane)과 관련된 비용을 줄이기 위한 것이다. 칩셋과 프로세서간의 전압차로 인하여, 칩셋은 일반적으로 그 서로 다른 전압 도메인간의 레거시(legacy) 이벤트 신호를 지원하기 위해서 외부적 풀-업 저항기나 가외의 전력 평면을 필요로 한다. 레거시 이벤트 신호를 제거할 경우 풀업 저항기를 없애거나 그 수를 줄임으로써 전력을 절감하거나 칩셋 상의 전력 평면의 수를 줄일 수 있다.
이벤트 신호를 없애려는 또 다른 이유는 이들 이벤트 신호를 없앨 경우 테스트가 용이해진다는 점이다. 프로세서와 칩셋은 서로 다른 클럭 주파수를 이용하므로, 일반적으로 프로세서의 관점에서는 레거시 이벤트 신호가 비동기적이었다. 이와 같은 이벤트 신호의 비동기적 특성으로 인하여 플랫폼 유효성 검사(validate)에 있어서 보다 비용이 덜 들면서도 결정적인 테스트 기술을 이용하는 것이 곤란해진다.
본 명세서에 기재된 발명은 예시적으로 개시된 것이고 첨부된 도면에 의하여 제한하려는 것이 아니다. 설명을 간단하고 명료하게 하기 위해, 도면에 개시된 요소들은 반드시 축척으로 도시된 것은 아니다. 예를 들어, 명확성을 위하여 일부 요소들의 치수가 다른 요소들에 비해 과장될 수도 있다. 또한, 적절하다고 생각될 경우에는, 여러 도면에 걸쳐 대응하거나 동일한 요소를 나타내기 위하여 참조 레이블이 반복 사용되었다.
도 1은 컴퓨팅 디바이스의 일 실시예를 도시한 도면,
도 2는 도 1에 도시된 컴퓨팅 디바이스의 성능 레지스터(capabilities regigter)의 일 실시예를 도시한 도면,
도 3은 도 1에 도시된 컴퓨팅 디바이스의 선택 레지스터의 일 실시예를 도시한 도면,
도 4는 도 1에 도시된 컴퓨팅 디바이스의 인터럽트 메시지의 일 실시예를 도시한 도면,
도 5는 도 1에 도시된 컴퓨팅 디바이스의 가상 와이어 메시지의 일 실시예를 도시한 도면,
도 6은 도 1에 도시된 컴퓨팅 디바이스의 초기화 방법의 일 실시예를 도시한 도면,
도 7은 도 1에 도시된 컴퓨팅 디바이스의 이벤트 전달 방법의 일 실시예를 도시한 도면.
다음의 설명에서는 컴퓨팅 디바이스에서 이벤트 신호를 없애거나 줄이는 것을 가능하게 하는 이벤트 전달 기법에 관하여 개시한다. 이하의 설명에서는, 본 발명에 관한 보다 완전한 이해를 제공하기 위하여, 논리 구현(logic implementations), op코드, 오퍼랜드를 지정하는 수단, 리소스 분할(partitioning)/공유(sharing)/중복(duplication) 구현, 시스템 컴포넌트들의 타입 및 상호관계, 그리고 논리 분할/통합(integration) 선택 등과 같은 다수의 특정적 세부사항들에 관하여 설명한다. 그러나, 본 발명은 그와 같은 특정적 세부사항을 배제하고도 실시될 수 있다. 또한, 본 발명을 모호하게 하지 않도록 제어 구조, 게이트 레벨 회로 및 전체 소프트웨어 명령 시퀀스는 개시하지 않았다.
명세서에서 "하나의 실시예(one embodiment)", "일 실시예(an embodiment)", "예시적 일 실시예(an example embodiment)"라고 기재한 것은 그 기재된 실시예가 특정한 특징, 구조 또는 특성을 포함할 수 있지만, 모든 실시예가 반드시 그 특정한 특징, 구조 또는 특성을 포함해야 하는 것은 아니라는 것을 나타낸다. 또한, 그와 같은 문구가 꼭 동일한 실시예를 지칭하는 것은 아니다. 또한, 일 실시예와 관련하여 특정한 특징, 구조 또는 특성이 개시된 경우에는, 명시적으로 개시되었는지와 관계없이 당업자의 지식 범위 내에서 기타 다른 실시예와 관련해서도 그러한 특징, 구조 또는 특성을 이용할 수 있다고 말할 수 있다.
본 발명의 실시예들은 하드웨어, 펌웨어, 소프트웨어 또는 이들로 구성된 임의의 조합으로 구현될 수 있다. 본 발명의 실시예들은, 하나 이상의 프로세서에 의해 판독되고 실행가능한 머신-판독가능 매체 상에 저장된 명령어들로서 구현될 수 있다. 머신-판독가능 매체는 머신(예를 들면, 컴퓨팅 디바이스)에 의해 판독가능한 형태로 정보를 저장하거나 송신하기 위한 임의의 메커니즘을 포함할 수 있다. 예를 들어, 머신-판독가능 매체에는 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스, 전기, 광학, 음향 또는 기타 다른 형태의 전파 신호(예를 들면, 반송파, 적외선 신호, 디지털 신호 등) 등이 포함될 수 있다.
컴퓨팅 디바이스(100)의 예시적 실시예가 도 1에 도시되어 있다. 컴퓨팅 디바이스(100)는 프로세서 버스(106)를 통해 칩셋(104)에 연결된 프로세서(102)를 포 함한다. 일 실시예에서는, 프로세서(102)의 하나 이상의 핀(110)과 칩셋(104)의 하나 이상의 핀(112) 사이에 연결된 이벤트 신호 라인(108)을 통해 프로세서(102)가 칩셋(104)에 연결될 수도 있다.
프로세서(102)는 프로세서 버스(106) 상에 트랜잭션을 발행하거나 그로부터 트랜잭션을 수신하는 프로세서 버스 인터페이스(114)를 포함할 수 있다. 일 실시예에서, 프로세서 버스 인터페이스(114)는 하나 이상의 이벤트 발생을 나타내는 가상 와이어 메시지(virtual wire message)를 프로세서 버스(106) 상에 발행하거나 그로부터 수신할 수 있다. 또한, 프로세서 버스 인터페이스(114)는 하나 이상의 인터럽트 이벤트 발생을 나타내는 인터럽트 메시지를 프로세서 버스(106) 상에 발행하거나 그로부터 수신할 수 있다.
프로세서(102)는 또한 프로세서 버스 인터페이스(114)를 통해 프로세서 버스(106)에 연결되고 하나 이상의 프로세서 핀(110)을 통해 이벤트 신호 라인(108)에 연결된 이벤트 핸들러(116)를 포함할 수 있다. 이벤트 핸들러(116)는 칩셋(104)에 대하여 프로세서(102)에 의해서 생성되거나 검출된 이벤트를 통보할 수 있다. 또한, 이벤트 핸들러(116)는 칩셋(104)에 의해서 생성되거나 검출된 이벤트를 수신할 수도 있다.
일 실시예에서, 이벤트 핸들러(116)는 칩셋(104)으로 전송할 가상 와이어 메시지를 생성하는 가상 와이어 메시지 유닛(118)을 포함한다. 가상 와이어 메시지 유닛(118)은 또한 칩셋(104)으로부터 수신된 가상 와이어 메시지를 디코딩할 수 있다. 가상 와이어 메시지 유닛(118)은 프로세서 버스(106) 및 프로세서 버스 인터 페이스(114)를 통해 가상 와이어 메시지를 전송 또는 수신할 수 있다. 또 다른 실시예에서, 가상 와이어 메시지 유닛(118)은 프로세서 버스(106)와는 별개인 가상 와이어 메시지 버스(도시되지 않음)를 통해 가상 와이어 메시지를 전송 또는 수신할 수 있다.
프로세서(102)의 이벤트 핸들러(116)는 인터럽트 제어기(120)를 더 포함한다. 인터럽트 제어기(120)는 칩셋(104)으로 전송할 인터럽트 메시지를 생성하고, 칩셋(104)으로부터 수신된 인터럽트 메시지를 디코딩할 수 있다. 일 실시예에서, 인터럽트 제어기(120)는 프로세서 버스(106) 및 프로세서 버스 인터페이스(114)를 통해 인터럽트 메시지를 전송 또는 수신할 수 있다. 또 다른 실시예에서, 인터럽트 제어기(120)는 하나 이상의 프로세서 핀(110)과 관련 이벤트 신호 라인(108)을 통해 인터럽트 메시지를 전송 또는 수신할 수 있다.
프로세서(102)의 이벤트 핸들러(116)는 하나 이상의 이벤트 레지스터(122)를 더 포함할 수 있다. 일 실시예에서, 프로세서 이벤트 레지스터(122)는 성능 레지스터(124), 선택 레지스터(126), 상태 레지스터(128) 및 제어 레지스터(130)를 포함할 수 있다. 프로세서 성능 레지스터(124)는 지원되는 프로세서(102) 이벤트 핸들링 성능을 나타낼 수 있다. 예를 들어, 프로세서 성능 레지스터(124)는 그 프로세서(102)가 가상 와이어 메시지, 인터럽트 메시지 및 프로세서 핀(110)과 관련된 이벤트 신호를 통하여 제1 이벤트(예를들면, INTR 이벤트)를 핸들링하고, 가상 와이어 메시지 및 프로세서 핀(110)과 관련된 이벤트 신호를 통하여 제2 이벤트(예를 들면, FERR# 이벤트)를 핸들링하며, 프로세서 핀(110)과 관련된 이벤트 신호를 통 하여 제3 이벤트(예를 들면, INIT 이벤트)를 핸들링하는 기능을 지원함을 나타낼 수 있다.
프로세서 이벤트 레지스터(122) 중의 선택 레지스터(126)는 관련된 이벤트들에 대한 전달 메커니즘을 선택하는데 이용될 수 있다. 예를 들어, 인터럽트 메시지를 통한 제1 이벤트(예를 들면, INTR 이벤트) 전달, 가상 와이어 메시지를 통한 제2 이벤트(예를 들면, FERR# 이벤트) 전달, 그리고 프로세서 핀(110)(예를 들면, INIT 핀)과 관련된 이벤트 신호를 통한 제3 이벤트(예를 들면, INIT 이벤트) 전달을 선택하는데 선택 레지스터(126)가 이용될 수 있다.
프로세서(102)의 상태 레지스터(128) 및 제어 레지스터(130)는 각각 이벤트 상태 및 이벤트 제어를 제공한다. 일 실시예에서, 프로세서(102)의 상태 레지스터(128)는 어느 이벤트가 어서트되는지(asserted)(계류 중인지) 그리고 어느 이벤트가 디어서트는지(deasserted)(계류 중이 아닌지)를 나타낼 수 있다. 프로세서(102)의 제어 레지스터(130)는 이벤트를 인에이블시키거나 디스에이블시키는데 이용될 수 있다. 또한, 제어 레지스터(130)를 이용하여 이벤트를 레벨 트리거형 또는 에지 트리거형으로 정의할 수 있다. 일 실시예에서, 제어 레지스터(130)는 이벤트를 레벨 트리거형 또는 에지 트리거형으로 각각 정의하는 기능을 지원할 수 있다.
이제 칩셋(104)을 참조하면, 이와 같은 칩셋(104)은 일반적으로 그 칩셋(104)을 포함하는 하나 이상의 패키지형 집적 회로 디바이스 또는 칩을 통하여 프로세서(102)를 메모리(132) 및 기타 컴포넌트(134)(예를 들면, 마우스, 키보드, 비 디오 제어기, 하드 디스크, 플로피 디스크, 펌웨어 등)와 상호 접속시킬 수 있다. 일 실시예에서, 칩셋(104)은 메모리 버스(138)를 통해서 메모리(132)에 연결된 메모리 제어기(136)를 포함할 수 있다. 메모리 제어기(136)는 컴퓨팅 디바이스(100)의 프로세서(102) 및 기타 다른 컴포넌트(134)에 대해 메모리(132) 저장 위치(storage locations)(132)로의 액세스를 제공한다. 메모리(132)에는, 메모리 제어기(136)가 데이터를 판독하고 기록할 수 있는 어드레스 가능한 저장 위치를 제공하는 다양한 메모리 디바이스들이 포함될 수 있다. 또한, 메모리(132)에는, 예를 들면, DRAM 디바이스, 동기식 DRAM(SDRAM) 디바이스, DDR(double data rate) SDRAM 디바이스, QDR(quad data rate) SDRAM 디바이스, 또는 기타 휘발성이나 비휘발성 메모리 디바이스 등과 같은 하나 이상의 서로 다른 타입의 메모리 디바이스들이 포함된다.
칩셋(104)은 프로세서 버스(106)를 통해 프로세서(102)와 직접 통신하는 프로세서 버스 인터페이스(140)를 포함한다. 칩셋(104)은, 예컨대, PCI(peripheral component interconnect) 버스, AGP(accelerated graphics port) 버스, USB(universal serial bus) 버스, LPC(low pin count) 버스, 기타 I/O 버스 등과 같은 버스(144)를 통하여 다른 컴포넌트(134)와 직접 통신하는 컴포넌트 인터페이스(142)를 더 포함한다. 일 실시예에서, 그 다른 컴포넌트(134)에는 LPC 버스를 통해 칩셋(104)으로 연결된 기본 입출력 시스템(BIOS) 펌웨어(146)가 포함될 수 있다. BIOS(146)는 프로세서(102)에 의해 실행될 수 있는 명령 및 루틴을 제공한다. 일반적으로, BIOS(146)에 의해 제공되는 루틴은, 컴퓨팅 디바이스(100)의 운영체제 를 실행하기 이전에 컴퓨팅 디바이스(100)의 컴포넌트에 액세스하고 이를 초기화하는데 이용될 수 있다. 그러나, 일부 실시예에서, 컴퓨팅 디바이스(100)는 운영체제의 실행을 호출한 이후에도 BIOS(146) 루틴을 실행하여 다른 태스크들을 수행할 수 있다.
칩셋(104)은 또한 프로세서 버스 인터페이스(140)를 통해 프로세서 버스(106)에 연결되고 하나 이상의 칩셋 핀(112)을 통해 이벤트 신호 라인(108)에 연결된 이벤트 핸들러(148)를 포함할 수 있다. 이벤트 핸들러(148)는 칩셋(104)에 의해 생성되거나 검출된 이벤트를 프로세서(102)에게 통보할 수 있다. 또한, 이벤트 핸들러(148)는 프로세서(102)에 의해 생성되거나 검출된 이벤트를 수신할 수도 있다. 일 실시예에서, 이벤트 핸들러(148)는 프로세서(102)로 전송할 가상 와이어 메시지를 생성하는 가상 와이어 메시지 유닛(150)을 포함한다. 그리고, 가상 와이어 메시지 유닛(150)은 프로세서(102)로부터 수신된 가상 와이어 메시지를 디코딩할 수 있다.
칩셋(104)의 이벤트 핸들러(148)는 인터럽트 제어기(152)를 더 포함할 수 있다. 인터럽트 제어기(152)는 프로세서(102)로 전송할 인터럽트 메시지를 생성하고, 프로세서(102)로부터 수신된 인터럽트 메시지를 디코딩할 수 있다. 일 실시예에서, 인터럽트 제어기(152)는 프로세서 버스(106) 및 프로세서 버스 인터페이스(140)를 통해 인터럽트 메시지를 전송하거나 수신할 수 있다. 또 다른 실시예에서, 인터럽트 제어기(152)는 또한 하나 이상의 칩셋 핀(112) 및 관련된 이벤트 신호 라인(108)을 통해 인터럽트 메시지를 전송하거나 수신할 수 있다.
칩셋(104)의 이벤트 핸들러(148)는 하나 이상의 이벤트 레지스터(154)를 더 포함할 수 있다. 일 실시예에서, 그 칩셋 이벤트 레지스터(154)에는 성능 레지스터(156), 선택 레지스터(158), 상태 레지스터(160) 및 제어 레지스터(162)가 포함될 수 있다. 칩셋 성능 레지스터(156)는 지원되는 칩셋(104) 이벤트 핸들링 성능을 나타낼 수 있다. 또한, 칩셋 선택 레지스터(158)는 그 칩셋(104)이 관련된 이벤트들을 전달하는 전달 메커니즘 선택을 나타낼 수 있다.
칩셋(104)의 상태 레지스터(160) 및 제어 레지스터(162)는 각각 이벤트 상태와 이벤트 제어를 제공한다. 일 실시예에서, 칩셋(104)의 상태 레지스터(160)는 어느 이벤트가 어서트되는지 그리고 어느 이벤트가 디어서트되는지를 나타낸다. 칩셋(104)의 제어 레지스터(162)는 이벤트를 인에이블시키거나 이벤트를 디스에이블시키는데 이용될 수 있다. 또한, 제어 레지스터(162)는 이벤트를 레벨 트리거형이나 에지 트리거형으로 정의하는데 이용될 수 있다.
이제, 도 2를 참조하면, 성능 레지스터의 예시적 실시예가 도시되어 있다. 도시된 실시예에서, 프로세서 성능 레지스터(124)와 칩셋 성능 레지스터(156)는 동일한 포맷을 가지고 있다. 그러나, 이와 다른 실시예들에서는, 프로세서 성능 레지스터(124)가 칩셋 성능 레지스터(156)와 다른 포맷을 가질 수도 있다. 또한, 프로세서 성능 레지스터(124)는, 칩셋 성능 레지스터(156)에 의해 지원되는 이벤트 전부나 그 일부, 또는 추가적 이벤트와 관련된 프로세서 성능을 보고하는 기능을 지원한다. 마찬가지로, 칩셋 성능 레지스터(156)는 프로세서 성능 레지스터(124)에 의해 지원되는 이벤트 전부나 그 일부, 또는 추가적 이벤트와 관련된 칩셋 성능 을 보고하는 기능을 지원한다.
도시된 바와 같이, 칩셋 성능 레지스터(156)는 각 이벤트에 대해 CAP 필드를 포함할 수 있다. 일 실시예에서, 성능 레지스터(156)에는, IGNNE 이벤트, A20M 이벤트, SMI 이벤트, INIT 이벤트, INTR 이벤트, NMI 이벤트, STPCLK 이벤트, FERR 이벤트, PROCHOT 이벤트 및 CPU_SCI 이벤트와 관련한 칩셋의 전달 성능을 각각 보고하기 위한 IGNNE CAP 필드, A20M CAP 필드, SMI CAP 필드, INIT CAP 필드, INTR CAP 필드, NMI CAP 필드, STPCLK CAP 필드, FERR CAP 필드, PROCHOT CAP 필드 및 CPU_SCI CAP 필드가 포함될 수 있다. 이하에서 상기 이벤트들에 관한 간단한 설명을 제공하겠지만, 그와 같은 이벤트들에 관한 실시예의 보다 상세한 사항은 미국 일리노이주 60056-7641 마운틴 프로스펙트(Mt. Prospect) 피.오. 박스 Intel Corporation에서 얻을 수 있는 IA-32 Interl Architecture Software Developer's Manual(2001) 사본에서 찾아볼 수 있다.
칩셋(104)은 INTR, NMI, SMI 및 INIT 이벤트를 보고하여 프로세서(102)에게 다양한 타입의 인터럽트를 통지할 수 있다. 특히, 칩셋(104)은 INTR 이벤트를 보고하여 프로세서(102)에게 정상적 인터럽트(예를 들면, 인텔 8259 프로그램 가능 인터럽트 제어기 인터럽트)가 어서트/디어서트됨을 나타낼 수 있다. 칩셋(104)은 NMI 이벤트를 보고하여 프로세서(102)에게 마스크 불가(non-maskable) 인터럽트(NMI)가 어서트/디어서트됨을 나타낼 수 있고, SMI 이벤트를 보고하여 프로세서(102)에게 시스템 관리 인터럽트(SMI)가 어서트/디어서트됨을 나타낼 수 있다. 또한, 칩셋(104)은 INIT 이벤트를 보고하여 프로세서(102)에게 그 프로세서(102)가 초기화되어야 하는지를 나타낼 수 있다.
칩셋(104)은 A20M 이벤트를 보고하여 프로세서 버스(106)의 A20 신호 라인을 마스킹할 것인지 여부를 나타낼 수 있다. 프로세서(102)는 CPU_SCI 이벤트를 보고하여 칩셋(104)으로 하여금 시스템 제어 인터럽트(SCI)를 어서트하게 할 수 있다. 일 실시예에서, CPU_SCI 이벤트는 칩셋(104)의 ACPI(advanced configuration and power interface) 어드레스 공간에서 범용 이벤트(GPE) 비트가 설정되도록 한다. 그런 다음, 그 칩셋(104)은 그와 같은 GPE 비트의 설정에 응답하여 SCI 인터럽트를 어서트할 수 있다.
칩셋(104)과 프로세서(102)는 부동소수 에러 핸들링(float point error handling)을 위하여 IGNNE 및 FERR 이벤트를 이용할 수 있다. 프로세서(102)는 FERR 이벤트를 보고하여 칩셋에게 그 프로세서(102)가 부동소수 에러를 검출했음을 나타낼 수 있다. 칩셋(104)은 IGNNE 이벤트를 보고하여 프로세서(102)에게 그 프로세서(102)가 수 에러(number error)를 무시할 수 있음을 나타낼 수 있다.
칩셋(104) 및 프로세서(102)는 전력 관리 및 열 관리를 위해 STPCLK 및 PROCHOT 이벤트를 이용할 수 있다. 칩셋(104)은 STPCLK 이벤트를 보고하여 프로세서(102)에게 그 프로세서(102)가 명령 실행을 중지하고 전력 저감 상태(power reduced state)로 들어가야 함을 나타낼 수 있다. 프로세서(102)는 PROCHOT 이벤트를 보고하여 칩셋(104)에게 프로세서(102)가 온도 한계(thermal limit)를 초과했다는 것을 통지할 수 있다. 또한, 칩셋(104)이 PROCHOT 이벤트를 보고하여 프로세서(102)를 감속시키고 전력 소비를 감소시킬 수도 있다.
일 실시예에서, 각 CAP 필드에는 관련된 이벤트에 관한 칩셋(104) 전달 성능을 인코딩하는 4개의 비트가 포함된다. 이와 같은 실시예에서, NOT SUPPORTED 비트는 칩셋(104)이 관련된 이벤트의 전달을 지원하는지 여부를 나타낼 수 있고, INTERRUPT MESSAGE 비트는 칩셋(104)이 인터럽트 메시지를 통해 관련된 이벤트의 전달을 지원하는지 여부를 나타낼 수 있으며, VIRTUAL WIRE MESSAGE 비트는 칩셋(104)이 가상 와이어 메시지를 통해 관련된 이벤트의 전달을 지원하는지 여부를 나타낼 수 있고, PIN 비트는 칩셋(104)이 칩셋 핀(112)과 관련된 이벤트 신호를 통해 관련된 이벤트의 전달을 지원하는지 여부를 나타낼 수 있다. 그러나, 그와 다른 실시예에서, 각 CAP 필드는 이와 다른 수의 비트를 포함할 수 있고, 또는 상이한 인코딩 스킴을 활용하여 지원되는 전달 메커니즘을 나타낼 수 있다.
이제, 도 3을 참조하면, 칩셋 선택 레지스터(158)의 예시적 실시예가 도시되어 있다. 도시된 실시예에서, 프로세서 선택 레지스터(126) 및 칩셋 선택 레지스터(158)는 유사한 포맷을 가지고 있다. 그러나, 이와 다른 실시예에서는, 프로세서 선택 레지스터(126)가 칩셋 선택 레지스터(158)와 상이한 포맷을 가질 수도 있다. 또한, 프로세서 선택 레지스터(126)는 칩셋 선택 레지스터(158)에 의해 지원되는 이벤트 전부나 그 일부, 또는 추가적 이벤트를 지원할 수 있고, 칩셋 선택 레지스터(158)는 프로세서 선택 레지스터(126)에 의해 지원되는 이벤트 전부나 그 일부, 또는 추가적 이벤트를 지원할 수 있다. 프로세서 선택 레지스터(126)는 또한 칩셋 선택 레지스터(158)에 의해 지원되는 전달 메카니즘 전부나 그 일부, 또는 추가 전달 메커니즘을 지원할 수 있고, 칩셋 선택 레지스터(158)는 프로세서 선택 레 지스터(126)에 의해 지원되는 전달 메카니즘 전부나 그 일부, 또는 추가적 전달 메커니즘을 지원할 수 있다.
도시된 바와 같이, 선택 레지스터(158)는 각 이벤트 핸들러(116, 148)에 의해 지원되는 각 이벤트에 대한 SELECT 필드를 포함할 수 있다. 일 실시예에서, 선택 레지스터(158)는, IGNNE 이벤트, A20M 이벤트, SMI 이벤트, INIT 이벤트, INTR 이벤트, NMI 이벤트, STPCLK 이벤트, FERR 이벤트, PROCHOT 이벤트, 및 CPU_SCI 이벤트에 대한 칩셋 전달 선택을 각각 보고하기 위한 IGNNE SELECT 필드, A20M SELECT 필드, SMI SELECT 필드, INIT SELECT 필드, INTR SELECT 필드, NMI SELECT 필드, STPCLK SELECT 필드, FERR SELECT 필드, PROCHOT SELECT 필드, 및 CPU_SCI SELECT 필드가 포함될 수 있다.
일 실시예에서, 각 SELECT 필드에는 관련된 이벤트에 관한 전달 메커니즘을 선택하기 위하여 갱신되는 4개의 비트가 포함될 수 있다. SELECT 필드 중 하나의 비트는 논리 "1"로 갱신, 즉 설정되어 이벤트에 관한 대응 전달 메커니즘을 선택할 수 있고, 논리 "0"으로 갱신, 즉 클리어되어 이벤트에 관한 대응 전달 메커니즘을 선택 해제할 수 있다. 일 실시예에서, 각 SELECT 필드에는 NOT USED 비트, INTERRUPT MESSAGE 비트, VIRTUAL WIRE MESSAGE 비트 및 PIN 비트가 포함된다. NOT USED 비트가 설정되어 관련된 이벤트가 이용되지 않는다는 것을 나타낼 수 있고, INTERRUPT MESSAGE 비트가 설정되어 관련된 이벤트에 관한 인터럽트 메시지 전달을 선택할 수 있다. VIRTUAL WIRE MESSAGE 비트가 설정되어 관련된 이벤트에 관한 가상 와이어 메시지 전달을 선택할 수 있고, PIN 비트가 설정되어 관련된 이벤 트에 관한 핀 전달을 선택할 수 있다. 또 다른 실시예에서는, SELECT 필드가 이와 다른 수의 비트를 포함할 수도 있고, 또는 상이한 인코딩 스킴을 활용하여 관련된 이벤트에 관한 전달 메커니즘을 선택할 수도 있다.
선택 레지스터(158)는 SELECT LOCK 필드를 더 포함하여 칩셋 전달 선택을 로킹(lock)하고 선택 사항들에 대해 부주의한 변경이 이루어지는 것을 방지할 수 있다. 일 실시예에서, 선택 레지스터(158)는 하나 이상의 판독/기록 레지스터로서 구현된다. 그러나, SELECT LOCK 필드를 설정하게 되면 이에 응답하여, 그 하나 이상의 선택 레지스터(158)는 하나 이상의 판독-전용 레지스터로서 기능하게 된다. 일 실시예에서, SELECT LOCK 필드는 리셋 또는 시스템 셧다운(system shutdown)시 클리어되고, 리셋 또는 시스템 셧다운 이외에는 SELECT LOCK 필드를 클리어하기 위한 어떠한 메카니즘도 제공되지 않는다. 그러므로, 그러한 실시예에서는, 일단 선택 레지스터(158)가 로킹되면 이를 변경하기 위하여 시스템 셧다운 또는 리셋이 필요로 된다. 또 다른 실시예에서는, 시스템 셧다운을 통한 사이클링이나 리셋없이 선택 레지스터(158)의 내용을 변경하고 로킹 해제할 수 있도록, 예를 들어 UNLOCK 또는 CLEAR 명령과 같은 로킹 해제 메커니즘이 제공된다. 또 다른 실시예에서는, 선택 레지스터(158)가 SELECT LOCK 필드를 포함하지 않을 수 있고 컴퓨팅 디바이스(100)가 선택 로킹을 제공하지 않을 수도 있다.
이제, 도 4를 참조하면, 인터럽트 메시지의 예시적 실시예가 도시되어 있다. 인터럽트 메시지는 메시지 목적지 및 메시지 타입을 나타내는 헤더(400)를 포함할 수 있다. 인터럽트 메시지는 또한 인터럽트 이벤트의 발생을 보고하기 위한 페이 로드(402)를 포함할 수 있다. 도시된 바와 같이, 헤더(400)는 2개의 프로세서 버스(106) 요구 페이즈(request phase)(본 도면에서는 각각 REQUEST PHASE A 및 REQUEST PHASE B로 지칭됨) 동안 전달될 수 있다. 또한, 페이로드(402)는 프로세서 버스(106)의 DATA PHASE 동안에 전달될 수 있다. 그러나, 또 다른 실시예에서는, 헤더(400) 또는 페이로드(402)가 예를 들어, 일부 Intel Pentium 프로세서에 의해 지원되는 3-비트 I/O APIC 직렬 버스와 같은 또 다른 버스를 통하여 칩셋(104)과 프로세서(102) 사이에서 전달될 수 있다. 그리고, 헤더(400) 또는 페이로드(402)가 그와 다른 수의 페이즈 또는 그와 다른 타입의 페이즈 동안에 전달될 수도 있다. 또 다른 실시예들에서는, 헤더(400) 또는 페이로드(402)가 그와 상이한 포맷을 가질 수도 있고 그와 상이한 정보를 포함할 수도 있다.
일 실시예에서, 헤더(400)는 REQUEST PHASE A 및 REQUEST PHASE B 동안에 Intel Pentium 4 프로세서 버스(106)의 5-비트 요구(REQ) 버스 및 36-비트 어드레스(A) 버스를 통해 전달될 수 있다. REQUEST PHASE A는 REQUEST 필드, MESSAGE ADDRESS 필드, DESTINATION ID 필드, EXTENDED DESTINATION ID 필드, REDIRECTION HINT 필드, DESTINATION MODE 필드 및 RESERVED 필드를 포함할 수 있다. REQUEST PHASE B는 EXTENDED REQUEST 필드, BYTE ENABLES 필드, EXTENDED FUNCTION 필드 및 RESERVED 필드를 포함할 수 있다.
REQUEST 필드, EXTENDED REQUEST 필드 및 MESSAGE ADDRESS 필드가 조합하여 트랜잭션 또는 메시지 타입을 나타낼 수 있다. 일 실시예에서, REQUEST 필드, EXTENDED REQUEST 필드 및 MESSAGE ADDRESS 필드는 메시지 트랜잭션(예를 들면, 인 터럽트 메시지 또는 가상 와이어 메시지)을 나타내는 값들인 01001_b, XX100_b, 0FFEE_h로 설정될 수 있다. 여기서, "_b"가 추가된 수는 이진수를 나타내는데 이용되고, "_h"가 추가된 수자는 16진수를 나타내는데 이용되며, "X"는 "DON'T CARE"또는 "UNUSED" 비트(들)를 나타내는데 이용된다.
DESTINATION ID 필드 및 EXTENDED DESTINATION ID 필드는 그 DESTINATION ID 필드 및 EXTENDED DESTINATION ID 필드의 해석에 영향을 미치는 다양한 목적지 모드(예를 들면, 물리적 목적지 모드, 논리적 목적지 모드, 플랫 모드, 클러스터 모드)를 이용하여 프로세서(102) 또는 프로세서 그룹을 지정할 수 있다. 일 실시예에서, REDIRECTION HINT 필드는 인터럽트 메시지가 더 낮은 인터럽트 우선순위를 가지는 프로세서(102)로 재지정될(redirected) 수 있는지 여부를 나타낼 수 있다. 또한, REDIRECTION HINT 필드가, 인터럽트 메시지가 재지정될 수 있다고 나타내는 경우, DESTINATION MODE 필드는 DESTINATION ID 및 EXTENDED DESTINATION ID 필드를 해석하기 위한 목적지 모드(예를 들면, 물리적 모드 또는 논리적 모드)를 지정하는데 이용될 수 있다. 멀티-프로세서 시스템에서는, REDIRECTION HINT 필드 및 DELIVERY MODE 필드가 이용되어, 특정 이벤트에 대한 인터럽트 메시지를, DESTINATION ID 및 EXTENDED DESTINATION ID 필드에 의해 지정된 그룹에서 선택된 덜 바쁜 프로세서(102)로 재지정할 수 있다.
BYTE ENABLES 필드는 데이터 페이즈 동안에 전달되는 데이터의 유효부를 나타낼 수 있다. 일 실시예에서, BYTE ENABLES 필드는 0F_h로 설정되어 데이터 페이지의 하위 32비트가 유효 데이터를 포함함을 나타낸다.
일 실시예에서의 페이로드(402)는 FIXED 필드, TRIGGER MODE 필드, DELIVERY STATUS 필드, RESERVED 필드, DESTINATION MODE 필드, DELIVERY MODE 필드 및 VECTOR 필드를 포함할 수 있다. TRIGGER MODE 필드는 인터럽트 이벤트가 레벨 트리거형인지 에지 트리거형인지 여부를 나타낼 수 있고, DELIVERY STATUS 필드는 인터럽트 이벤트가 어서트되어 있는지 디어서트되어 있는지 여부를 나타낼 수 있다. 에지 트리거형인 경우, 일 실시예에서는, 이벤트 핸들러(148)가 에지 트리거형 인터럽트 이벤트에 있어서 그 네거티브 에지 즉 디어서트된 상태를 보고하지 않기 때문에, 인터럽트 제어기(152)는 항상 DELIVERY STATUS 필드를 논리 "1"로 설정하여 에지 트리거형 인터럽트 이벤트가 어서트된 상태를 나타낼 수 있다.
DESTINATION MODE 필드는 목적지 모드, 예를 들어 논리적 모드 또는 물리적 모드를 나타낼 수 있다. 일 실시예에서, 프로세서 이벤트 핸들러(116)는 DESTINATION MODE 필드의 상태에 기초하여 DESTINATION ID 필드 및 EXTENDED DESTINATION ID 필드를 다르게 해석할 수 있다. DELIVERY MODE 필드는 인터럽트 이벤트 타입, 예컨대 고정 INTR 이벤트, 최하위 우선순위 INTR 이벤트, INIT 이벤트, SMI 이벤트, NMI 이벤트 또는 외부 INTR 이벤트 등을 나타낼 수 있다. 일 실시예에서, 고정 INTR 이벤트는 INTR 이벤트가 DESTINATION ID 필드 및 EXTENDED DESTINATION ID 필드에 의해 식별되는 각 프로세서 이벤트 핸들러(116)로 전달되어야 함을 나타내는데 비해, 최하위 우선순위 INTR 이벤트는 INTR 이벤트가 최하위 우선순위 프로세서 이벤트 핸들러(116)로 전달되어야 함을 나타낸다.
VECTOR 필드는 관련된 인터럽트 이벤트에 응답하여 실행될 인터럽트 서비스 루틴을 식별할 수 있다. 또한, 일 실시예에서 RESERVED 필드의 각 비트는 0_b로 설정될 수 있다. 또 다른 실시예에서, RESERVED 필드의 각 비트는 정의되지 않거나 무시된다. 그러므로, 그 비트들은 중요하지 않은 임의의 값으로 설정될 수 있다.
일 실시예에서, 컴퓨팅 디바이스(100)의 BIOS(146) 또는 운영체제는 시스템 시동시 다음의 인터럽트 메시지 필드, 즉 DESTINATION ID 필드, EXTENDED DESTINATION ID 필드, REDIRECTION HINT 필드, DESTINATION MODE 필드, TRIGGER MODE 필드, DELIVERY STATUS 필드, RESERVED 필드, DESTINATION MODE 필드, DELIVERY MODE 필드 및 VECTOR 필드 각각에 대한 값으로 제어 레지스터(130, 162)를 갱신한다. 따라서, 인터럽트 제어기(120, 152)는 인터럽트 메시지를 구성할 때 간단하게 그 제어 레지스터(130, 162)로부터 이들 값을 얻을 수 있다.
도 4는 하나의 특정 실시예에 있어서, Intel Pentium 4 프로세서 버스(106)의 어느 버스 라인 및 비트 라인을 통하여 각 필드가 전달되는지를 나타내고 있다. 도시된 바에 따르면, REQa[X]는 각 필드가 REQUEST PHASE A 동안에 요구 버스의 비트 라인 X를 통하여 전달됨을 나타낸다. 유사하게, REQb[Y]는 각 필드가 REQUEST PHASE B 동안에 요구 버스의 비트 라인 Y를 통하여 전달됨을 나타낸다. 또한, Aa[Z]는 각 필드가 REQUEST PHASE A 동안에 어드레스 버스의 비트 라인 Z를 통해 전달됨을 나타낸다. 유사하게, Ab[W]는 각 필드가 REQUEST PHASE B 동안에 어드레스 버스의 비트 라인 W를 통하여 전달됨을 나타낸다. 또한, D[N]은 각 필드가 프로세서 버스(106)의 데이터 페이즈 동안에 데이터 버스(D 버스)의 비트 라인 N을 통해 전달됨을 나타낸다. 인터럽트 메시지에 관한 일 실시예에 있어서 헤더(400) 및 페이로드(402)에 대한 보다 상세한 설명은 IA-32 Intel Architecture Software Developer's Manual(2001)에 제시되어 있다.
이제, 도 5를 참조하면, 가상 와이어 메시지의 예시적 실시예가 도시되어 있다. 가상 와이어 메시지는 메시지 목적지 및 메시지 타입을 나타내는 헤더(500)를 포함할 수 있다. 가상 와이어 메시지는 가상 와이어 이벤트의 발생을 보고하기 위한 페이로드(502)도 포함할 수 있다. 도시된 바와 같이, 헤더(500)는 예를 들어, Intel Pentium 4 버스에 있어서 REQUEST PHASE A 및 REQUEST PHASE B와 같은 2개의 프로세서 버스(106) 요구 페이즈 동안에 전달될 수 있다. 또한, 페이로드(502)는 프로세서 버스(106)의 데이터 페이즈 동안에 전달될 수 있다. 그러나, 또 다른 실시예에서는, 헤더(500)나 페이로드(502)가 예를 들어, 직렬 가상 와이어 버스(도시되지 않음)와 같은 또 다른 버스를 통해 칩셋(104)과 프로세서(102) 사이에서 전달될 수도 있다. 또한, 헤더(500) 또는 페이로드(502)가 이와 다른 수의 페이즈 동안 전달될 수 있고, 또는 상이한 타입의 페이즈 동안에 전달될 수도 있다. 다른 실시예들에서는, 헤더(500) 또는 페이로드(502)가 상이한 포맷을 가질 수 있고 상이한 정보를 포함할 수도 있다.
일 실시예에서, 헤더(500)는 REQUEST PHASE A 및 REQUEST PHASE B 동안에 Intel Pentium 4 프로세서 버스(106)의 5-비트 요구(REQ) 버스 및 36-비트 어드레스(A) 버스를 통해 전달될 수 있다. REQUEST PHASE A는 REQUEST 필드, MESSAGE ADDRESS 필드, DESTINATION ID 필드, EXTENDED DESTINATION ID 필드, REDIRECTION HINT 필드, DESTINATION MODE 필드 및 RESERVED 필드를 포함할 수 있다. REQUEST PHASE B는 EXTENDED REQUEST 필드, BYTE ENABLES 필드, EXTENDED FUNCTION 필드 및 RESERVED 필드를 포함할 수 있다.
REQUEST 필드, EXTENDED REQUEST 필드 및 MESSAGE ADDRESS 필드가 조합하여 트랜잭션 또는 메시지 타입을 나타낼 수 있다. 일 실시예에서, REQUEST 필드, EXTENDED REQUEST 필드 및 MESSAGE ADDRESS 필드는 메시지 트랜잭션(예를 들면, 인터럽트 메시지 또는 가상 와이어 메시지)을 나타내는 값들인 01001_b, XX100_b 및 0FFEE_h로 설정될 수 있다.
DESTINATION ID 필드 및 EXTENDED DESTINATION ID 필드는 그 DESTINATION ID 필드 및 EXTENDED DESTINATION ID 필드의 해석에 영향을 미치는 다양한 목적지 모드(예를 들면, 물리적 목적지 모드, 논리적 목적지 모드, 플랫 모드, 클러스터 모드)를 이용하여 프로세서(102) 또는 프로세서 그룹을 지정할 수 있다. 일 실시예에서 REDIRECTION HINT 필드는 EXTENDED FUNCTION 필드의 비트 Ab[6:5]와 조합해서 이용되어 가상 와이어 메시지에 대한 목적지 모드를 나타낸다. 편의상, VWM MODE 필드는 EXTENDED FUNCTION 필드의 비트 Ab[6:5]로 결부된 REDIRECTION HINT 필드를 나타내는데 이용된다. 일 실시예에서는, VWM MODE 필드가 010_b로 설정된 경우에는 물리적 목적지 모드를, 011_b로 설정된 경우에는 논리적 목적지 모드를, 그리고 110_b로 설정된 경우에는 프로세서-대-칩셋 모드를 나타낸다.
BYTE ENABLES 필드는 데이터 페이즈 동안에 전달되는 데이터의 유효부를 나타낼 수 있다. 일 실시예에서, BYTE ENABLES 필드는 0F_h로 설정되어 데이터 페이 지의 하위 32비트가 유효 데이터를 포함하는 것을 나타낸다. 또한, 일 실시예에서 RESERVED 필드의 각 비트는 0_b로 설정될 수 있다. 또 다른 실시예에서는, RESERVED 필드의 각 비트가 정의되지 않고 무시된다.
일 실시예에서, 헤더(500)는 REQUEST PHASE A 및 REQUEST PHASE B 동안에 Intel Pentium 4 프로세서 버스(106)의 5-비트 요구 버스 및 36-비트 어드레스 버스를 통해 전달될 수 있다. REQUEST PHASE A는 REQUEST 필드, FIXED 필드, DESTINATION ID 필드, EXTENDED DESTINATION ID 필드, REDIRECTION HINT 필드, DESTINATION MODE 필드 및 RESERVED 필드를 포함할 수 있다. 또한, REQUEST PHASE B는 EXTENDED REQUEST 필드, DEBUG 필드, ATTRIBUTE 필드, DEFERRED ID 필드, BYTE ENABLES 필드, EXTENDED FUNCTION 필드 및 FIXED 필드를 포함할 수 있다.
일 실시예에서 페이로드(502)는 각 이벤트에 대한 LEVEL 필드 및 CHANGE 필드를 포함할 수 있다. 예를 들어, 페이로드(502)는 이하의 IA-32 이벤트, 즉 IGNNE, A20M, SMI, INIT, INTR, NMI, STPCLK, FERR, PROCHOT 및 CPU_SCI 각각에 대한 LEVEL 필드 및 CHANGE 필드를 포함할 수 있다. 각 LEVEL 필드는 각 이벤트의 상태(예를 들면, 어서트/디어서트된 상태)를 나타낼 수 있고, 각 CHANGE 필드는 이전의 가상 와이어 메시지 이래로 각 이벤트에 대한 레벨이나 상태의 변화를 나타낼 수 있다.
페이로드(502)는 UPDATE REQUEST 필드 및 UPDATE ACK 필드를 더 포함할 수 있다. 일 실시예에서는, 가상 와이어 메시지의 전송자가, 가상 와이어 메시지는 현재 이벤트 상태와 함께 전송되어야 한다고 요구하는 것을 나타내도록 UPDATE REQUEST 필드가 갱신(예를 들어, 논리 "1"로 설정)될 수 있고, 가상 와이어 메시지의 전송자가 가상 와이어 메시지 갱신을 요구하지 않는다는 것을 나타내도록 갱신(예를 들어, 논리 "0"으로 클리어링)될 수 있다. 또한, 일 실시예에서 UPDATE ACK 필드는 가상 와이어 메시지가 갱신 요구에 응답한다는 것을 나타내도록 갱신(예를 들어, 논리 "1"로 설정)될 수 있고, 가상 와이어 메시지가 갱신 요구에 응답하지 않는다는 것을 나타내도록 갱신(예를 들, 논리 "0"으로 클리어링)될 수 있다. 일 실시예에서, 프로세서(102)는 휴면 상태로부터 깨어남에 응답해서 가상 와이어 메시지 갱신 요구를 전송하여 칩셋(104)으로부터 이벤트의 현재 상태를 얻을 수 있다.
컴퓨팅 디바이스(100)는 프로세서(102) 및/또는 칩셋(104)으로 하여금 그 프로세서(102) 및 칩셋(104)의 이벤트 상태를 갱신하기 위하여 가상 와이어 메시지를 전송하게 하는 추가적 및/또는 대안적 갱신 메커니즘을 지원할 수 있다. 일 실시예에서, 프로세서(102) 및/또는 칩셋(104)은, 그 프로세서(102) 및/또는 칩셋(104)으로 하여금 가상 와이어 메시지를 전송하도록 요구하기 위해 BIOS(146), 운영체제 또는 기타 엔티티가 갱신할 수 있는 비트 또는 레지스터를 더 포함할 수 있다. 유사하게, 프로세서(102) 및/또는 칩셋(104)은, 그 프로세서(102) 및/또는 칩셋(104)으로 하여금 현재 이벤트 상태를 포함하는 가상 와이어 메시지를 전송하도록 요구하는 명령을 제공할 수 있다. 또 다른 실시예에서, 프로세서(102) 및/또는 칩셋(104)은, 그 프로세서(102) 및/또는 칩셋(104)으로 하여금 이벤트 상태 변화와 관계없이 적어도 하나의 가상 와이어 메시지를 매 주기마다(예를 들면, 1초) 전송하 도록 요구하기 위해 BIOS(146), 운영체제 또는 기타 엔티티가 갱신할 수 있는 비트 또는 레지스터를 더 제공할 수 있다.
이제, 도 6을 참조하면, 이벤트 초기화 방법의 일 실시예를 보여주고 있다. 컴퓨팅 디바이스(100)에 관한 일 실시예에 있어서 이벤트는 시스템 리셋에 이어서 그리고 시스템 파워-업시에 디스에이블된다. 컴퓨팅 디바이스(100)의 BIOS(146)는 이벤트를 인에이블시키기 이전에 적절한 이벤트 핸들링을 위하여 컴퓨팅 디바이스(100)의 컴포넌트들을 프로그래밍할 수 있다. 편의상, 다음에서는 BIOS(146)가 소정의 동작들을 수행하는 것으로 설명하고 있지만, 일 실시예에서는 그러한 동작들이 BIOS(146) 명령 실행에 응답하여 프로세서(102)에 의해서 수행된다.
이벤트 초기화의 일부로서, BIOS(146)는, 블록(600)에서, 프로세서(102) 및 칩셋(104)의 이벤트 전달 성능을 판정한다. 일 실시예에서, BIOS(146)는 프로세서 성능 레지스터(124) 및 칩셋 성능 레지스터(156)에 액세스하여 이벤트 전달 성능을 획득할 수 있다.
블록(602)에서, BIOS(146)는 각 이벤트에 대한 전달 메커니즘을 선택할 수 있다. 일 실시예에서, 성능 레지스터(124, 156)의 각 비트는 관련된 전달 메커니즘이 지원되는 경우에 논리 "1"로 설정된다. 따라서, BIOS(146)는 성능 레지스터(124, 156)에 대한 비트-와이즈(bit-wise) AND를 수행하여, 각 이벤트 필드마다 포함하는, 각각의 이벤트에 대한 공통 전달 메커니즘을 나타내는 공통 성능 값(common capability value)을 얻을 수 있다. 예를 들어, 그 결과적인 공통 성능 값 필드는, 프로세서(102) 및 칩셋(104) 모두가 가상 와이어 메시지 또는 이벤트 신호를 통해 제1 이벤트의 전달을 지원하고, 프로세서(102) 및 칩셋(104) 모두가 이벤트 신호에 의하여 제2 이벤트의 전달을 지원하며, 프로세서(102) 및 칩셋(104)이 제3 이벤트에 대해서는 공통 전달 메커니즘을 공유하지 않는다고 나타낼 수 있다.
어떤 이벤트에 대해 복수의 공통 전달 메커니즘이 이용 가능하다면, BIOS(146)는 다양한 선택 기준을 이용(예를 들어, 그 BIOS(146)의 구성 옵션에 기초하거나 공통 성능 값에 대한 관련 필드의 최하위 설정 비트에 기초)하여 그 전달 메커니즘들 중 하나를 선택할 수 있다. 아무런 공통 전달 메커니즘도 이용 가능하지 않다면, BIOS(146)는 에러 메시지를 생성하여 유효하지 않은 구성임을 나타낼 수 있다. 이와 달리, BIOS(146)가 컴퓨팅 디바이스(100)의 초기화와 함께 계속되어, 제어 레지스터(130, 162)를 통해 이벤트를 디스에이블시킬 수 있다. 컴퓨팅 디바이스(100)가 어느 이벤트를 필요로 하지 않는 경우, 그 이벤트의 디스에이블링이 수용 가능할 수 있고, 그에 따라 새로운 컴퓨팅 디바이스 또는 소프트웨어에 의해 더 이상 요구되거나 활용되지 않는 레거시 이벤트를 페이즈-아웃(phase-out)시키는 메커니즘을 제공할 수 있다.
블록(604)에서, BIOS(146)는 선택된 전달 메커니즘을 이용하도록 프로세서(102) 및 칩셋(104)을 프로그래밍할 수 있고, 전달 선택을 로킹하여 부주의한 변경을 방지할 수 있다. 일 실시예에서, BIOS(146)는 각 이벤트에 대해 이용될 전달 메커니즘을 나타내기 위해서 각 SELECT 필드 중 하나의 비트를 설정하는 선택 레지스터(126, 158)로 값을 기록함으로써 그 전달 선택을 프로그래밍하고 로킹할 수 있 다. 또한, 일 실시예에서는, SELECT LOCK 필드를 갱신함으로써 선택 레지스터(126, 158)에 기록된 값이 전달 선택을 로킹할 수 있다.
이벤트 전달 메커니즘을 선택한 후, 블록(606)에서 BIOS(146)는 이벤트를 인에이블시킬 수 있다. 일 실시예에서, BIOS(146)는 제어 레지스터(130, 162)를 갱신함으로써 이벤트를 인에이블시킬 수 있다. 그러나, 전술된 바와 같이, BIOS(146)는 프로세서(102) 및 칩셋(104)에 의해 공통으로 지원되지 않는 소정의 이벤트(공통 전달 메커니즘이 없는 이벤트)를 디스에이블시킬 수 있다.
이제, 도 7을 참조하면, 이벤트 전달 방법의 일 실시예에 관하여 보여주고 있다. 프로세서(102) 및 칩셋(104)은 유사한 이벤트 전달 방법을 이용한다. 편의상, 다음에서는 칩셋(104)의 관점에서 이벤트를 프로세서(102)로 전달하는 이벤트 전달 방법을 설명한다. 그러나, 그와 같은 이벤트 전달 방법은 마찬가지로 이벤트를 칩셋(104)에 전달하려는 프로세서(102)에 의해서도 구현될 수 있음이 자명하다. 블록(700)에서, 칩셋 이벤트 핸들러(148)가 이벤트를 검출할 수 있다. 예를 들어, 칩셋 이벤트 핸들러(148)는 상태 레지스터(160)의 내용에 기초하여 칩셋(104) 또는 다른 컴포넌트에 의해 생성되었던 INTR 이벤트를 검출할 수 있다.
블록(702)에서, 칩셋 이벤트 핸들러(148)는 그 검출된 이벤트에 대해 어느 전달 메커니즘이 선택되었는지를 판정할 수 있다. 예를 들어, INIT 이벤트 검출에 응답하여, 칩셋 이벤트 핸들러(148)는 INIT SELECT 필드의 설정 비트에 기초해서 가상 와이어 메시지를 통하여, 인터럽트 메시지를 통하여, 또는 칩셋 INIT 핀(112)에 인가되는 이벤트 신호를 통하여 그 INIT 이벤트를 프로세서(102)로 전달할 것인 지 판정할 수 있다.
이벤트가 가상 와이어 메시지를 통해 전달되는 것으로 판정한 경우 그에 응답하여, 블록(704)에서 칩셋 이벤트 핸들러(148)는 검출된 이벤트의 상태를 보고하도록 가상 와이어 메시지를 구성할 수 있다. 일 실시예에서, 이벤트 핸들러(148)의 가상 와이어 메시지 유닛(150)은 메시지 목적지 및 메시지 타입을 제공하는 헤더(500)와 이벤트 상태를 제공하는 페이로드(502)를 갖는 가상 와이어 메시지를 구성할 수 있다.
일 실시예에서, 가상 와이어 메시지 유닛(150)은 BIOS(146) 또는 운영체제가 시스템 초기화 동안에 프로그래밍할 수 있는 칩셋(104)의 이벤트 제어 레지스터(162)에 저장된 정보로부터 헤더(500)의 다양한 필드에 대한 값을 얻을 수 있다. 또 다른 실시예에서, 가상 와이어 메시지 유닛(150)은 가상 와이어 메시지의 헤더(500)를, 그 가상 와이어 메시지가 컴퓨팅 디바이스(100)의 모든 프로세서(102)로 전달되게 하는 브로드캐스트 식별자를 포함하도록 간단히 구성할 수 있다. 또 다른 실시예에서, 가상 와이어 메시지 유닛(150)은, 가상 와이어 메시지가 모든 프로세서(102)로 브로드캐스팅되도록 헤더(500)를 생성하는 고정 배선형일 수 있다. 또한, 단일-프로세서 컴퓨팅 디바이스(100)에서는, 메시지에 대해 단지 하나의 목적지만이 가능하므로, 가상 와이어 메시지가 아무런 목적지 식별자도 포함하지 않을 수 있다.
일 실시예에서, 가상 와이어 메시지 유닛(150)은 칩셋(104)의 이벤트 레지스터(154)에 기초하여 가상 와이어 메시지의 페이로드(502)를 더 생성할 수 있다. 일 실시예에서, 가상 와이어 메시지 유닛(150)은 이벤트 상태 레지스터(160)에 기초하여, 이전의 가상 와이어 메시지 이후로 어느 이벤트가 변경되었는지를 판정하고, 각 이벤트와 관련된 신호 레벨을 판정할 수 있다. 일 실시예에서, 가상 와이어 메시지 유닛(150)은 제어 레지스터(162)에 기초하여 이벤트가 에지 트리거형인지를 판정하여 그와 같은 에지 트리거형 이벤트의 제1 에지, 예컨대 로우 상태에서 하이 상태로의 신호 레벨 천이 즉 포지티브 에지 등을 보고할 수 있다. 가상 와이어 메시지 유닛(150)은 그와 같은 에지 트리거형 이벤트의 제2 에지, 예를 들어 하이 상태에서 로우 상태로의 신호 레벨 천이 즉 네거티브 에지 등은 보고하지 않을 수 있다.
블록(706)에서, 칩셋 이벤트 핸들러(148)는 그 구성된 가상 와이어 메시지를 프로세서(102)로 전송할 수 있다. 일 실시예에서, 가상 와이어 메시지 유닛(150)은 가상 와이어 메시지를 프로세서 버스 인터페이스(140) 및 프로세서 버스(106)를 통해 하나 이상의 프로세서(102)로 전달함으로써 그 메시지를 전송할 수 있다. 이와 다른 실시예에서, 가상 와이어 메시지 유닛은 프로세서 버스(106)와는 별개인 가상 와이어 메시지 버스(도시되지 않음)를 통해 가상 와이어 메시지를 하나 이상의 프로세서(102)로 전달할 수 있다.
이벤트가 인터럽트 메시지를 통해 전달된다고 판정한 경우 이에 응답하여, 블록(708)에서 칩셋 이벤트 핸들러(148)는 검출된 이벤트의 상태를 보고하는 인터럽트 메시지를 구성할 수 있다. 일 실시예에서, 칩셋 이벤트 핸들러(148)의 인터럽트 제어기(152)는, 인터럽트 이벤트 상태를 나타내는 페이로드(402)가 전달될 프 로세서(102)나 프로세서(102) 그룹을 나타내는 헤더(400)를 포함하도록 인터럽트 메시지를 구성할 수 있다.
일 실시예에서 인터럽트 제어기(152)는 칩셋 이벤트 레지스터(154)에 저장된 정보에 기초하여 인터럽트 메시지의 헤더(400) 및 페이로드(402)를 생성할 수 있다. 일 실시예에서, 컴퓨팅 디바이스(100)의 BIOS(146) 또는 운영체제는 시스템 초기화 동안에 적절한 헤더 또는 페이로드 정보에 의하여 칩셋 제어 레지스터(162)를 프로그래밍할 수 있다. 예를 들어, BIOS(146) 또는 운영체제는 시스템 초기화 동안에 이벤트 타입 및 인터럽트 벡터 정보로 칩셋 제어 레지스터(162)를 프로그래밍할 수 있다. 또한, 컴퓨팅 디바이스(100)의 칩셋 이벤트 핸들러(148) 또는 운영체제는 인터럽트 이벤트의 현재 상태를 나타내도록 칩셋 상태 레지스터(160)를 갱신할 수 있다.
블록(710)에서, 칩셋 이벤트 핸들러(148)는 그 구성된 인터럽트 메시지를 프로세서(102)로 전송할 수 있다. 일 실시예에서, 인터럽트 제어기(152)는 인터럽트 메시지를 프로세서 버스 인터페이스(140) 및 프로세서 버스(106)를 통하여 하나 이상의 프로세서(102)로 전달함으로써 그 메시지를 전송할 수 있다. 또 다른 실시예에서, 인터럽트 제어기(152)는 프로세서 버스(106)와는 별개인 인터럽트 메시지 버스(도시되지 않음)를 통해 하나 이상의 프로세서(102)로 인터럽트 메시지를 전달할 수 있다.
이벤트가 이벤트 신호를 통해 전달되는 것으로 판정한 경우 이에 응답하여, 블록(712)에서, 칩셋 이벤트 핸들러(148)는 이벤트 상태를 나타내기 위하여 이벤트 신호를 칩셋(112)에 인가할 수 있다. 일 실시예에서, 칩셋 이벤트 핸들러(148)의 인터럽트 제어기(152)는 그 핀들(112) 중 하나를 통하여 이벤트 신호 라인(108)으로 이벤트 신호를 인가해서, 프로세서(102)의 관련된 핀(110)이 그 이벤트 신호를 수신하도록 할 수 있다. 예를 들어, 칩셋 인터럽트 제어기(152)는 그 상태 레지스터(160)에 기초하여 3개의 INTR 이벤트가 대기 중임을 검출할 수 있다. 칩셋 인터럽트 제어기(152)는 그 INTR 핀(112) 상에 INTR 신호를 생성하여 관련된 INTR 이벤트 신호 라인(108)으로 하여금 그 INTR 이벤트 신호를 프로세서 INTR 핀(110)으로 전파하게 할 수 있다. 추후 프로세서(102)는 인터럽트 제어기(152)에 질의하여, 최상위 우선순위를 갖는 이벤트 요청 서비스와 관련된 인터럽트 핸들러 루틴의 인터럽트 벡터를 얻을 수 있다.
본 발명에 관한 소정의 특징들이 예시적 실시예들을 참조하여 설명되었지만, 상기 설명을 제한적 의미라고 생각해서는 안된다. 본 발명이 관련된 기술분야의 당업자라면, 본 발명에 관한 또 다른 실시예들 및 그 실시예에 관한 다양한 변형들이 본 발명의 사상과 범주 내에 속한다는 점을 분명히 알 것이다.

Claims (37)

  1. 장치로서,
    이벤트와 관련된 이벤트 신호들을 전달하는 핀과,
    버스 메시지들을 전달하는 버스 인터페이스와,
    상기 이벤트에 관한 전달 메커니즘을 선택하는 선택 레지스터와,
    상기 선택 레지스터가 상기 이벤트에 관하여 가상 와이어 메시지 전달(virtual wire message delivery)을 선택한 경우 이에 응답하여 상기 버스의 가상 와이어 메시지를 통해서 상기 이벤트를 핸들링하고, 상기 선택 레지스터가 상기 이벤트에 관하여 핀 전달을 선택한 경우 이에 응답하여 상기 핀의 이벤트 신호를 통해서 상기 이벤트를 핸들링하는 이벤트 핸들러(event handler)
    를 포함하는 장치.
  2. 제1항에 있어서,
    지원되는 이벤트 전달 메커니즘(delievery mechanism for the event)들을 나타내는 성능 레지스터(capabilities register)를 더 포함하는 장치.
  3. 제1항에 있어서,
    상기 선택 레지스터는 상기 선택 레지스터를 추가적 갱신들로부터 로킹(locking)할 수 있게 하는 로크 필드(lock field)를 포함하는 장치.
  4. 제1항에 있어서,
    상기 이벤트 핸들러는 상기 선택 레지스터가 상기 이벤트에 관하여 인터럽트 메시지 전달을 선택하는 경우 이에 응답하여 버스의 인터럽트 메시지를 통해서 상기 이벤트를 핸들링하는 장치.
  5. 제1항에 있어서,
    상기 이벤트는 부동소수 에러 이벤트(floating point error event)를 포함하는 장치.
  6. 제1항에 있어서,
    상기 이벤트는 수 에러 무시 이벤트(ignore number error event)를 포함하는 장치.
  7. 제1항에 있어서,
    상기 이벤트는 열적 이벤트 에러 이벤트(thermal event error event)를 포함하는 장치.
  8. 제1항에 있어서,
    상기 이벤트는 전력 절감 이벤트(power saving event)를 포함하는 장치.
  9. 제1항에 있어서,
    상기 이벤트 핸들러는 프로세서의 일부이고 상기 이벤트는 상기 이벤트 핸들러에 의해 어서트된(asserted) 시스템 제어 인터럽트를 포함하는 장치.
  10. 방법으로서,
    프로세서 및 칩셋에 의해 공통으로 지원되는 이벤트 전달 메커니즘들을 판정하는 단계와,
    상기 프로세서 및 상기 칩셋의 상기 공통 지원 이벤트 전달 메커니즘들에 기초하여, 이벤트에 관한 이벤트 전달 메커니즘을 선택하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서,
    상기 프로세서에 의해서 어떤 이벤트 전달 메커니즘들이 지원되는지를 판정하기 위하여 상기 프로세서의 성능 레지스터에 액세스하는 단계와,
    상기 칩셋에 의해서 어떤 이벤트 전달 메커니즘들이 지원되는지를 판정하기 위하여 상기 칩셋의 성능 레지스터에 액세스하는 단계
    를 더 포함하는 방법.
  12. 제11항에 있어서,
    상기 이벤트에 관한 상기 이벤트 전달 메커니즘을 선택하기 위하여 상기 프로세서의 선택 레지스터를 갱신하는 단계와,
    상기 이벤트에 관한 상기 이벤트 전달 메커니즘을 선택하기 위하여 상기 칩셋의 선택 레지스터를 갱신하는 단계
    를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 프로세서의 상기 선택 레지스터에 대한 추가적 갱신을 방지하기 위하여 상기 프로세서의 상기 선택 레지스터를 로킹하는 단계와,
    상기 칩셋의 상기 선택 레지스터에 대한 추가적 갱신을 방지하기 위하여 상기 칩셋의 상기 선택 레지스터를 로킹하는 단계
    를 더 포함하는 방법.
  14. 제10항에 있어서,
    상기 공통 지원 이벤트 전달 메커니즘들에 기초하여 복수의 이벤트에 관한 이벤트 전달 메커니즘들을 선택하는 단계를 더 포함하는 방법.
  15. 제10항에 있어서,
    상기 이벤트에 관하여 핀 전달을 선택함에 응답하여, 상기 프로세서 및 상기 칩셋의 핀들과 관련된 이벤트 신호를 통해서 상기 이벤트를 전달하는 단계와,
    상기 이벤트에 관하여 인터럽트 메시지 전달을 선택함에 응답하여, 인터럽트 메시지를 통해서 상기 이벤트를 전달하는 단계와,
    상기 이벤트에 관하여 가상 와이어 메시지 전달을 선택함에 응답하여, 가상 와이어 메시지를 통해서 상기 이벤트를 전달하는 단계
    를 더 포함하는 방법.
  16. 제10항에 있어서,
    상기 이벤트에 관하여 핀 전달을 선택함에 응답하여, 상기 프로세서 및 상기 칩셋의 핀들과 관련된 이벤트 신호를 통해서 상기 이벤트를 전달하는 단계와,
    상기 이벤트에 관하여 가상 와이어 메시지 전달을 선택함에 응답하여, 가상 와이어 메시지를 통해서 상기 이벤트를 전달하는 단계
    를 더 포함하는 방법.
  17. 제10항에 있어서,
    상기 칩셋으로 하여금 상기 칩셋 내에서 상기 이벤트의 상태를 제공하는 가상 와이어 메시지를 전송하도록 요구하는 단계를 더 포함하는 방법.
  18. 제17항에 있어서,
    상기 프로세서로 하여금 상기 프로세서 내에서 상기 이벤트의 상태를 제공하는 가상 와이어 메시지를 전송하도록 요구하는 단계를 더 포함하는 방법.
  19. 제10항에 있어서,
    상기 칩셋으로 하여금 상기 칩셋 내에서 상기 이벤트의 상태를 제공하는 가상 와이어 메시지를 주기적으로 전송하도록 요구하는 단계를 더 포함하는 방법.
  20. 제19항에 있어서,
    상기 프로세서로 하여금 상기 프로세서 내에서 상기 이벤트의 상태를 제공하는 가상 와이어 메시지를 주기적으로 전송하도록 요구하는 단계를 더 포함하는 방법.
  21. 복수의 명령을 포함하는 머신 판독가능 매체로서,
    상기 복수의 명령은 컴퓨팅 디바이스에 의해 실행됨에 응답하여 상기 컴퓨팅 디바이스로 하여금
    프로세서에 의해 지원되는 이벤트 전달 메커니즘들을 결정하고,
    칩셋에 의해 지원되는 이벤트 전달 메커니즘들을 결정하고,
    상기 프로세서 및 상기 칩셋의 공통 지원 이벤트 전달 메커니즘들에 기초하여 복수의 이벤트 각각에 대하여 이벤트 전달 메커니즘을 선택하도록 하는
    머신 판독가능 매체.
  22. 제21항에 있어서,
    상기 복수의 명령은 상기 컴퓨팅 디바이스에 의해 실행됨에 응답하여 상기 컴퓨팅 디바이스로 하여금 또한
    상기 프로세서에 의해 지원되는 상기 이벤트 전달 메커니즘들을 결정하기 위하여 상기 프로세서의 하나 이상의 성능 레지스터에 액세스하고,
    상기 칩셋에 의해 지원되는 상기 이벤트 전달 메커니즘들을 결정하기 위하여 상기 칩셋의 하나 이상의 성능 레지스터에 액세스하도록 하는 머신 판독가능 매체.
  23. 제22항에 있어서,
    상기 복수의 명령은 상기 컴퓨팅 디바이스에 의해 실행됨에 응답하여 상기 컴퓨팅 디바이스로 하여금 또한
    상기 복수의 이벤트에 대한 상기 이벤트 전달 메커니즘들을 선택하기 위하여 상기 프로세서의 하나 이상의 선택 레지스터를 갱신하고,
    상기 복수의 이벤트에 대한 상기 이벤트 전달 메커니즘들을 선택하기 위하여 상기 칩셋의 하나 이상의 선택 레지스터를 갱신하도록 하는 머신 판독가능 매체.
  24. 제23항에 있어서,
    상기 복수의 명령은 상기 컴퓨팅 디바이스에 의해 실행됨에 응답하여 상기 컴퓨팅 디바이스로 하여금 또한
    상기 프로세서의 상기 하나 이상의 선택 레지스터에 대하여 추가적 갱신을 방지하기 위해서 상기 프로세서의 상기 하나 이상의 선택 레지스터를 로킹하고,
    상기 칩셋의 상기 하나 이상의 선택 레지스터에 대하여 추가적 갱신을 방지하기 위해서 상기 칩셋의 상기 하나 이상의 선택 레지스터를 로킹하도록 하는 머신 판독가능 매체.
  25. 제21항에 있어서,
    상기 복수의 명령은 상기 컴퓨팅 디바이스에 의해 실행됨에 응답하여 상기 컴퓨팅 디바이스로 하여금 또한
    상기 프로세서 및 상기 칩셋의 상기 공통 전달 메커니즘들에 기초하여 상기 복수의 이벤트 중 각 이벤트마다 핀 전달과 가상 와이어 메시지 전달 사이에서 선택하도록 하는 머신 판독가능 매체.
  26. 제21항에 있어서,
    상기 복수의 명령은 상기 컴퓨팅 디바이스에 의해 실행됨에 응답하여 상기 컴퓨팅 디바이스로 하여금 또한
    상기 프로세서 및 상기 칩셋의 상기 공통 전달 메커니즘들에 기초하여 상기 복수의 이벤트 중 각 이벤트마다 핀 전달, 가상 와이어 메시지 전달 및 인터럽트 메시지 전달 중에서 선택하도록 하는 머신 판독가능 매체.
  27. 시스템으로서,
    가상 와이어 메시지를 수신하는 버스 인터페이스 및 상기 버스 인터페이스를 통해 수신된 가상 와이어 메시지를 디코딩하는 이벤트 핸들러를 포함하는 프로세서와,
    상기 가상 와이어 메시지를 전송하는 버스 인터페이스 및 복수의 이벤트의 상태를 보고하도록 상기 가상 와이어 메시지를 구성하는 이벤트 핸들러를 포함하는 칩셋과,
    상기 프로세서의 상기 버스 인터페이스를 상기 칩셋의 상기 버스 인터페이스에 결합하고 이들 간에 상기 가상 와이어 메시지를 운반하는 버스
    를 포함하는 시스템.
  28. 제27항에 있어서,
    상기 가상 와이어 메시지에 속한 상기 복수의 이벤트에 정상(normal) 인터럽트들과 관련된 INTR 이벤트가 포함되고,
    상기 프로세서에는 상기 INTR 이벤트의 상태를 보고하는 INTR 이벤트 신호를 수신하는 INTR 핀이 없으며,
    상기 칩셋에는 상기 INTR 이벤트 신호를 전송하는 INTR 핀이 없는 시스템.
  29. 제27항에 있어서,
    상기 가상 와이어 메시지의에 속한 상기 복수의 이벤트에 마스크 불가(non-maskable) 인터럽트들과 관련된 NMI 이벤트가 포함되고,
    상기 프로세서에는 상기 NMI 이벤트의 상태를 보고하는 NMI 이벤트 신호를 수신하는 NMI 핀이 없으며,
    상기 칩셋에는 상기 NMI 이벤트 신호를 전송하는 NMI 핀이 없는 시스템.
  30. 제27항에 있어서,
    상기 가상 와이어 메시지에 속한 상기 복수의 이벤트에 시스템 관리 인터럽트들과 관련된 SMI 이벤트가 포함되고,
    상기 프로세서에는 상기 SMI 이벤트의 상태를 보고하는 SMI 이벤트 신호를 수신하는 SMI 핀이 없으며,
    상기 칩셋에는 상기 SMI 이벤트 신호를 전송하는 SMI 핀이 없는 시스템.
  31. 제27항에 있어서,
    상기 가상 와이어 메시지에 속한 상기 복수의 이벤트에 프로세서 초기화와 관련된 INIT 이벤트가 포함되고,
    상기 프로세서에는 상기 INIT 이벤트의 상태를 보고하는 INIT 이벤트 신호를 수신하는 INIT 핀이 없으며,
    상기 칩셋에는 상기 INIT 이벤트 신호를 전송하는 INIT 핀이 없는 시스템.
  32. 제27항에 있어서,
    상기 가상 와이어 메시지에 속한 상기 복수의 이벤트에 프로세서 전력 감소 상태와 관련된 STPCLK 이벤트가 포함되고,
    상기 프로세서에는 상기 STPCLK 이벤트의 상태를 보고하는 STPCLK 이벤트 신호를 수신하는 STPCLK 핀이 없으며,
    상기 칩셋에는 상기 STPCLK 이벤트 신호를 전송하는 STPCLK 핀이 없는 시스템.
  33. 제27항에 있어서,
    상기 가상 와이어 메시지에 속한 상기 복수의 이벤트에 프로세서 감속(throttling)과 관련된 PROCHOT 이벤트가 포함되고,
    상기 프로세서에는 상기 PROCHOT 이벤트의 상태를 보고하는 PROCHOT 이벤트 신호를 수신하는 PROCHOT 핀이 없으며,
    상기 칩셋에는 상기 PROCHOT 이벤트 신호를 전송하는 PROCHOT 핀이 없는 시스템.
  34. 제27항에 있어서,
    상기 가상 와이어 메시지에 속한 상기 복수의 이벤트에 상기 버스의 A20M 신호 라인 마스킹과 관련된 A20M 이벤트가 포함되고,
    상기 프로세서에는 상기 A20M 이벤트의 상태를 보고하는 A20M 이벤트 신호를 수신하는 A20M 핀이 없으며,
    상기 칩셋에는 상기 A20M 이벤트 신호를 전송하는 A20M 핀이 없는 시스템.
  35. 제27항에 있어서,
    상기 프로세서 및 상기 칩셋은 각각 복수의 이벤트 핀을 포함하고,
    펌웨어 - 상기 펌웨어는 상기 프로세서에 의해 실행됨에 응답하여, 상기 프로세서로 하여금 각 이벤트마다 핀 전달과 가상 와이어 메시지 전달 사이에서 선택하도록 함 - 를 더 포함하는 시스템.
  36. 제27항에 있어서,
    요구에 응답하여 상기 칩셋이 상기 프로세서로 상기 가상 와이어 메시지를 전송하는 시스템.
  37. 제27항에 있어서,
    이벤트 상태 변화에 관계없이 상기 칩셋이 상기 프로세서로 상기 가상 와이어 메시지를 주기적으로 전송하는 시스템.
KR1020057007653A 2002-10-31 2003-10-23 이벤트 전달 KR100634248B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/287,018 US7051137B2 (en) 2002-10-31 2002-10-31 Event delivery
US10/287,018 2002-10-31

Publications (2)

Publication Number Publication Date
KR20050052547A KR20050052547A (ko) 2005-06-02
KR100634248B1 true KR100634248B1 (ko) 2006-10-16

Family

ID=32175589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057007653A KR100634248B1 (ko) 2002-10-31 2003-10-23 이벤트 전달

Country Status (8)

Country Link
US (1) US7051137B2 (ko)
EP (2) EP1556770B1 (ko)
KR (1) KR100634248B1 (ko)
CN (1) CN100492326C (ko)
AT (1) ATE422260T1 (ko)
AU (1) AU2003287195A1 (ko)
DE (1) DE60326081D1 (ko)
WO (1) WO2004042587A2 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080242B2 (en) * 2002-12-19 2006-07-18 Hewlett-Packard Development Company, L.P. Instruction set reconciliation for heterogeneous symmetric-multiprocessor systems
US7254726B2 (en) * 2003-11-10 2007-08-07 Dell Products L.P. System and method for managing system events by creating virtual events in an information handling system
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
US7596653B2 (en) * 2004-11-08 2009-09-29 Intel Corporation Technique for broadcasting messages on a point-to-point interconnect
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US8082304B2 (en) * 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7260007B2 (en) * 2005-03-30 2007-08-21 Intel Corporation Temperature determination and communication for multiple devices of a memory module
CN100349148C (zh) * 2005-05-09 2007-11-14 威盛电子股份有限公司 应用于计算机系统中的核心逻辑芯片
US8266327B2 (en) * 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
US7783809B2 (en) * 2005-06-30 2010-08-24 Intel Corporation Virtualization of pin functionality in a point-to-point interface
US7345585B2 (en) * 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US8726292B2 (en) * 2005-08-25 2014-05-13 Broadcom Corporation System and method for communication in a multithread processor
US7627706B2 (en) * 2007-09-06 2009-12-01 Intel Corporation Creation of logical APIC ID with cluster ID and intra-cluster ID
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
US7769938B2 (en) * 2007-09-06 2010-08-03 Intel Corporation Processor selection for an interrupt identifying a processor cluster
US8103816B2 (en) * 2008-10-28 2012-01-24 Intel Corporation Technique for communicating interrupts in a computer system
EP2330514B1 (en) 2009-12-07 2018-12-05 STMicroelectronics (Research & Development) Limited An integrated circuit package
EP2339795B1 (en) 2009-12-07 2013-08-14 STMicroelectronics (Research & Development) Limited Inter-chip communication interface for a multi-chip package
EP2339476B1 (en) * 2009-12-07 2012-08-15 STMicroelectronics (Research & Development) Limited Interface connecting dies in an IC package
EP2333673B1 (en) * 2009-12-07 2014-04-16 STMicroelectronics (Research & Development) Limited Signal sampling and transfer
EP2333830B1 (en) * 2009-12-07 2014-09-03 STMicroelectronics (Research & Development) Limited a package comprising a first and a second die coupled by a multiplexed bus
EP2339475A1 (en) * 2009-12-07 2011-06-29 STMicroelectronics (Research & Development) Limited Inter-chip communication interface for a multi-chip package
US8521937B2 (en) 2011-02-16 2013-08-27 Stmicroelectronics (Grenoble 2) Sas Method and apparatus for interfacing multiple dies with mapping to modify source identity
CN102331960A (zh) * 2011-07-07 2012-01-25 曙光信息产业股份有限公司 一种基于龙芯cpu设备的中断调试方法
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
GB2497525A (en) 2011-12-12 2013-06-19 St Microelectronics Ltd Controlling shared memory data flow
US9003172B2 (en) 2012-05-21 2015-04-07 International Business Machines Corporation Intelligently controlling loading of legacy option ROMs in a computing system
US8914566B2 (en) * 2012-06-19 2014-12-16 Teradyne, Inc. Managing interrupts
US9043521B2 (en) 2012-11-13 2015-05-26 Intel Corporation Technique for communicating interrupts in a computer system
CN103902425B (zh) * 2012-12-28 2018-07-17 研祥智能科技股份有限公司 计算机系统的状态监测方法及装置
CN105637494A (zh) 2013-11-14 2016-06-01 英特尔公司 用于处理定制事件的技术
US10439639B2 (en) 2016-12-28 2019-10-08 Intel Corporation Seemingly monolithic interface between separate integrated circuit die
US11762785B2 (en) * 2021-05-03 2023-09-19 Mellanox Technologies, Ltd. Peripheral component interconnect attributes shared using address bits

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2692694A1 (fr) 1992-06-17 1993-12-24 Hewlett Packard Co Système informatique adaptable au type de microprocesseur installé et procédé de détection du type de microprocesseur.
US5627842A (en) * 1993-01-21 1997-05-06 Digital Equipment Corporation Architecture for system-wide standardized intra-module and inter-module fault testing
US6192442B1 (en) * 1998-04-29 2001-02-20 Intel Corporation Interrupt controller
GB2339035B (en) * 1998-04-29 2002-08-07 Sgs Thomson Microelectronics A method and system for transmitting interrupts
GB9809201D0 (en) * 1998-04-29 1998-07-01 Sgs Thomson Microelectronics Microcomputer chips with interconnected address and data paths
US6169442B1 (en) * 1999-04-13 2001-01-02 Analog Devices, Inc. IC monitoring chip and a method for monitoring temperature of a component in a computer

Also Published As

Publication number Publication date
EP2015161B1 (en) 2013-07-17
AU2003287195A1 (en) 2004-06-07
CN1499388A (zh) 2004-05-26
WO2004042587A2 (en) 2004-05-21
EP2015161A1 (en) 2009-01-14
KR20050052547A (ko) 2005-06-02
WO2004042587A3 (en) 2004-10-07
EP1556770B1 (en) 2009-02-04
AU2003287195A8 (en) 2004-06-07
US7051137B2 (en) 2006-05-23
EP1556770A2 (en) 2005-07-27
DE60326081D1 (de) 2009-03-19
ATE422260T1 (de) 2009-02-15
CN100492326C (zh) 2009-05-27
US20040088460A1 (en) 2004-05-06

Similar Documents

Publication Publication Date Title
KR100634248B1 (ko) 이벤트 전달
US9032128B2 (en) Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared memory multi-processor systems
KR101310044B1 (ko) 복수의 코어 프로세서들에서의 하나 이상의 코어들의 워크로드 성능을 증가시키는 방법
KR101320791B1 (ko) 인터럽트 분산 스킴
JP5385272B2 (ja) コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム
EP4220421A1 (en) Streaming fabric interface
CN107636630B (zh) 中断控制器
US7783809B2 (en) Virtualization of pin functionality in a point-to-point interface
US20240126708A1 (en) Seamlessly Integrated Microcontroller Chip
US10120435B2 (en) Multiprocessing system with peripheral power consumption control
US8966149B2 (en) Emulation of an input/output advanced programmable interrupt controller
US20230342323A1 (en) Streaming fabric interface
US12026112B2 (en) Seamlessly integrated microcontroller chip
WO2023048799A1 (en) Device and method for reducing save-restore latency using address linearization
US20120166172A1 (en) Providing legacy computing compatibility

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110930

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20120919

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee