KR20170129150A - 데카르트 어드레싱을 이용한 저전력 및 저 지연 디바이스 열거 - Google Patents

데카르트 어드레싱을 이용한 저전력 및 저 지연 디바이스 열거 Download PDF

Info

Publication number
KR20170129150A
KR20170129150A KR1020177026434A KR20177026434A KR20170129150A KR 20170129150 A KR20170129150 A KR 20170129150A KR 1020177026434 A KR1020177026434 A KR 1020177026434A KR 20177026434 A KR20177026434 A KR 20177026434A KR 20170129150 A KR20170129150 A KR 20170129150A
Authority
KR
South Korea
Prior art keywords
slave
address
interface
slave device
node
Prior art date
Application number
KR1020177026434A
Other languages
English (en)
Inventor
랄란 지 미쉬라
제임스 페니언
리차드 위트펠트
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20170129150A publication Critical patent/KR20170129150A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • H04L61/2007
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/604
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0052Assignment of addresses or identifiers to the modules of a bus system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/64Asynchronous transfer mode [ATM] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

호스트 디바이스에 대한 P2P 링크를 통해 접속된 슬레이브 디바이스들에 어드레스들의 사전 할당을 필요로 하지 않는 열거 기법이 제공된다. 디바이스 들간의 임의의 P2P 링크와 관련하여, 하나의 디바이스는 마스터 인터페이스를 갖고 나머지 디바이스는 슬레이브 인터페이스를 갖는다. 마스터 및 슬레이브 인터페이스를 구별하기 위해, 마스터/슬레이브 상태 비트가 사용될 수도 있다. 각각의 P2P 링크는 노드 ID를 형성하기 위해 대응하는 인터페이스 (슬레이브 또는 마스터) 에 대한 상태 비트와 연결될 수도 있는 링크 ID 를 갖는다. 호스트 디바이스는 각각의 슬레이브 디바이스로부터, 그 슬레이브에 대한 노드 ID 와, 슬레이브 노드와 호스트 디바이스 사이의 임의의 개재 인터페이스들에 대한 노드 ID의 연결을 나타내는 고유한 연결된 어드레스를 수신한다. 다음으로, 호스트 디바이스는 고유한 데카르트 어드레스를 각각의 슬레이브 디바이스에 할당한다.

Description

데카르트 어드레싱을 이용한 저전력 및 저 지연 디바이스 열거{LOW-POWER AND LOW-LATENCY DEVICE ENUMERATION WITH CARTESIAN ADDRESSING}
관련 출원에 대한 교차 참조
본 출원은 2016 년 3 월 22 일자로 출원된 미국 특허 출원 제15/077,841호의 이익을 주장한다. 또한, 본 출원은 2015 년 3 월 24 일자로 출원된 미국 가출원 제62/137,687호 및 2015 년 8 월 21 일자로 출원된 미국 가출원 번호 제62/208,312호의 이익을 주장한다.
기술 분야
본 출원은 집적 회로에 관한 것으로, 보다 상세하게는 집적 회로의 열거 (enumeration) 에 관한 것이다.
다수의 디지털 시그널링 프로토콜이 모바일 디바이스와 같은 시스템에서 집적 회로들간의 통신을 지원하기 위해 개발되었다. 이러한 디지털 시그널링 프로토콜의 예는 범용 입출력 (general purpose input/output; GPIO) 및 유니버셜 비동기식 수신기/송신기 (universal asynchronous receiver transmitter; UART) 를 포함한다. 기술이 진보함에 따라, 이러한 다양한 디지털 시그널링 프로토콜이 향상되었다. 예를 들어, 본원의 양수인은 GPIO 유한 상태 머신 (GPIO finite state machine) 이 GPIO 인터페이스를 통해 프로세서로부터 수신된 GPIO 데이터를 직렬화하고 그 직렬화된 GPIO 데이터를 전용 송신 핀을 통해 송신하는 "가상" (virtual) GPIO 아키텍처를 개발했다. 프로세서는 종래의 GPIO 핀을 통해 GPIO 데이터를 송신할 때처럼 종래의 방식으로 GPIO 인터페이스와 계속 인터페이스할 수도 있다는 점에서 소프트웨에 수정이 불요하기 때문에, GPIO 데이터의 가상화는 프로세서에 투명 (transparent) 하다. 따라서 프로세서는 가상 GPIO 인터페이스를 통한 통신과 관련하여 소프트웨어 또는 하드웨어를 수정할 필요가 없다. 원격 집적 회로는 전용 수신 핀을 통해 직렬화된 가상 GPIO 데이터를 수신한다. 또한, 각 가상 GPIO 집적 회로는 VGPIO 송신 및 수신을 동기화하기 위한 클럭 핀을 포함할 수도 있다. 다른 실시형태들에서, 2핀 및 3핀 가상 GPIO 실시 형태들 양자 모두가 존재하도록 클럭 핀은 이용되지 않는다.
상이한 디지털 시그널링 프로토콜 구성이 있기 때문에, 시스템에 있는 호스트 프로세서 또는 디바이스는 디바이스 열거 (device enumeration) 로 표시된 프로세스 동안 시스템에 있는 나머지 디바이스들에 의해 사용되는 특정 구성을 식별하는 것이 바람직하다. 그러나, 기존 디바이스 열거 기법은 문제가 있다. 예를 들어, 디바이스 열거에 대한 하나의 종래의 접근법은 시스템 내의 다양한 디바이스에서 퓨즈 (fuse) 또는 유사한 일회용 프로그램 가능한 (one-time-programmable) 메모리의 버닝 (burning) 을 수반한다. 파워 업시, 시스템의 호스트 디바이스는 다양한 남은 디바이스들에서의 퓨즈 상태를 판독하여 그들의 열거 데이터를 획득한다. 그러나, 이러한 퓨즈 기반의 열거는 퓨즈에 대한 다이 면적 요구로 인해 어려움을 겪는다. 대안으로서, I/O 부트스트래핑 (bootstrapping) 열거는 열거 데이터를 프로그래밍하기 위해 전용 핀을 전원 또는 접지 연결하는 것을 수반한다. 따라서 I/O 부트스트래핑은 패키징 비용을 증가시키고 회로 기판 상에 추가적인 컴포넌트들을 필요로 한다. 마지막으로, 펌웨어가 열거를 위해 사용되었지만 이것 또한 다이의 요구와 복잡성을 증가시킨다.
따라서, 개선된 열거 기술에 대한 필요성이 당해 기술 분야에 존재한다.
개요
호스트 디바이스에 대한 점대점 (P2P) 링크를 통해 접속된 슬레이브 디바이스들에 어드레스들의 사전 할당 (pre-assignment) 을 필요로 하지 않는 열거 기법이 제공된다. 디바이스 들간의 임의의 P2P 링크와 관련하여, 하나의 디바이스는 마스터 인터페이스를 갖고 나머지 디바이스는 슬레이브 인터페이스를 갖는다. 마스터 및 슬레이브 인터페이스를 구별하기 위해, 마스터/슬레이브 상태 비트 (status bit) 가 사용될 수도 있다. 각 P2P 링크는, 노드 ID를 형성하기 위해 대응하는 인터페이스 (슬레이브 또는 마스터) 에 대한 상태 비트와 연결될 수도 있는 링크 ID 를 갖는다. 각각의 마스터 인터페이스 및 슬레이브 인터페이스는 노드에 대한 마스터/슬레이브 상태와 노드에 커플링된 P2P 링크에 대한 링크 ID 의 연결인 대응 노드 ID를 갖는 "노드"를 포함하는 것으로 간주될 수도 있다. 호스트 디바이스는 각각의 노드로부터 그 노드에 대한 노드 ID 와, 그 노드와 호스트 디바이스 사이의 임의의 개재 노드에 대한 노드 ID의 연결을 나타내는 고유한 연결된 어드레스를 슬레이브 디바이스들에서 수신한다. 이 고유한 연결된 어드레스는 다음 논의에서 "호스트 방향 노드 ID" (host-facing node ID) 로 표기된다.
각 P2P 링크는 대응하는 슬레이브 인터페이스와 마스터 인터페이스 사이에 커플링한다. 하나보다 많은 마스터 인터페이스를 갖는 디바이스 (호스트 또는 슬레이브) 의 마스터 인터페이스에 커플링하는 P2P 링크가 고유하기 때문에 각 노드에 대한 호스트 방향 노드 ID 는 고유한 것으로 보장된다. 이와 관련하여, 각 P2P 링크는, P2P 링크에 커플링된 마스터 인터페이스가 P2P 링크에 커플링된 마스터 인터페이스를 포함하는 디바이스에서 유일한 마스터 인터페이스인 경우 변경되지 않은 디폴트 링크 ID를 가질 수도 있다. 하나보다 많은 마스터 인터페이스를 포함하는 디바이스는, 다수의 마스터 인터페이스 중 하나에 커플링되는 각각의 P2P 링크에 고유한 링크 ID 를 할당하도록 구성된 "노드 어그리게이터" (node aggregator) 로서 여기에서 표기되는 상태 머신을 포함한다. 예를 들어, 디바이스가 두 개 이상의 마스터 인터페이스를 포함하는 경우, 노드 어그리게이터는 마스터 인터페이스의 P2P 링크 중 하나를 그의 기본 링크 ID 로 남겨 둘 수도 있지만, 나머지 마스터 인터페이스의 P2P 링크들을 각각이 고유한 변경된 링크 ID를 가지게 변경하여 디바이스의 마스터 인터페이스의 P2P 링크들에 대한 각 링크 ID 가 고유하도록 할 수도 있다. 그러면, 이 고유성 (uniqueness) 은 각 노드에 대한 호스트 방향 노드 ID가 결국 고유해지도록 보장한다.
고유한 호스트 방향 노드 ID 가 주어지면, 다음으로 호스트 디바이스는 고유한 데카르트 어드레스 (Cartesian address) 와 같은 비트 최적화된 어드레스 (bit-optimized address) 를 각각의 슬레이브 디바이스에 할당하고, 각각의 데카르트 어드레스는 X 어드레스 및 Y 어드레스를 포함한다. 슬레이브 디바이스들의 결과적인 네트워크를 통한 라우팅은 라우팅 테이블의 복잡성 없이 데카르트 어드레스를 사용하여 수행될 수도 있다.
도 1a는 본 개시의 일 양태에 따른 디바이스가 하나보다 많은 마스터 인터페이스를 갖지 않는 예시적인 P2P 시스템의 블록도이다.
도 1b는 본 개시의 일 양태에 따른 호스트 디바이스에서의 마스터 인터페이스 및 슬레이브 디바이스에서의 대응하는 슬레이브 인터페이스에 대한 회로도이다.
도 2는 본 개시의 일 양태에 따른 호스트 디바이스 및 일부 슬레이브 디바이스가 하나보다 많은 마스터 인터페이스를 포함하는 예시적인 P2P 시스템의 블록도이다.
도 3은 본 개시의 일 양태에 따라 비트 최적화된 어드레스를 사용하여 복수의 슬레이브 디바이스들을 열거하는 동작의 예시적인 방법에 대한 흐름도이다.
도 3은 본 개시의 일 양태에 따라 각 슬레이브 디바이스에 고유한 데카르트 어드레스가 할당되는 슬레이브 디바이스들 및 호스트 디바이스의 예시적인 네트워크를 예시한다.
도 4는 각 슬레이브 디바이스에 고유한 데카르트 어드레스가 할당되는 슬레이브 디바이스들 및 호스트 디바이스의 예시적인 네트워크를 예시한다.
도 5는 본 개시의 일 양태에 따라 도 4의 네트워크에서 고유한 데카르트 어드레스를 할당하는 방법에 대한 흐름도이다.
본 개시의 실시형태 및 그 이점은 다음의 상세한 설명을 참조함으로써 가장 잘 이해된다. 하나 이상의 도면들에 예시된 같은 엘리먼트들을 식별하기 위해 같은 참조 번호들이 사용된다는 것을 이해해야 한다.
임의의 주어진 디바이스에 어드레스를 사전 할당할 필요가 없는 열거 시스템 및 방법이 제공된다. 따라서, 퓨즈, I/O 부트스트래핑 또는 펌웨어의 사용과 같은 종래의 열거 기술의 복잡성 및 다이 면적 요구가 유리하게 감소되거나 또는 없어진다. 이러한 유리한 특성을 제공하기 위해, 호스트 디바이스는 복수의 슬레이브 디바이스들과 통신하기 위한 하나 이상의 점대점 (P2P) 인터페이스를 포함한다. 비록 하나의 호스트 디바이스만 있지만, 슬레이브 디바이스들 자체는 대응하는 P2P 인터페이스들을 통해 다른 슬레이브 디바이스들에 대한 서브 호스트들일 수도 있다. 결과적인 시스템 내에서, 임의의 두 노드 사이의 직접적인 물리적 접속 (P2P 접속) 은 임의의 다른 노드와 공유되지 않는다. 따라서 이러한 노드들 간의 P2P 접속은 고유하므로, 어드레스의 사전 할당이 필요하지 않다.
호스트 디바이스에 의한 슬레이브 디바이스들의 열거는 2 단계를 통해 발생한다. 제 1 열거 단계에서, 호스트는 슬레이브 디바이스들의 "원시 어드레스" (raw address) 를 획득한다. 본 명세서에서 더 설명되는 바와 같이, 원시 어드레스는 디바이스의 상태 (슬레이브 또는 마스터) 와 링크 ID의 연결 (concatenation) 을 나타낸다. 슬레이브 디바이스는 다른 슬레이브 디바이스를 통해 호스트 디바이스 또는 집적 회로 (본 명세서에서 사용된 바와 같이, "디바이스" 및 "집적 회로" 는 상호교환가능하게 사용됨) 에 링크될 수도 있음에 유의한다. 예를 들어, 제 1 슬레이브 디바이스는 제 2 슬레이브 디바이스를 통해 호스트 디바이스에 링크할 수도 있다. 제 1 슬레이브 디바이스와 관련하여, 제 2 슬레이브 디바이스는 마스터 디바이스이며, 이는 단순히 제 2 슬레이브 디바이스가 제 1 및 제 2 슬레이브 디바이스들간의 P2P 링크에 대해 "호스트 방향" (host-facing) 디바이스라는 것을 의미한다. 호스트 디바이스 자체는 물론, 연관된 "슬레이브 디바이스들" 과의 그의 P2P 링크 상에서 항상 마스터 디바이스이기 때문에 궁극적인 "호스트 방향" 디바이스이다.
마스터 디바이스로부터 그의 슬레이브로의 P2P 링크와 관련하여, 각 링크는 고유한 ID 를 갖는다. 각 P2P 링크에 대한 디폴트 ID 에는 0과 같은 어떤 2진수 값이 주어질 수도 있다. 열거의 개시 시에, 호스트 디바이스는 그것이 갖는 P2P 링크의 수를 결정한다. 그의 P2P 링크 중 하나는 그의 디폴트 ID를 유지하는 반면, 나머지 링크는 호스트 디바이스에 의해 그들 자신의 고유한 2진수 ID 가 주어진다. 라우팅 테이블이 슬레이브 디바이스에서 필요하지 않기 때문에 특히 유리한 "데카르트" (Cartesian) 어드레싱 기술이 본 명세서에서 더 논의될 것이다. "데카르트" 의 표기에 의해 시사되는 바와 같이, 각각의 결과적인 할당된 어드레스는 실제로 한 쌍의 어드레스이다. 각 쌍의 어드레스 중 첫 번째 것은 "X" 좌표로 간주되는 반면, 각 쌍의 나머지 어드레스는 "Y"좌표로 간주된다. 따라서 각각의 데카르트 어드레스는 (X, Y) 쌍의 어드레스에 의해 형성된다. 쌍에서의 제 1 어드레스는 데카르트 좌표계에서 x 좌표와 동등인 것으로 간주될 수도 있는 반면, 쌍에서의 제 2 어드레스는 데카르트 좌표계에서 y 좌표와 동등한 것으로 간주될 수도 있다. 그러나, 연속적인 2진수 값의 할당을 통해서와 같이 대안적인 실시 형태에서 각각의 슬레이브 디바이스에 단일 어드레스가 할당될 수도 있지만, 호스트에 대한 각각의 P2P 링크에 고유한 링크 ID 가 할당되는 한 비연속적인 넘버링 방식이 사용될 수도 있음이 인식될 것이다. 다른 슬레이브 디바이스들을 통해 호스트 디바이스에 링크되어야하는 그러한 슬레이브 디바이스들과 비교하여 호스트 디바이스와 직접 P2P 링크를 갖는 그러한 슬레이브 디바이스들을 구별하기 위해, 호스트 디바이스와 직접 P2P 링크를 갖는 슬레이브 디바이스들을 "제 1 홉" 슬레이브 디바이스들로 표기한다. 열거 개시에 응답하여, 호스트 디바이스는 각각의 제 1 홉 슬레이브 디바이스에 제 1 홉 슬레이브 디바이스와 호스트 디바이스 사이의 P2P 링크에 대한 링크 ID가 무엇이 될 것인지를 시그널링한다.
호스트 디바이스와 통신하기 위해 다른 슬레이브 디바이스를 통해 커플링해야 하는 슬레이브 디바이스들은 정의에 의해 제 1 홉 슬레이브 디바이스가 아니다. 비-제 1 홉 슬레이브 디바이스와 호스트 디바이스 사이에 개재하는 슬레이브 디바이스는 비-제 1 홉 슬레이브 디바이스와 관련하여 마스터 디바이스로서 동작한다. 이러한 "마스터" 슬레이브 디바이스는 마스터 슬레이브 디바이스에 대한 직접적인 P2P 링크를 갖는 하나보다 많은 슬레이브 디바이스를 가질 수도 있다. 다음으로, 마스터 슬레이브 디바이스는 마스터 슬레이브 디바이스에 대한 P2P 링크를 갖는 각각의 슬레이브 디바이스에 그 P2P 링크에 대한 대응 링크 ID 를 통신하기 위한 열거의 개시에 의해 트리거될 것이다. 임의의 주어진 슬레이브 디바이스 (다른 슬레이브 디바이스에 대해 마스터 디바이스로 작동하는지 여부에 관계없이) 에 대하여, 그것이 P2P 링크를 갖는 마스터 디바이스가 하나뿐이다. 각 슬레이브 디바이스는 슬레이브 인터페이스를 갖고 이를 통해 그의 마스터 디바이스와 대응하는 P2P 링크 상에서 인터페이스한다. 링크 ID가 모두 할당된 상태에서, 다음으로 각 슬레이브 디바이스는 그의 마스터 디바이스에 그의 슬레이브 인터페이스에 대한 "노드 ID" 를 보고할 수도 있고, 이 노드 ID 는 슬레이브로서 그의 상태와, 그 슬레이브 디바이스와 마스터 디바이스 사이의 P2P 링크에 대한 링크 ID 의 연결이다. 예를 들어, 슬레이브 상태는, 2진수 0 으로 표현될 수도 있고 이는 다음으로 링크 ID와 연결되어 노드 ID를 형성한다.
각 마스터 슬레이브 디바이스는 다른 슬레이브 디바이스들에 직접 커플링되는 각 P2P 링크에 대한 인터페이스를 가진다. 이 인터페이스는 다른 슬레이브 디바이스에 서빙하기 때문에 마스터 인터페이스로 표시될 수도 있다. 이러한 마스터 인터페이스에는, 대응하는 링크 ID와 마스터로서의 그의 상태의 연결인 노드 ID가 주어질 수도 있다. 예를 들어, 마스터 상태는, 2진수 1 로 표현될 수도 있고 이는 다음으로 링크 ID와 연결되어 마스터 인터페이스에 대한 노드 ID를 형성한다. 차례로, 마스터 슬레이브 디바이스는 그의 마스터 디바이스와 통신하는 P2P 링크를 위한 슬레이브 인터페이스를 가지고 있다. 예를 들어, 제 1 홉 슬레이브 디바이스에 대한 마스터 디바이스는 호스트 디바이스 자체가 된다. 그래서 호스트 디바이스에 대한 P2P 링크를 위한 제 1 홉 슬레이브 디바이스에서의 인터페이스는 슬레이브 인터페이스이며 이것에는 그에 따라 슬레이브 상태가 주어진다.
다양한 노드 ID들의 결과적인 포메이션 (formation) 은 도 1a에 도시된 예시적인 시스템 (100) 과 관련하여 더 잘 이해될 수도 있다. 호스트 디바이스 (105) 는 제 1 홉 슬레이브 디바이스 (110) 에서의 슬레이브 인터페이스 (130) 에 대한 P2P 링크 (140) 를 위한 마스터 인터페이스 (135) 를 포함한다. 슬레이브 디바이스 (115) 는 그의 슬레이브 인터페이스 (120) 를 통해 P2P 링크 (145) 에 커플링되고 이는 차례로 제 1 홉 슬레이브 디바이스 (110) 에서의 마스터 인터페이스 (125) 에 커플링된다. 따라서, 제 1 홉 슬레이브 디바이스 (110) 는 슬레이브 디바이스 (115) 에 대한 마스터 슬레이브 디바이스이다. 시스템 (100) 은 디바이스가 하나 이하의 마스터 인터페이스를 갖지 않는 예시적인 네트워크이다. 디바이스가 두 개 이상의 마스터 인터페이스를 가질 수도 있는 네트워크에 대해서는 아래에서 더 논의한다. 따라서, P2P 링크들 (140 및 145) 은 2진수 0 (또는 기타 적합한 2진수 값) 과 같은 그들의 디폴트 링크 ID에 의해 나타낼 수도 있다. 디바이스가 둘 이상의 마스터 인터페이스를 포함하는 실시 형태에서, 대응하는 P2P 링크에는 이전에 논의된 바와 같이 고유한 링크 ID가 할당될 필요가 있다. 각각의 디바이스에서의 마스터 인터페이스의 수에 관계 없이, 각각의 링크 ID는 멀티비트 워드 (multi-bit word) 를 포함할 수도 있다. 하기 논의는, 디바이스가 128개를 넘는 상이한 마스터 인터페이스들을 포함할 수 없도록 링크 ID가 7 비트 링크 ID 워드에 의해 표현되는 것을 가정할 것이다. 그러나, 대안적인 실시 형태에서 링크 ID의 폭은 확장 (또는 축소) 될 수도 있다는 것이 인식될 것이다. 7 비트 폭의 링크 ID와 같은 상대적으로 넓은 링크 ID를 사용하는 이점은, 예를 들어, 디바이스 당 8개의 고유한 마스터 인터페이스만 지원할 수 있는 3 비트 폭의 링크 ID 를 갖는 실시 형태들과 비교하여 원시 어드레스들의 결과적인 할당에서의 오류의 전파가 감소된다는 것이다.
링크 ID 에 대해 이 7 비트 폭이 주어지면, 각각의 인터페이스 (135, 130, 125 및 120) 에 대한 노드 ID의 할당은 다음과 같이 발생할 수도 있다. P2P 링크들 (140 및 145) 각각에 대한 디폴트 링크 ID는 [0 00 00 00]이다. 각각의 인터페이스에 대한 슬레이브 또는 마스터로서 1 비트 상태가 이 링크 ID와 연결되어 결과적인 노드 ID를 형성한다. 슬레이브 상태는 0 비트로 표시되는 반면, 마스터 상태는 1 비트로 표시된다. 예를 들어, 슬레이브 인터페이스들 (130 및 120) 양자 모두에 대한 노드 ID는 [00 00 00 00]이다. 대조적으로, 마스터 인터페이스 (135 및 125) 에 대한 호스트 방향 노드 ID는 [10 00 00 00]이다. 각 인터페이스 (슬레이브 또는 마스터) 에 대한 노드 ID 들의 이러한 할당이 주어지면, 각 인터페이스에 대해 "호스트 방향 노드 ID"가 결정된다. 호스트 방향 노드 ID는 주어진 슬레이브 디바이스로부터 호스트 디바이스 (105) 로의 각 노드 ID의 연결 (concatenation) 이다. 예를 들어, 제 1 홉 슬레이브 디바이스 (110) 에 대한 호스트 방향 노드 ID는 [00 00 00 00 10 00 00 00]이다. 대조적으로, 슬레이브 디바이스 (115) 에 대한 호스트 방향 노드 ID는 [00 00 00 00 10 00 00 00 00 00 00 00 10 00 00 00]이다. 각 슬레이브 디바이스에 대한 호스트 방향 노드 ID의 포메이션은 상당히 유리한데, 그 이유는 퓨즈 또는 부트스트랩핑 I/O 의 사용을 통해서와 같이 디바이스들에 대한 기존의 ID 할당이 없더라도 호스트 방향 노드 ID가 고유한 것으로 보장되기 때문이다. 따라서, 시스템 (100) 은 종래의 열거 시스템에 비해 훨씬 더 컴팩트하고 더 저렴하다.
각각의 마스터 인터페이스 및 슬레이브 인터페이스는 호스트 집적 회로 (IC) (101) 및 슬레이브 IC (106) 를 포함하는 하이브리드 가상 GPIO 시스템 (104) 에 대해 도 1b 에 도시된 바와 같은 가상 GPIO (VGI) 인터페이스를 포함할 수도 있다. 따라서, 이하의 논의는 각각의 P2P 링크가 VGI 링크인 가상 GPIO (VGI) 구현에 관한 것이 될 것이다. 그러나, 여기에 개시된 원리 및 기술은 임의의 적합한 P2P 링크에 널리 적용될 수 있음을 이해할 것이다. 집적 회로 (101 및 106) 각각은 GPIO 인터페이스 (103), 하이브리드 가상 GPIO FSM (117) 및 UART 인터페이스 (116) 를 포함한다. 호스트 IC (101) 에서의 UART 인터페이스 (116) 는 슬레이브 IC (106) 내의 UART 인터페이스 (116) 를 위한 수신 핀 (112) 에 회로 기판 트레이스 (circuit board trace) 와 같은 송신 라인을 통해 커플링하는 송신 핀 (111) 을 구동하도록 구성된다. 유사하게, 슬레이브 IC (106) 내의 UART 인터페이스 (116) 에 대한 송신 핀 (111) 은 애플리케이션 프로세서 IC (100) 내의 UART 인터페이스 (116) 에 대한 수신 핀 (112) 에 커플링된다. 본 명세서에 사용된 바와 같이, "핀" 은 집적 회로가 회로 기판 상의 리드 (lead) 또는 다른 적절한 송신 라인에 커플링하기 위해 사용하는 패드 또는 실제 핀과 같은 구조를 커버하는 일반적인 용어이다.
각각의 하이브리드 가상 GPIO FSM (117) 은 아래에서 논의되는 GPIO 상태 변화를 모니터링한다. 대응하는 집적 회로에 대한 파워-온 리셋 (POR) 에서, 각각의 UART 인터페이스 (116) 는 가상 GPIO 프레임 길이 및 메시징 신호 프레임 길이에 대해 동일한 보율 (baud rate) 및 동일한 세팅을 사용하도록 구성될 수도 있다. 각각의 UART 인터페이스 (116) 는 또한 각각의 UART 인터페이스 (116) 에 대한 CPU 링크에 의해 표시된 바와 같이 대응하는 집적 회로의 프로세서 (CPU) (102) 에 의해 구성된 소프트웨어일 수도 있다.
각각의 프로세서 (102) 는 대응하는 GPIO 인터페이스 (103) 를 통해 GPIO 신호를 송신 및 수신하도록 구성된다. 특히, 각각의 프로세서 (102) 는 원격 프로세서로의 송신을 위해 GPIO 신호들의 송신 세트를 대응하는 GPIO 인터페이스 (103) 에 보낼 수도 있다. 유사하게, 각각의 프로세서 (102) 는 원격 프로세서로부터 송신되는 GPIO 신호의 수신 세트를 대응하는 GPIO 인터페이스 (103) 로부터 수신할 수도 있다. GPIO 신호들의 송신 세트에 관련하여, GPIO 신호들의 제 1 부분이 GPIO 신호들 (131) 로서 종래의 GPIO 핀들 (126) 상에서 송신 및 수신될 수도 있다. 예시의 명료성을 위해, GPIO 신호 # 1 내지 GPIO 신호 # 4 의 범위인, 단지 4개의 GPIO 신호 (131) 만이 도 1b에서 각 가상 GPIO 인터페이스 (103) 에 대해 표시되어 있다. GPIO 신호 (131) 의 실제 수는 4보다 더 크거나 또는 작을 수도 있다. 대응하는 프로세서 (102) 로부터 각각의 GPIO 인터페이스 (103) 로 보내지는 GPIO 신호들의 송신 세트의 나머지 부분은 종래의 GPIO 핀 (126) 을 통해 송신 또는 수신되지 않는다. 대신에, 각각의 GPIO 인터페이스 (103) 는 나머지 부분을 복수의 가상 GPIO 신호 (139) 로서 대응하는 하이브리드 가상 GPIO FSM (117) 에 제공하여 그들이 가상 GPIO 신호의 하나 이상의 프레임에서 집적 회로 (101 및 106) 중 수신하는 것으로 직렬화 및 송신될 수도 있다. 시스템 (104) 에서, 가상 GPIO 신호들 (139) 의 세트는 제 1 가상 GPIO 신호 (# 1) 내지 제 m 가상 GPIO 신호 (#m) 의 범위이다. 양의 정수 m의 값은 주어진 구현의 필요에 따라 달라질 수도 있다.
또한, 각각의 프로세서 (102) 는 대응하는 하이브리드 가상 GPIO FSM (117) 에서의 메시징 레지스터 (136) 세트에 메시징 신호의 송신 세트를 기록할 수도 있다. 각각의 메시징 레지스터 (136) 는 대응하는 메시지 신호 (138) 에 대한 특정 어드레스 (137) 에 대응한다. 시스템 (104) 에서, 각각의 하이브리드 가상 GPIO FSM (117) 은 제로 레지스터 (136) 내지 제 M 레지스터 (136) 의 범위인 복수의 (M + 1) 개의 메시징 레지스터를 갖는 것으로 도시되어 있다. 양의 정수 M 의 값은 주어진 구현의 필요에 따라 달라질 수도 있다. 각각의 하이브리드 가상 GPIO FSM (117) 은 그의 메시징 신호들의 송신 세트 및 가상 GPIO 신호들의 송신 세트를 대응하는 UART 인터페이스 (116) 에 제공하는데, 이에 대해서는 이하에서 더 설명된다. 가상 GPIO 신호 (139) 들 각각은 종래의 GPIO 신호 (130) 의 경우와 같이 그들 자신의 전용 핀을 갖지 않는다는 것에 유의한다. 이것은, 하이브리드 가상 GPIO 시스템 (104) 이 가상 GPIO 신호 (139) 들 각각이 그들 자신의 GPIO 핀을 필요로 하는 종래의 GPIO 실시 형태와 비교하여 집적 회로 (101 및 106) 에 대한 핀의 현저한 감소를 달성한다는 점에서 상당히 유리하다.
가상 GPIO 신호들 (139) 및 메시징 신호들 (138) 이 하이브리드 가상 GPIO FSM (117) 과 같은 유한 상태 머신을 통해 송신 및 수신되기 때문에, 프로세서 (102) 는 슬립 상태에 있거나 또는 다른 유형의 휴면 상태에 있을 수도 있지만 여전히 가상 GPIO 신호들 (139) 및 메시징 신호들 (136) 을 수신할 수 있다. 이러한 방식으로, 하이브리드 가상 GPIO 시스템 (104) 은 각각의 GPIO 인터페이스 (103) 에 대한 핀의 수를 유리하게 절약할뿐만 아니라 저전력이다. 각각의 프로세서 (102) 와 관련하여, GPIO 신호들 (130) 과 가상 GPIO 신호들 (139) 사이에는 차이가 없다: 이들은 양자모두 GPIO 인터페이스 (103) 를 통해 필요에 따라 송신 및 수신되는 GPIO 신호들로서 취급된다.
프로세서 (102) 는 가상 GPIO 신호들 (139) 중 선택된 것들의 변화들에 응답하여 인터럽트 신호를 수신할 필요가 있을 수도 있다. 예를 들어, 모뎀 전력 관리자 (MPM) (140) 는 인터럽트 구성 레지스터 (도시되지 않음) 를 통해 프로그래밍된 것과 같이 선택된 가상 GPIO 신호 (139)의 상태를 모니터링할 수도 있다. 각각의 가상 GPIO 신호 (139) 는 대응하는 인터럽트 구성 레지스터를 가질 수도 있다. 가상 GPIO 신호 (139) 가 그 신호 변화 상태에 응답하여 인터럽트를 생성하도록 요구되면, 대응하는 구성 레지스터는 그에 따라 프로그래밍될 것이다. 유사하게, 가상 GPIO 신호 (139) 는 그 신호가 상태를 변경했는지 여부에 관계없이 인터럽트를 발생시키지 않으면 것이면, 대응하는 인터럽트 구성 레지스터도 그에 따라 프로그래밍될 것이다. MPM (141) 은 또한 유한 상태 머신을 포함할 수도 있다. 따라서, 마치 하이브리드 가상 GPIO FSM (117) 처럼, MPM (141) 은 저전력이며, 프로세서 (102) 가 슬립 모드 또는 기타 휴면 상태에 있는지에 관계없이 활성이다.
가상 GPIO 신호들 (139) 은 송신 세트 및 수신 세트로 세분화될 수도 있다. 유사하게, 메시징 신호들 (136) 은 송신 세트 및 수신 세트로 세분화될 수도 있다. 대칭적 시스템에서, 각각의 세트는 동일한 수를 갖는다. 그러나, 하이브리드 가상 GPIO 시스템 (104) 은, 가상 GPIO 신호 (139) 및 메시징 신호 (136) 의 송신 및 수신 세트가 상이한 크기를 갖는 비대칭 시그널링 실시 형태를 용이하게 수용할 수 있다는 점에서 유리하다는 것이 이해될 것이다. 시스템 (104) 이 대칭 또는 비대칭인지에 관계없이, 송신 세트 내의 각 신호는 그 자신의 리드 (도시되지 않음) 상에서 GPIO 인터페이스 (103) 와 대응하는 하이브리드 가상 GPIO FSM (117) 간에 전달된다는 점에서 각각의 하이브리드 가상 GPIO FSM (117) 은 GPIO 인터페이스 (103) 로부터 병렬로 가상 GPIO 신호 (139) 의 송신 세트를 수신한다. 대조적으로, 하이브리드 가상 GPIO FSM (117) 에 의한 송신 세트의 결과적인 송신은 단일 송신 핀 (111) 을 통해 발생한다.
네트워크 (100) 와 하이브리드 가상 GPIO 시스템 (104) 을 비교하면, 하이브리드 가상 GPIO FSM (117) 및 UART (116) 그리고 MPM (141) 에 의해 호스트 IC (101) 에서의 마스터 인터페이스 (135) 가 형성되는 것을 알 수도 있다. 하이브리드 가상 GPIO FSM (117), UART (116) 및 MPM (141) 의 집합 (collection) 이 VGI 인터페이스의 구현을 형성한다. 마찬가지로, 슬레이브 IC (106) 내의 슬레이브 인터페이스 (130) 는 동일한 컴포넌트들에 의해 형성된다. 각각의 하이브리드 가상 GPIO FSM (117) 은 여기에서 논의된 열거 기법을 실시하도록 구성될 수도 있다. 핀들 (111, 112) 간의 리드는 호스트 IC (101) 와 슬레이브 IC (106) 사이에 P2P 링크 (140) 를 형성한다.
또 다른 예시적인 시스템 (200) 이 도 2에 도시되어 있다. 시스템 (200) 은 예를 들어, 호스트 디바이스 (205) 가 제 1 홉 슬레이브 디바이스들 (250, 255, 및 265) 과 각각 대응하는 P2P 링크 (225, 230 및 240) 를 위한 3개의 마스터 인터페이스 (210, 215 및 220) 를 포함한다는 점에서 시스템 (100) 또는 시스템 (104) 보다 더 복잡하다. 호스트 디바이스 (205) 는, 하이브리드 가상 GPIO FSM들 (117) 과 관련하여 논의된 바와 같은 유한 상태 머신을 포함할 수도 있는 노드 어그리게이터 (202) 를 포함한다. 노드 어그리게이터 (202) 는 시스템 (200) 의 파워업 (또는 열거를 트리거하는 기타 적절한 이벤트) 시에, 호스트 디바이스 (205) 내의 마스터 인터페이스의 수를 결정하도록 구성된다. 마스터 인터페이스의 이러한 카운팅이 주어지면, 다음으로 노드 어그리게이터 (202) 는 호스트 디바이스 (205) 에서의 각각의 마스터 인터페이스에 대응하는 P2P 링크에 대한 고유한 링크 ID 를 할당할 수도 있다. P2P 링크 (225) 와 같은 제 1 P2P 링크는 [00 00 00 0] 의 그의 디폴트 링크 ID 를 유지할 수도 있다. 이 디폴트 링크 ID는 링크-0 으로 표기된다. P2P 링크들 (230 및 240) 과 같은 호스트 디바이스 (205) 에 대한 각각의 나머지 P2P 링크에는 2진수 0 으로부터의 카운팅을 통해 새롭고 고유한 링크 ID 가 할당된다. 따라서, P2P 링크 (230) 에는 링크-1 로 표기된 [00 00 00 1] 의 링크 ID 가 할당되는 반면, P2P 링크 (240) 에는 링크-2 로 표기된 [00 00 01 0] 의 링크 ID가 할당될 수도 있다. 호스트 디바이스 (205) 로의 각각의 P2P 링크에 대한 이 고유한 링크 ID 가 퓨즈 또는 I/O 부트스트래핑의 사용을 통해서와 같이 임의의 기존 ID 할당의 결여에도 불구하고 모든 슬레이브 디바이스들에 대한 결과적인 호스트 방향 노드 ID 가 고유하도록 보장한다. 다음으로, 노드 어그리게이터 (202) 는 제 1 홉 슬레이브 디바이스들 (255 및 265) 에 대한 변경된 고유한 링크 ID 를 식별한다. 다음으로, 슬레이브 디바이스 (250) 는 호스트 어그리게이터 (202) 로부터 변경된 링크 ID를 수신하지 않기 때문에, 링크-0 에 대한 [00 00 00 0]의 디폴트 링크 ID가 유효하다고 가정할 수도 있다.
각 디바이스에서의 각 인터페이스는 인터페이스가 마스터 인터페이스인지 슬레이브 인터페이스인지에 관계없이 "노드" 로 표기될 수도 있다. 따라서, 제 1 홉 슬레이브 디바이스 (250, 255, 265) 는 다음 2개의 노드 ID 들을 갖는다: 하나는 그들의 슬레이브 인터페이스 용이고 다른 하나는 그들의 마스터 인터페이스 용이다. 시스템 (200) 에서, 제 1 홉 슬레이브 (250) 는 P2P 링크 (225) 를 위한 슬레이브 인터페이스 (245) 를 포함한다. 따라서, 슬레이브 인터페이스 (245) 에 대한 노드 ID 는 제로 비트 [0] 에 의해 표현된 것과 같은 그의 슬레이브 상태와 P2P 링크 (225) 에 대한 링크 ID 링크-0 [00 00 00 0] 의 연결이다. 따라서, 슬레이브 인터페이스 (245) 에 대한 노드 ID 는 [00 00 00 00] 이다. 제 1 홉 슬레이브 (250) 는 각각 P2P 링크 (275 및 206) 를 통해 슬레이브 디바이스 (290) 및 슬레이브 디바이스 (201) 에 대한 마스터 슬레이브 디바이스의 역할을 한다. 제 1 홉 슬레이브 (250) 는 P2P 링크 (275) 에 대한 마스터 인터페이스 (280) 및 P2P 링크 (206) 에 대한 마스터 인터페이스 (282) 를 포함한다. 제 1 홉 슬레이브 (250) 에는 2개의 마스터 인터페이스가 있기 때문에, 그것은 링크-0 ID 를 P2P (275) 에 그리고 링크-1 ID 를 P2P 링크 (206) 에 할당하기 위한 호스트 디바이스 (205) 와 관련하여 논의된 노드 어그리게이터 (202) 와 같은 노드 어그리게이터 (미도시) 를 포함할 것이다. 따라서, 마스터 인터페이스 (282) 에 대한 노드 ID 는 하나의 비트 [1] 에 의해 표현된 것과 같은 마스터로서의 그의 상태와 [00 00 00 1] 의 링크 ID 링크-1 의 연결이다. 따라서, 마스터 인터페이스 (282) 에 대한 노드 ID 는 [00 00 00 11] 이다. 유사하게, 마스터 인터페이스 (280) 에 대한 노드 ID 는 [00 00 00 01] 이다. 모든 노드에 대해 일관적인 한 어떤 순서로 연결이 형성되는지는 중요하지 않음에 유의한다.
그들의 페이스 상에서, P2P 링크 (275 및 206) 에 대한 링크 ID (링크-0 및 링크-1) 는 각각 P2P 링크 (225 및 230) 에 대해 사용 된 것들과 동일하다. 그러나 결과적인 노드 ID 는 여전히 시스템 (200) 에서 고유할 것이기 때문에 그것은 중요하지 않다. 슬레이브 디바이스 (290) 는 P2P 링크 (275) 를 위한 슬레이브 인터페이스 (295) 를 포함한다. 유사하게, 슬레이브 디바이스 (201) 는 P2P 링크 (206) 를 위한 슬레이브 인터페이스 (211) 를 포함한다.
따라서 주어진 노드에 대한 최종 호스트 방향 ID 는 주어진 노드에 대한 노드 ID 와, 주어진 노드와 호스트 디바이스 사이의 모든 개재 노드의 노드 ID 의 연결이다. 예를 들어, 슬레이브 인터페이스 (295) 에 대한 호스트 방향 ID 는 그의 노드 ID 와, 마스터 인터페이스 (280), 슬레이브 인터페이스 (245) 및 마스터 인터페이스 (210) 에 대한 노드 ID 의 연결이다. 간결함을 위해, 도 2의 각 마스터 또는 슬레이브 인터페이스에 대한 노드 ID는 16진수 형식을 사용하여 보여진다. 따라서, 슬레이브 인터페이스 (295) 에 대한 노드 ID 는 0X00 로서 표현된다. 따라서, 슬레이브 인터페이스 (295) 에 대한 호스트 방향 ID 는 0X00과 0X80 (마스터 인터페이스 (28) 에 대한 노드 ID) 과의 그리고 0X00 (슬레이브 인터페이스 (245) 에 대한 노드 ID) 과의 그리고 0X80 (마스터 인터페이스 (280) 에 대한 노드 ID) 과의 연결이다.
제 1 홉 슬레이브 (265) 는 대응하는 P2P 링크 (226 및 241) 에 대해 2개의 마스터 인터페이스 (231 및 236) 를 각각 포함한다는 점에서 제 1 홉 슬레이브 (265) 는 제 1 홉 슬레이브 (250) 와 유사하다는 것에 유의한다. 제 1 홉 슬레이브 (265) 는 또한 호스트 디바이스 (205) 에 대한 P2P 링크 (240) 를 위한 슬레이브 인터페이스 (270) 를 포함한다. 제 1 홉 슬레이브 (265) 는 2개의 추가 슬레이브 디바이스들에 커플링하기 때문에, 따라서 제 1 홉 슬레이브 (265) 는 P2P 링크 (226) 에 링크-0 ID 를 할당하기 위한 그리고 링크-1 ID를 P2P 링크 (241) 에 할당하기 위한 노드 어그리게이터 (202) 와 관련하여 논의된 바와 같은 노드 어그리게이터 (미도시) 를 포함한다. P2P 링크 (226) 는 슬레이브 디바이스 (246) 에서의 슬레이브 인터페이스 (251) 에 커플링된다. 유사하게, P2P 링크 (241) 는 슬레이브 디바이스 (256) 에서의 슬레이브 인터페이스 (261) 에 커플링한다. 따라서, P2P 링크 (226) 에 대한 링크 ID 할당은 제 1 홉 디바이스 (265) 로부터 슬레이브 인터페이스 (251) 로 통신된다. 유사하게, P2P 링크 (241) 에 대한 링크 ID 할당은 슬레이브 인터페이스 (261) 로 통신된다.
P2P 링크들 (226 및 241) 은 제 1 홉 슬레이브 (250) 에 커플링된 P2P 링크들 (275 및 206) 에 사용된 것과 동일한 링크 ID를 갖는다. 그러나, P2P 링크 (225 및 240) 에 할당된 상이한 링크 ID로 인해, 다양한 노드에 대한 호스트 방향 ID 의 결과적인 할당이 고유한 것으로 보장되기 때문에, 링크 ID의 이러한 중첩은 중요하지 않다. 슬레이브 (246 및 290) 는 양자 모두는, 이들 슬레이브 디바이스들이 추가 다운스트림 슬레이브에 대한 마스터 디바이스로서의 역할을 하지 않는다는 점에서 "엔드 포인트" 슬레이브 디바이스들이다. 제 1 홉 마스터 인터페이스 (280 및 231) 그리고 또한 제 1 홉 슬레이브 디바이스 (255) 에서의 제 1 홉 마스터 인터페이스 (216) 에 대한 노드 ID 는 각각 0x80 인 반면, 제 1 홉 마스터 인터페이스 (282 및 236) 에 대한 노드 ID는 0x81이다. 따라서, 슬레이브 인터페이스 (295) 에 대한 노드 ID와 마스터 인터페이스 (280) 에 대한 노드 ID 의 연결 그리고 또한 슬레이브 인터페이스 (251) 에 대한 노드 ID 와 마스터 인터페이스 (231) 에 대한 노드 ID 의 연결은 양자 모두 0x00, 0x80 이 될 것이다. 유사하게, 슬레이브 인터페이스 (211) 에 대한 노드 ID와 마스터 인터페이스 (282) 에 대한 노드 ID 의 연결 그리고 또한 슬레이브 인터페이스 (261) 에 대한 노드 ID 와 마스터 인터페이스 (236) 에 대한 노드 ID 의 연결은 양자 모두 0x01, 0x81 이 될 것이다.
그러나 이러한 동일한 부분적 연결 결과들은 추가 연결시 고유하게 된다. 예를 들어, 제 1 홉 슬레이브 디바이스 (250) 는 링크-0 ID 를 통해 호스트 디바이스 (205) 에 커플링하는 반면, 제 1 홉 슬레이브 디바이스 (265) 는 링크-2 ID를 통해 호스트 디바이스 (205) 에 커플링한다. 부분적인 연결이 동일함에도 불구하고, 따라서 슬레이브 인터페이스 (295 및 251) 에 대한 최종 호스트 방향 노드 ID 는 상이할 수도 있다. 특히, 엔드 포인트 슬레이브 디바이스 (290) 에서의 슬레이브 인터페이스 (295) 에 대한 호스트 방향 노드 ID 는 0x00, 0x80, 0x00, 0x80 이다. 대조적으로, 엔드 포인트 슬레이브 디바이스 (246) 에서의 슬레이브 인터페이스 (251) 에 대한 호스트 방향 노드 ID 는 0x00, 0x80, 0x02, 0x82 이다. 유사하게, 슬레이브 디바이스 (201) 에서의 슬레이브 인터페이스 (211) 에 대한 호스트 방향 노드 ID 는 0X01, 0X81, 0X00, 0X80 인 반면, 슬레이브 디바이스 (256) 에서의 슬레이브 인터페이스 (261) 에 대한 호스트 방향 노드 ID 는 0X01, 0X81, 0X02, 0X82 이다. 이러한 방식으로, 모든 노드 (노드가 마스터 인터페이스이든 슬레이브 인터페이스이든) 는 결국 고유한 호스트 방향 노드 ID 를 얻게 된다. 슬레이브 디바이스 (256) 는 복수의 I/O 단자들 (266) 과 인터페이스한다는 점에 유의한다.
제 1 홉 슬레이브 디바이스 (255) 는 마스터 슬레이브 디바이스 (271) 에서의 노드 ID 0X00 을 갖는 슬레이브 인터페이스 (276) 에 P2P 링크 (221) 상에서 제 1 홉 마스터 인터페이스 (216) 를 통해 커플링한다. 차례로 마스터 슬레이브 디바이스 (271) 는 엔드 포인트 슬레이브 디바이스 (286) 에서 노드 ID 0X00을 갖는 슬레이브 인터페이스 (291) 에 P2P 링크 (289) 를 통해 커플링하는 노드 ID 0X80 을 갖는 마스터 인터페이스 (281) 를 포함한다. 주어진 P2P 링크의 물리적 토폴로지는 달라질 수도 있다. 예를 들어, 각 P2P 링크는 2-와이어 또는 3-와이어 가상 GPIO 링크를 포함할 수도 있다. 대안적으로, P2P 링크는 P2P 링크 (221) 에 대해 예시된 것과 같은 케이블을 포함할 수도 있다.
비록 결과적인 호스트 방향 노드 ID 는 모두 고유하지만, 그것들은 상대적으로 길고 따라서 그러한 상대적으로 긴 어드레스들을 수반하는 시그널링과 관련하여 약간의 지연을 수반할 것이다. 따라서, 호스트 디바이스 (205) (또는 기타 적절한 상태 머신) 내의 노드 어그리게이터 (202) 는 비트-최적화된 어드레스를 각 슬레이브 디바이스에 재할당할 수도 있다. 따라서 호스트 방향 노드 ID는 또한, 대응하는 비트 최적화된 어드레스들로 대체될 수도 있다는 점에서 "중간적인" (intermediate) 어드레스들로서 표기될 수도 있다. 다시 시스템 (200) 을 참조하면, 앞서 논의된 연결 프로세스를 통해 결정된 대응하는 중간적인 어드레스를 갖게 될 9개의 분리된 슬레이브 디바이스들이 있다. 이러한 중간적인 어드레스들이 9개 있기 때문에, 다양한 슬레이브 디바이스들이 대신에 적어도 4 비트 폭의 (또는 그보다 큰) 비트 최적화 어드레스를 사용하여 식별될 수도 있다. 결과적인 비트 최적화된 어드레스 할당은 I/O 부트-스트래핑의 퓨즈가 필요하지 않도록 미리 결정된 어드레스가 필요하지 않는다는 점에서 매우 유리하다. 또한, 비트 최적화된 어드레스 할당은 호스트 디바이스 (205) 와 그의 슬레이브 디바이스 사이의 저지연 시그널링을 낳는다.
슬레이브 디바이스에서의 각 노드 (마스터 인터페이스 또는 슬레이브 인터페이스) 에 호스트 방향 노드 ID가 할당된 후, 호스트 디바이스에서의 노드 어그리게이터 (202) 는 노드들을 그들의 호스트 방향 노드 ID 를 사용하여 어드레싱하여 보다 비트 최적화된 어드레스가 각 노드에 할당될 수 있도록 처리할 수도 있다. 도 1b 의 호스트 IC (101) 에서의 프로세서 (102) 는 노드 어그리 게이터 (202) 로서 기능하도록 프로그램될 수도 있다. 대안적으로, 노드 어그리게이터 (202) 는 전용 상태 머신을 포함할 수도 있다. 슬레이브에서의 노드를 통해 메시지를 노드들 중 어드레싱된 것으로 라우팅하는 것과 관련하여, 노드 어그리게이터 (202) 는 어드레싱된 노드에 대한 호스트 방향 노드 ID를 포함하는 메시지를 전송한다. 이 메시지는 호스트 디바이스 (205) 로부터 그의 마스터 인터페이스 (예를 들어, 마스터 인터페이스 (210, 215, 220) 중 하나) 를 통해 송신될 것이고, 이 마스터 인터페이스는 결국, 개재하는 노드들을 통해 그 어드레싱된 노드에 커플링한다. 예를 들어, 호스트 디바이스 (205) 가 슬레이브 인터페이스 (291) 를 어드레싱하고 있다면, 대응하는 메시지는 마스터 인터페이스 (215) 를 통해 송신된다. 슬레이브 인터페이스 (291) 에 대한 호스트 방향 노드 ID 는 0X00, 0X80, 0X00, 0X80, 0X01, 0X81이다. 이러한 호스트 방향 노드 ID는 슬레이브 인터페이스 (291) 를 위해 의도된 메시지에 헤더로서 첨부 (attach) 될 수도 있다. 마스터 인터페이스 (215) 를 포함하는 각각의 개재 노드는 그의 노드 ID를 수신된 호스트 방향 노드 ID로부터 삭제하여 부분적인 호스트 방향 노드 ID를 형성하도록 구성되고, 그런 후에 이 부분적인 호스트 방향 노드 ID 는 다음 다운스트림 노드로 송신된다. 예를 들어, 마스터 인터페이스는 호스트 방향 노드 ID 로부터 0X81 의 노드 ID를 삭제하여 제 1 홉 슬레이브 (255) 에서의 슬레이브 인터페이스 (260) 에 송신된 메시지에 대한 헤더로서 (또는 기타 미리 정의된 위치에) 남아있는 제 1 부분 노드 방향 ID를 형성한다. 따라서, 슬레이브 인터페이스 (260) 에 의해 수신된 헤더는 0X00, 0X80, 0X00, 0X80, 0X01이다. 슬레이브 인터페이스 (260) 는 그의 노드 ID 를 헤더로부터 삭제하여 제 1 홉 슬레이브 (255) 에서의 마스터 인터페이스 (216) 에 메시지와 함께 새로운 헤더로서 송신되는 0X00, 0X80, 0X00, 0X80 의 제 2 부분 노드 방향 ID를 형성한다. 다음으로, 마스터 인터페이스 (216) 는 그의 노드 ID 를 헤더로부터 삭제하여 제 2 홉 슬레이브 (271) 에서의 슬레이브 인터페이스 (276) 에 메시지와 함께 새로운 헤더로서 송신되는 0X00, 0X80, 0X00 의 제 3 부분 노드 방향 ID를 형성한다. 슬레이브 인터페이스 (276) 는 그의 노드 ID 를 헤더로부터 삭제하여 제 2 홉 슬레이브 (271) 에서의 마스터 인터페이스 (281) 에 메시지와 함께 새로운 헤더로서 송신되는 0X00, 0X80 의 제 4 부분 노드 방향 ID를 형성한다. 그 후, 마스터 인터페이스 (278) 는 그의 노드 ID를 헤더로부터 삭제하여 어드레싱된 노드 (슬레이브 인터페이스 (291)) 에 대한 노드 ID 인 단지 0X00의 새로운 헤더를 형성한다. 마스터 인터페이스 (278) 는 0X00의 헤더를 갖는 메시지를 슬레이브 인터페이스 (291) 로 송신한다. 다음으로, 슬레이브 인터페이스 (291) 는 수신된 헤더를 조사하여 그것이 그 자신의 노드 ID와 일치하는 단지 하나의 노드 ID임을 검지할 수 있다. 따라서, 슬레이브 인터페이스 (291) 는 대응하는 메시지가 적절한 동작이 취해질 수 있도록 슬레이브 인터페이스 (291) 를 위해 의도된 것임을 결정할 수 있다. 예를 들어, 메시지는 슬레이브 인터페이스 (291) 가 그의 노드 ID 를 노드 어그리게이터 (202) 로부터의 비트 최적화된 어드레스로 대체하라는 커맨드일 수도 있다. 또한, 메시지는 슬레이브 노드들를 통해 비트 최적화된 어드레스들의 라우팅을 위한 라우팅 테이블과 같은 규칙들을 포함할 수도 있다.
도 1a의 네트워크 (100) 에서 노드 ID들의 할당은 도 2와 관련하여 논의된 바와 유사하게 수행된다. 네트워크 (100) 에서의 각 디바이스는 다운스트림 디바이스들에 하나 이하의 P2P 링크를 통해 커플링하기 때문에, P2P 링크들 (140 및 145) 은 [00 00 00 0] 과 같은 그들의 디폴트 링크 ID를 유지할 수도 있다. 대안의 실시형태들에서는 7 비트보다 적은 (또는 7 비트보다 큰) 링크 ID가 사용될 수도 있다는 것을 인식할 것이다. 이와 관련하여, [0] 과 같은 1-비트 디폴트 링크 ID 는 네트워크 (100) 에서 사용될 수도 있다. 그러한 1-비트 디폴트 링크 ID 가 주어지면, 엔드 포인트 슬레이브 (115) 에서의 슬레이브 인터페이스 (120) 는 [0] 에 의해 표기된 것과 같은 슬레이브 인터페이스로서의 그의 상태를 P2P 링크 (145) 에 대한 [0] 의 디폴트 링크 ID 에 연결하여 [00] 의 노드 ID 를 형성할 수도 있다. 다음으로, 제 1 홉 슬레이브 (110) 에서의 마스터 인터페이스 (125) 는 [01] 의 그의 노드 ID를 [00] 의 노드 ID 에 연결하여 [0001] 의 제 1 부분 연결 결과를 형성할 수도 있다. 차례로, 제 1 홉 슬레이브 (110) 에서의 슬레이브 인터페이스 (130) 는 [00] 의 그의 노드 ID 을 제 1 부분 연결 결과에 연결하여 [000100] 의 제 2 부분 연결 결과를 형성한다. 호스트 디바이스 (105) 에 단지 하나의 마스터 인터페이스 (135) 만이 있기 때문에 반드시 필요하지는 않지만, 마스터 인터페이스 (135) 는 [01] 의 그의 노드 ID를 제 2 부분 연결 결과에 연결하여 슬레이브 인터페이스 (120) 에 대한 호스트 방향 노드 ID 를 [00010001] 로서 형성한다. 유사하게, 마스터 인터페이스 (125) 에 대한 호스트 방향 노드 ID는 [010001] 인 반면에, 슬레이브 인터페이스 (130) 에 대한 호스트 방향 노드는 [0001]이다. 다음으로 노드 어그리게이터 (202) 와 유사한 노드 어그리게이터 (미도시) 는 비트 최적화된 어드레스를 슬레이브 인터페이스 (130), 마스터 인터페이스 (125) 및 슬레이브 인터페이스 (120) 에 할당할 수도 있다. 이러한 노드가 3개 있으므로, 2 비트 폭 비트 최적화된 어드레스는 네트워크 (100) 에서 이들 노드를 고유하게 식별할 것이다.
이제, 어드레스 할당의 예시적인 방법이 도 3의 흐름도와 관련하여 논의될 것이다. 이 방법은 각각 고유한 링크 ID를 갖는 대응하는 복수의 제 1 P2P 링크를 통해 호스트 디바이스에 커플링된 복수의 제 1 슬레이브 디바이스들을 포함하는 시스템에 대해 수행되는 동작 (300) 을 포함하며, 각각의 제 1 슬레이브 디바이스는 대응하는 제 1 P2P 링크에 커플링된 슬레이브 인터페이스를 포함한다. 동작 (300) 은 슬레이브 비트와 대응하는 제 1 P2P 링크에 대한 고유한 링크 ID의 연결과 동일한 노드 ID를 각 슬레이브 인터페이스로부터 호스트 디바이스로 송신하는 것을 포함한다. 시스템 (200) 에서의 제 1 홉 슬레이브 (250, 255 및 265) 는 각각 제 1 슬레이브 디바이스들의 예이다. 모든 다운스트림 노드에 호스트 방향 노드 ID가 할당된 후, 제 1 홉 슬레이브들 (250, 255 및 265) 에서의 슬레이브 인터페이스는 그들의 노드 ID 를 호스트 디바이스 (205) 에서의 대응하는 마스터 인터페이스로 전송할 것이다.
이 방법은 또한 각 슬레이브 인터페이스를 고유하게 식별하는데 필요한 최소 비트 수를 결정하기 위해 노드 ID의 수를 카운팅하는 동작 (305) 을 포함한다. 호스트 디바이스 (205) 에서의 노드 어그리게이터 (202) 에 의한 카운팅은 동작 (305) 의 일례이다. 다음으로, 최소 비트 수는 log2(count) 의 정수 값과 동일하고, 여기서 count 는 노드 ID 수이다. 대안의 실시 형태들에서, 비트 최적화된 어드레스는 log2 (count)의 정수 값보다 많은 비트를 포함할 수도 있다.
이 방법은 또한 적어도 최소 비트 수 폭인 비트 최적화된 어드레스를 슬레이브 인터페이스에 할당하기 위해 슬레이브 인터페이스의 노드 ID를 포함하는 제 1 메시지로 각 슬레이브 인터페이스를 어드레싱하는 동작 (310) 을 포함한다. 호스트 디바이스 (205) 의 노드 어그리게이터 (202) 에 의한 비트 최적화된 어드레스의 제 1 홉 슬레이브 디바이스로의 할당은 동작 (310) 의 일례이다.
마지막으로, 이 방법은 슬레이브 인터페이스를 열거하기 위해 슬레이브 인터페이스의 비트 최적화된 어드레스를 포함하는 제 2 메시지로 각 슬레이브 인터페이스를 어드레싱하는 동작 (315) 을 포함한다. 예를 들어, 각각의 제 1 홉 슬레이브 디바이스의 슬레이브 인터페이스는 가상 GPIO 구현에서의 동작 (310) 에서 열거의 일부로서 2 와이어 또는 3 와이어 가상 GPIO 인터페이스로서 그의 상태를 식별할 수도 있다. 열거의 다른 예는 슬레이브 디바이스들에 대하여 슬레이브 및 마스터 인터페이스들에서 VGI 인터페이스에 대한 프레임 길이의 할당을 포함한다. 또한, 열거는 흐름 제어 기술뿐만 아니라 각 VGI 인터페이스에 대한 오류 수정 알고리즘을 할당할 수도 있다.
데카르트 어드레스 할당
각 노드에 대한 비트 최적화된 어드레스의 할당은 노드를 통한 메시지들의 라우팅을 돕기 위해 특수화될 수도 있다. 이러한 슬레이브 간 통신은 일반적으로 각 슬레이브 디바이스에 저장된 라우팅 테이블의 사용자를 포함할 것이다. 슬레이브 디바이스에서의 노드들에 대한 "데카르트" 어드레스 할당이 이제 논의될 것인데, 이는 비트 최적화되지 않지만 결과적으로 할당된 어드레스와 관련하여 비트 효율의 약간의 감소의 대가로 슬레이브 디바이스들을 통해 크게 간단해진 라우팅을 낳는다. 단순 어드레스 비교에 의해, 각각의 슬레이브 디바이스 노드는 적절한 목적지가 항상 달성되도록 다른 슬레이브 디바이스로부터 (또는 호스트 디바이스로부터) 수신된 패킷을 라우팅할 수도 있다.
"데카르트 (Cartesian)" 라는 이름에 의해 암시되는 바와 같이, 데카르트 어드레스 할당에서의 각 어드레스는 2개의 순서화된 어드레스 (즉, 2개의 수) 를 포함한다. 그러나, 대안의 실시 형태들에서의 데카르트 어드레싱은 N차원 공간에서 N개 좌표 (N은 2보다 큰 정수임) 에 기초할 수도 있음이 이해될 것이다. 따라서, 이하의 설명은 일반성의 손실없이 2차원 데카르트 어드레싱 구현에 관한 것이 될 것이다. 각 어드레스 쌍에서 제 1 어드레스는 여기서 X 어드레스로 표시되는 반면, 각 어드레스 쌍에서 나머지 제 2 어드레스는 Y 어드레스로 표시된다. 따라서 각각의 데카르트 어드레스 쌍은 어드레스들의 (X, Y) 쌍을 포함한다. 데카르트 어드레싱은 호스트 디바이스 자체에 대해 (0,0) 과 같은 일부 루트 어드레스로부터 시작된다. Y 어드레스는 호스트 디바이스로부터의 홉들의 수를 나타낸다. 예를 들어, Y 어드레스가 1 인 슬레이브 디바이스들은 호스트에 대한 직접 P2P 링크를 갖는다. 이들 슬레이브 디바이스들은 호스트 디바이스에 직접 커플링되기 때문에, 그들은 또한 "레벨 1" 슬레이브 디바이스들로서 표기될 수도 있다. 유사하게, Y 어드레스가 2 인 슬레이브 디바이스들은 레벨 1 슬레이브 디바이스를 통한 접속을 통해 슬레이브로부터 1 홉 리무브 (remove) 된다. 따라서 Y 어드레스가 2인 그러한 슬레이브 디바이스들은 "레벨 2" 슬레이브 디바이스들로 표기될 수도 있다. Y 어드레스의 추가적인 증분은 호스트 디바이스로부터 추가 홉들에 대응한다: 레벨 3 슬레이브 디바이스들은 Y 어드레스가 3 이고, 레벨 4 슬레이브 디바이스들은 Y 어드레스가 4이고, 기타 등등이다.
X 어드레스는 주어진 클러스터에서 슬레이브 디바이스의 위치에 관한 것이다. 본 명세서에서 사용된 바와 같이, 슬레이브 디바이스들의 "클러스터"는, 동일한 레벨 1 슬레이브 디바이스를 통해 호스트 디바이스에 간접적으로 커플링한는 모든 그러한 슬레이브 디바이스들이다. 네트워크 (400) 에 대한 클러스터의 예시적인 조직이 도 4에 도시되어 있다. 슬레이브 디바이스들의 제 1 클러스터 (클러스터-1) 는 모두 제 1 레벨 1 슬레이브 디바이스 (405) 에 직접 또는 간접적으로 커플링된다. 본 명세서에 사용된 바와 같이, 슬레이브 디바이스가 다른 디바이스로부터 하나 이상의 홉 리무브되는 경우, 슬레이브 디바이스는 다른 디바이스에 간접적으로 커플링된다고 말한다. 예를 들어, 레벨 3 슬레이브 디바이스 (410) 는 레벨 1 슬레이브 디바이스 (405) 로부터 하나의 홉 리무브되는데, 왜냐하면 레벨 3 슬레이브 디바이스 (410) 는 P2P 링크를 통해 레벨 2 슬레이브 디바이스 (415) 에 직접 커플링되고 이는 차례로 직접 대응하는 P2P 링크를 통해 레벨 1 슬레이브 디바이스 (405) 에 커플링되기 때문이다.
X 어드레스의 할당과 관련하여, 디바이스 (405) 와 같은 제 1 레벨 1 슬레이브 디바이스는 1 의 X 어드레스 (또는 기타 시작 정수) 가 주어질 수도 있다. 다음으로, 슬레이브 디바이스가 후속 Y 레벨에서 하나보다 많은 슬레이브 디바이스에 커플링되는 Y 레벨에 도달할 때까지 슬레이브 디바이스 (405) 에 직접 또는 간접적으로 커플링되는 모든 슬레이브 디바이스들에 이 동일한 시작 X 어드레스가 주어진다. 네트워크 (400) 에서, 레벨 2 슬레이브 디바이스 (415) 는 레벨 3 슬레이브 디바이스 (410) 그리고 다른 레벨 3 슬레이브 디바이스 (420) 에 대한 마스터 디바이스로서의 역할을 한다. 따라서, 슬레이브 디바이스 (410) 는 레벨 2 슬레이브 디바이스 (415) 에 사용되는 것과 동일한 시작 X 어드레스가 주어질 수도 있지만 레벨 3 슬레이브 디바이스 (420) 는 시작 어드레스 + 1 (이 경우에, 2) 과 같은 더 높은 X 어드레스를 필요로 한다. 따라서, 레벨 3 슬레이브 디바이스 (410) 에 대한 데카르트 어드레스는 (1,3) 반면에, 레벨 3 슬레이브 디바이스 (420) 에 대해서는 (2,3) 이다. 레벨 3 슬레이브 디바이스 (420) 는 차례로 제 1 레벨 4 슬레이브 디바이스 (425) 에 대해 그리고 제 2 레벨 4 슬레이브 디바이스 (430) 에 대해 마스터 디바이스로서 동작한다. 따라서, 슬레이브 디바이스 (425) 는 (2,4) 의 데카르트 어드레스를 가질 수도 있는 반면에, 슬레이브 디바이스 (430) 는 (3,4) 의 데카르트 어드레스를 가질 수도 있다. 슬레이브 디바이스들 (425 및 430) 로부터의 추가의 홉은 없다.
클러스터 1은 레벨 1 슬레이브 디바이스 (405) 에 대한 직접적인 P2P 링크를 갖는 다른 레벨 2 슬레이브 디바이스 (435) 를 갖는다. 이 슬레이브 디바이스에 대한 X 어드레스는 클러스터에서 이미 존재하는 가장 높은 X 어드레스로부터 증분된다 (레벨 4 슬레이브 디바이스 (430) 에 대해 3 이다). 따라서, 레벨 2 슬레이브 디바이스 (435) 에는 4 의 X 어드레스가 할당될 수도 있다. 따라서, 레벨 2 슬레이브 디바이스 (435) 에 대한 데카르트 어드레스는 (4,2) 이다. 4 의 동일한 X 어드레스는 직접 커플링된 레벨 3 슬레이브 디바이스 (440) 에 그리고 레벨 4 간접 커플링된 슬레이브 디바이스 (445) 에 제공될 수도 있다. 레벨 3 슬레이브 디바이스 (440) 는 또한 다른 레벨 4 슬레이브 디바이스 (455) 에 대한 마스터로서의 역할을 하므로, 이 슬레이브 디바이스는 슬레이브 디바이스 (440) 로부터 증분된 X 어드레스 (즉, 5 의 X 어드레스) 를 갖는다. 다른 레벨 3 슬레이브 디바이스 (450) 는 대응하는 P2P 링크를 통해 레벨 2 슬레이브 디바이스 (435) 에 커플링된다. 따라서, 슬레이브 디바이스 (450) 에 대한 X 어드레스는 슬레이브 디바이스 (450) 에 대한 X 어드레스가 6 (슬레이브 디바이스 (455) 에 대해 5 의 X 어드레스에 대한 1의 증분) 이 되도록 클러스터에서 이미 존재하는 가장 큰 X 어드레스에 대해 1만큼 증분된다.
클러스터 1에서의 모든 슬레이브 디바이스에 데카르트 어드레스가 할당되면, 레벨 1 슬레이브 디바이스 (460) 에서 시작하여 제 2 클러스터 (클러스터 2) 가 어드레싱될 수도 있다. 레벨 1 슬레이브 디바이스 (460) 에 대한 X 어드레스는 선행 클러스터에서의 최대 X 어드레스로부터 증분된다. 따라서, 슬레이브 디바이스 (460) 에 대한 X 어드레스는 7 (클러스터 1 에 대해 6 의 최대 X 어드레스에 대한 1 의 증분) 과 같을 수도 있다. 2 개의 추가적인 슬레이브 디바이스들 (465 및 470) 은 또한 슬레이브 디바이스 (460) 와 동일한 X 어드레스를 가질 수도 있지만, 그들의 각각의 레벨들에 대응하는 증분된 Y 어드레스들을 갖는다. 최종 슬레이브 디바이스 (475) 는 그것과 슬레이브 디바이스 (470) 양자 모두가 슬레이브 디바이스 (465) 에 직접 커플링하기 때문에 증분된 X 어드레스를 갖는다.
도 1a 및 도 2와 관련하여 논의된 노드 ID와는 대조적으로, 데카르트 어드레스는 대응하는 슬레이브 디바이스에 대한 어드레스이다. 호스트 디바이스는 데카르트 어드레스를 슬레이브 디바이스들에 할당한다. 또한 각 슬레이브 디바이스는 그의 호스트 방향 포트가 식별된다. 이 호스트 방향 포트는 도 1a 및 도 2의 네트워크에서 슬레이브 인터페이스로 표시된다. 예를 들어, 슬레이브 디바이스 (420) 상의 포트 (421) 는 그의 호스트 방향 포트이다. 또한 호스트 디바이스는 주어진 클러스터 내의 각각의 슬레이브 디바이스에 그의 클러스터에 대한 최소 및 최대 X 디멘션 (dimension) 을 알린다. 각 슬레이브 디바이스는 이러한 기본 사실 (그의 클러스터의 최소 및 최대 X 어드레스 그리고 그의 호스트 방향 포트 및 그의 데카르트 어드레스) 을 알고 있기 때문에, 결과적인 라우팅은 매우 강건하지만 구현이 간단해진다. 예를 들어, 클러스터 1 에서의 레벨 3 슬레이브 디바이스 (450) 가 클러스터 1에도 있는 레벨 4 슬레이브 디바이스 (430) 에 대한 메시지를 가진다고 가정하자. 슬레이브 디바이스 (450) 로부터 추가의 홉이 없기 때문에, 그것은 디폴트로 메시지를 그의 슬레이브 방향 포트를 통해 메시지를 라우팅할 것이고, 이 슬레이브 방향 포트는 대응하는 P2P 링크를 통해 레벨 3 슬레이브 디바이스 (440) 에 커플링한다. 레벨 3 슬레이브 디바이스 (430) 에 대한 데카르트 어드레스는 (3,4) 이지만, 슬레이브 디바이스 (440) 에 대한 X 어드레스는 (4,3) 이다. 임의의 주어진 슬레이브로부터의 업스트림 브랜칭 (upstream branching) 이 결코 X 어드레스의 감소를 초래하지 않기 때문에, 슬레이브 디바이스 (440) 는 데카르트 어드레스 (3,4) 에 대해 수신된 메시지를 그의 호스트 방향 포트를 통해 레벨 2 슬레이브 디바이스 (435) 로 라우팅할 것이다. 레벨 2 슬레이브 디바이스 (435) 는, 라우팅되는 (3,4) 데카르트 어드레스에 대해 3 의 X 어드레스보다 4 의 그 X 어드레스가 더 크기 때문에 동일한 라우팅 결론에 이를 것이다. 따라서, 데카르트 어드레스 (3,4) 에 대한 메시지는 레벨 1 슬레이브 디바이스 (405) 로 라우팅될 것이다. 라우트된 메시지에 대한 X 어드레스가 라우팅 슬레이브 디바이스에 대한 X 어드레스보다 크거나 같은 한, 라우팅 슬레이브 디바이스는 호스트 방향 포트를 통해 메시지를 다운스트림 전송하는 것과 비교하여 메시지를 업스트림 (보다 높은 레벨로) 라우팅할 것이다. 이러한 라우팅을 위한 로직은 프로세서 이를테면 프로세서 (102) 또는 유한 상태 머신에서 수행될 수도 있다. 각 슬레이브 디바이스는 그의 호스트 방향 포트를 구동하기 위한 VGI 인터페이스를 포함할 수도 있다. 상위 레벨의 슬레이브 디바이스들에 커플링하는 그러한 슬레이브 디바이스들은 또한, 그의 슬레이브 방향 포트를 구동하기 위한 다른 VGI 인터페이스를 포함한다.
데카르트 어드레스의 할당은 각 슬레이브 디바이스 내에 기록된 정수에 의해 도 4에 표시된 순서를 따를 수도 있다. 레벨 1 슬레이브 디바이스 (405) 에 먼저 할당되므로 이것은 정수 1 에 의해 표기된다. 레벨 1 슬레이브 디바이스 (405) 와 같은 주어진 슬레이브가 할당된 그의 데카르트 어드레스를 가지면, 주어진 슬레이브를 통해 커플링하고 동일한 X 어드레스를 갖는 다음 슬레이브는 그 다음에 할당된 그의 데카르트 어드레스를 갖는다. 레벨 2 슬레이브 디바이스 (415) 는 동일한 X 어드레스를 갖지만 레벨 2 상에 있으므로 그것은 데카르트 어드레스가 할당되는 제 2 슬레이브이다. 유사하게, 레벨 3 슬레이브 디바이스 (410) 는 동일한 X 어드레스를 갖지만 레벨 3 상에 있으므로 그것은 데카르트 어드레스가 할당되는 제 3 슬레이브이다. 따라서, 할당 순서는 레벨 3 슬레이브 디바이스 (420) 가 4번째, 레벨 4 슬레이브 디바이스 (425) 가 5번째, 레벨 4 슬레이브 디바이스 (430) 가 6번째, 레벨 2 슬레이브 디바이스 (435)가 7번째, 레벨 3 슬레이브 디바이스 (440) 가 8번째, 레벨 4 슬레이브디바이스 (445) 가 9번째, 레벨 4 슬레이브 디바이스 (455) 가 10번째, 레벨 3 슬레이브 디바이스 (450) 가 11번째, 레벨 1 슬레이브 디바이스 (460) 가 12번째, 레벨 2 슬레이브 디바이스 (465) 가 13번째, 레벨 3 슬레이브 디바이스 (470) 가 14번째, 그리고 레벨 3 슬레이브 디바이스 (475) 가 15번째로 데카르트 어드레스 할당을 받도록 하는 것이 된다.
그런 다음 레벨 1 슬레이브 디바이스는 수신된 메시지를 호스트 디바이스 또는 업스트림으로 그의 클러스터 내에서 라우팅할 수 있다. 레벨 1 슬레이브 디바이스에 대한 이 업스트림 또는 다운스트림 결정은 X 어드레스가 대응하는 클러스터에 대한 경계내에 있는지 여부에 의해 결정된다. 클러스터 1과 관련하여, 그것은 X = 1 으로부터 X = 6 까지 확장된다. 따라서, 레벨 1 슬레이브 디바이스 (405) 가 7 이상의 X 좌표를 갖는 메시지를 수신하면, 그것은 호스트 디바이스가 X 좌표에 기초하여 적절한 클러스터로 메시지를 라우팅할 수 있도록 메시지를 호스트 디바이스로 다운스트림 라우팅한다. 선행하는 예에서, 레벨 1 슬레이브 디바이스 (405) 에서 수신된 메시지에 대한 X 좌표는 레벨 1 슬레이브 디바이스 (405) 가 수신된 메시지를 레벨 2 슬레이브 디바이스 (415) 로 라우팅하도록 3이다. 레벨 2 슬레이브 디바이스 (415) 는 그의 업스트림 라우팅에 대해 2가지 가능한 선택을 갖는데, 그것이 레벨 3 슬레이브 (410) 로 또는 레벨 3 슬레이브 디바이스 (420) 로 라우팅할 수 있기 때문이다. 따라서, 규칙은 업스트림 라우팅은 목적지 데카르트 어드레스에서 X 어드레스보다 작거나 같은 가장 큰 X 어드레스를 갖는 슬레이브 디바이스로 수행되는 것이다. 따라서, 이 규칙이 주어지면, 슬레이브 디바이스 (415) 는 메시지를 슬레이브 디바이스 (420) 로 라우팅한다. 슬레이브 디바이스 (420) 또한 선택권을 갖지만 그 라우팅 규칙 하에서는 레벨 4 슬레이브 디바이스 (430) 로 라우팅한다. 메시지를 수신하면, 각 슬레이브 디바이스는 목적지 데카르트 어드레스가 자신의 것과 일치하는지 확인하기 위해 체크한다. 슬레이브 디바이스 (430) 에 대해, 임의의 슬레이브 디바이스에서 라우팅 테이블의 결여에도 불구하고 의도된 슬레이브 디바이스가 그의 메시지를 수신하도록 일치가 있게 된다.
도 5 는 제 1 점대점 (P2P) 링크를 통해 호스트 디바이스에 커플링되는 제 1 슬레이브 디바이스를 포함하는 시스템으로서, 제 1 슬레이브 디바이스를 통해 상기 호스트 디바이스에 커플링되는 복수의 제 2 슬레이브 디바이스들을 더 포함하는 상기 시스템에 대해 고유한 데카르트 어드레스를 할당하는 예시적인 방법의 흐름도이다. 이 방법은 제 1 슬레이브 디바이스에 데카르트 어드레스를 할당하는 동작 (500) 을 포함하며, 그 데카르트 어드레스는 제 1 X 어드레스 및 제 1 Y 어드레스를 포함한다. 도 4 에서의 제 1 홉 슬레이브 디바이스 (405) 에 대한 데카르트 어드레스 (1,1) 의 할당은 제 1 슬레이브 디바이스의 예이다.
그 방법은 또한: 제 1 슬레이브 디바이스에 커플링하기 위하여 제 2 슬레이브 디바이스가 커플링하는 제 2 슬레이브 디바이스 중 개재된 것들의 수에 따라 제 1 Y 어드레스로부터 증분되는 Y 어드레스를 각 제 2 슬레이브 디바이스에 할당하는 것으로서, 그 제 2 슬레이브 디바이스들 중 개재된 것들의 수는 각 제 2 슬레이브 디바이스에 대해 0 이상인, 상기 Y 어드레스를 각 제 2 슬레이브 디바이스에 할당하는 것에 의해, 및 X 어드레스를 각 제 2 슬레이브 디바이스에 할당하는 것으로서, 상기 X 어드레스는 상기 제 2 슬레이브 디바이스에 그 X 어드레스가 할당된 상태에서 제 2 슬레이브 디바이스들 중 다른 것들이 동일한 Y 어드레스를 공유하는지 여부에 따라 제 1 X 어드레스로부터 증분되는, 상기 X 어드레스를 각 제 2 슬레이브 디바이스에 할당하는 것에 의해, 제 2 슬레이브 디바이스 각각에 데카르트 어드레스를 할당하는 동작 (505) 을 포함한다. 도 4의 슬레이브 디바이스들 (415, 410, 425, 및 430) 에 대한 X 및 Y 어드레스의 할당은 동작 (505) 의 예이다. 슬레이브 디바이스들 (420 및 430) 에 대한 X 어드레스는 이들 슬레이브들 각각이 그의 레벨에서 제 2 슬레이브 디바이스일 때 증분됨에 유의한다. 마찬가지로, 이들 슬레이브 중 주어진 것에 대한 Y 어드레스는 얼마나 많은 슬레이브가 그것과 제 1 홉 슬레이브 디바이스 (405) 사이에 개재하는지에 따라 제 1 홉 슬레이브 (405) 에 대한 루트 Y 어드레스로부터 증분된다. 예를 들어, 슬레이브 디바이스 (430) 는 슬레이브 디바이스들 (420 및 415) 을 통해 제 1 홉 슬레이브 디바이스 (405) 에 커플링된다. 따라서 이는 제 1 홉 슬레이브 디바이스 (405) 로부터 3개 슬레이브들이 리무브 (스스로를 카운팅함) 된다. 따라서, 슬레이브 디바이스 (430) 에 대한 Y 어드레스는 슬레이브 디바이스 (430) 에 대한 Y 어드레스가 3 + 1 = 4 가 되도록 제 1 홉 슬레이브 디바이스 (405) 에 대한 루트 Y 어드레스이다.
마지막으로, 그 방법은 각각의 제 2 슬레이브 디바이스를 그것의 데카르트 어드레스로 어드레싱함으로써 제 2 슬레이브 디바이스를 열거하는 동작 (510) 을 포함한다. 도 4 에서의 슬레이브 디바이스들의 열거는 비트 최적화된 어드레싱이 데카르트 어드레싱에 의해 대체된다는 것을 제외하면 도 2 및 도 3 과 관련하여 논의된 바와 같이 진행될 수도 있다.
당업자가 이제 인식하게 될 바처럼 그리고 당면한 특정 애플리케이션에 따라, 본 개시의 범위를 벗어나지 않으면서, 본 개시의 디바이스의 재료, 장치, 구성 및 사용 방법에 대한 많은 수정, 치환 및 변형이 이루어질 수 있다. 이에 비추어, 본 개시의 범위는 본원에 예시되고 설명된 특정 실시 예의 범위에 한정되어서는 안되는데, 그것들이 본 개시의 일부 실시 예들일뿐이기 때문이며, 오히려 이후에 첨부되는 청구 범위 및 그 기능적 등가물과 완전히 상응해야 한다.

Claims (28)

  1. 호스트 디바이스로서,
    대응하는 복수의 제 1 슬레이브 디바이스들에 커플링하기 위한 복수의 점대점 (P2P) 링크에 대응하는 복수의 마스터 인터페이스들로서, 각각의 제 1 슬레이브 디바이스는 상기 호스트 디바이스 상에서 대응하는 P2P 링크를 통해 대응하는 마스터 인터페이스에 커플링하기 위한 슬레이브 인터페이스를 포함하는, 상기 복수의 마스터 인터페이스들; 및
    상기 복수의 제 1 슬레이브 디바이스들에 대한 열거 프로세스의 개시시 고유한 링크 ID 를 각각의 P2P 링크에 할당하도록 구성된 노드 어그리게이터로서, 상기 노드 어그리게이터는 또한, 대응하는 P2P 링크에 대해 상기 고유한 링크 ID 를 포함하는 각각의 제 1 슬레이브 디바이스의 슬레이브 인터페이스로부터의 고유한 연결된 어드레스를 수신하도록 구성되고, 상기 노드 어그리게이터는 또한, 상기 제 1 슬레이브 디바이스의 고유한 연결된 어드레스를 포함하는 메시지로 상기 대응하는 마스터 인터페이스를 통해 각각의 제 1 슬레이브 디바이스를 어드레싱하도록 구성되고, 상기 메시지는 상기 제 1 슬레이브 디바이스에 할당될 비트 최적화된 어드레스를 포함하고, 각각의 슬레이브 디바이스에 대해 상기 비트 최적화된 어드레스는 각각의 제 1 슬레이브 디바이스에 대한 상기 고유한 연결된 어드레스보다 더 짧은, 상기 노드 어그리게이터
    를 포함하는, 호스트 디바이스.
  2. 제 1 항에 있어서,
    상기 노드 어그리게이터는 또한, 각각의 고유한 연결된 어드레스가 상기 슬레이브 인터페이스에 또는 대응하는 제 1 슬레이브 디바이스에서의 마스터 인터페이스에 대응하는지 여부를 식별하도록 구성되는, 호스트 디바이스.
  3. 제 1 항에 있어서,
    상기 노드 어그리게이터는 프로세서를 포함하는, 호스트 디바이스.
  4. 제 1 항에 있어서,
    상기 노드 어그리게이터는 상태 머신을 포함하는, 호스트 디바이스.
  5. 제 3 항에 있어서,
    각각의 마스터 인터페이스는
    GPIO 신호들의 대응하는 송신 세트를 가상 GPIO 신호들의 적어도 하나의 제 1 프레임으로 직렬화하도록 구성된 유한 상태 머신; 및
    오버샘플링 클럭의 사이클에 응답하여 유니버셜 비동기식 수신기/송신기 (UART) 송신 핀을 통해 상기 적어도 하나의 제 1 프레임을 송신하도록 구성된 UART 인터페이스를 포함하고,
    상기 프로세서는 또한 각각의 제 1 슬레이브 디바이스의 슬레이브 인터페이스에 프레임 길이를 상기 제 1 슬레이브 디바이스와 그의 비트 최적화된 어드레스를 사용하여 통신하는 것에 의해 할당하도록 구성되고, 각각의 유한 상태 머신은 또한, 할당된 상기 프레임 길이에 따라 상기 GPIO 신호들의 대응하는 송신 세트를 상기 가상 GPIO 신호들의 적어도 하나의 프레임으로 직렬화하도록 구성되는, 호스트 디바이스.
  6. 제 3 항에 있어서,
    상기 제 1 슬레이브 디바이스들 중 적어도 일부는 각각 복수의 제 2 슬레이브 디바이스들로부터 대응하는 제 2 슬레이브 디바이스에서의 슬레이브 인터페이스로 추가의 P2P 링크를 통해 커플링된 마스터 인터페이스를 포함하고, 각각의 추가의 P2P 링크는 링크 ID를 가지며, 상기 노드 어그리게이터는 또한 노드 ID들의 연결과 동일한 상기 제 2 슬레이브 디바이스에서의 상기 슬레이브 인터페이스들로부터 제 2 연결된 노드 ID를 수신하도록 구성되는, 호스트 디바이스.
  7. 제 5 항에 있어서,
    상기 유한 상태 머신은 복수의 메시징 레지스터들을 포함하고, 상기 프로세서는 상기 메시징 레지스터들에 복수의 메시징 신호들을 기록하도록 구성되고, 상기 유한 상태 머신은 또한 상기 메시징 레지스터들로부터의 상기 메시징 신호들을 적어도 하나의 제 2 프레임으로 직렬화하도록 구성되고, 상기 UART 인터페이스는 상기 오버샘플링 클럭의 사이클에 응답하여 상기 UART 송신 핀을 통해 상기 적어도 하나의 제 2 프레임을 송신하도록 구성되는, 호스트 디바이스.
  8. 각각이 고유한 링크 ID를 갖는 대응하는 복수의 제 1 점대점 (P2P) 링크를 통해 호스트 디바이스에 커플링된 복수의 제 1 슬레이브 디바이스들을 포함하는 시스템에 대하여, 각각의 제 1 슬레이브 디바이스는 대응하는 제 1 P2P 링크에 커플링되는 슬레이브 인터페이스를 포함하며, 각각의 슬레이브 인터페이스로부터 상기 호스트 디바이스로 슬레이브 비트와 대응하는 제 1 P2P 링크에 대한 상기 고유한 링크 ID 의 연결과 동일한 노드 ID 를 송신하는 단계;
    각각의 슬레이브 인터페이스를 고유하게 식별하는데 필요한 최소 비트 수를 결정하기 위해 상기 노드 ID의 수를 카운팅하는 단계;
    각각의 슬레이브 인터페이스를 상기 슬레이브 인터페이스의 노드 ID를 포함하는 제 1 메시지로 어드레싱하여 적어도 최소 비트 수 폭인 비트 최적화된 어드레스를 상기 슬레이브 인터페이스에 할당하는 단계; 및
    각각의 슬레이브 인터페이스를 상기 슬레이브 인터페이스의 비트 최적화된 어드레스를 포함하는 제 2 메시지로 어드레싱하여 상기 슬레이브 인터페이스를 열거하는 단계를 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 시스템은 상기 제 1 슬레이브 디바이스들 중 개재하는 것에서 마스터 인터페이스에 제 2 P2P 링크를 통해 커플링되는 슬레이브 인터페이스를 갖는 제 2 슬레이브 디바이스를 포함하고, 상기 방법은 상기 제 2 슬레이브 디바이스에서의 상기 슬레이브 인터페이스에 대한 노드 ID, 상기 제 1 슬레이브 디바이스들 중 개재하는 것에서의 상기 마스터 인터페이스에 대한 노드 ID, 및 상기 제 1 슬레이브 디바이스들 중 개재하는 것에서 상기 슬레이브 인터페이스에 대한 상기 노드 ID 의 연결과 동일한 연결된 어드레스를 상기 제 2 슬레이브 디바이스에서의 상기 슬레이브 인터페이스로부터 상기 호스트 디바이스에서 수신하는 단계를 더 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 호스트 디바이스로부터, 상기 연결된 어드레스를 포함하는 제 3 메시지로 상기 제 2 슬레이브 디바이스에서의 상기 슬레이브 인터페이스를 어드레싱하여 상기 제 2 슬레이브 디바이스에서의 상기 슬레이브 인터페이스에 비트 최적화된 어드레스를 할당하는 단계를 더 포함하는, 방법.
  11. 제 10 항에 있어서,
    상기 제 2 슬레이브 디바이스에서의 상기 슬레이브 인터페이스를 어드레싱하는 것은 상기 제 1 슬레이브 디바이스들 중 개재하는 것에서 상기 슬레이브 인터페이스 및 상기 마스터 인터페이스를 통해 상기 제 3 메시지를 상기 제 2 슬레이브 디바이스에서의 상기 슬레이브 인터페이스로 송신하는 것을 포함하는, 방법.
  12. 제 8 항에 있어서,
    각각의 슬레이브 인터페이스를 열거하는 단계는 각각의 슬레이브 인터페이스에 대해 가상 GPIO 프레임 길이를 할당하는 단계를 포함하는, 방법.
  13. 제 8 항에 있어서,
    각각의 슬레이브 인터페이스를 열거하는 단계는 각각의 슬레이브 인터페이스에 흐름 제어 기법을 할당하는 단계를 포함하는, 방법.
  14. 제 8 항에 있어서,
    각각의 슬레이브 인터페이스를 열거하는 단계는 각각의 슬레이브 인터페이스에 오류 수정 기법을 할당하는 단계를 포함하는, 방법.
  15. 제 8 항에 있어서,
    각각의 비트 최적화된 어드레스는 2 비트 폭의 전력 (power of 2 bits wide) 인, 방법.
  16. 호스트 디바이스로서,
    대응하는 복수의 슬레이브 디바이스들의 각각에서 슬레이브 인터페이스에 커플링하기 위한 복수의 점대점 (P2P) 링크들에 대응하는 복수의 마스터 인터페이스들; 및
    열거 프로세스의 개시시에 각각의 P2P 링크에 고유한 링크 ID를 할당하도록 구성된 노드 어그리게이터로서, 상기 노드 어그리게이터는 또한, 대응하는 P2P 링크에 대한 상기 고유한 링크 ID를 포함하는 각각의 슬레이브 인터페이스로부터의 고유한 연결된 어드레스를 수신하도록 구성되는, 상기 노드 어그리게이터를 포함하고,
    상기 노드 어그리게이터는 또한, 각각의 슬레이브 인터페이스를 상기 슬레이브 인터페이스의 연결된 어드레스를 포함하는 메시지로 어드레싱하여 각각의 슬레이브 디바이스에 데카르트 어드레스를 재할당하도록 구성되고, 각각의 데카르트 어드레스는 X 어드레스 및 Y 어드레스를 포함하고, 상기 Y 어드레스는 각각의 슬레이브 디바이스에 대해 상기 슬레이브 디바이스가 상기 호스트 디바이스에 커플링하기 위해 임의의 개재 슬레이브 디바이스들을 통해 필요한 홉들의 수에 기초하는, 호스트 디바이스.
  17. 제 16 항에 있어서,
    상기 슬레이브 디바이스들은 열들로 배열되고, 각각의 슬레이브 디바이스에 대한 상기 X 어드레스는 상기 슬레이브 디바이스를 포함하는 상기 열을 식별하는, 호스트 디바이스.
  18. 제 16 항에 있어서,
    각각의 노드 어그리게이터는 프로세서를 포함하는, 호스트 디바이스.
  19. 제 16 항에 있어서,
    각각의 노드 어그리게이터는 상태 머신을 포함하는, 호스트 디바이스.
  20. 제 16 항에 있어서,
    각각의 마스터 인터페이스는
    GPIO 신호들의 대응하는 송신 세트를 가상 GPIO 신호들의 적어도 하나의 제 1 프레임으로 직렬화하도록 구성된 유한 상태 머신; 및
    오버샘플링 클럭의 사이클에 응답하여 유니버셜 비동기식 수신기/송신기 (UART) 송신 핀을 통해 적어도 하나의 제 1 프레임을 송신하도록 구성된 UART 인터페이스를 포함하고,
    프로세서가 또한 각각의 제 1 슬레이브 디바이스의 슬레이브 인터페이스에 프레임 길이를 상기 제 1 슬레이브 디바이스와 그의 데카르트 어드레스를 사용하여 통신하는 것에 의해 할당하도록 구성되고, 각각의 유한 상태 머신은 또한, 할당된 상기 프레임 길이에 따라 상기 GPIO 신호들의 대응하는 송신 세트를 상기 가상 GPIO 신호들의 적어도 하나의 프레임으로 직렬화하도록 구성되는, 호스트 디바이스.
  21. 제 20 항에 있어서,
    각각의 유한 상태 머신은 복수의 메시징 레지스터들을 포함하고, 상기 프로세서는 상기 메시징 레지스터들에 복수의 메시징 신호들을 기록하도록 구성되고, 상기 유한 상태 머신은 또한 상기 메시징 레지스터들로부터의 상기 메시징 신호들을 적어도 하나의 제 2 프레임으로 직렬화하도록 구성되고, 상기 UART 인터페이스는 상기 오버샘플링 클럭의 사이클에 응답하여 상기 UART 송신 핀을 통해 적어도 하나의 제 2 프레임을 송신하도록 구성되는, 호스트 디바이스.
  22. 제 18 항에 있어서,
    상기 프로세서는 각각의 슬레이브 디바이스를 그의 데카르트 어드레스를 사용해 어드레싱하여 가상 GPIO 프레임 길이를 상기 슬레이브 디바이스에 할당하는 것에 의해 각각의 슬레이브 디바이스를 열거하도록 구성되는, 호스트 디바이스.
  23. 제 18 항에 있어서,
    상기 프로세서는 각각의 슬레이브 디바이스를 그의 데카르트 어드레스를 사용해 어드레싱하여 흐름 제어 기법을 각각의 슬레이브 인터페이스에 할당하는 것에 의해 각각의 슬레이브 디바이스를 열거하도록 구성되는, 호스트 디바이스.
  24. 제 18 항에 있어서,
    상기 프로세서는 각각의 슬레이브 디바이스를 그의 데카르트 어드레스를 사용해 어드레싱하여 오류 수정 기법을 각각의 슬레이브 인터페이스에 할당하는 것에 의해 각각의 슬레이브 디바이스를 열거하도록 구성되는, 호스트 디바이스.
  25. 제 1 점대점 (P2P) 링크를 통해 호스트 디바이스에 커플링된 제 1 슬레이브 디바이스를 포함하는 시스템에 대하여, 상기 시스템은 상기 제 1 슬레이브 디바이스를 통해 상기 호스트 디바이스에 커플링된 복수의 제 2 슬레이브 디바이스를 더 포함하며, 상기 제 1 슬레이브 디바이스에 데카르트 어드레스를 할당하는 단계로서, 상기 데카르트 어드레스는 제 1 X 어드레스 및 제 1 Y 어드레스를 포함하는, 상기 데카르트 어드레스를 할당하는 단계;
    상기 제 1 슬레이브 디바이스에 커플링하기 위하여 상기 제 2 슬레이브 디바이스가 커플링하는 상기 제 2 슬레이브 디바이스 중 개재된 것들의 수에 따라 상기 제 1 Y 어드레스로부터 증분되는 Y 어드레스를 각각의 제 2 슬레이브 디바이스들에 할당하는 것으로서, 상기 제 2 슬레이브 디바이스들 중 개재된 것들의 수는 각각의 제 2 슬레이브 디바이스에 대해 0 이상인, 상기 Y 어드레스를 각각의 제 2 슬레이브 디바이스들에 할당하는 것에 의해, 그리고 X 어드레스를 각각의 제 2 슬레이브 디바이스에 할당하는 것으로서, 상기 X 어드레스는 상기 제 2 슬레이브 디바이스에 상기 X 어드레스가 할당된 상태에서 상기 제 2 슬레이브 디바이스들 중 다른 것들이 동일한 Y 어드레스를 공유하는지 여부에 따라 상기 제 1 X 어드레스로부터 증분되는, 상기 X 어드레스를 각각의 제 2 슬레이브 디바이스에 할당하는 것에 의해, 상기 제 2 슬레이브 디바이스 각각에 데카르트 어드레스를 할당하는 단계; 및
    각각의 제 2 슬레이브 디바이스를 그의 데카르트 어드레스로 어드레싱함으로써 상기 제 2 슬레이브 디바이스들을 열거하는 단계를 포함하는, 방법.
  26. 제 25 항에 있어서,
    제 2 슬레이브 디바이스들 중 첫번째 것으로부터 상기 제 2 슬레이브 디바이스들 중 두번째 것으로, 상기 제 2 슬레이브 디바이스들 중 상기 두번째 것에 대한 데카르트 어드레스에 기초하여, 라우팅하는 단계를 더 포함하는, 방법.
  27. 제 25 항에 있어서,
    각각의 제 2 슬레이브 디바이스는 가상 GPIO (general purpose input output) 인터페이스를 포함하고, 각각의 제 2 슬레이브 디바이스를 열거하는 것은, 가상의 GPIO 프레임 길이를 상기 제 2 슬레이브 디바이스에 할당하는 것을 포함하는, 방법.
  28. 제 25 항에 있어서,
    P2P 링크를 통해 상기 호스트 디바이스에 커플링된 제 3 슬레이브 디바이스에 데카르트 어드레스를 할당하는 단계를 더 포함하며, 상기 제 3 슬레이브 디바이스에 대한 데카르트 어드레스는 상기 제 2 슬레이브 디바이스에 대한 임의의 X 어드레스보다 큰 증분된 X 어드레스를 포함하고, 상기 제 1 Y 어드레스를 포함하는, 방법.

KR1020177026434A 2015-03-24 2016-03-23 데카르트 어드레싱을 이용한 저전력 및 저 지연 디바이스 열거 KR20170129150A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562137687P 2015-03-24 2015-03-24
US62/137,687 2015-03-24
US201562208312P 2015-08-21 2015-08-21
US62/208,312 2015-08-21
US15/077,841 US9979782B2 (en) 2015-03-24 2016-03-22 Low-power and low-latency device enumeration with cartesian addressing
US15/077,841 2016-03-22
PCT/US2016/023826 WO2016154347A1 (en) 2015-03-24 2016-03-23 Low-power and low-latency device enumeration with cartesian addressing

Publications (1)

Publication Number Publication Date
KR20170129150A true KR20170129150A (ko) 2017-11-24

Family

ID=56976690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177026434A KR20170129150A (ko) 2015-03-24 2016-03-23 데카르트 어드레싱을 이용한 저전력 및 저 지연 디바이스 열거

Country Status (6)

Country Link
US (2) US9979782B2 (ko)
EP (2) EP3274856B1 (ko)
JP (1) JP2018509715A (ko)
KR (1) KR20170129150A (ko)
CN (1) CN107430577B (ko)
WO (1) WO2016154347A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979782B2 (en) 2015-03-24 2018-05-22 Qualcomm Incorporated Low-power and low-latency device enumeration with cartesian addressing
US10459868B1 (en) * 2016-09-20 2019-10-29 Marvell International Ltd. Modular chip expansion bridge and corresponding methods
US20180357076A1 (en) * 2017-06-12 2018-12-13 Qualcomm Incorporated Method to establish operating configuration in a vgmi interface
US10496562B1 (en) * 2018-08-13 2019-12-03 Qualcomm Incorporated Low latency virtual general purpose input/output over I3C
CN110247997B (zh) * 2019-06-26 2020-12-15 三维通信股份有限公司 Das系统中ip地址分配和拓扑管理的方法、装置和存储介质
CN111552658B (zh) * 2020-04-17 2022-05-06 北京中科银河芯科技有限公司 一种通信方法、通信控制装置及i2c总线系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675811A (en) * 1995-08-18 1997-10-07 General Magic, Inc. Method for transmitting information over an intelligent low power serial bus
US6363077B1 (en) 1998-02-13 2002-03-26 Broadcom Corporation Load balancing in link aggregation and trunking
US6363520B1 (en) 1998-06-16 2002-03-26 Logicvision, Inc. Method for testability analysis and test point insertion at the RT-level of a hardware development language (HDL) specification
US7051078B1 (en) 2000-07-10 2006-05-23 Cisco Technology, Inc. Hierarchical associative memory-based classification system
US7245623B1 (en) 2002-01-08 2007-07-17 Cisco Technology, Inc. System and method using hierarchical parallel banks of associative memories
DE60336677D1 (de) 2002-12-02 2011-05-19 Silverbrook Res Pty Ltd Totdüsenausgleich
US7228373B2 (en) 2004-03-24 2007-06-05 Analog Devices, Inc. Serial digital communication system and method
US7457257B2 (en) * 2005-11-17 2008-11-25 International Business Machines Corporation Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks
CN101432674A (zh) * 2006-04-25 2009-05-13 德克萨斯仪器股份有限公司 内置集成电路寻址的方法及用于执行该方法的装置
US7761633B2 (en) * 2007-01-29 2010-07-20 Microsemi Corp. - Analog Mixed Signal Group Ltd. Addressable serial peripheral interface
US8363680B2 (en) 2009-10-29 2013-01-29 Precision Microdynamics, Inc. Network control architecture and protocol for a distributed control, data acquisition and data distribution system and process
JP2011248564A (ja) * 2010-05-26 2011-12-08 Seiko Epson Corp 中継装置およびプロセッサーシステム
US8832238B2 (en) * 2011-09-12 2014-09-09 Microsoft Corporation Recording stateless IP addresses
US9979782B2 (en) 2015-03-24 2018-05-22 Qualcomm Incorporated Low-power and low-latency device enumeration with cartesian addressing

Also Published As

Publication number Publication date
EP3274856B1 (en) 2020-06-17
JP2018509715A (ja) 2018-04-05
EP3690665A1 (en) 2020-08-05
US20160285968A1 (en) 2016-09-29
US9979782B2 (en) 2018-05-22
CN107430577A (zh) 2017-12-01
CN107430577B (zh) 2020-04-24
WO2016154347A1 (en) 2016-09-29
US10924541B2 (en) 2021-02-16
US20180241816A1 (en) 2018-08-23
EP3274856A1 (en) 2018-01-31

Similar Documents

Publication Publication Date Title
KR20170129150A (ko) 데카르트 어드레싱을 이용한 저전력 및 저 지연 디바이스 열거
RU2288542C2 (ru) Способы и устройства для осуществления канала связи переменной разрядности
US8769181B2 (en) Multi-port system and method for routing a data element within an interconnection fabric
EP3172870B1 (en) Non-transparent bridge method and apparatus for configuring high-dimensional pci-express networks
CN103023824B (zh) 基于周边组件接口快速通道PCIe的数据传输系统及方法
CN110489365A (zh) 交换设备、外围部件互连高速系统及其初始化方法
US8489795B2 (en) PCI-Express communication system and PCI-Express communication method
JP2007529961A (ja) 自動ネゴシエーションに基づき自動設定する送受信器
TWI703437B (zh) 用於在mochi空間中進行未知位址發現之系統及方法
CN105138485A (zh) 一种串行总线地址管理装置
US20080263248A1 (en) Multi-drop extension for a communication protocol
CN113452475A (zh) 数据传输方法、装置及相关设备
US20120324139A1 (en) Wireless communication for point-to-point serial link protocol
CN113688091A (zh) 基于Tsi721的RapidIO动态枚举过程的实现方法及系统
CN106027423A (zh) PCIe设备共享网络及其数据传输方法
US20190020441A1 (en) Out-of-Band Communication in a Serial Communication Environment
WO2016070813A1 (en) Non-transparent bridge method and apparatus for configuring high-dimensional pci-express networks
JP6593222B2 (ja) 情報処理装置、演算処理装置及び情報処理装置の制御方法
WO2024102915A1 (en) Pcie retimer providing failover to redundant endpoint using inter-die data interface
JP2009267960A (ja) ネットワーク装置
TW201929494A (zh) 結合快速周邊元件互連匯流排與乙太網路的網路通訊方法、系統及控制器
WO2017023682A1 (en) Systems and methods for performing unknown address discovery in a mochi space