KR20220114656A - 다수의 통신 칩들 사이의 링크 관리를 위한 시스템 - Google Patents

다수의 통신 칩들 사이의 링크 관리를 위한 시스템 Download PDF

Info

Publication number
KR20220114656A
KR20220114656A KR1020227026185A KR20227026185A KR20220114656A KR 20220114656 A KR20220114656 A KR 20220114656A KR 1020227026185 A KR1020227026185 A KR 1020227026185A KR 20227026185 A KR20227026185 A KR 20227026185A KR 20220114656 A KR20220114656 A KR 20220114656A
Authority
KR
South Korea
Prior art keywords
integrated circuit
soc
activity
authorization request
perform
Prior art date
Application number
KR1020227026185A
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 KR20220114656A publication Critical patent/KR20220114656A/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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/0038System on Chip
    • 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/40Bus coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

실시예들은 전자 디바이스의 다른 집적 회로와의 활동들을 조정하는 전자 디바이스의 집적 회로에 관한 것이다. 집적 회로는 인터페이스 회로 및 프로세서 회로를 포함한다. 인터페이스 회로는 다수의 전자 컴포넌트들에 연결된 멀티드롭 버스를 통해 통신한다. 프로세서 회로는 인터페이스 회로 및 멀티드롭 버스를 통해 집적 회로로부터 인가 요청을 수신한다. 수신된 인가 요청은 다른 집적 회로 상에서의 활동을 수행하기 위한 인가에 관련된다. 인가 요청을 수신하는 것에 응답하여, 프로세서 회로는 다른 집적 회로가 활동을 실행하도록 인가되는지 여부를 결정한다. 다른 집적 회로가 활동을 실행하도록 인가된다고 결정하는 것에 응답하여, 프로세서 회로는 구성가능 직접 연결을 통해 다른 집적 회로에, 다른 집적 회로가 활동을 실행할 것을 인가하는 인가 신호를 전송한다.

Description

다수의 통신 칩들 사이의 링크 관리를 위한 시스템
본 개시내용은 전자 디바이스에서 다수의 집적 회로(integrated circuit, IC) 칩들의 동작들을 조정하는 것에 관한 것이다.
전자 디바이스들은 다양한 통신 프로토콜들을 사용하여 다른 디바이스들과 통신하기 위한 다수의 시스템 온 칩(systems on chip, SOC)들을 포함할 수 있다. 통신 시스템의 기능성은 증가하면서 전자 디바이스 내의 통신 시스템의 크기는 더 작아짐에 따라, 더 많은 SOC들이 전자 디바이스에 통합되거나 더 많은 서브시스템들이 각각의 SOC에 추가된다. 이들 SOC는 데이터를 송신하기 위해 전용 통신 경로(예를 들어, PCIe(peripheral component interconnect express))를 통해 호스트(예를 들어, 중앙 프로세서 또는 애플리케이션 프로세서)와 통신할 수 있다.
다수의 통신 시스템들 및 다른 서브시스템들을 전자 디바이스에 통합한 결과, 다양한 이슈들 또는 문제들이 발생할 수 있다. 이들 이슈 또는 문제는, 무엇보다도, 자원 사용의 관점에서의 충돌, 공유되거나 중첩되는 통신 대역들에서의 간섭, 상호 양립불가능한 동작 모드들, 안테나들 사이의 격리, 및 다양한 동시에 활성인 SOC들 간의 송신 전력 관리를 포함한다. 종래의 전자 디바이스들에서, 이들 이슈 또는 문제는 일반적으로, 중앙 프로세서가 다수의 SOC들에 걸쳐 동작들을 조정함으로써 문제 상황들을 해결하도록 하는 것에 의해 SOC들의 동작들을 조정함으로써 해결된다.
실시예들은 전자 디바이스의 다른 집적 회로(예를 들어, 다른 SOC)와의 활동들을 조정하는 전자 디바이스의 집적 회로(예를 들어, SOC)에 관한 것이다. SOC는 인터페이스 회로 및 프로세서 회로를 포함한다. 인터페이스 회로는 전자 디바이스 내의 하나 이상의 통신 칩들(예를 들어, SOC들)에 연결된 멀티드롭 버스(multi-drop bus) 또는 점대점 연결(point-to-point connection)을 통해 통신한다. 프로세서 회로는 다른 SOC로부터 인터페이스 회로 및/또는 멀티드롭 버스(또는 점대점 연결)를 통해 인가 요청을 수신하고, 인가 요청은 다른 SOC 상에서의 활동을 수행하기 위한 인가를 구한다(seek). 프로세서 회로는, 인가 요청을 수신하는 것에 응답하여 다른 SOC가 활동을 실행하도록 인가되는지 여부를 결정한다. 다른 SOC가 활동을 실행하도록 인가된다고 결정하는 것에 응답하여, 프로세서 회로는 다른 SOC가 활동을 실행할 것을 인가하는 인가 신호를, 구성가능 직접 연결을 통해, 다른 SOC에 전송한다. 다른 SOC는 또한, SOC를 대신하여 활동을 실행하도록 인가될 수 있다.
도 1은 일 실시예에 따른 전자 디바이스의 고레벨 도면이다.
도 2는 일 실시예에 따른, 멀티드롭 버스 및 구성가능 직접 연결들을 통해 통신하는 전자 디바이스의 컴포넌트들을 예시하는 블록도이다.
도 3은 일 실시예에 따른 공존 허브 디바이스(coexistence hub device)를 예시하는 블록도이다.
도 4는 일 실시예에 따른 SOC의 블록도이다.
도 5는 일 실시예에 따른, 멀티드롭 버스 및 구성가능 직접 연결들을 사용하여 한 쌍의 SOC들의 동작들을 조정하는 블록도이다.
도 6은 일 실시예에 따른, 전자 디바이스 내의 컴포넌트들의 동작들 및 상호작용들을 예시하는 상호작용 도면이다.
도 7은 일 실시예에 따른, 전자 디바이스 내의 컴포넌트들의 조정을 예시하는 타이밍도이다.
도 8a는 일 실시예에 따른, 멀티드롭 버스 및 구성가능 직접 연결들을 사용하여 자원에 액세스하기 위한 한 쌍의 SOC들의 동작들을 조정하는 블록도이다.
도 8b는 일 실시예에 따른, 도 8a로부터의 컴포넌트들의 조정을 예시하는 타이밍도이다.
도 9a는 일 실시예에 따른, 멀티드롭 버스 및 구성가능 직접 연결들을 사용하여 공유(상호 종속적(codependent)) 자원에 액세스하기 위한 한 쌍의 SOC들의 동작들을 조정하는 블록도이다.
도 9b는 일 실시예에 따른, 도 9a로부터의 컴포넌트들의 조정을 예시하는 타이밍도이다.
도 10은 일 실시예에 따른, 전자 디바이스의 컴포넌트들 사이의 동작들을 조정하는 프로세스를 예시하는 흐름도이다.
도면들은 오로지 예시의 목적을 위해 다양한 비제한적 실시예들을 도시하고 발명을 실시하기 위한 구체적인 내용은 오로지 예시의 목적을 위해 다양한 비제한적 실시예들을 설명한다.
이제, 실시예들이 상세하게 참조될 것이며, 그 실시예들의 예들이 첨부 도면들에 예시된다. 하기의 상세한 설명에서, 많은 구체적인 상세사항들이 다양하게 설명된 실시예들의 완전한 이해를 제공하기 위해 기재된다. 그러나, 설명된 실시예들은 이러한 구체적인 세부사항들 없이 실시될 수 있다. 다른 예시들에서, 잘 알려진 방법들, 절차들, 컴포넌트들, 회로들, 및 네트워크들은 실시예들의 양태들을 불필요하게 모호하게 하지 않기 위해 상세히 설명되지 않았다.
실시예들은 멀티드롭 버스(또는 점대점 연결) 및 구성가능 직접 연결을 통해 서로 통신하는 제1 집적 회로(예를 들어, 제1 SOC) 및 제2 집적 회로(예를 들어, 제2 SOC 또는 공존 허브 디바이스)를 포함하는 전자 디바이스의 통신 시스템 내의 서브시스템들의 동작들을 조정하는 것에 관한 것이다. 제2 집적 회로는 멀티드롭 버스를 통해 제1 집적 회로로부터 인가 요청을 수신할 수 있으며, 여기서 인가 요청은 제2 집적 회로의 하나 이상의 자원들을 사용하여 제1 집적 회로 상에서의 활동을 수행하기 위한 인가를 구한다. 제2 집적 회로가, 제1 집적 회로가 활동을 실행하도록 인가되는지 여부를 결정한 후, 제2 집적 회로는 구성가능 직접 연결을 통해 제1 집적 회로에, 제1 집적 회로가 활동을 실행하는 것을 인가하는 인가 신호 또는 제1 집적 회로가 활동을 실행하는 것을 거부하는 거부 신호를 전송할 수 있다. 하나 이상의 실시예들에서, 제1 집적 회로는 활동을 실행하기 위한 가정된 인가를 진행한다. 그러한 경우에, 제1 집적 회로는 제2 집적 회로에 의한 암시된 응답을 가정하여 제1 집적 회로의 의도된 액션(action)을 제2 집적 회로에 단순히 통지할 수 있다. 하나 이상의 다른 실시예들에서, 제1 집적 회로는 활동의 실행을 위한 인가를 구하는 인가 요청을 멀티드롭 버스(또는 점대점 연결)를 통해 제2 집적 회로에 전송하고, 조건들이 허락되는 경우, 제1 집적 회로는 활동을 완료하기 위해 제2 집적 회로에 의존할 수 있다.
예시적인 전자 디바이스
전자 디바이스들, 그러한 디바이스들에 대한 사용자 인터페이스들, 및 그러한 디바이스들을 사용하기 위한 연관된 프로세스들의 실시예들이 설명된다. 일부 실시예들에서, 디바이스는 PDA(personal digital assistant) 및/또는 음악 재생기 기능들과 같은 다른 기능들을 또한 포함하는 휴대용 통신 디바이스, 예컨대 모바일 전화기이다. 휴대용 다기능 디바이스들의 예시적인 실시예들은 미국 캘리포니아주 쿠퍼티노 소재의 Apple Inc.로부터의 iPhone®, iPod Touch®, Apple Watch®, 및 iPad® 디바이스들을 제한 없이 포함한다. 웨어러블(wearable)들, 랩톱들 또는 태블릿 컴퓨터들과 같은 다른 휴대용 전자 디바이스들이 선택적으로 사용된다. 일부 실시예들에서, 디바이스는 휴대용 통신 디바이스가 아니라, 휴대용 용도를 위해 설계되지 않은 데스크톱 컴퓨터 또는 다른 컴퓨팅 디바이스이다. 일부 실시예들에서, 개시되는 전자 디바이스는 터치 감응형 표면(예컨대, 터치 스크린 디스플레이 및/또는 터치패드)을 포함할 수 있다. 도 1과 관련하여 아래에서 설명되는 예시적인 전자 디바이스(예컨대, 디바이스(100))는 사용자 입력을 수신하기 위한 터치 감응형 표면을 포함할 수 있다. 전자 디바이스는 또한 물리적 키보드, 마우스 및/또는 조이스틱과 같은 하나 이상의 다른 물리적 사용자 인터페이스 디바이스들을 포함할 수 있다.
도 1은 일 실시예에 따른 전자 디바이스(100)의 고레벨 도면이다. 디바이스(100)는 "홈" 또는 메뉴 버튼(104)과 같은 하나 이상의 물리적 버튼들을 포함할 수 있다. 메뉴 버튼(104)은, 예를 들어, 디바이스(100) 상에서 실행되는 애플리케이션들의 세트 내의 임의의 애플리케이션으로 내비게이팅하는 데 사용된다. 일부 실시예들에서, 메뉴 버튼(104)은 메뉴 버튼(104) 상의 지문을 식별하는 지문 센서를 포함한다. 지문 센서는 메뉴 버튼(104) 상의 손가락이 디바이스(100)를 잠금해제하기 위해 저장된 지문과 매칭하는 지문을 갖는지의 여부를 결정하는 데 사용될 수 있다. 대안적으로, 일부 실시예들에서, 메뉴 버튼(104)은 터치 스크린 상에 디스플레이된 그래픽 사용자 인터페이스(GUI)에서 소프트 키로서 구현된다.
일부 실시예들에서, 디바이스(100)는 터치 스크린(150), 메뉴 버튼(104), 디바이스로의 전력을 공급/차단하고 디바이스를 잠그기 위한 푸시 버튼(106), 볼륨 조절 버튼들(108), 가입자 식별 모듈(Subscriber Identity Module, SIM) 카드 슬롯(110), 헤드셋 잭(112), 및 도킹/충전 외부 포트(124)를 포함한다. 푸시 버튼(106)은, 버튼을 누르고 미리 정의된 시간 간격 동안 버튼을 누른 상태로 유지함으로써 디바이스 상에서 전원을 턴 온/오프시키고; 버튼을 누르고 미리 정의된 시간 간격이 경과하기 전에 버튼을 누름해제함으로써 디바이스를 잠그고; 그리고/또는 디바이스를 잠금해제하거나 잠금해제 프로세스를 개시하는 데 사용될 수 있다. 대안적인 실시예에서, 디바이스(100)는 또한 마이크로폰(113)을 통해 일부 기능들의 활성화 또는 비활성화를 위한 구두 입력을 수용한다. 디바이스(100)는, 메모리(이는 하나 이상의 컴퓨터 판독가능 저장 매체들을 포함할 수 있음), 메모리 제어기, 하나 이상의 중앙 프로세싱 유닛(CPU)들, 주변기기 인터페이스, RF 회로부, 오디오 회로부, 스피커(111), 마이크로폰(113), 입출력(I/O) 서브시스템, 및 다른 입력 또는 제어 디바이스들을 포함하지만 이들로 제한되지 않는 다양한 컴포넌트들을 포함한다. 디바이스(100)는 하나 이상의 이미지 센서들(164), 하나 이상의 근접 센서들(166), 및 하나 이상의 가속도계들(168)을 포함할 수 있다. 디바이스(100)는 하나 초과의 타입의 이미지 센서들(164)을 포함할 수 있다. 각각의 타입은 하나 초과의 이미지 센서(164)를 포함할 수 있다. 예를 들어, 하나의 유형의 이미지 센서들(164)은 카메라들일 수 있고, 다른 유형의 이미지 센서들(164)은 얼굴 인식을 위해 사용될 수 있는 적외선 센서들일 수 있다. 추가적으로 또는 대안적으로, 이미지 센서들(164)은 상이한 렌즈 구성과 연관될 수 있다. 예를 들어, 디바이스(100)는 후방 이미지 센서들 - 하나는 광각 렌즈를 갖고 다른 하나는 망원 렌즈를 가짐 - 을 포함할 수 있다. 디바이스(100)는 주변 광 센서, 도트 프로젝터(dot projector) 및 플러드 조명기(flood illuminator)와 같은 도 1에 도시되지 않은 컴포넌트들을 포함할 수 있다.
디바이스(100)는 전자 디바이스의 일례일 뿐이고, 디바이스(100)는 위에 열거된 것보다 더 많거나 더 적은 컴포넌트들을 가질 수 있으며, 이들 중 일부는 컴포넌트로 조합되거나 상이한 구성 또는 배열을 가질 수 있다. 위에 열거된 디바이스(100)의 다양한 컴포넌트들은, 하나 이상의 신호 처리 및/또는 주문형 집적 회로(application specific integrated circuit, ASIC)들을 비롯한, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현된다. 도 1의 컴포넌트들이 일반적으로 터치 스크린(150)과 동일한 측에 위치된 것으로 도시되어 있지만, 하나 이상의 컴포넌트들은 또한 디바이스(100)의 대향 측 상에 위치될 수 있다. 예를 들어, 디바이스(100)의 전면은 얼굴 인식을 위한 적외선 이미지 센서(164) 및 디바이스(100)의 전방 카메라로서의 다른 이미지 센서(164)를 포함할 수 있다. 디바이스(100)의 배면은 또한, 디바이스(100)의 후방 카메라들로서의 추가의 이미지 센서들(164)을 포함할 수 있다.
전자 디바이스 내의 예시적인 통신 시스템
도 2는 일 실시예에 따른, 멀티드롭 버스(220)를 통해 통신하는 전자 디바이스(100)의 컴포넌트들을 예시하는 블록도이다. 전자 디바이스(100)는, 다른 컴포넌트들 중에서도, 애플리케이션 프로세서(208)(본 명세서에서 "중앙 프로세서"로도 지칭됨), 공존 허브 디바이스(212)(본 명세서에서 "공존 허브 디바이스"로도 지칭됨), SOC들(234A 내지 234N)(본 명세서에서 "SOC들(234)"로 총칭됨), 센서 디바이스(216), 멀티드롭 버스(220), 및 패브릭(fabric)들(222A 내지 222N)(본 명세서에서 "패브릭들(222)"로 총칭됨)을 포함할 수 있다. 도 2에 예시된 컴포넌트들은 전자 디바이스(100) 내의 통신 서브시스템의 일부일 수 있다. 전자 디바이스(100)는 도 2에 예시되지 않은 추가 컴포넌트들(예를 들어, 사용자 인터페이스들)을 포함할 수 있다.
애플리케이션 프로세서(208)는 다양한 동작들을 실행하기 위한 전자 디바이스(100) 내의 프로세싱 회로이다. 애플리케이션 프로세서(208)는 이미지들을 프로세싱하고, 보안 동작들을 수행하고, 기계 학습 동작들을 수행하고, 오디오 신호들을 프로세싱하는 것과 같은 특수 기능들을 수행하기 위한 전용 하드웨어 회로들뿐만 아니라 다양한 소프트웨어 프로그램들을 실행하기 위한 하나 이상의 프로세싱 코어들을 포함할 수 있다. 애플리케이션 프로세서(208)는 또한, 공존 허브 디바이스(212), SOC들(234) 및 센서 디바이스(216)를 포함하는 전자 디바이스(100) 내의 다른 컴포넌트들의 동작들을 조정하기 위한 동작들을 실행할 수 있다. 애플리케이션 프로세서(208)는 주어진 SOC의 단대단(end-to-end) 기능적 거동에 필수적인 펌웨어 또는 하드웨어를 포함할 수 있다. 예를 들어, SOC(234C)는 완전히 독립적이지 않을 수 있고, SOC(234C)는, 예를 들어, SOC(234B)와 통신할 때 공존 및 상위 계층 소프트웨어 지원으로 SOC(234C)를 보조하기 위해 멀티드롭 버스(220)에 인게이징(engaging)하도록 애플리케이션 프로세서(208)에 의존할 수 있다. 애플리케이션 프로세서(208)는 애플리케이션 프로세서(208)가 전력 소비를 절약하기 위해 그의 컴포넌트들의 대부분을 턴오프하는 저전력 모드, 및 그의 컴포넌트들의 대부분이 활성인 고전력 모드를 포함하는 다수의 전력 모드들에서 동작할 수 있다. 애플리케이션 프로세서(208)는 또한, 별도의 SOC로서 또한 구현될 수 있는 하나 이상의 통신 컴포넌트들(예를 들어, 셀룰러 모뎀)을 통합할 수 있다.
공존 허브 디바이스(212)는, 전자 디바이스(100)내의 통신 시스템(예를 들어, 공존 허브 디바이스(212) 및 SOC들(234)을 포함함) 및 관련 컴포넌트들(예를 들어, 센서 디바이스(216))의 동작들을 조정하는, 하드웨어, 소프트웨어 펌웨어 또는 이들의 조합이다. 이러한 목적을 위해, 공존 허브 디바이스(212)는 통신 시스템 및 관련 컴포넌트들의 동작들을 정의 및/또는 조정하기 위한 동작 정책을 저장하고 실행한다. 공존 허브 디바이스(212)는 또한, 애플리케이션 프로세서(208)뿐만 아니라 멀티드롭 버스(220) 상의 다른 클라이언트들(예를 들어, SOC들(234) 및/또는 센서 디바이스(216))과의 그의 액션들을 조정하기 위해, 멀티드롭 버스(220) 상에서 사전 예방적 역할을 할 수 있다. 동작 정책은, 예를 들어, 통신 시스템의 동작 조건들과 같은 인자들에 기초하여 통신 시스템 내의 컴포넌트들(예를 들어, SOC들(234))의 실시간 동작들을 결정할 수 있다. 공존 허브 디바이스(212)는 또한 다양한 물리적 인터페이스들을 통해 통신 동작들을 수행하는 하나 이상의 통신 서브시스템들을 포함할 수 있다. 통신 서브시스템에서 그러한 공존 동작들을 로컬로 수행함으로써, 애플리케이션 프로세서(208)는 통신 서브시스템에서의 활동들에도 불구하고 더 긴 시간 동안 저전력 모드로 유지될 수 있고, 또한 그의 고전력 모드 동안 애플리케이션 프로세서(208)의 자원들을 자유롭게(free) 할 수 있다. 공존 허브 디바이스(212)의 세부사항들은 도 3을 참조하여 아래에서 상세히 설명된다. 공존 허브 디바이스(212)는 또한 애플리케이션 프로세서(208)에 의해 수행된 동작들을 조정하는 것 이외의 기능들을 수행할 수 있다.
SOC들(234) 각각은, 자체적으로 또는 소프트웨어 또는 펌웨어와 함께, 통신 프로토콜들 또는 보안 프로토콜들을 사용하여 하나 이상의 외부 네트워크들 또는 디바이스들과 통신하기 위한 동작들을 수행하는 회로이다. 이것은 각각의 SOC들(234)이 완전히 독립적임을 암시하지 않는다는 점에 유의해야 한다. 디바이스(100) 상에서의 SOC의 거동에 필수적인 펌웨어 및/또는 소프트웨어의 적어도 일부분은, 예를 들어, 멀티드롭 버스(220) 상의 다른 컴포넌트들과의 상호작용들의 복잡성으로 인해 애플리케이션 프로세서(208) 상에 상주할 수 있거나, 무선 컴포넌트들의 공유, 또는 중첩하는 스펙트럼 또는 인근 스펙트럼의 사용으로 인해 디바이스(100) 상의 다른 SOC에 많이 의존할 수 있다. SOC들(234) 및 공존 허브 디바이스(212) 각각은 상이한 통신 프로토콜들을 처리할 수 있고/있거나 상이한 무선 대역들과 연관될 수 있다. 예를 들어, SOC(234A)는 장거리 통신(예를 들어, 셀룰러 통신)에 대한 프로세싱을 수행할 수 있고, SOC(234B) 또는 공존 허브 디바이스(212)는 단거리 통신(예를 들어, 블루투스 통신)을 처리하고, SOC(204C)는, 예를 들어, WiFi 통신을 위한 프로세싱을 수행할 수 있다. SOC들(234)의 동작들은 공존 허브 디바이스(212)에 의해 적어도 부분적으로 제어된다. SOC(234B)의 예가 도 4를 참조하여 아래에서 상세히 설명된다. 한 쌍의 SOC들(예를 들어, SOC(234B) 및 SOC(234C))은 멀티드롭 버스(220) 또는 GPIO(general-purpose input/output) 통신들(예를 들어, GPIO들(228C))을 사용하여 서로 협동할 수 있다. 한 쌍의 SOC들 사이의 또는 공존 허브 디바이스(212)와 SOC 사이의 협동에 대한 더 많은 세부사항들이 도 5 내지 도 7을 참조하여 아래에서 상세히 설명된다.
센서 디바이스(216)는, 자체적으로 또는 펌웨어의 소프트웨어와 함께, 다양한 속성들을 감지하는 하드웨어 컴포넌트이다. 센서 디바이스(216)는 추가 프로세싱을 위해 다른 컴포넌트들(예를 들어, SOC들(234), 공존 허브 디바이스(212), 및 애플리케이션 프로세서(208))로 전송될 수 있는 감지된 속성들을 나타내는 센서 신호들을 생성한다. 센서 디바이스(216)는 셀룰러 무선 신호들의 수신을 향상시키기 위한 GNSS(Global Navigation Satellite System) 모듈 또는 SOC(234A)에서의 WiFi와 같은 연결성 시스템들일 수 있다. 센서 디바이스(216)가 멀티드롭 버스(220)와 연결되지 않을 경우, 센서 디바이스(216)는, 예를 들어, 디바이스(100)의 외부에서 발생하는 임의의 이벤트에 대한 센서 디바이스(216)의 전달자가 될 SOC(234A)에 의존할 수 있다. SOC(234A)가 센서 디바이스(216)의 거동에 영향을 줄 수 있는 외부 컴포넌트(예를 들어, 공존 허브 디바이스(212), SOC(234B) 내지 SOC(234N) 중 임의의 것)로부터의 요청을 중재하고 있을 때, 센서 디바이스(216)는 그의 선호도를 어써트(assert)할 수 있다. 하나 이상의 실시예들에서, 센서 디바이스(216)는 SOC들(234) 중 하나 이상과 상호동작하는 단순한 독립형 디바이스일 수 있지만, 그럼에도 불구하고 전자 디바이스(100)의 다른 컴포넌트들과의 공존 이슈들을 가질 수 있다. 하나 이상의 다른 실시예들에서, 센서 디바이스(216)는 SOC들(234) 중 하나 이상과 광범위한 메시지들을 전송 또는 수신하는, 내장된 프로세서들 및 메모리를 갖는 복잡한 센서일 수 있다. 센서 디바이스(216)가 멀티드롭 버스(220)에 대한 그 자신의 연결을 갖는 것이 필수적인 것은 아니라는 점에 유의해야 한다. 일부 실시예들에서, 센서 디바이스(216)는 멀티드롭 버스(220)에 직접 연결될 수 없다. 그러한 경우에, SOC(234A)(또는 일부 다른 SOC)는 센서 디바이스(216)로부터의 요청을 들을 수 있고, 요청의 수신 시에, SOC(234A)는 센서 디바이스(216)에 관련된 종속적 액션들을 수행하기 위해 공존 허브 디바이스(212)와 조정할 수 있다. 예를 들어, SOC(234A)의 송신 전력은 센서 디바이스(216)에 영향을 미칠 수 있으며, 이에 따라, 공존 허브 디바이스(212)는 SOC(234A) 상의 무선 경로를 디스에이블(disable)되도록 지시할 수 있거나, 센서 디바이스(216)의 동작들을 수용하도록 SOC(234A)의 무선통신장치에게 더 낮은 전력으로 송신하거나 일시적으로 디스에이블되도록 지시할 수 있다.
패브릭들(222)은 통신 시스템 내의 컴포넌트들이 애플리케이션 프로세서(208)와 통신할 수 있게 하는 통신 채널들이다. 패브릭들(222) 중 하나 이상은 PCIe, I2C, SPI(Serial Peripheral Interface), UART(Universal Asynchronous Receiver-Transmitter) 연결 같은 점대점 연결들, 또는 일부 다른 점대점 연결로서 구현될 수 있다. 도 2에 예시된 바와 같이, SOC(234A), 공존 허브 디바이스(212) 및 SOC들(234B 내지 234N)은 대응하는 패브릭들(222A 내지 222N)을 통해 애플리케이션 프로세서(208)와 통신한다. 패브릭들(222) 중 하나 이상은 멀티드롭 버스(220)에 비해 높은 대역폭 및 낮은 레이턴시(latency)를 가질 수 있다. 도 2에 예시된 패브릭들(222)은 물리적으로 별도인 통신 채널 또는 다수의 논리 서브채널들을 갖는 하나 이상의 공유된 물리적 채널들일 수 있다.
멀티드롭 버스(220)는, 다수의 컴포넌트들이 공유 연결을 통해 통신할 수 있게 하는 통신 채널이다. 멀티드롭 버스(220)는 통신 시스템 내의 컴포넌트들 사이에 공존 메시지들을 송신하는 데 주로 사용될 수 있다. 그러나, 멀티드롭 버스(220)는 또한 다른 유형의 신호들을 송신할 수 있다. 추가로, 멀티드롭 버스(220)는 더 많은 버스들로 분할될 수 있다. 하나 이상의 실시예들에서, SPMI(System Power Management Interface)가 멀티드롭 버스(220)를 구현하는 데 사용된다. 멀티드롭 버스(220)를 구현하기 위해 SPMI 대신에 I2C와 같은 다른 직렬 버스 인터페이스들이 사용될 수 있다.
멀티드롭 버스(220)에 더하여 또는 그 대안으로, GPIO 통신이 통신 시스템 내의 또는 외부의 컴포넌트들 사이에서 사용될 수 있다. GPIO 연결은 2개의 서브시스템들 사이의 구성가능 직접 연결을 나타낸다. GPIO는, (i) 레거시 디바이스(legacy device)들을 지원하기 위한, (ii) 시간에 민감한 정보에 별도의 통신 채널을 제공하기 위한, (iii) 공존 메시지들을 디코딩하기 위한 프로세싱 능력들이 부족하거나 없는 저비용 디바이스들을 지원하기 위한, (iv) 예를 들어, 간섭에 대한 노출로 인한, 멀티드롭 버스를 통해 통신하는 이슈들에 직면할 수 있는 디바이스들과의 통신을 가능하게 하기 위한, 그리고 (v) 멀티드롭 버스를 통한 통신뿐만 아니라 GPIO 통신의 이중 지원을 가능하게 하기 위한 것을 포함하지만 이에 제한되지 않는, 다양한 이유들을 위해 사용될 수 있다. 도 2에 예시된 바와 같이, 센서 디바이스(216)는 GPIO들(228A)을 통해 SOC(234A)와 직접 통신할 수 있고, 공존 허브 디바이스(212)는 GPIO들(228B)을 통해 SOC(234B)와 직접 통신할 수 있고, SOC(234B)는 GPIO들(228C)을 통해 SOC(234C)와 직접 통신할 수 있다. 센서 디바이스(216)는 GPIO들(228A)을 통해 SOC(234A)로 낮은 레이턴시 데이터를 전송하면서, 멀티드롭 버스(220)를 통해 SOC(234A) 또는 다른 컴포넌트들로 레이턴시 허용 데이터(latency tolerant data)를 전송할 수 있다. 실시예에서, 디바이스(216)가 센서 디바이스가 아니라, 멀티드롭 버스(220)와의 직접 연결을 지원할 수 없는 저비용 SOC 또는 기능적 분할부일 때, GPIO들(228A)은 SOC(234A)와 통신하기 위한 디바이스(216)의 직접 통신 수단을 나타낸다. 이어서, SOC(234A)는 디바이스(216)의 거동에 의해 또한 영향을 받을 수 있는 다른 디바이스들과의 완화(mitigation)를 조정하는 데 멀티드롭 버스(220)를 이용할 수 있다. 도 2에 예시되지 않았지만, SPI, PCIe, 또는 SPI와 PCIe 둘 모두가 또한 대안적인 또는 추가적인 통신 메커니즘을 제공하는 데 사용될 수 있다. SPI, I2C, PCIe, UART, 또는 일부 다른 점대점 연결(도 2에 도시되지 않음)이 공존 허브 디바이스(212)와 SOC(234B) 사이의 그리고/또는 SOC(234B)와 SOC(234C) 사이의 낮은 레이턴시 통신들에 사용될 수 있다.
도 2에 예시되지 않았지만, 공존 허브 디바이스(212)는 또한 통신 시스템과 연관된 하나 이상의 안테나들, RF 스위치들, 또는 다른 공유/상호 종속적 RF 컴포넌트들(도시되지 않음)에 대한 동작들 또는 액세스를 제어할 수 있다. 공존 허브 디바이스(212)가, 다른 SOC(예를 들어, SOC(234B))가 종속하는 필수적인 RF 컴포넌트들을 제어하는 경우, GPIO들(예를 들어, GPIO들(228B))은 공유/상호 종속적 RF 컴포넌트들의 상태의 변화에 대한 요청을 트리거하는 데 사용될 수 있다.
공존 허브 디바이스의 예시적인 아키텍처
도 3은 일 실시예에 따른, 공존 허브 디바이스(212)를 예시하는 블록도이다. 공존 허브 디바이스(212)는 애플리케이션 프로세서(208)로부터의 감시(oversight)에 더 밀접하게 종속하는 통신 시스템 내의 다른 컴포넌트들보다 더 많은 자율성을 갖는 통신 시스템 내의 컴포넌트들의 동작들을 조정하는 통신 시스템의 일부이다. 공존 허브 디바이스(212)는 또한 SOC들(234)에 의해 수행되는 통신과 구별되거나 부분적으로 중첩되는 프로토콜들을 통한 통신을 처리할 수 있다.
이러한 목적을 위해, 공존 허브 디바이스(212)는, 다른 컴포넌트들 중에서도, 프로세서(304), 공존 제어 회로(314), 패브릭 인터페이스(310), 멀티드롭 인터페이스(340), 통신 서브시스템(336) 및 내부 패브릭(342)을 포함할 수 있다. 공존 허브 디바이스(212)는 도 3에 예시되지 않은 추가 컴포넌트들을 포함할 수 있거나, 또는 도 3에 예시된 컴포넌트들을 생략할 수 있다.
프로세서(304)는, 자체적으로 또는 소프트웨어 또는 펌웨어와 함께, 예를 들어, 가능하게는, 프로세서(304)가 취하고 있는 액션들에 대해 또는 SOC들(234)의 요구되는 거동 변화들에 대한 요청들에 대해 SOC들(234)에게 통지하기 위한 공존 메시지들을 사용하여 SOC들(234)의 동작들을 조정하는 것뿐만 아니라 공존 허브 디바이스(212)의 전체 동작을 제어하는 회로이다. 프로세서(304)는 동작들을 제어하기 위한 동작 정책(352)을 저장하기 위한 메모리를 포함할 수 있다. 동작 정책(352)은 패브릭(222B), 패브릭 인터페이스(310) 및 내부 패브릭(342)을 통해 애플리케이션 프로세서(208)로부터 수신될 수 있다. 동작 정책(352)을 수신한 후, 프로세서(304)는 동작 정책(352)을 디코딩하고, 적용가능한 경우, 동작 정책(352)을 시행하도록 공존 허브 디바이스(212) 내의 다른 컴포넌트들(예를 들어, 공존 제어 회로(314))을 프로그래밍할 수 있다. 추가로, 프로세서(304)는 멀티드롭 버스(220)를 통해, SOC들(234)에 관련된 동작 정책(352)의 일부분을 전송하여, 애플리케이션 프로세서(208)와 같은 외부 감시와 밀접하게 결합된 조정 없이 동작 정책(352)에 따라 동작하도록 SOC들(234)을 프로그래밍할 수 있다. 프로세서(304)는 SOC들(234) 및 통신 서브시스템들(336)로부터 인터페이스(340)를 통해 수신된 공존 메시지들(예를 들어, 상태 정보 또는 요청들)을 분석함으로써 동작 정책(352)에 따라 공존 결정들을 내릴 수 있다. 프로세서(304)는 SOC들(234) 중 하나 이상의 SOC 및 공존 허브 디바이스(212) 내의 통신 서브시스템(336)의 현재 상태(354)를 저장할 수 있다. 프로세서(304)는, 하드웨어 컴포넌트일 수 있거나 펌웨어/소프트웨어로 완전히 구현될 수 있는 중재자(322)에게 일부 조정 동작들(예를 들어, 통신 서브시스템(336)에 대한 조정)을 위임할 수 있다.
본 명세서에서 설명된 바와 같은 동작 정책(352)은 문제가 될 수 있는 통신 시스템 내의 조합들 또는 상호연동 이슈들을 갖는 컴포넌트들의 조합들을 동작시키는 시나리오들을 지칭한다. 동작 정책(352)은 또한, 대체적으로 공유 매체의 사용 또는 송신 전력 조정을 또한 포함하는 그러한 문제가 있는 시나리오들을 해결하거나 그것에 대처하기 위해 SOC들(234) 및 공존 허브 디바이스(212)에 의해 취해질 동작들을 정의하는, 한 세트의 규칙들을 지칭한다. 이러한 규칙들은 자원 사용, 공유 또는 중첩 통신 대역들에서의 간섭, 및 전력 사용을 포함하지만 이에 제한되지 않는 다양한 고려사항들을 고려하도록 설계될 수 있다. 하나 이상의 실시예들에서, 규칙들은 룩업 테이블들의 형태로 저장될 수 있다. 이러한 룩업 테이블들은 동작 정책(352)을 구현하기 위해 프로세서(304)에서 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합들에 의해 액세스될 수 있다.
프로세서(304)는 또한 GPIO들을 통해 전자 디바이스(100) 내의 SOC들(234) 또는 다른 컴포넌트들과 통신할 수 있다. 도 2 및 도 3은 공존 허브 디바이스(212)를 SOC(234B)와 통신하는 것으로서 예시하지만, GPIO들은 생략될 수 있거나, 또는 전자 디바이스(100) 내의 다른 컴포넌트들과 통신하는 다른 추가적인 GPIO들이 제공될 수 있다.
일 실시예에서, 프로세서(304)는, 공존 허브 디바이스(212)가 부팅 시간에 턴온(예컨대, 초기화)될 때, 애플리케이션 프로세서(208)로부터 전체 동작 정책(352)을 수신한다. 그러한 시간 인스턴트(time instant) 후, 프로세서(304)는 패브릭(222B) 또는 멀티드롭 버스(220)를 통한 애플리케이션 프로세서(208)와의 연결을 사용하여 동작 정책(352)의 관련 부분들을 점증적으로 계속 업데이트할 수 있다. 다른 실시예들에서, 프로세서(304)는, 통신 서브시스템(336) 및/또는 SOC들(234)이 턴온될 때, 애플리케이션 프로세서(208)로부터 동작 정책(352)의 관련 부분들을 수신한다. 이러한 실시예에서, 통신 서브시스템(336) 및/또는 SOC들(234)의 턴온은 애플리케이션 프로세서(208)로 통신될 수 있으며, 이는 애플리케이션 프로세서(208)로 하여금 동작 정책(352)의 관련 부분들을 프로세서(304)로 전송하게 한다.
다른 실시예에서는, 프로세서(304)에 동작 정책(352)이 사전 설치된다. 이 실시예에서, 프로세서(304)는 애플리케이션 프로세서(208)로부터 동작 정책을 수신하지 않는다.
통신 서브시스템(336)은 공존 허브 디바이스(212) 외부의 물리적 계층(physical layer, PHY) 인터페이스(308)로부터 수신되거나 그로 전송할 신호들을 프로세싱하기 위한 회로를 포함한다. 도 3은 공존 허브 디바이스(212) 내에 내장된 통신 서브시스템(336)을 도시하지만, 일부 실시예들에서, 통신 서브시스템(336)은 공존 허브 디바이스(212) 외부에 있고 PHY 인터페이스(308)를 통해 공존 허브 디바이스(212)에 연결된다. 그러한 경우에, 통신 서브시스템(336)은 외부 컴포넌트들을 제어하기 위해 PHY 인터페이스(308)와 같은 PHY 인터페이스들에 계속 액세스할 것이다. 그러한 회로는 하기의 동작들 중 하나 이상을 수행하는 로컬 프로세서(378)를 포함할 수 있다: (i) 소정 통신 프로토콜들과 연관된 명령들을 실행함, (ii) 공존 허브 디바이스(212)에 의해 취해지고 있는 액션들에 대한 통신 메시지들을 중재자(322) 또는 프로세서(304)로부터 수신하고, 외부 서브시스템들에 관한 관련 정보에 관련된 메시지들을 디스패처(dispatcher)(312)로부터 수신할 뿐만 아니라, 입력 무선 신호들을 디코딩하기 위해, 대응하는 프로토콜에 따라 수신된 입력 통신 신호들을 프로세싱함, (iii) 이차 수신기(예를 들어, 수신 다양성을 위한 것임) 또는 이차 송신기(예를 들어, UL MIMO(uplink multiple-input multiple-output) 통신을 위한 것임)를 인에이블(enable)하기 위한, 또는 이차 RF 대역이 통신 서브시스템(336)의 현재 수신 동작들을 지원할 수 있게 하기 위한 결정들과 같은 일부 중요한 파라미터를 RF 경로에 대해 변화시키고, 이득 제어(gain control)를 수신하고, 송신 전력을 조정하도록 연관된 RF 경로를 제어함, 및 (iv) 동작 정책(352)에 기초하여 또는 디스패처(312)로부터 결정된 다른 활성 컴포넌트들에 대한 정보에 기초하여 통신 서브시스템(336) 내의 컴포넌트들을 구성하거나, 디스에이블하거나, 또는 인에이블함.
통신 서브시스템(336)의 로컬 프로세서(378)는, 공존 허브 디바이스(212)가 턴온될 때, (예를 들어, 애플리케이션 프로세서(208)에 의해 또는 자동으로) 초기화될 수 있다. 대안적으로, 로컬 프로세서(378)는, 모든 서브시스템들이 디바이스(100)의 동작의 일부로서 요구되지 않는 때와 같이, 공존 허브 디바이스(212)가 인게이징되지 않는 경우, 단독으로 작동할 수 있다. 일부 시점에서, 로컬 프로세서(378)는, 로컬 프로세서(378)가 외부 컴포넌트들의 활동들(예를 들어, SOC(234B)의 활동들)에 대한 메시지들을 수신할 때 어떻게 거동할지에 대한 정보로 초기화될 수 있다. 무엇보다도, 로컬 프로세서(378)는 통신 서브시스템(336)의 동작과 관련있는 동작 정책(352)의 일부분에 의해 프로그래밍된다. 통신 서브시스템(336)의 로컬 프로세서(378)에 다운로드된 동작 정책(352)의 일부분은 통신 서브시스템(336)이 어떻게 동작해야 하는지를 정의(예를 들어, 통신 서브시스템의 데이터 레이트(data rate), 통신 서브시스템(336) 내의 컴포넌트들의 턴온 또는 턴오프, 및 활성 송신기들 또는 수신기들의 수의 변화를 정의)할 수 있다. 대안적으로, 동작 정책(352)의 관련 부분은, 통신 서브시스템(336)이 턴온될 때, 프로세서(304)에 의해 또는 패브릭(222B)을 통해 애플리케이션 프로세서(208)에 의해 직접 순차적으로 다운로드되고 프로그래밍될 수 있다. 통신 서브시스템(336)은, 예를 들어, RFFE(Radio Frequency Front-End Control Interface)를 통해 물리적 계층 인터페이스들(예를 들어, RF 디바이스들)과 통신할 수 있다. 통신 서브시스템(336)은 외부 서브시스템들과 조정하여, 공존 허브 디바이스(212)의 다른 통신 컴포넌트들뿐만 아니라 멀티드롭 버스(220)에 연결된 그러한 서브시스템들과의 공유된 외부 컴포넌트들의 선호도/제어에 대해 제안(vote)할 수 있다.
인터페이스(340)는 멀티드롭 버스(220)와의 통신을 위한 하드웨어 회로이거나, 하드웨어 회로들, 소프트웨어 및 펌웨어의 조합이다. 하나 이상의 실시예들에서, 인터페이스(340)는, SPMI를 통해 전송하기 위해 데이터를 아웃바운드 데이터그램(outbound datagram)들로 프로세싱하고 인바운드 데이터그램(inbound datagram)들을 데이터로 언팩킹(unpacking)하기 위한 회로들을 포함한다. 인터페이스(340)는 연결(328)을 통해 프로세서(304) 및 공존 제어 회로(314)에 연결된다.
패브릭 인터페이스(310)는 공존 허브 디바이스(212)가 패브릭(222B)을 통해 애플리케이션 프로세서(208)와 통신할 수 있게 하기 위한 하드웨어 회로 또는 하드웨어 회로, 소프트웨어 및 펌웨어의 조합이다. 하나 이상의 실시예들에서, 패브릭 인터페이스(310)는 점대점 통신 채널(예를 들어, PCIe)을 통한 통신을 위해 데이터 버퍼링, 세그먼트화/조합, 데이터의 직렬화/역직렬화 및 패키징/언팩킹과 같은 동작들을 수행한다. 도 3에 예시된 바와 같이, 패브릭 인터페이스(310)는 내부 패브릭(342)에 연결되어, 애플리케이션 프로세서(208)와 공존 허브 디바이스(212) 내의 컴포넌트들의 통신을 가능하게 한다.
공존 제어 회로(314)는, 자체적으로 또는 펌웨어 또는 하드웨어와 함께, 멀티드롭 버스(220)를 통해 송신된 공존 메시지들을 프로세싱하는 회로이다. 공존 제어 회로(314)는, 공존 이벤트들에 대한 실시간 결정들을 내리고, 인바운드 공존 메시지들을 통신 서브시스템들(336)에 분배하고, 통신 서브시스템(336)과 실시간 공존 메시지들을 공유하고, 아웃바운드 공존 메시지들을 SOC들(234)로 전송함으로써 동작 정책(352)을 시행하도록, 프로세서(304)에 의해 프로그래밍된다. 공존 허브 디바이스(212)는 또한 SOC들(234)에 감독 링크 제어 메시지들을 전송할 수 있다. 본 명세서에 설명된 공존 이벤트는 전자 디바이스(100)의 컴포넌트들에서 동작들을 조정하는 것을 촉구할 동작 정책(352)에 의해 정의된 조건 또는 발생을 지칭한다.
구체적으로, 공존 제어 회로(314)는, 다른 컴포넌트들 중에서도, 디스패처(312), 메모리(316), 중재자(322), 및 빌보드(billboard)(326)를 포함할 수 있다. 디스패처(312)는 각각의 통신 서브시스템들(336)에 대한 메시지들을 필터링하고 메모리(316)로 전송하기 위한 프로그래밍가능 회로 또는 소프트웨어 또는 펌웨어와 조합된 회로이다.
메모리(316)는 통신 서브시스템(336)과 연관된 하나 이상의 버퍼들(318)을 갖는다. 하나 이상의 버퍼들(318)은 통신 서브시스템(336)과 관련있는 (멀티드롭 버스(220)를 통해 공존 허브 디바이스(212) 외부의 컴포넌트들로부터 수신된) 인바운드 공존 메시지들을 수신하고 저장한다. 버퍼(318) 내의 저장된 인바운드 공존 메시지들은 내부 패브릭(342)을 통해 우선순위에 기초하여(예를 들어, 시간에 민감한 데이터는 시간에 둔감한 데이터에 비해 더 높은 우선순위를 가짐) (화살표(372)로 표시된 바와 같이) 통신 서브시스템(336)으로 전송될 수 있다. 통신 서브시스템(336)이 비활성인 경우, 하나 이상의 버퍼들(318)은, 통신 서브시스템들(336)이 턴온되고 메시지들을 수신하는 데 이용가능해질 때까지, 메시지들을 저장한다. 하나 이상의 버퍼들(318)은 또한 (내부 패브릭(342)을 통해 통신 서브시스템(336)으로부터 수신된) 아웃바운드 공존 메시지들(348)을 저장한다. 아웃바운드 공존 메시지들은 디스패처(312)에 의해 검색되고, 또한 우선순위에 기초하여(예를 들어, 시간에 민감한 데이터는 시간에 둔감한 데이터에 비해 더 높은 우선순위를 가짐) 멀티드롭 버스(220)를 통해 공존 허브 디바이스(212) 외부의 컴포넌트들로 전송된다.
메모리(316)는 또한, 자원들의 충돌하는 사용을 해결하기 위해 중재자(322)에 의해 액세스될 수 있고 통신 서브시스템(336)과 시간에 민감한 공존 메시지들을 교환하기 위해 로컬 프로세서(378)에 의해 액세스될 수 있는, 공유 메모리 섹션(320)을 포함한다.
빌보드(326)는, 자체적으로 또는 소프트웨어 또는 펌웨어와 함께, 통신 서브시스템(336)의 상태 정보(346), SOC들(234)의 상태 정보, 또는 통신 서브시스템(336)의 일부 필수적인 링크 정보를 저장하는 회로이다. 상태 정보(346)는 통신 서브시스템(336)으로부터 수신되고 액세스를 위해 빌보드(326)에 저장된다. 빌보드(326)는 통신 서브시스템(336)이 SOC들(234)의 상태에 대한 지식을 획득할 수 있게 하고/하거나 통신 서브시스템(336)이 SOC들(234)에 대한 더 상세한 메시징을 제공할 수 있게 한다. 대안적으로, 빌보드(326)는 외부 컴포넌트가 빌보드(326) 내의 상태 정보(346)에 액세스함으로써 그의 동작 콘텍스트(operating context)를 정확하게 결정할 수 있게 한다.
중재자(322)는, 자체적으로 또는 소프트웨어 또는 펌웨어와 함께, 통신 서브시스템(336)의 동작의 실시간 조정에 대한 결정들을 내리고 내부 패브릭(342)을 통해 통신 서브시스템(336)로 그리고 메모리(316)로 결정들을 전송하는 회로이다. 중재자(322)는 또한 외부 SOC들(234)의 비동기 활동을 보조할 수 있으며, 이는 공존 허브 디바이스(212) 내의 활성 서브시스템들에 영향을 미칠 수 있다. 중재자(322)에 의해 내려진 결정들은 공존 허브 디바이스(212) 내의 상이한 통신 서브시스템들(336) 사이의 또는 외부 컴포넌트들과의 통신 서브시스템(336)에 의한 공통 자원들에 대한 경쟁 요구들을 해결하는 것, 또는 통신 서브시스템(336)에 의한 양립불가능한 자원들에 대한 요청들을 해결하는 것을 포함할 수 있다. 중재자(322)는 실시간으로 결정을 내리며, 이는 동작 정책(352)을 구현하기 위해 프로세서(304)에서 내려진 결정과 비교하여 더 짧은 기간 동안 유효하게 유지될 수 있다. 이를 위해, 중재자(322)는 프로세서(304)에 저장된 통신 서브시스템(336) 및 SOC들(234)의 현재 상태(354)에 액세스할 수 있다. 중재자(322)에서 자원 충돌들을 해결하기 위한 알고리즘은 프로세서(304)에 의해 실행되는 동작 정책(352)에 기초하여 조정될 수 있다. 중재자(322)는 프로세서(304) 또는 애플리케이션 프로세서(208)에 의해 프로그래밍될 수 있다. 중재자(322)에 의해 내려진 결정은 공존 허브 디바이스(212) 내부의 통신 서브시스템들과 공존 허브 디바이스(212) 외부의 그러한 통신 서브시스템들 사이의 최종 동의된 무선 상태를 제어하도록 통신 서브시스템(336)과 연관된 RFFE 트랜잭션(transaction)들을 제어하는 것을 포함할 수 있다. RFFE 트랜잭션들을 제어하는 예는 외부 서브시스템으로부터의 요청에 기초하여 업데이트되는 무선 스위치를 제어하는 것이다. 중재자(322)는 중재자(322)의 전체 동작을 제어하기 위한 프로세서(323)를 포함할 수 있다. 일부 실시예들에서, 중재자(322)는 완전히 펌웨어 또는 소프트웨어로 구현될 수 있다.
하나 이상의 실시예들에서, 중재자(322)는 낮은 레이턴시 데이터를 위해 GPIO들(228B)을 통해 공존 허브 디바이스(212) 외부의 컴포넌트들과 통신한다. 예를 들어, 중재자(322)는 센서들(216) 중 하나 이상으로부터 센서 데이터를 수신하고 실시간 결정들을 내릴 수 있다. 중재자(322)는 요청하는 센서 디바이스(216)(또는 다른 종속적 디바이스)에 허락을 승인하기 전에 내부 통신 서브시스템(336) 및 외부 서브시스템과 조정하도록 요구될 수 있다.
하나 이상의 실시예들에서, 프로세서(304)는 그의 동작 정책(352)에 기초하여 더 큰 규모의 조정 동작을 결정하고, 동작 정책(352)을 시행하도록 공존 제어 회로(314), 통신 서브시스템(336) 및 가능하게는 SOC들(234)의 컴포넌트들을 구성한다. 한편, 중재자(322)는 동작 정책(352)에 의해 정의된 바와 같은 더 큰 규모의 조정 동작과 일치하는 더 작은 규모의 실시간 공존 동작들을 조정한다.
SOC의 예시적인 아키텍처
도 4는 일 실시예에 따른 SOC(234B)의 블록도이다. SOC(234B)가 도 4에 예로서 예시되어 있지만, 다른 SOC들(234A, 234C 내지 234N)이 SOC(234B)와 동일하거나 유사한 아키텍처를 가질 수 있다.
SOC(234B)는 전자 디바이스(100) 내의 통신 시스템의 일부이고, 그의 통신 서브시스템들(436A, 436B)("통신 서브시스템들(436)"로 총칭됨)을 사용하여 하나 이상의 통신 프로토콜들을 실행할 수 있다. 2개의 통신 서브시스템들(436A, 436B)만이 도 4에 예시되어 있지만, 2개 초과의 통신 서브시스템들 또는 단일 통신 서브시스템만이 SOC(234B)에 포함될 수 있다. 통신 서브시스템들(436A, 436B)은 각각 상이한 통신 프로토콜들과 연관될 수 있거나, 또는 둘 모두가 동일한 통신 프로토콜과 연관될 수 있다. 통신 서브시스템들(436)은, 통신 서브시스템들(436)과 연관된 공존 메시지들이 공존 제어 회로(314) 대신에 프로세서(412)에 의해 프로세싱된다는 것을 제외하고는, 통신 서브시스템(336)과 실질적으로 동일하다.
일부 실시예들에서, SOC(234B)는 완전히 자율적이지는 않으며, (i) SOC(234B)를 오프로드(offload)하도록, 또는 (ii) 애플리케이션 프로세서(208) 상에 상주할 수 있거나 애플리케이션 프로세서(208)에 의해 직접 제어될 수 있는 SOC(234B)의 거동에 필수적인 다른 컴포넌트들을 조정하도록, 애플리케이션 프로세서(208) 또는 일부 다른 컴포넌트에 종속할 수 있다. 따라서, 공존 액션에 대한 요청이 외부 서브시스템으로부터(예를 들어, SOC(234C)로부터) SOC(234B)에 올 때, 하나 초과의 엔티티(entity)(예를 들어, 애플리케이션 프로세서(208)와 함께인 SOC(234B))가 수반될 수 있다. 통신 서브시스템들(436)은 공존 허브 디바이스 및/또는 다른 SOC들(234A, 234C 내지 234N) 내의 통신 서브시스템들과 공존하기 위해 멀티드롭 버스(220)를 통해 공존 메시지들을 공존 허브 디바이스(212)로 전송할 수 있다. SOC(234B)에 대한 인바운드 공존 메시지들은 프로세서(412)에 의해 로컬로 프로세싱되고, 대응하는 통신 서브시스템들(436)로 전송된다. 통신 서브시스템들(436)에 대한 다른 상세한 설명은 간결성을 위해 본 명세서에서 생략된다.
통신 서브시스템들(436)에 더하여, SOC(234B)는, 다른 컴포넌트들 중에서도, 패브릭 인터페이스(402), 버스 인터페이스(404), 프로세서(412), 및 이들 컴포넌트를 연결하기 위한 내부 버스(440)를 추가로 포함할 수 있다. SOC(234B)는 각각의 통신 서브시스템들(436)과 연관된 공존 메시지들을 버퍼링하기 위한 메모리와 같은 추가 컴포넌트들을 포함할 수 있다.
버스 인터페이스(404)는, 자체적으로 또는 소프트웨어 또는 하드웨어와 함께, SOC(234B)의 컴포넌트들이 멀티드롭 버스(220)를 통해 공존 허브 디바이스(212) 및 다른 SOC들(234A, 234C 내지 234N)과 통신할 수 있게 하는 회로이다.
패브릭 인터페이스(402)는, 자체적으로 또는 소프트웨어 또는 하드웨어와 함께, SOC(234B)의 컴포넌트들이 패브릭(222C)을 통해 애플리케이션 프로세서(208)와 통신할 수 있게 하는 회로이다. 패브릭 인터페이스(402)의 통신은 버스 인터페이스(404)를 통한 통신보다 더 빠른 속도 및 더 높은 대역폭에서 데이터를 송신할 수 있다.
프로세서(412)는 SOC(234B)의 전체 동작을 관리한다. 프로세서(412)는, 무엇보다도, 예를 들어, SOC(234B)의 현재 동작 조건들에 대해 어떤 인입 메시지들이 적용되는지를 식별하기 위한 인터럽트 관리자(interrupt manager)(416) 및 메시지 필터(418)를 소프트웨어 또는 하드웨어 컴포넌트들로서 포함할 수 있다.
인터럽트 관리자(416)는 인터럽트들을 관리하는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합이다. 인터럽트 관리자(416)가 인터럽트를 포함하는 공존 메시지(442)를 수신할 때, 인터럽트 관리자(416)는 인터럽트를 추출하고 하나 이상의 인터럽트 신호들(414)을 통신 서브시스템(336)으로 전송한다. 인터럽트 신호들(414)은 통신 서브시스템(336)으로 하여금 셧다운(shut down)되거나, 그의 컴포넌트들의 서브세트의 전력을 차단하거나, 전력 차단 모드로부터 웨이크업(wake-up)하거나, 멀티드롭 버스(220) 상의 컴포넌트들(예를 들어, SOC들(234))의 실시간 상태를 나타내게 할 수 있다. 인터럽트 신호들(414)은 간단한 디코더만을 수반하고 마이크로프로세서는 수반하지 않을 수 있으며, 이는 저비용 컴포넌트들이 멀티드롭 버스(220)를 통해 간단한 공존 메시지를 통신하기 위해 인터럽트 신호들을 전송할 수 있게 한다. 프로세서(412)에 의해 생성된 인터럽트 신호들(414)은, SOC(234B)의 다른 컴포넌트들이 무선 비활성 상태 또는 딥 슬립 상태(deep sleep state)에 있을 때에도, SOC(234B)가 외부 요청들(예를 들어, GPIO들(228B) 및/또는 GPIO들(228C)을 통해 수신됨)에 응답할 수 있게 할 수 있다. 그러한 경우, SOC(234B)는 일부 동의된 정책 응답으로 구성되거나 또는 GPIO들(228B) 및/또는 GPIO들(228C)을 통해 외부 요청들에 응답하기 위해 프로세서(412)를 웨이크업하도록 구성될 수 있다.
인터럽트 신호들(414)의 특성들 중 하나는 그들이 스티키(sticky)하다는 것인데, 이는 공존 허브 디바이스(212)가 인터럽트 신호를 전송할 때 SOC(예를 들어, SOC(234B))가 슬립 상태이더라도, SOC(예를 들어, SOC(234B))는 SOC(예를 들어, SOC(234B))가 나중에 웨이크업한 후에 인터럽트 신호에 응답할 수 있을 것임을 의미한다. 인터럽트 신호들(414)은 또한, 외부 SOC(예를 들어, SOC(234B))가, 다른 컴포넌트들(예를 들어, SOC(234A))이 SOC(예를 들어, SOC(234B))와의 핸드셰이크 동작들을 완료하기에 충분히 오래 어웨이크(awake) 상태를 유지할 것을 요구하지 않으면서, 비활성/슬립 상태로 갑자기 갈 수 있다는 것을 확실히 하는 데 사용될 수 있다. 상시 온(always-on) 인터럽트 신호들(414)을 사용함으로써, 발신 메시지 소스에 대한 부담은 감소될 수 있다. 프로세서(412)를 웨이크업하기 위한 도어벨 선택적 거동(doorbell optional behavior)을 갖는 스티키 인터럽트 신호들(414)은, SOC(234B)가 딥 슬립 상태에 있을 때에도, 공유 무선 컴포넌트들에 대한 상태 변화들의 조정을 가능하게 할 수 있으며, 이에 따라, SOC(234C) 및 공존 허브 디바이스(212)가 공유 무선 컴포넌트들의 사용을 위해 SOC(234B)와 어떻게 상호작용하는지에 대한, SOC(234C) 및 공존 허브 디바이스(212)에 대한 훨씬 더 넓은 유연성을 가능하게 할 수 있다.
메시지 필터(418)는 버스 인터페이스(404)를 통해 멀티드롭 버스(220)로부터 인바운드 공존 메시지들을 수신하고, 필터링된 인바운드 공존 메시지들을 통신 서브시스템(336)에 전송하기 전에 관련성에 대해 인바운드 공존 메시지들(422)을 필터링하고, 필터링된 인바운드 공존 메시지들을 메모리(316)의 하나 이상의 버퍼들(318) 및/또는 공유 섹션(320)으로 전송하는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합이다. 메시지 필터(418)는 또한, 통신 서브시스템(336)이 모든 관련 인바운드 공존 메시지들을 수신하는 것을 보장하기 위해 통신 서브시스템(336)과 연관된 하나 이상의 버퍼들(그들의 우선순위들에 의해 조직화될 수 있음)로 인바운드 공존 메시지들(422)을 방향전환시킬 수 있다. 인바운드 공존 메시지가 인터럽트를 포함하는 경우, 메시지 필터(418)는 대응하는 공존 메시지(442)를 인터럽트 관리자(416)로 전송한다.
프로세서(412)는 또한 GPIO들을 통해 전자 디바이스(100)의 다른 컴포넌트들과 통신할 수 있다. 도 4의 예에서, 프로세서(412)는 GPIO들(228B)을 통해 공존 허브 디바이스(212)와 통신하고 GPIO들(228C)을 통해 SOC(234C)와 통신하는 것으로 예시되어 있다. 그러나, GPIO들(228B) 및/또는 GPIO들(228C)은 생략될 수 있거나, 프로세서(412)가 시간에 민감한 데이터를 송신하기 위해 전자 디바이스(100)의 다른 컴포넌트들과 직접 통신하도록 하기 위한 추가의 GPIO들이 제공될 수 있다. GPIO들(228B) 및 GPIO들(228C)은, 함께 결합될 때, 정의된 우선순위 및/또는 정의된 지속성을 갖는 액션을 요청하는 데 사용될 수 있다. 이것은, SOC(234B)가 요청 액션에 응하기 전에 멀티드롭 버스(220) 상의 하나 이상의 외부 디바이스들과 조정할 필요가 있을 수 있기 때문에, SOC(234B)가 액션에 대한 수신된 요청에 즉시 응답할 수 없다는 것을 외부 디바이스가 수용할 수 있게 할 수 있다.
프로세서(412) 및/또는 통신 서브시스템들(436)은 동작 정책(352)을 구현하기 위해 공존 허브 디바이스(212)의 프로세서(304) 또는 애플리케이션 프로세서(208)에 의해 프로그래밍될 수 있다. 일 실시예에서, 그러한 프로그래밍은 SOC(234B)가 초기화될 때 수행될 수 있다.
SOC들을 조정하는 예시적인 블록도
도 5는 일 실시예에 따른, 전자 디바이스(100)의 한 쌍의 서브시스템들 사이의 조정에 대한 블록도이다. 도 5의 예시적인 실시예에서, SOC(234B)는, SOC(234B) 및 SOC(234C)가 조정된 활동들이 계속될 수 있게 하도록 개별적으로 제어하는 컴포넌트들의 활동들 또는 종속적 상태를, 멀티드롭 버스(220) 및 GPIO들(228C)을 통해 SOC(234C)와 함께, 조정한다. 도 5에 도시된 바와 같은 SOC(234B)는 도 4와 관련하여 전술한 버스 인터페이스(404) 및 프로세서(412)를 포함한다. SOC(234B)는 간결성을 위해 본 명세서에서 생략되는 추가적인 컴포넌트들을 포함할 수 있다. 유사하게, 도 5에 도시된 바와 같은 SOC(234C)는 버스 인터페이스(502) 및 프로세서(504)를 포함한다. 버스 인터페이스(502)는 버스 인터페이스(404)와 동일한 방식으로 동작하고, 프로세서(504)는 프로세서(412)와 동일한 방식으로 동작한다. SOC(234B)는 버스 인터페이스(404), 멀티드롭 버스(220) 및 버스 인터페이스(502)를 통해 SOC(234C)와 연결된다. 본 명세서에 제시된 조정을 위한 시스템은, SOC(234B) 및 SOC(234C)의 개별적인 무선 상태에 관계없이, SOC(234B)와 SOC(234C) 사이의 협동을 허용한다. 따라서, SOC(234B)는, SOC(234B)가 이와 달리 비활성화된 상태에 있는 경우에도, SOC(234C)로부터의 요청에 대해 여전히 작동할 수 있다. 추가로, SOC(234B)의 프로세서(412)는 GPIO들(228C)을 통해 프로세서(504)에 직접 연결된다. 대안적으로, 멀티드롭 버스(220), PCIe, I2C, SPI, UART 대신에, 일부 다른 점대점 연결(도 5에 도시되지 않음)이 SOC(234B)와 SOC(234C) 사이의 낮은 레이턴시 통신들 및 활동들의 조정을 위해 사용될 수 있다.
도 5에 도시된 바와 같이, SOC(234C)는 도 3을 참조하여 전술한 중재자(322)와 동일한 방식으로 동작하는 중재자(506)를 추가로 포함한다. 중재자(506)는 프로세서(504)의 일부, 예를 들어, 도 5에 도시된 바와 같은 프로세서(504)의 하드웨어 또는 소프트웨어 컴포넌트일 수 있다. 대안적으로, 중재자(506)는 독립형 컴포넌트, 예를 들어, 프로세서(504)와 별개인 하드웨어 또는 소프트웨어 컴포넌트일 수 있다. 중재자(506)는, 하나 이상의 공통 자원들에 대한 위너 디바이스(winner device)를 결정하기 위한 그리고 위너 디바이스가 하나 이상의 공통 자원들의 제어 권한을 얻는 적절한 시간 인스턴트를 결정하기 위한 결정에 수반되는, 모든 서브시스템들과 통신하도록 구성될 수 있다. 도 5의 SOC(234C)는 SOC(234C)와 실질적으로 동일한 방식으로 SOC(234B)와의 활동들을 조정하도록 공존 허브 디바이스(212)로 대체될 수 있다. 그러한 경우, GPIO들(238C)은 GPIO들(238B)로 대체될 것이고, 버스 인터페이스(502)는 인터페이스(340)로 대체될 것이고, 프로세서(504)는 프로세서(304)로 대체될 것이고, 중재자(506)는 중재자(322)로 대체될 것이다. 일부 실시예들에서, 중재자(506)의 기능성은 적어도 부분적으로 애플리케이션 프로세서(208)에 상주할 수 있다. 그러한 경우에, 애플리케이션 프로세서(208)의 일부로서의 중재자(506)의 기능성은 주로 상시-온 도메인(이는 애플리케이션 프로세서(208)임)에서 실행될 것이며, 이에 따라, 중재자(506)의 기능성은 항상 활성상태로 유지되지는 않는 다른 프로세스들(예를 들어, 다른 SOC들에서 수행됨)로부터의 정보에 기초하여 상이한 SoC들을 동시에 중재할 수 있게 된다.
SOC(234B) 상에서의 활동을 수행하기 위한 인가를 구하기 위해, 프로세서(412)는 인가 요청을 생성하고, 버스 인터페이스(404) 및 멀티드롭 버스(220)를 통해 인가 요청을 전송할 수 있다. SOC(234C)는 멀티드롭 버스(220) 및 버스 인터페이스(502)를 통해 SOC(234B)로부터의 인가 요청을 수신할 수 있다. 인가 요청은, 활동의 파라미터들에 대한 정보, 활동 동안 SOC(234B)에 의해 사용될 SOC(234C)의 하나 이상의 자원들(예를 들어, 매체, RF 주파수, 통신 대역, 하나 이상의 자원들을 사용하기 위한 요청의 지속시간 등)에 대한 정보, 활동의 지속시간에 대한 정보, 인가 요청의 지속성에 대한 정보(예를 들어, 아직 인가되지 않은 활동을 인가하기 위해 이전에 통신된 인가 요청(들)의 수), 인가 요청의 우선순위에 대한 정보, 요청된 활동의 우선순위에 대한 정보, 또는 SOC(234B)에서의 활동의 수행에 관한 일부 다른 정보 중 적어도 하나를 포함한다.
SOC(234C)는, 인가 요청이 수신될 때 SOC(234B)가 활동을 실행하도록 인가되는지 여부를 결정할 수 있다. 일부 실시예들에서, 중재자(506)는, SOC(234B)가 활동을 실행하도록 인가되는지 여부를 결정한다. 하나 이상의 실시예들에서, SOC(234B)가 활동을 실행하도록 인가되는지 여부는 중재자(506) 내의 활성인 한 세트의 규칙들에 의해 결정될 수 있다. 그러한 규칙들은 공존 허브 디바이스(212) 내의 활성인 동작 정책(352)에 의해 적어도 부분적으로 정의될 수 있다. 중재자(506)는 또한, 현재 수행되고 있거나 요청된 활동 동안 수행되도록 스케줄링된 동작들을 체크하고, 현재의 또는 미래의 활동들에 기초하여 요청된 활동을 거부할지 여부를 결정할 수 있다. 중재자(506)는 (예를 들어, 프로세서(504) 및/또는 애플리케이션 프로세서(208) 상에서 실행되는 하나 이상의 소프트웨어 프로세스들과 조합하여) SOC(234B) 및 SOC(234C)가 서로 양립가능한 상태에 있고 그들의 활동들이 정의된 시간 제한 내에 조정될 수 있도록, SOC(234B)의 외부의 중요한 종속물들(예를 들어, RF 필터들)이 적절한 상태에 있는 것을 또한 보장할 수 있다. 하나 이상의 실시예들에서, SOC(234B)는 또한 SOC(234C)를 대신하여 활동을 실행하도록 인가될 수 있다.
일부 다른 실시예들에서, 멀티드롭 버스(220) 및 버스 인터페이스(502)를 통해 SOC(234B)로부터 인가 요청을 수신한 후, 프로세서(504)는 ISR(interrupt service routine)을 개시할 수 있다. 프로세서(504) 상에서 실행되는 ISR은, 예를 들어, 공존 허브 디바이스(212) 내의 활성인 동작 정책(352)에 기초하여 SOC(234B)에 대한 적절한 응답 신호를 생성하는 소프트웨어 기반 중재자를 나타낸다. 실시예에서, ISR은 SOC(234B)에서의 요청된 활동을 인가하는 SOC(234B)에 대한 인가 신호를 생성할 수 있다. 다른 실시예에서, ISR은 요청된 활동을 위한 자원(들)에 대한 SOC(234B)에 의한 액세스를 거부하는 SOC(234B)에 대한 거부 신호를 생성할 수 있다. 또 다른 실시예에서, ISR은, 예를 들어, SOC(234B) 및 SOC(234C)가 상호 협동하거나, 스케줄링된 활동 또는 컴포넌트(들)의 상태의 변화가 발생할 정확한 시간에 대한 정보를 교환하거나, 일부 다른 조정을 수행할 수 있음을 보장하는, 양립가능한 상태들로 SOC(234B) 및/또는 SOC(234C)의 외부 컴포넌트들(예를 들어, RF 필터들)을 설정하는, 활동의 인가/거부와는 상이한 SOC(234B)와 SOC(234C) 사이의 활동들을 조정하기 위한 조정 신호를 생성할 수 있다.
SOC(234C)의 프로세서(504)는 응답 신호(예를 들어, 인가 신호, 거부 신호, 또는 조정 신호)를 GPIO들(228C)을 통해 SOC(234B)의 프로세서(412)에 전송할 수 있다. 일 실시예에서, SOC(234C)의 프로세서(504)는, SOC(234B)가 요청된 활동을 실행하도록 인가된다고 (예를 들어, 중재자(506)에 의해 또는 ISR을 통해) 결정한 후, SOC(234B)가 요청된 활동을 실행하도록 인가하는 인가 신호를 GPIO들(228C)을 통해 프로세서(412)에 전송한다. GPIO들(228C)을 통한 통신은 멀티드롭 버스(220)를 통한 통신에 비해 더 낮은 레이턴시를 가지며, 따라서 GPIO들(228C)을 사용하여 인가 신호를 전송하는 것은 SOC들(234B, 234C)이 자원들을 사용하는 것과 연관된 시간에 민감한 동작들을 조정할 수 있게 한다. GPIO들(228C)을 통해 SOC(234C)로부터 수신된 인가 신호에 기초하여, SOC(234B)는, 예를 들어, 임계 기간 미만의 기간 동안, SOC(234C)의 하나 이상의 자원들을 사용하여 활동을 수행할 수 있다. 다른 실시예에서, SOC(234C)의 프로세서(504)는, SOC(234B)가 요청된 활동을 실행하도록 인가되지 않는다고 (예를 들어, 중재자(506)에 의해 또는 ISR을 통해) 결정한 후, 요청된 활동의 실행을 위한 자원(들)을 SOC(234B)에 대해 거부하는 거부 신호를 GPIO들(228C)을 통해 프로세서(412)에 전송한다.
또 다른 실시예에서, SOC(234C)의 프로세서(504)는, 활동의 인가/거부 이외의, SOC(234B)와 SOC(234C) 사이의 활동들의 조정을 위한 하나 이상의 조정 신호들을 GPIO들(228C)을 통해 프로세서(412)와 교환할 수 있다. GPIO들(228C)을 통해 전송된 하나 이상의 조정 신호들은 SOC(234B)와 SOC(234C) 사이의 통신의 상이한 계층들 또는 부분들이 GPIO들(228C) 및 멀티드롭 버스(220)를 통해 송신되게 할 수 있다. 예를 들어, SOC(234B)와 SOC(234C) 사이의 시간에 민감하지 않은 신호들은 멀티드롭 버스(220)를 통해 전송될 수 있는 반면, 시간에 민감한 신호들은 GPIO들(228C)을 통해 통신될 수 있다.
일부 실시예들에서, SOC(234B)의 프로세서(412)가 버스 인터페이스(404) 및 멀티드롭 버스(220)를 통해 인가 요청을 전송한 후, SOC(234C)의 프로세서(504)는 제1 시간 제한 미만의 제1 레이턴시로 버스 인터페이스(502) 및 멀티드롭 버스(220)를 통해 인가 요청을 수신한다. 인가 요청을 수신한 후, 프로세서(504)는 또한 제2 시간 제한 미만의 제2 레이턴시로 GPIO들(228C)을 통해 인가 신호(또는 거부 신호)를 전송할 수 있다. 제2 시간 제한은 제1 시간 제한보다 짧을 수 있다. 프로세서(504)는 프로세서(504)의 로컬 타이밍에 따라 GPIO들(228C)을 통해 인가 신호를 전송할 수 있으며, 이는 프로세서(504)가 인가 요청을 수신하는 즉시 또는 프로세서(504)의 내부 타이머를 사용하여 인가 요청을 수신한 후 정의된 기간 내에 GPIO들(228C)을 통해 통신할 트랜잭션들을 인큐잉(enqueuing)할 수 있음을 의미한다. 프로세서(504)는 인가 요청을 수신한 후 정의된 시간 제한 내에 수신된 인가 요청을 프로세싱할 수 있다.
프로세서(504)는 SOC(234B)가, SOC(234B)의 활동 동안 사용되고 있는 하나 이상의 자원들(예를 들어, 매체, 통신 대역, RF 안테나 등)을 해제(release)하기 위한 요청을 GPIO들(228C)을 통해 전송할 수 있다. 하나 이상의 실시예들에서, 프로세서(504) 또는 프로세서(412)는 SOC(234B) 또는 SOC(234C) 사이의 자원들의 조정(예를 들어, SOC(234B) 및/또는 SOC(234C)의 RF 필터들을 적절한 상태들로 설정, 또는 하나의 서브시스템에 의한 RF 안테나의 사용을 제한)을 위한 조정 신호를 GPIO들(228C)을 통해 다른 서브시스템에(예를 들어, SOC(234B)에 또는 SOC(234C)에) 전송할 수 있으며, 이에 따라, 2개의 서브시스템들이 양립가능하고 활동들을 서로 조정할 수 있게 된다. 하나 이상의 다른 실시예들에서, GPIO들(228C)은 2개의 서브시스템들 사이의 조정 동작으로서 SOC(234B)와 SOC(234C) 사이의 중요한 차단 활동을 시그널링하는 데 사용될 수 있다. 그러한 경우, 차단 신호는, 사전 동의된 허락된 작업들의 세트로부터의 작업이, 예를 들어, SOC(234B)에서 곧 수행될 것임을 나타내기 위해 GPIO들(228C)을 통해 전송될 수 있다. GPIO들(228C)을 통해 이전에 시그널링된 중요한 차단 활동에 기초하여, SOC(234C)는 정의된 시간 제한 내의 하나 이상의 자원들의 사용을 포기할 수 있다. 이어서, SOC(234C)는 GPIO들(228C)을 통해 인가 신호를 전송하여, SOC(234B)가 하나 이상의 자원들을 인수받아 SOC(234B)의 중요한 작업을 수행할 수 있게 할 수 있다.
프로세서(504)는 또한, SOC(234B)의 활동 동안 SOC(234C)의 적어도 하나의 자원의 상태를 모니터링할 수 있다. SOC(234B)의 활동 동안, 프로세서(504)는 멀티드롭 버스(220) 및 버스 인터페이스(502)를 통해 SOC(234B)로부터 다른 인가 요청을 수신할 수 있다. 다른 인가 요청은 SOC(234C)의 적어도 하나의 자원을 사용하여 SOC(234B)에서 다른 활동을 수행하기 위한 인가를 구할 수 있다. 적어도 하나의 자원의 모니터링된 상태에 기초하여, 프로세서(504)는 SOC(234B)에 대한 적절한 응답 신호, 예를 들어, 인가 신호 또는 거부 신호를 (예를 들어, 중재자(506)를 통해) 생성할 수 있다. 프로세서(504)는 적절한 응답 신호(예를 들어, 인가 신호 또는 거부 신호)를 GPIO들(228C)을 통해 프로세서(412)에 전송할 수 있다. 응답 신호는, SOC(234C)가 적어도 하나의 자원을 인수하도록 SOC(234B)가 허락할 수 있기 전에, 예를 들어, 네트워크 프로토콜에 따라 완료될, SOC(234B)의 적어도 하나의 자원(예를 들어, 하나 이상의 공유 무선 컴포넌트들) 상에서의 하나 이상의 현재 액션들을 고려하여 시간 지연될 수 있다.
본 개시내용의 실시예들에 따르면, SOC(234B) 및 SOC(234C)는 멀티드롭 버스(220) 및 GPIO들(228C)을 통해 동적으로 연결되어, SOC(234B) 및 SOC(234C) 둘 모두가, 서로 조정하기 위해, 멀티드롭 버스(220) 및 GPIO들(228C)을 통해 메시지들을 교환할 수 있게 한다. 조정은 SOC(234B) 및 SOC(234C) 중 하나에서의 활동의 인가 및 거부로 제한되지 않는다. GPIO들(228C)은 또한 SOC(234B) 및 SOC(234C)에서의 활동들의 다른 조정에 대해서도 사용될 수 있는데, 여기서 SOC(234B) 및 SOC(234C)의 외부 컴포넌트들(예를 들어, RF 프론트 엔드(RF front-end)들의 필터들)은, 예를 들어, GPIO들(228C)을 통해 교환되는 하나 이상의 메시지들에 기초하여, 알려진/양립가능한 상태에 있도록 설정된다. 따라서, GPIO들(228C)은, 2개의 서브시스템들(예를 들어, SOC(234B) 및 SOC(234C))의 조정된 동작들을 위해, 하나의 서브시스템이 다른 서브시스템의 프론트 엔드의 상태를 제어하는 것을 확실히 하기 위한 메커니즘을 나타낸다. GPIO들(228C)은 (단독으로 또는 멀티드롭 버스(220)와 함께) 다수의 서브시스템들(예를 들어, SOC(234B) 및 SOC(234C))의 상호 종속적 자원들을 제어하기 위한 실시간 시그널링에 사용될 수 있으며, 이에 따라, 하나의 서브시스템(예를 들어, SOC(234B))이 다른 서브시스템(예를 들어, SOC(234C)) 상의 하나 이상의 종속적 자원들을 직접 제어할 수 있게 되어, 하나 이상의 종속적 자원들이 양립가능한 상태에 있게 한다.
대안적으로 또는 추가적으로, GPIO들(228C)은, 송신기 경로를 블랭킹(blanking)하는 것, 대응하는 서브시스템 상에서 사용 중인 송신 안테나를 변화시키는 것, 대응하는 서브시스템의 하나 이상의 프론트 엔드 컴포넌트들을 제어하는 것, 대응하는 서브시스템의 중요한 상태를 제어하는 것, 활동이 다른 서브시스템 상에서 발생하는 것을 허락하는 것, 또는 일부 다른 조정과 같은, 대응하는 서브시스템(예를 들어, SOC(234B)) 상에서의 활동을 제어하는 데 이용될 수 있다. SOC(234C)는 GPIO들(228C)을 통해 실시간으로, SOC(234B)가 이제 요청된 자원(들)(예를 들어, 매체, 통신 대역 등)을 능동적으로 재사용하도록 인가됨을 나타내는 표시 신호를 SOC(234B)에 전송할 수 있다. 또한, SOC(234C)는, SOC(234B)가 임계 우선순위보다 더 낮은 우선순위를 갖는 임의의 작업을 수행하는 것을 차단하기 위한 차단 신호를 GPIO들(228C)을 통해 SOC(234B)에 전송할 수 있으며, 이에 따라, 임계 우선순위보다 더 높은 우선순위들을 갖도록 사전 정의된 작업들(예를 들어, SOC(234B)와 SOC(234C) 사이의 통신 링크의 보존과 관련된 임의의 작업)만이 SOC(234B)에서 실행되도록 허락되게 된다. 추가로, SOC(234B)에서의 활동이 SOC(234C)에 의해 미리결정된 횟수만큼 거부되는 것에 응답하여, SOC(234C)는 SOC(234B)가 활동을 수행하도록 마침내 인가하는 인가 신호를 GPIO들(228C)을 통해 전송할 수 있다.
일부 실시예들에서, GPIO들(228C)은, SOC(234B) 및 SOC(234C)의 동작들을 조정하기 전에, SOC(234B)와 SOC(234C) 사이에서 하나 이상의 메시지들을 전송하는 데 이용될 수 있다. GPIO들(228C)은 변화 및/또는 액션이 다른 서브시스템 상에서 발생할 정확한 시간 인스턴트를, 하나 이상의 메시지들 내에서 전달할 수 있다. 따라서, GPIO들(228C)을 통해 전송되는 신호들은 SOC(234B) 및/또는 SOC(234C)가 소정 액션들을 취하게 하는 중요한 "액션 트리거"를 나타낸다. GPIO들(228C)은, 프로세서들(412) 및/또는 프로세서(504)가 물리적 계층의 더 낮은 레벨에 의해 관리되는 정확한 타이밍에 대한 콘텍스트를 갖지 않을 수 있도록, 멀티드롭 버스(220)를 통한 공존 메시징이, 예를 들어, SOC(234B)의 프로세서(412) 및/또는 SOC(234C)의 프로세서(504)에서 실행되는 소프트웨어의 상이한 부분들에 의해 수행되는, 서브시스템들에 대해 특히 유용할 수 있다. 그러한 경우에, GPIO들(228C)은, SOC(234B)와 SOC(234C) 사이에 공존 메시지들을 전달함으로써, SOC(234B)와 SOC(234C) 사이의 조정 통신을 용이하게 한다.
일부 실시예들에서, 공존 허브 디바이스(212)는, 하나 이상의 자원들(예를 들어, 매체, 주파수 대역 등)이 SOC(234B)에 의해 하나 이상의 다른 서브시스템들로 해제될 수 있게 되는 시간을 나타낼 타이밍 정보에 대한 요청을, 예를 들어, GPIO들(228B)을 통해 SOC(234B)에 전송할 수 있다. 요청에 응답하여, SOC(234B)는, SOC(234B)가 하나 이상의 자원들을 해제할 수 있는 시간에 대해 공존 허브 디바이스(212)에게 알리는 응답을, GPIO들(228B)을 통해 공존 허브 디바이스(212)에 송신할 수 있다. 공존 허브 디바이스(212)는, SOC(234B)가 그의 자원들을 해제할 것임을 나타내기 위한 응답을 GPIO들(228B)을 통해 비동기식으로 전송하도록 (GPIO들(228B)을 통해 전송되는 요청을 통해) SOC(234B)에 요청할 수 있다.
멀티드롭 버스(220)를 갖는 전자 디바이스(100)는 일부 컴포넌트들(예를 들어, SOC(234B) 및/또는 SOC(234C))을 포함할 수 있으며, 여기서, 레거시 설계로 인해, 이러한 컴포넌트들은 멀티드롭 버스(220)를 통한 통신 프로토콜을 지원하지 않을 수 있다. 본 개시내용의 실시예들은, 멀티드롭 버스(220)를 갖는 전자 디바이스(100)에 통합될 수 있는, GPIO 연결들만을 갖는 저비용 외부 컴포넌트들(예를 들어, SOC(234B) 및/또는 SOC(234C))을 지원한다. 이러한 외부 컴포넌트들(예를 들어, SOC(234B) 및/또는 SOC(234C))은 공존 허브 디바이스(212)의 중재자(322) 또는 그 자신의 중재자(예를 들어, SOC(234C)의 중재자(506))를 이용하여 GPIO 연결들(예를 들어, GPIO들(228C))을 관찰할 수 있으며, 이에 따라, 대응하는 외부 컴포넌트(예를 들어, SOC(234C))가 다른 외부 컴포넌트(예를 들어, SOC(234B))와 공존할 수 있게 되고, 여기서, 예를 들어, SOC(234B) 및 SOC(234C)는 하나 이상의 자원들(예를 들어, 주파수 대역, 매체 등)의 공유된 사용 또는 상호 양립불가능한 사용의 면에서, 전자 디바이스(100)의 모든 서브시스템들 중에서 가장 노출이 많이 된다. GPIO 연결들(예를 들어, GPIO들(228C))은, 더 낮은 비용의 서브시스템들(예를 들어, SOC(234B) 및/또는 SOC(234C))이 전자 디바이스(100)의 더 정교한 서브시스템들(예를 들어, 공존 허브 디바이스(212) 및/또는 SOC(234A))과 함께 협동하고 기능할 수 있게 할 수 있다.
하나 이상의 실시예들에서, SOC(234B)는 요청된 활동을 실행하기 위한 가정된 인가로 진행한다. 그러한 경우에, SOC(234B)는 SOC(234C)에 의한 암시적 응답을 가정하여 SOC(234B)의 의도된 액션을 (예를 들어, GPIO들(228C)을 통해) SOC(234C)에 단순히 통지할 수 있다. 하나 이상의 다른 실시예들에서, SOC(234B)는 활동의 실행을 위한 인가를 구하는 인가 요청을 멀티드롭 버스(220) 또는 GPIO들(228C)을 통해 SOC(234C)에 전송하고, 조건들이 허락되는 경우, SOC(234B)는 활동을 완료하기 위해 SOC(234C)에 의존할 수 있다.
공존 동작을 조정하는 예시적인 프로세스
도 6은 일 실시예에 따른, 전자 디바이스(100) 내의 컴포넌트들의 동작들 및 상호작용들을 예시하는 상호작용 도면이다. 도 6의 상호작용 도면은 SOC(234B)와 SOC(234C)(또는 공존 허브 디바이스(212)) 사이의 조정과 같은, 전자 디바이스(100)의 한 쌍의 컴포넌트들 사이의 조정 동작들의 예를 예시한다.
SOC(234B)의 스케줄러 런(scheduler run)(602)의 기간 동안, SOC(234B)는 (예를 들어, 멀티드롭 버스(220)를 통해) SOC(234C)에 웨이크업 메시지를 전송할 수 있다(604). 웨이크업 메시지를 수신한 후, SOC(234C)는 웨이크업하고(606), 그의 컴포넌트 디바이스들 또는 그의 서브세트를 턴온할 수 있다. 각각의 스케줄러 런(602) 동안, SOC(234B)는 전자 디바이스(100)의 다른 컴포넌트(예를 들어, SOC(234C) 또는 공존 허브 디바이스(212))와의 조정을 개시할 수 있다(608).
동일한 스케줄러 런(602) 동안, SOC(234B)는 SOC(234B)의 스케줄링된 활동이 수행되어야 하는지 여부를 결정할 수 있다(610). SOC(234B)가 스케줄링된 활동을 수행하기로 결정하는(610) 경우, 예를 들어, 일단 웨이크업(606)이 완료된다고 결정되면, SOC(234B)는 멀티드롭 버스(220)를 통해 SOC(234C)(또는 공존 허브 디바이스(212))로 스케줄링된 활동을 수행하기 위한 요청을 전송할 수 있다(612). 요청은 활동 파라미터들에 대한 하나 이상의 정보, 예를 들어, SOC(234B)의 스케줄링된 활동 동안 사용하기 위해 해제되도록 요청된 SOC(234C) 또는 공존 허브 디바이스(212)의 하나 이상의 자원들에 대한 정보를 포함할 수 있다. 요청의 일부로서 전송된 활동 파라미터들은 SOC(234C) 또는 공존 허브 디바이스(212)의 공유 메모리(예를 들어, 공유 메모리 섹션(320))에 기입될 수 있다. SOC(234B)가 요청을 전송한 후 제1 시간 제한 내에, SOC(234C)(또는 공존 허브 디바이스(212))는 멀티드롭 버스(220)를 통해 요청을 수신할 수 있다. SOC(234B)는, GPIO들(228C)을 통해, SOC(234C) 또는 공존 허브 디바이스(212)에 활동 파라미터들에 대한 정보를 추가로 전송할 수 있다(614). 실시예에서, SOC(234B)는, SOC(234C)에서의 스케줄링된 활동을 위한 준비 시에, SOC(234C)의 RF 프론트 엔드가 활성 상태로 설정된다는 표시를 SOC(234C)(또는 공존 허브 디바이스(212))에 전송할 수 있다(614).
일 실시예에서, SOC(234B)에서의 스케줄링된 활동을 수행하기 위한 요청의 수신 시, SOC(234C)(또는 공존 허브 디바이스(212))는 SOC(234C)의 프로세서(508)(또는 공존 허브 디바이스(212)의 프로세서(304)) 상에서 실행될 수 있는 ISR을 개시한다(616). ISR 동안, SOC(234C)(또는 공존 허브 디바이스(212))는 SOC(234B)에서의 스케줄링된 활동을 인가할지 또는 아닐지 여부를 결정할 수 있고, SOC(234C)(또는 공존 허브 디바이스(212))는 SOC(234B)에 대한 적절한 응답 메시지를 생성한다. 다른 실시예에서, SOC(234B)에서의 스케줄링된 활동을 수행하기 위한 요청의 수신 시, SOC(234C)의 중재자(510)(또는 공존 허브 디바이스(212)의 중재자(322))는 애플리케이션 프로세서(208)로부터 수신된 동작 정책을 실행하고, SOC(234B)가 스케줄링된 활동을 실행하도록 인가되는지 여부를 결정한다(618). SOC(234C)(또는 공존 허브 디바이스(212))는 SOC(234C)(또는 공존 허브 디바이스(212))의 스케줄러 활동(620)(예를 들어, WiFi 스케줄러 활동) 동안 SOC(234B)가 스케줄링된 활동을 실행하도록 인가되는지 여부를 결정한다(618). SOC(234B)가 스케줄링된 활동을 실행하도록 인가되는지 여부의 결정(618)이 내려진 후, SOC(234C)(또는 공존 허브 디바이스(212))는 GPIO들(228C)(또는 GPIO들(228B))을 통해 SOC(234B)에 응답 메시지를 전송한다(622). 실시예에서, 응답 메시지는 SOC(234B)가 스케줄링된 활동을 실행하도록 인가하는 인가 신호를 포함한다. 다른 실시예에서, 응답 메시지는 스케줄링된 활동이 인가되지 않는다는 것 그리고 요청된 자원(들)이 SOC(234B)에게 해제될 수 없다는 것을 SOC(234B)에게 나타내는 거부 메시지를 포함한다. 거부 메시지는 스케줄링된 활동의 시작에 앞서 활성화된 임의의 자원(예를 들어, RF 프론트 엔드)을 턴오프하도록 SOC(234B)에게 지시하는 "셧다운 신호"를 추가로 포함할 수 있다. SOC(234B)에서의 스케줄링된 활동을 인가하기 위한 요청을 수신한 후, SOC(234C)(또는 공존 허브 디바이스(212))는 제2 시간 제한(예를 들어, 제1 시간 제한보다 짧음) 내에 GPIO들(228C)(또는 GPIO들(228B))을 통해 응답 메시지를 전송한다(622).
도 7은 일 실시예에 따른, 공유 버스를 통한 전자 디바이스(100) 내의 컴포넌트들의 조정을 예시하는 타이밍도이다. 도 7에 도시된 실시예에서, SOC(234B) 및 SOC(234C)는 공유 버스, 예를 들어, GPIO들(228C)과 결합된 멀티드롭 버스(220)를 통해 그들의 활동들을 조정할 수 있다. 대안적으로, 멀티드롭 버스(220)를 사용하는 대신에, SOC(234B) 및 SOC(234C)는 점대점 연결 및 GPIO들(228C)을 통해 그들의 활동들을 조정할 수 있다. 시간 인스턴트 T1 전에, SOC(234B)는, 예를 들어, 멀티드롭 버스(220) 또는 GPIO들(228C)을 통해 SOC(234C)에 하나 이상의 자원들(예를 들어, 통신 대역, 매체 등)에 대한 요청을 전송할 수 있다. 시간 인스턴트 T1에서, SOC(234B)는 GPIO들(228C)을 어써트하고(702), SOC(234C)로부터 하나 이상의 자원들의 일시적인 제어 권한을 얻는다. 어써트(702)는 SOC(234B)에 의한 하나 이상의 자원들의 일시적인 사용에 대한 인가를 나타낸다. 어써트(702)를 관찰하면, SOC(234C)는 SOC(234B)에 의해 요청되었던 하나 이상의 자원들을 해제한다(704). 예를 들어, SOC(234C)는 정의된 기간 내에 그 자신의 RF 경로들을 디스에이블시키거나, 사용 중인 그의 무선 안테나들을 변화시키거나, 그의 송신 전력을 변화시켜, SOC(234B)가 하나 이상의 활동들을 시작하도록 허락할 수 있다. SOC(234C)가 임계 우선순위보다 더 높은 우선순위를 갖는 스케줄링된 활동을 갖는 경우, SOC(234C)는 (예를 들어, 시간 인스턴트 T2에서) GPIO들(228C)을 어써트할 수 있고, SOC(234B)는 스케줄링된 활동을 수행하는 데 요구된 이전에 해제된(또는 디스에이블된) 자원을 SOC(234C)가 인수하도록 허락할 것(예를 들어, SOC(234C)의 RF 경로들을 인에이블함)이라는 것에 유의한다.
SOC(234B)는 적어도 SOC(234C)에 의해 해제된 하나 이상의 자원들을 사용하여 요청된 활동을 실행한다(706). SOC(234B)는, SOC(234C)에서의 하나 이상의 자원들의 사용을 위한 암시된 인가 시간이 만료되었다는 정보에 기초하여 시간 인스턴트 T1에서 요청된 활동을 개시할 수 있다. 암시된 거동은 SOC(234B)가 암시적 우선순위에 기초하여 항상 하나 이상의 자원들을 획득할 수 있다는 것이다. 그러나, SOC(234C)는 미리 정의된 작업들의 세트에 대한 그 자신의 요구들을 (예를 들어, GPIO들(228C)을 통해) 어써트할 수 있고, 이전에 SOC(234B)에게 해제된 자원들 중 적어도 일부를 다시 얻을 수 있다. 대안적으로, SOC(234B)는, 시간 인스턴트 T1에서 멀티드롭 버스(220)를 통해, 활동에 대한 높은 우선순위 콘텍스트를 나타내는 신호를 전송함으로써 요청된 활동을 개시할 수 있으며, 이는 SOC(234C)에 의해 자원들을 해제하는 액션이 발생할 필요가 있을 때의 시간 인스턴트에 대한 정보를 갖는 다른 신호의, GPIO들(228C)을 통한 SOC(234C)로의 송신과 결합될 수 있다.
시간 인스턴트 T2에서, SOC(234C)는 이용가능한 자원들을 사용하여 그 자신의 활동의 실행을 개시한다(708). 대안적으로, SOC(234B) 및 SOC(234C)는, 활동의 우선순위를 고려하여, SOC(234C)의 활동의 실제 시간(real time)을 미리 협상하기 위해 멀티드롭 버스(220)를 통해 통신할 수 있다. 이어서, SOC(234B) 및 SOC(234C)는 GPIO들(228C)을 이용함으로써 실시간 조정을 위한 더 양호한 커플링을 동적으로 조정할 수 있다. 시간 인스턴트 T3에서, SOC(234B)는, 예를 들어, 멀티드롭 버스(220) 또는 GPIO들(228C) 중 하나를 통해, SOC(234B)에 의해 수행될 다른 활동을 위한 적어도 하나의 자원(예를 들어, 통신 대역)에 대한 다른 요청을 전송한다. 그러나, SOC(234C)가 다른 활동의 것보다 더 높은 우선순위를 갖는 활동을 실행(예를 들어, SOC(234C)에서의 중요한 기능의 실행)하고 있기 때문에, 다른 활동에 대한 요청은 SOC(234C)에 의해 거부되거나 무시된다. 다른 요청의 수신 시, SOC(234C)는 멀티드롭 버스(220)를 통해 다른 활동을 위한 자원(들)의 거부를 나타내는 신호를 전송한다(710). 대안적으로, SOC(234B)에서의 다른 활동의 거부는, GPIO들(228C)이 SOC(234B)와 SOC(234C) 사이의 활동들의 조정을 위해 이용될 때 암시되며, 여기서 SOC(234B) 및 SOC(234C)가 GPIO들(228C) 상에서의 상이한 신호 전이들에 대해 어떻게 반응하는지에 대한 미리정의된 규칙들 및 예상들이 존재한다.
적어도 하나의 요청된 자원을 사용하는 SOC(234C)에 의해 현재 실행되고 있는 활동의 우선순위가 SOC(234B)에 의해 수행되도록 요청된 다른 활동의 우선순위보다 더 높은 우선순위를 갖는다는 결정에 기초하여, SOC(234C)는 (예를 들어, 중재자(510)를 통해) 거부 신호를 생성할 수 있다. SOC(234B)는, SOC(234C)로부터 임의의 응답을 수신하기 전이라도, 예를 들어, 시간 인스턴트 T3에서, (예를 들어, RF 프론트 엔드의 활성화와 같은, 다른 활동을 위한 그 자신의 자원(들)을 활성화함으로써) 다른 활동을 개시할 수 있다. 그러나, 멀티드롭 버스(220)를 통한 거부 신호의 수신(710) 시, SOC(234B)는 무시/거부된 활동과 연관된 임의의 자원(들)을 셧다운(예를 들어, 비활성화)(712)할 수 있으며, 이에 따라, 시간 인스턴트 T4에서 무시/거부된 활동을 효과적으로 종료할 수 있다.
도 8a는 일 실시예에 따른, 전자 디바이스(100)의 한 쌍의 서브시스템들 사이의 조정에 대한 블록도이다. 도 8a의 예시적인 실시예에서, SOC(234C)는 멀티드롭 버스(220)를 통해 공존 허브 디바이스(212)와 조정하여, SOC(234B)에 대해 자원(예를 들어, 매체)에 대한 액세스를 승인(또는 거부)한다. 이러한 예시적인 실시예에서, SOC(234B)는 GPIO들(228C)을 통해 SOC(234C)에 직접 결합되고, SOC(234B)는 멀티드롭 버스(220)에 대한 어떠한 직접적인 연결도 갖지 않는다는 점에 유의해야 한다. 따라서, SOC(234B)는 자원에 대한 액세스를 위해 SOC(234C)에 상호 종속한다. 자원에 대한 액세스를 SOC(234B)에 승인하는 SOC(234C)의 능력은, 예를 들어, 멀티드롭 버스(220)를 통한 공존 허브 디바이스(212)와의 조정을 요구할 수 있다.
도 8b는 일 실시예에 따른, 도 8a로부터의 컴포넌트들의 조정을 예시하는 타이밍도이다. 일부 시점에서, SOC(234B)는 요청된 활동을 수행하기 위한 자원에 대한 액세스를 획득하기 위해 SOC(234C)로부터의 인가를 구하는 활동에 대한 요청을, GPIO들(228C)을 통해(예를 들어, GPIO들(228C) 중 하나를 통해) SOC(234C)에 전송할 수 있다(802). 활동에 대한 요청을 전송하는 것(802)과 동시에 또는 거의 동시에, SOC(234B)는 요청된 활동과 관련하여 우선순위 신호/지속성 신호를 GPIO들(228C)을 통해 SOC(234C)에 전송할 수 있다(804). 실시예에서, 우선순위 신호 및 지속성 신호는 SOC(234B)로부터 SOC(234C)로, 예를 들어, GPIO들(228C) 중 하나를 통한 단일 신호로서 전송된다. 다른 실시예에서, 우선순위 신호 및 지속성 신호는 SOC(234B)로부터 SOC(234C)로, 예를 들어, 한 쌍의 GPIO들(228C)을 통한 2개의 별개의 신호들로서 전송된다. 예를 들어, SOC(234C)의 중재자(506)에 의해 수행된 내부 중재 후, SOC(234C)는 SOC(234B)에 대한 적절한 응답을 생성할 수 있다. 내부 중재 및 응답의 생성은 시간 ΔT(예를 들어, ΔT ≤ 30μs) 내에 수행될 수 있다. 시간 ΔT 후, SOC(234C)는 GPIO들(228C)을 통해 SOC(234B)에 승인/거부를 전송하여, 요청된 자원에 대한 액세스를 SOC(234B)에 대해 승인 또는 거부할 수 있다(806). 이는, SOC(234C)가 SOC(234B)에 의한 요청에 대해, 요청된 자원(예를 들어, 매체)에 대한 액세스를 승인하도록 자율적으로 결정할 수 있는 경우에, 전형적이다.
하나 이상의 실시예들에서, 예를 들어, 공존 허브 디바이스(212)가 멀티드롭 버스(220)를 통해 SOC(234C)에게, 공존 허브 디바이스(212)가 SOC(234B)에 의해 요청된 자원을 현재 사용한다고(또는 정의된 기간에 사용하려고 의도한다고) 알리는 경우, SOC(234C)는 자원에 대한 액세스를 거부할 수 있다(806). SOC(234C)가 SOC(234B)에게 거부 응답을 전송할(806) 경우, 활동에 대한 요청 및 우선순위/지속성 신호들은 GPIO들(228C) 상에 더 이상 어써트되지 않을 수 있고, GPIO들(228C) 상에서의 활동에 대한 요청 및 우선순위/지속성 신호들의 어써트는 정의된 기간 후에 반복될 필요가 있을 수 있다. 하나 이상의 다른 실시예들에서, 예를 들어, 공존 허브 디바이스(212)가 멀티드롭 버스(220)를 통해 SOC(234C)에게, 공존 허브 디바이스(212)가 SOC(234B)에 의해 요청된 자원을 현재 사용하고 있지 않다고(또는 정의된 기간에 사용하려고 의도하지 않는다고) 알리는 경우, SOC(234C)는 자원에 대한 액세스를 승인할 수 있다(806).
도 9a는 일 실시예에 따른, 전자 디바이스(100)의 한 쌍의 서브시스템들 사이의 조정에 대한 다른 블록도이다. 도 9a의 예시적인 실시예에서, SOC(234C)는 멀티드롭 버스(220)를 통해 공존 허브 디바이스(212)와 조정하여, SOC(234B)에 대해 적어도 하나의 공유(또는 상호 종속적) 자원(902)에 대한 액세스를 승인한다. 적어도 하나의 공유 자원(902)은 연결(904)을 통해 SOC(234C)에 결합될 수 있다. 이러한 예시적인 실시예에서, SOC(234B)는 GPIO들(228C)을 통해 SOC(234C)에 직접 결합되고, SOC(234B)는 멀티드롭 버스(220)에 대한 어떠한 직접적인 연결도 갖지 않으며, 적어도 하나의 자원(902)은 SOC(234B)와 SOC(234C) 사이에 공유될(상호 종속적일) 수 있다는 점에 유의해야 한다. SOC(234B)는 전형적으로, SOC(234C)와 독립적으로 동작할 수 있다. 그러나, 적어도 하나의 공유(상호 종속적) 자원(902)(예를 들어, 하나 이상의 RF 대역들)에 대한 액세스를 승인하기 위해, 적어도 하나의 공유 자원(902)의 제어를 위한 멀티드롭 버스(220)를 통한 SOC(234C)와 공존 허브 디바이스(212) 사이의 협동이 중요할 수 있다. 공존 허브 디바이스(212)는 또한, 적어도 하나의 공유 자원(902)에 상호 종속적일 수 있다. SOC(234C)의 중재자(506)는 공존 허브 디바이스(212), SOC(234B) 및 SOC(234C)로부터의 입력들을 듣고, 어느 것이 적어도 하나의 공유 자원(902)에 액세스하기에 선호되는 상태에 있는지를 결정하도록 구성될 수 있다.
도 9b는 일 실시예에 따른, 도 9a로부터의 컴포넌트들의 조정을 예시하는 타이밍도이다. 일부 시점에서, SOC(234B)는 요청된 활동을 수행하기 위한 적어도 공유된 자원(902)에 대한 액세스를 획득하기 위해, SOC(234C)로부터의 인가를 구하는 활동에 대한 요청을 GPIO들(228C)을 통해(예를 들어, GPIO들(228C) 중 하나를 통해) SOC(234C)에 전송할 수 있다(912). 활동에 대한 요청을 전송하는 것(912)과 동시에 또는 거의 동시에, SOC(234B)는 요청된 활동과 관련하여 우선순위 신호/지속성 신호를 GPIO들(228C)을 통해 SOC(234C)에 전송할 수 있다(914). 실시예에서, 우선순위 신호 및 지속성 신호는 SOC(234B)로부터 SOC(234C)로, 예를 들어, GPIO들(228C) 중 하나를 통한 단일 신호로서 전송된다. 다른 실시예에서, 우선순위 신호 및 지속성 신호는 SOC(234B)로부터 SOC(234C)로, 예를 들어, 한 쌍의 GPIO들(228C)을 통한 2개의 별개의 신호들로서 전송된다. 동시에, SOC(234C)는 적어도 하나의 공유 자원(902)에 대한 액세스를 위해, 멀티드롭 버스(220)를 통해 외부 디바이스(예를 들어, 공존 허브 디바이스(212))와의 조정을 수행할 수 있다(916).
시나리오(910)에서, 예를 들어, SOC(234C)의 중재자(506)에 의해 수행되는 내부 중재 및 멀티드롭 버스(220)를 통한 공존 허브 디바이스(212)와의 조정 후, SOC(234C)는 SOC(234B)에 대한 적절한 응답을 생성할 수 있다. 응답의 생성 및 외부 조정의 적어도 일부분과 함께 내부 중재는 시간 ΔT(예를 들어, ΔT≥ 50μs) 내에 수행될 수 있다. 시간 ΔT 후, SOC(234C)는 GPIO들(228C)을 통해, SOC(234B)에게 승인/거부를 전송하여, SOC(234B)가 적어도 하나의 공유 자원(902)에 액세스하는 것을 승인 또는 거부할 수 있다(918). 하나 이상의 실시예들에서, 예를 들어, 공존 허브 디바이스(212)와의 조정을 통해, 중재자(506)가 공존 허브 디바이스(212)가 현재 적어도 하나의 공유 자원(902)을 사용한다는(또는 정의된 기간에 사용하려고 의도한다는) 것을 아는 경우, SOC(234C)는 적어도 하나의 공유 자원(902)에 대한 액세스를 거부할 수 있다(918). 하나 이상의 다른 실시예들에서, 예를 들어, 공존 허브 디바이스(212)와의 조정을 통해, 중재자(506)가 공존 허브 디바이스(212)가 현재 적어도 하나의 공유 자원(902)을 사용하고 있지 않다는(또는 정의된 기간에 사용하려고 의도하지 않는다는) 것을 아는 경우, SOC(234C)는 적어도 하나의 공유 자원(902)에 대한 액세스를 SOC(234B)에 승인할 수 있다(918).
대안적으로, 시나리오(920)에서, 예를 들어, SOC(234C)의 중재자(506)에 의해 수행되는 내부 중재 및 멀티드롭 버스(220)를 통한 공존 허브 디바이스(212)와의 외부 조정 후, SOC(234C)는 새로운 상태로의 적어도 하나의 공유 자원(902)의 구성을 수행할 수 있다(922). 외부 조정의 적어도 일부분과 함께 내부 중재는 시간 ΔT(예를 들어, ΔT≥ 50μs) 내에 수행될 수 있다. 적어도 하나의 공유 자원(902)의 새로운 상태는 SOC(234B)에 의해 요청된 활동에 바람직한 적어도 하나의 공유 자원(902)의 상태에 대응할 수 있다. 일단 새로운 상태로의 구성이 끝나면, SOC(234B)는 요청된 활동을 수행하기 위해 적어도 하나의 공유 자원(902)에 액세스할 수 있게 될 수 있다.
도 10은 일 실시예에 따른, 전자 디바이스(100)의 컴포넌트들 사이의 동작들을 조정하는 프로세스를 예시하는 흐름도이다. 도 10에 예시된 프로세스는 공존 허브 디바이스(212) 또는 SOC(예를 들어, SOC(234C))와 같은, 전자 디바이스(100)의 집적 회로(컴포넌트 또는 서브시스템)에 의해 수행될 수 있다.
전자 디바이스(100)의 집적 회로(예를 들어, 공존 허브 디바이스(212) 또는 SOC(234C))는 전자 디바이스(100)의 다른 집적 회로(예를 들어, SOC(234B))로부터, 인터페이스 회로 및 멀티드롭 버스(또는 점대점 연결)를 통해, 다른 집적 회로 상에서의 활동을 수행하기 위한 인가를 구하는 인가 요청을 수신한다(1002). 인가 요청은, 활동의 파라미터들에 대한 정보, 활동 동안 사용할 집적 회로의 하나 이상의 자원들에 대한 정보, 활동의 지속시간에 대한 정보, 및 활동에 관련된 일부 다른 정보 중 적어도 하나를 포함할 수 있다.
전자 디바이스(100)의 집적 회로(예를 들어, 공존 허브 디바이스(212) 또는 SOC(234C))는, 인가 요청을 수신하는 것에 응답하여, 다른 집적 회로가 활동을 실행하도록 인가되는지 여부를 결정한다(1004). 일부 실시예들에서, 구성가능 직접 연결(예를 들어, GPIO들(228B) 또는 GPIO들(228C))에 연결된 집적 회로의 중재자 회로는, 다른 집적 회로가 활동을 실행하도록 인가되는지 여부를 결정하기 위해, 전자 디바이스(100)의 중앙 프로세서(애플리케이션 프로세서(208))로부터 수신된 정책을 실행하도록 구성된다. 일부 다른 실시예들에서, 집적 회로는, 인가 요청을 수신하는 것에 응답하여, 인가 신호를 생성하기 위해 인터럽트를 개시하도록 구성된다.
전자 디바이스(100)의 집적 회로(예를 들어, 공존 허브 디바이스(212) 또는 SOC(234C))는, 다른 집적 회로가 활동을 실행하도록 인가된다고 결정하는 것에 응답하여, 구성가능 직접 연결을 통해 다른 집적 회로로, 다른 집적 회로가 활동을 실행하도록 인가하는 인가 신호를 전송한다(1006). 집적 회로는, 다른 집적 회로가 인가 요청을 전송한 후 제1 시간 제한 내에 인터페이스 회로 및 멀티드롭 버스(또는 점대점 연결)를 통해 인가 요청을 수신하도록 구성된다. 집적 회로는, 인가 요청을 수신한 후 제2 시간 제한 내에 구성가능 직접 연결(예를 들어, GPIO들(228B) 또는 GPIO들(228C))을 통해 인가 신호를 전송하도록 추가로 구성된다. 제2 시간 제한은 제1 시간 제한보다 짧을 수 있다.
도 10에 예시된 프로세스들 및 그들의 순서들은 단지 예시적인 것이다. 추가적인 프로세스들이 추가될 수 있고, 도 10의 일부 프로세스들은 생략될 수 있다.
특정 실시예들 및 애플리케이션들이 예시 및 설명되었지만, 본 발명은 본 명세서에서 개시되는 정확한 구성 및 컴포넌트로 제한되지 않으며, 당업자에게 자명하게 될 다양한 수정들, 변경들, 및 변화들이, 본 개시내용의 사상 및 범주로부터 벗어나지 않으면서, 본 명세서에서 개시되는 방법 및 장치의 배열, 동작, 및 세부사항들에서 이루어질 수 있다는 것이 이해되어야 한다.

Claims (20)

  1. 제1 집적 회로로서,
    전자 디바이스 내의 다수의 전자 컴포넌트들에 연결되는 멀티드롭 버스(multi-drop bus)를 통해 통신하도록 구성되는 인터페이스 회로; 및
    프로세서 회로를 포함하며, 상기 프로세서 회로는,
    제2 집적 회로로부터, 상기 인터페이스 회로 및 상기 멀티드롭 버스를 통해, 제1 인가 요청을 수신하도록 - 상기 제1 인가 요청은 상기 제2 집적 회로 상에서의 제1 활동을 수행하기 위한 인가와 관련됨 -,
    상기 제1 인가 요청을 수신하는 것에 응답하여, 상기 제2 집적 회로가 상기 제1 활동을 실행하도록 인가되는지 여부를 결정하도록, 그리고
    상기 제2 집적 회로가 상기 제1 활동을 실행하도록 인가된다고 결정하는 것에 응답하여, 구성가능 직접 연결을 통해 상기 제2 집적 회로에, 상기 제2 집적 회로가 상기 제1 활동을 실행할 것을 인가하는 제1 인가 신호를 전송하도록 구성되는, 제1 집적 회로.
  2. 제1항에 있어서, 상기 프로세서 회로는,
    상기 제2 집적 회로가 상기 제1 인가 요청을 전송한 후, 제1 시간 제한 내에 상기 인터페이스 회로 및 상기 멀티드롭 버스를 통해 상기 제1 인가 요청을 수신하도록, 그리고
    상기 제1 인가 요청을 수신한 후, 상기 제1 시간 제한보다 더 짧은 제2 시간 제한 내에, 상기 구성가능 직접 연결을 통해 상기 제1 인가 신호를 전송하도록 추가로 구성되는, 제1 집적 회로.
  3. 제1항에 있어서, 상기 제1 인가 요청은 상기 제2 집적 회로에서의 상기 제1 활동의 수행과 관련된 정보를 포함하는, 제1 집적 회로.
  4. 제1항에 있어서, 상기 집적 회로는 상기 구성가능 직접 연결에 연결된 중재자 회로를 포함하고, 상기 중재자 회로는, 상기 제2 집적 회로가 상기 제1 활동을 실행하도록 인가되는지 여부를 결정하기 위해 상기 전자 디바이스의 중앙 프로세서로부터 수신된 동작 정책을 실행하도록 구성되는, 제1 집적 회로.
  5. 제1항에 있어서, 상기 프로세서 회로는, 상기 제1 인가 요청을 수신하는 것에 응답하여, 상기 제1 인가 신호를 생성하기 위해 인터럽트(interrupt)를 개시하도록 추가로 구성되는, 제1 집적 회로.
  6. 제1항에 있어서, 상기 프로세서 회로는, 상기 제2 집적 회로가 상기 제1 활동 동안 사용되고 있는 하나 이상의 자원들을 해제(release)하기 위한 요청을 상기 구성가능 직접 연결을 통해 전송하도록 추가로 구성되는, 제1 집적 회로.
  7. 제1항에 있어서, 상기 프로세서 회로는,
    상기 제2 집적 회로의 상기 제1 활동의 수행 동안 상기 전자 디바이스의 제1 세트의 자원들의 상태를 모니터링하도록, 그리고
    상기 제2 집적 회로로부터의 제2 인가 요청에 응답하도록 - 상기 제2 인가 요청은 상기 제1 세트의 자원들을 사용하여 상기 제2 집적 회로 상에서의 제2 활동을 수행하는 것과 관련됨 - 추가로 구성되는, 제1 집적 회로.
  8. 제7항에 있어서, 상기 프로세서 회로는,
    상기 인터페이스 회로 및 상기 멀티드롭 버스를 통해 상기 제2 집적 회로로부터 상기 제2 인가 요청을 수신하도록,
    상기 제1 세트의 자원들의 상기 모니터링된 상태에 기초하여, 상기 제2 인가 요청을 수신하는 것에 응답하여, 상기 제2 집적 회로가 상기 제2 활동을 실행하도록 인가되는지 여부를 결정하도록, 그리고
    상기 제2 집적 회로가 상기 제2 활동을 실행하도록 인가된다고 결정하는 것에 응답하여, 상기 구성가능 직접 연결을 통해 상기 제2 집적 회로에, 상기 제2 집적 회로가 상기 제2 활동을 실행할 것을 인가하는 제2 인가 신호를 전송하도록 추가로 구성되는, 제1 집적 회로.
  9. 전자 디바이스의 제1 집적 회로에서 상기 전자 디바이스 내의 전자 컴포넌트들의 동작들을 조정하는 방법으로서,
    제2 집적 회로로부터, 멀티드롭 버스를 통해, 인가 요청을 수신하는 단계 - 상기 인가 요청은 상기 제2 집적 회로 상에서의 활동을 수행하기 위한 인가를 구함(seek) -;
    상기 인가 요청을 수신하는 것에 응답하여, 상기 제2 집적 회로가 상기 활동을 실행하도록 인가되는지 여부를 결정하는 단계; 및
    상기 제2 집적 회로가 상기 활동을 실행하도록 인가된다고 결정하는 것에 응답하여, 구성가능 직접 연결을 통해 상기 제2 집적 회로에, 상기 제2 집적 회로가 상기 활동을 실행할 것을 인가하는 인가 신호를 전송하는 단계를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 제2 집적 회로가 상기 인가 요청을 전송한 후, 제1 시간 제한 내에 상기 멀티드롭 버스를 통해 상기 인가 요청을 수신하는 단계; 및
    상기 인가 요청을 수신한 후, 상기 제1 시간 제한보다 더 짧은 제2 시간 제한 내에, 상기 구성가능 직접 연결을 통해 상기 인가 신호를 전송하는 단계를 추가로 포함하는, 방법.
  11. 제9항에 있어서, 상기 인가 요청은 상기 제2 집적 회로에서의 상기 활동의 수행과 관련된 정보를 포함하는, 방법.
  12. 제9항에 있어서, 상기 인가 요청을 수신하는 것에 응답하여, 상기 인가 신호를 생성하기 위해 인터럽트를 개시하는 단계를 추가로 포함하는, 방법.
  13. 제9항에 있어서, 상기 제2 집적 회로가 상기 활동 동안 사용되고 있는 하나 이상의 자원들을 해제하기 위한 요청을 상기 구성가능 직접 연결을 통해 전송하는 단계를 추가로 포함하는, 방법.
  14. 전자 디바이스로서,
    멀티드롭 버스; 및
    상기 멀티드롭 버스에 연결되고, 구성가능 직접 연결 및 상기 멀티드롭 버스를 통해 제2 집적 회로에 연결되는 제1 집적 회로를 포함하고, 상기 제1 집적 회로는,
    상기 제2 집적 회로로부터, 상기 멀티드롭 버스를 통해, 인가 요청을 수신하도록 - 상기 인가 요청은 상기 제2 집적 회로 상에서의 활동을 수행하기 위한 인가를 구함 -,
    상기 인가 요청을 수신하는 것에 응답하여, 상기 제2 집적 회로가 상기 활동을 실행하도록 인가되는지 여부를 결정하도록, 그리고
    상기 제2 집적 회로가 상기 활동을 실행하도록 인가된다고 결정하는 것에 응답하여, 상기 구성가능 직접 연결을 통해 상기 제2 집적 회로에, 상기 제2 집적 회로가 상기 활동을 실행할 것을 인가하는 인가 신호를 전송하도록 구성되는, 전자 디바이스.
  15. 제14항에 있어서, 상기 제1 집적 회로는,
    상기 제2 집적 회로가 상기 인가 요청을 전송한 후, 제1 시간 제한 내에 상기 멀티드롭 버스를 통해 상기 인가 요청을 수신하도록, 그리고
    상기 인가 요청을 수신한 후, 상기 제1 시간 제한보다 더 짧은 제2 시간 제한 내에, 상기 구성가능 직접 연결을 통해 상기 인가 신호를 전송하도록 추가로 구성되는, 전자 디바이스.
  16. 제14항에 있어서, 상기 인가 요청은 상기 제2 집적 회로에서의 상기 활동의 수행과 관련된 정보를 포함하는, 전자 디바이스.
  17. 제16항에 있어서, 상기 활동의 수행과 관련된 상기 정보는 상기 활동의 우선순위에 대한 정보를 포함하는, 전자 디바이스.
  18. 제16항에 있어서, 상기 활동의 수행과 관련된 상기 정보는 상기 활동이 인가되기 전에 상기 활동의 인가를 구하기 위해 상기 제2 집적 회로로부터 상기 제1 집적 회로로 이전에 전송된 인가 요청들의 수에 대한 정보를 포함하는, 전자 디바이스.
  19. 제14항에 있어서, 상기 전자 디바이스의 중앙 프로세서는, 동작 정책을 실행하도록 상기 제1 및 제2 집적 회로들을 프로그래밍하기 위해 대응하는 점대점 연결(point-to-point connection)을 통해 상기 제1 및 제2 집적 회로들에 데이터를 통신하고, 상기 제1 집적 회로는 상기 제2 집적 회로가 상기 활동을 실행하도록 인가되는지 여부를 결정하기 위해 상기 동작 정책을 실행하는, 전자 디바이스.
  20. 제14항에 있어서, 상기 제2 집적 회로는 임계 기간 미만의 기간 동안 상기 제1 집적 회로의 하나 이상의 자원들을 사용하여 상기 활동을 실행하도록 추가로 구성되는, 전자 디바이스.
KR1020227026185A 2020-01-03 2020-12-08 다수의 통신 칩들 사이의 링크 관리를 위한 시스템 KR20220114656A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062957048P 2020-01-03 2020-01-03
US62/957,048 2020-01-03
US16/885,889 US11176069B2 (en) 2020-01-03 2020-05-28 System for link management between multiple communication chips
US16/885,889 2020-05-28
PCT/US2020/063735 WO2021138001A1 (en) 2020-01-03 2020-12-08 System for link management between multiple communication chips

Publications (1)

Publication Number Publication Date
KR20220114656A true KR20220114656A (ko) 2022-08-17

Family

ID=76654176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227026185A KR20220114656A (ko) 2020-01-03 2020-12-08 다수의 통신 칩들 사이의 링크 관리를 위한 시스템

Country Status (5)

Country Link
US (4) US11176069B2 (ko)
KR (1) KR20220114656A (ko)
CN (1) CN114902184A (ko)
DE (1) DE112020006432T5 (ko)
WO (1) WO2021138001A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11176069B2 (en) * 2020-01-03 2021-11-16 Apple Inc. System for link management between multiple communication chips
US11443713B2 (en) * 2020-01-30 2022-09-13 Apple Inc. Billboard for context information sharing
US11398926B2 (en) 2020-02-10 2022-07-26 Apple Inc. Signaling of time for communication between integrated circuits using multi-drop bus
CN117130959B (zh) * 2023-02-22 2024-06-04 荣耀终端有限公司 总线控制方法、电子设备及计算机存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981073B2 (en) * 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
US7936703B2 (en) * 2006-09-20 2011-05-03 Intel Corporation Optimized cache consistency algorithm in a point-to-point interconnected multiple processor system
DE102010033518A1 (de) 2010-08-05 2012-02-09 Gm Global Technology Operations Llc (N.D.Ges.D. Staates Delaware) Klimaanlage und Verfahren zum Betreiben einer Klimaanlage
US8583844B2 (en) * 2011-05-31 2013-11-12 Lsi Corporation System and method for optimizing slave transaction ID width based on sparse connection in multilayer multilevel interconnect system-on-chip architecture
JP6201591B2 (ja) 2013-09-30 2017-09-27 富士通株式会社 情報処理装置および情報処理装置の制御方法
US20150178702A1 (en) 2013-12-18 2015-06-25 PayRange Inc. Method and device for multi-drop bus payment peripheral expansion
US10467154B2 (en) 2017-02-10 2019-11-05 Qualcomm Incorporated Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
US20190171588A1 (en) 2017-12-05 2019-06-06 Qualcomm Incorporated Multi-point virtual general-purpose input/output (mp-vgi) for low latency event messaging
US10572410B2 (en) * 2018-01-23 2020-02-25 Qualcomm Incorporated Function-specific communication on a multi-drop bus for coexistence management
US11176069B2 (en) * 2020-01-03 2021-11-16 Apple Inc. System for link management between multiple communication chips

Also Published As

Publication number Publication date
US11176069B2 (en) 2021-11-16
CN114902184A (zh) 2022-08-12
DE112020006432T5 (de) 2022-11-24
US20210209042A1 (en) 2021-07-08
US20220035757A1 (en) 2022-02-03
WO2021138001A1 (en) 2021-07-08
US20240289292A1 (en) 2024-08-29
US11640365B2 (en) 2023-05-02
US12001364B2 (en) 2024-06-04
US20230222076A1 (en) 2023-07-13

Similar Documents

Publication Publication Date Title
US11640365B2 (en) System for link management between multiple communication chips
US20240202149A1 (en) Coordinating operations of multiple communication chips via local hub device
US7626973B2 (en) System scheduler for mobile terminals
US11334512B1 (en) Peripheral access control for secondary communication channels in power management integrated circuits
US20240242692A1 (en) Billboard for context information sharing
US9629091B2 (en) Wireless personal area network device
US20240097937A1 (en) Signaling of time for communication between integrated circuits using multi-drop bus
US12003244B2 (en) Dynamic configuration of spur cancellation
US20240056066A1 (en) Configuration of Aggressor Integrated Circuit to Prevent Spur Interference at Victim Integrated Circuit