KR20180030985A - Usb 2.0 대역폭 예약을 위한 방법 및 시스템 - Google Patents

Usb 2.0 대역폭 예약을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20180030985A
KR20180030985A KR1020187001689A KR20187001689A KR20180030985A KR 20180030985 A KR20180030985 A KR 20180030985A KR 1020187001689 A KR1020187001689 A KR 1020187001689A KR 20187001689 A KR20187001689 A KR 20187001689A KR 20180030985 A KR20180030985 A KR 20180030985A
Authority
KR
South Korea
Prior art keywords
usb
low
bandwidth
endpoints
usb hub
Prior art date
Application number
KR1020187001689A
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 KR20180030985A publication Critical patent/KR20180030985A/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • H04L67/322
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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/0042Universal serial bus [USB]

Abstract

USB 허브에 대역폭을 예약하기 위한 시스템들과 방법들이 개시된다. 상기 시스템들과 방법들은, 적어도 하나의 다운스트림 엔드포인트로부터 버퍼 내의 데이터를 수신하는 것, 상기 버퍼의 현재 용량을 식별하는 것, 상기 버퍼의 상기 현재 용량을 버퍼 임계값과 비교하는 것, 적어도 상기 비교에 근거하여 출력값을 발생시키는 것, 적어도 상기 출력값에 근거하여, 적어도 하나의 저-처리량 엔드포인트를 동적으로 스로틀하는 것, 및 상기 적어도 하나의 저-처리량 엔드포인트들의 스로틀로부터 이용가능한 USB 디바이스에 대역폭을 제공함으로써, 미리결정된 대역폭 요구사항을 갖는 상기 USB 디바이스에 미리정의된 대역폭을 할당하는 것을 포함할 수 있다.

Description

USB 2.0 대역폭 예약을 위한 방법 및 시스템
본 출원은, 2015년 7월 22일에 동일 출원인에 의해 출원된 미국 가출원 제62/195,557호의 우선이익을 주장하며, 상기 가출원은 모든 목적을 위해 본 출원에 참조함으로써 통합된다.
본 개시는 범용 직렬 버스 기술에 관한 것으로, 특히 범용 직렬 버스("USB")버전 2.0 하에서의 대역폭 예약에 관한 것이다.
특정의 자동차(automotive) USB 통신 요구사항에서는, 대역폭을 예약하거나 우선순위지정(prioritize)하는 것이 필요하다. USB 허브는 USB 프로토콜 계층에서의 통과(pass-through) 매체이기 때문에, HUB 포트들 중 하나에 연결된 특정 디바이스에 대해서 대역폭 예약 또는 우선순위지정을 수행할 수 없다.
예를 들면, 특정 모바일 플레이어들이나 휴대전화들 등과 같은 일부 USB 디바이스들은, 독점 사양(proprietary specification)을 구동한다. 이 독점 사양은 모바일 플레이어를 USB 호스트 모드로 작동시키고, 플레이어 각각은 USB 대역폭을 완전히 제어한다. 하지만, 자동차 OEM(Original Equipment Manufacturer)은 호스트 모드를 포기하고 싶어하지 않으며, 특정 USB 허브들(예를 들어, 본 출원인에 의해 제조된 USB 허브들)은 호스트 브리징(host bridging)을 제공함으로써 이 문제를 해결한다. 이 모드에서, 미디어 플레이어는 다른 USB 디바이스들과 대역폭을 공유해야 한다. USB 벌크 전송 유형은 대역폭 예약을 제공하지 않는다.
전자 기기들을 자동차 애플리케이션들에 통합하는 것이 증가함에 따라, 관련된 전자 기기들의 요구들을 수용할 수 있는 자동차 애플리케이션들의 성능이 점점 더 요구되고 있다.
USB 허브에서 대역폭을 예약하기 위한 시스템들과 방법들이 개시된다. 상기 시스템들과 방법들은, 적어도 하나의 다운스트림 엔드포인트로부터 버퍼 내의 데이터를 수신하는 것, 상기 버퍼의 현재 용량을 식별하는 것, 상기 버퍼의 상기 현재 용량을 버퍼 임계값과 비교하는 것, 적어도 상기 비교에 근거하여 출력값을 발생시키는 것, 적어도 상기 출력값에 근거하여 적어도 하나의 저-처리량 엔드포인트를 동적으로 스로틀하는 것, 및 상기 적어도 하나의 저-처리량 엔드포인트들의 스로틀로부터 이용가능한 USB 디바이스에 대역폭을 제공함으로써, 미리결정된 대역폭 요구사항을 갖는 USB 디바이스에 미리정의된 대역폭을 할당하는 것을 포함할 수 있다.
다양한 실시예들에서, 시스템들과 방법들은, USB 허브를 포함할 수 있다. USB 허브는, 적어도 하나의 업스트림 포트와 복수의 다운스트림 포트들을 포함할 수 있고, 상기 다운스트림 포트는 USB 호스트로서 동작할 수 있는 USB 디바이스에 연결될 수 있고, 상기 USB 디바이스는 미리결정된 대역폭 요구사항을 갖고, 그리고 상기 USB 허브는 저-처리량(low throughput) 엔드포인트들의 적응적인 스로틀링에 의해 미리정의된 대역폭을 상기 USB 디바이스에 할당하도록 구성된다.
일부 실시예들에서, 상기 USB 허브는, 라운드 로빈 방식으로 모든 활성 벌크 엔드포인트들에 대해(for) 요금 공유 대역폭(fare share bandwidth)을 할당하는 USB 호스트 스케줄러를 포함할 수 있다. 이러한 실시예들에서, 느린 엔드포인트들은 지연된 스케줄에 푸시된다. 일부 실시예들에서, 상기 USB 허브는, 적어도 하나의 마이크로프레임 동안 각각의 상기 저-처리량 엔드포인트들을 위해(for) NAK 신호를 발생시킴으로써 상기 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다. 이러한 실시예들에서, 상기 USB 허브는, 상기 저-처리량 엔드포인트들로부터 복구된 상기 적어도 하나의 마이크로프레임의 잔여분(remainder)을 할당함으로써, 상기 미리정의된 대역폭을 상기 USB 디바이스에 할당하도록 구성될 수 있다. 또한 이러한 실시예들에서, 상기 USB 허브는, 적어도 하나의 패킷을 상기 저-처리량 엔드포인트들로부터 배출(drain)하고 NAK 신호를 사용하여(with) 응답함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다.
일부 실시예들에서, 상기 미리정의된 대역폭은 적어도 100 mbps이다. 일부 실시예들에서, 상기 USB 허브는, 리피터 경로 지연(repeater path delay)을 다운스트림 포트들에 추가함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다. 일부 실시예들에서, 상기 USB 허브는 패킷 파스 시간(packet parse time)을 보상함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다. 일부 실시예들에서, 상기 USB 허브는, 표준 허브 동작 모드와 트래픽 형태화(traffic shaping) 모드 사이를 선택할 수 있는 모드 선택 모듈을 더 포함할 수 있다.
다양한 실시예들에서, 상기 시스템들과 방법들은 또한 환경설정 레지스터를 포함하는 USB 허브를 포함할 수 있다. 상기 환경설정 레지스터는, 호스트 모드로 동작하는 적어도 하나의 다운스트림 엔드포인트로부터 버퍼 내의 데이터를 수신하는 적어도 하나의 다운스트림 엔드포인트로부터 데이터를 수신하고 상기 데이터를 적어도 하나의 업스트림 엔드포인트와 통신하는 버퍼와, 상기 버퍼에 통신가능하게 결합되어 상기 버퍼의 현재 용량을 식별할 수 있는 회로망을 포함할 수 있다. 상기 비교기는 상기 버퍼의 상기 현재 용량을 버퍼 임계값과 비교하고, 적어도 하나의 저-처리량 엔드포인트에 스로틀을 제공할 수 있는 스로틀 모듈에 통신가능하게 결합된 신호를 출력할 수 있다. 상기 USB 허브는, 적어도 하나의 저-처리량 엔드포인트들의 상기 스로틀로부터 이용가능한 USB 디바이스에 대역폭을 제공함으로써, 미리결정된 대역폭 요구사항을 갖는 상기 USB 디바이스에 미리정의된 대역폭을 할당하도록 구성될 수 있다.
일부 실시예들에서, 상기 USB 허브는, 라운드 로빈 방식으로 모든 활성 벌크 엔드포인트들에 대해(for) 요금 공유 대역폭(fare share bandwidth)을 할당하는 USB 호스트 스케줄러를 포함할 수 있다. 이러한 실시예들에서, 느린 엔드포인트들은 지연된 스케줄에 푸시된다. 일부 실시예들에서, 상기 USB 허브는, 적어도 하나의 마이크로프레임 동안 각각의 상기 저-처리량 엔드포인트들을 위해(for) NAK 신호를 발생시킴으로써 상기 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다. 이러한 실시예들에서, 상기 USB 허브는, 상기 저-처리량 엔드포인트들로부터 복구된 상기 적어도 하나의 마이크로프레임의 잔여분(remainder)을 할당함으로써, 상기 미리정의된 대역폭을 상기 USB 디바이스에 할당하도록 구성될 수 있다. 또한 이러한 실시예들에서, 상기 USB 허브는, 적어도 하나의 패킷을 상기 저-처리량 엔드포인트들로부터 배출(drain)하고 NAK 신호를 사용하여(with) 응답함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다.
일부 실시예들에서, 상기 미리정의된 대역폭은 적어도 100 mbps이다. 일부 실시예들에서, 상기 USB 허브는, 리피터 경로 지연(repeater path delay)을 다운스트림 포트들에 추가함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다. 일부 실시예들에서, 상기 USB 허브는 패킷 파스 시간(packet parse time)을 보상함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성될 수 있다. 일부 실시예들에서, 상기 USB 허브는, 표준 허브 동작 모드와 트래픽 형태화(traffic shaping) 모드 사이를 선택할 수 있는 모드 선택 모듈을 더 포함할 수 있다.
다양한 실시예들에서, USB 허브에서 대역폭을 예약하기 위한 방법이 또한 개시된다. 상기 방법은, 호스트 모드로 동작하는 적어도 하나의 다운스트림 엔드포인트로부터 버퍼 내의 데이터를 수신하는 것, 상기 버퍼의 현재 용량을 식별하는 것, 상기 버퍼의 상기 현재 용량을 버퍼 임계값과 비교하는 것, 적어도 상기 비교에 근거하여 출력값을 발생시키는 것, 적어도 상기 출력값에 근거하여, 적어도 하나의 저-처리량 엔드포인트를 동적으로 스로틀하는 것, 및 상기 적어도 하나의 저-처리량 엔드포인트들의 스로틀로부터 이용가능한 USB 디바이스에 대역폭을 제공함으로써, 미리결정된 대역폭 요구사항을 갖는 상기 USB 디바이스에 미리정의된 대역폭을 할당하는 것을 포함할 수 있다.
도 1은 본 개시의 특정 실시예들에 따른, 대역폭 예약을 위한 예시의 USB 허브 토폴로지의 블록도를 도시한다.
도 2는 본 개시의 특정 실시예들에 따른, 복수의 엔드포인트들 사이에서 고속 USB 대역폭을 공유하기 위한 예시의 공지된 USB 마이크로프레임을 도시한다.
도 3은 본 개시의 특정 실시예들에 따른, 복수의 엔드포인트들 사이에서 고속 USB 대역폭을 공유하기 위한 예시의 USB 마이크로프레임을 도시한다.
도 4는 본 개시의 특정 실시예들에 따른, USB 대역폭 예약을 위한 동적 스로틀링(throttling)을 결정하기 위한 예시의 시스템 및 방법을 도시한다.
도 5는 본 개시의 특정 실시예들에 따른, 대역폭 예약을 위한 동적 스로틀링을 구현하는 예시의 USB 허브의 예시의 블록도를 도시한다.
전자 기기들을 자동차 애플리케이션들에 통합하는 것이 증가함에 따라, 관련된 전자 기기들의 요구들을 수용할 수 있는 자동차 애플리케이션들의 성능이 점점 더 요구되고 있다. 하지만, 특정 자동차 애플리케이션들에서는, 이러한 수용을 위한 유연성이 충분하지 않다. 예를 들면, 특정 자동차 USB 통신 요구사항에서, 대역폭을 예약하거나 우선순위지정할 필요가 있다. 하지만, 기존의 USB 허브는 USB 프로토콜 계층에서의 통과 매체이기 때문에, 대역폭 예약 또는 우선순위지정은 이러한 기존의 HUB 포트들 중 하나에 연결된 특정 디바이스에서는 수행될 수 없다.
예를 들어, 만일 미디어 플레이어가 적절한 작동을 위해 일정량의 대역폭을 요구하는 경우, 이는 자동차 환경(context)에서 문제가 될 수 있다. 예를 들어, 오메가 컴퓨터(Omega Computer)에 의해 제공되는 특정 USB 허브들은 적절한 작동을 위해 100 mbps의 대역폭이 필요하다. 따라서, 대역폭 요구사항을 충족시킬 수 있도록 자동차 USB 호스트에서 USB 대역폭을 예약하기 위한 메커니즘이 필요하다. 어떤 트래픽이 포워드될지 또는 스로틀(throttle)될지를 결정하기 위해, 허브는 들어오는 패킷들을 검사해야 한다. 기존 허브들에서는, 패킷이 디코드되고 파스(parse)될 때까지, 결정하는 것이 이미 너무 늦다.
본 개시의 다양한 실시예들에 따르면, USB 호스트에 의해 HUB 노드에 할당된 대역폭을 재분배(redistribute)하는 시스템들 및 방법들이 제공된다. 본 개시의 다양한 실시예들에 따르면, USB 호스트 스케줄러는 모든 활성 벌크 엔드포인트들에 대해 라운드 로빈 요금 공유(round robin fare share) 대역폭 할당을 구현한다. 호스트 스케줄러는 저처리량(low throughput) 엔드포인트들의 적응적인 스로틀링을 구현한다. 저속 엔드포인트들은 지연된 스케줄에 푸시된다. 허브는 대역폭을 필요로하지 않는 USB 포트들의 적응적인 스로틀링을 구현할 수 있다. 트래픽 형태화(traffic shaping) 알고리즘은 전용 대역폭을 필요로하는 디바이스의 트래픽을 우선순위지정하기 위해 호스트 스케줄을 수정할 수 있다. 또한, 리피터(repeater) 트래픽은, 허브가 전달 또는 스로틀을 결정하는 동안, 지연될 수 있다.
도 1은 본 개시의 특정 실시예들에 따른, 대역폭 예약을 위한 예시의 USB 허브 토폴로지(100)의 블록도를 도시한다. 일부 실시예들에서, 토폴로지(100)는 제1 USB 허브(104)에 통신가능하게 결합된 USB 호스트(102)를 포함할 수 있고, 제1 USB 허브(104)는 차례로 제2 USB 허브(106)에 통신가능하게 결합될 수 있다. USB 2.0 사양의 현재 버전 하에서, 송신에 대한 응답을 기대하는 고속 호스트 또는 디바이스는, 816 비트 타임들(times)(대략 1.5㎲) 이내에 신호가 보이지 않으면 트랜잭션을 타임아웃해야 한다. 특정의 공지된 USB 허브들에서는, 이것은 호스트 타임아웃을 초과하는 지연을 생성하기 전에, 직렬로 연결될 많아야 5개의 허브들을 허용할 수 있을 뿐이다. 하지만, 도 2 내지 도 5를 참조하여 이하에서 더욱 상세하게 설명되는 바와 같이, 본 명세서에 설명된 대역폭 예약을 위한 시스템들 및 방법들은 3 내지 4개의 정상 USB 허브들의 타이밍 간격(timing space)을 소비할 수 있다. 하지만, 그것은 허용가능한 작동으로써 두 계층들(tiers)을 지원하기 위한 충분한 타이밍 유연성을 유지한다.
따라서, 예시의 토폴로지(100)는, 통신가능하게 서로 결합된 제1 USB 허브와 제2 USB 허브(106)를 도시한다. 각 USB 허브는, 차례로, 자체에 통신가능하게 결합된 하나 이상의 USB 디바이스들을 가진다. 예를 들어, 제1 USB 허브(104)는 제1 USB 허브(104)의 포트들에 통신가능하게 결합된 제1 USB 디바이스(108)와 제2 USB 디바이스(110)를 가질 수 있다. 제2 USB 허브(106)는 마찬가지로 제2 USB 허브(106)의 포트에 통신가능하게 결합된 제3 USB 허브(112)를 가질 수 있다. 일부 실시예들에서, USB 디바이스들(108, 110, 112)은 USB 2.0 (또는 호환성의) 직렬 통신 프로토콜을 통해 USB 허브와 통신하도록 작동가능한 임의의 적절한 전자 디바이스일 수 있다. 예를 들어, USB 디바이스(108, 110, 112)는 태블릿 컴퓨터, 스마트폰, 메모리 카드, GPS 디바이스 등일 수 있다. 이해를 돕기 위해 비록 특정 개수의 USB 허브들(104, 106)과 USB 디바이스들(108, 110, 112)이 도 1에 도시되었지만, 본 기술분야의 통상의 기술자는 더 많은, 더 적은 및/또는 또다른 USB 허브들 및/또는 디바이스들이 본 개시의 범위를 벗어나지 않으면서 어떤 주어진 구성 내에도 존재할 수 있음을 주목할 것이다.
도 2는 본 개시의 특정 실시예들에 따른, 복수의 엔드포인트들 사이에서 고속 USB 대역폭을 공유하기 위한 예시의 공지된 USB 마이크로프레임(200)을 도시한다. 본 개시의 목적을 위해, "엔드포인트"는 고속 USB 대역폭의 일부분을 필요로하는 임의의 전자 디바이스(또는 이들의 서브세트 또는 조합)를 지칭할 수 있다. 엔드포인트는 일반적으로 하나 이상의 USB 디바이스들(108, 110, 112) 또는 그의 일부분에 해당할 수 있다.
일부 실시예들에서, 마이크로프레임(200)은 복수의 트랜잭션 할당들(202-220)을 포함할 수 있다. 일부 실시예들에서, "트랜잭션"은, 명령, 데이터, 그리고 USB 송신 패킷에 대한 응답 단계(phase) 및 관련된 타이밍을 포함할 수 있다. 일부 실시예들에서, 각 트랜잭션 할당(202-220)을 위한 마이크로프레임(200) 내의 대역폭의 양은 대략 5,000 USB 비트 타임들(대략 10㎲)일 수 있다. 일부 실시예들에서, 마이크로프레임(200)은 대략 10개의 이러한 패킷 트랜잭션 할당들(202-220)을 포함할 수 있지만, 본 개시의 범위를 벗어나지 않고 임의의 주어진 구성 내에 더 많거나 더 적은 패킷 트랜잭션 할당들(202-220)이 존재할 수 있다.
일부 실시예들에서, 특정 엔드포인트와 관련된 트랜잭션 할당들(202-220)의 개수는 임의의 주어진 시간에서 버스의 사용을 요청하는 엔드포인트들의 개수에 의존한다. 예를 들어, 도 2의 예시의 마이크로프레임(200)에서는, 4개의 서로 다른 엔드포인트들(예를 들어, "EP1", "EP2", "EP3" 및 "EP4"로 표시됨)이 액세스를 요청하고 있지만, 더 많은, 더 적은 및/또는 또다른 엔드포인트들이 본 개시의 범위를 벗어나지 않고 임의의 주어진 구성 내에 존재할 수 있다. 도 2의 예시의 마이크로프레임(200)에서, 특정 엔드포인트(및 따라서 엔드포인트의 관련된 USB 디바이스)와 관련된 대역폭의 양은, 액세스를 요청하는 엔드포인트들의 개수와 요청의 초기 순서(initial order)에 전적으로 의존하는데, 요청들이 전형적으로 라운드-로빈 방식으로 제공되기 때문이다. 따라서, 예를 들면, EP1은 마이크로프레임(200)의 3개의 트랜잭션들(예를 들어, 트랜잭션 할당들(202, 210 및 218))에 할당된다.
일부 실시예들에서, 각 트랜잭션은 하나 이상의 신호들을 USB 허브로 보내는 것을 포함할 수 있다. 이 신호들은 예시의 마이크로프레임(200) 내의 (222)에서 표시된다. 이 신호들은 패킷 식별자("PID"), 어드레스 식별자("ADDR"), 데이터("DATA"), 순환 중복 검사들("CRC"; cyclic redundancy check) 등을 포함할 수 있다. .
도 3은 본 개시의 특정 실시예에 따른, 복수의 엔드포인트들 사이에서 고속 USB 대역폭을 공유하기 위한 예시의 USB 마이크로프레임(300)을 도시한다. 본 개시의 목적을 위해, "엔드포인트"는 고속 USB 대역폭의 일부분을 요청하는 임의의 전자 디바이스(또는 이들의 서브세트 또는 조합)를 지칭할 수 있다. 엔드포인트는 일반적으로 하나 이상의 USB 디바이스들(108, 110, 112) 또는 이들의 일부분에 해당할 수 있다.
일부 실시예들에서, 마이크로프레임(300)은 복수의 트랜잭션 할당들(302-320, 324-328)을 포함할 수 있다. 일부 실시예들에서, "트랜잭션"은 명령, 데이터, 그리고 USB 송신 패킷에 대한 응답 단계들과 관련된 타이밍을 포함할 수 있다. 일부 실시예들에서, 각 트랜잭션 할당(302-320, 324-328)에 대한 마이크로프레임(300) 내의 대역폭의 양은, 관련된 트랜잭션이 스로틀되었는지에 의존하여 변경될 수 있는데, 도 4 내지 도 5를 참조하여 이하에서 더욱 상세히 설명된다.
도 3의 예시의 마이크로프레임(300)에서, "EP1"로 표시된 엔드포인트와 관련된 USB 디바이스는 전용 대역폭을 요청하는 것으로 식별되었다. 일부 실시예들에서, 특정 USB 디바이스는 전용 대역폭을 요청할 수 있다. 동일한 또는 대안의 실시예들에서, USB 허브는 특정 USB 장치로부터의 임의의 요청을 전용 대역폭에 상당하는 것으로 자동으로 관련시킬 수 있다. 예를 들어, 상술한 바와 같이, 특정 USB 디바이스들은 디바이스가 USB 허브를 통해 전송할 때마다 일정량의 전용 대역폭(예를 들어, 100 mbps)을 필요로할 수 있다. 따라서, 이 USB 디바이스를 수용하기 위한 노력으로서, 허브는 특정 USB 디바이스로부터의 요청 이외의 모든 요청들을 동적으로 및 적응적으로 스로틀할 수 있다.
다시, 도 3을 보면, 도 2를 참조하여 상술한 바와 같이, EP1(예를 들어, 트랜잭션 할당들(302, 310, 318))과 전형적으로 관련될 수 있는 트랜잭션 할당들에, 전체 비트 시간 할당(예를 들어, 5,000 USB 비트 타임들)이 주어진다. 다른 엔드포인트들과 관련된 다른 트랜잭션 할당들(예를 들어, 트랜잭션 할당들(304, 306, 308, 312, 314, 316))은, 훨씬-감소된 비트 타임(time) 할당으로 스로틀된다. 일부 실시예들에서, 허브는 "NAK" 핸드셰이크(handshake) 패킷을 제공함으로써 이러한 스로틀링을 수행할 수 있다. 이 패킷은 일반적으로 특정 기능이 데이터를 송신 또는 수신할 수 없음을 표시하기 위해 사용된다. 하지만, 에러 상태에서 이 패킷을 생성하기보다는, 다양한 실시예들은 관련된 엔드포인트가 대신 스로틀되어야 할 때 자동으로 그 패킷을 생성할 수 있다. 어느 패킷들을 스로틀할지에 대한 결정은, 도 4 내지 도 5를 참조하여 아래에서 더 상세히 설명된다.
일부 실시예들에서, NAK 패킷 트랜잭션은 훨씬-감소된 비트 타임 할당으로 완료될 수 있다. 예를 들어, 트랜잭션은 대략 783 비트 타임들로 완료될 수 있다. 이러한 감소된 트랜잭션 할당들을 다른 엔드포인트들에 제공함으로써, 지정된 고속 엔드포인트는 더 많은 이용가능한 대역폭을 축적(accumulate)할 수 있다. 예를 들어, 다른 트랜잭션 할당들의 크기를 감소시킴으로써, EP1은 추가 트랜잭션들(예를 들어, 트랜잭션 할당들(320, 324, 326, 328))을 유발(instigate)할 수 있다. 따라서, 예시의 마이크로프레임(300) 내에서, EP1은 그래서 3개보다는 7개의 트랜잭션 할당들(예를 들어, 트랜잭션 할당들(302, 310, 318, 320, 324, 326, 328))과 관련되었을 수 있다. USB 2.0(또는 호환성) 표준하의 최대값은 마이크로프레임 당 6 내지 8개의 트랜잭션들일 수 있다. 이것은 대략 200 내지 256 mbps의 범위를 제공할 것이다. 이것은 100 mbps를 필요로하는 상술한 예시를 위해 충분한 양의 전용 대역폭을 제공한다.
일부 실시예들에서, 각 트랜잭션은 USB 허브에 하나 이상의 신호들을 보내는 것을 포함할 수 있다. 이 신호들은 예시의 마이크로프레임(300)내의 (322)에서 표시된다. 이 신호들은, 패킷 식별자("PID"), 어드레스 식별자("ADDR"), 데이터("DATA"), 순환 중복 검사들("CRC"), NAK 등을 포함할 수 있다.
도 4는 본 개시의 특정 실시예에 따른, USB 대역폭 예약을 위해 동적 스로틀링을 결정하기 위한 예시의 시스템(400) 및 방법을 도시한다. 일부 실시예들에서, 시스템(400)은 래치(404)에 통신가능하게 결합된 버퍼(402)를 포함할 수 있으며, 래치(404)는 또한 비교기(406)에 통신가능하게 결합될 수 있다. 일부 실시예들에서, 버퍼(402)는 USB 허브의 데이터 버퍼와 관련될 수 있다. 도 4에 도시된 바와 같이, 엔드포인트는, 데이터 기록 프로세스를 수행하여 버퍼를 채울 수 있고 데이터 판독 프로세스를 수행하여 버퍼를 비울 수 있다. 일부 실시예들에서, 엔드포인트에 의한 모든 기록 트랜잭션은 버퍼를 하나의 최대 전송 유닛("MTU")만큼씩(by) 채운다. USB 2.0 사양에 있어서, MTU는 512 바이트들이다. 마찬가지로, 엔드포인트에 의한 모든 판독 트랜잭션은 하나의 MTU만큼씩(by) 버퍼를 비운다.
일부 실시예들에서, 버퍼(402)는 버퍼의 데이터 용량의 현재 정도(current degree of data capacity)("버퍼 레벨")와 관련된 신호를 발생시키도록 동작할 수 있다. 예를 들어, 버퍼(402)는 가득찬 버퍼의 퍼센티지, 버퍼 내에 있는 데이터의 양 등을 표시하는 이진값을 포함하는 신호를 발생시키도록 동작할 수 있다. 이 신호는 래치(404)의 입력부로 전달될 수 있다. 일부 실시예들에서, 버퍼 레벨은 주기적으로 샘플링될 수 있다. 예를 들어, 버퍼 레벨은 허브에 대한 액세스를 요청하는 모든 엔드포인트에 대한(for) 프레임의 시작("SOF")에서 샘플링될 수 있다. 일부 실시예들에서, 샘플링 지점은 래치(404)에 통신가능하게 결합된 신호(408)와 관련될 수 있으며, 따라서, 샘플링된 값을 래치(404)의 출력부에 제공할 수 있다.
일부 실시예들에서, 래치(404)의 출력부는 비교기(406)의 입력부에 통신가능하게 결합될 수 있다. 일부 실시예들에서, 비교기(406)의 제2 입력은 버퍼 임계값(410)과 관련된 신호일 수 있다. 일부 실시예들에서, 버퍼 임계값(410)은, 허브를 통해 특정 패킷들의 스로틀링을 트리거하는 프로그램가능한 및/또는 조정가능한 임계값일 수 있다. 예를 들어, 버퍼 임계값(410)은 가득찬 버퍼의 퍼센티지에 대한 임계값, 버퍼 내에 있는 데이터의 양에 대한 임계값 등을 표시하는 이진값을 포함하는 신호일 수 있다. 예를 들어, 버퍼 임계값은 버퍼의 용량의 25%의 프로그램된 값과 관련된 신호일 수 있다.
일부 실시예들에서, 비교기(406)는 샘플링된 버퍼 레벨의 출력과 버퍼 임계값(410)을 비교한다. 이 비교의 제1 결과에서 비교기(406)는 제1 상태를 출력하고, 제2 결과에서 제2 상태를 출력한다. 예를 들어, 현재 샘플링된 버퍼 레벨이 버퍼 임계값(410)보다 높으면 비교기(406)의 출력은 로직 하이일 수 있고, 반면에 현재 샘플링된 버퍼 레벨이 버퍼 임계값(410)보다 낮으면 비교기(406)의 출력은 로직 로우일 수 있다. 일부 실시예들에서, 비교기(406)의 출력부는, 식별된 USB 허브들을 위해(for) "NAK" 신호가 어서트되어야 함을 표시하는 허브의 다른 회로망에, 통신가능하게 결합될 수 있다. 이 식별된 USB 허브들은 미리 식별될 수도 있다(예를 들어, "전용 대역폭을 필요로하는 특정 USB 디바이스가 아닌, 모든 USB 디바이스들").
도 5는 본 개시의 특정 실시예들에 따른, 대역폭 예약을 위한 동적 스로틀링을 구현하는 예시의 USB 허브의 예시의 블록도(500)를 도시한다. 일부 실시예들에서, USB 허브는 업스트림 및 다운스트림 아날로그 프론트 엔드들("AFE")(502 및 508) 각각을 포함할 수 있다. AFE들에는 업스트림 및 다운스트림 물리 계층들("PHY")(504 및 506)이 각각 결합될 수 있다. 물리 계층들 사이에는, 허브 컨트롤러(510), 지연 라인(512), 트랜잭션 번역기("TT")(514), 멀티플렉서(516), 고속 스위치(518), 환경설정(configuration) 레지스터(520), 및 스로틀("NAK/DRAIN")(522)을 포함하여 복수의 구성부들이 있을 수 있다.
다양한 구성부들(510, 512, 514, 516, 518)은 본 기술분야의 통상의 기술자에게 일반적으로 알려져 있다. 하지만, 다양한 실시예들에서, 예시의 USB 허브는 환경설정 레지스터(520)와 스로틀(522)을 포함할 수도 있다. 이러한 2개의 구성부들의 조합은 일반적으로 도 4의 구성부들과 동등시될 수 있다. 환경설정 레지스터(520)는 일반적으로, 도 4를 참조하여 상술한 바와 같이, 버퍼(402)와 래치(404)의 조합과 동등시될 수 있다. 일부 실시예들에서, 비교기(406)는 환경설정 레지스터(502)의 일부일 수도 있다. 동일하거나 대안적인 실시예들에서, 비교기(406)는 그 대신에 스로틀(522)의 일부일 수도 있다. 일부 실시예들에서, 스로틀(522)은 또한, 지정된 USB 디바이스들을 위해(for) NAK 신호들을 발생시키도록 동작가능한 회로망을 포함할 수 있다. 이것은 또한, 예를 들어, 스로틀되도록 지정된 USB 디바이스들의 식별자들뿐만 아니라 프로그램 명령어들을 저장하는 컴퓨터 판독가능 메모리를 포함할 수 있다.
본 개시의 다양한 실시예들에서, 허브와 다운스트림 포트들 둘 다는 항상 고속일 것이다. 업 및 다운스트림 트래픽은 고속 리피터(repeater) 경로를 사용할 수 있다. 이러한 경우일 때, 스로틀(522)은, 업 및 다운 방향들 둘 다로 패킷 경계들 상의 연결성(connectivity)을 설정(set up)하고 해체(tear down)할 수 있다. 또한, 스로틀(522)은 패킷들을 양방향으로 리-클록(re-clock)할 수 있다. 또한, 스로틀(522)은 수신된 스트림으로부터의 직렬 데이터를 복구할 수 있고 자체의 로컬 클록을 사용하여 그것을 송신할 수 있다. USB 2.0 (및 호환성) 사양은 리피터 경로를 통해 36개의 고속 비트 타임들의 최대 지연을 가능하게 한다.
일부 실시예들에서, 스로틀(522)은 다운스트림 포트들에 리피터 경로 지연을 추가할 수 있고 패킷 파스(parse) 시간을 보상할 수 있다. 모든 비-대역폭-요구(non-bandwidth-demanding) IN/OUT/PING 토큰들은 신호(412)의 어서트(예를 들어, assert_nak) 상에서(on) 가상 디바이스로 라우트될 수 있다. 그다음, 가상 디바이스는 패킷을 배출(drain)하고 NAK를 사용하여(with) 응답할 수 있다. 스로틀(522)은 도 1 내지 도 4를 참조하여 상술한 "표준" HUB 대(vs) "트래픽 형태화" 특징들 사이를 선택하는 모드를 포함할 수 있다.
본 개시의 다양한 실시예들은 USB 대역폭 예약을 위한 시스템들과 방법들을 도시하였다. 이것은 예를 들면, 특정 USB 디바이스가, 적절하게 기능하기 위해서, 전용 대역폭을 요구하도록 할 수 있다. 이것은, 특정 상황들(context)(예를 들어, 자동차 어플리케이션들)에서 USB 표준의 유연성이 증가되도록 할 수 있다.

Claims (20)

  1. USB 허브로서:
    적어도 하나의 업스트림 포트와 복수의 다운스트림 포트들을 포함하고,
    상기 다운스트림 포트는 USB 호스트로서 동작할 수 있는 USB 디바이스에 연결될 수 있고,
    상기 USB 디바이스는 미리결정된 대역폭 요구사항을 갖고,
    상기 USB 허브는, 저-처리량(low throughput) 엔드포인트들의 적응적인 스로틀링에 의해, 미리정의된 대역폭을 상기 USB 디바이스에 할당하도록 구성되는, USB 허브.
  2. 제1항에 있어서,
    상기 USB 허브는, 라운드 로빈 방식으로 모든 활성 벌크 엔드포인트들에 대해(for) 요금 공유 대역폭(fare share bandwidth)을 할당하는 USB 호스트 스케줄러를 포함하는, USB 허브.
  3. 제1항 또는 제2항에 있어서,
    느린 엔드포인트들은 지연된 스케줄에 푸시되는, USB 허브.
  4. 제3항에 있어서,
    상기 USB 허브는, 적어도 하나의 마이크로프레임 동안 각각의 상기 저-처리량 엔드포인트들을 위해(for) NAK 신호를 발생시킴으로써 상기 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  5. 제4항에 있어서,
    상기 USB 허브는, 상기 저-처리량 엔드포인트들로부터 복구된 상기 적어도 하나의 마이크로프레임의 잔여분(remainder)을 할당함으로써, 상기 미리정의된 대역폭을 상기 USB 디바이스에 할당하도록 구성되는, USB 허브.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 미리정의된 대역폭은 적어도 100 mbps인, USB 허브.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 USB 허브는, 리피터 경로 지연(repeater path delay)을 다운스트림 포트들에 추가함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 USB 허브는 패킷 파스 시간(packet parse time)을 보상함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 USB 허브는, 적어도 하나의 패킷을 상기 저-처리량 엔드포인트들로부터 배출(drain)하고 NAK 신호를 사용하여(with) 응답함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 USB 허브는, 표준 허브 동작 모드와 트래픽 형태화(traffic shaping) 모드 사이를 선택할 수 있는 모드 선택 모듈을 더 포함하는, USB 허브.
  11. 환경설정 레지스터를 포함하는 USB 허브로서:
    상기 환경설정 레지스터는:
    호스트 모드로 동작하는 적어도 하나의 다운스트림 엔드포인트로부터 데이터를 수신하고, 상기 데이터를 적어도 하나의 업스트림 엔드포인트로 전달할 수 있는 버퍼;
    상기 버퍼에 통신가능하게 결합되어 상기 버퍼의 현재 용량을 식별할 수 있는 회로망;
    상기 버퍼의 상기 현재 용량을 버퍼 임계값과 비교하고, 적어도 하나의 저-처리량 엔드포인트에 스로틀을 제공할 수 있는 스로틀 모듈에 통신가능하게 결합된 신호를 출력할 수 있는 비교기를 포함하고,
    상기 USB 허브는, 적어도 하나의 저-처리량 엔드포인트들의 상기 스로틀로부터 이용가능한 USB 디바이스에 대역폭을 제공함으로써, 미리결정된 대역폭 요구사항을 갖는 상기 USB 디바이스에 미리정의된 대역폭을 할당하도록 구성되는, USB 허브.
  12. 제11항에 있어서,
    상기 USB 허브는, 적어도 하나의 마이크로프레임 동안 각각의 상기 저-처리량 엔드포인트들을 위해 NAK 신호를 발생시킴으로써 상기 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  13. 제11항 또는 제12항에 있어서,
    상기 USB 허브는, 상기 저-처리량 엔드포인트들로부터 복구된 상기 적어도 하나의 마이크로프레임의 잔여분을 할당함으로써, 상기 미리정의된 대역폭을 상기 USB 디바이스에 할당하도록 구성되는, USB 허브.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 미리정의된 대역폭은 적어도 100 mbps인, USB 허브.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 USB 허브는, 리피터 경로 지연을 다운스트림 포트들에 추가함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서,
    상기 USB 허브는 패킷 파스 시간을 보상함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서,
    상기 USB 허브는, 적어도 하나의 패킷을 상기 저-처리량 엔드포인트들로부터 배출하고 NAK 신호를 사용하여 응답함으로써, 저-처리량 엔드포인트들을 적응적으로 스로틀하도록 구성되는, USB 허브.
  18. 제18항에 있어서,
    상기 스로틀은 상기 저-처리량 엔드포인트들로부터 상기 적어도 하나의 패킷을 드레인하는 가상 디바이스를 포함하는, USB 허브.
  19. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 USB 허브는, 표준 허브 동작 모드와 트래픽 형태화 모드 사이를 선택할 수 있는 모드 선택 모듈을 더 포함하는, USB 허브.
  20. USB 허브에서 대역폭을 예약하기 위한 방법으로서:
    호스트 모드로 동작하는 적어도 하나의 다운스트림 엔드포인트로부터 버퍼 내의 데이터를 수신하는 것;
    상기 버퍼의 현재 용량을 식별하는 것;
    상기 버퍼의 상기 현재 용량을 버퍼 임계값과 비교하는 것;
    적어도 상기 비교에 근거하여 출력값을 발생시키는 것;
    적어도 상기 출력값에 근거하여, 적어도 하나의 저-처리량 엔드포인트를 동적으로 스로틀하는 것; 및
    상기 적어도 하나의 저-처리량 엔드포인트들의 스로틀로부터 이용가능한 USB 디바이스에 대역폭을 제공함으로써, 미리결정된 대역폭 요구사항을 갖는 상기 USB 디바이스에 미리정의된 대역폭을 할당하는 것을 포함하는, 방법.
KR1020187001689A 2015-07-22 2016-07-22 Usb 2.0 대역폭 예약을 위한 방법 및 시스템 KR20180030985A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562195557P 2015-07-22 2015-07-22
US62/195,557 2015-07-22
US15/216,447 2016-07-21
US15/216,447 US20170024344A1 (en) 2015-07-22 2016-07-21 Method and System for USB 2.0 Bandwidth Reservation
PCT/US2016/043638 WO2017015588A1 (en) 2015-07-22 2016-07-22 Method and system for usb 2.0 bandwidth reservation

Publications (1)

Publication Number Publication Date
KR20180030985A true KR20180030985A (ko) 2018-03-27

Family

ID=56609949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187001689A KR20180030985A (ko) 2015-07-22 2016-07-22 Usb 2.0 대역폭 예약을 위한 방법 및 시스템

Country Status (7)

Country Link
US (1) US20170024344A1 (ko)
EP (1) EP3326347B1 (ko)
JP (1) JP2018520434A (ko)
KR (1) KR20180030985A (ko)
CN (1) CN107852423B (ko)
TW (1) TWI717373B (ko)
WO (1) WO2017015588A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019177410A1 (ko) 2018-03-16 2019-09-19 주식회사 엘지화학 잉크 조성물 및 유기 발광 소자의 제조방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970004B2 (en) * 2018-12-21 2021-04-06 Synopsys, Inc. Method and apparatus for USB periodic scheduling optimization
US11825575B2 (en) * 2019-09-12 2023-11-21 Microchip Technology Incorporated Pulse-width modulation and arbitration for contextual and uniform LED illumination in USB applications
US11650835B1 (en) * 2020-03-31 2023-05-16 Amazon Technologies, Inc. Multiple port emulation
US11455196B2 (en) * 2020-09-01 2022-09-27 Dell Products L.P. Adaptive prioritization of USB traffic

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119190A (en) * 1996-11-06 2000-09-12 Intel Corporation Method to reduce system bus load due to USB bandwidth reclamation
US6748466B2 (en) * 2001-06-29 2004-06-08 Intel Corporation Method and apparatus for high throughput short packet transfers with minimum memory footprint
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
KR100557215B1 (ko) * 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법
US20060277330A1 (en) * 2005-06-01 2006-12-07 Wilhelmus Diepstraten Techniques for managing priority queues and escalation considerations in USB wireless communication systems
US20070066314A1 (en) * 2005-08-24 2007-03-22 Itay Sherman System and method for wireless communication systems coexistence
BRPI0721002A2 (pt) * 2006-12-22 2014-07-29 Qualcomm Inc Hub e protocolo usb sem fio aprimorados
US9317824B2 (en) * 2007-01-17 2016-04-19 Hartford Fire Insurance Company Vendor management system and process
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
US7849251B2 (en) * 2007-12-07 2010-12-07 Intel Corporation Hardware assisted endpoint idleness detection for USB host controllers
US20110022769A1 (en) * 2009-07-26 2011-01-27 Cpo Technologies Corporation Translation USB Intermediate Device and Data Rate Apportionment USB Intermediate Device
EP2556648A4 (en) * 2010-01-12 2013-12-11 Silicon Image Inc MULTIMEDIA USB DATA TRANSMISSION VIA A DIGITAL INTERACTION INTERFACE FOR VIDEO AND AUDIA (DIIVA)
US20110208891A1 (en) * 2010-02-25 2011-08-25 Fresco Logic, Inc. Method and apparatus for tracking transactions in a multi-speed bus environment
US8549204B2 (en) * 2010-02-25 2013-10-01 Fresco Logic, Inc. Method and apparatus for scheduling transactions in a multi-speed bus environment
US9019068B2 (en) * 2010-04-01 2015-04-28 Apple Inc. Method, apparatus and system for automated change of an operating mode relating to a wireless device
US9086889B2 (en) * 2010-04-27 2015-07-21 Oracle International Corporation Reducing pipeline restart penalty
US20120316458A1 (en) * 2011-06-11 2012-12-13 Aliphcom, Inc. Data-capable band for medical diagnosis, monitoring, and treatment
JP5791397B2 (ja) * 2011-07-07 2015-10-07 ルネサスエレクトロニクス株式会社 デバイスコントローラ、usbデバイスコントローラ及び電力制御方法
JP5819678B2 (ja) * 2011-08-30 2015-11-24 ルネサスエレクトロニクス株式会社 Usbハブ及びusbハブの制御方法
TWI497306B (zh) * 2012-11-29 2015-08-21 Faraday Tech Corp 超高速通用序列匯流排集線器及其相關流量管理方法
US9244872B2 (en) * 2012-12-21 2016-01-26 Ati Technologies Ulc Configurable communications controller
CN103905224B (zh) * 2012-12-26 2018-02-27 中国电信股份有限公司 网络资源集中管理的方法与系统
US9524260B2 (en) * 2014-06-18 2016-12-20 Qualcomm Incorporated Universal serial bus (USB) communication systems and methods
US9780938B2 (en) * 2015-06-25 2017-10-03 Intel IP Corporation Patch download with improved acknowledge mechanism

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019177410A1 (ko) 2018-03-16 2019-09-19 주식회사 엘지화학 잉크 조성물 및 유기 발광 소자의 제조방법

Also Published As

Publication number Publication date
EP3326347A1 (en) 2018-05-30
JP2018520434A (ja) 2018-07-26
TWI717373B (zh) 2021-02-01
TW201717039A (zh) 2017-05-16
EP3326347B1 (en) 2020-04-29
CN107852423A (zh) 2018-03-27
WO2017015588A1 (en) 2017-01-26
US20170024344A1 (en) 2017-01-26
CN107852423B (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
US5546543A (en) Method for assigning priority to receive and transmit requests in response to occupancy of receive and transmit buffers when transmission and reception are in progress
EP3326347B1 (en) Method and system for usb 2.0 bandwidth reservation
US6574688B1 (en) Port manager controller for connecting various function modules
CN105260331B (zh) 一种双总线内存控制器
JP2006189937A (ja) 受信装置、送受信装置、受信方法及び送受信方法
US8635386B2 (en) Communication control device, data communication method and program
US20200076742A1 (en) Sending data using a plurality of credit pools at the receivers
JP2020113137A (ja) ストレージ装置
US7028111B2 (en) Bus system and bus interface for connection to a bus
US20050289278A1 (en) Apparatus and method for programmable completion tracking logic to support multiple virtual channels
KR100505689B1 (ko) 송수신 흐름에 따라 공유 버퍼 메모리의 할당량을제어하는 송수신 네트워크 제어기 및 그 방법
KR20040010869A (ko) 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US10705985B1 (en) Integrated circuit with rate limiting
US10263905B2 (en) Distributed flexible scheduler for converged traffic
US8402178B2 (en) Device to device flow control within a chain of devices
US8219726B2 (en) Method for data transfer between host and device
KR102518287B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
KR102496994B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
US10701001B2 (en) Wireless communication circuit with scheduling circuit in MAC layer
KR20050004157A (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛
CN117435535A (zh) 一种存储系统、主控芯片、数据存储方法及数据读取方法
JP2001306482A (ja) 入出力制御方法および装置
KR20050074752A (ko) 버스 마스터 및 버스 슬레이브 간 트래픽 제어 방법