KR102551076B1 - 멀티모달 인터페이스 - Google Patents

멀티모달 인터페이스 Download PDF

Info

Publication number
KR102551076B1
KR102551076B1 KR1020177026103A KR20177026103A KR102551076B1 KR 102551076 B1 KR102551076 B1 KR 102551076B1 KR 1020177026103 A KR1020177026103 A KR 1020177026103A KR 20177026103 A KR20177026103 A KR 20177026103A KR 102551076 B1 KR102551076 B1 KR 102551076B1
Authority
KR
South Korea
Prior art keywords
data
policy manager
hardware
firmware
interface
Prior art date
Application number
KR1020177026103A
Other languages
English (en)
Other versions
KR20170137064A (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 KR20170137064A publication Critical patent/KR20170137064A/ko
Application granted granted Critical
Publication of KR102551076B1 publication Critical patent/KR102551076B1/ko

Links

Images

Classifications

    • 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/54Interprogram communication
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 명세서에서 설명된 특정 실시예는 전자 장치의 운영 체제로부터 데이터를 수신하고, 이 데이터 및/또는 관련 데이터를 로컬 정책 관리자에 전달할 수 있는 전자 장치를 제공하되, 데이터는 멀티모달 인터페이스를 통해 전자 장치와 통신하는 하드웨어에 관련되고, 로컬 정책 관리자는 멀티모달 인터페이스와 통신한다. 멀티모달 인터페이스는 동일한 인터페이스 상에서 전력 전달, 방향성, 및 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성될 수 있다.

Description

멀티모달 인터페이스
본 출원은 2015년 4월 18일에 "MULTIMODAL INTERFACE"라는 발명의 명칭으로 출원된 인도의 특허 출원 제2004/CHE/2015호에 대한 우선권을 주장하며, 이 특허 출원 전체가 본 명세서에서 참조로서 인용된다.
본 개시물은 일반적으로 전자 장치 분야에 관한 것이고, 보다 상세하게는 멀티모달(multimodal) 인터페이스에 관한 것이다.
최종 사용자는 이전보다 더 많은 전자 장치 선택지를 갖는다. 다수의 현저한 기술적 추세가 현재 진행중이며(예를 들어, 보다 많은 컴퓨팅 장치, 보다 많은 탈착가능한 디스플레이, 보다 많은 주변 장치 등), 이러한 추세로 인해 전자 장치 환경이 변화하고 있다. 기술적 추세 중 하나는 다수의 장치를 전자 장치에 연결하는 것이다. 많은 경우에, 각각의 장치는 자신을 전자 장치에 연결하기 위한 단일 목적의 고유한 커넥터를 가지며, 하나의 커넥터는 다른 커넥터로서 동작하거나 기능하지 않을 수 있다. 예를 들어, 범용 직렬 버스(USB) 커넥터는 디스플레이 HDMI(High-Definition Multimedia Interface) 커넥터와 다르다. 따라서, 다수의 장치를 지원할 수 있는 통합형 커넥터를 허용하는 전자 장치를 제공하는 것이 해결할 과제이다.
본 개시물 및 그 특징 및 이점에 대한 보다 완전한 이해를 제공하기 위해, 첨부 도면과 연계하여 주어지는 후속하는 설명이 참조되며, 동일한 참조 번호는 유사한 부분을 나타낸다.
도 1은 본 개시물의 일 실시예에 따른 통신 시스템의 일 실시예를 나타내는 전자 장치의 간략화된 블록도이다.
도 2는 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 도시한 단순화된 흐름도이다.
도 3은 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 도시한 단순화된 흐름도이다.
도 4a 및 도 4b는 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 나타내는 간략화된 타이밍 흐름도이다.
도 5는 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 도시한 단순화된 흐름도이다.
도 6은 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 도시한 단순화된 흐름도이다.
도 7은 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 나타내는 간략화된 타이밍 흐름도이다.
도 8은 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 도시한 단순화된 흐름도이다.
도 9는 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적인 동작을 도시한 단순화된 흐름도이다.
도 10은 일 실시예에 따른 통신 시스템과 연관될 수 있는 잠재적 세부사항을 나타내는 단순화된 데이터 구조 테이블이다.
도 11은 일 실시예에 따라 점 대 점 구성으로 배열된 예시적인 컴퓨팅 시스템을 나타내는 블록도이다.
도 12는 본 개시물의 예시적인 ARM 에코시스템(ecosystem) 시스템 온 칩(SOC)과 연관된 간략화된 블록도이다.
도 13은 일 실시예에 따른 예시적인 프로세서 코어를 나타내는 블록도이다.
도면은 본 발명의 범위를 벗어나지 않으면서 그의 치수가 상당히 변할 수 있기 때문에 실제 척도로 그려질 필요는 없다.
예시적인 실시예
도 1은 본 개시물의 일 실시예에 따른 멀티모달 인터페이스를 갖는 통신 시스템(100)의 실시예의 간략화된 블록도이다. 통신 시스템(100)은 전자 장치(102) 및 하나 이상의 보조(secondary) 장치(104a-104d)를 포함할 수 있다. 각각의 보조 장치(104a-104c)는 제각기의 인터페이스(128a-128c)를 포함할 수 있다. 일 예에서, 하나 이상의 보조 장치는 무선 통신을 가능하게 하는 무선 모듈을 포함할 수 있다. 예를 들어, 보조 장치(104d)는 무선 모듈(130a)을 포함하는 것으로 도시된다.
전자 장치(102)는 운영 체제(OS)(108), 프로세서(110), 메모리(112), OS 정책 관리자(OSPM)(114), 동작 영역(opregion)(116), 펌웨어(118), 플랫폼 정책 관리자(PPM)(124), 하나 이상의 로컬 정책 관리자(LPM)(126a-126d), 및 하나 이상의 멀티모달 인터페이스(106a-106d)를 포함할 수 있다. 메모리(112)는 메일박스(122)를 포함할 수 있다. 메일박스(122)는 메모리(112)의 버퍼일 수 있다. PPM(124)은 시스템 호스트 제어기(120)를 포함할 수 있다. 예를 들어, 하나 이상의 멀티모달 인터페이스는 무선 통신을 가능하게 하는 무선 모듈을 포함할 수 있다. 예를 들어, 멀티모달 인터페이스(106d)는 무선 모듈(130b)을 포함하는 것으로 도시된다. 다른 예에서, 무선 모듈(130b)은 전자 장치(102)에 포함되며, 그 리소스는 복수의 멀티모달 인터페이스에 의해 공유될 수 있다. 보조 장치(104d)는 무선 모듈들(130a 및 130b)을 사용하여 전자 장치(102)와 무선 통신할 수 있다.
실시예에서, 각각의 멀티모달 인터페이스(106a-106d)는 대응하는 LPM(126a-126d)을 가질 수 있다. 예를 들어, 멀티모달 인터페이스(106a)는 LPM(126a)에 대응할 수 있고, 멀티모달 인터페이스(106b)는 LPM(126b)에 대응할 수 있고, 멀티모달 인터페이스(106c)는 LPM(126c)에 대응할 수 있으며, 멀티모달 인터페이스(106d)는 LPM(126d)에 대응할 수 있다. 각각의 멀티모달 인터페이스(106a-106d)는 동일한 인터페이스상에서 전력 전달, 방향성(directionality) 및 다수의 입/출력(I/O) 프로토콜을 지원할 수 있는 멀티모달 인터페이스일 수 있다. 다수의 프로토콜은 사용자 개입없이 멀티모달 인터페이스 또는 커넥터에서 동시에 또는 자체적으로 실행되도록 자동으로 구성될 수 있다. 예를 들어, 각각의 보조 장치(104a-104d)는 상이한 전자 장치일 수 있고 단일 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a-106d) 중 하나)는 각각의 상이한 보조 장치(104a-104d)를 지원할 수 있다.
도 1의 구성요소는 통신을 위한 실행 가능한 경로를 제공하는 임의의 적절한 (유선 또는 무선) 연결을 이용하는 하나 이상의 인터페이스를 통해 서로 결합될 수 있다. 또한, 도 1의 구성요소 중 임의의 하나 이상은 특정 구성의 필요성에 따라 아키텍처와 결합되거나 그로부터 제거될 수 있다. 통신 시스템(100)은 네트워크에서 패킷들의 송신 또는 수신을 위한 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 통신이 가능한 구성을 포함할 수 있다. 통신 시스템(100)은 적절한 경우 또한 필요에 따라 사용자 데이터 그램 프로토콜/IP(UDP/IP) 또는 임의의 다른 적절한 프로토콜과 연계하여 동작할 수 있다.
통신 시스템(100)의 소정의 예시적인 기술을 설명하기 위해, 통신 환경에서 진행중일 수 있는 통신을 이해하는 것이 중요하다. 다음의 기초 정보는 본 개시물을 적절히 설명할 수 있는 토대로서 간주될 수 있다.
현재의 시스템은 전형적으로 디스플레이 커넥터, 오디오 커넥터, 전원 커넥터 등과 같은 하나의 특정 기능만을 지원하는 단일 용도의 커넥터를 갖는다. 사용자가 이전보다 더 많은 전자 장치 선택지를 가지게 되고 이들 장치에 접속할 필요가 있음에 따라, 필요한 것은 단일 커넥터에서 여러 기능을 지원하는 통합 커넥터이다. 통합 커넥터가 자동으로 구성될 수 있고 OS 또는 I/O 프로토콜로부터 독립적인 플랫폼에서 멀티모달 커넥터의 기능을 사용할 수 있다면 유익할 수 있을 것이다.
OS가 연결된 하드웨어와 통신할 수 있는 솔루션을 구현하기 위해, 각각의 연결된 하드웨어는 특정 프로토콜을 통해 기본 하드웨어와 통신해야 한다. 그러나 이것은 소프트웨어 드라이버가 OS에 고유해야 할 필요가 있고 또한 플랫폼 포트 및 장치 구현에 맞게 소프트웨어 드라이버를 맞춤화해야 하기 때문에 매우 바람직하지 않을 수 있다. 모든 OS에 대해 공통적인 솔루션을 가능하게 하기 위해, OS가 다른 유형의 하드웨어와 상호작용할 수 있도록 해주는 범용 펌웨어 기반 인터페이스가 정의될 필요가 있다. 인터페이스는 OS에 고유하도록 개발되어서는 안되며, 만일 고유하게 되면 OEM에게 지우는 부담을 증가시켜 신기술 출시 준비 시간에 부정적인 영향을 준다.
도 1에 개략적으로 도시된 바와 같이, 멀티모달 인터페이스를 포함하는 통신 시스템은 이러한 문제점(및 기타 사항)을 해결할 수 있다. 도 1의 통신 시스템(100)에서, 각각의 멀티모달 인터페이스(106a-106d)는 동일 인터페이스 또는 커넥터상에서 전력 전송, 방향성 및 다수의 I/O 프로토콜을 지원할 수 있는 멀티모달 인터페이스 또는 커넥터일 수 있다. 다수의 프로토콜은 사용자 개입없이 멀티모달 인터페이스에서 동시에 또는 자체적으로 실행되도록 자동으로 구성될 수 있다. 통신 시스템(100)은 하나 이상의 멀티모달 인터페이스 또는 커넥터를 갖는 플랫폼을 효율적으로 구성하고 동작시키기 위해 일련의 데이터 구조, 커맨드, 통지 및 상태 전이(소프트웨어 및 하드웨어 모두)를 포함할 수 있다. 통신 시스템(100)은 또한 플랫폼의 성능을 멀티모달 인터페이스를 구현하는 OS에 전달할 수 있다. I/O 프로토콜은 멀티모달 인터페이스에서 동일하거나 다른 핀을 통해 작동하도록 구성될 수 있다.
방법론은 OS(예를 들어, Android™, iOS™, Linux™, OSX™, Windows™ 등) 및 I/O 상호 연결(예를 들어, I2C™, I2S™, PCIe™ 등)로부터 자유로운 방식으로 정의될 수 있고 또한 전자 장치(102) 내의 멀티모달 인터페이스와 인터페이싱하는데 사용되는 데이터 구조로서 정의될 수 있다. 그에 따라, 하드웨어 컴포넌트 디자이너, 시스템 빌더 및 장치 드라이버(소프트웨어) 개발자는 원활하게 상호작용할 수 있는 멀티모달 인터페이스를 갖춘 플랫폼 및 장치를 개발할 수 있다. 예를 들어, PPM(124)은 하드웨어와 펌웨어 및 플랫폼 또는 전자 장치상의 모든 멀티모달 인터페이스에 인터페이스를 제공하는 임의의 공급업체 제공 OS 지원 소프트웨어의 조합을 포함할 수 있다. PPM(124)과 인터페이스하기 위한 특정 인터페이스(예를 들어, PCIe™, I2C™ 등)는 필요하지 않다. 또한, OSPM(114)과 PPM(124) 사이의 인터페이스는 앞서 언급한 임의의 상호연결 또는 앞서 언급하지 않은 임의의 다른 상호연결을 이용하여 용이하게 구현될 수 있도록 정의된다.
PPM(124) 및 OSPM(114)을 사용하면, 통신 시스템(100)은 기본 하드웨어(예를 들어, 타입 C 하드웨어)를 추상화하는 일반적인 펌웨어 기반 인터페이스를 정의하여, OS가 하드웨어의 명세 또는 복잡성을 알거나 이해하지 않고 그 하드웨어에 액세스하도록 허용할 수 있다. OSPM(114)은, 기본 플랫폼 특정 하드웨어를 추상화하고 하드웨어와의 실제 물리적 트랜잭션을 수행하는 플랫폼 에이전트인, OS(108)로부터의 상호작용 계층이다. OS(108)로부터 하드웨어(예를 들어, 보조 장치들(104a-104d))와의 통신은 OSPM(114)에서 시작하여 하드웨어(예를 들어, 보조 장치(104a))에 도달하기 전에 LPM(예를 들어, LPM(126a))을 통과한다.
펌웨어(118)는 OEM이 지원할 필요가 있는 OS와 무관하게 또는 플랫폼 또는 전자 장치(102)상의 특정 포트 및 장치의 수에 관계없이 이 OEM에 의해 구현될 수 있는 펌웨어 기반 장치 정책 관리자일 수 있다. 이는 OEM에 대한 개발 노력을 줄일 수 있고 새로운 제품, 장치 및 기능을 출시할 시간을 단축할 수 있다. 펌웨어(118) 및 PPM(124)은 LPM(126a-126d)과 상호작용하도록 OS(108)로부터 기본 하드웨어를 추상화할 수 있다. LPM(126a-126d)은 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a-106d))에 연결된 보조 장치(예를 들어, 보조 장치(104a-104d))와 실제 커맨드 레벨 통신을 수행한다.
각각의 멀티모달 인터페이스(106a-106d)는 각각 LPM(126a-126d)과 상호작용하는 소정의 최소 검출 로직을 갖는 인터페이스 또는 커넥터일 수 있다. 전자 장치(102)는 접속된 LPM(126a-126d)을 통해 보조 장치(104a-104d)를 이해, 제어 또는 그와 통신할 수 있다. 각각의 LPM(126a-126d)은 물리적으로 SOC의 일부일 수 있거나 또는 다른 마이크로 제어기(예를 들어, 내장된 제어기 또는 통합 센서 허브)에 의해 은닉된 플랫폼 상에 개별적으로 존재할 수 있다. PPM(124)은 OS(108)와 각각의 보조 장치(104a-104d) 사이의 통신을 위한 추상화 계층을 제공하기 때문에, OS 계층 변경과 같은 상위 계층 변경 없이 플랫폼 레벨에서만 해결 방법 및 버그 수정이 구현될 수 있게 한다.
OSPM(114)은 보조 장치(104a-104d)로의 임의의 OS(108) 기반 요청 또는 통신을 펌웨어(1118)로 전달하고, 또한 그 반대로 전달하는 역할을 주로 담당한다. 펌웨어(118)는 PPM(124)과 상호 작용함으로써 OS(108) 및 OSPM(114)으로부터 기본 하드웨어를 추상화할 수 있다. PPM(124)은 상이한 보조 장치(104a-104d)상에 모든(또는 거의 모든) 플랫폼 및 시스템 레벨 정보를 유지하고 개별 멀티모달 인터페이스(106a-106d)를 관리하는 각각의 LPM(126a-126d)과 직접 통신하는 플랫폼 특정 컴포넌트이다. OSPM(114)과 펌웨어(118) 간의 통신 메커니즘은 대부분 임의의 특정 PPM(124)과 함께 행해질 수 있다. 펌웨어(118)는 펌웨어(118)가 OSPM(114)과 런타임 통신을 가능하게 할 수 있도록 다양한 방식(ACPI, SMM 등 포함)으로 구현될 수 있다.
OSPM(114)과 PPM(124) 간의 통신은 메일박스(122)를 거쳐갈 수 있다. 메일박스(122)는 메모리(112) 내의 공유 버퍼 또는 전자 장치(102)의 메모리(112) 내의 다른 위치일 수 있다. 메일박스(122)는 보조 장치(104a-104d)에 대한 액세스 패턴 및 레지스터를 기술하는 보조 장치(104a-104d)에 대한 인터페이스 사양 레지스터에 기초한 포맷으로 정의된 공유 메모리 일반 데이터 구조일 수 있다. 특정 예에서, 메일박스(122)는 타입 C 하드웨어에 대한 액세스 패턴 및 레지스터를 기술하는 USB 타입 C 소프트웨어 인터페이스 사양 레지스터에 기초한 포맷으로 정의된 공유 메모리일 수 있다.
OS(108) 및 보조 장치(예를 들어, 보조 장치(104a-104d) 중 하나)로부터의 2 개의 연속적인 커맨드들 사이에서 가능한 경쟁 상황을 피하기 위해, OS(108)와 보조 장치 간의 통신이 양방향 통신인 경우, 메일박스(122)는 각각이 펌웨어(118) 또는 OSPM(114)에게만 액세스가능한 두 개의 영역으로 분할될 수 있다. 예를 들어, 메일박스(122)는 커맨드 및 응답 영역으로서 분할될 수 있다. 일례에서, OSPM(114)은 OS(108)로부터 보조 장치로의 요청 또는 커맨드를 메일박스(122)의 OSPM(114) 부분에 기록할 수 있다. PPM(124)은 OSPM(114)으로부터 요청 또는 커맨드를 수신하기 위해 메일박스(122)를 판독할 수 있다. 보조 장치로부터 OSPM(114)으로의 통신 경고가 있는 경우, PPP(124)는 메일박스(122)를 업데이트하고 OSPM(114)에게 그 경고를 보내어 OSPM(114)가 경고의 원인을 처리하기 위해 메일박스(122)를 판독할 수 있다.
시스템 호스트 제어기(120)는 클라이언트 시스템에 사용되는 내장형 제어기(EC), 서버 시스템에 사용되는 베이스보드 관리(BM) 제어기, 태블릿 시스템에서 사용되는 I2C™ 제어기, 롱텀 가능 솔루션에서 사용될 수 있는 통합형 센서 허브(ISH) 또는 PPM(124)과의 통신을 용이하게 하는 다른 유사한 시스템일 수 있다. 펌웨어(118)는 PPM(124)의 유형에 관계없는 통신 채널을 위해 동작 영역(opregion)(116)을 설정할 수 있다. 예를 들어, 일 실시예에서, OSPM(114)로부터 검출된 요청이 있는 경우, 펌웨어(118)는 그 요청으로 동작 영역(116)을 업데이트할 수 있고 PPM(124)에게 알려줄 수 있다. 하나의 예에서, 동작 영역(116)은 메일박스(122)와 같은 공유 영역으로의 액세스를 용이하게 하는 것을 도울 수 있다. 보다 구체적으로, 동작 영역(116)은 공유 영역이 전자 장치(102) 내에서 어디에 위치하는지를 정의할 수 있고 그에 따라 펌웨어(118)는 동작 영역(116)에 의해 제공된 액세스 정보를 사용하여 공유 영역에서 데이터를 업데이트 또는 검색할 수 있다. 일 예에서, PPM(124)은 요청(예를 들어, OS(108)로부터의 요청 또는 통신)을 검색할 수 있고, 그것을 처리할 수 있으며, LPM(예를 들어, LPM(126a)) 및 보조 장치에 연결된 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a))를 이용하여 요청을 보조 장치(예를 들어, 보조 장치(104a))에 전달할 수 있다. 유사하게, 보조 장치로부터의 임의의 요청 또는 통신은 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a)) 및 LPM(예를 들어, LPM(126a))를 통과할 수 있으며 PPM(124)에 의해 수신될 수 있다. PPM(124)은 요청 또는 통신을 이용하여 메일박스(122)를 업데이트할 수 있고 OSPM(114)은 그 업데이트를 통지받을 수 있다. OSPM(114)은 PPM(124)과 통신하는 펌웨어(118)를 사용하고 동작 영역(116) 및 메일박스(122)를 사용하여 요청 또는 통신을 검색할 수 있다. 일 예에서, 보조 장치(또는 인터페이스 또는 LPM)로부터의 임의의 요청 또는 통신은 펌웨어(118)가 그것을 메일박스(122)에 기록하고 OSPM(114)에 의해 판독되기 전에 먼저 PPM(124)에 의해 동작 영역(116)에서 업데이트된다.
특정 예에서, OSPM(114)이 유휴 상태(idle state)에 있을 때, OSPM(114)은 OS(108), PPM(124) 또는 일부 다른 요소로부터 통지 또는 요청을 기다리고 있을 수 있다. 유휴 상태로부터, OSPM(114)은 커맨드를 전송하고 커맨드 완료 상태에 대한 대기 상태로 들어갈 수 있다. 예를 들어, OSPM(114)은 커넥터 상태 업데이트 커맨드를 PPM(124)에 전송할 수 있고 PPM(124)으로부터 응답을 기다릴 수 있다. 커맨드가 리셋 PPM 커맨드이면, 커맨드는 통지가 OSPM(114)으로부터 디스에이블링됨을 초래할 수 있고 PPM(124)은 리셋 커맨드가 수신되었음을 나타내기 위한 리셋 표시자를 전송할 수 있다.
커맨드 완료 상태를 대기하는 동안, PPM(124)이 작동중 표시자(busy indicator)로 응답하면, OSPM(114)은 커맨드의 완료를 지연시키고 커맨드 경쟁 상태를 대기하는 상태로 복귀할 수 있다. PPM(124)이 작동중 표시자로 응답하고, OSPM(114)이 커맨드가 취소될 필요가 있다고 결정하면, OSPM(114)은 현재 커맨드 취소 중간 상태(cancel present command intermediate state)로 들어가고, 커맨드 취소 메시지를 전송하며, 커맨드 경쟁 상태를 대기하는 상태로 복귀할 수 있다.
또한, 유휴 상태에서, OSPM(114)은 통지를 대기할 수 있으며, 이 경우 OPSM(114)은 유휴 상태로 유지된다. 커넥터 변경 보류 표시가 설정되면, OSPM(114)은 OPM 프로세스 커넥터 변경 중간 상태로 들어갈 수 있다. OPM 프로세스 커넥터 변경 중간 상태에서, OSPM(114)은 연관된 커맨드를 전송할 수 있고 커맨드 완료 상태를 기다리는 OPM 대기 상태로 들어가거나 또는 커넥터 변경을 확인하고, 확인응답 커맨드를 전송하며, 확인응답 커맨드 표시자 상태를 기다리는 대기 상태로 진입할 수 있다. PPM(124)이 커넥터 변경이 완료됨을 나타내는 확인응답 표시자를 전송한 후, PPM(124)은 확인응답 커맨드 표시자 상태를 기다리는 OPM 대기 상태로부터 유휴 상태로 이동할 수 있다.
통신 시스템(100)을 사용하여, OS 공급업체는 멀티모달 인터페이스(106a-106d)와 같은 멀티모달 인터페이스 또는 커넥터를 지원하는 시스템과 적절하게 상호작용할 수 있다. 이를 통해 OS 공급업체 및 운영 하드웨어 공급 업체(OHV)는 원활하게 상호운용될 수 있는 소프트웨어 및 하드웨어를 개발할 수 있다. 이를 통해 또한 OEM(Original Equipment Manufacturer) 또는 OHV는 사용자에게 제품을 제공할 수 있고 다양한 OS, 연결된 타사 주변 장치와 원활하게 작동하는 OS 통용 표준화된 하드웨어를 생산할 수 있으며, 심지어 서로 통신할 수 있도록 제품들의 성능을 향상시킬 수 있다.
도 1의 기반구조로 돌아가면, 일 실시예에 따른 통신 시스템(100)이 도시된다. 본 명세서에서 사용되는 "커맨드" 및 "통신"이라는 용어는 데이터 전송을 지칭한다. 본 명세서에 사용된 "데이터"라는 용어는 이진수, 숫자, 음성, 비디오, 텍스트 또는 스크립트 중 임의의 유형, 또는 소스 코드 또는 객체 코드 중 임의의 유형, 또는 전자 장치 및/또는 네트워크에서 하나의 지점에서 다른 지점으로 통신될 수 있는 임의의 적절한 포맷을 갖는 임의의 다른 적절한 정보를 지칭한다. 예시적인 구현예에서, 전자 장치(102) 및 보조 장치(104a-104d)는 자신의 동작을 용이하게 하는 임의의 적합한 하드웨어, 소프트웨어, 컴포넌트, 모듈 또는 객체뿐만 아니라, 데이터 또는 정보를 수신, 전송 및/또는 그와 달리 통신할 수 있는 적절한 인터페이스를 포함하도록 의도된 전자 장치이다. 이것은 데이터 또는 정보의 효과적인 교환을 가능하게 하는 적절한 알고리즘 및 통신 프로토콜을 포함할 수 있다.
통신 시스템(100)과 관련된 내부 구조와 관련하여, 전자 장치(102) 및 보조 장치(104a-104d) 각각은 본 명세서에 개략적으로 설명된 동작에서 사용될 정보를 저장하기 위한 메모리 소자를 포함할 수 있다. 전자 장치(102) 및 보조 장치(104a-104d) 각각은 임의의 적절한 메모리 소자(예를 들어, RAM, ROM, EPROM, EEPROM, ASIC 등), 소프트웨어, 하드웨어, 펌웨어 또는 기타 임의의 적절한 컴포넌트, 장치, 요소 또는 객체에 적절히 또한 특정 필요에 따라 정보를 유지할 수 있다. 본 명세서에서 논의된 임의의 메모리 항목은 광범위한 용어 '메모리 소자' 내에 포함되는 것으로 해석되어야 한다. 또한, 통신 시스템(100)에서 사용, 추적, 송신 또는 수신되는 정보는 모두가 임의의 적절한 시간프레임에서 참조될 수 있는 임의의 데이터베이스, 레지스터, 큐, 테이블, 캐시, 제어리스트 또는 다른 저장 구조에 제공될 수 있다. 이러한 저장 옵션은 본 명세서에 사용된 "메모리 소자"라는 용어에 포함될 수도 있다.
특정 예시적인 구현예에서, 본 명세서에 설명된 기능들은 비일시적 컴퓨터 판독가능 매체를 포함할 수 있는 하나 이상의 유형의 매체에 인코딩 로직(예를 들어, 프로세서 또는 다른 유사한 머신 등에 의해 실행될 ASIC에 제공된 내장 로직, 디지털 신호 프로세서(DSP) 명령어, 소프트웨어(잠재적으로 객체 코드 및 소스 코드를 포함함))에 의해 구현될 수 있다. 이들 경우 중 일부에서, 메모리 소자는 본 명세서에서 설명하는 동작에 사용되는 데이터를 저장할 수 있다. 이것은 본 명세서에서 기술하는 동작들을 수행하도록 실행되는 소프트웨어, 로직, 코드 또는 프로세서 명령어를 저장할 수 있는 메모리 소자를 포함한다.
예시적인 실시예에서, 전자 장치(102) 및 보조 장치(104a-104d)는 본 명세서에서 설명하는 동작들을 달성하거나 전개하는 소프트웨어 모듈을 포함할 수 있다. 이 모듈들은 임의의 적절한 방식으로 적절히 결합될 수 있는데, 이는 특정 구성 및/또는 프로비저닝 요구에 기초할 수 있다. 예시적인 실시예에서, 이러한 동작은 이들 요소의 외부에서 구현되거나 일부 다른 네트워크 장치에 포함되는 하드웨어에 의해 수행되어 의도한 기능을 달성할 수 있다. 또한, 모듈은 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 적절한 조합으로 구현될 수 있다. 이들 요소는 또한 본 명세서에서 설명하는 동작들을 달성하기 위해 다른 네트워크 요소들과 협업할 수 있는 소프트웨어(또는 상호간 소프트웨어)를 포함할 수 있다.
또한, 전자 장치(102) 및 보조 장치(104a-104d) 각각은 본 명세서에서 설명되는 동작들을 수행하기 위한 소프트웨어 또는 알고리즘을 실행할 수 있는 프로세서를 포함할 수 있다. 프로세서는 본 명세서에서 설명되는 동작을 달성하기 위해 데이터와 연관된 임의의 유형의 명령어를 실행할 수 있다. 일례에서, 프로세서는 하나의 상태 또는 사물(thing)로부터 다른 상태 또는 사물로 요소 또는 물품(예를 들어, 데이터)을 변환시킬 수 있다. 다른 예에서, 본 명세서에서 개략적으로 설명 된 동작들은 고정된 로직 또는 프로그램 가능 로직(예를 들어, 프로세서에 의해 실행되는 소프트웨어/컴퓨터 명령어)로 구현될 수 있으며, 본 명세서에서 식별되는 요소들은 프로그램가능 프로세서, 프로그램가능 디지털 로직(예를 들어, FPGA, EPROM, EEPROM) 또는 디지털 로직, 소프트웨어, 코드, 전자 명령어 또는 이들의 임의의 적절한 조합을 포함하는 ASIC 중 일부 유형일 수 있다. 본 명세서에서 기술된 임의의 잠재적인 프로세싱 요소, 모듈 및 머신은 광범위한 용어 '프로세서' 내에 포함되는 것으로 해석되어야 한다.
전자 장치(102)는 전자 소자일 수 있고, 예를 들어 데스크톱 컴퓨터, 랩톱 컴퓨터, 모바일 장치, 개인 휴대 정보 단말기, 스마트폰, 태블릿 또는 다른 유사한 장치를 포함할 수 있다. 보조 장치(104a-104d)는 전자 장치(102)와 통신하는 주변 장치와 같은 보조 하드웨어일 수 있다. 본 명세서에서 사용된 "주변 장치"라는 용어는 일반적으로 컴퓨터와 같은 전자 장치에 소정의 방식으로 연결되어 그와 함께 동작하는 USB 플래시 드라이브, 컴퓨터 마우스, 키보드, 스피커, 마이크로폰 등과 같은 임의의 보조 장치로서 정의된다. 하나 이상의 보조 장치(104a-104d)는 동일한 유형의 장치일 수 있거나 각각의 보조 장치(104a-104d)는 상이한 장치일 수 있다.
도 2를 참조하면, 도 2는 일 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 흐름(200)의 가능한 동작을 도시하는 예시적인 흐름도이다. 일 실시예에서, 흐름(200)의 하나 이상의 동작은 OSPM(114), PPM(124) 및 LPM(126a-126d) 중 하나 이상에 의해 수행될 수 있다. 202에서, 데이터는 공유 메모리에 전달된다. 예를 들어, OS 정책 관리자(114)는 데이터를 메일박스(122)에 전달할 수 있다. 다른 예에서, 데이터는 데이터 기록 동작이 다른 동작을 트리거하기 위해 사용될 수 있는 하드웨어에서 구현된 레지스터 인터페이스에 전달될 수 있다. 204에서, 데이터가 공유 메모리 내에 있다는 메시지가 인터페이스로 전달된다. 예를 들어, OS 정책 관리자(114)는 데이터가 메일박스(122)에 있다는 메시지를 펌웨어(118)에 전달할 수 있다. 206에서, 인터페이스는 데이터를 판독하고 하나 이상의 명령어를 플랫폼 정책 관리자에게 전달하며, 이 경우 하나 이상의 명령어는 데이터와 관련있다. 예를 들어, 펌웨어(118)는 메일박스(122) 내의 데이터를 판독하고 데이터와 관련된 하나 이상의 명령어를 PPM(124)에 전달할 수 있다. 208에서, 플랫폼 정책 관리자는 명령어를 수신하고 해석하며 명령어에 기초하여 하나 이상의 커맨드를 로컬 정책 관리자에게 전달한다. 예를 들어, PPM(124)은 명령어를 해석하고 하나 이상의 명령어 또는 커맨드를 LPM(126a)에 전달할 수 있다. 210에서, 로컬 정책 관리자는 데이터를 보조 장치에 전달한다. 예를 들어, LPM(126a)은 인터페이스(128a) 및 멀티모달 인터페이스(106a)를 이용하여 보조 장치(104a)에 데이터를 전달할 수 있다.
도 3을 참조하면, 도 3은 일 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 흐름(300)의 가능한 동작을 도시하는 예시적인 흐름도이다. 일 실시예에서, 흐름(300)의 하나 이상의 동작은 OSPM(114), PPM(124) 및 LPM(126a-126d) 중 하나 이상에 의해 수행될 수 있다. 302에서, 보조 장치와 관련된 데이터가 플랫폼 정책 관리자에게 전달된다. 예를 들어, OSPM(114)이 데이터를 PPM(124)에 전달할 수 있다. 데이터는 메일박스(122) 및 펌웨어(118)를 사용하여 전달되거나 다른 수단을 사용하여 PPM(124)으로 전달될 수 있다. 또한, 데이터는 보조 장치(104a)와 관련될 수 있고 보조 장치(104a)에 대한 명령어, 질의, 커맨드 등을 포함할 수 있다. 304에서, 플랫폼 정책 관리자는 데이터 및/또는 관련 데이터를 로컬 정책 관리자에게 전달한다. 예를 들어, 데이터는 PPM(124)에서 LPM(126a)으로 전달될 수 있다. 306에서, 로컬 정책 관리자는 데이터 및/또는 관련 데이터를 보조 장치와 통신하는 인터페이스에 전달한다. 예를 들어, 데이터는 LPM(126a) 및 멀티모달 인터페이스(106a)를 통해 보조 장치(104a)의 인터페이스(128a)에 전달될 수 있다.
도 4a 및 도 4b를 참조하면, 도 4a 및 도 4b는 일 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 가능한 동작들을 예시하는 타이밍 흐름도이다. 타이밍 흐름도는 OSPM(114)에서 LPM(126a)으로의 규칙적인 동기적 흐름을 도시한다. LPM(126a)은 보조 장치(104a)와 통신할 수 있다.
일 예에서, OSPM(114)은 메일박스(122)에 기록 제어 커맨드를 전달할 수 있다. OSPM(114)은 또한 메일박스 기록 커맨드의 통지를 펌웨어(118)에 전송할 수 있다. 펌웨어(118)는 메일박스(122)를 판독하고 커맨드 세부사항(command details)을 획득할 수 있다. 펌웨어(118)는 커맨드 세부사항을 PPM(124)에게 전달할 수 있다. 일 예에서, 커맨드 세부사항은 동작 영역(116)을 사용하여 PPM(124)에 전달된다. PPM(124)은 커맨드를 LPM(126a)에 전달할 수 있다. LPM(126a)은 커맨드를 실행하여 PPM(124)에 응답을 되돌려 보낼 수 있다. 예를 들어, 커맨드는 보조 장치(104a)에 대한 통신 또는 질의일 수 있다. PPM(124)은 응답을 펌웨어(118)에 복사할 수 있다. 일 예에서, 응답은 동작 영역(116)을 사용하여 펌웨어(118)에 복사될 수 있다. 펌웨어(118)는 응답을 수신하고 그 응답을 메일박스(122)에 복사할 수 있다. 펌웨어(118)는 메일박스(112) 내의 응답과, 커맨드가 완료되었음을 OSPM(114)에 통지할 수 있다. OSPM(114)은 커맨드 완료 확인응답을 메일박스(122)에 기록하고, 메일박스(122) 내의 커맨드 완료 확인응답을 펌웨어(118)에 통지할 수 있다. 펌웨어(118)는 커맨드 완료 확인응답에 관해 메일박스(122)를 판독하고 커맨드 완료 확인응답 세부사항을 획득할 수 있다. 펌웨어(118)는 커맨드 완료 확인응답 세부사항을 PPM(124)에 전달할 수 있다. 일 예에서, 펌웨어(118)는 동작 영역(116)을 사용하여 PPM(124)에 커맨드 완료 확인응답(acknowledgement)을 전달할 수 있다. PPM(124)은 커맨드 완료 확인응답을 LPM(126a)에 전달할 수 있다. LPM(126a)은 커맨드 완료 확인응답을 처리하여 확인응답 응신(acknowledgement response)을 PPM(124)에 전송할 수 있다. PPM(124)은 확인응답 응신을 펌웨어(118)에 복사할 수 있다. 일 예에서, PPM(124)은 동작 영역(116)을 이용하여 확인응답 응신을 펌웨어(118)에 복사할 수 있다. 펌웨어(118)은 확인응답 응신을 획득하고 그 확인응답 응신을 메일박스(122)에 복사할 수 있다. 펌웨어(118)는 또한 메일박스(122) 내의 확인응답 응신을 OSPM(114)에 통지할 수 있다.
도 5를 참조하면, 도 5는 일 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 흐름(500)의 가능한 동작들을 도시하는 예시적인 흐름도이다. 일 실시예에서, 흐름(500)의 하나 이상의 동작은 OSPM(114), PPM(124) 및 LPM(126a-126d) 중 하나 이상에 의해 수행될 수 있다. 502에서, 보조 전자 장치는 인터페이스를 통해 데이터를 전자 장치에 전달한다. 예를 들어, 보조 장치(104a)는 인터페이스(128) 및 멀티모달 인터페이스(106a)를 사용하여 전자 장치에 데이터를 전달할 수 있다. 504에서, 인터페이스와 통신하는 로컬 정책 관리자는 데이터를 수신하고 그 데이터 및/또는 관련 데이터의 적어도 일부를 플랫폼 정책 관리자에게 전달한다. 예를 들어, LPM(126a)은 멀티모달 인터페이스(106a)로부터 데이터를 수신하고 그 데이터를 PPM(124)에 전달할 수 있다. 506에서, 플랫폼 정책 관리자는 데이터 및/또는 관련 데이터의 적어도 일부를 인터페이스에 전달한다. 예를 들어, PPM(124)은 데이터의 적어도 일부를 펌웨어(118)에 전달할 수 있다. 508에서, 인터페이스는 데이터 및/또는 관련 데이터의 적어도 일부를 버퍼에 저장하고, 데이터 및/또는 관련 데이터가 버퍼에 저장되었다는 메시지를 운영 체제 정책 관리자에게 전달한다. 예를 들어, 펌웨어(118)는 데이터 및/또는 관련 데이터를 메일박스(122)에 저장하고 데이터 및/또는 관련 데이터가 메일박스(122)에 저장되었다는 메시지를 OSPM(114)에 전달할 수 있다. 510에서, 운영 체제 정책 관리자는 버퍼에 액세스하고 데이터 및/또는 관련 데이터를 검색한다. 예를 들어, OSPM(114)는 메일박스(122)에서 데이터를 검색할 수 있고, 실행 또는 처리를 위해 데이터 및/또는 관련 데이터를 OS(188)에 전달한다.
도 6을 참조하면, 도 6은 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 흐름(600)의 가능한 동작을 설명하는 예시적인 흐름도이다. 일 실시예에서, 흐름(600)의 하나 상의 동작은 OSPM(114), PPM(124) 및 LPM(126a-126d) 중 하나 이상에 의해 수행될 수 있다. 602에서, 보조 전자 장치와 통신하는 인터페이스는 로컬 정책 관리자로 데이터를 전달한다. 예를 들어, 멀티모달 인터페이스(106a)는 LPM(126a)에 데이터를 전달할 수 있다. 데이터는 인터페이스(128)을 통해 보조 장치(104a)로부터 수신되었을 수 있고, 인터페이스(106a)가 멀티모달 인터페이스(106a)로부터 연결해제된 결과 또는 몇몇 다른 통신 혹은 이벤트의 결과일 수 있다. 604에서, 로컬 정책 관리자는 데이터 및/또는 관련 데이터를 플랫폼 정책 관리자에 전달한다. 606에서, 플랫폼 정책 관리자는 데이터 및/또는 관련 데이터를 운영 체제 정책 관리자에 전달한다. 예를 들면, PPM(124)는 데이터 및/또는 관련 데이터를 직접 OSPM(114)에 전달할 수 있고, 펌웨어(118) 및 메일박스(122)를 사용하여 데이터 및/또는 관련 데이터를 OSPM(114)에 전달할 수 있고, 또는 몇몇 다른 경로 또는 수단을 사용하여 데이터 및/또는 관련 데이터를 OSPM(114)에 전달할 수 있다.
도 7을 참조하면, 도 7은 실시예에 따른 멀티모달 인터페이스와 연관될 수 있는 가능한 동작을 도시하는 일 예의 타이밍 흐름도이다. 일 실시예에서, LPM(126a)은 경고 통지를 PPM(124)에 전송한다. PPM(124)은 경고를 펌웨어(118)에 복사한다. 일 예에서, PPM(124)은 동작 영역(116)을 사용하여 경고를 펌웨어(118)에 복사한다. 펨웨어(118)는 경고를 메일박스(122)에 복사하고 펌웨어(118)는 경고를 OSPM(114)에 통지한다. OSPM(144)은 정보를 얻기 위해 메일박스(122)에서 경고를 판독하고, 그 경고를 처리하여 확인응답을 메일박스(122)에 전송한다. OSPM(144)은 또한 OSPM(144)이 데이터를 메일박스(122)에 배치했다는 통지를 펌웨어(118)에 전송한다. 펌웨어(118)는 확인응답 세부사항에 대해 메일박스(122)를 판독하고 확인응답 세부사항을 PPM(124)에 전달한다. 일 예에서, 펌웨어(118)는 확인응답 세부사항을 동작 영역(116)을 이용해 PPM(124)에 전달한다. PPM(124)은 확인응답 세부사항을 LPM(126a)에 전달하고 LPM(126a)은 확인응답 세부사항을 처리하여 응답을 PPM(124)에 제공한다. PPM(124)은 확인응답 응신을 펌웨어(118)에 복사한다. 일 예에서, PPM(124)은 확인응답 응신을 동작 영역(116)을 이용해 펌웨어(118)에 복사할 수 있다. 펌웨어(118)는 확인응답 응신을 메일박스(122)에 배치한다. 펌웨어(118)는 메일박스(122) 내의 확인응답 응신을 OSMP(144)에 통지한다.
도 8을 참조하면, 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 흐름(800)의 가능한 동작을 설명하는 예시적인 흐름도이다. 일 실시예에서, 흐름(800)의 하나 이상의 동작은 OSPM(114), PPM(124) 및 LPM(126a-126d) 중 하나 이상에 의해 수행될 수 있다. 802에서, 장치로부터 커맨드가 전송된다. 804에서, 시스템이 커맨드가 리셋 커맨드인지 결정한다. 커맨드가 리셋 커맨드인 경우, 806에서와 같이, 리셋 완료 표시자가 장치에 의해 수신된다.
커맨드가 리셋 커맨드가 아닌 경우, 808에서와 같이 시스템은 커맨드에 응답하여 작동중 표시자가 수신되었는지를 결정한다. 커맨드에 응답하여 작동중 표시자가 수신되지 않은 경우, 810에서와 같이, 커맨드 완료 통지가 장치에 의해 수신된다. 812에서, 커맨드 완료가 확인된다. 커맨드에 응답하여 작동중 표시자가 수신된 경우, 814에서와 같이 시스템은 커맨드가 취소되어야 하는지 결정한다. 커맨드가 취소되어야 하는 경우, 810에서와 같이 커맨드 취소 메시지가 전송된다. 커맨드가 취소되지 않아야 하는 경우, 816에서와 같이 장치는 커맨드에 대한 응답을 대기한다. 810에서, 커맨드 완료 통지가 수신되고 812에서와 같이 커맨드 완료가 확인된다.
도 9를 참조하면, 도 9는 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 흐름(900)의 가능한 동작을 설명하는 예시적인 흐름도이다. 일 실시예에서, 흐름(900)의 하나 이상의 동작은 OSPM(114), PPM(124) 및 LPM(126a-126d) 중 하나 이상에 의해 수행될 수 있다. 902에서, 커맨드가 장치에서 수신된다. 904에서, 시스템은 커맨드가 리셋 커맨드인지 결정한다. 커맨드가 리셋 커맨드인 경우, 906에서와 같이 장치는 리셋된다. 908에서, 리셋 표시자가 전송된다.
커맨드가 리셋 커맨드가 아닌 경우, 910에서와 같이 시스템은 장치가 작동중인지 결정한다. 장치가 작동중이지 않은 경우, 922에서와 같이 커맨드는 완료되고 924에서와 같이 완료된 커맨드 통지가 전송된다. 장치가 작동중인 경우, 912에서와 같이 시스템은 커맨드가 현재 커맨드 취소 메시지인지 결정한다. 커맨드가 현재 커맨드 취소 메시지인 경우, 914에서와 같이 현재 커맨드는 취소되고 916에서와 같이 취소된 커맨드 확인응답이 전송된다. 커맨드가 현재 커맨드 취소 메시지가 아닌 경우, 918에서와 같이 작동중 표시자가 전송된다. 920에서, 시스템은 장치가 작동중인지 결정한다. 장치가 작동중인 경우, 920에서와 같이 시스템은 장치가 작동중인지를 알아보기 위해 다시 확인한다. 장치가 작동중이지 않은 경우, 922에서와 같이 커맨드는 완료되고 924에서와 같이 완료된 커맨드 통지가 전송된다.
도 10을 참조하면, 도 10은 실시예에 따라 멀티모달 인터페이스와 연관될 수 있는 가능한 세부사항을 보여주는 예시적인 간략화된 데이터 구조 테이블(1000)이고, OSPM(114)과 PPM(124) 사이에서 정보를 전달하는데 사용되는 메모리 위치들의 구조에 대한 하나의 예가 도 10의 테이블(1000)에 도시된다. 일 예에서, 데이터 구조 테이블(1000)은 오프셋 열(offset column)(1002), 이름 열(1004), 메모리 위치 열(1006), 방향 열(1008) 및 크기 열(1010)을 포함할 수 있다. 이름 열(1004)은 데이터 구조의 이름, 예를 들어 버전(1012), 리버스드(reversed)(1014), 커넥터 변경 표시(CCI)(1016), 제어(1018), 메시지 인(1020) 및 메시지 아웃(1022)을 포함할 수 있다.
방향 열(1008)은 각 메모리 위치가 사용될 수 있는 방향을 포함할 수 있다. 예를 들어, PPM->OPM은 PPM(124)이 정보를 OSPM(114)에 전달하기 위해 메모리 위치를 사용함을 나타낸다. 위치는 OSPM(114)이 관련되는 한 판독 전용(RO)이다. 유사하게, OPM->PPM은 OSPM(114)이 정보를 PPM(124)에 전달하기 위해 메모리 위치를 사용함을 나타낸다. 위치는 PPM(124)이 관련되는 한 판독 전용(RO)이다. 이름 열(1004)은 통신 시스템(100)에 사용될 수 있는 예시적인 데이터 구조의 이름을 포함할 수 있다.
예를 들어, 버전(1012)은 버전 데이터 구조를 포함할 수 있다. 버전 데이터 구조는 PPM(124)이 호환되는 BCD(Binary-Coded Decimal) 버전을 포함할 수 있다. 리버스드(1014)는 메모리의 반전된 영역일 수 있다. CCI(1016)은 CCI 데이터 구조를 포함할 수 있다. CCI 데이터 구조는 OSPM(114)에 의해 PPM(124)에 전송된 커맨드에 대한 이 PPM(124)으로부터의 응답, 및 멀티모달 인터페이스(106a-106d) 상에서 발생한 비동기 상태 변경 통지를 포함할 수 있다. 제어(1018)는 제어 데이터 구조를 포함할 수 있다. 제어 데이터 구조는 PPM(124)에 의해 실행될 커맨드를 나타낼 수 있다. 메시지 인(1020)은 메시지 인 데이터 구조를 포함할 수 있다. 메시지 인 데이터 구조는 PPM(124)이 OSPM(114)에게 전송하길 원하는 데이터를 포함할 수 있다. 메시지 아웃(1022)은 메시지 아웃 데이터 구조를 포함할 수 있다. 메시지 아웃 데이터 구조는 PPM(124)에 전송될 데이터를 포함할 수 있다. 메시지 인 및 메시지 아웃 데이터 구조의 포맷은 커맨드에 특정할 수 있다.
또한, 멀티모달 인터페이스(106a-106d)를 구성 및 동작시키기 위한 다양한 커맨드가 OSPM(114)에 의해 PPM(124)에 전송될 수 있다. 하나의 예시적인 예에서, PPM(124)을 리셋하기 위한 커맨드 PPM 리셋이 사용될 수 있다. 커맨드 PPM 리셋은 임의의 시간에 OSPM(114)에 의해 PPM(124)에 전송될 수 있다. 커맨드 PPM 리셋을 수신하면, PPM(124)은 PPM(124)과 통신하는 각각의 멀티모달 인터페이스(106a-106d)에 대해 하드 리셋(hard reset)을 수행할 수 있다. 이전에 PPM(124)에 전송된 커맨드를 취소하기 위한 취소 커맨드가 사용될 수 있다. 멀티모달 인터페이스(106a-106d)를 리셋하기 위한 커넥터 리셋 커맨드가 사용될 수 있다. OSPM(114)이 커맨드 완료 및/또는 커넥터 변경 표시를 수신하고 처리했다는 확인응답을 PPM(124)에 전달하기 위한 확인응답 커맨드 완료 및/또는 변경 표시가 사용될 수 있다. PPM(124)이 OSPM(114)에 통지를 전송할 수 있는 비동기 이벤트의 리스트를 설정하기 위해 설정 통지 인에이블 커맨드가 사용될 수 있다.
PPM(124)의 능력(capability)을 취득하기 위해 겟 케이퍼빌러티 커맨드(get capability command)가 사용될 수 있다. 멀티모달 인터페이스(106a-106d)의 능력을 취득하기 위해 겟 커넥터 케이퍼빌러티가 사용될 수 있다. OSPM(114)이 멀티모달 인터페이스(106a-106d)에 대해 원하는 동작 모드를 설정하기 위한 설정 동작 모드가 사용될 수 있다. 예를 들어, 설정 동작 모드는 멀티모달 인터페이스(106a)를 특정 USB 동작 모드로 설정하는데 사용될 수 있다.
보조 장치(예를 들어, 보조 장치(104a))가 지원하는 대안 모드(alternate mode)를 결정하기 위해 겟 얼터네이트 모드(get alternate mode)가 사용될 수 있다. 겟 커넥터 얼터네이트 모드 지원 커맨드가 사용되어 멀티모달 인터페이스(106a-106d)에 상에서 또는 이 인터페이스에 의해 지원되는 대안 모드의 리스트를 결정할 수 있다. 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a))가 동작하고 있는 현재의 대안 모드를 결정하기 위해 겟 커런트 커넥터 얼터네이트 모드 커맨드(get current connector alternate mode command)가 사용될 수 있다. OSPM(114)이 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a))로 하여금 동작하기를 원하는 새로운 대안 모드를 설정하기 위해 셋 뉴 커넥터 얼터네이트 모드 커맨드(set new connector alternate mode command)가 사용될 수 있다.
멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a))와 연관된 싱크 또는 소스 PDO를 얻기 위해 겟 파워 딜리버리 오브젝트(get power delivery object)(PDO) 커맨드가 사용될 수 있다. 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a))의 전력 전달 방향(소스 또는 싱크)을 설정하기 위해 셋 파워 롤 커맨드(set power role command)가 사용될 수 있다. 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a))에 부착된 케이블 또는 몇몇 다른 유형의 통신 또는 데이터 커넥터에 대한 속성을 얻기 위해 겟 케이블 프로퍼티 커맨드(get cable properties command)가 사용될 수 있다. 멀티모달 인터페이스(예를 들어, 멀티모달 인터페이스(106a))의 현재 상태(예를 들어, 전력 역할, 데이터 역할, 구성된 대안 모드 등)를 얻기 위해 겟 커넥터 스테이터스 커맨드(get connector status command)가 사용될 수 있다.
PPM(124) 초기화시, PPM(124)은 임의의 OS(108) 상호작용없이 기능할 것으로 예상된다. 내부 초기화 완료시, PPM(124)은 PPM 유휴(통지 불능) 상태에 있을 수 있다. PPM(124)은 OSPM(114)이 셋 노티피케이션 인에이블 커맨드(set notification enable command)를 통해 하나 이상의 통지를 인에이블링할 때까지 어떠한 활동도 OSPM(114)에게 통지하지 않을 수 있다. 셋 노티피케이션 인에이블 커맨드의 성공적인 완료시, PPM(124)은 PPM 유휴(통지 가능) 상태로 전이할 수 있다. PPM 유휴(통지 불능) 상태에서 처리하기 위해 PPM(124)에게 요구되는 전용 커맨드는 셋 노티피케이션 인에이블 커맨드 및 PPM 리셋 커맨드이다.
예시적인 동작 모델에서, OSPM(114)은 기껏해야 한 번에 하나의 커맨드를 PPM(124)에 전송할 수 있다. 커맨드가 전송되었으면, OSPM(114)은 다음 커맨드를 전송하기 전에 PPM(124)이 현재의 커맨드를 완료할 때까지 대기해야 한다. PPM(124)은 커맨드 완료 통지가 인에이블링되어 있는 경우 커맨드를 완료하면 OSPM(114)에 통지할 수 있다. 하나의 커맨드 룰에 대한 유일한 예외는 취소 커맨드 및 PPM 리셋 커맨드이다. PPM 리셋 커맨드는 임의의 시간에 OSPM(114)에 의해 전송될 수 있다. 취소 커맨드는 OSPM(114)이 이전에 PPM 작동중 응답을 수신한 보류중인 커맨드를 OSPM(114)이 취소하기를 원할 때만 OSPM(114)에 의해 전송될 수 있다. 또한, PPM(124)은 한 번에 하나의 통지만을 OSPM(114)에 전송할 수 있다. PPM(124)은 다음 통지를 전송하기 전에 OSPM(114)이 (비동기 이벤트로 인한) 통지에 대해 확인응답할 때까지 대기할 수 있다.
취소 커맨드 또는 PPM 리셋 커맨드가 아닌 커맨드가 수신되면, PPM(124)은 커맨드를 실행하거나, 또는 PPM(124)이 작동중이거나 PPM(124)이 커맨드를 완료하는데 사전결정된 기간(예를 들어, 10ms)을 초과하는 시간을 소요하게 된다면 작동중 표시자를 CCI 데이터 구조에 설정할 수 있다. 커맨드의 실행시, PPM(124)은 CCI 데이터 구조를 설정할 수 있고 선택에 따라서는 데이터 구조에서 상태 및 메시지를 업데이트할 수 있다. 커맨드 완료 통지가 OSPM(114)에 의해 인에이블링되었다면, PPM(124)은 완료된 커맨드를 OSPM(114)에 통지할 수 있다.
취소 커맨드를 수신하면, PPM(124)은 수행하고 있던 현재의 동작(들)을 취소할 수 있고 또는 PPM(124)이 현재 커맨드를 처리하고 있지 않다면 취소 커맨드를 제외 또는 무시할 수 있다. PPM(124)이 취소 커맨드를 성공적으로 완료할 수 있으면, PPM은 1로 설정된 취소 완료 표시자를 통해 CCI 데이터 구조를 업데이트할 수 있다. 커맨드 완료 통지가 OSPM(114)에 의해 인에이블링되어 있다면, PPM(124)은 완료된 커맨드를 OSPM(114)에 통지할 수 있다.
PPM 리셋 커맨드가 수신되면, PPM(124)은 모든 통지를 디스에이블링할 수 있고, 그 자신을 리셋하며 리셋 완료 표시자를 CCI 데이터 구조 내에 설정하고, PPM 유휴(통지 불능) 상태로 전이할 수 있다. OSPM(114)은 CCI 데이터 구조내에 리셋 완료 표시자를 폴링(poll)할 수 있다. 하나 이상의 커넥터에 비동기 이벤트가 발생하면, PPM(124)은 CCI 및 상태 데이터 구조를 업데이트할 수 있고 대응하는 통지가 OSPM(114)에 의해 인에이블링되었는지를 OSPM(114)에 통지할 수 있다. 커맨드 완료 및/또는 비동기 이벤트를 OSPM(114)이 통지받으면, OSPM(114)은 CCI 및 선택에 따라서는 상태 데이터 구조를 판독할 수 있고 확인응답 커맨드 완료 및/또는 변경 표시 커맨드를 통해 통지에 대해 확인응답할 수 있다. 이벤트가 비동기 이벤트인 경우, OSPM(114)은 비동기 이벤트에 대한 세부사항을 얻기 위해 필요로 하는 임의의 다른 커맨드를 전송할 수 있다.
도 11은 실시예에 따라 점대점(PtP) 구성으로 배치된 컴퓨팅 시스템(1100)을 도시한다. 특히, 도 11은 프로세서, 메모리 및 입/출력 장치가 다수의 점대점 인터페이스에 의해 상호 접속되는 시스템을 도시한다. 일반적으로, 통신 시스템(100)의 네트워크 요소들 중 하나 이상은 컴퓨팅 시스템(1100)과 동일한 또는 유사한 방식으로 구성될 수 있다.
도 11에 도시된 바와 같이, 시스템(1100)은 몇몇 프로세서를 포함할 수 있고, 명확성을 위해 그 중 두 개의 프로세서(1170, 1180)만이 도시되어 있다. 두 개의 프로세서(1170, 1180)가 도시되어 있지만, 시스템(1100)의 실시예는 이러한 프로세서를 하나만 포함할 수 있다는 것을 이해해야 한다. 프로세서(1170, 1180)는 각각 프로그램의 다수의 스레드를 실행하기 위해 코어 세트(즉, 프로세서 코어(1174A, 1174B) 및 프로세서 코어(1184A,1184B))를 포함할 수 있다. 코어는 도 2 내지 도 10을 참조하여 앞서 설명한 것과 유사한 방식으로 명령어 코드를 실행하도록 구성될 수 있다. 각 프로세서(1170,1180)는 적어도 하나의 공유 캐시(1171,1181)를 포함할 수 있다. 공유 캐시(1171,1181)는 프로세서 코어(1174,1184)와 같은, 프로세서(1170,1180)의 하나 이상의 컴포넌트에 의해 사용되는 데이터(예를 들어, 명령어)를 저장할 수 있다.
프로세서(1170,1180) 각각은 또한 메모리 소자(1132,1134)와 통신하기 위한 통합 메모리 제어기 로직(MC)(1172,1182)을 포함할 수 있다. 메모리 소자(1132 및/또는 1134)는 프로세서(1170,1180)에 의해 사용되는 다양한 데이터를 저장할 수 있다. 또 다른 실시예에서, 메모리 제어기 로직(1172,1182)은 프로세서(1170,1180)와 별개인 이산 로직일 수 있다.
프로세서(1170,1180)는 임의의 유형의 프로세서일 수 있고, 제각기의 점대점 인터페이스 회로(1178,1188)를 사용하여 점대점(PtP) 인터페이스(1150)를 통해 데이터를 교환할 수 있다. 프로세서(1170,1180) 각각은 점대점 인터페이스 회로(1176,1186,1194,1198)를 사용하여 개별 점대점 인터페이스(1152,1154)를 통해 제어 로직(1190)과 데이터를 교환할 수 있다. 제어 로직(1190)은 또한 PtP 인터페이스 회로일 수 있는 인터페이스 회로(1192)를 사용하여, 고성능 그래픽 인터페이스(1139)를 통해 고성능 그래픽 회로(1138)와 데이터를 교환할 수 있다. 또 다른 실시예에서, 도 11에 도시되어 있는 PtP 링크들 중 임의의 링크 또는 모든 링크는 PtP 링크보다는 멀티-드롭 버스로서 구현될 수 있다.
제어 로직(1190)은 인터페이스 회로(1196)를 통해 버스(1120)와 통신할 수 있다. 버스(1120)는 자신을 통해 통신하는 하나 이상의 장치, 예를 들어 버스 브릿지(1118) 및/또는 I/O 장치(1116)를 구비할 수 있다. 버스(1110)를 통해, 버스 브릿지(1118)는 키보드/마우스(1112)(또는 터치 스크린, 트랙볼 등과 같은 다른 입력 장치), 통신 장치(1126)(예를 들어, 모뎀, 네트워크 인터페이스 장치, 컴퓨터 네트워크(1160)를 통해 통신할 수 있는 다른 유형의 통신 장치), 오디오 I/O 장치(1114) 및/또는 데이터 저장 장치(1128)와 같은 다른 장치와 통신할 수 있다. 데이터 저장 장치(1128)는 프로세서(1170 및/또는 1180)에 의해 실행될 수 있는 코드(1130)를 저장할 수 있다. 또 다른 실시예에서, 버스 아키텍처의 임의의 부분은 하나 이상의 PtP 링크를 통해 구현될 수 있다.
도 11에 도시되어 있는 컴퓨터 시스템은 본 명세서에 기술된 다양한 실시예를 구현하는데 사용될 수 있는 컴퓨팅 시스템의 실시예에 대한 개략도이다. 도 11에 도시되어 있는 시스템의 다양한 컴포넌트는 시스템 온 칩(SoC) 아키텍처 또는 임의의 다른 적절한 구성으로 결합될 수 있다. 예를 들어, 본 명세서에 기술된 실시예는 스마트 셀룰러폰, 태블릿 컴퓨터, 개인 디지털 보조 단말기(PDA), 휴대용 게이밍 장치 등과 같은 이동 장치를 포함하는 시스템에 통합될 수 있다. 이들 이동 장치는 적어도 일부 실시예에서 SoC 아키텍처로 제공될 수 있음을 이해할 것이다.
도 12를 참조하면, 도 12는 본 개시물의 예시적인 ARM 에코시스템 SOC(1200)와 연관된 간략화된 블록도이다. 본 개시물의 적어도 하나의 예시적인 실시예는 본 명세서에서 설명된 멀티모달 인터페이스 특징 및 ARM 컴포넌트를 포함할 수 있다. 예를 들어, 도 12의 예는 임의의 ARM 코어(예를 들어, A-9, A-15 등)와 연관될 수 있다. 또한, 아키텍처는 태블릿, 스마트폰(안드로이드 폰, 아이폰을 포함함), 아이패드, 구글 넥서스, 마이크로소프트 서피스, 개인용 컴퓨터, 서버, 비디오 처리 컴포넌트, 랩탑 컴퓨터(임의의 유형의 노트북을 포함), 울트라북 시스템, 임의의 유형의 터치 가능형 입력 장치 등 중 임의의 유형의 일부일 수 있다.
도 12의 이 예에서, ARM 에코시스템 SOC(1200)는 다수의 코어(1206-1207), L2 캐시 제어(1208), 버스 인터페이스 유닛(1209), L2 캐시(1210), 그래픽 처리 장치(GPU)(1215), 상호연결(1202), 비디오 코덱(1220), 및 LCD에 연결되는 이동 산업 프로세서 인터페이스(MIPI)/고선명 멀티미디어 인터페이스(HDMI) 링크와 연관될 수 있는 액정 디스플레이(LCD) I/F(1225)를 포함할 수 있다.
ARM 에코시스템 SOC(1200)은 또한 가입자 신원 모듈(SIM) I/F(1230), 부팅 판독 전용 메모리(ROM)(1235), 동기식 동적 랜덤 액세스 메모리(SDRAM) 제어기(1240), 플래시 제어기(1245), 직렬 주변장치 인터페이스(SPI) 마스터(1250), 적절한 전력 제어기(1255), 동적 RAM(DRAM)(1260) 및 플래시(1265)를 포함할 수 있다. 또한, 하나 이상의 실시예는 하나 이상의 통신 기능, 인터페이스 및 특징, 예를 들어 블루투스(1270), 3G 모뎀(1275), 글로벌 위치확인 시스템(GPS)(1280) 및 802.11 와이파이(1285)를 포함한다.
동작시, 도 12의 예는 다양한 유형의 컴퓨팅(예를 들어, 이동 컴퓨팅, 고급 디지털 홈, 서버, 무선 인프라스트럭처 등)이 가능해지도록 비교적 저전력 소비와 함께, 처리 능력을 제공할 수 있다. 또한, 이러한 아키텍처는 소프트웨어 애플리케이션(예를 들어, 안드로이드, 아도비 플래시 플레이어, 자바 플랫폼 표준 에디션(자바 SE), 자바FX, 리눅스, 마이크로소프트 윈도우 내장형, 심비안 및 우분투 등) 중 임의의 개수를 가능하게 할 수 있다. 적어도 하나의 실시예에서, 코어 프로세서는 결합된 낮은 레이턴시 레벨 2 캐시를 이용하여 순서를 벗어난(out-of-order) 수퍼스칼라 파이프 라인을 구현할 수 있다.
도 13은 실시예에 따른 프로세서 코어(1300)를 도시한다. 프로세서 코어(1300)는 마이크로프로세서, 내장형 프로세서, 디지털 신호 프로세서(DSP), 네트워크 프로세서, 또는 코드를 실행하는 다른 장치와 같은 임의의 유형의 프로세서를 위한 코어일 수 있다. 도 13에는 오직 하나의 프로세서 코어(1300)만이 도시되어 있지만, 프로세서는 이와 달리 도 13에 도시된 프로세서 코어(1300)를 둘 이상 포함할 수 있다. 예를 들어, 프로세서 코어(1300)는 도 11의 프로세서(1170,1180)를 참조하여 도시되고 설명된 프로세서 코어(1174a, 1174b, 1184a 및 1184b)의 실시예를 나타낸다. 프로세서 코어(1300)는 코어 당 둘 이상의 하드웨어 스레드 컨텍스트(또는 "논리 프로세서")를 포함할 수 있다는 점에서 다중스레드형일 수 있다.
도 13은 또한 실시예에 따른 프로세서 코어(1300)에 결합된 메모리(1302)를 도시한다. 메모리(1302)는 당업자에게 알려져 있거나 입수가능한 (다양한 층의 메모리 계층구조를 포함하는) 임의의 다양한 메모리일 수 있다. 메모리(1302)는 프로세서 코어(1300)에 의해 실행되는 하나 이상의 명령어일 수 있는 코드(1304)를 포함할 수 있다. 프로세서 코어(1300)는 코드(1304)에 의해 표시된 명령어들로 이루어진 프로그램 시퀀스를 따를 수 있다. 각 명령어는 프론드 엔드 로직(1306)에 진입하고 하나 이상의 디코더(1308)에 의해 처리된다. 디코더는 그의 출력으로서, 사전정의된 포맷으로 고정된 폭의 마이크로 동작과 같은 마이크로 동작을 생성할 수 있거나 본래의 코드 명령어를 반영하는 다른 명령어, 마이크로명령어 또는 제어 신호를 생성할 수 있다. 프론트엔드 로직(1306)은 또한 일반적으로 리소스를 할당하고 실행을 위한 명령어에 대응하는 동작을 큐잉하는 레지스터 리네이밍 로직(1310) 및 스케쥴링 로직(1312)을 포함한다.
프로세서 코어(1300)는 또한 실행 유닛들(1316-1 내지 1316-N)의 집합을 구비한 실행 로직(1314)을 포함할 수 있다. 일부 실시예는 특정 기능 또는 기능 세트에 전용된 다수의 실행 유닛을 포함할 수 있다. 다른 실시예는 특정 기능을 수행할 수 있는 하나의 실행 유닛만 또는 하나의 실행 유닛을 포함할 수 있다. 실행 로직(1314)은 코드 명령어에 의해 지정된 동작을 수행한다.
코드 명령어에 의해 지정된 동작의 수행이 완료되면, 백엔드 로직(1318)은 코드(1304)의 명령어를 폐기할 수 있다. 일 실시예에서, 프로세서 코어(1300)는 순서를 벗어난 실행을 허용하지만 명령어의 순서에 따른 퇴장을 요구한다. 퇴장 로직(1320)은 다양한 공지된 형태(예를 들어, 리오더 버퍼(reorder buffer) 등)를 취할 수 있다. 이러한 방식으로, 프로세서 코어(1300)는 코드(1304)의 실행 동안, 적어도 디코더에 의해 생성되는 출력, 레지스터 리네이밍 로직(1310)에 의해 이용되는 하드웨어 레지스터 및 테이블, 및 실행 로직(1314)에 의해 수정되는 임의의 레지스터(미도시)와 관련하여 변환된다.
도 13에는 도시되어 있지 않지만, 프로세서는 프로세서 코어(1300)와 함께 칩 상에 다른 구성요소를 포함할 수 있으며, 이들 중 적어도 일부가 도 11을 참조하여 도시되고 설명되어 있다. 예를 들어, 도 11에 도시되어 있는 바와 같이, 프로세서는 프로세서 코어(1300)와 함께 메모리 제어 로직을 포함할 수 있다. 프로세서는 I/O 제어 로직을 포함할 수 있고 및/또는 메모리 제어 로직과 함께 통합된 I/O 제어 로직을 포함할 수 있다.
본 명세서에서 제공된 예시들에서, 상호작용은 두 개, 세 개 또는 그 이상의 네트워크 구성요소와 관련하여 설명될 수 있다. 그러나, 이것은 단지 명료성 및 예를 위한 것일 뿐이다. 소정의 경우, 제한된 수의 네트워크 구성요소만을 참조하여 주어진 흐름 세트의 하나 이상의 기능을 설명하는 것이 더 용이할 수 있다. 통신 시스템(100) 및 그에 대한 교시는 쉽게 확장될 수 있고 다수의 컴포넌트, 및 보다 복잡하고/정교한 배열 및 구성을 수용할 수 있음을 이해해야 한다. 따라서, 제공된 예시들은 다수의 다른 아키텍처에 잠재적으로 적용되는 바와 같이 그 범주를 제한하지 않아야 하거나 통신 시스템(100)의 광범위한 교시를 억제해서는 안된다.
이전 흐름도(즉, 도 2, 3, 5, 6, 8 및 9)에서의 동작은 통신 시스템(100)에 의해 또는 그 내에서 실행될 수 있는 가능한 상관 시나리오 및 패턴 중 일부만을 나타낸다는 것을 이해하는 것이 또한 중요하다. 이들 동작 중 일부는 적절하다면 삭제 또는 제거될 수 있고, 또는 이들 동작은 본 개시물의 범주를 벗어나지 않고 많이 수정 또는 변경될 수 있다. 또한, 다수의 이들 동작은 하나 이상의 추가 동작과 동시에 또는 그와 병렬로 수행되는 것으로 설명되었다. 그러나, 이들 동작의 타이밍은 많이 변경될 수 있다. 이전의 동작 흐름은 예시 및 설명을 위해 제공되었다. 본 개시물의 교시를 벗어나지 않고 임의의 적절한 배열, 연대순, 구성 및 타이밍 메커니즘이 제공될 수 있다는 점에서 통신 시스템(100)에 의해 실질적인 융통성이 제공된다.
본 개시물은 특정의 배치 및 구성을 참조하여 상세히 설명되었지만, 이러한 예시적인 구성 및 배치는 본 발명의 범위를 벗어나지 않고 많이 변경될 수 있다. 또한, 소정의 컴포넌트들은 특정 요구 및 실시예에 기초하여 결합, 분리, 제거, 또는 추가될 수 있다. 또한, 통신 시스템(100)이 통신 프로세스를 용이하게 하는 특정 구성요소 및 동작을 참조하여 설명되었지만, 이들 구성요소 및 동작은 통신 시스템(100)의 의도한 기능을 달성하는 임의의 적절한 아키텍처, 프로토콜 및/또는 프로세스에 의해 대체될 수 있다.
당업자라면 다수의 다른 변화, 대체, 변형, 변경 및 수정을 행할 수 있고, 본 개시물은 첨부한 청구항의 범주 내에 속하는 이러한 모든 변화, 대체, 변형, 변경 및 수정을 포함하려 한다. 미국 특허청(USPTO)을 지원하고 또한 본 출원에 대해 허여된 임의의 특허의 임의의 독자가 첨부한 청구항을 이해하는 것을 돕기 위해, 본 출원인은 다음을 주지시키고자 하는데, 즉 본 출원인은 (a) "~하는 수단" 또는 "~하는 단계"라는 표현이 특정 청구항에 구체적으로 사용되지 않는다면, 첨부한 임의의 청구항이 본 출원 당시에 존재하는 35 U.S.C §112(f)을 호출하려 하지 않으며, (b) 명세서 내의 어떠한 표현으로도, 첨부한 청구항에 반영되지 않은 임의의 방식으로 본 개시물을 한정하려 하지 않는다.
다른 사항 및 예들
예 M1은 전자 장치의 운영 체제로부터 데이터를 수신하는 단계 및 그 데이터 및/또는 관련 데이터를 로컬 정책 관리자에게 전달하는 단계를 포함하는 방법이다. 로컬 정책 관리자는 멀티모달 인터페이스와 통신할 수 있고 데이터는 멀티모달 인터페이스를 통해 전자 장치와 통신하는 하드웨어에 관련될 수 있다.
예 M2에서, 예 M1의 청구대상은 선택에 따라, 멀티모달 인터페이스가 동일한 인터페이스 상에서 전력 전달, 방향성, 및 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성되는 것을 포함할 수 있다.
예 M3에서, 예 M1 또는 M2의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 펌웨어를 통과하는 것을 포함할 수 있다.
예 M4에서, 예 M1 내지 M3 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 펌웨어에 의해 동작 영역에 기록되는 것을 포함할 수 있다.
예 M5에서, 예 M1 내지 M4 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 공유 메모리에 저장되는 것을 포함할 수 있다.
예 M6에서, 예 M1 내지 M5 중 어느 하나의 청구대상은 선택에 따라, 로컬 정책 관리자로부터 하드웨어에 관련된 응답 데이터를 수신하는 단계 및 이 응답 데이터 및/또는 관련 응답 데이터를 공유 메모리에 전달하는 단계를 포함할 수 있다.
예 M7에서, 예 M1 내지 M6 중 어느 하나의 청구대상은 선택에 따라, 데이터는 플랫폼 정책 관리자에서 수신되고 플랫폼 정책 관리자는 복수의 로컬 정책 플랫폼 관리자와 통신하며, 복수의 로컬 정책 플랫폼 관리자 각각은 상이한 유형의 하드웨어와 통신하는 것을 포함할 수 있다.
예 A1에서, 멀티모달 인터페이스와 통신하는 장치는 전자 장치의 운영 체제로부터 데이터를 수신하고 그 데이터 및/또는 관련 데이터를 로컬 정책 관리자에 전달하도록 구성된 플랫폼 정책 관리자를 포함할 수 있되, 데이터는 멀티모달 인터페이스를 통해 전자 장치와 통신하는 하드웨어에 관련되고, 로컬 정책 플랫폼 관리자는 멀티모달 인터페이스와 통신한다.
예 A2에서, 예 A1의 청구대상은 선택에 따라, 멀티모달 인터페이스가 동일한 인터페이스 상에서 전력 전달, 방향성, 및 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성되는 것을 포함할 수 있다.
예 A3에서, 예 A1 또는 A2의 청구대상은 선택에 따라, 수신된 데이터가 펌웨어를 통과하는 것을 포함할 수 있다.
예 A4에서, 예 A1 내지 A3 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 펌웨어에 의해 동작 영역에 기록되는 것을 포함할 수 있다.
예 A5에서, 예 A1 내지 A4 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 공유 메모리에 저장되는 것을 포함할 수 있다.
예 A6에서, 예 A1 내지 A5 중 어느 하나의 청구대상은 선택에 따라, 플랫폼 정책 관리자가 로컬 정책 관리자로부터 하드웨어에 관련된 응답 데이터를 수신하고 이 응답 데이터 및/또는 관련 응답 데이터를 공유 메모리에 전달하도록 더 구성될 수 있는 것을 포함할 수 있다.
예 C1은 하나 이상의 명령어를 구비한 적어도 하나의 머신 판독가능 저장 매체로서, 이 하나 이상의 명령어는 적어도 하나의 프로세서에 의해 실행되는 경우 적어도 하나의 머신 판독가능 매체로 하여금 전자 장치의 운영 체제로부터 데이터를 수신하고 그 데이터 및/또는 관련 데이터를 로컬 정책 관리자에게 전달하게 하되, 데이터는 멀티모달 인터페이스를 통해 전자 장치와 통신하는 하드웨어에 관련되고, 로컬 정책 관리자는 멀티모달 인터페이스와 통신한다.
예 C2에서, 예 C1의 청구대상은 선택에 따라, 멀티모달 인터페이스가 동일한 인터페이스 상에서 전력 전달, 방향성, 및 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성되는 것을 포함할 수 있다.
예 C3에서, 예 C1 또는 C2의 청구대상은 선택에 따라, 수신된 데이터가 펌웨어를 통과하는 것을 포함할 수 있다.
예 C4에서, 예 C1 내지 C3 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 펌웨어에 의해 동작 영역에 기록되는 것을 포함할 수 있다.
예 C5에서, 예 C1 내지 C4 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 공유 메모리에 저장되는 것을 포함할 수 있다.
예 C6에서, 예 C1 내지 C5 중 어느 하나의 청구대상은 선택에 따라, 적어도 하나의 프로세서에 의해 실행되는 경우 머신 판독가능 매체로 하여금 로컬 정책 관리자로부터 하드웨어에 관련된 응답 데이터를 수신하고 이 응답 데이터 및/또는 관련 응답 데이터를 공유 메모리에 전달하게 하는 하나 이상의 명령어를 포함할 수 있다.
예 S1은 상이한 유형의 하드웨어와 통신하는 멀티모달 인터페이스 시스템으로서, 이 시스템은 전자 장치의 운영 체제로부터 데이터를 수신하고 그 데이터 및/또는 관련 데이터를 로컬 정책 관리자에게 전달하도록 구성된 플랫폼 정책 관리자를 포함하되, 데이터는 멀티모달 인터페이스를 통해 전자 장치와 통신하는 하드웨어에 관련되고, 로컬 정책 플랫폼 관리자는 멀티모달 인터페이스와 통신한다.
예 S2에서, 예 S1의 청구대상은 선택에 따라, 멀티모달 인터페이스가 동일한 인터페이스 상에서 전력 전달, 방향성, 및 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성되는 것을 포함할 수 있다.
예 S3에서, 예 S1 또는 S2의 청구대상은 선택에 따라, 수신된 데이터가 펌웨어를 통과하는 것을 포함할 수 있다.
예 S4에서, 예 S1 내지 S3 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 펌웨어에 의해 동작 영역에 기록되는 것을 포함할 수 있다.
예 S5에서, 예 S1 내지 S4 중 어느 하나의 청구대상은 선택에 따라, 수신된 데이터가 수신되기 전에 공유 메모리에 저장되는 것을 포함할 수 있다.
예 X1은 예 A1 내지 A6 또는 M1 내지 M7 중 어느 하나의 방법 또는 장치를 구현하기 위한 머신 판독가능 명령어를 포함하는 머신 판독가능 저장 매체이다. 예 Y1은 예시적인 방법 M1 내지 M7 중 어느 하나를 수행하는 수단을 포함하는 장치이다. 예 Y2에서, 예 Y1의 청구대상은 선택에 따라, 프로세서 및 메모리를 포함하여 방법을 수행하는 수단을 포함할 수 있다. 예 Y3에서, 예 Y2의 청구대상은 선택에 따라, 머신 판독가능 명령어를 포함하는 메모리를 포함할 수 있다.

Claims (25)

  1. 전자 장치에 의해 수행되는 방법으로서,
    공유 메모리에서, 상기 전자 장치의 운영 체제로부터 데이터를 수신하는 단계 - 상기 데이터는 멀티모달(multimodal) 인터페이스를 통해 상기 전자 장치와 통신하는 하드웨어에 관련되고, 상기 하드웨어는 펌웨어에 의해 상기 운영 체제로부터 추상화됨 - 와,
    운영 체제 정책 관리자(operating system policy manager)에 의해, 상기 데이터가 상기 공유 메모리에 있다는 메시지를 상기 펌웨어로 전달하는 단계와,
    상기 펌웨어에 의해, 상기 데이터를 상기 공유 메모리로부터 판독하는 단계와,
    상기 펌웨어에 의해, 상기 데이터 및/또는 상기 데이터와 관련된 명령어(instruction)를 플랫폼 정책 관리자에게 전달하는 단계 - 상기 전달하는 것은, 상기 펌웨어에 의해 상기 데이터 및/또는 상기 명령어를 상기 펌웨어에 의해 설정된 동작 영역(operation region, opregion)에 기입하는 것과, 상기 플랫폼 정책 관리자에 의해 상기 동작 영역으로부터 상기 데이터 및/또는 상기 명령어를 판독하는 것을 포함하고, 상기 플랫폼 정책 관리자는 복수의 로컬 정책 관리자와 통신하고, 상기 복수의 로컬 정책 관리자 각각은 개별 멀티모달 인터페이스를 관리하고 상이한 유형의 하드웨어와 통신함 - 와,
    상기 플랫폼 정책 관리자에 의해, 상기 데이터 및/또는 상기 데이터와 관련된 하나 이상의 커맨드(command)를 특정 로컬 정책 관리자에게 전달하는 단계 - 상기 특정 로컬 정책 관리자는 상기 하드웨어와 통신하는 상기 멀티모달 인터페이스와 통신하고, 상기 특정 로컬 정책 관리자는 상기 하드웨어와 커맨드 레벨 통신을 수행하고, 상기 공유 메모리는 상기 멀티모달 인터페이스의 유형과 연관된 사양에 기초하는 데이터 구조를 가짐 - 를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 멀티모달 인터페이스는 동일한 인터페이스 상에서 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성되는,
    방법.
  3. 제1항에 있어서,
    상기 운영 체제와 상기 하드웨어 사이의 통신은 양방향 통신이고 상기 공유 메모리는 두 개의 영역으로 분할되는,
    방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 플랫폼 정책 관리자에 의해, 상기 로컬 정책 관리자로부터 상기 하드웨어에 관련된 응답 데이터를 수신하는 단계와,
    상기 플랫폼 정책 관리자에 의해, 상기 응답 데이터를 상기 공유 메모리에 전달하는 단계를 더 포함하는,
    방법.
  7. 삭제
  8. 멀티모달 인터페이스와 통신하는 장치로서,
    하나 이상의 프로세서와,
    운영 체제와,
    운영 체제 정책 관리자와,
    공유 메모리와,
    펌웨어와,
    플랫폼 정책 관리자를 포함하되,
    상기 운영 체제는 상기 공유 메모리에 하드웨어와 관련된 데이터를 저장하고, 상기 운영 체제 정책 관리자는 상기 하드웨어와 관려된 상기 데이터가 상기 공유 메모리에 있다는 메시지를 상기 펌웨어에 전달하고, 상기 하드웨어는 상기 멀티모달 인터페이스를 통해 상기 운영 체제와 통신하며,
    상기 펌웨어는 상기 운영 체제로부터 상기 하드웨어를 추상화하고, 상기 공유 메모리로부터 상기 데이터를 판독하며,
    상기 플랫폼 정책 관리자는
    상기 펌웨어로부터 상기 데이터 및/또는 상기 데이터와 관련된 명령어를 수신하고 - 상기 플랫폼 정책 관리자는, 상기 펌웨어에 의해 설정되고 상기 펌웨어가 상기 데이터 및/또는 상기 명령어를 기입하는 동작 영역으로부터 상기 데이터 및/또는 상기 명령어를 판독하고, 상기 플랫폼 정책 관리자는 복수의 로컬 정책 관리자와 통신하고, 상기 복수의 로컬 정책 관리자 각각은 개별 멀티모달 인터페이스를 관리하고 상이한 유형의 하드웨어와 통신함 -,
    상기 데이터 및/또는 상기 데이터와 관련된 하나 이상의 커맨드(command)를 특정 로컬 정책 관리자에게 전달 - 상기 특정 로컬 정책 관리자는 상기 하드웨어와 통신하는 상기 멀티모달 인터페이스와 통신하고, 상기 특정 로컬 정책 관리자는 상기 하드웨어와 커맨드 레벨 통신을 수행하고, 상기 공유 메모리는 상기 멀티모달 인터페이스의 유형과 연관된 사양에 기초하는 데이터 구조를 가짐 - 하도록 구성되는,
    장치.
  9. 제8항에 있어서,
    상기 멀티모달 인터페이스는 동일한 인터페이스 상에서 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성되는,
    장치.
  10. 제8항에 있어서,
    상기 운영 체제와 상기 하드웨어 사이의 통신은 양방향 통신이고 상기 공유 메모리는 두 개의 영역으로 분할되는,
    장치.
  11. 삭제
  12. 삭제
  13. 제8항에 있어서,
    상기 플랫폼 정책 관리자는
    상기 로컬 정책 관리자로부터 상기 하드웨어에 관련된 응답 데이터를 수신하고
    상기 응답 데이터를 상기 공유 메모리에 전달하도록 더 구성되는,
    장치.
  14. 하나 이상의 명령어를 구비한 적어도 하나의 머신 판독가능 매체로서,
    상기 하나 이상의 명령어는 전자 장치의 적어도 하나의 프로세서에 의해 실행되는 경우 상기 전자 장치로 하여금
    공유 메모리에서, 상기 전자 장치의 운영 체제로부터 데이터를 수신하고 - 상기 데이터는 멀티모달(multimodal) 인터페이스를 통해 상기 전자 장치와 통신하는 하드웨어에 관련되고, 상기 하드웨어는 펌웨어에 의해 상기 운영 체제로부터 추상화됨 -,
    운영 체제 정책 관리자(operating system policy manager)에 의해, 상기 데이터가 상기 공유 메모리에 있다는 메시지를 상기 펌웨어로 전달하고,
    상기 펌웨어에 의해, 상기 데이터를 상기 공유 메모리로부터 판독하고,
    상기 펌웨어에 의해, 상기 데이터 및/또는 상기 데이터와 관련된 명령어(instruction)를 플랫폼 정책 관리자에게 전달하고 - 상기 전달하는 것은 상기 펌웨어에 의해 상기 데이터 및/또는 상기 명령어를 상기 펌웨어에 의해 설정된 동작 영역(operation region, opregion)에 기입하는 것과, 상기 플랫폼 정책 관리자에 의해 상기 동작 영역으로부터 상기 데이터 및/또는 상기 명령어를 판독하는 것을 포함하고, 상기 플랫폼 정책 관리자는 복수의 로컬 정책 관리자와 통신하고, 상기 복수의 로컬 정책 관리자 각각은 개별 멀티모달 인터페이스를 관리하고 상이한 유형의 하드웨어와 통신함 -,
    상기 플랫폼 정책 관리자에 의해, 상기 데이터 및/또는 상기 데이터와 관련된 하나 이상의 커맨드(command)를 특정 로컬 정책 관리자에게 전달하게 하는 - 상기 특정 로컬 정책 관리자는 상기 하드웨어와 통신하는 상기 멀티모달 인터페이스와 통신하고, 상기 특정 로컬 정책 관리자는 상기 하드웨어와 커맨드 레벨 통신을 수행하고, 상기 공유 메모리는 상기 멀티모달 인터페이스의 유형과 연관된 사양에 기초하는 데이터 구조를 가짐 -,
    머신 판독가능 매체.
  15. 제14항에 있어서,
    상기 멀티모달 인터페이스는 동일한 인터페이스 상에서 다수의 입/출력(I/O) 프로토콜을 지원하도록 구성되는,
    머신 판독가능 매체.
  16. 제14항에 있어서,
    상기 운영 체제와 상기 하드웨어 사이의 통신은 양방향 통신이고 상기 공유 메모리는 두 개의 영역으로 분할되는,
    머신 판독가능 매체.
  17. 삭제
  18. 삭제
  19. 제14항에 있어서,
    적어도 하나의 프로세서에 의해 실행되는 경우 상기 전자 장치로 하여금
    상기 플랫폼 정책 관리자에 의해, 상기 로컬 정책 관리자로부터 상기 하드웨어에 관련된 응답 데이터를 수신하고
    상기 플랫폼 정책 관리자에 의해, 상기 응답 데이터를 상기 공유 메모리에 전달하게 하는
    하나 이상의 명령어를 더 포함하는,
    머신 판독가능 매체.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020177026103A 2015-04-18 2016-03-21 멀티모달 인터페이스 KR102551076B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN2004CH2015 2015-04-18
IN2004/CHE/2015 2015-04-18
PCT/US2016/023342 WO2016171822A1 (en) 2015-04-18 2016-03-21 Multimodal interface

Publications (2)

Publication Number Publication Date
KR20170137064A KR20170137064A (ko) 2017-12-12
KR102551076B1 true KR102551076B1 (ko) 2023-07-03

Family

ID=57144170

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177026103A KR102551076B1 (ko) 2015-04-18 2016-03-21 멀티모달 인터페이스

Country Status (6)

Country Link
US (1) US10642665B2 (ko)
EP (1) EP3286655A4 (ko)
JP (1) JP6757489B2 (ko)
KR (1) KR102551076B1 (ko)
CN (1) CN107430563B (ko)
WO (1) WO2016171822A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10705511B2 (en) * 2018-07-11 2020-07-07 Siemens Aktiengesellschaft Abstraction layers for automation applications
US20240004556A1 (en) * 2022-06-29 2024-01-04 Western Digital Technologies, Inc. Asynchronous operation completion notification

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090007153A1 (en) 2007-06-27 2009-01-01 Microsoft Corporation Hybrid resource manager
US20120192000A1 (en) * 2007-12-26 2012-07-26 Arvind Kumar Method and apparatus for cost and power efficient, scalable operating system independent services
US20130246778A1 (en) * 2010-09-22 2013-09-19 Nokia Corporation Dynamically scalable application infrastructure
US20130315256A1 (en) * 2009-09-04 2013-11-28 Brocade Communications Systems, Inc. User selectable multiple protocol network interface device
US20130339565A1 (en) 2011-12-22 2013-12-19 Bryan E. Veal Method, device and system for aggregation of shared address devices

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203907B2 (en) * 2002-02-07 2007-04-10 Sap Aktiengesellschaft Multi-modal synchronization
US7852856B2 (en) * 2003-08-29 2010-12-14 Broadcom Corp. System and method for providing pooling or dynamic allocation of connection context data
US20070067539A1 (en) * 2005-09-12 2007-03-22 Neil Morrow Enhanced CCID circuits and systems utilizing USB and PCI functions
US20080005380A1 (en) 2006-02-21 2008-01-03 Pacific Star Communications, Inc. Integrated configuration and management of hardware devices
EP1833006B1 (en) * 2006-03-10 2014-01-08 LG Electronics Inc. Method and apparatus for protocol selection on ICC
JP4279856B2 (ja) * 2006-07-18 2009-06-17 レノボ・シンガポール・プライベート・リミテッド 情報の転送方法、およびコンピュータ
US7925795B2 (en) * 2007-04-30 2011-04-12 Broadcom Corporation Method and system for configuring a plurality of network interfaces that share a physical interface
JP2009009330A (ja) * 2007-06-27 2009-01-15 Fujitsu Ltd 情報処理装置、情報処理システム及び情報処理装置の制御方法
US8881020B2 (en) 2008-06-24 2014-11-04 Microsoft Corporation Multi-modal communication through modal-specific interfaces
US9483429B2 (en) * 2008-07-14 2016-11-01 Texas Instruments Incorporated Unified input/output controller for integrated wireless devices
US8151062B2 (en) * 2008-10-26 2012-04-03 Microsoft Corporation Consistency models in a distributed store
US8208396B2 (en) * 2009-05-12 2012-06-26 International Business Machines Corporation Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter
US20100299517A1 (en) * 2009-05-22 2010-11-25 Nuvon, Inc. Network System with a Plurality of Networked Devices with Various Connection Protocols
KR20120047577A (ko) * 2010-11-04 2012-05-14 주식회사 케이티 대화형 행동모델을 이용한 로봇 인터랙션 서비스 제공 장치 및 방법
WO2013025196A1 (en) * 2011-08-15 2013-02-21 Empire Technology Development Llc Multimodal computing device
US9293054B2 (en) * 2011-11-11 2016-03-22 Aptima, Inc. Systems and methods to react to environmental input
US20140007115A1 (en) * 2012-06-29 2014-01-02 Ning Lu Multi-modal behavior awareness for human natural command control
EP3413205A1 (en) 2012-09-30 2018-12-12 Cypress Semiconductor Corporation Re-enumeration of usb 3.0 compatible devices
AU2014251011B2 (en) * 2013-04-10 2016-03-10 Illumio, Inc. Distributed network management using a logical multi-dimensional label-based policy model
CN104182042B (zh) * 2014-08-14 2017-07-11 华中科技大学 一种多模态信号的脑机接口方法
US9424048B2 (en) * 2014-09-15 2016-08-23 Microsoft Technology Licensing, Llc Inductive peripheral retention device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090007153A1 (en) 2007-06-27 2009-01-01 Microsoft Corporation Hybrid resource manager
US20120192000A1 (en) * 2007-12-26 2012-07-26 Arvind Kumar Method and apparatus for cost and power efficient, scalable operating system independent services
US8386823B2 (en) * 2007-12-26 2013-02-26 Intel Corporation Method and apparatus for cost and power efficient, scalable operating system independent services
US20130315256A1 (en) * 2009-09-04 2013-11-28 Brocade Communications Systems, Inc. User selectable multiple protocol network interface device
US20130246778A1 (en) * 2010-09-22 2013-09-19 Nokia Corporation Dynamically scalable application infrastructure
US20130339565A1 (en) 2011-12-22 2013-12-19 Bryan E. Veal Method, device and system for aggregation of shared address devices

Also Published As

Publication number Publication date
JP2018513440A (ja) 2018-05-24
US10642665B2 (en) 2020-05-05
WO2016171822A1 (en) 2016-10-27
EP3286655A1 (en) 2018-02-28
CN107430563B (zh) 2021-10-29
US20180046522A1 (en) 2018-02-15
JP6757489B2 (ja) 2020-09-23
KR20170137064A (ko) 2017-12-12
CN107430563A (zh) 2017-12-01
EP3286655A4 (en) 2018-12-12

Similar Documents

Publication Publication Date Title
CN101276286B (zh) 用于加速视频子***初始化的***、方法和装置
JP6017476B2 (ja) ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム
CN101311894B (zh) 多处理器/多内核消息传递机中的推测预取方法和装置
US8990459B2 (en) Peripheral device sharing in multi host computing systems
CN107003971B (zh) 用于高性能互连中的嵌入式流通道的方法、装置、***
JP4855451B2 (ja) 記憶装置のアクセス方法及び装置
KR101775569B1 (ko) 가상 재시도 큐
US20170262324A1 (en) Event queue management for embedded systems
JP2013539878A (ja) コンピュータ装置のプレブートフェーズ中の無線通信を容易にするシステム及び方法
US10437762B2 (en) Partitioned interconnect slot for inter-processor operation
KR20170013882A (ko) 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc)
KR20180066073A (ko) 컴퓨팅 디바이스에서 운영 시스템 독립적 에러 제어를 제공하는 시스템 및 방법
KR102551076B1 (ko) 멀티모달 인터페이스
US9384154B2 (en) Method to emulate message signaled interrupts with multiple interrupt vectors
US10037284B2 (en) Bridging and integrating devices across processing systems
JP2007516536A (ja) オペレーティングシステムに可視的な割り込みハンドリングを用いてホットキー入力を処理する方法及び装置
US7552269B2 (en) Synchronizing a plurality of processors
US9152588B2 (en) Race-free level-sensitive interrupt delivery using fabric delivered interrupts
WO2014107546A1 (en) Dma channels
WO2012143949A2 (en) Secure digital host controller virtualization
KR101775459B1 (ko) 기입-전용 프로세서간 리셋 동기화를 위한 방법 및 장치
US20140173365A1 (en) Semiconductor apparatus, management apparatus, and data processing apparatus
US20140189184A1 (en) Creating dynamic fixed functionality for a hardware device system
JP2023046382A (ja) 異なるパワーアップ状態の最中にOOB通信および列挙最適化を使用するPCIe決定論的リンクトレーニング

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant