KR20210075878A - I2c와의 하위 호환성을 촉진하는 i3c 허브 - Google Patents

I2c와의 하위 호환성을 촉진하는 i3c 허브 Download PDF

Info

Publication number
KR20210075878A
KR20210075878A KR1020200172478A KR20200172478A KR20210075878A KR 20210075878 A KR20210075878 A KR 20210075878A KR 1020200172478 A KR1020200172478 A KR 1020200172478A KR 20200172478 A KR20200172478 A KR 20200172478A KR 20210075878 A KR20210075878 A KR 20210075878A
Authority
KR
South Korea
Prior art keywords
hub
slave
bus
interrupt
compatible interface
Prior art date
Application number
KR1020200172478A
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 KR20210075878A publication Critical patent/KR20210075878A/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • 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)

Abstract

허브 디바이스는 I3C 디바이스를 또한 포함하는 시스템에서 I2C 디바이스의 배치를 가능하게 한다. 허브는 그것이 I3C 버스에서 I3C 마스터(들)와 통신하는 I3C-호환 인터페이스, 그것이 I2C 버스에서 I2C 디바이스와 통신하는 I2C-호환 인터페이스, 및 두 개의 도메인 간의 변환을 지원하는 로직 및 메모리를 갖는다.

Description

I2C와의 하위 호환성을 촉진하는 I3C 허브{I3C HUB PROMOTING BACKWARD COMPATIBILITY WITH I2C}
I2C(Inter-Integrated Circuit) 표준은 저속 주변 장치 집적 회로(IC) 및 센서를 프로세서 및 마이크로제어기(microcontrollers)에 단거리의 보드-내부 통신(intra-board communication)으로 연결하는데(attaching) 널리 사용되는 다중-마스터, 다중-슬레이브 직렬 컴퓨터 버스를 서술한다. 모바일 무선 및 관련된 제품에서 센서의 급증(proliferation)은 상당한 설계 과제(challenges)를 생성하였다. 이러한 제품에서 물리적인 센서와 인터페이스(interfacing)하기 위한 일정한 방법이 없기 때문에, 디바이스 및 플랫폼 설계자는 그 중에서도 I2C, 직렬 주변 장치 인터페이스(Serial Peripheral Interface, SPI) 및 범용 비동기식 수신기-송신기(Universal Asynchronous Receiver-Transmitter, UART)를 포함하는 디지털 직렬 인터페이스 분할(fragmentation)에 직면한다. 이들 과제는 도 1을 참조로 이해될 수 있다.
도 1은 다양한 I2C 및 SPI 디바이스에 연결된 호스트 시스템 온 칩(system-on-a-chip, SOC) 집적 회로를 포함하는 시스템의 예시를 도시한다. 디바이스의 각각에 대한 메인 직렬 버스 인터페이스에 부가하여, 시스템은 디바이스의 각각에 대한 측파대 신호(sideband signals)에 대한 다른 전용 인터페이스를 요구한다(예를 들어, 전용 인터럽트, 칩 선택 신호, 인에이블 신호(enable signals), 슬립 신호(sleep signals) 등). 이는 주변 장치 디바이스의 수가 증가함에 따라, 호스트 및 인쇄 회로 기판(printed circuit board, PCB) 계층 카운트(layer count)를 위해 요구되는 범용 입/출력(general-purpose input/output, GPIO) 핀의 수가 증가하고, 시스템의 비용 및 복잡도를 올린다는 것을 의미한다. 결과적으로, 현재 제품에서 센서의 수는 지원하기가 점점 어려워지고 있다.
이들 문제를 처리하기 위해, MIPI(Mobile Industry Processor Interface) 얼라이언스(Alliance)는 센서와 같은 주변 장치를 위한 고속의 2-선 디지털 직렬 인터페이스를 서술하는 I3C(Improved Inter-Integrated Circuit) 표준을 개발하였다. I3C 표준은 I2C 표준의 특징을 개선하면서, 또한 I2C 디바이스와의 하위 호환성(backward compatibility)을 유지하는 것으로 의도된다. 도 2에 도시된 바와 같이, I3C는 도 1의 시스템과 동일한 수의 I3C 주변 장치에 대해 I3C 호스트 SOC에 오직 두 개의 연결만을 요구한다. 따라서, I3C 표준은 모바일 시스템에서 항상 확장하는(ever-expanding) 센서 어레이를 효과적으로 지원하기 위해 설계자가 갖는 유연성을 크게 증가시키기 위한 잠재력을 갖는다.
이 잠재력에도 불구하고, I2C 디바이스를 포함하는 I3C 시스템에서 발생하는 다수의 문제가 있다. 예를 들어, I3C 디바이스는 대역-내(in-band) 인터럽트를 이용하며, 따라서 호스트와의 추가적인 측파대 통신 채널을 요구하지 않는다. 대조적으로, I2C 디바이스는 I3C 버스에서 배치될(deployed) 때에도, I3C 호스트에 대한 인터럽트를 위한 전용 측파대 채널을 여전히 요구한다. I2C 디바이스의 각각이 호스트에서 그 자신의 인터럽트 핀을 갖는 경우, I3C 표준의 상당한 장점이 실현되지 않는다. I2C 디바이스가 인터럽트 라인을 공유하는 경우, I3C 호스트는 어느 디바이스가 인터럽트를 송신하였는지를 결정하기 위해 I2C 디바이스를 순차적으로 폴링해야 하며(poll), I3C 호스트 처리 시간을 바람직하지 않게 소모한다.
덧붙여, I2C 디바이스는 통상적으로, I3C 버스에 대한 그의 연결에서 I3C 디바이스보다 더욱 높은 커패시턴스를 나타낸다. 이는 버스의 주파수를 가장 느린 I2C 디바이스의 것으로 제한할 수 있을 뿐만 아니라, 버스에서 배치될 수 있는 디바이스의 수를 또한 상당히 줄일 수 있다.
마지막으로, I3C 표준은 다양한 시나리오에서 I3C 버스에서 허용 가능한 l2C 레거시 디바이스(I2C legacy devices)의 타입을 명시적으로 제한한다. 예를 들어, I2C 2차 마스터는 I3C 버스에서 허용되지 않고, I2C 슬레이브에서만 허용된다. 다른 예시에서, (I3C 트래픽 필터링을 위한) 일부 I2C 디바이스에 포함된 50 나노초 스파이크 필터(spike filter)는 일부 시나리오에서 허용되지 않는다. 또 다른 예시에서, I2C 표준의 "클록 스트레칭(clock stretching)" 특징은 I3C 버스에서 허용되지 않는다. 따라서, I3C 버스 상의 I2C 디바이스의 배치에서 발생하는 성능 문제에 부가하여, I3C 표준은 시장에서 수년 동안 계속 출시될 가능성이 있는 다수의 레거시 I2C 디바이스와 100% 하위 호환되지 않는다.
구현의 특정 클래스에 따라, 상호연결 허브(interconnect hub)는 I2C 표준에 따라 I2C 버스에서 복수의 I2C 슬레이브 디바이스와 통신하도록 구성된 I2C-호환 인터페이스(I2C-compliant interface)를 포함한다. 상호연결 허브는 또한, I2C 슬레이브 디바이스로부터 I2C 인터럽트를 수신하도록 구성된 하나 이상의 인터럽트 인터페이스를 포함한다. 상호연결 허브는 또한, I2C 슬레이브 디바이스의 식별자, I2C 슬레이브 디바이스의 각각에 대한 인터럽트 정보 및 I2C 슬레이브 디바이스로부터 수신되거나 이로 향하는(directed) 데이터를 저장하도록 구성된 메모리를 포함한다. 상호연결 허브는 또한, I3C 표준에 따라 I3C 버스에서 I3C 마스터 디바이스와 통신하도록 구성된 I3C-호환 인터페이스를 포함한다. I3C-호환 인터페이스는 또한, 식별자, 데이터 및 인터럽트 정보를 사용하여, I2C 슬레이브 디바이스로부터의 I2C 인터럽트를 I3C 버스에서 송신을 위한 I3C 인터럽트로 변환하고, I2C-호환 인터페이스와 협력하여, I2C 버스에서의 I2C 통신과 I3C 버스에서의 I3C 통신 간에 변환하도록 구성된다.
이 클래스의 특정 구현에 따라, I2C-호환 인터페이스는 I2C 마스터 코어이다.
이 클래스의 다른 특정 구현에 따라, I2C-호환 인터페이스는 스파이크 필터를 포함하는 제1 I2C 슬레이브 디바이스와 통신하고, 스파이크 필터를 포함하지 않는 제2 I2C 슬레이브 디바이스와 통신하도록 구성된다.
이 클래스의 다른 특정 구현에 따라, I2C-호환 인터페이스는 클록 스트레칭 특징을 구현하도록 구성된 제1 I2C 슬레이브 디바이스와 통신하도록 구성된다.
이 클래스의 다른 특정 구현에 따라, I3C-호환 인터페이스는 I3C 슬레이브 코어이다.
이 클래스의 다른 특정 구현에 따라, I3C-호환 인터페이스는 I3C 마스터 디바이스의 최대 동작 주파수에서 I3C 버스를 통해 I3C 마스터 디바이스와 통신하도록 구성된다.
이 클래스의 다른 특정 구현에 따라, I2C-호환 인터페이스는 I2C 슬레이브 디바이스의 제1 전압 레벨을 I3C 버스와 연관된 제2 전압 레벨로 변환하도록 구성된다.
이 클래스의 다른 특정 구현에 따라, I3C-호환 인터페이스 및 I2C-호환 인터페이스는 I3C 마스터 디바이스로부터 수신된 재설정 요청에 응답하여 I2C 버스에서의 I2C 슬레이브 디바이스 중 하나에 하드웨어 재설정 신호를 제공하도록 구성된다.
이 클래스의 다른 특정 구현에 따라, I3C-호환 인터페이스 또는 l2C-호환 인터페이스는 I2C 버스에서의 I2C 디바이스 중 하나로부터의 확인 응답(acknowledgement)의 부족에 응답하여, 또는 로우(low)로 유지되는 I2C의 신호 라인에 응답하여 오류 신호를 생성하도록 구성된다.
이 클래스의 다른 특정 구현에 따라, 메모리는 I2C 슬레이브 디바이스의 각각에 대한 동작 주파수를 나타내는 값을 저장하도록 더 구성된다.
이 클래스의 다른 특정 구현에 따라, 하나 이상의 인터럽트 인터페이스는 I2C 슬레이브 디바이스로부터 I2C 인터럽트를 수신하도록 구성된 단일 인터럽트 인터페이스를 포함한다.
이 클래스의 다른 특정 구현에 따라, 하나 이상의 인터럽트 인터페이스는 복수의 인터럽트 인터페이스를 포함하고, 각 인터럽트 인터페이스는 I2C 슬레이브 디바이스 중 대응하는 것으로부터 I2C 인터럽트 중 하나를 수신하도록 구성된다.
다양한 구현의 성질 및 장점의 추가적인 이해는 나머지 부분의 명세서 및 도면을 참조로 실현될 수 있다.
도 1은 I2C 시스템의 예시의 단순화된 블록도이다.
도 2는 I3C 시스템의 예시의 단순화된 블록도이다.
도 3은 본 개시에 의해 가능해진 I3C 허브를 갖는 시스템의 예시의 단순화된 블록도이다.
도 4는 본 개시에 의해 가능해진 I3C 허브의 예시의 단순화된 블록도이다.
본 개시는 I3C 디바이스를 또한 포함하는 시스템에서 I2C 디바이스의 배치를 가능하게 하는 허브 디바이스를 서술한다. 허브는 I3C 디바이스가 배치된 I3C 버스로부터 I2C 디바이스를 분리하고 I2C와 I3C 도메인 간의 통신을 앞뒤로(back and forth) 변환한다. 허브는 그것이 I3C 버스에서 I3C 마스터(들)와 통신하는 I3C-호환 인터페이스, 그것이 I2C 버스에서 I2C 디바이스와 통신하는 I2C-호환 인터페이스, 및 두 개의 도메인(domains) 간의 변환을 지원하는 로직(logic) 및 메모리를 갖는다. 이러한 방식으로, I3C 마스터는 I2C 디바이스와 효과적으로 통신할 수 있다. 본 개시에 의해 가능해진 허브를 통해, I3C 표준의 장점은 I3C 도메인에서 완전히 실현될 수 있으면서, l2C 디바이스와의 100% 하위 호환성도 I2C 도메인에서 동시에 지원될 수 있다.
특정 구현에 대한 참조가 이제 상세히 이루어질 것이다. 이들 구현의 예시는 첨부 도면에 도시된다. 이들 예시는 설명의 목적으로 서술되며, 본 개시의 범주를 제한하는 것으로 의도되지 않는다는 것이 유의되어야 한다. 오히려, 서술된 구현의 대안, 변경 및 등가물은 첨부된 청구범위에 의해 정의되는 본 개시의 범주 내에 포함된다. 덧붙여, 서술된 구현의 완전한 이해를 촉진시키기 위해 구체적인 세부사항이 제공될 수 있다. 본 개시의 범주 내의 일부 구현은 이들 세부사항의 일부 또는 전체 없이 실시될 수 있다. 또한, 잘 알려진 특징은 명료함을 위해 상세히 서술되지 않을 수 있다.
특정 구현이 이제, 도 3 및 도 4를 참조로 서술될 것이다. 도 3은 본원에 개시된 바와 같이 구현된 I3C 및 I2C 디바이스 및 I3C 허브 디바이스(302) 양자를 포함하는 시스템(300)의 단순화된 블록도이다. 도 4는 구현의 특정 클래스에 따른 I3C 허브 디바이스(302)의 단순화된 블록도이다. 도시된 구현은 신호 라인 I3C SCL 및 I3C SDA를 통해 I3C 도메인(명료함을 위해 미도시됨)에서 I3C 버스와 인터페이스하는 (I3C 슬레이브 코어로서 구현될 수 있는) I3C-호환 인터페이스(402)를 포함한다. 허브 디바이스(302)는 또한, 신호 라인 I2C SCL 및 I2C SDA를 통해 I2C 도메인(또한 도시되지 않음)의 I2C 버스와 인터페이스하는 (I2C 마스터 코어로서 구현될 수 있는) I2C-호환 인터페이스(404)를 포함한다.
I3C 허브(302)는 I3C 표준에 따라 I3C 버스(306)를 통해 I3C 마스터(304)와 인터페이스한다. 다른 I3C-호환 디바이스(예를 들어, I3C 슬레이브(308) 및 I3C 2차 마스터(310))가 I3C 버스(306) 상에 존재할 수 있다. I3C 허브(302)는 또한, I2C 표준에 따라 I2C 버스(320)를 통해 I2C 슬레이브(312-318)와 인터페이스한다. I3C 허브(302)는 또한, 예를 들어 인터럽트 라인, 인에이블 라인 등을 나타낼 수 있는 I2C 슬레이브 디바이스와의 추가적인 인터페이스(예를 들어, 신호 라인(322-328))를 포함한다. I3C 허브(302)는 I2C 슬레이브와 상호작용할 때, 일부 측면에서 I2C 마스터와 같이 동작한다. 도시된 바와 같이, I2C 슬레이브 디바이스는 I3C 버스(306)에 직접적으로 연결되지 않는다. I3C 버스로부터 I2C 디바이스를 분리함으로써, 그 중에서도 예를 들어, 클록 스트레칭과 같은 I2C 표준의 특징 및 기능 모두를 지원하는 것이 가능하다.
I3C 마스터(304)가 특정 I2C 슬레이브와 통신을 개시할 때, 이는 I3C-호환 메시지를 허브(302)로 전송한다. 허브(302)는 메시지를 I2C 도메인으로 변환하고, 지정된 I2C 슬레이브와의 상호 작용이 완료될 때, I3C 마스터(304)에 다시 보고한다. I2C 슬레이브와의 통신이 허브(302)에 의해 관리되기 때문에, I3C 마스터(304)는 I2C 슬레이브로부터의 응답을 기다릴 필요가 없으며, 그 대신에 I3C 표준에 따라 I3C 버스(306)에서 I3C 디바이스 중 어느 것과의 다른 통신을 다룰 수 있다. 이는, 예를 들어, 중간에 I2C 슬레이브 중 다른 것을 대신하여 I3C 마스터(304)와 통신할 수 있는 I3C 허브(302)를 포함한다. 특정 I2C 슬레이브와의 트랜잭션이 완료되면, 허브(302)는 I3C 마스터(304)에 인터럽트를 전송한다.
I3C 마스터(304)는 허브(302)에 연결된 I2C 슬레이브를 인식하도록 프로그래밍된다. 즉, I3C 마스터(304)는 I2C 슬레이브의 주소를 가지며, I2C 슬레이브와의 그의 통신과 관련하여 이를 I3C 허브(302)로 전송한다. 그리고, I2C 슬레이브가 더 이상 I3C 버스에 있지 않기 때문에, 그의 커패시턴스는 I3C 도메인에 영향을 미치지 않는다.
즉, I3C 마스터가 I2C 슬레이브로부터 응답을 기다리지 않아도 된다는 사실에 부가하여, 이는 또한 I2C 슬레이브의 존재에 기인하여 I3C 버스의 동작 속도를 늦추지 않아도 되며, 그 대신에 I3C 도메인에서 허용되는 최대 속도를 사용할 수 있다. 그리고, I2C 인터럽트가 허브에 의해 다루어지기 때문에, I3C 마스터는 I3C 표준에 의해 의도된 바와 같이 오직 두 개의 라인만을 사용하여 시스템에서 디바이스 모두와 통신할 수 있다.
다시 도 4를 참조하면, I3C 허브(302)는 I3C 슬레이브 코어(402) 및 I2C 슬레이브 주소(406), 판독/기록 데이터(408) 및 I2C 인터럽트 상태(410)를 저장하기 위한 레지스터 및/또는 버퍼를 포함한다. 슬레이브 주소 레지스터(406) 및 판독/기록 버퍼(408)는 I2C-호환 인터페이스(404)에 연결되고, 인터럽트 상태 레지스터(410)는 I3C 슬레이브 코어(402)에 연결된다. 도면에 도시된 바와 같이 일부 구현에 따라, I3C 허브(302)는 I2C 슬레이브 디바이스의 각각으로부터의 인터럽트를 위한 전용 입력을 포함할 수 있다. 대안적으로, I2C 슬레이브 디바이스로부터 인터럽트를 수신하기 위해 하나 또는 수개의 입력만이 요구되는 즉, 하나 보다 많은 I2C 슬레이브 디바이스가 인터럽트 라인을 공유할 수 있는 구현이 고려된다.
일부 구현에 따라, I2C-호환 인터페이스(404)는 I2C 표준에 따라 구현된 물리 계층 인터페이스, 즉 I2C 마스터의 특징의 서브세트만을 포함하는 기본적인(stripped down) I2C-호환 인터페이스이다. 일부 구현에 대해, 가장 기본적인 I2C 판독 및 기록 기능만이 필요하다. 하지만, 인터페이스(404)가 I2C 디바이스와 통신하기 위해 I2C 마스터 코어를 사용하여 구현되는 구현이 고려된다는 것이 유의되어야 한다.
I3C 허브(302)는 I2C 표준에 따라 I2C 슬레이브와 인터페이스하고, 어느 디바이스가 주어진 인터럽트를 전송하였는지를 추적할 수 있도록 I2C 슬레이브로부터 인터럽트에 대한 하나 이상의 전용 I/O 및 레지스터를 갖는다. 앞서 언급된 바와 같이, I3C 허브(302)는 각각의 I2C 하드웨어 인터럽트(즉, I2C 디바이스로부터 허브상의 특정 핀에 대한 인터럽트)를 I3C 소프트웨어 인터럽트(즉, I3C 버스에서 송신되는 대역-내 인터럽트)로 변환한다. I3C 슬레이브 코어(402)는 인터럽트 상태 레지스터(410)를 판독하고, I3C-호환 대역-내 인터럽트를 생성하며, I3C 버스 상의 I3C 마스터로 이들을 송신한다.
허브(302)는 또한, I2C 및 I3C 도메인 간의 통신을 앞뒤로 변환한다. 예를 들어, I3C 마스터가 I2C 슬레이브 중 하나로부터 판독하거나 또는 이것에 기록할 때, 이는 어느 I2C 슬레이브가 (예를 들어, 주소 별로), 얼마나 많은 데이터의 바이트가 판독되거나 또는 기록될지를 나타내는 I3C 버스에서의 판독 또는 기록 명령을 I3C 슬레이브 코어(402) 허브로 전송한다. I3C 슬레이브 코어(402)는 명령을 I2C 인터페이스(404)로 전달하며, I2C 인터페이스(404)는 그 후 I2C 버스를 통해 지정된 I2C 슬레이브 디바이스와의 그 트랜잭션을 수행한다. 트랜잭션의 결과는 I3C 슬레이브 코어(402)를 따라 전달되고, I3C 슬레이브 코어(402)는 그 후 그 결과(예를 들어, 판독 데이터의 바이트 또는 성공적인 기록 확인 응답)를 I3C 마스터로 전달한다.
일 예시에서, l2C 버스에서의 I2C 슬레이브 디바이스가 인터럽트를 전송할 때, I3C 허브는 대역-내 인터럽트(in-band interrupt, IBI)를 I3C 마스터에 발행한다. I3C 마스터는 인터럽트가 대응하는 I2C 슬레이브 디바이스를 식별하기 위해, I3C 허브의 인터럽트 상태 레지스터를 판독한다. I2C 슬레이브에 대한 기록 동작을 위해, I3C 마스터는 기록될 바이트의 수 및 I2C 슬레이브 주소를 식별하는 통신에서 I3C 허브의 버퍼 레지스터에 데이터를 기록한다. I3C 허브는 기록 동작이 완료될 때, IBI를 I3C 마스터로 전송한다.
판독 동작을 위해, I3C 마스터는 판독할 바이트의 수 및 I2C 슬레이브 주소를 식별하는 통신을 I3C 허브로 전송한다. I3C 허브는 판독 동작이 완료될 때, IBI를 I3C 마스터로 전송한다.
구현에 따라, 다음 장점 중 하나 이상은 본 개시에 의해 가능해진 I3C 허브로 실현될 수 있다. 예를 들어, I2C 슬레이브의 큰 부하 커패시턴스가 I3C 버스로부터 분리되기 때문에, I3C 버스는 그의 최고 동작 속도를 달성하거나 및/또는 I3C 버스에 연결된 I3C 디바이스 수를 최대화할 수 있다.
다른 예시에서, I3C 마스터는 개별적인 I2C 인터럽트를 판독할 필요가 없으며, I2C 슬레이브가 I3C 버스에 직접적으로 연결된 시스템에 비해 I3C 마스터의 구성을 단순화한다. 이는 또한, I2C 인터럽트의 처리와 관련된 레이턴시(latency)를 감소시킬 수 있다.
다른 예시에서, 본 개시에 의해 가능해진 I3C 허브는 I2C 표준에 의해 지정된 바와 같이 클록 스트레칭을 수행하는 I2C 디바이스를 지원할 수 있다.
다른 예시에서, 본 개시에 의해 가능해진 I3C 허브는 I3C 마스터 또는 호스트 상의 전용 하드웨어 핀(예를 들어, I2C 하드웨어 인터럽트를 위한 핀)에 대한 필요성을 감소시키거나 제거할 수 있다.
다른 예시에서, 본 개시에 의해 가능해진 I3C 허브는 저속 I2C 통신을 위한 I3C 버스 대역폭의 사용을 제거하거나 감소시킨다.
다른 예시에서, 본 개시에 의해 가능해진 I3C 허브는 I3C 버스로부터 부정확한 50 나노초 스파이크 필터를 갖는 I2C 디바이스를 분리하는 역할을 하며, 이러한 디바이스가 I3C 버스의 동작 속도에 부정적인 영향을 미치지 않으면서 전체 시스템에 포함되는 것을 허용한다.
일부 구현에 따라, 본 개시에 의해 가능해진 I3C 허브는 또한, I2C 슬레이브 디바이스에 대한 상이한 작동 주파수를 지원하기 위해 주파수 레지스터를 포함할 수 있다. 하나의 이러한 구현에 따라, I2C 슬레이브에 대한 작동 주파수는 I3C 허브의 내부 레지스터 값에 의해 설정된다. 이러한 방식으로, 각 슬레이브는 그의 최적의 주파수에서 작동할 수 있다.
일부 구현에 따라, 본 개시에 의해 가능해진 I3C 허브는 I2C 슬레이브 디바이스에 의해 이용되는 상이한 전압 레벨을 지원하기 위해 I2C-호환 인터페이스에서 전압 변환을 포함할 수 있다. 예를 들어, 시장에 나와 있는 I2C 디바이스가 1.8V 내지 5V 범위의 상이한 공급 전압을 사용하여 동작하는 한편, I3C 호스트는 1.2V 내지 3.3V 범위의 공급 전압을 사용하여 동작한다. 이러한 구현에 따라, 상이한 I2C 디바이스는 본 개시에 의해 가능해진 I3C 허브를 통해 상이한 전압을 갖는 상이한 I2C 버스에 연결될 수 있다.
일부 구현에 따라, 본 개시에 의해 가능해진 I3C 허브는 로우로 유지되는 I2C 버스 상의 SDA/SCL 신호 라인, 또는 I2C 슬레이브 디바이스에 의한 확인 응답의 부족 즉, NACK과 같은 이러한 조건에 대해 I3C 마스터에 보고하기 위한 오류 신호를 생성하는 로직을 포함할 수 있다.
일부 구현에 따라, 본 개시에 의해 가능해진 I3C 허브는 I3C 마스터로부터의 재설정 요청에 응답하는 I2C 슬레이브의 하드웨어 재설정을 위한 능동-하이 및 로우 출력을 제공할 수 있다.
통상의 기술자는 본원에서 서술된 구현의 형태 및 세부사항의 변경이 본 개시의 범주를 벗어나지 않으면서 이루어질 수 있음을 이해할 것이다. 추가적으로, 다양한 구현을 참조로 다양한 장점, 양상 및 목적이 서술되었지만, 본 개시의 범주는 이러한 장점, 양상 및 목적에 대한 참조로 제한되지 않아야 한다. 오히려, 본 개시의 범주는 첨부된 청구항을 참조로 결정되어야 한다.

Claims (12)

  1. 상호연결 허브(interconnect hub)로서,
    I2C 표준에 따라 I2C 버스에서 복수의 I2C 슬레이브 디바이스들(I2C slave devices)과 통신하도록 구성된 I2C-호환 인터페이스(I2C-compliant interface);
    상기 I2C 슬레이브 디바이스들로부터 I2C 인터럽트(I2C interrupts)를 수신하도록 구성된 하나 이상의 인터럽트 인터페이스;
    상기 I2C 슬레이브 디바이스들의 식별자, 상기 I2C 슬레이브 디바이스들의 각각에 대한 인터럽트 상태를 포함하는 인터럽트 정보 및 상기 I2C 슬레이브 디바이스들로부터 수신되거나 이로 향하는(directed) 데이터를 저장하도록 구성된 메모리; 및
    I3C 표준에 따라 I3C 버스에서 I3C 마스터 디바이스와 통신하도록 구성된 I3C-호환 인터페이스 - 상기 I3C-호환 인터페이스는 또한, 상기 식별자, 상기 데이터 및 상기 인터럽트 정보를 사용하여, 상기 I2C 슬레이브 디바이스들로부터 상기 I2C 인터럽트를 상기 I3C 버스에서 송신을 위한 I3C 인터럽트로 변환하고, 상기 I2C-호환 인터페이스와 협력하여, 상기 I2C 버스에서의 I2C 통신과 상기 I3C 버스에서의 I3C 통신 간에 변환하도록 구성되고, 상기 상호연결 허브는 상기 I3C 마스터 디바이스가 제1 I2C 슬레이브 디바이스로부터 응답을 수신하기 전에, 상기 제1 I2C 슬레이브 디바이스와의 트랜잭션을 개시하고 상기 I3C 버스에서 I3C 슬레이브 디바이스 또는 제2 I2C 슬레이브 디바이스와 통신할 수 있도록, 각각에 대응하는 상기 인터럽트 상태를 사용하여 상기 I2C 슬레이브 디바이스들과 상기 트랜잭션을 다루도록 구성됨 - 를 포함하는, 상호연결 허브.
  2. 제1항에 있어서, 상기 I2C-호환 인터페이스는 I2C 마스터 코어(I2C master core)인, 상호연결 허브.
  3. 제1항에 있어서, 상기 I2C-호환 인터페이스는 스파이크 필터(spike filter)를 포함하는 제1 I2C 슬레이브 디바이스와 통신하고, 스파이크 필터를 포함하지 않는 제2 I2C 슬레이브 디바이스와 통신하도록 구성되는, 상호연결 허브.
  4. 제1항에 있어서, 상기 I2C-호환 인터페이스는 클록 스트레칭(clock stretching) 특징을 구현하도록 구성된 제1 I2C 슬레이브 디바이스와 통신하도록 구성되는, 상호연결 허브.
  5. 제1항에 있어서, 상기 I3C-호환 인터페이스는 I3C 슬레이브 코어(I3C slave core)인, 상호연결 허브.
  6. 제1항에 있어서, 상기 I3C-호환 인터페이스는 상기 I3C 마스터 디바이스의 최대 동작 주파수에서 상기 I3C 버스를 통해 상기 I3C 마스터 디바이스와 통신하도록 구성되는, 상호연결 허브.
  7. 제1항에 있어서, 상기 I2C-호환 인터페이스는 상기 I2C 슬레이브 디바이스들의 제1 전압 레벨을 상기 I3C 버스와 연관된 제2 전압 레벨로 변환하도록 구성되는, 상호연결 허브.
  8. 제1항에 있어서, 상기 I3C-호환 인터페이스 및 상기 I2C-호환 인터페이스는 상기 I3C 마스터 디바이스로부터 수신된 재설정 요청에 응답하여 상기 I2C 버스에서의 상기 I2C 슬레이브 디바이스들 중 하나에 하드웨어 재설정 신호를 제공하도록 구성되는, 상호연결 허브.
  9. 제1항에 있어서, 상기 I3C-호환 인터페이스 또는 상기 I2C-호환 인터페이스는 상기 I2C 버스에서의 상기 I2C 디바이스 중 하나로부터의 확인 응답(acknowledgement)의 부족에 응답하여, 또는 로우(low)로 유지되는 상기 I2C 의 신호 라인에 응답하여 오류 신호를 생성하도록 구성되는, 상호연결 허브.
  10. 제1항에 있어서, 상기 메모리는 상기 I2C 슬레이브 디바이스들의 각각에 대한 동작 주파수를 나타내는 값을 저장하도록 더 구성되는, 상호연결 허브.
  11. 제1항에 있어서, 상기 하나 이상의 인터럽트 인터페이스는 상기 I2C 슬레이브 디바이스들로부터 I2C 인터럽트를 수신하도록 구성된 단일 인터럽트 인터페이스를 포함하는, 상호연결 허브.
  12. 제1항에 있어서, 상기 하나 이상의 인터럽트 인터페이스는 복수의 인터럽트 인터페이스를 포함하고, 각 인터럽트 인터페이스는 상기 I2C 슬레이브 디바이스들 중 대응하는 것으로부터 상기 I2C 인터럽트 중 하나를 수신하도록 구성되는, 상호연결 허브.
KR1020200172478A 2019-12-12 2020-12-10 I2c와의 하위 호환성을 촉진하는 i3c 허브 KR20210075878A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/712,555 US10860513B1 (en) 2019-12-12 2019-12-12 I3C hub promoting backward compatibility with I2C
US16/712,555 2019-12-12

Publications (1)

Publication Number Publication Date
KR20210075878A true KR20210075878A (ko) 2021-06-23

Family

ID=73653850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200172478A KR20210075878A (ko) 2019-12-12 2020-12-10 I2c와의 하위 호환성을 촉진하는 i3c 허브

Country Status (4)

Country Link
US (1) US10860513B1 (ko)
KR (1) KR20210075878A (ko)
CN (1) CN112988637A (ko)
TW (1) TW202143061A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018210061A1 (de) * 2018-06-21 2019-12-24 Robert Bosch Gmbh I3C-Slave-Schnittstelle, integrierte Schaltung mit einer I3C-Slave-Schnittstelle und Verfahren zum Betreiben einer I3C-Slave-Schnittstelle
US11853236B2 (en) * 2020-11-05 2023-12-26 Synopsys, Inc. Enriched auto command feature for I3C host controller

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031882B2 (en) * 2016-03-31 2018-07-24 Intel Corporation Sensor bus communication system
US20190129464A1 (en) * 2017-11-01 2019-05-02 Qualcomm Incorporated I3c clock generator
CN108255754B (zh) * 2017-12-01 2019-11-19 广东高云半导体科技股份有限公司 一种兼容i2c的i3c主设备、i3c主从设备通信系统及方法
CN108170617B (zh) * 2017-12-01 2019-12-13 广东高云半导体科技股份有限公司 一种i3c设备及通信方法
CN108111382B (zh) * 2017-12-01 2020-03-10 广东高云半导体科技股份有限公司 基于i3c总线的通信装置及其通信方法
CN108255776B (zh) * 2017-12-01 2020-07-03 广东高云半导体科技股份有限公司 一种兼容apb总线的i3c主设备、主从系统及通信方法
CN110489361B (zh) * 2019-07-31 2020-08-25 广东高云半导体科技股份有限公司 兼容sram总线的i3c接口电路

Also Published As

Publication number Publication date
TW202143061A (zh) 2021-11-16
US10860513B1 (en) 2020-12-08
CN112988637A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
KR100572165B1 (ko) 유니버셜 직렬 버스 디바이스 컨트롤러
JP3838278B2 (ja) コンピュータ・システムの2つのバス間のブリッジ回路
US10198382B2 (en) 12C bus controller slave address register and command FIFO buffer
US7529862B2 (en) System for providing access of multiple data buffers to a data retaining and processing device
US7562172B2 (en) I2C Slave/master interface enhancement using state machines
US7000057B1 (en) Method and apparatus for adding OTG dual role device capability to a USB peripheral
US10169282B2 (en) Bus serialization for devices without multi-device support
JP6517243B2 (ja) リンクレイヤ/物理レイヤ(phy)シリアルインターフェース
US20070288671A1 (en) Low power and low pin count bi-directional dual data rate device interconnect interface
US10853289B2 (en) System, apparatus and method for hardware-based bi-directional communication via reliable high performance half-duplex link
CN112639753B (zh) 聚合带内中断
KR20210075878A (ko) I2c와의 하위 호환성을 촉진하는 i3c 허브
US11630796B2 (en) Serial peripheral interface (SPI) automatic register address incrementation across data frames
KR100290728B1 (ko) 다목적 유에스비 엔드포인트 파이프를 구현하는 장치 및 방법
JP2002297275A (ja) データ転送装置、コンピュータ装置、デバイス、ドッキングステーション
KR20060130664A (ko) Pci 익스프레스 장치, pci 익스프레스 시스템 및정보 통신 방법
WO2017171997A1 (en) A method, apparatus and system for communicating between multiple protocols
CN111221769A (zh) 单线读写通讯方法
US6874047B1 (en) System and method for implementing an SMBus/I2C interface on a network interface card
CN116340220A (zh) Usb通信接口适配器
CN115114201A (zh) 一种fsi控制器和包括其的bmc芯片
Cheung et al. I3C hub promoting backward compatibility with I 2 C
CN112835834B (zh) 数据传输系统
US6598111B1 (en) Backplane physical layer controller
US20150095540A1 (en) External device and a transmission system and the method of the heterogeneous device