KR20180019593A - 확장된 메시지 시그널링된 인터럽트들 (msi) 메시지 데이터 - Google Patents
확장된 메시지 시그널링된 인터럽트들 (msi) 메시지 데이터 Download PDFInfo
- Publication number
- KR20180019593A KR20180019593A KR1020177036700A KR20177036700A KR20180019593A KR 20180019593 A KR20180019593 A KR 20180019593A KR 1020177036700 A KR1020177036700 A KR 1020177036700A KR 20177036700 A KR20177036700 A KR 20177036700A KR 20180019593 A KR20180019593 A KR 20180019593A
- Authority
- KR
- South Korea
- Prior art keywords
- msi
- pcie
- signal
- host
- message data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Information Transfer Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Bus Control (AREA)
Abstract
확장된 메시지 시그널링된 인터럽트들 (MSI) 데이터가 개시되어 있다. 일 양태에서, MSI 비트들는 시스템 레벨 식별자를 포함하도록 수정된다. 예시적인 양태에서, MSI 메시지 데이터의 상위 16 비트들은 시스템 레벨 식별자가 되도록 수정된다. MSI 메시지 데이터 내에 시스템 레벨 식별자를 제공함으로써, 인터럽트 제어기는 인터럽트 소스를 검증할 수 있다.
Description
우선권 출원들
본 출원은 2015년 6월 22일자로 출원되고 발명의 명칭이 "ENHANCED MESSAGE SIGNALED INTERRUPTS FOR SYSTEM IDENTIFICATION" 인 미국 특허 가출원 일련 번호 제62/182,800호에 대해 우선권 및 이익을 주장하고, 이는 본원에 그 전체가 참조로 통합된다.
본 출원은 또한 2015년 10월 20일자로 출원되고 발명의 명칭이 "EXTENDED MESSAGE SIGNALED INTERRUPTS (MSI) MESSAGE DATA" 인 미국 특허 가출원 일련 번호 제62/243,850호에 대해 우선권 및 이익을 주장하고, 이는 본원에 그 전체가 참조로 통합된다.
본 출원은 또한 2016년 6월 16일자로 출원되고 발명의 명칭이 "EXTENDED MESSAGE SIGNALED INTERRUPTS (MSI) MESSAGE DATA" 인 미국 특허 출원 일련 번호 제15/184,124호에 대해 우선권 및 이익을 주장하고, 이는 본원에 그 전체가 참조로 통합된다.
개시의 분야
개시의 기술은 일반적으로 주변 컴포넌트 인터커넥트 (PCI) 통신 버스에 관한 것이다.
이동 통신 디바이스들은 현대 사회에서 점차 보편화되고 있다. 이러한 이동 통신 디바이스들의 인기가 증가하는 이유는, 부분적으로는, 이러한 디바이스들에 대해 이용 가능한 기능성이 증가했기 때문이다. 이러한 증가된 기능성은 이동 통신 디바이스들 내에 더욱 복잡한 집적 회로들 (ICs) 을 포함시킴으로써 가능해진다. 이동 통신 디바이스들 내의 IC들의 수와 복잡성이 증가함에 따라, 다양한 IC들이 서로 통신할 필요성이 있다.
IC들이 서로 통신할 수 있게 하는 다양한 프로토콜들을 간략히 설명하는 몇 가지 표준들이 공개되어 있다. 널리 사용되는 프로토콜은 PCI 익스프레스 (PCIe) 프로토콜을 포함한 다양한 플래버들을 제공하는 주변 컴포넌트 인터커넥트 (PCI; Peripheral Component Interconnect) 프로토콜이다. IC 투 IC 통신 프로토콜들로서 유용하지만, PCI 및 PCIe 프로토콜들은 또한 케이블 또는 다른 커넥터를 통해 모바일 단말기를 원격 디바이스로 커플링하기 위해 사용될 수 있다.
PCIe 프로토콜은 PCIe 호환 버스를 가로질러 전송 및 수신될 수 있는 다양한 메시지 유형들을 정의한다. 이러한 메시지 유형 중 하나는 인터럽트이다. 인터럽트 신호가 호스트에 제공되고, 그리고 호스트는 인터럽트 신호의 소스가 인터럽트를 요청할 권한이 있는지 확인해야 한다. 현재, 호스트 내의 루트 컴플렉스 (root complex) 는 인터럽트 신호의 헤더로부터 식별자를 스트립하고 그 식별자를 사이드 채널 내의 개별 신호를 사용하여 메모리 관리 유닛에 제공한다. 식별자는 또한 시스템에서 사이드 채널 내의 인터럽트 제어기로 라우팅된다. 이러한 사이드 채널들의 사용은 전력 소비를 증가시킬 뿐만 아니라 추가 전도성 엘리먼트들을 필요로 할 수 있다. 따라서, 이러한 소스 식별자들을 제공하기 위해 사이드 채널에 대한 의존도를 줄일 필요성이 있다. 식별자 이외에도, 다른 정보를 포함하는 다른 메시지들이 사이드 채널들에서 전송될 수 있으며 이러한 사이드 채널들에 대한 의존도를 줄여야 할 필요성이 이러한 다른 메시지들에도 적용될 수 있다.
상세한 설명에 개시된 양태들은 확장된 메시지 시그널링된 인터럽트 (MSI; message signaled interrupt) 메시지 데이터를 포함한다. 본 개시의 예시적인 양태들은, 확장된 MSI 메시지 데이터의 미사용 비트들을 의미있는 데이터로 대체함으로써 인터럽트를 처리하는 것을 돕는 부가적인 정보를 위해 확장된 MSI 메시지 데이터를 사용하는 것을 고려한다. 하나의 예시적인 양태에서, MSI 비트들은 추가 정보를 포함하도록 수정되며, 이는 시스템 레벨 식별자 (때로는 소스 식별자로서 지칭될 수 있음) 일 수 있다. 예시적인 양태에서, 확장된 MSI 메시지 데이터의 상위 16 비트들은 시스템 레벨 식별자를 포함할 수 있는 추가 정보를 포함하도록 수정되며, 그 크기는 전체 16 비트들보다 작을 수 있지만 전체 16 비트들까지일 수 있다. 확장된 MSI 메시지 데이터 내에 시스템 레벨 식별자를 제공함으로써, 인터럽트 제어기는 인터럽트 소스를 검증할 수 있다. 다른 예시적인 양태들은 확장된 MSI 메시지 데이터에 인터럽트 우선순위 정보 또는 인터럽트 조절 정보를 제공할 수 있다. 이력적으로 사용되지 않은 MSI 비트들의 바디에 추가의 확장된 MSI 메시지 데이터를 제공함으로써, 사이드 채널들에 대한 필요성을 줄일 수 있으며, 이는 배선을 단순화하고 전력 소비를 줄인다.
이와 관련하여, 일 양태에서, 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템에서 정보를 전달하는 방법이 개시된다. 방법은 호스트에서 신호를 수신하는 단계를 포함한다. 신호는 헤더를 포함한다. 신호는 또한 바디를 포함한다. 바디는 PCIe 엔드포인트로부터의 처음 16 비트들 중 적어도 하나에 확장된 MSI 메시지 데이터를 포함한다. 방법은 또한 호스트의 루트 컴플렉스에서, MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 MSI 벡터를 형성하기 위해 신호로부터 바디를 추출하는 단계를 포함한다. 방법은 또한 시스템 네트워크 온 칩 (SNoC) 을 통해, 상기 MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 MSI 벡터를 호스트 내의 인터럽트 제어기에 전달하는 단계를 포함한다.
또 다른 양태에서, PCIe 시스템에서 정보를 전달하는 방법이 개시된다. 방법은 PCIe 시스템 내의 슬레이브에서 신호를 생성하는 단계를 포함한다. 신호는 헤더를 포함한다. 신호는 또한 바디를 포함한다. 바디는 처음 16 비트들 중 적어도 하나에 확장된 MSI 메시지 데이터를 포함한다. 방법은 또한 신호를 상기 PCIe 시스템의 호스트로 전송하는 단계를 포함한다.
또 다른 양태에서, PCIe 시스템 내의 호스트가 개시된다. 호스트는 SNoC 버스를 포함한다. 호스트는 또한 PCIe 버스 인터페이스를 포함한다. PCIe 버스 인터페이스는 PCIe 버스에 커플링되도록 구성된다. PCIe 버스 인터페이스는 또한 확장된 MSI 메시지 데이터를 갖는 신호를 PCIe 버스로부터 수신하도록 구성된다. 호스트는 또한 SNoC 버스에 커플링된 인터럽트 제어기를 포함한다. 호스트는 또한 SNoC 버스에 커플링된 메모리 관리 유닛을 포함한다. 호스트는 또한 PCIe 버스 인터페이스 및 메모리 관리 유닛에 커플링된 루트 컴플렉스를 포함한다. 루트 컴플렉스는, MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 MSI 벡터를 형성하기 위해 신호로부터 바디를 추출하고 MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 MSI 벡터를 메모리 관리 유닛 및 SNoC 버스를 통해 인터럽트 제어기로 전달하도록 구성된다.
또 다른 양태에서, PCIe 시스템 내의 슬레이브가 개시된다. 슬레이브는 PCIe 버스에 커플링되도록 구성된 PCIe 버스 인터페이스를 포함한다. 슬레이브는 또한 능력 레지스터를 포함한다. 능력 레지스터는, 슬레이브가 확장된 MSI 메시지 데이터를 사용할 수 있음을 나타내는 정보를 포함한다. 슬레이브는 또한 제어 시스템을 포함한다. 제어 시스템은 인터럽트 필요 조건을 검출하도록 구성된다. 제어 시스템은 또한 헤더 및 확장된 MSI 메시지 데이터를 포함하는 바디를 포함하는 신호를 어셈블링하도록 구성된다. 제어 시스템은 또한 신호를 PCIe 버스를 통해 호스트로 전송하도록 구성된다.
또 다른 양태에서, PCIe 시스템이 개시된다. PCIe 시스템은 PCIe 버스를 포함한다. PCIe 시스템은 또한 PCIe 슬레이브를 포함한다. PCIe 슬레이브는 PCIe 버스에 커플링된 슬레이브 PCIe 버스 인터페이스를 포함한다. PCIe 슬레이브는 또한 슬레이브 제어 시스템을 포함한다. 슬레이브 제어 시스템은 인터럽트 필요 조건을 검출하도록 구성된다. 슬레이브 제어 시스템은 또한 헤더 및 확장된 MSI 메시지 데이터를 포함하는 바디를 포함하는 신호를 어셈블링하도록 구성된다. 슬레이브 제어 시스템은 또한 신호를 PCIe 버스를 통해 호스트로 전송하도록 구성된다. PCIe 시스템은 또한 호스트를 포함한다. 호스트는 SNoC 버스를 포함한다. 호스트는 또한 PCIe 버스에 커플링된 호스트 PCIe 버스 인터페이스를 포함한다. 호스트 PCIe 버스 인터페이스는 또한 신호를 수신하도록 구성된다. 호스트는 또한 SNoC 버스에 커플링된 인터럽트 제어기를 포함한다. 호스트는 또한 호스트 PCIe 버스 인터페이스에 커플링된 루트 컴플렉스를 포함한다. 루트 컴플렉스는, MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 MSI 벡터를 형성하기 위해 신호로부터 바디를 추출하고 MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 MSI 벡터를 SNoC 버스를 통해 인터럽트 제어기로 전달하도록 구성된다.
또 다른 양태에서, PCIe 시스템에서 신호 소스를 식별하는 방법이 개시된다. 방법은 PCIe 엔드포인트로부터 헤더 내의 요청자 식별자 및 바디 내의 소스 식별자를 갖는 신호를 호스트에서 수신하는 단계를 포함한다. 방법은 또한 호스트의 루트 컴플렉스에서, 요청자 식별자를 제거하는 단계를 포함한다. 방법은 또한 MSI 벡터의 바디에 소스 식별자를 여전히 갖는 MSI 벡터를 형성하기 위해 바디를 추출하는 단계를 포함한다. 방법은 또한 SNoC를 통해, MSI 벡터의 바디에 소스 식별자를 여전히 갖는 MSI 벡터를 호스트 내의 인터럽트 제어기에 전달하는 단계를 포함한다.
또 다른 양태에서, PCIe 시스템에서 신호 소스를 식별하는 방법이 개시된다. 방법은 PCIe 시스템 내의 슬레이브에서 신호를 생성하는 단계를 포함한다. 신호는 요청자 식별자를 포함하는 헤더를 포함한다. 신호는 또한 소스 식별자를 포함하는 바디를 포함한다. 방법은 또한 신호를 상기 PCIe 시스템의 호스트로 전송하는 단계를 포함한다.
또 다른 양태에서, 호스트가 개시된다. 호스트는 PCIe 버스에 커플링되도록 구성된 버스 인터페이스를 포함한다. 호스트는 또한 버스 인터페이스에 커플링된 루트 컴플렉스를 포함한다. 루트 컴플렉스는 버스 인터페이스로부터 소스 식별자 및 신호의 헤더 내의 요청자 식별자를 포함하는 신호를 수신하도록 구성된다. 루트 컴플렉스는 또한 신호로부터 헤더를 제거하도록 구성된다. 루트 컴플렉스는 또한 MSI 벡터의 바디 내의 소스 식별자를 포함하는 신호의 바디를 포함하는 인터럽트 제어기에 MSI 벡터를 전송하도록 구성된다. 인터럽트 제어기는 MSI 벡터의 바디에 소스 식별자를 포함하는 MSI 벡터를 수신하도록 구성된다.
또 다른 양태에서, PCIe 시스템 내의 슬레이브가 개시된다. 슬레이브는 PCIe 버스에 커플링되도록 구성된 PCIe 버스 인터페이스를 포함한다. 슬레이브는 또한, 슬레이브가 인터럽트 신호의 바디에서 소스 식별자를 사용할 수 있음을 나타내는 정보를 포함하는 능력 레지스터를 포함한다. 슬레이브는 또한 제어 시스템을 포함한다. 제어 시스템은 인터럽트 필요 조건을 검출하도록 구성된다. 제어 시스템은 또한 요청자 식별자를 포함하는 헤더 및 소스 식별자를 포함하는 바디를 포함하는 신호를 어셈블링하도록 구성된다. 제어 시스템은 또한 신호를 PCIe 버스를 통해 호스트로 전송하도록 구성된다.
또 다른 양태에서, 신호 소스를 식별하는 방법이 개시된다. 방법은 PCIe 엔드포인트로부터 헤더 내의 요청자 식별자 및 바디 내의 소스 식별자를 갖는 신호를 호스트에서 수신하는 단계를 포함한다. 방법은 또한 호스트의 루트 컴플렉스에서, 요청자 식별자를 제거하는 단계를 포함한다. 방법은 또한 MSI 벡터의 바디에 시스템 레벨 식별자를 여전히 갖는 MSI 벡터를 형성하기 위해 바디를 추출하는 단계를 포함한다. 방법은 또한 SNoC를 통해, MSI 벡터의 바디에 시스템 레벨 식별자를 여전히 갖는 MSI 벡터를 호스트 내의 인터럽트 제어기에 전달하는 단계를 포함한다.
도 1은 추가로 도시된 중앙 처리 디바이스 (CPU) 의 양태들을 갖는 예시적인 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템의 블록도이다.
도 2는 PCIe 엔드포인트로부터 PCIe 호스트로 전송되는 종래의 메시지 시그널링된 인터럽트 (MSI) 신호 또는 패킷을 도시한다.
도 3은 MSI 신호의 바디에 확장된 MSI 메시지 데이터를 갖는 본 개시의 예시적인 양태에 따른 MSI 신호 또는 패킷을 도시한다.
도 4는 도 1의 엘리먼트들 간의 예시적인 신호 메시지 흐름도를 나타낸다.
도 5는 본 개시의 예시적인 양태들에 따라 내부의 확장된 MSI 메시지 데이터와 호스트 내의 루트 컴플렉스로부터 호스트 내의 인터럽트 제어기로 전송될 수 있는 예시적인 시스템 네트워크 온 칩 (SNoC) 패킷 또는 MSI 벡터를 도시한다.
도 6은 도 1의 PCIe 시스템과 연관된 예시적인 방법을 도시하는 흐름도이다.
도 7은 호스트 측 관점에서 예시적인 양태에 따른 확장된 MSI 메시지 데이터를 교환하는 프로세스를 나타내는 흐름도이다.
도 8은 슬레이브 측 관점에서 예시적인 양태에 따른 메시지 데이터를 교환하는 프로세스를 나타내는 흐름도이다.
도 9는 다수의 엔드포인트들이 단일 시스템 레벨 식별자를 공유하는 시스템의 간략화된 블록도를 도시한다.
도 10은 도 1의 PCIe 시스템을 포함할 수 있는 예시적인 프로세서 기반 시스템의 블록도이다.
도 2는 PCIe 엔드포인트로부터 PCIe 호스트로 전송되는 종래의 메시지 시그널링된 인터럽트 (MSI) 신호 또는 패킷을 도시한다.
도 3은 MSI 신호의 바디에 확장된 MSI 메시지 데이터를 갖는 본 개시의 예시적인 양태에 따른 MSI 신호 또는 패킷을 도시한다.
도 4는 도 1의 엘리먼트들 간의 예시적인 신호 메시지 흐름도를 나타낸다.
도 5는 본 개시의 예시적인 양태들에 따라 내부의 확장된 MSI 메시지 데이터와 호스트 내의 루트 컴플렉스로부터 호스트 내의 인터럽트 제어기로 전송될 수 있는 예시적인 시스템 네트워크 온 칩 (SNoC) 패킷 또는 MSI 벡터를 도시한다.
도 6은 도 1의 PCIe 시스템과 연관된 예시적인 방법을 도시하는 흐름도이다.
도 7은 호스트 측 관점에서 예시적인 양태에 따른 확장된 MSI 메시지 데이터를 교환하는 프로세스를 나타내는 흐름도이다.
도 8은 슬레이브 측 관점에서 예시적인 양태에 따른 메시지 데이터를 교환하는 프로세스를 나타내는 흐름도이다.
도 9는 다수의 엔드포인트들이 단일 시스템 레벨 식별자를 공유하는 시스템의 간략화된 블록도를 도시한다.
도 10은 도 1의 PCIe 시스템을 포함할 수 있는 예시적인 프로세서 기반 시스템의 블록도이다.
이하, 도시된 도면들을 참조하여, 본 개시의 여러 예시적인 양태들을 설명한다. 단어 "예시적인"은 "예, 예증, 또는 예시로서 기능하는"을 의미하도록 본원에서 사용된다. "예시적인" 것으로서 본원에서 설명되는 임의의 양태는 다른 양태들에 비해 반드시 선호되거나 또는 유리한 것으로서 해석되지는 않아야 한다.
상세한 설명에 개시된 양태들은 확장된 메시지 시그널링된 인터럽트 (MSI) 메시지 데이터를 포함한다. 본 개시의 예시적인 양태들은, 확장된 MSI 메시지 데이터의 미사용 비트들을 의미있는 데이터로 대체함으로써 인터럽트를 처리하는 것을 돕는 부가적인 정보를 위해 확장된 MSI 메시지 데이터를 사용하는 것을 고려한다. 하나의 예시적인 양태에서, MSI 비트들은 추가 정보를 포함하도록 수정되며, 이는 시스템 레벨 식별자 (때로는 소스 식별자로서 지칭될 수 있음) 일 수 있다. 예시적인 양태에서, 확장된 MSI 메시지 데이터의 상위 16 비트들은 시스템 레벨 식별자를 포함할 수 있는 추가 정보를 포함하도록 수정되며, 그 크기는 전체 16 비트들보다 작을 수 있지만 전체 16 비트들까지될 수 있다. 확장된 MSI 메시지 데이터 내에 시스템 레벨 식별자를 제공함으로써, 인터럽트 제어기는 인터럽트 소스를 검증할 수 있다. 다른 예시적인 양태들은 확장된 MSI 메시지 데이터에 인터럽트 우선순위 정보 또는 인터럽트 조절 정보를 제공할 수 있다. 이력적으로 사용되지 않은 MSI 비트들의 바디에 추가의 확장된 MSI 메시지 데이터를 제공함으로써, 사이드 채널들에 대한 필요성을 줄일 수 있으며, 이는 배선을 단순화하고 전력 소비를 줄인다.
이와 관련하여, 도 1은 MSI 벡터에서의 추출 및 사용을 위해 신호의 바디 내에서 확장된 MSI 메시지 데이터의 교환을 지원하도록 구성된 예시적인 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템 (100) 의 블록도이다. 특히, 도 1은 중앙 처리 디바이스 (CPU), 시스템 온칩 (SoC) 등일 수 있는 호스트 (102) 를 포함하는 PCIe 시스템 (100) 을 도시한다. 호스트 (102) 는 PCIe 버스 (106) 를 통해 PCIe 엔드포인트들 (104(1)-104(M)) 에 커플링된다. PCIe 프로토콜은 호스트와 엔드포인트들 간의 포인트 투 포인트 (point to point) 연결을 요구하므로 각 연결은 자체 버스로 간주될 수 있음을 이해해야 한다. 그러나, 편의상, 복수의 연결들은 여기서 PCIe 버스 (106) 로 지칭된다. 또한, 포인트 투 멀티포인트 능력은 허브 또는 스위치 (108) 의 사용을 통해 달성될 수 있다. 도시된 바와 같이, PCIe 엔드포인트들 (104(1)-104(N)) 은 PCIe 버스 (106) 내의 포인트 투 포인트 연결들에 의해 접속되고, PCIe 엔드포인트들 (104(N+1)-104(M)) 은 스위치 (108) 에 커플링된다. PCIe 시스템 (100) 은 본 개시의 범위를 벗어나지 않으면서 다수의 스위치들 (도시되지 않음) 또는 스위치들 없음 (도시되지 않음) 을 포함할 수 있다는 것을 이해해야 한다. 마찬가지로, 임의의 스위치에 커플링된 엔드포인트들의 수는 본 개시의 범위를 벗어나지 않고도 다양할 수 있다. PCIe 엔드포인트들 (104(1)-104(M)) 각각은 또한 호스트 (102) 에 대해 슬레이브로 간주될 수 있다.
도 1을 계속 참조하면, 각 PCIe 엔드포인트 (104(1)-104(M)) 는 PCIe 버스 (106) 에 커플링하도록 구성되는 각각의 슬레이브 PCIe 버스 인터페이스 (110(1)-110(M)) 를 포함한다. 또한, 각 PCIe 엔드포인트 (104(1)-104(M)) 는 제어 시스템 (112(1)-112(M)) 을 포함할 수 있다. 제어 시스템 (112(1)-112(M)) 은 대응하는 능력 레지스터 (116(1)-116(M)) 와 상호 연동할 수 있다. 능력 식별자들은 그 안에 저장될 수 있으며, 각각의 능력은 호스트 (12) 에 의해 판독될 수 있는 고유 능력 식별자를 갖는다. 단일 능력 레지스터들로서 기술되었지만, 본 개시는 또한 능력 레지스터들의 뱅크들도 고려하며, 각각의 레지스터는 본 개시의 범위를 벗어나지 않고도 능력들의 총 수의 서브세트들 또는 상이한 능력을 나타낸다는 것을 이해해야 한다. 능력 레지스터들의 일반적인 개념은 PCIe 표준에 잘 설명되어 있다. 본 개시의 예시적인 양태들은 아래에 개략된 바와 같은 새로운 능력 레지스터를 추가한다. 또한, 각각의 PCIe 엔드포인트 (104(1)-104(M)) 는 대응하는 구성 레지스터 (118(1)-118(M)) 를 가질 수 있다.
또한, 도 1을 계속 참조하면, 호스트 (102) 는 신호가 PCIe 버스 (106) 상으로 송신되거나 PCIe 버스 (106) 로부터 수신되도록 하는 버스 인터페이스 (120) 를 포함할 수 있다. 버스 인터페이스 (120) 는 PCIe 프로토콜의 포인트 투 포인트 특성을 고려하여 복수의 포인트 투 포인트 인터페이스들을 포함할 수 있음을 주목한다. 그러나, 그러한 개개의 인터페이스들은 간략화를 위해 도시되지 않는다. 호스트 (102) 는 메모리 관리 유닛 (124) 과 통신하는 PCIe 루트 컴플렉스 (122) 를 더 포함한다. 메모리 관리 유닛 (124) 은 호스트 (102) 에 대한 내부 버스로서 동작하는 시스템 네트워크 온 칩 (SNoC)(126) 에 커플링된다. 특히, 메모리 관리 유닛 (124) 은 SNoC (126) 를 통해 인터럽트 제어기 (128) 와 통신할 수 있다.
또한, 종래의 시스템에서, PCIe 엔드포인트가 인터럽트를 생성하면, PCIe 엔드포인트는 도 2에 도시된 바와 같이 MSI 패킷 또는 신호 (200) 를 생성하고 PCIe 버스를 통해 PCIe 루트 컴플렉스에 MSI 신호 (200) 를 전송한다. MSI 신호 (200) 는 헤더 (202) 내의 메시지 제어 필드 (206) 에서의 요청자 식별자 (204)(요청자 ID로서 도면에서 참조됨) 를 갖는 헤더 (202) 를 갖는다. MSI 신호 (200) 는 헤더 (202) 및 바디 (210) 에 목적지 어드레스 (208) 를 더 갖는다. MSI 메시지 데이터 (212) 는 바디 (210) 의 최종 16 비트들에 포함된다. 종래의 시스템들에서, 바디 (210) 의 처음 16 비트들 (214) 은 리저브되고 사용되지 않는다. 종래의 시스템을 계속 참조하면, PCIe 루트 컴플렉스는 MSI 신호 (200) 로부터 헤더 (202) 를 제거하고 인터럽트를 메모리 관리 유닛에 전달하며, 요청자 식별자 (204) 는 사이드 채널 내의 개별 신호를 통해 제공된다. 메모리 관리 유닛은 사이드 채널에서 요청자 식별을 유지하는 SNoC를 통해 인터럽트 제어기로 차례로 인터럽트를 전달한다. 인터럽트 우선 순위 및 인터럽트 조절과 같은 추가 정보는 마찬가지로 헤더 (202) 에 포함될 수 있지만, PCIe 루트 컴플렉스에 의해 스트립되어 사이드 밴드를 통해 인터럽트 제어기로 전송될 수도 있다. 이러한 사이드 채널들의 사용은 여분의 배선을 필요로 하고, 추가 채널이 구동되어야 하므로 전력 소비를 증가시키고, 그렇지 않으면 바람직하지 않을 수 있다.
본 개시의 예시적인 양태들은 MSI 신호의 바디에 확장된 MSI 메시지 데이터를 포함시킴으로써 사이드 채널에 대한 필요성을 제거한다. 본 발명의 예시적인 양태에 따른 예시적인 MSI 패킷 또는 신호 (300) 가 도 3을 참조하여 제공된다. 도 2의 MSI 신호 (200) 에서와 같이, MSI 신호 (300) 는 헤더 (302) 내의 메시지 제어 필드 (306) 에서의 요청자 식별자 (304)(요청자 ID로서 도면에서 참조됨) 를 갖는 헤더 (302) 를 포함한다. MSI 신호 (300) 는 헤더 (302) 및 바디 (310) 에 목적지 어드레스 (308) 를 더 갖는다. MSI 메시지 데이터 (312) 는 바디 (310) 의 최종 16 비트들에 포함된다. 바디 (310) 의 처음 16 비트들 (314) 은 확장된 MSI 메시지 데이터 (316) 를 유지하는데 사용된다. 예시적인 양태에서, 확장된 MSI 메시지 데이터 (316) 는 소스 식별자 또는 시스템 레벨 식별자일 수 있다. 시스템 레벨 식별자는 디바이스 식별자와 동일할 필요는 없으며, 예시적인 양태들에서, 다수의 디바이스들은 동일한 시스템 레벨 식별자를 가질 수 있음에 유의한다. 예시적인 양태에서, 시스템 레벨 식별자는 그 대응하는 구성 레지스터 (118(1)-118(M)) 를 사용함으로써 도 1의 PCIe 엔드포인트들 (104(1)-104(M)) 중 하나에 의해 생성될 수 있다. 이 구성 레지스터 (118(1)-118(M)) 의 내용은 호스트 (102) 상에서 실행되는 소프트웨어에 의해 설정될 수 있다. 대안으로, 시스템 레벨 식별자는 PCIe 열거 프로세스에 의해 제공된 요청자 식별자 (304) 와 동일할 수 있다. 다른 예시적인 양태들에서, 확장된 MSI 메시지 데이터는 인터럽트 우선순위 정보 또는 인터럽트 조절 정보일 수 있다. 또 다른 예시적인 양태에서, 확장된 MSI 메시지 데이터는 추가 데이터일 수 있고, 그렇지 않으면 MSI 메시지 데이터 (312) 에 놓여질 것이다. 확장된 MSI 메시지 데이터는 이후 사이드 채널들에 대한 필요없이 인터럽트 제어기 (128) 에 전달된 MSI 벡터의 바디에 보존될 수 있다.
바디 (310) 의 처음 16 비트들 (314) 이 시스템 레벨 식별자를 제공하는데 사용될 수 있다고 특별히 고려되지만, 본 발명은 그렇게 제한되지 않는다. 이와 관련하여, 위에서 언급한 바와 같이, 바디 (310) 는 인터럽트 우선순위 정보, 인터럽트 조절 정보 (인터럽트를 실행하기 전에 미리 결정된 수의 인터럽트들을 모으기 위해 사용될 수 있음) 등과 같은 확장된 메시지 데이터를 반송할 수 있다. 또한, 시스템 레벨 식별자가 처음 16 비트들 (314) 의 16 비트들 모두를 사용할 수 있다고 고려되지만, 본 발명은 그렇게 제한되지 않는다. 즉, 시스템 레벨 식별자에 16 비트들보다 적은 비트가 사용될 수 있으며, 임의의 나머지 비트들은 인터럽트 우선순위 정보, 인터럽트 조절 정보 등과 같은 다른 정보를 반송하는데 사용될 수 있다. 또 다른 양태에서, 일반적으로 단지 16 비트들인, MSI 메시지 데이터 (312) 는 바디 (310) 의 전체 32 비트들을 사용하도록 확장될 수 있다.
도 4는 도 1의 엘리먼트들 간의 신호 메시지 흐름도 (400) 를 나타낸다. 예시를 위해, PCIe 엔드포인트 (104(1)) 가 사용되지만, 다른 PCIe 엔드포인트들 (104(2)-104(M)) 중 임의의 것이 또한 유사한 방식으로 동작할 수 있음을 이해해야 한다. 호스트 (102) 는 신호 메시지 흐름도 (400) 와 연관된 프로세스의 특정 동작들을 개시하는 프로세서상에서 실행되는 소프트웨어 형태의 PCIe 드라이버 (402) 를 가질 수 있다. 이와 관련하여, 열거 (도시되지 않음) 이후, PCIe 드라이버 (402) 는 PCIe 루트 컴플렉스 (122) 로 하여금 엔드포인트 (EP) 능력 가능 신호 (404) 를 전송함으로써 능력 질의를 개시하게 할 수 있다. 다음, PCIe 루트 컴플렉스 (122) 는 EP 질의 가능 메시지 (406) 를 PCIe 엔드포인트 (104(1)) 로 전송할 수 있다. 이러한 EP 질의 가능 메시지 (406) 는 능력 레지스터 (116(1)) 가 판독되도록 할 수 있다. PCIe 엔드포인트 (104(1)) 는 PCIe 엔드포인트 (104(1)) 가 확장된 MSI 메시지 데이터를 사용할 수 있음을 나타내는 긍정 신호 (408) 를 되돌려 전송한다. 긍정 신호 (408) 에 기초하여, PCIe 루트 컴플렉스 (122) 는 PCIe 드라이버 (402) 에 계속되는 긍정 신호 (410) 를 전달할 수 있다. 다음, PCIe 드라이버 (402) 는 PCIe 루트 컴플렉스 (122) 에 전송되는 인에이블 능력 신호 (412) 를 생성할 수 있다. 다음, PCIe 루트 컴플렉스 (122) 는, PCIe 엔드포인트 (104(1)) 가 MSI 신호 (300) 의 바디 (310) 에서 확장된 MSI 메시지 데이터를 사용하도록 지시하는 인에이블 가능 능력 커맨드 (414) 를 PCIe 엔드포인트 (104(1)) 에 전송한다. 또한, PCIe 루트 컴플렉스 (122) 는, 인터럽트 제어기 (128) 가 수신하는 임의의 MSI 벡터의 바디 내의 확장된 MSI 메시지 데이터를 찾도록 인터럽트 제어기 (128) 를 구성하기 위해 커맨드 (416) 를 인터럽트 제어기 (128) 에 전송하다. 확장된 MSI 메시지 데이터가 시스템 레벨 식별자인 경우, 메모리 관리 유닛 (124) 에 상주하는 액세스 제어 구성 소프트웨어 (418) 와 같은 소프트웨어는, 신호 (420) 를 통해 시스템 레벨 식별자를 설정하기 위해 적절한 구성 레지스터들 (118(1)-118(M)) 에 기록 커맨드가 전송되는 커맨드일 수 있다. 본 개시의 예시적인 비제한적인 양태들이 메모리 관리 유닛 (124) 에 액세스 제어 구성 소프트웨어 (418) 를 제공하지만, 액세스 제어 구성 소프트웨어 (418) 는 마찬가지로 호스트 (102) 내의 제어기 또는 프로세서에 존재할 수도 있다. 그러나, 본 개시는 그렇게 제한되지 않으며, 이 기능은 호스트 (102) 에서 펌웨어로 구현될 수 있다. 또한, 호스트 (102) 내의 프로세서 또는 제어기는 액세스 제어 구성 소프트웨어 (418) 에 대한 하나의 위치이지만, 액세스 제어 구성 소프트웨어 (418) 의 기능들이 호스트 (102) 외부에서 수행될 수 있다는 것을 이해해야 한다.
도 4를 계속 참조하면, 신호 (420) 는 PCIe 루트 컴플렉스 (122) 로 하여금 세트 시스템 레벨 식별자 신호 (422) 를 PCIe 엔드포인트 (104(1)) 에 전송하게 하며, PCIe 엔드포인트 (104(1)) 는 구성 레지스터 (118(1)) 에서 시스템 레벨 식별자를 설정한다. 호스트 (102) 내의 PCIe 드라이버일 수 있는 클라이언트 드라이버 (424) 는 메시지 데이터를 신호 (426) 를 통해 PCIe 엔드포인트 (104(1)) 내의 적절한 레지스터에 설정한다. 예시적인 비제한적인 양태에서, 클라이언트 드라이버 (424) 는 호스트 (102) 내의 임의의 프로세서 또는 제어기 상에서 실행할 수 있거나 또는 필요하거나 원하는 경우에 호스트 (102) 외부에 위치될 수도 있다.
도 4를 계속 참조하면, PCIe 엔드포인트 (104(1)) 는 인터럽트 신호 (428) 를 생성하고 인터럽트 신호 (428) 를 PCIe 버스 (106) 를 통해 PCIe 루트 컴플렉스 (122) 에 전송한다. 다음 PCIe 루트 컴플렉스 (122) 는 MSI 벡터 (430) 를 갖는 메시지 페이로드를 메모리 관리 유닛 (124) 에 전달한다. 다음 메모리 관리 유닛 (124) 은 SNoC (126) 를 사용하여 MSI 벡터 (432) 의 바디 내의 확장된 MSI 메시지 데이터와 MSI 벡터 (432) 를 인터럽트 제어기 (128) 에 전달한다. 다음, 인터럽트 제어기 (128) 는 MSI 벡터 (432) 를 파싱하고, 예를 들어 시스템 레벨 식별자일 수 있는 확장된 MSI 메시지 데이터를 추출한다. 확장된 MSI 메시지 데이터가 시스템 레벨 식별자인 경우, 추출된 시스템 레벨 식별자는 (예를 들어, 룩업 테이블 (미도시) 등으로) 인터럽트를 요청하도록 허가된 엔티티들과 비교되고, 그리고 시스템 레벨 식별자가 허가되면, 인터럽트 제어기 (128) 는 인터럽트 실행을 위해 인터럽트 허가 신호 (434) 를 메모리 관리 유닛 (124) 에 전송한다. 확장된 MSI 메시지 데이터가 시스템 레벨 식별자 이외의 데이터를 포함하는 경우, 추가 데이터는 마찬가지로 MSI 벡터 (432) 의 바디 내에 있고, MSI 벡터 (432) 로부터 추출한 후에 적절히 사용된다.
MSI 벡터 (432) 는 도 5에 도시된 바와 같이 MSI 메시지 데이터 (500) 및 확장된 MSI 메시지 데이터 (502) 를 포함한다. 예시적인 양태에서, MSI 메시지 데이터 (500) 는 MSI 벡터 (432) 의 최종 16 비트들 내에 있고 확장된 MSI 메시지 데이터 (502) 는 처음 16 비트들 내에 있다. 상술한 바와 같이, 확장된 MSI 메시지 데이터 (502) 는 시스템 레벨 식별자, 인터럽트 우선순위 정보, 인터럽트 조절 정보, 추가 MSI 데이터 등일 수 있다. 또한, 확장된 MSI 메시지 데이터 (502) 에 대해 16 비트들이 이용 가능하지만, 모든 16 비트트 보다 적은 비트의 사용은 여전히 본 개시의 범위 내에 있다.
도 4의 신호 메시지 흐름도 (400) 와 실질적으로 유사한 예시적인 프로세스의 흐름도가 도 6에 제공된다. 이와 관련하여, 프로세스 (600) 는 시스템 레벨 흐름도를 제공한다. 프로세스 (600) 는 PCIe 루트 컴플렉스 (122) 가 (예를 들어, EP 질의 가능 메시지 (406) 와 같은) 능력 질의를 PCIe 엔드포인트 (104(1)) 에 전송하는 것으로 시작한다 (블록 602). PCIe 루트 컴플렉스 (122) 는, PCIe 엔드포인트 (104(1)) 가 MSI 신호 (300) 의 바디 (310) 에서 확장된 MSI 메시지 데이터 (예를 들어, 시스템 레벨 식별자) 를 사용할 수 있다고 나타내는 능력 응답 (예를 들어, 긍정 신호 (408)) 을 PCIe 엔드포인트 (104(1)) 로부터 수신한다 (블록 604). PCIe 루트 컴플렉스 (122) 는 PCIe 엔드포인트 (104(1)) 가 확장된 MSI 메시지 데이터의 사용을 인에이블하도록 명령한다 (블록 606)(예를 들어, 인에이블 능력 커맨드 (414)). PCIe 루트 컴플렉스 (122) 는 또한, MSI 벡터의 바디 내의 확장된 MSI 메시지 데이터 (502) 를 찾도록 인터럽트 제어기 (128) 를 구성한다 (블록 608)(예를 들어, 커맨드 (416)).
도 6을 계속 참조하면, PCIe 엔드포인트 (104(1)) 는 헤더 (302) 내의 요청자 식별자 (304), 및 PCIe 루트 컴플렉스 (122) 에서 수신되는, MSI 신호의 바디 (310) 내의 확장된 MSI 메시지 데이터 (316) 에 의해 인터럽트 신호 (428) 를 생성한다 (블록 610). PCIe 루트 컴플렉스 (122) 에서, PCIe 루트 컴플렉스 (122) 는 헤더 (302) 를 제거하고, 메모리 관리 유닛 (124) 에 인터럽트를 전달한다 (블록 612)(예를 들어, MSI 벡터 (432)). 메모리 관리 유닛 (124) 은 MSI 벡터 (432) 를 SNoC (126) 를 통해 인터럽트 제어기 (128) 에 전달한다 (블록 614). 인터럽트 제어기 (128) 는 나타낸 바와 같이 확장된 MSI 메시지 데이터를 사용하며, 이것은 확장된 MSI 메시지 데이터가 시스템 레벨 식별자인 경우, 인터럽트 제어기 (128) 는 시스템 레벨 식별자에 기초하여 인터럽트를 검증한다 (블록 616). 일단 요청 엔티티가 호스트를 인터럽트하도록 허용된다고 인터럽트 제어기 (128) 가 검증하면, 인터럽트 제어기 (128) 는 적절한 인터럽트 동작(들)을 취한다.
도 6의 프로세스 (600) 가 본 개시의 예시적인 프로세스를 도시하지만, 도 7 및 도 8은 각각 호스트 및 슬레이브 관점의 플로우차트를 제공한다. 이와 관련하여, 도 7은 프로세스 (700) 를 도시한다. 프로세스 (700) 는, 도 1의 PCIe 시스템 (100) 이 시작하고 PCIe 시스템 (100) 내에 엘리먼트들을 열거할 때 시작한다 (블록 702). 열거 프로세스는 PCIe 프로토콜에 잘 설명되어 있으며 더 이상 논의되지 않는다. 호스트 (102) 는 능력 질의를 PCIe 엔드포인트들 (104(1)-104(M)) 의 각각에 전송한다 (블록 704). 호스트 (102) 는 PCIe 엔드포인트들 (104(1)-104(M)) 로부터 능력 응답을 수신한다 (블록 706). 수신된 능력 응답에 기초하여, 호스트 (102) 는 PCIe 엔드포인트들 (104(1)-104(M)) 의 가능한 엔드포인트들이 확장된 MSI 메시지 데이터를 사용하도록 명령한다 (블록 708). 이 시점에서, PCIe 드라이버 (402) 및 클라이언트 드라이버 (424) 는 PCIe 엔드포인트들 (104(1)-104(M)) 내에 확장된 메시지 데이터 레지스터들 및 메시지 데이터 레지스터들을 채울 수 있음에 유의한다 (이들이 구성 레지스터들 (118(1)-118(M)) 내에 있을 수도 있음에 유의한다). 예시적인 양태에서, 확장된 메시지 데이터 레지스터는 시스템 레벨 식별자 또는 소스 식별자로 채워진다. 전술한 바와 같이, 이는 열거 중에 생성된 식별자와 동일하거나 상이할 수 있다.
도 7을 계속 참조하면, 호스트 (102) 는 또한, MSI 벡터의 바디에서 확장된 MSI 메시지 데이터를 사용하도록 인터럽트 제어기 (128) 를 구성한다 (블록 710). 소정의 후속 시간에서, 호스트 (102) 는 PCIe 버스 (106) 를 통해 요청자 식별자 (304) 를 갖는 헤더 (302) 및 확장된 MSI 메시지 데이터를 갖는 바디 (310) 에 의해 MSI 신호 (300) 를 수신할 것이다 (블록 712). PCIe 루트 컴플렉스 (122) 는 MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 MSI 벡터를 형성하기 위해서 MSI 신호 (300) 로부터 바디 (310) 를 추출한다 (블록 714). 다음, MSI 벡터는 SNoC (126) 를 통해 인터럽트 제어기 (128) 로 전달된다 (블록 716).
유사하게, 도 8은 슬레이브 관점에서의 프로세스 (800) 를 도시한다. 프로세스 (800) 는 PCIe 시스템 (100) 의 스타드업에서 열거로 시작된다 (블록 802). 열거 이후, 슬레이브는 호스트 (102) 로부터 능력 질의를 수신한다 (블록 804). 슬레이브는 적절한 능력 레지스터 (116(1)-116(M)) 를 판독하고 (블록 (806)), 슬레이브가 확장된 MSI 메시지 데이터를 사용할 수 있음을 나타내는 정보로 능력 질의에 응답한다. 슬레이브는 확장된 MSI 메시지 데이터의 사용을 인에이블하는 명령들을 수신한다 (블록 810)(예를 들어, 신호 (414)).
도 8을 계속 참조하면, 일부 후속 시간에서, 슬레이브는 인터럽트 조건을 검출하고 (블록 812), 요청자 식별자를 갖는 헤더와 바디의 처음 16 비트들에 확장된 MSI 메시지 데이터를 갖는 바디를 갖는 인터럽트 신호를 생성한다 (블록 814). 슬레이브는 인터럽트 신호를 PCIe 버스 (106) 를 통해 호스트 (102) 로 전송한다 (블록 816).
또한, 다양한 프로세스들 (600, 700 및 800) 에서 능력 질의를 사용함으로써, 긍정 응답 (예를 들어, 레거시 컴포넌트가 질의될 때 발생함) 없이 백워드 호환성이 유지될 수 있고, 능력이 인에이블되지 않고, 그리고 확장된 MSI 메시지 데이터가 MSI 벡터의 처음 16 비트들에 배치되지 않는다.
위에서 언급했듯이, 다수의 엔드포인트들은 동일한 시스템 레벨 식별자를 가질 수 있다. 이와 관련하여, 도 9는 예시적인 PCIe 시스템 (900) 의 블록도를 도시한다. PCIe 시스템 (900) 은, CPU 또는 다른 SoC일 수 있는, 호스트 (902) 를 포함한다. PCIe 시스템 (900) 은 PCIe 엔드포인트들 (904(1)-904(4)) 을 더 포함한다. 호스트 (902) 는 PCIe 버스 (908) 를 통해 스위치 (906) 에 커플링된다. PCIe 엔드포인트들 (904(1)-904(4)) 은 스위치 (906) 를 통해 PCIe 버스 (908) 에 커플링되는 것에 유의한다.
도 9를 계속 참조하면, 호스트 (902) 는 신호들이 PCIe 버스 (908) 상으로 송신되거나 PCIe 버스 (908) 로부터 수신되도록 하는 버스 인터페이스 (910) 를 포함할 수 있다. 호스트 (902) 는 메모리 관리 유닛 (도면에서 MMU로 참고됨)(914) 과 통신하는 PCIe 루트 컴플렉스 (912) 를 더 포함한다. 메모리 관리 유닛 (914) 은 호스트 (902) 에 대한 내부 버스로서 동작하는 SNoC (916) 에 커플링된다. 특히, 메모리 관리 유닛 (914) 은 SNoC (916) 를 통해 인터럽트 제어기 (918) 와 통신할 수 있다.
도 9를 계속 참조하면, PCIe 엔드포인트들 (904(1) 및 904(2)) 은 그와 연관된 동일한 시스템 레벨 식별자 (SLI1) 를 갖는다. 즉, 액세스 제어 구성 소프트웨어 (418) 는 동일한 시스템 레벨 식별자로 각각의 구성 레지스터들 (920(1) 및 920(2)) 을 프로그래밍하였다. PCIe 엔드포인트 (904(3)) 는 자신의 구성 레지스터 (920(3)) 에 제 2 시스템 레벨 식별자 (SLI2) 를 가지며, PCIe 엔드포인트 (904(4)) 는 자신의 각각의 구성 레지스터 (920(4)) 에 제 3 시스템 레벨 식별자 (SLI3) 를 갖는다.
도 9를 계속 참조하면, 인터럽트 제어기 (918) 는, 어떤 시스템 레벨 식별자들이 어떤 인터럽트를 수행하는 것이 허용되도록 프로그래밍될 수 있는, MSI 엔트리 리스트 (922) 를 갖는다. 따라서, 도 6의 블럭 (616) 에서 도입된 개념을 확장하면, 인터럽트 제어기 (918) 는 MSI 벡터 어드레스를 수신하고 확장된 MSI 메시지 데이터로부터 시스템 레벨 식별자를 추출한다. MSI 벡터 어드레스를 사용하여, 인터럽트 제어기 (918) 는 추출된 시스템 레벨 식별자를 MSI 엔트리 리스트 (922) 내의 허용된 시스템 레벨 식별자와 비교하고, 일치하는 것이 있으면 인터럽트 제어기 (918) 는 인터럽트 요청 내의 정규 MSI 데이터에 대해 작용한다.
본원에 개시된 양태들에 따른 확장된 MSI 메시지 데이터는 임의의 프로세서 기반의 디바이스에 제공될 수도 있고 또는 그 디바이스에 통합될 수도 있다. 예들은, 제한 없이, 셋톱 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 스마트 폰, 테블릿, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, 개인용 디지털 보조기 (PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크 (DVD) 플레이어, 자동차, 및 휴대용 디지털 비디오 플레이어를 포함한다.
이와 관련하여, 도 10은 도 1에 도시된 PCIe 시스템 (100) 을 채용할 수 있는 프로세서 기반 시스템 (1000) 의 일 예를 도시한다. 이 예에서, 프로세서 기반 시스템 (1000) 은, 각각이 하나 이상의 프로세서들 (미도시) 를 포함하는, 하나 이상의 중앙 프로세싱 유닛 (CPU) 들 (1002) 을 포함한다. CPU(들)(1002) 은 일시적으로 저장된 데이터로의 빠른 액세스를 위해 프로세서(들)(미도시) 에 커플링된 캐시 메모리 (미도시) 를 포함할 수도 있다. CPU(들)(1002) 은 시스템 버스 (1004) 에 커플링된다. 잘 알려진 바와 같이, CPU(들)(1002) 은 시스템 버스 (1004) 를 통해 어드레스, 제어, 및 데이터 정보를 교환하는 것에 의해, 이들 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(1002) 은 하나 이상의 메모리 제어기들 (1006) 에 버스 트랜잭션 요청들을 통신할 수 있다.
다른 디바이스들이 시스템 버스 (1004) 에 접속될 수 있다. 도 10에 도시된 바와 같이, 이들 디바이스들은 예들로서, 하나 이상의 디스플레이 제어기들 (1008) 및 하나 이상의 PCIe 제어기들 (1010) 을 포함할 수 있다. 메모리 제어기(들)(1006) 은 하나 이상의 메모리 인터페이스들 (1014) 을 통해 메모리 유닛들 (1012) 과 상호동작할 수도 있다. 예시적인 양태에서, 메모리 인터페이스(들)(1014) 은 도 1의 PCIe 버스 (106) 와 같은, PCIe 버스일 수도 있다. 디스플레이 제어기(들)(1008) 은 디스플레이 인터페이스 (1018) 를 통해 디스플레이 (1016) 와 통신할 수도 있다. 디스플레이 (1016) 는 캐소드 레이 튜브 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 발광 다이오드 (LED) 디스플레이 등을 포함하지만 이에 제한되지 않는 임의의 타입의 디스플레이를 포함할 수 있다.
도 10에 도시되지는 않았지만, 프로세서 기반 시스템 (1000) 은 또한 네트워크 (미도시) 로 및 네트워크로부터의 데이터의 교환을 허용하도록 구성된 임의의 디바이스일 수 있는, 네트워크 인터페이스 디바이스일 수도 있다. 네트워크는, 유선 또는 무선 네트워크, 사설 또는 공중 네트워크, 로컬 영역 네트워크 (LAN), 무선 로컬 영역 네트워크 (WLAN), 광역 네트워크 (WAN), BLUETOOTH™ 네트워크, 및 인터넷을 포함하지만, 이에 제한되지 않는 임의의 타입의 네트워크일 수도 있다. 네트워크 인터페이스 디바이스는 원하는 통신 프로토콜의 임의의 타입을 지원하도록 구성될 수 있다.
도 10을 계속 참조하면, PCIe 제어기(들)(1010) 는 하나 이상의 PCIe 인터페이스들 (1022) 또는 PCIe 버스들 (106 및 908) 을 통해 도 1의 PCIe 엔드포인트들 (104(1)-104(M)) 및 도 9의 PCIe 엔드포인트들 (904(1)-904(4)) 과 같은 하나 이상의 PCIe 디바이스들 (1020) 과 통신할 수 있다.
당업자는 본원에 개시된 양태들과 관련하여 기재된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘들은 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독가능 매체에 저장되고 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 양자의 조합들로서 구현될 수도 있음을 또한 알 것이다. 본원에 개시된 슬레이브 디바이스들은, 예들로서 임의의 회로, 하드웨어 컴포넌트, 집적 회로 (IC), 또는 IC 칩에 채용될 수도 있다. 본원에 개시된 메모리는 메모리의 임의의 타입 및 사이즈일 수도 있고 원하는 정보의 임의의 타입을 저장하도록 구성될 수도 있다. 이러한 상호교환성을 명확히 예시하기 위해, 여러 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 그 기능성에 관하여 위에서 일반적으로 기재되었다. 하지만, 그러한 기능성은 특정 어플리케이션, 설계 선정들, 및/또는 전체 시스템에 부과된 설계 제약들에 의존하여 구현된다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들이 본 개시물의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
본원에 개시된 양태들과 관련하여 기재된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA), 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 개시된 기능들을 수행하도록 설계된 그 임의의 조합으로 구현되거나 수행될 수도 있다. 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합 (예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 협력하는 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성) 으로서 구현될 수도 있다.
본원에 개시된 양태들은 하드웨어에서 그리고 하드웨어에 저장되는 명령들로 구현될 수도 있고, 예를 들어 랜덤 액세스 메모리 (RAM), 플래시 메모리, 리드 온니 메모리 (ROM), 전기적 프로그램가능 ROM (EPROM), 전기적 소거가능 프로그램가능 ROM (EEPROM), 레지스터들, 하드 디스크, 탈착가능 디스크, CD-ROM, 또는 종래 알려진 컴퓨터 판독가능 매체의 임의의 다른 형태에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기입할 수 있도록 프로세서에 커플링된다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC 에 상주할 수도 있다. ASIC 은 원격 스테이션에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 원격 스테이션, 기지국, 또는 서버에서 이산 컴포넌트들로서 상주할 수도 있다.
본원의 예시적인 양태들 중 임의의 것에 기재된 동작 단계들은 예들 및 논의를 제공하기 위해 기재됨을 또한 유의한다. 기재된 동작들은 도시된 시퀀스들 이외의 많은 상이한 시퀀스들로 수행될 수도 있다. 게다가, 단일 동작 단계로 기재된 동작들은 실제로 다수의 상이한 단계들로 수행될 수도 있다. 부가적으로, 예시적인 양태들에서 논의된 하나 이상의 동작 단계들은 결합될 수도 있다. 당업자에게 쉽게 명백하게 될 바와 같이, 메시지 플로우 및 플로우차트 다이어그램들에서 도시된 동작 단계들은 많은 상이한 수정들이 수행될 수도 있음을 이해할 것이다. 당업자는 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 정보 및 신호들이 표현될 수도 있음을 또한 이해할 것이다. 예를 들어, 위의 기재 전체에 걸쳐 언급될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압, 전류, 전자기파, 자기장 또는 자기 입자, 광학장 또는 광학 입자 또는 그 임의의 조합으로 표현될 수도 있다.
개시물의 이전 기재는 당업자가 개시물을 제작하거나 사용하는 것을 가능하게 하기 위해 제공된다. 개시물에 대한 다양한 수정들이 당업자에게 쉽게 명백할 것이고, 본원에 정의된 일반적인 원리들은 개시물의 사상 또는 범위로부터 벗어나지 않으면서 다른 변형들에 적용될 수도 있다. 따라서, 개시물은 본원에 기재된 예들 및 설계들에 제한되는 것으로 의도되는 것이 아니라, 본원에 개시된 원리들 및 신규 피처들과 일치는 최광 범위에 부합되는 것으로 의도된다.
Claims (27)
- 주변 컴포넌트 인터커넥트 (PCI; Peripheral Component Interconnect) 익스프레스 (PCIe) 시스템에서 정보를 전달하는 방법으로서,
신호를 호스트에서 수신하는 단계로서, 상기 신호는:
헤더; 및
PCIe 엔드포인트로부터의 처음 16 비트들 중 적어도 하나에 확장된 메시지 시그널링된 인터럽트 (MSI; message signaled interrupt) 메시지 데이터를 포함하는 바디
를 포함하는, 상기 신호를 수신하는 단계;
상기 호스트의 루트 컴플렉스에서, MSI 벡터의 바디에 상기 확장된 MSI 메시지 데이터를 여전히 갖는 상기 MSI 벡터를 형성하기 위해 상기 신호로부터 상기 바디를 추출하는 단계; 및
시스템 네트워크 온 칩 (SNoC; system network on a chip) 을 통해, 상기 MSI 벡터의 바디에 상기 확장된 MSI 메시지 데이터를 여전히 갖는 상기 MSI 벡터를 상기 호스트 내의 인터럽트 제어기에 전달하는 단계를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 1 항에 있어서,
헤더를 포함하는 상기 신호를 상기 호스트에서 수신하는 단계는 상기 헤더의 요청자 식별자를 포함하는 신호를 상기 호스트에서 수신하는 단계를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 1 항에 있어서,
상기 확장된 MSI 메시지 데이터를 포함하는 바디를 상기 호스트에서 수신하는 단계는 인터럽트 우선순위 정보를 포함하는 바디를 수신하는 단계를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 1 항에 있어서,
상기 확장된 MSI 메시지 데이터를 포함하는 바디를 상기 호스트에서 수신하는 단계는 인터럽트 조절 정보를 포함하는 바디를 수신하는 단계를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 1 항에 있어서,
상기 확장된 MSI 메시지 데이터를 포함하는 바디를 상기 호스트에서 수신하는 단계는 추가 메시지 데이터를 포함하는 바디를 수신하는 단계를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 1 항에 있어서,
확장된 MSI 메시지 데이터를 포함하는 바디를 상기 호스트에서 수신하는 단계는 소스 식별자를 포함하는 바디를 수신하는 단계를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 1 항에 있어서,
상기 호스트로부터 상기 PCIe 엔드포인트로, 상기 PCIe 엔드포인트가 상기 확장된 MSI 메시지 데이터를 전송할 수 있는지를 질의하는 단계를 더 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 1 항에 있어서,
상기 MSI 벡터의 바디에서의 상기 확장된 MSI 메시지 데이터를 사용하도록 상기 호스트에 상기 인터럽트 제어기를 구성하는 단계를 더 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템에서 정보를 전달하는 방법으로서,
PCIe 시스템 내의 슬레이브에서 신호를 생성하는 단계로서, 상기 신호는:
헤더; 및
처음 16 비트들 중 적어도 하나에 확장된 메시지 시그널링된 인터럽트 (MSI) 메시지 데이터를 포함하는 바디
를 포함하는, 상기 신호를 생성하는 단계; 및
상기 신호를 상기 PCIe 시스템의 호스트로 전송하는 단계를 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 제 9 항에 있어서,
상기 헤더는 상기 슬레이브를 위한 요청자 식별자를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 9 항에 있어서,
상기 확장된 MSI 메시지 데이터는 소스 식별자, 인터럽트 우선순위 정보, 및 인터럽트 조절 정보 중 하나를 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 9 항에 있어서,
상기 호스트로부터 능력 질의를 수신하는 단계를 더 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 제 12 항에 있어서,
상기 슬레이브가 상기 확장된 MSI 메시지 데이터를 사용할 수 있음을 나타내는 정보로 상기 능력 질의에 응답하는 단계를 더 포함하는, PCIe 시스템에서 정보를 전달하는 방법. - 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템에서의 호스트로서,
시스템 네트워크 온 칩 (SNoC) 버스;
PCIe 버스에 커플링되도록 구성된 PCIe 버스 인터페이스로서, 상기 PCIe 버스로부터 확장된 메시지 시그널링된 인터럽트 (MSI) 메시지 데이터를 갖는 신호를 수신하도록 또한 구성되는, 상기 PCIe 버스 인터페이스;
상기 SNoC 버스에 커플링된 인터럽트 제어기;
상기 SNoC 버스에 커플링된 메모리 관리 유닛; 및
상기 PCIe 버스 인터페이스 및 상기 메모리 관리 유닛에 커플링된 루트 컴플렉스로서, MSI 벡터의 바디에 확장된 MSI 메시지 데이터를 여전히 갖는 상기 MSI 벡터를 형성하기 위해 상기 신호로부터 상기 바디를 추출하고 상기 MSI 벡터의 바디에 상기 확장된 MSI 메시지 데이터를 여전히 갖는 상기 MSI 벡터를 상기 메모리 관리 유닛 및 상기 SNoC 버스를 통해 상기 인터럽트 제어기로 전달하도록 구성되는, 상기 루트 컴플렉스를 포함하는, PCIe 시스템에서의 호스트. - 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템에서의 슬레이브로서,
PCIe 버스에 커플링되도록 구성된 PCIe 버스 인터페이스;
슬레이브가 확장된 메시지 시그널링된 인터럽트 (MSI) 메시지 데이터를 사용할 수 있음을 나타내는 정보를 포함하는 능력 레지스터; 및
제어 시스템을 포함하고,
상기 제어 시스템은:
인터럽트 필요 조건을 검출하고;
헤더 및 상기 확장된 MSI 메시지 데이터를 포함하는 바디를 포함하는 신호를 어셈블링하고; 그리고
상기 신호를 상기 PCIe 버스를 통해 호스트로 전송하도록 구성되는, PCIe 시스템에서의 슬레이브. - 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템으로서,
PCIe 버스;
PCIe 슬레이브; 및
호스트를 포함하고,
상기 PCIe 슬레이브는:
상기 PCIe 버스에 커플링된 슬레이브 PCIe 버스 인터페이스;
슬레이브 제어 시스템으로서,
인터럽트 필요 조건을 검출하고;
헤더 및 확장된 메시지 시그널링된 인터럽트 (MSI) 메시지 데이터를 포함하는 바디를 포함하는 신호를 어셈블링하고; 그리고
상기 신호를 상기 PCIe 버스를 통해 호스트로 전송하도록
구성되는, 상기 슬레이브 제어 시스템을 포함하고; 그리고
상기 호스트는:
시스템 네트워크 온 칩 (SNoC) 버스;
상기 PCIe 버스에 커플링된 호스트 PCIe 버스 인터페이스로서, 상기 신호를 수신하도록 또한 구성되는, 상기 호스트 PCIe 버스 인터페이스;
상기 SNoC 버스에 커플링된 인터럽트 제어기; 및
상기 호스트 PCIe 버스 인터페이스에 커플링된 루트 컴플렉스로서, MSI 벡터의 바디에 상기 확장된 MSI 메시지 데이터를 여전히 갖는 상기 MSI 벡터를 형성하기 위해 상기 신호로부터 상기 바디를 추출하고 상기 MSI 벡터의 바디에 기 확장된 MSI 메시지 데이터를 여전히 갖는 상기 MSI 벡터를 상기 SNoC 버스를 통해 상기 인터럽트 제어기로 전달하도록 구성되는, 상기 루트 컴플렉스를 포함하는, PCIe 시스템. - 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템에서 신호 소스를 식별하는 방법으로서,
주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 엔드포인트로부터 헤더 내의 요청자 식별자 및 바디 내의 소스 식별자를 갖는 신호를 호스트에서 수신하는 단계;
상기 호스트의 루트 컴플렉스에서, 상기 요청자 식별자를 제거하는 단계;
메시지 시그널링된 인터럽트 (MSI) 벡터의 바디에 상기 소스 식별자를 여전히 갖는 상기 MSI 벡터를 형성하기 위해 상기 바디를 추출하는 단계; 및
시스템 네트워크 온 칩 (SNoC) 을 통해, 상기 MSI 벡터의 바디에 상기 소스 식별자를 여전히 갖는 상기 MSI 벡터를 상기 호스트 내의 인터럽트 제어기에 전달하는 단계를 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 제 17 항에 있어서,
인터럽트를 요청하도록 허가된 것으로서 상기 PCIe 엔드포인트를 검증하기 위해 상기 인터럽트 제어기에서 상기 소스 식별자를 사용하는 단계를 더 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 제 17 항에 있어서,
상기 호스트에서 상기 PCIe 엔드포인트에 대한 능력 질의를 개시하는 단계를 더 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 제 19 항에 있어서,
상기 PCIe 엔드포인트가 상기 신호의 바디에서 상기 소스 식별자를 사용할 수 있다는 것을 나타내는 상기 능력 질의에 대한 응답을 상기 PCIe 엔드포인트로부터 수신하는 단계를 더 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 제 20 항에 있어서,
상기 신호의 바디에서 상기 소스 식별자의 사용을 가능하게 하도록 상기 PCIe 엔드포인트에 지시하는 단계를 더 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 제 17 항에 있어서,
상기 MSI 벡터의 바디 내의 상기 소스 식별자를 판독하도록 상기 인터럽트 제어기를 구성하는 단계를 더 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 시스템에서 신호 소스를 식별하는 방법으로서,
PCIe 시스템 내의 슬레이브에서 신호를 생성하는 단계로서, 상기 신호는:
요청자 식별자를 포함하는 헤더; 및
소스 식별자를 포함하는 바디
를 포함하는, 상기 신호를 생성하는 단계; 및
상기 신호를 상기 PCIe 시스템의 호스트로 전송하는 단계를 포함하는, PCIe 시스템에서 신호 소스를 식별하는 방법. - 호스트로서,
주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 버스에 커플링되도록 구성된 버스 인터페이스;
상기 버스 인터페이스에 커플링된 루트 컴플렉스로서,
상기 버스 인터페이스로부터 소스 식별자 및 신호의 헤더 내의 요청자 식별자를 포함하는 상기 신호를 수신하고;
상기 신호로부터 상기 헤더를 제거하며; 그리고
메시지 시그널링된 인터럽트 (MSI) 벡터의 바디 내의 상기 소스 식별자를 포함하는 상기 신호의 바디를 포함하는 상기 MSI 벡터를 인터럽트 제어기에 전송하도록
구성된, 상기 루트 컴플렉스; 및
상기 MSI 벡터의 바디에 상기 소스 식별자를 포함하는 상기 MSI 벡터를 수신하도록 구성된 상기 인터럽트 제어기를 포함하는, 호스트. - 제 24 항에 있어서,
상기 호스트는 PCIe 엔드포인트의 능력들에 관해 PCIe 엔드포인트에 질의하도록 구성되는, 호스트. - 제 24 항에 있어서,
상기 호스트는 PCIe 엔드포인트가 상기 신호의 바디 내에 상기 소스 식별자를 임베드할 수 있음을 나타내는 능력 응답을 상기 PCIe 엔드포인트로부터 수신하도록 구성되는, 호스트. - 신호 소스를 식별하는 방법으로서,
주변 컴포넌트 인터커넥트 (PCI) 익스프레스 (PCIe) 엔드포인트로부터 헤더 내의 요청자 식별자 및 바디 내의 시스템 레벨 식별자를 갖는 신호를 호스트에서 수신하는 단계;
상기 호스트의 루트 컴플렉스에서, 상기 요청자 식별자를 제거하는 단계;
메시지 시그널링된 인터럽트 (MSI) 벡터의 바디에 상기 시스템 레벨 식별자를 여전히 갖는 상기 MSI 벡터를 형성하기 위해 바디를 추출하는 단계; 및
시스템 네트워크 온 칩 (SNoC) 을 통해, 상기 MSI 벡터의 바디에 상기 시스템 레벨 식별자를 여전히 갖는 상기 MSI 벡터를 상기 호스트 내의 인터럽트 제어기에 전달하는 단계를 포함하는, 신호 소스를 식별하는 방법.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562182800P | 2015-06-22 | 2015-06-22 | |
US62/182,800 | 2015-06-22 | ||
US201562243850P | 2015-10-20 | 2015-10-20 | |
US62/243,850 | 2015-10-20 | ||
US15/184,124 | 2016-06-16 | ||
US15/184,124 US10922252B2 (en) | 2015-06-22 | 2016-06-16 | Extended message signaled interrupts (MSI) message data |
PCT/US2016/038120 WO2016209730A1 (en) | 2015-06-22 | 2016-06-17 | Extended message signaled interrupts (msi) message data |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180019593A true KR20180019593A (ko) | 2018-02-26 |
Family
ID=56289608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177036700A KR20180019593A (ko) | 2015-06-22 | 2016-06-17 | 확장된 메시지 시그널링된 인터럽트들 (msi) 메시지 데이터 |
Country Status (9)
Country | Link |
---|---|
US (2) | US10922252B2 (ko) |
EP (2) | EP3311290B1 (ko) |
JP (1) | JP2018518772A (ko) |
KR (1) | KR20180019593A (ko) |
CN (1) | CN107771327A (ko) |
AU (1) | AU2016282579A1 (ko) |
BR (1) | BR112017027791A2 (ko) |
TW (1) | TW201705007A (ko) |
WO (1) | WO2016209730A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423550B2 (en) * | 2017-10-25 | 2019-09-24 | International Business Machines Corporation | Managing efficient selection of a particular processor thread for handling an interrupt |
US11210246B2 (en) * | 2018-08-24 | 2021-12-28 | Advanced Micro Devices, Inc. | Probe interrupt delivery |
US11449357B2 (en) * | 2018-11-13 | 2022-09-20 | SK Hynix Inc. | Configurable integrated circuit to support new capability |
CN110209606B (zh) * | 2019-04-30 | 2021-01-22 | 杭州电子科技大学 | 一种基于PCIe的多接口存储设备的控制方法 |
EP3819776B1 (en) * | 2019-11-05 | 2021-12-29 | Shenzhen Goodix Technology Co., Ltd. | Method and apparatus for aborting blocked bus access between a master controller and connected peripherals |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315911B2 (en) | 2005-01-20 | 2008-01-01 | Dot Hill Systems Corporation | Method for efficient inter-processor communication in an active-active RAID system using PCI-express links |
US7099977B2 (en) * | 2004-01-12 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Processor interrupt filtering |
US7574536B2 (en) | 2005-04-22 | 2009-08-11 | Sun Microsystems, Inc. | Routing direct memory access requests using doorbell addresses |
US7613864B2 (en) * | 2005-04-22 | 2009-11-03 | Sun Microsystems, Inc. | Device sharing |
US7916750B2 (en) * | 2005-12-28 | 2011-03-29 | Intel Corporation | Transaction layer packet compression |
US20080162762A1 (en) | 2006-12-29 | 2008-07-03 | Gilbert Neiger | Interrupt remapping based on requestor identification |
US7805556B2 (en) | 2007-05-01 | 2010-09-28 | Ricoh Company, Ltd. | Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method |
JP5200646B2 (ja) | 2007-05-01 | 2013-06-05 | 株式会社リコー | 割込制御装置および画像処理装置 |
US7702827B2 (en) * | 2007-06-29 | 2010-04-20 | International Business Machines Corporation | System and method for a credit based flow device that utilizes PCI express packets having modified headers wherein ID fields includes non-ID data |
US8139575B2 (en) | 2007-06-29 | 2012-03-20 | International Business Machines Corporation | Device, system and method of modification of PCI express packet digest |
US20090235004A1 (en) * | 2008-03-14 | 2009-09-17 | International Business Machines Corporation | Message Signal Interrupt Efficiency Improvement |
US9037768B2 (en) | 2008-04-28 | 2015-05-19 | Hewlett-Packard Development Company, L.P. | Virtual-interrupt-mode interface and method for virtualizing an interrupt mode |
JP5320140B2 (ja) | 2009-04-14 | 2013-10-23 | 株式会社日立製作所 | 計算機システム、割込み中継回路及び割込み中継方法 |
US8356130B2 (en) * | 2009-08-14 | 2013-01-15 | Advanced Micro Devices, Inc. | Mechanism for recording undeliverable user-level interrupts |
US8321615B2 (en) | 2009-12-18 | 2012-11-27 | Intel Corporation | Source core interrupt steering |
US8589613B2 (en) | 2010-06-02 | 2013-11-19 | Intel Corporation | Method and system to improve the operations of an integrated non-transparent bridge device |
US8468284B2 (en) | 2010-06-23 | 2013-06-18 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification to a guest operating system |
US8495271B2 (en) * | 2010-08-04 | 2013-07-23 | International Business Machines Corporation | Injection of I/O messages |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US8601198B2 (en) * | 2011-06-30 | 2013-12-03 | Intel Corporation | Controllable transaction synchronization for merging peripheral devices |
US8631181B2 (en) | 2011-09-26 | 2014-01-14 | Oracle International Corporation | Validating message-signaled interrupts by tracking interrupt vectors assigned to devices |
US8996760B2 (en) | 2011-11-03 | 2015-03-31 | Intel Corporation | Method to emulate message signaled interrupts with interrupt data |
US9552313B2 (en) | 2011-12-28 | 2017-01-24 | Intel Corporation | Delivering real time interrupts with an advanced programmable interrupt controller |
US8996774B2 (en) | 2012-06-27 | 2015-03-31 | Intel Corporation | Performing emulated message signaled interrupt handling |
US9851992B2 (en) * | 2013-08-01 | 2017-12-26 | Red Hat Israel, Ltd. | Paravirtulized capability for device assignment |
GB2521121A (en) * | 2013-11-07 | 2015-06-17 | St Microelectronics Res & Dev | A method and apparatus use with interrupts |
US9952987B2 (en) * | 2014-11-25 | 2018-04-24 | Intel Corporation | Posted interrupt architecture |
-
2016
- 2016-06-16 US US15/184,124 patent/US10922252B2/en active Active
- 2016-06-17 KR KR1020177036700A patent/KR20180019593A/ko unknown
- 2016-06-17 JP JP2017564447A patent/JP2018518772A/ja active Pending
- 2016-06-17 AU AU2016282579A patent/AU2016282579A1/en not_active Abandoned
- 2016-06-17 EP EP16733272.5A patent/EP3311290B1/en active Active
- 2016-06-17 CN CN201680036407.7A patent/CN107771327A/zh active Pending
- 2016-06-17 EP EP18182746.0A patent/EP3435243B1/en active Active
- 2016-06-17 WO PCT/US2016/038120 patent/WO2016209730A1/en unknown
- 2016-06-17 BR BR112017027791-3A patent/BR112017027791A2/pt not_active Application Discontinuation
- 2016-06-21 TW TW105119457A patent/TW201705007A/zh unknown
-
2020
- 2020-02-24 US US16/798,848 patent/US20200192838A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
TW201705007A (zh) | 2017-02-01 |
EP3435243A1 (en) | 2019-01-30 |
JP2018518772A (ja) | 2018-07-12 |
US10922252B2 (en) | 2021-02-16 |
EP3435243B1 (en) | 2023-04-19 |
EP3311290A1 (en) | 2018-04-25 |
EP3311290B1 (en) | 2020-04-29 |
WO2016209730A1 (en) | 2016-12-29 |
US20200192838A1 (en) | 2020-06-18 |
AU2016282579A1 (en) | 2017-11-30 |
BR112017027791A2 (pt) | 2018-08-28 |
CN107771327A (zh) | 2018-03-06 |
US20160371208A1 (en) | 2016-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3311295B1 (en) | Communicating transaction-specific attributes in a peripheral component interconnect express (pcie) system | |
US20200192838A1 (en) | Extended message signaled interrupts (msi) message data | |
US10339089B2 (en) | Enhanced communications over a universal serial bus (USB) type-C cable | |
TWI343003B (en) | Multiplexing a parallel bus interface and a flash memory interface | |
US9990328B2 (en) | Increased data flow in universal serial bus (USB) cables | |
KR20180067530A (ko) | 범용 직렬 버스 (usb) 스플리트 케이블 | |
EP2807571A1 (en) | Operating m-phy communications protocol over universal serial bus (usb) interface, and related devices, systems and methods | |
JP6549579B2 (ja) | 大容量記憶装置ベースのインタフェースを通じてm−phyベースの通信を運用すること、ならびに関連するコネクタ、システム、および方法 | |
CN107408092B (zh) | 用于多端口物理层(phy)的锁相环(pll)的共享控制 | |
JP2016540300A (ja) | 低電圧セキュアデジタル(sd)インターフェースのためのシステムおよび方法 | |
US20160210254A1 (en) | Fast link training in embedded systems |