KR102362107B1 - 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템 - Google Patents

기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템 Download PDF

Info

Publication number
KR102362107B1
KR102362107B1 KR1020197034766A KR20197034766A KR102362107B1 KR 102362107 B1 KR102362107 B1 KR 102362107B1 KR 1020197034766 A KR1020197034766 A KR 1020197034766A KR 20197034766 A KR20197034766 A KR 20197034766A KR 102362107 B1 KR102362107 B1 KR 102362107B1
Authority
KR
South Korea
Prior art keywords
ambient
machine learning
processing
power
computing system
Prior art date
Application number
KR1020197034766A
Other languages
English (en)
Other versions
KR20190141739A (ko
Inventor
3세 로렌스 마다
마누 구라티
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 구글 엘엘씨
Priority to KR1020227004110A priority Critical patent/KR102488558B1/ko
Publication of KR20190141739A publication Critical patent/KR20190141739A/ko
Application granted granted Critical
Publication of KR102362107B1 publication Critical patent/KR102362107B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3231Monitoring the presence, absence or movement of users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0445
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

앰비언트 컴퓨팅 시스템에서 어플리케이션들을 처리하기 위한 방법, 시스템 및 장치. 방법들 중 하나는 저전력 프로세싱 컴포넌트에 의해, 특정한 센서 신호들이 특정한 속성을 갖는다고 결정하는 단계를 포함한다. 응답으로, 기계 학습 엔진은 상기 센서 신호들을 사용하여 모델 출력을 생성하기 위해 기계 학습 모델을 통한 추론 패스를 수행한다. 기계 학습 엔진의 모델 출력이 어플리케이션 특정 조건과 일치하면, 다른 프로세싱 컴포넌트들 중 하나 이상은 상기 어플리케이션 특정 조건에 대응하는 특정한 어플리케이션을 실행하기 위해 활성화된다.

Description

기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템
본 명세서는 앰비언트 컴퓨팅에 관한 것이다.
스마트폰, 개인 휴대 정보 단말기, 전자 태블릿, 랩톱 등과 같은 모바일 컴퓨팅 디바이스는 일반적으로 하나 이상의 충전식 배터리에 의해 제공되는 전력을 사용한다. 충전식 배터리는 예를 들어 배터리에 전류를 인가함으로써 배터리를 재충전되기 전에 디바이스에 한정된 양의 전력만을 공급한다. 모바일 컴퓨팅 디바이스의 배터리를 재충전하기 위해서는 일반적으로 모바일 컴퓨팅 디바이스를 전기 그리드에 연결해야 하며, 이는 모바일 컴퓨팅 디바이스의 휴대성을 감소시키거나 제거한다. 결과적으로, 모바일 컴퓨팅 디바이스의 전력 소비를 감소시켜, 배터리 수명을 연장하는 것은 중요한 목표이다.
모바일 컴퓨팅 디바이스는 하나 이상의 주변 센서들을 포함할 수 있다. 예를 들어, 일부 모바일 컴퓨팅 디바이스는 마이크로폰, 카메라, 가속도계 등을 포함한다. 모바일 컴퓨팅 디바이스는 또한 하나 이상의 주변 센서들에 의해 수집된 데이터를 프로세싱하기 위한 하나 이상의 프로세싱 컴포넌트들을 포함할 수 있다. 예를 들어, 일부 모바일 컴퓨팅 디바이스는 중앙 처리 장치(CPU), 디지털 신호 프로세서(DSP) 또는 기타 프로세싱 컴포넌트들을 포함한다.
모바일 컴퓨팅 디바이스는 하나 이상의 주변 센서들에 의해 수집되고 하나 이상의 프로세싱 컴포넌트들에 의해 프로세싱된 데이터에 기초하여 액션을 수행할 수 있다. 예를 들어, 일부 모바일 컴퓨팅 디바이스는 마이크로폰에 의해 검출되고 CPU에 의해 프로세싱된 음성 명령에 응답하여 액션을 수행할 수 있다. 그러나 센서 데이터를 프로세싱할 수 있도록 프로세싱 컴포넌트들을 활성 상태로 유지하는 것은 상당한 전력을 소비한다.
본 명세서는 컴퓨팅 디바이스에서 저전력 앰비언트 컴퓨팅을 구현하기 위한 기술을 설명한다. 본 명세서에 기술된 앰비언트 컴퓨팅 시스템은 임의의 주어진 시간에 여러 상이한 전력 상태 중 하나로 동작하며, 각 전력 상태는 전원이 켜진 컴포넌트들의 조합에 의해 정의된다. 전원이 켜진 컴포넌트들의 조합은 센서 데이터를 입력으로 사용하고 상기 센서 데이터를 추가로 프로세싱하기 위해 활성화되어야 하는 프로세싱 컴포넌트들의 조합을 결정하는데 사용될 수 있는 출력을 생성하는 트레이닝된 모델을 구현하는 기계 학습 엔진에 의해 결정될 수 있다.
예를 들어, 최저 전력 모니터링 전력 상태에서, 시스템은 주변 인터페이스 및 전력 제어 유닛(PCU)을 갖는 제어 서브시스템에만 전력을 공급할 수 있다. 모니터링 전력 상태에서, 주변 인터페이스는 컴퓨팅 디바이스의 환경으로부터 입력을 수신하기 위해 대기할 수 있다.
하나 이상의 주변 인터페이스가 환경으로부터 입력을 수신하고 대응하는 센서 신호들을 생성하는 경우, 시스템은 프로세싱 전력 상태에 진입할 수 있고, 이 상태는 일반적으로 모니터링 전력 상태보다 더 많은 전력을 소비하는 전력 상태이다. 프로세싱 전력 상태에서, 시스템은 주변 인터페이스에 의해 수신된 센서 신호의 초기 해석을 수행하기 위해 저전력 프로세싱 컴포넌트, 예를 들어 저전력 CPU 또는 저전력 DSP에 전력을 공급한다. 예를 들어, 저전력 프로세싱 컴포넌트는 센서 신호들의 속성에 기초하여, 센서 신호들이 기계 학습 엔진의 도움없이 해석될 수 있는지 또는 센서 신호들이 기계 학습 엔진에 의해 추가로 해석되어야 하는지 결정할 수 있다.
기계 학습 엔진은 센서 신호들을 사용하여 잠재적으로 다수의 상위 레벨 전력 상태 중 하나를 나타내는 출력을 생성할 수 있고, 각 전력 상태는 활성화될 컴포넌트들의 특정한 조합에 의해 정의된다. 본 명세서에서, 활성화되는 컴포넌트는 컴포넌트가 데이터 프로세싱을 시작하기에 충분한 컴포넌트에 추가적인 전력을 공급하는 것을 의미한다. 이와 관련하여, 컴포넌트는 오프 또는 보전 상태로부터 활성 프로세싱 상태로 전환함으로써 활성화된다. 하나 이상의 고전력 DSP들, 메인 CPU 클러스터 또는 고전력 기계 학습 엔진과 같이 보다 정교하고 고전력인 가능한 특수 프로세싱 컴포넌트들을 활성화하는 시스템을 통해 고레벨 전력 상태를 달성할 수 있다. 예를 들어, 기계 학습 엔진은 마이크로폰이 사람 음성 명령에 대응하는 오디오 데이터를 수신하고 있음을 나타내는 출력을 생성할 수 있다. 그 다음 출력은 시스템으로 하여금 오디오 데이터 프로세싱을 위해 특수화된 오디오 DSP에 전력을 공급하게 할 수 있다.
이러한 기법은 센서 데이터를 지속적으로 모니터링하여 소비 전력이 낮은 상태에서 실행되는 다양한 복잡한 어플리케이션을 가능하게 한다. 예를 들어, 시스템이 수신된 레이더 신호로부터, 사용자의 얼굴이 시스템이 구현되는 컴퓨팅 디바이스의 디스플레이를 향하고 있다고 결정하면, 시스템은 전력 상태를 프로세싱하여 사용자로부터 다른 입력을 받지 않고 컴퓨팅 디바이스의 디스플레이를 자동으로 켤 수 있다.
본 명세서에 기술된 본 발명은 다음의 이점들을 실현하도록 특정한 실시예들에서 구현될 수 있다. 앰비언트 컴퓨팅 시스템은 이전의 접근 방식보다 적은 전력을 소비하면서 다양한 복잡한 작업을 수행할 수 있다. 기계 학습 엔진을 사용함으로써 절전 및 배터리 수명 증가가 더욱 개선된다. 기계 학습 엔진은 컴포넌트들의 커스터마이징된 조합들을 표현하는 출력들을 생성할 수 있고, 이는 칩의 모든 컴포넌트들을 깨우거나 어떠한 컴포넌트들도 깨우지 않을 필요를 제거한다. 이 접근법은 또한 하드웨어 제어 로직을 지나치게 복잡하게 하지 않으면서 가능한 전력 상태의 수를 크게 증가시킨다. 이러한 접근법은 시스템으로 하여금 디바이스의 메인 CPU 클러스터를 깨우지 않고 지속적으로 환경을 모니터링해야 하는 정교한 작업을 수행하게 할 수 있다. 이는 앰비언트 컴퓨팅 시스템으로 하여금 환경 변화에 보다 신속하게 대응하면서 전력 소비를 감소시킨다. 따라서, 앰비언트 컴퓨팅 시스템은 컴퓨팅 디바이스의 배터리 수명에 제한된 영향을 미쳐 더 큰 기능성을 제공할 수 있고, 복잡한 앰비언트 상태를 갖는 컴퓨팅 디바이스의 총 배터리 수명을 증가시킬 수 있다.
본 명세서의 발명의 하나 이상의 실시예들의 세부 사항은 첨부 도면과 아래의 설명에서 기술된다. 본 발명의 다른 구성들, 양태들 및 이점들은 설명, 도면 및 청구항으로부터 명백해질 것이다.
도 1은 예시적 앰비언트 컴퓨팅 시스템의 도면이다.
도 2는 예시적 앰비언트 컴퓨팅 시스템의 전력 상태들의 상태 도면이다.
도 3은 앰비언트 컴퓨팅 시스템에서 추가적인 프로세싱 컴포넌트들을 연속적으로 활성화하기 위한 예시적 프로세스의 흐름도이다.
도 4는 어플리케이션 특정 조건에 대응하는 어플리케이션을 처리하기 위해 특정한 프로세싱 컴포넌트를 활성화하기 위한 예시적 프로세스의 흐름도이다.
도 5는 음성 명령에 대한 텍스트-음성 오디오 응답을 생성하기 위한 예시적 프로세스의 흐름도이다.
도 6은 제스처 특정 어플리케이션을 수행하기 위한 예시적 프로세스의 흐름도이다.
다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 컴포넌트를 표시한다.
도 1은 저전력 앰비언트 컴퓨팅 능력을 포함하는 예시적 컴퓨팅 디바이스(100)의 도면이다. 디바이스(100)는 예를 들어, 스마트폰, 스마트 워치, 피트니스 트래커, 개인용 디지털 어시스턴트, 전자 태블릿, 랩톱과 같은 임의의 적절한 컴퓨팅 디바이스로 구현된 시스템을 포함할 수 있다. 컴퓨팅 디바이스(100)의 시스템은 컴퓨팅 디바이스(100)가 저전력 상태를 유지하면서 시스템의 적절한 프로세싱 컴포넌트들을 순차적으로 웨이킹함으로써 환경으로부터의 입력을 지속적으로 모니터링하고 응답할 수 있도록 사용될 수 있다. 본 명세서에서, 웨이크 및 활성화라는 용어는 특정한 프로세싱 컴포넌트 또는 다른 전자 회로에 증가된 양의 전력을 공급하는 것을 의미하는 것으로 사용될 것이다. 시스템이 프로세싱 컴포넌트들 또는 깨어지거나 활성화되는 다른 회로에 전력을 공급하거나 공급하지 않을 수 있다. 다시 말해서, 깨어지거나 활성화되는 컴포넌트는 이전에 완전히 전원이 꺼지거나 전원이 꺼지지 않았을 수 있다. 프로세싱 컴포넌트들을 깨우거나 활성화하면 프로세싱 컴포넌트들이 부트 프로세스를 수행하고, 프로세싱 컴포넌트들에 대한 명령어들 및 데이터가 랜덤 액세스 메모리에 로딩되게 할 수 있다. 대안적으로 또는 추가적으로, 프로세싱 컴포넌트를 깨우거나 활성화하는 것은 이전에 정지된 상태로부터 재개하는 것을 포함할 수 있다.
컴퓨팅 디바이스(100)의 하나 이상의 컴포넌트들은 컴퓨팅 디바이스 내의 시스템 온 칩(SoC) 상에서 구현될 수 있다. SoC는 단일 실리콘 기판 또는 예를 들어 실리콘 인터포저(silicon interposer), 적층형 다이(stacked die) 또는 인터커넥트 브리지(interconnect bridge)를 사용하여 다수의 상호 연결된 다이 상의 시스템의 각 컴포넌트를 포함하는 집적 회로일 수 있다. 메인 CPU 클러스터(140)를 포함하는 컴퓨팅 디바이스의 다른 컴포넌트는 동일 또는 별개의 다이에서 구현될 수 있다. 컴퓨팅 디바이스(100)는 SoC와 별개이고 독립적인 센서(112), 하나 이상의 디스플레이, 배터리 및 다른 컴포넌트들을 포함하는 컴포넌트들을 포함할 수 있고, 예를 들면 공통 하우징에 장착될 수 있다.
간략하게 그리고 아래에서 더 상세히 설명되는 바와 같이, 디바이스(100)는 컴퓨팅 디바이스의 환경으로부터의 입력에 기초하여 센서 신호를 생성하도록 구성된 다수의 주변 센서(112)를 포함한다. 디바이스(100)는 시스템의 컴포넌트들에 대한 전력 및 센서 신호의 공급을 제어하기 위한 제어 서브시스템(120)을 포함한다. 그리고 디바이스(100)는 센서 신호를 프로세싱하고 출력을 생성하기 위한 프로세싱 서브시스템(130)을 포함한다.
또한 디바이스(100)는 메인 CPU 클러스터(140)를 포함한다. 메인 CPU 클러스터(140)는 프로세싱 서브시스템(130) 내의 디바이스들과 별개인 하나 이상의 범용 프로세서들을 포함하는 컴퓨팅 디바이스의 컴포넌트이다. 메인 CPU 클러스터(140)의 프로세서는 일반적으로 프로세싱 서브시스템(130) 내의 임의의 디바이스들보다 많은 컴퓨팅 파워를 가지므로, 메인 CPU 클러스터(140)의 프로세서들은 또한 프로세싱 서브시스템(130) 내의 임의의 디바이스들보다 더 많은 전력을 소비할 수 있다.
디바이스(100)는 또한 선택적으로 메인 기계 학습(ML, machine learning) 엔진(150)을 포함할 수 있다. 메인 ML 엔진(150)은 하나 이상의 기계 학습 모델들을 통한 추론 패스를 수행하도록 구성된 특수 목적 프로세싱 디바이스이다. 각 추론 패스는 기계 학습 모델의 입력 및 학습된 파라미터 값을 사용하여 학습된 모델에 의해 예측된 하나 이상의 출력들을 생성한다. 메인 ML 엔진(150)은 하나 이상의 계산 타일들을 포함할 수 있다. 일반적으로, 계산 타일은 계산들의 세트를 독립적으로 실행하도록 구성된 자체 포함된 계산 컴포넌트이다. 메인 ML 엔진(150)의 타일들은 네트워크에 배치되고 프로그래밍되어, 메인 ML 엔진(150)의 각 타일이 기계 학습 모델을 통한 추론 패스의 일부의 동작을 수행하도록 구성될 수 있다. 예를 들어, 기계 학습 모델이 신경 네트워크인 경우, 메인 ML 엔진(150)의 각 타일은 신경 네트워크의 한 레이어의 계산을 계산하도록 구성될 수 있다. 다수의 계산 타일을 갖는 적절한 기계 학습 엔진이 미국 특허 제9,710,265호에 기술되며, 이는 본 명세서에 참조로서 통합된다. 메인 ML 엔진(150)은 또한 앰비언트 컴퓨팅 시스템(110)의 프로세싱 서브시스템(130) 내의 임의의 디바이스보다 고성능 컴퓨팅 파워를 제공한다. 따라서, 메인 ML 엔진(150)은 또한 프로세싱 서브시스템(130) 내의 임의의 디바이스보다 더 많은 전력을 소비한다.
프로세싱 서브시스템(130)은 앰비언트 기계 학습 엔진(134)을 포함한다. 또한 앰비언트 ML 엔진(134)은 하나 이상의 기계 학습 모델들을 통한 추론 패스를 수행하도록 구성된 특수 목적 프로세싱 디바이스이다. 디바이스(100)가 메인 ML 엔진(150) 및 앰비언트 ML 엔진(134)을 모두 포함하는 경우, 앰비언트 ML 엔진(134)은 더 적은 계산 타일을 가지므로, 메인 ML 엔진(150)보다 적은 프로세싱 전력을 가지며, 메인 ML 엔진(150)보다 적은 전력을 소비한다. 예를 들어, 앰비언트 ML 엔진(134)은 하나 또는 두 개의 타일로서 구현될 수 있는 반면, 메인 ML 엔진(150)은 8-16개 이상의 상호 연결된 타일을 가질 수 있다.
도시되지 않았지만, 컴퓨팅 디바이스(100)는 이러한 컴퓨팅 디바이스에서 일반적으로 발견되는 하나 이상의 다른 컴포넌트, 예를 들어 몇 가지 예를 들자면 디스플레이, 모뎀, 그래픽 프로세싱 유닛, 디스플레이 프로세서 또는 특수 목적 이미지 프로세서를 포함할 수 있다. 이러한 컴포넌트들은 아래 기술된 저전력 상태에서 전력이 차단되고, 시스템이 센서 신호가 활성화가 필요한 어플리케이션과 일치한다고 결정하면 활성화될 수 있다.
디바이스(100)는 다수의 주변 센서들(112)을 포함한다. 주변 센서(112)는 하나 이상의 오디오 센서(102), 하나 이상의 레이더 센서(104), 하나 이상의 터치 센서(106), GPS(Global Positioning System) 센서(108) 및 가속도계(110)를 포함한다. 시스템에는 추가적, 더 적거나 대안적 주변 센서들을 포함할 수 있다. 예를 들어, 시스템은 Wi-Fi 신호 검출기, 셀룰러 신호 검출기, 기압계, 온도계, 자력계 또는 다른 유형의 주변 센서를 포함할 수 있다.
주변 센서(112)는 환경 입력에 응답하여 센서 신호를 생성하도록 구성된 디바이스들일 수 있다. 하나 이상의 오디오 센서(102), 예를 들어 마이크로폰은 환경의 소리에 기초하여 오디오 신호를 생성할 수 있다. 예를 들어, 오디오 센서(102)는 사람 음성에 대응하는 오디오 신호를 생성할 수 있다. 하나 이상의 레이더 센서(104)는 컴퓨팅 디바이스의 송신기에 의해 방출된 반사된 전파에 기초하여 레이더 신호를 검출할 수 있다. 반사된 전파의 변화는 환경에서의 움직임을 나타낼 수 있다. 예를 들어, 레이더 센서(104)는 예를 들어, 사용자가 컴퓨팅 디바이스에 근접하여 제스처를 할 때 사용자로부터 반사되는 것으로 인하여 수신되는 레이더 신호를 생성할 수 있다. 유사하게, 하나 이상의 터치 센서(106)는 디바이스의 존재 감응형 또는 압력 감응형 인터페이스 상에서 컴퓨팅 디바이스의 사용자에 의해 만들어진 터치 제스처로 인해 신호를 생성할 수 있다. GPS 센서(108)는 수신된 위치 데이터 통신에 응답하여 신호를 생성할 수 있다. 그리고 가속도계(110)는 컴퓨팅 디바이스에 의해 경험된 가속으로 인해 신호를 생성할 수 있다. 본 명세서에서, 센서 신호가 다른 프로세싱 컴포넌트들에 대한 입력인 것으로 기술될 때마다, 입력은 센서 자체에 의해 생성된 아날로그 전기 신호, 센서 신호의 디지털 표현 또는 원 신호의 하나 이상의 속성들을 표현하는 센서 신호의 프로세싱된 디지털 표현일 수 있다. 컴퓨팅 디바이스(100)의 주변 센서는 또한 단지 몇 가지 다른 예를 들면, 관성 측정 센서, 기압계, 특정 흡수율 근접 센서 및 WiFi 네트워크 이름 센서를 포함할 수 있다.
앰비언트 컴퓨팅 시스템(110)은 하나 이상의 주변 인터페이스(114)를 포함한다. 주변 인터페이스(114)는 디바이스가 가장 낮은 전력 상태에 있을 때에도 전원이 공급되는 컴퓨팅 디바이스(100)의 컴포넌트일 수 있다. 주변 인터페이스(114)는 주변 센서(112)로부터 수신된 입력을 앰비언트 컴퓨팅 시스템(110)에 의해 사용될 센서 신호로 변환하기 위한 임의의 적절한 주변 인터페이스를 포함할 수 있다. 예를 들어, 주변 인터페이스(114)는 몇 가지 예를 들자면 펄스 밀도 변조(PDM) 인터페이스, IC간 사운드(I2S) 인터페이스, 집적 회로간(I2C) 인터페이스, I3C 인터페이스, 시분할 다중화(TDM) 인터페이스 및 직렬 주변 인터페이스(SPI)를 포함할 수 있다.
주변 인터페이스(114) 각각은 환경 입력을 검출하면 각각의 인터럽트를 생성하도록 구성된다. 일반적으로, 각 인터럽트는 센서 데이터의 소스, 예를 들어 주변 인터페이스의 식별자 또는 인터럽트를 담당하는 센서를 식별할 수 있다. 인터럽트는 하나 이상의 인터럽트 제어기(124)에 의해 수신되고 프로세싱된다. 예를 들어, 인터럽트를 수신하면, 인터럽트 제어기(124)는 전력 관리 유닛(PMU)(122) 및 클록 제어 유닛(123)을 포함하는 전력 제어 유닛(PCU)(121)을 깨울 수 있다. PMU(122)는 디바이스(100)의 어느 컴포넌트가 전력을 수신하고 각각의 컴포넌트가 얼마나 많은 전력을 수신하는지를 제어할 수 있다. 클록 제어 유닛(123)은 디바이스(100)의 컴포넌트들이 동작하는 주파수를 제어할 수 있다. 일부 구현예에서, 각 프로세싱 컴포넌트는 기본 클록 주파수의 배수 또는 분수인 상이한 클록 주파수를 갖는다. 기본 클록 주파수의 배수 또는 분수인 클록 주파수를 가짐으로써, 각각의 프로세싱 컴포넌트들은 다른 프로세싱 컴포넌트들와 신호를 보다 효율적으로 교환할 수 있다.
인터럽트를 수신하면, PCU(121)는 인터럽트의 소스에 기초하여 인터럽트의 야기한 센서 신호를 추가로 프로세싱하기 위해 어떤 앰비언트 컴퓨팅 시스템(110)의 다른 컴포넌트가 활성화되어야하는지 결정할 수 있다. 이러한 컴포넌트들에 대한 프로세싱 지원을 제공하기 위해, PCU(121)는 정적 랜덤 액세스 메모리(SRAM)(139) 및 시스템 통신 패브릭을 깨울 수 있다. 패브릭은 앰비언트 컴퓨팅 시스템(110)의 내부 컴포넌트들, 외부 컴포넌트들과 내부 컴포넌트들의 통신 또는 이들의 일부 조합을 통신적으로 결합하는 통신 서브시스템이다. 패브릭은 통신 하드웨어, 예를 들어 버스 또는 전용 상호연결 회로의 임의의 적절한 조합을 포함할 수 있다.
정적 랜덤 액세스 메모리(SRAM)(139)는 프로세싱 서브시스템(130)의 다수의 프로세싱 컴포넌트에 의해 공유될 수 있는 범용 랜덤 액세스 메모리 디바이스일 수 있다. 예를 들어, SRAM(139)은 센서 신호, 프로세서 명령어 및 데이터, 시스템 출력 및 기타 데이터, 예를 들어 앰비언트 ML 엔진(134)에 의해 구현되거나 구현될 신경 네트워크 모델의 신경 네트워크 파라미터를 저장할 수 있다. 일반적으로, SRAM은 SRAM이 주기적으로 리프레쉬될 필요가 없다는 점에서 동적 랜덤 액세스 메모리(DRAM)와 구별될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, SRAM(139)은 프로세싱 서브시스템(130)의 프로세싱 컴포넌트에 직접 또는 하나 이상의 DMA 제어기를 통해 액세스 가능하다. 일부 구현예에서, SRAM(139)은 다수의 뱅크들을 포함하며, 이들은 각각 실질적으로 유사한 양의 데이터, 예를 들어 각각 1, 10 또는 100MB를 저장할 수 있다. 또한, 각 개별 뱅크는 저전력 상태에 진입할 때 개별적으로 전원을 차단할 수 있는 여러 블록을 포함할 수 있다. 4개의 뱅크 사이에서 블록의 전원 차단 순서를 주의하여 시퀀싱함으로써, SRAM 주소 공간이 연속적으로 유지될 수 있다.
PCU(121)가 SRAM(139)을 깨울 때, PCU(121)는 SRAM(139)의 모든 블록 또는 모든 메모리 뱅크보다 적은 수를 깨울 수 있다. PCU(121)는 대신 프로세싱 서브시스템(130)의 다음 컴포넌트가 디바이스(100)의 컴포넌트의 전력 공급을 추가로 승강할지 여부를 결정하기에 충분한 다수의 블록만을 깨울 수 있다.
PCU(121)는 또한 SRAM(139)의 상이한 블록에 상이한 전력 레벨을 공급할 수 있다. 예를 들어, 모니터링 전력 상태에서, PMU(122)는 전체 SRAM(139)에 더 낮은 유지 전압을 공급하여 전력 소비를 감소시킬 수 있다. 프로세싱 컴포넌트가 SRAM(139)에 액세스 할 필요가 없다면, PMU(122)는 또한 유지 전압을 SRAM(139)에 공급할 수 있다. 프로세싱 전력 상태에서, PMU(122)는 SRAM(139)의 전부 또는 일부에 정상 전압을 제공하고 SRAM(139)의 다른 부분에 전압을 낮추거나 또는 전압을 공급하지 않는다.
인터럽트를 처리하는 프로세스 동안, 앰비언트 컴퓨팅 시스템(110)은 또한 하나 이상의 DMA 제어기(128)를 깨울 수 있다. DMA 제어기(128)는 들어오는 센서 신호에 대해 더 높은 데이터 대역폭을 허용하는 DMA 경로를 관리할 수 있다. 예를 들어, DMA 제어기(128)는 프로세싱 서브시스템(130)의 컴포넌트들을 프로세싱함으로써 액세스하기 위해 마이크로폰으로부터 SRAM(139)으로 오디오 데이터를 연속적으로 스트리밍하는데 사용될 수 있다. 반대로, DMA 제어기는 또한 하나 이상의 스피커를 통해 사운드로 출력하기 위해 SRAM(139)에 저장된 오디오 데이터를 연속적으로 스트리밍하는데 사용될 수 있다. DMA 제어기(128)는 또한 임의의 적절한 센서 데이터를 SRAM(139)으로 스트리밍하는데 사용될 수 있지만, 프로그래밍된 IO를 사용하는 것은 소량의 데이터를 위해 DMA 제어기를 활성화시키는 것보다 계산적으로 저렴할 수 있다. 따라서, 앰비언트 컴퓨팅 시스템(110)은 비교적 고 대역폭 센서 데이터, 예를 들어 오디오 데이터 및 레이더 데이터를 위해 DMA 제어기(128)를 활성화하고 사용할 수 있고, 다른 유형의 센서 데이터를 위해 프로그래밍된 IO를 사용할 수 있다.
패브릭 및 SRAM(139)을 준비한 후, PCU(121)는 인터럽트를 사용하여 프로세싱 서브시스템(130)의 어느 다른 컴포넌트를 깨울지를 결정할 수 있다. 예를 들어, PMU(122)는 하나 이상의 센서들 중 어느 것이 인터럽트를 생성했는지에 따라 저전력 CPU(132), 저전력 DSP(136) 또는 프로세싱 서브시스템(130)의 다른 컴포넌트에 전력이 제공될지 여부를 제어할 수 있다. 일부 구현예에서, 주변 인터페이스들(114) 및 제어 서브시스템(120)의 컴포넌트들은 모니터링 전력 상태에서 전원이 공급되는 디바이스(100)의 유일한 컴포넌트들이며, 모니터링 전력 상태는 시스템이 컴퓨팅 디바이스로의 환경 입력으로 인한 인터럽트를 수신하기 위해 대기하는 전력 상태이다.
프로세싱 서브시스템(130)의 프로세싱 컴포넌트는 저전력 CPU(132), 앰비언트 ML 엔진(134), 저전력 DSP(136) 및 고전력 DSP(138)를 포함한다. 일부 구현예에서, 프로세싱 서브시스템은 이러한 컴포넌트들 중 하나 이상의 다수의 인스턴스들을 갖는다(예를 들어, 다수의 저전력 DSP 또는 다수의 고전력 DSP). 예를 들어, 프로세싱 서브시스템(130)은 오디오 신호 프로세싱 전용의 하나의 고전력 DSP와 레이더 신호 프로세싱 전용의 별개의 고전력 DSP를 가질 수 있다. 대안적으로 또는 추가로, 프로세싱 서브시스템(130)은 이미지 데이터 프로세싱 전용의 고전력 DSP를 가질 수 있다.
모니터링 전력 상태에서, 프로세싱 서브시스템(130)의 프로세싱 컴포넌트는 유지 모드로 유지될 수 있다. PCU(121)는 컴포넌트에 제공되는 전력을 감소시키거나 제거함으로써 컴포넌트를 유지 모드로 유지할 수 있다. 예를 들어, 유지 모드에서, PCU(121)는 단지 레지스터 상태를 유지하기에 충분한 전력이지만 레지스터의 데이터를 프로세싱하기에는 충분하지 않은 전력을 프로세싱 컴포넌트를 공급할 수 있다.
저전력 CPU(132)는 레지스터, 제어 회로 및 산술 논리 유닛(ALU)을 포함하는 범용 프로그래머블 프로세서일 수 있다. 일반적으로, 저전력 CPU(132)는 컴퓨팅 디바이스의 메인 CPU 클러스터(140)보다 적은 전력을 소비하며 더 적은 프로세싱 코어를 포함할 수 있다. 일부 구현예에서, 저전력 CPU(132)는 주로 단일 명령어들 및 단일 데이터 입력들에서 동작하는 스칼라 프로세서이다.
저전력 CPU(132)는 시스템이 프로세싱 전력 상태에 진입할 때 인터럽트 및 센서 신호를 수신할 수 있다. 저전력 CPU(132)가 수신하는 센서 신호들의 유형에 기초하여 그리고 이들 센서 신호들의 속성에 기초하여, 저전력 CPU(132)는 시스템의 다른 컴포넌트, 예를 들어 통신 패브릭, DMA 제어기(128), SRAM(139) 또는 이들의 일부 조합이 활성화되어야 한다고 결정할 수 있다. 이들 컴포넌트를 활성화한 후, 저전력 CPU(132)는 선택적으로 비-동작 상태로 복귀할 수 있다.
저전력 CPU(132)는 추가 해석을 위해 센서 신호들 또는 센서 신호들의 프로세싱된 버전을 앰비언트 ML 엔진(134)에 제공할 수 있다. 예를 들어, 저전력 CPU(132)가 가속도계 입력에 대응하는 센서 신호를 수신하면, 저전력 CPU(132)는 앰비언트 ML 엔진(134)이 센서 신호를 추가로 프로세싱해야 한다고 결정할 수 있다. 예를 들어, 앰비언트 ML 엔진(134)은 센서 신호들을 추가로 프로세싱하여 신호가 걷기, 조깅, 자전거 타기, 낙하 또는 자동차에서 주행을 나타내는지를 결정한다.
저전력 CPU(132)는 또한 일부 신호들에 대해 앰비언트 ML 엔진(134)을 바이패스할 수 있다. 예를 들어, 저전력 CPU(132)가 컴퓨팅 디바이스의 터치 인터페이스상에서 간단한 터치 입력에 대응하는 센서 신호를 수신하면, 저전력 CPU(132)는 예를 들어, 컴퓨팅 디바이스의 디스플레이가 메인 CPU 클러스터(140) 또는 그래픽 프로세서에 의해 켜지도록함으로써 다른 프로세싱 컴포넌트의 도움없이 터치 입력을 프로세싱할 수 있다. 저전력 CPU(132)는 또한 컴퓨팅 디바이스의 메인 CPU 클러스터(140) 또는 디바이스(100) 외부의 컴퓨팅 디바이스의 다른 컴포넌트가 특정 센서 신호들을 추가로 프로세스해야 한다고 결정할 수 있다. 저전력 CPU(132)는 예를 들어, 디바이스(100) 내의 다른 프로세싱 컴포넌트들이 센서 신호들을 적절하게 프로세싱할 수 없다고 결정하면, 그러한 결정을 할 수 있다.
앰비언트 ML 엔진(134)의 하나의 작업은 센서 신호들을 사용하여 모델을 통한 추론 패스를 수행하여, 센서 신호들을 추가로 프로세스하기 위해 다른 프로세싱 컴포넌트들을 깨우는 것을 트리거할 수 있는 출력을 생성하는 것이다. 다시 말해서, 앰비언트 ML 엔진(134)은 저전력 CPU(132) 또는 다른 프로세싱 컴포넌트들에 의해 생성된 센서 신호들 또는 프로세싱된 버전을 수신할 수 있고, 앰비언트 ML 엔진(134)은 어떤 다른 프로세싱 컴포넌트들이 센서 신호들을 추가로 프로세싱해야 하는지 나타내는 출력을 생성할 수 있다. 앰비언트 ML 엔진(134)에 의해 생성된 출력은 프로세싱 컴포넌트 ID 또는 열거된 전력 상태의 식별자의 조합을 명시적으로 특정할 수 있거나, 또는 출력은 센서 신호들을 프로세싱해야하는 다른 고전력 프로세싱 컴포넌트들을 식별하기 위해 저전력 프로세싱 컴포넌트 예를 들어 저전력 CPU 또는 저전력 DSP에 의해 해석되는 전력 상태의 표현일 수 있다. 이 프로세스의 일부로서, 저전력 프로세싱 컴포넌트는 임의의 다른 프로세싱이 필요한지 여부를 명시적으로 또는 암시적으로 결정할 수 있다. 예를 들어, 저전력 프로세싱 컴포넌트는 기계 학습 엔진의 출력에 기초하여 추가 프로세싱이 필요하지 않으며 시스템이 모니터링 전력 상태로 다시 전환할 수 있는지를 결정할 수 있다.
최저 레벨 모니터링 전력 상태에서, PCU(121)는 앰비언트 ML 엔진(134)을 저전력 상태로 유지하거나 완전히 전력을 차단할 수 있다. 프로세싱 전력 상태에서, PCU(121)는 주변 인터페이스(114)에서 사용가능한 센서 신호들이 무엇인지와 저전력 CPU(132) 또는 저전력 DSP(136)가 신호를 어떻게 해석하는지에 따라 앰비언트 ML 엔진(134)에 전력을 제공하거나 제공하지 않을 수 있다. 일부 구현예에서, 저전력 DSP(136) 또는 저전력 CPU(132)는 신호들을 해석하여 PCU(121)에게 추가적인 중간 전력 상태를 위한 전력을 제공하도록 지시하며, 중간 전력 상태에서 앰비언트 ML 엔진(134)에 추론 패스를 위한 전력이 공급되지만 다른 고전력 프로세싱 컴포넌트들은 아직 전력이 공급되지 않는다.
앰비언트 ML 엔진(134)은 또한 센서 신호를 프로세싱하기 위한 다른 기계 학습 모델을 구현할 수 있다. 예를 들어, 앰비언트 ML 엔진(134)은 앰비언트 ML 엔진(134)으로 하여금 일부 음성 기반 명령을 인식하게 하는 단순화된 음성 인식 모델을 구현할 수 있다. 모델이 제한된 메모리 용량을 갖는 모바일 컴퓨팅 디바이스에 설치될 수 있기 때문에, 인식된 명령의 수는 온라인 음성 인식 프로세스보다 적을 수 있다.
앰비언트 ML 엔진(134)은 온칩 자동 음성 인식을 제공하는 기계 학습 모델을 대안 적으로 또는 추가로 구현할 수 있다. 다시 말해서, 앰비언트 ML 엔진(134)은 오디오 신호에서 캡처된 음성의 실시간 전사를 생성하기 위해 모델을 통한 추론 패스들을 수행할 수 있다.
다른 예로서, 앰비언트 ML 엔진(134)은 특정한 텍스트 입력으로부터 오디오 출력 신호를 생성하는 텍스트-음성 모델을 구현할 수 있으며, 여기서 오디오 출력 신호는 사용자에 의해 특정한 언어로 사람의 음성으로 해석될 수 있다. 일부 구현예에서, 디바이스(100)는 저전력 대화 엔진을 제공하기 위해 음성 인식 모델 및 텍스트-음성 모델을 모두 사용할 수 있다. 예를 들어, 앰비언트 ML 엔진(134)이 특정한 명령을 인식한 후, 저전력 CPU(132)는 명령을 실행하고 또한 앰비언트 ML 엔진(134)에 특정한 텍스트 응답을 다시 제공하기 위해 특정한 액션을 취할 수 있다. 그 다음 앰비언트 ML 엔진(134)은 텍스트-음성 모델을 사용하여 초기 명령에 대한 응답을 나타내는 오디오 출력을 생성할 수 있다. 일부 구현예에서, 디바이스의 메인 CPU 클러스터(140)를 깨우지 않고 음성 인식, 액션 실행 및 텍스트-음성 응답의 전체 데이터 흐름이 수행될 수 있다.
예를 들어, 사용자가 음성 명령, "더 크게"를 제공하면, 앰비언트 ML 엔진(134)은 디바이스에 의해 재생되는 음악의 볼륨을 증가시키기 위해 음성 명령에 대응하는 오디오 신호를 나타내는 출력을 생성할 수 있다. 기계 학습 엔진(134)은 저전력 CPU(132)에 상기 출력을 제공할 수 있으며, 이는 하나 이상의 통합 스피커 서브시스템에 신호를 발행함으로써 명령을 실행할 수 있다. 그 다음, 저전력 CPU(132)는 "볼륨 레벨 5"의 텍스트 응답을 앰비언트 ML 엔진(134)에 제공할 수 있다. 그 다음, 앰비언트 ML 엔진(134)은 텍스트-음성 모델로 텍스트 응답을 프로세싱하여 오디오 출력을 생성할 수 있으며, 디바이스는 하나 이상의 통합 스피커 서브시스템을 통해 오디오 출력을 재생할 수 있다. 따라서, 앰비언트 컴퓨팅 시스템(110)은 디바이스의 메인 CPU를 깨우지 않고 전체 대화 시퀀스를 프로세싱한다.
앰비언트 ML 엔진(134)은 또한 다양한 다른 모델 중 임의의 모델을 구현할 수 있다. 앰비언트 ML 엔진(134)은 또한 컴퓨팅 디바이스의 사용자에 의해 만들어진 손 제스처의 피처를 해석하는 제스처 인식 모델을 구현할 수 있다. 예를 들어, 모델에 대한 입력은 컴퓨팅 디바이스에 의해 수신된 프로세싱된 레이더 신호일 수 있고, 모델의 출력은 사용자가 행한 제스처의 예측일 수 있다. 각각의 손 제스처는 특정한 명령에 대응할 수 있고, 앰비언트 ML 엔진(134)은 추가 액션을 위해 저전력 CPU(132) 또는 다른 프로세싱 컴포넌트에 출력을 제공할 수 있다.
앰비언트 ML 엔진(134)은 모델 파라미터 및 다른 모델 구성 정보를 저장하기 위한 하나 이상의 메모리 뱅크를 포함할 수 있다. 예를 들어, 기계 학습 엔진(134)은 신경 네트워크 연결 및 신경 네트워크 파라미터를 나타내는 데이터를 저장할 수 있다. 앰비언트 ML 엔진(134)은 신경 네트워크 활성화 또는 다른 신경 네트워크 레이어 출력을 계산하기 위한 하나 이상의 MAC(multiply accumulate) 유닛 및 하나 이상의 합산 레지스터 및 메모리 뱅크와 MAC 유닛 사이의 데이터 교환을 제어하는 제어기를 포함할 수 있다. 앰비언트 ML 엔진(134)은 또한 명령어 메모리, 직접 메모리 액세스 경로, 레지스터 및 다른 프로세싱 컴포넌트들을 포함할 수 있다. 일부 구현예에서, 앰비언트 ML 엔진(134)은 기계 학습 추론 패스의 계산을 가속화하도록 구성된 기계 학습 계산 타일이다.
저전력 DSP(136) 및 고전력 DSP(138)는 고도로 벡터화된 신호의 효율적인 디코딩 및 프로세싱을 위해 구성된 특수 목적 프로세서이다. 프로세싱 서브시스템(130)은 상이한 목적을 위해 설계된 다양한 DSP를 포함할 수 있다. 예를 들어, 프로세싱 서브시스템(130)은 몇 가지 예를 들자면, 레이더 신호를 프로세싱하도록 구성된 DSP, 오디오 신호를 프로세싱하도록 구성된 DSP, 데이터 플레인 알고리즘을 수행하도록 구성된 DSP, 무선 통신 신호를 프로세싱하도록 구성된 DSP, GPS 신호를 프로세싱하도록 구성된 DSP를 포함할 수 있다.
전술한 바와 같이, 저전력 DSP(136)는 제어 서브시스템(120)으로부터 센서 신호의 초기 해석을 수행할 수 있다. 저전력 DSP(136)는 또한 다른 신호 프로세싱 작업을 수행할 수 있다. 일반적으로, 고전력 DSP는 더 많은 활성 레지스터를 가지고 있기 때문에 저전력 DSP보다 높은 수준의 전력을 소비하며, 메모리 동작 또는 이들의 조합에 더 의존하기 때문에 더 많은 데이터를 병렬로 액세스하고 프로세싱한다.
제어 서브시스템(120)은 또한 시스템 오작동을 검출하고 그 오작동을 해결할 수 있는 전자 타이머인 타이머(129)를 포함할 수 있다. 정상 동작 동안, 시스템은 타이머(129)가 타임 아웃되는 것을 방지하기 위해 타이머(129)를 정기적으로 리셋할 수 있다. 예를 들어, 하드웨어 결함 또는 프로그램 오류로 인해 시스템이 타이머를 재설정하지 못하면 타이머가 경과하고 타임아웃 신호를 생성한다. 타임아웃 신호는 하나 이상의 수정 액션들을 개시하는데 사용될 수 있다. 수정 액션은 시스템을 안전한 상태로 놓고 정상적인 시스템 동작을 복원하는 것을 포함할 수 있다.
도 2는 예시적 앰비언트 컴퓨팅 시스템의 전력 상태들의 상태 도면이다. 도 2는 각 후속 전력 상태에서 켜질 수 있는 추가적인 컴포넌트들을 도시한다.
도 2에서, 모니터링 전력 상태(210)는 시스템의 최저 전력 상태이다. 모니터링 전력 상태 동안, 시스템에서 가장 적은 수의 컴포넌트들에 전력이 공급된다. 예를 들어, 일부 구현예에서, 제어 서브시스템(120) 및 주변 인터페이스(114)의 하나 이상의 컴포넌트들만이 모니터링 전력 상태에서 전력을 수신한다. 다른 컴포넌트들은 모니터링 전력 상태(210) 동안 전력이 차단될 수 있다. PCU(121)는 PCU(121)가 하나 이상의 주변 인터페이스(114)에서 새로운 센서 데이터의 존재를 검출할 때 제어 서브시스템(120)의 다른 컴포넌트에 전력을 제공할 수 있다.
모니터링 전력 상태에서, 시스템은 예를 들어 환경으로부터의 입력에 대응하는 센서 신호로 인한 또는 타이머 타임아웃으로 인한 인터럽트를 대기한다. 시스템이 인터럽트를 수신하면, 시스템은 모니터링 전력 상태(210)에서 프로세싱 전력 상태(220)로 전환할 수 있다. 프로세싱 전력 상태(220)에서, PMU(122)는 SRAM(139) 및 저전력 CPU(132), 앰비언트 ML 엔진(134) 또는 저전력 DSP(136)의 임의의 조합에 전력을 공급할 수 있다.
인터럽트를 수신하면, 인터럽트 제어기(124)는 PMU(122)에게 저전력 프로세싱 컴포넌트 중 하나에 전력을 공급하도록 지시하여 시스템을 프로세싱 전력 상태(220)로 전환한다. 전술한 바와 같이, 저전력 프로세싱 컴포넌트는 인터럽트가 검출될 때 프로세싱 서브시스템에서 깨워지는 최초의 컴포넌트가 되도록 설계된다. 저전력 프로세싱 엘리먼트는 예를 들어 저전력 CPU, 예를 들어 프로세싱 서브시스템(130)의 저전력 CPU(132) 또는 다른 저전력 프로세서, 예를 들어 저전력 DSP(136) 또는 그것들의 일부 조합일 수 있다. 일부 구현예에서, 시스템은 어느 인터럽트가 수신되는지에 따라 저전력 CPU(132) 또는 저전력 DSP(136)를 사용한다. 예를 들어, 인터럽트가 GPS 센서로부터 온 경우 시스템은 저전력 CPU(132)를 사용할 수 있고, 인터럽트가 오디오 센서로부터 온 경우 시스템은 저전력 DSP(136)를 사용할 수 있고, 인터럽트가 타이머로 인한 것인 경우 시스템은 저전력 DSP(136)를 사용할 수 있다.
저전력 프로세싱 컴포넌트, 예를 들어, 저전력 CPU(132) 또는 저전력 DSP(136)는 센서 신호들의 속성에 따라 앰비언트 ML 엔진(134)을 깨울지 여부를 결정할 수 있다. 예를 들어, 저전력 DSP(136)가 오디오 신호를 사람 음성이 아닌 잡음에 대응하는 것으로 분류하면, 저전력 DSP(136)는 앰비언트 ML 엔진(134)을 전혀 호출하지 않도록 결정할 수 있다.
저전력 프로세싱 컴포넌트는 또한 활성화 프로세스의 일부로서 앰비언트 ML 엔진을 프로그래밍할 수 있다. 예를 들어, 저전력 프로세싱 컴포넌트는 앰비언트 ML 엔진에 다수의 기계 학습 모델 중 어느 것을 사용해야 하는지 표시할 수 있으며, DMA 경로를 사용하여 적용가능한 모델에 대한 명령어 및 파라미터 데이터를 SRAM으로 스왑할 수 있다.
앰비언트 ML 엔진(134)은 하나 이상의 센서 신호를 프로세싱하여 센서 신호를 추가로 프로세싱해야 하는 하나 이상의 다른 프로세싱 컴포넌트들을 나타내는 출력을 생성할 수 있다. 예를 들어, 앰비언트 ML 엔진(134)은 고전력 DSP(138) 또는 메인 CPU 클러스터(140)가 센서 신호를 추가로 프로세싱해야 한다는 것을 표현하는 출력을 생성할 수 있다. 저전력 프로세싱 컴포넌트는 앰비언트 ML 엔진의 출력을 해석하여 시스템을 상위 레벨의 전력 상태 중 하나(230)로 전환하고, PCU(121)에게 상위 레벨의 전력 상태 예를 들어, 고전력 DSP(138)를 구현하는데 필요한 컴포넌트에 전력을 제공하도록 지시할 수 있다.
시스템은 메인 CPU 클러스터(140), 메인 ML 엔진(150) 또는 둘 모두의 전원이 켜지는 동안 최대 전력 상태(240)로 추가로 전환할 수 있다. 최대 전력 상태(240)는 사용자에 의해 컴퓨팅 디바이스를 능동적으로 사용하는 동안, 예를 들어 메인 CPU 클러스터(140)를 사용하는 웹 브라우징 세션 동안 또는 하나 이상의 음성 인식 및 메인 ML 엔진(150) 상의 오디오 생성 신경 네트워크들을 사용하는 음성 대화 세션 동안의 시간 기간일 가능성이 크다.
이러한 컴포넌트들에 필요할 때만 전력을 공급하는 단계는 시스템의 전력 소비를 줄이면서도 시스템은 항상 입력에 빠르게 응답할 수 있게 한다.
특정한 프로세싱 컴포넌트들이 센서 신호 프로세싱을 종료하면, PCU(121)는 그 프로세싱 컴포넌트들에 전력을 제공하는 것을 중단할 수 있으며, 이는 전력 소비를 더 감소시킨다.
일부 경우에, 저전력 CPU(132), 앰비언트 ML 엔진(134) 및 저전력(136) DSP 조차 특정 센서 신호를 완전히 프로세싱하지 못할 수 있다. 그러한 경우에, 시스템은 시스템이 고전력 DSP(138) 또는 메인 CPU 클러스터(140)에 전력을 제공하는 상위 레벨 전력 상태(230)로 전환할 수 있다.
모든 프로세싱이 완료되면, 시스템은 모니터링 전력 상태(210)로 다시 전환할 수 있으며, 여기서 시스템은 새로운 센서 데이터로부터의 인터럽트를 대기한다.
도 3은 추가적인 프로세싱 컴포넌트가 필요한 앰비언트 컴퓨팅 시스템에서 추가적인 프로세싱 컴포넌트들을 연속적으로 활성화하기 위한 예시적 프로세스의 흐름도이다. 편의상, 프로세스는 앰비언트 컴퓨팅 시스템 또는 시스템의 하나 이상의 컴포넌트에 의해 수행되는 것으로 설명될 것이다. 시스템은 도 1을 참조하여 설명된 컴포넌트들을 포함할 수 있고, 센서 신호를 생성하도록 구성된 하나 이상의 주변 인터페이스들, 인터럽트 제어기 및 저전력 CPU, 앰비언트 ML 엔진, 하나 이상의 DSP 또는 이들의 일부 조합을 포함하는 하나 이상의 프로세싱 컴포넌트들을 포함한다.
시스템은 초기적으로 모니터링 전력 상태에 있으며, 모니터링 전력 상태는 시스템이 입력에 응답할 수 있는 가장 낮은 전력 상태이다. 모니터링 전력 상태에서, 시스템은 제어 서브시스템의 컴포넌트를 동작 상태로 유지하고 프로세싱 서브시스템의 컴포넌트들, 예를 들어 저전력 CPU, 앰비언트 ML 엔진 및 기타 프로세싱 컴포넌트들을 비-동작 상태로 유지할 수 있다. 이들 컴포넌트들을 비-동작 상태로 유지하는 것은 이들에 전력을 공급하지 않거나 임계치 미만의 전력 레벨을 제공하는 것을 포함한다. 시스템은 예를 들어, 휘발성 메모리 디바이스의 상태를 유지하기 위해 모니터링 전력 상태에서 일부 컴포넌트들에 일부 전력을 제공할 수 있다. 대안적으로 또는 추가적으로, 모니터링 전력 상태 동안 전력이 없는 다른 컴포넌트, 예를 들어 앰비언트 ML 엔진을 제공할 수 있다.
시스템은 하나 이상의 주변 인터페이스(310)에서 하나 이상의 센서 신호가 사용 가능하다는 것을 결정할 때까지 모니터링 전력 상태를 유지한다.
시스템은 인터럽트를 수신하면 모니터링 전력 상태로부터 프로세싱 전력 상태로 전환한다(320). 전술한 바와 같이, 인터럽트는 하나 이상의 주변 인터페이스에 의해 생성된 하나 이상의 센서 신호들 또는 타이머 타임아웃으로 인해 생성될 수 있다.
인터럽트 제어기는 특정한 센서 신호를 자동으로 무시할 수 있다. 예를 들어, 앰비언트 컴퓨팅 시스템이 구현된 컴퓨팅 디바이스가 위치 서비스를 끈 경우, 인터럽트 제어기는 시스템이 프로세싱 전력 상태로 전환하지 않고 위치 데이터 신호를 무시하도록 할 수 있다.
프로세싱 전력 상태로 전환하는 것은 시스템으로 하여금 저전력 프로세싱 컴포넌트, 예를 들어 저전력 CPU 또는 저전력 DSP를 활성화시킨다. 저전력 프로세싱 컴포넌트를 활성화하는 것은 인터럽트 제어기에 의해 저전력 프로세싱 컴포넌트를 깨우는 신호를 인터럽트하는 것을 포함할 수 있다. 인터럽트를 발행하면 저전력 CPU가 나중에 읽고 해석할 수 있는 인터럽트 레지스터에 데이터가 저장될 수 있다. 인터럽트 레지스터는 센서 신호의 소스를 기술하는 데이터를 저장할 수 있다. 인터럽트 제어기는 PCU에 저전력 CPU에 전력을 공급하도록 지시할 수 있다.
저전력 프로세싱 컴포넌트는 하나 이상의 센서 신호를 추가로 프로세싱하기 위해 앰비언트 ML 엔진을 호출할지 여부를 특정하는 출력을 생성하기 위해 인터럽트를 프로세싱한다(330). 이 결정은 하나 이상의 센서 신호들이 특정한 속성, 예를 들어, 사람 음성의 특징을 갖는 오디오 데이터 또는 손 제스처 특징을 갖는 레이더 데이터를 갖는지를 결정하는 것을 포함할 수 있다.
저전력 프로세싱 엘리먼트가 앰비언트 ML 엔진을 호출하지 않기로 결정하면(340), 저전력 프로세싱 컴포넌트는 다른 프로세싱 컴포넌트가 하나 이상의 센서 신호를 프로세싱해야 하는지 여전히 결정할 수 있다(350으로 분기). 다시 말해서, 앰비언트 ML 엔진을 통한 결정 경로가 많은 상황에 사용될 수 있지만, 앰비언트 컴퓨팅 시스템은 앰비언트 ML 엔진을 전혀 호출하지 않는 센서 신호 프로세싱하기 위한 사용 사례를 지원할 수 있다.
다른 프로세싱 컴포넌트들이 하나 이상의 센서 신호를 프로세싱해야 하는 경우(350), 앰비언트 컴퓨팅 시스템은 하나 이상의 다른 프로세싱 컴포넌트들로 하나 이상의 신호를 프로세싱할 수 있다(380으로 분기). 예를 들어, 저전력 DSP는 수신된 기압계 또는 가속도계 신호가 앰비언트 ML 엔진 대신 저전력 CPU에 의해 추가로 프로세싱되어야 한다고 결정할 수 있다. 이 경우 저전력 DSP는 저전력 CPU를 호출하여 앰비언트 ML 엔진을 깨우지 않고 센서 신호를 추가로 프로세싱할 수 있다. 프로세싱 후, 시스템은 모니터링 전력 상태(390)로 다시 전환할 수 있다.
저전력 프로세싱 컴포넌트는 또한, 예를 들어, 오디오 또는 레이더 신호가 실제로 잡음인 경우, 센서 신호가 추가 프로세싱을 필요로 하지 않음을 결정할 수 있다. 이 경우 시스템은 다른 프로세싱 컴포넌트들을 호출하지 않고 모니터링 전력 상태로 간단히 전환할 수 있다(390으로 분기). 앰비언트 ML 엔진 또는 기타 프로세싱 컴포넌트들을 활성화하지 않고 프로세스를 조기에 종료함으로써 시스템은 상당한 전력 절감 효과를 얻을 수 있다.
저전력 프로세싱 엘리먼트가 앰비언트 ML 엔진을 호출하기로 결정하면(340), 앰비언트 ML 엔진은 하나 이상의 센서 신호를 추가로 프로세싱해야 하는 하나 이상의 다른 프로세싱 컴포넌트들을 나타내는 출력을 생성하기 위해 하나 이상의 센서 신호들을 프로세싱한다. 앰비언트 ML 엔진은 다양한 적절한 기계 학습 모델을 사용할 수 있다. 일반적으로, 모델로의 입력은 하나 이상의 센서 신호의 하나 이상의 피처이며, 출력은 저전력 프로세싱 엘리먼트가 앰비언트 컴퓨팅 시스템의 다른 프로세싱 컴포넌트들에 의한 추가 프로세싱이 필요한지 여부를 결정하는데 사용할 수 있다는 추론이다.
예를 들어, 앰비언트 ML 엔진은 저전력 프로세싱 엘리먼트가 예를 들면, 텍스트-음성 변환 응답이 필요한 경우 특수 목적 오디오 DSP가 하나 이상의 센서 신호를 추가로 프로세싱해야 함 또는 메인 CPU 클러스터 또는 메인 ML 엔진이 하나 이상의 센서 신호를 추가로 프로세싱해야 함을 의미하는 것으로 해석하는 출력을 생성할 수 있다.
일례로서, 저전력 DSP는 마이크로폰 신호를 프로세싱하고 사람이 생성한 잡음이 실제 음성이 아님을 표시하는 출력을 생성할 수 있다. 이 경우, 저전력 DSP는 센서 신호를 추가로 프로세싱하기 위해 앰비언트 ML 엔진을 활성화하지 않을 수 있다. 한편, 저전력 DSP는 다른 마이크로폰 신호를 프로세싱하고 사람이 생성한 잡음이 실제 음성임을 표시하는 출력을 생성할 수 있다. 이 경우, 저전력 DSP는 센서 신호를 추가로 프로세싱하기 위해 앰비언트 ML 엔진을 활성화할 수 있다.
시스템은 앰비언트 기계 학습 엔진의 출력에 의해 표현된 하나 이상의 다른 프로세싱 컴포넌트들을 활성화하고, 활성화된 하나 이상의 다른 프로세싱 컴포넌트들을 사용하여 하나 이상의 센서 신호를 프로세싱한다(370). 추가적인 활성화된 프로세싱 컴포넌트는 하나 이상의 상위 레벨의 전력 상태, 예를 들어 고전력 DSP의 프로세싱 컴포넌트를 포함할 수 있다. 추가적인 활성화된 프로세싱 컴포넌트는 또한 하나 이상의 최대 전력 상태, 예를 들어 메인 CPU 클러스터, 메인 ML 엔진 또는 이들의 일부 조합의 프로세싱 컴포넌트일 수 있다.
예를 들어, 센서 신호의 조합은 사용자가 디바이스를 보기 시작했음을 나타낼 수 있다. 앰비언트 ML 엔진의 출력은 이러한 센서 신호의 피처를 컴퓨팅 디바이스의 디스플레이를 켜기 위해 메인 CPU 클러스터를 작동시켜야 하는 프로그램에 매핑하는데 사용될 수 있다. 다른 예시로서, 센서 신호의 조합은 사용자가 음성 명령을 발행했음을 나타낼 수 있다. 앰비언트 ML 엔진의 출력은 이러한 센서 신호의 피처를 메인 ML 엔진이 텍스트-음성 변환 응답을 생성하도록 요구하는 프로그램에 매핑하는데 사용될 수 있으며, 온라인 음성 인식을 수행하기 위해 메인 CPU 클러스터를 활성화하는 것을 요구할 수 있다.
활성화된 프로세싱 컴포넌트들이 센서 신호를 프로세싱한 후, 저전력 프로세싱 컴포넌트는 해당 프로세싱 컴포넌트들을 종료하거나 PCU에 종료하도록 지시한다. 그 후, 저전력 프로세싱 컴포넌트는 또한 PCU에게 다음 인터럽트(390)를 대기하기 위해 모니터링 전력 상태로 다시 전환하도록 지시할 수 있다.
도 4는 어플리케이션 특정 조건에 대응하는 어플리케이션을 처리하기 위해 앰비언트 컴퓨팅 시스템에서 특정한 프로세싱 컴포넌트를 활성화하기 위한 예시적 프로세스의 흐름도이다. 편의상, 프로세스는 컴퓨팅 시스템 또는 컴퓨팅 시스템의 특정한 컴포넌트에 의해 수행되는 것으로 설명될 것이다. 다시, 컴퓨팅 시스템은 도 1을 참조하여 기술된 컴포넌트들을 포함할 수 있고, 센서 신호를 생성하도록 구성된 하나 이상의 주변 인터페이스 및 저전력 프로세싱 컴포넌트 예를 들어 저전력 CPU(132) 또는 저전력 DSP(136), 앰비언트 ML 엔진(134) 및 하나 이상의 고전력 DSP(138)를 포함하는 하나 이상의 프로세싱 컴포넌트를 포함한다. 예시적 프로세스 동안, 시스템은 초기적으로 프로세싱 전력 상태에 있지만 더 높은 전력 프로세싱 상태로 전환할 수 있다.
저전력 프로세싱 컴포넌트는 하나 이상의 주변 인터페이스에 의해 생성된 센서 신호를 프로세싱하여 특정한 센서 신호가 특정한 속성을 갖는다고 결정한다(410). 특정한 센서 신호가 특정한 속성을 갖는다고 결정하는 것은 센서 신호가 특정한 유형, 예를 들어 사람 음성에 대응하는 오디오 데이터 또는 손 제스처에 대응하는 레이더 데이터인 것으로 결정하는 것을 포함할 수 있다.
센서 신호가 특정한 속성을 갖는다는 결정에 응답하여, 시스템은 도 3을 참조하여 설명된 바와 같이 앰비언트 ML 엔진을 활성화한다(420).
앰비언트 ML 엔진은 상기 센서 신호들을 사용하여 기계 학습 모델을 통해 추론 패스를 수행하여 모델 출력을 생성한다(430). 앰비언트 ML 엔진은 음성 인식 모델, 제스처 인식 모델 및 신경 네트워크 모델 또는 기타 적절한 기계 학습 모델로 표현되는 텍스트-음성 변환 모델을 포함하여 다양한 기계 학습 모델을 구현할 수 있다. 음성 인식 모델은 사람의 음성을 나타내는 센서 신호를 입력으로서 수신하고, 해당 신호를 프로세싱하여 대응 텍스트를 생성한다. 제스처 인식 모델은 손 제스처를 나타내는 레이더 입력을 수신하고 이러한 손 제스처를 식별 및 디코딩한다. 텍스트-음성 변환 모델은 텍스트를 입력으로서 수신하고, 해당 텍스트를 프로세싱하여 대응하는 음성을 생성한다.
일부 구현에서, 앰비언트 ML 엔진은 다수의 기계 학습 모델을 저장하고, 센서 신호의 속성은 저전력 DSP 또는 저전력 CPU로 하여금 앰비언트 ML 엔진이 추론 패스를 수행해야 하는 하나 이상의 모델을 선택하게 한다. 일부 경우에, 앰비언트 ML 엔진은 동일한 센서 신호를 사용하여 상이한 모델에서 여러번 추론 패스를 수행할 수 있다.
전술한 바와 같이, 제1 유형의 기계 학습 모델은 추가 프로세싱을 위해 앰비언트 컴퓨팅 시스템의 어떤 다른 컴포넌트를 활성화할 것인지 식별하는데 사용될 수 있는 모델이다. 이 경우에, 입력은 센서 신호이고 기계 학습 출력은 하나 이상의 프로세싱 컴포넌트들 각각에 대한 하나 이상의 식별자에 매핑될 수 있는 출력일 수 있다.
앰비언트 ML 엔진에 의해 구현될 수 있는 다른 유형의 기계 학습 모델은 사용자가 비교적 작은 핫워드들의 세트(예를 들어, "Ok phone")를 말할 때를 식별하기 위해 단순화된 음성 인식을 수행하는 핫워드 모델이다. 이 경우, 입력은 오디오 신호이고 출력은 열거된 명령 세트의 하나 이상의 식별자이다. 예를 들어, 열거된 명령 중 하나는 추가적인 음성 입력을 청취하는 것일 수 있으며, 이는 예를 들어 보다 정교한 메인 ML 엔진에 의해 처리될 수 있다.
앰비언트 ML 엔진으로 구현될 수 있는 다른 유형의 기계 학습 모델은 미디어 식별 모델이다. 이 경우에, 입력은 오디오 신호이고, 모델 출력은 오디오 신호, 예를 들어 노래 제목, 프로그램, TV쇼 또는 영화, TV 또는 라디오 채널의 이름에 대한 미디어의 하나 이상의 속성이다. 예를 들어, 출력은 배경음악을 영화 "Braveheart"로 식별하는 텍스트일 수 있다. 앰비언트 컴퓨팅 시스템은 메인 CPU 클러스터를 활성화하여 이 정보를 전화기 화면에 알림으로 디스플레이할 수 있다. 미디어 식별 모델을 구현하기 위해, 디바이스는 식별된 미디어가 최신이고 합리적으로 최신이되도록, 업데이트된 모델 파라미터를, 예를 들어, 밤, 주 또는 월에 한 번 다운로드할 수 있다.
앰비언트 ML 엔진으로 구현될 수 있는 다른 유형의 기계 학습 모델은 음악 식별 모델이다. 이 경우에, 입력은 오디오 신호이고, 모델 출력은 오디오 신호, 예를 들어 노래 제목, 작곡가, 작사가, 앨범 또는 트랙과 같은 음악적 작업에 대한 하나 이상의 속성이다. 유사하게 디바이스는 식별된 음악이 최신이고 합리적으로 최신이되도록, 업데이트된 모델 파라미터를, 예를 들어, 밤, 주 또는 월에 한 번 다운로드할 수 있다.
위에서 언급한 모델 중 하나 이상을 구현하는데 필요한 메모리는 디바이스 상의 SRAM 크기를 초과할 수 있다. 따라서 시스템은 메모리 오버레이를 사용하여 메모리 공간이 제한된 다수의 기계 학습 모델을 지원할 수 있게 한다. 예를 들어, 시스템은 핫워드 모델에 대한 모델 파라미터 및 코드를 주기적으로 SRAM으로 스왑하고, 마지막 몇 밀리 초 동안 수신된 오디오에 대한 추론 패스를 수행할 수 있다. 예를 들어, 시스템은 미디어 식별 모델에 대한 모델 파라미터 및 코드를 SRAM으로 스왑하고, 마지막 몇 밀리 초 동안 수신된 오디오에 대한 제2 추론 패스를 수행할 수 있다. 그 다음 시스템은 음악 식별 모델의 모델 파라미터 및 코드를 스왑하기 위해 동일한 동작을 수행할 수 있다. 일부 구현예에서, 시스템은 오버레이들을 DMA 제어기를 사용하여 SRAM으로, 그리고 DMA 경로를 DRAM 또는 DRAM에서 데이터를 캐시하는 시스템 레벨 캐시로 스왑한다.
시스템은 센서 신호가 어플리케이션 특정 조건과 일치한다고 결정한다(440). 예를 들어, 저전력 프로세싱 컴포넌트는 앰비언트 ML 엔진의 출력을 해석하여, 센서 신호가 앰비언트 컴퓨팅 시스템이 구현되는 컴퓨팅 디바이스의 디스플레이를 켜는 조건과 일치하는지를 결정할 수 있다. 다른 예로서, 저전력 프로세싱 컴포넌트는 수신된 오디오 신호가 "OK Computer, turn on screen"이라는 음성 명령에 대응한다고 결정하기 위해 앰비언트 ML 엔진의 출력을 해석할 수 있다.
특정한 센서 신호가 어플리케이션 특정 조건과 일치한다는 결정에 응답하여, 시스템은 특정한 프로세싱 컴포넌트를 활성화하여 어플리케이션 특정 조건에 대응하는 특정한 어플리케이션을 실행한다(460). 이전 단락으로부터의 예를 계속하여, 시스템은 컴퓨팅 디바이스의 디스플레이를 조명하게 하는 프로그램 코드를 실행하기 위해 프로세싱 컴포넌트를 활성화할 수 있다.
다른 예시적 프로세스에서, 저전력 프로세싱 컴포넌트는 특정한 센서 신호가 오디오 신호인 것으로 결정할 수 있다. 그 다음 시스템은 앰비언트 ML 엔진을 활성화하여 해당 오디오 신호를 추가로 프로세싱할 수 있다. 오디오 프로세싱 신경 네트워크를 사용하는 앰비언트 ML 엔진은 오디오 신호가 특정한 유형의 소리, 예를 들어 자동차 문을 닫는 소리에 대응한다는 것을 나타내는 출력을 생성하기 위해 기계 학습 모델을 통한 추론 패스를 수행할 수 있다. 자동차 문을 닫는 소리의 발생은 시스템이 모바일 컴퓨팅 디바이스의 위치를 기록하게 하는 프로그램 코드를 실행하도록 시스템이 프로세싱 컴포넌트들을 활성화하게 하는 어플리케이션 특정 조건이다. 모바일 컴퓨팅 디바이스의 위치를 기록하는 것은 어플리케이션 특정 조건에 대응하는 어플리케이션이다. 이러한 어플리케이션은 종종 자신의 차를 어디에 주차했는지 잊어 버린 사용자에게 유용할 수 있다.
도 5는 음성 검색 어플리케이션을 처리하기 위한 예시적 프로세스의 흐름도이다. 프로세스는 앰비언트 컴퓨팅 시스템 또는 시스템의 특정한 컴포넌트에 의해 수행되는 것으로 설명될 것이다.
앰비언트 컴퓨팅 시스템의 오디오 센서, 예를 들어 마이크로폰은 환경으로부터의 오디오 입력에 기초하여 오디오 신호를 생성한다. 예를 들어, 오디오 센서는 "OK Computer, 오늘 날씨는 어때?"라는 질문에 해당하는 사람의 음성을 수신할 수 있다. 오디오 센서는 해당 질문을 인코딩하는 오디오 신호를 생성할 수 있다.
시스템은 오디오 신호를 수신한다(510). 시스템이 모니터링 전력 상태에 있는 경우, 시스템은 인터럽트 제어기가 오디오 신호가 사용가능하다고 결정함에 따라 프로세싱 전력 상태로 전환할 수 있으며, 이는 시스템으로 하여금 저전력 DSP를 활성화하게 한다. 전술한 바와 같이, 저전력 DSP를 활성화하는 것은 저전력 DSP에 인터럽트를 송신하고 PCU에게 저전력 DSP에 전력을 공급하도록 지시하는 것을 포함할 수 있다. 시스템이 이미 프로세싱 전력 상태인 경우, 저전력 DSP가 오디오 신호를 프로세싱할 수 있다.
저전력 DSP는 오디오 신호를 프로세싱하고, 오디오 신호가 사람의 음성의 하나 이상의 속성을 갖는지 여부를 결정한다(520). 오디오 신호가 사람 음성의 하나 이상의 속성을 갖는다고 결정하는 것은 예를 들어 오디오 신호의 주파수 컨텐츠를 분석하거나 오디오 신호를 공지된 사람 음성 샘플과 비교하는 것을 포함할 수 있다.
오디오 신호가 사람 음성의 하나 이상의 속성을 갖지 않으면(520), 시스템은 앰비언트 ML 엔진을 호출하거나 호출하지 않고 다른 프로세싱을 수행할 수 있거나 시스템은 단순히 모니터링 전력 상태로 전환할 수 있다(570으로 분기). 모니터링 전력 상태로 다시 전환하면 앰비언트 ML 엔진 또는 기타 고전력 프로세싱 컴포넌트들을 활성화하지 않아 전력이 절약된다.
상기 언급된 바와 같이, 앰비언트 ML 엔진은 음악 또는 기타 미디어를 구체적으로 식별하는 다른 기계 학습 모델을 사용할 수 있다. 따라서, 오디오 신호가 음악 또는 다른 미디어의 속성을 갖는 경우, 시스템은 앰비언트 ML 엔진에 대한 파라미터 및 명령어를 스왑하여 해당 오디오 유형에 특정적인 모델을 사용하여 추론 패스를 수행할 수 있다. 앰비언트 ML 엔진이 모델을 사용하여 마이크로폰에 의해 픽업되는 음악 또는 미디어를 식별할 수 있는 경우, 시스템은 음악 또는 다른 미디어를 식별하는 정보를 예를 들어 디스플레이 알림으로서 제공할 수 있다. 디스플레이 알림을 제공하는 것은 메인 CPU 클러스터 또는 다른 고전력 프로세싱 컴포넌트들을 깨워야 할 수 있으므로, 이 프로세스는 프로세싱 전력 상태로부터 최대 전력 상태로 전환하는 것을 포함할 수 있다. 그러나 시스템은 수신된 오디오 신호가 저전력 DSP에 따라 특정한 속성을 갖고, 앰비언트 ML 엔진에 따라 식별가능한 음악 또는 미디어에 해당하는 경우에만 최대 전력 상태에 도달함으로써 전력을 절약하고 배터리 수명을 연장할 수 있다.
오디오 신호가 사람 음성에 대한 하나 이상의 속성을 갖는 경우, 시스템은 앰비언트 ML 엔진을 활성화한다(530으로 분기).
앰비언트 ML 엔진은 음성 인식 모델에 따라 오디오 신호를 프로세싱한다(540). 음성 인식 모델에 대한 프로그램 코드 및 파라미터는 기계 학습 엔진을 활성화하기 전에 또는 활성화하는 동안 SRAM으로 스왑될 수 있다.
그 다음 앰비언트 ML 엔진은 입력 오디오 신호로 음성 인식 모델을 통해 추론 패스를 수행한다. 음성 인식 모델의 출력은 오디오 신호에 대응하는 텍스트 또는 음성에 대응하는 명령의 식별자일 수 있다. 앞 단락의 예시를 계속해서, 음성 인식 모델의 출력은 "OK Computer, 오늘 날씨는 어때?"의 식별자 또는 텍스트 표현일 수 있다.
시스템은 모델 출력이 어플리케이션 특정 조건과 일치한다고 결정한다(550). 예를 들어, 저전력 DSP는 텍스트 표현에서 "날씨" 및 "오늘"이라는 단어의 존재에 기초하여, 오디오 신호가 날씨 데이터를 검색하고 제시하는 어플리케이션에 대응한다고 결정할 수 있다. 다시 말해, 사용자는 컴퓨팅 디바이스가 날씨 리포트를 제공하기를 원하며, 적절한 음성 명령을 발행했다
모델 출력이 어플리케이션 특정 조건에 대응하지 않으면, 시스템은 다른 프로세싱을 수행하거나 모니터링 전력 상태로 다시 전환할 수 있다(570으로 분기).
모델 출력이 어플리케이션 특정 조건에 대응하면, 시스템은 어플리케이션 특정 조건에 대응하는 어플리케이션을 실행한다(560). 일반적으로, 시스템은 예를 들어 프로그램 코드 및 어플리케이션을 실행하는데 필요한 데이터를 SRAM으로 스왑함으로써, 어플리케이션 특정 조건에 대응하는 어플리케이션을 수행하기 위한 프로세싱 컴포넌트를 선택할 수 있다. 예를 들어, 앰비언트 ML 엔진이 자동 음성 인식을 수행할 수 있으면, 시스템은 앰비언트 ML 엔진이 음성을 인식하는데 필요한 프로그램 코드 및 모델 파라미터들을 SRAM 으로 스왑할 수 있다.
대안적으로 또는 추가로, 시스템은 예를 들어 메인 CPU 클러스터 또는 메인 ML 엔진을 호출함으로써, 어플리케이션을 수행하기 위해 앰비언트 컴퓨팅 시스템의 일부가 아닌 다른 컴포넌트를 호출할 수 있다. 예를 들어, 어플리케이션 특정 조건이 날씨를 물어보는 음성 명령인 경우 시스템은 메인 CPU 클러스터를 호출하여 온라인 소스에서 날씨를 조회하는 어플리케이션을 실행할 수 있다. 당연히, 이 액션은 아직 활성화되지 않았다면 네트워킹 하드웨어에 전력을 공급해야 할 수 있다. 예를 들어, 시스템은 온라인 검색 엔진 또는 날씨 데이터베이스를 사용하여 요청된 날씨 정보를 검색할 수 있다.
시스템은 특정한 프로세싱 컴포넌트를 활성화하여, 특정한 사람 음성의 발생에 대한 텍스트 음성 변환 응답을 생성하며, 이는 어플리케이션 특정 조건에 해당하는 어플리케이션이다(580). 일부 구현예에서, 시스템은 텍스트 음성 변환 오디오 응답을 생성하기 위해 오디오 DSP를 활성화할 수 있다. 일부 다른 구현에서, 앰비언트 ML 엔진 자체는 텍스트 음성 변환 기계 학습 모델을 구현함으로써 텍스트 음성 변환 어플리케이션을 처리할 수 있다. 텍스트-음성 변환 기계 학습 모델은 트레이닝된 원시 오디오 순환 신경 네트워크일 수 있다. 예를 들어, arxiv.org에있는 arXiv 프리프린트 arXiv:1609.03499(2016)의 Aaron van den Oord 등의 WaveNet:A Generative Model for Raw Audio에 설명된 신경 네트워크일 수 있다. 텍스트-음성 변환 모델의 출력은 오디오 신호 예를 들어, “오늘 날씨는 맑으며 최고 온도는 75도입니다”이다. 컴퓨팅 디바이스 상의 오디오 출력 디바이스, 예를 들어 스피커는 오디오 신호로부터 오디오를 생성할 수 있다.
일부 구현예에서, 앰비언트 컴퓨팅 시스템은 사람 음성에 대응하는 오디오 신호들을 인식하고, 저전력 CPU를 활성화시키지 않고 텍스트-음성 변환 오디오 응답을 생성할 수 있다. 예를 들어, 저전력 DSP는 수신된 오디오 신호가 사람 음성에 대응할 뿐만 아니라 텍스트-음성 응답이 필요한 질문에 대응한다고 결정할 수 있다. 이러한 결정에 기초하여, 저전력 CPU가 텍스트-음성 변환 어플리케이션을 처리할 수 없기 때문에, 저전력 DSP는 저전력 CPU를 바이패스하여 앰비언트 ML 엔진에 직접 추론 요청을 송신할 수 있다. 이러한 상황에서 저전력 CPU를 바이패스하는 것은 시스템의 에너지 소비를 감소시킨다.
도 6은 제스처 특정 어플리케이션을 수행하기 위한 예시적 프로세스의 흐름도이다. 프로세스는 앰비언트 컴퓨팅 시스템 또는 시스템의 특정한 컴포넌트에 의해 수행되는 것으로 설명될 것이다.
시스템은 레이더 신호를 수신한다(610). 예를 들어, 하나 이상의 레이더 센서는 레이더 신호를 생성한다. 시스템이 현재 모니터링 전력 상태에 있는 경우, 시스템은 인터럽트 제어기가 레이더 신호가 사용가능하다고 결정함에 따라 프로세싱 전력 상태로 전환할 수 있으며, 이는 시스템으로 하여금 저전력 DSP를 활성화하게 한다. 전술한 바와 같이, 저전력 DSP를 활성화하는 것은 PCU에게 저전력 DSP에 전력을 공급하도록 지시하는 것을 포함할 수 있다. 시스템이 이미 프로세싱 전력 상태인 경우, 시스템은 레이더 신호를 저전력 DSP로 포워딩할 수 있다.
저전력 DSP는 레이더 신호를 프로세싱하고, 신호가 사람의 근접성을 표시하는지 여부를 결정한다(620). 레이더 신호가 사용자의 근접성을 표시한다고 결정하는 것은 환경으로부터 다시 반사된 전파로 인코딩된 신호 패턴, 예를 들어 펄스를 검출하고 반사된 신호 패턴의 신호 대 잡음비를 측정하는 것을 포함할 수 있다. 신호 대 잡음비가 임계치를 만족하면, 시스템은 신호가 사용자의 근접성을 표시한다고 결정할 수 있다.
일부 구현예에서, 시스템은 저전력 DSP에 추가적인 하위 레벨 프로세싱을 부과한다. 예를 들어, 레이더 신호가 사용자의 근접성을 표시하는 경우, 시스템은 저전력 DSP를 사용하여 레이더 신호가 제스처를 표시하는지 여부를 결정하기 위해 상이한 루틴을 실행할 수 있다.
레이더 신호가 사용자의 근접성을 표시하지 않으면, 시스템은 앰비언트 ML 엔진을 호출하지 않고 다른 프로세싱을 수행할 수 있거나 단순히 모니터링 전력 상태로 전환할 수 있다(670으로 분기).
레이더 신호가 사용자의 근접성을 표시하면, 시스템은 앰비언트 ML 엔진을 활성화한다(630으로 분기).
시스템은 제스처 인식 모델에 따라 레이더 신호를 프로세싱한다(640). 제스처 인식 모델에 대한 프로그램 코드 및 파라미터는 기계 학습 엔진을 활성화하기 전에 또는 활성화하는 동안 SRAM으로 스왑될 수 있다. 그 다음 앰비언트 ML 엔진은 입력 레이더 신호들을 사용하여 제스처 인식 모델을 통해 추론 패스를 수행하여 모델 출력을 생성한다. 예를 들어, 기계 학습 모델은 특정한 손 제스처를 검출하고 분류하도록 트레이닝된 제스처 인식 모델일 수 있다.
시스템은 레이더 신호가 특정한 제스처에 대응하는지 여부를 결정한다(650). 예를 들어, 저전력 DSP는 모델 출력을 해석하고 모델 출력이 특정한 제스처에 대응한다고 결정할 수 있다. 대안적으로 또는 추가적으로, 시스템은 앰비언트 ML 엔진과 함께 고전력 DSP를 사용할 수 있다. 다시 말해서, 고전력 DSP는 제스처 인식 모델을 통한 추론 패스를 수행하는 앰비언트 ML 엔진과 동시에 사용자의 근접성을 확인하기 위해 레이더 신호에 대해 보다 정교한 신호 프로세싱을 수행할 수 있다. 고전력 DSP가 사용자가 있음을 나타내고, 앰비언트 ML 엔진이 모델 출력이 특정한 제스처에 대응한다고 표시하면, 시스템은 제스처 특정 액션을 수행할 수 있다. 고전력 DSP의 기능을 앰비언트 ML 엔진의 제스처 인식 모델과 조합함으로써, 시스템은 제스처 인식의 정확성을 높이고 오탐지율을 감소시킬 수 있다.
레이더 신호가 특정한 제스처에 대응하지 않으면, 시스템은 다른 프로세싱을 수행하거나 모니터링 전력 상태로 다시 전환할 수 있다(670으로 분기).
레이더 신호가 특정한 제스처에 대응하면, 시스템은 제스처 특정 어플리케이션을 실행한다(660으로 분기). 하나의 제스처 특정 어플리케이션은 사용자가 디바이스의 소유자인지 여부가 제스처로부터 결정될 수 있다. 예를 들어, 디바이스는 레이더 신호를 사용하여 디바이스의 제스처 잠금 해제 또는 제스처 암호를 활성화할 수 있다. 다시 말해서, 제스처의 피처가 디바이스를 잠그기 위해 이전에 사용된 제스처의 피처와 일치하기 때문에 시스템은 사용자가 디바이스의 소유자라고 결정할 수 있다.
다른 제스처 특정 어플리케이션은 사용자가 특정한 제스처를 수행하는 것에 응답하여 디바이스의 디스플레이를 조명하는 것일 수 있다. 예를 들어, 사용자가 디스플레이를 보기 위해 몸을 기울인 경우, 모델 출력은 사용자가 기울고 있음을 나타낼 수 있다. 응답으로, 시스템은 프로세싱 컴포넌트를 활성화하여 컴퓨팅 디바이스의 디스플레이를 켤 수 있다. 예를 들어, 이것은 사용자가 단지 몸을 기울이거나 손을 특정한 방식으로 움직임(예를 들면, 손을 흔들거나 앞뒤로 또는 T형상으로)으로써 디바이스 상의 알림을 볼 수 있게 한다.
다른 제스처 특정 어플리케이션은 카메라를 사용하여 얼굴 표정을 해석할 수 있다. 예를 들어, 특정한 제스처가 사용자가 디바이스를 향해 기울이는 경우, 시스템은 사용자의 얼굴의 이미지 데이터를 캡처하기 위해 정면 카메라를 활성화할 수 있다. 그 다음 시스템은 메인 CPU 클러스터, 메인 ML 엔진 또는 둘 모두를 활성화하여 사용자의 얼굴 표정을 분류할 수 있다.
상기 예들은 주로 앰비언트 컴퓨팅 시스템이 통합된 프로세싱 컴포넌트들을 가지는 시스템 온 칩으로서 구현되는 것으로 설명하였다. 그러나, 동일한 기법은 기본 컴퓨팅 컴포넌트의 다른 구성을 사용하여 앰비언트 컴퓨팅 시스템을 구현하기 위해 사용될 수 있다. 예를 들어, 앰비언트 ML 엔진을 포함하는 앰비언트 컴퓨팅 시스템의 하나 이상의 프로세싱 컴포넌트는 코-프로세서 또는 독립형 칩으로 구현될 수 있다.
본 발명의 실시예들과 본 명세서에 기술된 액션 및 기능적 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는, 디지털 전자회로에서, 유형적으로 수록된 컴퓨터 소프트웨어 또는 펌웨어에서, 컴퓨터 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명의 실시예들은 하나 이상의 컴퓨터 프로그램들로서 구현될 수 있다. 즉, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 유형적 비일시적인 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 저장 기판, 랜덤 또는 직렬 엑세스 메모리 디바이스 또는 그들 중 하나 이상의 조합이거나 그 일부일 수 있다. 컴퓨터 저장 매체는 전파된 신호는 아니다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트 또는 코드로도 참조되거나 기술될 수 있음)은 컴파일된 또는 인터프리트된 언어들, 또는 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 엔진, 서브루틴으로서 또는 컴퓨팅 환경에서 실행하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있고, 환경은 하나 이상의 위치들에서 데이터 통신 네트워크에 의해 상호연결된 하나 이상의 컴퓨터들을 포함할 수 있다.
컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만, 반드시 그런 것은 아니다. 컴퓨터 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에 기술된 발명의 실시예는 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어 LCD 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 입력 디바이스(예를 들어 키보드) 및 컴퓨팅 디바이스(예를 들어, 마우스, 트랙볼 또는 터치패드)를 갖는 컴퓨터 상에서 구현되거나 이와 통신하도록 구성될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 송수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여, 사용자의 디바이스상의 웹 브라우저에 웹 페이지를 전송함으로써 또는 사용자 디바이스(예를 들면, 스마트폰 또는 전자 태블릿)에서 실행되는 앱과 인터렉션 함으로써 사용자와 인터렉션할 수 있다. 또한, 컴퓨터는 텍스트 메시지 또는 다른 형태의 메시지를 개인 디바이스(예: 메시징 어플리케이션을 실행 중인 스마트폰)로 보내고, 응답으로 사용자로부터 응답 메시지를 수신함으로써 사용자와 인터렉션할 수 있다.
본 명세서에서 기술된 발명의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 클라이언트 디바이스 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저 또는 앱과 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network) 및 WAN(wide area network) 예를 들어, 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시예에서, 서버는 예를 들어, 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위해, 클라이언트로서 동작하는 사용자 디바이스에 데이터(예: HTML 페이지)를 전송한다. 사용자 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서 디바이스로부터 수신될 수 있다.
상기 기술된 실시예들에 더하여, 다음의 실시예들도 혁신적이다:
실시예 1은 앰비언트(ambient) 컴퓨팅 시스템으로서:
센서 신호들을 생성하도록 구성된 하나 이상의 센서들;
제어기; 및
저전력 프로세싱 컴포넌트, 기계 학습 엔진 및 하나 이상의 다른 프로세싱 컴포넌트들을 포함하는 복수의 프로세싱 컴포넌트들을 포함하며;
상기 앰비언트 컴퓨팅 시스템은 동작을 수행하도록 구성되며, 상기 동작들은:
제어기가 하나 이상의 센서 신호들의 존재를 표시하는 인터럽트를 수신할 때까지 모니터링 전력 상태로 유지하는 동작;
상기 제어기가 상기 인터럽트를 수신하면 상기 모니터링 전력 상태로부터 프로세싱 전력 상태로 전환하는 동작, 상기 프로세싱 전력 상태로 전환하는 것은 상기 앰비언트 컴퓨팅 시스템으로 하여금 상기 저전력 프로세싱 컴포넌트를 활성화하게 하며;
상기 저전력 프로세싱 컴포넌트에 의해, 상기 하나 이상의 센서 신호들을 사용하여, 상기 기계 학습 엔진이 상기 하나 이상의 센서 신호들을 사용하여 추론 패스를 수행해야 한다고 결정하는 동작;
이에 응답하여, 상기 하나 이상의 센서 신호들을 추가로 프로세싱하기 위해 활성화되어야 하는 상기 앰비언트 컴퓨팅 시스템의 하나 이상의 다른 프로세싱 컴포넌트들을 표현하는 출력을 생성하기 위해, 상기 하나 이상의 센서 신호들을 입력으로서 사용하여 상기 기계 학습 엔진에 의한 추론 패스를 수행하는 동작;
상기 기계 학습 엔진의 상기 출력에 의해 표현된 상기 하나 이상의 다른 프로세싱 컴포넌트들을 활성화하는 동작; 및
상기 기계 학습 엔진의 상기 출력에 의해 표현된 상기 하나 이상의 다른 프로세싱 컴포넌트들에 의해 상기 하나 이상의 센서 신호들을 프로세싱하는 동작을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 2는 실시예 1에 있어서, 인터럽트를 수신하는 동작은 센서가 환경적 입력을 수신함에 응답하여 주변 인터페이스에 의해 생성된 인터럽트를 수신하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 3은 실시예 1-2 중 어느 하나에 있어서, 상기 저전력 프로세싱 컴포넌트는 저전력 CPU인 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 4은 실시예 1-3 중 어느 하나에 있어서, 상기 저전력 프로세싱 컴포넌트는 저전력 CPU인 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 5는 실시예 4에 있어서, 상기 하나 이상의 센서 신호들을 추가로 프로세싱하기 위해 활성화되어야 하는 상기 앰비언트 컴퓨팅 시스템의 상기 하나 이상의 다른 프로세싱 컴포넌트들은 고전력 DSP, 메인 CPU 클러스터 또는 메인 기계 학습 엔진을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 6은 실시예 1-5 중 어느 하나에 있어서, 상기 동작들은 상기 저전력 프로세싱 컴포넌트에 의해, 상기 기계 학습 엔진의 상기 출력이 상기 하나 이상의 센서 신호들을 추가로 프로세싱하기 위해 활성화되어야 하는 상기 앰비언트 컴퓨팅 시스템의 하나 이상의 다른 프로세싱 컴포넌트들을 표현한다고 결정하는 동작을 더 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 7은 실시예 1-6 중 어느 하나에 있어서, 인터럽트를 수신하는 동작은 타이머 타임 아웃에 응답하여, 타이머에 의해 생성된 인터럽트를 수신하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 8은 실시예 1-7 중 어느 하나에 있어서, 상기 복수의 프로세싱 컴포넌트들은 랜덤 액세스 메모리 뱅크를 공유하고, 상기 모니터링 전력 상태로부터 상기 프로세싱 전력 상태로 전환하는 동작은 상기 랜덤 액세스 메모리 뱅크를 활성화하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 9는 실시예 1-8 중 어느 하나에 있어서, 상기 복수의 프로세싱 컴포넌트들은 통신 패브릭에 의해 통신적으로 결합되며, 상기 모니터링 전력 상태로부터 상기 프로세싱 전력 상태로 전환하는 동작은 상기 통신 패브릭을 활성화하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 10은 실시예 1-9 중 어느 하나에 있어서, 상기 앰비언트 컴퓨팅 시스템이 상기 모니터링 전력 상태에 있는 동안, 상기 앰비언트 컴퓨팅 시스템은 상기 저전력 프로세싱 컴포넌트 및 상기 기계 학습 엔진을 비-동작 상태로 유지하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 11은 실시예 10에 있어서, 상기 저전력 프로세싱 컴포넌트 및 상기 기계 학습 엔진을 상기 비-동작 상태로 유지하는 것은 전력을 제공하지 않거나 임계치 미만인 전력 레벨을 제공하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 12는 실시예 10에 있어서, 상기 앰비언트 컴퓨팅 시스템이 상기 모니터링 전력 상태에 있는 동안, 상기 앰비언트 컴퓨팅 시스템은 SRAM 및 통신 패브릭을 비-동작 상태로 유지하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 13은 실시예 10에 있어서, 상기 앰비언트 컴퓨팅 시스템이 상기 모니터링 전력 상태에 있는 동안, 상기 앰비언트 컴퓨팅 시스템은 제어 서브시스템을 동작 상태로 그리고 프로세싱 서브시스템을 비-동작 상태로 유지하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 14는 실시예 1-13 중 어느 하나에 있어서, 상기 기계 학습 엔진은 하나 이상의 센서 신호들의 피처들을 입력으로서 사용하고, 상기 하나 이상의 센서 신호들을 추가로 프로세싱해야 하는 상기 앰비언트 컴퓨팅 시스템의 하나 이상의 다른 프로세싱 컴포넌트들을 표현하는 출력을 생성하는 기계 학습 모델을 구현하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 15는 실시예 1-14 중 어느 하나에 있어서, 상기 동작들은 상기 하나 이상의 다른 프로세싱 컴포넌트들에 의해 상기 센서 신호들의 프로세싱이 완료된 때 상기 프로세싱 전력 상태로부터 상기 모니터링 전력 상태로 전환하는 동작을 더 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 16은 실시예 1-15에 있어서, 상기 기계 학습 엔진은 앰비언트 기계 학습 엔진이며, 상기 하나 이상의 다른 프로세싱 컴포넌트들은 메인 기계 학습 엔진을 포함하며, 상기 앰비언트 기계 학습 엔진은 상기 메인 기계 학습 엔진 보다 더 적은 프로세싱 파워를 가지는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 17은 앰비언트(ambient) 컴퓨팅 시스템으로서:
센서 신호들을 생성하도록 구성된 하나 이상의 센서들;
저전력 프로세싱 컴포넌트, 기계 학습 엔진 및 하나 이상의 다른 프로세싱 컴포넌트들을 포함하는 복수의 프로세싱 컴포넌트들을 포함하며;
상기 앰비언트 컴퓨팅 시스템은:
상기 저전력 프로세싱 컴포넌트에 의해, 특정한 센서 신호들이 특정한 속성을 갖는다고 결정하고;
응답으로, 상기 기계 학습 엔진을 활성화하고;
상기 기계 학습 엔진에 의해, 상기 센서 신호들을 사용하여 모델 출력을 생성하기 위해 기계 학습 모델을 통한 추론 패스를 수행하고;
상기 기계 학습 엔진의 모델 출력이 어플리케이션 특정 조건과 일치한다고 결정하고;
응답으로, 상기 어플리케이션-특정 조건에 대응하는 특정한 어플리케이션을 실행하기 위해 상기 다른 프로세싱 컴포넌트들 중 하나 이상을 활성화하도록 구성되는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 18은 실시예 17에 있어서, 상기 기계 학습 엔진의 모델 출력이 어플리케이션 특정 조건과 일치한다고 결정하는 것은 상기 저전력 프로세싱 컴포넌트에 의해 수행되는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 19는 실시예 17에 있어서, 상기 특정한 센서 신호들 특정한 속성을 갖는다고 결정하는 것은 상기 특정한 센서 신호들이 사람의 음성에 대응하는 오디오 신호들이라고 결정하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 20은 실시예 19에 있어서, 상기 어플리케이션 특정 조건은 특정한 사람 음성의 발생이고, 상기 어플리케이션은 상기 특정한 사람 음성에 대한 텍스트-음성 오디오 응답을 생성하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 21은 실시예 20에 있어서, 상기 기계 학습 엔진은 트레이닝된 원시 오디오 순환(recurrent) 신경 네트워크를 사용하여 상기 텍스트-음성 오디오 응답을 생성하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 22는 실시예 21에 있어서, 상기 앰비언트 컴퓨팅 시스템은 사람 음성에 대응하는 오디오 신호들을 인식하고, 메인 CPU 클러스터를 초기화하지 않고 상기 텍스트-음성 오디오 응답을 생성하도록 구성되는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 23은 실시예 17-22 중 어느 하나에 있어서, 상기 특정한 센서 신호들이 특정한 속성을 갖는다고 결정하는 것은 상기 특정한 센서 신호들이 사용자의 가까운 근접성을 표시하는 레이더 신호들이라고 결정하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 24는 실시예 23에 있어서, 상기 앰비언트 컴퓨팅 시스템은 모바일 컴퓨팅 디바이스의 컴포넌트이고, 상기 어플리케이션 특정 조건은 사용자에 의한 특정한 제스처의 발생인 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 25는 실시예 24에 있어서, 상기 어플리케이션은 상기 모바일 컴퓨팅 디바이스의 디스플레이를 켜거나 상기 모바일 컴퓨팅 디바이스를 잠금 해제하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 26은 실시예 17-25에 있어서, 상기 앰비언트 컴퓨팅 시스템은 모바일 컴퓨팅 디바이스의 컴포넌트이고, 상기 어플리케이션 특정 조건은 특정한 유형의 소리의 발생이고, 상기 어플리케이션은 상기 모바일 컴퓨팅 디바이스의 위치를 기록하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템이다.
실시예 27은 앰비언트 컴퓨팅 시스템 및 추가적인 컴포넌트들을 포함하는 전력 디바이스로서, 상기 디바이스는:
센서 신호들을 생성하도록 구성된 하나 이상의 센서들;
제어기; 및
저전력 프로세싱 컴포넌트, 앰비언트 기계 학습 엔진 및 다른 프로세싱 컴포넌트들을 포함하는 복수의 프로세싱 컴포넌트들을 포함하는 앰비언트 컴퓨팅 시스템을 포함하며,
상기 앰비언트 컴퓨팅 시스템은:
상기 제어기가 인터럽트를 수신할 때까지 모니터링 전력 상태를 유지하고;
상기 제어기가 상기 인터럽트를 수신하면 상기 모니터링 전력 상태로부터 프로세싱 전력 상태로 전환하고, 상기 프로세싱 전력 상태로 전환하는 것은 상기 앰비언트 컴퓨팅 시스템으로 하여금 상기 저전력 프로세싱 컴포넌트를 활성화하게 하며;
상기 앰비언트 기계 학습 엔진이 하나 이상의 센서 신호들을 추가로 프로세싱해야 함을 특정하는 출력을 생성하기 위해, 상기 저전력 프로세싱 컴포넌트에 의해 상기 인터럽트를 프로세싱하고;
상기 하나 이상의 센서 신호들을 추가로 프로세싱해야 하는 상기 앰비언트 컴퓨팅 시스템의 하나 이상의 다른 프로세싱 컴포넌트들을 표현하는 출력을 생성하기 위해, 상기 기계 학습 엔진에 의해 상기 하나 이상의 센서 신호들을 프로세싱하고;
상기 출력에 응답하여, 상기 기계 학습 엔진의 출력에 의해 식별된 상기 하나 이상의 다른 프로세싱 컴포넌트들만을 상기 센서 신호들을 프로세싱하기 위해 충분한 것으로서 활성화하고;
상기 기계 학습 엔진의 상기 출력에 의해 식별된 상기 하나 이상의 다른 프로세싱 컴포넌트들을 사용하여 상기 하나 이상의 센서 신호들을 프로세싱하도록 구성되며; 그리고
상기 제어기는 상기 프로세싱된 센서 신호들에 응답하여 상기 전력 디바이스의 추가적인 컴포넌트들을 활성화하도록 구성되는 것을 특징으로 하는 전력 디바이스이다.
실시예 28은 실시예 27에 있어서, 상기 기계 학습 엔진은 앰비언트 기계 학습 엔진이며, 상기 전력 디바이스의 상기 추가적인 컴포넌트들은 메인 기계 학습 엔진을 포함하며, 상기 앰비언트 기계 학습 엔진은 상기 메인 기계 학습 엔진보다 더 적은 프로세싱 파워를 가지는 것을 특징으로 하는 전력 디바이스이다.
실시예 29는 실시예 1-28 중 어느 하나의 앰비언트 컴퓨팅 시스템 동작을 수행하는 방법이다.
실시예 30은 컴퓨터 프로그램으로 인코딩된 컴퓨터 저장 매체로서, 상기 프로그램은 앰비언트 컴퓨팅 시스템의 컴포넌트에 의해 실행될 때 앰비언트 컴퓨팅 시스템으로 하여금 실시예 1-28 중 어느 하나의 동작을 수행하게 하는 명령어를 포함한다.
본 명세서는 많은 특정 구현 세부내용을 포함하지만, 이들은 임의의 발명의 범위 또는 청구된 또는 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정한 발명의 특정한 실시예에 특정적일 수 있는 구성들에 대한 설명으로 해석되어야 한다. 별개의 실시예의 맥락에서 본 명세서에서 기술되는 일정 구성들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 기술된 다양한 구성들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 게다가, 구성들은 일정 조합으로 동작하고 심지어 초기적으로 그렇게 청구되는 것으로서 상기에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성들은 일부 경우, 조합으로부터 제거될 수 있고, 청구항은 서브 조합 또는 서브 조합의 변형으로 안내될 수 있다.
유사하게, 동작들이 특정한 순서로 도면에서 도시되고 청구항들에 기재되었지만, 이는 상기 동작들이 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것으로서 또는 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안된다. 특정 환경에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다. 게다가, 상기 기술된 실시예에서 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예에서 그러한 분리가 필요한 것으로서 이해되어서는 안되며, 일반적으로 기술된 프로그램 컴포넌트들 및 시스템들은 단일의 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들에 패키징될 수 있다고 이해되어야 한다.
본 발명의 특정한 실시예들이 기술되었다. 다른 실시예들도 다음의 청구항들의 범위 내에 있다. 예를 들면, 청구항들에서 기재된 액션들은 상이한 순서로 수행되고 여전히 원하는 결과들을 달성할 수 있다. 일 예시로서, 첨부 도면들에 도시된 프로세스들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 일부 경우에, 멀티태스킹과 병렬 프로세싱은 이점이 있다.

Claims (28)

  1. 앰비언트(ambient) 컴퓨팅 시스템으로서,
    센서 신호들을 생성하도록 구성된 하나 이상의 센서들;
    제어기; 및
    저전력 프로세싱 컴포넌트, 앰비언트 기계 학습 엔진 및 하나 이상의 다른 프로세싱 컴포넌트들을 포함하는 복수의 프로세싱 컴포넌트들을 포함하며;
    상기 앰비언트 컴퓨팅 시스템은 동작을 수행하도록 구성되며, 상기 동작들은:
    제어기가 하나 이상의 센서 신호들의 존재를 표시하는 인터럽트를 수신할 때까지 모니터링 전력 상태로 유지하는 동작;
    상기 제어기가 상기 인터럽트를 수신하면 상기 모니터링 전력 상태로부터 프로세싱 전력 상태로 전환하는 동작, 상기 프로세싱 전력 상태로 전환하는 것은 상기 앰비언트 컴퓨팅 시스템으로 하여금 상기 저전력 프로세싱 컴포넌트를 활성화하게 하며;
    상기 저전력 프로세싱 컴포넌트에 의해, 상기 앰비언트 기계 학습 엔진이 상기 하나 이상의 센서 신호들을 추가로 프로세싱해야 하는지 여부를 결정하기 위해 상기 인터럽트를 프로세싱하는 동작, 상기 앰비언트 기계 학습 엔진은 상기 하나 이상의 센서 신호들을 입력으로서 수신하고 입력으로서 사용된 상기 하나 이상의 센서 신호들을 추가로 프로세싱하기 위해 활성화되어야 하는 상기 앰비언트 컴퓨팅 시스템의 하나 이상의 다른 프로세싱 컴포넌트들을 표현하는 출력을 생성하는 기계 학습 모델을 구현하도록 구성되며;
    상기 앰비언트 기계 학습 엔진이 상기 하나 이상의 센서 신호들을 추가로 프로세싱해야 한다는 결정에 응답하여:
    상기 앰비언트 기계 학습 엔진에 의한 추론 패스를 수행하는 동작,
    상기 앰비언트 기계 학습 엔진의 상기 출력에 의해 표현된 상기 하나 이상의 다른 프로세싱 컴포넌트들을 활성화하는 동작, 및
    상기 앰비언트 기계 학습 엔진의 상기 출력에 의해 표현된 상기 하나 이상의 다른 프로세싱 컴포넌트들에 의해 상기 하나 이상의 센서 신호들을 프로세싱하는 동작;
    상기 앰비언트 기계 학습 엔진이 상기 하나 이상의 센서 신호들을 추가로 프로세싱하지 않는다는 결정에 응답하여:
    상기 앰비언트 기계 학습 엔진을 바이패스하는 동작, 및
    상기 저전력 프로세싱 컴포넌트에 의해, 상기 하나 이상의 다른 프로세싱 컴포넌트들을 활성화하지 않고 상기 하나 이상의 센서 신호들을 프로세싱하는 동작을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  2. 청구항 1에 있어서, 인터럽트를 수신하는 동작은 센서가 환경적 입력을 수신함에 응답하여 주변 인터페이스에 의해 생성된 인터럽트를 수신하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  3. 청구항 1에 있어서, 상기 저전력 프로세싱 컴포넌트는 저전력 CPU인 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  4. 청구항 1에 있어서, 상기 저전력 프로세싱 컴포넌트는 저전력 DSP인 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  5. 청구항 4에 있어서, 상기 하나 이상의 센서 신호들을 추가로 프로세싱하기 위해 활성화되어야 하는 상기 앰비언트 컴퓨팅 시스템의 상기 하나 이상의 다른 프로세싱 컴포넌트들은 고전력 DSP, 메인 CPU 클러스터 또는 메인 기계 학습 엔진을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  6. 청구항 1에 있어서, 상기 동작들은 상기 저전력 프로세싱 컴포넌트에 의해, 상기 기계 학습 엔진의 상기 출력이 상기 하나 이상의 센서 신호들을 추가로 프로세싱하기 위해 활성화되어야 하는 상기 앰비언트 컴퓨팅 시스템의 하나 이상의 다른 프로세싱 컴포넌트들을 표현한다고 결정하는 동작을 더 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  7. 청구항 1에 있어서, 인터럽트를 수신하는 동작은 타이머 타임 아웃에 응답하여, 타이머에 의해 생성된 인터럽트를 수신하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  8. 청구항 1에 있어서, 상기 복수의 프로세싱 컴포넌트들은 랜덤 액세스 메모리 뱅크를 공유하고, 상기 모니터링 전력 상태로부터 상기 프로세싱 전력 상태로 전환하는 동작은 상기 랜덤 액세스 메모리 뱅크를 활성화하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  9. 청구항 1에 있어서, 상기 복수의 프로세싱 컴포넌트들은 통신 패브릭에 의해 통신적으로 결합되며, 상기 모니터링 전력 상태로부터 상기 프로세싱 전력 상태로 전환하는 동작은 상기 통신 패브릭을 활성화하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  10. 청구항 1에 있어서, 상기 앰비언트 컴퓨팅 시스템이 상기 모니터링 전력 상태에 있는 동안, 상기 앰비언트 컴퓨팅 시스템은 상기 저전력 프로세싱 컴포넌트 및 상기 기계 학습 엔진을 비-동작 상태로 유지하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  11. 청구항 10에 있어서, 상기 저전력 프로세싱 컴포넌트 및 상기 기계 학습 엔진을 상기 비-동작 상태로 유지하는 것은 전력을 제공하지 않거나 임계치 미만인 전력 레벨을 제공하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  12. 청구항 10에 있어서, 상기 앰비언트 컴퓨팅 시스템이 상기 모니터링 전력 상태에 있는 동안, 상기 앰비언트 컴퓨팅 시스템은 SRAM 및 통신 패브릭을 비-동작 상태로 유지하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  13. 청구항 10에 있어서, 상기 앰비언트 컴퓨팅 시스템이 상기 모니터링 전력 상태에 있는 동안, 상기 앰비언트 컴퓨팅 시스템은 제어 서브시스템을 동작 상태로 그리고 프로세싱 서브시스템을 비-동작 상태로 유지하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  14. 삭제
  15. 청구항 1에 있어서, 상기 동작들은 상기 하나 이상의 다른 프로세싱 컴포넌트들에 의해 상기 센서 신호들의 프로세싱이 완료된 때 상기 프로세싱 전력 상태로부터 상기 모니터링 전력 상태로 전환하는 동작을 더 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  16. 청구항 1에 있어서, 상기 하나 이상의 다른 프로세싱 컴포넌트들은 메인 기계 학습 엔진을 포함하며, 상기 앰비언트 기계 학습 엔진은 상기 메인 기계 학습 엔진 보다 더 적은 프로세싱 파워를 가지는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  17. 앰비언트(ambient) 컴퓨팅 시스템으로서,
    센서 신호들을 생성하도록 구성된 하나 이상의 센서들;
    저전력 프로세싱 컴포넌트, 앰비언트 기계 학습 엔진 및 하나 이상의 다른 프로세싱 컴포넌트들을 포함하는 복수의 프로세싱 컴포넌트들을 포함하며;
    상기 앰비언트 컴퓨팅 시스템은:
    상기 저전력 프로세싱 컴포넌트에 의해, 특정한 센서 신호들이 특정한 속성을 갖는다고 결정하고;
    상기 특정한 센서 신호들이 특정한 속성을 갖는다는 결정에 응답하여, 상기 앰비언트 기계 학습 엔진을 활성화하고, 상기 앰비언트 기계 학습 엔진은 다수의 기계 학습 모델들을 포함하며, 상기 특정한 센서 신호들의 특정한 속성은 상기 저전력 프로세싱 컴포넌트로 하여금 상기 다수의 기계 학습 모델들로부터 하나의 기계 학습 모델을 선택하게 하며;
    상기 앰비언트 기계 학습 엔진에 의해, 상기 센서 신호들을 사용하여 모델 출력을 생성하기 위해 상기 기계 학습 모델을 통한 추론 패스를 수행하고;
    상기 앰비언트 기계 학습 엔진의 모델 출력이 어플리케이션 특정 조건과 일치한다고 결정하고;
    상기 앰비언트 기계 학습 엔진의 모델 출력이 어플리케이션 특정 조건과 일치한다는 결정에 응답하여, 상기 어플리케이션 특정 조건에 대응하는 특정한 어플리케이션을 실행하기 위해 상기 하나 이상의 다른 프로세싱 컴포넌트들을 활성화하도록 구성되는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  18. 청구항 17에 있어서, 상기 기계 학습 엔진의 모델 출력이 어플리케이션 특정 조건과 일치한다고 결정하는 것은 상기 저전력 프로세싱 컴포넌트에 의해 수행되는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  19. 청구항 17에 있어서, 상기 특정한 센서 신호들 특정한 속성을 갖는다고 결정하는 것은 상기 특정한 센서 신호들이 사람의 음성에 대응하는 오디오 신호들이라고 결정하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  20. 청구항 19에 있어서, 상기 어플리케이션 특정 조건은 특정한 사람 음성의 발생이고, 상기 어플리케이션은 상기 특정한 사람 음성에 대한 텍스트-음성 오디오 응답을 생성하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  21. 청구항 20에 있어서, 상기 기계 학습 엔진은 트레이닝된 원시 오디오 순환(recurrent) 신경 네트워크를 사용하여 상기 텍스트-음성 오디오 응답을 생성하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  22. 청구항 21에 있어서, 상기 앰비언트 컴퓨팅 시스템은 사람 음성에 대응하는 오디오 신호들을 인식하고, 메인 CPU 클러스터를 초기화하지 않고 상기 텍스트-음성 오디오 응답을 생성하도록 구성되는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  23. 청구항 17에 있어서, 상기 특정한 센서 신호들이 특정한 속성을 갖는다고 결정하는 것은 상기 특정한 센서 신호들이 사용자의 가까운 근접성을 표시하는 레이더 신호들이라고 결정하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  24. 청구항 23에 있어서, 상기 앰비언트 컴퓨팅 시스템은 모바일 컴퓨팅 디바이스의 컴포넌트이고, 상기 어플리케이션 특정 조건은 사용자에 의한 특정한 제스처의 발생인 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  25. 청구항 24에 있어서, 상기 어플리케이션은 상기 모바일 컴퓨팅 디바이스의 디스플레이를 켜거나 상기 모바일 컴퓨팅 디바이스를 잠금 해제하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  26. 청구항 17에 있어서, 상기 앰비언트 컴퓨팅 시스템은 모바일 컴퓨팅 디바이스의 컴포넌트이고, 상기 어플리케이션 특정 조건은 특정한 유형의 소리의 발생이고, 상기 어플리케이션은 상기 모바일 컴퓨팅 디바이스의 위치를 기록하는 것을 포함하는 것을 특징으로 하는 앰비언트 컴퓨팅 시스템.
  27. 앰비언트 컴퓨팅 시스템 및 추가적인 컴포넌트들을 포함하는 전력 디바이스로서, 상기 디바이스는:
    하나 이상의 센서 신호들을 생성하도록 구성된 하나 이상의 센서들;
    제어기; 및
    저전력 프로세싱 컴포넌트, 앰비언트 기계 학습 엔진 및 하나 이상의 다른 프로세싱 컴포넌트들을 포함하는 복수의 프로세싱 컴포넌트들을 포함하는 앰비언트 컴퓨팅 시스템을 포함하며,
    상기 앰비언트 컴퓨팅 시스템은:
    상기 제어기가 인터럽트를 수신할 때까지 모니터링 전력 상태를 유지하고;
    상기 제어기가 상기 인터럽트를 수신하면 상기 모니터링 전력 상태로부터 프로세싱 전력 상태로 전환하고, 상기 프로세싱 전력 상태로 전환하는 것은 상기 앰비언트 컴퓨팅 시스템으로 하여금 상기 저전력 프로세싱 컴포넌트를 활성화하게 하며;
    상기 저전력 프로세싱 컴포넌트에 의해, 상기 앰비언트 기계 학습 엔진이 상기 하나 이상의 센서 신호들을 추가로 프로세싱해야 하는지 여부를 결정하기 위해 상기 인터럽트를 프로세싱하고, 상기 앰비언트 기계 학습 엔진은 상기 하나 이상의 센서 신호들을 입력으로서 수신하고 입력으로서 사용된 상기 하나 이상의 센서 신호들을 추가로 프로세싱하기 위해 활성화되어야 하는 상기 앰비언트 컴퓨팅 시스템의 하나 이상의 다른 프로세싱 컴포넌트들을 표현하는 출력을 생성하는 기계 학습 모델을 구현하도록 구성되며;
    상기 앰비언트 기계 학습 엔진이 상기 하나 이상의 센서 신호들을 추가로 프로세싱해야 한다는 결정에 응답하여:
    상기 앰비언트 기계 학습 엔진의 출력에 의해 상기 센서 신호들을 프로세싱하기 위해 충분한 것으로서 식별된 상기 하나 이상의 다른 프로세싱 컴포넌트들만을 활성화하고;
    상기 앰비언트 기계 학습 엔진의 상기 출력에 의해 식별된 상기 하나 이상의 다른 프로세싱 컴포넌트들을 사용하여 상기 하나 이상의 센서 신호들을 프로세싱하도록 구성되며; 그리고
    상기 제어기는 상기 프로세싱된 센서 신호들에 응답하여 상기 전력 디바이스의 추가적인 컴포넌트들을 활성화하도록 구성되는 것을 특징으로 하는 전력 디바이스.
  28. 청구항 27에 있어서, 상기 전력 디바이스의 상기 추가적인 컴포넌트들은 메인 기계 학습 엔진을 포함하며, 상기 앰비언트 기계 학습 엔진은 상기 메인 기계 학습 엔진보다 더 적은 프로세싱 파워를 가지는 것을 특징으로 하는 전력 디바이스.
KR1020197034766A 2017-11-21 2018-11-21 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템 KR102362107B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227004110A KR102488558B1 (ko) 2017-11-21 2018-11-21 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762589547P 2017-11-21 2017-11-21
US62/589,547 2017-11-21
PCT/US2018/062329 WO2019104228A1 (en) 2017-11-21 2018-11-21 Low-power ambient computing system with machine learning

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227004110A Division KR102488558B1 (ko) 2017-11-21 2018-11-21 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20190141739A KR20190141739A (ko) 2019-12-24
KR102362107B1 true KR102362107B1 (ko) 2022-02-11

Family

ID=64661521

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197034766A KR102362107B1 (ko) 2017-11-21 2018-11-21 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템
KR1020227004110A KR102488558B1 (ko) 2017-11-21 2018-11-21 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227004110A KR102488558B1 (ko) 2017-11-21 2018-11-21 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템

Country Status (7)

Country Link
US (2) US11199896B2 (ko)
EP (2) EP4242924A3 (ko)
JP (2) JP6877594B2 (ko)
KR (2) KR102362107B1 (ko)
CN (2) CN117762234A (ko)
TW (2) TWI748267B (ko)
WO (1) WO2019104228A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117762234A (zh) * 2017-11-21 2024-03-26 谷歌有限责任公司 具有机器学习功能的低功率环境计算系统
WO2020141696A1 (ko) * 2019-01-04 2020-07-09 주식회사 딥엑스 전자기기를 위한 특정 기능 수행용 학습된 모델 작성 방법 및 동일 기능을 수행하기 위한 학습 모델, 전용 칩 및 전용 칩 동작 방법, 그리고 전자기기와 시스템
US11579680B2 (en) * 2019-02-01 2023-02-14 Alibaba Group Holding Limited Methods and devices for power management based on synthetic machine learning benchmarks
US10896679B1 (en) * 2019-03-26 2021-01-19 Amazon Technologies, Inc. Ambient device state content display
US11176493B2 (en) 2019-04-29 2021-11-16 Google Llc Virtualizing external memory as local to a machine learning accelerator
US11580421B2 (en) * 2019-10-16 2023-02-14 Qualcomm Incorporated Weakly supervised learning for improving multimodal sensing platform
US11343412B2 (en) * 2019-10-22 2022-05-24 Intel Corporation User detection and user attention detection using multi-zone depth sensing
EP4052173A2 (en) * 2019-10-30 2022-09-07 Google LLC Smart-device-based radar system performing gesture recognition using a space time neural network
EP3999937A1 (en) * 2019-12-17 2022-05-25 Google LLC Low-power vision sensing
WO2021127174A1 (en) * 2019-12-18 2021-06-24 Google Llc Machine learning based privacy processing
US20210191779A1 (en) * 2019-12-18 2021-06-24 Google Llc Operating system level distributed ambient computing
US20210192078A1 (en) * 2019-12-23 2021-06-24 Apple Inc. User behavior model development with private federated learning
US11256316B2 (en) * 2020-02-27 2022-02-22 Dell Products, L.P. Automated device power conservation using machine learning techniques
US11720158B2 (en) * 2020-03-13 2023-08-08 Google Llc Power throttling mechanism using instruction rate limiting in high power machine-learning ASICs
US11233956B2 (en) * 2020-03-31 2022-01-25 Western Digital Technologies, Inc. Sensor system with low power sensor devices and high power sensor devices
US11740687B2 (en) 2020-04-21 2023-08-29 Western Digital Technologies, Inc. Variable power mode inferencing
KR102374980B1 (ko) * 2020-05-28 2022-03-16 (주)브이엠에스 복합센서 기반의 인공지능형 결함 진단 시스템
US11375463B2 (en) * 2020-11-30 2022-06-28 Silicon Laboratories Inc. System, apparatus and method for dynamic transmit power determination
US11782149B2 (en) 2021-01-08 2023-10-10 Google Llc Systems and methods for managing motion detection of an electronic device, and associated electronic devices
WO2022150455A1 (en) * 2021-01-08 2022-07-14 Google Llc Systems and methods for managing motion detection of an electronic device, and associated electronic devices
KR20220120154A (ko) * 2021-02-23 2022-08-30 삼성전자주식회사 복수의 어플리케이션들에 공유되는 기계 학습 모델을 이용한 장치 및 방법
JP2023020219A (ja) * 2021-07-30 2023-02-09 株式会社リコー 情報処理装置、方法およびプログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3086206B2 (ja) * 1998-07-17 2000-09-11 科学技術振興事業団 エージェント学習装置
JP2001238001A (ja) 2000-02-24 2001-08-31 Ricoh Co Ltd ファクシミリ装置
TW200929096A (en) * 2007-12-21 2009-07-01 Inventec Corp Portable apparatus and sensing information application method thereof
US8200371B2 (en) * 2009-06-25 2012-06-12 Qualcomm Incorporated Prediction engine to control energy consumption
US8190939B2 (en) 2009-06-26 2012-05-29 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
US8335935B2 (en) * 2010-03-29 2012-12-18 Intel Corporation Power management based on automatic workload detection
US8575993B2 (en) * 2011-08-17 2013-11-05 Broadcom Corporation Integrated circuit with pre-heating for reduced subthreshold leakage
US9063731B2 (en) * 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
TW201419036A (zh) * 2012-11-06 2014-05-16 Pixart Imaging Inc 感測元件陣列、控制感測裝置的方法以及相關電子裝置
US9354722B2 (en) 2012-11-21 2016-05-31 Google Technology Holdings LLC Low power management of multiple sensor integrated chip architecture
US8884906B2 (en) * 2012-12-21 2014-11-11 Intel Corporation Offloading touch processing to a graphics processor
CN104956715B (zh) 2013-01-25 2021-10-19 高通股份有限公司 对移动设备上的行为特征的自适应观察
US20150095678A1 (en) * 2013-09-27 2015-04-02 Lama Nachman Movement-based state modification
WO2015100430A1 (en) * 2013-12-24 2015-07-02 Digimarc Corporation Methods and system for cue detection from audio input, low-power data processing and related arrangements
CN103714039B (zh) * 2013-12-25 2017-01-11 中国人民解放军国防科学技术大学 通用计算数字信号处理器
US10031000B2 (en) 2014-05-29 2018-07-24 Apple Inc. System on a chip with always-on processor
US10416750B2 (en) 2014-09-26 2019-09-17 Qualcomm Incorporated Algorithm engine for ultra low-power processing of sensor data
US9891696B2 (en) * 2014-10-03 2018-02-13 Google Llc Intelligent device wakeup
WO2016077385A1 (en) * 2014-11-10 2016-05-19 Novi Security, Inc. Power-optimized security sensor
US9690361B2 (en) * 2014-12-24 2017-06-27 Intel Corporation Low-power context-aware control for analog frontend
US9874922B2 (en) * 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
KR102354330B1 (ko) * 2015-07-31 2022-01-21 삼성전자주식회사 스마트 디바이스 및 그 동작 방법
US10146286B2 (en) * 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10410113B2 (en) * 2016-01-14 2019-09-10 Preferred Networks, Inc. Time series data adaptation and sensor fusion systems, methods, and apparatus
JP5975187B1 (ja) 2016-03-17 2016-08-23 富士電機株式会社 構造ヘルスモニタリングシステム及び構造ヘルスモニタリング方法
WO2018038732A1 (en) 2016-08-26 2018-03-01 Rf Digital Corporation Low latency and power efficient data transmission between a sensor and server computer
US10175980B2 (en) * 2016-10-27 2019-01-08 Google Llc Neural network compute tile
CN117762234A (zh) * 2017-11-21 2024-03-26 谷歌有限责任公司 具有机器学习功能的低功率环境计算系统

Also Published As

Publication number Publication date
CN117762234A (zh) 2024-03-26
EP3552076B1 (en) 2023-08-30
EP4242924A3 (en) 2023-10-11
KR102488558B1 (ko) 2023-01-13
WO2019104228A1 (en) 2019-05-31
CN110678825B (zh) 2023-12-08
KR20190141739A (ko) 2019-12-24
JP6877594B2 (ja) 2021-05-26
CN110678825A (zh) 2020-01-10
TWI748267B (zh) 2021-12-01
TWI807471B (zh) 2023-07-01
EP4242924A2 (en) 2023-09-13
TW202206975A (zh) 2022-02-16
EP3552076A1 (en) 2019-10-16
US20200278738A1 (en) 2020-09-03
JP2021140803A (ja) 2021-09-16
KR20220025140A (ko) 2022-03-03
US11199896B2 (en) 2021-12-14
US20220066536A1 (en) 2022-03-03
JP7257443B2 (ja) 2023-04-13
JP2020532779A (ja) 2020-11-12
TW202036225A (zh) 2020-10-01
US11714477B2 (en) 2023-08-01

Similar Documents

Publication Publication Date Title
KR102362107B1 (ko) 기계 학습 기능을 갖는 저전력 앰비언트 컴퓨팅 시스템
US9734830B2 (en) Speech recognition wake-up of a handheld portable electronic device
US11599471B2 (en) Low-power cached ambient computing
US20220335945A1 (en) Machine learning based privacy processing
KR102654723B1 (ko) 저전력 캐시된 앰비언트 컴퓨팅
US20220413592A1 (en) Low-power vision sensing

Legal Events

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