KR102443490B1 - 아날로그 프론트엔드를 위한 저전력 컨텍스트 인식 제어 - Google Patents

아날로그 프론트엔드를 위한 저전력 컨텍스트 인식 제어 Download PDF

Info

Publication number
KR102443490B1
KR102443490B1 KR1020177014032A KR20177014032A KR102443490B1 KR 102443490 B1 KR102443490 B1 KR 102443490B1 KR 1020177014032 A KR1020177014032 A KR 1020177014032A KR 20177014032 A KR20177014032 A KR 20177014032A KR 102443490 B1 KR102443490 B1 KR 102443490B1
Authority
KR
South Korea
Prior art keywords
sensor
afe
analog processing
processing hardware
processor
Prior art date
Application number
KR1020177014032A
Other languages
English (en)
Other versions
KR20170099858A (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 KR20170099858A publication Critical patent/KR20170099858A/ko
Application granted granted Critical
Publication of KR102443490B1 publication Critical patent/KR102443490B1/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
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • 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/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04106Multi-sensing digitiser, i.e. digitiser using at least two different sensing technologies simultaneously or alternatively, e.g. for detecting pen and finger, for saving power or for improving position detection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Control Of Eletrric Generators (AREA)
  • Direct Current Feeding And Distribution (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Abstract

아날로그 프론트엔드(AFE) 인터페이스는 결정된 동작 상태를 기반으로 동적으로 프로그램가능하다. AFE는 다수의 센서들과 인터페이스하기 위한 하드웨어를 포함한다. AFE는 다수의 센서들 중 하나의 센서로부터 입력 데이터를 선택할 수 있는 아날로그 프로세싱 하드웨어를 포함한다. 아날로그 프로세싱 하드웨어는 상기 센서로부터 특징정보를 컴퓨팅하는 프로세서에 결합되며, 상기 특징정보는 상기 센서에 대한 상기 AFE의 선택된 동작 조건 정보를 나타낸다. 상기 프로세서는 상기 컴퓨팅된 특징정보들에 기초하여 상기 센서에 대한 상기 AFE의 다수의 개별 동작 상태들 중 하나를 결정하며, 상기 결정된 동작 상태에 기초하여 상기 센서와 인터페이싱하도록 상기 AFE의 동작을 동적으로 조정한다. 상기 동적으로 조정하는 동작은 상기 AFE가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 AFE의 구성을 제어하는 동작을 포함한다.

Description

아날로그 프론트엔드를 위한 저전력 컨텍스트 인식 제어{LOW-POWER CONTEXT-AWARE CONTROL FOR ANALOG FRONTEND}
본 발명의 실시예들은 전반적으로 I/O 인터페이스에 관한 것으로, 보다 구체적으로, 동적으로 구성가능한 아날로그 프론트엔드 회로에 대한 컨텍스트 인식 제어에 관한 것이다.
저작권 고지/허가
이 특허 문헌의 개시물의 일부는 저작권 보호를 받는 내용을 포함할 수 있다. 본 저작권 소유자는 본 특허 문헌 또는 특허 개시물이 특허청의 특허 파일 또는 기록물들로 공개될 때에는 이러한 특허 문헌 또는 특허 개시물에 대한 누구의 복제도 반대하지 않지만, 그렇게 공개되지 않은 경우에는 이러한 것들에 대한 모든 저작권들을 보유한다. 저작권 고지는 아래에서 그리고 이에 첨부된 도면들에서 기술되는 바와 같은 모든 데이터 및 이하에서 기술되는 임의의 소프트웨어에 대해서 적용된다: Copyrightⓒ 2014, Intel Corporation, All Rights Reserved.
모바일 디바이스의 수와 이러한 디바이스가 제공하는 기능 범위가 크게 증가했다. 모바일 디바이스는 스마트폰, 증강 현실 헤드셋 또는 유사한 디바이스, 시계 또는 기타 웨어러블 디바이스와 같은 웨어러블 디바이스, 휴대용 컴퓨팅 디바이스, 독서 디바이스 및/또는 게임 디바이스와 같은 디바이스를 포함할 수 있다. 이러한 모바일 디바이스는 센서 또는 환경 감지 장비(일반적으로 본 명세서에서 센서라고 지칭됨)의 수가 증가함에 따라 향상된 사용자 인터페이스 및 향상된 특징을 제공한다. 수많은 센서는 디지털 프로세싱 구성요소들(마이크로컨트롤러, 디지털 신호 프로세서 또는 기타 프로세싱 디바이스)에 의해 처리되기 이전에 먼저 디지털 형식으로 변환되어야 하는 아날로그 출력(가변 전압 및/또는 가변 전류 출력)을 생성한다. 센서의 실례는 모션 센서, 가속도계, 온도 센서, 자이로스코프, 위치 센서, 광 검출기, 사운드/노이즈 검출기 또는 기타 센서를 포함할 수 있다.
센서들 중 수많은 것들이 사용자가 "상시 작동(always-on)"될 것으로 예상하는 모바일 디바이스 내에 통합된다. 따라서, 디바이스는 지연 없이 또는 최종 사용자가 지각할 수 없는 정도의 지연만으로, 움직임을 추적하거나 환경, 움직임 또는 다른 조건의 변화에 응답하도록 설계될 수 있다. 센서가 있는 디바이스들의 상시 작동은 통상적으로 아날로그 신호의 대응하는 상시 증폭 및 센서 입력의 아날로그 대 디지털 변환을 통해 이루어진다. 그러나, 이러한 상시 작동은 전력을 요구한다. 최근 디바이스 내에 더 많은 센서 및 더 많은 인터페이스를 통합시키려면 폼 팩터(form factor)를 감소시켜야 한다. 그러나, 폼 팩터가 감소함에 따라, 전자 구성요소들은 본질적으로 작은 이득을 가진 더 소형의 특징부들로 생성된다. 이러한 전자 구성요소들은 센서에 적절한 신호 증폭을 제공하기 위해 더 강하게 구동되어야 한다.
또한, 모든 센서가 AFE로부터 동일한 성능을 필요로 하는 것은 아니다. 센서에 따라서는, 적절한 입력 신호를 생성함에 있어 어떤 구성요소 블록은 활성화될 필요가 없을 수도 있다. 특정 센서는 다른 센서보다 높은 대역폭 및/또는 높은 이득 및/또는 높은 샘플링 레이트를 요구한다. 그러나, 종래의 통합 AFE는 최악의 경우의 입력에 대한 동작을 제공하도록 구성되거나/되고 범용 목적으로 구성되어, 최신의 웨어러블 또는 모바일 디바이스에서는 너무 많은 전력(예를 들어, 1mW 전력 실례산치보다 높음)을 소비한다. AFE에서 통합이 시도되는 정도로, 종래의 방식들은 상당한 전력 불이익 없이 매우 많은 수의 동시에 기록되는 센서들로 확장될 수 없다.
다음의 설명은 본 발명의 실시예들의 구현의 실례의 방식으로 주어지는 예시사항을 갖는 도면들의 설명을 포함한다. 도면들은 예시적으로 그리고 비한정적으로 이해되어야 한다. 본 명세서에서 사용된 바와 같이, 하나 이상의 "실시예들"에 대한 언급은 본 발명의 적어도 하나의 구현예에 포함된 특정 특징, 구조 및/또는 특성을 설명하는 것으로 이해되어야 한다. 따라서, 본 명세서에 나타나는 "일 실시예에서" 또는 "다른 실시예에서"와 같은 문구는 본 발명의 다양한 실시예 및 구현예를 기술하고, 반드시 모두가 동일한 실시예를 지칭하는 것은 아니다. 그러나, 이들은 반드시 상호 배타적인 것은 아니다.
도 1은 호스트 상의 동적으로 프로그램가능한 AFE를 갖는 시스템의 실시예의 블록도로서, AFE는 센서 입력에 대한 AFE의 결정된 동작 조건에 기초하여 조정된다.
도 2는 특징정보(feature) 컴퓨팅 및/또는 입력 특징정보들의 분류에 기초하여 조정되는 동적으로 프로그램가능한 AFE 회로를 갖는 시스템의 실시예의 블록도이다.
도 3은 멀티플렉싱된 동적으로 프로그래밍 가능한 아날로그 프론트엔드 회로를 갖는 시스템의 실시예의 블록도이다.
도 4는 AFE 제어 시스템의 동작의 실시예를 도시한다.
도 5는 그래픽적 관점 및 논리적 관점에 따른 특징정보 컴퓨팅의 실시예를 도시한다.
도 6a는 동적으로 프로그램가능한 AFE를 동작시키기 위한 프로세스의 일 실시예의 흐름도이다.
도 6b는 동적으로 프로그램가능한 AFE에 대한 동작 상태를 결정하기 위한 프로세스의 일 실시예의 흐름도이다.
도 6c는 동적으로 프로그램가능한 AFE에 대한 분류사항을 결정하기 위한 프로세스의 일 실시예의 흐름도이다.
도 7은 동적으로 프로그램가능한 AFE가 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다.
도 8은 동적으로 프로그램가능한 AFE가 구현될 수 있는 모바일 디바이스의 실시예의 블록도이다.
본 명세서에 제시된 진보적인 개념들의 다른 잠재적인 실시예 또는 구현예를 논의할뿐만 아니라, 이하에서 설명되는 실시예들의 일부 또는 전부를 나타낼 수 있는, 도면들의 설명을 포함하는, 특정 세부사항 및 구현예들이 이하에서 기술된다.
본 명세서에 기술된 바와 같이, 시스템은 결정된 동작 상태에 기초하여 동적으로 프로그래밍 가능한 아날로그 프론트엔드(AFE) 인터페이스의 동작 구성을 제어한다. AFE는 다수의 상이한 센서들을 인터페이싱하기 위한 하드웨어와 다수의 센서들 중 하나 이상의 센서로부터 입력 데이터를 선택할 수 있는 아날로그 프로세싱 하드웨어를 포함한다. 이러한 아날로그 프로세싱 하드웨어는 입력 센서 데이터(예를 들어, 로우(raw) 센서 데이터)로부터 특징정보(feature)를 컴퓨팅하는 사전프로세서에 연결되며, 상기 특징정보는 센서에 대한 AFE의 선택된 동작 조건 정보를 나타낸다. 사전프로세서는 AFE가 다수의 개별 동작 상태들 중 어느 동작 상태로 존재하는지를, 센서 입력 데이터를 기반으로 결정한다. 사전프로세서는 컴퓨팅된 특징정보 및 분류 엔진을 기반으로 이러한 결정을 할 수 있다. 사전프로세서는 AFE의 구성을 동적으로 조정하여 상기 결정된 동작 상태에 기초하여 AFE가 센서와 인터페이싱하는 방식을 조정할 수 있다.
일 실시예에서, AFE는 센서를 센서 허브 및/또는 마이크로컨트롤러, 애플리케이션 프로세서 또는 다른 프로세서에 인터페이싱시킨다. AFE는 처리되지 않은 데이터를 말하는, 로우 센서 데이터를 수신한다. AFE는 다음으로 한정되지 않지만, 증폭, 대역폭, 샘플링 레이트, 분해능, 사용된 증폭기의 수 및 유형 및/또는 다른 파라미터들을 AFE의 구성에 기초하여 제어하는 것을 포함하여, 상기 인터페이싱에 대한 다수의 구성 수치들(configuration dimension)을 제어할 수 있다. AFE 제어부는 상기 구성 수치들 중 임의의 하나 이상에 영향을 주기 위해 AFE의 설정사항을 제어할 수 있다. 각각은 온 또는 오프 상태가 되도록 제어되고/거나 다수의 상이한 설정사항들 중 하나로 설정될 수 있다.
일 실시예에서, 사전프로세서는 하나 이상의 필터를 포함하고/하거나, 구성 설정사항들을 통해 필터를 적용하여 주 프로세서 또는 애플리케이션 프로세서와 관련이 없는 신호들 또는 신호들 중 일부를 폐기하거나 무시한다. 따라서, 사전프로세서는 입력 신호의 특징정보 및 분류사항을 생성하며 이는 사전프로세서로 하여금 주 프로세서의 작업부하를 줄일 수 있게 한다. 일 실시예에서, 사전프로세서 내의 AFE 제어기 또는 제어 로직은 AFE 구성을 계속적으로 업데이트하여 샘플링 효율을 위해 중복되는 샘플들을 최소화하면서 센서 데이터의 품질을 향상시키거나 최적화할 수 있다. "최적화" 및 "최소화"와 같은 표현은 상대적인 용어이며 반드시 절대 최적 또는 최대 또는 최소가 달성된다는 것을 의미하는 것은 아님이 이해될 것이다. 이보다는, 최적화 및 최소화는 시스템의 구성 및 동작 및 주어진 시간 제약 내에서 가용한 프로세싱 능력의 양을 포함하는, 센서 입력의 최근 이력을 기반으로 현재 상태에 가장 적합한 수준을 달성하는 것을 말하다. 따라서, 최적 또는 최소는 시스템 아키텍처 내에 구축된 허용 오차 내에서 제한될 수 있다.
AFE 제어부는 AFE로 하여금 한 번에 다수의 연결된 센서 중 하나를 선택하도록하는 하나 이상의 제어 신호를 제공할 수 있다. 일 실시예에서, AFE 제어부에 의해 제공되는 제어는 각 구성요소의 구성을 설정하는, AFE의 구성요소들로의 디지털 시그널링이다. 각 센서에 대해, AFE 제어부는 특정 센서의 동작 조건에 따라 AFE를 구성할 수 있다. 각 센서에 대한 이러한 구성은 오프라인으로 학습될 수 있으며, AFE 제어부는 적절한 설정사항 또는 상이한 동작 조건을 적용하도록 구성된다. 이어서, AFE 제어부는 선택한 센서와 인터페이싱하는 동안 AFE의 동작 조건에 대한 정보를 나타내는 특징정보를 컴퓨팅할 수 있다. 컴퓨팅된 정보를 기반으로, AFE 제어부는 동작 상태를 결정하고 센서에 대한 특정 동작 상태에 맞게 AFE 인터페이스를 구성할 수 있다. 따라서, 사전프로세서 또는 AFE 제어부는 낮은 전력 소비를 위해 재구성가능한 AFE를 제어하고 조정하는 컨텍스트-인식성인 것으로서 간주될 수 있다. 일 실시예에서, AFE 제어부는 하나 이상의 센서, 예를 들어 주어진 동작 상태에서 중복 정보를 제공하는 센서로부터의 입력을 선택적으로 차단할 수 있다. AFE 제어부는 센서로부터의 데이터가 주 프로세서에 유용한 정보일 수 있음을 제시하는 다른 동작 조건을 감지할 때까지 센서로부터의 센서 데이터를 계속 무시할 수 있다. 센서 입력을 완전히 차단하는 대신, AFE 제어부는 간단히 센서를 샘플링하는 빈도를 줄일 수 있다. 다른 변형예들도 가능하다.
일 실시예에서, 센서는 사용자 상태 또는 환경 조건을 나타낸다. 사전프로세서는 센서의 실시간 분류 또는 센서에 의해 표시된 사용자 상태 또는 환경 조건을 기반으로 센서 신호를 선택적으로 샘플링하고 증폭할 수 있다. 일 실시예에서, AFE 제어부는 전력을 절약하기 위해 상기 결정된 사용자 상태 또는 동작 상태에 기초하여 AFE의 샘플링 레이트 및/또는 정확도(분해능)를 튜닝한다. 샘플링 레이트 또는 주파수, 증폭 계수 및 AFE로의 전원 공급을 제어함으로써, 디바이스가 필요로 하는 순 온-타임 및 전력은 감소된다. 일 실시예에서, AFE 제어부에 의해 컴퓨팅되거나 결정된 특징정보들은 실시간 입력 데이터로부터 추출된, 컴퓨팅 측면에서 고가의 통계적 특징정보들이다. 일 실시예에서, 이러한 특징정보는 신호 평균, 전력 및 표준 편차를 포함할 수 있지만, 이에 한정되는 것은 아니다. 일 실시예에서, AFE 제어부는 사전결정된 파라미터들에 기초하여 센서의 현 동작 상태를 분류한다. 예를 들어, AFE 제어부는 입력 데이터를 특정 동작 조건을 나타내는 것으로 해석하도록 학습되거나 이와 달리 사전프로그래밍될 수 있다.
일 실시예에서, 특징정보 또는 파라미터 결정 및/또는 정확한 분류를 위해 로우 센서 데이터로부터 추출할 중요한 통계적 특징정보를 선택하는 것은 머신 학습 기술을 사용하여 오프라인으로 수행된다. AFE 제어부는 실시간 특징정보 추출 및/또는 분류를 수행하기 위한 하나 이상의 컴퓨팅 엔진을 포함할 수 있다. 일 실시예에서, 컴퓨팅 엔진은 하드웨어 엔진일 수 있고, 이러한 결정을 제어하는 파라미터는 프로그래밍될 수 있으며 튜닝될 수 있다. 일 실시예에서, 이러한 파라미터는 언제든지 동적으로 변경될 수 있다. 이러한 파라미터는 온라인 및/또는 오프라인 머신 학습 기법일 수 있는 머신 학습 기법들에 의해 설정될 수 있다.
도 1은 호스트 상의 동적으로 프로그램가능한 AFE를 갖는 시스템의 실시예의 블록도로서, AFE는 센서 입력에 대한 AFE의 결정된 동작 조건에 기초하여 조정된다. 시스템(100)은 센서가 호스트(120)로 표현되는 컴퓨팅 코어에 의해 사용되는 입력을 생성하는 시스템의 일 실례일 수 있다. 호스트(120)는 센서 입력에 응답하여 특정 동작을 수행한다. 일 실시예에서, 호스트(120)는 센서 입력에 응답하여 인간 사용자와 인터페이싱할 수 있다. 일 실시예에서, 호스트(120)는 시스템 온 칩(SoC)이다. 일 실시예에서, 호스트(120)는 프로세서 또는 중앙 프로세싱 유닛이다. SoC는 프로세서 또는 프로세싱 유닛뿐만 아니라 다른 구성요소들을 포함한다는 것이 이해될 것이다. SoC는 다수의 요소가 함께 통합된 단일 칩일 수도 있거나, 다수의 칩이 함께 조립된 단일 패키지(보다 통상적으로 다중 칩 패키지(MCP)라고 지칭됨)일 수 있다.
호스트가 SoC이든 프로세서이든, 호스트(120)는 웨어러블 디바이스, 센서 피드백 유닛 또는 센서 입력을 취하는 다른 시스템 일 수 있는 컴퓨팅 디바이스의 컴퓨팅 코어이다. 일 실시예에서, 호스트(120)는 디바이스들이 네트워크화되고 상호 접속될 수 있는, 사물 인터넷(loT)을 가능하게 하는 패키지의 일부이다. 호스트(120)는 CPU(중앙 프로세싱 유닛) 또는 다른 주 프로세서 일 수 있는 프로세서(124)를 포함한다. 일 실시예에서, 프로세서(124)는 멀티코어 디바이스의 하나 또는 다수의 코어이다. 일 실시예에서, 프로세서(124)는 애플리케이션 특정 프로세서이다. 일 실시예에서, 프로세서(124)는 범용 프로세서이다. 프로세서(124)는 호스트(120)에 대한 호스트 운영 체제를 실행하고, 일반적으로 호스트(120)의 전체 동작을 제어하기 위한 하드웨어 제어 로직을 포함한다. 프로세서(124)는 또한 호스트(120)의 전체 동작을 제어하기 위한 소프트웨어 제어 로직을 실행할 수 있다. 프로세서(124)는 AFE(122)에 직접 연결되거나 센서 허브 또는 유사한 회로를 통해 AFE(122)에 연결될 수 있다. 프로세서(124)는 센서(110)로부터 수집된 데이터에 기초하여 동작을 실행하며, 따라서 센서 데이터를 사용하는 구성요소라고할 수 있다.
일 실시예에서, 호스트(120)는 호스트(120)에 속한 메모리 저장 자원을 나타내는 메모리(126)를 포함한다. 로컬 메모리 자원은 프로세서(124)에 의해 직접 어드레스가능한 메모리 자원을 지칭하며 캐시 메모리 및/또는 주 메모리 자원을 지칭할 수 있다. 일 실시예에서, 메모리(126)는 동일한 집적 회로 상에 직접 집적되거나, 또는 프로세서(124)와 동일한 패키지 내에 직접될 수 있다(예를 들어, 온-칩 캐시). 일 실시예에서, 메모리(126)는 프로세서(124)를 포함하는 물리적 패키지 외부에 있다. 일 실시예에서, 메모리(126)는 휘발성 메모리 자원을 포함한다. 일 실시예에서, 메모리(126)는 비휘발성 메모리 자원을 포함한다. 비휘발성 메모리는 메모리로의 전원이 차단되더라도 상태를 유지하는 메모리이다. 휘발성 메모리는 메모리로의 전원이 차단되면 불확실한 상태를 갖는 메모리이다. 메모리(126)는 일반적으로 프로세서(124)의 동작의 실행을 지원하기 위한 데이터 및 코드를 저장한다.
호스트(120)는 본 명세서에서 기술된 임의의 실시예에 따른 프론트엔드 회로인 AFE(122)를 포함한다. AFE(122)는 호스트(120)를 센서(110)에 인터페이싱시킨다. 일 실시예에서, AFE(122)는 (예를 들어, 프로세서(124)와는 별도의 기판 및/또는 PCB(인쇄 회로 기판)을 갖는) 개별 회로이다. 일 실시예에서, AFE(122)는 통합된 구성요소와 개별 구성요소의 조합으로 구현될 수 있다(예를 들어, 사전프로세서를 통합시키고 다른 요소들을 개별 구성요소로서 구현할 수 있다). 따라서, AFE(122)는 통합된 구성요소 설계로서 구현될 수 있고/있거나 표준 양산 구성요소들 또는 특수한 개별 구성요소들로부터 조립될 수 있다.
AFE(122)는 전압 모드 입력 및/또는 전류 모드 입력을 포함할 수 있다. 전압 모드 센서 입력은 센서 데이터를 나타내기 위해 가변 또는 아날로그 전압을 제공한다. 전류 모드 센서 입력은 센서 데이터를 나타내기 위해 가변 또는 아날로그 전류를 제공한다. 일 실시예에서, AFE(122)는 센서(110)로부터의 입력을 멀티플렉싱하여 프론트엔드를 구현하는 데 필요한 아날로그 회로의 양을 감소시킨다. AFE(122)는 동적으로 구성가능하며, 이는 프론트엔드 회로가 아날로그 입력의 샘플링 및 그의 동작을 조정하여 동작 효율을 높일 수 있다. AFE(122)는 아날로그 입력 요소들(구체적으로 도시되지 않음)로의 피드백을 생성하여 그들의 동작을 동적으로 조정하기 위한 사전프로세서(구체적으로 도시하지 않음)를 포함한다. 따라서, AFE(122)는 런타임 시 동작을 변경하여 센서(110)와의 인터페이스 효율을 향상시킬 수 있다.
센서(110)는 호스트(120)에 데이터를 제공한다. 이러한 데이터는 환경 데이터(움직임, 온도, 주변 광 또는 다른 데이터), 생체 데이터(심박수, 맥박, 피부 측정치, 지문, 광학 스캔 정보 또는 다른 생체 정보), 또는 조건 및/또는 사용자에 대해 검출된 다른 데이터 중 하나 이상을 포함할 수 있다. 센서(110)는 아날로그 출력을 생성하는 적어도 하나의 구성요소를 포함한다. 일 실시예에서, 센서들(110) 중 하나 이상은 센서 패키지 내의 아날로그 인터페이스 회로를 포함한다. 그러한 로컬 아날로그 인터페이스 회로에 의해 제공되는 프로세싱 레벨은 최소일 수 있거나 보다 상당할 수 있다(예를 들어, 디지털 출력을 제공함). 센서(110)의 실례는 가속도계, 모션 센서, 자이로스코프, 온도 센서, 위치 센서, 광 검출기, 사운드/노이즈 검출기, 또는 다른 센서를 포함할 수 있다.
모든 센서들(110)이 동일한 타이밍 사이클로 동작하는 것은 아니라는 것이 이해될 것이다. 각각의 센서(110)는 상이한 동작 주파수 및/또는 호스트(120)에 데이터를 제공하는 상이한 사이클(및 호스트(120)가 데이터를 판독해야 하는 상이한 사이클)을 가질 수 있다. 통상적으로, 호스트(120)의 구성요소들의 동작 주파수들은 센서의 주파수보다 훨씬 높은 주파수로 동작한다(예를 들어, 센서는 1 kHz 미만의 주파수로 동작할 수 있는 반면, 호스트(120)의 구성요소들은 프로세서의 경우에 MHz의 범위로 동작하고 일부 샘플링 구성요소의 경우에는 수십 내지 수백 kHz로 동작함).
시스템(100)은 아날로그 프론트엔드 회로를 AFE 회로(122)와 통합시킨다. 일 실시예에서, AFE(122)는 프로세서(124)에 제공할 센서(110)로부터의 센서 입력을 통합하는 독립형 구성요소 또는 센서 허브이다. 일 실시예에서, AFE(122)는 AFE(122)와 병행하여 동작할 수 있는 센서 허브(구체적으로 도시되지 않음)에 연결된다. 일 실시예에서, AFE(122)는 프로세서(124)의 일부이거나 SoC 또는 멀티칩 패키지의 회로 또는 구성요소이다. AFE(122)는 다수의 센서들(110)이 센서 패키지들 자체 내에서 최소한의 아날로그 프론트엔드로 또는 가능하게는 아날로그 프론트엔드 없이 동작할 수 있게 한다. 일 실시예에서, 센서(110) 상의 아날로그 프론트엔드는 AFE(122)와 인터페이싱하도록 바이패스될 수 있다. 센서(110) 상의 가강 기본적인 또는 최소한의 프론트엔드는 기생 성분(parasitics)이 출력을 압도하는 것을 막기 위해서 용량성 회로 및/또는 증폭기와 같은 일부 아날로그 인터페이싱 요소를 여전히 요구할 수 있다. 일 실시예에서, AFE(122)는 센서(110)로부터 처리되지 않은 아날로그 신호를 수신한다. 처리되지 않은 신호는 가장 기본적인 또는 최소한의 프론트엔드를 갖는 센서로부터의 아날로그 신호인 임의의 아날로그 출력을 지칭할 수 있다. 따라서, 처리되지 않은 신호는 기생 성분이 이러한 신호를 압도하지 못하도록 증폭 및/또는 용량성으로 필터링된 신호를 포함할 수 있다. 처리되지 않은 신호는 AFE(122)가 신호의 샘플링, 디지털화 및 프로세싱을 제어할 수 있는 경우에 제공되는 신호를 의미한다.
AFE(122)는 센서(110)로부터의 아날로그 신호를 디지털 신호로 변환하는 프로세싱 구성요소를 포함한다. 일 실시예에서, AFE(122)는 메인 프로세서(124)에 데이터를 보내기 전에 디지털 신호 데이터에 대한 연산을 수행하는 프로세싱 로직(예를 들어, 사전프로세서)을 포함한다. 프로세싱 로직은 센서(110)로부터의 입력에 기초하여 AFE 동작을 구성하는 AFE 제어 로직을 포함할 수 있다. 일 실시예에서, 이러한 프로세싱 로직 및 AFE 제어 로직은 프로세서(124)의 일부일 수 있고, 애플리케이션 특정 프로세서 애플리케이션 특정 스레드(thread) 또는 애플리케이션 특정 코어에 데이터를 제공하기 전에 신호에 대한 연산을 수행할 수 있다.
AFE 제어 로직은 센서 입력들 중에서 일 센서 입력을 선택하고 이 선택된 센서 입력으로부터 특징정보들을 추출하거나 컴퓨팅한다. 센서 입력 데이터로부터 컴퓨팅될 수 있는 소수의 특징정보 또는 수십 개 또는 100 개 이상의 상이한 특징정보들이 존재할 수 있다. 이러한 특징정보들은 데이터(예를 들어, 측정된 데이터)로부터 직접 검출가능하고/하거나 데이터(예컨대, 컴퓨팅된 데이터)로부터 간접적으로 결정가능한 임의의 타입의 특징정보를 포함할 수 있다. 일 실시예에서, AFE 제어 로직은 전체 특징정보들의 서브세트로부터 선택할 수 있는데, 이러한 서브세트는 추출될 수 있는 특징정보의 총 수보다 현저히 적을 수 있다. 선택된 수의 특징정보들에 기초하여, AFE 제어 로직은 AFE의 동작 상태를 결정하고 AFE의 구성을 설정한다.
일 실시예에서, AFE 제어 로직은 특징정보들 중 하나 이상을 저장한다. AFE 제어 로직은 저장된 특징정보를 기반으로 동작 상태를 결정할 수 있다. 일 실시예에서, AFE 제어 로직은 특징정보들을 분류하고, 이러한 분류사항은 동작 상태를 결정하는데 사용될 수 있다. AFE 제어 로직은 결정된 동작 상태에 기초하여 AFE 동작을 제어할 수 있다. AFE(122)의 동작을 제어하는 것은 샘플링을 위한 파라미터를 설정하는 것 또는 센서와 인터페이싱하는 다른 측면을 포함할 수 있다. 파라미터를 설정하는 것은 특정 선택된 센서에 대한 것일 수 있다(예를 들어, 상기 특정 센서가 샘플링되도록 선택되는 다음 번에 사용할 구성을 설정함). 이러한 파라미터를 설정하는 것은 부가적으로 또는 대안적으로, 상기 선택된 센서에 상보적인 데이터 또는 중복 데이터를 제공하는 센서와 같은 상이한 센서에 대한 것일 수 있다.
도 2는 특징정보 계산 및/또는 입력 특징정보들의 분류사항에 기초하여 조정된 동적으로 프로그램가능한 AFE 회로를 갖는 시스템의 실시예의 블록도이다. 시스템(200)은 센서가 컴퓨팅 코어에 의해 사용되는 입력을 생성하는 시스템의 일 실례일 수 있으며, 도 1의 시스템(100)에 따른 시스템의 실례일 수 있다. 시스템(200)은 애플리케이션 프로세서(280)에 의해 사용될 아날로그 데이터를 생성하는 다수의 센서들(210)을 포함할 수 있다. 일 실시예에서, 시스템(200)은 센서들(210) 중에서 일 센서를 선택하기 위한 하나 이상의 멀티플렉서(muxes)(220)를 포함한다. 일 실시예에서, 멀티플렉서(220)는 전압 모드 센서들에 대한 전압 모드 입력들을 포함한다. 일 실시예에서, 멀티플렉서(220)는 전류 모드 센서들에 대한 전류 모드 입력들을 포함한다. 센서의 수는 잠재적으로 수십 개의 센서를 포함하여, 임의의 수로 확장될 수 있다.
멀티플렉서(220)는 센서들(210) 중 하나를 선택한다. 멀티플렉서(220)는 선택된 센서로부터의 신호를 AFE(230)로 보낸다. AFE(230)는 증폭기, 필터(예를 들어, 저역 통과 안티알리아싱 필터) 및 ADC(analog-to-digital converter)와 같은 신호 증폭 및 디지털 변환을 위한 구성요소들을 포함한다. 일 실시예에서, AFE(230)는 통계적 특징정보를 추출하기 위해 데이터를 전송하기 이전에 노이즈를 줄이기 위해 신호를 오버샘플링한다(예를 들어, 디지털 저역 통과 필터 동작). 시스템(200)은 본 명세서에서 기술된 임의의 실시예에 따라 AFE를 제어하는 로직을 나타내는 AFE 제어부(240)를 포함한다. AFE 제어부(240)는 AFE(230)로부터 데이터를 수신하고, 이 데이터로부터 특징정보를 추출하고, AFE 제어부에 의해 결정된 동작 상태에 기초하여 AFE의 동적 프로그래밍 가능성을 제어하는 방식을 결정한다.
일 실시예에서, AFE 제어부(240)는 입력 센서 데이터로부터 특징정보들을 생성하거나 추출하기 위한 특징정보 엔진(250)을 포함한다. 일 실시예에서, AFE 제어부(240)는 입력 센서 데이터로부터의 특징정보들을 분류하기 위한 분류 엔진(260)을 포함한다. AFE 제어부(240)는 센서(210)로부터의 센서 입력을 스케줄링하기 위한 스케줄링/데이터 핸들링 엔진(270), 및 스케줄에 따라 센서들을 선택하고 AFE(230)의 설정사항을 제어하는 제어 신호를 생성하는 제어 멀티플렉서(mux)(220)를 포함한다. 일 실시예에서, 엔진(270)의 동작의 일부는 특징정보 엔진(250)의 일부로 간주될 수 있다. 일 실시예에서, 엔진(270)의 동작의 일부는 분류 엔진(260)의 일부로 간주될 수 있다. 각각의 엔진(250, 260, 270)은 하드웨어 프로세싱 자원에 의해 실행된다. 이러한 하드웨어는 각 엔진과 관련된 동작을 실행하기 위한 펌웨어 및/또는 다른 코드에 의해 동작하도록 구성될 수 있다. 이러한 하드웨어는 세 가지 엔진을 모두 실행하는 동일한 하드웨어이거나 엔진들 중 하나 이상에 대해 개별 하드웨어일 수 있다.
특징정보 엔진(250)은 입력 센서 데이터로부터 특징정보를 추출 또는 결정하기 위한 로직(예를 들어, 하드웨어 로직 또는 소프트웨어 로직으로 구성된 하드웨어 프로세서)을 나타내는, 특징정보 생성 블록(252)을 갖게 도시된다. 일 실시예에서, 특징정보 생성 블록은 프로그램가능한 윈도우 크기 및 윈도우 간의 오버랩에 기초하여 특징정보를 생성한다. 이러한 구현예가 도 5에 제공되어있다. 특징정보 생성 블록(252)은 계산을 수행하기 전에 상기 선택된 센서로부터 데이터를 수집할 수 있고, 이어서, 데이터 샘플의 하나 이상의 윈도우에 대해서 동작할 수 있다. 일 실시예에서, 특징정보 생성 블록(252)은 윈도우 크기를 채우기에 충분한 데이터를 저장하고 데이터의 윈도우로부터 특징정보를 생성한다. 위에서 언급한 것과 유사하게, 데이터로부터 임의의 수의 특징정보가 생성/추출될 수 있다. 통상적으로, 실시간 설정 시에 합리적으로 추출될 수 있는 것보다 많은 특징정보들이 존재할 것이다. 따라서, 특징정보 생성 블록(252)은 핵심 특징정보를 선택하고 특정 센서에 대해 가장 유용하다고 결정된 특징정보만을 생성할 수 있다. 각 센서에 대한 핵심 특징정보는 관리자 구성 및/또는 머신 학습에 의해 결정될 수 있다. 특징정보 생성 블록(252)은 이 특징정보를 엔진(270)에 저장할 수 있다. 특징정보 생성 블록(252)은 수집된 데이터 또는 샘플을 AFE 제어부(240) 내의 캐시에 저장할 수 있다.
일 실시예에서, 특징정보 생성 블록(252)은 필요한 분류 정확도 또는 동작 상태를 결정하는데 필요한 정확도에 따라 특징정보를 추출한다. 특징정보 생성 블록(252)은 또한 AFE(230)와 인터페이싱하는 센서(210)의 유형에 기초하여 특징정보를 생성할 수 있다. 일 실시예에서, 동작 상태를 결정하는 것은 간단한 활성상태(activity)/비활성상태 검출일 수 있다(또는, 유사하게 입력이 애플리케이션 프로세서와 관련이 있는지 없는지를 결정하는 이진 결정일 수 있다). 그러한 경우에, 특징정보 생성 블록(252)은 3 개의 특징정보들의 평균, 표준 편차 및 파워를 생성할 수 있다. 이러한 특징정보들에 기초하여, AFE 제어부(240)는 검출할 동작 상태를 정확하게 분류하거나 결정할 수 있다. 이러한 간단한 구현예는 보다 간단하고 보다 전력 효율이 높은 아키텍처를 제공한다. 일 실시예에서, 다른 구현예들은 FFT(Fast Fourier Transform) 또는 웨이브릿(Wavelet) 변환 및/또는 기타 변환과 같은 특징정보들을 사용하는 보다 복잡한 컨텍스트 프로세싱을 이용한다. 이러한 특징정보들을 생성하고 사용하면 더 많은 전력을 소모할 수 있다. 특징정보 생성 블록(252)은 동작 상태의 정확한 결정을 제공하기 위해 특정 구현예에서 필요한 어떠한 특징정보라도 생성할 수 있다.
특징정보 생성 블록(252)은 컴퓨팅 측면에서 저렴하고 재사용가능한 계산 로직 블록들로 특징정보를 생성할 수 있다. 따라서, 로직 요소들의 동일한 블록들이 상이한 특징정보들을 컴퓨팅하는데 사용될 수 있다. 일 실시예에서, 특징정보 생성 블록(252)은 데이터를 수집하기 위해 가변 윈도우 크기를 구현하고, 상이한 윈도우들로부터 특징정보들을 컴퓨팅한다. 일 실시예에서, 특징정보 생성 블록(252)은 재사용가능한 로직 블록으로 컴퓨팅을 수행한 후에 메모리 자원을 재사용함으로써 최소 메모리 요구수준으로 윈도우-대-윈도우 오버랩을 구현한다.
일 실시예에서, 분류 엔진(260)은 센서로부터 수신된 데이터를 분류하고, 이는 특징정보 엔진(250)에 의해 생성되고 저장된 특징정보들에 기반할 수 있다. 일 실시예에서, 특징정보 엔진(250)은 분류 엔진(260)이 사용할 것보다 많은 특징정보들을 생성한다. 일 실시예에서, 분류는 하나 이상의 특징정보들에 기초한다. 분류 엔진(260)은 센서 데이터의 특징정보들을 분류하는 것과 관련된 컴퓨팅을 수행하는 분류 블록(262)을 갖는 것으로 예시된다. 분류 엔진(260)의 동작들은 특징정보 엔진(250)의 동작들의 타이밍과 반드시 연관될 필요는 없다는 것이 이해될 것이다. 따라서, 예를 들어, 특징정보 엔진(250)은 다수의 상이한 센서들(210)로부터 동일한 특징정보를 생성할 수 있고, 이 특징정보를 엔진(270) 내에 저장할 수 있다. 분류 블록(262)은 하나의 센서 또는 다수의 상이한 센서들로부터 결정된 동일한 특징정보에 대해 분류를 수행할 수 있다. 분류 블록(262)은 또한 하나 또는 다수의 센서들로부터의 다수의 특징정보들에 기초하여 분류를 수행할 수 있다. 일 실시예에서, 분류 블록(262)은 상이한 센서들로부터의 상이한 특징정보들에 대한 분석을 수행할 수 있다. 따라서, 분류 블록(262)은 오직 하나의 센서로부터의 특징정보들 또는 다수의 센서들로부터의 특징정보들의 조합에 대한 분석을 수행한다.
일 실시예에서, 분류 블록은 동작 상태를 결정하기 위한 메커니즘일 수 있다. 일 실시예에서, 간단한 룩업 결정이 계산된 특징정보들에 기초하여 동작 상태를 식별할 수 있다. 일 실시예에서, 분류는 그러한 간단한 룩업 결정을 포함하는 것으로 간주될 수 있다. 일 실시예에서, 분류 블록(262)은 2진 결정 트리를 사용하여 분류를 수행한다. 도 4에 예시된 일 실례는 4 개의 상이한 상태를 가능하게 한다. 그러나, AFE 제어부(240)는 더 많은 수의 상태들이 가능하게 되게 확장될 수 있다는 것이 이해될 것이다.
일 실시예에서, 분류 블록(262)은 다수의 상이한 분류 트리를 포함한다. 다수의 상이한 분류 트리를 사용함으로써, 분류 블록(262)은 의사 결정의 정확성과 모듈성(modularity)을 향상시킬 수 있다. 상이한 분류 트리들이 사용되는 구현예에서, 상이한 분류 트리들은 분류를 위해 상이한 임의의 깊이(메모리 사용도에 의해 제약될 수 있음)를 가질 수 있다. 분류 엔진(260)은 오프라인으로 학습되어 어떤 파라미터 또는 특징정보를 사용할 것인지, 그리고 어떻게 트리를 구성할 수 있는지를 결정할 수 있다. 2진 결정 트리에서 각 리프(leaf)는 활동 상태 레이블(activity state label)을 보유할 수 있으며 상이한 입력 조건 세트에 대응할 수 있다. 일 실시예에서, 결정 트리는 특징정보 임계 값에 의해 네비게이팅될 수 있고, 이는 분류 블록(262)이 특징정보 임계 값과 비교되는 특징정보 값들에 기초하여 각 브랜치를 처리하게 한다. 이러한 임계 값은 일반화 오류를 최소화하기 위해 다양한 분할 기준 및 입력 조합을 테스트함으로써 오프라인으로 결정할 수 있다. 덜 정밀한 센서 데이터가 사용될 수 있을 때 AFE 제어부(240)가 AFE(230)의 샘플링 레이트 및/또는 다른 파라미터를 감소시킬 수 있기 때문에, 개선된 예측 정밀도는 더 큰 전력 절감을 낳는다는 것이 이해될 것이다. 일 실시예에서, 특징정보 생성 블록(252)은 시간-도메인 특징정보들을 생성하고 분류 블록(262)은 이러한 시간-도메인 특징정보들에 기초하여 분류를 수행한다. 시간-도메인 특징정보만 사용하면 보다 간단하고 메모리 효율적인 설계가 가능하게 된다. 일 실시예에서, 특징정보 생성 블록(252)은 주파수 도메인 기법과 관련된 특징정보를 생성하고 분류 블록(262)은 이러한 주파수 도메인 기법과 관련된 특징정보에 기초하여서 분류를 수행한다.
일 실시예에서, 분류 엔진(260)은 상이한 레벨의 복잡성을 가질 수 있는 다수의 상이한 분류 트리를 포함한다. 가능한 한 가장 단순한 트리를 사용하면, 가장 전력 효율적으로 동작할 수 있다는 것이 이해될 것이다. 그러나, 에지(edge) 사례는 복잡성이 낮은 분류 트리로 정확하게 분류되지 않을 수 있다. 일 실시예에서, 분류 블록(262)은 트리를 호핑할 수 있는데, 이는 하나의 분류 트리로부터 다른 분류 트리로의 호핑(hopping)을 말한다. 트리를 호핑하기 위한 트리거(trigger)는 특정 입력 특징정보들, 유휴 시간에 기초하여 설정되거나, 애플리케이션 프로세서(280)를 통해 수동으로 설정될 수 있다. 따라서, AFE 제어부(240)가 특정 특징정보 사례를 검출할 때, 이는 수많은 에지 사례를 예상할 수 있으며 분류 엔진(260)으로 보다 복잡한 분류 트리를 사용하게 한다. 부가적으로 또는 대안적으로, 애플리케이션 프로세서(280)는 더 복잡한 결정 트리로의 트리 호핑(tree hopping)을 이용하여 보다 정확하게 분류될 수 있는 특정 특징정보 사례가 예상되는 것을 시그널링할 수 있다. 따라서, 일 실시예에서, 분류 블록(262)은 디폴트 사례로서 가용한 가장 단순한 분류 트리를 나타내며, 검출된 입력에 기초하여 및/또는 애플리케이션 프로세서(280)로부터의 시그널링에 기초하여 보다 복잡한 결정 알고리즘으로 변경될 수 있다. 트리 호핑의 사용은 유휴 상태에서 소비된 시간의 양을 모니터링함으로써 시스템(200)을 더 유익하게 하며 시스템이 특정 상태에서 멈추는 것을 방지할 수 있다. 일 실시예에서, 분류 엔진(260)은 하나 이상의 타이머를 포함하고, 동일한 동작 상태가 임계 시간양 동안 계속적으로 분류되는지를 결정한다. 이러한 임계 시간에 도달하면, 분류 블록(262)은 에지 사례를 검출하지 못했기 때문에 단순히 멈추지 않고, 상이한 트리(예를 들어, 보다 복잡한 트리)로 호핑하여 현 동작 상태가 정확한다고 검증할 수 있다.
엔진(270)은 센서(210)의 샘플링 레이트 및/또는 AFE(230)의 특정 구성에 대한 다른 설정사항을 결정하기 위해 분류 결과를 사용할 수 있다. 엔진(270)은 AFE(230)의 구성을 설정하기 위한 제어 신호 또는 다른 신호를 생성할 수 있다. 제어부(240)는 AFE(230)의 구성 및 동작을 센서 입력에 기초하여 실시간으로 동적으로 제어할 수 있다. 이러한 실시간 동작은 입력 생성을 연속적으로 모니터링하고 입력들이 생성되는 때에 이러한 입력들에 대해 연속적으로 동적으로 응답하는 동작을 말한다는 것이 이해될 것이다. 실시간이란 이러한 입력에 대한 응답 시에 매우 작은 지연이 있거나 지연이 전혀 없음을 의미한다.
일 실시예에서, 엔진(270)은 애플리케이션 프로세서(280)에 의한 구성 동안 로딩된 하나 이상의 테이블을 사용한다. 이러한 테이블은 시작 시에 한번 로딩되거나, 애플리케이션 프로세서(280)에 의한 평가결과에 기초하여 동적으로 로딩될 수 있다. 엔진(270)은 하나 이상의 테이블에 기초하여 센서 샘플링을 스케줄링할 수 있다. 일 실시예에서, 이러한 테이블들은 각 분류에 대해 AFE(230)의 모든 구성요소에 대한 구성 정보를 보유하는 레지스터 파일로서 구현될 수 있다. 따라서, 일 실시예에서, 엔진(270)은 룩업 테이블(lookup table: LUT) 메커니즘에 기초하여 스케줄링할 수 있다. 엔진(270)은 센서마다 및 분류마다 AFE(230)를 구성할 수 있다. 일 실시예에서, AFE(230) 내의 ADC는 오직 스케줄 테이블에 기초하여 트리거될 수 있고, 스케줄링 충돌이 발생하면(예를 들어, 다수의 센서들(210) 각각에 대한 다수의 상이한 상태를 갖는 것은 AFE(230)의 샘플을 사전스케줄링하는 것을 방지함), AFE(230)는 AFE가 비지(busy)하지 않은 때에 입력들이 순서대로 실행되게 입력들을 큐잉할 수 있다. 이러한 스케줄링은 스케줄링된 샘플링 시간과 실제 샘플링 시간 간의 최소 지연으로 인터럽트가 없는 동작을 가능하게 한다.
엔진(270)은 AFE(230)의 다수의 상이한 파라미터들 중 임의의 것에 대한 제어를 포함할 수 있으며, 이는 AFE 제어부(240)가 다수의 방식들 중 임의의 방식으로 AFE(230)의 동작을 동적으로 조정할 수 있게 한다. 이러한 제어의 실례는 다음으로 한정되지 않지만, 샘플링 레이트를 제어하는 것, AFE(230) 내의 전체 회로 또는 논리 블록을 인에이블 및 디스에이블하는 것, ADC의 샘플링 분해능을 제어하는 것, 대역폭을 제어하는 것, 이득을 제어하는 것, 고전력 구성요소와 저전력 구성요소(예를 들어, 증폭기) 간의 전환, 고 정밀도 구성요소와 고정밀도 구성요소(예를 들어, 증폭기) 간의 전환, 저 주파수 노이즈 개선을 위해 초퍼(chopper)를 턴온 또는 턴오프하는 것, 또는 기타 제어사항 또는 이들의 조합을 포함한다.
일 실시예에서, 분류 엔진(260)은 특징정보 생성 블록(252)이 특징정보들을 엔진(270)에 저장할 때마다 분류 블록(262)의 동작을 트리거링한다. 따라서, 특징정보들이 갱신될 때마다, 분류 블록(262)은 분류결과를 갱신할 수 있다. 분류결과가 갱신되면 AFE(230)의 상태가 갱신될 수 있다. 일 실시예에서, 분류 블록(262)은 단일 센서에 대한 동작 상태보다는 시스템(200) 전체에 대한 동작 상태를 결정한다. 시스템(200)에 대한 동작 상태를 결정하기 위해, 분류 블록(262)은 다수의 센서들(210)로부터의 입력을 사용할 것이라는 것이 이해될 것이다.
예시로서 제공되고 어떠한 방식으로도 한정적이지는 않는 하나의 간단한 실례로서, 시스템(200)이 웨어러블 활동 감지 디바이스에 통합된다고 가정하자. 이러한 활동 감지 디바이스의 인간 사용자는 하루에 걸쳐서 교번적으로 보다 활동적이거나 덜 활동적일 수 있다. 이러한 구현예에서, 디바이스가 운동 활동을 추적하려고 한다고 가정할 때 심박수 단독으로 그 운동 활동을 나타낼 수 있다. 그러나, 가속도계 데이터와 함께 심장 박동 데이터 및/또는 다른 생체 센서 데이터는 해당 운동 활동을 나타내기 위해 결정될 수 있다. 심박수 센서 및 가속도계로부터 생성된 특징정보들에 응답하여, 시스템(200)은 운동 활동의 동작 상태를 결정할 수 있다. 운동 활동이 시작되었다는 결정에 응답하여, 엔진(270)은 결정된 동작 상태에 기초하여 심장 박동 센서(예를 들어, ECG)의 샘플링 레이트 및 ADC 정확도를 증가시킬 수 있다. 가능한 실례들이 너무 많아 여기에 나열하거나 제시할 수 없다는 것이 이해될 것이다.
일 실시예에서, 엔진(270)은 모든 센서들(210)의 현 활성 상태를 저장한다. 일 실시예에서, 엔진(270)은 현 활성 상태 정보 및/또는 센서 데이터를 애플리케이션 프로세서(280)에 선택적으로 전송한다. 애플리케이션 프로세서(280)는 시스템(200)이 통합된 컴퓨팅 디바이스용의 주 프로세서를 나타낸다. 프로세서가 특정 애플리케이션에 대한 컴퓨팅을 위한 구성 또는 프로그래밍 및 전용 시간 블록을 포함하는 때에 이 프로세서는 애플리케이션 프로세서로 지칭될 수 있다. 따라서, 애플리케이션 프로세서(280)는 센서 입력 데이터의 소비자로 고려될 수 있고, 데이터에 기초하여 동작을 수행한다.
일 실시예에서, 엔진(270)은 충돌이 예상되는 경우에 구현될 수 있는, 스케줄링을 위한 혼잡해소 알고리즘을 포함한다. 예를 들어, 센서(210)를 샘플링할 시점을 스케줄링할 때, 엔진(270)은 이상적인 실행 시간이 아닌 실행 시간에 샘플링할 다음 시간을 기록할 수 있다. 따라서, 엔진(270)은 자연스럽게 적절한 시간적 오프셋(들)을 배치함으로써 다음 회의 샘플링 시에 충돌을 피할 수 있다. 일 실시예에서, 엔진(270)은 특정 센서(210)를 턴온 및 턴오프하거나 단순히 이에 대한 샘플링을 스케줄링하고 스케줄링하지 않을 수 있다. 이러한 경우, 엔진(270)은 센서(210)에 대한 턴온 시간 및 안정화 시간(settling time)에 대한 구성 정보를 포함할 수 있다. 실제 센서가 디스에이블된 경우, 엔진(270)은 개별 센서에 제어 신호를 전송하여 시스템(200)에서의 전체 시스템 전력 사용도를 향상시킬 수 있다.
도 3은 멀티플렉싱된 동적으로 프로그래밍 가능한 아날로그 프론트엔드 회로를 갖는 시스템의 실시예의 블록도이다. 시스템(300)은 도 1의 시스템(100)에 따른 시스템 또는 도 2의 시스템(200)에 따른 시스템의 일례일 수 있다. 시스템(300)은 AFE의 실례일 수 있는 프론트엔드(320)를 포함한다. 시스템(200)에서, 멀티플렉서는 AFE 외부에 있는 것으로 도시되었지만, 프론트엔드(320)는 멀티플렉싱된 아날로그 입력을 포함한다. 프론트엔드(320)는 컴퓨팅 디바이스의 동작을 제어하기 위해 아날로그 입력으로부터의 데이터를 궁극적으로 사용하는 관련 프로세서(380)에 연결된다. 프로세서(380)는 컴퓨팅 디바이스를 위한 주 프로세서 또는 호스트 프로세서 일 수도 있거나, 주 프로세서와 병행하여 실행되는 주변 프로세서 일 수도 있다. 프론트엔드(320) 내의 프로세싱 요소들은 본 명세서에 기술된 임의의 실시예에 따르는 AFE의 프로세싱 구성요소들의 실례들일 수 있다.
일 실시예에서, 시스템(300)은 전압 모드 아날로그 출력을 생성하는 하나 이상의 센서(312)를 포함한다. 일 실시예에서, 시스템(300)은 전류 모드 아날로그 출력을 생성하는 하나 이상의 센서(314)를 포함한다. 전압 모드 입력은 단일-엔드형(single-ended) 또는 차동형일 수 있다. 프론트엔드(320)는 전압 모드 입력 회로(322)에서 전압 모드 센서(312)로부터 입력을 수신한다. 프론트엔드(320)는 전류 모드 입력 회로(324)에서 전류 모드 센서(314)로부터 입력을 수신한다. 입력 회로들(322 및 324)은 센서 신호를 수신하기 위한 핀들 또는 커넥터들 및 신호 라인들을 나타낸다. 일 실시예에서, 프론트엔드(320)는 면적 및 전력이 절약될 수 있도록 다수의 센서들이 동일한 아날로그 회로(예를 들어, 아날로그 증폭기 및 데이터 변환기)를 공유하는 멀티플렉싱된 AFE이다. 따라서, 입력 회로들(322 및 324)은 각각의 멀티플렉서(332)(전압 모드) 및 멀티플렉서(334)(전류 모드)에 아날로그 입력들을 제공한다.
일 실시예에서, 멀티플렉서(332)는 증폭기(342)에 의한 증폭을 위해 센서들(312)로부터의 특정 아날로그 입력을 선택할 수 있다. 일 실시예에서, 증폭기(342)는 입력 전압 신호의 크기를 증가시키는데 사용될 수 있는, 프로그램가능한 이득 증폭기이다. 일 실시예에서, 전류 모드 멀티플렉서(334)는 증폭기(344)에 의한 증폭을 위해 센서들(314)로부터 특정 아날로그 입력을 선택할 수 있다. 일 실시예에서, 증폭기(344)는 입력 전류의 크기에 기초하여 가변 전압 출력을 제공하는, 트랜스임피던스 증폭기(TIA)이다. 따라서, 증폭기들(342, 344) 모두는 출력 전압을 생성할 수 있다.
증폭기들(342, 344)은 그들의 전압 출력들을 하나 이상의 아날로그 대 디지털 변환기들(ADC)(356)로 제공한다. 일 실시예에서, 프론트엔드(320)는 증폭기들로부터의 출력 신호를 하나 이상의 ADC들로 라우팅하기 위한 멀티플렉서(352) 또는 다른 선택 로직을 포함한다. 일 실시예에서, 프론트엔드(320)는 ADC 이전에 필터 스테이지를 제공하기 위해 필터(354)를 포함한다. 필터(354)는 저역 통과 안티앨리어싱 필터 및/또는 다른보다 복잡한 필터 구성요소들을 포함할 수 있다. 일 실시예에서, 필터(354)는 사전프로세서(370)에 의한 분석결과에 응답하여 튜닝되거나 조정될 수 있는 조정 가능한 거동을 포함한다. ADC(356)가 샘플링할 입력의 유형에 기초하여 필터(354)가 조정될 수 있다. ADC(356)는 다수의 상이한 디바이스를 포함할 수 있는 아날로그 대 디지털 변환 스테이지를 나타낸다. 전압 모드 입력 회로들(322) 및/또는 전류 모드 입력 회로들(324)은 멀티플렉서들(332 및/또는 334)과 같이, 다수의 상이한 디바이스들로 하위분할될 수 있음이 또한 이해될 것이다. ADC(356)는 아날로그 신호를 디지털 표현으로 변환한다. ADC(356)에 의해 변환된 증폭된 신호는 통상적으로 센서에 의한 연속적인 출력인 것의 개별 샘플이다. 따라서, ADC(356)는 샘플의 디지털 표현을 생성하거나 디지털 샘플을 생성한다고 할 수 있다.
일 실시예에서, ADC(356)는 버스(360)를 통해서 사전프로세서(370)에 디지털 출력(들)을 전달한다. 일 실시예에서, 사전프로세서(370)는 다수의 디지털 신호 프로세싱(DSP) 블록들을 포함한다. 일 실시예에서, 사전프로세서(370)는 공통 센서 타입에 맞추어진 다수의 DSP 유닛이거나 이를 포함할 뿐만 아니라, 다른(예를 들어, 미래의) 센서 타입과 인터페이싱하도록 맞춤화될 수 있는 동적으로 프로그램가능한 DSP 유닛들을 포함한다. 버스(360)는 다수의 상이한 회로 구성요소와 인터페이싱하는 임의의 하나 이상의 신호 라인 그룹들을 나타낸다. 버스(360)는 통상적으로 기판 상에 라우팅되며, 프론트엔드(320)는 이 기판 상에 (또는 내에) 배치된 다양한 구성요소로 처리된다. 일 실시예에서, 사전프로세서(370)는 초기 분석을 수행하여 센서 데이터 샘플의 품질을 결정하고/하거나 주목할만한 이벤트가 발생했는지 또는 발생 중인지를 결정할 수 있다(예를 들어, 데이터가 프로세서(380)가 동작을 실행하는 것을 요구할 어떤 것을 표시하는지를 결정할 수 있다). 따라서, 사전프로세서는 관련 센서 데이터가 수신될 때까지 프로세서(380)(또는 센서 허브, 마이크로컨트롤러, 마이크로프로세서, DSP 또는 다른 프로세싱 구성요소)가 휴면하게 할 수 있다.
일 실시예에서, 사전프로세서(370)는 입력 데이터의 품질 및 유용성을 검증하는 하드-와이어드(hard-wired) 알고리즘 및/또는 프로그램가능한 유닛의 집합을 포함한다. 일 실시예에서, 사전프로세서(370)는 프로세서(380)의 일부이지만 별도의 전력 공급부를 갖는 혼합 프로세싱 블록이다. 프로세서(380)는 애플리케이션 특정 프로세서일 수 있다. 초기 프로세싱 또는 사전프로세싱에 기초하여, 사전프로세서(370)는 프론트엔드(320)의 아날로그 구성요소에 피드백을 제공한다. 따라서, 사전프로세서(370)는 아날로그 구성요소의 동적 런타임 제어를 제공하여 이러한 구성요소의 동작 효율을 향상시킬 수 있다. 시스템(300)에 도시된 바와 같이, 제어 신호들(362)은 버스(360)로부터 아날로그 구성요소들로 피드백된다. 일 실시예에서, 사전프로세서(370)는 멀티플렉서(332, 334, 352), 증폭기(342, 344) 및/또는 ADC(354) 중 하나 이상에 대한 제어 신호(362)를 생성할 수 있다. 이러한 제어 신호(362)는 상술한 바와 같은, 아날로그 구성요소들의 샘플링 레이트, 대역폭, 이득 또는 다른 동작 파라미터를 조정할 수 있다.
사전프로세서(370)는 필터(372) 및 AFE 제어부(374)를 포함하는 것으로 도시되어있다. 필터(372)는 입력의 디지털 샘플을 사전 처리하는 것을 가능하게 하는 사전프로세서(370) 내의 기능을 나타낸다. 필터(372)는 다음으로 한정되지 않지만, 디지털 필터링, 잡음 제거, 이산 푸리에 변환(DFT) 필터, 주파수 펄스 피크 또는 신호 강도 피크와 같은 입력 신호의 피크를 검출하는 것 또는 기타 기능과 같은 임의의 하나 이상의 프로세싱 기능들을 포함할 수 있다. AFE 제어부(374)는 아날로그 구성요소의 샘플링 동작을 제어하기 위한 피드백 또는 제어 신호를 생성하기 위한 사전프로세서(370) 내의 기능을 나타낸다.
AFE 제어부(374)는 프론트엔드(320)의 샘플링 동작 및 프론트엔드의 센서와의 인터페이싱 동작을 제어하기 위한 피드백 제어 신호를 생성할 수 있다. AFE 제어부(374)는 다음의 제어 신호들 중 임의의 하나 이상을 생성할 수 있다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)가 증폭기 이득 제어 신호를 생성할 수 있게 한다. 증폭기 이득 제어 신호는 증폭기의 풀 스윙이나 ADC의 진폭 범위를 활용하지 않는 스윙을 갖는 신호에 대해서 이득을 상향 조정할 수 있다. 반대로, 레일로 들어가는 신호의 경우, 이득 제어 신호는 이득을 하향 조정할 수 있다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)가 증폭기 대역폭 제어 신호를 생성할 수 있게 한다. 증폭기 대역폭 제어 신호는 증폭기(342 및/또는 344)의 대역폭과 이득 간의 절충 동작을 조정할 수 있다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)가 멀티플렉서(332, 334 및/또는 352)로부터 특정 입력들을 선택하는 제어 신호들을 생성할 수 있게 한다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)가, 예를 들어, 샘플링될 입력의 유형에 기초하여 동작을 조정함으로써와 같이, 필터(354)의 필터링을 조정하는 제어 신호를 생성할 수 있게 한다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)가 ADC(356)의 샘플링 레이트를 조정하고 및/또는 ADC(356)에 의해 생성된 출력 신호의 분해능 비트 수(예를 들어, ADC가 12 비트 분해능을 생성할 수 있을 때에 오직 8 비트의 분해능을 출력함)를 조정하기 위한 제어 신호를 생성하게 한다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)로 하여금 아날로그 구성요소가 휴면 상태 또는 저전력 상태가 되도록 하는 제어 신호를 생성할 수 있게 한다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)로 하여금, 아날로그 구성요소가 특정 조건(예를 들어, 특정 입력, 임계값보다 크거나 작은 입력, 입력 변화, 다른 조건)에서 기동되게 하는 것과 같이, 아날로그 구성요소를 저전력 상태로부터 기동시키는(waking up) 제어 신호를 생성하게 한다. 일 실시예에서, AFE 제어부(374)는 사전프로세서(370)로 하여금 프론트엔드(320)가 사용할 증폭 스테이지들의 수를 제어하는 제어 신호를 생성할 수 있게 한다. 예를 들어, 증폭기들(342 및/또는 344)은 다중스테이지 증폭기일 수 있으며, 이 경우에 제어 신호(들)(362)는 이러한 증폭기들 중 하나 또는 양자의 동작을 단일 스페이지 증폭기로부터 다중스페이지 증폭기로 전환시킬 수 있다. 기술된 실례들은 단지 예시적인 것이며, AFE 제어부(374)는 이러한 실례들 중 선택된 것들 및/또는 구체적으로 기술되지 않은 제어 신호들을 생성할 수 있음이 이해될 것이다.
일 실시예에서, AFE 제어부(374)는 메모리(376)를 포함한다. 일 실시예에서, AFE 제어부(374)는 로직(378)을 포함하며, 이 로직은 상기 AFE 제어부(374)로 하여금 센서로부터의 입력 데이터로부터 특징정보를 생성할 수 있게 한다. 로직(378)에 의해 생성된 특징정보들에 기초하여, AFE 제어부(374)는 본 명세서에서 기술된 임의의 실시예에 따라 프론트엔드(320)의 동작을 제어하는 제어 신호들(362)을 생성한다. AFE 제어부(374)는 프론트엔드(320)의 동작 상태를 결정하는 것에 응답하여 상기 생성된 특징정보를 분석함으로써 상기 제어 신호를 생성한다. 메모리(376)는 AFE 제어부에 속한 메모리 디바이스를 나타낸다. AFE 제어부(374)는 프론트엔드(320)의 동작 상태를 분석하고 결정하는데 사용하기 위해 상기 메모리(376) 내에 생성된 특징정보를 저장한다.
일 실시예에서, 프론트엔드(320)는 증폭을 필요로 하지 않고 직접 공급될 수 있는 신호와 인터페이싱한다. ADC(354)는 전류 모드 신호를 디지털 출력으로 변환할 수 없으며, 이로써, TIA(344)를 바이패스하는 것이 가능하지 않을 수도 있음이 이해될 것이다. 그러나, 일 실시예에서, 전압 모드 신호들에 있어서, 하나 이상의 제어 신호들(362)은 PGA(342)가 멀티플렉서(352)(또는, 시스템 구성에 따라서, ADC(354))로 직접 바이패스하도록 멀티플렉서(352)를 제어할 수 있다. 사전프로세서(370)는 입력 신호가 증폭기를 바이패스할지를 제어하는 제어 신호(362)를 생성할 수 있다.
일 실시예에서, 사전프로세서(370)는 프론트엔드(320)의 아날로그 구성요소로 하여금 클리어 신호를 제공하는데 필요한 최소 이득 및 최소 전력을 사용하게 하는 제어 신호(362)를 생성한다. 일 실시예에서, 사전프로세서(370)는 센서 상관관계에 기초하여 입력을 필터링하고 제어할 수 있다. 예를 들어, 정확하게 동일한 데이터를 생성하지는 않지만 특정 상황에서 그들의 데이터가 중복될 수 있는 두 개의 센서를 고려해보자. 일 실시예에서, 사전프로세서(370)는 센서들 간의 데이터 상관관계에 기초하여 입력을 필터링 및/또는 스킵할 수 있다. 이러한 로직은 사전프로세서(370)에 내장될 수 있고/있거나 사전프로세서(370)의 프로그램가능 구성요소 내로 프로그래밍될 수 있다.
프론트엔드(320)가 기술된 각각의 구성요소에 대해 단일 블록을 갖게 도시되어 있지만, 도시되고 기술된 하나 이상의 아날로그 프론트엔드 구성요소들 중 하나 이상의 것들은 여러 개로 존재할 수 있다는 것이 이해될 것이다. 따라서, 다수의 입력 회로들(322 및/또는 324)에 연결된 다수의 센서들(310)이 존재할 수 있다. 다수의 입력 회로들은 하나 이상의 멀티플렉서(332 및/또는 334)에 신호 입력을 제공할 수 있다. 하나 이상의 멀티플렉서(332 및/또는 334)는 하나 이상의 증폭기(342 및/또는 344)에 입력을 제공할 수 있다. 하나 이상의 증폭기(342 및/또는 344)는 신호를 하나 이상의 멀티플렉서(352)에 제공할 수 있으며, 이어서, 하나 이상의 멀티플렉서(352)에는 신호를 하나 이상의 필터(354)에 차례로 제공할 수 있다. 하나 이상의 필터(354)는 하나 이상의 ADC들(356)을 포함할 수 있으며, 이 ADC들은 사전프로세서(370)에 대한 입력들을 샘플링한다. 따라서, 프론트엔드(320) 내의 구성요소들 간의 일대일 관계가 반드시 필요한 것은 아니며, 하나의 구성요소가 다수 개로 존재하고 다른 구성요소는 하나만 존재할 수 있다.
도 4는 AFE 제어 시스템의 동작의 실시예의 도면이다. 이 도면(400)은 본 명세서에서 기술된 임의의 실시예에 따라, AFE 제어 로직의 논리 동작의 3 개의 다른 표현들을 포함한다. 예를 들어, 도면(400)의 예시들은 도 3의 AFE 제어부(370) 또는 도 2의 AFE 제어부(240)에 의해 구현된 것들을 예시할 수 있다. 간략화를 위해, 도면(400)은 오직 특징정보들 및 3개의 상이한 임계 값만을 가정한다. 그러나, 도면(400)의 표현들은 상당히 더 많은 특징정보들 및 임계 값들이 가능하도록 확장될 수 있다. AFE 제어부에서 사용하기 위한 결정 트리 구조를 사용하는 시스템의 일 테스트는 7개의 특징정보들을 사용했다. 이러한 구현예는 더 적은 개수의 특징정보 또는 더 많은 수의 특징정보들로 축소 또는 확장될 수 있다.
도면(400)은 분류를 위해 사용되는 트리의 일 실례일 수 있는, 결정 트리(410)를 도시한다. 따라서, 결정 트리(410)는 또한 분류 트리의 실례로서 지칭될 수 있다. 결정 트리(410)는 컴퓨팅된 분산이 임계 값 T1 미만인지를 결정하는 것을 나타낸다. 분산이 T1 미만인 경우(YES 브랜치), 결정 트리(410)를 트래버싱하는 AFE 제어 로직은 평균이 임계 값 T2 미만인지 여부를 결정한다. 평균이 T2 미만이면(YES 브랜치), 결정 트리(410)를 트래버싱하는 AFE 제어 로직은 동작 상태가 상태(S1)임을 결정한다. 평균이 T2보다 높으면(NO 브랜치), 결정 트리(410)를 트래버싱하는 AFE 제어 로직은 동작 상태가 상태(S2)임을 결정한다. 분산 결정으로 돌아가면, 분산이 T1보다 높으면(NO 브랜치), 결정 트리(410)를 트래버싱하는 AFE 제어 로직은 평균이 임계 값 T3 미만인지 여부를 결정한다. 평균이 T3보다 작은 경우(YES 브랜치), 결정 트리(410)를 트래버싱하는 AFE 제어 로직은 동작 상태가 상태(S3)임을 결정한다. 평균이 T3보다 높은 경우에(NO 브랜치), 결정 트리(410)를 트래버싱하는 AFE 제어 로직은 동작 상태가 상태(S4)임을 결정한다.
일 실시예에서, AFE 제어부는 결정 트리(410)를 레지스터 파일로서 구현한다. 레지스터 파일로서, AFE 제어 로직은 관련된 특징정보 및 결정을 내리는 데 사용되는 하나 이상의 임계 값을 저장할 수 있다. 제어 로직은 이전 결정에 기초하여 다음 노드를 저장하고 이동할 다음 노드의 주소를 저장할 수도 있다. 결정 트리(410)의 아키텍처는 YES 브랜치로서 "좌측 차일드(left child)"을, NO 브랜치로서 "우측 차일드"를 갖는다는 것을 관찰할 것이다. 좌측 차일드는 결정 노드의 좌측 아래로 향하는 것으로 도면(400)에서 그래픽적으로 표현된 차일드 노드를 지칭하고, 우측 차일드는 결정 노드의 우측 아래로 향하는 것으로 도면(400)에서 그래픽적으로 표현된 차일드 노드를 지칭한다. 따라서, 평균 < T2는 분산 < T1의 좌측 차일드이고, S1는 평균 < T2의 좌측 차일드이고, S3은 평균 < T3의 좌측 차일드이다. 다른 차일드 노드들은 우측 차일드 노드들이다. 일 실시예에서, 이러한 결정 트리(410)에 도시된 바와 같은 아키텍처는 실제 구현 시에 메모리를 절감할 수 있다. 예를 들어, AFE 제어 로직은, 특징정보가 임계 값보다 작으면, 목적지인 좌측 차일드 주소만을 저장한다. 특징정보가 임계 값보다 큰 경우, AFE 제어 로직은 좌측 차일드의 저장된 메모리 위치보다 1만큼 큰 위치를 액세스하도록 구성될 수 있다.
결정 트리(410)는 시스템이 어느 동작 상태들(S1, S2, S3 또는 S4)에 있는지를 결정할 수 있는 도면(400)과 관련된 시스템 내의 유일한 결정 트리일 필요는 없다는 것이 이해될 것이다. 위에서 설명한 것과 유사하게, 시스템은 트리 호핑(tree hopping)을 가능하게 하며, 이로써 결정 트리(410)로부터 다른 결정 트리(도시되지 않음)로 점프할 수 있으며, 이러한 다른 결정 트리는 추가 및/또는 상이한 특징정보를 포함할 수 있다. 다른 결정 트리는 추가적으로 또는 대안적으로 추가 및/또는 상이한 임계 값들을 포함할 수 있다. 이러한 추가적인 결정 트리는 상기 결정 트리(410)보다 더 복잡할 수 있으며, 에지 사례를 결정하는데 유용할 수 있다.
하드웨어 상태 테이블(420)은 결정 트리(410)를 포함할 수 있는, 결정 트리를 구현하기 위한 테이블의 일 표현일 수 있다. 일 실시예에서, 테이블(420)은 상태 정보가 미리로딩된 룩업 테이블(LUT)이다. 결정 트리(410)가 2개의 특징정보들(분산 및 평균)만을 포함하는 반면, 테이블(420)은 제 3의 비특정된 특징정보 및 추가 임계 값 T4에 대한 엔트리를 포함한다는 것을 알 수 있다. 일 실시예에서, 결정 트리(410)가 아닌 결정 트리는 특징정보 3 및 임계 값 T4에 대한 수치들을 포함한다. 일 실시예에서, AFE 제어부 내의 스케줄링 및 데이터 프로세싱 블록은 특징정보들을 저장하며, 이 특징정보들은 이어서 시스템에 대해 학습된 사전결정된 임계 값에 기초하여 분류될 수 있다. 이러한 분류는 예를 들어, 결정 트리(410)를 따라 이동함으로써, 동작 상태를 결정할 수 있다.
상기 임계 값들은 상기 결정 트리들이 특징정보 값들이 임계 값의 범위들의 상이한 수치들 내에 있는지에 기초하여 동작 상태들을 선택하게 한다. 그래프(430)는 동작 상태들의 2차원 도면을 도시한다. 동작 상태를 결정하는 데 사용되는 특징정보들은 두 가지뿐이므로 동작 상태는 2차원으로 존재한다. 그래프(430)는 추가 특징정보 및 추가 임계 값과 관련하여 상태들을 예시하는 경우에 그래프는 더 복잡해질 것이다(추가 차원을 포함함). 도면(400)은 센서 데이터로부터 컴퓨팅된 특징정보들로부터 동작 상태를 결정하는 것이 통계적 특징정보들을 생성하고 이러한 통계적 특징정보들에 기초하여 센서(또는 전체 시스템)의 상태를 분류함으로써 센서 데이터의 차원을 감소시킴으로써 달성될 수 있음을 예시한다.
테이블(420)에서 식별된 동작 상태들 또는 활성 상태들 중 하나를 결정하는 것에 기초하여, 도면(400)에 따라 수행하는 AFE 제어 로직은 AFE의 샘플링 레이트 및/또는 다른 특성을 조정하여 전력 소비를 최소화하면서 동작을 향상시킬 수 있다. 예를 들어, 처리할 중요한 정보가 없는 경우에(예를 들어, 사용자가 앉아 있거나, 잠자거나 이와 달리 비활동 상태일 경우의 활동 추적 디바이스에 대해), 높은 샘플링 레이트 및 높은 정확도로 샘플링할 필요가 없다. 그러나, 입력 센서 데이터로부터 추출된 특징정보가 애플리케이션 프로세서로 전송되어야 하는 관심 이벤트가 발생하고 있음을 나타내는 경우, AFE 제어부는 샘플링 레이트, 정확도 및/또는 다른 파라미터를 보다 높은 레벨로 증가시킬 수 있으며, 이 경우에, 이러한 보다 높은 레벨들은 애플리케이션에 의존할 것이다. 분류는 다수의 센서들로부터의 입력을 기반으로 할 수도 있으며, 이는 센서 정보를 융합을 통한 보다 높은 정확도로 이어질 수 있다. 대안적으로, 전력이 부족한 센서는 동일한 컨텍스트를 추출하기 위해 정보를 융합함으로써 덜 샘플링될 수 있거나, 컨텍스트에 대한 추론이 이루어질 것이며, 이는 그렇지 않은 경우에는 가능하지 않을 것이다.
동작 상태의 분류 또는 선택은 하나 이상의 센서에 대한 컨텍스트를 확장할 수 있다. 예를 들어, 시스템은 관성 센서에 대하여 보다 특정한 활동(예를 들어, 걷기, 달리기, 앉기)으로 컨텍스트를 확장하거나, 공기 품질 센서의 경우에는 실내 대 실외 공기, 또는 오염물에 노출 대 비노출로 컨텍스트를 확장할 수 있으며, 이러한 바는 매우 간단한 실례들 중 2 개를 예로 든 것이다. 이러한 경우의 컨텍스트는 시스템에서 감지할 수 있는 동작 상태의 수를 말할 수 있다. 특정 구현예에서, 두 가지 레벨의 컨텍스트(예를 들어, 관심/관심 없음)만으로 충분할 수 있다. 다른 구현들에서, 각 센서에 대해 보다 많은 레벨(예를 들어, 4 개 이상의 레벨들)의 컨텍스트가 제공될 수 있다.
도 5는 그래픽 관점 및 논리적 관점에 따른 특징정보 계산의 실시예의 도면이다. 시스템(500)은 본 명세서에서 기술된 임의의 실시예에 따라 AFE 제어부에 의해 수행될 수 있는 특징정보 계산 동작을 도시한다. 예를 들어, 도 2의 특징정보 엔진(250) 및/또는 도 3의 AFE 제어 로직(378)은 시스템(500)에 도시된 것들과 유사한 계산들을 구현할 수 있다.
특징정보를 컴퓨팅하거나 이와 달리 추출하는 것은 메모리 자원을 필요로 할 수 있음이 이해될 것이다. 특징정보들을 컴퓨팅하는데 사용되는 데이터 및/또는 컴퓨팅된 특징정보들 자체가 적어도 일시적으로 저장될 필요가 있을 수 있다. 그러나, 상당한 양의 메모리를 사용하면 특징정보 추출의 사이즈, 비용 및 전력 소비가 증가할 수 있다. 일반적으로, 메모리 사용량은 시스템 제약사항이다. 시스템(500)은 또한 사용된 메모리의 양을 관리하는 특징정보 결정을 예시한다. 따라서, 시스템(500)은 이력을 유지하되 적은 양의 이력을 유지하는 것으로 예시된다. 시스템(500)은 예시를 위해 특정 특징정보들(즉, 평균, 분산 및 전력)의 사용을 예시한다. 그러나, 예시된 동일한 기법들을 사용하여 입력 센서 데이터로부터 임의의 수의 상이한 특징정보들이 컴퓨팅될 수 있음이 이해될 것이다.
신호들(510)은 시뮬레이션 데이터로부터 생성된 바와 같은, 3개의 상이한 신호들로부터의 로우 데이터를 나타낸다. 신호들(510)은 시간 도메인에서의 센서 입력 신호들을 나타낸다. 시스템(500)의 예시에서, 어떤 신호 데이터가 어떤 상이한 신호를 나타내는지에 대한 세부사항은 검출될 수 없다. 그러나, 서로 다른 센서들로부터의 임의의 수의 서로 다른 신호들이 모두 다르게 보일 경우, 신호들의 특정사항들은 반드시 중요한 것은 아니다. 중요한 점은 다수의 센서 입력 신호 데이터 및 시간에 따라 변하는 데이터가 특징정보 결정을 위해 분석될 수 있다는 것이다.
일 실시예에서, AFE 제어부는 특징정보를 결정하기 위해 데이터의 윈도우 크기를 사용한다. Windows 1, 2 및 3은 동일한 크기를 가지며, 서로 다른 시점에서 데이터를 측정한다. 일 실시예에서, 도시된 바와 같이, 특징정보 결정은 중첩 윈도우를 채용할 수 있다. Window 2는 Window 1의 중간에서 시작하고 Window 3은 Window 2의 중간에서 시작된다(실제로, Window 1이 끝나자마자 Window 3이 시작됨)고 관찰될 것이다. 일 실시예에서, 윈도우들은 도시된 것보다 더 많이 중첩될 수 있다. 일 실시예에서, 윈도우들은 도시된 것보다 더 적게 중첩될 수 있다. 윈도우들이 더 많이 중첩되는 구현예에서, Windows 1, 2 및 3이 동시에 활성화되는 일부 시간 구간이 존재할 것이다. 윈도우들이 더 적게 중첩하는 구현예에서, 윈도우 1이 종료되고 윈도우 2가 시작되었지만 윈도우 3이 아직 활성화되지 않았거나 아직 시작되지 않은 일부 시간 구간이 존재할 것이다. 중첩하는 윈도우들은 에지 사례 데이터가 손실되는 것을 막을 수 있다.
각 윈도우에서, 특징정보 생성 엔진은 신호 전력의 합(Σx) 뿐만 아니라 신호 전력의 제곱의 합(Σx2)을 컴퓨팅한다. 일 실시예에서, 특징정보 생성 엔진은 전체 윈도우 크기에 걸쳐서 합계를 컴퓨팅한다. 일 실시예에서, 특징정보 생성 엔진은 윈도우의 서브셋에 걸쳐서 합계를 컴퓨팅한다. 메모리(520)는 주어진 윈도우에 대해 컴퓨팅된 합 및 제곱 합을 저장한다. 데이터의 윈도우를 저장한 후에, 로직(530)은 이 데이터로부터 특징정보들을 컴퓨팅하거나 추출한다.
평균은 샘플들의 합에 의존한다. 전력 및 표준 편차(분산)는 샘플들의 합과 제곱 합에 의존한다. 따라서, 평균, 전력 및 분산이 사용된 특징정보들인 일 실시예에서, 특징정보 생성 엔진은 메모리(520)에 유지된 누산 합 결과 및 제곱 합 결과로부터만 특징정보를 컴퓨팅할 수 있다. 일 실시예에서, 로직(530)은 각 윈도우에 대해 중첩되지 않는 영역과 중첩되는 영역에 대한 2 개의 결과들을 개별적으로 계산한다. 일 실시예에서, 로직(530)은 일단 윈도우 크기가 채워지면 이 윈도우에 대한 누산 합 및 제곱 합으로부터 특징정보를 계산한다. 일 실시예에서, 이전 윈도우에 대해 저장된 데이터가 오버라이트된다. 따라서, 일 실시예에서, 특징정보 생성 엔진은 센서마다 4 개의 버퍼(각각 비중첩 합, 비중첩 제곱 합, 중첩 합, 중첩 제곱 합에 대한 것임)를 사용하여 프로그램가능 윈도우 크기 및 중첩을 갖는 모든 필요한 특징정보를 추출할 수 있다(도시된 3 개의 특징정보들을 가정함).
일 실시예에서, 로직(530)은 3 개의 재사용 가능한 컴퓨팅 블록: 즉 가산 블록, 제곱 블록 및 제곱근 블록을 포함한다. 시스템(500)의 실례에서, 시스템은 이러한 블록들을 한번 인스턴스화하고 상이한 특징정보들을 생성하면서 블록들의 공유를 스케줄링할 수 있다. 이러한 구현예는 전력 및 면적을 절약할 수 있다. 이러한 구현예는, 일 실시예에서, 다음 데이터 샘플이 들어오기 전에(예를 들어, 소정 수의 클록 사이클 이후에) 특징정보 생성이 완료될 필요가 없다는 사실을 이용할 수 있다.
예시된 바와 같이, 일 실시예에서, 로직(530)은 다음과 같이 평균(예를 들어, 신호 평균), 분산(예를 들어, 신호 표준 편차) 및 전력(예를 들어, 실제 전력)을 컴퓨팅할 수 있다. 명확성을 위해, 서로 다른 선모양을 갖는 선들이 다양한 특징정보를 컴퓨팅하는 데 사용되는 로직의 흐름을 보여준다. 예를 들어, 로직(530)은 일점 쇄선의 논리적 흐름을 따라서 평균을 컴퓨팅하고, 쇄선의 논리 흐름을 따라서 분산을 컴퓨팅하고 실선의 논리 흐름을 따라서 전력을 컴퓨팅한다. 따라서, 로직(530)은 N 개의 샘플에 걸쳐서 합을 평균함으로써 평균을 컴퓨팅하고; 제곱 합에서 합을 빼고 이를 N 개의 샘플에 걸쳐서 평균화하고 이 평균화 결과의 제곱근을 취해서 분산을 컴퓨팅하고; N 개의 샘플에 걸쳐서 제곱 합을 평균화하여 평균화 결과의 제곱근을 취함으로써 전력을 컴퓨팅한다.
도 6a는 동적으로 프로그램가능한 AFE를 동작시키기 위한 프로세스의 일 실시예의 흐름도이다. 프로세스(600)는 입력 신호들의 특징정보들을 결정하고 이 특징정보들에 기초하여 동작 상태를 결정함으로써 동적으로 프로그램가능한 AFE를 동작시키는 것을 기술한다. 일 실시예에서, AFE 회로는 다수의 센서 디바이스들과 인터페이싱하는 프로세서, 프로세싱 유닛, 시스템 온 칩, 또는 다른 시스템의 일부이다. 구체적으로, AFE는 아날로그 출력을 생성하는 센서들과 인터페이싱한다.
일 실시예에서, AFE는 아날로그 입력을 체크하기로 결정한다(602). 일 실시예에서, AFE는 센서 입력 데이터를 요청하는 시스템-레벨 프로세서의 요청에 따라 아날로그 입력을 체크한다. 일 실시예에서, AFE는 연속적으로 아날로그 입력을 모니터링하고, 스케줄링 알고리즘에 따라 아날로그 입력을 샘플링하기 위해 다수의 센서 디바이스들 중에서 일 센서 디바이스를 연속적으로 선택한다. 일 실시예에서, AFE는 어느 센서가 언제 샘플링할 것인가를 추적하는 하나 이상의 타이머 또는 스케줄링 메커니즘에 따르는 스케줄 상에서 입력들 간에서 순환함으로써 준연속적으로 센서를 모니터링한다. 외부 프로세서로부터의 요청에 의한 것이든, 내부 루틴으로부터의 스케줄 또는 결정에 의한 것이든, AFE는 트리거를 기반으로 아날로그 입력을 수신하거나 아날로그 입력을 샘플링한다고 할 수 있다. 이러한 트리거는 아날로그 입력을 샘플링하기 위한 요청, 타이머 값 또는 프로세스 결정 일 수 있다.
AFE는 AFE 제어부에 의해 설정된 바와 같이, 아날로그 회로 구성요소에 대한 설정사항들을 제어한다(604). 일 실시예에서, AFE는 각각의 상이한 입력에 대해 상이한 제어 설정사항을 제공한다. 따라서, AFE는 샘플링될 각기 상이한 아날로그 입력에 대해 샘플링 동작을 동적으로 조정할 수 있다. AFE는 AFE 제어부에 의해 결정된 바와 같은 동작 상태에 따라 아날로그 회로 구성요소에 현 설정사항을 적용한다. 일 실시예에서, AFE는 멀티플렉싱된다. 따라서, 설정사항들의 일부로서 또는 다른 설정사항들과 함께, AFE는 아날로그 멀티플렉서를 설정하여 다수의 상이한 아날로그 입력 신호들 중 하나를 샘플링할 수 있다(606).
일 실시예에서, 사전프로세서 또는 다른 AFE 제어 로직은 입력 신호를 처리하고 입력 센서 데이터로부터 특징정보를 컴퓨팅한다. 컴퓨팅된 특징정보는 센서 입력 신호에 기초하여 AFE에 대한 동작 조건 정보를 나타낸다(608). 따라서, 각각의 상이한 센서는 AFE의 상이한 동작 조건에 대응할 수 있다. AFE 제어부의 특징정보 생성 엔진은 컴퓨팅된 특징정보들을 저장하고, 분류 엔진 또는 동작 상태 결정 엔진은 저장된 컴퓨팅된 특징정보들에 기초하여 AFE의 동작 상태를 결정한다(610). 일 실시예에서, 동작 상태는 각각의 센서에 고유하다. 일 실시예에서, 분류 엔진은 다수의 센서들로부터의 특징정보들에 기초하여 동작 상태를 결정한다.
일 실시예에서, AFE 제어부는 데이터를 주 프로세서 또는 애플리케이션 프로세서에 보내기 전에 데이터에 대한 예비 분석을 수행하는 사전프로세서이거나 사전프로세서의 일부이다. 따라서, 사전프로세서는 애플리케이션 프로세서에 선택적으로 데이터를 전송할 수 있다(612). 일 실시예에서, 사전프로세싱 스테이지는 입력 데이터가 중요한 데이터를 나타내는 지를 동작 상태에 기초하여 결정한다. 중요한 데이터가 무엇인지에 대한 결정은 센서들마다 그리고 구현예들마다 다양할 것이라는 것이 이해될 것이다. AFE 제어부는 결정된 동작 상태에 기초하여 자신의 인터페이스 동작을 조정하도록 AFE 구성의 하나 이상의 파라미터를 선택적으로 조정한다(614). 예를 들어, AFE 제어부는 AFE의 품질 또는 정밀도 또는 분해능과 관련된 하나 이상의 설정사항을 조정하기 위해 또는 샘플링 정밀도, 대역폭, 분해능, 전력 및/또는 일부 다른 조정치를 조정하기 위해 하나 이상의 제어 신호를 생성할 수 있다.
도 6b는 동작 상태에 기초하여 동적으로 프로그램가능한 AFE를 조정하기 위한 프로세스의 실시예의 흐름도이다. 프로세스(620)은 도 6a의 614에서 기술된 것과 같은, AFE 구성을 선택적으로 변경하는 것을 기술한다. AFE 제어 로직은 컴퓨팅된 특징정보들에 기초하여 동작 상태를 결정한다(622). 특징정보들의 컴퓨팅은 데이터의 저장을 수행하고 저장된 데이터에 대한 계산을 수행함으로써 수행된다. 일 실시예에서, AFE 제어부는 AFE의 어느 설정사항이 상기 결정된 동작 상태에 대응하는지를 결정한다(624). 일 실시예에서, AFE 제어부는 LUT 또는 다른 저장된 정보를 참조하여 그러한 결정을 할 수 있다.
설정사항이 무엇이 되어야 하는지에 기초하여, AFE 제어부는 임의의 설정사항이 변경될 필요가 있는지를 결정할 수 있다. 일 실시예에서, AFE 제어부는 상이한 동작 상태를 결정할 때마다 AFE 설정사항을 변경한다. AFE 제어부가 AFE 설정사항을 변경하기로 결정하면(626, YES 브랜치), AFE 제어부는 AFE가 입력 센서 데이터를 수신하는 방식을 변경하는 하나 이상의 제어 설정사항을 동적으로 조정한다(628). 이어서, AFE 제어부는 데이터를 애플리케이션 프로세서(630)에 선택적으로 전송할 수 있다(630). AFE 제어부가 AFE 설정사항을 변경하지 않기로 결정하면(626, NO 브랜치), AFE 제어부는 애플리케이션 프로세서(630)에 선택적으로 데이터를 전송할 수 있다(630). AFE 제어부는 동작 상태 결정에 기초하여 AFE 설정사항을 조정할지를 결정하는 것을 통해서 연속적으로 반복 순환될 수 있다. 일 실시예에서, AFE 설정사항을 변경하는 프로세스는 동작 상태가 변경될 때마다 트리거된다
도 6c는 동적으로 프로그램가능한 AFE에 대한 분류를 결정하기 위한 프로세스의 실시예의 흐름도이다. 프로세스(640)는 도 6a의 612에서 기술된 것과 같은, 동작 상태의 분류를 기술한다. 일 실시예에서, AFE 제어부는 컴퓨팅된 특징정보들에 대해 사용할 분류 트리를 식별한다(642). AFE 제어부의 분류 엔진은 특징정보 생성 엔진에 의해 저장된 특징정보들에 액세스할 수 있다. 그런 다음, AFE 제어부는 선택한 분류 트리를 트래버싱하여 동작 상태를 결정할 수 있다(644).
일 실시예에서, AFE 제어부는 (분류 엔진을 통해서) 상이한 분류 트리가 사용되어야 하는지를 특징정보 이력에 기초하여 결정할 수 있다(646). 일 실시예에서, 이러한 결정은 동일한 동작 상태가 일정 기간 동안 선택되면 트리를 호핑하도록 이루어진다. AFE 제어부가 상이한 분류 트리를 사용하기로 결정하면(648, YES 브랜치), AFE 제어부는 동작 상태 및/또는 컴퓨팅된 특징정보들에 기초하여 상이한 트리를 설정할 수 있다(650). 그 다음, AFE 제어부는 분류결과에 기초하여 동작 상태를 설정할 수 있다(652). AFE 제어부가 상이한 트리를 사용하지 않기로 결정하면(648, NO 브랜치), AFE 제어부는 분류결과에 기초하여 동작 상태를 설정하고(652) 새롭게 컴퓨팅된 특징정보에 대한 동작 상태를 결정함을 통해서 계속 반복 순환될 수 있다.
도 7은 동적으로 프로그램가능한 AFE가 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다. 시스템(700)은 본 명세서에서 기술된 임의의 실시예에 따른 컴퓨팅 디바이스를 나타내며, 랩탑 컴퓨터, 데스크탑 컴퓨터, 서버, 게임 또는 엔터테인먼트 제어 시스템, 스캐너, 복사기, 프린터, 라우팅 또는 스위칭 디바이스, 또는 다른 전자 디바이스일 수 있다. 시스템(700)은 시스템(700)의 인스트럭션들의 프로세싱, 동작 관리 및 실행을 제공하는 프로세서(720)를 포함한다. 프로세서(720)는 시스템(700)을 위한 프로세싱을 제공하기 위한 임의의 유형의 마이크로 프로세서, 중앙 프로세싱 유닛(CPU), 프로세싱 코어 또는 다른 프로세싱 하드웨어를 포함할 수 있다. 프로세서(720)는 시스템(700)의 전체 동작을 제어하며, 하나 이상의 프로그램가능 범용 또는 특수 목적용 마이크로프로세서, 디지털 신호 프로세서(DSP), 프로그램가능한 제어기, 애플리케이션 특정 집적 회로(ASIC), 프로그램가능한 로직 디바이스(PLD), 기타, 또는 이러한 디바이스들의 조합이거나 이들을 포함할 수 있다.
메모리 서브시스템(730)은 시스템(700)의 주 메모리를 나타내고, 프로세서(720)에 의해 실행될 코드 또는 루틴을 실행하는데 사용될 데이터 값에 대한 일시적인 저장을 제공한다. 메모리 서브시스템(730)은 ROM(read-only memory), 플래시 메모리, 하나 이상의 다양한 RAM(random access memory) 또는 다른 메모리 디바이스 또는 이러한 디바이스들의 조합과 같은 하나 이상의 메모리 디바이스들을 포함할 수 있다. 메모리 서브시스템(730)은 다른 무엇보다도, 시스템(700)에서 인스트럭션들의 실행을 위한 소프트웨어 플랫폼을 제공하기 위한 운영 체제(OS)(736)를 저장 및 호스팅한다. 또한, 시스템(700)의 로직 및 프로세싱을 제공하기 위해 다른 인스트럭션들(738)이 메모리 서브시스템(730)에 저장되어 실행된다. OS(736) 및 인스트럭션들(738)은 프로세서(720)에 의해 실행된다. 메모리 서브시스템(730)은 데이터, 인스트럭션들, 프로그램들 또는 다른 아이템들을 저장하는 메모리 디바이스(732)를 포함한다. 일 실시예에서, 메모리 서브시스템은 메모리 제어기(734)를 포함하며, 이는 명령을 생성하여 메모리 디바이스(732)로 발행하는 메모리 제어기이다. 메모리 제어기(734)는 프로세서(720)의 물리적 부분 일 수 있다는 것이 이해될 것이다.
프로세서(720) 및 메모리 서브시스템(730)은 버스/버스 시스템(710)에 결합된다. 버스(710)는 적절한 브리지, 어댑터 및/또는 컨트롤러에 의해서 접속되는, 임의의 하나 이상의 개별 물리적 버스, 통신 라인/인터페이스 및/또는 포인트-대-포인트 접속부를 나타내는 표시이다. 따라서, 버스(710)는 예를 들어, 시스템 버스, PCI(Peripheral Component Interconnect) 버스, HyperTransport 또는 ISA(Industry Standard Architecture) 버스, SCSI(Small Computer System Interface) 버스, 범용 직렬 버스(USB) 또는 IEEE(Institute of Electrical and Electronics Engineers) 표준 1394 버스(일반적으로 "Firewire"라고 함) 중 하나 이상을 포함할 수 있다. 버스(710)의 버스들은 또한 네트워크 인터페이스(750) 내의 인터페이스들에 대응할 수 있다.
시스템(700)은 버스(710)에 결합된 하나 이상의 입출력(I/O) 인터페이스(740), 네트워크 인터페이스(750), 하나 이상의 내부 대용량 스토리지(760) 및 주변 인터페이스를 또한 포함한다. I/O 인터페이스(740)는 사용자가 시스템(700)과 상호작용하게 하는 하나 이상의 인터페이스 구성요소(예를 들어, 비디오, 오디오 및/또는 알파벳 및 숫자 인터페이스 구성요소)를 포함할 수 있다. 일 실시예에서, I/O 인터페이스(740)는 사용자가 시스템(700)과 상호작용할 수 있게 하는 시각적 및/또는 촉감적 디스플레이 및/또는 시각적으로 인지 가능한 출력을 제공하는 구성요소를 포함한다. 일 실시예에서, 디스플레이는 사용자에게 출력을 제공하고 사용자로부터 입력을 수신할 수 있게 하는 터치스크린 디바이스를 포함한다. 일 실시예에서, 디스플레이는 사용자에게 출력을 제공하는 고화질(HD) 디스플레이를 포함한다. 고화질은 대략 100 PPI(인치당 픽셀 수) 이상의 픽셀 밀도를 갖는 디스플레이를 말할 수 있으며 풀 HD(예를 들어, 1080p), 레티나 디스플레이, 4K(초고화질 또는 UHD) 또는 기타의 포맷을 포함할 수 있다.
네트워크 인터페이스(750)는 하나 이상의 네트워크를 통해 원격 디바이스(예를 들어, 서버, 다른 컴퓨팅 디바이스)와 통신하는 능력을 시스템(700)에 제공한다. 네트워크 인터페이스(750)는 이더넷 어댑터, 무선 상호접속 구성요소, USB(universal serial bus), 또는 다른 유선 또는 무선 표준-기반 또는 독점적인 인터페이스를 포함할 수 있다. 스토리지(760)는 하나 이상의 자기, 고체상 또는 광학 기반 디스크 또는 이들의 조합과 같은, 비휘발성 방식으로 대량의 데이터를 저장하기 위한 임의의 통상적인 매체 일 수 있거나 이들을 포함할 수 있다. 스토리지(760)는 코드 또는 인스트럭션들 및 데이터(762)를 영구 상태로 유지한다(즉, 시스템(700)으로의 전력 중단에도 불구하고 그 값이 유지됨). 스토리지(760)는 비휘발성이지만, 메모리(730)는 휘발성 메모리(즉, 시스템(700)으로의 전력이 차단되면 데이터의 값 또는 상태가 불확실해짐)를 포함할 수 있다.
주변 인터페이스(770)는 위에서 구체적으로 언급되지 않은 임의의 하드웨어인터페이스를 포함할 수 있다. 주변 디바이스는 일반적으로 시스템(700)에 종속적으로 접속하는 디바이스를 지칭한다. 이러한 종속적인 접속은 시스템(700)이 동작이 실행되고 사용자가 상호작용하는 소프트웨어 및/또는 하드웨어 플랫폼을 제공하는 접속이다.
일 실시예에서, 프로세서(720)는 본 명세서에서 기술된 임의의 실시예에 따른 프론트엔드 회로인 AFE(722)를 포함한다. AFE(722)는 예컨대 I/O 인터페이스(740) 및/또는 주변 인터페이스(770)를 통해 접속될 수 있는 다수의 센서들(724)로 상기 프로세서(720)를 인터페이싱시킨다. 일 실시예에서, 센서(724)는 시스템(700)에서 방향성으로 도시되지 않은 인터페이스를 통해서 접속된다. AFE(722)는 동적으로 구성가능하며, 이는 프론트엔드 회로가 결정된 동작 상태에 따라 그의 동작을 조정할 수 있게 한다. AFE(722)는 입력 센서 데이터로부터 특징정보들을 생성하고, 생성된 특징정보들로부터 동작 상태를 결정하는 AFE 제어부(구체적으로 도시되지 않음)를 포함한다. 동작 상태에 기초하여, AFE 제어부는 인터페이스를 향상시키고 전력을 절약하기 위해 AFE의 동작을 조정한다.
도 8은 동적으로 프로그램가능한 AFE가 구현될 수 있는 모바일 디바이스의 실시예의 블록도이다. 디바이스(800)는 컴퓨팅 태블릿, 이동 전화 또는 스마트폰, 무선-구현 e-리더, 웨어러블 컴퓨팅 디바이스 또는 다른 모바일 디바이스와 같은 모바일 컴퓨팅 디바이스를 나타낸다. 구성요소들 중 특정 구성요소가 일반적으로 도시되어 있고, 이러한 디바이스의 모든 구성요소들이 디바이스(800)에 도시되어있는 것은 아님이 이해될 것이다.
디바이스(800)는 디바이스(800)의 주요 프로세싱 동작을 수행하는 프로세서(810)를 포함한다. 프로세서(810)는 마이크로프로세서, 애플리케이션 프로세서, 마이크로컨트롤러, 프로그램가능한 로직 디바이스 또는 다른 프로세싱 수단과 같은 하나 이상의 물리적 디바이스를 포함할 수 있다. 프로세서(810)에 의해 수행되는 프로세싱 동작은 애플리케이션 및/또는 디바이스 기능들이 실행되는 운영 플랫폼 또는 운영 시스템의 실행을 포함한다. 프로세싱 동작은 인간 사용자 또는 다른 디바이스와의 I/O(입력/출력)과 관련된 동작, 전력 관리와 관련된 동작 및/또는 디바이스(800)를 다른 디바이스에 연결하는 것과 관련된 동작을 포함한다. 프로세싱 동작은 또한 오디오 I/O 및/또는 디스플레이 I/O와 관련된 동작을 포함할 수 있다.
일 실시예에서, 디바이스(800)는 오디오 기능을 컴퓨팅 디바이스에 제공하는 것과 관련된 하드웨어 구성요소(예를 들어, 오디오 하드웨어 및 오디오 회로) 및 소프트웨어 구성요소(예를 들어, 드라이버, 코덱)를 나타내는 오디오 서브시스템(820)을 포함한다. 오디오 기능은 스피커 및/또는 헤드폰 출력과 마이크로폰 입력을 포함할 수 있다. 일 실시예에서, 사용자는 프로세서(810)에 의해 수신되고 처리되는 오디오 명령을 제공함으로써 디바이스(800)와 상호 작용할 수 있다.
디스플레이 서브시스템(830)은 사용자가 컴퓨팅 디바이스와 상호작용할 수 있도록 하는 시각적 및/또는 촉각적 디스플레이 및/또는 시각적으로 인지 가능한 출력을 제공하는 하드웨어 구성요소(예를 들어, 디스플레이 디바이스) 및 소프트웨어 구성요소(예를 들어, 드라이버)를 나타낸다. 디스플레이 서브시스템(830)은 사용자에게 디스플레이를 제공하는데 사용되는 특정 스크린 또는 하드웨어 디바이스를 포함하는 디스플레이 인터페이스(832)를 포함한다. 일 실시예에서, 디스플레이인터페이스(832)는 디스플레이와 관련된 적어도 일부 프로세싱을 수행하기 위해 프로세서(810)로부터 분리된 로직을 포함한다. 일 실시예에서, 디스플레이 서브시스템(830)은 사용자에게 출력을 제공하고 사용자로부터 입력을 수신하는 터치스크린 디바이스를 포함한다. 일 실시예에서, 디스플레이 서브시스템(830)은 사용자에게 출력을 제공하는 고화질(HD) 디스플레이를 포함한다. 고화질은 대략 100 PPI(인치당 픽셀 수) 이상의 픽셀 밀도를 갖는 디스플레이를 의미할 수 있으며 풀 HD(예를 들어, 1080p), 레티나 디스플레이, 4K(초고화질 또는 UHD) 또는 기타의 포맷을 포함할 수 있다.
I/O 제어기(840)는 사용자와의 상호 작용과 관련된 하드웨어 디바이스 및 소프트웨어 구성요소를 나타낸다. 또한, I/O 제어기(840)는 오디오 서브시스템(820) 및/또는 디스플레이 서브시스템(830)의 일부인 하드웨어를 관리하도록 동작할 수 있다. 또한, I/O 제어기(840)는 디바이스(800)에 연결된 추가 디바이스들을 위한 접속점을 예시하며, 이를 통해서 사용자는 시스템과 상호작용하게 할 수 있다. 예를 들어, 디바이스(800)에 부착될 수 있는 디바이스는 마이크로폰 디바이스, 스피커 또는 스테레오 시스템, 비디오 시스템 또는 기타 디스플레이 디바이스, 키보드 또는 키패드 디바이스 또는 카드 판독기 또는 기타 디바이스와 같은 특정 애플리케이션에서 사용하기 위한 기타 I/O 디바이스를 포함할 수 있다.
위에서 언급된 바와 같이, I/O 제어기(840)는 오디오 서브시스템(820) 및/또는 디스플레이 서브시스템(830)과 상호 작용할 수 있다. 예를 들어, 마이크로폰 또는 다른 오디오 디바이스를 통한 입력은 디바이스(800)의 하나 이상의 애플리케이션 또는 기능을 위한 입력 또는 명령을 제공할 수 있다. 또한, 오디오 출력이 디스플레이 출력 대신에 또는 디스플레이 출력에 추가하여서 제공될 수 있다. 다른 실례에서, 디스플레이 서브시스템이 터치스크린을 포함하는 경우, 디스플레이 디바이스는 또한 I/O 제어기(840)에 의해 적어도 부분적으로 관리될 수 있는, 입력 디바이스로서 동작한다. I/O 제어기(840)에 의해 관리되는 I/O 기능들을 제공하기 위한 추가 버튼 또는 스위치가 디바이스(800) 상에 또한 존재할 수 있다.
일 실시예에서, I/O 제어기(840)는 가속도계, 카메라, 광 센서 또는 다른 환경 센서, 자이로 스코프, GPS(global positioning system) 또는 디바이스(800)에 포함될 수 있는 다른 하드웨어와 같은 디바이스를 관리한다. 입력은 직접적인 사용자 상호작용의 일부일 뿐만 아니라 시스템 동작에 영향을 미치는 시스템으로의 환경적 입력(예를 들어, 노이즈 필터링, 밝기 감지를 위한 디스플레이 조정, 카메라를 위한 플래시 적용 또는 다른 특징)을 제공하는 것일 수 있다. 일 실시예에서, 디바이스(800)는 배터리 전력 사용도, 배터리의 충전 및 절전 동작과 관련된 특징들을 관리하는 전력 관리부(850)를 포함한다.
메모리 서브시스템(860)은 디바이스(800) 내에 정보를 저장하기 위한 메모리 디바이스(들)(862)를 포함한다. 메모리 서브시스템(860)은 비휘발성 메모리 디바이스(메모리 디바이스로의 전력이 차단되면 상태는 변경되지 않음) 및/또는 휘발성 메모리 디바이스(메모리 디바이스로의 전력이 차단되면 상태는 불확실해짐)를 포함할 수 있다. 메모리 서브시스템(860)은 시스템(800)의 애플리케이션 및 기능의 실행과 관련된 시스템 데이터(장기 또는 임시)뿐만 아니라 애플리케이션 데이터, 사용자 데이터, 음악, 사진, 문서 또는 다른 데이터를 저장할 수 있다. 일 실시예에서, 메모리 서브시스템(860)은 (또한 시스템(800)의 제어부의 일부로서 간주될 수 있고 잠재적으로 프로세서(810)의 일부로 간주될 수 있는) 메모리 제어기(864)를 포함한다. 메모리 제어기(864)는 명령을 생성하고 메모리 디바이스(862)에 명령을 발행하는 스케줄러를 포함한다.
접속부(870)는 디바이스(800)가 외부 디바이스와 통신할 수 있게 하는 하드웨어 디바이스(예를 들어, 무선 및/또는 유선 커넥터 및 통신 하드웨어) 및 소프트웨어 구성요소(예를 들어, 드라이버, 프로토콜 스택)를 포함한다. 외부 디바이스는 헤드셋, 프린터 또는 기타 디바이스와 같은 주변 디바이스는 물론 다른 컴퓨팅 디바이스, 무선 액세스 포인트 또는 기지국과 같은 별도의 디바이스일 수 있다.
접속부(870)는 다수의 상이한 유형의 접속부를 포함할 수 있다. 일반적으로, 디바이스(800)는 셀룰러 접속부(872) 및 무선 접속부(874)를 갖게 도시된다. 셀룰러 접속부(872)는 일반적으로 GSM(이동 통신용 글로벌 시스템) 또는 이의 변형 또는 파생, CDMA(코드 분할 다중 액세스), 또는 이의 변형 또는 파생, TDM(시간 분할 멀티플렉싱) 또는 이의 변형 또는 파생, LTE(Long Term Evolution - 또는 "4G"라고도 함) 또는 기타 셀룰러 서비스 표준에 의해서 제공되는 바와 같은, 무선 캐리어에 의해서 제공되는 셀룰러 네트워크 접속부를 말한다. 무선 접속부(874)는 셀룰러가 아니고 개인 영역 네트워크(예를 들어, 블루투스), 근거리 네트워크(예를 들어, WiFi) 및/또는 광역 네트워크(예를 들어, WiMax) 또는 기타 무선 통신을 포함할 수 있는 무선 접속부를 말한다. 무선 통신이란 비고체 매체를 통해 변조된 전자기 방사를 사용하여 데이터를 전달하는 것을 의미한다. 유선 통신은 고체 통신 매체를 통해 이루어진다.
주변장치 연결부(880)는 주변장치 연결을 형성하기 위한 소프트웨어 구성요소(예를 들어, 드라이버, 프로토콜 스택)뿐만 아니라 하드웨어 인터페이스 및 커넥터를 포함한다. 디바이스(800)는 다른 컴퓨팅 디바이스로의 주변 디바이스(882)(외부를 향함)일뿐만 아니라 자신에 연결된 주변 디바이스(884)(자신을 향함)를 가질 수 있다는 것이 이해될 것이다. 디바이스(800)는 일반적으로 디바이스(800) 상의 콘텐츠를 관리(예를 들어, 다운로드 및/또는 업로드, 변경, 동기화)하는 것과 같은 목적으로 다른 컴퓨팅 디바이스에 접속하기 위한 "도킹(docking)" 커넥터를 갖는다. 추가적으로, 도킹 커넥터는 디바이스(800)가 특정 주변 디바이스에 연결되게 하고, 이 특정 주변 디바이스는 디바이스(800)가 예를 들어, 시청각 시스템 또는 다른 시스템으로의 콘텐츠 출력을 제어할 수 있게 한다.
독점적 도킹 커넥터 또는 다른 독점적 연결 하드웨어 이외에, 디바이스(800)는 공통 또는 표준 기반 커넥터를 통해 주변장치 연결부(880)를 형성할 수 있다. 공통 유형의 커넥터는 (다수의 상이한 하드웨어 인터페이스 중 임의의 것을 포함할 수 있는) 범용 직렬 버스(USB) 커넥터, MiniDisplayPort(MDP)를 포함한 DisplayPort, HDMI(High Definition Multimedia Interface), Firewire 또는 기타 유형을 포함할 수 있다.
일 실시예에서, 프로세서(810)는 본 명세서에서 기술된 임의의 실시예에 따른 프론트엔드 회로인 AFE(812)를 포함한다. AFE(812)는 프로세서(810)를 다수의 센서들(구체적으로 도시되지는 않았지만 I/O 제어기(840)를 통해 접속될 수 있음)에 인터페이싱시킨다. AFE(812)는 동적으로 구성가능하며, 이는 프론트엔드 회로가 결정된 동작 상태에 따라 그의 동작을 조정할 수 있게 한다. AFE(812)는 입력 센서 데이터로부터 특징정보들을 생성하고 생성된 특징정보들로부터 동작 상태를 결정하는 AFE 제어부(구체적으로 도시되지 않음)를 포함한다. 동작 상태에 기초하여, AFE 제어부는 인터페이스를 향상시키고 전력을 절약하기 위해 AFE의 동작을 조정한다.
일 측면에서, 아날로그 프론트엔드(AFE)를 동작시키는 방법은 상기 AFE에 연결된 다수의 센서들 중 하나의 센서를 선택하는 단계; 상기 센서로부터 입력 센서 데이터를 수신하는 단계; 상기 센서에 대한 특징정보(feature)를 상기 입력 센서 데이터에 기초하여 컴퓨팅하는 단계로서, 상기 특징정보는 상기 센서에 대한 상기 AFE의 선택된 동작 조건 정보를 나타내는, 상기 컴퓨팅하는 단계; 상기 컴퓨팅된 특징정보들에 기초하여 상기 센서에 대한 상기 AFE의 다수의 개별 동작 상태들 중 하나를 결정하는 단계; 및 상기 결정된 동작 상태에 기초하여 상기 센서와 인터페이싱하도록 상기 AFE의 동작을 동적으로 조정하는 단계를 포함하며, 상기 동적으로 조정하는 단계는 상기 AFE가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 AFE의 구성을 제어하는 단계를 포함한다.
일 실시예에서, 상기 특징정보들을 컴퓨팅하는 단계는, 적어도 신호 평균, 신호 표준 편차 및 실제 전력을 컴퓨팅하는 단계를 더 포함한다. 일 실시예에서, 상기 특징정보를 컴퓨팅하는 단계는, 시간 윈도우에 걸쳐서 데이터를 누산함으로써 특징정보을 컴퓨팅하는 단계를 더 포함한다. 일 실시예에서, 상기 시간 윈도우에 걸쳐서 상기 데이터를 누산하는 단계는, 중첩된 시간 윈도우 및 연속하는 비중첩된 시간 윈도우 모두에 걸쳐서 데이터를 누산하는 단계를 포함한다. 일 실시예에서, 상기 다수의 개별 동작 상태들 중 하나를 결정하는 단계는, 저장된 컴퓨팅된 특징정보들에 기초하여 결정 트리를 트래버싱함으로써 동작 조건 정보를 상기 다수의 개별 동작 상태들로 분류하는 단계를 포함한다. 일 실시예에서, 상기 동작 조건 정보를 분류하는 단계는, 컴퓨팅된 동작 조건 정보에 기초하여 다수의 결정 트리 중 하나로 스위칭하는 단계를 포함한다. 일 실시예에서, 상기 센서는 다수의 센서들 중 하나이고, 상기 입력 센서 데이터를 수신하는 단계는 상기 다수의 센서들로부터 입력 센서 데이터를 수신하는 단계를 포함하고, 상기 다수의 개별 동작 상태 중 하나를 결정하는 단계는 상기 다수의 센서들로부터의 상기 입력 센서 데이터에 기초하여 결정하는 단계를 포함한다. 일 실시예에서, 상기 AFE의 구성을 제어하는 단계는, 상기 센서에 대한 상기 AFE의 샘플링 분해능의 설정을 동적으로 변경하는 단계를 포함한다. 일 실시예에서, 상기 AFE의 구성을 제어하는 단계는, 상기 센서에 대한 상기 AFE의 대역폭의 설정을 동적으로 변경하는 단계를 포함한다. 일 실시예에서, 상기 AFE의 구성을 제어하는 단계는, 상기 센서와 인터페이싱할 때 상기 AFE의 하드웨어 구성요소를 선택적으로 활성화 및 비활성화하는 단계를 포함한다. 일 실시예에서, 상기 AFE의 구성을 제어하는 단계는, 상기 센서와 인터페이싱할 때 상기 AFE의 고정밀도 구성요소와 대응하는 저정밀도 구성요소 간에서 동적으로 스위칭하는 단계를 포함한다. 일 실시예에서, 내지 제 11 항 중 어느 한 항에 있어서, 상기 AFE의 구성을 제어하는 단계는, 상기 센서와 인터페이싱할 때 상기 AFE의 고전력 구성요소와 대응하는 저전력 구성요소 간에서 동적으로 스위칭하는 단계를 포함한다.
일 측면에서, 프론트엔드 회로는 다수의 센서들로부터 다수의 미처리된(unprocessed) 입력 센서 데이터를 수신하는 다수의 하드웨어 입력 인터페이스; 상기 다수의 센서들 중 하나를 선택하고 상기 선택된 센서에 대한 입력 센서 데이터를 처리하는 아날로그 프로세싱 하드웨어; 및 프로세서를 포함하고, 상기 프로세서는, 상기 입력 센서 데이터에 기초하여 상기 센서에 대한 특징정보들―상기 특징정보들은 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 선택된 동작 조건 정보를 나타냄―을 컴퓨팅하며; 상기 컴퓨팅된 특징정보들에 기초하여, 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 다수의 개별 동작 상태들 중 하나를 결정하고; 상기 결정된 동작 상태에 기초하여, 상기 센서와 인터페이싱하도록 상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하며, 상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하는 것은, 상기 아날로그 프로세싱 하드웨어가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 것을 포함한다.
일 실시예에서, 상기 특징정보들을 컴퓨팅하는 프로세서는, 시간 윈도우에 걸쳐서 데이터를 누산하는 동작 및 적어도 신호 평균, 신호 표준 편차 및 실제 전력을 컴퓨팅하는 동작 중 하나 이상을 수행하는 프로세서를 더 포함한다. 일 실시예에서, 상기 특징정보들을 컴퓨팅하는 프로세서는, 시간 윈도우에 걸쳐 데이터를 누산하기 위한 프로세서를 더 포함한다. 일 실시예에서, 상기 프로세서는 중첩하는 시간 윈도우 및 연속적인 비중첩하는 시간 윈도우 모두에 걸쳐서 데이터를 누산한다. 일 실시예에서, 상기 프로세서는 저장된 컴퓨팅된 특징정보에 기초하여 결정 트리를 트래버싱함으로써 동작 조건 정보를 상기 다수의 개별 동작 상태로 분류하는 프로세서를 더 포함한다. 일 실시예에서, 상기 동작 조건 정보를 분류하는 프로세서는 컴퓨팅된 동작 조건 정보에 기초하여 다수의 결정 트리 중 하나로 스위칭하는 상기 프로세서를 포함한다. 일 실시예에서, 상기 센서는 다수의 센서들 중 하나이고, 상기 다수의 하드웨어 입력 인터페이스는 상기 다수의 센서들로부터 상기 입력 센서 데이터를 수신하며, 상기 프로세서는 상기 다수의 센서들로부터의 입력 센서 데이터에 기초하여 다수의 개별 동작 상태 중 하나를 결정한다. 일 실시예에서, 상기 프로세서는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하며, 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 동작은, 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 샘플링 분해능의 설정을 동적으로 변경하는 동작을 포함한다. 일 실시예에서, 상기 프로세서는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하며, 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 동작은, 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 대역폭의 설정을 동적으로 변경하는 동작을 포함한다. 일 실시예에서, 상기 프로세서는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하며, 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 동작은, 상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 하드웨어 구성요소를 선택적으로 활성화 및 비활성화하는 동작을 포함한다. 일 실시예에서, 상기 프로세서는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하며, 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 동작은, 상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 고정밀도 구성요소와 대응하는 저정밀도 구성요소 간에서 동적으로 스위칭하는 동작을 포함한다. 일 실시예에서, 상기 프로세서는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하며, 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 동작은, 상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 고전력 구성요소와 대응하는 저전력 구성요소 간에서 동적으로 스위칭하는 동작을 포함한다.
다른 양태에서, 시스템은 프론트엔드 회로; 및 상기 프론트엔드 회로에서 수신된 데이터에 기초하여 표시사항을 생성하도록 구성된 터치스크린 디스플레이를 포함하며, 상기 프론트엔드 회로는, 다수의 센서들로부터 다수의 미처리된(unprocessed) 입력 센서 데이터를 수신하는 다수의 하드웨어 입력 인터페이스; 상기 다수의 센서들 중 하나를 선택하고 상기 선택된 센서에 대한 입력 센서 데이터를 처리하는 아날로그 프로세싱 하드웨어; 및 프로세서를 포함하고, 상기 프로세서는, 상기 입력 센서 데이터에 기초하여 상기 센서에 대한 특징정보들―상기 특징정보들은 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 선택된 동작 조건 정보를 나타냄―을 컴퓨팅하며; 상기 컴퓨팅된 특징정보들에 기초하여, 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 다수의 개별 동작 상태들 중 하나를 결정하고; 상기 결정된 동작 상태에 기초하여, 상기 센서와 인터페이싱하도록 상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하며, 상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하는 것은, 상기 아날로그 프로세싱 하드웨어가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 것을 포함한다.
일 측면에서, 제품은 그 상에 저장된 콘텐츠를 갖는 컴퓨터 판독가능한 저장 매체를 포함하며, 상기 콘텐츠는 액세스될 때에 컴퓨팅 디바이스로 하여금 아날로그 프론트엔드(AFE)에 대한 동작들을 수행하게 하며, 상기 동작들은 상기 AFE에 연결된 다수의 센서들 중 하나를 선택하는 동작; 상기 센서로부터 입력 센서 데이터를 수신하는 동작; 상기 센서에 대한 특징정보(feature)를 상기 입력 센서 데이터에 기초하여 컴퓨팅하는 동작으로서, 상기 특징정보는 상기 센서에 대한 상기 AFE의 선택된 동작 조건 정보를 나타내는, 상기 컴퓨팅하는 동작; 상기 컴퓨팅된 특징정보들에 기초하여 상기 센서에 대한 상기 AFE의 다수의 개별 동작 상태들 중 하나를 결정하는 동작; 및 상기 결정된 동작 상태에 기초하여 상기 센서와 인터페이싱하도록 상기 AFE의 동작을 동적으로 조정하는 동작을 포함하며, 상기 동적으로 조정하는 동작은 상기 AFE가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 AFE의 구성을 제어하는 동작을 포함한다.
일 측면에서, 아날로그 프론트엔드(AFE)를 동작시키는 장치는 상기 AFE에 연결된 다수의 센서들 중 하나를 선택하는 수단; 상기 센서로부터 입력 센서 데이터를 수신하는 수단; 상기 센서에 대한 특징정보(feature)를 상기 입력 센서 데이터에 기초하여 컴퓨팅하는 수단으로서, 상기 특징정보는 상기 센서에 대한 상기 AFE의 선택된 동작 조건 정보를 나타내는, 상기 컴퓨팅하는 수단; 상기 컴퓨팅된 특징정보들에 기초하여 상기 센서에 대한 상기 AFE의 다수의 개별 동작 상태들 중 하나를 결정하는 수단; 및 상기 결정된 동작 상태에 기초하여 상기 센서와 인터페이싱하도록 상기 AFE의 동작을 동적으로 조정하는 수단을 포함하며, 상기 동적으로 조정하는 수단은 상기 AFE가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 AFE의 구성을 제어하는 수단을 포함한다. AFE에 대한 방법과 관련하여 기술되는 임의의 실시예는 장치에도 또한 적용될 수 있다.
본 명세서에 예시된 바와 같은 흐름도는 다양한 프로세스 동작의 시퀀스의 실례를 제공한다. 흐름도는 소프트웨어 또는 펌웨어 루틴에 의해 실행되는 동작뿐만 아니라 물리적 동작을 나타낼 수 있다. 일 실시예에서, 흐름도는 하드웨어 및/또는 소프트웨어로 구현될 수 있는 유한 상태 머신(FSM)의 상태를 나타낼 수 있다. 특정 시퀀스 또는 순서로 도시되어 있지만, 달리 명시되지 않는 한, 동작의 순서는 변경될 수 있다. 따라서, 예시된 실시예들은 단지 실례로서 이해되어야 하고, 프로세스는 상이한 순서로 수행될 수 있고, 일부 동작들은 병렬로 수행될 수 있다. 또한, 다양한 실시예들에서 하나 이상의 동작은 생략될 수 있다; 따라서, 매 실시예에서 모든 동작들이 요구되는 것은 아니다. 다른 프로세스 흐름이 가능하다. 일 구성요소는 다른 구성요소와 함께 동작을 수행하거나 다른 구성요소와 상호작용하도록 구성될 수 있다. 구성요소는 하드웨어 수단 또는 소프트웨어 수단 또는 이들의 조합으오 구성될 수 있다. 구성요소는 회로 또는 상호연결 디바이스를 통해 제공되는 물리적 연결을 통해 구성될 수 있다.
다양한 동작들 또는 기능들이 본 명세서에서 기술되는 정도로, 이들은 소프트웨어 코드, 인스트럭션들, 구성 및/또는 데이터로서 기술되거나 규정될 수 있다. 컨텐츠는 직접적으로 실행 가능한 코드("오브젝트" 또는 "실행가능한" 형식), 소스 코드 또는 차 코드( "델타" 또는 "패치" 코드)일 수 있다. 본 명세서에서 기술된 실시예들의 소프트웨어 컨텐츠는 그 상에 저장된 컨텐츠를 갖는 제품을 통해 또는 통신 인터페이스를 통해 데이터를 전송하기 위한 통신 인터페이스를 동작시키는 방법을 통해 제공될 수 있다. 머신 판독가능한 저장 매체는 머신이 기술된 기능 또는 동작을 수행하게 할 수 있으며, 기록가능한/기록가능하지 않은 매체들(예를 들어, ROM(read only memory), RAM(random access memory), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스 등)과 같은, 머신(예를 들어, 컴퓨팅 디바이스, 전자 시스템, 등)에 의해 액세스 가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 메모리 버스 인터페이스, 프로세서 버스 인터페이스, 인터넷 접속부, 디스크 제어기, 등과 같은, 다른 디바이스와 통신하기 위해 유선, 무선, 광학 매체, 등 중 임의의 것에 인터페이싱하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 소프트웨어 컨텐츠를 기술하는 데이터 신호를 제공하기 위해 통신 인터페이스를 준비하도록 구성 파라미터를 제공하고/하거나 신호를 송신함으로써 구성될 수 있다. 통신 인터페이스는 통신 인터페이스로 전송된 하나 이상의 명령 또는 신호를 통해 액세스될 수 있다.
본 명세서에서 기술된 다양한 구성요소는 기술된 동작 또는 기능을 수행하기 위한 수단일 수 있다. 본 명세서에서 기술된 각 구성요소는 소프트웨어, 하드웨어 또는 이들의 조합을 포함한다. 이러한 구성요소는 소프트웨어 모듈, 하드웨어 모듈, 특수 목적용 하드웨어(예를 들어, 애플리케이션 특정 하드웨어, 애플리케이션 특정 집적 회로(ASIC), 디지털 신호 프로세서(DSP), 등), 내장형 컨트롤러, 하드 와이어된 회로, 등으로 구현될 수 있다.
본 명세서에서 기술된 것 이외에, 본 발명의 범위를 벗어나지 않고서 본 발명의 개시된 실시예들 및 구현예들에 대한 다양한 변형이 이루어질 수 있다. 그러므로, 본 명세서에서의 예시들 및 실례들은 제한적인 의미가 아닌 예시적인 것으로 해석되어야 한다. 본 발명의 범위는 오직 다음의 청구 범위를 참조하여 규정되어야 한다.

Claims (23)

  1. 아날로그 프론트엔드(AFE)를 동작시키는 방법으로서,
    상기 AFE에 연결된 다수의 센서들 중 하나의 센서를 선택하는 단계와,
    상기 센서로부터 입력 센서 데이터를 수신하는 단계와,
    상기 입력 센서 데이터에 기초하여 상기 센서에 대한 특징정보(feature)를 컴퓨팅하는 단계 - 상기 특징정보는 상기 센서에 대한 상기 AFE의 선택된 동작 조건 정보를 나타냄 - 와,
    상기 컴퓨팅된 특징정보에 기초하여 상기 센서에 대한 상기 AFE의 다수의 개별 동작 상태들 중 하나를 결정하는 단계와,
    상기 결정된 동작 상태에 기초하여 상기 센서와 인터페이싱하도록 상기 AFE의 동작을 동적으로 조정하는 단계
    를 포함하며,
    상기 동적으로 조정하는 단계는 상기 AFE가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 AFE의 구성을 제어하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 특징정보를 컴퓨팅하는 단계는,
    적어도 신호 평균, 신호 표준 편차 및 실제 전력을 컴퓨팅하는 단계를 더 포함하는
    방법.
  3. 제1항에 있어서,
    상기 특징정보를 컴퓨팅하는 단계는, 시간 윈도우에 걸쳐서 데이터를 누산함으로써 특징정보를 컴퓨팅하는 단계를 더 포함하는
    방법.
  4. 제3항에 있어서,
    상기 시간 윈도우에 걸쳐서 상기 데이터를 누산하는 단계는,
    중첩된 시간 윈도우 및 연속하는 비중첩된 시간 윈도우 모두에 걸쳐서 데이터를 누산하는 단계를 포함하는
    방법.
  5. 제1항에 있어서,
    상기 다수의 개별 동작 상태들 중 하나를 결정하는 단계는,
    저장된 컴퓨팅된 특징정보에 기초하여 결정 트리를 트래버싱함으로써 동작 조건 정보를 상기 다수의 개별 동작 상태들로 분류하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    상기 동작 조건 정보를 분류하는 단계는,
    컴퓨팅된 동작 조건 정보에 기초하여 다수의 결정 트리 중 하나로 스위칭하는 단계를 포함하는
    방법.
  7. 제1항에 있어서,
    상기 센서는 상기 다수의 센서들 중 하나의 센서이고, 상기 입력 센서 데이터를 수신하는 단계는 상기 다수의 센서들로부터 입력 센서 데이터를 수신하는 단계를 포함하고,
    상기 다수의 개별 동작 상태 중 하나를 결정하는 단계는 상기 다수의 센서들로부터의 상기 입력 센서 데이터에 기초하여 결정하는 단계를 포함하는
    방법.
  8. 제1항에 있어서,
    상기 AFE의 구성을 제어하는 단계는,
    상기 센서에 대한 상기 AFE의 샘플링 분해능의 설정을 동적으로 변경하는 단계를 포함하는
    방법.
  9. 제1항에 있어서,
    상기 AFE의 구성을 제어하는 단계는,
    상기 센서에 대한 상기 AFE의 대역폭의 설정을 동적으로 변경하는 단계를 포함하는
    방법.
  10. 제1항에 있어서,
    상기 AFE의 구성을 제어하는 단계는,
    상기 센서와 인터페이싱할 때 상기 AFE의 하드웨어 구성요소를 선택적으로 활성화 및 비활성화하는 단계를 포함하는
    방법.
  11. 제1항에 있어서,
    상기 AFE의 구성을 제어하는 단계는,
    상기 센서와 인터페이싱할 때 상기 AFE의 고정밀도 구성요소와 대응하는 저정밀도 구성요소 사이에서 동적으로 스위칭하는 단계를 포함하는
    방법.
  12. 제1항에 있어서,
    상기 AFE의 구성을 제어하는 단계는,
    상기 센서와 인터페이싱할 때 상기 AFE의 고전력 구성요소와 대응하는 저전력 구성요소 사이에서 동적으로 스위칭하는 단계를 포함하는
    방법.
  13. 프론트엔드 회로로서,
    다수의 센서들로부터 다수의 처리되지 않은 입력 센서 데이터를 수신하는 다수의 하드웨어 입력 인터페이스;
    상기 다수의 센서들 중 하나의 센서를 선택하고 상기 선택된 센서에 대한 입력 센서 데이터를 처리하는 아날로그 프로세싱 하드웨어; 및
    프로세서를 포함하고,
    상기 프로세서는,
    상기 입력 센서 데이터에 기초하여 상기 센서에 대한 특징정보 - 상기 특징정보는 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 선택된 동작 조건 정보를 나타냄 - 를 컴퓨팅하며;
    상기 컴퓨팅된 특징정보에 기초하여 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 다수의 개별 동작 상태들 중 하나를 결정하고;
    상기 결정된 동작 상태에 기초하여 상기 센서와 인터페이싱하도록 상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하며,
    상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하는 것은, 상기 아날로그 프로세싱 하드웨어가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 것을 포함하는
    프론트엔드 회로.
  14. 제13항에 있어서,
    상기 프로세서가 특징정보를 컴퓨팅하는 것은,
    상기 프로세서가 시간 윈도우에 걸쳐서 데이터를 누산하는 것과 적어도 신호 평균, 신호 표준 편차 및 실제 전력을 컴퓨팅하는 것 중 하나 이상을 수행하는 것을 더 포함하는
    프론트엔드 회로.
  15. 제13항에 있어서,
    상기 프로세서가, 다수의 개별 동작 상태들 중 하나를 결정하는 것은, 상기 프로세서가, 저장된 컴퓨팅된 특징정보에 기초하여 결정 트리를 트래버싱함으로써 동작 조건 정보를 상기 다수의 개별 동작 상태로 분류하는 것을 더 포함하는
    프론트엔드 회로.
  16. 제13항에 있어서,
    상기 센서는 상기 다수의 센서들 중 하나의 센서이고, 상기 다수의 하드웨어 입력 인터페이스는 상기 다수의 센서들로부터 상기 입력 센서 데이터를 수신하며,
    상기 프로세서는 상기 다수의 센서들로부터의 입력 센서 데이터에 기초하여 다수의 개별 동작 상태 중 하나를 결정하는
    프론트엔드 회로.
  17. 제13항에 있어서,
    상기 프로세서는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하며,
    상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 것은,
    상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 샘플링 분해능의 설정을 동적으로 변경하는 것;
    상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 대역폭의 설정을 동적으로 변경하는 것;
    상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 하드웨어 구성요소를 선택적으로 활성화 및 비활성화하는 것;
    상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 고정밀도 구성요소와 대응하는 저정밀도 구성요소 사이에서 동적으로 스위칭하는 것;
    상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 고전력 구성요소와 대응하는 저전력 구성요소 사이에서 동적으로 스위칭하는 것
    중 하나 이상을 포함하는
    프론트엔드 회로.
  18. 시스템으로서,
    프론트엔드 회로; 및
    상기 프론트엔드 회로에서 수신된 데이터에 기초하여 표시를 생성하도록 구성된 터치스크린 디스플레이를 포함하며,
    상기 프론트엔드 회로는,
    다수의 센서들로부터 다수의 처리되지 않은 입력 센서 데이터를 수신하는 다수의 하드웨어 입력 인터페이스;
    상기 다수의 센서들 중 하나의 센서를 선택하고 상기 선택된 센서에 대한 입력 센서 데이터를 처리하는 아날로그 프로세싱 하드웨어; 및
    프로세서를 포함하고, 상기 프로세서는,
    상기 입력 센서 데이터에 기초하여 상기 센서에 대한 특징정보 - 상기 특징정보는 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 선택된 동작 조건 정보를 나타냄 - 를 컴퓨팅하며;
    상기 컴퓨팅된 특징정보에 기초하여, 상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 다수의 개별 동작 상태들 중 하나를 결정하고;
    상기 결정된 동작 상태에 기초하여, 상기 센서와 인터페이싱하도록 상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하며,
    상기 아날로그 프로세싱 하드웨어의 동작을 동적으로 조정하는 것은, 상기 아날로그 프로세싱 하드웨어가 상기 센서로부터 상기 입력 센서 데이터를 수신하는 방식을 제어하는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 것을 포함하는
    시스템.
  19. 제18항에 있어서,
    상기 프로세서가 특징정보를 컴퓨팅하는 것은,
    상기 프로세서가 시간 윈도우에 걸쳐서 데이터를 누산하는 것과 적어도 신호 평균, 신호 표준 편차 및 실제 전력을 컴퓨팅하는 것 중 하나 이상을 수행하는 것을 더 포함하는
    시스템.
  20. 제18항에 있어서,
    상기 프로세서가, 다수의 개별 동작 상태들 중 하나를 결정하는 것은, 상기 프로세서가, 저장된 컴퓨팅된 특징정보에 기초하여 결정 트리를 트래버싱함으로써 동작 조건 정보를 상기 다수의 개별 동작 상태로 분류하는 것을 더 포함하는
    시스템.
  21. 제18항에 있어서,
    상기 센서는 상기 다수의 센서들 중 하나의 센서이고, 상기 다수의 하드웨어 입력 인터페이스는 상기 다수의 센서들로부터 상기 입력 센서 데이터를 수신하며,
    상기 프로세서는 상기 다수의 센서들로부터의 입력 센서 데이터에 기초하여 다수의 개별 동작 상태 중 하나를 결정하는
    시스템.
  22. 제18항에 있어서,
    상기 프로세서는 상기 아날로그 프로세싱 하드웨어의 구성을 제어하며,
    상기 아날로그 프로세싱 하드웨어의 구성을 제어하는 것은,
    상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 샘플링 분해능의 설정을 동적으로 변경하는 것;
    상기 센서에 대한 상기 아날로그 프로세싱 하드웨어의 대역폭의 설정을 동적으로 변경하는 것;
    상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 하드웨어 구성요소를 선택적으로 활성화 및 비활성화하는 것;
    상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 고정밀도 구성요소와 대응하는 저정밀도 구성요소 사이에서 동적으로 스위칭하는 것;
    상기 센서와 인터페이싱할 때 상기 아날로그 프로세싱 하드웨어의 고전력 구성요소와 대응하는 저전력 구성요소 사이에서 동적으로 스위칭하는 것
    중 하나 이상을 포함하는
    시스템.
  23. 삭제
KR1020177014032A 2014-12-24 2015-11-27 아날로그 프론트엔드를 위한 저전력 컨텍스트 인식 제어 KR102443490B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/583,049 US9690361B2 (en) 2014-12-24 2014-12-24 Low-power context-aware control for analog frontend
US14/583,049 2014-12-24
PCT/US2015/062833 WO2016105856A1 (en) 2014-12-24 2015-11-27 Low-power context-aware control for analog frontend

Publications (2)

Publication Number Publication Date
KR20170099858A KR20170099858A (ko) 2017-09-01
KR102443490B1 true KR102443490B1 (ko) 2022-09-14

Family

ID=56151371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177014032A KR102443490B1 (ko) 2014-12-24 2015-11-27 아날로그 프론트엔드를 위한 저전력 컨텍스트 인식 제어

Country Status (7)

Country Link
US (1) US9690361B2 (ko)
EP (1) EP3238076A4 (ko)
JP (1) JP6746583B2 (ko)
KR (1) KR102443490B1 (ko)
CN (1) CN107003973B (ko)
TW (1) TWI567543B (ko)
WO (1) WO2016105856A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104483851B (zh) * 2014-10-30 2017-03-15 深圳创维-Rgb电子有限公司 一种情景感知控制装置、系统及方法
GB2534557B (en) * 2015-01-21 2022-03-09 Arm Ip Ltd Methods and resources for creating permissions
US9786298B1 (en) 2016-04-08 2017-10-10 Source Digital, Inc. Audio fingerprinting based on audio energy characteristics
US10637951B2 (en) * 2016-04-08 2020-04-28 Massachusetts Institute Of Technology Systems and methods for managing data proxies
WO2018004623A1 (en) * 2016-06-30 2018-01-04 Intel Corporation Sensor based data set method and apparatus
CN106815565A (zh) * 2016-12-28 2017-06-09 华勤通讯技术有限公司 一种电容式指纹识别芯片、移动终端和芯片控制方法
TWI712925B (zh) 2017-01-24 2020-12-11 瑞昱半導體股份有限公司 電子裝置與其控制方法
KR101810504B1 (ko) * 2017-02-01 2017-12-20 김원선 아날로그 신호 통합 처리 장치 및 그 방법
US10467510B2 (en) 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Intelligent assistant
US11010601B2 (en) 2017-02-14 2021-05-18 Microsoft Technology Licensing, Llc Intelligent assistant device communicating non-verbal cues
US11100384B2 (en) 2017-02-14 2021-08-24 Microsoft Technology Licensing, Llc Intelligent device user interactions
US10013081B1 (en) * 2017-04-04 2018-07-03 Google Llc Electronic circuit and method to account for strain gauge variation
US10635255B2 (en) 2017-04-18 2020-04-28 Google Llc Electronic device response to force-sensitive interface
US10014026B1 (en) * 2017-06-20 2018-07-03 Seagate Technology Llc Head delay calibration and tracking in MSMR systems
US11262837B2 (en) * 2017-08-21 2022-03-01 Alibaba Technology (Israel) Ltd. Dual-precision sensor system using high-precision sensor data to train low-precision sensor data for object localization in a virtual environment
WO2019104228A1 (en) * 2017-11-21 2019-05-31 Google Llc Low-power ambient computing system with machine learning
US11533055B2 (en) 2018-09-07 2022-12-20 Cypress Semiconductor Corporation Ultra-low power adaptively reconfigurable system
CN112703493A (zh) * 2018-09-28 2021-04-23 三菱电机株式会社 服务器装置、数据流通系统、数据提供方法以及程序
US11294504B2 (en) 2018-12-14 2022-04-05 Stmicroelectronics Asia Pacific Pte Ltd Oversampled high signal to noise ratio analog front end for touch screen controllers
CN112930138B (zh) * 2018-12-27 2023-04-11 深圳迈瑞生物医疗电子股份有限公司 一种监测用户生命体征的方法和装置
US11682230B2 (en) 2019-03-07 2023-06-20 Novatek Microelectronics Corp. Fingerprint signal processing circuit and method for signal compensation in analog front-end
US11093648B2 (en) 2019-06-28 2021-08-17 Intel Corporation Hardware-assisted privacy protection using a secure user interface with multi-level access control of sensor data
TWI718667B (zh) * 2019-09-12 2021-02-11 大陸商北京集創北方科技股份有限公司 光學指紋採集方法及利用其之光學指紋感測裝置和手持裝置
US11657273B2 (en) * 2019-12-27 2023-05-23 Industrial Technology Research Institute Hardware structure aware adaptive learning based power modeling method and system
JP2021135269A (ja) * 2020-02-28 2021-09-13 ラピスセミコンダクタ株式会社 半導体装置および計測処理システム
US11029890B1 (en) 2020-03-02 2021-06-08 Micron Technology, Inc. Compound feature generation in classification of error rate of data retrieved from memory cells
US11086572B1 (en) 2020-03-02 2021-08-10 Micron Technology, Inc. Self adapting iterative read calibration to retrieve data from memory cells
US11221800B2 (en) 2020-03-02 2022-01-11 Micron Technology, Inc. Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells
US11740970B2 (en) 2020-03-02 2023-08-29 Micron Technology, Inc. Dynamic adjustment of data integrity operations of a memory system based on error rate classification
US11081200B1 (en) 2020-05-07 2021-08-03 Micron Technology, Inc. Intelligent proactive responses to operations to read data from memory cells
US11562793B2 (en) 2020-05-07 2023-01-24 Micron Technology, Inc. Read soft bits through boosted modulation following reading hard bits
US11493970B2 (en) * 2020-10-30 2022-11-08 Qualcomm Incorporated Two-stage dynamic power supply voltage adjustment
IT202100001322A1 (it) * 2021-01-25 2022-07-25 St Microelectronics Srl Circuito elettronico di interfaccia riconfigurabile automaticamente e sensore includente il circuito elettronico di interfaccia e un trasduttore mems
CN113255746B (zh) * 2021-05-14 2022-03-29 国网甘肃省电力公司经济技术研究院 基于决策树的新能源电动汽车退役动力电池等级筛选方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023354A1 (en) 2010-07-22 2012-01-26 Seiko Epson Corporation Sensing device and electronic apparatus
US20140115128A1 (en) 2012-10-19 2014-04-24 Microsoft Corporation Dynamic functionality partitioning
US20140247206A1 (en) 2013-03-01 2014-09-04 Qualcomm Incorporated Adaptive sensor sampling for power efficient context aware inferences

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310624B1 (en) * 2000-05-02 2007-12-18 International Business Machines Corporation Methods and apparatus for generating decision trees with discriminants and employing same in data classification
JP3720346B2 (ja) * 2004-03-30 2005-11-24 シャープ株式会社 携帯情報処理装置
US7557849B2 (en) * 2004-10-11 2009-07-07 Mediatek Usa Inc Processor-controlled timing generator for multiple image sensors
US7216053B2 (en) * 2004-12-30 2007-05-08 Nokia Corporation Low power motion detector
US20070270671A1 (en) 2006-04-10 2007-11-22 Vivometrics, Inc. Physiological signal processing devices and associated processing methods
JP4977570B2 (ja) * 2007-10-03 2012-07-18 株式会社日立製作所 デジタルキャリブレーション型アナログデジタル変換器及びそれを用いた無線受信回路及び無線送受信回路
US10131419B2 (en) 2010-10-15 2018-11-20 Goodrich Corporation Systems and methods for detecting landing gear ground loads
US20120254878A1 (en) * 2011-04-01 2012-10-04 Lama Nachman Mechanism for outsourcing context-aware application-related functionalities to a sensor hub
US8838056B2 (en) * 2011-06-28 2014-09-16 Xilinx, Inc. Receiver circuit
US8624871B2 (en) * 2011-07-15 2014-01-07 Texas Instruments Incorporated Method and apparatus for sensing and scanning a capacitive touch panel
US8854064B2 (en) * 2011-07-15 2014-10-07 Texas Instruments Incorporated Touch sensing method and apparatus
US9252769B2 (en) * 2011-10-07 2016-02-02 Microchip Technology Incorporated Microcontroller with optimized ADC controller
US8786481B1 (en) * 2011-11-07 2014-07-22 Zerowatt Technologies, Inc. Method and apparatus for event detection and adaptive system power reduction using analog compression engine
JP5878340B2 (ja) * 2011-11-15 2016-03-08 ルネサスエレクトロニクス株式会社 半導体装置及びセンサシステム
US9575619B2 (en) * 2012-01-18 2017-02-21 Texas Instruments Incorporated Data capture design tool for designing and configuring systems with analog front ends
JP6159346B2 (ja) 2012-02-17 2017-07-05 ユニバーシティ オブ ヴァージニア パテント ファウンデーション 環境発電及びセンサノードの制御
JP5990409B2 (ja) * 2012-06-08 2016-09-14 ルネサスエレクトロニクス株式会社 半導体装置のシミュレータ、シミュレーション方法及びシミュレーションプログラム
JP2014086892A (ja) * 2012-10-24 2014-05-12 Renesas Electronics Corp 半導体集積回路装置
KR102179811B1 (ko) * 2012-12-03 2020-11-17 엘지전자 주식회사 포터블 디바이스 및 음성 인식 서비스 제공 방법
KR101603752B1 (ko) * 2013-01-28 2016-03-28 삼성전자주식회사 멀티 모드 지원 프로세서 및 그 프로세서에서 멀티 모드를 지원하는 방법
US9661221B2 (en) 2013-03-15 2017-05-23 Qualcomm Incorporated Always-on camera sampling strategies
CN104102749B (zh) * 2013-04-11 2019-04-23 华为技术有限公司 终端设备
JP6445539B2 (ja) * 2013-05-31 2018-12-26 ナイキ イノベイト シーブイ 動的サンプリング
US9406313B2 (en) 2014-03-21 2016-08-02 Intel Corporation Adaptive microphone sampling rate techniques
US9612993B2 (en) * 2014-06-28 2017-04-04 Intel Corporation Dynamically configurable analog frontend circuitry

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023354A1 (en) 2010-07-22 2012-01-26 Seiko Epson Corporation Sensing device and electronic apparatus
US20140115128A1 (en) 2012-10-19 2014-04-24 Microsoft Corporation Dynamic functionality partitioning
US20140247206A1 (en) 2013-03-01 2014-09-04 Qualcomm Incorporated Adaptive sensor sampling for power efficient context aware inferences

Also Published As

Publication number Publication date
US9690361B2 (en) 2017-06-27
KR20170099858A (ko) 2017-09-01
EP3238076A1 (en) 2017-11-01
CN107003973A (zh) 2017-08-01
CN107003973B (zh) 2020-12-01
TWI567543B (zh) 2017-01-21
JP6746583B2 (ja) 2020-08-26
EP3238076A4 (en) 2018-07-11
WO2016105856A1 (en) 2016-06-30
TW201640272A (zh) 2016-11-16
US20160187961A1 (en) 2016-06-30
JP2018512628A (ja) 2018-05-17

Similar Documents

Publication Publication Date Title
KR102443490B1 (ko) 아날로그 프론트엔드를 위한 저전력 컨텍스트 인식 제어
EP3162013B1 (en) Dynamically configurable analog frontend circuitry
US10395376B2 (en) CMOS image sensor on-die motion detection using inter-pixel mesh relationship
KR102373261B1 (ko) 이벤트 카메라 데이터 프로세싱을 위한 시스템 및 방법
KR102386328B1 (ko) 심장 박동수 모니터의 에너지 소모를 감소시키기 위한 방법들 및 시스템들
US9451358B2 (en) System and method for adjusting microphone functionality
RU2649938C2 (ru) Управление энергопотреблением посредством динамического разделения функциональности
KR20150054005A (ko) 센서 및 센서 데이터의 컨택스트 인식 제어를 위한 방법 및 장치
JP2017050853A (ja) イベント基盤センサ及びイベント基盤センサのピクセル
KR20160038693A (ko) 픽셀 클러스터들을 포함하는 다이나믹 비전 센서, 그것의 동작 방법 및 그것을 포함하는 시스템
KR20190096477A (ko) 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법
KR20140002027A (ko) 휴대용 컴퓨팅 디바이스의 멀티코어 프로세서에서 다수의 코어들로의 전력을 동적으로 제어하는 방법 및 시스템
KR101912412B1 (ko) 지문 검출 회로 및 전자 디바이스
JP2017529626A (ja) センサデータの超低電力処理のためのアルゴリズムエンジン
US20120096290A1 (en) Distributed Architecture for Situation Aware Sensory Application
US10613619B2 (en) Ultra-low power mode for a low-cost force-sensing device
US20130268736A1 (en) Sensor data recording apparatus, method, and program
US20160105162A1 (en) METHODS AND APPARATUSES FOR ULTRA-LOW-POWER SYSTEM ON A CHIP (SoC) ACTIVITY WEARABLE DEVICES
US20140337647A1 (en) Systems and methods for managing current consumption by an electronic device
Mayer et al. A2Event: A micro-watt programmable frequency-time detector for always-on energy-neutral sensing
CN108399915B (zh) 低功率关键短语检测
WO2017051269A1 (en) Low power activity monitoring with adaptive duty cycle in a sensor hub
KR102338314B1 (ko) 미세전자기계시스템 레코더 장치, 방법, 및 시스템
US20200242241A1 (en) System and Method of Microphone Intrusion Detection and Notification
CN111309605A (zh) 终端测试方法、装置、存储介质及终端设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant