KR20230001018A - 범용 직렬 버스를 통한 다중 데이터 라인의 i3c 통신 제공 - Google Patents

범용 직렬 버스를 통한 다중 데이터 라인의 i3c 통신 제공 Download PDF

Info

Publication number
KR20230001018A
KR20230001018A KR1020220040342A KR20220040342A KR20230001018A KR 20230001018 A KR20230001018 A KR 20230001018A KR 1020220040342 A KR1020220040342 A KR 1020220040342A KR 20220040342 A KR20220040342 A KR 20220040342A KR 20230001018 A KR20230001018 A KR 20230001018A
Authority
KR
South Korea
Prior art keywords
data
differential
usb
converter
ended
Prior art date
Application number
KR1020220040342A
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 KR20230001018A publication Critical patent/KR20230001018A/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/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling
    • 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
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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/0016Inter-integrated circuit (I2C)
    • 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

일 실시예에서, 장치는: 싱글-엔드 데이터를 수신하여 디퍼렌셜 데이터로 변환하고, 싱글-엔드 클록 신호를 수신하여 디퍼렌셜 클록 신호로 변환하는 변환기; 변환기에 결합되어 디퍼렌셜 데이터 및 디퍼렌셜 클록 신호를 수신하는 멀티플렉서; 및 멀티플렉서에 결합된 제어기를 포함한다. 장치에 결합된 디바이스가 대체 모드가 가능하다는 표시에 응답하여, 제어기는 데이터 레인들의 복수의 디퍼렌셜 쌍 중 적어도 하나 상에서 디퍼렌셜 데이터를 전송하도록 멀티플렉서를 구성한다. 기타 실시예들이 설명되고 청구된다.

Description

범용 직렬 버스를 통한 다중 데이터 라인의 I3C 통신 제공{PROVIDING I3C COMMUNICATIONS OF MULTIPLE DATA LINES VIA A UNIVERSAL SERIAL BUS}
많은 휴대용 시스템들에서 사용되는, 특히 센서들 및 다른 그러한 디바이스들을 프로세서에 접속하기 위해 사용되는 한 가지 버스 프로토콜은 MIPI Alliance Inc.에 의해 발표된 MIPI I3C 사양 버전 1.1(2019년 12월)(일반적으로 I3C 사양)과 같은 MIPI I3C 사양에 따른 I3C 통신 프로토콜이다. I3C 사양은 하나의 직렬 클록 라인(serial clock line, SCL) 및 하나의 직렬 데이터 라인(serial data line, SDA)을 갖는 버스를 따라 초당 12.5 메가비트(Mbps)까지 통신할 수 있는 2선 직렬 인터페이스를 갖는 I3C 단일 데이터 레이트(Single Data Rate, SDR) 옵션을 현재 정의한다. 이 I3C 사양은 또한 (1개의 SCL 및 4개까지의 SDA 라인을 이용한) 대략 100Mbps까지의 통신을 위해 5개의 직렬 인터페이스를 갖는 높은 데이터 레이트(High Data Rate, HDR) 옵션을 제공한다.
USB 타입-C 배열을 갖는 또 다른 버스 프로토콜, 범용 직렬 버스(Universal Serial Bus, USB)는 USB 타입-C 커넥터를 통해 하나의 I3C SCL 및 하나의 I3C SDA 라인을 운반함으로써 SDR 및 HDR 모드들을 지원한다. 그러나, 다중 SDA 라인으로부터의 I3C-기반 데이터를 통신하기 위한 지원은 없다.
도 1은 일 실시예를 포함할 수 있는 환경의 일부분의 블록도이다.
도 2는 일 실시예가 사용될 수 있는 또 다른 환경의 블록도이다.
도 3은 일 실시예가 사용될 수 있는 또 다른 환경의 블록도이다.
도 4는 일 실시예에 따른 I3C 신호들을 통신하기 위한 USB 타입-C 커넥터의 예시적인 핀 매핑이다.
도 5는 일 실시예에 따른 방법의 흐름도이다.
도 6은 일 실시예를 포함할 수 있는 또 다른 환경의 일부분의 블록도이다.
도 7은 일 실시예에 따른 SPI 신호들을 통신하기 위한 USB 타입-C 커넥터의 예시적인 핀 매핑이다.
도 8은 일 실시예에 따른 시스템의 블록도이다.
다양한 실시예들에서, 하나 이상의 프로토콜의 정보는 또 다른 프로토콜(예를 들어, USB 프로토콜)의 버스들 및 회로를 통해 부분적으로 통신될 수 있다. 그리고 더 구체적으로는, 본 명세서에 설명된 기법들 및 회로는 (다중 데이터 라인을 갖는 HDR 모드와 같은) 고속 또는 미래의 고속 모드에서의 I3C 데이터의 통신을 가능하게 한다. 이것이 본 명세서에 설명된 주요 구현이지만, 실시예들은 USB 버스를 통해 다른 프로토콜들의 정보를 통신하기 위해 사용될 수 있다. 일 예로서, 직렬 주변 장치 인터페이스(Serial Peripheral Interface, SPI) 프로토콜의 데이터가 이러한 방식으로 통신될 수 있다.
본 명세서에 설명되는 기법들은 USB 리셉터클 또는 포트를 통해 USB 타입-C와 같은 직렬 버스 프로토콜을 사용하여 데이터를 송신하는 것을 포함하며, 여기서 데이터는 초기에 상이한 프로토콜, 예컨대, I3C 프로토콜에 따라 포맷팅된다. 더 구체적으로는, 실시예들은 USB 타입-C 커넥터의 디퍼렌셜(differential) 신호들을 사용하여 다중 SDA 라인을 갖는 I3C 구현을 투명하게 스케일링할 뿐만 아니라, SCL 주파수를 고유(native) 또는 베이스 버스 속도를 넘어 증가시킬 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "USB 타입-C"는 USB 타입-C 케이블 및 커넥터 사양 개정판 2.1(2021년 5월 27일)과 같은 USB 타입-C 사양, 또는 임의의 보정, 업데이트, 미래의 버전, 및/또는 이에 대한 개정에 따른 회로의 구현들을 지칭한다는 것을 이해해야 한다. 그리고, 다음 차례로, 용어 "I3C"는, 본 명세서에서 사용될 때, MIPI I3C 사양 버전 1.1(2019년 12월), 또는 임의의 보정, 업데이트, 미래의 버전, 및/또는 이에 대한 개정에 따른 회로의 구현을 지칭한다.
이를 위해, 실시예들은 I3C SDA 및 SCL 시그널링을 위한 USB 타입-C 커넥터 핀들의 매핑 또는 할당을 제공한다. 또한, 다중 SDA 라인의 대역폭은 시간 멀티플렉싱 또는 주파수 분할 멀티플렉싱과 같은 다른 메커니즘들을 사용하여 USB 레인(예를 들어, Tx/Rx)을 사용하여 집성될 수 있다. I3C 데이터(단일 또는 다중의 SDA)의 시간 멀티플렉싱은 USB 타입-C 접속을 통해 송신하기 위해 USB 패킷들로/로부터 I3C 데이터를 패킷화/탈패킷화하는(depacketize) 하드웨어 또는 펌웨어/소프트웨어에 의해 핸들링될 수 있다. 예를 들어, USB4 터널링을 사용할 때, I3C 데이터는 커스텀 I3C 어댑터들에 의해 USB4 터널링된 패킷들로/로부터 패킷화/탈패킷화될 수 있고, 다른 USB4 터널링된 프로토콜들과 시간 멀티플렉싱될 수 있다. 유사하게, 하드웨어(가능하게는 펌웨어 및/또는 소프트웨어와 연계됨)는 주파수 분할 멀티플렉싱을 사용하여 USB 포맷이 되도록 패킷화된 I3C 데이터를 라우팅하여 I3C 데이터에 대해 이용가능한 USB 대역폭을 할당할 수 있다.
이제 도 1을 참조하면, 실시예를 포함할 수 있는 환경(100)의 일부분의 블록도가 도시된다. 도 1에 도시된 바와 같이, 환경(100)은, 예들로서, 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터 등과 같은 소형 휴대용 디바이스로부터 데스크톱 또는 서버 시스템과 같은 대형 시스템에 이르는, 임의 타입의 컴퓨터 시스템일 수 있다. 어쨌든, 도 1에서, 환경(100)은 USB 타입-C 대체 모드(alternate mode)들 및 다른 대체 모드들에서 동작하는 능력을 갖는 호스트 컴퓨터 시스템(110)을 포함한다. 본 명세서의 특정 실시예들은 더 구체적으로는 데이터 및 다른 정보가 I3C 통신 프로토콜에 따라 USB 타입-C 회로를 통해 통신될 수 있는 I3C 대체 모드에서 동작할 수 있는 시스템들에 관한 것이다. 도 1의 하이 레벨에서, 호스트 컴퓨터 시스템(110)의 제한된 수의 컴포넌트들이 도시되어 있다는 것을 이해해야 한다.
여전히 도 1을 참조하면, 호스트 컴퓨터 시스템(110)은 도시된 바와 같이 USB 타입-C 케이블(148)을 통해 PD 가능 이중 역할 디바이스인 디바이스(150)에 결합된다. 디바이스(150)가 증강 현실/가상 현실(ARVR) 헤드셋, 센서 시스템, 컴퓨팅 가속기, 주변 장치 디바이스 또는, 예들로서, 카메라, 터치스크린, 자동차 디바이스, 메모리에 대한 인터페이스, 또는 디버그 타깃(또 다른 호스트 시스템과 같은 것)을 비롯한 임의의 다른 이러한 디바이스와 같은 임의 타입의 디바이스일 수 있다는 것을 이해해야 한다. 디바이스(150)가 본 명세서에 설명되는 바와 같은 I3C 대체 모드를 비롯한 대체 모드에서 추가로 동작할 수 있다는 것을 이해해야 한다. 도 1의 하이 레벨에서, 제한된 수의 디바이스(150)의 컴포넌트들이 도시됨을 이해해야 한다.
실시예에서, 실시예에 따른 USB 타입-C I3C 대체 모드는 USB PD(power delivery) 협상을 통해 검출될 수 있다. 이러한 협상은 I3C 대체 모드를 지원하는 호스트 디바이스에 대한 PD 가능 USB 디바이스의 접속에 응답하여 일어날 수 있다. 이러한 협상을 통해, 이런 I3C 대체 모드 및 USB 디바이스의 I3C 능력들은, SVID(Standard or Vendor ID) 및 PD 메시지들이 I3C 제어기 및/또는 타깃 디바이스로서의 디바이스의 역할, I3C 클록 주파수, 및 단일 또는 다중 SDA 라인을 갖는 구성과 같은 I3C 디바이스의 능력들을 인식하기 위한 모드들을 적어도 부분적으로 이용하여 발견될 수 있다.
이러한 특정 구현이 설명되지만, 실시예들은 본 명세서에 설명된 바와 같이 고속에서의 다른 프로토콜들의 정보의 통신을 가능하게 하도록 USB 타입-C 또는 다른 직렬 버스의 대체 모드들을 강화하기 위해 더 일반적으로 사용될 수 있다는 것을 이해해야 한다.
여전히 도 1을 참조하면, 호스트 시스템(110)은 PD 제어기(120)를 포함한다. 본 명세서의 실시예들에서, PD 제어기(120)는 원격 링크 파트너의 능력들을 결정하기 위해 원격 링크 파트너와의 발견 통신을 수행할 수 있다. 본 명세서에 설명된 바와 같이, 접속된 디바이스가 I3C 대체 모드가 가능하다는 결정에 응답하여, PD 제어기(120)는 이 대체 모드를 가능하게 하도록 호스트 컴퓨터 시스템(110)의 다양한 회로를 구성할 수 있다. 더 구체적으로는, 협상의 형태일 수 있는 이 통신에 응답하여, PD 제어기(120)는 멀티플렉서(140)와 변환기(converter)(135) 둘 모두를 구성할 수 있다. 멀티플렉서(140)는 리셉터클(145), 즉 USB 타입-C 리셉터클로의 케이블의 실제 물리적 접속 및 동작 모드에 기초하여 정확한 신호 라인들을 따라 정보의 적절한 라우팅을 가능하게 하는 선택 회로를 포함할 수 있다. PD 제어기(120)는 싱글-엔드-투-디퍼렌셜(single-ended-to-differential) 변환을 수행하도록 변환기(135)를 추가로 구성할 수 있고, 그 반대도 가능하다. 이러한 방식으로, (클록 라인(SCL)(131) 및 하나 이상의 데이터 라인(SDA)(133)을 포함하는) I3C 버스(132)를 통한 싱글-엔드 통신들은 USB 타입-C 케이블(148)의 적절한 레인(lane)들을 통한 통신을 위한 디퍼렌셜 시그널링으로 변환되고, 그 반대도 마찬가지이다.
여전히 도 1을 참조하면, 호스트 시스템(110)은 회로 보드 또는 집적 회로의 일부로서 존재하는 전도성 트레이스들을 통해 구현될 수 있는 내부 라인들을 추가로 포함한다. 구체적으로, USB 기반 라인들은 변환기(135)와 멀티플렉서(140), 및 멀티플렉서(140)와 리셉터클(145)을 결합할 수 있다. 또한, 구성 정보는 구성 라인들, 예를 들어, PD 제어기(120)와 리셉터클(145) 사이에 결합된 CC(configuration channel) 상에서 (그리고 PD 제어기(120)로부터 변환기(135) 및 멀티플렉서(140)로의 추가적인 구성 제어 라인들을 통해) 통신될 수 있다. PD 제어기(120)는 Tx/Rx 및 D+/D- 신호들이 적절하게 라우팅되는 것을 보장하도록 멀티플렉서(140)를 구성한다. PD 제어기(120)는 또한 SCL 주파수 및 SDA 라인들을 위한 변환기(135)를 구성한다.
I3C 통신을 제공하기 위해, 호스트 컴퓨터 시스템(110)은 클록 라인(131)을 통해 클록 신호를 그리고 데이터 라인(들)(133)을 통해 데이터를 생성하고 통신할 수 있는 I3C 제어기(130)를 포함한다. 동작시, I3C 제어기(130)는, 적어도 특정 동작 모드에서, 버스 관리자가 되도록 구성될 수 있다. 도 1의 예시의 용이함을 위해 도시되지는 않았지만, I3C 제어기(130)는, 다음 차례로, 처리 회로, 예를 들어, SoC, 메모리 등등과 같은, 호스트 컴퓨터 시스템(110)의 추가 회로와 통신할 수 있다는 것을 이해해야 한다. 일부 구현들에서, I3C 제어기(130) 자체는 SoC 또는 다른 집적 회로 내에 구성될 수 있다.
실시예들에서, 디바이스(150)의 PD 제어기(160)와 호스트 시스템(110)의 PD 제어기(120) 사이의 협상은 디바이스(150)가 시스템(110)에 결합될 때 일어날 수 있다. 이 협상 - 그의 상세사항이 이하에서 더 설명됨 - 에 의해, I3C 대체 모드에서 동작하는 그의 능력을 포함하여, 디바이스(150)의 능력들이 식별될 수 있다. 이러한 협상에 기초하여, PD 제어기(160)는 멀티플렉서(180) 및 변환기(175)를 포함하는 디바이스(150)의 상이한 컴포넌트들을 적절히 구성할 수 있으며, 이들은 호스트 시스템(110)에 포함된 멀티플렉서 및 변환기와 관련하여 앞서 논의한 것과 유사하게 동작할 수 있으며, 따라서 성공적인 PD 협상 후에 USB 디퍼렌셜 신호들과 I3C 싱글-엔드 신호들 간의 변환이 일어난다.
여전히 도 1을 참조하면, 디바이스(150)는 클록 라인(181) 및 하나 이상의 데이터 라인들(183)을 포함하는 I3C 버스(182)를 통해 변환기(175)에 결합되는 복수의 I3C 디바이스, 즉 I3C 타깃 디바이스들(1701-170n)을 추가로 포함할 수 있다. 성공적인 PD 협상 후에, 변환기(175)는 타깃 디바이스들(170)로부터의 수신된 I3C 싱글-엔드 신호들을 USB 케이블(148)을 통한 통신을 위해 디퍼렌셜 형태로 변환할 수 있고, 그 반대도 가능하다. 도 1에서는 이러한 특정 구현이 도시되지만, 실시예들은 이와 관련하여 한정되지 않는다는 것을 이해해야 한다.
이제 도 2를 참조하면, 실시예가 사용될 수 있는 또 다른 환경의 블록도가 도시된다. 더 구체적으로, 도 2의 환경(200)은 호스트 시스템(205), 즉 디버그 호스트가 USB 인터페이스를 통해 I3C 대체 동작 모드들을 가능하게 할 수 있는 USB 디버그 프로브(210)에 결합되는 디버그 및 테스트 시스템과 같은 테스트 환경이다. 다음 차례로, 프로브(210)는 USB 타입-C 케이블(248)을 통해 디바이스(250), 즉 I3C 대체 모드 동작이 추가로 가능할 수 있는 PD 가능 디버그 타깃 플랫폼에 결합된다. 디바이스(150)와 같은 도 2의 특정 컴포넌트들은 일반적으로 도 1의 시스템(100)과 동일하게 유사하게 구성될 수 있다는 점에 유의한다(따라서, 도 1의 "100" 시리즈 대신에 "200" 시리즈로 되지만, 참조 번호들은 일반적으로 동일한 컴포넌트들을 가리킨다). 게다가, 디버그 프로브(210)는 도 1의 호스트 디바이스(110)의 뷰에 도시된 컴포넌트들과 (적어도 부분적으로) 동일하게 유사하게 구성될 수 있다. 그러한 유사한 컴포넌트들에 더하여, 디버그 프로브(210)는 프로브(210)를 또 다른 USB 인터페이스(206)를 통해 호스트 시스템(205)에 결합하는 리셉터클(212)을 통해 I3C 통신을 가능하게 하는 USB I3C 기능(215)을 추가로 포함한다.
또 다른 구현들에서, USB 디바이스는 허브를 통해 호스트에 접속될 수 있다. 이제 도 3을 참조하면, 실시예가 사용될 수 있는 또 다른 환경의 블록도가 도시된다. 더 구체적으로는, 도 3의 환경(300)은 I3C 대체 모드를 갖는 USB PD 가능 디바이스, 즉 USB 디바이스(350)가 허브(395)를 통해 호스트 시스템(310)에 결합되는 환경이다. 알 수 있는 바와 같이, 호스트 시스템(310) 및 USB 디바이스(350)는 도 1의 환경(100)에서의 대응하는 컴포넌트들과 유사하게 구성될 수 있다(따라서, 도 1의 "100" 시리즈 대신에 "300" 시리즈로 되지만, 참조 번호들은 일반적으로 동일한 컴포넌트들을 가리킨다).
알 수 있는 바와 같이, 허브(395)는 라우터(390) 및 PD 제어기(385)를 포함하며, 이들은 리셉터클들(392, 394)을 통한 USB 시그널링의 통신을 가능하게 하기 위해 본 명세서에 설명된 바와 같이 동작할 수 있다. 이러한 배열로, I3C-기반 통신들이 USB 타입-C 시그널링을 통해 발생할 수 있다. 도 3의 실시예에서는 이러한 하이 레벨로 도시되지만, 많은 변형들 및 대안들이 가능하다는 것을 이해해야 한다.
상이한 구현들에서, I3C 클록 및 데이터 신호들에 대한 USB 타입-C 접속 신호들의 다양한 매핑들이 있을 수 있다. 이제 도 4를 참조하면, I3C 신호들을 통신하기 위한 USB 타입-C 커넥터의 하나의 예시적인 핀 매핑이 도시된다. 더 구체적으로, 도 4는 복수의 핀(A1-A12, B1-B12)을 포함하는 USB 타입-C 리셉터클(400)을 도시한다. USB 타입-C 배열에 의하면, 리셉터클(400)(및 리셉터클(400) 내로 플러그하는 대응하는 플러그)에서 핀들의 중복성이 있기 때문에 인터페이스가 플립(flip)가능할 수 있다는 점에 유의한다. 이러한 핀들의 방향은 위의 구현들에 도시된 바와 같이 멀티플렉서에 의해 핸들링될 수 있다.
일반적으로, 리셉터클(400)은, 케이블 부착 검출, 오리엔테이션 검출, 역할 검출 및 전류 모드 검출을 위해 사용되는 구성 채널(CC1, CC2)과 함께, USB 2.0 D+/D- 데이터 버스, USB 3.1 송신/수신(Tx/Rx) 디퍼렌셜 쌍들을 위한 핀들을 포함한다. 케이블 버스 전력은 버스 핀들(Vbus)을 통해 그리고 케이블 접지는 접지 핀들(GND)을 통해 제공될 수 있다. 게다가, 한 쌍의 SBU(sideband use) 핀들(SBU1, SBU2)이 또한 존재할 수 있다.
도 4에 도시된 바와 같이, 일 예시적 매핑에서, I3C 클록 신호(SCL)는 한 쌍의 핀들(420)(D+/D-) 상에서 또는 핀들(430)(즉, SBU1 또는 SBU2 핀들)을 통해 (디퍼렌셜로) 통신될 수 있다. 다음 차례로, 단일 데이터 라인 또는 다중 데이터 라인들을 따라 통신할 수 있는 I3C 데이터(SDA)는 핀들(4101 및/또는 4102), 즉 Tx/Rx 디퍼렌셜 쌍들을 통해 (디퍼렌셜로) 통신될 수 있다. 도 4에서는 이러한 특정 매핑으로 도시되지만, 대안 매핑들이 가능하다는 것을 이해해야 한다.
따라서, 실시예들에 의해, USB I3C 디바이스는 USB 타입-C 접속의 디퍼렌셜 신호들 및 싱글-엔드 및 디퍼렌셜 시그널링 사이의 변환을 레버리징함으로써 다중 SDA 및 더 높은 클록 주파수들로 스케일링할 수 있다. 동시에, SDA 및 SCL 통신들에 대한 기본 I3C 디바이스들 및 I3C 정의들은 변경되지 않는다.
이제 도 5를 참조하면, 실시예에 따른 협상 방법의 흐름도가 도시된다. 더 구체적으로, 도 5에서, 방법(500)은 호스트 컴퓨팅 시스템(510)과 USB 디바이스(520) 사이의 협상을 수행하기 위해 사용될 수 있고, 호스트 시스템(510)은 다운스트림 대면 포트(downstream facing port, DFP)를 포함하고 USB 디바이스(520)는 업스트림 대면 포트(UFP)를 포함한다. 본 명세서의 실시예들에서, 방법(500)의 협상은 본 명세서에 설명된 바와 같은 I3C 대체 모드를 포함하는 USB 타입-C 대체 모드들의 발견 및 구성을 가능하게 하는 동작들을 포함할 수 있다. 실시예들에서, 방법(500)은 펌웨어, 소프트웨어, 및/또는 이들의 조합들과 함께, 이러한 디바이스들에 존재하는 하드웨어 회로에 의해 수행될 수 있다.
도시된 바와 같이, 방법(500)은 호스트 시스템이 접속된 디바이스의 아이덴티티를 발견하기 위한 통신을 발행하는 것으로 시작한다(블록 550). 다음 차례로, USB 디바이스는 이 발견 요청을 확인 응답한다(블록 555). 이들 동작들을 통해, 호스트 시스템은 접속된 디바이스가 누구인지를 식별하고, USB 디바이스는 대체 동작 모드들에 대한 능력을 가지는 주변장치로서 그 구성을 표시한다.
여전히 도 5를 참조하면, 다음으로 560에서, 호스트 시스템은 모든 ID들이 발견될 수 있도록 USB 디바이스가 확인응답하는(565에서) SVID(Standard or Vendor ID)들을 발견하기 위한 요청을 발행할 수 있다. 다음으로 570에서 호스트 시스템은 대체 모드들을 포함하는 동작 모드들의 발견을 추구한다. 이에 응답하여, USB 디바이스는 확인응답한다(575에서). 예들에서, 그러한 모드 발견은 USB 디바이스가 I3C 디바이스 역할을 갖는다는 것을 나타낼 수 있고, I3C 속도를 포함하는 그것의 구성 능력들, 및 데이터 통신이 단일 또는 다중 데이터 라인을 통하는지를 추가로 식별할 수 있다.
마지막으로, 호스트 시스템이 진입 모드를 발행하고 USB 디바이스가 585에서 확인응답하는 580 및 585에 도시된 바와 같이, 구성 프로세스가 수행될 수 있다. 이러한 방식으로, I3C 데이터 경로는 호스트 시스템(510)으로부터의 진입 요청에 기초하여 USB 디바이스(520) 내에 구성될 수 있다. 이 구성은 I3C 대체 모드로의 진입을 가능하게 하고, 버스 속도들 및 단일 또는 다중 데이터 레인을 포함하는 구성 파라미터들뿐만 아니라, (예를 들어, I3C 제어기 또는 I3C 타깃 디바이스로서의) I3C 디바이스 역할을 위해 USB 디바이스를 구성한다. 도 5의 실시예에서는 이러한 하이 레벨로 도시되지만, 변형들 및 대안들이 가능하다는 것을 이해해야 한다.
위에서 논의된 바와 같이, USB 버스를 통해 다른 프로토콜들의 시그널링 정보를 운반하기 위해 다른 구현들이 사용될 수 있다. 특정 구현에서, SPI 가능 디바이스는 USB 링크를 통해 통신할 수 있다. 일부 상황들에서, 주어진 디바이스는 앞서 논의한 I3C 대체 모드 및 SPI 대체 모드를 포함하는 다중 대체 모드가 가능할 수 있다. 다른 경우들에서, 디바이스는 이러한 대체 모드들 중 하나만이 가능할 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "SPI"는 본 명세서에서 사용되는 바로는 애플리케이션 노트 AN991/D(2002년 1월, Freescale Semiconductors)에 따라 복수의 라인을 통해 직렬로 통신하는 회로의 현재 구현들, 또는 이에 제한되는 것은 아니지만, eSPI(Enhanced Serial Peripheral Interface) 인터페이스 베이스 사양 버전 1.0(Intel Corporation으로부터 입수가능한 (2016년 1월))에 따른 소위 eSPI(enhanced SPI) 프로토콜, 또는 이에 대한 임의의 수정들, 업데이트들, 미래 버전들, 및/또는 개정들을 포함하여, 이에 대한 임의의 수정들, 업데이트들, 미래 버전들, 및/또는 개정들을 지칭한다.
이제 도 6을 참조하면, 실시예를 포함할 수 있는 환경(600)의 일부분의 블록도가 도시된다. 도 6의 환경에서, 호스트 컴퓨터 시스템(610)은 일반적으로 도 1의 호스트 컴퓨터 시스템(110)의 동일한 형태를 취할 수 있다는 점에 유의한다(따라서, 참조 번호들은 일반적으로, 도 1의 "100" 시리즈 대신에 "600" 시리즈가 되지만, 동일한 컴포넌트들을 가리킨다). 그러나, 이러한 구현에서, 호스트 컴퓨터 시스템(610)은 SPI 버스(626)를 통해 통신할 수 있는 SPI 제어기(625)를 추가로 포함한다. 도시된 바와 같이, SPI 버스(626)는 칩 선택 라인, 클록 라인(SCLK), 출력 라인 COTI(controller out/target in) 라인 및 CITO(controller in/target out) 라인을 포함하여 4개의 직렬 라인을 갖는다. SPI 버스(626)의 적어도 일부 라인들은 멀티플렉서(640)에 더 결합되는 변환기(628)에 결합된다.
추가로 도시된 바와 같이, PD 제어기(620)는 변환기(628)를 구성할 수 있다. 도 6의 실시예에서, 변환기(628)는 직렬 정보를 디퍼렌셜 정보로 변환하도록 구성될 수 있다(더 구체적으로, 변환기(628)는 SPI-싱글 엔드 CITO 및 COTI 시그널링, 및 선택적으로 SCLK, CS 시그널링 중 하나 이상으로/으로부터 디퍼렌셜 신호 인코딩/디코딩을 수행하기 위해 사용될 수 있다). 이런 SPI 대체 모드는 SVID(Standard or Vendor ID)를 사용하는 USB PD 메시지들 및 PD 메시지들이 이 디바이스의 SPI 능력들을 인식하기 위한 모드들을 통해 식별되고 발견될 수 있다는 점에 유의한다. 이러한 협상은 도 5에서 전술된 바와 같이 일어날 수 있다는 점에 유의한다. 다른 양태들에서, 호스트 컴퓨터 시스템(610)은 도 1의 호스트 컴퓨터 시스템(110)과 동일하게 구성될 수 있다.
도 6에 도시된 실시예에서, CS 시그널링은 주어진 SBU 핀을 통해 싱글-엔드로 전송되고 따라서 변환기(628)를 바이패스할 수 있다는 것에 유의한다. 또 다른 구현에서, SCLK 및 CS 둘 모두는 SBU1 및 SBU2 핀들 및 따라서 바이패스 변환기(628)를 통해 라우팅될 수 있다. 도 6의 구현에서, (오직) SBU 핀들을 통해 라우팅되는 CS 시그널링에 의해, 2개의 SPI 타깃 디바이스(즉, SBU1 상의 CS1 및 SBU2 상의 CS2)가 존재할 수 있다. 그러나, 시간 멀티플렉싱 메커니즘을 사용함으로써, 다중 타깃은 USB 타입-C 핀들에 대한 제한을 갖지 않고 타깃팅될 수 있다.
유사하게, PD 가능 다중 역할 장치인 디바이스(650)는 도 1의 디바이스(150)와 유사하게 구성될 수 있으며, 변환기(628)와 유사하게 동작할 수 있는, 변환기(695)에 결합되는 하나 이상의 SPI 타깃 디바이스(1901,2)가 추가된다. 이러한 배열로, SPI 데이터는 USB 타입-C 접속, 즉 USB 케이블(648)의 디퍼렌셜 시그널링을 통해 라우팅될 수 있다.
이제 도 7을 참조하면, SPI 신호들을 통신하기 위한 USB 타입-C 커넥터의 예시적인 핀 매핑이 도시된다. 위에서 논의된 도 4에 도시된 매핑에서와 같이, USB 타입-C 리셉터클(700)은 핀들(A1-A12, B1-B12)을 포함한다.
이 실시예에서, COTI 시그널링은 핀들(710A, 710B)을 통해 Tx 디퍼렌셜 쌍들을 따라 디퍼렌셜로 통신될 수 있다. 유사하게, CITO 시그널링은 핀들(715A, 715B)을 통해 Rx 디퍼렌셜 쌍들을 따라 디퍼렌셜로 통신될 수 있다. 더 도시된 바와 같이, SCLK는 핀들(720)을 통해 디퍼렌셜로 전송될 수 있다(D+/D-). 다음 차례로, 칩 선택 신호들이 핀들(730)(즉, SBU1 및 SBU2)을 통해 싱글-엔드로 전송될 수 있다. 물론, 도 7에서는 이러한 특정 매핑으로 도시되지만, 대체 매핑들도 가능하다.
이제 도 8을 참조하면, 실시예에 따른 시스템의 블록도가 도시된다. 도 8에 도시된 바와 같이, 멀티프로세서 시스템(800)은 포인트-투-포인트 인터커넥트(850)을 통해 결합되는 제1 프로세서(870) 및 제2 프로세서(880)를 포함한다. 도 8에 도시된 바와 같이, 프로세서들(870 및 880) 각각은 대표적인 제1 및 제2 프로세서 코어들(즉, 프로세서 코어들(874a 및 874b) 및 프로세서 코어들(884a 및 884b))을 포함하는 많은 코어 프로세서들일 수 있다.
여전히 도 8을 참조하면, 제1 프로세서(870)는 MCH(memory controller hub)(872) 및 P-P(point-to-point) 인터페이스들(876 및 878)을 추가로 포함한다. 마찬가지로, 제2 프로세서(880)는 MCH(882) 및 P-P 인터페이스(886 및 888)를 포함한다. 도 8에 도시된 바와 같이, MCH들(872, 882)은 프로세서들을 각자의 메모리들, 즉 메모리(832) 및 메모리(834)에 결합하며, 이들은 각자의 프로세서들에 국지적으로 소속된 시스템 메모리(예로서, DRAM)의 일부분들일 수 있다. 제1 프로세서(870) 및 제2 프로세서(880)는 제각기 P-P 인터커넥트들(862 및 864)을 통해 칩셋(890)에 결합될 수 있다. 도 8에 도시된 바와 같이, 칩셋(890)은 P-P 인터페이스들(894 및 898)을 포함한다.
게다가, 칩셋(890)은 칩셋(890)을 P-P 인터커넥트(839)에 의해 고성능 그래픽 엔진(838)과 결합하는 인터페이스(892)를 포함한다. 도 8에 도시된 바와 같이, 다양한 입력/출력(I/O) 디바이스들(814)이 제1 버스(816)를 제2 버스(820)에 결합하는 버스 브리지(818)와 함께 제1 버스(816)에 결합될 수 있다. I/O 디바이스들 중 하나 이상은 I3C 및/또는 SPI 정보가 본 명세서에 설명되는 바와 같이 대체 모드에서 동작하는 USB 타입-C 인터커넥트를 사용하여 디퍼렌셜로로 통신될 수 있도록 USB 및 I3C 및/또는 SPI 기능성을 가질 수 있다는 점에 유의한다. 일 실시예에서, 예를 들어, 키보드/마우스(822), 통신 디바이스들(826), 및 코드(830)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장 디바이스와 같은 데이터 저장 유닛(828)을 포함하는 다양한 디바이스들이 제2 버스(820)에 결합될 수 있다. 또한, 오디오 I/O(824)는 제2 버스(820)에 결합될 수 있다.
아래의 예는 추가 실시예들과 관련된다.
일 예에서, 장치는: 싱글-엔드 데이터를 수신하여 디퍼렌셜 데이터로 변환하고, 싱글-엔드 클록 신호를 수신하여 디퍼렌셜 클록 신호로 변환하는 변환기; 변환기에 결합되어 디퍼렌셜 데이터 및 디퍼렌셜 클록 신호를 수신하는 멀티플렉서; 및 멀티플렉서에 결합된 제어기를 포함하고, 여기서 장치에 결합된 디바이스가 대체 모드가 가능하다는 표시에 적어도 부분적으로 기초하여, 제어기는 데이터 레인들의 복수의 디퍼렌셜 쌍 중 적어도 하나 상에서 디퍼렌셜 데이터를 디바이스에 전송하도록 멀티플렉서를 구성한다.
예에서, 장치는 싱글-엔드 데이터 및 싱글-엔드 클록 신호를 변환기에 제공하는 I3C 제어기를 추가로 포함한다.
예에서, 변환기는 마더보드 상에 구성되고, I3C 제어기는 마더보드에 결합된 집적 회로 내에 구성된다.
예에서, I3C 제어기는 자연 I3C 버스 주파수보다 큰 주파수에서 싱글-엔드 클록 신호 및 싱글-엔드 데이터를 전송한다.
예에서, 변환기는 복수의 싱글-엔드 데이터를 복수의 디퍼렌셜 데이터로 동시에 변환하고, 변환기는 변환기와 I3C 제어기 사이에 결합된 I3C 버스의 복수의 데이터 라인을 통해 복수의 싱글-엔드 데이터를 수신한다.
예에서, 멀티플렉서는 장치와 디바이스 사이에 결합된 USB 인터커넥트를 통해 디퍼렌셜 데이터를 디바이스에 전송한다.
예에서, 멀티플렉서는 USB 인터커넥트를 통해 디퍼렌셜 클록 신호를 디바이스에 전송한다.
예에서, 장치는: USB 인터커넥트의 복수의 측파대 사용 라인을 통해 디퍼렌셜 클록 신호를 디바이스에 전송하고; 및 USB 인터커넥트의 복수의 구성가능한 라인들의 쌍을 통해 디퍼렌셜 데이터를 디바이스에 전송한다.
예에서, 멀티플렉서는 장치와 디바이스 사이에 결합된 USB 타입-C 인터커넥트를 통해 디퍼렌셜 데이터를 디바이스에 전송하고, 여기서 디퍼렌셜 데이터는 I3C 통신 프로토콜의 것이다.
예에서, 제어기는 디바이스가 대체 모드가 가능하다는 것을 식별하기 위해 디바이스와 협상을 수행하는 USB 타입-C PD 제어기를 포함하며, 대체 모드는 SPI 모드를 포함하고, 여기서 제어기는 USB 인터커넥트의 적어도 하나의 측파대 사용 라인을 통해 적어도 하나의 칩 선택 신호를 디바이스에 전송하도록 멀티플렉서를 추가로 구성한다.
또 다른 예에서, 방법은: USB 링크를 통해 디바이스에 결합된 호스트 시스템과의 협상을 개시하는 단계; 협상 동안, 디바이스가 I3C 버스의 복수의 SDA 라인의 데이터가 USB 링크를 통해 통신되는 대체 모드가 가능하다는 것을 표시하는 단계; 상기 호스트 시스템으로부터 제1 구성 정보를 수신하고, 상기 제1 구성 정보에 응답하여, 상기 복수의 SDA 라인 중 적어도 하나에서 통신되는 상기 데이터의 싱글-엔드-투-디퍼렌셜 변환을 수행하도록 상기 디바이스의 변환기를 구성하는 단계; 및 호스트 시스템으로부터 제2 구성 정보를 수신하고, 제2 구성 정보에 응답하여, 디퍼렌셜-투-싱글-엔드 변환을 수행하여 I3C 버스의 SCL 라인 상의 통신을 위한 SCL을 제공하도록 변환기를 구성하는 단계를 포함한다.
예에서, 방법은 디바이스로 하여금 USB 링크를 통해 디퍼렌셜 클록 신호를 수신하고, 디퍼렌셜 클록 신호를 SCL로 변환하고, 및 I3C 버스의 SCL 라인 상의 통신을 위해 SCL을 안내하도록 야기하는 단계를 추가로 포함한다.
예에서, 방법은 디바이스로 하여금 데이터를 디퍼렌셜 데이터로 변환하고 USB 링크를 통해 디퍼렌셜 데이터를 호스트 시스템에 안내하도록 야기하는 단계를 추가로 포함한다.
예에서, 방법은 디바이스로 하여금 디퍼렌셜 데이터를 USB 링크를 통해 호스트 시스템에 제1 버스 속도로 전송하게 야기하는 단계를 추가로 포함하고, 제1 버스 속도는 I3C 버스의 고유 버스 속도보다 크다.
예에서, 방법은 디바이스로 하여금 USB 링크를 통해 호스트 시스템으로부터 제2 디퍼렌셜 데이터를 수신하고, 제2 디퍼렌셜 데이터를 제2 싱글-엔드 데이터로 변환하고, 제2 싱글-엔드 데이터를 복수의 SDA 라인을 통해 I3C 제어기에 전송하게 야기하는 단계를 추가로 포함한다.
또 다른 예에서, 디바이스는: 싱글-엔드 데이터를 수신하여 디퍼렌셜 데이터로 변환하는 변환기; 상기 변환기에 결합되어 상기 디퍼렌셜 데이터를 수신하는 멀티플렉서; 및 멀티플렉서에 결합된 제어기를 포함한다. 디바이스와 호스트 시스템 간의 협상에 적어도 부분적으로 기초하여, 제어기는: 싱글-엔드 데이터를 디퍼렌셜 데이터로 변환하도록 변환기를 구성하고 - 변환기는 SPI를 통해 싱글-엔드 데이터를 수신함 -; 및 디바이스를 호스트 시스템에 결합하는 USB 링크의 제1 송신/수신 쌍 상에서 디퍼렌셜 데이터를 전송하도록 멀티플렉서를 구성한다.
예에서, 디바이스는 호스트 시스템과 제2 디바이스 사이에 결합된 디버그 프로브를 포함한다.
예에서, 디바이스는 적어도 하나의 SPI 타깃 디바이스를 추가로 포함하고, 멀티플렉서는 호스트 시스템으로부터 디퍼렌셜 클록 신호를 수신하고 디퍼렌셜 클록 신호를 변환기로 전송하고; 및 변환기는 디퍼렌셜 클록 신호를 싱글-엔드 클록 신호로 변환하고 싱글-엔드 클록 신호를 적어도 하나의 SPI 타깃 디바이스에 전송한다.
예에서, 디바이스는 적어도 하나의 I3C 디바이스를 추가로 포함하고; 및 제어기는 USB 링크를 통해 호스트 시스템과 I3C 데이터 및 SPI 데이터 중 적어도 하나를 통신하기 위해 호스트 시스템과의 협상을 수행하는 USB 전력 전달 제어기를 포함한다.
예에서, 협상에 적어도 부분적으로 기초하여, 제어기는: USB 링크의 제1 측파대 사용 라인 상에서 제1 SPI 타깃 디바이스와 연관된 제1 칩 선택 신호를 전송하고; 및 USB 링크의 제2 측파대 사용 라인 상에서 제2 SPI 타깃 디바이스와 연관된 제2 칩 선택 신호를 전송하도록 멀티플렉서를 구성한다.
또 다른 예에서, 방법은: 호스트 시스템의 USB PD 제어기를 통해, USB 링크를 통해 호스트 시스템에 결합된 디바이스와의 협상을 개시하는 단계; 협상 동안, 디바이스가 SPI 데이터가 USB 링크를 통해 통신되는 대체 모드가 가능하다는 것을 결정하는 단계; 디바이스로 하여금 SPI 데이터의 디퍼렌셜 SPI 데이터로의 싱글-엔드-투-디퍼렌셜 변환을 수행하도록 변환기를 구성하게 야기하기 위해 제1 구성 정보를 디바이스에 전송하는 단계; 및 디바이스로 하여금 USB 링크의 제1 송신 쌍을 통해 디퍼렌셜 SPI 데이터를 호스트 시스템으로 안내하도록 멀티플렉서를 구성하게 야기하기 위해 제2 구성 정보를 디바이스에 전송하는 단계를 포함한다.
예에서, 방법은: 디바이스로 하여금 호스트 시스템으로부터 수신된 디퍼렌셜 클록의 직렬 클록으로의 디퍼렌셜-투-싱글-엔드 변환을 수행하도록 변환기를 구성하게 야기하기 위해 제3 구성 정보를 디바이스에 전송하는 단계; 및 디바이스로 하여금 호스트 시스템으로부터 수신된 디퍼렌셜 클록을 USB 링크의 제1 데이터 쌍을 통해 변환기로 안내하도록 멀티플렉서를 구성하게 야기하기 위해 제4 구성 정보를 디바이스에 전송하는 단계를 추가로 포함한다.
예에서, 방법은 디바이스로 하여금 적어도 하나의 칩 선택 신호를 USB 링크의 적어도 하나의 측파대 사용 라인을 통해 호스트 시스템에 안내하도록 멀티플렉서를 구성하게 야기하기 위해 제5 구성 정보를 디바이스에 전송하는 단계를 추가로 포함한다.
예에서, 방법은 USB 링크를 통해 디바이스로부터 디퍼렌셜 SPI 데이터를 수신하는 단계; 디퍼렌셜 SPI 데이터를 SPI 데이터로 변환하는 단계; 및 SPI 데이터를 호스트 시스템의 SPI 제어기에 전송하는 단계를 추가로 포함한다.
예에서 방법은 USB 링크를 통해 호스트 시스템에 결합된 제2 디바이스와의 제2 협상 동안: 상기 제2 디바이스가 I3C 데이터가 USB 링크를 통해 통신되는 또 다른 대체 모드가 가능하다는 것을 결정하는 단계; 제2 디바이스로 하여금 I3C 버스의 복수의 SDA 라인 상에서 통신되는 I3C 데이터의 디퍼렌셜 I3C 데이터로의 싱글-엔드-투-디퍼렌셜 변환을 수행하도록 제2 변환기를 구성하게 야기하도록 제3 구성 정보를 제2 디바이스에 전송하는 단계; 및 제2 디바이스로 하여금 USB 링크의 제2 송신 쌍을 통해 디퍼렌셜 I3C 데이터를 호스트 시스템에 안내하도록 제2 멀티플렉서를 구성하게 야기하기 위해 제4 구성 정보를 제2 디바이스에 전송하는 단계를 추가로 포함한다.
또 다른 예에서, 명령어들을 포함하는 컴퓨터 판독가능 매체는 상기 예들 중 임의의 것의 방법을 수행한다.
추가 예에서, 데이터를 포함하는 컴퓨터 판독가능 매체는 상기 예들 중 임의의 것의 방법을 수행하기 위한 적어도 하나의 집적 회로를 제조하기 위해 적어도 하나의 머신에 의해 사용된다.
또 다른 예에서, 장치는 상기 예들 중 임의의 것의 방법을 수행하기 위한 수단을 포함한다.
또 다른 예에서, 시스템은: 적어도 하나의 프로세서 및 USB 링크를 통해 호스트 시스템에 결합된 제1 디바이스에 정보를 통신하는 인터페이스를 포함하는 호스트 시스템; 및 USB 링크를 통해 호스트 시스템에 결합된 상기 제1 디바이스를 포함한다. 제1 디바이스는: 싱글-엔드 데이터를 수신하여 디퍼렌셜 데이터로 변환하는 변환기; 상기 변환기에 결합되어 상기 디퍼렌셜 데이터를 수신하는 멀티플렉서; 및 멀티플렉서에 결합된 제어기를 포함한다. 호스트 시스템과 제1 디바이스 사이의 협상에 적어도 부분적으로 기초하여, 제어기는: 제1 세트의 싱글-엔드 데이터를 제1 세트의 디퍼렌셜 데이터로 변환하도록 변환기를 구성하고 - 변환기는 복수의 데이터 라인 중 하나 상에서 제1 세트의 싱글-엔드 데이터 각각을 수신함 -; 및 USB 링크의 복수의 송신/수신 쌍 상에서 제1 세트의 싱글-엔드 데이터를 전송하도록 멀티플렉서를 구성한다.
예에서, 시스템은 호스트 시스템과 제1 디바이스 사이에 결합된 디버그 프로브를 추가로 포함하고, 디버그 프로브는: 싱글-엔드 데이터를 수신하여 디퍼렌셜 데이터로 변환하는 제2 변환기; 및 복수의 송신/수신 쌍을 통해 디퍼렌셜 데이터를 수신하여 제1 디바이스에 안내하는 제2 멀티플렉서를 포함한다.
예에서, 제2 변환기는 또한 싱글-엔드 클록 신호를 수신하여 디퍼렌셜 클록 신호로 변환하고, 제2 멀티플렉서는 디퍼렌셜 클록 신호를 수신하여 USB 링크의 한 쌍의 데이터 라인들을 통해 제1 디바이스에 안내한다.
예에서, 디버그 프로브는 싱글-엔드 데이터를 제2 변환기에 제공하기 위한 I3C 제어기를 포함하고, I3C 제어기는 고유 I3C 버스 주파수보다 큰 주파수에서 싱글-엔드 데이터를 제2 변환기에 전송한다.
예에서, 호스트 시스템과 제1 디바이스 간의 또 다른 협상에 적어도 부분적으로 기초하여, 제어기는: 제2 싱글-엔드 데이터를 제2 디퍼렌셜 데이터로 변환하고 싱글-엔드 클록 신호를 디퍼렌셜 클록 신호로 변환하도록 변환기를 구성하고; 및 USB 링크의 복수의 송신/수신 쌍 중 하나 상에서 제2 디퍼렌셜 데이터를 전송하고, USB 링크의 한 쌍의 데이터 라인들 상에서 디퍼렌셜 클록 신호를 전송하고, 및 USB 링크의 적어도 하나의 측파대 사용 라인 상에서 적어도 하나의 칩 선택 신호를 전송하도록 멀티플렉서를 구성한다.
상기 예들의 다양한 조합들이 가능하다는 것을 이해해야 한다.
"회로(circuit)" 및 "회로(circuitry)"라는 용어들은 본 명세서에서 교환가능하게 사용된다는 점에 유의한다. 본 명세서에서 사용되는 바와 같이, 이러한 용어들 및 용어 "로직"은 단독으로 또는 임의의 조합으로, 아날로그 회로, 디지털 회로, 하드 와이어드 회로, 프로그래머블 회로, 프로세서 회로, 마이크로컨트롤러 회로, 하드웨어 로직 회로, 상태 머신 회로, 및/또는 임의의 다른 타입의 물리적 하드웨어 컴포넌트를 지칭하기 위해 사용된다. 실시예들은 다수의 상이한 타입의 시스템에서 사용될 수 있다. 예를 들어, 일 실시예에서, 통신 디바이스는 본 명세서에서 설명된 다양한 방법들 및 기법들을 수행하도록 구성될 수 있다. 물론, 본 발명의 범위는 통신 디바이스로 한정되지 않고, 대신에 다른 실시예들은 명령어들을 처리하기 위한 다른 타입의 장치, 또는 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여 이 디바이스가 본 명세서에 설명된 방법들 및 기법들 중 하나 이상을 수행하게 야기하는 명령어들을 포함하는 하나 이상의 머신 판독가능 매체와 관련될 수 있다.
실시예들은 코드로 구현될 수 있으며, 명령어들을 수행하도록 시스템을 프로그래밍하기 위해 사용될 수 있는 명령어들을 저장한 비일시적 저장 매체 상에 저장될 수 있다. 실시예들은 또한 데이터로 구현될 수 있고, 적어도 하나의 머신에 의해 사용된다면, 적어도 하나의 머신으로 하여금 하나 이상의 동작을 수행하도록 적어도 하나의 집적 회로를 조작하게 야기하는 비일시적 저장 매체 상에 저장될 수 있다. 또 다른 실시예들은 SoC 또는 다른 프로세서가 되도록 제조될 때 하나 이상의 동작을 수행하도록 SoC 또는 다른 프로세서를 구성하는 정보를 포함하는 컴퓨터 판독가능 저장 매체로 구현될 수 있다. 저장 매체는, 플로피 디스크들, 광학 디스크들, SSD들(Solid State Drives), CD-ROM들(Compact Disk Read-Only Memories), CD-RW들(Compact Disk Rewritables) 및 광자기 디스크들을 포함하는 임의의 타입의 디스크, ROM들(Read-Only Memories), DRAM들(Dynamic Random Access Memories), SRAM들(Static Random Access Memories)과 같은 RAM들(Random Access Memories), EPROM들(Erasable Programmable Read-Only Memories), 플래시 메모리들, EEPROM들(Electrically Erasable Programmable Read-Only Memories)과 같은 반도체 디바이스들, 자기 또는 광학 카드들, 또는 전자적 명령어들을 저장하는데 적합한 임의의 다른 타입의 매체를 포함할 수 있지만, 이것에만 제한되는 것은 아니다.
본 개시내용이 제한된 수의 구현과 관련하여 설명되었지만, 본 개시내용의 혜택을 입은 본 기술분야의 통상의 기술자들은 그로부터의 다수의 수정 및 변형을 알 것이다. 첨부된 청구항들은 모든 이러한 수정들 및 변형들을 커버하도록 의도된다.

Claims (25)

  1. 장치로서:
    싱글-엔드 데이터를 수신하여 디퍼렌셜 데이터로 변환하고, 싱글-엔드 클록 신호를 수신하여 디퍼렌셜 클록 신호로 변환하는 변환기;
    상기 변환기에 결합되어 상기 디퍼렌셜 데이터 및 상기 디퍼렌셜 클록 신호를 수신하는 멀티플렉서; 및
    상기 멀티플렉서에 결합된 제어기 - 상기 장치에 결합된 디바이스가 대체 모드가 가능하다는 표시에 적어도 부분적으로 기초하여, 상기 제어기는 데이터 레인들의 복수의 디퍼렌셜 쌍 중 적어도 하나 상에서 상기 디퍼렌셜 데이터를 상기 디바이스에 전송하도록 상기 멀티플렉서를 구성함 - 를 포함하는 장치.
  2. 제1항에 있어서, 상기 싱글-엔드 데이터 및 상기 싱글-엔드 클록 신호를 상기 변환기에 제공하는 I3C 제어기를 추가로 포함하는 장치.
  3. 제2항에 있어서, 상기 변환기는 마더보드 상에 구성되고, 상기 I3C 제어기는 상기 마더보드에 결합된 집적 회로 내에 구성되는 장치.
  4. 제2항에 있어서, 상기 I3C 제어기는 고유 I3C 버스 주파수보다 큰 주파수에서 상기 싱글-엔드 클록 신호 및 상기 싱글-엔드 데이터를 전송하는 장치.
  5. 제2항에 있어서, 상기 변환기는 복수의 싱글-엔드 데이터를 복수의 디퍼렌셜 데이터로 동시에 변환하고, 상기 변환기는 상기 변환기와 상기 I3C 제어기 사이에 결합된 I3C 버스의 복수의 데이터 라인을 통해 상기 복수의 싱글-엔드 데이터를 수신하는 장치.
  6. 제2항에 있어서, 상기 멀티플렉서는 상기 장치와 상기 디바이스 사이에 결합된 USB(Universal Serial Bus) 인터커넥트를 통해 상기 디퍼렌셜 데이터를 상기 디바이스에 전송하는 장치.
  7. 제6항에 있어서, 상기 멀티플렉서는 상기 USB 인터커넥트를 통해 상기 디퍼렌셜 클록 신호를 상기 디바이스에 전송하는 장치.
  8. 제7항에 있어서, 상기 장치는:
    상기 USB 인터커넥트의 복수의 측파대 사용 라인을 통해 상기 디퍼렌셜 클록 신호를 상기 디바이스에 전송하고; 및
    상기 USB 인터커넥트의 복수의 구성가능한 라인 쌍을 통해 상기 디퍼렌셜 데이터를 상기 디바이스에 전송하는 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 멀티플렉서는 상기 장치와 상기 디바이스 사이에 결합된 USB 타입-C 인터커넥트를 통해 상기 디퍼렌셜 데이터를 상기 디바이스에 전송하고, 상기 디퍼렌셜 데이터는 I3C 통신 프로토콜의 것인 장치.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 제어기는 상기 디바이스가 상기 대체 모드가 가능하다는 것을 식별하기 위해 상기 디바이스와 협상을 수행하는 USB(Universal Serial Bus) 타입-C PD(power delivery) 제어기를 포함하고, 상기 대체 모드는 SPI(Serial Peripheral Interface) 모드를 포함하며, 상기 제어기는 USB 인터커넥트의 적어도 하나의 측파대 사용 라인을 통해 적어도 하나의 칩 선택 신호를 상기 디바이스에 전송하도록 상기 멀티플렉서를 추가로 구성하는 장치.
  11. 방법으로서:
    USB 링크를 통해 디바이스에 결합된 호스트 시스템과의 협상을 개시하는 단계;
    상기 협상 동안, 상기 디바이스가 I3C 버스의 복수의 직렬 데이터(SDA) 라인의 데이터가 상기 USB 링크를 통해 통신되는 대체 모드가 가능하다는 것을 표시하는 단계;
    상기 호스트 시스템으로부터 제1 구성 정보를 수신하고, 상기 제1 구성 정보에 응답하여, 상기 복수의 SDA 라인 중 적어도 하나 상에서 통신되는 상기 데이터의 싱글-엔드-투-디퍼렌셜 변환을 수행하도록 상기 디바이스의 변환기를 구성하는 단계; 및
    상기 호스트 시스템으로부터 제2 구성 정보를 수신하고, 상기 제2 구성 정보에 응답하여, 상기 I3C 버스의 SCL 라인 상의 통신을 위한 SCL(serial clock signal)를 제공하기 위해 디퍼렌셜-투-싱글-엔드 변환을 수행하도록 상기 변환기를 구성하는 단계를 포함하는 방법.
  12. 제11항에 있어서, 상기 USB 링크를 통해 디퍼렌셜 클록 신호를 수신하는 단계, 상기 디퍼렌셜 클록 신호를 상기 SCL로 변환하는 단계, 및 상기 I3C 버스의 SCL 라인 상의 통신을 위해 상기 SCL을 안내하는 단계를 추가로 포함하는 방법.
  13. 제11항에 있어서, 상기 데이터를 디퍼렌셜 데이터로 변환하고, 상기 디퍼렌셜 데이터를 상기 USB 링크를 통해 상기 호스트 시스템에 안내하는 단계를 추가로 포함하는 방법.
  14. 제13항에 있어서, 제1 버스 속도로 상기 USB 링크를 통해 상기 디퍼렌셜 데이터를 상기 호스트 시스템에 전송하는 단계를 추가로 포함하고, 상기 제1 버스 속도는 상기 I3C 버스의 고유 버스 속도보다 큰 방법.
  15. 제11항에 있어서, 상기 USB 링크를 통해 상기 호스트 시스템으로부터 제2 디퍼렌셜 데이터를 수신하는 단계, 상기 제2 디퍼렌셜 데이터를 제2 싱글-엔드 데이터로 변환하는 단계, 및 상기 복수의 SDA 라인을 통해 상기 제2 싱글-엔드 데이터를 I3C 제어기에 전송하는 단계를 추가로 포함하는 방법.
  16. 실행될 때, 제11항 내지 제15항 중 어느 한 항에 따른 방법을 구현하는 컴퓨터 판독가능 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
  17. 디바이스로서:
    싱글-엔드 데이터를 수신하여 디퍼렌셜 데이터로 변환하는 변환기;
    상기 변환기에 결합되어 상기 디퍼렌셜 데이터를 수신하는 멀티플렉서; 및
    상기 멀티플렉서에 결합된 제어기를 포함하고, 상기 디바이스와 호스트 시스템 사이의 협상에 적어도 부분적으로 기초하여, 상기 제어기는:
    상기 싱글-엔드 데이터를 상기 디퍼렌셜 데이터로 변환하도록 상기 변환기를 구성하고 - 상기 변환기는 SPI(Serial Peripheral Interface)를 통해 상기 싱글-엔드 데이터를 수신함 -; 및
    상기 디바이스를 상기 호스트 시스템에 결합하는 USB 링크의 제1 송신/수신 쌍 상에서 상기 디퍼렌셜 데이터를 전송하도록 상기 멀티플렉서를 구성하는 디바이스.
  18. 제17항에 있어서, 상기 디바이스는 상기 호스트 시스템과 제2 디바이스 사이에 결합된 디버그 프로브를 포함하는 디바이스.
  19. 제17항에 있어서, 상기 디바이스는 적어도 하나의 SPI 타깃 디바이스를 추가로 포함하고,
    상기 멀티플렉서는 상기 호스트 시스템으로부터 디퍼렌셜 클록 신호를 수신하고 상기 디퍼렌셜 클록 신호를 상기 변환기에 전송하고; 및
    상기 변환기는 상기 디퍼렌셜 클록 신호를 싱글-엔드 클록 신호로 변환하고, 상기 싱글-엔드 클록 신호를 상기 적어도 하나의 SPI 타깃 디바이스에 전송하는 디바이스.
  20. 제19항에 있어서, 상기 디바이스는:
    적어도 하나의 I3C 디바이스; 및
    상기 USB 링크를 통해 상기 호스트 시스템과 I3C 데이터 및 SPI 데이터 중 적어도 하나를 통신하기 위해 상기 호스트 시스템과의 협상을 수행하는 USB 전력 전달 제어기를 포함하는 제어기를 추가로 포함하는 디바이스.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서, 상기 협상에 적어도 부분적으로 기초하며, 상기 제어기는:
    상기 USB 링크의 제1 측파대 사용 라인 상에서 제1 SPI 타깃 디바이스와 연관된 제1 칩 선택 신호를 전송하고; 및
    상기 USB 링크의 제2 측파대 사용 라인 상에서 제2 SPI 타깃 디바이스와 연관된 제2 칩 선택 신호를 전송하도록 상기 멀티플렉서를 구성하는 디바이스.
  22. 장치로서:
    USB 링크를 통해 호스트 시스템에 결합된 디바이스와의 협상을 개시하기 위한 수단;
    상기 디바이스가 SPI(Serial Peripheral Interface) 데이터가 상기 USB 링크를 통해 통신되는 대체 모드가 가능하다는 것을 결정하기 위한 수단;
    상기 디바이스로 하여금 상기 SPI 데이터의 디퍼렌셜 SPI 데이터로의 싱글-엔드-투-디퍼렌셜 변환을 수행하기 위한 변환기 수단을 구성하게 야기하기 위해 제1 구성 정보를 상기 디바이스에 전송하기 위한 수단; 및
    상기 디바이스로 하여금 상기 USB 링크의 제1 송신 쌍을 통해 상기 디퍼렌셜 SPI 데이터를 상기 호스트 시스템으로 안내하기 위한 멀티플렉서 수단을 구성하게 야기하기 위해 제2 구성 정보를 상기 디바이스에 전송하기 위한 수단을 포함하는 장치.
  23. 제22항에 있어서,
    상기 디바이스로 하여금 상기 호스트 시스템으로부터 수신된 디퍼렌셜 클록의 직렬 클록으로의 디퍼렌셜-투-싱글-엔드 변환을 수행하기 위한 변환기 수단을 구성하게 야기하기 위해 제3 구성 정보를 상기 디바이스에 전송하기 위한 수단; 및
    상기 디바이스로 하여금 상기 호스트 시스템으로부터 수신된 상기 디퍼렌셜 클록을 상기 USB 링크의 제1 데이터 쌍을 통해 상기 변환기로 안내하기 위한 상기 멀티플렉서 수단을 구성하게 야기하기 위해 제4 구성 정보를 상기 디바이스에 전송하기 위한 수단을 추가로 포함하는 장치.
  24. 제22항에 있어서,
    상기 디바이스로 하여금 적어도 하나의 칩 선택 신호를 상기 USB 링크의 적어도 하나의 측파대 사용 라인을 통해 상기 호스트 시스템으로 안내하기 위한 멀티플렉서 수단을 구성하게 야기하기 위해 제5 구성 정보를 상기 디바이스에 전송하기 위한 수단을 추가로 포함하는 장치.
  25. 제22항에 있어서,
    상기 USB 링크를 통해 상기 디바이스로부터 상기 디퍼렌셜 SPI 데이터를 수신하기 위한 수단;
    상기 디퍼렌셜 SPI 데이터를 상기 SPI 데이터로 변환하기 위한 수단; 및
    상기 SPI 데이터를 상기 호스트 시스템의 SPI 제어기 수단에 포워딩하기 위한 수단을 추가로 포함하는 장치.
KR1020220040342A 2021-06-24 2022-03-31 범용 직렬 버스를 통한 다중 데이터 라인의 i3c 통신 제공 KR20230001018A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/356,595 2021-06-24
US17/356,595 US20210318975A1 (en) 2021-06-24 2021-06-24 Providing I3C Communications Of Multiple Data Lines Via A Universal Serial Bus

Publications (1)

Publication Number Publication Date
KR20230001018A true KR20230001018A (ko) 2023-01-03

Family

ID=78005511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220040342A KR20230001018A (ko) 2021-06-24 2022-03-31 범용 직렬 버스를 통한 다중 데이터 라인의 i3c 통신 제공

Country Status (2)

Country Link
US (1) US20210318975A1 (ko)
KR (1) KR20230001018A (ko)

Also Published As

Publication number Publication date
US20210318975A1 (en) 2021-10-14

Similar Documents

Publication Publication Date Title
US11567895B2 (en) Method, apparatus and system for dynamic control of clock signaling on a bus
US10150673B2 (en) Systems and methods for enabling communication between USB type-C connections and legacy connections over an extension medium
CN107278299B (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统
US10140242B2 (en) General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
JP6400714B2 (ja) Usbハブを有する自動車システムとの柔軟なモバイルデバイス接続性
US11704274B2 (en) System, apparatus and method for extended communication modes for a multi-drop interconnect
CN107111588B (zh) 经由USB端口使用PCIe协议的数据传输
US8296469B2 (en) Scalable method and apparatus for link with reconfigurable ports
CN106209695B (zh) 给加载/存储通信协议提供低功率物理单元
US9575552B2 (en) Device, method and system for operation of a low power PHY with a PCIe protocol stack
US10089251B2 (en) Multi-modal active cable for performing a mode identification operation
JP2011166720A (ja) 複数バージョンのusbと互換性があるマザーボード及び関連方法
KR101220464B1 (ko) 광 연결을 이용한 고속 인터페이스 장치
US11425101B2 (en) System, apparatus and method for tunneling and/or multiplexing via a multi-drop interconnect
US10853289B2 (en) System, apparatus and method for hardware-based bi-directional communication via reliable high performance half-duplex link
KR102405773B1 (ko) Usb 타입 c 인터페이스를 이용한 멀티 디바이스 간의 통신 방법 및 이를 구현한 전자 장치
US11314668B2 (en) Method, apparatus and system for device transparent grouping of devices on a bus
KR20230001018A (ko) 범용 직렬 버스를 통한 다중 데이터 라인의 i3c 통신 제공
US10042802B2 (en) Inter-device digital audio
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME
US20230315672A1 (en) Interface device and computing system including the same
US20240012770A1 (en) Interface device having plurality of ports and method of operating the same
CN114968860A (zh) 高速外围组件互连接口装置以及包括该接口装置的系统
CN115185875A (zh) 执行通信的装置和包括该装置的计算系统
TWM310380U (en) Single-board computer board suitable for industrial computer