KR101576344B1 - 네트워크 터널을 통해 데이터를 전송하기 위한 방법 및 장치 - Google Patents
네트워크 터널을 통해 데이터를 전송하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR101576344B1 KR101576344B1 KR1020137031891A KR20137031891A KR101576344B1 KR 101576344 B1 KR101576344 B1 KR 101576344B1 KR 1020137031891 A KR1020137031891 A KR 1020137031891A KR 20137031891 A KR20137031891 A KR 20137031891A KR 101576344 B1 KR101576344 B1 KR 101576344B1
- Authority
- KR
- South Korea
- Prior art keywords
- network
- devices
- transit
- thunderbolt
- data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
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)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
네트워크 터널들을 통해 데이터를 효율적으로 전송하기 위한 방법들 및 장치들이 개시된다. 일 실시예에서, 터널링된 디바이스가 소정의 능력을 네트워크의 피어 디바이스들에 광고하고, 네트워크의 피어 디바이스들의 능력을 발견한다. 제2 실시예에서, 터널링된 네트워크의 각각의 디바이스는 데이터 네트워킹에 사용하기 위해 트랜싯 프로토콜 파라미터로부터 네트워크 파라미터를 획득한다.
Description
<우선권>
본원은 "METHODS AND APPARATUS FOR TRANSPORTING DATA THROUGH NETWORK TUNNELS"라는 제목으로 2011년 5월 2일자로 출원되어 함께 계류중인 미국 특허 가출원 제61/481,641호에 대해 우선권을 주장하는, 2012년 5월 2일자로 동시에 함께 출원된 동일 제목의 미국 특허 출원 제13/462,603호에 대해 우선권을 주장하며, 이들 출원은 그 전체가 본 명세서에 참고로 포함된다.
<발명의 분야>
본 발명은 일반적으로 전산화된 디바이스, 네트워크 및 버스의 분야에 관한 것이다. 구체적으로, 하나의 예시적인 양태에서, 본 발명은 네트워크 터널을 통해 데이터를 효율적으로 전송하는 것과 관련된다.
데이터 네트워킹의 상황 내에서, "터널"은 (트랜싯(transit) 또는 베어러(bearer) 네트워크에 고유한) 트랜싯 프로토콜 내에 (네트워킹된 요소들에 의해 공유되는) 네트워크 프로토콜을 내장하는(embed) 네트워킹된 요소들 간의 네트워크 통신 채널이다. 일반적으로 터널링은 물리적으로 결합될 수 없는 서브네트워크들을 논리적으로 접속하는 데 사용된다. 예를 들어, 비공개 네트워크들(private networks)은 공개 네트워크를 통해 안전한 터널들을 설정하여 공유 가상 비공개 네트워크를 생성할 수 있다. 터널링은 공통 트랜스포트를 통해 여러 개의 네트워크 프로토콜을 내장하는 데 사용될 수도 있다. 예를 들어, 초기의 ThunderboltTM 고속 데이터 버스는 단일의 비용 효과적인 인터페이스를 이용하여 PCI-ExpressTM(Peripheral Component Interconnect Express) 및 DisplayPortTM 데이터를 동시에 지원할 수 있다.
Thunderbolt 인터페이스의 현재 구현들은 PCI Express(PCIe) 터널, DisplayPort(DP) 터널 및 범용 NHI(Native Host Interface: 고유 호스트 인터페이스)/UTI(User Transport Interface: 사용자 전송 인터페이스) 터널을 단일 직렬 데이터 인터페이스 내에 제공한다. 동작 동안, PCIe 스트림 및 DP 스트림이 전송을 위해 Thunderbolt 패킷들로 패킷화된다. 패킷들은 공유 Thunderbolt 접속을 통한 전송을 위해 함께 인터리빙된 후에, 수신기에서 그들 각각의 구성 스트림들로 디인터리빙된다. PCIe 데이터 스트림도 DP 데이터 스트림도 트랜싯 중에 변경되지 않으므로, 결과적인 스트림들은 기존의 PCI Express 및 DisplayPort 하드웨어 및 소프트웨어와 본질적으로 호환된다.
그러나, 버스 프로토콜들은 능력 및 기능에 있어서 크게 상이하다는 것이 널리 인식되어 있다. 예를 들어, PCIe는 주어진 데이터 스트림을 위한 대역폭을 예약하기 위한 방법을 제공하지 않는다. 대신, PCIe 사양은 트래픽 클래스들 및 가상 채널들을 정의하며, 이들은 통상적인 PCIe 시스템 내에서 트랜잭션들을 우선순위화하는 데 사용될 수 있다. 불행하게도, 이들 능력은 현재의 Thunderbolt 솔루션들 내에 포함되지 않았으며, 기존의 Thunderbolt 송수신기들은 PCIe 프로토콜 내에서 사용되는 가상 채널들 또는 트래픽 클래스들을 지원하지 않는다. 대신, Thunderbolt 송수신기들은 수렴 입출력(CIO:Converged Input/Output) 계층에서 트래픽을 우선순위화할 수 있을 뿐이다(본 명세서에서 사용될 때, 수렴 입출력(CIO) 프로토콜은 Thunderbolt 송수신기들을 위한 트랜싯 프로토콜이다). 예컨대, Thunderbolt 송수신기는 PCIe 트래픽보다 DP 트래픽을 우선순위화할 수 있을 뿐이다.
더욱이, Thunderbolt 핫 플러그 가능 트랜스포트들은 USB(Universal Serial Bus) 및 FireWireTM 디바이스들과 유사하게 범용 유비쿼터스 하드웨어 및 소프트웨어 인터페이스들을 이상적으로 제공할 것이다. 이 때문에, 현재의 연구는 "투명한(transparent)" 동작을 고객들 및 개발자들에게 똑같이 제공하기 위해 Thunderbolt 디바이스들을 위한 특수 디바이스 드라이버들의 사용을 최소화하는 것과 관련된다.
따라서, Thunderbolt 전송 기술과 함께 사용하기 위해, 터널링된 PCIe 스트림들 내의 소정의 트래픽 타입들을 우선순위화하기 위한 솔루션들이 필요하다. 이상적으로, 그러한 솔루션들은 특수 소프트웨어 또는 하드웨어 구조들을 요구하지 않아야 하며, 사용자에게 유효하게 투명해야 한다. 더 일반적으로, 터널링된 데이터 네트워크들 내에서 소정의 프로토콜 고유 능력들을 가능하게 하기 위한 솔루션들이 필요하다.
본 발명은 특히 네트워크 터널들을 통해 데이터를 효율적으로 전송하기 위한 방법들 및 장치들을 제공함으로써 전술한 요구를 충족시킨다.
본 발명의 일 양태에서, 네트워크 내에서 우선순위화된 디바이스 클래스들을 구현하기 위한 방법이 개시된다. 일 실시예에서, 이 방법은 네트워크 내에서 하나 이상의 디바이스 클래스를 발견하는 단계; 하나 이상의 디바이스 클래스에 대해 하나 이상의 자원을 할당하는 단계; 및 하나 이상의 할당된 트랜싯 자원(transit resource)에 따라 하나 이상의 발견된 디바이스 클래스로부터 데이터 트래픽을 라우팅하는 단계를 포함한다.
본 발명의 제2 양태에서, 트랜싯 프로토콜 파라미터로부터 네트워크 프로토콜 파라미터를 획득하기(deriving) 위한 방법이 개시된다. 일 실시예에서, 이 방법은 트랜싯 파라미터를 추출하는 단계; 추출된 트랜싯 파라미터에 적어도 부분적으로 기초하여 네트워크 파라미터를 결정하는 단계; 및 결정된 네트워크 프로토콜 파라미터에 적어도 부분적으로 기초하여 동작하는 단계를 포함한다.
본 발명의 제3 양태에서, 컴퓨터 판독 가능 저장 장치가 개시된다. 일 실시예에서, 이 장치는 적어도 하나의 컴퓨터 프로그램을 저장한 저장 매체를 포함한다. 적어도 하나의 프로그램은 실행될 때 (i) 하나 이상의 디바이스 클래스를 발견하고, (ii) 발견된 하나 이상의 디바이스 클래스 중 적어도 하나에 대해 하나 이상의 트랜싯 자원을 할당하고/하거나, (iii) 하나 이상의 할당된 트랜싯 자원에 따라 데이터를 라우팅하도록 구성된다.
다른 실시예에서, 적어도 하나의 프로그램은 실행될 때 (i) 트랜싯 파라미터를 추출하고, (ii) 추출된 트랜싯 파라미터로부터 네트워크 파라미터를 결정하고/하거나, (iii) 결정된 네트워크 파라미터에 따라 동작하도록 구성된다.
본 발명의 제4 양태에서, 하나 이상의 터널링된 스트림을 갖는 하나 이상의 타입의 트래픽을 우선순위화하도록 구성된 전산화된 장치가 개시된다. 일 실시예에서, 이 장치는 컴퓨터를 포함하고, 터널링된 스트림들은 Thunderbolt 인터페이스를 통해 터널링된다.
본 발명의 제5 양태에서, 하나 이상의 터널링된 스트림을 갖는 하나 이상의 타입의 트래픽을 전송하기 위한 시스템이 개시된다. 일 실시예에서, 이 시스템은 송신 디바이스, 수신 디바이스 및 적어도 하나의 삽입된(interposed) 베어러 매체를 포함한다.
본 발명의 제6 양태에서, 네트워크 내에서 데이터 트래픽을 우선순위화하기 위한 방법이 개시된다. 일 실시예에서, 이 방법은 네트워크 내에서 하나 이상의 우선순위화된 클래스와 관련된 하나 이상의 디바이스를 발견하는 단계; 하나 이상의 우선순위화된 클래스에 대해 하나 이상의 트랜싯 자원을 할당하는 단계; 및 대응하는 할당된 하나 이상의 트랜싯 자원을 통해 하나 이상의 우선순위화된 클래스와 관련된 데이터만을 라우팅하는 단계를 포함한다.
일 변형예에서, 하나 이상의 우선순위화된 클래스는 하나 이상의 멀티미디어 데이터 타입에 기초한다. 예를 들어, 하나 이상의 멀티미디어 데이터 타입은 오디오 데이터를 포함할 수 있다. 다른 그러한 변형예에서, 하나 이상의 우선순위화된 클래스는 디바이스 타입에 기초한다. 예를 들어, 하나 이상의 디바이스 타입은 오디오 디바이스들 및 논-오디오 디바이스들을 포함할 수 있다. 또 다른 변형예들에서, 하나 이상의 전송 자원은 직접 메모리 액세스(DMA:direct memory access) 물리 자원을 포함한다. 예를 들어, DMA 물리 자원은 고유 호스트 인터페이스(NHI:Native Host Interface)를 통해 호스트 인터페이스에 결합되거나, 대안으로서 DMA 물리 자원은 사용자 전송 인터페이스(UTI:User Transport Interface)를 통해 주변 장치 인터페이스에 결합된다.
또 다른 변형예들에서, 하나 이상의 발견된 디바이스 각각은 공통 시간 기준(common time reference)을 공유한다.
본 발명의 제7 양태에서, 네트워크 내에서 데이터 트래픽을 우선순위화하도록 구성된 장치가 개시된다. 일 실시예에서, 이 장치는 하나 이상의 네트워크 인터페이스; 프로세서; 저장된 적어도 하나의 컴퓨터 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 매체를 포함하고, 적어도 하나의 컴퓨터 프로그램은 프로세서에서 실행될 때 네트워크 내에서 하나 이상의 우선순위화된 클래스와 관련된 하나 이상의 피어 디바이스를 발견하고; 하나 이상의 우선순위화된 클래스에 대해 하나 이상의 트랜싯 자원을 할당하고, 대응하는 할당된 하나 이상의 트랜싯 자원을 통해 하나 이상의 우선순위화된 클래스와 관련된 데이터만을 라우팅하도록 구성된다.
일 변형예에서, 하나 이상의 네트워크 인터페이스는 Thunderbolt 준수(compliant) 네트워크 인터페이스를 포함한다. 대안으로서, 하나 이상의 네트워크 인터페이스는 PCIe(Peripheral Component Interconnect Express) 준수 네트워크 인터페이스를 포함한다. 또 다른 변형예들에서, 하나 이상의 네트워크 인터페이스는 DisplayPort 준수 네트워크 인터페이스를 포함한다.
일 변형예에서, 하나 이상의 전송 자원은 직접 메모리 액세스(DMA) 물리 자원을 포함한다. 다른 변형예들에서, 하나 이상의 전송 자원은 전용 메모리 버퍼를 포함한다.
본 발명의 제8 양태에서, 네트워크 내에서 우선순위화된 디바이스 클래스들을 구현하기 위한 시스템이 개시된다. 일 실시예에서, 방법은 네트워크의 하나 이상의 디바이스에 대한 동기화 마스터 디바이스를 결정하는 단계; 동기화 마스터 디바이스에 의해 제공되는 동기화 정보에 기초하여 시간 기준을 획득하는 단계; 및 하나 이상의 디바이스에 의해 지원되는 데이터 타입에 대해 하나 이상의 트랜싯 자원을 할당하는 단계를 포함하고, 하나 이상의 트랜싯 자원은 획득된 시간 기준에 동기화된다.
일 변형예에서, 네트워크는 복수의 동기화 마스터 디바이스를 포함하고, 각각의 동기화 마스터 디바이스는 네트워크 세그먼트와 관련된다. 하나의 그러한 시스템에서, 복수의 동기화 마스터 디바이스는 하나 이상의 경계 디바이스(boundary device)를 통해 동기화 정보를 중계한다.
일 변형예에서, 네트워크는 하나 이상의 Thunderbolt 준수 디바이스를 포함한다.
또 다른 변형예들에서, 하나 이상의 전송 자원은 직접 메모리 액세스(DMA) 물리 자원을 포함한다.
본 발명의 제9 양태에서, 네트워크 내에서 디바이스들의 우선순위화된 클래스들을 구현하기 위한 방법이 개시된다. 일 실시예에서, 이 방법은, 네트워크의 하나 이상의 디바이스에 대한 동기화 마스터 디바이스를 결정하는 단계, 동기화 마스터 디바이스에 의해 제공되는 동기화 정보에 기초하여 시간 기준을 도출하는 단계, 및 하나 이상의 디바이스에 의해 지원되는 데이터 타입에 대해 하나 이상의 전송 자원을 할당하는 단계를 포함하고, 하나 이상의 전송 자원은 도출된 시간 기준에 대해 동기화된다.
본 발명의 제9 양태에서, 네트워크 내에서 디바이스들의 우선순위화된 클래스들을 구현하기 위한 방법이 개시된다. 일 실시예에서, 이 방법은, 네트워크의 하나 이상의 디바이스에 대한 동기화 마스터 디바이스를 결정하는 단계, 동기화 마스터 디바이스에 의해 제공되는 동기화 정보에 기초하여 시간 기준을 도출하는 단계, 및 하나 이상의 디바이스에 의해 지원되는 데이터 타입에 대해 하나 이상의 전송 자원을 할당하는 단계를 포함하고, 하나 이상의 전송 자원은 도출된 시간 기준에 대해 동기화된다.
이 분야의 통상의 기술자들은 첨부 도면들 및 아래에 제공되는 바와 같은 실시예들에 대한 상세한 설명을 참조하여 본 발명의 다른 특징들 및 장점들을 바로 인식할 것이다.
도 1은 예시적인 종래 기술의 ThunderboltTM 송수신기 디바이스를 나타내는 기능 블록도이다.
도 2는 도 1의 종래 기술의 ThunderboltTM 송수신기 디바이스의 여러 접속 능력을 포함하는 하나의 예시적인 사용 시나리오를 나타내는 기능 블록도이다.
도 3은 본 발명에 따른, 네트워크 내에서 우선순위화된 디바이스 클래스들을 구현하기 위한 방법의 일 실시예의 논리 흐름도이다.
도 4는 본 발명에 따른, 트랜싯 프로토콜 파라미터로부터 네트워크 프로토콜 파라미터를 획득하기 위한 방법의 일 실시예의 논리 흐름도이다.
도 5는 본 발명의 다양한 방법들 및 양태들을 구현하는 데 유용한 전산화된 장치의 일 실시예이다.
도 6은 본 발명에 따른, ThunderboltTM 송수신기 디바이스의 하나의 구현 고유 실시예를 나타내는 블록도이다.
도 7은 도 6의 Thunderbolt 디바이스에 의해 제공되는 기준 시간으로부터 동기화된 오디오 샘플 클럭들을 생성하는 데 유용한 장치의 일 실시예를 나타내는 블록도이다.
도 2는 도 1의 종래 기술의 ThunderboltTM 송수신기 디바이스의 여러 접속 능력을 포함하는 하나의 예시적인 사용 시나리오를 나타내는 기능 블록도이다.
도 3은 본 발명에 따른, 네트워크 내에서 우선순위화된 디바이스 클래스들을 구현하기 위한 방법의 일 실시예의 논리 흐름도이다.
도 4는 본 발명에 따른, 트랜싯 프로토콜 파라미터로부터 네트워크 프로토콜 파라미터를 획득하기 위한 방법의 일 실시예의 논리 흐름도이다.
도 5는 본 발명의 다양한 방법들 및 양태들을 구현하는 데 유용한 전산화된 장치의 일 실시예이다.
도 6은 본 발명에 따른, ThunderboltTM 송수신기 디바이스의 하나의 구현 고유 실시예를 나타내는 블록도이다.
도 7은 도 6의 Thunderbolt 디바이스에 의해 제공되는 기준 시간으로부터 동기화된 오디오 샘플 클럭들을 생성하는 데 유용한 장치의 일 실시예를 나타내는 블록도이다.
이하, 도면들을 참조하며, 도면들 전반에서 동일한 번호들은 동일한 요소들을 지시한다.
개요
본 발명은 특히 네트워크 터널들을 통해 데이터를 효율적으로 전송하기 위한 방법들 및 장치들을 제공한다. 본 발명의 하나의 실시예는 Thunderbolt 가능 네트워크를 통한 전송을 위하여 제1 타입의 트래픽(예로서, 오디오 트래픽)을 다른 타입들(논-오디오 트래픽)보다 우선순위화하도록 적응된다. 본 명세서에서 더 상세히 설명되는 바와 같이, Thunderbolt 디바이스들은 오디오 능력을 네트워크의 피어 디바이스들에 광고하고, 또한 피어 디바이스들의 오디오 능력을 발견할 것이다.
본 발명의 제2 실시예에서, Thunderbolt 네트워크와 관련된 각각의 오디오 디바이스는 Thunderbolt 시간 관리 유닛(TMU:time management unit)을 이용하여, 오디오 재구성, 및 네트워크를 통한 오디오 데이터 전송을 개선하는 네트워크 동기화를 제공한다. Thunderbolt TMU는 모든 Thunderbolt 오디오 디바이스들에 대해 공통인 매우 정확하고 정밀한 시간 기준을 제공할 수 있다.
실시예들의
상세한 설명
이제, 본 발명의 실시예들이 더 상세히 설명된다. 이들 실시예는 주로 기존의 ThunderboltTM 고속 데이터 버스들 및 PCI-ExpressTM(Peripheral Component Interconnect Express) 및 DisplayPortTM 프로토콜들과 관련하여 설명되지만, 이 분야의 통상의 기술자들은 본 발명이 어떤 식으로든 전술한 기술들 또는 프로토콜들로 한정되지 않는다는 것을 인식할 것이다. 사실상, 본 발명의 다양한 양태들은 하나 이상의 전송 기술을 통해 하나 이상의 네트워크 프로토콜을 터널링할 수 있는 임의의 네트워크에서 사용되도록 적응될 수 있다.
유사하게, 아래의 설명은 오디오 데이터 및 오디오 데이터 네트워크들과 관련하여 제공되지만, 이 분야의 통상의 기술자들은 본 발명이 어떤 식으로든 오디오 데이터로 한정되지 않는다는 것을 인식할 것이다. 사실상, 본 발명의 다양한 양태들은 다른 데이터보다 우선순위화될 수 있는 임의의 데이터 타입에서 사용되도록 적응될 수 있다. 일반적인 예들은 멀티미디어 데이터(예로서, 오디오 데이터, 비디오 데이터 등), 애플리케이션 고유 데이터 및 실시간 데이터를 포함한다.
본 명세서에서 사용될 때, 용어 "네트워크"는 데이터를 패킷들이라고 하는 적절한 크기의 그룹들로서 전송하도록 구성된 임의의 네트워크 또는 장치를 지칭하지만, 이에 한정되지 않는다. 패킷 네트워크들은 (패킷들의 시퀀스들로 구성된) 데이터의 스트림들을 디바이스들의 집단으로 전송할 수 있다. 전송 동안, 패킷들은 버퍼링 및 큐잉(queuing)되며, 네트워크 내의 트래픽 부하에 따라 가변 지연 및 처리량을 경험할 수 있다. 패킷 기반 네트워크들의 일반 예들은 인터넷(즉, 상호접속된 컴퓨터 네트워크들의 글로벌 시스템)은 물론, 사유화된 인터넷들 및 인트라넷들도 포함한다.
본 명세서에서 사용될 때, 용어 "소스"는 패킷 기반 네트워크를 통한 전송을 위해 정보를 패킷화하도록 구성된 디바이스 또는 인터페이스를 지칭하지만, 이에 한정되지 않는다. 용어 "목적지", "타겟" 및/또는 "싱크"는 패킷으로부터 정보를 추출하도록 구성된 디바이스 또는 인터페이스를 지칭하지만, 이에 한정되지 않는다.
더욱이, 용어 "엔드포인트"는 디바이스들 간의 통신 흐름에서 정보의 "소스" 및/또는 "목적지"인 디바이스의 부분을 일반적으로 지칭하지만, 이에 한정되지 않는다. 유사하게, 본 명세서에서 사용될 때, "노드"는 패킷들을 수신하고 패킷들을 다른 디바이스로 전송하는 디바이스를 지칭하지만, 이에 한정되지 않는다.
이러한 정의들은 한정으로 간주되지 않아야 하는데, 예를 들어 클라이언트 디바이스 또는 다른 엔티티는 네트워크 내의 논리적 또는 물리적 "엔드포인트" 및/또는 "노드"를 포함하거나 포함하지 않을 수 있다.
디바이스는 소스, 목적지 및 노드 기능들을 동시에 구현할 수 있으며(그리고 일반적으로 구현할 것이며), 전술한 구별은 본 발명의 다양한 양태들을 명료하게 하는 목적을 위해서만 행해진다는 것을 더 인식한다.
더구나, 일부 실시예들은 유선 데이터 버스 또는 접속과 관련하여 설명되지만, 본 발명은 IEEE 표준 802.11 무선 네트워크들과 같은 WLAN들, IEEE 표준 802.16 무선 네트워크들과 같은 WMAN들, 개인 영역 네트워크들(PAN들:personal area networks), BluetoothTM, 적외선 및 광 통신 링크들과 같은, 그러나 이에 한정되지 않는 무선 대안들 또는 인터페이스들에 동일하게 적용될 수 있다.
예시적인 종래 기술
Thunderbolt
TM
송수신기
도 1은 본 발명의 다양한 양태들과 관련하여 유용한 하나의 예시적인 종래 기술 Thunderbolt 송수신기(100)를 도시한다. 도시된 바와 같이, Thunderbolt 송수신기는 (i) 하나 이상의 PCI Express(PCIe) 인터페이스, (ii) 하나 이상의 DisplayPort(DP) 인터페이스, (iii) 하나 이상의 Thunderbolt 인터페이스, (iv) 하나 이상의 사용자 전송 인터페이스(들)(UTI), (v) PCIe 스위치, (vi) 고유 호스트 인터페이스(NHI) 및 (vii) Thunderbolt 스위치를 포함한다. Thunderbolt 송수신기의 현재 구현들은 DP 인터페이스들을 DP 데이터로만 제한하며, 모든 다른 트래픽은 PCIe 데이터로서 처리된다.
동작 동안, NHI는 단일 외부 PCIe 접속을 통해 로컬 호스트 프로세서와 통신한다. 로컬 호스트 프로세서는 PCIe 버스를 통해 액세스 가능한 시스템 메모리에 대해 판독 및/또는 기록하도록 NHI 내의 직접 메모리 액세스(DMA) 엔진들을 구성할 수 있다. 기존의 Thunderbolt 송수신기들은 NHI를 포함하여, 모든 Thunderbolt 커맨드 트랜잭션들, 제어 트랜잭션들 및 모든 논-디스플레이 포트 데이터 흐름을 위해 사용되는 하나의 외부 PCIe 접속을 갖는다. 주변 장치들은 통상적으로 UTI 인터페이스를 사용하며, 이 인터페이스는 Thunderbolt 스위치에 접속되고, UTI Thunderbolt 패킷들에 대한 로 액세스(raw access)를 제공한다. 도시된 바와 같이, 도 1의 디바이스는 NHI 및 UTI를 둘 다 가지며, 이는 호스트 및 주변 장치 동작 둘 다를 가능하게 한다(예를 들어, 호스트 전용 디바이스는 UTI를 갖지 않을 것이며, 주변 전용 디바이스는 NHI를 갖지 않을 것이다).
호스트 프로세서는 그 자신의 NHI 인터페이스를 통해 주변 디바이스 PCIe 레지스터들에 액세스할 수 있다. 트랜잭션은 Thunderbolt 스위치를 통해 주변 디바이스로 터널링되며, 액세스는 PCIe 레지스터들에 액세스하도록 UTI를 통해 지향된다. 유사하게, 주변 장치들은 호스트의 NHI에 대한 그들의 UTI를 통해(Thunderbolt 네트워크를 통해) 호스트에 대한 액세스들을 수행할 수 있다. 유사하게, (다중 호스트 시스템들에 대한) 호스트 대 호스트 트랜잭션들은 NHI 대 NHI로 수행될 수 있으며, (다중 주변 장치 시스템들에 대한) 주변 장치 대 주변 장치 트랜잭션들은 UTI 대 UTI로 수행될 수 있다.
도 2는 다양한 접속 능력을 나타내는 제1, 제2 및 제3 종래 기술 Thunderbolt 송수신기들(100A, 100B, 100C)의 하나의 예시적인 사용 시나리오(200)를 도시한다. 도시된 바와 같이, 제1 디바이스는 (오디오 데이터 및 파일 전송으로 구성되는) 제1 PCIe 데이터 스트림 및 제1 DP 데이터 스트림을 수신한다. 제1 디바이스(100A)는 제1 Thunderbolt 고속 직렬 버스를 통한 전송을 위해 제1 PCIe 데이터 스트림 및 제1 DP 데이터 스트림을 패킷화하고, 제1 Thunderbolt 데이터 스트림을 전송한다.
제2 디바이스(100B)는 제1 Thunderbolt 데이터 스트림을 수신하고, 데이터를 제2 PCIe 스트림 및 제2 DP 데이터 스트림으로 언팩킹(unpacking)한다. 제2 DP 데이터 스트림은 출력 DP 인터페이스를 구동한다. 제2 PCIe 스트림은 그의 구성 오디오 데이터 및 파일 전송 스트림들로 더 분할된다. 오디오 데이터는 USB 오디오 출력을 구동한다. 나머지 파일 전송은 제2 Thunderbolt 고속 직렬 버스를 통한 전송을 위해 제2 Thunderbolt 데이터 스트림으로 리팩킹(repacking)된다.
제3 디바이스(100C)는 제2 Thunderbolt 데이터 스트림을 수신하고, 데이터를 제3 PCIe 스트림으로 언팩킹한다. 제3 PCIe 스트림은 파일 전송을 구동한다.
오디오 네트워킹
전술한 바와 같이, DP 인터페이스는 DP 데이터만을 전송하는데, 즉 모든 논-DP 데이터는 통상적으로 단일 PCIe 링크를 통해 터널링된다. 불행하게도, 오디오 데이터는 특히 PCIe 링크가 다른 논-오디오 트래픽으로 크게 혼잡할 때 오디오 스트림 중단을 유발할 만큼 충분히 지연될 수 있다. 더욱이, FireWire 및 USB(Universal Serial Bus)와 같은 다른 버스 프로토콜들과 달리, PCIe는 대역폭을 명확히 예약하기 위한 메커니즘을 제공하지 않는다. 더구나, 전술한 바와 같이, 종래 기술 Thunderbolt 송수신기들은 수렴 입출력(CIO) 계층에서 트래픽을 우선순위화(즉, 터널링된 PCIe 및 DP 패킷들을 인터리빙)할 수 있을 뿐이다.
따라서, 본 발명의 다양한 실시예들은 전술한 종래 기술 송수신기들의 단점들을 해결하도록 적응된다. 일 실시예에서, Thunderbolt 디바이스들은 오디오 능력을 네트워크의 피어 디바이스들에 광고하고, 네트워크의 피어 디바이스들의 오디오 능력을 발견하며, 따라서 디바이스들이 오디오 트래픽을 논-오디오 트래픽보다 우선순위화하는 것을 가능하게 한다. 제2 실시예에서, Thunderbolt 네트워크의 각각의 오디오 디바이스는 Thunderbolt 시간 관리 기능을 이용하여, 오디오 재구성, 및 네트워크를 통한 오디오 데이터 전송 둘 다를 유리하게 개선하는 네트워크 동기화를 제공한다.
예를 들어, 하나의 예시적인 구현에서, (본원의 양수인에 의해 개발되고 배포되는) MacOS XTM Thunderbolt 드라이버는 모든 접속된 Thunderbolt 디바이스들을 발견하고, 관련 디바이스 클래스(또는 달리 지시되지 않는다면 디폴트 클래스)를 결정하도록 구성된다. Thunderbolt 오디오 클래스 디바이스들과 관련된 트랜잭션들은 다른 PCIe 트랜잭션들보다 높은 우선순위 레벨로 분류된다. 일부 변형예들에서는, 추가적인 타입의 디바이스 클래스들이 존재할 수 있으며, 이들 각각은 다른 디바이스 클래스들(예로서, 클래스들 또는 타입들의 계층 구조)보다 우선순위를 가질 수 있다.
구체적으로, MacOS X Thunderbolt 오디오 클래스 드라이버는 Thunderbolt 네트워크에 대한 관련 파라미터들, 예를 들어 (i) 오디오를 위해 이용 가능한 대역폭, (ii) 총 대역폭 및/또는 (iii) 소비된 대역폭과 함께 Thunderbolt 오디오 클래스 디바이스들의 리스트를 결정한다. 각각의 Thunderbolt 디바이스는 서술자 모델을 이용하여 그의 능력을 MacOS X Thunderbolt 오디오 클래스 드라이버에 광고한다. 예를 들어, 하나의 그러한 실시예에서, 서술자는 오디오 디바이스의 PCIe 액세스 가능 메모리 내의 데이터 구조이다. 오디오 디바이스 동작의 다양한 양태들은 MacOS X Thunderbolt 오디오 클래스 드라이버에 의해 PCIe 액세스 가능 레지스터들을 통해 제어될 수 있다.
더구나, 본 발명의 제2 실시예에서, Thunderbolt 송수신기의 Thunderbolt 시간 관리 유닛(TMU)은 디바이스 레벨 시간 동기화를 위해 그리고 오디오 샘플 클럭 재구성을 위한 기초로도 사용된다. Thunderbolt TMU는 모든 Thunderbolt 오디오 디바이스들에 대해 공통인 매우 정확하고 정밀한 시간 기준을 제공하지만, 본 발명에 따르면 다른 시간 베이스들 또는 기준 소스들이 사용될 수 있다는 것을 알 것이다. 예를 들어, Thunderbolt TMU의 기존 구현들은 Thunderbolt 네트워크 전반에서 디바이스 동기화를 10 나노초(10ns) 내로 유지할 수 있다.
동작 동안, MacOS X Thunderbolt 오디오 클래스 드라이버는 지정된 기한 전에 오디오 소스 디바이스로 하여금 그의 샘플들을 다른 목적지 디바이스의 버퍼에 기록하게 하도록 구성할 수 있다. 유사하게, 목적지 디바이스는 기한이 경과한 후까지 샘플들을 소비하지 않을 것이다. (TMU에 의해 각각의 디바이스에서 생성된) 공유 시간 기준의 정밀도는 소스 및 목적지 디바이스들 양자가 뒤틀림(skew)에 대한 최소한의 고려와 함께 동일 시간 기준을 이용할 수 있는 것을 보증한다. 게다가, Thunderbolt 네트워크의 각각의 디바이스는 하나 이상의 샘플 버퍼(예를 들어, 디바이스 자신의 버퍼들 및/또는 피어 디바이스의 버퍼들)를 모니터링하여, 버퍼 언더런(buffer under-runs) 및 버퍼 오버런(buffer over-runs)을 방지 및/또는 해결한다.
마지막으로, 본 발명의 일부 변형예들에서, Thunderbolt TMU는 오디오 샘플 클럭을 재구성하여, 네트워크의 각각의 디바이스에서 동기화된, 재구성된 고품질 오디오 클럭 신호를 제공하는 데 사용된다.
이제, 위의 원리들을 더 설명하기 위해 본 발명의 2개의 실시예가 더 상세히 설명된다.
고유 호스트 인터페이스(
NHI
), 사용자 전송 인터페이스(
UTI
)
본 발명의 제1 실시예에서, 오디오 클래스 디바이스들은 전용 수렴 입출력(CIO) 터널을 할당받는다. 각각의 Thunderbolt 오디오 클래스 디바이스는 전용 오디오 클래스 CIO 터널에 접속되며, 오디오 샘플들만이 전용 CIO 터널을 통해 전송된다. 오디오 클래스 CIO 터널은 우선순위화된 터널이므로, 오디오 샘플들은 다른 PCIe 트래픽에 관계없이 적시에 그들의 목적지에 도달할 수 있다. 하나의 그러한 실시예에서, 전용 오디오 클래스 CIO 터널은 고유 호스트 인터페이스(NHI)/사용자 전송 인터페이스(UTI)에 대한 Thunderbolt 트랜스포트를 통해 구현된다. 호스트는 Thunderbolt 네트워크를 통해 제1 주변 장치의 UTI로 터널링하는 그의 NHI에 기록하며, 제1 주변 장치의 UTI는 Thunderbolt 네트워크를 통해 다른 디바이스로(예로서, 제2의 주변 장치의 UTI로 또는 다시 호스트의 NHI로) 터널링한다. 이러한 방식으로, 디바이스들의 임의로 긴 "링"이 형성될 수 있다. 로컬 호스트 프로세서는 로컬 호스트 프로세서의 시스템 메모리에 오디오 데이터 샘플을 기록하고/그로부터 오디오 데이터 샘플을 판독한 후에 링 네트워크를 통해 터널링되도록 NHI DMA 엔진들을 구성한다.
Thunderbolt 송수신기의 기존 구현들은 UTI 인터페이스에 대해 각각의 방향에서 단일 CIO 터널만을 제공한다. 따라서, 기존의 NHI/UTI 구현들은 여러 가지 현저한 한계를 갖는다. 구체적으로, 단일 NHI/UTI 인터페이스는 소위 "링" 토폴로지에서 다수의 디바이스를 서빙할 수 있을 뿐인데, 즉 각각의 Thunderbolt 오디오 클래스 디바이스는 (이들의 PCIe 기반 제어 접속들이 논리적으로 버스로서 배열되는 경우에도) 하나의 피어 디바이스로부터 판독하고, 오디오 샘플들을 전송하기 위해 하나의 피어 디바이스에 기록한다. (각각의 방향에서 초당 2.5 기가 전송(gigatransfers)(2.5 GT/s)으로 동작하는) UTI 신호 쌍은 약 천 개의 48 킬로헤르쯔(kHz), 32-비트 오디오 채널의 링별 한계를 설정할 수 있으며, 이는 간단한 배열들에 대해서는 충분하지만, 더 복잡한 구성들에서는 곧 부족할 수 있다(quickly overwhelmed).
일부 사용 시나리오들에서는 링 토폴로지가 바람직하다. 예를 들어, 링 토폴로지들은 비교적 자원 효율적인데, 이는 링 토폴로지가 각각의 디바이스에 대해 하나의 착신 경로(inbound) 및 하나의 발신 경로(outbound)만을 소비하기 때문이다. 또 하나의 장점은 Thunderbolt 오디오 클래스 디바이스들이 간단한 전달 구조로 인해(즉, 어드레스 결정(address resolution), 버스 회선 쟁탈 등에 대한 필요 없이) (전체 패킷을 전송하는 데 걸리는 시간의 양보다 작은) 매우 낮은 지연과 함께 패킷들을 전송할 수 있다는 것이다.
그러나, 다른 사용 시나리오들에서는 링 토폴로지가 바람직하지 않을 수 있는데, 예를 들어 Thunderbolt 오디오 클래스 디바이스를 통한 지연은 매우 작아질 수 있지만(밀리초의 몇분의 1), (예를 들어, 본원의 양수인에 의해 제조되는 MacbookTM 타입 디바이스와 같은) 다른 타입의 디바이스들을 통한 지연들은 내부 처리 시간에 의해 지배될 수 있으며, 충분히 더 길 수 있다(수 밀리초). 링 토폴로지는 단방향성이므로, 임의의 2개의 디바이스 사이의 오디오 지연은 오디오 샘플 데이터가 그러한 더 긴 지연 디바이스들을 통해 흐르는지의 여부에 따라 크게 달라질 것이다. 더구나, 지연은 링에 참여하는 디바이스들의 수와 더불어 증가할 것이며, 링 트래픽은 링에 디바이스가 추가되거나/링으로부터 디바이스가 제거되는 임의의 시간에 중단되어야 한다(토폴로지가 변할 때마다 새로운 링이 형성되어야 한다).
NHI/UTI 접근법의 또 다른 한계들은 네트워크의 디바이스 타입들과 관련될 수 있다. 예를 들어, Macbook 타입 디바이스는 CIO 패킷들을 송신 및 수신하기 위해 Thunderbolt NHI DMA 엔진들을 이용할 것이다. DMA 동작은 (시스템 메모리 내의) 중간 버퍼의 사용을 필요로 하며, 이는 소정 응용들에서 바람직하지 않다.
더욱이, DMA 시스템 메모리는 트랜잭션 측면에서 "고가"인 소위 "포스팅되지 않은(non-posted)" PCIe 판독 트랜잭션들을 이용하여 액세스된다. 짧은 여담으로서, PCI Express는 소위 "포스팅된" 트랜잭션 및 "포스팅되지 않은" 트랜잭션을 지원한다. PCIe에서, 통상적인 트랜잭션(즉, 포스팅되지 않은 판독 또는 기록)은 완료 트랜잭션 계층 패킷(TLP:Transaction Layer Packet)을 이용하여 수신 확인된다(acknowledged). TLP 완료 패킷은 수신기(또는 "완료기")가 요청을 수신하였다는 것을 송신기에 확인시킨다. 판독 요청들의 경우, 완료는 성공한 경우에는 반환된 판독 데이터를 또는 성공하지 못한 경우에는 에러 상태를 포함한다. 기록 요청들의 경우, 완료는 성공한 경우에는 수신의 확인을 또는 기록이 성공적으로 완료되지 못한 경우에는 에러 상태를 포함한다. 이와 달리, 포스팅된 트랜잭션은 (트랜잭션이 성공하지 못한 경우에도) 어떠한 수신 확인도 제공하지 않는다. PCIe는 포스팅된 판독을 지원하지 않는다.
그러나, 전술한 NHI/UTI 접근법의 한계들은 소정의 구현 시나리오들에서는(예를 들어, 적은 수의 접속된 디바이스들이 예상되는 경우, 주로 Thunderbolt 오디오 클래스 디바이스들이 사용되는 경우 등) 덜 심각할 수 있다. 대안으로서, 디바이스 기술에 대한 미래의 개량들은 그러한 한계들을 완전히 제거할 수 있다(예를 들어, 미래의 구현들은 추가적인 UTI 인터페이스를 제공하고, 디바이스 지연을 개선하고, 기타 등등일 수 있다).
PCI
Express(
PCIe
)
본 발명의 제2 실시예에서, 각각의 오디오 클래스 디바이스는 네트워크로부터 수신될 모든 오디오 채널들에 대해 메모리를 할당한다. 동작 동안, 오디오 데이터는 PCIe 터널을 통해 "푸시"되는데, 즉 오디오 스트림들은 소스 디바이스에 의해 목적지 디바이스의 메모리 버퍼들 내에 직접 기록된다. 일 구현에서, 기록 트랜잭션들은 "포스팅"되는데, 즉 목적지와 소스 디바이스 사이의 수신 확인 전송을 필요로 하지 않는다. 일부 실시예들에서, 기록 트랜잭션들은 프로그래밍된 I/O(직접 메모리 액세스)를 이용하여 더 처리된다.
이러한 Thunderbolt PCIe 통합 어드레싱 모델은 피어 대 피어 오디오 라우팅을 고유하게 지원할 수 있다. 이러한 능력은 Thunderbolt PCIe 디바이스들로 하여금 Thunderbolt 네트워크 상에서 임의의 다른 Thunderbolt 오디오 클래스 디바이스에 액세스하는 것을 가능하게 한다. 더 일반적으로, 전술한 링 토폴로지와 달리, Thunderbolt 네트워크는 (더 직접적인 라우팅을 가능하게 하는) 논리적 버스 어드레싱을 이용하여 각각의 PCIe 디바이스를 지원할 수 있는 소위 "트리"로서 물리적으로 배열될 수 있다.
더욱이, 전술한 NHI/UTI 스킴과 달리, 이러한 접근법은 전용 CIO 자원을 필요로 하지 않으며, 기존의 PCIe 할당들을 통해 터널링될 수 있다. CIO 자원들은 현재의 디바이스 솔루션들에서는 제한되지만, 더 높은 성능이 요구되는 경우(그리고 CIO 자원들이 이용 가능한 경우), Thunderbolt 오디오 클래스 디바이스들은 Thunderbolt PCIe 트리의 그들 자신의 높은 우선순위 분기를 할당받을 수 있다(즉, Thunderbolt 오디오 클래스 디바이스들은 전용 논리 버스에 접속된다). 그러한 구현들은 특히 피어 대 피어 트랜잭션들의 경우에 오디오 패킷들이 그들의 목적지에 적시에 도달할 기회를 증가시킬 것이다.
더구나, PCIe 접근법은 포스팅된 기록 트랜잭션들을 이용하여 완전히 수행될 수 있다. 구체적으로, 전술한 NHI/UTI 링 토폴로지는 각각의 디바이스가 여전히 중간 버퍼 내로의 PCIe 판독 트랜잭션들 및 중간 버퍼로부터의 PCIe 기록 트랜잭션들을 수행해야 하는 것을 요구한다. 그러한 PCIe 판독 트랜잭션들은 포스팅되지 않는데, 즉 확인을 필요로 한다. 이와 달리, (NHI/UTI를 사용하지 않는) PCIe 접근법은 목적지 디바이스로부터 어떠한 응답도 요구되지 않으므로 처리량을 최대화하고 지연을 최소화하는 PCIe "포스팅된" 기록 트랜잭션들을 충분히 이용할 수 있다. 예를 들어, 예시적인 Macbook 프로세서는 직접 메모리 액세스(DMA) 엔진과 관련하여 중간 버퍼의 사용을 필요로 하지 않고 샘플들을 PCIe 디바이스에 직접 기록할 수 있다.
방법
이제, 본 발명의 일반화된 방법들이 더 상세히 설명된다.
본 발명의 일 양태에서, 디바이스들은 다양한 우선순위화된 클래스들을 네트워크의 피어 디바이스들에 광고하고, 터널링된 네트워크의 피어 디바이스들의 우선순위화된 클래스들을 발견할 수 있다. 터널 자원들(또는 "트랜싯" 자원들)이 네트워크 터널들에 의해 지원되는 다양한 우선순위화된 클래스들에 할당된다.
제2 양태에서, 터널링된 네트워크의 각각의 디바이스는 트랜싯 프로토콜로부터 하나 이상의 파라미터를 추출하며, 각각의 디바이스는 트랜싯 프로토콜 파라미터로부터 네트워크 프로토콜 파라미터를 획득(derive)할 수 있다.
이제, 도 3을 참조하여, 네트워크 내에서 우선순위화된 디바이스 클래스들을 구현하기 위한 방법(300)의 일 실시예가 설명된다. 일 실시예에서, 우선순위화된 클래스들은 매체 타입에 기초한다. 대안으로서, 우선순위 클래스들은 디바이스 애플리케이션들, 디바이스 능력들, 디바이스 타입들 등에 의존할 수 있다. 예를 들어, 디바이스들은 오디오 디바이스들 및 논-오디오 디바이스들로서 분류될 수 있다. 다른 그러한 예에서, 디바이스들은 (i) 처리량, (ii) 지연, (iii) 비동기성, (iv) 등시성(isochronicity) 및/또는 (v) 신뢰성에 따라 분류될 수 있다(그러나 이에 한정되지 않는다). 또 다른 예들에서, 디바이스들은 디바이스 타입(예로서, 호스트 디바이스, 슬레이브 디바이스, 경계 디바이스, 허브 디바이스 등)에 따라 분류될 수 있다.
방법(300)의 단계 302에서, 각각의 디바이스는 터널링된 네트워크에 대한 클래스 발견을 수행한다. 예를 들어, 일 실시예에서, 각각의 디바이스는 피어 디바이스 클래스들을 발견하도록(또는 달리 지시되지 않는 한은 하나 이상의 디폴트 클래스를 할당하도록) 구성된 소프트웨어를 실행한다. 디바이스들은 그들의 적절한 디바이스 클래스들을 터널링된 네트워크의 다른 디바이스들에 광고할 수 있다. 대안으로서, 디바이스들은 그들의 디바이스 클래스들에 대해 피어 디바이스들에 쿼리한다. 또 다른 구현들에서, 디바이스들은 그들의 디바이스 클래스를 중앙 네트워크 엔티티(예를 들어, 네트워크 마스터, 레지스트리 서비스 등)에 등록하고, 중앙 네트워크 엔티티로부터 등록된 피어 디바이스 클래스들을 검색한다.
하나의 예시적인 시나리오에서, 각각의 Thunderbolt 디바이스는 서술자 모델을 이용하여 그의 능력들을 다른 Thunderbolt 디바이스들에 광고한다. 예를 들어, 서술자는 네트워크 프로토콜을 통해 액세스 가능한 데이터 구조를 포함할 수 있다. 네트워크 프로토콜은 예를 들어 PCI Express(PCIe)일 수 있다. 예를 들어, 디바이스는 그 자신을 Thunderbolt 프로토콜을 통해 액세스 가능한 PCIe 메모리 내의 오디오 디바이스로서 식별할 수 있다. 또 다른 시나리오들에서, 하나 이상의 디바이스는 네트워크 관리 엔티티들일 수 있으며, 예를 들어 MacOS X Thunderbolt 드라이버가 중앙 네트워크 관리 엔티티로서 기능하여, 네트워크에 대한 디바이스 발견 및 디바이스 관리를 수행할 수 있다.
네트워크의 모든 디바이스들이 분류되면, 디바이스들 및 이들과 관련된 클래스들의 결과적인 리스트가 네트워크 리스트로 컴파일되어 각각의 디바이스(또는 이들의 서브세트)에 제공될 수 있다. 일부 실시예들에서, 네트워크 리스트는 이용 가능한 전체 대역폭, 소비된 대역폭, 대역폭 한계 등과 같은 다른 관련 파라미터들을 이용하여 더 증대될 수 있다.
방법(300)의 단계 304에서, 하나 이상의 트랜싯 자원이 네트워크의 하나 이상의 우선순위화된 클래스에 할당된다. 일 실시예에서, 네트워크의 하나 이상의 클래스는 전용 트랜싯 자원을 할당받는다. 트랜싯 자원들은 네트워크 터널링 프로세스에서 사용되는 물리 또는 가상 자원들일 수 있다. 예를 들어, 하나의 그러한 변형예에서, 트랜싯 자원들은 논리적 경로, 논리적 채널 등을 포함할 수 있다. 다른 예들에서, 트랜싯 자원들은 물리적 처리 자원(예로서, 직접 메모리 액세스(DMA) 등), 물리적 경로, 물리적 채널 등을 포함할 수 있다.
데이터 트래픽도 전용 입력, 메모리 버퍼 및 전용 출력과 같은 물리 자원에 할당될 수 있다. 예를 들어, 전술한 바와 같이(고유 호스트 인터페이스(NHI), 사용자 전송 인터페이스(UTI) 참조), 오디오 데이터 트래픽이 NHI/UTI DMA 물리 자원에 할당될 수 있다. 다른 예에서, 전술한 바와 같이(PCI Express ( PCIe ) 참조), 각각의 디바이스는 오디오 데이터 트래픽에 대해 내부 시스템 메모리 내의 PCIe 액세스 가능 메모리 버퍼를 할당한다.
방법(300)의 단계 306에서, 우선순위화된 트래픽이 하나 이상의 할당된 트랜싯 자원에 따라 라우팅된다.
이제, 도 4를 참조하여, 트랜싯 프로토콜 파라미터로부터 네트워크 프로토콜 파라미터를 획득하기 위한 방법(400)의 일 실시예가 설명된다. 일 구현에서, 네트워크를 통해 배포되는 트랜싯 타임스탬프 파라미터로부터 시간 동기화가 결정된다. 예를 들어, Thunderbolt 시간 관리 유닛(TMU)이 오디오 샘플 클럭 재구성을 위한 디바이스 레벨 시간 동기화를 생성할 수 있다.
방법(400)의 단계 402에서, 각각의 디바이스는 트랜싯 프로토콜 파라미터를 추출한다. 트랜싯 프로토콜 파라미터들의 일반 예들은 시간, 대역폭, 에러 검사 능력 등을 포함하지만 이에 한정되지 않는다. 일 실시예에서, 각각의 디바이스는 트랜싯 프로토콜로부터 타임스탬프를 추출한다. 다른 그러한 실시예에서, 각각의 디바이스는 트랜싯 네트워크에 의해 지원되는 전체 네트워크 대역폭을 결정한다.
모든 접속된 디바이스들은 이들의 실행되는 애플리케이션들 또는 터널링된 네트워크 프로토콜 등에 관계없이 트랜싯 프로토콜을 공유한다는 점에 특히 유의한다. 예를 들어, Thunderbolt 네트워크의 모든 디바이스들은 Thunderbolt 디바이스의 내부 시간 기준, 애플리케이션 소프트웨어 등에 관계없이 공통 Thunderbolt 시간 기준을 공유할 것이다. 따라서, 유리하게도 기본 트랜싯 프로토콜을 이용하여, Thunderbolt 접속된 디바이스들의 활동을 동기화할 수 있다.
단계 404에서, 각각의 디바이스는 트랜싯 프로토콜 파라미터에 적어도 부분적으로 기초하여 네트워크 프로토콜 파라미터를 결정한다.
짧은 여담으로서, Thunderbolt 송수신기들은 Thunderbolt 네트워크 시간을 Thunderbolt 네트워크 상의 각각의 디바이스로 정확하고 정밀하게 전송하는 고급 시간 관리 유닛들(TMU들)을 포함한다. 통상적인 동작 동안, Thunderbolt 네트워크에 대해 동기화 마스터가 선택된다. 동기화 마스터는 동기화 정보를 그의 네트워크 세그먼트 상에 존재하는 디바이스들로 전송한다. 각각의 디바이스는 동기화 정보에 기초하여 클럭 기준을 국지적으로 계산한다. 경계 디바이스들은 정확한 시간을 다른 세그먼트들로 중계하여, 동기화 마스터들 간의 동기화를 가능하게 한다. 이러한 방식으로, 전체 네트워크는 매우 미세한 오차 허용도로 동기화될 수 있다. 예를 들어, Thunderbolt 디바이스 네트워크들에서, 임의의 2개의 디바이스는 10 나노초(10ns) 이하만큼 시간적으로 다를 것이다. Thunderbolt 송수신기들은 직렬 시간 링크 프로토콜(STLP:Serial Time Link Protocol)이라고 하는 간단한 1-와이어 프로토콜을 이용하여, 현재 Thunderbolt 시간을 인쇄 회로 보드 상의 다른 칩들로 전송한다. 분산형 네트워크들에 대한 그러한 시간 동기화의 다른 예는 IEEE 1588 정밀 시간 프로토콜(PTP:Precision Time Protocol)을 포함한다(그러나 이에 한정되지 않는다).
본 발명의 일 실시예에서, 트랜싯 파라미터는 네트워크 프로토콜 파라미터를 결정하는 데 사용된다. 예를 들어, Thunderbolt 송수신기에서, Thunderbolt 네트워크 시간은 PCI Express(PCIe) 네트워크 프로토콜에 대한 네트워크 시간을 결정하는 데 사용된다. 대안 실시예들에서, Thunderbolt 네트워크 시간은 DisplayPort(DP) 네트워크 프로토콜을 동기화하는 데 사용될 수 있다. 더욱이, 디바이스들은 이용 가능한 트랜싯 대역폭에 기초하여 하나 이상의 네트워크 파라미터(예를 들어, 서비스 품질(QoS), 적절한 인코딩 스킴 등)를 결정할 수 있다.
단계 406에서, 각각의 디바이스는 결정된 네트워크 프로토콜 파라미터에 기초하여 동작하며, 디바이스들 각각에 대한 결정된 네트워크 프로토콜 파라미터들은 실질적으로 유사하다. 예를 들어, Thunderbolt 동작 동안, 내장된 PCIe 네트워크 프로토콜은 획득된 네트워크 시간을 이용하여, 데이터의 송신 및/또는 수신을 스케줄링할 수 있다.
더욱이, 본 발명의 일부 변형예들에서, 획득된 네트워크 시간은 또한 데이터 처리 및/또는 소비를 지원하는 데 사용된다. 예를 들어, 획득된 네트워크 시간은 오디오 처리를 위한 정확하고 정밀한 시간 기준으로서 사용될 수 있다. 하나의 그러한 구현에서, 획득된 시간 기준은 적절한 시간에 시스템 메모리들에 오디오 데이터가 기록되고 판독되는 것을 보증한다(버퍼를 너무 일찍 판독하거나 버퍼에 너무 늦게 기록하는 것은 바람직하지 않은 데이터 장애를 유발할 수 있다).
획득된 시간 기준의 다른 일반적인 사용은 모든 오디오 클럭들이 협력하여 동작하는 것을 보증하기 위해 오디오 샘플 클럭들을 측정하는 것, 하나의 디바이스로부터 다른 디바이스로의 오디오 샘플들의 전달을 스케줄링하는 것 및 오디오 샘플 전송의 PCIe 성능을 모니터링하는 것을 포함하지만 이에 한정되지 않는다.
예시적인 장치
도 5는 본 발명의 다양한 방법들 및 양태들을 구현하는 데 유용한 장치(500)의 일 실시예를 도시한다. 도 5의 장치는 디지털 신호 프로세서, 마이크로프로세서, 필드 프로그래머블 게이트 어레이(FPGA:field-programmable gate array), 또는 하나 이상의 기판 상에 실장된 복수의 처리 컴포넌트와 같은 프로세서 서브시스템(502)을 포함한다. 처리 서브시스템은 내부 캐시 메모리도 포함할 수 있다. 처리 서브시스템은 예를 들어 SRAM, 플래시 및 SDRAM 컴포넌트들을 포함할 수 있는 메모리를 포함하는 메모리 서브시스템(504)과 통신한다. 메모리 서브시스템은 이 분야에 공지된 바와 같이 데이터 액세스를 용이하게 하기 위해 하나 이상의 DMA 타입 하드웨어를 구현할 수 있다. 메모리 서브시스템은 프로세서 서브시스템에 의해 실행될 수 있는 컴퓨터 실행 가능 명령어들을 포함한다.
게다가, 장치는 엔트포인트들 사이의 데이터 터널을 관리하는 터널 통신 제어기(506)를 포함한다. 터널 통신 제어기는 하나 이상의 네트워크 인터페이스(510)와 통신하도록 동작한다. 네트워크 인터페이스들은 패킷화된 트래픽을 송신 및/또는 수신하도록 더 구성된다. 일 실시예에서, 터널 통신 제어기는 트랜싯 네트워크를 통한 전송을 위해 하나 이상의 네트워크 인터페이스로부터의 패킷화된 트래픽을 터널링하도록 구성된다. 터널 통신 제어기는 트랜싯 네트워크를 통한 전송을 위해 패킷들을 인터리빙한다. 수신된 데이터는 적절한 패킷들로 디인터리빙되며, 적절한 네트워크 인터페이스로 라우팅된다.
통신 제어기(506)는 마스터 시간 베이스(508)를 추적하도록 더 구성된다. 이 마스터 시간 베이스는 내부 발진기 회로(예를 들어, VCTCXO(Voltage Controlled Temperature Controlled Crystal Oscillator)) 등과 같은 내부 클럭으로부터 획득될 수 있거나, 직렬 시간 링크 프로토콜(STLP), 글로벌 포지셔닝 시스템(GPS), IEEE 표준 1588 (정밀 시간 프로토콜) 등을 제공하는 피어 디바이스와 같은 외부 디바이스 또는 엔티티로부터 보고 또는 수신될 수 있다.
장치(500)의 일 실시예에서, 하나 이상의 네트워크 인터페이스(510)는 적어도 PCI Express(PCIe) 인터페이스 및 DisplayPort 인터페이스를 포함한다. 본 발명에 유용한 다른 네트워크 인터페이스들의 일반 예들은 유니버설 직렬 버스(USB), FireWire(IEEE 표준 1394), 이더넷, 고화질 멀티미디어 인터페이스(HDMI:High Definition Multimedia Interface), 디지털 비주얼 인터페이스(DVI:Digital Visual Interface) 및 DisplayPort를 포함하지만 이에 한정되지 않는다. 일부 변형예들에서, 하나 이상의 네트워크 인터페이스는 큰 메모리 전송들을 실행하기 위한 DMA 타입 메모리 및 관련 DMA 엔진과 함께 사용되도록 더 구성된다.
전술한 바와 같이, 네트워크 프로토콜 트래픽은 트랜싯 네트워크를 통한 전송을 위해 패킷화된다. 패킷화된 데이터는 데이터의 개별 단위들 또는 패킷들로 포맷팅된 데이터이다. 각각의 패킷은 적어도 라우팅 정보 및 페이로드를 포함한다. 라우팅 정보는 예를 들어 소스 및 목적지 어드레스, 에러 검출 코드 및 시퀀스 정보를 제공한다. 게다가, 소정 타입의 데이터 패킷들은 프레젠테이션 정보를 포함할 수 있으며, 예를 들어 (오디오 데이터 및 비디오 데이터와 같은) 미디어 패킷들은 미디어가 규칙적이고 균일한 레이트로 재생되는 것을 보증하기 위해 관련 재생 시간을 가질 수 있다.
본 발명의 일부 실시예들에서, 패킷화된 트래픽은 신뢰성에 대한 다양한 보증을 제공하거나 제공하지 않을 수 있다. 예를 들어, "포스팅되지 않은" 트랜잭션들은 명확한 수신 확인(ACK:acknowledgment) 또는 미수신 확인(NAK:non- acknowledgement)을 제공할 수 있는 반면, "포스팅된" 트랜잭션들은 전송 성공 또는 실패에 관한 어떠한 피드백도 제공하지 않을 수 있다.
도 5를 다시 참조하면, 사용자 인터페이스 서브시스템(510)은 처리 서브시스템(502)에 결합되며, 키패드, 터치스크린(예를 들어, 멀티터치 인터페이스), 오디오/비주얼(AV) 시스템, 백라이트, 스피커 및/또는 마이크를 포함하지만 이에 한정되지 않는 임의 수의 공지된 I/O를 포함할 수 있다. 그러나, 소정 응용들에서는 이들 컴포넌트 중 하나 이상이 제거될 수 있다는 것을 인식한다.
도 6은 본 발명의 다양한 방법들 및 양태들을 구현하는 주변 장치(600)의 하나의 특정 구현(Thunderbolt 기반)을 도시한다. 도 6의 장치는 Thunderbolt 라우터 칩(604)에 결합된 필드 프로그래머블 게이트 어레이(FPGA)(602)를 포함한다. FPGA는 시간 생성 논리(606) 및 오디오 제어기(608)에도 결합된다. 예시적인 동작 동안, 필드 프로그래머블 게이트 어레이(FPGA)(602)는 STLP 프로토콜을 이용하여, 로컬 카운터를 Thunderbolt 네트워크 시간에 동기화하며, 따라서 FPGA 내의 다른 논리에 대해 타이밍 서비스들을 제공한다. 이 Thunderbolt 주변 장치를 향하는 오디오 샘플들은 FPGA에 접속된 RAM(랜덤 액세스 메모리)에 PCIe를 통해 사전 결정된 시간 기한까지 기록될 것이다. 기한이 경과하면, Thunderbolt 오디오 제어기(608)는 RAM으로부터 샘플들을 판독하고, 디지털/아날로그 변환기를 구동하는 I2S 출력에 이들을 공급한다. I2S(Integrated Interchip SoundTM) 인터페이스 및 관련 변환기들을 동작시키기 위한 오디오 클럭들은 PCIe를 통해 수신된 Thunderbolt 시간 및 타임스탬프들에 기초하여 클럭들을 생성하는 위상 동기 루프(PLL:Phase Locked Loop)에 의해 생성된다.
유사하게, ADC에 접속된 I2S 인터페이스는 오디오 PLL에 의해 결정된 레이트로 실행되고, Thunderbolt 오디오 제어기에 의해 RAM에 기록되는 샘플들을 생성할 것이다. 규정된 시간에, 제어기는 PCIe 접속을 통해 구성된 목적지 어드레스에 샘플들을 기록할 것이다.
도 7은 Thunderbolt 기준 시간으로부터 동기화된 오디오 샘플 클럭들을 생성하기 위한 하나의 특정 솔루션을 도시한다. 도시된 바와 같이, 시간 스탬프들이 TMU(702)에서 수신되고, PCIe 물리 계층(PHY)(704) 및 클럭 생성 회로(706)에 배포된다. PCIe PHY는 데이터가 적절한 시간에 메모리 안팎으로 판독되는 것을 보증하기 위해 기준 시간에 의존한다. 클럭 생성 회로는 시스템 시간을 이용하여, 오디오 데이터로부터 FIFO 판독하고 오디오 신호들을 합성하는 데 사용되는 고정밀 클럭을 생성한다.
본 발명의 소정 양태들이 방법의 단계들의 특정 시퀀스와 관련하여 설명되지만, 이러한 설명들은 본 발명의 더 광범위한 방법들을 예시할 뿐이며, 특정 응용에 필요한 대로 변경될 수 있다는 것을 인식할 것이다. 소정 단계들은 소정 상황들에서 불필요하거나 옵션일 수 있다. 게다가, 소정 단계들 또는 기능이 개시된 실시예들에 추가될 수 있거나, 2개 이상의 단계의 수행 순서가 바뀔 수 있다. 모든 그러한 변경들은 본 명세서에서 개시되고 청구되는 본 발명 내에 포함되는 것으로 간주된다.
위의 상세한 설명은 다양한 실시예들에 적용되는 바와 같은 본 발명의 새로운 특징들을 도시하고, 설명하고, 지시하였지만, 예시된 디바이스 또는 프로세스의 형태 및 상세에 있어서 다양한 생략, 교체 및 변경이 본 발명으로부터 벗어나지 않고 이 분야의 기술자들에 의해 이루어질 수 있다는 것을 이해할 것이다. 위의 설명은 현재 본 발명의 실시에 있어서 고려되는 최상의 모드에 대한 것이다. 본 설명은 한정적인 것을 의도하지 않으며, 오히려 본 발명의 일반 원리들을 예시하는 것으로 간주되어야 한다. 본 발명의 범위는 청구항들을 참조하여 결정되어야 한다.
Claims (25)
- 네트워크 내에서 데이터 트래픽을 우선순위화하도록 구성된 장치로서,
하나 이상의 네트워크 인터페이스;
상기 하나 이상의 네트워크 인터페이스와 데이터 통신하는 프로세서; 및
저장된 적어도 하나의 컴퓨터 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 매체
를 포함하고,
상기 적어도 하나의 컴퓨터 프로그램은, 상기 프로세서 상에서 실행될 때, 상기 장치로 하여금,
상기 네트워크 내에서 하나 이상의 우선순위화된 클래스와 관련된 하나 이상의 피어 디바이스를 발견하고,
상기 발견에 응답하여, 상기 하나 이상의 우선순위화된 클래스에 대해 하나 이상의 트랜싯 자원(transit resources)을 할당하며 - 상기 할당된 하나 이상의 트랜싯 자원은 상기 하나 이상의 우선순위화된 클래스와 관련된 상기 하나 이상의 피어 디바이스 중 임의의 피어 디바이스로부터 직접 메모리 액세스(DMA: direct memory access) 물리 자원을 통해 상기 장치 내의 대응하는 전용 메모리 버퍼로 데이터를 라우팅하도록 구성됨 - ,
상기 대응하는 할당된 하나 이상의 트랜싯 자원을 통해 상기 하나 이상의 우선순위화된 클래스와 관련된 상기 하나 이상의 피어 디바이스로부터 데이터를 선택적으로 라우팅하게 하도록
구성되는 장치. - 제1항에 있어서,
상기 하나 이상의 네트워크 인터페이스는 Thunderbolt-준수(compliant) 네트워크 인터페이스를 포함하는 장치. - 제1항에 있어서,
상기 하나 이상의 네트워크 인터페이스는 PCIe(Peripheral Component Interconnect Express)-준수 네트워크 인터페이스를 포함하는 장치. - 제1항에 있어서,
상기 하나 이상의 네트워크 인터페이스는 DisplayPort-준수 네트워크 인터페이스를 포함하는 장치. - 삭제
- 삭제
- 네트워크 내에서 데이터 트래픽을 우선순위화하기 위한 방법으로서,
네트워크 프로토콜을 갖는 상기 네트워크 내에서 하나 이상의 우선순위화된 클래스와 관련된 하나 이상의 디바이스를 발견하는 단계;
상기 발견에 응답하여, 상기 하나 이상의 우선순위화된 클래스와 관련된 상기 하나 이상의 디바이스용으로 상기 네트워크 프로토콜과 상이한 트랜싯 프로토콜의 하나 이상의 트랜싯 자원을 예약하는 단계; 및
적어도 일정 기간 동안, 상기 대응하는 예약된 하나 이상의 트랜싯 자원을 통해 상기 하나 이상의 우선순위화된 클래스와 관련된 상기 하나 이상의 디바이스에 대해 관련된 데이터를 라우팅하는 단계
를 포함하며,
상기 데이터를 라우팅하는 단계는 상기 트랜싯 프로토콜 내에 상기 네트워크 프로토콜을 내장하는(embedding) 단계를 포함하고,
적어도 하나의 네트워크 프로토콜 파라미터는 상기 트랜싯 프로토콜의 트랜싯 파라미터에 적어도 부분적으로 기초하여 결정되는 방법. - 제7항에 있어서,
상기 하나 이상의 우선순위화된 클래스는 하나 이상의 멀티미디어 데이터 타입에 기초하는 방법. - 제8항에 있어서,
상기 하나 이상의 멀티미디어 데이터 타입은 오디오 데이터를 포함하는 방법. - 제7항에 있어서,
상기 하나 이상의 우선순위화된 클래스는 하나 이상의 디바이스 타입에 기초하는 방법. - 제10항에 있어서,
상기 하나 이상의 디바이스 타입은 오디오 디바이스들 및/또는 논-오디오(non-audio) 디바이스들을 포함하는 방법. - 제7항에 있어서,
상기 하나 이상의 트랜싯 자원은 직접 메모리 액세스(DMA) 물리 자원을 포함하는 방법. - 제12항에 있어서,
상기 DMA 물리 자원은 고유 호스트 인터페이스(NHI: Native Host Interface)를 통해 호스트 인터페이스에 결합되는 방법. - 제12항에 있어서,
상기 DMA 물리 자원은 사용자 전송 인터페이스(UTI: User Transport Interface)를 통해 주변 장치 인터페이스에 결합되는 방법. - 제7항에 있어서,
상기 하나 이상의 발견된 디바이스 각각은 공통 시간 기준을 공유하는 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 네트워크 내에서 디바이스들의 우선순위화된 클래스들을 구현하기 위한 방법으로서,
링 네트워크 내에서 하나 이상의 디바이스의 클래스 발견(class discovery)을 수행하는 단계 - 상기 링 네트워크 내의 상기 하나 이상의 디바이스의 각각은 오직 하나의 착신 경로(inbound path) 및 하나의 발신 경로(outbound path)에 의해 특징지어짐 - ;
상기 수행된 클래스 발견에 응답하여 상기 링 네트워크의 하나 이상의 트랜싯 자원을 구성하는 단계 - 상기 링 네트워크의 상기 구성된 하나 이상의 트랜싯 자원의 적어도 일부는 상기 수행된 클래스 발견에 의해 식별된 하나 이상의 발견된 클래스의 적어도 일부와 관련된 상기 하나 이상의 디바이스 중 임의의 디바이스에 대해 트래픽을 라우팅하도록 예약됨 - ; 및
상기 링 네트워크의 상기 구성된 하나 이상의 트랜싯 자원에 따라 상기 하나 이상의 디바이스로부터 트래픽을 라우팅하는 단계
를 포함하는 방법. - 제21항에 있어서,
상기 하나 이상의 발견된 클래스의 상기 적어도 일부를 우선순위화하는 단계를 더 포함하는 방법. - 제22항에 있어서,
상기 구성하는 단계는 상기 우선순위화하는 단계에 적어도 부분적으로 기초하는 방법. - 제22항에 있어서,
상기 우선순위화는 상기 하나 이상의 디바이스의 디바이스 타입에 기초하는 방법. - 제21항에 있어서,
상기 클래스 발견은 상기 하나 이상의 디바이스가 중앙 네트워크 엔티티에 등록하는 것에 적어도 부분적으로 의해 수행되는 방법.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161481641P | 2011-05-02 | 2011-05-02 | |
US61/481,641 | 2011-05-02 | ||
US13/462,603 | 2012-05-02 | ||
PCT/US2012/036192 WO2012151327A2 (en) | 2011-05-02 | 2012-05-02 | Methods and apparatus for transporting data through network tunnels |
US13/462,603 US9015384B2 (en) | 2011-05-02 | 2012-05-02 | Methods and apparatus for transporting data through network tunnels |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140018368A KR20140018368A (ko) | 2014-02-12 |
KR101576344B1 true KR101576344B1 (ko) | 2015-12-09 |
Family
ID=47091025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137031891A KR101576344B1 (ko) | 2011-05-02 | 2012-05-02 | 네트워크 터널을 통해 데이터를 전송하기 위한 방법 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9015384B2 (ko) |
EP (1) | EP2705634B1 (ko) |
JP (1) | JP5918849B2 (ko) |
KR (1) | KR101576344B1 (ko) |
CN (1) | CN103891223B (ko) |
AU (1) | AU2012250760B2 (ko) |
WO (1) | WO2012151327A2 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9117037B2 (en) * | 2011-11-21 | 2015-08-25 | Acer Incorporated | Interface apparatus, cascading system thereof and cascading method thereof |
MY169836A (en) * | 2011-12-06 | 2019-05-16 | Intel Corp | Techniques for serial interface charging |
US9697159B2 (en) * | 2011-12-27 | 2017-07-04 | Intel Corporation | Multi-protocol I/O interconnect time synchronization |
US9252970B2 (en) * | 2011-12-27 | 2016-02-02 | Intel Corporation | Multi-protocol I/O interconnect architecture |
US9565132B2 (en) | 2011-12-27 | 2017-02-07 | Intel Corporation | Multi-protocol I/O interconnect including a switching fabric |
TW201405315A (zh) * | 2012-07-30 | 2014-02-01 | Acer Inc | 支援雙主控裝置的資料路由系統 |
TWI465919B (zh) * | 2012-11-14 | 2014-12-21 | Acer Inc | 採用雷霆介面之電子裝置、其連接方法及底座設備 |
CN103853511B (zh) * | 2012-12-04 | 2017-02-15 | 宏碁股份有限公司 | 采用霹雳接口的电子装置、其连接方法及底座设备 |
US10003642B2 (en) * | 2013-06-28 | 2018-06-19 | Apple Inc. | Operating a cluster of peer-to-peer devices |
US9558129B2 (en) * | 2014-06-10 | 2017-01-31 | Xilinx, Inc. | Circuits for and methods of enabling the access to data |
US9672183B2 (en) * | 2014-12-01 | 2017-06-06 | Western Digital Technologies, Inc. | Integration of downstream ports in a multiple interface device |
TWM516186U (zh) * | 2015-08-10 | 2016-01-21 | 宏正自動科技股份有限公司 | 雷電分享控制裝置 |
US10170304B1 (en) | 2017-10-25 | 2019-01-01 | Globalfoundries Inc. | Self-aligned nanotube structures |
US11132319B2 (en) * | 2018-01-12 | 2021-09-28 | Intel Corporation | Timer control for peripheral component interconnect express components implemented with thunderbolt controllers |
US10795400B2 (en) | 2018-04-30 | 2020-10-06 | Qualcomm Incorporated | Time synchronization for clocks separated by a communication link |
US11259058B2 (en) * | 2019-03-25 | 2022-02-22 | Apple Inc. | Use of rendered media to assess delays in media distribution systems |
US20200192832A1 (en) * | 2020-02-21 | 2020-06-18 | Intel Corporation | Influencing processor governance based on serial bus converged io connection management |
US11831943B2 (en) * | 2021-10-26 | 2023-11-28 | Apple Inc. | Synchronized playback of media content |
US11785285B1 (en) * | 2022-05-20 | 2023-10-10 | Lenbrook Industries Limited | Audio video receiver (AVR) architecture |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07327032A (ja) * | 1994-05-31 | 1995-12-12 | Matsushita Electric Ind Co Ltd | 送信装置と受信装置 |
JP3203978B2 (ja) | 1994-07-25 | 2001-09-04 | ソニー株式会社 | データ送受信装置、データ受信装置及びデータ送信装置 |
JP3546799B2 (ja) * | 1994-07-25 | 2004-07-28 | ソニー株式会社 | データ送受信装置 |
JP2000196607A (ja) * | 1998-12-24 | 2000-07-14 | Canon Inc | 情報処理システム及びその制御方法並びに情報処理装置 |
KR100943742B1 (ko) * | 2003-06-03 | 2010-02-23 | 삼성전자주식회사 | Usb 트랜잭션을 무선 pan 상에서 전송하는 장치 및방법 |
JP4878185B2 (ja) * | 2006-03-17 | 2012-02-15 | 株式会社リコー | データ通信回路および調停方法 |
US7859998B2 (en) * | 2007-06-18 | 2010-12-28 | Sharp Laboratories Of America, Inc. | System and method for managing pre-emption of quality of service (QoS) allocations in a network |
US7936772B2 (en) * | 2007-07-13 | 2011-05-03 | International Business Machines Corporation | Enhancement of end-to-end network QoS |
JP2009272912A (ja) * | 2008-05-08 | 2009-11-19 | Fujitsu Ltd | Ipデータ処理装置 |
ES2355227B1 (es) | 2009-02-23 | 2012-02-10 | Vodafone España, S.A.U. | Método para proporcionar control automático de acceso a celdas, para usuarios móviles de alta prioridad en situaciones de sobrecarga y emergencia. |
-
2012
- 2012-05-02 CN CN201280021418.XA patent/CN103891223B/zh active Active
- 2012-05-02 EP EP12729759.6A patent/EP2705634B1/en active Active
- 2012-05-02 WO PCT/US2012/036192 patent/WO2012151327A2/en active Application Filing
- 2012-05-02 KR KR1020137031891A patent/KR101576344B1/ko active IP Right Grant
- 2012-05-02 JP JP2014509418A patent/JP5918849B2/ja active Active
- 2012-05-02 AU AU2012250760A patent/AU2012250760B2/en active Active
- 2012-05-02 US US13/462,603 patent/US9015384B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2705634B1 (en) | 2019-10-16 |
WO2012151327A2 (en) | 2012-11-08 |
US9015384B2 (en) | 2015-04-21 |
WO2012151327A3 (en) | 2013-03-21 |
AU2012250760A1 (en) | 2013-10-31 |
JP5918849B2 (ja) | 2016-05-18 |
KR20140018368A (ko) | 2014-02-12 |
AU2012250760B2 (en) | 2015-11-05 |
US20120284434A1 (en) | 2012-11-08 |
CN103891223A (zh) | 2014-06-25 |
CN103891223B (zh) | 2016-10-12 |
JP2014517588A (ja) | 2014-07-17 |
EP2705634A2 (en) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101576344B1 (ko) | 네트워크 터널을 통해 데이터를 전송하기 위한 방법 및 장치 | |
US8718065B2 (en) | Transmission using multiple physical interface | |
US11695708B2 (en) | Deterministic real time multi protocol heterogeneous packet based transport | |
CN101937253B (zh) | 用于时钟同步的方法、装置和系统 | |
TWI526024B (zh) | 在一網路內用於等時資料遞送之方法及裝置 | |
BR112020007273A2 (pt) | método e aparelho para enviar e receber pacote de sincronização de relógio | |
WO2014173267A1 (zh) | 时间戳生成方法、装置及系统 | |
US11792446B2 (en) | Methods and apparatus to reduce audio streaming latency between audio and gigabit ethernet subsystems | |
US20040030712A1 (en) | Efficient routing of packet data in a scalable processing resource | |
CN114185829A (zh) | 用于多种通信业务的共享的资源 | |
JP2008510338A (ja) | パケット交換制御用の集積回路及び方法 | |
TWI717373B (zh) | 用於通用序列匯流排2.0頻寬保留之方法及系統 | |
US20210409510A1 (en) | Transmitter and Receiver, Serializer and Deserializer and Methods for Transmitting and Receiving, Serializing and Deserializing | |
JP2009524952A (ja) | 時間制御型のセキュアな通信 | |
CN108304333A (zh) | 一种一主多从式总线 | |
US10459864B2 (en) | USB isochronous transfer over a non-USB network | |
JP2014516449A (ja) | ポートのない汎用デバイス(ソフトウェアにより管理される汎用デバイス) | |
US9240896B2 (en) | Method and system for USB connections over distinct network paths | |
US20230388251A1 (en) | Tightly-Coupled, Loosely Connected Heterogeneous Packet Based Transport | |
JP4686740B2 (ja) | 電子装置、フレーム同期の方法、および移動体装置 | |
US8555104B2 (en) | Frequency adapter utilized in high-speed internal buses | |
US20040017813A1 (en) | Transmitting data from a plurality of virtual channels via a multiple processor device | |
US11625353B1 (en) | Prioritized parallel to serial interface | |
US20120117277A1 (en) | Method and system for USB addressing by a network adaptor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20191029 Year of fee payment: 5 |