KR20180050727A - 인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들 - Google Patents
인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들 Download PDFInfo
- Publication number
- KR20180050727A KR20180050727A KR1020187009926A KR20187009926A KR20180050727A KR 20180050727 A KR20180050727 A KR 20180050727A KR 1020187009926 A KR1020187009926 A KR 1020187009926A KR 20187009926 A KR20187009926 A KR 20187009926A KR 20180050727 A KR20180050727 A KR 20180050727A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- gateway
- status
- bus
- nodes
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000004891 communication Methods 0.000 title claims abstract description 37
- 230000008859 change Effects 0.000 claims description 25
- 230000008878 coupling Effects 0.000 claims description 14
- 238000010168 coupling process Methods 0.000 claims description 14
- 238000005859 coupling reaction Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 230000003213 activating effect Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000001413 cellular effect Effects 0.000 claims description 3
- 230000002618 waking effect Effects 0.000 claims description 3
- 239000004744 fabric Substances 0.000 abstract description 4
- 230000009471 action Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 13
- 238000013461 design Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000005476 soldering Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
- Quality & Reliability (AREA)
Abstract
인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들이 개시된다. 일 양태에서, 컴퓨팅 디바이스 내에서 칩들의 각각을 접속하는 단일 통합된 저속 버스가 제공된다. 칩들은 물리 계층 인터페이스 및 연관된 게이트웨이를 통해 버스에 커플링한다. 게이트웨이는 인터페이스 패브릭 (fabric) 에서의 매 노드에 대한 스테이터스들을 요약하는 스테이터스 테이블을 저장하는 메모리를 포함한다. 노드들은 상태 변화들을 경험할 때, 노드들은 연관된 로컬 게이트웨이들에 업데이트들을 제공한다. 로컬 게이트웨이들은 그 후, 스카우트 메시지를 사용하여, 상태 변화들에 관한 정보로 원격 게이트웨이들에게 메시징한다. 제 1 노드가 제 2 노드로의 신호를 준비하고 있을 때, 제 1 노드는 제 2 노드에 대한 현재 스테이터스를 결정하기 위해 연관된 로컬 게이트웨이에서 스테이터스 테이블을 체크한다. 제 2 노드의 스테이터스 테이블에 기초하여, 제 1 노드는 메시지를 전송하거나 다른 적절한 액션을 취할 수도 있다.
Description
우선권 출원
본 출원은 2015 년 9 월 10 일 출원되고 명칭이 "UNIFIED SYSTEMS AND METHODS FOR INTERCHIP AND INTRACHIP NODE COMMUNICATION" 인 U.S. 특허출원 제 14/850,104 호에 대한 우선권을 주장하며, 이는 그 전부가 참조로서 본 명세서에 통합된다.
개시물의
분야
개시물의 기술은 일반적으로 컴퓨팅 디바이스 내에서 노드들 사이의 통신을 용이하게 하기 위한 구조들 및 방법들에 관련된다.
컴퓨팅 디바이스들은 현대 사회에서 보편화되고 있다. 컴퓨팅 디바이스들의 보급은 그러한 컴퓨팅 디바이스들에서 가능하게 되는 기능들의 어레이를 계속 증가시키는 것에 의해 부분적으로 유도된다. 증가된 기능성은 더 빠른 프로세서들, 더 크고 더 빠른 메모리 엘리먼트들, 및 특정 태스크들을 수행하도록 구성된 특수 집적 회로 (IC) 들의 포함에 의해 가능하게 된다. 역사적으로, 새로운 기능 또는 새로운 IC 가 컴퓨팅 디바이스에 부가됨에 따라, 새로운 기능과 연관된 노드(들) 이 컴퓨팅 디바이스의 다른 노드들과 통신하는 것을 허용하기 위해 버스가 사용된다. 버스는 UART (Universal Asynchronous Receiver/Transmitter), I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface) 와 같은 기존의 저속 표준, 또는 PCI (Peripheral Component Interconnect), PCIe (PCI Express), USB (Universal Serial Bus) 등과 같은 기존의 고속 표준의 규칙들을 따를 수도 있다.
기존의 표준이 소정의 특정 의도된 목적에 적합하지만, 상이한 표준들에 따라 동작하는 버스들의 급증은, 각각의 버스에 대한 전도성 엘리먼트들이 소정의 설계 기준을 따르는 방식으로 라우팅되고 및/또는 전자기 간섭 (EMI) 방출 제한들 또는 전자기 적합성 (EMC) 표준들 (예를 들어, 연방 통신 위원회 (FCC) 에 의해 공표된 것과 같음) 을 준수하도록 제조되어야 하기 때문에 디바이스 설계를 어렵게 한다. 다양한 복수의 프로토콜이 사용될 때, 상이한 프로토콜 사이의 프로토콜 변환을 지원할 필요가 있을 수도 있다. 그러한 변환 요건들을 IC 의 복잡성을 부가하였다. 노드들 사이의 통신은 상이한 표준들에 의해 설정된 슬립/웨이크 규칙들에 따라 동작하는 노드들에 의해 더 복잡해질 수도 있다. 클록 신호들은 각각의 버스를 통해 전송될 수도 있으며, 이는 EMI 방출 제한들 또는 EMC 표준들을 준수하는데 있어서 어려움을 증가시킬 수도 있다. 또한, IC 가 다수의 버스들에 커플링되는 경우, IC 는 각각의 커플링에 대해 하나씩 상이한 인터페이스들을 가질 수도 있다. 그러한 인터페이스들은 컴퓨팅 디바이스 내에서 중복되고, IC 내의 공간을 소비하며, 컴퓨팅 디바이스의 설계를 어렵게 할 수도 있다. 버스들이 IC 내부에 있을 때에도 (예를 들어, 시스템 네트워크 온 칩 (SNOC)), 다수의 물리 및 프로토콜 계층에 대한 요건들이 있을 수도 있으며, 그 각각은 설계 복잡성을 부가한다.
설계자가 컴퓨팅 디바이스에 여러 버스들을 포함시키기 위한 경쟁 요건들을 조정할 수 있더라도, 설계자는 인터칩 통신과 인트라칩 통신을 조정하는 것에 대한 어려움에 여전히 직면하게 된다. 설계자가 인트라칩 및 인터칩 통신 양자 모두를 라우팅하는 문제들 및 EMI 를 제어하는 문제들을 해결할 수 있더라도, 다양한 엘리먼트들이 통신을 수신하기 위해 확실하게 어웨이크하도록 하는 문제들은 여전이 남아있다. 따라서, 단일 IC 내의 노드들 사이 뿐만 아니라 별도의 IC들 상의 노드들 사이의 신뢰성 있는 통신을 허용하는 일관된 노드 대 노드 (node-to-node) 통신 시스템에 대한 필요성이 여전히 남아있다.
상세한 설명에 개시된 양태들은 인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들을 포함한다. 예시적인 양태에서, 컴퓨팅 디바이스 내에서 칩들의 각각을 접속하는, 때때로 외부 버스 또는 인터칩 버스로 칭하는, 단일 통합된 저속 버스가 제공된다. 칩들은 물리 계층 인터페이스 및 연관된 게이트웨이를 통해 버스에 커플링한다. 게이트웨이는 인터페이스 패브릭 (fabric) 에서 매 노드에 대한 스테이터스를 요약하는 스테이터스 테이블을 저장하는 메모리를 포함한다. 스테이터스 테이블은 시스템 초기화에서 초기에 파퓰레이팅된다. 노드들이 상태 변화들을 경험할 때, 노드들은 연관된 로컬 게이트웨이들에 업데이트들을 제공한다. 로컬 게이트웨이들은 그 후, 상태 변화들에 관한 정보를 갖는 스카우트 메시지를 사용하여, 원격 게이트웨이들에 메시징한다. 이러한 방식으로, 각각의 게이트웨이는 네트워크에서 임의의 노드의 스테이터스에 관하여 참조가 이루어질 수 있는 업데이트된 스테이터스 테이블을 갖는다. 제 1 노드가 제 2 노드로의 신호를 준비하고 있을 때, 제 1 노드는 제 2 노드에 대한 현재 스테이터스를 결정하기 위해 연관된 로컬 게이트웨이에서 스테이터스 테이블을 체크한다. 제 2 노드의 스테이터스에 기초하여, 제 1 노드는 메시지를 전송하거나, 메시지를 유지하거나, 웨이크 커맨드로 전송하거나, 또는 다른 적절한 액션을 취할 수도 있다. 모든 저속 버스들을 단일 통합된 물리 계층 인터페이스로 단일 통합된 버스에 통합함으로써, 컴퓨팅 디바이스의 집적 회로 (IC) 들 내의 공간이 중복 (duplicative) 물리 계층 인터페이스들에 대해 사용되지 않고, 불필요하게 중복하는 전도성 엘리먼트들이 IC들을 접속하는데 필요하지 않으며, 레이아웃 설계가 단순해진다. 또한, 더 적은 버스들은 더 적은 클록 신호들이 필요함을 의미하며, 이는 전력 소비가 감소될 수도 있음을 의미한다. 마찬가지로 다양한 인터페이스 블록들을 지원하기 위한 필요성을 제거함으로써 설계가 단순해진다. 또한, 노드들 사이의 메시지 전송을 위해 상이한 소프트웨어 및/또는 브리지 소프트웨어가 종종 필요한 이종 시스템들과는 대조적으로 소프트웨어 균일성이 보장된다.
본 개시물의 예시적인 양태들은, 게이트웨이가 수신된 메시지들에서 불일치 거동을 검출하는 상황들에서, 중재 프로세스의 조작들을 통해 버스가 재초기화되도록 한다. 즉, 게이트웨이가 게이트웨이의 내부 상태와 충돌이 있는 이벤트들을 검출할 때, 게이트웨이는 게이트웨이가 중재에서 승리하는 것을 보장하기 위해 다음 중재 사이클 동안 특정 중재 식별자를 전송한다. 중재에서 승리한 후, 게이트웨이는 그 후 데이터를 전송하지 않으며, 이는 리셋 타임아웃을 강제한다. 리셋 타임아웃은 재초기화를 강제하며, 이는 스테이터스 테이블들이 재파퓰레이팅되도록 하고 메시지 트래픽이 이전에 검출된 에러들 없이 재개되도록 한다.
이와 관련하여, 일 양태에서, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법이 제공된다. 방법은 버스에 커플링된 제 1 IC 를 활성화하는 단계를 포함한다. 방법은 또한, 제 1 IC 와 연관된 제 1 노드들을 제 1 게이트웨이에 등록하는 단계를 포함한다. 방법은 또한, 제 1 IC 와 연관된 제 1 노드들에 관한 정보로 제 1 게이트웨이에서의 제 1 스테이터스 테이블을 파퓰레이팅하는 단계를 포함한다. 방법은 또한, 제 1 스테이터스 테이블에 표시된 바와 같은 가용성에 기초하여 제 1 IC 와 연관된 제 1 노드들 사이에서 인트라칩 통신을 허용하는 단계를 포함한다.
또 다른 양태에서, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법이 제공된다. 방법은 컴퓨팅 디바이스 내에서 버스에 제 1 노드들을 갖는 제 1 IC 를 커플링하는 단계를 포함한다. 방법은 또한, 컴퓨팅 디바이스 내에서 버스에 제 2 노드들을 갖는 제 2 IC 를 커플링하는 단계를 포함한다. 방법은 또한, 제 1 IC 와 연관된 제 1 게이트웨이로부터, 제 1 노드들에 관한 스테이터스 및 구성 정보를 수신하는 단계를 포함한다. 방법은 또한, 제 2 IC 와 연관된 제 2 게이트웨이에서의 스테이터스 테이블을, 제 1 노드들에 관한 스테이터스 및 구성 정보로 파퓰레이팅하는 단계를 포함한다.
또 다른 양태에서, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 업데이트하기 위한 방법이 제공된다. 방법은 제 1 IC 에서의 제 1 게이트웨이에서, 제 1 IC 에서의 제 1 노드로부터 상태 변화 표시를 수신하는 단계를 포함한다. 방법은 또한, 상태 변화 표시에 응답하여, 제 1 노드의 상태 변화를 반영하도록 제 1 게이트웨이에서의 제 1 스테이터스 테이블을 업데이트하는 단계를 포함한다. 방법은 또한, 제 2 IC 에서의 제 2 게이트웨이로의 스카우트 메시지를 생성하는 단계를 포함하고, 스카우트 메시지는 상기 제 1 노드의 상태 변화를 표시한다.
또 다른 양태에서, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 업데이트하기 위한 방법이 제공된다. 방법은 제 1 IC 에서의 제 1 게이트웨이에서, 제 2 IC 에서의 제 2 게이트웨이로부터의 스카우트 메시지를 수신하는 단계를 포함하고, 스카우트 메시지는 제 2 IC 에서의 노드의 상태 변화를 표시한다. 방법은 또한, 스카우트 메시지에 응답하여, 노드의 상태 변화를 반영하도록 제 1 게이트웨이에서 제 1 스테이터스 테이블을 업데이트하는 단계를 포함한다.
이와 관련하여, 일 양태에서, IC 가 제공된다. IC 는 노드를 포함한다. 노드는 송신기 및 수신기를 포함하는 노드를 포함한다. IC 는 또한, 게이트웨이를 포함한다. 게이트웨이는, 버스에 커플링되도록 구성되고 그 상에서 제 1 프로토콜을 통해 통신하도록 구성된 외부 인터페이스를 포함한다. 게이트웨이는 또한, 노드에 통신가능하게 커플링되고 그 사이에서 제 1 프로토콜을 통해 통신하도록 구성된 내부 인터페이스를 포함한다.
또 다른 양태에서, IC 가 제공된다. IC 는 제 1 노드를 포함한다. IC 는 또한, 제 2 노드를 포함한다. IC 는 또한 게이트웨이를 포함한다. 게이트웨이는 버스에 커플링하도록 구성되고 제 1 노드 및 제 2 노드로부터의 제어 정보에 동작하는 외부 인터페이스를 포함한다. IC 는 또한, 게이트웨이에 제 1 노드 및 제 2 노드를 통신가능하게 커플링하는 공통 회로부를 포함한다.
또 다른 양태에서, 컴퓨팅 시스템이 제공된다. 컴퓨팅 시스템은 제 1 IC 를 포함한다. 제 1 IC 는 제 1 노드를 포함한다. 제 1 노드는 제 1 송신기 및 제 1 수신기를 포함한다. 제 1 IC 는 또한 제 1 게이트웨이를 포함한다. 제 1 게이트웨이는 제 1 외부 인터페이스를 포함한다. 제 1 게이트웨이는 또한, 제 1 노드에 통신가능하게 커플링되고 그 사이에서 제 1 프로토콜을 통해 통신하도록 구성된 제 1 내부 인터페이스를 포함한다. 컴퓨팅 시스템은 또한 제 2 IC 를 포함한다. 제 2 IC 는 제 2 노드를 포함한다. 제 2 노드는 제 2 송신기 및 제 2 수신기를 포함한다. 제 2 IC 는 또한 제 2 게이트웨이를 포함한다. 제 2 게이트웨이는 제 2 외부 인터페이스를 포함한다. 제 2 게이트웨이는 또한 제 2 노드에 통신가능하게 커플링되고 그 사이에서 제 1 프로토콜을 통해 통신하도록 구성된 제 2 내부 인터페이스를 포함한다. 컴퓨팅 시스템은 또한, 제 1 IC 의 제 1 게이트웨이 및 제 2 IC 의 제 2 게이트웨이에 커플링되고 그 사이에서 제 1 프로토콜을 사용하여 신호들을 반송하도록 구성된 버스를 포함한다.
이와 관련하여, 일 양태에서, IC 가 제공된다. IC 는 노드를 포함한다. IC 는 또한 노드에 통신가능하게 커플링된 게이트웨이를 포함한다. 게이트웨이는 버스에 커플링되도록 구성된 인터페이스를 포함한다. 게이트웨이는 또한, 버스와 연관된 노드들의 가용성에 관한 데이터를 저장하도록 구성된 룩업 테이블을 포함한다. IC 는 또한, 노드 및 게이트웨이에 동작가능하게 커플링된 제어 시스템을 포함한다. 제어 시스템은 노드의 상태에 관한 스테이터스 업데이트를 수신하도록 구성된다. 제어 시스템은 또한, 노드 대 노드 통신 사이의 신뢰성을 증진시키기 위해 버스와 연관된 다른 게이트웨이들에 노드의 상태에 관한 정보를 전송하도록 구성된다.
또 다른 양태에서, 노드 대 노드 통신을 용이하게 하기 위한 방법이 제공된다. 방법은 게이트웨이에서 로컬 노드로부터 스테이터스 업데이트를 수신하는 단계를 포함한다. 방법은 또한, 원격 게이트웨이들에 스테이터스 업데이트를 브로드캐스팅하는 단계를 포함한다.
예시적인 양태에서, 시스템 리셋을 강제하는 방법이 개시된다. 방법은 중재 페이즈 동안, 중재에서 승리하기 위해 가장 긴급한 (most urgent) 우선순위 값을 게이트웨이로부터 표명 (asserting) 하는 단계를 포함한다. 방법은 또한, 중재에서 승리한 후, 버스 타임아웃을 강제하기 위해 게이트웨이로부터 데이터를 수신하지 않는 단계를 포함한다. 단계는 또한, 버스 타임아웃에 응답하여, 시스템 리셋을 개시하는 단계를 포함한다.
또 다른 예시적인 양태에서, IC 가 개시된다. IC 는 게이트웨이를 포함한다. 게이트웨이는 버스에 커플링하도록 구성된 버스 인터페이스를 포함한다. 게이트웨이는 또한, 제어 시스템을 포함한다. 제어 시스템은, 중재 페이즈 동안, 중재에서 승리하기 위해 버스 상에서 가장 긴급한 우선순위 값을 표명하도록 구성된다. 제어 시스템은 또한, 중재에서 승리한 후, 버스 타임아웃을 강제하기 위해 버스 상에서 데이터를 전송하지 않도록 구성된다. 제어 시스템은 또한, 버스 타임아웃에 응답하여, 시스템 리셋을 개시하도록 구성된다.
도 1 은 칩 대 칩 (chip-to-chip) 통신을 위한 복수의 프로토콜들 및 다수의 통신 버스들을 갖는 예시적인 종래 컴퓨팅 시스템의 블록 다이어그램이다.
도 2 는 본 개시물의 예시적인 양태에 따른 단일 외부 버스를 갖는 예시적인 컴퓨팅 디바이스의 블록 다이어그램이다.
도 3 은 복수의 노드들을 갖는 제 2 칩에 커플링된 복수의 노드들을 갖는 제 1 칩의 개략적인 블록 다이어그램이다.
도 4 는 도 2 의 컴퓨팅 시스템의 초기화 동안 게이트웨이에서의 시스템 토폴로지 및 스테이터스 테이블의 파퓰레이션을 도시하는 플로우챠트이다.
도 5 는 본 개시물의 예시적인 양태에 따른 예시적인 시스템 토폴로지 및 스테이터스 테이블이다.
도 6 은 노드를 게이트웨이에 어떻게 등록하는지를 나타내는 신호 플로우 다이어그램이다.
도 7 은 노드의 상태에서의 변화에 의해 생성된 스카우트 메시지들로 도 5 의 시스템 토폴로지 및 스테이터스 테이블을 업데이트하는 것을 도시하는 플로우챠트이다.
도 8 은 본 개시물의 프로토콜의 예시적인 양태에 따른 예시적인 스카우트 메시지이다.
도 9 는 칩 내에서 제 2 노드와 통신하는 노드의 신호 다이어그램이다.
도 10 은 제 2 원격 노드와 통신하는 노드의 신호 다이어그램이다.
도 11 은 본 개시물의 프로토콜의 예시적인 양태들에 따른 표준 메시지의 구조를 도시하는 테이블이다.
도 12 는 본 개시물의 예시적인 양태에 따른 중재 프로세스의 신호 다이어그램이다.
도 13 은 버스 상의 중재에 후속하는 버스 중단에 대한 예시적인 버스 시퀀스이다.
도 14 는 버스 중단에 대한 대안의 예시적인 버스 시퀀스이며, 여기서 버스는 키퍼 회로 (keeper circuit) 를 갖는 것이 아니라 와이어-AND 중재를 갖는다.
도 2 는 본 개시물의 예시적인 양태에 따른 단일 외부 버스를 갖는 예시적인 컴퓨팅 디바이스의 블록 다이어그램이다.
도 3 은 복수의 노드들을 갖는 제 2 칩에 커플링된 복수의 노드들을 갖는 제 1 칩의 개략적인 블록 다이어그램이다.
도 4 는 도 2 의 컴퓨팅 시스템의 초기화 동안 게이트웨이에서의 시스템 토폴로지 및 스테이터스 테이블의 파퓰레이션을 도시하는 플로우챠트이다.
도 5 는 본 개시물의 예시적인 양태에 따른 예시적인 시스템 토폴로지 및 스테이터스 테이블이다.
도 6 은 노드를 게이트웨이에 어떻게 등록하는지를 나타내는 신호 플로우 다이어그램이다.
도 7 은 노드의 상태에서의 변화에 의해 생성된 스카우트 메시지들로 도 5 의 시스템 토폴로지 및 스테이터스 테이블을 업데이트하는 것을 도시하는 플로우챠트이다.
도 8 은 본 개시물의 프로토콜의 예시적인 양태에 따른 예시적인 스카우트 메시지이다.
도 9 는 칩 내에서 제 2 노드와 통신하는 노드의 신호 다이어그램이다.
도 10 은 제 2 원격 노드와 통신하는 노드의 신호 다이어그램이다.
도 11 은 본 개시물의 프로토콜의 예시적인 양태들에 따른 표준 메시지의 구조를 도시하는 테이블이다.
도 12 는 본 개시물의 예시적인 양태에 따른 중재 프로세스의 신호 다이어그램이다.
도 13 은 버스 상의 중재에 후속하는 버스 중단에 대한 예시적인 버스 시퀀스이다.
도 14 는 버스 중단에 대한 대안의 예시적인 버스 시퀀스이며, 여기서 버스는 키퍼 회로 (keeper circuit) 를 갖는 것이 아니라 와이어-AND 중재를 갖는다.
이제 도면들을 참조하여, 본 개시물의 몇몇 예시적인 양태들이 기재된다. 단어 "예시적인" 은 본 명세서에서 "예, 예증, 예시로서 작용하는" 을 의미한다. "예시적인" 으로서 본 명세서에 기재된 임의의 양태가 반드시 다른 양태들보다 선호되거나 이로운 것으로 해석되지 않아야 한다.
상세한 설명에 개시된 양태들은 인터칩 및 인트라칩 노드 통신을 위한 시스템들 및 방법들을 포함한다. 예시적인 양태에서, 컴퓨팅 디바이스 내에서 칩들의 각각을 접속하는, 때때로 외부 버스 또는 인터칩 버스로 칭하는, 단일 통합된 저속 버스가 제공된다. 칩들은 물리 계층 인터페이스 및 연관된 게이트웨이를 통해 버스에 커플링한다. 게이트웨이는 인터페이스 패브릭 (fabric) 에서 매 노드에 대한 스테이터스를 요약하는 스테이터스 테이블을 저장하는 메모리를 포함한다. 스테이터스 테이블은 시스템 초기화에서 초기에 파퓰레이팅된다. 노드들이 상태 변화들을 경험할 때, 노드들은 연관된 로컬 게이트웨이들에 업데이트들을 제공한다. 로컬 게이트웨이들은 그 후, 상태 변화들에 관한 정보를 갖는 스카우트 메시지를 사용하여, 원격 게이트웨이들에 메시징한다. 이러한 방식으로, 각각의 게이트웨이는 네트워크에서 임의의 노드의 스테이터스에 관하여 참조가 이루어질 수 있는 업데이트된 스테이터스 테이블을 갖는다. 제 1 노드가 제 2 노드로의 신호를 준비하고 있을 때, 제 1 노드는 제 2 노드에 대한 현재 스테이터스를 결정하기 위해 로컬 연관된 게이트웨이에서 스테이터스 테이블을 체크한다. 제 2 노드의 스테이터스에 기초하여, 제 1 노드는 메시지를 전송하거나, 메시지를 유지하거나, 웨이크 커맨드로 전송하거나, 또는 다른 적절한 액션을 취할 수도 있다. 모든 저속 버스들을 단일 통합된 물리 계층 인터페이스로 단일 통합된 버스에 통합함으로써, 컴퓨팅 디바이스의 집적 회로들 내의 공간이 중복 물리 계층 인터페이스들에 대해 사용되지 않고, 불필요하게 중복하는 전도성 엘리먼트들이 집적 회로들을 접속하는데 필요하지 않으며, 레이아웃 설계가 단순해진다. 또한, 더 적은 버스들은 더 적은 클록 신호들이 필요함을 의미하며, 이는 전력 소비가 감소될 수도 있음을 의미한다. 마찬가지로 다양한 인터페이스 블록들을 지원하기 위한 필요성을 제거함으로써 설계가 단순해진다. 또한, 노드들 사이의 메시지 전송을 위해 상이한 소프트웨어 및/또는 브리지 소프트웨어가 종종 필요한 이종 시스템들과는 대조적으로 소프트웨어 균일성이 보장된다.
본 개시물의 예시적인 양태들은, 게이트웨이가 수신된 메시지들에서 불일치 거동을 검출하는 상황들에서, 중재 프로세서의 조작들을 통해 버스가 재초기화되도록 한다. 즉, 게이트웨이가 게이트웨이의 내부 상태와 충돌이 있는 이벤트들을 검출할 때, 게이트웨이는 게이트웨이가 중재에서 승리하는 것을 보장하기 위해 다음 중재 사이클 동안 특정 중재 식별자를 전송한다. 중재에서 승리한 후, 게이트웨이는 그 후 데이터를 전송하지 않으며, 이는 리셋 타임아웃을 강제한다. 리셋 타임아웃은 재초기화를 강제하며, 이는 스테이터스 테이블들이 재파퓰레이팅되도록 하고 이전에 검출된 에러들 없이 메시지 트래픽이 재개하도록 한다.
본 개시물의 예시적인 양태들을 언급하기 전에, 종래 컴퓨팅 시스템 (10) 의 짧은 개관이 도 1 을 참조하여 제공된다. 종래 컴퓨팅 시스템 (10) 의 개관은 본 개시물의 예시적인 양태들을 대조하고 종래 시스템들의 단점을 예시하는 것을 돕기 위해 제공된다. 본 개시물의 예시적인 양태들의 논의는 도 2 를 참조하여 하기에서 시작한다.
이와 관련하여, 도 1 은 종래 컴퓨팅 시스템 (10) 의 블록 다이어그램이며, 이는 어플리케이션 프로세서 (때때로, 본 명세서에서 "AP" 로서 지칭됨) 일 수도 있는, 제 1 IC (12) 를 포함한다. 제 1 IC (12) 는 복수의 서브시스템들 (14(1)-14(N)) 을 포함할 수도 있으며, 이는 글로벌 네비게이션 위성 시스템 (GNSS)(때때로 본 명세서에서 "Nav" 로서 지칭됨) 와 같은 네비게이션 시스템, 모뎀들, 예컨대 3G, 4G 및/또는 롱텀 에볼루션 (long term evolution; LTE), 센서 서브 시스템, AOP (Always On Processor) 서브 시스템, 오디오 서브 시스템 등을 포함할 수도 있다. 복수의 서브시스템들 (14(1)-14(N)) 의 각각의 서브시스템은 그와 연관된 노드 (미도시) 를 가질 수도 있으며, 이는 서브시스템의 어플리케이션 계층 활동을 다른 노드들과의 통신을 위한 프로토콜 스택에서의 하위 계층으로 변환시킨다. 종래 컴퓨팅 시스템 (10) 은 또한 다른 IC들 (16(1)-16(6)) 을 더 포함할 수도 있다. 6 개의 다른 IC들 (16(1)-16(6)) 이 도시되지만, 다른 IC들 (16(1)-16(6)) 과 같은 더 많거나 더 적은 IC들이 종래 컴퓨팅 시스템 (10) 내에 제시될 수도 있음을 알아야 한다. 예시적인 양태에서, 다른 IC들 (16(1) 및 16(2)) 은 모바일 디바이스 모뎀 (MDM) 들이고, 다른 IC (16(4)) 는 WIFI 또는 BLUETOOTHTMTM 시스템 (때때로 WIFI/BT 로 지칭됨) 과 같은 근접장 (near field) 통신 모뎀 (NFCM) 이다. 다른 IC (16(5)) 는 오디오 또는 음성 코덱 (때때로 WCD로 지칭됨) 과 같은 무선 코덱 디바이스일 수도 있고, 다른 IC (16(6)) 는 전력 관리 IC (PMIC) 일 수도 있다. 제 1 IC (12) 및 다른 IC들 (16(1)-16(6)) 의 각각은 종래 컴퓨팅 시스템 (10) 내에서 인쇄 회로 기판 (PCB) 상에 실장된 그 자신의 칩일 수도 있음을 알아야 한다. 그러한 실장은 소켓에 칩의 핀들을 삽입하거나, PCB 에 핀들을 솔더링하거나, 또는 잘 이해된 바와 같은 다른 기법들에 의해 행해질 수도 있다.
도 1 을 계속 참조하면, 제 1 IC (12) 는 통신 버스들 (18(1)-18(6)) 을 통해 다른 IC들 (16(1)-16(6)) 과 통신한다. 통신 버스들 (18(1)-18(6)) 의 각각은 상이한 프로토콜들에 따라 동작하고 상이한 수의 와이어들을 갖는 서브 버스들을 포함할 수도 있음을 알아야 한다. 예를 들어, 통신 버스 (18(2)) 는 2-와이어 (2W) 주변 컴포넌트 상호접속 (PCI) 익스프레스 (PCIe) 버스, 4-와이어 (4W) 범용 비동기식 수신기/송신기 (UART) 호스트 제어기 인터페이스 (UARTHCI) 버스, 2-와이어 UART BLUETOOTH 저에너지 (UART BLE) 버스, 및 4-와이어 UART 이동성/모바일 보조 무선 충실도 (WiFi) 접속성 (UART MAWC) 버스를 포함한다. 다른 버스들은 시스템 전력 관리 인터페이스 (SPMI) 표준, 범용 입력/출력 (GPIO) 표준, 직렬 주변 인터페이스 (SPI) 표준, UART GeoFencing (UART GF), UART 무선 접속성 인터페이스, 버전 2 (UARTWCI2), 또는 다른 표준들을 따를 수도 있다. 각각의 버스 및/또는 서브 버스들에 대하여, 칩들은 중복성일 수도 있는 별도의 인터페이스들을 필요로 할 수도 있다. 통신 버스들 (18(1)-18(6)) 의 각각을 모든 서브-버스들로 라우팅하는 것은 복잡해질 수 있음을 알아야 한다. 또한, 각각의 버스의 각 와이어는 핀 또는 콘택 핀을 필요로 하며, 이는 상업적으로 급격히 비실용적이게 된다. 또한, 이들 통신 버스들 (18(1)-18(6)) 의 각각은 전자기 간섭 (EMI) 공격자로서 또는 EMI 희생자로서 작용할 수 있으며, 이는 통신 버스들 (18(1)-18(6)) 을 라우팅하는 복잡성을 부가한다. 요약하면, 종래 컴퓨팅 디바이스 (10) 는 개선될 수도 있다.
이와 관련하여, 본 개시물의 예시적인 양태들은 컴퓨팅 시스템 내의 저속 버스들을 단일 저속 버스로 통합하고 인트라칩 및 인터칩 레벨 양자에서 노드 대 노드 통신을 허용하는 프로토콜을 구현한다. 그러한 통합은 버스의 라우팅을 단순화하고, EMI 에 대한 기회들을 감소시키며, 칩들 상의 핀 수를 감소시킨다. 또한, 그러한 통합은 이종 시스템들에서의 많은 어플리케이션 프로그래밍 인터페이스 (API) 들에 대한 요건들과 달리 단일 공통 API 에 부착된 서브시스템 노드들 및 그 대응 제어 소프트웨어를 갖는 것에 의해 전체 시스템 소프트웨어를 단순화한다.
이와 관련하여, 도 2 는 어플리케이션 프로세서일 수도 있는, 제 1 IC (32) 를 갖는 예시적인 컴퓨팅 시스템 (30) 을 도시한다. 제 1 IC (32) 는 복수의 서브 시스템들 (직사각형들로 나타내지만, 숫자로 표시되지는 않음) 을 포함할 수도 있다. 위에 언급된 바와 같이, 서브 시스템은 네비게이션 서브 시스템, 모뎀 서브 시스템, 센서 서브 시스템, 오디오 서브 시스템, AOP 서브 시스템 등을 포함 할 수도 있다. 복수의 서브 시스템들의 각각은 연관된 노드를 갖는다. 따라서, 제 1 IC (32) 는 노드들 (34(1)-34(N)) 을 갖는다. 노드들 (34(1)-34(N)) 은 각각의 송신기들 (34(1)Tx-34(N)Tx) 및 각각의 수신기들 (34(1)Rx-34(N)Rx) 을 가짐을 알아야 한다. 컴퓨팅 디바이스 (30) 는 다른 IC들 (36(1)-36(M))(6 개 도시됨) 을 더 포함할 수도 있다. 외부 버스 (38) 는 제 1 IC (32) 및 다른 IC들 (36(1)-36(M)) 을 커플링한다. 예시적인 양태에서, 외부 버스 (38) 는 저속 버스이다. 다른 IC (36(1)) 는 그 내부에 노드들 (40(1)-40(P)) 을 가지며, 다른 IC (36(2)) 는 그 내부에 노드 (42) 를 가지는 한편, 다른 IC (36(3)) 는 그 내부에 복수의 노드들 (44(1)-44(Q)) 을 갖는다. 다른 IC들 (36(1)-36(M)) 의 또 다른 IC들은 그 내부에 다양한 수의 노드들 (명시적으로 표시되지 않고 예시됨) 을 가질 수도 있다. 다시, 노드들 (40(1)-40(P), 42, 및 44(1)-44(Q)) 의 각각은 그 자신의 개개의 송신기 및 수신기 (미도시) 를 가짐을 알아야 한다. 제 1 IC (32) 는 게이트웨이 (46)(또한, 도면들에서 "GW" 로 표시됨) 를 포함한다. 게이트웨이 (46) 는 노드들 (34(1)-34(N)) 에 커플링되는 내부 인터페이스 및 외부 버스 (38) 에 커플링되는 외부 인터페이스를 포함한다. 유사하게, 다른 IC들 (36(1)-36(M)) 은 게이트웨이 (46) 와 유사한 개개의 게이트웨이들 (48(1)-48(M)) (또한 도면들에서 "GW" 로서 지칭됨) 을 포함한다. USB 및 PCIe 버스와 같은 다른 버스들이 남아있을 수도 있지만, 일반적으로 이들은 고속 버스들이다. 본 명세서에서 사용된 바와 같이, 저속 버스들은 50-100 Mbps 까지의 속도를 갖는 버스들이다. 대조적으로, 고속 버스들은 100 초 내지 1000 초의 Mbps 또는 Gbps 이다. 예시적인 양태에서, 외부 버스 (38) 의 주파수는 57.6 MHz 일 수도 있으며, 이는 많은 셀룰러 설계에서 발견되는 공통 19.2 MHz 의 배수이며 저속 버스로 적합하다.
노드들 및 게이트웨이들의 소정의 특징들을 더 잘 예시하기 위해서, 도 3 은 도 2 의 컴퓨팅 시스템 (30) 으로부터 추출된 부분적인 컴퓨팅 시스템 (50) 의 개략적인 블록 다이어그램을 제공한다. 부분적인 컴퓨팅 시스템 (50) 은 제어 시스템 (51)(도면들에서 "CS" 로 표시됨) 을 갖는 제 1 IC (32), 제어 시스템 (52)(도면들에서 "CS" 로 표시됨) 을 갖는 다른 IC (36(1)), 및 제 1 IC (32) 및 다른 IC (36(1)) 를 커플링하는 외부 버스 (38) 를 포함한다. 외부 버스 (38) 는 제 1 와이어 상의 클록 신호 (SCLK) 및 제 2 와이어 상의 데이터 신호 (SDATA) 를 반송할 수 있는 2-와이어 버스일 수도 있다. 제 1 IC (32) 의 게이트웨이 (46) 는 포인트 대 포인트 커플링 (53) 에 의해 노드들 (34(1)-34(N)) 에 직접 커플링된다. 본 명세서에서 사용된 바와 같이, 그러한 직접 커플링은 1 대 1 물리 접속들을 포함하도록 정의된다. 능동 및 수동 엘리먼트들이 노드들 (31(1)-34(N)) 중 주어진 노드와 게이트웨이 (46) 사이에 존재할 수도 있지만, 접속은 게이트웨이 (46) 를 통과하지 않으면서 제 1 IC (32) 에서 노드들 (34(1)-34(N)) 의 임의의 다른 노드에 통신가능하게 접속하지 않는다. 대조적으로, 다른 IC (36(1)) 의 노드들 (40(1)-40(P)) 은 예컨대 네트워크 온 칩 (NoC)(54) 을 통해 직접 게이트웨이 (48(1)) 에 커플링된다. 도 3 은 포인트 대 포인트 커플링 (53) 을 갖는 제 1 IC (32) 및 NoC (54) 를 갖는 다른 IC (36(1)) 를 도시하지만, 예시적인 양태에서, 이러한 시스템들은 상호 배타적이다. 즉, 제 1 IC (32) 가 포인트 대 포인트 커플링 (53) 을 가지면, 다른 IC (36(1)) 도 마찬가지로 NoC (54) 보다는 오히려 포인트 대 포인트 커플링 (53) 을 가지게 된다. 마찬가지로, 다른 IC (36(1) 가 NoC (54) 를 가지는 경우, 제 1 IC (32) 도 마찬가지로 NoC (54) 를 가지게 된다. 또한, 도시된 바와 같이, 제어 시스템들 (51 및 52) 이 개개의 게이트웨이들 (46 및 48(1)) 내부에 있지만, 본 개시물은 그렇게 제한되지 않으며, 제어 시스템들 (51 및 52) 이 개개의 게이트웨이들 (46 및 48(1)) 외부에 있을 수도 있음을 유의한다.
도 3 을 계속 참조하면, 외부 버스 (38) 는 제 1 IC (32) 및 다른 IC (36(1)) 를 중재 클록 관리기 (ACM)(56) 에 커플링할 수도 있다. 대안으로, ACM (58) 은 다른 IC (36(1))(제 1 IC (32) 와 같은 또 다른 IC) 에 존재할 수도 있다. ACM (56) 또는 ACM (58) 의 기능은 중재 기간 동안 외부 버스 (38) 에 대해 SCLK 를 소싱하는 것이다. 위에 언급된 바와 같이, 게이트웨이 (46 및 48(1)) 는 외부 버스 (38) 에 커플링하기 위해 개개의 외부 인터페이스들 (60 및 62) 를 포함한다. 마찬가지로, 게이트웨이 (46) 는 노드들 (34(1)-34(N)) 에 커플링하기 위해 내부 인터페이스 (64) 를 포함할 수도 있다. 내부 인터페이스 (64) 는 필요에 따라 또는 원하는 바에 따라 일원적 엘리먼트 또는 복수의 엘리먼트들일 수도 있다. 유사하게, 게이트웨이 (48(1)) 는 NoC (54) 에 커플링하는 내부 인터페이스 (66) 를 포함할 수도 있다. 예시적인 양태에서, 내부 인터페이스 (64) 는 내부 노드들 (34(1)-34(N)) 에 접속하는 포트들의 세트를 가질 수도 있다. 각각의 포트는 노드들 (34(1)-34(N)) 의 노드가 하나보다 많은 논리 노드 ID 에 응답할 수 있도록 포트의 세트 논리적 ID 레지스터들을 갖는다. 예시적인 포트 테이블은 다음의 조건들에 대한 스테이터스를 정의하는 레지스터들을 포함한다: 신뢰성있는, 온라인, 웨이크가능, 최대 송신 유닛 (MTU), 및 CTS (clear to send). 신뢰성은 개별 논리 모드들의 함수일 수도 있지만, 게이트웨이는 포트에서 모든 논리 노드들에 대해 공통 세트의 파라미터들을 제공할 수 있음을 유의한다 (예를 들어, 온라인, 웨이크가능, MTU, CTS). 상이한 구현들은 속성들을 상이하게 파티셔닝할 수도 있다.
도 4 는 도 2 의 컴퓨팅 시스템 (30) 의 초기화 동안 게이트웨이 (예를 들어, 게이트웨이 (46) 또는 게이트웨이들 (48(1)-48(P)) 중 하나) 에서 시스템 토폴로지 및 스테이터스 테이블 (100)(도 5 참조) 의 파퓰레이션 프로세스 (70) 를 도시하는 플로우챠트이다. 프로세스 (70) 는 컴퓨팅 시스템 (30) 이 외부 버스 (38) 에 접속된 제 1 IC (32) 로 활성화하는 것으로 시작한다 (블록 (72)). 제 1 노드들 (34(1)-34(N)) 은 제 1 게이트웨이 (46) 에 등록한다 (블록 (74)). 이러한 등록은 게이트웨이 (46) 로부터의 요청에 응답하여, 노드들 (34(1)-34(N)) 이 전력을 수신하는 것에 응답하여, 또는 쉽게 이해되는 바와 같은 또 다른 커맨드로부터 행해질 수도 있다. 제 1 게이트웨이 (46) 는 노드들 (34(1)-34(N)) 에 관한 정보로 시스템 토폴로지 및 스테이터스 테이블 (100)(도 5 참조) 을 파퓰레이트한다 (블록 (76)). 이러한 시점에서, 인트라칩 통신 (즉, 노드들 (34(1)-34(N)) 사이) 이 가능하지만 (블록 (78)), 게이트웨이 (46) 는 인터칩 통신을 배제한다.
도 4 를 계속 참조하면, 얼마 후에, 다른 IC들 (36(1)-36(M)) 의 하나 이상이 활성화된다. 예시를 목적으로, 다른 IC (36(1)) 가 활성화되고 제 2 게이트웨이 (48(1)) 는 부팅한다 (블록 (80)). 본 명세서에서 사용된 바와 같이, 제 1 및 제 2 는 엘리먼트들 사이를 구별하는데 있어서 편의를 위해 사용되며 반드시 엄격한 시간적 표시들은 아니다. 예를 들어, 다른 IC (36(3)) 는 후속하여 활성화하는 IC (32) 와 제 1 시간에서 활성화할 수 있고, 따라서 다른 IC (36(3)) 은 프로세스 (70) 에 대해 "제 1" 일 수 있는 것이 가능하다. 쉽게 이해되는 바와 같이 여전히 다른 시간적 순서들이 가능하다. 제 2 게이트웨이 (48(1)) 는 등록을 위해 제 2 노드들 (40(1)-40(P)) 을 시그널링한다 (블록 (82)). 제 2 게이트웨이 (48(1)) 는 제 1 게이트웨이 (46) 로부터 제 1 게이트웨이 (46) 와 연관된 노드들 (34(1)-34(N)) 의 구성 데이터를 요청한다 (블록 (84)). 제 2 노드들 (40(1)-40(P) 은 제 2 게이트웨이 (48(1)) 에 등록하고 (블록 (86)), 제 2 게이트웨이 (48(1)) 는 그 자신의 시스템 토폴로지 및 스테이터스 테이블을 파퓰레이트한다. 본 개시물의 예시적인 양태에서는 IC들 (32 및 36(1)-36(M)) 이 서로 독립적으로 구성되지만, 다른 예시적인 양태에서, 제 1 게이트웨이 (46) 는 제 2 게이트웨이 (48(1)) 를 구성할 수도 있음을 유의한다.
도 4 를 계속 참조하면, 제 2 게이트웨이 (48(1)) 는 스카우트 메시지들을 외부 버스 (38) 상에서 전송하여 제 2 노드들 (40(1)-40(P)) 의 특성들 및 스테이터스를 브로드캐스팅한다 (블록 (88)). 스카우트 메시지들에 관한 많은 정보는 도 8 을 참조하여 하기에서 제공된다. 제 1 게이트웨이 (46) 는 제 2 노드들 (40(1)-40(P)) 에 관한 정보로 로컬 시스템 토폴로지 및 스테이터스 테이블을 업데이트한다. 제 1 게이트웨이 (46) 는 제 1 노드들 (34(1)-34(N)) 의 스테이터스 및 특성들을 갖는 스카우트 메시지들을 외부 버스 (38) 상에서 제 2 게이트웨이 (48(1)) 에 전송한다 (블록 (90)). 제 2 게이트웨이 (48(1)) 는 제 1 노드들 (34(1)-34(N)) 에 관한 정보로 로컬 시스템 토폴로지 및 스테이터스 테이블을 업데이트한다. 시스템 토폴로지 및 스테이터스 테이블들이 원격 노드들에 관한 정보로 업데이트되면, 도 9 및 도 10 을 참조하여 하기에서 더 상세하게 설명되는 바와 같이 통신에 수반된 노드들의 가용성에 따라 인터칩 통신이 발생할 수도 있다.
도 5 는 본 개시물의 예시적인 양태에 따른 예시적인 시스템 토폴로지 및 스테이터스 테이블 (100) 이다. 시스템 토폴로지 및 스테이터스 테이블 (100) 은, 노드 어드레스 필드 (102), 노드가 내부에 존재하는 필드 (104), 노드가 외부에 존재하는 필드 (106), 노드가 어웨이크하는 필드 (108), 웨이크 온 메시지가 허용되는 필드 (110), 신뢰성있는 전달이 필요한 필드 (112), 노드 CTS (clear to send) 스테이터스 필드 (114), 및 최대 전송 유닛 (MTU) 사이즈 필드 (116) 와 같은, 필드들을 포함할 수도 있다. 본 개시물의 예시적인 양태에서, MTU 는 버퍼들 및 유사한 팩터들을 오버플로우하지 않도록 모든 수신 노드들에 대해 시스템 설계자에 의해 결정된다. 더 큰 MTU 는 더 큰 버퍼 사이즈를 나타내고, 따라서 SOC 면적이 커진다는 점에서, SOC 면적과 MTU 및 버퍼 사이즈 사이의 직접적인 관계가 있다. 필드들 (104, 106, 108, 110, 및 112) 은 단일 비트 또는 간단한 Y/N 표시들일 수도 있음을 유의한다. 다른 필드들 (102, 114, 및 116) 은 단일 비트보다 더 클 수도 있다. 필드들 (104 및 106) 은 내부 또는 외부를 표시하거나 노드들의 위치의 상호 배타적인 성질에 의존하는 단일 필드로 통합되어 단일 표시를 사용하여 표시가 결여된 노드들에 대한 다른 위치를 추론하기 위해 그러한 표시의 부재 및 노드의 위치를 표시할 수도 있음을 또한 유의한다 (예를 들어, 노드가 존재하는 내부 필드 (104) 만이 존재하는 경우, 여기서 포지티브 비트의 부재는 반드시 노드가 외부에 존재하는 것을 표시하지 않는다).
도 6 은 리셋 또는 초기화 시 게이트웨이 (예를 들어, 게이트웨이 (46)) 에 노드 (예를 들어, 노드 (32(1)) 를 어떻게 등록하는지 나타내는 신호 플로우 다이어그램 (130) 이다. 노드 (34(1)) 가 노드 하드웨어 (HW)(132) 및 노드 소프트웨어 (SW)(134) 를 포함함을 알아야 한다. 마찬가지로, 게이트웨이 (46) 는 게이트웨이 (도면들에서 GW 로 지칭됨) 포트 관리기 (140), 게이트웨이 라우팅 테이블 (142)(예를 들어, 시스템 토폴로지 및 스테이터스 테이블 (100)), 게이트 외부 버스 관리기 (144), 및 게이트 구성 SW (146) 를 포함한다. 초기에, 하드웨어 또는 소프트웨어 커맨드는 리셋을 개시한다. 노드 (34(1)) 는 스테이터스 레지스터 (미도시) 에서 리셋 조건을 기입할 수도 있다. 리셋 조건은 콜드/서브시스템 하드웨어 리셋, 게이트웨이 리셋 요청, 소프트웨어 리셋 요청, 또는 디버그 리셋일 수도 있다. 노드 (34(1)) 는 게이트웨이 (46) 가 준비되었는지 여부를 알기 위해 테스트할 수도 있다. 게이트웨이 (46) 가 준비되면, 신호 플로우 다이어그램 (130) 의 초기화 프로세스가 시작된다.
도 6 을 계속 참조하면, 초기에 포트 테이블은 언록되고 게이트웨이 구성 SW (146) 에 의해 수정될 수 있다. 게이트웨이 구성 SW (146) 는 신호 (150) 로 논리 노드ID, 유효, 신뢰성/비신뢰성을 포트 테이블에 기입한다. 게이트웨이 구성 SW (146) 는 또한 신호 (152) 로 게이트웨이 (46) 를 인에이블한다. 대안으로, 게이트웨이 (46) 는 자동-인에이블된다. 게이트웨이 포트 관리기 (140) 는 게이트웨이 (46) 가 신호 (154) 로 준비된 것을 노드 HW (132) 에 표시하며, 이는 노드 HW (132) 로 하여금 게이트웨이 판독 스테이터스 레지스터 (미도시) 를 업데이트하게 한다. 노드 HW (132) 는 게이트웨이 포트 관리기 (140) 에 노드 리셋 커맨드 (156) 를 전송하며, 이는 포트 플래그 값을 체크한다. 포트 플래그 값은 디스에이블되도록 설정되어야 한다. 포트 플래그 값은 웜 (warm) 리셋 조건에 대해 포트 및 라우팅 테이블을 리셋하는데 사용된다.
도 6 을 계속 참조하면, 게이트웨이 포트 관리기 (140) 는 노드 HW (132) 에 리셋 확인응답 (ACK)(158) 를 전송한다. 노드 HW (132) 는 노드 SW (134) 에 노드 초기화 인터럽트 (160) 를 전송한다. 한편 게이트웨이 구성 SW (146) 는 신호 (162) 로 포트 테이블에 논리 노드ID, 유효, 신뢰성/비신뢰성을 기입할 수도 있다. 게이트웨이 구성 SW (146) 는 노드 초기화 인터럽트 (160) 에 의해 트리거될 수도 있다. 노드 HW (132) 는 커맨드 (164) 로 자동 인에이블 비트를 설정한다. 노드 SW (134) 는 노드 HW (132) 에 인에이블 노드 커맨드 (166) 를 전송한다. 노드 HW (132) 는 포트 CONF 커맨드 (때때로 CMD 로 지칭됨)(168) 를 게이트웨이 포트 관리기 (140) 에 전송하며, 이는 포트 CONF ACK (170) 에 응답하고 포트 테이블을 록킹하여 (기입 방지 또는 "WP") 게이트웨이 구성 SW (146) 에 의해 수정될 수 없다.
도 6 을 계속 참조하면, 노드 HW (132) 는 게이트 포트 관리기 (140) 에 RX_MTU CMD (172) 를 전송하며, 이는 커맨드 (174) 로 게이트 라우팅 테이블 (142) 에서 로컬, 유효, 신뢰성, RX_MTU 를 설정한다. 게이트웨이 포트 관리기 (140) 는 노드 HW (132) 에 MTU ACK (176) 를 전송한다. 한편, 게이트웨이 라우팅 테이블 (142) 은 커맨드 (178) 로 디폴트 값 당 HDR 을 설정한다. 노드 HW (132) 는 웨이크가능 CMD (180) 를 게이트웨이 포트 관리기 (140) 에 전송하며, 이는 커맨드 (182) 로 게이트웨이 라우팅 테이블 (142) 에 웨이크가능/웨이크불가능 (NW) 비트를 설정한다. 게이트웨이 포트 관리기 (140) 는 노드 HW (132) 에 웨이크 ACK (184) 를 전송한다. 노드 HW (132) 는 CTS CMD (186) 를 게이트웨이 포트 관리기 (140) 에 전송하며, 이는 커맨드 (188) 로 CTS 비트를 게이트웨이 라우팅 테이블 (142) 에 설정한다. 게이트웨이 포트 관리기 (140) 는 CTS ACK (190) 를 노드 HW (132) 에 전송한다. 노드 HW (132) 는 온/오프 CMD (192) 를 게이트웨이 포트 관리기 (140) 에 전송하며, 이는 커맨드 (194) 로 게이트웨이 라우팅 테이블 (142) 의 온/오프 비트를 설정한다. 게이트웨이 포트 관리기 (140) 는 노드 HW (132) 에 온/오프 ACK (196) 를 전송한다. 노드 HW (132) 는 구성 완료 (CONFDONE) CMD (198) 를 게이트웨이 포트 관리기 (140) 에 전송한다. 게이트웨이 라우팅 테이블 (142) 은 노드 상태 변화를 갖는 스카우트 커맨드 (200) 를 게이트웨이 외부 버스 관리기 (144) 에 전송한다. 게이트웨이 포트 관리기 (140)는 노드 HW (132) 에 CONFDONE ACK (202) 를 전송하고 포트 테이블은 언록되고 게이트웨이 구성 SW (146) 에 의해 수정될 수 있다. 신호들 및 커맨드들 (170-202) 은 포트 테이블의 각각의 노드 ID 에 대해 반복된다. 노드 HW (132) 는 노드 구성 완료 인터럽트 (204) 를 노드 SW (134) 에 전송함으로써 종료한다.
예시적인 양태에서, 포트는 논리 노드 ID 의 동적 생성의 경우 사용하기 위한 노드의 상태를 유지해야 한다. 이것은 인에이블된 (온라인) 온/오프 웨이크가능, Rx_MTU 및 CTS 와 같은 노드의 상태가, 논리 노드 ID 가 생성되는 시간에 포트의 상태를 이어받게 한다. 논리 노드 ID 는 논리 노드 ID 값을 설정 또는 변화시키는 것에 의해 동적으로 생성될 수도 있음을 유의한다. 게이트웨이에서의 포트는 모든 가능한 논리 노드 ID들 및 그 스테이터스를 계속 추적한다. 일 예로서, 물리적 노드는 ID들이 a, b, c 및 d 인 4 개의 논리 노드를 가질 수도 있다. 조건들을 변화시키면, ID e 에서 새로운 논리 노드 (및 그 파라미터) 의 동적 생성이 야기된다. 그렇게 하는데 있어서, 논리 노드 e 는 논리 노드 a 를 대체한다. 생성 후, 논리 노드들의 게이트웨이 리스트는 b, c, d 및 e 로 업데이트된다. 논리 노드 a 의 파라미터들은 필요하다면 노드 소프트웨어에 유지될 수도 있다.
도 7 은 노드의 상태 변화에 의해 생성된 스카우트 메시지로 도 5 의 시스템 토폴로지 및 스테이터스 테이블 (100) 을 업데이트하는 것을 도시하는 플로우챠트이다. 특히, 프로세스 (220) 는 노드 (34 (1)) 가 정상 동작 동안 상태를 변화시키는 것으로 시작한다 (블록 222). 예를 들어, 노드 (34 (1)) 는 슬립 모드에 진입할 수도 있다. 제 1 게이트웨이 (46) 는 노드 (34 (1)) 의 상태 변화를 학습한다 (블록 224). 노드 (34 (1)) 는 상태 변화 이전에 이러한 상태 변화를 사전에 게이트웨이 (46) 에 알릴 수도 있다; 게이트웨이 (46) 는 노드 (34(1)-34(N)) 를 상태 변화들에 대해 주기적으로 폴링하거나, 필요에 따라 또는 원하는 바에 따라 다른 기법들이 사용될 수도 있다. 상태 변화의 학습 후, 제 1 게이트웨이 (46) 는 로컬 시스템 토폴로지 및 상태 테이블 (100) 을 업데이트한다 (블록 226).
도 7 을 계속 참조하면, 제 1 게이트웨이 (46) 는 외부 버스 (38) 를 통해 스카우트 메시지를 전송하여 로컬 시스템 토폴로지 및 스테이터스 테이블 (100) 에서의 변화를 브로트캐스팅한다 (블록 228). 제 2 게이트웨이 (48 (1)) 는 스카우트 메시지를 수신하고 (블록 230), 그의 로컬 시스템 토폴로지 및 스테이터스 테이블 (100) 을 업데이트한다 (블록 232).
도 8 은 본 개시물의 프로토콜의 예시적인 양태에 따른 예시적인 스카우트 메시지 (250) 이다. 스카우트 메시지 (250) 는 다음의 필드들을 포함한다: 유휴 필드 (252), 시작 필드 (254), 스카우트 식별자 필드 (256), 버전 ("ver") 필드 (258), 우선순위 필드 (260), 핸드오버 필드 (262), 메시지 헤더 (264), 및 1 내지 4 의 스카우트 커맨드들 (266) (단지 하나만 도시됨), 핸드 오버 필드 (262) 는 스카우트 메시지 (250) 의 중재 페이즈를 종료하고 데이터 페이즈를 시작한다.
모든 시스템 토폴로지 및 스테이터스 테이블 (100) 이 파퓰레이트되고 업데이트된 후, 도 2 의 컴퓨팅 시스템 (30) 의 노드들은 컴퓨팅 시스템 (30) 의 상위 레벨 기능들을 수행하기 위해 서로 통신할 수도 있다. 이와 관련하여, 도 9 는 제 1 IC (32) 내의 제 2 노드 (34(2)) 와 통신하는 노드 (34(1)) 의 신호 다이어그램 (270) 이다. 노드 (34(1)) 는 메시지 요청 (272) 을 게이트웨이 (46) 에 전송한다. 메시지 요청 (272) 은 신뢰성 요건들과 같은 속성들을 포함할 수도 있다. 게이트웨이 (46) 는 신뢰성이 요구되는지를 체크한다 (신호 (274)). 신뢰성이 요구되지 않으면, 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 전송하도록 명령하고 (신호 (276)) 노드 (34(1)) 는 메시지 (278) 를 전송한다.
도 9 를 계속 참조하면, 신뢰성이 요구되는 경우, 게이트웨이 (46) 는 목적지 노드 (34(2)) 가 이용가능한지를 알기 위해 시스템 토폴로지 및 스테이터스 테이블 (100) 을 체크한다 (신호 (280)). 테이블 (100) 이 목적지 노드 (34(2)) 가 이용가능한 것을 표시하는 경우 (신호 282), 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 전송하도록 명령하고 (신호 (284)) 노드 (34(1)) 는 메시지 (278) 를 전송한다.
도 9 를 계속 참조하면, 신뢰성이 요구되고 목적지 노드 (34(2)) 가 이용 가능하지 않고 웨이크가능하지 않으면 (신호 (286)), 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 유지 또는 폐기하도록 명령한다 (신호 (288)).
도 9를 계속 참조하면, 신뢰성이 요구되고 목적지 노드 (34(2)) 가 이용가능하지 않지만, 웨이크가능한 경우 (신호 290), 게이트웨이 (46) 는 웨이크 커맨드 (292) 를 목적지 노드 (34(2)) 에 전송한다. 목적지 노드 (34(2)) 는 웨이킹의 확인을 전송하고 (신호 (294)), 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 전송하도록 명령한다 (신호 (296)). 노드 (34(1)) 는 메시지 (278) 를 전송한다.
시스템 토폴로지 및 스테이터스 테이블 (100) 을 체크함으로써 메시지 전송에서 신뢰성이 보증된다. 개선된 신뢰성은 더 적은 메시지들이 재전송된다는 점에서 대역폭의 보존을 허용한다. 이러한 신뢰성은 노드들이 상이한 전력 도메인들, 상이한 클록 도메인들, 및/또는 상이한 웨이크능력 파라미터들을 갖는 경우에도 달성된다.
신호 다이어그램 (270) 은 인터칩 노드 대 노드 통신을 논의하지만, 도 10 은 다른 IC들 (36(1)-36(M)) 중 하나와 같은 원격 IC 상의 제 2 원격 노드 (40(1)) 와 통신하는 노드 (34(1)) 의 신호 다이어그램 (310) 이다. 노드 (34(1)) 는 메시지 요청 (312) 을 게이트웨이 (46) 에 전송한다. 메시지 요청 (312) 은 신뢰성 요건들과 같은 속성들을 포함할 수도 있다. 게이트웨이 (46) 는 신뢰성이 요구되는지를 체크한다 (신호 (314)). 신뢰성이 요구되지 않는 경우, 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 전송하도록 명령하고 (신호 (316)) 노드 (31(1)) 는 외부 버스 (38) 를 통해 메시지 (318) 를 원격 목적지 노드 (40(1)) 에 전송한다.
도 10 을 계속 참조하면, 신뢰성이 요구되는 경우, 게이트웨이 (46) 는 원격 목적지 노드 (40(1)) 가 이용가능한지를 알기 위해 시스템 토폴로지 및 스테이터스 테이블 (100) 을 체크한다 (신호 (320)). 테이블 (100) 은 컴퓨팅 시스템 (30) 에 모든 노드들의 스테이터스를 제공하기 위해 이전에 전송된 스카우트 메시지에 기초하여 최신이어야 한다. 테이블 (100) 이 원격 목적지 노드 (40(1) 가 이용가능하다고 표시하는 경우 (신호 (322)), 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 전송하도록 명령하고 (신호 (324)), 노드 (34(1)) 는 외부 버스 (38) 를 통해 메시지 (318) 를 원격 목적지 노드 (40(1)) 에 전송한다.
도 10 을 계속 참조하면, 신뢰성이 요구되고, 원격 목적지 노드 (40(1)) 가 이용가능하지 않으며 웨이크가능하지 않으면 (신호 (326)), 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 유지 또는 폐기하도록 명령한다 (신호 (328)).
도 10 을 계속 참조하면, 신뢰성이 요구되고, 원격 목적지 노드 (40(1)) 가 이용가능하지 않지만, 웨이크가능한 경우 (신호 (330)), 게이트웨이 (46) 는 외부 버스 (38) 를 통해 원격 목적지 노드 (40(1)) 로 웨이크 커맨드 (332) 를 전송한다. 원격 목적지 노드 (40(1)) 는 외부 버스 (38) 를 통해 웨이킹의 확인을 전송하고 (신호 (334)), 게이트웨이 (46) 는 노드 (34(1)) 에 메시지를 전송하도록 명령한다 (신호 (336)). 노드 (34(1)) 는 메시지 (318) 를 전송한다.
외부 버스 (38) 상에서 사용된 새로운 프로토콜을 설명하는 것을 돕기 위해, 도 11 은 본 개시물의 프로토콜의 예시적인 양태들에 따른 표준 메시지의 구조를 도시하는 테이블 (350) 이다. 표준 메시지는 표준 또는 스카우트 (std_or_Scout) (352), 버전 (354), 우선순위 레벨 (356), 백 오프 비트 (358), 노드 서브 ID (360), 클록 핸드오버 (362), 사이클릭 리던던시 체크 (CRC) 존재 (364), HDR 모드 (366), 목적지 노드 ID (368), 길이 (370), 페이로드 (372), CRC (374) 및 버스 파크 (376) 와 같은 필드들을 가질 수도 있다. 표준 메시지에 대해 다른 구조들/배열들이 가능하지만, 도 11 에 도시된 구조는 본 개시물의 예시적인 양태들에 적합하다.
도 12 는 본 개시물의 예시적인 양태에 따른 중재 프로세스 (400) 의 신호 다이어그램이다. 중재 프로세스 (400) 는 외부 버스 (38) 에 사용된 새로운 프로토콜을 설명하는 것을 돕기 위해 제공된다. 다른 중재 프로세스들이 가능하지만, 중재 프로세스 (400) 는 본 개시물의 예시적인 양태들에 적합하다. 중재 프로세스 (400) 는 이전 시퀀스 기간 (402) 의 종료 후 그리고 버스 유휴 기간 (404) 후에 시작한다. 버스 유휴 기간 (404) 동안, SLCK 는 SDATA 처럼 휴면이다. 중재 페이즈 (406) 는 칩들 중 하나 (또는 그 이상) 이 SDATA 라인 상에서 요청을 개시할 때 시작하는 중재 시작 (408) 으로 시작한다. 메시지 개시의 검출 시, 중재 시퀀스 (410) 가 시작하고, ACM (58) 이 SLCK 를 구동한다 (412 로 나타냄). 다양한 요청 게이트웨이들은 그들 개개의 메시지 우선순위에 따라 SDATA 를 구동하고 (일반적으로 414 에서) 우선순위가 확립된다. 우선순위가 확립되면, 클록 핸드오버 기간 (416) 이 시작하고, 그 후 승리하는 게이트웨이가 SCLK 를 구동하고 (418 에서 지칭됨) 데이터 페이즈 (422) 에 적절한 SDATA 를 제공한다 (420 로 나타냄).
중재 페이즈 (406) 에서, 다수의 게이트웨이들 (46 및 48(1)-49(M)) 은 고유 메시지 우선순위 값을 송신함으로써 외부 버스 (38) 로의 액세스를 겨룰 수 있다. 외부 버스 (38) 는 중재 페이즈 (406) 동안 게이트웨이들 (46 및 48(1)-48(M)) 중 하나 보다 많은 게이트웨이들이 송신할 때, 가장 긴급한 우선순위 값이 덜 긴급한 우선순위 값들로 게이트웨이들 (46 및 48(1)-48(M)) 을 오버라이드하도록 구성된다. 이러한 우선순위 스킴을 달성하기 위해서, 메시지 우선순위 값이 최상위 비트 (most significant bit; MSB) 로 먼저 송신되고, 모든 게이트웨이들 (46 및 48(1)-48(M)) 은 이들이 외부 버스 (38) 로 바로 출력한 비트가 외부 버스 (38) 의 실제 값임을 확인하기 위해 외부 버스(38) 를 감지한다. 게이트웨이들 (46 및 48(1)-48(M)) 중 하나가 게이트웨이가 바로 송신했던 값과 동일하지 않은 비트 값을 검출할 때마다, 그 게이트웨이는 백 오프하고 메시지 우선순위 값의 후속 비트들을 송신하려 시도하지 않는다. 승리하는 게이트웨이는 그의 메시지 우선순위 값의 모든 비트들이 적절히 송신되었음을 검출하는 게이트웨이이다 (즉, 우선순위 비트들은 게이트웨이들 (46 및 48(1)-48(M)) 중 또 다른 하나에 의해 미리 점유되었음). 승리하는 게이트웨이는 데이터 페이즈 (422) 동안 그의 메시지를 송신하기 위한 허가를 승인받는다. 게이트웨이가 그의 메시지를 송신하는 것을 완료한 후에, 외부 버스 (38) 는 게이트웨이들 (46 및 48(1)-48(M)) 중 임의의 것이 외부 버스 (38) 로의 액세스를 요청할 수 있는 유휴 상태로 복귀한다.
게이트웨이들 (46 및 48(1)-48(M)) 중 하나가 그의 내부 상태에서 복구가능하지 않은 에러를 검출할 때, 게이트웨이는 시스템 와이드 리셋이 발생하게 할 고유 버스 액세스 요청을 전송할 수 있다. 고유 버스 액세스 요청은 버스 에러 중단 시퀀스로 지칭된다. 버스 에러 중단 시퀀스를 구현하기 위해, 중재 프로세스에서 가장 긴급한 우선순위 값이 버스 에러 중단 시퀀스를 송신하기 위해 예약된다. 예시적인 양태에서, 이러한 우선순위 값은 컴퓨팅 시스템 (30) 에서 메시지 우선순위 값들의 할당에 의존하여, 모두 1 또는 모두 0 중 어느 것일 수 있다. 버스 에러 중단 시퀀스는 게이트웨이들 (46 및 48(1)-48(M)) 중 임의의 것에 의해 송신될 수 있고, 게이트웨이들 (46 및 48(1)-48(M)) 중 하나보다 많은 게이트웨이가 버스 에러 중단 시퀀스를 동시에 송신하는 것이 허용될 수 있다. 버스 에러 중단 시퀀스에 대한 가장 긴급한 우선순위 값을 사용하는 것에 의해, 버스 에러 중단 시퀀스를 송신해야 하는 게이트웨이들 (46 및 48(1)-48(M)) 이 중재 페이즈 (406) 에서 승리할 것임을 알아야 한다. 승리하는 게이트웨이(들) 은 그 후 데이터 페이즈 (422) 에서 어떠한 데이터도 송신하지 않는다. 승리하는 게이트웨이(들) 모두가 어떠한 데이터도 송신하지 않기 때문에, 중재 페이즈 (406) 에서 동점이 있더라도, 경쟁이 없다. 데이터 페이즈 (422) 에서의 메시지의 결여는 결국 시스템 에러를 야기하고 모든 게이트웨이들 (46 및 48(1) 내지 48(M)) 이 리셋되게 하는 게이트웨이들 (46 및 48(1)-48(M)) 의 각각에서 리셋 타이머를 트리거할 것이다. 예시적인 양태에서, 시스템 에러는 게이트웨이들 (46 및 48(1)-48(M)) 의 각각에서 결정된다. 게이트웨이들 (46 및 48(1)-48(M)) 은, 게이트웨이들 (46 및 48(1)-48(M)) 중 가장 느린 것이 동결된 외부 버스 (38) 를 검출할 기회를 가질 때까지 이들이 재시작하는 것을 방지하는 제 2 타이머를 가질 수도 있어서, 게이트웨이들 (46 및 48(1)-48(M)) 중 가장 느린 것은 또한 내부적으로 재설정 조건을 선언할 수 있다.
방금 기재된 시스템 리셋을 반영하는 신호 다이어그램 (500) 이 도 13 에 제공된다. 신호 다이어그램 (500) 은, 중재 프로세스 (400) 가 이전 시퀀스 기간 (402) 후에 그리고 버스 유휴 기간 (404) 후에 시작한다는 점에서 도 12 의 중재 프로세스 (400) 의 신호 다이어그램과 유사하다. 버스 유휴 기간 (404) 동안, SCLK 는 SDATA 처럼 휴면이다. 중재 페이즈 (406) 는 칩들 중 하나가 SDATA 라인 상에서 메시지를 개시할 때 시작하는 중재 시작 (408) 으로 시작한다. 메시지 개시의 검출 시, 중재 시퀀스 (410) 가 시작하고, ACM (58) 이 SLCK 를 구동한다 (412 로 나타냄). 요청하는 게이트웨이들은 SDATA 라인 상에서 데이터 (414') 를 표명하고 우선순위가 확립된다. 도시된 바와 같이, 데이터 (414') 는 NRZI (non-return to zero inverted) 포맷으로 인코딩되며, 여기서 값의 변화는 1 이고 값의 변화가 0 은 아니다. 개개의 우선순위 값들을 송신하는 게이트웨이들 (46 및 48(1)-48(M)) 은 외부 버스 (38) 의 상태를 변화시키고 그 후 고 임피던스 상태로 가는 천이를 구동하는 것에 의해 논리 1 을 송신할 것이다. 외부 버스 (38) 상의 신호들은, 외부 버스를 능동적으로 구동하는 게이트웨이가 없는 경우 외부 버스 (38) 가 현재 로직 상태에서 유지되도록 키퍼 회로 (미도시) 를 사용하여 그들의 현재 상태에서 유지된다. 게이트웨이들 (46 및 48(1)-48(M)) 중 하나는 외부 버스 (38) 의 상태를 변화시키지 않음으로써 논리 0 을 전송한다. 이러한 방법을 사용하면, 논리 1 은 논리 0 보다 우선권을 취할 것이다. 버스 에러 중단 시퀀스를 전송하고 있는 게이트웨이들 (46 및 48(1)-48(M)) 중 임의의 것은 가장 긴급한 우선순위 값을 전송하고 있고, 따라서, 다른 더 높은 우선순위 값이 존재할 수 없어서, 버스 에러 중단 시퀀스를 송신하고 있는 게이트웨이들 (46 및 48(1)-48(M)) 중 임의의 것이 중재 페이즈 (406) 에서 승리할 것이다. 가장 긴급한 우선순위 값을 송신하는 게이트웨이들 (46 및 48(1)-48(M)) 모두가 외부 버스 (38) 상에서 동일한 값들을 표명하고 있기 때문에, 경쟁에 문제가 없다.
도 13 을 계속 참조하면, 중재 페이즈 (406) 에서 승리하면, 승리하는 게이트웨이는 데이터 페이즈 (422) 동안 데이터 (502) 를 송신하지 않는다. 마찬가지로, 승리하는 게이트웨이는 시간 (506) 에서 버스 타임아웃 조건이 발생할 때까지 SCLK 을 0 으로 구동한다 (504 로 나타냄). 버스 타임아웃 조건의 검출은 이전에 나타낸 바와 같이 시스템 리셋을 야기한다.
유사하게, 도 14 는 외부 버스 (38) 가 와이어-AND 기능을 구현하는 버스 에러 중단 시퀀스에 대한 신호 다이어그램 (600) 을 도시한다. 즉, 외부 버스 (38) 는 키퍼 회로 대신에 풀업 저항 (미도시) 을 가지며, 모든 제로 우선순위 값이 가장 긴급한 값 ("414" 로 나타냄) 이다. 논리 0 은 외부 버스 (38) 를 로우로 풀링하는 게이트웨이들 (46 및 48(1)-48 (M)) 중 하나에 의해 송신되고, 논리 1 은 외부 버스 (38) 를 구동하지 않는 게이트웨이들 (46 및 48 (1)-48(M)) 중 하나에 의해 송신된 외부 버스 (38) 에 의해 송신된다. 어떠한 게이트웨이도 외부 버스 (38) 를 구동하지 않는 경우, 풀업 저항은 외부 버스 (38) 를 논리 1 로 풀링한다. 그러나, 도시된 바와 같이, 게이트웨이 (46 및 48(1)-48(M)) 중 적어도 하나는 가장 긴급한 우선순위 값을 표명하고 중재 페이즈 (406) 에서 승리한다. 그 후, 전술한 바와 같이, 승리하는 게이트웨이는 데이터 페이즈 (422) 동안 데이터 (502) 를 전송하지 않고 버스 타임아웃 조건이 시간 (506) 에서 발생할 때까지 SLCK 을 0 으로 구동한다 (504 로 나타냄).
본 명세서에 개시된 양태들에 따른 인터칩 및 인트라칩 통신용 인터페이스 패브릭은 임의의 프로세서 기반 디바이스에 제공되거나 통합될 수도 있다. 한정이 아닌 예들은, 셋톱 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 스마트 폰, 태블릿, 패블릿, 컴퓨터, 포터블 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기 (PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 포터블 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크 (DVD) 플레이어, 포터블 디지털 비디오 플레이어 및 자동차를 포함할 수도 있다.
또한, 당업자는 본 명세서에 개시된 양태들과 관련하여 기재된 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현되고 프로세서 또는 다른 프로세싱 디바이스, 또는 양자의 조합에 의해 실행될 수도 있음을 알 것이다. 본 명세서에 기재된 디바이스들은 예들로서 임의의 회로, 하드웨어 컴포넌트, IC 또는 IC들에서 채용될 수도 있다. 본 명세서에 기재된 메모리는 임의의 타입 및 사이즈의 메모리일 수도 있고 원하는 정보의 임의의 타입을 저장하도록 구성될 수도 있다. 이러한 상호교환성을 명확히 예시하기 위해서, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 그들의 기능성에 관하여 일반적으로 상술되었다. 그러한 기능성이 어떻게 구현되는지는 전체 시스템에 부과된 설계 제약들, 설계선정들, 및/또는 특정 어플리케이션에 의존한다. 당업자는 각각의 특정 어플리케이션에 대해 다양한 방식들로 기재된 기능성을 구현할 수도 있지만, 그러한 구현 결정들은 본 개시물의 범위로부터 벗어남을 야기하는 것으로 해석되지 않아야 한다.
본 명세서에 개시된 양태들과 관련하여 기재된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 여기에 기재된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수도 있다. 프로세서는 마이크로프로세서일 수도 있지만, 대안으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수도 있다. 프로세서는 컴퓨팅 디바이스들의 조합 (예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 협력하는 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성) 으로서 구현될 수도 있다.
본 명세서에 개시된 양태들은 하드웨어로 그리고 하드웨어에 저장되는 명령들로 구현될 수도 있으며, 예를 들어 랜덤 액세스 메모리 (RAM), 플래시 메모리, 리드 온니 메모리 (ROM), 전기적 프로그램가능 ROM (EPROM), 전기적으로 소거가능 프로그램가능 ROM (EEPROM), 레지스터들, 하드 디스크, 탈착가능 디스크, CD-ROM, 또는 당업계에 공지된 임의의 다른 형태의 컴퓨터 판독 가능 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기입할 수 있도록 프로세서에 커플링된다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC 에 상주 할 수도 있다. ASIC 은 원격 스테이션에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 원격 스테이션, 기지국, 또는 서버에서 이산 컴포넌트들로서 상주할 수도 있다.
본 명세서에서 예시적인 양태들 중 임의의 것에서 기재된 동작 단계들은 예들 및 논의를 제공하기 위해 기재된 것임을 유의해야 한다. 기재된 동작들은 예시된 시퀀스들 이외의 다수의 상이한 시퀀스들로 수행될 수도 있다. 또한, 단일 동작 단계로 기재된 동작들은 실제로 다수의 상이한 단계들로 수행될 수도 있다. 또한, 예시적인 양태들에서 논의된 하나 이상의 동작 단계들은 결합될 수도 있다. 플로우챠트에서 예시된 동작 단계들은 당업자에게 쉽게 명백해지는 바와 같이 다수의 상이한 수정들이 이루어질 수도 있음을 이해해야 한다. 당업자는 또한, 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 사용하여 나타낼 수 있음을 이해할 것이다. 예를 들어, 위의 기재 전체에 걸쳐 언급될 수도 있는 데이터, 명령, 커맨드, 정보, 신호, 비트, 심볼, 및 칩은, 전압, 전류, 전자기파, 자기장 또는 자기입자, 광학장 또는 광학입자, 또는 그 임의의 조합으로 나타낼 수도 있다.
개시물의 상기 기재는 임의의 당업자가 개시물을 행하거나 사용하는 것을 가능하게 하기 위해 제공된다. 개시물의 다양한 수정들은 당업자에게는 쉽게 자명할 것이고, 본 명세서에 정의된 일반적인 원리들은 본 개시물의 사상 또는 범위를 벗어나지 않으면서 다른 변형들에 적용될 수도 있다. 따라서, 개시물은 본 명세서에 기재된 예들 및 설계들에 제한되는 것으로 의도되는 것이 아니라, 본 명세서에 개시된 원리 및 신규 특징들에 부합하는 최광의 범위를 따르도록 의도된다.
Claims (58)
- 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅 (populating) 하기 위한 방법으로서,
버스에 커플링된 제 1 집적 회로 (IC) 를 활성화하는 단계;
상기 제 1 IC 와 연관된 제 1 노드들을 제 1 게이트웨이에 등록하는 단계;
상기 제 1 IC 와 연관된 상기 제 1 노드들에 관한 정보로 상기 제 1 게이트웨이에서의 제 1 스테이터스 테이블을 파퓰레이팅하는 단계; 및
상기 제 1 스테이터스 테이블에 표시된 바와 같은 가용성에 기초하여 상기 제 1 IC 와 연관된 상기 제 1 노드들 사이에서 인트라칩 통신을 허용하는 단계를 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 1 항에 있어서,
상기 버스에 커플링된 제 2 IC 를 활성화하는 단계;
상기 제 2 IC 와 연관된 제 2 노드들을 제 2 게이트웨이에 등록하는 단계;
상기 제 2 IC 와 연관된 상기 제 2 노드들에 관한 정보로 상기 제 2 게이트웨이에서의 제 2 스테이터스 테이블을 파퓰레이팅하는 단계;
상기 제 2 게이트웨이에 의해, 상기 제 1 게이트웨이로부터 구성 데이터를 요청하는 단계; 및
상기 제 1 게이트웨이에서의 제 1 스테이터스 테이블로부터 상기 제 1 IC 와 연관된 상기 제 1 노드들에 관한 정보에 기초하여 상기 제 1 IC 와 연관된 상기 제 1 노드들에 관한 정보로 상기 제 2 게이트웨이에서의 상기 제 2 스테이터스 테이블을 파퓰레이팅하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 2 항에 있어서,
상기 제 2 게이트웨이로부터, 상기 버스를 통해, 상기 제 2 스테이터스 테이블에 저장된 상기 제 2 IC 와 연관된 상기 제 2 노드들에 관한 정보를 브로드캐스팅하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 1 항에 있어서,
제 1 노드 변화 상태에 응답하여, 상기 제 1 노드에 대해 변화된 상태를 반영하도록 상기 제 1 스테이터스 테이블을 업데이트하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 4 항에 있어서,
상기 제 1 노드에 대해 상기 변화된 상태에 관련된 정보로 상기 제 1 게이트웨이에서 스카우트 (scout) 메시지를 생성하는 단계; 및
상기 버스에 통신가능하게 커플링된 원격 게이트웨이들에 상기 제 1 게이트웨이로부터의 상기 스카우트 메시지를 전송하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 5 항에 있어서,
제 2 게이트웨이에서 상기 스카우트 메시지를 수신하는 단계; 및
상기 스카우트 메시지에 기초하여 제 2 스테이터스 테이블을 업데이트하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 1 항에 있어서,
상기 제 1 스테이터스 테이블에 표시된 바와 같은 가용성에 기초하여 상기 제 1 IC 와 연관된 상기 제 1 노드들 사이에서 인트라칩 통신을 허용하는 단계는,
상기 제 1 게이트웨이에서, 상기 제 1 IC 내의 초기 노드로부터 상기 제 1 IC 내의 목적지 노드로의 메시지 요청을 수신하는 단계;
상기 제 1 스테이터스 테이블에서 상기 제 1 IC 와 연관된 상기 제 1 노드들에 관한 정보에 기초하여 상기 목적지 노드가 이용가능한지를 결정하는 단계; 및
상기 목적지 노드가 이용가능한 경우, 상기 메시지 요청과 연관된 메시지를 전송하도록 상기 초기 노드에 명령하는 단계를 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 7 항에 있어서,
상기 목적지 노드가 이용가능하지 않다고 결정하는 것에 응답하여, 상기 목적지 노드가 웨이크가능한지를 결정하는 단계;
상기 목적지 노드가 웨이크가능하다고 결정하는 것에 응답하여, 상기 목적지 노드로 웨이크 커맨드를 전송하는 단계; 및
상기 목적지 노드를 웨이크한 후 상기 메시지 요청과 연관된 메시지를 전송하도록 상기 초기 노드에 명령하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 1 항에 있어서,
상기 제 1 IC 내의 초기 노드로부터 상기 제 2 IC 에서의 목적지 노드로의 메시지 요청을 수신하는 단계;
상기 제 1 스테이터스 테이블에서 상기 목적지 노드에 관한 정보에 기초하여 상기 목적지 노드가 이용가능한지를 결정하는 단계; 및
상기 목적지 노드가 이용가능한 경우, 상기 버스를 통해 상기 메시지 요청과 연관된 메시지를 전송하도록 상기 초기 노드에 명령하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법으로서,
컴퓨팅 디바이스 내에서 버스에 제 1 노드들을 갖는 제 1 집적 회로 (IC) 를 커플링하는 단계;
상기 컴퓨팅 디바이스 내에서 상기 버스에 제 2 노드들을 갖는 제 2 IC 를 커플링하는 단계;
상기 제 1 IC 와 연관된 제 1 게이트웨이로부터, 상기 제 1 노드들에 관한 스테이터스 및 구성 정보를 수신하는 단계; 및
상기 제 2 IC 와 연관된 제 2 게이트웨이에서의 스테이터스 테이블을, 상기 제 1 노드들에 관한 스테이터스 및 구성 정보로 파퓰레이팅하는 단계를 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 10 항에 있어서,
상기 제 2 노드들에 관한 제 2 스테이터스 및 구성 정보로 상기 제 2 게이트웨이에서의 스테이터스 테이블을 파퓰레이팅하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 10 항에 있어서,
상기 제 1 노드들 중 하나의 스테이터스에서의 변화를 표시하는 업데이트를 상기 제 1 게이트웨이로부터 수신하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 12 항에 있어서,
상기 제 1 노드들 중 하나의 스테이터스에서의 변화를 표시하는 업데이트로 상기 제 2 게이트웨이에서의 스테이터스 테이블을 업데이트하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 제 10 항에 있어서,
상기 제 2 IC 에 의해, 상기 제 2 IC 가 상기 버스에 커플링되는 것에 응답하여 상기 제 1 노드들에 관한 스테이터스 및 구성 정보를 요청하는 단계를 더 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 파퓰레이팅하기 위한 방법. - 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 업데이트하기 위한 방법으로서,
제 1 집적 회로 (IC) 에서의 제 1 게이트웨이에서, 상기 제 1 IC 에서의 제 1 노드로부터 상태 변화 표시를 수신하는 단계;
상기 상태 변화 표시에 응답하여, 상기 제 1 노드의 상태 변화를 반영하도록 상기 제 1 게이트웨이에서의 제 1 스테이터스 테이블을 업데이트하는 단계; 및
제 2 IC 에서의 제 2 게이트웨이로의 스카우트 메시지를 생성하는 단계로서, 상기 스카우트 메시지는 상기 제 1 노드의 상태 변화를 표시하는, 상기 스카우트 메시지를 생성하는 단계를 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 업데이트하기 위한 방법. - 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 업데이트하기 위한 방법으로서,
제 1 집적 회로 (IC) 에서의 제 1 게이트웨이에서, 제 2 IC 에서의 제 2 게이트웨이로부터의 스카우트 메시지를 수신하는 단계로서, 상기 스카우트 메시지는 상기 제 2 IC 에서의 노드의 상태 변화를 표시하는, 상기 스카우트 메시지를 수신하는 단계;
상기 스카우트 메시지에 응답하여, 상기 노드의 상태 변화를 반영하도록 상기 제 1 게이트웨이에서 제 1 스테이터스 테이블을 업데이트하는 단계를 포함하는, 컴퓨팅 디바이스 내에서 네트워크 노드들에 대한 스테이터스 테이블을 업데이트하기 위한 방법. - 집적 회로 (IC) 로서,
송신기 및 수신기를 포함하는 노드; 및
게이트웨이를 포함하고,
상기 게이트웨이는,
외부 인터페이스로서, 버스에 커플링되고 그 상에서 제 1 프로토콜을 통해 통신하도록 구성된, 상기 외부 인터페이스; 및
내부 인터페이스로서, 상기 노드에 통신가능하게 커플링되고 그 사이에서 상기 제 1 프로토콜을 통해 통신하도록 구성된, 상기 내부 인터페이스를 포함하는, IC. - 제 17 항에 있어서,
상기 노드는 상기 게이트웨이의 상기 내부 인터페이스에 직접 커플링되는, IC. - 제 17 항에 있어서,
상기 노드는 네트워크 온 칩 (NoC) 을 통해 상기 게이트웨이의 상기 내부 인터페이스에 커플링되는, IC. - 제 17 항에 있어서,
상기 게이트웨이를 제어하도록 구성된 제어 시스템을 더 포함하는, IC. - 제 20 항에 있어서,
상기 제어 시스템은 상기 게이트웨이 내에 위치되는, IC. - 제 20 항에 있어서,
상기 제어 시스템은 상기 게이트웨이 외부에 있는, IC. - 제 20 항에 있어서,
상기 게이트웨이의 상기 내부 인터페이스에 커플링된 복수의 노드들을 더 포함하는, IC. - 제 23 항에 있어서,
상기 제어 시스템은 상기 복수의 노드들 사이를 중재하도록 구성되는, IC. - 제 20 항에 있어서,
상기 제어 시스템은 상기 제 1 프로토콜을 실행하도록 구성되는, IC. - 제 17 항에 있어서,
상기 노드는 상기 IC 내에서 제 2 노드와 통신하도록 구성되는, IC. - 제 17 항에 있어서,
상기 노드는 상기 IC 외부에서 제 2 노드와 통신하도록 구성되는, IC. - 제 17 항에 있어서,
상기 노드는 네비게이션 회로, 센서 회로, AOP (Always On Processor) 회로, 오디오 회로, 및 모뎀 회로 중 적어도 하나로서 동작하도록 구성되는 회로부를 포함하는, IC. - 집적 회로 (IC) 로서,
제 1 노드;
제 2 노드;
버스에 커플링하도록 구성되고 상기 제 1 노드 및 상기 제 2 노드로부터의 제어 정보에 동작하는 외부 인터페이스를 포함하는 게이트웨이; 및
상기 게이트웨이에 상기 제 1 노드 및 상기 제 2 노드를 통신가능하게 커플링하는 공통 회로부를 포함하는, IC. - 제 1 집적 회로 (IC) 로서,
제 1 송신기 및 제 1 수신기를 포함하는 제 1 노드; 및
제 1 게이트웨이로서,
제 1 외부 인터페이스; 및
제 1 내부 인터페이스로서, 상기 제 1 노드에 통신가능하게 커플링되고 그 사이에서 제 1 프로토콜을 통해 통신하도록 구성된, 상기 제 1 내부 인터페이스를 포함하는, 상기 제 1 게이트웨이
를 포함하는, 상기 제 1 IC;
제 2 IC 로서,
제 2 송신기 및 제 2 수신기를 포함하는 제 2 노드; 및
제 2 게이트웨이로서,
제 2 외부 인터페이스; 및
제 2 내부 인터페이스로서, 상기 제 2 노드에 통신가능하게 커플링되고 그 사이에서 상기 제 1 프로토콜을 통해 통신하도록 구성된, 상기 제 2 내부 인터페이스를 포함하는, 상기 제 2 게이트웨이
를 포함하는, 상기 제 2 IC; 및
버스로서, 상기 제 1 IC 의 상기 제 1 게이트웨이 및 상기 제 2 IC 의 상기 제 2 게이트웨이에 커플링되고 그 사이의 신호들을 상기 제 1 프로토콜을 사용하여 반송하도록 구성된, 상기 버스를 포함하는, 컴퓨팅 시스템. - 제 30 항에 있어서,
상기 컴퓨팅 시스템은, 셋톱 박스; 엔터테인먼트 유닛; 네비게이션 디바이스; 통신 디바이스; 고정 위치 데이터 유닛; 모바일 위치 데이터 유닛; 모바일 폰; 셀룰러 폰; 컴퓨터; 포터블 컴퓨터; 스마트 폰, 태블릿, 패블릿 (phablet), 데스크탑 컴퓨터; 개인용 디지털 보조기 (PDA); 모니터; 컴퓨터 모니터; 텔레비전; 튜너; 라디오; 위성 라디오; 뮤직 플레이어; 디지털 뮤직 플레이어; 포터블 뮤직 플레이어; 디지털 비디오 플레이어; 비디오 플레이어; 디지털 비디오 디스크 (DVD) 플레이어; 포터블 디지털 비디오 플레이어, 및 자동차로 이루어진 그룹으로부터 선택된 디바이스인, 컴퓨팅 디바이스. - 집적 회로 (IC) 로서,
노드;
상기 노드에 통신가능하게 커플링된 게이트웨이로서,
버스에 커플링되도록 구성된 인터페이스; 및
상기 버스와 연관된 노드들의 가용성에 관한 데이터를 저장하도록 구성된 룩업 테이블을 포함하는,
상기 게이트웨이; 및
상기 노드 및 상기 게이트웨이에 동작가능하게 커플링된 제어 시스템을 포함하고, 상기 제어 시스템은,
상기 노드의 상태에 관한 스테이터스 업데이트를 수신하고; 그리고
상기 노드 대 노드 통신 사이의 신뢰성을 증진시키기 위해 상기 버스와 연관된 다른 게이트웨이들로 상기 노드의 상태에 관한 정보를 전송하도록 구성되는, IC. - 제 32 항에 있어서,
상기 게이트웨이어 통신가능하게 커플링된 복수의 노드들을 더 포함하는, IC. - 제 32 항에 있어서,
상기 제어 시스템은 상기 게이트웨이 내에 위치되는, IC. - 제 32 항에 있어서,
상기 제어 시스템은 상기 게이트웨이 외부에 위치되는, IC. - 제 32 항에 있어서,
상기 제어 시스템은 또한,
상기 노드로부터 메시지 요청을 수신하고;
상기 메시지 요청으로부터의 목적지 식별자를 상기 룩업 테이블과 비교하며; 그리고
상기 룩업 테이블에서의 데이터에 기초하여 수신 노드의 가용성을 결정하도록 구성되는, IC. - 제 36 항에 있어서,
상기 제어 시스템은 또한, 상기 제어 시스템이 상기 룩업 테이블에서의 데이터에 기초하여 상기 수신 노드가 이용가능하지 않다고 결정하는 경우 상기 노드로부터의 메시지의 송신을 배제하도록 구성되는, IC. - 제 32 항에 있어서,
상기 제어 시스템은 또한,
상기 노드로부터 메시지 요청을 수신하고;
상기 메시지 요청이 신뢰성을 필요로 하는지를 결정하며; 그리고
상기 메시지 요청이 신뢰성을 필요로 하지 않는 경우, 제 2 노드에 상기 메시지 요청과 연관된 메시지를 전송하도록 상기 노드에 명령하도록 구성되는, IC. - 제 36 항에 있어서,
상기 제어 시스템은 또한,
상기 수신 노드의 커맨드 능력에 대한 웨이크를 결정하고; 그리고
상기 수신 노드에 웨이크 커맨드를 전송하도록 구성되는, IC. - 제 36 항에 있어서,
상기 수신 노드의 가용성을 결정하도록 구성된 상기 제어 시스템은 상기 IC 내에서 수신 노드의 가용성을 결정하는, IC. - 제 36 항에 있어서,
상기 수신 노드의 가용성을 결정하도록 구성된 제어 시스템은 상기 IC 외부에 위치된 수신 노드의 가용성을 결정하는, IC. - 제 32 항에 있어서,
상기 제어 시스템은 또한, 상기 IC 외부에 위치된 제 2 노드의 상태에 관한 원격 스테이터스 업데이트를 수신하도록 구성되는, IC. - 노드 대 노드 통신을 용이하게 하기 위한 방법으로서,
게이트웨이에서 로컬 노드로부터의 스테이터스 업데이트를 수신하는 단계; 및
원격 게이트웨이들에 상기 스테이터스 업데이트를 브로드캐스팅하는 단계를 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 제 43 항에 있어서,
상기 스테이터스 업데이트를 브로드캐시팅하는 단계는 상기 로컬 노드가 이용가능하지 않음을 상기 원격 게이트웨이들에게 알리는 단계를 더 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 제 43 항에 있어서,
상기 스테이터스 업데이트를 브로드캐스팅하는 단계는 상기 로컬 노드가 슬립 상태임을 상기 원격 게이트웨이들에 알리는 단계를 더 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 제 45 항에 있어서,
상기 로컬 노드가 슬립 상태임을 상기 원격 게이트웨이들에게 알리는 단계는, 커맨드 시 상기 로컬 노드가 웨이크가능함을 상기 원격 게이트웨이들에게 알리는 단계를 더 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 제 43 항에 있어서,
원격 게이트웨이로부터 제 2 스테이터스 업데이트를 수신하는 단계를 더 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 제 47 항에 있어서,
상기 제 2 스테이터스 업데이트로 룩업 테이블을 업데이트하는 단계를 더 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 제 47 항에 있어서,
상기 로컬 노드로부터 메시지 요청을 수신하는 단계를 더 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 제 49 항에 있어서,
상기 제 2 스테이터스 업데이트가 상기 메시지 요청과 연관된 목적지 노드가 이용가능하지 않았음을 표시하는 경우 상기 로컬 노드로부터의 메시지를 전송하는 것을 배제하는 단계를 더 포함하는, 노드 대 노드 통신을 용이하게 하기 위한 방법. - 시스템 리셋을 강제하는 방법으로서,
중재 페이즈 동안, 중재에서 승리하기 위해 가장 긴급한 (moast urgent) 우선순위 값을 게이트웨이로부터 표명 (asserting) 하는 단계;
상기 중재에서 승리한 후, 버스 타임아웃을 강제하도록 상기 게이트웨이로부터 데이터를 전송하지 않는 단계; 및
상기 버스 타임아웃에 응답하여, 시스템 리셋을 개시하는 단계를 포함하는, 시스템 리셋을 강제하는 방법. - 제 51 항에 있어서,
상기 게이트웨이의 스테이터스 테이블에서 노드 상태와 정보 사이의 에러를 검출하는 단계; 및
상기 에러를 검출하는 것에 응답하여, 상기 시스템 리셋이 필요하다고 결정하는 단계를 더 포함하는, 시스템 리셋을 강제하는 방법. - 제 51 항에 있어서,
상기 가장 긴급한 우선순위 값을 표명하는 단계는 모든 논리적 1 들을 표명하는 단계를 포함하는, 시스템 리셋을 강제하는 방법. - 제 51 항에 있어서,
상기 가장 긴급한 우선순위 값을 표명하는 단계는 모든 논리적 0 들을 표명하는 단계를 포함하는, 시스템 리셋을 강제하는 방법. - 제 51 항에 있어서,
상기 중재에서 승리한 후 상기 게이트웨이로부터 클록 신호를 전송하지 않는 단계를 더 포함하는, 시스템 리셋을 강제하는 방법. - 제 51 항에 있어서,
상기 중재에서 승리하기 위해 상기 가장 긴급한 우선순위 값을 상기 게이트웨이로부터 표명하는 단계는, 상기 가장 긴급한 우선순위 값을 다수의 게이트웨이들로부터 동시에 표명하는 단계를 포함하는, 시스템 리셋을 강제하는 방법. - 제 51 항에 있어서,
상기 시스템 리셋을 개시하기 전에 느린 게이트웨이들이 상기 버스 타임아웃을 검출하도록 하기 위해 타이머를 작동시키는 단계를 더 포함하는, 시스템 리셋을 강제하는 방법. - 집적 회로 (IC) 로서,
버스에 커플링하도록 구성된 버스 인터페이스; 및
제어 시스템을 포함하는, 게이트웨이를 포함하고,
상기 제어 시스템은,
중재 페이즈 동안, 중재에서 승리하기 위해 상기 버스 상에서 가장 긴급한 우선순위 값을 표명하고;
상기 중재에서 승리한 후, 버스 타임아웃을 강제하기 위해 상기 버스 상에서 데이터를 송신하지 않으며; 그리고
상기 버스 타임아웃에 응답하여, 시스템 리셋을 개시하도록 구성되는, IC.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020247022151A KR20240108580A (ko) | 2015-09-10 | 2016-08-12 | 인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/850,104 | 2015-09-10 | ||
US14/850,104 US20170075843A1 (en) | 2015-09-10 | 2015-09-10 | Unified systems and methods for interchip and intrachip node communication |
PCT/US2016/046728 WO2017044247A1 (en) | 2015-09-10 | 2016-08-12 | Unified systems and methods for interchip and intrachip node communication |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247022151A Division KR20240108580A (ko) | 2015-09-10 | 2016-08-12 | 인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180050727A true KR20180050727A (ko) | 2018-05-15 |
Family
ID=56787712
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247022151A KR20240108580A (ko) | 2015-09-10 | 2016-08-12 | 인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들 |
KR1020187009926A KR20180050727A (ko) | 2015-09-10 | 2016-08-12 | 인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247022151A KR20240108580A (ko) | 2015-09-10 | 2016-08-12 | 인터칩 및 인트라칩 노드 통신을 위한 통합된 시스템들 및 방법들 |
Country Status (7)
Country | Link |
---|---|
US (2) | US20170075843A1 (ko) |
EP (2) | EP4195058B1 (ko) |
JP (1) | JP6845224B2 (ko) |
KR (2) | KR20240108580A (ko) |
CN (1) | CN108027792B (ko) |
BR (1) | BR112018004715A2 (ko) |
WO (1) | WO2017044247A1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170075843A1 (en) | 2015-09-10 | 2017-03-16 | Qualcomm Incorporated | Unified systems and methods for interchip and intrachip node communication |
US10521392B2 (en) | 2017-05-10 | 2019-12-31 | Qualcomm Incorporated | Slave master-write/read datagram payload extension |
US20190227971A1 (en) * | 2018-01-23 | 2019-07-25 | Qualcomm Incorporated | Architecture for consolidating multiple sources of low-bandwidth data over a serial bus |
US11443713B2 (en) * | 2020-01-30 | 2022-09-13 | Apple Inc. | Billboard for context information sharing |
CN113296479B (zh) * | 2020-06-17 | 2024-07-23 | 盒马(中国)有限公司 | 总线入网单元、输送线电气控制系统及部署方法 |
US11675713B2 (en) * | 2021-04-02 | 2023-06-13 | Micron Technology, Inc. | Avoiding deadlock with a fabric having multiple systems on chip |
WO2022239337A1 (ja) * | 2021-05-10 | 2022-11-17 | 日本たばこ産業株式会社 | エアロゾル生成装置の回路ユニット及びエアロゾル生成装置 |
CN115460128B (zh) * | 2022-11-09 | 2023-07-07 | 之江实验室 | 一种面向多芯粒组合芯片的片上网络仿真系统 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5199106A (en) * | 1986-09-19 | 1993-03-30 | International Business Machines Corporation | Input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the bus |
JPS63211837A (ja) | 1987-02-27 | 1988-09-02 | Hitachi Ltd | デ−タ伝送制御方式 |
JP2544481B2 (ja) | 1988-06-20 | 1996-10-16 | 株式会社日立製作所 | 通信制御方式 |
US6157967A (en) | 1992-12-17 | 2000-12-05 | Tandem Computer Incorporated | Method of data communication flow control in a data processing system using busy/ready commands |
US6247161B1 (en) | 1997-01-16 | 2001-06-12 | Advanced Micro Devices, Inc. | Dynamically configured on-chip communications paths based on statistical analysis |
US6173350B1 (en) * | 1997-10-17 | 2001-01-09 | Eveready Battery Company Inc. | System and method for writing data to a serial bus from a smart battery |
US6714994B1 (en) | 1998-12-23 | 2004-03-30 | Advanced Micro Devices, Inc. | Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa |
US6791949B1 (en) * | 2000-04-28 | 2004-09-14 | Raytheon Company | Network protocol for wireless ad hoc networks |
JP2002051055A (ja) * | 2000-08-04 | 2002-02-15 | Sony Corp | 通信制御方法、通信システム及び通信装置 |
US7191271B2 (en) * | 2001-09-20 | 2007-03-13 | Lockheed Martin Corporation | Two level multi-tier system bus |
US7484118B2 (en) | 2003-12-16 | 2009-01-27 | International Business Machines Corporation | Multi nodal computer system and method for handling check stops in the multi nodal computer system |
US7409473B2 (en) | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
US7751850B2 (en) | 2005-09-01 | 2010-07-06 | Broadcom Corporation | Single chip multimode baseband processing circuitry with a shared radio interface |
US7464225B2 (en) | 2005-09-26 | 2008-12-09 | Rambus Inc. | Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology |
US20070109015A1 (en) * | 2005-11-15 | 2007-05-17 | Alcatel | Switched integrated circuit connection architectures and techniques |
US8189573B2 (en) * | 2005-12-22 | 2012-05-29 | Intel Corporation | Method and apparatus for configuring at least one port in a switch to be an upstream port or a downstream port |
US7945721B1 (en) * | 2006-08-11 | 2011-05-17 | Oracle America, Inc. | Flexible control and/or status register configuration |
JP2009021939A (ja) | 2007-07-13 | 2009-01-29 | Oki Electric Ind Co Ltd | ノード情報収集システム、ネットワーク装置及びノード |
US9009350B2 (en) | 2008-04-01 | 2015-04-14 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US8140835B2 (en) | 2008-05-09 | 2012-03-20 | International Business Machines Corporation | Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer |
US20090307408A1 (en) | 2008-06-09 | 2009-12-10 | Rowan Nigel Naylor | Peer-to-Peer Embedded System Communication Method and Apparatus |
US20100158005A1 (en) | 2008-12-23 | 2010-06-24 | Suvhasis Mukhopadhyay | System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions |
EP2339795B1 (en) | 2009-12-07 | 2013-08-14 | STMicroelectronics (Research & Development) Limited | Inter-chip communication interface for a multi-chip package |
US8359367B2 (en) | 2010-01-08 | 2013-01-22 | International Business Machines Corporation | Network support for system initiated checkpoints |
US20120166621A1 (en) | 2010-12-23 | 2012-06-28 | Anish Sharma | Sharing the Status of S-CSCF Nodes Across I-CSCF Nodes in a Communications Network |
US8824295B2 (en) | 2011-12-30 | 2014-09-02 | Qualcomm Technologies, Inc. | Link between chips using virtual channels and credit based flow control |
US9264368B2 (en) | 2012-01-27 | 2016-02-16 | Marvell World Trade Ltd. | Chip-to-chip communications |
US9252900B2 (en) * | 2012-06-01 | 2016-02-02 | Blackberry Limited | Universal synchronization engine based on probabilistic methods for guarantee of lock in multiformat audio systems |
US20130339091A1 (en) * | 2012-06-15 | 2013-12-19 | Anthony W. Humay | Intelligent social polling platform |
CN103838698A (zh) * | 2012-11-27 | 2014-06-04 | 鸿富锦精密工业(深圳)有限公司 | I2c总线架构及设备可用性查询方法 |
US9152598B2 (en) | 2012-11-28 | 2015-10-06 | Atmel Corporation | Connecting multiple slave devices to a single master controller in bus system |
US20150120826A1 (en) | 2013-10-28 | 2015-04-30 | Bernd Gauweiler | Node control in a distributed peer-to-peer network |
US9497710B2 (en) | 2013-11-25 | 2016-11-15 | Qualcomm Incorporated | Multipoint interface shortest pulse width priority resolution |
US20170075843A1 (en) | 2015-09-10 | 2017-03-16 | Qualcomm Incorporated | Unified systems and methods for interchip and intrachip node communication |
-
2015
- 2015-09-10 US US14/850,104 patent/US20170075843A1/en not_active Abandoned
-
2016
- 2016-08-12 WO PCT/US2016/046728 patent/WO2017044247A1/en active Application Filing
- 2016-08-12 KR KR1020247022151A patent/KR20240108580A/ko active Application Filing
- 2016-08-12 EP EP23154234.1A patent/EP4195058B1/en active Active
- 2016-08-12 BR BR112018004715A patent/BR112018004715A2/pt not_active Application Discontinuation
- 2016-08-12 CN CN201680052466.3A patent/CN108027792B/zh active Active
- 2016-08-12 KR KR1020187009926A patent/KR20180050727A/ko active IP Right Grant
- 2016-08-12 JP JP2018509894A patent/JP6845224B2/ja active Active
- 2016-08-12 EP EP16754624.1A patent/EP3347823A1/en not_active Ceased
-
2021
- 2021-06-30 US US17/363,407 patent/US11720512B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11720512B2 (en) | 2023-08-08 |
WO2017044247A1 (en) | 2017-03-16 |
US20170075843A1 (en) | 2017-03-16 |
BR112018004715A2 (pt) | 2018-09-25 |
KR20240108580A (ko) | 2024-07-09 |
EP4195058A1 (en) | 2023-06-14 |
EP3347823A1 (en) | 2018-07-18 |
JP6845224B2 (ja) | 2021-03-17 |
CN108027792B (zh) | 2021-08-20 |
US20210326290A1 (en) | 2021-10-21 |
CN108027792A (zh) | 2018-05-11 |
JP2018528540A (ja) | 2018-09-27 |
EP4195058B1 (en) | 2024-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11720512B2 (en) | Unified systems and methods for interchip and intrachip node communication | |
CN106970886B (zh) | 使用第二协议的扩展功能结构来控制第一协议的物理链路 | |
EP3158698B1 (en) | Systems and methods for providing power savings and interference mitigation on physical transmission media | |
US10642778B2 (en) | Slave master-write/read datagram payload extension | |
EP3133796B1 (en) | Providing a load/store communication protocol with a low power physical unit | |
US20140068135A1 (en) | Providing A Consolidated Sideband Communication Channel Between Devices | |
US10324891B2 (en) | Methods and apparatus for reducing power consumption within embedded systems | |
US9524265B2 (en) | Providing a serial protocol for a bidirectional serial interconnect | |
CN111052101B (zh) | 低功率PCIe | |
KR20170034888A (ko) | 칩 대 칩 통신을 위한 시스템들 및 방법들 | |
US10579549B2 (en) | Staggered transmissions on a multi-drop half-duplex bus | |
US20240251290A1 (en) | Multi-protocol communication network | |
US20190317911A1 (en) | General purpose input output triggered interface message | |
CN107092335B (zh) | 优化的链路训练及管理机制 | |
US20190171588A1 (en) | Multi-point virtual general-purpose input/output (mp-vgi) for low latency event messaging | |
CN107408092B (zh) | 用于多端口物理层(phy)的锁相环(pll)的共享控制 | |
US8661171B1 (en) | Host-slave interface for wireless communication circuit | |
JP2005217577A (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 |