KR101043842B1 - Ulpi phy 인터페이스 표준을 사용하는 usb 2.0 링크 전력 관리 부록의 물리적 장치(phy) 지원 - Google Patents

Ulpi phy 인터페이스 표준을 사용하는 usb 2.0 링크 전력 관리 부록의 물리적 장치(phy) 지원 Download PDF

Info

Publication number
KR101043842B1
KR101043842B1 KR1020107001272A KR20107001272A KR101043842B1 KR 101043842 B1 KR101043842 B1 KR 101043842B1 KR 1020107001272 A KR1020107001272 A KR 1020107001272A KR 20107001272 A KR20107001272 A KR 20107001272A KR 101043842 B1 KR101043842 B1 KR 101043842B1
Authority
KR
South Korea
Prior art keywords
code
usb
ulpi
pid
bus
Prior art date
Application number
KR1020107001272A
Other languages
English (en)
Other versions
KR20100023966A (ko
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 KR20100023966A publication Critical patent/KR20100023966A/ko
Application granted granted Critical
Publication of KR101043842B1 publication Critical patent/KR101043842B1/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/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus

Abstract

프로토콜은 ULPI PHY(Universal Serial Bus Transceiver Macrocell Low-Pin Interface Physical Layer Device)에 의해 USB 2.0 LPM(Link Power Management) 부록의 지원을 활성화하여, ULPI 버스를 통해 LPM 확장된 트랜잭션에서 사용되는 예비 PID(Physical Interface Device) 토큰의 송신을 용이하게 할 수 있다. ULPI Tx Cmd(Transmit Command; 송신 명령) 바이트의 비트들 [3:0]은 Opmode 코드로 선택된 4개 Tx Cmd 비트들(Tx Cmd의 비트들 [3:0])을 검증하기 위해 ULPI PHY를 구성하는 것에 의해 송신(일반적으로 No PID 송신을 나타냄)을 위해 4'b0인 비트들의 값을 가지고 재사용될 수 있다. ULPI PHY는 이에 따라 Opmode의 값에 기초하여 Tx Cmd 바이트의 비트들 [3:0]을 분석할 수 있고, Opmode가 2'b10으로 설정될 때, 즉 Opmode가 예컨대 처프 송신 동안 비활성화된 NRZI 인코딩 및 비트 스터핑을 나타낼 때 확장된 PID를 송신하지 않을 수 있다. Opmode 코드가 정상 비트 스터핑을 나타내는 2'b0으로 설정되고, Tx Cmd 비트들 [3:0]이 송신(Tx Cmd 비트들[7:6]=2'b01) 동안 4'b0으로 설정될 때, PHY는 확장된 PID를 송신할 수 있고, 이후에 확장된 트랜잭션의 나머지가 USB로 송신될 수 있다.

Description

ULPI PHY 인터페이스 표준을 사용하는 USB 2.0 링크 전력 관리 부록의 물리적 장치(PHY) 지원{PHYSICAL DEVICE(PHY) SUPPORT OF THE USB2.0 LINK POWER MANAGEMENT ADDENDUM USING A ULPI PHY INTERFACE STANDARD}
본 발명은 USB 장치에 관한 것이며, 특히 "USB 2.0 링크 전력 관리(Link Power Management) 부록"을 지원하는 ULPI 물리적 장치에 관한 것이다.
USB(Universal Serial Bus)는 PC 사용자들에게 다른 컴퓨터들에 대하여 상당히 다양한 거리에 있는 주변 장치들을 연결하기 위하여, 향상되고 사용이 용이한 인터페이스를 제공하도록 개발되었다. USB의 개발은 초기에는 랩톱 컴퓨터들을 고려하여 도출되었으며, 이는 소형 측면의 주변 장치 커넥터에 큰 도움이 되었다. USB의 다수의 장점 중에서는 최소형 컴퓨터 설치에도 영향을 줄 수 있는 케이블의 복잡함을 감소시킨다는 점이 있다. 일반적으로, USB는 PC에 대한 선택적인 인터페이스가 되었고, 그 이유는 사용자들에게 단순한 연결을 제공하기 때문이다. USB는 프린터, 키보드, 마우스, 및 다른 주변 장치들에 대한 다른 커넥터를 가질 필요를 제거하고, 느린 마우스 입력에서 디지털화된 오디오 및 압축 비디오까지의 광범위한 데이터 유형을 지원한다. 게다가, USB 장치는 핫 플러거블(hot pluggable)이고, 즉 PC를 종료하지 않고 PC에서 연결되거나 분리될 수 있다.
USB 표준은 다양한 개정본이 나왔으며, 이 중에는 고속 디지털 비디오를 위한 선택된 인터페이스로서 IEEE 1394 인터페이스("파이어와이어(Firewire)")에 도전하는 USB 2.0 표준이 있다. 점점 더 지능적이고, 더 빠르고, 더 작은 주변 장치의 복잡한 설계로 인해, USB 2.0 표준에 대한 OTG(On-The-Go) 부록이 휴대용 전자 장치 시장의 증가하는 대중성을 다룰 수 있도록 개발되었다. USB 및 OTG의 장점들 중 일부는 USB-IF에 의해 동작되는 컴플라이언스(compliance) 및 로고 프로그램, IP(지적 재산권) 블럭들과 같은 광범위한 USB 솔루션, SOC(system-on-chip) 파트, 개별(discrete) 칩들, 소프트웨어 드라이버들, 및 산업 벤더들의 대형 그룹들, 및 시스템 필요에 기초한 설계 유연성에 의해 제공되는 시스템들을 통해 사용자에게 부드럽고 고장이 없는 경험을 14억 이상의 USB 가능 PC 및 전세계에 수송된 주변 장치들의 형태로 내장형 제공을 포함한다.
OTG 장치들은 통상 PC 호스트를 요구하지 않으며, 서로 직접 통신할 수 있다. 예를 들면, PDA는 USB 프린터에 직접 인쇄하는 특성을 갖는 USB 호스트로서 동작할 수 있는 한편, 또한 PC와 통신하는 USB 주변 장치로서 동작할 수 있다. 일반적으로, 설계자들은 더 적은 시간과 더 적은 비용으로 더 작고 더 빠른 제품을 설계하기 위한 증가하는 압력에 직면하고 있다. 동시에, 더 작은 깊이의 마이크론 이하의 프로세스들의 도입은 새로운 도전을 제공하고 있으며, 예컨대 USB 및 OTG와 같은 기술들에 의해 요구되는 물리적 계층(PHY - 송수신기) 아날로그 회로부를 통합하는 것과 같은 도전을 제공하고 있고, 이는 증가된 노동력, 재정 및 시간 투자, 및 실리콘 수정(silicon revision)을 이끈다. 저비용을 유지하면서 타임-투-마켓(time-to-market)을 증가시키기 위한 하나의 방법은 개별 칩에 PHY를 제공하는 것이다. 이 경우 설계자는 통상 적은 시간에 ASIC(application specific integrated circuit)으로 USB 디지털 로직의 대부분을 통합할 수 있고, 시장에서 이미 가용한 검증된 외부 PHY에 연결할 수 있다.
USB 2.0 표준의 공개에 따라, Intel은 UTMI(USB 2.0 Transceiver Macrocell Interface) 표준을 공개하였다. UTMI는 2개의 IP 블럭들, 즉 USB 송수신기 마크로셀(IP)과 USB 링크 계층(SIE) 사이의 인터페이스를 정의하였다. 예를 들면, UTMI는 USB 링크와 USB PHY 사이에서 인터페이스하도록 사용될 수 있다. UTMI를 위한 신호들은 8 비트 양방향 데이터 버스로 인터페이스한다. 통상 최소 22 신호들이 장치를 위한 PHY와 링크 사이에 요구된다.
결과적으로, 원래의 UTMI 표준의 확장인 UTMI+ 표준이 내장된 호스트 구축, 및 USB 장치들로의 OTG 성능에 대한 부각되는 필요를 충족하도록 개발되었다. 원래의 UTMI는 개별 IC들을 결합할 의도가 아닌 인터페이스를 명시했지만, 본질적으로 UTMI+는 USB 시스템에 호스트 및 OTG 성능을 도입하였다. 시작 지점으로서 UTMI를 사용하여, UTMI+는 점차 링크 및 PHY에 새로운 기능 및 인터페이스 신호를 부가한다. 부가적인 신호들은 전체 OTG UTMI+ 인터페이스를 위해 총 33이다. 설계자들은 원래의 UTMI IP에서 모든 블럭들을 재사용할 수 있고, OTG 지원 또는 호스트를 위해 요구되는 새로운 회로의 부가만 필요로 한다. 이러한 접근은 USB 주변 장치가 호스트 및 OTG 기능의 부분집합만 필요로 하기 때문에 UTMI+에서 잘 작동한다. UTMI+는 4 레벨의 기능을 소개하였고, 각 더 높은 레벨은 하드웨어 및 소프트웨어 모두에서 요구되는 복잡도를 증가하는 한편, 더 낮은 레벨과 완전히 후방 호환성(backward compatible)을 유지한다.
ULPI로 언급된 LPI(Low Pin Interface) UTMI+ 표준은 임의의 USB 응용에 의해 사용될 수 있는 낮은 핀, 낮은 비용, 작은 폼팩터(form-factor) 송수신기 인터페이스에 의해 낮은 비용의 USB 및 OTG PHY들을 제공하도록 USB 산업 리더들에 의해 개발되었다. UTMI 및 UTMI+를 포함하는 기존의 표준들은 마크로셀 개발을 위하여 주로 개발되었고, 따라서 외부 PHY로서 사용하기 위해 최적화되지 않았다. 존재하는 UTMI+ 표준 상에서 구축하여, ULPI는 선택적인 8 핀 구현을 갖는 12 핀에 대한 인터페이스 신호의 수를 감소한다. 결과적으로, PHY 및 링크 IC들의 패키지 크기는 일반적으로 감소되었고, 링크 및 PHY IC들의 비용을 감소시킬 뿐만 아니라, 연관된 PCB의 요구되는 크기를 감소시킨다. ULPI 표준에 대한 중심은 LPI이고, 이는 사실상 클럭, 세 개의 제어 신호, 양방향 데이터 버스, 및 버스 중재(arbitration)를 정의하는 일반적인 버스이다. 통상, ULPI 링크는 양방향 공유 데이터 버스 상의 레지스터 기록을 사용하여 ULPI PHY를 구성할 것이다. ULPI PHY는 링크와 PHY 사이의 8 비트 데이터 버스의 중재자(arbitrator)이다.
USB 상에서 호스트 컴퓨터 시스템과 모두 통신할 수 있는 오늘날의 USB 장치들은 USB 프린터, 스캐너, 디지털 카메라, 스토리지 장치, 카드 리더 등을 포함한다. USB 기반 시스템은 USB 호스트 제어기가 호스트 시스템에 존재하고, 호스트 시스템의 OS(operating system)가 USB 및 USB 대용량 기억 클래스 장치들을 지원할 것을 요구할 수 있다. USB 장치들은 저속(LS), 최고 속도(FS) 또는 고속(HS)으로 USB 버스를 통해 통신할 수 있다. USB 장치 및 호스트 사이의 연결은 4개의 선들 전력선, 접지선, 및 한쌍의 데이터 선들(D+ 및 D-)을 포함하는 4개의 배선 인터페이스 또는 인터칩 USB, ULPI, UTMI 등과 같은 디지털 상호접속을 통해 개설될 수 있다. USB 장치가 호스트에 연결되는 경우, USB 장치는 D+ 선 상의 풀업 저항을 이용하여, 먼저 D+ 선을 하이 (장치가 저속 장치라면 D- 선)로 올린다. 호스트는 USB 장치를 리셋시킴으로써 반응할 것이다. 만일 USB 장치가 고속 USB 장치라면, USB 장치는 리셋 동안 D- 선을 하이(high)로 구동시킴으로써 "처프(chirp)"할 것이다. 호스트는 D+ 및 D- 선을 하이로 교대로 구동함으로써, "처프"에 반응할 수 있다. USB 장치는 이어 풀업 저항을 전자적으로 제거하며, 고속으로 통신을 계속하게 된다. 분리시, 고속 USB 장치들은 D+ 및 D- 선들 모두를 3상(tri-state)으로 되게 할 수 있는 한편, 최고 속도 장치들은 풀업 저항을 D+ 선으로부터 제거할 수 있다(즉, D+선을 "3상"함).
USB 표준의 계속된 발전에 최근 부가된 것은 USB 2.0 LPM(Link Power Management) 부록(Addendum)이며, 이는 USB 2.0 표준을 사용하여 휴대용 장치에 연결될 때 낮은 대역폭의 주변장치들의 전력 요구를 감소시키기 위한 새로운 방법이다. 일반적으로 LPM ECN(Engineering Chance Notice)은 현존하는 활성 및 중지 상태 사이에 새로운 전력 상태(전력 슬립(sleep) 상태)를 부가한다. 전력 슬립 상태에서 USB 장치는 전력 소비를 감소시키는 것이 요구되지 않는다. 그러나, 활성 상태와 슬립 상태 사이의 스위칭은 활성 상태와 중지 상태 사이의 스위칭보다 훨씬 빠르고, 이는 장치가 유휴(idle) 모드에 있는 동안 슬립 되도록 허용한다. HOST가 USB Vbus 커넥터 상에서 공급하도록 요구되는 설정된 전류를 감소시키기 위해, LPM은 표준 USB 2.0 구성 하에서 가능한 것보다 더 빠른 주변 장치의 중지를 위해 확장 트랜잭션(Extended Transaction)을 구현한다.
LPM 확장 트랜잭션은 새로운 EXT PID(Extension Token transaction; 확장 토큰 트랜잭션)을 생성하기 위해 특별한 PID 유형 그룹에 있는 남아 있는 USB 2.0의 예비 PID(Physical Interface Device) 값(4'b0)을 사용한다. 그러나 이러한 EXT PID("확장 토큰 4'bo")은 예비 PID 값 4'b0은 ULPI 처프(Chirp) 트랜잭션에서 사용되기 때문에 ULPI PHY에 의해 지원되지 않는다. 그래서, ULPI PHY 인터페이스 표준을 사용하는 USB 2.0 LPM을 위해 현재 PHY 지원은 없다. 다른 말로, ULPI를 사용하여 인터페이스하는 PHY 및 LINK 부분들을 갖는 USB 장치들은 LPM 부록의 전력 절약 특징의 장점을 취할 수 없으며, 그 이유는 LPM 확장 트랜잭션을 위해 사용되는 예비 PID 값이 ULPI에서 다른 목적을 위해 이미 사용되고 있기 때문이다.
종래 기술과 관련된 다른 상응하는 문제들이 본원에 기재된 본 발명과 상기 종래 기술을 비교한 후에 당업자에게 명백해질 것이다.
실시예들의 일 세트에서, ULPI를 사용하여 인터페이스하는 PHY 및 LINK 부분들을 포함하는 USB 장치는 LPM 부록의 전력 절약 특징들을 이용할 수 있다. 예시적인 시스템은 제1 버스(표준 ULPI 버스일 수 있음) 및 제2 버스(USB 일 수 있음), 상기 제1 버스에 결합된 송수신기(USB 링크일 수 있음)로서 통상 언급되는 송신기/수신기, 및 장치(상기 제1 버스 및 상기 제2 버스에 결합된 ULPI PHY일 수 있음)를 포함할 수 있다. 송수신기(송신기/수신기)는 데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드(ULPI 송신 명령 바이트에 포함될 수 있음)를 상기 제1 버스로 송신하는 것에 의해, 상기 장치로의 데이터 전송을 개시하도록 구성될 수 있다. 송수신기(송신기/수신기)는 상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드(LPM 확장 토큰 트랜잭션의 확장된 PID 토큰일 수 있음) 및 대응하는 하나 이상의 패킷들(ULPI 확장된 트랜잭션 패킷들일 수 있음)을 상기 데이터 전송의 일부로서 상기 제1 버스로 송신하도록 더 구성될 수 있다. 상기 장치는 상기 제1 코드, 및 상기 예비 PID 코드와 대응하는 하나 이상의 패킷들을 수신하고, 상기 제1 코드를 기능 제어 코드(ULPI OpMode 코드일 수 있음)로 검증하도록 구성될 수 있다. 기능 제어 코드가 정상 동작을 나타낼 때, 상기 장치는 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 상기 제2 버스로 송신할 수 있다.
실시예들의 일 세트에서, USB(Universal Serial Bus) 링크는 ULPI(USB Transceiver Macrocell Low-Pin) 버스 상에서 정보(USB 트랜잭션들의 데이터 패킷들을 포함할 수 있음)를 송신 및/또는 수신하기 위해 상기 USB 링크를 활성화하도록 구성된 ULPI I/O(Input/Output) 인터페이스를 포함할 수 있다. 상기 USB 링크는 데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 상기 ULPI I/O 인터페이스를 통해 송신하는 것에 의해, 상기 ULPI 버스 상에서 데이터 전송을 개시하도록 구성된 USB 링크 프로토콜 로직을 더 포함할 수 있다. 상기 USB 링크 프로토콜 로직은 상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드(다른 상태로 변환하기 위해 개시된 데이터 전송의 표적 장치에 대한 요청을 나타냄) 및 대응하는 하나 이상의 패킷들을 상기 개시된 데이터 전송의 일부로서 상기 ULPI I/O 인터페이스를 통해 상기 ULPI 버스로 송신하도록 더 구성될 수 있다. 상기 USB 링크는 상기 ULPI I/O 인터페이스를 통해 나가고 들어오는 정보를 저장하도록 구성된 하나 이상의 버퍼들을 더 포함할 수 있다.
실시예들의 일 세트에서, ULPI PHY는 ULPI 버스 상에서 정보를 송신 및/또는 수신하기 위해 상기 ULPI PHY를 활성화하도록 구성된 ULPI 인터페이스 제어 로직, 및 상기 USB PHY의 동작의 모드들을 나타내는 정보를 저장하도록 구성된 기능 제어 레지스터(register)를를 포함할 수 있다. 상기 ULPI PHY는 데이터 송신을 나타내고, 송신된 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 상기 ULPI 인터페이스 상에서 수신하도록 구성될 수 있다. 상기 ULPI PHY는 상기 제1 코드의 수신에 이어서 예비(reserved) PID 코드 및 대응하는 하나 이상의 패킷들을 수신하고, 상기 기능 제어 레지스터의 콘텐트들이 동작의 정상 모드를 나타낼 때 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 USB로 송신하도록 더 구성될 수 있다. 상기 ULPI PHY는 또한 상기 USB와 인터페이스하고, 상기 USB 상에서 상기 USB PHY의 패킷들의 송신 및 수신을 적어도 부분적으로 관리하도록 구성된 송수신기(송신기/수신기) 로직을 더 포함할 수 있다.
확장된 트랜잭션을 송신하는 방법은 데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 제1 버스로 송신하는 것을 포함하는 데이터 전송을 개시하는 단계를 포함할 수 있다. 상기 방법은 상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드 및 대응하는 하나 이상의 패킷들을 상기 데이터 전송의 일부로서 상기 제1 버스로 송신하는 단계를 더 포함할 수 있다. 상기 방법의 일부로서, 상기 제1 코드, 및 상기 예비 PID 코드와 대응하는 하나 이상의 패킷들은 수신될 수 있고, 상기 제1 코드는 기능 제어 코드로 검증될 수 있다. 상기 기능 제어 코드가 정상 동작을 나타낼 때, 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들은 제2 버스로 송신될 수 있다. 일 실시예에서, 상기 제1 코드를 송신하는 단계는 No PID 데이터 송신을 나타내는 ULPI(Universal Serial Bus Transceiver Macrocell Low-Pin Interface) 송신 명령 바이트를 송신하는 단계를 포함하고, 상기 예비 PID 코드를 상기 제1 버스로 송신하는 단계는 LPM(Link Power Management; 링크 전력 관리) 확장된 PID 토큰을 송신하는 단계를 포함하고, 상기 대응하는 하나 이상의 패킷들을 송신하는 단계는 적어도 LPM 토큰 패킷 및 확장된 토큰 패킷을 송신하는 단계를 포함한다.
실시예들의 일 세트에서, 시스템은 USB 링크 및 USB PHY를 포함할 수 있다. 상기 USB 링크는 데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 송신하는 것에 의해 ULPI(Universal Serial Bus Transceiver Macrocell Low-Pin Interface) 버스 상에서 데이터 전송을 개시하도록 구성될 수 있고, 또한 상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드(LPM 확장된 PID 토큰일 수 있음) 및 대응하는 하나 이상의 패킷들을 상기 데이터 전송의 일부로서 상기 ULPI 버스로 송신하도록 구성될 수 있다. ULPI PHY는 기능 제어 코드를 저장하고, 상기 제1 코드를 수신하고, 상기 제1 코드의 수신에 이어서 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 수신하고, 상기 기능 제어 코드가 동작의 정상 모드를 나타낼 때 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 USB로 송신하도록 구성될 수 있다. 상기 USB 링크는 SOC(system-on-chip) 상에 포함될 수 있고 ULPI PHY는 상기 SOC 상에 또는 SOC 외부에 있도록 구성될 수 있다. 다양한 실시예에서, USB 링크 및 ULPI PHY는 USB 호스트 장치, USB OTG 장치, USB 허브, 및/또는 컴퓨터 시스템에 포함될 수 있고, 이는 단지 소수의 가능성이 있는 것들을 지명한 것이다.
본 발명의 더 나은 이해는 이하 상세한 설명이 첨부된 도면과 관련하여 고려될 때 획득될 수 있다.
도 1은 본 발명의 실시예들을 사용하여 구현될 수 있는 가능성 있는 USB 결합 시스템을 도시한다.
도 2는 본 발명의 실시예들을 사용하여 구현될 수 있는 가능성 있는 컴퓨터 시스템을 도시한다.
도 3은 본 발명의 실시예들을 사용하여 구현될 수 있는 다른 가능성 있는 컴퓨터 시스템을 도시한다.
도 4는 종래 기술에 따라 LPM 확장된 토큰 송신의 패킷 도면을 도시한다.
도 5는 본 발명의 일 실시예에 따라 존재하는 ULPI 인터페이스를 사용하여 확장된 PID 토큰 패킷을 송신하는 ULPI 링크를 도시한다.
도 6은 ULPI PHY 표준을 사용하여 USB 2.0 링크 전력 관리를 구현하는 USB 링크 및 ULPI PHY를 포함하는 USB 시스템의 일 실시예를 나타내는 블럭도를 도시한다.
본 발명은 쉽게 여러 가지 변형과 대안적 형태가 될 수 있으므로, 그 특정 실시예들이 도면에 예를 들어 보여질 수 있고 여기에서 상세히 설명될 것이다. 그러나, 도면과 상세한 설명은 본 발명을 특정 형태의 개시에 국한시키는 것이 아니라 오히려 첨부된 청구범위에 의해 정의된 바와 같은 본 발명의 범위와 기술사상 안에 들어오는 모든 변형, 등가의 것, 및 대안들을 커버 하고자 한다. 요약서는 서류 구성상 목적일 뿐 상세한 설명이나 청구범위를 제한하거나 나타내는데 사용할 의도가 아님을 주의해야 한다. 또한, 본 출원에서 "할 수 있다"는 어구는 허용적 의미(예를 들어, 어떤 실시예에서 가능성이 있다거나 잠재력이 있다는 뜻)이지 강제적인 "해야한다"는 의미가 아님을 주의해야 한다. "포함한다"라는 어구와 그로부터 파생된 어구는 "포함하나, 제한함은 아니다"는 뜻이다."결합된"이라는 어구는 "직,간접적으로 접속됨"을 뜻한다.
용어
이하는 본 출원에서 사용되는 용어의 사전이다.
메모리 매체( Memory Medium ) - 임의의 다양한 유형의 메모리 장치 또는 기억 장치. "메모리 매체"라는 용어는, 예컨대, CD-ROM, 플로피 디스크(104), 또는 테이프 장치와 같은 설치(installation) 매체; DRAM, DDR RAM, SRAM, EDO RAM, Rambus RAM 등과 같은 컴퓨터 시스템 메모리 또는 랜덤 액세스 메모리; 또는 예컨대 하드 드라이브 등의 마그네틱 매체와 같은 비휘발성 메모리, 또는 광기억 장치(optical storage)를 포함한다. 메모리 매체는 다른 유형의 메모리나 이들의 조합을 포함할 수 있다. 또한, 메모리 매체는, 프로그램이 실행되는 제1 컴퓨터에 위치하거나, 인터넷과 같은 네트워크를 통해 제1 컴퓨터에 접속하는 다른 제2 컴퓨터에 위치할 수 있다. 후자의 경우, 제2 컴퓨터는 실행하기 위한 프로그램 명령어를 제1 컴퓨터에 보낼 수 있다. "메모리 매체"라는 용어는 여러 위치, 예컨대, 네트워크를 통해 접속되는 여러 컴퓨터들에 존재할 수 있는 2 이상의 메모리 매체를 포함할 수 있다.
캐리어 매체( Carrier Medium ) - 상기 기재된 메모리 매체뿐만 아니라 전기, 전자기, 또는 디지털 신호와 같은 신호들을 운반하는 버스, 네트워크 및/또는 다른 물리적 전송 매체.
소프트웨어 프로그램( Software Program ) - 용어 "소프트웨어 프로그램"은 일상적인 의미의 전체 폭을 갖도록 의도되며, 프로세서에 의해 실행되고 메모리 매체에 저장될 수 있는 프로그램 명령어, 코드, 스크립트 및/또는 데이터, 또는 이들의 조합 중 임의의 유형을 포함한다. 예시적인 소프트웨어 프로그램은 C, C++, 파스칼, 포트란, 코볼, 자바, 어셈블리어와 같은 텍스트 기반 프로그래밍 언어로 기록되는 프로그램, 그래픽 프로그램(그래픽 프로그래밍 언어로 기록되는 프로그램); 어셈블리어 프로그램; 기계어로 컴파일된 프로그램; 스크립트; 및 기타 유형의 실행가능한 소프트웨어를 포함한다. 소프트웨어 프로그램은 소정의 방식으로 상호동작하는 2개 이상의 소프트웨어 프로그램을 포함할 수 있다.
컴퓨터 시스템( Computer System ) - 임의의 여러 유형의 컴퓨팅 또는 프로세싱 시스템으로, 개인용 컴퓨터 시스템(PC), 메인프레임(mainframe) 컴퓨터 시스템, 워크스테이션, 네트워크 설비(appliance), 인터넷 설비, PDA, 텔레비전 시스템, 그리드(grid) 컴퓨팅 시스템, 또는 다른 장치나 이들 장치의 조합을 포함한다. 일반적으로, "컴퓨터 시스템"이라는 용어는, 메모리 매체의 명령어를 실행하는 적어도 하나의 프로세서를 가지는 임의의 장치(또는 장치들의 조합)를 포함하도록 넓게 정의될 수 있다.
2진수( Binary Numbers ) - 숫자를 참조할 때, 숫자열의 앞의 오는 'b'는 이진수가 뒤따르는 것을 나타낸다. 예를 들면, 'b10'은 2비트의 2진수를 가리킬 수 있으며, MSB(most significant bit)는 '1'이다. 문자 'b' 앞에 있고 아포스트러피에 의해 분리되는 수는 뒤따르는 2진수의 비트 수를 나타낸다. 예를 들면, "8'b0"은 모든 8 비트가 '0'인 8비트 2진수를 가리킬 수 있다. 유사하게, "8'b10xx_xxxx"는 2진수를 가리킬 수 있는데, 상위 2비트는 '10'을 포함하고, 나머지 비트들 각각은 '1' 또는 '0' 중 어느 하나를 포함한다.
도 1은 예시적인 USB 시스템의 일 실시예를 도시한다. 도시된 바와 같이, USB 장치(100)는 예컨대 USB 허브(120)를 통해 호스트 장치(140)에 결합될 수 있다. 일부 실시예에서 도 1-3에 도시된 요소들 중 하나 이상이 생략될 수 있으며, 예컨대 다른 것들 중에서 호스트 장치(140) 및/또는 USB 허브(120)가 생략될 수 있다. 예를 들면, USB 장치(100)는 예컨대 USB 허브(120) 없이 호스트 장치(140)로 직접 결합될 수 있다(예컨대, 이하 기재되는 저전력 계산을 위함). 상기 기재된 접속/구성은 단지 예시를 위한 것이고, 다른 구성이 계획된다.
USB 장치(100)는 다수의 장치들 중 임의의 것일 수 있다. 예를 들면, USB 장치(100)는 셀룰러 전화(예를 들어, 도 2에 도시된 셀룰러 전화(200)), 개인용 음악 플레이어(예를 들어, 도 3에 도시된 플레이어(300), 예를 들어, mp3 플레이어, 및/또는 다른 플레이어들 중 IPODTM, CD 플레이어 등), 개인용 비디오 플레이어(예를 들어, 도 3에 도시된 플레이어(300), 예를 들어, 디지털 비디오 플레이어, DVD 플레이어 등), 주변 장치(예를 들어, 프린터), 입력 장치(예를 들어, 다른 것들 중에서, 게임 컨트롤러, 터치패드, 마우스, 및/또는 키보드), 또는 배터리 충전을 요구하는 임의의 다른 장치일 수 있다. 따라서, USB 장치(100)는 적절한 다양한 장치들 중 임의의 것일 수 있다.
부가적으로, 호스트 장치(140)는 다양한 호스트 장치들 중 임의의 것일 수 있고, 특히 호스트 장치(140)는 예컨대 도 2 및 3에 도시된 컴퓨터 시스템(240)과 같은 컴퓨터 시스템, 예컨대 외부 USB 허브 또는 전자 시스템(예를 들어, 다른 것들 중에서 컴퓨터 시스템(240) 또는 디스플레이 장치(220))에 포함된 것과 같은 USB 허브, 및/또는 예컨대 USB 장치(100)를 충전하기 위한 전력을 제공하는 다른 유형의 호스트 장치일 수 있다. 대안적으로, 또는 부가적으로, 호스트 장치(140)는 다른 것들 중에서 예컨대 USB 장치(100)와 유사한 제2 USB 장치일 수 있다. 예를 들면, 일 실시예에서, 제2 USB 장치는 예컨대 상황에 의존하여 호스트 및 장치로서 동작가능할 수 있는 USB OTG 장치일 수 있다. 그러므로, 다양한 실시예에 따라 호스트 장치(140)는 다양한 적절한 장치들 중 임의의 것일 수 있다.
도 2 및 3에 도시된 바와 같이, 컴퓨터 시스템(240)은 컴퓨터 시스템(240)에서 수신된 비디오 신호들을 디스플레이하고/거나 USB 허브로서 동작할 수 있는 디스플레이 장치(220)를 포함하거나/디스플레이 장치(220)에 결합할 수 있다. 즉, 디스플레이 장치(220)는 USB 허브(120)로서 뿐만 아니라 호스트 장치(140)(예를 들어, 컴퓨터 시스템(240))로부터의 비디오 신호를 디스플레이하도록 동작할 수 있다. 부가적으로, 컴퓨터 시스템(240)은 USB 장치일 수 있는 키보드(230) 및 마우스(225)를 포함할 수 있다. 키보드(230) 및 마우스(225)는 여러 방법들 중에서, 예컨대 직접 컴퓨터(240)로, 또는 디스플레이 장치(220)에 포함된 USB 허브를 통하는 것과 같은 다양한 방법으로 컴퓨터 시스템(240)으로 결합할 수 있다. 따라서, 도 2 및 3에서, 키보드(230) 및 마우스(225)는 USB 허브로서 동작할 수 있는 디스플레이(220)에 결합되는 것으로 도시된다. 대안적으로, 키보드(220) 및 마우스(225)는 예컨대 컴퓨터 시스템(240)의 허브와 같이 컴퓨터 시스템(240)에 결합될 수 있다.
부가적으로, 컴퓨터 시스템(220)은 하나 이상의 컴퓨터 프로그램 또는 소프트웨어 구성요소들이 저장될 수 있는 적어도 하나의 메모리 매체를 포함할 수 있다. 예를 들면, 메모리 매체는 OS 소프트웨어뿐만 아니라 컴퓨터 시스템(240)의 운용을 위한 다른 소프트웨어를 저장할 수 있다. 다양한 실시예들은 캐리어 매체에 대해 전술한 바에 따라 구현되는 데이터 및/또는 명령어들을 수신 또는 저장하는 것을 포함한다. 호스트 장치(140), USB 장치(100), 컴퓨터 시스템(240)(및 예컨대 입력 장치와 같은 구성요소), 및 디스플레이 장치(220)에 대한 상기 설명은 단지 예시를 위한 것이고, 다른 구성요소들 및 시스템들이 계획된다.
도 2에 도시된 바와 같이, 셀룰러 전화(200)(예, USB 장치(100))는 컴퓨터 시스템(240)(예, 호스트 장치(140))에 결합할 수 있다. 특히, 일부 실시예에서, 셀룰러 전화(200)와 같은 USB 장치(100)는 컴퓨터 시스템(240)에 포함된 허브에 결합할 수 있다. 따라서, 일부 실시예에서 USB 장치(100)는 컴퓨터 시스템(240)에 포함된 USB 포트에 직접 결합할 수 있다. 그러나, 상기와 같이(및 도 3에 도시된 것과 같이), USB 장치(100)는 예컨대 USB 허브(120) 또는 다른 장치들을 통해 간접적으로 결합할 수 있다.
도 3에 도시된 예시에서, 플레이어(300)는 컴퓨터 시스템(240)에 결합될 수 있는 USB 허브(120)에 결합될 수 있다. 대안적으로, 일부 실시예에서 구성은 다를 수 있는데, 예컨대, 상기와 같이, 디스플레이 장치(220) 및/또는 컴퓨터 시스템(240)은 USB 허브(예, 수동적으로 또는 능동적으로 전력 공급됨)를 포함할 수 있다. 이에 따라, 일 실시예에서, USB 장치(100)는 USB 장치(100)에 전력을 공급할 수 있는 디스플레이 장치(220)에 결합할 수 있다. 디스플레이 장치(200)는 또한 USB 장치(100)와 컴퓨터 시스템(240)(예, 호스트 장치(140)) 사이의 USB 통신을 제공할 수 있다. 따라서, 도 1-3은 USB 장치와 호스트/허브 사이의 접속이 USB를 통해 개설될 수 있는 예시적인 시스템을 도시하고, 여기서 호스트/허브는 ULPI 버스를 통해 USB PHY에 결합된 USB 링크를 포함하고, ULPI 버스를 통해 LPM 확장 트랜잭션에서 사용되는 예비 PID의 송신을 구현할 수 있다.
본 발명의 다양한 실시예들은 전력 소비가 감소된 USB 연결을 제공한다. LPM 부록에서 설명된 바와 같이, L1(슬립) LPM 상태는 2가지 방식에서 L2(USB 2.0 중지(Suspend))와 다르다. 슬립 상태로의 및 슬립 상태로부터의 변환 지연(transitional latencies)은 L2 중지 상태로의 및 L2 중지 상태로부터의 변환 지연보다 훨씬 더 짧고, 부착된 장치 상에서 명시적인 전력 소모 요구가 없다(L2는 Vbus로부터의 전력 소모를 감소시키도록 중지된 장치에 요구한다). 업스트림 포트가 L1(슬립 모드)에 있는 장치는 통상 버스 동작을 감시하지 않고, 일반적으로 가능한 경우 언제나 전력을 절약하도록 구성된다. 호스트 장치는 최소 시간에 장치에 지시(indication)를 제공하고, 만일 호스트가 L1(슬립 상태)에서 탈출을 개시하면 재시작을 구동하게될 것이다. 지시자(indicator)는 현재의 작업 부하 정책에 기초하여 호스트에 의해 설정되고, 통상 50 내지 1200 μs의 범위에 있다. L1 LPM 상태는 존재하는 중지/재시작 인프라구조(시그널링 레벨, 상기 상태에 있는 동안의 선 상태 등) 의 대부분을 이용하는 것에 의해 L2 USB 2.0 상태를 보완하지만, L1과 L0(온(On) 상태) 사이에 더욱 빠른 변환 지연을 제공한다. 호스트는 또한 어드레싱된 장치가 호스트 또는 허브에서 다운스트림 포트로 직접 접속되지 않는다면 장치에 LPM 트랜잭션의 송신을 일으키는 동작을 개시하지 않을 것이다. 호스트는 또한 어드레싱된 장치에 대한 분리한(split) 트랜잭션이 진행중에 있을 때 호스트 또는 허브 포트에 LPM 트랜잭션을 일으키도록 명령을 개시하지 않을 것이다.
LPM 프로토콜은 L1(슬립 모드)으로 변환하기 위해 포트에 접속되는 장치에 요청하기 위해 트랜잭션을 사용한다. USB 2.0 표준은 "예비(reserved)" PID 값의 제공을 갖는다. 따라서, LPM 부록은 확장 트랜잭션을 정의하여, 프로토콜의 추가적 확장을 허용한다. 확장 트랜잭션은 특별한 PID 유형 그룹에 있는 나머지 USB 2.0 예비 PID 값(0000B)을 사용하고, 예비 PID 값을 EXT(확장) PID로 개명한다. EXT PID 또는 프로토콜 확장 토큰은 USB 트랜잭션 프로토콜을 확장하기 위해 확장 토큰 단계를 일으키도록 사용된다. 도 4에 도시된 것과 같이, 확장 트랜잭션을 위한 토큰 단계는 통상 2개의 토큰 패킷을 포함하고, 각각은 표준 3 바이트 토큰 패킷이다.
확장 트랜잭션의 제1 패킷은 EXT(즉, 4'b0)에 대응하는 PID 필드의 값이 있는 PID 필드, ADDR, ENDP, 및 CRC5를 포함하는 표준 토큰 패킷이다. PID 필드의 EXT 값은 다음 즉 제2 패킷(표준으로 백투백(back-to-back) 패킷 간 타이밍)이 ETP(extended token packet; 확장 토큰 패킷)인 것을 나타낸다. ETP의 기본 구조는 표준 토큰 패킷에 동일하고, 표준 토큰 패킷은 PID(SubPID) 필드인 제1 필드, 및 SubPID 필드와 CRC5 필드 사이의 11 비트를 검사하기 위해 사용되는 CRC5 필드인 패킷의 최종 필드를 포함한다. ETP의 변수 필드의 포맷은 SubPID 필드의 값에 의존한다. 존재하는 토큰 패킷들로, SubPID 필드의 값은 트랜잭션의 나머지(remainder)의 포맷 및 방향을 나타낼 수 있고, 착신 또는 발신 데이터가 있는 데이터 단계들을 갖는 트랜잭션들의 정의, 및 핸드세이크(handshake) 단계의 포함 또는 생략을 허용한다. 따라서, 확장 트랜잭션은 효과적으로 6 바이트의 토큰 정보를 가질 수 있다. SubPID 필드에 대한 4'b0011의 값은 LPM 토큰으로서 정의되어, ETP의 변수 필드의 LPM 확장 트랜잭션 포맷을 나타낸다.
ULPI 표준은 ULPI 버스 상의 USB 링크에 의해 송신되는 Tx Cmd(Transmit Command; 송신 명령) 바이트, 및 PHY에 의해 송신되는 Rx Cmd(Receive Command; 수신 명령) 바이트를 정의한다. 링크는 Tx Cmd 바이트를 ULPI 버스 상에서 송신하는 것에 의해 PHY로의 전송을 개시하고, Tx Cmd 바이트는 2 비트 명령 코드(비트들 [7:6]) 및 6 비트 페이로드(비트들 [5:0])를 포함한다. Tx Cmd 바이트가 "No PID" 송신을 나타낼 때, PHY는 통상 차후의 데이터 바이트로 시작하는 USB 상의 송신을 시작한다. 송신 명령 코드는 2'b01로서 정의되고, "No PID" 페이로드는 6'b0로서 정의된다. "No PID" 설정은 처프 및 재시작 시그널링과 같이 PID를 갖지 않는 USB 데이터의 송신을 위해 사용된다. 따라서, EXT PID는 ULPI PHY에 의해 제공되지 않으며, 이는 4'b0의 예비 PID 값이 처프 트랜잭션(상기와 같음)과 같은 ULPI No PID 트랜잭션(값 6'b0의 일부분임)에서 사용되기 때문이다. 따라서, ULPI PHY 인터페이스 표준을 사용하는 USB 2.0 LPM을 위한 PHY 제공이 현재 없다. 그러나, 프로토콜은 ULPI 물리적 장치가 USB 2.0 LPM 부록을 허용하여 존재하는 ULPI 인터페이스를 사용하여 LPM 확장 트랜잭션에서 사용되는 예비 PID의 송신을 제공하도록 구현될 수 있다.
ULPI는 또한 그 기능이 PHY의 UTMI 기능 설정을 제어하는 것인 기능 제어 레지스터를 정의한다. 기능 제어 레지스터의 비트들 [4:3]은 송신 동안 요구되는 비트 인코딩 스타일을 나타내도록 사용되는 Opmode 코드를 저장하도록 구성된다. 2'b0의 Opmode 값은 정상 동작을 나타내는 한편, 2'b10의 Opmode 값은 비활성화되는 NRZI 인코딩 및 비트 스터핑(bit-stuffing)을 나타낸다. 실시예들의 일 세트에서, ULPI PHY는 기능 제어 레지스터 비트 세트의 Opmode 코드 부분으로부터 정상 모드를 나타내는 2'b0의 값으로의 입력을 사용하는 것에 의해 USB 상에서 LPM 확장 트랜잭션(상기와 같음)을 송신하도록 구성될 수 있다. 예비 PID 4'b0은 송신될 수 있고, 나머지 확장 링크 트랜잭션 바이트들은 일반적인 USB 2.0 비트 스터핑, 및 NRZI(Non-Return to Zero Inverted) 인코딩으로 인코딩될 수 있다. ULPI PHY가 CHIRP K 송신 또는 CHIRP K/J 쌍을 송신하고 있을 때, Opmode 코드는 통상 2'b10으로 설정되고, 이에 따라 비트 스터핑 및 NRZI 인코딩이 턴 오프된 것을 나타낸다. 이에 따라 ULPI PHY는 ULPI 트랜잭션의 차후 바이트들의 NRZI 인코딩 또는 비트 스터핑을 하지 않을 것이다.
실시예들의 일 세트에서, Tx Cmd 바이트의 비트들 [3:0]는 재사용될 수 있고, 송신(비트[7:6]=2'b01, No PID 송신을 나타내는 비트의 조합)동안 4'b0000일 때, ULPI PHY를 구성하여 Opmode 코드로 선택된 4 Tx Cmd 비트들(Tx Cmd의 비트 [3:0])을 검증한다. 이처럼 선택된 4 Tx Cmd 비트들을 검증하는 것은 ULPI PHY가 Opmode의 값에 기초하여 USB 링크로부터 수신된 Tx Cmd 바이트의 비트들 [3:0]을 어떻게 분석하는지 판단할 수 있다는 것을 의미한다. ULPI PHY는 Opmode가 2'b10으로 설정될 때, 즉 Opmode가 예컨대 처프 송신 동안 비활성화되는 NRZI 인코딩 및 비트 스터핑을 나타낼 때 확장 PID를 송신 및/또는 예측하지 않도록 구성될 수 있다. Opmode 코드가 일반적인 비트 스터핑을 나타내는 2'b0으로 설정되고, Tx Cmd 비트들 [3:0]이 송신(Tx Cmd 비트들[7:6]=2'b01) 동안 4'b0으로 설정될 때, 확장 PID는 송신될 수 있고, 확장 트랜잭션의 나머지가 뒤따른다.
도 5는 확장 PID 토큰 패킷 1로서 도 5에 도시된 패킷인, ULPI PHY에 의해 USB로 송신될 수 있는 확장 트랜잭션을 송신하는 ULPI 링크의 패킷/타이밍 도면을 도시한다. 도 5에 도시된 바와 같이, 내부 ULPI 기능 제어 레지스터의 비트들 [4:3]을 포함하는 Opmode 코드가 2'b0의 값을 갖고(정상 모드를 나타냄), USB 링크가 4'b0의 값을 갖는 Tx Cmd를 송신하고, 파형(502)으로서 표시되는 확장 토큰 패킷이 뒤따를 때, ULPI PHY는 USB로 전체 확장 트랜잭션을 송신할 수 있다. D+/D- 선들(504)로 표시된 바와 같이, 확장 트랜잭션은 EXT PID(4'b0)으로 시작할 수 있고, 2개 토큰 패킷으로 구성될 수 있다. 제1 토큰 패킷은 예비 PID로 시작할 수 있고, 제2 토큰 패킷은 LPM 확장 트랜잭션과 관련하여 상기 기재된 바와 같이 "SubPID"로 시작할 수 있다. 이러한 구성 하에서, 상기 트랜잭션에 수반되는 토큰들 중 어느 것도 ULPI 기능과 충돌하지 않을 것이다. 제2 토큰 패킷의 SubPID가 SubPID로서 예비 PID를 사용하면, 이 방법은 상기 SubPID가 역시 송신되게 허용할 수 있다.
도 6은 USB 2.0 LPM을 구현하는 USB 시스템(600)의 일 실시예를 표현한 블럭도를 도시한다. SOC(602)는 시스템에서 "임베디드 호스트"와 같이 HS/FS/LS(고속/전속/저속) 동작을 제공하도록 구성될 수 있는 USB 링크 블럭(632)을 포함할 수 있다. USB 링크 블럭(632) 및/또는 SOC(602)로 구성될 수 있는 시스템들은 도 1의 호스트 장치(140), 도 2의 컴퓨터(240), 및/또는 소수의 예시와 같이 USB 허브(120)를 포함할 수 있다. USB 기능을 통합한 다른 시스템들은 본원에 명시적으로 기재되지 않았을 지라도 가능하고 고려된다. SOC(602)는 예컨대 내부 부트 ROM(606)에 저장될 수 있는 펌웨어 프로그램을 실행하도록 구성될 수 있는 프로그램가능 프로세싱 유닛/마이크로프로세서(614)를 포함할 수 있다. 내부 RAM(612)은 USB 링크(632)에 의해 송신 및/또는 수신된 임의의 패킷들에 대한 버퍼로서 동작하도록 구성될 수 있다.
일 실시예에서, USB 링크(632)는 송신 및/또는 수신 패킷들을 버퍼링하기 위해 내부 송신/수신(TX/RX) 버퍼들(608)을 포함한다. 일부 바람직한 실시예에서, 버퍼들(608)은 RAM 버퍼들일 수 있다. 버퍼들(608)은 USB 링크(632) 내에 구성된 프로토콜 상태 기계(610)에 의해 제어될 수 있다. 상태 기계(610)는 ULPI I/O 인터페이스(618)를 통해 데이터를 전달하기 위한 링크 프로토콜 제어를 제공하도록 구성된 하나 이상의 USB 링크 프로토콜 상태 기계들을 포함할 수 있다. 실시예들의 일 세트에서, 상태 기계들(610)은 로직 게이트들 및 상태 요소들로부터 구현될 수 있고, 프로세싱 유닛/마이크로프로세서(614)와 달리 재프로그램가능하지 않을 수 있다. SOC(602)에 구성된 DMA 제어기(616)는 USB 링크(632)의 버퍼들(608)의 콘텐트들을 송신/이동하도록 동작할 수 있다. 버퍼들(608)의 콘텐트들은 ULPI I/O 인터페이스(618)를 통해 송신 및/또는 수신되는 패킷들을 표현할 수 있다.
상태 기계들(610)은 확장 PID 토큰을 송신하기 위해 USB 링크(602)를 활성화하도록 구성될 수 있고, 정상 USB 토큰 패킷을 송신하는 방식과 유사 또는 동일 방식으로 토큰 패킷의 나머지가 뒤따른다. 다른 말로, 상태 기계(610)는 ULPI I/O 인터페이스(618)가 표준 ULPI 인터페이스일 때 LPM 확장 트랜잭션에서 사용되는 예비 PID를 송신하도록 구성될 수 있다. 도 6에 도시된 바와 같이, SOC(602)는 ULPI I/O 인터페이스(618)를 통해 12 신호 또는 8 신호 표준 ULPI 버스(630)를 거쳐 ULPI PHY(604)에 결합될 수 있다. USB PHY(604)는 SOC(602)의 내부 또는 외부에 있을 수 있다. 일부 실시예에서, 물리적 계층 장치(604)는 SOC(602) 내에 구성될 수 있고, ULPI 버스(630)는 USB 링크(632)를 ULPI PHY(604)로 결합한다. 다른 실시예에서, ULPI PHY(604)는 예컨대 개별 집적 회로 상에 구성된 SOC(602) 외부에 있을 수 있고, ULPI 버스(630)는 다시 USB 링크(632)를 ULPI PHY(604)로 결합할 수 있다. 다른 경우에, ULPI 인터페이스 표준이 사용될 수 있다. ULPI PHY(604)는 USB PHY(604)가 동작할 수 있는 모드들에 대한 정보를 저장하도록 구성된 레지스터 어레이(628)와 같은 레지스터들의 어레이로 구성될 수 있다. ULPI 레지스터 어레이(628)는 Opmode[1:0]을 구성하는 기능 제어 레지스터(626)의 비트들 [4:3]이 있는 기능 제어 레지스터(626)를 포함할 수 있다. 전술된 바와 같이, Opmode[1:0]는 비트 스터핑 및 ULPI PHY(604)의 NRZI 코딩 기능을 판단할 수 있다. ULPI PHY(604)는 USB D+/D- 선들 상에서 패킷들을 수신 및 송신하도록 구성된 HS 수신기 블럭(624) 및 HS 송신기 블럭(622)을 더 포함할 수 있고, SOC(602)로부터 ULPI 버스(630) 상에서 패킷들을 수신 및 송신하도록 구성된 ULPI 인터페이스 제어 블럭을 또한 포함할 수 있다. ULPI PHY는 ULPI 버스(630) 상에서 USB 링크(632)로부터 수신된 입력, 및 레지스터 어레이(628)(기능 제어 레지스터(626)를 포함)의 내부 레지스터들의 콘텐트들의 기능으로서 USB D+/D- 선들 상에서 어떤 동작을 취하는지 판단하도록 구성될 수 있다. 이에 따라, USB 링크(632)는 USB D+/D- 선들( 파형(504)으로 도 5에 도시된 것과 같음) 상에서 ULPI 확장 PID 토큰을 송신하기 위해 ULPI PHY(604)가 Opmode의 2'b0의 값으로 검증될 수 있는 확장 PID 토큰(신호들 CLKOUT, DATA[7:0], NXT, 및 STP를 이용하여 도 5에 도시된 바와 같이)을 송신하도록 구성될 수 있다. 전체적으로, USB 시스템(600)은 USB 호스트 장치, USB OTG 장치, USB 허브 및/또는 컴퓨터 시스템(도 1-3에 도시된 것과 같음), 및/또는 HSIC(High-Speed Interchip USB) 인터페이스에 포함될 수 있고, 일반적으로 ULPI 인터페이스를 사용하는 임의의 시스템에 포함될 수 있다.
대안적인 구현들이 ULPI 기능과 충돌하지 않고 확장 트랜잭션의 송신을 허용하기 위한 패킷들의 부분들(예를 들어, Tx Cmd의 비트들[3:0]) 또는 다른 선택된 신호들을 검증하도록 사용될 수 있는 신호들(Opmode 코드와 유사함) 및/또는 다른 존재하는 값들 또는 다른 기능 제어 레지스터 값들을 유사하게 인식할 수 있고, 이에 따라 존재하는 ULPI 인터페이스를 사용하여 LPM 부록을 구현한다. 설명 및 도면에 도시된 레지스터들 및 패킷들을 사용하여 구현된 실시예들은 예시적으로 제공되며, 다른 가능한 실시예들의 범위를 명시적으로 개시된 것에 제한하도록 의도되지 않는다.
본 발명의 각종의 양태들의 추가의 변경 및 다른 실시예들은 이 설명에 비추어 본 분야의 당업자에게 자명할 것이다. 따라서 이 설명은 본 발명을 수행하는 일반적인 방식을 당업자에게 교시목적으로 예시하는 것에 불과하다. 여기에 도시 및 기술된 본 발명의 형태들은 실시예들로서 취급되어야 할 것이다. 여기에 기술하고 예시한 요소 및 재료들은 다른 요소 및 재료들로 대체될 수 있고, 부품 및 프로세스가 달리 될 수 있으며, 본 발명의 임의의 특징들은 독립적으로 이용될 수 있으며, 이들은 본 발명에서 기술한 이점을 가진 후라면 본 분야의 당업자에게 자명할 것이다. 여기에 기술한 요소들에 대한 변경은 이하의 청구범위에 기술한 본 발명의 사상 및 범위를 일탈하지 않는 범위 내에서 가능할 것이다.

Claims (21)

  1. 시스템에 있어서,
    제1 버스;
    제2 버스;
    상기 제1 버스에 결합된 송수신기; 및
    상기 제1 버스 및 상기 제2 버스에 결합된 장치를 포함하고,
    상기 송수신기는 데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 상기 제1 버스로 송신하는 것에 의해, 상기 장치로의 데이터 전송을 개시하도록 구성되고,
    상기 송수신기는 상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드 및 대응하는 하나 이상의 패킷들을 상기 데이터 전송의 일부로서 상기 제1 버스로 송신하도록 더 구성되며,
    상기 장치는 상기 제1 코드, 및 상기 예비 PID 코드와 대응하는 하나 이상의 패킷들을 수신하도록 구성되고, 상기 장치는 상기 제1 코드를 기능 제어 코드로 검증하고, 상기 기능 제어 코드가 정상 동작을 나타낼 때 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 상기 제2 버스로 송신하도록 더 구성된 것을 특징으로 하는 시스템.
  2. 청구항 1에 있어서,
    상기 예비 PID 코드는 LPM(Link Power Management; 링크 전력 관리) 확장 토큰 트랜잭션(Extension Token Transaction)의 확장된 PID 토큰이고, 상기 대응하는 하나 이상의 패킷들은 ULPI(Universal Serial Bus Transceiver Macrocell Low-Pin Interface) 확장된 트랜잭션 패킷들을 포함하는 것을 특징으로 하는 시스템.
  3. 청구항 1에 있어서,
    상기 제2 버스는 USB(Universal Serial Bus)이고, 상기 제1 버스는 표준 ULPI 버스인 것을 특징으로 하는 시스템.
  4. 청구항 1에 있어서,
    상기 송수신기는 USB 링크이고, 상기 장치는 ULPI PHY(Physical Layer Device)인 것을 특징으로 하는 시스템.
  5. 청구항 1에 있어서,
    상기 제1 코드는 ULPI 송신 명령 바이트에 포함되는 것을 특징으로 하는 시스템.
  6. 청구항 5에 있어서,
    상기 ULPI 송신 명령 바이트의 값은 8'b01000000인 것을 특징으로 하는 시스템.
  7. 청구항 1에 있어서,
    상기 기능 제어 코드는 ULPI Opmode(operation mode; 동작 모드) 코드인 것을 특징으로 하는 시스템.
  8. USB(Universal Serial Bus) 링크에 있어서,
    ULPI(USB Transceiver Macrocell Low-Pin Interface) 버스 상에서 정보를 송신 및/또는 수신하기 위해 상기 USB 링크를 활성화하도록 구성된 ULPI I/O(Input/Output) 인터페이스; 및
    USB 링크 프로토콜 로직(logic)으로서,
    데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 상기 ULPI I/O 인터페이스를 통해 송신하는 것에 의해, 상기 ULPI 버스 상에서 데이터 전송을 개시하도록 상기 USB 링크를 활성화하고; 및
    상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드 및 대응하는 하나 이상의 패킷들을 상기 개시된 데이터 전송의 일부로서 상기 ULPI I/O 인터페이스를 통해 상기 ULPI 버스로 송신하기 위해 상기 USB 링크를 활성화하도록 구성된, 상기 USB 링크 프로토콜 로직을 포함하고,
    상기 예비 PID 코드는 다른 상태로 변환하기 위해 상기 개시된 데이터 전송의 표적 장치에 대한 요청을 나타내는 것을 특징으로 하는 USB 링크.
  9. 청구항 8에 있어서,
    상기 ULPI I/O 인터페이스를 통해 나가고 들어오는 정보를 저장하도록 구성된 하나 이상의 버퍼들을 더 포함하는 것을 특징으로 하는 USB 링크.
  10. 청구항 8에 있어서,
    상기 ULPI 버스 상에서 상기 USB 링크에 의해 송신 및/또는 수신되는 정보는 USB 트랜잭션(transaction)들의 데이터 패킷들을 포함하는 것을 특징으로 하는 USB 링크.
  11. ULPI PHY(Universal Serial Bus Transceiver Macrocell Low-Pin Interface Physical Layer Device) 장치에 있어서,
    ULPI 버스 상에서 정보를 송신 및/또는 수신하기 위해 상기 ULPI PHY를 활성화하도록 구성된 ULPI 인터페이스 제어 로직; 및
    상기 USB PHY의 동작의 모드들을 나타내는 정보를 저장하도록 구성된 기능 제어 레지스터(register)를 포함하고,
    상기 ULPI PHY는 상기 ULPI 인터페이스 상에서,
    데이터 송신을 나타내고, 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드; 및
    상기 제1 코드의 수신에 이어서 예비(reserved) PID 코드 및 대응하는 하나 이상의 패킷들을 수신하도록 구성되고,
    상기 기능 제어 레지스터의 콘텐트들이 동작의 정상 모드를 나타낼 때 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 USB로 송신하도록 더 구성되는 것을 특징으로 하는 ULPI PHY 장치.
  12. 청구항 11에 있어서,
    상기 USB와 인터페이스하고, 상기 USB 상에서 상기 USB PHY의 패킷들의 송신 및 수신을 적어도 부분적으로 관리하도록 구성된 송수신기 로직을 더 포함하는 것을 특징으로 하는 ULPI PHY 장치.
  13. 확장된 트랜잭션(extended transaction)을 송신하는 방법에 있어서,
    데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 제1 버스로 송신하는 것을 포함하는 데이터 전송을 개시하는 단계;
    상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드 및 대응하는 하나 이상의 패킷들을 상기 데이터 전송의 일부로서 상기 제1 버스로 송신하는 단계;
    상기 제1 코드, 및 상기 예비 PID 코드와 대응하는 하나 이상의 패킷들을 수신하는 단계;
    상기 제1 코드를 기능 제어 코드로 검증하는 단계; 및
    상기 기능 제어 코드가 정상 동작을 나타낼 때, 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 제2 버스로 송신하는 단계를 포함하는 확장된 트랜잭션을 송신하는 방법.
  14. 청구항 13에 있어서,
    상기 제1 코드를 송신하는 단계는 No PID 데이터 송신을 나타내는 ULPI(Universal Serial Bus Transceiver Macrocell Low-Pin Interface) 송신 명령 바이트를 송신하는 단계를 포함하는 것을 특징으로 하는 확장된 트랜잭션을 송신하는 방법.
  15. 청구항 13에 있어서,
    상기 예비 PID 코드를 상기 제1 버스로 송신하는 단계는 LPM(Link Power Management; 링크 전력 관리) 확장된 PID 토큰을 송신하는 단계를 포함하고, 상기 대응하는 하나 이상의 패킷들을 송신하는 단계는 적어도 LPM 토큰 패킷 및 확장된 토큰 패킷을 송신하는 단계를 포함하는 것을 특징으로 하는 확장된 트랜잭션을 송신하는 방법.
  16. 청구항 13에 있어서,
    상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 상기 제2 버스로 송신하는 단계는 상기 ULPI PHY(Physical Layer Device)가 LPM 토큰 패킷 및 확장된 토큰 패킷을 USB로 송신하는 단계를 포함하는 것을 특징으로 하는 확장된 트랜잭션을 송신하는 방법.
  17. 시스템에 있어서,
    데이터 송신을 나타내고 송신되는 데이터가 PID(physical interface device; 물리적 인터페이스 장치) 코드를 갖지 않음을 더 나타내는 제1 코드를 송신하는 것에 의해 ULPI(USB Transceiver Macrocell Low-Pin Interface) 버스 상에서 데이터 전송을 개시하고;
    상기 제1 코드의 송신에 이어서 예비(reserved) PID 코드 및 대응하는 하나 이상의 패킷들을 상기 데이터 전송의 일부로서 상기 ULPI 버스로 송신하도록 구성된 USB(Universal Serial Bus) 링크; 및
    기능 제어 코드를 저장하고;
    상기 제1 코드를 수신하고;
    상기 제1 코드의 수신에 이어서 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 수신하며;
    상기 기능 제어 코드가 동작의 정상 모드를 나타낼 때 상기 예비 PID 코드 및 대응하는 하나 이상의 패킷들을 USB로 송신하도록 구성된 ULPI PHY(Physical Layer Device)
    를 포함하는 시스템.
  18. 청구항 17에 있어서,
    상기 USB 링크는 SOC(system-on-chip) 상에 포함된 것을 특징으로 하는 시스템.
  19. 청구항 18에 있어서,
    상기 ULPI PHY는 상기 SOC 상에 구성된 것을 특징으로 하는 시스템.
  20. 청구항 17에 있어서,
    상기 USB 링크 및 ULPI PHY는,
    USB 호스트 장치;
    USB OTG(on-the-go) 장치;
    USB 허브;
    컴퓨터 시스템;
    HSIC(High-Speed Interchip USB) 인터페이스; 및
    ULPI 인터페이스를 사용하는 시스템 중 하나 이상에 포함된 것을 특징으로 하는 시스템.
  21. 청구항 17에 있어서,
    상기 예비 PID 코드는 다른 상태로 변환하기 위해 상기 개시된 데이터 전송의 표적 장치에 대한 요청을 나타내는 것을 특징으로 하는 시스템.
KR1020107001272A 2007-06-19 2008-06-19 Ulpi phy 인터페이스 표준을 사용하는 usb 2.0 링크 전력 관리 부록의 물리적 장치(phy) 지원 KR101043842B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US94501507P 2007-06-19 2007-06-19
US60/945,015 2007-06-19
US12/141,445 2008-06-18
US12/141,445 US7761645B2 (en) 2007-06-19 2008-06-18 Physical device (PHY) support of the USB2.0 link power management addendum using a ULPI PHY interface standard

Publications (2)

Publication Number Publication Date
KR20100023966A KR20100023966A (ko) 2010-03-04
KR101043842B1 true KR101043842B1 (ko) 2011-06-22

Family

ID=40137694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107001272A KR101043842B1 (ko) 2007-06-19 2008-06-19 Ulpi phy 인터페이스 표준을 사용하는 usb 2.0 링크 전력 관리 부록의 물리적 장치(phy) 지원

Country Status (4)

Country Link
US (1) US7761645B2 (ko)
KR (1) KR101043842B1 (ko)
TW (1) TWI375890B (ko)
WO (1) WO2008157718A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090063717A1 (en) * 2007-08-28 2009-03-05 Bohm Mark R Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface
TWI533138B (zh) * 2009-05-19 2016-05-11 慧榮科技股份有限公司 訊號產生裝置與訊號產生方法
TWI412964B (zh) * 2009-07-21 2013-10-21 用於觸控面板之觸控面板介面系統、觸控裝置、與相關方法
US8416905B2 (en) * 2010-09-24 2013-04-09 Intel Corporation Digital NRZI signal for serial interconnect communications between the link layer and physical layer
US8730978B2 (en) 2010-09-30 2014-05-20 Maxim Integrated Products, Inc Analog front end protocol converter/adapter for SLPI protocol
EP2633418B1 (en) * 2010-10-29 2017-10-04 OCT Circuit Technologies International Limited High speed interchip usb monitoring
US8799532B2 (en) 2011-07-07 2014-08-05 Smsc Holdings S.A.R.L. High speed USB hub with full speed to high speed transaction translator
TWI447585B (zh) * 2011-11-24 2014-08-01 Lin Peng Fei 具有連接主機與裝置的儲存裝置
CN102799550B (zh) * 2012-06-21 2016-01-27 华为终端有限公司 基于芯片间高速接口hsic的唤醒、热插拔方法和设备
US9239810B2 (en) * 2012-06-30 2016-01-19 Intel Corporation Low power universal serial bus
US8683097B2 (en) * 2012-06-30 2014-03-25 Intel Corporation Device connect detection
US8683091B2 (en) 2012-06-30 2014-03-25 Intel Corporation Device disconnect detection
US10237087B2 (en) 2013-09-02 2019-03-19 Samsung Electronics Co., Ltd. Method for controlling transmission speed and electronic device thereof
US9588925B2 (en) * 2014-09-17 2017-03-07 Valens Semiconductor Ltd. USB extension for lossy channel
TWI534627B (zh) * 2015-02-26 2016-05-21 威盛電子股份有限公司 集線器、操作系統與控制方法
US9843436B2 (en) 2015-06-27 2017-12-12 Intel Corporation Flexible interconnect architecture
MY184148A (en) * 2015-12-25 2021-03-23 Intel Corp Power management system
CN106773654B (zh) * 2016-12-12 2019-10-29 中南大学 一种分数阶pid控制器参数优化整定方法
US20190025872A1 (en) * 2017-07-18 2019-01-24 Qualcomm Incorporated Usb device with clock domain correlation
CN107577634B (zh) * 2017-08-29 2020-06-30 上海兆芯集成电路有限公司 芯片组与主机所连接装置的控制方法
US11068433B2 (en) * 2018-10-18 2021-07-20 Texas Instruments Incorporated Serial bus repeater with low power state detection
TWI714243B (zh) * 2019-09-03 2020-12-21 威鋒電子股份有限公司 Usb積體電路
US11703935B2 (en) * 2020-07-31 2023-07-18 Apple Inc. Mechanism for saving power on a bus interface
US11940939B2 (en) * 2022-03-07 2024-03-26 Qualcomm Incorporated Encoding byte information on a data bus with separate code

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050135304A1 (en) * 2003-01-29 2005-06-23 Globespanvirata, Inc. Independent direct link protocol
US7058414B1 (en) * 2000-05-26 2006-06-06 Freescale Semiconductor, Inc. Method and system for enabling device functions based on distance information

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509439B2 (en) * 2005-01-27 2009-03-24 Standard Microsystems Corporation Method for maintaining register integrity and receive packet protection during ULPI PHY to LINK bus transactions
US8261002B2 (en) * 2007-09-11 2012-09-04 Quicklogic Corporation PHY-less ULPI and UTMI bridges

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058414B1 (en) * 2000-05-26 2006-06-06 Freescale Semiconductor, Inc. Method and system for enabling device functions based on distance information
US20050135304A1 (en) * 2003-01-29 2005-06-23 Globespanvirata, Inc. Independent direct link protocol

Also Published As

Publication number Publication date
US7761645B2 (en) 2010-07-20
TWI375890B (en) 2012-11-01
US20080320202A1 (en) 2008-12-25
KR20100023966A (ko) 2010-03-04
WO2008157718A1 (en) 2008-12-24
TW200917047A (en) 2009-04-16

Similar Documents

Publication Publication Date Title
KR101043842B1 (ko) Ulpi phy 인터페이스 표준을 사용하는 usb 2.0 링크 전력 관리 부록의 물리적 장치(phy) 지원
Axelson USB complete: the developer's guide
US8166221B2 (en) Low-power USB superspeed device with 8-bit payload and 9-bit frame NRZI encoding for replacing 8/10-bit encoding
KR100572165B1 (ko) 유니버셜 직렬 버스 디바이스 컨트롤러
US8055919B2 (en) Port power controller for USB hubs with legacy battery charge support
US7657692B2 (en) High-level bridge from PCIE to extended USB
US6567876B1 (en) Docking PCI to PCI bridge using IEEE 1394 link
US8745304B2 (en) USB to SD bridge
CN112597089A (zh) 使用消息总线接口的phy重新校准
US7028109B2 (en) Data transfer control device including buffer controller with plurality of pipe regions allocated to plurality of endpoints
CN113672539A (zh) 通过接口的现有辅助引脚的边带信号传输
US7606964B2 (en) Virtual USB flash memory storage device with PCI express interface, controller and method thereof
KR20080101798A (ko) 외부 부착장치를 컴퓨터 장치로 인터페이스하는 방법
US20130013823A1 (en) High Speed USB Hub with Full Speed to High Speed Transaction Translator
KR20060132847A (ko) 상호-모듈 메모리 액세스를 가지는 다중 모듈 회로 카드
US7225288B2 (en) Extended host controller test mode support for use with full-speed USB devices
US20030200360A1 (en) Data transfer control device, electronic equipment, and data transfer control method
CN107463224B (zh) 显卡扩展板及应用其的主机、计算设备
US6954809B2 (en) Apparatus and method for accessing computer system resources via serial bus
JP2009048444A (ja) Usbデバイスの制御方法、コントローラ及び電子機器
US6883105B2 (en) Method and apparatus for configuration control and power management through special signaling
US7424580B2 (en) Data transfer control device, electronic instrument, program and method of fabricating electronic instrument
US6874047B1 (en) System and method for implementing an SMBus/I2C interface on a network interface card
US7509439B2 (en) Method for maintaining register integrity and receive packet protection during ULPI PHY to LINK bus transactions
US7146440B1 (en) DMA acknowledge signal for an IDE device

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee