KR101750672B1 - 가상의 gpio - Google Patents

가상의 gpio Download PDF

Info

Publication number
KR101750672B1
KR101750672B1 KR1020167027828A KR20167027828A KR101750672B1 KR 101750672 B1 KR101750672 B1 KR 101750672B1 KR 1020167027828 A KR1020167027828 A KR 1020167027828A KR 20167027828 A KR20167027828 A KR 20167027828A KR 101750672 B1 KR101750672 B1 KR 101750672B1
Authority
KR
South Korea
Prior art keywords
gpio
signals
processor
fsm
gpio signals
Prior art date
Application number
KR1020167027828A
Other languages
English (en)
Other versions
KR20160120806A (ko
Inventor
랄란 미쉬라
모히트 프라사드
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160120806A publication Critical patent/KR20160120806A/ko
Application granted granted Critical
Publication of KR101750672B1 publication Critical patent/KR101750672B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • Y02B60/1228
    • Y02B60/1235
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)
  • Information Transfer Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

가상의 GPIO 신호들을 직렬화하고, 외부 클록의 사이클들에 응답하여 가상의 GPIO 신호들을 역직렬화하는 유한 상태 머신이 제공된다. 이 유한 상태 머신은 시작 비트 및 종료 비트에 의해 경계 지어진 프레임들 각각으로 직렬화된 가상의 GPIO 신호들을 프레이밍한다.

Description

가상의 GPIO{VIRTUAL GPIO}
본 출원은 2012 년 10 월 15 일자로 출원된 미국 가출원 제 61/714,118 호의 우선권을 주장하며, 이 출원의 내용들은 이로써 그 전체가 참조로서 포함된다.
본 출원은 범용 입/출력 (GPIO), 및 보다 구체적으로는 가상의 GPIO 핀들과 같은 핀들의 쌍을 사용하도록 구성된 집적 회로에 관한 것이다.
범용 입/출력 (general purpose input/output; GPIO) 은 집적 회로 설계자가 특정 애플리케이션들에 대해 커스트마이징될 수도 있는 일반 핀들을 제공하게 한다. 예를 들어, GPIO 핀은 사용자의 요구에 따라 출력이나 입력 핀이도록 프로그래밍 가능하다. GPIO 모듈 또는 주변기기는 통상적으로, 인터페이스 요건에 기초하여 변할 수 있는 핀들의 제어 그룹들일 것이다. GPIO 핀들의 프로그래밍 가능성 (programmability) 때문에, 이들은 통상 마이크로프로세서 및 마이크로제어기 애플리케이션들에 포함된다. 예를 들어, 모바일 디바이스들의 애플리케이션 프로세서는 모뎀 프로세서와 핸드셰이크 시그널링, 예컨대 인터-프로세서 통신 (inter-processor communication; IPC) 을 행하기 위해 다수의 GPIO 핀들을 사용할 수도 있다.
이러한 핸드셰이크 시그널링에 대하여, 측파대 (sideband) 신호는, 그것이 프로세서에 의해 통신 및 수신되어야 하는 경우 "대칭적" 인 것으로서 간주된다. 교환될 필요가 있는 n 개의 대칭적 측파대 신호들이 존재하면, 각각의 프로세서는 n*2 GPIO 들을 요구한다 (소정 신호를 송신하기 위한 하나의 GPIO 및 그 신호를 수신하기 위한 하나의 GIPO). 예를 들어, 모뎀 프로세서와 애플리케이션 프로세서 간의 대칭적 IPC 인터페이스는 5 개의 신호들을 포함할 수도 있고, 이 신호는 결과의 IPC 시그널링에 필요한 10 개의 GPIO 핀들로 변환한다. 그렇게 많은 IPC 통신을 위한 GPIO 에 대한 필요성은 제조 비용을 증가시킨다. 더욱이, IPC 에 대해 너무 많은 GIPO 들을 바치는 것은 다른 시스템-레벨 주변기기 인터페이스들에 대한 GPIO 이용 가능성을 제한한다. 그러면, 소정 코너 컨디션들이 위반된다는 점에서 프로세서들 간의 메인 데이터 버스 위에서 IPC 통신을 이동시킴으로써 이 문제는 해결될 수 없다.
따라서, 과도한 수의 핀들을 요구하지 않고 다수의 입/출력 신호들을 수용할 수 있는 GPIO 아키텍처에 대한 필요성이 본 분야에서 존재한다.
가상의 GPIO 아키텍처는 각각 프로세서를 갖는 2 개의 집적 회로들 간의 통신을 위해 제공된다. 각각의 집적 회로는 또한, 신호들의 세트를 사용하여 원격 프로세서와 통신하기 위한 GPIO 인터페이스를 포함한다. 이 신호들의 세트는 GPIO 신호들의 세트 및 가상의 GPIO 신호들의 세트를 포함한다. 각각의 집적 회로는 따라서, GPIO 신호들의 세트에 대응하는 GPIO 핀들의 세트를 포함한다.
*GPIO 신호들의 세트와는 대조적으로, 가상의 GPIO 신호들의 세트는 GPIO 핀들을 통해 송신되지 않는다. 대신에, 각각의 집적 회로는 전용 송신 핀 및 전용 수신 핀을 사용하여 가상의 GPIO 신호들의 세트를 송신 및 수신한다. 그것과 관련하여, 가상의 GPIO 신호들의 세트는 송신 세트 및 수신 세트를 포함한다. 각각의 집적 회로에서의 유한 상태 머신 (finite state machine; FSM) 은 전용 송신 핀을 통해 원격 프로세서로 송신 세트를 순차적으로 (serially) 송신하도록 구성된다. 유한 상태 머신은 또한, 전용 수신 핀을 통해 원격 프로세서로부터 가상의 GPIO 신호들의 수신 세트를 순차적으로 수신하도록 구성된다.
프로세서는 신호들의 제 1 세트를 GPIO 인터페이스에 제공한다. GPIO 인터페이스로부터, 신호들의 제 1 세트의 부분은 대응하는 GPIO 핀들의 제 1 세트를 통해 GPIO 신호들의 제 1 세트로서 원격 프로세서로 송신된다. 프로세서로부터의 신호들의 제 1 세트의 나머지 부분은 FSM 에 병렬적으로 (in parallel) GPIO 인터페이스에 의해 제공된다. FSM 은 그 후, 전용 송신 핀을 통해 가상의 GPIO 신호들의 송신 세트로서 나머지 부분을 순차적으로 송신할 수 있다.
GPIO 인터페이스는 또한, 대응하는 GPIO 핀들의 제 2 세트를 통해 원격 프로세서로부터 GPIO 신호들의 제 2 세트를 수신한다. 또한, FSM 은 원격 프로세서로부터 가상의 GPIO 신호들의 수신 세트를 순차적으로 수신하고, 이 수신 세트를 GPIO 인터페이스에 병렬적으로 제공한다. GPIO 인터페이스는 그 후, 원격 프로세서로부터의 GPIO 신호들의 제 2 세트 및 가상의 GPIO 신호들의 수신 세트를 포함하는 신호들의 제 2 세트를 프로세서에 제공할 수 있다.
이 방식에서, 프로세서는, 그것이 GPIO 인터페이스에 제공하는 신호들의 제 1 세트가 임의의 가상의 GPIO 신호들을 포함하는지 여부에 관하여 "문외한 (agnostic)" 이다. 유사하게, 프로세서가 GPIO 인터페이스로부터 수신하는 신호들의 제 2 세트가 임의의 가상의 GPIO 신호들을 포함하든 아니든 프로세서에는 기능적 차이가 없다. 프로세서는 따라서, 본원에 개시된 가상의 GPIO 아키텍처와의 그 통합에 대하여 구성 또는 재-프로그래밍을 필요로 하지 않는다. 더욱이, 유한 상태 머신은 그것이 구동된 소프트웨어가 아니라는 점에서 프로세서에 독립적이다. 가상의 GPIO 아키텍처는 따라서, 프로세서가 슬립 모드에 있거나 또는 다르게는 전력을 절감하는 비활성인 동안 독립적으로 기능할 수 있다.
하나의 프로세서에서의 FSM 은 시작 비트 및 종료 비트에 의해 경계가 정해진 프레임에서 가상의 GPIO 신호들의 송신 세트를 트랜짓한다. 원격 프로세서에서의 FSM 은 따라서, 가상의 GPIO 신호들의 그 수신 세트로서 송신된 프레임을 수신한다. 시작 비트 및 종료 비트 양자 모두를 포함하는 완전한 프레임을 그것이 수신하는지 여부를 모니터링함으로써, 하나의 프로세서에 대한 FSM 은 원격 프로세서가 실패했는지 여부를 검출할 수 있다.
도 1 은 예시의 가상의 GPIO 아키텍처의 블록도이다.
도 2a 는 프로세서가 단일의 원격 프로세서와 통신하는 가상의 GPIO 아키텍처에 대한 하이-레벨 블록도이다.
도 2b 는 프로세서가 2 개의 원격 프로세서들과 통신하는 가상의 GPIO 아키텍처에 대한 하이-레벨 블록도이다.
도 3 은 가상의 GPIO 유한 상태 머신에 대한 블록도이다.
도 4 는 가상의 GPIO 프레임의 송신과 수신 간의 타이밍 관계를 예시한다.
도 5 는 도 1 의 GPIO 아키텍처에 의해 실시된 방법에 대한 플로우차트이다.
본 발명의 실시형태들 및 그 이점들은 이어지는 상세한 설명을 참조함으로써 더 잘 이해된다. 유사한 참조 부호들은 하나 이상의 도면들에 예시된 유사한 엘리먼트들을 식별하는데 사용된다.
가상의 범용 입/출력 (GPIO) 아키텍처는 이들이 대형의 복수의 GPIO 핀들을 구성한 것처럼 시스템이 핀들의 쌍을 사용하게 하여 제공된다. 이 아키텍처는, 가상의 GPIO 신호들을 생성하는 시스템-레벨 애플리케이션들에 이들 가상의 GPIO 신호들이 종래의 GPIO 핀들 상에서 입/출력을 위해 수용된다는 점에서 가상적으로 간주된다. 다시 말해, 본원에 개시된 가상의 GPIO 아키텍처를 갖는 시스템 온 칩 (SoC) 또는 프로세서는 GPIO 신호들과 가상의 GPIO 신호들 간의 기능적 차이가 없는 것을 경험한다. 그러나, 다르게는 각각 그들의 GPIO 핀들의 전용 페어 (GPIO 신호가 대칭인 경우) 를 필요로 할 가상의 GPIO 신호들을 송신 및 수신하는데 단지 2 개의 핀들이 사용된다.
본원에 개시된 가상의 GPIO 아키텍처는 모바일 전화기 또는 다른 통신 디바이스에서의 모뎀 프로세서와 애플리케이션들 프로세서 간의 순응 IPC 에 관하여 논의될 것이다. 그러나, 본원에 개시된 가상의 GPIO 회로들 및 기법들은 GPIO 능력들을 요구하는 시스템 온 칩 (SoC) 또는 주문형 집적 회로들 (ASICs) 에 광범위하게 적용 가능한 것으로 인식될 것이다.
개시된 가상의 GPIO 아키텍처는 송신 노드의 헬스 (health) 를 수신 노드에 명백하게 만든다. 이것은, 특히 소프트웨어 구현을 위한 디버깅 스테이지 동안 유리한데, 송신 프로세서가 작동하지 않게 되는 시간을 수신 프로세서에 나타내기 때문이다.
이러한 강건한 가상의 GPIO 능력을 가능하게 하기 위해, 각각의 집적 회로는 회로 보드 상의 송신 라인에 커플링된 전용 송신 핀 및 회로 보드의 수신 라인에 커플링된 전용 수신 핀을 포함한다. 그 점과 관련하여, 가상의 GIPO 신호들은 송신 라인을 통한 송신을 위한 송신 세트 및 수신 라인 상의 수신을 위한 수신 세트로 분할될 수도 있다. 시그널링이 대칭적이면, 각각의 프로세서에 대한 송신 세트에서의 신호들의 수는 동일하다. 그러나, 본원에 개시된 가상의 GPIO 아키텍처는, 하나의 프로세서에 대한 가상의 GPIO 신호들의 송신 세트가 원격 프로세서에 대한 송신 세트와 동일한 사이즈가 아닌 비대칭 시그널링을 수용할 수 있다.
이제 도면들로 돌아가면, 도 1 은 모바일 전화기 또는 다른 통신 디바이스 내의 대응하는 집적 회로들에서 애플리케이션 프로세서 집적 회로 (100) 및 모뎀 프로세서 집적 회로 (105) 에 관하여 가상의 GPIO 아키텍처 (101) 를 예시한다. 각각의 집적 회로는 전용 송신 라인 및 전용 수신 라인에 커플링하기 때문에, 애플리케이션 프로세서 (100) 에 대한 송신 라인 (110a) 은 따라서, 모뎀 프로세서 (105) 에 대한 수신 라인이다. 유사하게, 모뎀 프로세서 (105) 에 대한 송신 라인 (110b) 은 애플리케이션 프로세서 (100) 에 대한 수신 라인이다. 이들 라인들 또는 리드들은 (점선 (150) 으로 표시된) 회로 보드 또는 집적 회로들 (100 과 105) 간의 다른 물리적 상호접속 상에서 운반된다. 각각의 집적 회로는 대응하는 송신 라인 (예를 들어, 모뎀 프로세서 (105) 에 대한 라인 (110b)) 에 커플링하기 위해 전용 송신 핀을 포함한다. 유사하게, 각각의 프로세서는 대응하는 수신 라인 (예를 들어, 모뎀 프로세서 (105) 에 대한 라인 (110a)) 에 커플링하기 위해 전용 수신 핀을 포함한다. 각각의 집적 회로에서의 유한 상태 머신 (finite state machine; FSM)(115) 은 이들 전용 라인들 및 핀들을 사용하여 32 KHz 슬립 클록과 같은 외부 클록 소스로부터 외부 클록 신호 (120) 에 관하여 송신 및 수신을 제어한다.
GPIO 분야들에서 알려진 바와 같이, 각각의 프로세서는 그것이 GPIO 핀들과 인터페이싱하는 GPIO 인터페이스 (103) 를 포함한다. 유리하게는, 그 GPIO 인터페이스는 가상의 GPIO 아키텍처 (101) 에서 변경되지 않을 수도 있다. 다시 말해, 각각의 프로세서는, 가상의 GPIO 아키텍처 (101) 가 프로세서들 (100 및 105) 에 명백하도록 종래의 방식으로 그 GPIO 인터페이스 (103) 를 통해 신호들을 수신 및 송신한다. 각각의 GPIO 인터페이스 (103) 를 통해 프로세싱된 신호들의 소정 부분은 종래의 GPIO 핀들 (125) 상에서 GPIO 신호들 (130) 로서 송신 및 수신될 수도 있다. 그러나, GPIO 인터페이스 (103) 를 통해 프로세싱된 신호들의 나머지 부분은 종래의 GPIO 핀들 (125) 을 통해 송신 또는 수신되지 않는다. 대신에, 이 나머지 부분은 전용 송신 핀 및 전용 수신 핀을 사용하여 FSM (115) 을 통해 송신 및 수신되는 복수의 가상의 GPIO 신호들 (135) 을 포함한다.
GPIO 인터페이스 (103) 를 통해 프로세싱된 신호들의 이 나머지 부분은, 종래의 GPIO 신호들 (130) 에 대한 경우에서와 같이, 그들이 각각의 자신의 전용 핀들을 갖지 않기 때문에 가상의 GPIO 신호들 (135) 로서 지정된다. 이것은, 각각의 프로세서 코어가 그 GPIO 인터페이스 (103) 의 리툴링 (retooling) 을 요구하지 않지만, 가상의 GPIO 아키텍처 (101) 는 가상의 GPIO 신호들 (135) 각각이 그 자신의 핀을 요구하는 종래의 GPIO 실시형태에 비교했을 때 핀들의 상당한 감축을 달성한다는 점에서 매우 유리하다.
집적 회로는 단 하나의 FSM (115) 을 포함할 수도 있거나, 다수의 외부 시스템들과 인터페이싱하기 위한 복수의 이들 엘리먼트들을 포함할 수도 있다. 도 2a 는 집적 회로 (200) 가, 자신의 FSM (115) 을 포함하는 집적 회로 (205) 에 원격 프로세서와 통신하기 위한 단일의 FSM (115) 을 포함하는 가상의 GPIO 아키텍처를 예시한다. 반대로, 도 2b 에 도시된 집적 회로 (220) 는 집적 회로들 (225 및 230) 각각에 원격 프로세서들과 통신하기 위한 FSM (115A) 및 FSM (115B) 을 포함한다. 그 점과 관련하여, 본원에 논의된 프로세서들과 같은 시스템 온 칩 (SoC) 은 다른 SoC 들과 가상의 GPIO 시그널링을 수용하는데 필요한 것 만큼 많은 FSM 들로 구성될 수도 있다. 프로세서가 가질 수도 있는 FSM 들의 수에 관계 없이, 각각의 FSM 은 도 2a 에 표시된 바와 같이 그 자신의 전용 송신 핀 (240) 및 수신 핀 (245) 을 사용하여 통신한다.
다시 도 1 을 참조하면, 가상의 GPIO 신호들 (135) 이 FSM (115) 과 같은 유한 상태 머신을 사용하여 수용되기 때문에, 프로세서 코어들은 잠들어 있을 수도 있거나 다른 타입의 휴면 상태가 여전히 가상의 GPIO 신호들 (135) 수신할 수 있다. 이 방식에서, 가상의 GPIO 아키텍처 (101) 는 유리하게는 각각의 GPIO 인터페이스 (103) 에 대한 핀들의 수를 절약할 뿐만 아니라 저 전력이다.
본원에 사용된 바와 같이, "핀" 은 회로 보드 또는 다른 물리적 상호접속 (예를 들어, 패키지 상호접속 또는 상호접속을 통한 스루-홀) 상의 리드들에 커플링하도록 집적 회로가 사용하는 실제 핀 또는 패드와 같은 구조를 커버하기 위한 일반적인 용어이다. 예를 들어, 각각의 집적 회로가 16 개의 GPIO 핀들 (125) 을 가지면, 이들 핀들은 8 개의 대칭 GPIO 신호들 (130)(예시의 명확함을 위해, 단지 4 개의 종래의 GPIO 신호들 #1 내지 #4 만이 도 1 에 도시됨) 또는 16 개의 비대칭 GPIO 신호들 (130) 을 수용하도록 구성될 수 있다. 또한, 각각의 집적 회로는 라인들 (110a 및 110b) 을 사용하여 복수의 n 개의 가상의 GPIO 신호들 (135) 의 입/출력 인터페이싱을 수용할 수 있고, 여기서 n 은 임의의 복수형 정수이다. 각각의 프로세서 코어에 관하여, GPIO 신호들 (130) 과 가상의 GPIO 신호들 (135) 간의 차이는 없다: 이들 양자 모두는 단순히, 필요에 따라 GPIO 인터페이스 (103) 를 통해 송신 및 수신되는 신호들이다. 그러나, 가상의 GPIO 신호들 (135) 은 종래의 GPIO 신호들 (130) 과 대조적으로 전용 핀들을 갖지 않기 때문에, 가상의 GPIO 신호들 (135) 은 라인들 (110a 및 110b) 을 통한 송신을 위해 FSM 들 (115) 에서 직렬화된다. 수신 시에, 각각의 FSM (115) 은 수신된 직렬화된 가상의 GPIO 신호들을 역직렬화 (deserialize) 한다. 따라서, 각각의 FSM (115) 은 가상의 GPIO 신호들 (135) 에 대하여 직렬화기/역직렬화기로서 기능한다.
프로세서는 GPIO 신호들 중 선택된 신호들에서의 변화들에 응답하여 인터럽트 신호를 수신할 필요가 있을 수도 있다. 가상의 GPIO 신호들 (135) 에 대하여, 모뎀 전력 관리자 (modem power manager; MPM)(140) 는 선택된 GPIO 신호들을 인터럽트 구성 레지스터들 (145) 을 통해 프로그래밍될 때 모니터링한다. 각각의 가상의 GPIO 신호 (135) 는 대응하는 인터럽트 구성 레지스터 (145) 를 갖는다. 그 신호 변화 상태에 응답하여 인터럽트를 생성하기 위해 가상의 GPIO 신호 (135) 가 요구되면, 대응하는 구성 레지스터 (145) 가 따라서 프로그래밍된다. 유사하게, 가상의 GPIO 신호 (135) 가 그 신호가 변화된 상태를 갖는지 여부에 관계 없이 인터럽트를 생성하지 않는 것이면, 대응하는 인터럽트 구성 레지스터가 또한 따라서 프로그래밍된다. MPM (140) 은 또한, 유한 상태 머신을 포함할 수도 있다. 따라서, FSM (115) 처럼, MPM (140) 은 그 프로세서가 슬립 모드 또는 일부 다른 휴먼 상태에 있는지 여부에 관계 없이 저 전력이고, 활성적이다.
가상의 GPIO 신호들 (135) 은 송신 세트 및 수신 세트로 세분될 수도 있다. 대칭적 시스템에서, 각각의 세트는 동일한 수를 가질 것이다. 그러나, 가상의 GPIO 아키텍처 (101) 는, 그것이, 가상의 GPIO 신호들 (135) 의 송신 및 수신 세트들이 상이한 사이즈들을 갖는 비대칭 시그널링 실시형태를 쉽게 수용할 수 있다는 점에서 유리하다. 아키텍처 (101) 가 대칭 또는 비대칭인지 여부에 관계 없이, 각각의 FSM (115) 은, 가상의 GPIO 신호들 (135) 의 송신 세트에서의 각각의 신호가 GPIO 인터페이스 (103) 와 FSM (115) 간의 그 자신의 리드 (106) 상에서 운반된다는 점에서 GPIO 인터페이스 (103) 로부터 병렬적으로 가상의 GPIO 신호들 (135) 의 송신 세트를 수신한다. 반대로, FSM (115) 에 의한 이 송신 세트의 결과의 송신은 도 2a 에 관하여 논의된 바와 같이 단일의 송신 핀 (240) 을 통해 일어난다. 가상의 GPIO 신호들의 이 송신 세트는 그 후, 원격 프로세서에 대한 수신 세트가 된다. 원격 프로세서의 FSM 은 그 후, GPIO 인터페이스 (103) 와 병렬적으로 그것이 존재할 수도 있도록 수신 세트를 역직렬화한다.
각각의 FSM (115) 은 가상의 GPIO 신호들 (135) 의 송신 세트에 대한 이전 상태를 저장하는 구성 레지스터들 (107) 을 포함한다. 이 방식에서, 각각의 FSM (115) 은 GPIO 인터페이스 (103) 로부터 수신된 바와 같이 송신 세트의 현재 상태를 모니터링하고, 현재 상태가 이전 상태에 대하여 변경되었으면 송신 세트의 직렬 송신을 단지 트리거링할 수 있다. 다시 말해, FSM (115) 은, 단지 송신 세트 내의 신호들 중 하나 이상이 구성 레지스터들 (107) 에서의 이전 상태의 저장을 통해 검출된 바와 같이 변경된 상태이면, 송신 세트의 직렬 송신을 트리거링할 것이다.
전술된 바와 같이, 각각의 FSM (115) 은 가상의 GPIO 신호들 (135) 의 송신 세트를 직렬화하고, 가상의 GPIO 신호들 (135) 의 수신 세트를 역직렬화하기 위한 직렬화기/역직렬화기로서 활동한다. 도 3 은 이들 동작들을 더 잘 예시하기 위한 FSM (115) 의 블록도이다. FSM (115) 은 GPIO 인터페이스 (103)(도 1) 를 통해 멀티플렉싱 모듈 (300) 을 통해 프로세서 코어와 가상의 GPIO 신호들 (135) 을 교환한다. 일 실시형태에서, FSM (115) 은 송신 세트에서 변화가 존재한 경우 송신 라인 (110a) 을 통해 가상의 GPIO 신호들 (135) 의 송신 세트의 송신을 승인할 로직 회로 (301) 를 포함한다. 로직 회로 (301) 는 따라서, 가상의 GPIO 신호들 (135) 의 송신 세트에 대한 현재 상태를 구성 레지스터들 (107) 에 저장된 바와 같은 송신 신호들의 이 세트에 대한 이전 상태에 비교한다. 예를 들어, 로직 회로 (301) 는 XOR 게이트 (310) 를 포함하여, 이 비교를 수행할 수도 있다. 멀티플렉싱 모듈 (300) 은 병렬로 송신 세트를 병렬 입력 직렬 출력 (parallel-in-serial-out; PISO) 시프트 레지스터 (315) 로 로딩한다. XOR 게이트 (310) 로부터의 인에이블 신호 (320) 가 (송신 세트에 대한 이전 상태와 현재 상태 간의 변화를 나타내는) 하이 (high) 로 가면, PISO 시프트 레지스터 (315) 는 외부 클록 (120) 의 사이클들에 응답하여 송신 라인 (110a) 위로 그 콘텐츠를 순차적으로 시프트하도록 인에이블된다.
FSM (115) 은 또한, 직렬 입력 병렬 출력 (serial-in-parallel-out; SIPO) 시프트 레지스터 (325) 를 사용하여 유사한 방식으로 가상의 GPIO 신호들의 수신 세트를 역직렬화한다. 가상의 GPIO 신호들 (135) 의 수신 세트는 원격 프로세서에 의해 생성되고, 수신 라인 (110b) 상에서 원격 프로세서에 의해 송신된다. 가상의 GPIO 신호들 (135) 의 이 수신 세트는 외부 클록 (120) 의 사이클들에 응답하여 SIPO 시프트 레지스터 (325) 안으로 연속적으로 시프트된다. FSM (115) 은 본원에서 추가로 논의되는 바와 같이 별개의 시작 비트 및 종료 비트를 갖는 프레임들에서 가상의 GPIO 신호들 (135) 의 송신 세트를 송신하고 수신 세트를 수신하도록 구성된다.
프레임들은 미리정의된 사이즈를 갖는다. 일 실시형태에서, 프레임 사이즈는 소정 수의 비트들이 길도록 고정될 수도 있다. 가상의 GPIO 신호들의 송신 세트가 이 고정된 사이즈보다 작으면, 각 프레임 내의 미사용된 비트들은 값들을 신경쓰지 않을 수도 있다. 대안으로, 각각의 FSM (115) 은 소정 애플리케이션에 대해 필요한 비트들의 수에 따라 송신된 프레임들의 사이즈를 변경하도록 구성될 수도 있다.
가상의 GPIO 신호들 (135) 의 수신 세트에 대한 완전한 프레임의 수신을 검출하기 위해, FSM (115) 은 프레임에 대한 시작 비트의 수신 후에 외부 클록 (120) 에 대해 필요한 수의 사이클들을 카운트하는 로직 회로 (350) 를 포함할 수도 있다. 예를 들어, 수신 세트가 외부 클록 (120) 의 10 개의 사이클들에 응답하여 수신되는 10 개의 가상의 GPIO 신호들을 포함한다고 가정하자. 외부 클록 (120) 의 다른 10 개의 사이클들을 대기하고 시작 비트의 검출 후에, 로직 회로 (350) 는 그 후, 종료 비트의 수신을 예상할 것이다. 따라서, 종료 비트가 검출되면, 로직 회로 (350) 는 그 후 완전한 프레임으로서 SIPO 시프트 레지스터 (325) 안으로 시프트되었던 가상의 GPIO 신호들의 수신 세트를 병렬적으로 수신하기 위해 출력 래치 (351) 를 스트로브할 수도 있다. 가상의 GPIO 신호들의 래치된 수신 세트는 그 후, 멀티플렉싱 모듈 (300) 을 통해 GPIO 인터페이스 (103) 에 제시될 수도 있다.
PISO 시프트 레지스터 (315) 를 다시 참조하면, 이 레지스터가 시작 비트 및 종료 비트로 가상의 GPIO 신호들의 송신 세트를 프레이밍하도록 구성된다는 것을 인식할 것이다. 가상의 GPIO 신호들의 송신 세트는 따라서, 시작 비트 및 종료 비트에 의해 경계가 정해진 프레임에서 송신된다. 프로세서에 대한 송신 세트가 원격 프로세서에 대한 수신 세트가 되기 때문에, 이 수신 세트도 또한 따라서 프레이밍된다. 이 프레이밍은, 각각의 프로세서가 그 후 임의의 추가의 전용 핀들을 필요로 하지 않고 원격 프로세서의 헬스를 모니터링할 수 있다는 점에서 유리하다. 예를 들어, 각각의 FSM (115) 은 디폴트 상태 (가상의 GPIO 신호들의 송신 세트에 대한 이전 상태 대 현재 상태에서의 변화 없음) 동안 공급 전압으로 그 전용 송신 핀 (240) 을 약하게 잡아당기도록 (그리고 따라서, 송신 라인 (110a) 을 약하게 잡아당기도록) 구성될 수도 있다. FSM (115) 이 시작 비트의 송신을 위한 송신 라인 (110a) 을 그라운딩하도록 시작 비트는 이러한 실시형태에 대해 논리적 제로일 것이다. 이 방식에서, 각각의 FSM (115) 은 수신 라인 (110b) 이 그라운드를 향해 잡아당겨지는 것을 검출함으로써 시작 비트의 수신을 용이하게 검출할 수도 있다. 일 실시형태에서, 시작 비트 및 종료 비트는 서로의 논리적 보완 (logical complement) 들이다.
프로세서가 그 송신 라인 (110a) 을 그라운드로 부적합하게 잡아당기도록 프로세서가 실패했다는 가능성이 존재한다. 원격 프로세서는 따라서, 이것을 시작 비트로서 검출할 것이고, 로직 회로 (350) 는 따라서 프레임의 끝을 향해 카운팅을 시작할 것이다. 그러나, 각각의 FSM (115) 이 프레임 송신의 종료를 시그널링하기 위해 공급 전압으로 송신 라인 (110a) 을 충전하도록 본 실시형태에서 종료 비트는 논리적 1 이다. 원격 FSM 이 시작 비트인 것으로 간주되는 것을 검출하도록 프로세서가 실패하였으면, 로직 회로 (350) 는 종료 비트를 검출하지 않을 것이고 따라서 원격 프로세서의 실패를 그 프로세서에 통지할 것이다.
도 4 는 가상의 GPIO 프레임 (400) 의 송신 및 수신을 위한 외부 클록 (120) 에 대하여 예시적인 타이밍을 나타낸다. 수신을 위해 충분한 셋업 시간을 허용하기 위해, 제 1 클록 에지에 대하여 송신이 발생하고 나머지 클록 에지에 대하여 수신이 발생해야 한다. 예를 들어, PISO 시프트 레지스터 (315) 에서의 비트들은 외부 클록 (120) 에 대한 하강 에지들 또는 네거티브 에지들에 응답하여 송신 라인 (110a) 상에서 송신을 위해 시프트 아웃될 수도 있다. 반대로, 수신 라인 (110b) 상에서 수신된 비트들은 클록 (120) 의 상승 에지들 또는 포지티브 에지들에 응답하여 SIPO 시프트 레지스터 (325) 로 시프트될 수도 있다.
하나의 프로세서가 원격 프로세서에서 비활성 상태를 검출하기 위해, 각각의 FSM (115) 은 디폴트 상태 (여기서 송신할 프레임들이 없음) 에서 그 송신 라인을 하이로 약하게 잡아당기도록 구성될 수도 있다. 시작 비트 및 종료 비트는 반대의 논리적 상태들을 갖는다. 송신 라인 (110a) 이 그 송신을 위해 로우 (low) 로 잡아당겨지도록 시작 비트 (405) 가 따라서 제로일 수도 있는 반면에, 송신 라인 (110a) 이 그 송신을 위해 하이로 잡아당겨지도록 종료 비트 (410) 는 바이너리 1 값일 수도 있다. 도 3 을 다시 참조하면, 로직 회로 (350) 는 외부 클록 (120) 상의 상승 에지들에 대하여 수신 라인 (110b) 을 모니터링하도록 구성된다. 노-프레임 송신의 디폴트 로직 상태는 초기에 논의된 바와 같이 그 약한 풀-업 때문에 단순히 수신 라인 (110b) 이 하이로 남아 있는 것에 의해 표시된다. 외부 클록 (120) 에 대한 상승 에지들 중 하나에서 로직 회로 (350) 가, 수신 라인 (110b) 이 (시작 비트 (405) 의 제로 값을 나타내는) 로우로 잡아당겨지는 것을 검출하면, 로직 회로 (350) 는 미리 정의된 사이즈의 프레임 (400) 에 따라 충분한 수의 클록 사이클들을 대기한 후, 정지 비트 (410) 의 로직 하이 값을 검출한다. 정지 비트 (410) 의 수신은, 완전한 프레임 (400) 이 SIPO 시프트 레지스터 (325) 로 충분히 시프트되었다는 것을 로직 회로 (350) 에 나타낸다. 그 포인트에서, 로직 회로 (350) 는, 수신된 프레임이 래치 (351) 를 통해 멀티플렉싱 모듈 (300) 에 병렬적으로 제공되도록 SIPO 시프트 레지스터 (325) 를 스트로브한다. 가상의 GPIO 신호들의 수신 세트는 그 후, GPIO 인터페이스 (103) 를 통해 따라서 프로세서 코어에 제공될 수도 있다.
비교적 느린 외부 클록 (120), 예컨대 32 KHz 슬립 클록은 IPC 의 시그널링 요건에 대한 앰플 (ample) 이다. 예를 들어, 가상의 GPIO 신호들의 송신을 위한 최소 셋업 및 홀드 요건이 각각 2 나노초이고, 가상의 GPIO FSM 에서 외부 클록 (120) 의 수신을 위한 최소 예상된 리드 또는 래그가 6 나노초라고 가정하자. 외부 클록 (120) 에 대한 결과의 최대 주파수는 62 MHz 인 것이 쉽게 보여질 수 있다. 예컨대 슬립 클록으로부터의 32 kHz 주파수는 따라서, 이러한 실시형태에 대해 매우 많은 안정성을 제공할 것이다.
아키텍처 (101) 에 대한 동작의 방법은 도 5 의 플로우차트에서 요약된다. 이 방법은, 단계 500 에서 그 프로세서로부터 신호들의 세트를 수신하는 GPIO 인터페이스로 시작한다. GPIO 인터페이스로부터, 단계 505 에서 신호들의 세트는 그 후, FSM 에 제공된다. FSM 은 단계 510 에서 외부 클록의 사이클들에 응답하여 전용 송신 핀을 통해 신호들의 세트를 순차적으로 송신한다.
개시된 가상의 GPIO 아키텍처의 이점들을 고려하자: 단지 2 개의 핀들 및 공통 클록 소스가 필요하지만 임의의 수의 가상의 GPIO 신호들이 유한 상태 머신들을 통해 직렬화되고 역직렬화될 수 있다. 단지 한계는, 클록 래그 또는 리드의 임의의 예상된 양 및 외부 클록 (120) 에 대한 가상의 GPIO 신호들에 대한 타이밍 요건들이다. 더욱이, 하나의 프로세서의 헬스를 반대의 프로세서에 명백하게 만들기 위해 다른 핀들이 필요하지 않다.
당업자는 이제, 한편으로 특정 애플리케이션에 따라 본 발명의 사상 및 범위로부터 벗어남 없이 본 개시물의 디바이스들의 사용의 물질들, 장치, 구성들 및 방법들에서 그리고 이들에 대해 많은 변경들, 치환들 및 변형들이 이루어질 수 있음을 인식할 것이다. 이 관점에서, 본 개시물의 범위는 실시형태들이 단지 본 발명의 일부 예들의 방식에 의한 것이기 때문에 본원에 예시되고 설명된 특정 실시형태들에 제한되지 않아야 하고, 차라리 이하에 첨부된 청구항들 및 그 기능적 등가물들에 충분히 상응해야 한다.

Claims (19)

  1. 집적 회로로서,
    프로세서;
    복수의 GPIO (general purpose input/output) 핀들;
    상기 프로세서로부터 GPIO 신호들의 제 1 세트 및 상기 프로세서로부터 GPIO 신호들의 제 2 세트를 수신하도록 구성된 GPIO 인터페이스로서, 상기 GPIO 인터페이스는 또한, 상기 GPIO 핀들 중 대응하는 핀들을 통해 원격 프로세서로 상기 GPIO 신호들의 제 2 세트를 송신하도록 구성되는, 상기 GPIO 인터페이스;
    전용 송신 핀; 및
    상기 GPIO 인터페이스로부터 상기 GPIO 신호들의 제 1 세트를 수신하고, 상기 전용 송신 핀을 통해 상기 원격 프로세서로 가상의 GPIO 신호들의 송신 세트로서 상기 GPIO 신호들의 제 1 세트를 순차적으로 송신하도록 구성된 유한 상태 머신 (finite state machine; FSM) 을 포함하는, 집적 회로.
  2. 제 1 항에 있어서,
    전용 수신 핀을 더 포함하고,
    상기 FSM 은 또한, 상기 전용 수신 핀을 통해 상기 원격 프로세서로부터 가상의 GPIO 신호들의 수신 세트를 순차적으로 수신하고, 상기 가상의 GPIO 신호들의 수신 세트를 상기 GPIO 인터페이스에 제공하도록 구성되는, 집적 회로.
  3. 제 1 항에 있어서,
    상기 프로세서는 애플리케이션 프로세서를 포함하는, 집적 회로.
  4. 제 1 항에 있어서,
    상기 프로세서는 모뎀 프로세서를 포함하는, 집적 회로.
  5. 제 2 항에 있어서,
    상기 FSM 은 병렬 입력 직렬 출력 (parallel-in-serial-out; PISO) 시프트 레지스터 및 직렬 입력 병렬 출력 (serial-in-parallel-out; SIPO) 시프트 레지스터를 포함하는, 집적 회로.
  6. 제 1 항에 있어서,
    상기 FSM 은 또한, 시작 비트 및 종료 비트에 의해 경계가 지어진 프레임에서 상기 가상의 GIPO 신호들의 송신 세트를 순차적으로 송신하도록 구성되는, 집적 회로.
  7. 제 2 항에 있어서,
    상기 FSM 은 또한, 시작 비트 및 종료 비트에 의해 경계가 지어진 프레임에서 상기 가상의 GPIO 신호들의 수신 세트를 순차적으로 수신하도록 구성되는, 집적 회로.
  8. 제 7 항에 있어서,
    상기 FSM 은 또한, 상기 프레임에 대한 상기 종료 비트를 수신하는 것의 실패를 검출함으로써 상기 원격 프로세서의 실패를 검출하도록 구성되는, 집적 회로.
  9. 제 2 항에 있어서,
    상기 FSM 은 클록에 대한 제 1 클록 에지들에 응답하여 상기 가상의 GPIO 신호들의 송신 세트를 순차적으로 송신하고, 상기 클록에 대한 반대의 제 2 클록 에지들에 응답하여 상기 가상의 GPIO 신호들의 수신 세트를 순차적으로 수신하도록 구성되는, 집적 회로.
  10. 제 9 항에 있어서,
    상기 제 1 클록 에지들은 상승 클록 에지들이고, 상기 제 2 클록 에지들은 하강 클록 에지들인, 집적 회로.
  11. 제 1 항에 있어서,
    상기 FSM 은 또한, 상기 가상의 GPIO 신호들의 송신 세트에 대한 이전 상태에 현재 상태를 비교하도록 구성되고,
    상기 FSM 은 또한, 상기 현재 상태가 상기 이전 상태와의 비교에서 변한 경우 상기 송신 세트를 순차적으로 송신하도록 구성되고, 상기 FSM 은 또한, 상기 현재 상태가 상기 이전 상태와의 비교에서 변하지 않은 경우 상기 전용 송신 핀 상에서 디폴트 로직 상태를 유지하도록 구성되는, 집적 회로.
  12. 제 11 항에 있어서,
    상기 FSM 은 또한, 시작 비트 및 종료 비트에 의해 경계가 지어진 프레임에서 상기 가상의 GPIO 신호들의 송신 세트를 순차적으로 송신하도록 구성되고,
    상기 시작 비트는 상기 디폴트 로직 상태와 상이한 로직 상태를 갖는, 집적 회로.
  13. 제 12 항에 있어서,
    상기 종료 비트는 상기 디폴트 로직 상태를 포함하는, 집적 회로.
  14. GPIO 인터페이스에서, 프로세서로부터 GPIO 신호들의 제 1 세트를 수신하고상기 프로세서로부터 GPIO 신호들의 제 2 세트를 수신하는 단계;
    상기 GPIO 인터페이스로부터, 상기 GPIO 신호들의 제 2 세트를 대응하는 GPIO 핀들을 통해 원격 프로세서로 송신하는 단계;
    상기 GPIO 인터페이스로부터, 상기 GPIO 신호들의 제 1 세트를 병렬적으로 유한 상태 머신 (FSM) 에 제공하는 단계; 및
    상기 FSM 에서, 전용 송신 핀을 통해 상기 원격 프로세서로 가상의 GPIO 신호들의 송신 세트로서 상기 GPIO 신호들의 제 1 세트를 순차적으로 송신하는 단계를 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 FSM 에서, 전용 수신 핀을 통해 상기 원격 프로세서로부터 가상의 GPIO 신호들의 수신 세트를 순차적으로 수신하는 단계;
    상기 FSM 으로부터, 상기 가상의 GPIO 신호들의 수신 세트를 병렬적으로 상기 GPIO 인터페이스에 제공하는 단계; 및
    상기 GPIO 인터페이스로부터, 상기 가상의 GPIO 신호들의 수신 세트를 병렬적으로 GPIO 신호들의 제 3 세트로서 상기 프로세서에 제공하는 단계를 더 포함하는, 방법.
  16. 집적 회로로서,
    프로세서;
    복수의 GPIO 핀들;
    상기 프로세서로부터 GPIO 신호들의 제 1 세트를 수신하고, 상기 GPIO 핀들 중 대응하는 GPIO 핀들을 통해 원격 프로세서로 제 1 GPIO 신호들로서 상기 GPIO 신호들의 제 1 세트의 부분을 송신하도록 구성된 GPIO 인터페이스;
    전용 송신 핀; 및
    상기 GPIO 인터페이스로부터 상기 GPIO 신호들의 제 1 세트의 나머지 부분을 수신하고, 상기 전용 송신 핀을 통해 상기 원격 프로세서로 가상의 GPIO 신호들의 송신 세트로서 상기 나머지 부분을 순차적으로 송신하기 위한 제 1 수단을 포함하는, 집적 회로.
  17. 제 16 항에 있어서,
    전용 수신 핀, 및
    상기 전용 수신 핀을 통해 상기 원격 프로세서로부터 가상의 GPIO 신호들의 수신 세트를 순차적으로 수신하고, 상기 가상의 GPIO 신호들의 수신 세트를 병렬적으로 상기 GPIO 인터페이스에 제시하기 위한 제 2 수단을 더 포함하는, 집적 회로.
  18. 제 17 항에 있어서,
    상기 GPIO 인터페이스는 또한, GPIO 신호들의 제 3 세트를 상기 프로세서에 제공하도록 구성되고,
    상기 GPIO 신호들의 제 3 세트는 상기 원격 프로세서로부터의 GPIO 신호들의 세트 및 상기 가상의 GPIO 신호들의 수신 세트를 포함하는, 집적 회로.
  19. 제 16 항에 있어서,
    상기 프로세서는 모바일 전화기에서의 애플리케이션 프로세서를 포함하는, 집적 회로.
KR1020167027828A 2012-10-15 2013-10-15 가상의 gpio KR101750672B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261714118P 2012-10-15 2012-10-15
US61/714,118 2012-10-15
US13/750,839 US9129072B2 (en) 2012-10-15 2013-01-25 Virtual GPIO
US13/750,839 2013-01-25
PCT/US2013/065017 WO2014062661A1 (en) 2012-10-15 2013-10-15 Virtual gpio

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012514A Division KR101665985B1 (ko) 2012-10-15 2013-10-15 가상의 gpio

Publications (2)

Publication Number Publication Date
KR20160120806A KR20160120806A (ko) 2016-10-18
KR101750672B1 true KR101750672B1 (ko) 2017-06-23

Family

ID=50476494

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167027828A KR101750672B1 (ko) 2012-10-15 2013-10-15 가상의 gpio
KR1020157012514A KR101665985B1 (ko) 2012-10-15 2013-10-15 가상의 gpio

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157012514A KR101665985B1 (ko) 2012-10-15 2013-10-15 가상의 gpio

Country Status (6)

Country Link
US (2) US9129072B2 (ko)
EP (1) EP2907035A1 (ko)
JP (1) JP6074052B2 (ko)
KR (2) KR101750672B1 (ko)
CN (2) CN104737148B (ko)
WO (1) WO2014062661A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129072B2 (en) 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US9417801B2 (en) * 2014-03-27 2016-08-16 Intel Corporation Virtual general-purpose I/O controller
US9619427B2 (en) * 2014-04-21 2017-04-11 Qualcomm Incorporated Hybrid virtual GPIO
US9880965B2 (en) 2014-09-11 2018-01-30 Qualcomm Incorporated Variable frame length virtual GPIO with a modified UART interface
EP3117330A1 (en) * 2014-11-13 2017-01-18 Qualcomm Incorporated Clockless virtual gpio
JP2018504714A (ja) 2015-02-04 2018-02-15 クアルコム,インコーポレイテッド 電圧モードおよび電流モードデバイスエニュマレーション
US9563398B2 (en) 2015-03-06 2017-02-07 Qualcomm Incorporated Impedance-based flow control for a two-wire interface system with variable frame length
US9971666B2 (en) 2015-03-06 2018-05-15 Qualcomm Incorporated Technique of link state detection and wakeup in power state oblivious interface
US10146727B2 (en) 2015-04-14 2018-12-04 Qualcomm Incorporated Enhanced virtual GPIO with multi-mode modulation
US10241953B2 (en) * 2015-08-07 2019-03-26 Qualcomm Incorporated Dynamic data-link selection over common physical interface
US10140242B2 (en) 2015-09-10 2018-11-27 Qualcomm Incorporated General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
US20170168966A1 (en) * 2015-12-10 2017-06-15 Qualcomm Incorporated Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces
CN105553557B (zh) * 2015-12-16 2019-04-19 华进半导体封装先导技术研发中心有限公司 光纤通信光接收单元结构
US10180925B2 (en) 2016-03-28 2019-01-15 Nxp Usa, Inc. Integrated circuit with pin level access to IO pins
US20180329837A1 (en) * 2017-05-10 2018-11-15 Qualcomm Incorporated Input/output direction decoding in mixed vgpio state exchange
CN109857485B (zh) * 2019-01-28 2021-06-15 山东华芯半导体有限公司 一种可编程gpio装置及基于该装置的时序实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998054664A1 (en) 1997-05-30 1998-12-03 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
EP2309395A1 (en) 2008-07-31 2011-04-13 Actions Semiconductor Co., Ltd. Method for realizing pins time share multiplexing and a system-on-a-chip

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6020760A (en) * 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
JP2003527755A (ja) * 1998-05-08 2003-09-16 シー・ポート・コーポレーション ディジタル通信プロセッサ
CN1149794C (zh) * 1999-07-27 2004-05-12 信息产业部武汉邮电科学研究院 以太网直接与物理信道适配的接口装置和方法
AU1458501A (en) * 1999-11-05 2001-06-06 Analog Devices, Inc. Generic serial port architecture and system
US6980563B2 (en) 2000-04-13 2005-12-27 International Business Machines Corporation Method and system for fast ethernet serial port multiplexing to reduce I/O pin count
US7613599B2 (en) * 2000-06-02 2009-11-03 Synopsys, Inc. Method and system for virtual prototyping
WO2003021600A2 (en) * 2001-08-29 2003-03-13 Analog Devices, Inc. Methods and apparatus utilizing flash burst mode to improve processor performance
KR20030019744A (ko) * 2001-08-30 2003-03-07 엘지전자 주식회사 개인휴대용 정보단말기의 외부 인터페이스장치 및인터페이스방법
US20040127207A1 (en) * 2002-09-25 2004-07-01 Interdigital Technology Corporation Programmable radio interface
US7131077B1 (en) * 2003-03-28 2006-10-31 Xilinx, Inc Using an embedded processor to implement a finite state machine
CN100351827C (zh) * 2004-04-13 2007-11-28 联发科技股份有限公司 引脚共用系统
US7484027B1 (en) * 2004-09-20 2009-01-27 Cypress Semiconductor Corporation Apparatus and method for configurable device pins
US7461210B1 (en) * 2006-04-14 2008-12-02 Tilera Corporation Managing set associative cache memory according to entry type
US7991296B1 (en) * 2006-11-10 2011-08-02 Marvell International Ltd. Method and apparatus for data frame synchronization and delineation
CN101809556B (zh) 2007-08-02 2013-03-06 快捷半导体有限公司 横跨串行流交织和串行化/去串行化lcd、照相机、键区和gpio数据的方法和电路
US8249616B2 (en) * 2007-08-23 2012-08-21 Texas Instruments Incorporated Satellite (GPS) assisted clock apparatus, circuits, systems and processes for cellular terminals on asynchronous networks
GB2462997B (en) 2008-04-23 2010-09-08 Wolfson Microelectronics Plc Method and apparatus for configuring a device
CN101706552B (zh) * 2009-07-02 2011-09-28 苏州国芯科技有限公司 支持芯片不同引脚封装的可配置式片上测试模块
EP2330514B1 (en) 2009-12-07 2018-12-05 STMicroelectronics (Research & Development) Limited An integrated circuit package
TWI406135B (zh) 2010-03-09 2013-08-21 Nuvoton Technology Corp 資料傳輸系統與可編程序列周邊介面控制器
US8433838B2 (en) 2010-09-17 2013-04-30 International Business Machines Corporation Remote multiplexing devices on a serial peripheral interface bus
US9092393B2 (en) 2011-03-11 2015-07-28 Skyworks Solutions, Inc. Dual mode serial/parallel interface and use thereof in improved wireless devices and switching components
US9904646B2 (en) * 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller
CN103092810B (zh) * 2011-11-02 2017-03-01 飞思卡尔半导体公司 处理器、对处理器编程的方法以及电子设备
US9129072B2 (en) 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998054664A1 (en) 1997-05-30 1998-12-03 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
EP2309395A1 (en) 2008-07-31 2011-04-13 Actions Semiconductor Co., Ltd. Method for realizing pins time share multiplexing and a system-on-a-chip

Also Published As

Publication number Publication date
US20150356053A1 (en) 2015-12-10
CN107273329A (zh) 2017-10-20
WO2014062661A1 (en) 2014-04-24
KR20150070291A (ko) 2015-06-24
CN107273329B (zh) 2020-07-17
US9129072B2 (en) 2015-09-08
US9582456B2 (en) 2017-02-28
KR20160120806A (ko) 2016-10-18
CN104737148A (zh) 2015-06-24
JP2016500174A (ja) 2016-01-07
JP6074052B2 (ja) 2017-02-01
EP2907035A1 (en) 2015-08-19
CN104737148B (zh) 2017-09-05
KR101665985B1 (ko) 2016-10-13
US20140108679A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
KR101750672B1 (ko) 가상의 gpio
JP6538715B2 (ja) ハイブリッド仮想gpio
US10241953B2 (en) Dynamic data-link selection over common physical interface
US10140242B2 (en) General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
US9880965B2 (en) Variable frame length virtual GPIO with a modified UART interface
US9747244B2 (en) Clockless virtual GPIO
CN108604219B (zh) 具有最优传输等待时间的串行通信链路
CN102063356B (zh) 一种多中央处理单元cpu心跳检测系统及方法
US5619703A (en) Apparatus and method for supporting multiple interrupt protocols with unequal number of interrupt request signals
WO2017171997A1 (en) A method, apparatus and system for communicating between multiple protocols
CN107436856B (zh) 具有直接控制的通信装置及相关方法
CN105335322A (zh) 一种spi接口转换i2c总线接口的方法及转换器
CN105426331A (zh) Phy芯片的管理系统及phy芯片的管理方法
US9710352B2 (en) Microcontroller with integrated monitoring capabilities for network applications
EP3117330A1 (en) Clockless virtual gpio

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant