KR20160047484A - 주변 장치들로부터 하나의 와이어로의 irq 라인들의 수를 최소화하는 방법 - Google Patents

주변 장치들로부터 하나의 와이어로의 irq 라인들의 수를 최소화하는 방법 Download PDF

Info

Publication number
KR20160047484A
KR20160047484A KR1020167005543A KR20167005543A KR20160047484A KR 20160047484 A KR20160047484 A KR 20160047484A KR 1020167005543 A KR1020167005543 A KR 1020167005543A KR 20167005543 A KR20167005543 A KR 20167005543A KR 20160047484 A KR20160047484 A KR 20160047484A
Authority
KR
South Korea
Prior art keywords
irq
bus
signal
asserted
slave
Prior art date
Application number
KR1020167005543A
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 KR20160047484A publication Critical patent/KR20160047484A/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/001In-Line Device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/002Bus

Abstract

공유된 단일 라인 인터럽트 요청 (IRQ) 버스와 제어 데이터 버스에 커플링되는 마스터 디바이스가 제공된다. 마스터 디바이스는 공유된 단일 라인 IRQ 버스에 커플링되는 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑하며, 여기에서 각각의 그룹은 상이한 IRQ 신호와 연관되어 있다. 그 후, 마스터 디바이스는 IRQ 신호가 적어도 하나의 슬레이브 디바이스에 의해 표명될 때를 확인하기 위해 IRQ 버스를 모니터링한다. 그 후, 마스터 디바이스는 IRQ 신호가 연관되어 있는 그룹을 식별한다. 그 후, 슬레이브 디바이스들은 어느 슬레이브 디바이스가 IRQ 버스에 대하여 IRQ 신호를 표명하였는지를 확인하기 위해 마스터 디바이스에 의해 스캔 또는 쿼리된다. 각각의 그룹은 구별가능한 IRQ 신호를 이용하여, 어느 그룹이 쿼리 또는 스캔되는지를 마스터 디바이스가 확인하는 것을 허용한다.

Description

주변 장치들로부터 하나의 와이어로의 IRQ 라인들의 수를 최소화하는 방법{METHOD TO MINIMIZE THE NUMBER OF IRQ LINES FROM PERIPHERALS TO ONE WIRE}
관련 출원들의 상호 참조
본 특허 출원은 발명의 명칭이 "Method To Minimize The Number Of IRQ Lines From Peripherals To One Wire"이고 2013년 8월 24일 출원된 미국 가출원 번호 제61/869,673호, 및 발명의 명칭이 "Method To Minimize The Number Of IRQ Lines From Peripherals To One Wire"이고 2014년 8월 18일 출원된 미국 비가출원 번호 제14/462,363호를 우선권으로 주장하며, 이들은 본 출원인에 양도되었으며 여기에서는 참조로서 명시적으로 포함된다.
기술 분야
본 개시물은 모든 슬레이브 디바이스들에 대한 단일의 공유된 인터럽트 요청을 이용하여 각각의 슬라이스 디바이스에 대한 별도의 인터럽트 요청 라인들의 필요성을 감소시키는 것에 관한 것이다.
I2C 버스 또는 I2C 버스로 또한 지칭될 수도 있는 인터-집적 회로 시리얼 버스는 프로세서에 대한 저속 주변장치들을 접속하는데 있어 사용하도록 의도되었던 시리얼 단일단 컴퓨터 버스이다. I2C 버스는 각각의 디바이스가 I2C 버스 상에서 송신되는 상이한 메시지들에 대하여 마스터 및 슬레이브로서 역할을 할 수 있는 멀티-마스터 버스이다. I2C 버스는 SDA (Serial Data Line) 및 SCL (Serial Clock Line) 을 포함하는 오직 2 개의 양방향 오픈 드레인 커넥터들을 이용하여 데이터를 송신할 수 있다. 커넥터들은 통상적으로 풀업 레지스터들에 의해 종단되는 신호 와이어들을 포함한다.
I2C 버스 동작들을 관리하는 프로토콜들은 기본 유형들의 메시지들을 정의하며, 메시지들 각각은 시작 (START) 으로 시작하여, 종료 (STOP) 로 끝난다. I2C 버스는 7-비트 어드레싱을 이용하고, 2 개의 유형들의 노드들을 정의한다. 마스터 노드는 클록을 생성하고 슬레이브 노드들과 통신을 개시하는 노드이다. 슬레이브 노드는 마스터에 의해 어드레싱될 때 클록을 수신하여 응답하는 노드이다. I2C 버스는 임의의 수의 마스터 노드들이 존재할 수 있는 멀티 마스터 버스이다. 추가적으로, 마스터 및 슬레이브 롤들은 메시지들 사이에서 (즉, "STOP" 이 전송된 후에) 변경될 수도 있다.
통상적인 I2C 시스템들은 각각의 슬래이브 디바이스에 대해 별도의 인터럽트 요청 (IRQ; interrupt request) 라인들을 이용하며, 이는 많은 수의 핀들로 인하여 마스터 디바이스 비용을 증가시킨다. 이들 IRQ 라인들은 슬레이브 디바이스가 데이터 버스를 통하여 통신하기를 희망할 때 슬레이브 디바이스가 마스터 디바이스의 어텐션을 요청하고/하거나 마스터 디바이스에 표시하는 것을 허용한다.
따라서, 복수의 슬레이브 디바이스들로부터 마스터 디바이스로 인입하는 IRQ 라인들의 수를 감소시키는 방법이 요구된다.
다음은 이러한 양태들의 기본적인 이해를 제공하기 위해 본 개시물의 하나 이상의 양태들의 간략화된 개요를 제공한다. 본 개요는 본 개시물의 모든 예견되는 피쳐들의 확장적인 개요가 아니며, 본 개시물의 모든 양태들의 주요한 또는 중요한 엘리먼트들을 식별하도록 의도된 것도 아니고 본 개시물의 임의의 또는 모든 양태들의 범위를 기술하도록 의도된 것도 아니다. 유일한 목적은 하기에 제시되는 상세한 설명에 대한 전조로서 본 개시물의 하나 이상의 양태들의 몇몇 개념들을 단순화된 형태로 제공하는 것이다.
여러 양태들에서, 마스터 디바이스 상의 동작 방법은 공유된 단일 라인 IRQ 버스에 커플링되는 하나 이상의 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑하는 단계, IRQ 신호가 슬레이브 디바이스들 중 하나에 의해 표명될 때를 확인하기 위해 IRQ 버스를 모니터링하는 단계, IRQ 신호가 연관되어 있는 그룹을 식별하는 단계, 및 식별된 그룹의 슬레이브 디바이스들을 스캔하여 IRQ 버스에 대하여 표명된 IRQ 신호를 표명하였던 표명 슬레이브 디바이스를 확인하는 단계를 포함한다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다. 각각의 그룹은 적어도 하나의 슬레이브 디바이스를 포함한다.
일 양태에서, 슬레이브 디바이스들을 스캔하는 단계는 표명 슬레이브 디바이스의 IRQ 상태 레지스터를 스캔하는 단계를 포함한다. 표명 슬레이브 디바이스는 제어 데이터 버스를 통하여 데이터를 송신하도록 액세스를 승인받을 수도 있다.
일 양태에서, 각각의 그룹과 연관된 IRQ 신호는 다른 그룹들과 연관된 IRQ 신호들과는 상이한 펄스 폭을 갖는다.
일 양태에서, IRQ 버스는 비동기식으로 동작한다. IRQ 버스는 슬레이브 디바이스들로부터 마스터 디바이스로의 단방향 신호 송신들에 전용될 수도 있다. 제어 데이터 버스는 슬레이브 디바이스들 및 마스터 디바이스 사이에 양방향 시그널링을 지원할 수도 있다.
여러 양태들에서, 마스터 디바이스는 하나 이상의 슬래이브 디바이스들이 커플링되는 단일 라인 IRQ 버스에 대한 제 1 인터페이스, 하나 이상의 슬레이브 디바이스들이 또한 커플링되는 제어 데이터 버스에 대한 제 2 인터페이스, 및 제 1 인터페이스와 제 2 인터페이스 사이에 커플링되는 프로세싱 회로를 포함한다. 프로세싱 회로는 하나 이상의 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑하도록 적응 또는 구성될 수도 있고, 각각의 그룹은 상이한 IRQ 신호와 연관되어 있다. 프로세싱 회로는 IRQ 신호가 적어도 하나의 슬레이브 디바이스에 의해 표명되는 때를 확인하기 위해 IRQ 버스를 모니터링하도록 적응 또는 구성될 수도 있다. 프로세싱 회로는 IRQ 신호가 연관되어 있는 그룹을 식별하도록 적응 또는 구성될 수도 있다. 프로세싱 회로는 식별된 그룹에 대한 슬레이브 디바이스들을 스캔하여 IRQ 버스에 대한 IRQ 신호를 표명하였던 표명 슬레이브 디바이스를 식별하도록 적응 또는 구성될 수도 있다.
여러 양태들에서, 컴퓨터 판독가능 저장 매체는, 공유된 단일 라인 IRQ 버스에 커플링되는 하나 이상의 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑하기 위한 코드, IRQ 신호가 슬레이브 디바이스들 중 하나에 의해 표명될 때를 확인하기 위해 IRQ 버스를 모니터링하기 위한 코드, IRQ 신호가 연관되어 있는 그룹을 식별하기 위한 코드, 및 식별된 그룹의 슬레이브 디바이스들을 스캔하여 IRQ 버스에 대하여 표명된 IRQ 신호를 표명하였던 표명 슬레이브 디바이스를 확인하기 위한 코드를 포함한다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다. 각각의 그룹은 적어도 하나의 슬레이브 디바이스를 포함한다.
여러 양태들에서, 슬레이브 디바이스 상의 동작 방법으로서, 마스터 디바이스로부터 그룹 할당을 획득하는 단계, IRQ 신호가 다른 슬레이브 디바이스에 의해 표명되는지의 여부를 확인하기 위해 IRQ 버스를 모니터링하는 단계, 다른 IRQ 신호가 IRQ 버스에 대해 표명되지 않을 때 IRQ 버스에 대해 제 1 IRQ 신호를 표명하는 단계를 포함한다. 그룹 할당은 복수의 그룹들로부터 하나의 그룹을 식별할 수도 있다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다. 각각의 그룹은 적어도 하나의 슬레이브 디바이스를 포함한다.
일 양태에서, 방법은 IRQ 버스로부터의 제 1 IRQ 신호를 표명해제하는 단계, 다른 디바이스가 IRQ 버스에 대해 제 2 IRQ 신호를 표명하고 있는지의 여부를 확인하기 위해 IRQ 버스를 모니터링하는 단계를 포함한다. 제 2 IRQ 신호가 표명 중에 있다면, 제 1 IRQ 신호는 제 2 IRQ 신호가 표명해제되고/되거나 IRQ 버스가 아이들 상태가 된 후에 재표명될 수도 있다.
일 양태에서, 본 방법은 마스터 디바이스로부터 제어 데이터 버스를 통하여 상태 레지스터 쿼리를 수신하는 단계, 및 슬레이브 디바이스가 IRQ 버스에 대하여 IRQ 신호를 표명하였다는 상태 표시로 응답하는 단계를 포함한다.
일 양태에서, IRQ 버스는 비동기 버스로서 동작한다. IRQ 버스는 슬레이브 디바이스들로부터 마스터 디바이스로의 단방향 신호 송신들에 전용될 수도 있다. 제어 데이터 버스는 카메라 제어 인터페이스와 호환가능한 버스일 수도 있다. 제어 데이터 버스는 슬레이브 디바이스들과 마스터 디바이스 사이에 배치된 양방향 버스일 수도 있다.
여러 양태들에서, 슬레이브 디바이스는 마스터 디바이스가 커플링되는 단일 라인 IRQ 버스에 대한 제 1 인터페이스, 마스터 디바이스가 또한 커플링되는 제어 데이터 버스에 대한 제 2 인터페이스, 및 제 1 인터페이스 및 제 2 인터페이스에 커플링되는 프로세싱 회로를 포함한다. 프로세싱 회로는 마스터 디바이스로부터 그룹 할당을 획득하고, IRQ 신호가 다른 슬레이브 디바이스에 의해 표명되는지의 여부를 확인하기 위해 IRQ 버스를 모니터링하고, 다른 IRQ 신호가 IRQ 버스에 대해 표명되지 않을 때 IRQ 버스에 대해 제 1 IRQ 신호를 표명하도록 구성 또는 적응될 수도 있다. 그룹 할당은 복수의 그룹들로부터 하나의 그룹을 식별할 수도 있다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다.
여러 양태들에서, 컴퓨터 판독가능 저장 매체는 마스터 디바이스로부터 그룹 할당을 획득하기 위한 코드, IRQ 신호가 다른 슬레이브 디바이스에 의해 표명되는지의 여부를 확인하기 위해 IRQ 버스를 모니터링하기 위한 코드, 다른 IRQ 신호가 IRQ 버스에 대해 표명되지 않을 때 IRQ 버스에 대해 제 1 IRQ 신호를 표명하기 위한 코드를 포함한다. 그룹 할당은 복수의 그룹들로부터 하나의 그룹을 식별할 수도 있다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다. 각각의 그룹은 적어도 하나의 슬레이브 디바이스를 포함한다.
여러 특징들, 속성, 및 이점들은 유사한 도면 부호들이 전체에 걸쳐 대응하게 식별하는 도면들과 함께 취해진 경우 하기에 제시된 상세한 설명으로부터 보다 명백해질 것이다.
도 1 은 복수의 이용가능한 표준들 중 하나에 따라 선택적으로 동작하는 집적 회로 디바이스들 간의 데이터 링크를 채용하는 장치를 나타낸다.
도 2 는 기저대역 프로세서 및 이미지 센서를 갖고 이미지 데이터 버스 및 제어 데이터 버스를 구현하는 디바이스를 예시하는 블록도이다.
도 3 은 본원에 개시된 특정 양태들에 따라 IC 디바이스들 간에 데이터 링크를 채용하는 장치에 대한 간략화된 시스템 아키텍쳐를 예시하는 다이어그램이다.
도 4 는 본원에 개시된 특정 양태들에 따라 단일 와이어 IRQ 버스가 복수의 슬레이브 디바이스들 및 하나 이상의 마스터 디바이스들에 의해 공유될 수도 있는 방법을 예시하는 블록도이다.
도 5 는 본원에 개시된 특정 양태들에 따라 상이한 그룹들에 할당되거나 또는 연관될 수도 있는 상이한 IRQ 신호들의 예들을 예시한다.
도 6 은 본원에 개시된 특정 양태들에 따라 마스터 디바이스에 의한, IRQ 신호들에 대한 모니터링 및 IRQ 표명 슬레이브 디바이스의 식별을 예시한다.
도 7 은 본원에 개시된 특정 양태들에 따라 공유된 단일 라인 IRQ 버스에 대한 IRQ들의 동시적인 표명들을 회피할 수 있는 제 1 기술을 예시한다.
도 8 은 본원에 개시된 특정 양태들에 따라 공유된 단일 라인 IRQ 버스에 대한 IRQ들의 동시적인 표명들을 회피할 수 있는 제 2 기술을 예시한다.
도 9 는 최단 IRQ 신호 길이와 연관된 타이밍을 예시한다.
도 10 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 프로세싱 회로를 채용하는 장치의 일 예를 예시하는 블록도이다.
도 11 은 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ 를 표명하는 방법의 제 1 예의 흐름도이다.
도 12 는 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ들을 처리하는 방법의 제 1 예의 흐름도이다.
도 13 은 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ 를 표명하였던 디바이스를 식별하기 위해 슬레이브 디바이스들의 그룹을 스캔하는 방법의 흐름도이다.
도 14 는 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ들을 처리하는 방법의 제 2 예의 흐름도이다.
도 15 는 공유된 IRQ 버스에 대하여 IRQ들을 처리하기 위하여 적응된 장치에 대한 하드웨어 구현의 일 예를 예시하는 블록도이다.
도 16 은 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ들을 표명하는 방법의 제 2 예의 흐름도이다.
도 17 은 공유된 IRQ 버스에 대하여 IRQ들을 표명하기 위하여 적응된 장치에 대한 하드웨어 구현의 일 예를 예시하는 블록도이다.
다음의 설명에서, 실시형태들의 완전한 이해를 제공하기 위해 특정 세부사항들이 주어진다. 그러나, 실시형태들은 이러한 특정 세부사항들이 없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 예를 들면, 실시형태들을 불필요하게 불명확하게 하지 않기 위해 회로들을 블록도들로 도시할 수도 있다. 다른 경우들에서, 실시형태들을 불명확하게 하지 않기 위해 공지의 회로들, 구조들 및 기술들이 상세히 도시되지 않을 수도 있다.
본원에 개시된 특정 실시형태들은 공통 I2C 버스를 이용하는 인핸스드 통신 인터페이스들 및 종래의 I2C 버스 동작들 양쪽 모두를 지원하는 시리얼 버스를 이용하는 통신 인터페이스의 성능을 개선할 수 있는 시스템들, 방법들 및 장치들을 제공한다. 일 예에서, 카메라 제어 인터페이스 (CCI) 는 I2C 버스에 기초할 수도 있고, 마스터와 하나 이상의 슬레이브들을 접속하는 버스로서 구성된 2-와이어, 양방향, 하프듀플렉스, 시리얼 인터페이스를 이용하여 전개될 수도 있다. CCI 동작들은 I2C 버스 동작들과 호환가능할 수도 있다. 특정 양태들에 따르면, I2C 또는 CCI 버스에 접속된 다수의 주변 디바이스들을 지원하는데 필요한 IRQ 라인들의 수를 최소화하는 시스템들, 장치들 및 방법들이 제공된다. 일부 경우들에서, 단일 IRQ 라인은 I2C 또는 CCI 버스에 접속된 주변기기들 모두로부터의 인터럽트 요청들을 처리할 수 있다. 본원에 개시된 일 예에서, CCI 확장 (CCIe) 디바이스들은 I2C 또는 CCI 동작 모드들을 이용하여 획득되는 데이터 레이트들보다 상당히 더 큰 데이터 레이트들에서 동작할 수 있는 2-와이어, 양방향, 하프듀플렉스, 시리얼 인터페이스를 제공하기 위해 I2C 버스를 이용하여 전개될 수도 있다. 이 후자의 예에서, 단일 IRQ 라인은 버스에 접속된 I2C, CCI, 또는 CCIe 주변장치들로부터의 인터럽트 요청들을 처리할 수 있다.
개관
본 출원에서 이용된 바와 같이, 용어들 "컴포넌트", "모듈", "시스템" 등은, 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 실행 중인 소프트웨어와 같지만 이들에 제한되지 않은 컴퓨터 관련 엔티티를 포함하도록 의도된다. 예를 들면, 컴포넌트는 프로세서 상에서 구동하는 프로세스, 프로세서, 오브젝트, 실행가능물, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수도 있지만, 이들에 제한되는 것은 아니다. 예로서, 컴퓨팅 디바이스 상에서 구동하는 애플리케이션, 및 컴퓨팅 디바이스 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행의 스레드 내에 상주할 수도 있고, 컴포넌트는 하나의 컴퓨터에 국소화되고/되거나 둘 이상의 컴퓨터들 사이에 분산될 수도 있다. 또한, 이들 컴포넌트들은 여러 데이터 구조들이 저장된 여러 컴퓨터 판독 가능한 매체로부터 실행될 수도 있다. 컴포넌트들은 하나 이상의 데이터 패킷들 이를 테면, 로컬 시스템, 분산형 시스템의 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 및/또는 인터넷과 같은 네트워크를 따르는 데이터를 갖는 신호에 따라서와 같이 로컬 및/또는 원격 프로세스들에 의해 통신할 수도 있다.
또한, 용어 "또는" 은 배타적 "or" 이기 보다는 포괄적 "or" 을 의미하도록 의도된다. 즉, 달리 특정되어 있지 않거나 또는 문맥으로터 명백한 것이 아닌 한, 구절 "X 는 A 또는 B 를 채택한다"는 자연적으로 포괄적 순열들 중 어느 것을 의미하도록 의도된다. 즉, 구절 "X 는 A 또는 B 를 채택한다" 는 다음의 예시들 중 임의의 예시에 의해 만족된다: X 는 A 를 채택한다; X 는 B 를 채택한다; 또는 X 는 A 와 B 양자 모드를 채택한다. 또한, 본 출원 및 첨부된 청구항들에서 이용된 바와 같은 관사 "하나 (a)" 및 "하나 (an)" 는 일반적으로, 단수 형태인 것이 명백하지 않거나 달리 특정되어 있지 않는 한, "하나 이상" 을 의미하는 것으로 일반적으로 간주되어야 한다.
본 발명의 특정 양태들은 전자 디바이스들 간에 전개되는 통신 링크들에 적용가능할 수도 있으며, 이 전자 디바이스들은 장치의 서브컴포넌트들, 이를 테면, 전화기, 모바일 컴퓨팅 디바이스들, 가전기기들, 자동차 전자기기들, 항공 전자기기들 등을 포함할 수도 있다. 도 1 은 집적 회로 (IC) 디바이스들 간의 통신 링크를 채택할 수도 있는 장치를 예시한다. 일 예에서, 장치 (100) 는 무선 액세스 네트워크 (RAN), 코어 액세스 네트워크, 인터넷 및/또는 다른 네트워크와 RF 트랜시버를 통하여 통신하는 무선 통신 디바이스를 포함할 수도 있다. 장치 (100) 는 프로세싱 회로 (102) 에 동작가능하게 커플링되는 통신 트랜시버 (106) 를 포함할 수도 있다. 프로세싱 회로 (102) 는 하나 이상의 IC 디바이스들, 이를 테면, 응용 주문형 IC (ASIC) (108) 를 가질 수도 있다. ASIC (108) 은 하나 이상의 프로세싱 디바이스들, 로직 회로들 등을 포함할 수도 있다. 프로세싱 회로 (102) 는 프로세싱 회로 (102) 에 의해 실행가능할 수도 있는 명령들 및 데이터를 유지할 수도 있는 프로세서 판독가능 스토리지, 이를 테면 메모리 (112) 를 포함하고/하거나 커플링될 수도 있다. 프로세싱 회로 (102) 는 무선 디바이스의 메모리 디바이스 (112) 와 같은 저장 매체 내에 상주하는 소프트웨어 모듈의 실행을 인에이블하거나 지원하는 애플리케이션 프로그래밍 인터페이스 (API)(110) 계층 및 오퍼레이팅 시스템 중 하나 이상에 의해 제어될 수도 있다. 메모리 디바이스 (112) 는 ROM (read-only memory) 또는 RAM (random-access memory), EEPROM (electrically erasable programmable read-only memory), 플래시 카드들, 또는 프로세싱 시스템 및 컴퓨팅 플랫폼들에 이용될 수 있는 임의의 메모리 디바이스를 포함할 수도 있다. 프로세싱 회로 (102) 는 장치 (100) 를 구성하고 동작시키는데 이용된 동작 파라미터들 및 다른 정보를 유지할 수 있는 로컬 데이터베이스 (114) 를 포함하거나 로컬 데이터베이스 (114) 에 액세스할 수도 있다. 로컬 데이터베이스 (114) 는 데이터베이스 모듈, 플래시 메모리, 자기 매체, EEPROM, 광학 매체, 테이프, 소프트 또는 하드 디스크 등 중 하나 이상을 이용하여 구현될 수도 있다. 프로세싱 회로는 또한, 다른 컴포넌트들 중에서 안테나 (122), 디스플레이 (124), 오퍼레이터 제어부들, 이를 테면 버튼 (128) 및/또는 키패드 (126) 와 같은 외부 디바이스들에 동작가능하게 커플링될 수도 있다.
IRQ 라인들을 감소시키는 방법을 예시하는 제 1 예
도 2 는 기저대역 프로세서 (204) 및 이미지 센서 (206) 를 갖는 디바이스 (202) 의 간략화된 예를 예시하는 블록도 (200) 이다. 이미지 데이터 버스 (216) 및 멀티모드 제어 데이터 버스 (208) 는 디바이스 (202) 에서 구현될 수도 있다. 다이어그램 (200) 은 단지 예로서 카메라 디바이스 (202) 를 예시하며, 여러 다른 디바이스들 및/또는 상이한 기능부들이 제어 데이터 버스 (208) 를 이용하여 구현, 동작 및/또는 통신할 수도 있다. 예시된 예에서, 이미지 데이터는 이미지 센서 (206) 로부터 기저대역 프로세서 (204) 로 이미지 데이터 버스 (216), 이를 테면, MIPI 에 의해 정의되는 "DPHY" 고속 차동 링크를 통하여 전송될 수도 있다. 일 예에서, 제어 데이터 버스 (208) 는 I2C 버스 모드에서 동작하기 위하여 구성가능한 2 개의 와이어들을 가질 수도 있다. 따라서, 제어 데이터 버스 (208) 는 SCL 및 SDA 와이어들을 포함할 수도 있다. SCL 는 I2C 프로토콜들을 따라 제어 데이터 버스 (208) 를 통한 데이터 트랜스퍼들을 동기시키는데 이용될 수도 있는 클록 신호를 반송할 수도 있다. 데이터 라인 SDA 및 클록 라인 SCL 은 I2C 버스 (제어 데이터 버스 (208)) 상에서 다수의 디바이스들 (212, 214, 및 218) 에 커플링될 수도 있다. 이 예에서, 제어 데이터는 제어 데이터 버스 (208) 을 통하여 기저대역 프로세서 (204) 및 이미지 센서 (206) 뿐만 아니라 다른 주변 디바이스들 (218) 사이에서 교환될 수도 있다. I2C 프로토콜들에 따르면, SCL 와이어 상의 클록 스피드들은 통상의 I2C 동작에 대해 최대 100 KHz 까지, I2C 고속 모드에 대해 최대 400 KHz 까지 그리고 I2C 고속 모드 플러스 (Fm+) 에 대해 최대 1 MHz 까지일 수도 있다. I2C 버스를 통한 이들 동작 모드들은 카메라 애플리케이션들에 대해 이용될 때 CCI 모드로서 지칭될 수도 있다.
일부 예들에서, 2 개 이상의 슬레이브 디바이스들 (214 또는 218a) 이 대응하는 IRQ 라인 (220 또는 222) 에 대해 미리 정의된 논리 레벨을 표명함으로써 기저대역 프로세서 (204) 의 어텐션을 요청할 수도 있다.
CCIe 동작들에 대해 적응된 디바이스의 특정 양태들을 예시하는 예들
도 3 은 CCIe 버스 (330) 와 같은 통신 버스를 채택할 수도 있는 장치 (300) 의 특정 양태들을 예시하는 블록 개략도이다. 장치 (300) 는 무선 모바일 디바이스, 모바일 전화기, 모바일 컴퓨팅 시스템, 무선 전화기, 노트북 컴퓨터, 태블릿 컴퓨팅 디바이스, 미디어 플레이어, 게이밍 디바이스들 등 중 하나 이상에서 채용될 수도 있다. 장치 (300) 는 CCIe 버스 (330) 를 이용하여 통신하는 다수의 디바이스들 (302, 320 및/또는 322a-322n) 을 포함할 수도 있다. CCIe 버스 (330) 는 CCIe 버스 (330) 에 의해 지원되는 강화된 피쳐들에 대하여 구성되는 디바이스들에 대한 통상적인 CCI 버스의 능력들을 확장할 수 있다. 예를 들어, CCIe 버스 (330) 는 CCI 버스 (330) 보다 더 높은 비트 레이트를 지원할 수도 있다. 본원에 개시된 특정 양태들에 따르면, CCIe 버스 (330) 의 일부 버전들은 16.7 Mbps 이상의 비트 레이트들을 지원하도록 구성 또는 적응될 수도 있고, CCIe 버스의 일부 버전들은 초당 적어도 23 메가비트들의 데이터 레이트들을 지원하도록 구성 또는 적응될 수도 있다.
도 3 에 예시된 예에서, 이미징 디바이스 (302) 는 CCIe 버스 (330) 에 대하여 슬레이브 디바이스로서 동작하도록 구성된다. 이미징 디바이스 (302) 는 예를 들어, 이미지 센서를 관리하는 센서 제어 기능부 (304) 를 제공하도록 적응될 수도 있다. 또한, 이미징 디바이스 (302) 는 구성 레지스터들 (306) 및/또는 다른 스토리지 디바이스들 (324), 프로세싱 회로 및/또는 제어 로직 (312), 트랜시버 (310) 및 드라이버들/수신기들 (314a 및 314b) 을 포함할 수도 있다. 프로세싱 회로 및/또는 제어 로직 (312) 은 상태 머신, 시퀀서, 신호 프로세서 또는 범용 프로세서와 같은 프로세서를 포함할 수도 있다. 트랜시버 (310) 는 타이밍, 로직, 및 스토리지 회로들 및/또는 디바이스들을 포함한, 수신기 (310a), 송신기 (310c) 및 특정 공통 회로들 (310b) 을 포함할 수도 있다. 일부 경우들에서, 트랜시버 (310) 는 인코더들 및 디코더들, 클록 및 데이터 복구 회로들 등을 포함할 수도 있다.
송신 클록 (TXCLK) 신호 (328) 는 송신기 (310c) 에 제공될 수도 있고, 여기에서 TXCLK 신호 (328) 는 CCIe 통신 모드에 대한 데이터 송신 레이트들을 결정하는데 이용될 수 있다. SDA 와이어 (318) 및 SCL 와이어 (316) 양쪽 모두가 송신된 데이터를 인코딩하는데 이용될 때, TXCLK 신호 (328) 는 CCIe 버스 (330) 상에서 송신된 심볼들의 시퀀스들 내에 임베딩될 수도 있다. 일 예에서, TXCLK 신호 (328) 는 트랜지션 클록 트랜스코딩을 이용하여 임베딩될 수도 있고, 이에 의해 물리적 링크 (330) 를 통하여 송신되는 데이터가 트랜스코딩되어, 적어도 하나의 와이어 (316 및/또는 318) 의 상태의 변화가 CCIe 버스 (330) 상에서 송신되는 연속 심볼들의 각각의 페어 사이에서 발생하게 된다.
본원에 개시된 일 예에서, CCIe 디바이스들 (302, 320, 및/또는 322a-322n) 은 단일 와이어를 갖는 IRQ 버스 (326) 에 커플링될 수도 있다. CCIe 디바이스들 (302, 320, 및/또는 322a-322n) 은 제어 데이터 버스 (330) 의 2-와이어들 (316, 318) 을 이용하여 통신할 수도 있다. 예를 들어, 2-와이어 제어 데이터 버스 (330) 는 I2C 또는 CCI 동작 모드들에 의해 지원되는 데이터 레이트보다 상당히 더 큰 데이터 레이트들을 제공할 수 있는 CCIe 양방향, 하프-듀플렉스 통신 모드들을 지원할 수도 있다. CCIe 디바이스들 (302, 320, 및/또는 322a-322n) 은 2 와이어 제어 데이터 버스 (330) 상에서 송신되는 심볼들의 시퀀스에 임베딩된 클록 정보와 함께, 제어 데이터 버스 (330) 의 SCL 와이어 (316) 및 SDA 와이어 (318) 양쪽 모두에 대해 데이터를 송신할 수도 있다. 특정 CCIe 디바이스들 (320) 은 버스 마스터로서 구성될 수도 있고, 특정 디바이스들 (302, 및/또는 322a-322n) 은 슬레이브 디바이스들로서 구성될 수도 있다. CCIe 디바이스들 (302, 320, 및/또는 322a-322n) 은 제어 데이터 버스 (330) 에 커플링된 I2C 및/또는 CCI 디바이스들과 호환가능 또는 공존할 수도 있어, I2C 디바이스들이 제어 데이터 버스 (330) 를 모니터링하고 있는 경우에도, CCIe 디바이스 (302, 320, 또는 322a-322n) 가 CCIe 프로토콜 및 시그널링 사양들을 이용하여 하나 이상의 다른 CCIe 디바이스들 (302, 320, 및/또는 322a-322n) 과 통신할 수도 있게 된다. 본원에 개시된 일 예는 CCIe 및 I2C/CCI 가 동일한 버스 상에 배치될 때 단일의 마스터 디바이스 (320) 를 이용하여 버스에 커플링된 다수의 슬레이브들 (302, 및/또는 322a-322n) 을 처리할 수 있는 인터페이스를 제공한다. 후자의 예에서, 2개 이상의 CCIe 디바이스들 (302, 320, 및/또는 322a-322n) 은 CCIe 프로토콜을 이용하여 통신할 수도 있고, I2C 또는 CCI 디바이스와의 임의이 통신 트랜잭션이 I2C 버스 프로토콜에 따라 수행된다.
공통 IRQ 버스의 이용을 예시하는 예
도 4 는 하나 이상의 슬레이브 디바이스들 (410, 412, 414, 418, 418) 이 공통 또는 공유된 IRQ 버스 (422) 에 대해 미리 정의된 논리 레벨을 표명함으로써 버스 마스터 (404) 의 어텐션을 요청할 수도 있는 일 예를 예시하는 블록도 (400) 이다. 단일 와이어 IRQ 버스 (420) 는 I2C, CCI 및/또는 CCIe 디바이스들을 포함할 수도 있는 복수의 슬레이브 디바이스들 (410, 412, 414, 416, 418) 에 의해 공유될 수도 있다. 나타낸 예에서, 슬레이브 디바이스들 (410, 412, 414, 416, 418) 각각은 CCIe 통신 모드들을 지원하도록 적응될 수도 있고, 버스 마스터 디바이스 (404) 는 I2C, CCI 및 CCIe 동작 모드들에서 버스 마스터로서 역할을 하도록 적응된다.
일 양태에 따르면, 공유된 단일 라인 IRQ 버스 (422) 는 마스터 디바이스 (404) 로의 슬레이브 디바이스들 (410, 412, 414, 416, 418) 에 커플링된다. 풀업 저항 (420) 은 슬레이브 디바이스들 (410, 412, 414, 416, 418) 의 어느 것도 인터럽트 요청을 표명하지 않을 때 IRQ 버스 (422) 의 시그널링 상태를 정의하기 위해 IRQ 버스 (422) 의 와이어에 커플링될 수도 있다. 일 예에서, 슬레이브 디바이스들 (410, 412, 414, 416, 418) 은 마스터 디바이스 (404) 의 인터럽트를 요청하거나 인터럽트를 위해 IRQ 버스 (422) 를 로우로 구동시킬 수도 있다. 즉, 각각의 슬레이브 디바이스 (410, 412, 414, 416, 및 418) 는 마스터 디바이스 (404) 로부터의 어텐션을 요청하기 위하여 IRQ 신호를 구동시킴으로써 인터럽트 요청을 독립적으로 표명할 수도 있다.
공통의 공유된 단일 와이어 IRQ 버스 (422) 는 인터럽트 요청을 표명하였던 하나 이상의 슬레이브 디바이스들 (410, 412, 414, 416, 및/또는 418) 의 아이덴티티의 표시를 제공하기 위해 슬레이브 디바이스들 (410, 412, 414, 416, 418) 각각을 구성함으로써 복수의 슬레이브 디바이스들에 의해 공유될 수도 있다. 일부 경우들에서, 슬레이브 디바이스들 (410, 412, 414, 416, 418) 중 둘 이상이 마스터 디바이스 (404) 의 어텐션을 경합할 수도 있고, 이들 경합하는 슬레이브 디바이스들 (410, 412, 414, 416, 및/또는 418) 의 아이덴티티의 표시는 마스터 디바이스 (404) 로부터의 어텐션에 대한 어느 요청이 승인되는지를 결정하는데 이용될 수도 있다. 일 예에서, 각각의 슬레이브 디바이스 (410, 412, 414, 416, 418) 는 IRQ 버스 (422) 를 구동시키는 디바이스 (410, 412, 414, 416, 또는 418) 의 아이덴티티에 대응하는 길이를 갖는 기간 동안에 IRQ 버스 (422) 를 구동시킴으로써 인터럽트 요청을 표명하도록 구성될 수도 있다. 일부 경우들에서, IRQ 버스 (422) 를 구동시키는데 이용된 펄스의 길이는 마스터 디바이스 (404) 로부터의 어텐션에 대하여 경합하는 슬레이브 디바이스 (410, 412, 414, 416, 418) 를 포함하는 슬레이브 디바이스들 (410, 412, 414, 416, 418) 의 소정 그룹 (406, 408) 을 식별할 수도 있다. 각각의 슬레이브 디바이스 (410, 412, 414, 416 또는 418) 는 슬레이브 디바이스 (410, 412, 414, 416 또는 418) 가 속하는 그룹 (406, 408) 으로 정의되고/되거나 그룹에 할당된 폭을 갖는 펄스를 생성하도록 구성될 수도 있다. 예를 들어, 제 1 그룹 (406) 에서의 슬레이브 디바이스들 (410 및 412) 은 제 2 그룹 (408) 에서의 슬레이브 디바이스들 (414 및 416) 에 의해 생성된 펄스의 지속기간과는 상이한 지속기간을 갖는 공유된 단일-와이어 IRQ 버스 (422) 상에서 펄스를 생성하도록 구성될 수도 있다. 각각의 그룹 (406 및 408) 은 적어도 하나의 슬레이브 디바이스를 포함한다.
IRQ 버스 (422) 의 표명의 지속기간은 요청한 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 가 마스터 디바이스 (404) 의 어텐션을 승인받는지를 결정할 수도 있다. 일 예에서, 우선순위 방식은 더 높은 우선순위의 슬레이브 디바이스들 (410, 412, 414, 416, 418) 에 대해 더 긴 펄스 폭들을 할당하고 더 낮은 우선순위의 슬레이브 디바이스들 (410, 412, 414, 416, 418) 에 더 짧은 펄스 폭들을 할당할 수도 있다. 동작시에, 제 1 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 는 IRQ 버스 (422) 상에 펄스를 제공함으로써 인터럽트 요청을 표명할 수도 있다. 제 2 의 더 높은 우선선위 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 는 제 1 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 에 의해 제공되는 펄스의 폭보다 더 긴 폭을 갖는 펄스를 IRQ 버스 (422) 에 제공함으로써 인터럽트 요청을 표명할 수도 있다. IRQ 버스 (422) 가 표명되었다면, 마스터 디바이스 (404) 는 IRQ 버스 (422) 의 표명의 지속기간을 이용하여, IRQ 버스 (422) 를 표명하고 있는 최고 우선순위 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 및/또는 표명 슬레이브 디바이스 (410, 412, 414, 416) 를 포함하는 최고 우선선위 그룹 (406 또는 408) 을 식별할 수도 있다. 그 후, 마스터 디바이스는 IRQ 버스 (422) 에 대해 관측되었던 펄스 폭을 할당받은 하나 이상의 슬레이브 디바이스들 (410, 412, 414, 416, 418) 에 대한 IRQ 상태 레지스터를 스캔하도록 제어 데이터 버스 (402) 에 대한 시그널링을 이용할 수도 있다.
일부 경우들에서, 적어도 제 2 의 더 높은 우선순위 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 가 또한, IRQ 버스 (422) 를 더 긴 펄스 폭으로 구동시킴으로써 마스터 디바이스 (404) 의 어텐션을 요청 중에 있음을 표시하여, 제 1 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 에 의해 제공되는 펄스의 종료 후에 IRQ 버스 (422) 가 계속 액티브하게 구동될 때, 제 1 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 는 제 2 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 에게 양보할 수도 있다. 이러한 환경들에서, 제 1 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 는 제어 데이터 버스 (402) 에 대하여 경합하는 다음 기회가 발생할 때까지 아이들 모드 또는 휴면 모드로 복귀할 수도 있다.
일부 경우들에서, 단일 와이어 IRQ 버스 (422) 는 슬레이브 디바이스들 (410, 412, 414, 416, 418) 및 하나 이상의 마스터 디바이스들 (404) 에 의해 공유될 수도 있다. 이 예에서, 슬레이브 디바이스들 (410, 412, 414, 416, 418) 은 논리적으로 그룹화될 수도 있다. 예를 들어, 제 1 그룹 (406) 은 제 1 복수의 슬레이브 디바이스들 (410 및 412) 을 포함할 수도 있고 제 2 그룹 (408) 은 제 2 복수의 슬레이브 디바이스들 (414 및 416) 을 포함할 수도 있다. 이러한 그룹화들은 예를 들어, 미리 구성될 수도 있고, 동적으로 정의될 수도 있고/있거나 초기화시에 마스터 디바이스 (404) 에 의해 열거에 의해 정의될 수도 있다. 그룹들 (406, 408) 의 이용은 마스터 디바이스 (404) 가, IRQ 버스 (422) 를 구동시킴으로써 인터럽트 요청을 표명하는 하나 이상의 슬레이브 디바이스들 (410, 412, 414, 416, 및/또는 418) 을 보다 더 신속하게 식별하게 허용할 수도 있다.
일부 경우들에서, 단일 라인 IRQ 버스는 마스터 디바이스 (404) 또는 다른 디바이스의 관리 없이도 비동기적으로 동작할 수도 있다. 비동기 동작에서, 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 는 언제라도 IRQ 버스 (422) 를 일방적으로 구동시킬 수 있다. 일부 경우들에서, 슬레이브 디바이스들 (410, 412, 414, 416, 418) 은 인터럽트 요청을 표명하기 전에 IRQ 버스 (422) 가 아이들 상태에 있음 (즉, 다른 디바이스에 의해 구동되지 않음) 을 컨펌할 수도 있다.
일부 경우들에서, 단일 라인 IRQ 버스 (422) 는 슬레이브 디바이스들 (410, 412, 414, 416, 418) 로부터 마스터 디바이스 (404) 로의 단방향 신호 송신들에 전용될 수도 있다. 즉, IRQ 버스 (422) 는 인터럽트 요청 시그널링에 대해 예약될 수도 있고 다른 유형의 신호들은 IRQ 버스 (422) 에 대해 지원되지 않는다.
슬레이브 디바이스들 (410, 412, 414, 416) 의 그룹들 (406, 408) 은 별개의 IRQ 신호를 이용하도록 구성될 수도 있다. 일 예에서, 제 1 그룹 (406) 은 제 1 기간을 갖는 제 1 신호를 이용할 수도 있고, 제 2 그룹 (408) 은 제 2 기간을 갖는 제 2 신호를 이용할 수도 있고, 이하 동일하게 이루어진다. 일부 인스턴스들에서, 다른 슬레이브 디바이스들과 그룹핑되지 않는 슬레이브 디바이스 (418) 는 하나의 디바이스의 그룹으로서 처리될 수도 있고, 제 3 기간을 갖는 제 3 신호를 이용하도록 할당될 수도 있다. IRQ 신호들의 주기는, IRQ 버스 (420) 가 표명 슬레이브 디바이스 (410, 412, 414, 416, 또는 418) 에 의해 구동되는 (예를 들어, 로우로 풀링되는) 시간의 길이로서 정의될 수도 있다. 신호 차등 (signal differentiation) 의 다른 형태들이 이용될 수도 있다. 예를 들어, 상이한 IRQ 신호 전압 레벨들이 슬레이브 디바이스들 (410, 412, 414, 416), 및/또는 그룹에 할당되지 않거나 또는 그룹의 단독 멤버로서 달리 처리되는 슬레이브 디바이스 (418) 의 상이한 그룹들 (406, 408) 에 할당될 수도 있다.
일부 예들에서, 그룹 (406, 408) 은 각각의 그룹 (406, 408) 이 적어도 하나의 슬레이브 디바이스들 (410, 412, 414, 416, 418) 을 포함할 수도 있도록, 슬레이브 디바이스들 (410, 412, 414, 416, 418) 의 논리적 그룹을 정의할 수도 있다. 그룹 (406, 408) 은 다수의 슬레이브 디바이스들 (410, 412, 414, 416, 418) 을 포함할 수도 있다. 각각의 그룹 (406, 408) 에 할당된 슬레이브 디바이스들 (410, 412, 414, 416, 418) 의 수는 그룹 (406, 408) 에서 각각의 잠재적인 표명 슬레이브 디바이스 (410, 412, 414, 416, 418) 를 쿼리하여 식별하는 지속 기간과 같은 팩터들에 기초하여 결정될 수도 있다. 예를 들어, IRQ 버스 (422) 에 커플링된 모든 슬레이브 디바이스들 (410, 412, 414, 416, 418) 이 마스터 디바이스 (404) 에 의해 쿼리될 때 허용할 수 없이 긴 지연이 나올 수 있다.
표명 슬레이브 디바이스 (410, 412, 414, 416, 418) 를 식별하는 시간은, 슬레이브 디바이스 (410, 412, 414, 416, 418) 가 IRQ 를 표명하였던 그룹 (406, 408) 을 식별하고, 식별된 그룹 (406 또는 408) 에서의 각각의 멤버 슬레이브 디바이스 (410, 412, 414, 416, 418) 에 쿼리하기 위한 별개의 IRQ 신호들의 이용을 통하여 실질적으로 감소될 수도 있다. 마스터 디바이스 (404) 는 IRQ 버스 (422) 의 표명의 발생을 검출할 수도 있고, 마스터 디바이스 (404) 는 표명의 지속기간을 결정할 수도 있다. IRQ 표명의 결정된 지속기간에 기초하여, 마스터 디바이스 (404) 는 마스터 디바이스 (404) 에 의해 관측되는 길이의 지속기간에 대응하는 그룹 (406 또는 408) 을 식별할 수도 있다. 마스터 디바이스 (404) 는 어느 슬레이브 디바이스가 IRQ 신호를 트리거링 또는 표명하였는지를 식별하기 위해 그룹 (406, 408) 에서의 각각의 슬레이브 디바이스 (410, 412, 414, 416, 418) 에 쿼리할 수도 있다. 일 예에서, 마스터 디바이스 (404) 는 IRQ 표명이 제 1 그룹 (406) 으로부터 발신되었음을 결정할 수도 있다. 마스터 디바이스 (404) 는 제어 데이터 버스 (402) 를 통하여 제 1 슬레이브 디바이스 (410 또는 412) 에 요청 또는 커맨드를 송신할 수도 있다. 마스터 디바이스 (404) 는 예를 들어, 레지스터 상태 요청을 송신할 수도 있다. 이에 응답하여, 제 1 슬레이브 디바이스 (410 또는 412) 는 마스터 디바이스 (404) 에 상태 정보를 송신할 수도 있다. 제 1 슬레이브 디바이스 (410 또는 412) 가 IRQ 요청의 소스가 아니라고 상태 정보가 표시하면, 마스터 디바이스 (404) 는 제어 데이터 버스 (402) 를 통하여 제 1 그룹 (406) 에서의 제 2 슬레이브 디바이스 (412 또는 410) 에 레지스터 상태 요청을 송신할 수도 있다. 이 프로세스는 IRQ 신호가 식별됨을 슬레이브 디바이스 (410, 412) 가 표명했을 때까지 제 1 그룹 (406) 의 모든 슬레이브 디바이스들 (410, 412) 에 대하여 반복될 수도 있다.
도 5 는 상이한 그룹들 (406, 408, 514) 에 의해 각각 이용된 IRQ 신호들 (502, 504, 506) 의 타이밍의 예들을 예시하는 타이밍도 (500) 이다. 상이한 IRQ 신호 타이밍은 각각의 상이한 그룹 (406, 408, 514) 에 할당 또는 연관될 수도 있고/있거나 각각의 그룹 (406, 408, 또는 514) 의 멤버 슬레이브 디바이스들 (410, 412, 414, 416, 418) 의 IRQ 신호 타이밍은 대응하는 그룹 (406, 408, 514) 에 할당 또는 연관된 IRQ 신호 타이밍으로부터 유도되거나 또는 이 타이밍에 기초할 수도 있다. 각각의 그룹 (406, 408, 514) 은 멤버 슬레이브 디바이스들 (410, 412, 414, 416, 418) 중 단일의 하나 또는 복수의 멤버 슬레이브 디바이스들 (410, 412, 414, 416, 418) 을 포함할 수도 있다. 제 1 그룹 (406) 은 제 1 펄스 폭 (508) 을 갖는 IRQ 신호 (502) 를 이용할 수도 있고, 제 2 그룹 (408) 은 제 2 펄스 폭 (510) 을 갖는 IRQ 신호 (504) 를 이용할 수도 있고, 제 n 그룹 (506) 은 제 3 펄스 폭 (512) 을 갖는 제 3 IRQ 신호 (506) 를 이용하도록 구성될 수도 있다.
도 6 은 버스 마스터 디바이스 (404) 의 관점에서부터 공유된 IRQ 버스 (422) 의 동작을 예시한다. 이 예는 I2C, CCI 및/또는 CCIe 프로토콜들에 따라 동작되는 제어 데이터 버스 (402) 에 대한 동작들의 타이밍 (612) 에 적용할 수도 있다. 버스 마스터 디바이스 (404) 는 인터럽트 요청이 표명되었는지의 여부를 결정하기 위해 IRQ 버스 (422) 에 대한 신호들의 타이밍 (602) 을 모니터링할 수도 있다. 버스 마스터 디바이스 (404) 는 IRQ 버스 (422) 에 대한 펄스 (608, 610) 의 지속기간 (604, 606) 에 기초하여 인터럽트 요청을 표명하는 슬레이브 디바이스를 식별할 수도 있다.
이 예에서, 슬레이브 디바이스들의 그룹들 (406, 408) 은 미리 정의된 기간 (604, 606) 동안에 IRQ 버스 (422) 를 구동시키도록 구성될 수도 있다. 따라서, 버스 마스터 디바이스 (404) 는 펄스들 (608 및 610) 동안 IRQ 버스 (422) 를 모니터링할 수도 있고 임의의 검출된 펄스들 (608, 610) 의 지속기간들 (604, 606) 을 측정 또는 타이밍할 수도 있다. 일 예에서, 버스 마스터 디바이스 (404) 는 펄스 (608, 610) 의 시작시에 트랜지션 (620, 622) 의 검출시에 개시되는 타이머 또는 카운터를 포함할 수도 있다. 그 후, 펄스 (608, 610) 의 종료 후의 타이머 또는 카운터 값은 각각의 그룹 (406, 408) 과 연관되어 있는 미리 정의된 지속기간들에 비교될 수도 있다.
이 예에서, 데이터 제어 버스 (402) 는 제 1 펄스 (608) 가 수신되기 전에, 제 1 기간 (614) 동안에 아이들 상태에 있을 수도 있다. 제 1 IRQ 신호가 공유된 단일 라인 IRQ 버스 (422) 에 대해 표명되었다면, 버스 마스터 디바이스 (404) 는 IRQ 버스가 로우로 풀링되었음을 검출하고, 펄스의 주기, 폭, 또는 지속기간 (604) 을 결정한다. 예를 들어, 버스 마스터 디바이스 (404) 는, 제 1 펄스 (608) 의 지속기간 (604) 이 제 1 펄스 (608) 의 종료시 디바이스들의 제 1 그룹 (406) 의 멤버로부터의 인터럽트 요청에 일치함을 결정할 수도 있다. 버스 마스터 디바이스 (404) 는 디바이스들의 제 1 그룹 (406) 의 멤버들의 스캔 (616) 을 개시하여, IRQ 상태를 결정하고, 제 1 그룹 (406) 의 어느 멤버 또는 멤버들이 IRQ 요청 (608) 을 표명하였는지를 식별할 수도 있다. 일 예에서, 버스 마스터 디바이스 (404) 는 각각의 요청의 수신이 IRQ 상태로 응답하게 하는 제어 데이터 버스 (402) 에 대한 커맨드들 및/또는 요청들을 제 1 그룹 (406) 의 각각의 멤버에 송신할 수도 있다. 버스 마스터 디바이스 (404) 는 제 1 그룹 (406) 의 식별된 인터럽트 요청과, 데이터, 제어 및 다른 정보를 교환할 수도 있다.
제 2 인터럽트 요청 펄스 (610) 는 제 1 인터럽트 요청 펄스 (608) 후에 일부 포인트에서 수신될 수도 있다. 제 2 인터럽트 요청 펄스 (610) 는 슬레이브 디바이스들의 제 2 그룹 (408) 에 대응하는 지속기간 (606) 을 가질 수도 있다. 제 2 인터럽트 요청 펄스 (610) 의 수신시, 버스 마스터 디바이스 (404) 는 펄스 폭, 기간 또는 지속기간 (606) 을 검출, 결정 또는 계산할 수도 있다. 버스 마스터 디바이스 (404) 는 이들의 IRQ 상태를 결정하고, 제 2 그룹 (408) 의 어느 멤버 또는 멤버들이 제 2 펄스 (610) 에 대응하는 IRQ 요청을 표명하였는지를 식별하기 위해, 디바이스들 (409) 의 제 2 그룹의 멤버들의 스캔 (618) 을 개시할 수도 있다.
도 7 은 본원에 개시된 특정 양태들에 따라, 인터럽트 요청들의 동시 발생, 오버랩핑, 및/또는 충돌을 회피하는 방법을 예시하는 타이밍도이다. 일부 경우들에서, 인터럽트 요청들을 충돌 또는 경합하게 야기할 수도 있는 오버랩하는 IRQ 펄스들의 발생을 회피하는 것이 바람직할 수도 있다. 인터럽트 요청을 표명하기 전에, IRQ 버스 (422) 를 모니터링하도록 슬레이브 디바이스들을 구성시킴으로써 인터럽트 요청들을 충돌시키는 것을 회피할 수도 있다. 다른 디바이스가 공유된 단일 라인 IRQ 버스 (422) 에 대해 인터럽트 요청 (708) 을 이미 표명하였다면, 인터럽트 요청들 (712) 은 연기될 수도 있다 (714).
예시된 예에서, 제 1 펄스 (704) 가 디바이스들의 제 1 그룹 (406) 으로부터의 슬레이브 디바이스에 의해 IRQ 버스 (422) 에 대해 표명된다. 제 2 슬레이브 디바이스가 제 1 펄스 (708) 의 지속기간 (704) 동안에 인터럽트 요청을 표명하기를 원할 수도 있다. 일 양태에 따르면, 제 2 슬레이브 디바이스는 IRQ 버스 (422) 에 대해 인터럽트 요청의 표명을 지연시킬 수도 있다. 시간 (718) 에서, 제 2 슬레이브 디바이스는 인터럽트 요청을 개시하도록 결정할 수도 있다. IRQ 버스 (422) 를 검사할 때, 제 2 슬레이브 디바이스는 펄스 (708) 가 다른 슬레이브 디바이스에 의해 IRQ 버스 (422) 에 대해 표명되었음을 결정할 수도 있다. 이에 따라, 제 2 디바이스는 IRQ 버스 (422) 가 아이들 상태로 복귀하는 것을 허용하기 위해 홀드 오프 또는 지연 주기 (712) 를 개시할 수도 있다. 홀드 오프 주기 (712) 는, 미리 정의된 지속기간, 최소 백오프 주기 및/또는 랜덤 지연을 포함하는 소정 지속기간, 또는 IRQ 버스 (422) 가 아이들 상태로 복귀한 후에 미리 정의된 시간을 종료하는 주기를 가질 수도 있다. 제 2 슬레이브 디바이스는, IRQ 버스 (422) 가 프리 상태 또는 아이들링된 상태에 있는 동안, 최소 기간 (710) 동안에 인터럽트 요청을 표명하는 것이 금지될 수도 있다. IRQ 버스 프리 시간 주기 (710) 는 IRQ 버스 (422) 에 대한 제 1 펄스 (708) 가 종료하고, 예를 들어, IRQ 버스 (422) 가 로직 하이 상태로 복귀하는 시점 (720) 으로부터 측정될 수도 있다. 다음 인터럽트 요청 (716) 은 최소 버스 프리 시간 (710) 이 만료한 후에 표명될 수도 있다. 최소 버스 프리 시간 (710) 의 만료 시, 제 2 슬레이브 디바이스가 IRQ 버스 (422) 에 대해 펄스 (716) 를 제공함으로써 인터럽트 요청을 표명할 수도 있다. 이 예에서, 제 2 슬레이브 디바이스는 슬레이브 디바이스들의 제 2 그룹 (408) 의 멤버이며, 제 2 펄스 (716) 의 지속기간 (706) 은 제 1 펄스 (708) 의 지속기간 (704) 과는 상이할 수도 있다.
도 8 은 동시 IRQ 신호들이 I2C, CCI, 및/또는 CCIe 인터페이스에 의해 지원될 때 채택될 수도 있는 방식의 동작을 예시하는 타이밍도 (800) 이다. 동시 IRQ 신호들은 공유된 IRQ 버스 (422) 를 이용하는 상이한 그룹들 (406, 408) 에서의 슬레이브 디바이스들 간에 및/또는 개별적인 슬레이브 디바이스들 간에 경합들 및/또는 충돌들을 야기할 수도 있다. IRQ 버스 (422) 에 대한 신호들의 타이밍은 제 1 타이밍 차트 (802) 에 예시되어 있는 한편, 제 1 및 제 2 그룹들 (406, 408) 에서의 슬레이브 디바이스들에 의한 기여들은 제 2 및 제 3 타이밍 차트들 (812, 822) 에서 각각 예시된다. 제 1 IRQ 펄스 (814) 는 제 2 그룹 (408) 에서의 제 2 슬레이브 디바이스에 의해 표명된 IRQ 펄스 (824) 와 동시에 또는 동시적으로 제 1 그룹 (406) 에서의 제 1 슬레이브 디바이스에 의해 표명된다. 제 2 IRQ 펄스 (824) 는 제 1 펄스 (806) 의 지속기간보다 더 긴 지속기간 (804) 을 가질 수도 있다. 제 1 펄스 (814) 의 종료 후에, 제 1 슬레이브 디바이스는 IRQ 버스 (422) 에 대한 제 2 펄스 (824) 의 일부분 (808) 의 존재로 인하여, 더 높은 우선선위 디바이스가 인터럽트 요청을 표명하였음을 인식할 수도 있다. 제 1 슬레이브 디바이스는 제 1 펄스 (814) 의 종료 후에, IRQ 버스 (422) 를 모니터링함으로써 IRQ 버스 (422) 의 이 상태 (808) 를 효과적 충돌, 경합, 또는 충돌로서 인식할 수도 있다. 그 후, 제 1 디바이스는 제 2 슬레이브 디바이스가 더 높은 우선순위를 가짐을 결정할 수도 있고, 제 2 펄스 (824) 의 종료 후에 시작하는, IRQ 버스 프리 주기 (818) 후까지 갱신된 요청을 지연시킬 수도 있다. 버스 마스터 디바이스 (404) 가 제 2 펄스 (824) 의 지속기간을 검출할 수도 있고 인터럽트 요청의 소스를 식별 및 서비스하기 위해 디바이스들의 제 2 그룹 (408) 을 어드레싱할 수도 있다. 버스 마스터 디바이스 (404) 는 제 1 펄스 (814) 를 인식하지 못할 수도 있다.
제 1 슬레이브 디바이스는 IRQ 버스 프리 주기 (818) 의 종료 후에 IRQ 버스 (422) 에 대해 제 3 펄스 (826) 를 제공함으로써 자신의 인터럽트 요청을 재발행할 수도 있다.
도 9 는 IRQ 펄스에 관련된 타이밍 허용오차를 예시하는 타이밍도 (900) 이고, 여기에서 허용오차는 최소 IRQ 펄스 폭에 결정적이다. 일부 경우들에서, I2C, CCI 및/또는 CCIe 인터페이스에 대한 시그널링을 관리하는 프로토콜들은 I2C, CCI 및/또는 CCIe 마스터 디바이스 (404) 에 의한 검출을 허용하도록 로우 지속기간 (tLOW)(906) 에 대한 최소 값을 정의할 수도 있지만, 이 설명의 목적을 위하여, 로우 지속기간은 특정된 최소값을 겪지 않을 수도 있는 것으로 취해질 수도 있다. 타이밍도 (900) 는 단일 펄스 (902) 를 예시한다.
예시적인 타이밍도 (900) 에서, "하이" 시그널링 상태를 검출하기 위한 최소 임계 전압은 스위칭 회로 공급 전압 ("VDD") 레벨의 70% 에 있으며, "로우" 시그널링 상태를 검출하기 위한 최대 임계 전압은 VDD 레벨의 30% 이다. 수신기는 수신기 입력 레벨들에 의존하여, VDD 레벨의 30% 와 70% 사이에 존재하는 IRQ 버스 (422) 전압 레벨에 대한 하이 또는 로우 시그널링 상태를 결정할 수도 있다. 최대 하강-상승 시간 (TFRmax)(904) 이 정의될 수도 있다. TFRmax (904) 의 지속기간은 인터럽트 요청을 표명하는 슬레이브 디바이스에 할당된 로우 주기 (TLOW)(910) 의 지속기간에 결정적일 수도 있다. TLOW (910) 의 값은 마스터 디바이스 (404) 가 슬레이브 디바이스들의 상이한 그룹들로부터의 IRQ 신호들 간을 구별할 수 있도록 선택될 수도 있다. 마스터 디바이스 (404) 의 관점에서, 로우 상태는:
Figure pct00001
이면, IRQ 버스 (422) 에서 관측될 수도 있다:
슬레이브 디바이스들의 그룹들 (406, 408) 간을 구별하기 위하여, TLOW 의 상이한 유닛들이 그룹들 (406, 408) 에 대하여 IRQ 펄스 폭으로서 할당될 수도 있다. 일 예에서, 제 1 그룹 (406) 은 TLOW 의 IRQ 펄스 폭을 할당받을 수도 있는 한편, 제 2 그룹 (408) 은 2xTLOW 의 IRQ 펄스폭을 할당받을 수도 있다. 이 예에서, 버스 마스터 디바이스 (404) 에 의해 관측되는 로우 주기는 다음과 같이 계산될 수도 있다:
제 1 그룹 (406):
Figure pct00002
제 2 그룹 (408):
Figure pct00003
제 1 슬레이브 디바이스가 IRQ 신호를 로우로 표명한 후, 제 2 슬레이브 디바이스는 TFRmax 을, 지속기간에 있어서 적어도 TFRmax 이어야 하는 tLOWmin 으로 확장하는 기간 동안 IRQ 신호를 로우로 검출하지 않을 수도 있음을 주지한다. 따라서, TLOW > 3TFRmax 이고 tLOWmin > 2TFRmax 이다. 이에 따라, tLOW (906) 에 대한 최소 값은 다음과 같이 계산될 수도 있다:
Figure pct00004

공통 IRQ 버스와 관련한 장치, 시스템들 및 방법들의 예들
도 10 은 본원에 개시된 하나 이상의 기능들을 수행하도록 구성될 수도 있는 프로세싱 회로 (1002) 를 채택하는 장치에 대한 하드웨어 구현의 간략화된 예를 예시하는 개념도 (1000) 이다. 본 개시물의 여러 양태들에 따르면, 공통 IRQ 버스를 이용하여 인터럽트를 관리 또는 개시하기 위하여 본원에 개시된 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 조합이 프로세싱 회로 (1002) 를 이용하여 구현될 수도 있다. 프로세싱 회로 (1002) 는 하드웨어 및 소프트웨어 모듈들의 일부 조합에 의해 제어되는 하나 이상의 프로세서들 (1004) 을 포함할 수도 있다. 프로세서들 (1004) 의 예들은 마이크로프로세서들, 마이크로제어기들, 디지털 신호 프로세서들 (DSP들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 프로그래밍가능 로직 디바이스들 (PLD들), 상태 머신들, 시퀀서들, 게이트된 로직, 이산 하드웨어 회로들, 및 본 개시물에 걸쳐 설명된 여러 기능들을 수행하도록 구성되는 다른 적절한 하드웨어를 포함한다. 하나 이상의 프로세서들 (1004) 은 특정 기능들을 수행하고 소프트웨어 모듈들 (1016) 중 하나에 의해 구성, 증강 또는 제어될 수도 있는 특수화된 프로세서들을 포함할 수도 있다. 예를 들어, 프로세싱 회로는 하나 이상의 무선 네트워크들을 통한 송신을 위한 데이터의 인코딩 및 디코딩을 처리하기 위해 적응될 수도 있는 통신 프로세서 또는 다른 유형의 프로세서로서 구성될 수도 있다. 하나 이상의 프로세서들 (1004) 은 초기화 동안에 로딩된 하나 이상의 소프트웨어 모듈들 (1016) 의 조합을 통하여 구성될 수도 있고, 동작 동안에 소프트웨어 모듈들 (1016) 중 하나 이상을 로딩 또는 언로딩함으로써 추가로 제어될 수도 있다.
예시된 예에서, 프로세싱 회로 (1002) 는 버스 (1010) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1010) 는 프로세싱 회로 (1002) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하여 임의의 수의 상호접속하는 버스들 및 브리지들을 포함할 수도 있다. 버스 (1010) 는 하나 이상의 프로세서들 (1004) 및 스토리지 (1006) 를 포함하는 여러 회로들을 함께 링크한다. 스토리지 (1006) 는 메모리 디바이스들 및 대용량 스토리지 디바이스들을 포함할 수도 있고, 컴퓨터 판독가능 매체로서 본원에서 지칭될 수도 있다. 버스 (1010) 는 또한 타이밍 소스들, 타이머들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 여러 다른 회로들을 링크할 수도 있다. 버스 인터페이스 (1008) 는 버스 (1010) 와, 하나 이상의 트랜시버들 또는 라인 인터페이스 회로 (1012) 사이에 인터페이스를 제공할 수도 있다. 라인 인터페이스 회로 (1012) 는 멀티 와이어 시리얼 버스를 포함할 수도 있는 송신 매체를 통하여 여러 다른 장치들과 통신하는데 이용되는, 차동 라인 드라이버들, 및 수신기들, CDR, 인코더들 및 디코더들을 포함할 수도 있다. 장치의 특성에 의존하여, 사용자 인터페이스 (1018)(예를 들어, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱) 가 또한 제공될 수도 있고, 버스 인터페이스 (1008) 를 통하여 또는 직접 버스 (1010) 에 통신가능하게 커플링될 수도 있다.
프로세서 (1004) 는 스토리지 (1006) 를 포함할 수도 있는 컴퓨터 판독가능 매체에 저장된 소프트웨어의 실행을 포함할 수도 있는 범용 프로세싱 및/또는 버스 (1010) 의 관리를 담당할 수도 있다. 이 양태에서, 프로세서 (1004) 를 포함한, 프로세싱 회로 (1002) 는 본원에 개시된 방법들, 기능들, 및 기술들 중 어느 것을 구현하는데 이용될 수도 있다. 스토리지 (1006) 는 소프트웨어를 실행할 때 프로세서 (1004) 에 의해 조작되는 데이터를 저장하기 위해 이용될 수도 있고, 소프트웨어는 본원에 개시된 방법들 중 어느 하나를 구현하도록 구성될 수도 있다.
프로세싱 회로 (1002) 에서의 하나 이상의 프로세서들 (1004) 은 소프트웨어를 실행할 수도 있다. 본원에서 이용되는 바와 같이, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 달리 지칭되더라도, 소프트웨어는 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 하위프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능물들, 실행의 스레드들, 절차들, 기능들, 알고리즘들 등을 의미하는 것으로 광범위하게 간주되어야 한다. 소프트웨어는 외부 컴퓨터 판독가능 매체에서 또는 스토리지 (1006) 에서 컴퓨터 판독가능 형태로 상주할 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (1006) 는 비일시적 컴퓨터 판독가능 매체일 수도 있다. 비일시적 컴퓨터 판독가능 매체는 예를 들어, 자기 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 마그네틱 스트립), 광학 디스크 (예를 들어, 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예를 들어, "플래시 드라이브", 카드, 스틱, 키 드라이브), 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 프로그래밍가능 ROM (PROM), 소거가능 PROM (EPROM), 전기적 소거가능 PROM (EEPROM), 레지스터, 탈착가능 디스크, 및/또는 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 저장하기 위한 임의의 다른 적절한 매체를 포함한다. 컴퓨터 판독가능 매체 및/또는 스토리지 (1006) 는 또한 예를 들어, 반송파, 송신 라인, 및 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 송신하기 위한 임의의 다른 적절한 매체를 포함할 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (1006) 는 프로세싱 회로 (1002) 에, 프로세싱 회로 (1002) 의 외부에 있는 프로세서 (1004) 에 상주할 수도 있거나 또는 프로세싱 회로 (1002) 를 포함한 다수의 엔티티들에 걸쳐 분산될 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (1006) 는 컴퓨터 프로그램 제품에서 구현될 수도 있다. 예를 들어, 컴퓨터 프로그램 제품은 패키징 재료들에서 컴퓨터 판독가능 매체를 포함할 수도 있다. 당해 기술 분야의 당업자는 전체 시스템 상에 부여되는 전체 설계 제약들 및 특정 애플리케이션에 따라 본 개시물 전반에 걸쳐 제시된 설명의 기능성을 최상으로 구현하는 방법을 알고 있을 것이다.
스토리지 (1006) 는 소프트웨어 모듈들 (1016) 로서 본원에서는 지칭될 수도 있는 로딩가능 코드 세그먼트들, 모듈들, 애플리케이션들, 프로그램들 등에서 유지 및/또는 조직화되는 소프트웨어를 유지할 수도 있다. 소프트웨어 모듈들 (1016) 각각은 프로세싱 회로 (1002) 상에 설치 또는 로딩되고 하나 이상의 프로세서들 (1004) 에 의해 실행될 때 하나 이상의 프로세서들 (1004) 의 동작을 제어하는 런타임 이미지 (1014) 에 기여하는 명령들 및 데이터를 포함할 수도 있다. 실행될 때, 특정 명령들은 프로세싱 회로 (1002) 로 하여금 본원에 설명된 특정 방법들, 알고리즘들, 및 프로세스들에 따라 기능을 수행하게 할 수도 있다.
소프트웨어 모듈들 (1016) 의 일부는 프로세싱 회로 (1002) 의 초기화 동안에 로딩될 수도 있고, 이들 소프트웨어 모듈들 (1016) 은 본원에 설명된 여러 기능들의 수행을 실행하도록 프로세싱 회로 (1002) 를 구성할 수도 있다. 예를 들어, 일부 소프트웨어 모듈들 (1016) 은 프로세서 (1004) 의 내부 디바이스들 및/또는 로직 회로들 (1022) 을 구성할 수도 있고, 라인 인터페이스 회로들 (1012), 버스 인터페이스 (1008), 사용자 인터페이스 (1018), 타이머들, 수학적 코프로세서들 등과 같은 외부 디바이스들에 대한 액세스를 관리할 수도 있다. 소프트웨어 모듈들 (1016) 은 인터럽트 핸들러들 및 디바이스 드라이버들과 상호작용하고 프로세싱 회로 (1002) 에 의해 제공된 여러 리소스들에 대한 액세스를 제어하는 제어 프로그램 및/또는 오퍼레이팅 시스템을 포함할 수도 있다. 리소스들은 메모리, 프로세싱 시간, 라인 인터페이스 (1012), 사용자 인터페이스 (1018) 에 대한 액세스 등을 포함할 수도 있다.
프로세싱 회로 (1002) 의 하나 이상의 프로세서들 (1004) 은 다기능성일 수도 있어, 소프트웨어 모듈들 (1016) 중 일부가 상이한 인스턴스들, 또는 동일한 기능의 상이한 인스턴스들을 수행하도록 로딩 및 구성된다. 하나 이상의 프로세서들 (1004) 은 예를 들어, 사용자 인터페이스 (1018), 라인 인터페이스 회로들 (1012) 및 디바이스 드라이버들로부터의 입력들에 응답하여 개시된 백그라운드 작업들을 관리하도록 추가적으로 적응될 수도 있다. 다수의 기능들의 수행을 지원하기 위하여, 하나 이상의 프로세서들 (1004) 은 멀티테스킹 환경을 제공하도록 구성될 수도 있어, 이에 의해 복수의 기능들 각각이 필요에 따라, 또는 원하는 바에 따라 하나 이상의 프로세서들 (1004) 에 의해 서비스되는 작업들의 세트로서 구현된다. 일 예에서, 멀티태스킹 환경은 상이한 작업들 간에 프로세서 (1004) 의 제어를 통과시키는 타임쉐어링 프로그램 (1020) 을 이용하여 구현될 수도 있고, 이에 의해 임의의 현저한 동작들의 완료시에, 및/또는 이러한 인터럽트와 같은 입력에 응답하여, 각각의 작업이 하나 이상의 프로세서들 (1004) 의 제어를 타임쉐어링 프로그램 (1020) 으로 되돌린다. 작업이 하나 이상의 프로세서들 (1004) 의 제어를 행할 때, 프로세싱 회로는 제어 중인 작업과 연관된 기능에 의해 어드레싱되는 목적들에 대하여 효과적으로 특수화된다. 타임쉐어링 프로그램 (1020) 은 오퍼레이팅 시스템, 라운드 로빈 기반으로 제어들을 트랜스퍼하는 메인 루프, 기능들의 우선순위화에 따라 하나 이상의 프로세서들 (1004) 의 제어를 할당하는 기능 및/또는 하나 이상의 프로세서들 (1004) 의 제어를 핸들링 기능에 제공함으로써 외부 이벤트들에 응답하는 인터럽트 구동된 메인 루프를 포함할 수도 있다.
도 11 은 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스 상에 IRQ 를 표명하는 방법의 제 1 예를 예시하는 흐름도 (1100) 이다. 본 방법은 예를 들어, 슬레이브 디바이스에 의해 구현될 수도 있다. 슬레이브 디바이스는 제어 데이터 버스를 통해 통신할 필요성을 결정할 수도 있고, 공유된 IRQ 버스를 통하여 마스터 디바이스에 인터럽트 요청을 통신하도록 방법을 개시할 수도 있다. 블록 1102 에서, 슬레이브 디바이스는 다른 디바이스가 공유된 IRQ 버스에 대해 시그널링하는지의 여부를 확인할 수도 있다. 예를 들어, IRQ 버스는 다른 디바이스가 IRQ 를 시그널링하고 있을 때 로직 로우 상태에 있을 수도 있다. IRQ 버스가 로우이면 (IRQN =0), 슬레이브 디바이스는 IRQ 버스가 하이로 갈때까지 블록 1114 에서 대기할 수도 있다. 블록 1102 에서 슬레이브 디바이스가, IRQ 버스가 로직 하이를 나타내는 시그널링 상태에 있다고 결정할 때, 슬레이브 디바이스는 블록 1104 에서 IRQ 버스를 로우로 구동시킴으로써 자신의 IRQ 신호를 표명할 수도 있다. 그 후, 블록 1106 에서, 슬레이브 디바이스는 미리 정의된 IRQ 신호 시간 주기를 대기할 수도 있다. IRQ 신호 시간 주기는 슬래이브 디바이스 및/또는 슬레이브 디바이스들의 그룹을 식별하는 지속기간을 가질 수도 있다. 일 예에서, IRQ 신호 시간 주기는 최소의 로우 시간 (TLOW) 의 단위들로 정의될 수도 있다. 미리 정의된 IRQ 신호 시간 주기가 경과한 후, 블록 1108 에서, 슬레이브 디바이스는 자신의 IRQ 신호를 표명해제할 수도 있다. 일부 경우들에서, 블록 1110 에서, 슬레이브 디바이스는 다른 미리 정의된 기간 (TFRmax) 후에 IRQ 버스를 모니터링할 수도 있다. 블록 1112 에서, 슬레이브 디바이스는 IRQ 버스를 모니터링하여, IRQ 버스가 로직 로우 (즉, IRQN=0) 를 나타내는 시그널링 상태에서 유지되는지의 여부를 확인할 수도 있다. IRQ 버스의 시그널링 상태가 로직 로우에서 유지되면, 다른 슬레이브 디바이스가 자신의 IRQ 신호를 표명하였을 수도 있고, 슬레이브 디바이스는 블록 1102 에서 시작하여 자신의 IRQ 신호를 재발행하도록 프로세스를 반복할 수도 있다. IRQ 버스의 시그널링 상태가 로직 하이 시그널링 상태로 복귀되었다면, 프로세스는 종료하고 슬레이브 디바이스는 버스 마스터 디바이스로부터의 커맨드들 또는 요청들을 예상할 수도 있다.
도 12 는 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ들을 처리하는 방법의 제 1 예를 예시하는 흐름도 (1200) 이다. 본 방법은 예를 들어, 마스터 디바이스에 의해 구현될 수도 있다. 마스터 디바이스는 공유된 단일 라인 IRQ 버스에 대하여 IRQ 신호를 표명하였던 슬레이브 디바이스를 포함하는 디바이스들의 그룹의 아이덴티티를 확인할 수도 있다. 블록 1202 에서, 마스터 디바이스는 IRQ 신호가 공유된 단일 라인 IRQ 버스에 대하여 표명되었는지의 여부를 확인할 수도 있다. IRQ 신호는 예를 들어, 공유된 단일 라인 IRQ 버스를 로우로 구동시킴으로써 표명될 수도 있다. 공유된 단일 라인 IRQ 버스가 표명되었을 때, 블록 1204 에서, 마스터 디바이스는 카운터를 리셋할 수도 있다. 그 후, 마스터 디바이스는 블록 1208 에서 IRQ 버스가 여전히 표명되는지를 검사하면서 블록 1206 에서 카운터를 증분시킬 수도 있다. 이 카운터는 마스터 디바이스가 IRQ 신호의 길이/주기 (예를 들어, 펄스 폭) 를 확인하는 것을 허용한다. IRQ 버스가 표명해제되면, 블록 1210 에서, 마스터 디바이스는 IRQ 신호 길이/주기에 기초하여 슬레이브 디바이스가 속해있는 그룹을 선택할 수도 있다. 마스터 디바이스는 추가의 인터럽트 요청들에 대하여 공유된 단일 라인 IRQ 버스를 모니터링하는 것을 계속할 수도 있다. 마스터 디바이스는 표명 슬레이브 디바이스를 식별하기 위해 블록 1212 에서 (예를 들어, 도 13 에 예시되는 바와 같이) 그 그룹에서의 슬레이브 디바이스들의 스캔 및/또는 쿼리를 추가적으로 개시할 수도 있다. 그룹 IRQ 스캔 (1212) 은 독립적으로 수행될 수도 있어, 마스터 디바이스는 추가의 인터럽트 요청들에 대하여 공유된 단일 라인 IRQ 버스를 모니터링하는 것을 계속하면서 그룹 IRQ 스캔 (1212) 을 수행할 수도 있다. 일부 경우들에서, 마스터 디바이스는 예를 들어, 전압 레벨들을 포함한 다른 특징들을 이용하여 IRQ 신호들 간을 구별할 수도 있다.
도 13 은 IRQ 신호가 공유된 단일 라인 IRQ 버스에 대하여 표명된 후, 슬레이브 디바이스를 식별하기 위해 그룹 IRQ 스캔을 수행하기 위한 방법의 일 예를 예시하는 흐름도 (1300) 이다. 본 방법은 도 12 에 예시된 블록 1212 에서 식별된 기능들을 수행할 수도 있다. 그룹 IRQ 스캔은 블록들 1302, 1304, 1306, 1308 에서 그룹에서의 각각의 슬레이브 디바이스에, 자신의 각각의 상태 레지스터에 대하여 쿼리하는 것을 포함할 수도 있다. 쿼리들에 대한 응답은 그룹에서의 어느 슬레이브 디바이스가 IRQ 신호를 표명하였는지를 마스터 디바이스가 확인하는 것을 가능하게 한다. 식별되었다면, 마스터 디바이스는 제어 데이터 버스의 사용을 표명 슬레이브 디바이스에 승인할 수도 있다.
도 14 는 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ들을 처리하는 방법의 제 2 예를 예시하는 흐름도 (1400) 이다. 본 방법은 복수의 슬레이브 디바이스들에 의해 공유될 수도 있는 단일 라인 IRQ 버스를 통하여 통신되는 인터럽트 요청들의 처리에 관련될 수도 있다. 단일 라인 IRQ 버스는 비동기적으로 동작할 수도 있다. 단일 라인 IRQ 버스는 슬레이브 디바이스들로부터 마스터 디바이스로의 단방향 신호 송신들에 전용될 수도 있다. 본 방법은 I2C, CCI 또는 CCIe 버스에 대하여 마스터 디바이스로서 기능하도록 적응된 디바이스의 프로세싱 회로에 의해 수행될 수도 있다.
블록 1402 에서, 마스터 디바이스는 공유된 단일 라인 IRQ 버스에 커플링된 그룹 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑할 수도 있다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다. 각각의 그룹과 연관된 IRQ 신호는 다른 그룹들과 연관된 IRQ 신호들과는 상이한 펄스 폭을 갖는다.
블록 1404 에서, 마스터 디바이스는 IRQ 버스를 모니터링하여 IRQ 신호가 하나 이상의 슬레이브 디바이스들에 의해 표명될 때를 확인할 수도 있다.
블록 1406 에서, 마스터 디바이스는 IRQ 신호가 연관되어 있는 그룹을 식별할 수도 있다.
블록 1408 에서, 마스터 디바이스는 IRQ 버스에 대하여 IRQ 신호를 표명하였던 표명 슬레이브 디바이스를 확인 또는 결정하기 위해 식별된 그룹의 슬레이브 디바이스들을 스캔할 수도 있다. 슬레이브 디바이스들의 식별된 그룹에서의 한 슬레이브 디바이스를 스캔하는 것은 슬레이브 디바이스의 IRQ 상태 레지스터를 스캔하는 것을 포함할 수도 있다. 표명 슬레이브 디바이스는 표명 슬레이브 디바이스의 IRQ 상태 레지스터가 스캔된 후에 마스터 디바이스로부터 추가의 어텐션을 수신할 수도 있다. 일 예에서, 마스터 디바이스는 표명 슬레이브 디바이스가 제어 데이터 버스를 통하여 데이터를 송신하도록 액세스하는 것을 승인할 수도 있다.
일 양태에서, 마스터 디바이스는 단일 라인 IRQ 버스에 대한 제 1 인터페이스, 및 하나 이상의 슬레이브 디바이스들이 또한 커플링되는 제어 데이터 버스에 대한 제 2 인터페이스를 지원할 수도 있다. 제어 데이터 버스는 슬레이브 디바이스들 및 마스터 디바이스 사이에 양방향 시그널링을 지원할 수도 있다. 복수의 그룹들 중 적어도 하나의 그룹이 적어도 2 개의 슬레이브 디바이스들을 포함할 수도 있다.
도 15 는 프로세싱 회로 (1502) 를 채용하는 장치 (1500) 에 대한 하드웨어 구현의 일 예를 예시하는 개념도이다. 이 예에서, 프로세싱 회로 (1502) 는 버스 (1516) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1516) 는 프로세싱 회로 (1502) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하여 임의의 수의 상호접속하는 버스들 및 브리지들을 포함할 수도 있다. 버스 (1516) 는 프로세서 (1512) 에 의해 일반적으로 표현되는 하나 이상의 프로세서들, 및 프로세서 판독가능 저장 매체 (1514) 에 의해 일반적으로 표현되는 컴퓨터 판독가능 매체를 포함한 여러 회로들을 함께 링크한다. 하나 이상의 타이머들이 버스에 접속될 수도 있고/있거나 프로세서 (1512) 에 직접 액세스가능하거나 또는 프로세서에서 구현될 수도 있다. 버스 (1516) 는 또한 타이밍 소스들, 타이머들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 여러 다른 회로들을 링크할 수도 있다. 라인 인터페이스 회로들 (1512) 은 프로세싱 회로 (1502) 를 제어 데이터 버스에 커플링하는 차동 드라이버들 및 수신기들 및/또는 프로세싱 회로를 IRQ 버스에 커플링하는 회로들을 포함할 수도 있다. 장치의 특성에 의존하여, 사용자 인터페이스는 디바이스들, 이를 테면, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱 등을 지원하도록 제공될 수도 있다.
프로세서 (1512) 는 프로세서 판독가능 저장 매체 (1514) 상에 저장된 소프트웨어의 실행을 포함하는 범용 프로세싱 및 버스 (1516) 를 관리하는 것을 담당한다. 프로세서 (1512) 에 의해 실행될 때, 소프트웨어는 프로세싱 회로 (1502) 로 하여금 임의의 특정 장치에 대하여 위에 설명된 여러 기능들을 수행하게 한다. 프로세서 판독가능 저장 매체 (1514) 는 소프트웨어를 실행시킬 때 프로세서 (1512) 에 의해 조작되는 데이터를 저장하는데 이용될 수도 있다. 프로세서 판독가능 저장 매체 (1514) 는 또한 하나 이상의 원격으로 관리되는 디바이스들 (예를 들어, 프로파일들) 및 장치 (1500) 자체에 관련된 시스템 정보를 저장하는데 이용될 수도 있다.
일 구성에서, 프로세싱 회로 (1502) 는 I2C, CCI, 및/또는 CCIe 버스에 대하여 버스 마스터로서 통신하기 위하여 적응된 디바이스의 하나 이상의 기능들을 수행할 수도 있다. 프로세싱 회로 (1502) 는 하나 이상의 슬레이브 디바이스들이 커플링되는 단일 라인 IRQ 버스 (1522) 로 인터페이스 회로들 (1518) 중 첫번째 것을 통하여 그리고, 하나 이상의 슬레이브 디바이스들이 또한 커플링되는 제어 데이터 버스 (1520) 로 인터페이스 회로들 (1518) 의 두번째 것을 통하여 접속될 수도 있다. 프로세싱 회로 (1502) 는 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑하도록 구성된 모듈 또는 회로 (1510), IRQ 신호가 적어도 하나의 슬레이브 디바이스에 의해 표명될 때를 확인하기 위해 IRQ 버스를 모니터링하도록 구성된 모듈 또는 회로 (1504), IRQ 신호가 연관되어 있는 그룹을 식별하도록 구성된 모듈 또는 회로 (1506), 및 식별된 그룹의 슬레이브 디바이스들을 스캔하여 IRQ 버스에 대하여 표명된 IRQ 신호를 표명하였던 표명 슬레이브 디바이스를 확인하도록 구성된 모듈 또는 회로 (1508) 를 포함할 수도 있다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다. 일 예에서, IRQ 신호들은 IRQ 신호들에 대한 펄스의 지속기간에 의해 구별될 수도 있다.
도 16 은 본원에 개시된 특정 양태들에 따라 공유된 IRQ 버스에 대하여 IRQ들을 표명하는 방법의 제 2 예를 예시하는 흐름도 (1600) 이다. 본 방법은 본원에 개시된 특정 양태들에 따라 복수의 슬레이브 디바이스들에 의해 공유된 단일 라인 IRQ 버스를 통한 인터럽트들을 요청하는 것에 관한 것으로 이를 용이하게 할 수도 있다. 단일 라인 IRQ 버스는 비동기적으로 동작할 수도 있다. 단일 라인 IRQ 버스는 슬레이브 디바이스들로부터 마스터 디바이스로의 단방향 신호 송신들에 전용될 수도 있다. 본 방법은 I2C, CCI 또는 CCIe 버스에 대하여 슬레이브 디바이스로서 기능하도록 적응된 디바이스의 프로세싱 회로에 의해 수행될 수도 있다.
블록 1602 에서, 슬레이브 디바이스는 마스터 디바이스로부터 그룹 할당을 획득할 수도 있다. 그룹 할당은 복수의 그룹들로부터 하나의 그룹을 식별할 수도 있다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다. 각각의 그룹은 적어도 하나의 슬레이브 디바이스를 포함한다.
블록 1604 에서, 슬레이브 디바이스는 IRQ 버스를 모니터링하여, IRQ 신호가 다른 슬레이브 디바이스들 중 하나에 의해 표명될 때를 확인할 수 있다.
블록 1606 에서, 슬레이브 디바이스는 다른 IRQ 신호가 IRQ 버스에 대하여 표명되지 않을 때 IRQ 버스에 대하여 IRQ 신호를 표명할 수도 있다.
일 양태에서, 슬레이브 디바이스는 다른 디바이스가 IRQ 버스로부터 IRQ 신호를 표명해제할 수도 있고, IRQ 버스를 모니터링하여, IRQ 버스에 대하여 신호를 표명하고 있는지의 여부를 확인할 수도 있다. 다른 디바이스가 신호를 표명하고 있다면, 슬레이브 디바이스는 IRQ 버스가 아이들 상태가 된 후에, IRQ 신호를 재표명할 수도 있다.
일 양태에서, 슬레이브 디바이스는, 제어 데이터 버스를 통하여 마스터 디바이스로부터 상태 레지스터 쿼리를 수신할 수도 있고, 슬레이브 디바이스가 IRQ 버스에 대하여 IRQ 신호를 표명하였다는 상태 표시로 응답할 수도 있다.
일 양태에서, 슬레이브 디바이스는 제어 데이터 버스에 커플링될 수도 있다. 제어 데이터 버스는 I2C, CCI, 및/또는 CCIe 프로토콜들 및/또는 시그널링과 호환가능할 수도 있다. 제어 데이터 버스는 슬레이브 디바이스들과 마스터 디바이스 사이의 양방향 방식으로 동작할 수도 있다.
도 17 은 공유된 IRQ 버스에 대하여 IRQ들을 표명하도록 적응된 프로세싱 회로 (1702) 를 채용하는 장치 (1700) 에 대한 하드웨어 구현의 일 예를 예시하는 개념도이다. 이 예에서, 프로세싱 회로 (1702) 는 버스 (1716) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1716) 는 프로세싱 회로 (1702) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하여 임의의 수의 상호접속하는 버스들 및 브리지들을 포함할 수도 있다. 버스 (1716) 는 프로세서 (1712) 에 의해 일반적으로 표현되는 하나 이상의 프로세서들, 및 프로세서 판독가능 저장 매체 (1714) 에 의해 일반적으로 표현되는 컴퓨터 판독가능 매체를 포함한 여러 회로들을 함께 링크한다. 하나 이상의 타이머들이 버스에 접속될 수도 있고/있거나 프로세서 (1712) 에 직접 액세스가능하거나 또는 프로세서에서 구현될 수도 있다. 버스 (1716) 는 또한 타이밍 소스들, 타이머들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 여러 다른 회로들을 링크할 수도 있다. 라인 인터페이스 회로들 (1712) 은 프로세싱 회로 (1702) 를 제어 데이터 버스에 커플링하는 차동 드라이버들 및 수신기들 및/또는 프로세싱 회로를 IRQ 버스에 커플링하는 회로들을 포함할 수도 있다. 장치의 특성에 의존하여, 사용자 인터페이스는 디바이스들, 이를 테면, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱 등을 지원하도록 제공될 수도 있다.
프로세서 (1712) 는 프로세서 판독가능 저장 매체 (1714) 상에 저장된 소프트웨어의 실행을 포함하는 범용 프로세싱 및 버스 (1716) 를 관리하는 것을 담당한다. 프로세서 (1712) 에 의해 실행될 때, 소프트웨어는 프로세싱 회로 (1702) 로 하여금 임의의 특정 장치에 대하여 위에 설명된 여러 기능들을 수행하게 한다. 프로세서 판독가능 저장 매체 (1714) 는 소프트웨어를 실행시킬 때 프로세서 (1712) 에 의해 조작되는 데이터를 저장하는데 이용될 수도 있다. 프로세서 판독가능 저장 매체 (1714) 는 또한 하나 이상의 원격으로 관리되는 디바이스들 (예를 들어, 프로파일들) 및 장치 (1700) 자체에 관련된 시스템 정보를 저장하는데 이용될 수도 있다.
일 구성에서, 프로세싱 회로 (1702) 는 I2C, CCI, 및/또는 CCIe 버스에 대하여 버스 슬레이브로서 통신하기 위하여 적응된 디바이스의 하나 이상의 기능들을 수행할 수도 있다. 프로세싱 회로 (1702) 는 하나 이상의 슬레이브 디바이스들이 커플링되는 단일 라인 IRQ 버스 (1722) 로 인터페이스 회로들 (1718) 중 첫번째 것을 통하여 그리고, 하나 이상의 슬레이브 디바이스들이 또한 커플링되는 제어 데이터 버스 (1720) 로 인터페이스 회로들 (1718) 의 두번째 것을 통하여 접속할 수도 있다. 프로세싱 회로 (1702) 는 마스터 디바이스로부터 그룹 할당을 획득하도록 구성된 모듈 또는 회로 (1704), IRQ 신호가 다른 슬레이브 디바이스들 중 하나에 의해 표명될 때를 확인하기 위해 IRQ 버스를 모니터링하도록 구성된 모듈 또는 회로 (1706), 및 다른 IRQ 신호가 IRQ 버스에 대해 표명되지 않을 때 IRQ 버스에 대해 제 1 IRQ 신호를 표명하도록 구성된 모듈 또는 회로 (1708) 를 포함할 수도 있다. 그룹 할당은 복수의 그룹들로부터 하나의 그룹을 식별할 수도 있다. 각각의 그룹은 상이한 IRQ 신호와 연관될 수도 있다.
개시된 프로세스들에서 단계들의 특정의 순서 또는 계층은 예시적인 프로세스들의 예시인 것이 이해된다. 설계 선호사항들에 기초하여, 방법들에서의 단계들의 특정 순서 또는 계층은 재배열될 수도 있음이 이해된다. 수반하는 방법 청구항들은 달리 언급되어 있지 않는 한, 샘플 순서에서의 다양한 단계들의 요소들을 제시하고, 제시된 특정 순서 또는 계층으로 제한되는 것으로 의도되지 않는다.
이전 설명은 임의의 당업자가 여러 본원에서 설명하는 양태들을 실시할 수 있도록 하기 위해서 제공된다. 이들 양태들에 대한 여러 변경들은 당업자들에게 매우 자명할 것이며, 본원에서 정의하는 일반 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본원에서 나타낸 양태들에 한정시키려고 의도된 것이 아니며, 전문용어 청구항들에 부합하는 전체 범위를 부여하려는 것이며 엘리먼트에 대한 단수형 참조는 "하나 이상" 을 의미하며, 달리 언급되어 있지 않는 한, "하나 및 오직 하나" 를 의미하는 것으로 의도되지 않는다. 달리 구체적으로 언급되어 있지 않는 한, 용어 "일부" 는 하나 이상을 지칭한다. 아이템들의 리스트 중 "그 중 적어도 하나" 를 지칭하는 구절은 단일 멤버들을 포함하여, 이들 아이템들의 임의의 조합을 지칭한다. 일 예로서, "a, b, 또는 C: 중의 적어도 하나" 는 a, b, c, a 및 b, a 및 c, b 및 c, 및 a, b 및 c 를 포함하고자 한다. 당업자들에게 알려져 있거나 또는 추후 알려지는, 본 개시물을 통해서 설명한 여러 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 균등물들이 본원에 참조로 명백히 포함되며, 청구항들에 의해 포괄되도록 의도된다. 더욱이, 본원에서 개시된 어떤 것도 이런 개시물이 청구항들에 명시적으로 인용되는지에 상관없이, 공중에 지정되도록 의도된 것이 아니다. 어떤 청구항 엘리먼트도, 그 엘리먼트가 어구 "하는 수단" 을 이용하여 명백히 언급되지 않는 한, 또는 방법 청구항의 경우 그 엘리먼트가 어구 "하는 단계" 로 언급되어 있지 않는 한 35 U.S.C. §112, 제 6 패러그래프 하에서 해석되지 않는다.

Claims (30)

  1. 마스터 디바이스로서,
    하나 이상의 슬레이브 디바이스들이 커플링되는 단일 라인 인터럽트 요청 (IRQ; interrupt request) 버스에 대한 제 1 인터페이스;
    상기 하나 이상의 슬레이브 디바이스들이 또한 커플링되는 제어 데이터 버스에 대한 제 2 인터페이스; 및
    상기 제 1 인터페이스 및 상기 제 2 인터페이스에 커플링되는 프로세싱 회로를 포함하며,
    상기 프로세싱 회로는:
    상기 하나 이상의 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑하는 것으로서, 각각의 그룹은 상이한 IRQ 신호와 연관되어 있는, 상기 그룹핑하고;
    IRQ 신호가 적어도 하나의 슬레이브 디바이스에 의해 표명될 때를 확인하기 위해 상기 IRQ 버스를 모니터링하고;
    상기 IRQ 신호가 연관되어 있는 그룹을 식별하고; 그리고
    상기 IRQ 버스에 대하여 상기 IRQ 신호를 표명하였던 표명 슬레이브 디바이스를 확인하기 위해, 식별된 상기 그룹의 상기 슬레이브 디바이스들을 스캔하도록 구성되는, 마스터 디바이스.
  2. 제 1 항에 있어서,
    상기 프로세싱 회로는 또한:
    상기 제어 데이터 버스를 통하여 데이터를 송신하기 위해 상기 표명 슬레이브 디바이스의 액세스를 승인하도록 구성되는, 마스터 디바이스.
  3. 제 1 항에 있어서,
    각각의 그룹과 연관된 상기 IRQ 신호는 다른 그룹들과 연관된 IRQ 신호들과는 상이한 펄스 폭을 갖는, 마스터 디바이스.
  4. 제 1 항에 있어서,
    상기 단일 라인 IRQ 버스는 비동기 버스인, 마스터 디바이스.
  5. 제 1 항에 있어서,
    상기 단일 라인 IRQ 버스는 상기 슬레이브 디바이스들로부터 상기 마스터 디바이스로의 단방향 신호 송신들에 전용되는, 마스터 디바이스.
  6. 제 1 항에 있어서,
    상기 제어 데이터 버스는 인터-집적 회로 (I2C; Inter-Integrated Circuit) 시리얼 버스, 카메라 제어 인터페이스 (CCI; camera control interface) 시리얼 버스, 또는 CCI 익스텐션 (CCIe; CCI extension) 시리얼 버스를 포함하는, 마스터 디바이스.
  7. 제 1 항에 있어서,
    상기 제어 데이터 버스는 상기 슬레이브 디바이스들과 상기 마스터 디바이스 사이의 양방향 시그널링을 지원하는, 마스터 디바이스.
  8. 마스터 디바이스 상의 동작 방법으로서,
    공유된 단일 라인 인터럽트 요청 (IRQ; interrupt request) 버스에 커플링되는 슬레이브 디바이스들을 하나 이상의 그룹들로 그룹핑하는 단계로서, 각각의 그룹은 상이한 IRQ 신호와 연관되어 있는, 상기 그룹핑하는 단계;
    IRQ 신호가 상기 슬레이브 디바이스들 중 하나 이상에 의해 표명될 때를 확인하기 위해 상기 IRQ 버스를 모니터링하는 단계;
    상기 IRQ 신호가 연관되어 있는 그룹을 식별하는 단계; 및
    상기 IRQ 버스에 대하여 상기 IRQ 신호를 표명하였던 표명 슬레이브 디바이스를 확인하기 위해, 식별된 상기 그룹에서 적어도 하나의 슬레이브 디바이스를 스캔하는 단계를 포함하는, 마스터 디바이스 상의 동작 방법.
  9. 제 8 항에 있어서,
    상기 적어도 하나의 슬레이브 디바이스를 스캔하는 단계는:
    상기 표명 슬레이브 디바이스의 IRQ 상태 레지스터를 스캔하는 단계를 포함하는, 마스터 디바이스 상의 동작 방법.
  10. 제 8 항에 있어서,
    제어 데이터 버스를 통하여 데이터를 송신하기 위해 상기 표명 슬레이브 디바이스의 액세스를 승인하는 단계를 더 포함하는, 마스터 디바이스 상의 동작 방법.
  11. 제 10 항에 있어서,
    상기 제어 데이터 버스는 상기 슬레이브 디바이스들과 상기 마스터 디바이스 사이의 양방향 시그널링을 지원하는, 마스터 디바이스 상의 동작 방법.
  12. 제 8 항에 있어서,
    각각의 그룹과 연관된 상기 IRQ 신호는 다른 그룹들과 연관된 다른 IRQ 신호들과는 상이한 펄스 폭을 갖는, 마스터 디바이스 상의 동작 방법.
  13. 제 8 항에 있어서,
    상기 IRQ 버스는 비동기식으로 동작하는, 마스터 디바이스 상의 동작 방법.
  14. 제 8 항에 있어서,
    상기 IRQ 버스는 상기 슬레이브 디바이스들로부터 상기 마스터 디바이스로의 단방향 신호 송신들에 전용되는, 마스터 디바이스 상의 동작 방법.
  15. 제 8 항에 있어서,
    상기 하나 이상의 그룹들 각각은 적어도 하나의 슬레이브 디바이스를 포함하는, 마스터 디바이스 상의 동작 방법.
  16. 슬레이브 디바이스로서,
    마스터 디바이스가 커플링되는 단일 라인 인터럽트 요청 (IRQ; interrupt request) 버스에 대한 제 1 인터페이스;
    상기 마스터 디바이스가 또한 커플링되는 제어 데이터 버스에 대한 제 2 인터페이스; 및
    상기 제 1 인터페이스 및 상기 제 2 인터페이스에 커플링되는 프로세싱 회로를 포함하며,
    상기 프로세싱 회로는:
    마스터 디바이스로부터 그룹 할당을 획득하는 것으로서, 상기 그룹 할당은 복수의 그룹들로부터 하나의 그룹을 식별하고, 각각의 그룹은 상이한 IRQ 신호와 연관되어 있는, 상기 그룹 할당을 획득하고;
    IRQ 신호가 다른 슬레이브 디바이스에 의해 표명되는지의 여부를 확인하기 위해 상기 IRQ 버스를 모니터링하고; 그리고
    상기 IRQ 버스에 대하여 다른 IRQ 신호가 표명되지 않을 때 상기 IRQ 버스에 대하여 제 1 IRQ 신호를 표명하도록 구성되는, 슬레이브 디바이스.
  17. 제 16 항에 있어서,
    상기 IRQ 버스는 하나 이상의 슬레이브 디바이스들로부터 상기 마스터 디바이스로의 단방향 신호 송신들에 전용되는, 슬레이브 디바이스.
  18. 제 16 항에 있어서,
    상기 제어 데이터 버스는 하나 이상의 슬레이브 디바이스들과 상기 마스터 디바이스 사이의 양방향 통신들을 지원하는, 슬레이브 디바이스.
  19. 제 16 항에 있어서,
    상기 제어 데이터 버스는 인터-집적 회로 (I2C) 시리얼 버스, 카메라 제어 인터페이스 (CCI) 시리얼 버스, 또는 CCI 익스텐션 (CCIe) 시리얼 버스를 포함하는, 슬레이브 디바이스.
  20. 제 16 항에 있어서,
    상기 복수의 그룹들 각각은 적어도 하나의 슬레이브 디바이스를 포함하는, 슬레이브 디바이스.
  21. 제 16 항에 있어서,
    상기 프로세싱 회로는 또한:
    상기 IRQ 버스로부터 상기 제 1 IRQ 신호를 표명해제하고;
    다른 슬레이브 디바이스에 의해 상기 IRQ 버스에 대하여 제 2 IRQ 신호가 표명되는지의 여부를 결정하기 위해 상기 IRQ 버스를 모니터링하고; 그리고
    상기 제 2 IRQ 신호가 상기 IRQ 버스에 대하여 표명되면 상기 제 1 IRQ 신호를 재표명하도록 구성되며,
    상기 제 1 IRQ 신호는, 상기 IRQ 버스가 아이들 상태가 된 후에 재표명되는, 슬레이브 디바이스.
  22. 제 16 항에 있어서,
    상기 프로세싱 회로는 또한:
    상기 제어 데이터 버스를 통하여 상기 마스터 디바이스로부터 상태 레지스터 쿼리를 수신하고; 그리고
    상기 슬레이브 디바이스가 상기 IRQ 버스에 대해 상기 제 1 IRQ 신호를 표명하였다는 상태 표시로 응답하도록 구성되는, 슬레이브 디바이스.
  23. 슬레이브 디바이스 상의 동작 방법으로서,
    마스터 디바이스로부터 그룹 할당을 획득하는 단계로서, 상기 그룹 할당은 복수의 그룹들로부터 하나의 그룹을 식별하고, 각각의 그룹은 상이한 인터럽트 요청 (IRQ; interrupt request) 신호와 연관되어 있는, 상기 그룹 할당을 획득하는 단계;
    IRQ 신호가 다른 슬레이브 디바이스들 중 하나에 의해 표명되는지의 여부를 확인하기 위해 단일 라인 IRQ 버스를 모니터링하는 단계; 및
    상기 IRQ 버스에 대하여 다른 IRQ 신호가 표명되지 않을 때 상기 IRQ 버스에 대하여 제 1 IRQ 신호를 표명하는 단계를 포함하는, 슬레이브 디바이스 상의 동작 방법.
  24. 제 23 항에 있어서,
    상기 IRQ 버스는 비동기 버스인, 슬레이브 디바이스 상의 동작 방법.
  25. 제 23 항에 있어서,
    상기 IRQ 버스는 슬레이브 디바이스들로부터 상기 마스터 디바이스로의 단방향 신호 송신들에 전용되는, 슬레이브 디바이스 상의 동작 방법.
  26. 제 23 항에 있어서,
    상기 복수의 그룹들 각각은 적어도 하나의 슬레이브 디바이스를 포함하는, 슬레이브 디바이스 상의 동작 방법.
  27. 제 23 항에 있어서,
    상기 IRQ 버스로부터 상기 제 1 IRQ 신호를 표명해제하는 단계;
    다른 디바이스가 상기 IRQ 버스에 대하여 제 2 IRQ 신호를 표명하고 있는지의 여부를 확인하기 위해 상기 IRQ 버스를 모니터링하는 단계; 및
    상기 다른 디바이스가 상기 제 2 IRQ 신호를 표명하고 있다면 상기 제 1 IRQ 신호를 재표명하는 단계를 더 포함하고,
    상기 제 1 IRQ 신호는, 상기 제 2 IRQ 신호가 표명해제된 후에 재표명되는, 슬레이브 디바이스 상의 동작 방법.
  28. 제 23 항에 있어서,
    제어 데이터 버스를 통하여 상기 마스터 디바이스로부터 상태 레지스터 쿼리를 수신하는 단계; 및
    상기 슬레이브 디바이스가 상기 IRQ 버스에 대해 상기 제 1 IRQ 신호를 표명하였다는 상태 표시로 응답하는 단계를 더 포함하는, 슬레이브 디바이스 상의 동작 방법.
  29. 제 28 항에 있어서,
    제어 데이터 버스는 CCIe-호환가능 버스인, 슬레이브 디바이스 상의 동작 방법.
  30. 제 28 항에 있어서,
    제어 데이터 버스는 상기 슬레이브 디바이스들과 상기 마스터 디바이스 사이의 양방향 버스인, 슬레이브 디바이스 상의 동작 방법.
KR1020167005543A 2013-08-24 2014-08-19 주변 장치들로부터 하나의 와이어로의 irq 라인들의 수를 최소화하는 방법 KR20160047484A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361869673P 2013-08-24 2013-08-24
US61/869,673 2013-08-24
US14/462,363 US9921981B2 (en) 2013-08-24 2014-08-18 Method to minimize the number of IRQ lines from peripherals to one wire
US14/462,363 2014-08-18
PCT/US2014/051758 WO2015031115A1 (en) 2013-08-24 2014-08-19 Method to minimize the number of irq lines from peripherals to one wire

Publications (1)

Publication Number Publication Date
KR20160047484A true KR20160047484A (ko) 2016-05-02

Family

ID=52481419

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167005543A KR20160047484A (ko) 2013-08-24 2014-08-19 주변 장치들로부터 하나의 와이어로의 irq 라인들의 수를 최소화하는 방법

Country Status (9)

Country Link
US (1) US9921981B2 (ko)
EP (1) EP3036647B1 (ko)
JP (1) JP2016532967A (ko)
KR (1) KR20160047484A (ko)
CN (1) CN105474193A (ko)
CA (1) CA2918503A1 (ko)
ES (1) ES2647147T3 (ko)
HU (1) HUE033685T2 (ko)
WO (1) WO2015031115A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9519603B2 (en) * 2013-09-09 2016-12-13 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
DE102014014379B3 (de) * 2014-10-02 2015-08-20 Micronas Gmbh Verfahren für eine deterministische Auswahl eines Sensors aus einer Vielzahl von Sensoren
US20180107987A1 (en) * 2016-10-14 2018-04-19 Microsoft Technology Licensing, Llc Meeting service with meeting time and location optimization
KR20180124340A (ko) * 2017-05-11 2018-11-21 엘에스산전 주식회사 프로그래머블 논리 제어 장치
JP6939240B2 (ja) 2017-08-17 2021-09-22 富士フイルムビジネスイノベーション株式会社 情報処理装置
US11030133B2 (en) * 2018-08-30 2021-06-08 Qualcomm Incorporated Aggregated in-band interrupt based on responses from slave devices on a serial data bus line

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6046748B2 (ja) * 1977-02-21 1985-10-17 株式会社日立製作所 コンピユ−タの割込処理方式
US4332011A (en) * 1980-03-17 1982-05-25 Cambridge Telecommunications, Inc. Data processing arrangement including multiple groups of I/O devices with priority between groups and within each group
JPS58198994A (ja) * 1982-05-15 1983-11-19 Matsushita Electric Works Ltd 時分割多重遠隔制御システムの割込処理方式
JPH07117935B2 (ja) * 1985-01-31 1995-12-18 株式会社東芝 割込み検出方式
JPH0817394B2 (ja) * 1989-09-14 1996-02-21 松下電工株式会社 時分割多重伝送システムの割込処理方式
US5555420A (en) 1990-12-21 1996-09-10 Intel Corporation Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management
US5321818A (en) 1992-05-12 1994-06-14 Hughes Aircraft Company System for arbitrating for access on VME bus structures
US5530875A (en) * 1993-04-29 1996-06-25 Fujitsu Limited Grouping of interrupt sources for efficiency on the fly
JPH07302203A (ja) * 1994-05-10 1995-11-14 Matsushita Electric Ind Co Ltd 割込制御装置
US5943500A (en) * 1996-07-19 1999-08-24 Compaq Computer Corporation Long latency interrupt handling and input/output write posting
US5940402A (en) 1997-06-06 1999-08-17 Timeplex, Inc. Method and apparatus for TDM interrupt transmissions between multiple devices and a processor
JPH11232210A (ja) * 1998-02-16 1999-08-27 Fuji Xerox Co Ltd 情報処理装置
US6065073A (en) * 1998-08-17 2000-05-16 Jato Technologies, Inc. Auto-polling unit for interrupt generation in a network interface device
US6263395B1 (en) * 1999-01-06 2001-07-17 Compaq Computer Corp. System and method for serial interrupt scanning
JP2000231539A (ja) * 1999-02-12 2000-08-22 Ricoh Co Ltd データ転送システムおよびデータ転送方法
JP2002055830A (ja) 2000-05-29 2002-02-20 Seiko Epson Corp 割込信号生成装置及び割込信号の生成方法
US6704823B1 (en) * 2000-07-20 2004-03-09 International Business Machines Corporation Method and apparatus for dynamic allocation of interrupt lines through interrupt sharing
US20020116563A1 (en) * 2000-12-12 2002-08-22 Lever Paul D. Apparatus and method to reduce interrupt latency in shared interrupt systems
US7089338B1 (en) * 2002-07-17 2006-08-08 Cypress Semiconductor Corp. Method and apparatus for interrupt signaling in a communication network
GB0219570D0 (en) * 2002-08-22 2002-10-02 Ibm Disk drive arrangement, enclosure, adapter and method
US7200700B2 (en) 2005-05-19 2007-04-03 Inventec Corporation Shared-IRQ user defined interrupt signal handling method and system
US7752365B2 (en) 2008-04-01 2010-07-06 Kyocera Corporation Bi-directional single conductor interrupt line for communication bus
DE102008059204B9 (de) 2008-11-27 2011-05-05 Infineon Technologies Ag Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz
US8489786B2 (en) * 2009-11-09 2013-07-16 Stmicroelectronics International N.V. Acknowledgement management technique for supported command set of SMBUS/PMBUS slave applications
US8775707B2 (en) 2010-12-02 2014-07-08 Blackberry Limited Single wire bus system
US8725916B2 (en) * 2012-01-07 2014-05-13 Microsoft Corporation Host side implementation for HID I2C data bus
US20150095537A1 (en) * 2013-10-02 2015-04-02 Qualcomm Incorporated Camera control interface sleep and wake up signaling
US10353837B2 (en) * 2013-09-09 2019-07-16 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US9690725B2 (en) * 2014-01-14 2017-06-27 Qualcomm Incorporated Camera control interface extension with in-band interrupt
US9519603B2 (en) * 2013-09-09 2016-12-13 Qualcomm Incorporated Method and apparatus to enable multiple masters to operate in a single master bus architecture
US9892077B2 (en) * 2013-10-07 2018-02-13 Qualcomm Incorporated Camera control interface slave device to slave device communication
EP3055779B1 (en) * 2013-10-08 2017-08-02 Qualcomm Incorporated Coexistence of i2c slave devices and camera control interface extension devices on a shared control data bus
US9684624B2 (en) * 2014-01-14 2017-06-20 Qualcomm Incorporated Receive clock calibration for a serial bus
US9904637B2 (en) * 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp

Also Published As

Publication number Publication date
CN105474193A (zh) 2016-04-06
EP3036647B1 (en) 2017-09-20
US20150058507A1 (en) 2015-02-26
CA2918503A1 (en) 2015-03-05
WO2015031115A1 (en) 2015-03-05
ES2647147T3 (es) 2017-12-19
HUE033685T2 (en) 2017-12-28
US9921981B2 (en) 2018-03-20
JP2016532967A (ja) 2016-10-20
EP3036647A1 (en) 2016-06-29

Similar Documents

Publication Publication Date Title
EP3095038B1 (en) Camera control interface extension with in-band interrupt
KR102445344B1 (ko) 시리얼 버스를 위한 수신 클록 캘리브레이션
US11010327B2 (en) I3C point to point
US9684624B2 (en) Receive clock calibration for a serial bus
US10353837B2 (en) Method and apparatus to enable multiple masters to operate in a single master bus architecture
KR20160047484A (ko) 주변 장치들로부터 하나의 와이어로의 irq 라인들의 수를 최소화하는 방법
US10140243B2 (en) Enhanced serial peripheral interface with hardware flow-control
US20190213165A1 (en) Priority scheme for fast arbitration procedures
US10496562B1 (en) Low latency virtual general purpose input/output over I3C
US11256651B2 (en) Multiple master, multi-slave serial peripheral interface
CN112765082B (zh) 多主机仲裁方法、装置和可读存储介质
US20200201808A1 (en) Time-division multiplexing (tdm) data transfer on serial interfaces
US20200201804A1 (en) I3c device timing adjustment to accelerate in-band interrupts
US10545886B2 (en) Clock line driving for single-cycle data over clock signaling and pre-emption request in a multi-drop bus
WO2018005516A1 (en) Accelerated i3c master stop
US20230350841A1 (en) Providing acknowledgements for system power management interface
US10572439B1 (en) I3C read from long latency devices
US20210141757A1 (en) Adaptive address arbitration optimization on an i3c bus
US11360916B2 (en) Group slave identifier time-multiplexed acknowledgment for system power management interface

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination