KR101957555B1 - 상시-온 프로세서를 갖는 시스템 온 칩 - Google Patents

상시-온 프로세서를 갖는 시스템 온 칩 Download PDF

Info

Publication number
KR101957555B1
KR101957555B1 KR1020167032504A KR20167032504A KR101957555B1 KR 101957555 B1 KR101957555 B1 KR 101957555B1 KR 1020167032504 A KR1020167032504 A KR 1020167032504A KR 20167032504 A KR20167032504 A KR 20167032504A KR 101957555 B1 KR101957555 B1 KR 101957555B1
Authority
KR
South Korea
Prior art keywords
component
memory
state
soc
processor
Prior art date
Application number
KR1020167032504A
Other languages
English (en)
Other versions
KR20160145791A (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 KR20160145791A publication Critical patent/KR20160145791A/ko
Application granted granted Critical
Publication of KR101957555B1 publication Critical patent/KR101957555B1/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/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
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61GTRANSPORT, PERSONAL CONVEYANCES, OR ACCOMMODATION SPECIALLY ADAPTED FOR PATIENTS OR DISABLED PERSONS; OPERATING TABLES OR CHAIRS; CHAIRS FOR DENTISTRY; FUNERAL DEVICES
    • A61G3/00Ambulance aspects of vehicles; Vehicles with special provisions for transporting patients or disabled persons, or their personal conveyances, e.g. for facilitating access of, or for loading, wheelchairs
    • A61G3/02Loading or unloading personal conveyances; Facilitating access of patients or disabled persons to, or exit from, vehicles
    • A61G3/06Transfer using ramps, lifts or the like
    • A61G3/061Transfer using ramps, lifts or the like using ramps
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60PVEHICLES ADAPTED FOR LOAD TRANSPORTATION OR TO TRANSPORT, TO CARRY, OR TO COMPRISE SPECIAL LOADS OR OBJECTS
    • B60P1/00Vehicles predominantly for transporting loads and modified to facilitate loading, consolidating the load, or unloading
    • B60P1/43Vehicles predominantly for transporting loads and modified to facilitate loading, consolidating the load, or unloading using a loading ramp mounted on the vehicle
    • B60P1/433Vehicles predominantly for transporting loads and modified to facilitate loading, consolidating the load, or unloading using a loading ramp mounted on the vehicle the loading floor or a part thereof being movable to form the ramp
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D9/00Recording measured values
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P5/00Measuring speed of fluids, e.g. of air stream; Measuring speed of bodies relative to fluids, e.g. of ship, of aircraft
    • G01P5/14Measuring speed of fluids, e.g. of air stream; Measuring speed of bodies relative to fluids, e.g. of ship, of aircraft by measuring differences of pressure in the fluid
    • 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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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
    • Y02D10/122
    • Y02D10/171
    • 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
    • Y02D50/20

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Public Health (AREA)
  • Health & Medical Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Veterinary Medicine (AREA)
  • Mechanical Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Transportation (AREA)
  • Power Sources (AREA)
  • Transmission Devices (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Telephone Function (AREA)

Abstract

일 실시예에서, 시스템 온 칩(SOC)은 SOC의 나머지가 전력 오프될 때 전력 공급되는 상태를 유지하는 컴포넌트를 포함한다. 컴포넌트는 다양한 디바이스 센서들로부터 데이터를 캡처하는 센서 캡처 유닛을 포함할 수 있고, 캡처된 센서 데이터를 필터링할 수 있다. 필터링에 응답하여, 컴포넌트는 처리를 허용하기 위해 SOC의 나머지를 웨이크업할 수 있다. 컴포넌트는, SOC의 다른 컴포넌트들에 대한, SOC가 가장 최근에 전력 차단되었을 때의 상태와 매칭되는 프로그램가능 구성 데이터를 저장하여, 웨이크업 이후에 그것들을 재프로그래밍하도록 할 수 있다. 일부 실시예들에서, 컴포넌트는, 메모리에 데이터를 기록하기 위하여, SOC 내의 메모리 제어기 및 메모리 제어기로의 경로를 웨이크업하도록 구성될 수 있다. SOC의 나머지는 전력 차단되는 상태를 유지할 수 있다.

Description

상시-온 프로세서를 갖는 시스템 온 칩{SYSTEM ON A CHIP WITH ALWAYS-ON PROCESSOR}
본 명세서에 기술된 실시예들은 시스템 온 칩(SOC)의 분야에 관한 것이며, 보다 상세하게는, SOC 내의 상시-온 블록(always-on block)에 관한 것이다.
다양한 전자 디바이스들이 현재 소비자들의 일상 생활에 사용된다. 특히, 모바일 디바이스들이 흔히 볼 수 있게 되었다. 모바일 디바이스들은 휴대 전화, 개인 휴대 정보 단말기(PDA), 전화 기능성과, 다양한 PDA 기능성 및/또는 일반적 애플리케이션 지원과 같은 다른 컴퓨팅 기능성을 조합하는 스마트 폰, 태블릿, 랩톱, 넷톱(net top), 스마트 워치, 웨어러블 전자장치 등을 포함할 수 있다. 일반적으로, 모바일 디바이스는 사용자에 의해 소지되거나 사용자에 의해 착용되도록 설계된 임의의 전자 디바이스일 수 있다. 모바일 디바이스는 전형적으로, 그것이 전기 콘센트와 같은 일정한 전력 소스로부터 떨어져 동작할 수 있도록, 배터리-전력공급형일 수 있다.
많은 모바일 디바이스들은 대부분의 시간에 "스탠바이" 모드로 동작할 수 있다. 스탠바이 모드에서, 디바이스는, 디바이스가 사용자를 위한 콘텐츠를 능동적으로 표시하고 있지 않고/않거나 사용자를 위한 기능성을 능동적으로 수행하고 있지 않으므로, "오프"인 것처럼 보일 수 있다. 스탠바이 모드에서, 디바이스의 대부분은 실제로 전력 오프될 수 있다. 그러나, 백그라운드에서, 디바이스는 전화 호 또는 네트워크 패킷을 청취하고, 경보들을 체크하고, 이동에 응답하는 것 등을 수행하고 있을 수 있다.
모바일 디바이스들은 종종 제한된 공급(예를 들어, 배터리)으로부터 동작하고 있기 때문에, 에너지 보존은 디바이스들에 대한 주요 설계 고려사항이다. 시스템 온 칩(SOC)을 포함하는 것은 에너지 보존에 도움이 될 수 있는데, 이는 디바이스에 필요한 기능성의 대부분이 SOC에 포함될 수 있기 때문이다. "스탠바이" 모드 및 다른 저전력 모드들에서, 현대의 집적회로 기술에서의 에너지 소비에 있어서 주요 인자인 누설 전류 손실을 제거하기 위해 SOC를 전력 차단하는 것이 바람직하다. 한편, SOC는 전술한 스탠바이 기능성의 일부에서 필요하다.
일 실시예에서, SOC는, SOC의 나머지가 전력 오프될 때 전력 공급 상태를 유지하는 컴포넌트를 포함한다. 컴포넌트는 다양한 디바이스 센서들로부터 데이터를 캡처하도록 구성된 센서 캡처 유닛을 포함할 수 있다. 캡처된 센서 데이터는 컴포넌트 내의 메모리에서 버퍼링될 수 있다. 컴포넌트는 추가로 프로세서를 포함할 수 있으며, 일부 실시예들에서, 프로세서는 캡처된 센서 데이터를 필터링하여 디바이스에 의한 추가 처리의 요구를 나타낼 수 있는 패턴들을 검색할 수 있다. 추가 처리에 대한 요구가 검출되는 경우, 컴포넌트는 처리를 허용하도록 SOC의 나머지를 웨이크업할(즉, 전력 공급 및 재프로그래밍을 야기시킬) 수 있다. 일부 실시예들에서, 디바이스가 능동적으로 사용중이지 않은 시간들 동안에 센서 데이터의 캡처를 여전히 지원하면서, 전력/에너지 소비는 감소될 수 있다. 예를 들어, 집적회로 상에서의 컴포넌트의 통합을 통해 획득될 수 있는 전력/에너지 효율은, 센서 데이터 캡처를 지원하면서 달성될 수 있다. 컴포넌트는 SOC의 다른 컴포넌트들을 웨이크업 이후에 재프로그래밍하기 위해 그것들에 대한 프로그램가능 구성 데이터를 저장할 수 있다. 프로그램가능 구성 데이터는 SOC가 가장 최근에 전력 차단되었을 때의(컴포넌트는 전력 공급되는 상태를 유지하면서) 컴포넌트의 상태와 매칭될 수 있거나, 또는 웨이크업에 요구되는 상이한 상태일 수 있다.
일부 실시예들에서, 컴포넌트는 데이터를 메모리에 기록하고/하거나 메모리로부터 판독하기 위하여, SOC 내의 메모리 제어기 및 메모리 제어기로의 경로 둘 모두를 웨이크업하도록 구성될 수 있다. SOC의 나머지는 전력 차단되는 상태를 유지할 수 있다. 이러한 방식으로, 컴포넌트는 전송을 허용하기 위해 다른 컴포넌트들(예를 들어, 중앙처리장치(CPU) 프로세서 또는 프로세서들을 포함함)을 웨이크하지 않으면서, 데이터(예를 들어, 센서 데이터)를 저장하기 위해 더 큰 메인 메모리를 이용할 수 있다. 단지 필요한 컴포넌트들에만 전력이 공급되기 때문에 전력/에너지 소비가 감소될 수 있다.
일부 실시예들에서, 프로그램가능 구성 데이터의 저장 및 컴포넌트로부터의 데이터를 복구하는 것은, SOC에서 전력 차단된(예를 들어, 슬립) 상태로부터 다시 전력을 공급할 때의 지연 시간(latency)을 감소시킬 수 있다. 일부 실시예들에서, 하나의 상태(예를 들면, SOC가 슬립 상태인 동안 컴포넌트 내의 프로세서는 웨이크된 상태임)에서의 데이터의 처리는, 더 높은 전력/성능 상태가 곧 필요할 수 있다는 추론을 일으킬 수 있다. SOC는 그 상태로 추론적으로 전환될 수 있고, 따라서 추론이 정확하다면 웨이크하는 데 훨씬 더 낮은 지연 시간이 있을 수 있다.
하기의 상세한 설명은 첨부 도면들을 참조하며, 이제 도면들이 간단히 기술된다.
도 1은 SOC의 일 실시예의 블록도이다.
도 2는 SOC 내의 상시-온 블록의 일 실시예의 블록도이다.
도 3은 도 2에 도시된 상시-온 블록에 대한 상태 기계(state machine)의 일 실시예의 블록도이다.
도 4는 도 2에 도시된 상시-온 블록에 대한 상태 기계의 다른 실시예의 블록도이다.
도 5는 부트 또는 구성 변경 동안 SOC 내의 CPU 상에서 실행되는 소프트웨어의 일 실시예의 동작을 예시하는 흐름도이다.
도 6은 재구성 동안 도 2에 도시된 상시-온 블록의 일 실시예의 동작을 예시하는 흐름도이다.
도 7은 메모리-전용 통신 상태에서의 SOC의 일 실시예를 예시하는 블록도이다.
도 8은 재구성 접근법을 사용하는 일 실시예에 대한 지연 시간 감소를 예시하는 블록도이다.
도 9는 지연 시간 감소를 위한 추론적 웨이크업의 일 실시예를 예시하는 블록도이다.
도 10은 도 1에 도시된 SOC를 포함하는 시스템의 일 실시예의 블록도이다.
도 11은 컴퓨터 액세스가능 저장 매체의 일 실시예의 블록도이다.
본 개시내용에 기술된 실시예들은 다양한 수정들 및 대안적인 형태들을 허용하지만, 본 개시내용의 특정 실시예들이 도면들에 예로서 도시되고, 본 명세서에서 상세히 기술될 것이다. 그러나, 그에 대한 도면들 및 상세한 설명은 실시예들을 개시된 특정 형태로 제한하는 것으로 의도되는 것이 아니며, 반대로, 의도는 첨부된 청구범위의 사상 및 범주 내에 속한 모든 수정들, 등가물들 및 대안들을 커버하기 위한 것임을 이해하여야 한다. 본 명세서에서 사용된 표제들은 단지 구성상의 목적을 위한 것일 뿐, 설명의 범주를 제한하기 위해 사용되는 것으로 의미되지는 않는다. 본 출원 전반에 걸쳐 사용되는 바와 같이, "일 수 있다(may)"라는 단어는 의무적인 의미(즉, "이어야만 한다(must)"를 의미)라기보다 오히려 허용의 의미(즉, "~에 대해 가능성을 갖는다"는 의미)로 사용된다. 유사하게, "포함하다(include, includes)" 및 "포함하는(including)"이라는 단어는, 포함하지만 이로 제한되지 않음을 의미한다.
다양한 유닛들, 회로들 또는 기타 컴포넌트들이 태스크(task) 또는 태스크들을 수행하도록 "구성"되는 것으로 기술될 수 있다. 그러한 맥락에서, "~하도록 구성되는"은 동작 동안에 태스크 또는 태스크들을 수행하는 "회로를 갖는"을 일반적으로 의미하는 구조의 광의의 설명이다. 이와 같이, 유닛/회로/컴포넌트는 유닛/회로/컴포넌트가 현재 온(on) 상태가 아닐 시에도 태스크를 수행하도록 구성될 수 있다. 일반적으로, "~하도록 구성되는"에 대응하는 구조를 형성하는 회로는 하드웨어 회로들을 포함할 수 있다. 유사하게, 다양한 유닛들/회로들/컴포넌트들은 설명의 편의를 위해 태스크 또는 태스크들을 수행하는 것으로 설명될 수 있다. 그러한 설명은 "~하도록 구성된"이라는 문구를 포함하는 것으로 해석되어야 한다. 하나 이상의 태스크를 수행하도록 구성된 유닛/회로/컴포넌트를 언급하는 것은 그 유닛/회로/컴포넌트에 대해 35 U.S.C. § 112 (f)항의 해석을 적용하지 않고자 명확히 의도된다.
본 명세서는 "일 실시예" 또는 "실시예"에 대한 참조를 포함한다. 본 명세서에서 명시적으로 부인하지 않는다면, 임의의 특징들의 조합을 포함하는 실시예들이 일반적으로 고려되더라도, "일 실시예에서" 또는 "실시예에서"라는 문구가 나타난다고 해서 반드시 동일한 실시예를 지칭하지는 않는다. 특정 특징들, 구조들 또는 특성들이 본 개시내용과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
이제 도 1을 참조하면, 메모리(12), 적어도 하나의 센서(20), 및 전력 관리 유닛(power management unit; PMU)(156)에 연결된 SOC(10)의 일 실시예의 블록도가 도시된다. 이름에서 암시되는 바와 같이, SOC(10)의 컴포넌트들은 집적회로 "칩"으로서 단일 반도체 기판 상에 집적될 수 있다. 일부 실시예들에서, 컴포넌트들은 시스템에서 둘 이상의 별개의 칩 상에 구현될 수 있다. 그러나, SOC(10)는 본 명세서에서 예시로 사용될 것이다. 예시된 실시예에서, SOC(10)의 컴포넌트들은 중앙처리장치(CPU) 컴플렉스(14), "상시-온" 컴포넌트(16), 주변 컴포넌트들(18A, 18B)(더 간단하게, "주변장치들"), 메모리 제어기(22), 전력 관리자(power manager; PMGR)(32), 및 통신 패브릭(communication fabric)(27)을 포함한다. 컴포넌트들(14, 16, 18A, 18B, 22, 32)은 모두 통신 패브릭(27)에 연결될 수 있다. 메모리 제어기(22)는 사용 중에 메모리(12)에 연결될 수 있다. PMGR(32) 및 상시-온 컴포넌트(16)는 PMU(156)에 연결될 수 있다. PMU(156)는 SOC, 메모리(12), 및/또는 센서들(20)에, 다양한 전력 공급 전압을 공급하도록 구성될 수 있다. 상시-온 컴포넌트(16)는 센서들(20)에 연결될 수 있다. 예시된 실시예에서, CPU 컴플렉스(14)는 하나 이상의 프로세서(도 1의 P(30))를 포함할 수 있다. 프로세서들(30)은 SOC(10)의 CPU(들)를 형성할 수 있다.
상시-온 컴포넌트(16)는 SOC(10)의 다른 컴포넌트들(예를 들어, CPU 콤플렉스(14), 주변장치들(18A, 18B), 및 PMGR(32))이 전력 차단될 때 전력 공급되는 상태를 유지하도록 구성될 수 있다. 보다 상세하게는, 상시-온 컴포넌트(16)는 SOC(10)가 PMU(156)로부터 전력을 수신하고 있을 때마다 온될 수 있다. 따라서, 상시-온 컴포넌트는 SOC(10)가 임의의 전력을 수신하고 있을 경우에는(예를 들어, SOC(10)를 포함하는 디바이스가 스탠바이 모드에 있거나 능동적으로 동작하고 있을 때) 전력 공급될 수 있지만, SOC(10)가 어떠한 전력도 수신하고 있지 않을 때에는(예를 들어, 디바이스가 완전히 턴 오프될 때) 전력이 공급되지 않을 수 있다는 점에서, 상시-온 컴포넌트는 "상시-온"이다. 상시-온 컴포넌트(16)는 SOC(10)의 나머지가 오프되는 동안 소정 기능들을 지원하여, 저전력 동작을 허용할 수 있다.
도 1에서, 상시-온 컴포넌트(16)를 다른 컴포넌트들로부터 분리시키는 점선(24)은 상시-온 컴포넌트(16)에 대한 독립적인 전력 도메인을 나타낼 수 있다. 유사하게, 예시된 실시예에서, 점선(26)은 메모리 제어기(22)에 대한 독립적인 메모리 제어기 전력 도메인을 나타낼 수 있다. 다른 컴포넌트들, 컴포넌트들의 그룹들, 및/또는 서브컴포넌트들 또한 독립적인 전력 도메인을 가질 수 있다. 일반적으로, 전력 도메인은 다른 전력 도메인들과는 독립적으로 공급 전압을 수신하거나(즉, 전력 온됨) 공급 전압을 수신하지 않도록(즉, 전력 오프됨) 구성될 수 있다. 일부 실시예들에서, 전력 도메인들은 동시에 상이한 공급 전압 크기들을 공급받을 수 있다. 독립성은 다양한 방식으로 제공될 수 있다. 예를 들어, 독립성은, PMU(156)로부터 별개의 공급 전압 입력들을 제공함으로써, 공급 전압 입력들과 컴포넌트들 사이에 전력 스위치들을 제공하고 주어진 도메인에 대한 전력 스위치들을 한 단위로서 제어함으로써, 그리고/또는 상기의 조합에 의해 제공될 수 있다. 도 1에 도시된 것들보다 더 많은 전력 도메인들이 또한 있을 수 있다. 예를 들어, CPU 컴플렉스(14)는 일 실시예에서 독립적인 전력 도메인을 가질 수 있다(그리고 각각의 CPU 프로세서(30) 또한 독립적인 전력 도메인을 가질 수 있다). 하나 이상의 주변 컴포넌트(18A, 18B)가 일 실시예에서 하나 이상의 독립적인 전력 도메인 내에 있을 수 있다.
도 1에 예시된 바와 같이, 상시-온 컴포넌트(16)는 적어도 하나의 센서(20)에 연결될 수 있다(그리고 다수의 센서들(20)에 연결될 수 있다). 상시-온 컴포넌트(16)는 SOC(10)가 전력 오프되는 동안(SOC(10)가 전력 온될 때에 더하여) 센서들(20)로부터 센서 데이터를 판독하도록 구성될 수 있다. 상시-온 컴포넌트(16)는 센서 데이터를 버퍼링하기 위한 메모리(도 1에 도시되지 않음)를 포함할 수 있으며, SOC(10)의 나머지는 메모리(또는 센서 데이터를 저장하도록 할당된 그것의 일부분)가 데이터로 채워지지(또는 충만도의 임계 레벨에 도달하지) 않는 한 전력이 공급될 필요가 없다. 일부 실시예들에서, 상시-온 컴포넌트(16)는 또한 어떤 방식으로 센서 데이터를 처리하도록 구성될 수 있다. 예를 들어, 상시-온 컴포넌트(16)는 센서 데이터를 필터링하도록 구성될 수 있다. 데이터를 필터링하는 것은 일반적으로 다음 중 하나 이상을 지칭할 수 있다: 센서 데이터가 CPU 컴플렉스(14) 내의 프로세서들에 의해 추가로 처리되어야 한다는 것을 나타내는 패턴 또는 다른 데이터 속성들을 검색하는 것; 데이터 내의 노이즈를 검출/제거하기 위해 데이터를 조작하는 것; 잘못된 긍정 매칭들을 제거하기 위해 패턴 또는 다른 속성과 매칭되는 것으로 보이는 데이터를 추가로 처리하는 것 등.
센서들(20)은 센서들을 포함하는 디바이스의 물리적 환경의 양상들을 검출하거나 측정하도록 구성되는 임의의 디바이스들일 수 있다. 예를 들어, 센서는 디바이스의 가속도를 측정하는 가속도계를 포함할 수 있다. 가속도계는 방향성(미리결정된 방향의 가속도를 측정)이거나 벡터(다수의 차원으로 가속도를 측정하고, 가속도 및 그것의 방향을 나타내는 벡터를 생성함)일 수 있다. 다수의 방향성 가속도계들은 벡터 가속도 감지뿐만 아니라 방향성 가속도 감지를 허용하도록 채용될 수 있다. 센서의 다른 예는 자이로스코프(또는 자이로)일 수 있다. 자이로스코프는 디바이스의 배향 및/또는 배향의 변화를 검출하기 위해 사용될 수 있다. 가속도계와 같이, 자이로스코프는 방향성 또는 다차원일 수 있고, 그리고/또는 다수의 방향성 자이로스코프들이 사용될 수 있다. 또 다른 센서는 자력계일 수 있으며, 이는 자기 배향을 측정하는 데 사용될 수 있고 따라서 나침반을 형성하는데 사용될 수 있다. 다른 실시예들에서, 나침반 기능은 센서에 내장될 수 있다. 다른 센서는 오디오 검출기(예를 들어, 마이크로폰)일 수 있다. 오디오 검출기는 사운드를 캡처하고 사운드를 나타내는 데이터를 생성할 수 있다. 다른 센서는 광 또는 전자기 에너지를 검출하는 광검출기일 수 있다. 다른 예시적인 센서들은 고도를 검출하는 고도계, 온도 센서, 및/또는 압력 센서를 포함할 수 있다. 또 다른 센서는 버튼, 터치 스크린, 키보드, 포인팅 디바이스, 카메라 등과 같은 사용자 인터페이스 디바이스일 수 있다. 센서들의 임의의 세트가 포함될 수 있다.
전술한 바와 같이, 상시-온 컴포넌트(16)는 컴포넌트 내의 메모리에서 데이터를 버퍼링하도록 구성될 수 있다. 버퍼가 충만에 가까워지는 경우, 상시-온 컴포넌트(16)는 메모리(12)에 센서 데이터를 기록하기 위해 메모리 제어기(22)를 웨이크하도록 구성될 수 있다. 일부 실시예들에서, 상시-온 컴포넌트(16)는 데이터를 필터링한 결과들을 메모리(12)에 기록하도록 구성될 수 있다. 일부 실시예들에서, 상시-온 컴포넌트(16)는 SOC(10)의 나머지가 전력 차단되는 동안에 다른 처리 태스크들을 수행할 수 있다. 이들 태스크가 메모리(12)에 액세스할 정도까지, 상시-온 컴포넌트(16)는 메모리 제어기(22)를 웨이크하도록 구성될 수 있다. 또한, 상시-온 컴포넌트(16)는 통신 패브릭(27)의 적어도 일부분(즉, 상시-온 컴포넌트(16)를 메모리 제어기(22)에 접속시키는 부분)을 웨이크하도록 구성될 수 있다.
이 메모리-전용 통신 모드를 사용하여, 상시-온 컴포넌트(16)는, SOC(10)의 나머지가 전력 차단 상태를 유지하기 때문에, 비교적 낮은 양의 에너지/전력을 쓰면서 메모리(12)에 액세스하고 메모리(12)에서 이용가능한 상당한 저장소를 이용하는 것이 가능할 수 있다. 상시-온 컴포넌트(16)는 메모리 제어기(22)에 대한 프로그램가능 구성 데이터를 저장해서, 전력이 복구되자마자 상시-온 컴포넌트(16)가 메모리 제어기(22)를 프로그래밍할 수 있도록 할 수 있다. 즉, 상시-온 컴포넌트(16)는, SOC(10)를 포함하는 디바이스의 부트 동안 운영체제가 메모리 제어기(22)를 프로그래밍하는 방법과 유사한 방식으로 메모리 제어기(22)를 프로그래밍하도록 구성될 수 있다. 상시-온 컴포넌트(16)에 의해 저장된 프로그램가능 구성 데이터는, 일 실시예에서, (상시-온 컴포넌트(16)를 제외한) SOC(10)가 가장 최근에 전력 차단되었을 때에 메모리 제어기(22) 내에 있던 구성 데이터일 수 있다. 다른 실시예에서, 프로그램가능 구성 데이터는, 메모리 제어기(22)의 임의의 이전 구성 및/또는 메모리(12)의 임의의 구성에 대해 작용하는 것으로 알려진 구성일 수 있다. 알려진-양호한 구성은, 예를 들어, 상시-온 컴포넌트(16)에 의한 메모리 액세스들에 대한 성능에 있어서 허용가능한 구성일 수 있다.
상시-온 컴포넌트(16)가 전력 공급되는 상태를 유지하면서 SOC(10)가 전력 차단되는 경우, 전력 차단 시퀀스의 일부는 메모리(12)를 유지 모드(retention mode)에 배치할 수 있다. 예를 들어, 메모리(12)의 동적 랜덤 액세스 메모리(DRAM) 실시예들의 경우, 유지 모드는 "셀프-리프레시" 모드일 수 있다. 유지 모드에서, 메모리(12)는 모드가 변경될 때까지 외부에서 액세스가능하지 않을 수 있다. 그러나, 메모리(12)의 내용은 보존될 수 있다. 예를 들어, 셀프-리프레시 모드에서, DRAM은 데이터를 유지하는데 필요한 주기적 리프레시들을 수행할 수 있다(이는 보통 메모리 제어기(22)가 전력 온될 때, 메모리 제어기(22)에 의해 수행됨).
일부 실시예들에서, 상시-온 컴포넌트(16)는 SOC(10) 내의 다른 컴포넌트들에 대한 프로그램가능 구성 데이터를 추가로 저장할 수 있다. 프로그램가능 구성 데이터는 SOC(10)의 나머지가 가장 최근에 전력 차단되었을 때의 컴포넌트들의 상태를 반영할 수 있다. 상시-온 컴포넌트(16)는 처리를 위해 SOC(10)를 웨이크하도록 구성될 수 있고, 저장된 프로그램가능 구성 데이터를 이용해 컴포넌트들을 재프로그래밍할 수 있다. 저장된 프로그램가능 구성 데이터에 기초하여 컴포넌트들에 상태를 복구시키는 프로세스는 재구성으로 지칭될 수 있다. 또한, 전술한 메모리-전용 통신 모드와 유사하게, 컴포넌트들에 복구되는 상태는 컴포넌트의 가장 최근의 전력 차단 시의 상태일 수 있거나, 또는 동작을 위해 SOC(10)를 다시 시작하기 위한 허용가능한 성능을 갖는 알려진-양호한 상태일 수 있다. 후자의 경우, 상태는 재구성이 완료된 후에 더 높은 성능 상태로 수정될 수 있다.
상시-온 컴포넌트(16) 내의 재구성 기능성을 사용하여 상태를 복구하는 것은, SOC(10) 내의 전력을 복구하고 그 다음에 콜드 부트(cold boot)와 유사한 방식으로 SOC(10) 및 운영체제를 초기화하는 것보다 더 낮은 지연 시간의 동작일 수 있다. 상시-온 컴포넌트(16) 없이 초기화하는 동안, 운영체제는, SOC(10)가 이전에 전력 차단되었으며 이때 시스템 상태가 메모리(12)에 저장되어 있음을 발견하였고, 일부 초기화 동작들을 바이패스했다. 그러나, 복구의 지연 시간은 원하는 것보다 더 컸다. 일 실시예에 대한 추가적인 상세 사항들이 아래에서 더 자세히 논의된다.
상시-온 컴포넌트(16)는, PMGR(32)의 PMU(156)와의 통신에 더하여, PMU(156)와 통신하도록 구성될 수 있다. PMU(156)와 상시-온 컴포넌트(16) 사이의 인터페이스는, PMGR(32)이 전력 차단될 때 상시-온 컴포넌트(16)로 하여금, 컴포넌트들(예를 들어, 메모리 제어기(22), 또는 SOC(10)의 다른 컴포넌트들)에 전력이 공급되게 하는 것을 허용할 수 있다. 인터페이스는 또한 상시-온 컴포넌트(16)가 자신의 전력 상태도 제어하도록 허용할 수 있다.
일반적으로, 컴포넌트는 전력 온되거나 전력 오프되는 것으로 지칭될 수 있다. 컴포넌트는 공급 전압을 수신하고 있는 경우 전력 온됨으로써, 그것이 설계된 대로 동작하도록 할 수 있다. 컴포넌트가 전력 오프되는 경우, 그것은 공급 전압을 수신하고 있지 않으며 동작하지 않는다. 컴포넌트는 또한 그것이 전력 온되는 경우 전력이 공급되는 것으로 지칭될 수 있고, 그것이 전력 오프되는 경우에는 전력 차단된 것으로 지칭될 수 있다. 컴포넌트에 전력을 공급하는 것은 전력 오프된 컴포넌트에 공급 전압을 공급하는 것을 지칭할 수 있고, 컴포넌트를 전력 차단하는 것은 컴포넌트로의 공급 전압의 공급을 종료하는 것을 지칭할 수 있다. 유사하게, 임의의 서브컴포넌트 및/또는 SOC(10)는 전체로서 전력 공급/차단되는 것 등으로 지칭될 수 있다. 컴포넌트는, SOC(10) 내의 특정된 기능을 제공하고 SOC(10)의 나머지로의 특정 인터페이스를 갖는 미리정의된 회로 블록일 수 있다. 따라서, 상시-온 컴포넌트(16), 주변장치들(18A, 18B), 및 CPU 컴플렉스(14), 메모리 제어기(22), 및 PMGR(32)은 각각 컴포넌트의 예들일 수 있다.
컴포넌트는, 그것에 전력이 공급되고 클록 게이팅되지 않은 경우 활성일 수 있다. 따라서, 예를 들어, CPU 컴플렉스(14) 내의 프로세서는 그것이 활성인 경우에 명령어 실행을 위해 이용가능할 수 있다. 컴포넌트는, 그것이 전력 오프되는 경우, 또는 명령어들이 실행될 수 있기 전에 큰 지연을 경험하게 될 수 있는 다른 저전력 상태에 있는 경우에, 비활성일 수 있다. 예를 들어, 컴포넌트가 위상 고정 루프(PLL)의 리셋 또는 재잠금을 요구하는 경우, 그것은 그것이 전력 공급되는 상태를 유지하더라도 비활성일 수 있다. 컴포넌트는 또한 그것이 클록 게이팅되는 경우 비활성일 수 있다. 클록 게이팅은, 컴포넌트 내의 디지털 회로에 대한 클록이 일시적으로 "턴 오프"되어서, 플롭, 레지스터 등과 같은 클록된 저장 디바이스들 내의 디지털 회로로부터 상태가 캡처되는 것을 방지하는 기법들을 지칭한다.
전술한 바와 같이, CPU 컴플렉스(14)는 SOC(10)의 CPU로서 기능할 수 있는 하나 이상의 프로세서(30)를 포함할 수 있다. 시스템의 CPU는 시스템의 메인 제어 소프트웨어, 그 예로서 운영체제를 실행하는 프로세서(들)를 포함한다. 일반적으로, 사용 중 CPU에 의해 실행되는 소프트웨어는 시스템의 다른 컴포넌트들을 제어하여 원하는 시스템의 기능성을 실현할 수 있다. 프로세서들은 또한 다른 소프트웨어, 예컨대 애플리케이션 프로그램들을 실행할 수 있다. 애플리케이션 프로그램들은 사용자 기능성을 제공할 수 있고, 하위 레벨 디바이스 제어, 스케줄링, 메모리 관리 등을 위해 운영체제에 의존할 수 있다. 따라서, 프로세서들은 또한 애플리케이션 프로세서들로 지칭될 수 있다. CPU 컴플렉스(14)는 다른 하드웨어, 예컨대 L2 캐시 및/또는 시스템의 다른 컴포넌트들에 대한 인터페이스(예를 들어, 통신 패브릭(27)에 대한 인터페이스)를 추가로 포함할 수 있다.
동작점은 CPU 컴플렉스(14), 상시-온 컴포넌트(16), SOC(10)의 다른 컴포넌트들 등에 대한 전력 공급 전압 크기와 동작 주파수의 조합을 지칭할 수 있다. 동작 주파수는 컴포넌트를 클록하는 클록의 주파수일 수 있다. 동작 주파수는 또한 클록 주파수 또는 간단히 주파수로 지칭될 수 있다. 동작점은 또한 동작 상태 또는 전력 상태로 지칭될 수 있다. 동작점은, 상시-온 컴포넌트(16)에 저장되고 재구성이 발생할 때에 컴포넌트들 내에 재프로그래밍될 수 있는, 프로그램가능 구성 데이터의 일부일 수 있다.
일반적으로, 프로세서는 프로세서에 의해 구현된 명령어 세트 아키텍처에 정의된 명령어들을 실행하도록 구성된 임의의 회로 및/또는 마이크로코드를 포함할 수 있다. 프로세서들은 시스템 온 칩(SOC(10)) 또는 다른 레벨들의 통합부로서 다른 컴포넌트들과 함께 집적회로 상에서 구현된 프로세서 코어들을 망라할 수 있다. 프로세서들은 별개의 마이크로프로세서들, 프로세서 코어들 및/또는 멀티칩 모듈 구현부들 내에 통합된 마이크로프로세서들, 다수의 집적회로들로서 구현된 프로세서들 등을 추가로 망라할 수 있다.
메모리 제어기(22)는 일반적으로, SOC(10)의 다른 컴포넌트들로부터 메모리 동작들을 수신하고, 메모리(12)에 액세스하여 메모리 동작들을 완료하기 위한 회로를 포함할 수 있다. 메모리 제어기(22)는 임의의 유형의 메모리(12)에 액세스하도록 구성될 수 있다. 예를 들어, 메모리(12)는 SRAM(static random access memory), DRAM(dynamic RAM), 예컨대 더블 데이터 레이트(DDR, DDR2, DDR3, DDR4 등) DRAM을 포함하는 SDRAM(synchronous DRAM)일 수 있다. 저전력/모바일 버전들의 DDR DRAM(예컨대, LPDDR, mDDR 등)이 지원될 수 있다. 메모리 제어기(22)는, 동작들을 순서화하고(그리고 잠재적으로 재순서화하고) 동작들을 메모리(12)에 제시하는, 메모리 동작들을 위한 큐(queue)들을 포함할 수 있다. 메모리 제어기(22)는 메모리로의 기록을 기다리는 기록 데이터 및 메모리 동작의 소스로의 복귀를 기다리는 판독 데이터를 저장하는 데이터 버퍼들을 추가로 포함할 수 있다. 일부 실시예들에서, 메모리 제어기(22)는 최근에 액세스된 메모리 데이터를 저장하는 메모리 캐시를 포함할 수 있다. SOC 구현예들에서, 예를 들어, 메모리 캐시는, 다시 곧 액세스될 것으로 예상되는 경우에 메모리(12)로부터의 데이터의 재-액세스를 피함으로써, SOC에서의 전력 소비를 감소시킬 수 있다. 일부 경우들에서, 메모리 캐시는 또한, 소정의 컴포넌트들만을 제공하는 전용 캐시(private cache)들 그 예로서 프로세서들 내의 L2 캐시 또는 캐시들과 상반되는 것과 같은, 시스템 캐시로서 지칭될 수 있다. 추가적으로, 일부 실시예들서, 시스템 캐시는 메모리 제어기(22) 내에 위치될 필요가 없다.
주변장치들(18A, 18B)은 SOC(10)에 포함된 추가 하드웨어 기능성의 임의의 세트일 수 있다. 예를 들어, 주변장치들(18A, 18B)은 비디오 주변장치들 그 예로서 카메라 또는 다른 이미지 센서로부터의 이미지 캡처 데이터를 처리하도록 구성된 이미지 신호 프로세서, 하나 이상의 디스플레이 디바이스 상에 비디오 데이터를 표시하도록 구성된 디스플레이 제어기들, 그래픽 처리 유닛(GPU)들, 비디오 인코더/디코더들, 스케일러(scaler)들, 로테이터(rotator)들, 블렌더(blender)들 등을 포함할 수 있다. 주변장치들은 오디오 주변장치들 그 예로서 마이크로폰들, 스피커들, 마이크로폰들 및 스피커들에 대한 인터페이스들, 오디오 프로세서들, 디지털 신호 프로세서들, 믹서들 등을 포함할 수 있다. 주변장치들은 USB(Universal Serial Bus), PCIe(PCI Express)를 포함한 PCI(peripheral component interconnect), 직렬 및 병렬 포트들 등과 같은 인터페이스들을 포함하는 SOC(10)의 외부에 있는 다양한 인터페이스들에 대한 인터페이스 제어기들(예를 들어, 주변장치(18B))을 포함할 수 있다. 주변장치들은 네트워킹 주변장치들, 예컨대 MAC(media access controller)들을 포함할 수 있다. 하드웨어의 임의의 세트가 포함될 수 있다.
통신 패브릭(27)은 SOC(10)의 컴포넌트들 간의 통신을 위한 임의의 통신 상호접속부 및 프로토콜일 수 있다. 통신 패브릭(27)은 공유 버스 구성, 크로스 바(cross bar) 구성, 및 브릿지를 이용한 계층적 버스를 포함하는 버스-기반일 수 있다. 또한, 통신 패브릭(27)은 패킷-기반일 수 있고, 브릿지를 이용한 계층, 크로스 바, 지점 간(point-to-point), 또는 다른 상호접속부일 수 있다.
PMGR(32)은 PMU(156)로부터 요청되는 공급 전압 크기들을 제어하도록 구성될 수 있다. SOC(10)를 위해 PMU(156)에 의해 생성된 다수의 공급 전압들이 있을 수 있다. 예를 들어, VCPU 및 VSOC가 도 1에 도시되어 있다. VCPU는 CPU 컴플렉스(14)에 대한 공급 전압일 수 있다. VSOC는 일반적으로 CPU 컴플렉스(14) 외부의, SOC(10)의 나머지에 대한 공급 전압일 수 있다. 예를 들어, 다른 컴포넌트들에 대한 VSOC 이외에, 메모리 제어기 전력 도메인 및 상시-온 전력 도메인에 대한 별개의 공급 전압들이 있을 수 있다. 다른 실시예에서, VSOC는 메모리 제어기(22), 상시-온 컴포넌트(16), 및 SOC(10)의 다른 컴포넌트들에 제공할 수 있고, 전력 도메인들에 기초하여 전력 게이팅이 채용될 수 있다. 일부 실시예들에서, SOC(10)의 나머지에 대한 다수의 공급 전압들이 있을 수 있다. 일부 실시예들에서, CPU 컴플렉스(14) 및/또는 SOC(10) 내의 다양한 메모리 어레이들에 대한 메모리 공급 전압이 또한 있을 수 있다. 메모리 공급 전압은 로직 회로에 공급되는 전압(예를 들어, VCPU 또는 VSOC)과 함께 사용될 수 있으며, 이는 강력한 메모리 동작을 보장하기 위해 요구되는 것보다 더 낮은 전압 크기를 가질 수 있다. PMGR(32)은 직접적인 소프트웨어 제어(예를 들어, 소프트웨어가 컴포넌트들의 전력 공급 및/또는 전력 차단을 직접 요청할 수 있음)를 받을 수 있고/있거나, SOC(10)를 모니터링하고 다양한 컴포넌트들이 언제 전력 공급되거나 전력 차단될지를 결정하도록 구성될 수 있다.
PMU(156)는 일반적으로, 공급 전압들을 생성하고, SOC(10), 메모리(12)(도 1의 VMEM), 다양한 오프-칩 주변장치 컴포넌트들(도 1에 도시되지 않음), 예컨대 디스플레이 디바이스들, 이미지 센서들, 사용자 인터페이스 디바이스들 등과 같은 시스템의 다른 컴포넌트들에 그러한 공급 전압들을 제공하는 회로를 포함할 수 있다. 따라서, PMU(156)는 프로그램가능 전압 레귤레이터들, 전압 요청들을 수신하기 위해 SOC(10)에 그리고 보다 상세하게는 PMGR(32)에 인터페이스하는 로직 등를 포함할 수 있다.
SOC(10)의 컴포넌트들의 개수(및 도 1에 도시된 것들에 대한, 그 예로서 CPU 컴플렉스(14) 내의 서브컴포넌트들의 개수)는 실시예마다 다를 수 있다는 것에 유의한다. 도 1에 나타난 개수보다 각 컴포넌트/서브컴포넌트가 많거나 적을 수 있다.
이제, 도 2를 참조하면, 상시-온 컴포넌트(16)의 일 실시예의 블록도가 도시되어 있다. 도시된 실시예에서, 상시-온 컴포넌트(16)는 프로세서(40), 메모리(42), 센서 캡처 모듈(sensor capture module; SCM)(44), SOC 재구성 회로(46), 로컬 PMGR(48), 및 상호접속부(50)를 포함할 수 있다. 프로세서(40), 메모리(42), SCM(44), SOC 재구성 회로(46), 및 로컬 PMGR(48)은 상호접속부(50)에 연결된다. SCM(44)은 또한 센서 캡처 유닛 또는 센서 캡처 회로로 지칭될 수 있다.
센서 캡처 모듈(44)은 SOC(10)가 시스템에 포함되는 경우 센서들(20)에 연결될 수 있고, 센서들(20)로부터 데이터를 캡처하도록 구성될 수 있다. 도시된 실시예에서, 센서 캡처 모듈(44)은 캡처된 센서 데이터를 메모리(42)(SCM 데이터(52))에 기록하도록 구성될 수 있다. 메모리(42)는 예를 들어, SRAM일 수 있다. 그러나, 임의의 유형의 메모리가 다른 실시예들에서 사용될 수 있다.
SCM 데이터(52)는 캡처된 센서 데이터를 저장하기 위해 상시-온 컴포넌트(16)에 의해 미리 할당된 위치들에 저장될 수 있다. 위치들이 소비됨에 따라, 캡처된 데이터를 저장하는데 이용가능한 메모리의 양은 감소한다. 센서 캡처 모듈(44)은 워터마크 또는 할당 메모리 영역 내의 충만도의 다른 표시(일반적으로, 예를 들어, "임계치")를 이용해 프로그래밍될 수 있고, 센서 캡처 모듈(44)은 캡처된 센서 데이터를 메모리(12)에 기록하기 위해 메모리 제어기(22)를 웨이크하도록 구성될 수 있다. 대안적으로, 프로세서(40)는 캡처된 센서 데이터를 메모리(12)에 기록하도록 구성될 수 있다. 이러한 경우, 센서 캡처 모듈(44)은 프로세서(40)를 웨이크하도록 구성될 수 있다.
프로세서(40)는 메모리(42)(프로세서 코드/데이터(54))에 저장된 코드를 실행하도록 구성될 수 있다. 코드는, 실행될 때 프로세서(40)로 하여금 다양한 기능들을 구현하게 하는 일련의 명령어들을 포함할 수 있다. 예를 들어, 코드는, 전술한 바와 같이, SCM 데이터(52)를 필터링하기 위해 프로세서(40)에 의해 실행될 수 있는 필터 코드를 포함할 수 있다. SCM 데이터(52) 내의 원하는 패턴 또는 다른 데이터 속성(들)을 검출하는 것에 응답하여, 프로세서(40)는 메모리(12)를 업데이트하기 위해 메모리 제어기(22)를 웨이크하고/하거나 SOC(10)를 웨이크하도록 구성될 수 있다.
프로세서 코드/데이터(54)는 SOC(10)를 포함하는 디바이스의 부트 시 초기화될 수 있다. 코드는 SOC(10) 상의 비휘발성 메모리 또는 디바이스 내의 다른 곳에 저장될 수 있고, 예를 들어, 메모리(42) 내에 로딩될 수 있다. 판독-전용 메모리(ROM)와 같은 로컬 비휘발성 메모리가 또한 일부 실시예들에서 사용될 수 있다.
일 실시예에서, 프로세서(40)는 CPU 컴플렉스(14) 내의 CPU 프로세서들(30)보다 더 작고, 더 전력 효율적인 프로세서일 수 있다. 따라서, 프로세서(40)는 활성일 때 CPU 프로세서들(30)이 소비하는 것보다 더 적은 전력을 소비할 수 있다. 일 실시예에서, 또한 CPU 프로세서들(30)이 있는 것보다 더 적은 프로세서들(40)이 있을 수 있다.
SOC 재구성 회로(46)는 메모리 제어기(22) 및 SOC(10)의 다른 컴포넌트들에 대한 프로그램가능 구성 데이터(56)를 저장하여, 전력 오프되는 상태로부터 컴포넌트들에 다시 전력 공급하는 것에 응답하여 다양한 컴포넌트들을 재프로그래밍하도록 구성될 수 있다. 대안적으로, 프로그램가능 구성 데이터(56)는 메모리(42) 내에, 또는 메모리(42)와 SOC 재구성 회로(46)의 조합 내에 저장될 수 있다. 구성 데이터(56)는 예를 들어, 대응하는 컴포넌트를 프로그래밍하는 것의 일부로서 CPU 프로세서들(30)에 의해 회로(46)에 기록될 수 있다. 즉, (예를 들어, 디바이스의 부트의 일부로서 그리고/또는 구성이 변경되는 기타 시간들에서, 운영체제 소프트웨어를 실행하는) CPU 프로세서들(30)은 SOC 재구성 회로(46)에 데이터를 기록할 수 있다. 대안적으로, 일부 실시예들에서, SOC 재구성 회로(46)는 구성 상태를 모니터링 및 섀도잉(shadowing)하는 하드웨어를 가질 수 있다. 일부 실시예들에서, 프로그램가능 구성 데이터(56)의 적어도 일부분은 미리결정될 수 있으며, 메모리(42) 및/또는 SOC 재구성 회로(46)에 기록되기보다는, ROM과 같은 비휘발성 메모리에 저장될 수 있다.
일 실시예에서, SOC 재구성 회로(46)는, 프로그램가능 구성 데이터(56)를 처리하고 SOC(10)에 다시 전력이 공급된 후에 SOC(10) 내의 대응하는 컴포넌트들에 데이터를 기록하도록 구성된 논리 회로를 포함할 수 있다. 프로그램 가능 구성 데이터(56)는 기록될 일련의 레지스터 주소들 및 그 레지스터들에 기록할 데이터를 포함할 수 있다. 일부 실시예들에서, 프로그램가능 구성 데이터(56)는 레지스터들을 판독하기 위한 판독 커맨드들, 예를 들어, 다양한 기록들에 의해 수행된 초기화가 완료되고/되거나 대응하는 상태가 컴포넌트 내에서 시행 중임을 나타내는 기대값(expected value)에 대한 폴링을 추가로 포함할 수 있다. 기대값은 판독된 전체 값일 수 있거나 값의 일부분일 수 있다(예를 들어, 기대값은 비교 이전에 판독된 값에 적용될 마스크 및 값을 포함할 수 있다). 일부 실시예들에서, 프로그램가능 구성 데이터(56)는 레지스터들을 판독하고, 판독된 데이터의 일부분을 수정하며, 수정된 데이터를 다시 레지스터에 기록하기 위한 판독-수정-기록 커맨드들을 추가로 포함할 수 있다. 예를 들어, 제2 마스크는 레지스터 값의 어떤 부분이 업데이트될지를 결정하는데 사용될 수 있다. 제2 마스크에 의해 마스킹된 레지스터의 부분은 값이 레지스터에 기록될 때 업데이트되지 않을 수 있다.
다른 실시예에서, SOC 재구성 회로(46)는 다른 프로세서, 및 프로세서를 위한 코드를 저장하는 대응하는 메모리를 포함할 수 있다(또는 코드는 메모리(42)에 또한 저장될 수 있다). 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 SOC(10) 내의 다양한 컴포넌트들을 프로그램가능 구성 데이터(56)를 이용해 구성하게 할 수 있다. 코드는 코드 자신의 구조의 일부로서 전술한 폴링 특징들을 구현할 수 있거나, 또는 프로그램가능 구성 데이터(56)는, 전술한 것과 유사하게, 폴링할 주소 및 기대값을 저장할 수 있다. 다른 실시예에서, 프로세서(40)는 SOC(10)의 컴포넌트들을 재프로그래밍하는 소프트웨어를 실행할 수 있다.
프로그램가능 구성 데이터(56)는 메모리 제어기(22)에 대한 데이터, SOC(10)의 다른 컴포넌트들에 대한 별도의 데이터, 및 프로세서(40)에 전력이 공급될 때 그것을 재구성하기 위한 별도의 데이터를 포함할 수 있다. SOC(10)의 나머지가 전력 차단되는 동안 메모리 제어기(22)에 전력을 공급할 때, 메모리 제어기(22)에 대한 데이터는 처리될 수 있다. 데이터는 메모리 제어기(22)에 대한 프로그램가능 구성 데이터를 포함할 수 있다. 데이터는, 일 실시예에서, 추가의 프로그램가능 구성 데이터를 추가로 포함할 수 있다. 예를 들어, 통신 패브릭(27)에 대한 프로그램가능 구성 데이터가 포함될 수 있다. 프로그램가능 구성 데이터는, 상시-온 컴포넌트(16)와 메모리 제어기(22) 사이의 통신에 사용되는 어떠한 컴포넌트들에도 포함될 수 있다. SOC(10)의 나머지에 전력을 공급할 때, 다른 컴포넌트들에 대한 데이터는 처리될 수 있다. 유사하게, 프로세서(40)에 전력을 공급할 때, 프로세서(40)에 대한 프로그램가능 구성 데이터가 처리될 수 있다.
일부 실시예들에서, SOC 재구성 회로(46)는 SOC(10)의 전력 공급에서의 둘 이상의 시점에서 SOC(10)의 컴포넌트들에 프로그램가능 구성 데이터를 제공하도록 구성될 수 있다. 예를 들어, 일부 프로그램가능 재구성 데이터는 전력 온 상태로의 전환의 시작 근처에서(예를 들어, 전력 공급 전압이 안정된 직후에) 제공될 수 있고, 다른 프로그램가능 재구성 데이터는 전력 온 상태로의 전환의 끝에 더 가깝게 제공될 수 있다. 또한, 일부 실시예들에서, 프로그램가능 구성 데이터(56)는 SOC(10)의 컴포넌트들에서 설정될 프로그램가능 구성의 단지 일부분일 수 있다. 프로그램가능 구성의 나머지는 메모리(12)에 저장될 수 있다. 예를 들어, CPU 프로세서들(30) 상에서 실행되는 운영체제 소프트웨어는 전력 차단 이전에 메모리(12)에서 프로그램가능 구성을 캡처할 수 있다. 메모리(12)에 저장된 프로그램가능 구성 데이터의 복구는, CPU 프로세서들(30)이 리셋으로부터 해제되고 다시 실행을 시작한 이후에 SOC 재구성 회로(46), 다른 하드웨어, 및/또는 운영체제 소프트웨어에 의해 수행될 수 있다.
로컬 PMGR(48)은, 전체적으로 SOC(10)에 대한 도 1의 PMGR(32)과 유사한 방식으로, 상시-온 컴포넌트(16) 내의 전력 관리 기능들을 다루도록 구성될 수 있다. 상시-온 컴포넌트(16)는 다수의 전력 상태들을 지원할 수 있으며, 로컬 PMGR(48)은 그 상태들 사이의 전환들을 도울 수 있다. 로컬 PMGR(48)은 PMU(156)와 통신하여 상태 변경들을 지원할 뿐만 아니라, 다양한 컴포넌트들을 웨이킹업하거나 슬립 상태로 두는 것의 일부로서 SOC(10)의 다양한 컴포넌트들로의 공급 전압들의 제공을 관리하도록 구성될 수 있다.
상호접속부(50)는, 도 2에 도시된 다양한 서브컴포넌트들 사이의 통신들을 전송할 뿐만 아니라, 통신 패브릭(27)을 통해 SOC(10)의 다른 컴포넌트들과 통신하기 위한, 임의의 상호접속부를 포함할 수 있다. 상호접속부는, 다양한 실시예들에서, 원하는 바에 따라, 도 1과 관련하여 전술한 통신 패브릭(27)의 예시들 중 임의의 것을 포함할 수 있다.
이제 도 3을 참조하면, 상시-온 컴포넌트(16)의 일 실시예에서 구현될 수 있는 상태 기계의 일 실시예의 블록도가 도시된다. 도시된 실시예에서, 상태들은 대기 상태(60), 캡처 상태(62), 프로세스 상태(64), 메모리 액세스 상태(66), 및 SOC 온 상태(68)를 포함한다. 상태들 사이의 전환들은 실선으로 도시되고, 소정의 추가적인 가능한 전환들은 점선으로 나타난다. 도면을 모호하게 하는 것을 피하기 위하여 가능한 전환들 모두가 도 3에 도시되지는 않는다.
도 3에 도시된 상태들은 상대적인 전력/에너지 소비의 순서일 수 있으며, 이때 대기 상태(60)는 최저 전력 상태이고 SOC 온 상태(68)는 최고 전력 상태이다. 대기 상태(60)에서, 상시-온 컴포넌트(16)의 서브컴포넌트들은 전력 게이팅되거나 클록 게이팅될 수 있다. 예를 들어, 일 실시예에서, 프로세서(40)는 전력 게이팅될 수 있고 SCM(44)은 클록 게이팅될 수 있다. 메모리(42)는 유지 모드에 있을 수 있거나, 정상적으로 전력이 공급될 수 있다. SOC 재구성 회로(46) 및 로컬 PMGR(48)은 클록 게이팅될 수 있다. 클록 게이팅과 전력 게이팅의 임의의 조합이 서브컴포넌트들 사이에서 사용될 수 있다.
대기 상태(60)에서, 상시-온 컴포넌트(16)는 본질적으로 유휴(idle)일 수 있다. 센서들(20)로부터 SCM(44)에 의해 센서 데이터가 캡처될 준비가 될 때, 상태 기계는 대기 상태(60)로부터 캡처 상태(62)로 전환될 수 있다. 일 실시예에서, 상시-온 컴포넌트(16) 내의 타이머(예를 들어, 감시 타이머(watchdog timer))(도 2에서 명시적으로 도시되지 않음)는 대기 상태(60)로부터 캡처 상태(62)로의 전환을 주기적으로 야기시킬 수 있다. 이 경우 캡처할 센서 데이터가 있을 수 있거나 없을 수도 있다. 일 실시예에서, 센서들은 센서 데이터가 캡처에 이용가능함을 나타내기 위해 상시-온 컴포넌트(16)에 신호를 어서트(assert)할 수 있다. 어느 경우에서든, 캡처 상태(62)로의 전환이 수행될 수 있다.
도시된 실시예에서, 상태 기계는 또한 대기 상태(60)로부터 프로세스 상태(64)로 직접 전환될 수 있다. 이러한 전환은, 센서가 (프로세서(40)로부터의) 프로세서 지원이 요구된다고 상시-온 컴포넌트(16)에 신호를 보내도록 구성되는 경우에, 지원될 수 있다. 신호는, 신호를 구현하는 실시예들에 대해, 센서 데이터가 이용가능하다는 것을 나타내는 신호와 별개일 수 있다. 전환은 예를 들어, 센서 데이터의 빠른 처리(예를 들어, 필터링)를 지원할 수 있거나, 또는 SOC(10)의 빠른 웨이크업이 요구되는 경우에서 사용될 수 있다(이는 프로세서(40) 상에서 실행되는 소프트웨어에 의해 관리될 수 있음). 예를 들어, 디바이스와 상호작용하고자 하는 사용자의 소망을 나타내는 버튼 또는 다른 사용자 인터페이스 디바이스가, SOC(10)의 빠른 웨이크업을 야기시킬 이벤트일 수 있다. 프로세서(40)가 대기 상태(60)에서 전력 게이팅되는 경우, 대기 상태(60)로부터 프로세스 상태(64)로의 전환은 프로세서(40)에 전력을 공급하는 것, 및 프로세서(40)를 리셋 및 초기화하는 것을 포함할 수 있다. 다른 실시예들에서, 대기 상태(60)로부터의 전환은 캡처 상태(62)를 통과할 수 있지만, 캡처 상태(62)에 남아 있지 않다. 이러한 구현예는 프로세서(40)에 대한 약간 더 긴 웨이크업 시간으로 복잡도를 감소시킬 수 있다.
캡처 상태(62)에서, SCM(44)은 활성일 수 있고 센서들(20) 중 하나 이상으로부터 데이터를 샘플링하고 있을 수 있다. SCM(44)은 캡처된 센서 데이터를 메모리(42)에 기록할 수 있다(SCM 데이터(52)). SCM(44)은 또한 메모리(42)에 추가의 데이터(SCM 데이터(52)), 예컨대 캡처된 센서 데이터와 연관된 타임스탬프, 센서 식별자 등을 기록할 수 있다. 임의의 원하는 추가의 데이터가 메모리(42)에 저장될 수 있다. 일 실시예에서, 타임스탬프는 센서(20)에 의해 센서 데이터가 감지된 시간일 수 있으며, 이는 데이터가 SCM(44)에 의해 캡처되기 이전일 수 있다. 대안적으로, 타임스탬프는 SCM(44)에 의한 센서 데이터 캡처의 시간일 수 있다.
SCM(44)은, SCM(44)이 데이터를 처리하기 위해 프로세서(40)를 웨이크하도록 구성될 수 있는, 하나 이상의 임계치를 검출할 수 있다. 임계치들은 예를 들어, 메모리(42) 내의 SCM 데이터(52)의 상대적 충만도, 획득된 센서 샘플들의 수, 첫 번째 샘플 이후의 경과 시간, 샘플들에 의해 트리거되지 않는 웨이크업 타이머, 에러 검출 등을 포함할 수 있다. 하나 이상의 임계치의 임의의 세트가 사용될 수 있으며, 상이한 임계치들이 상이한 센서들에 사용될 수 있다. 임계치에 도달되면, 상태 기계는 캡처 상태(62)로부터 프로세스 상태(64)로 전환될 수 있다. 대안적으로, 센서 데이터 캡처가 완료되면, 상태 기계는 캡처 상태(62)로부터 대기 상태(60)로 전환될 수 있다.
프로세스 상태(64)에서, 프로세서(40)는 활성일 수 있으며, 메모리(42)로부터(또는 존재하는 경우, 프로세서(40)의 캐시 밖으로) 코드를 실행하고 있을 수 있다. 코드는, 예를 들어, 필터 코드를 포함할 수 있다. 프로세스 상태(64) 동안, SCM(44)은 추가의 센서 데이터를 캡처하기 위해 주기적으로 활성일 수 있거나, 프로세스 상태(64)에서 연속적으로 활성일 수 있다. 프로세서(40) 상에서 실행되는 코드는, 적어도 일시적으로, 그것이 완료되었음을 결정할 수 있으며, 다시 캡처 상태(62)로의 전환을 야기시킬 수 있다. 대안적으로, 전환은 대기 상태(60)로 직접 이루어질 수 있다(예를 들어, SCM(44)이 비활성인 경우).
코드는 또한, 메모리(12)와의 통신이 프로세스 상태(64)에서 요구된다고 결정할 수 있다. 예를 들어, 메모리(12)와의 통신은 메모리(42)로부터의 캡처된 센서 데이터를 메모리(12)에 기록하는 데 사용되어, 메모리(12) 내의 더 큰 이용가능한 저장 공간을 이용하도록 할 수 있다. 일부 실시예들에서, 메모리(12)는 또한, 메모리(42)에서 연속적으로 저장될 수 없는, 프로세서(40)에 의해 실행가능한 추가의 코드(예를 들어, 추가의 필터링 알고리즘들)를 저장할 수 있다. 추가의 코드는 메모리(12)와의 통신이 설정된 후 프로세서(40)에 의해 실행될 수 있다. 예를 들어, 추가의 코드는 메모리(12)로부터 메모리(42) 내로 페칭될 수 있고/있거나 프로세서(40)에 의해 캐시될 수 있다. 데이터는, 프로세서(40)가 캡처된 센서 데이터 내에서 원하는 패턴 또는 다른 양상을 검출하는 것에 응답하여, 메모리(42)로부터 메모리(12)로 기록될 수 있으며, CPU 컴플렉스(14) 내의 CPU 프로세서들(30)에 의한 추가의 처리가 보장될 수 있다. 데이터는 메모리(12)에 기록되어, CPU 프로세서들(30)이 그것에 대한 액세스를 가지도록 할 수 있다. 메모리(12)와의 통신이 요구되는 경우, 상태 기계는 메모리 액세스 상태(66)로 전환될 수 있다. 전환은 메모리 제어기(22)의 상태뿐만 아니라 상시-온 컴포넌트(16)로부터 메모리 제어기(22)로의 통신 경로를 프로그래밍하는, SOC 재구성 회로(46)에 의한 동작을 포함할 수 있다. 일부 실시예들에서, 전체 통신 패브릭(27)이 활성화될 수 있다. 다른 실시예들에서, 메모리 제어기(22)와 상시-온 컴포넌트(16) 사이의 통신에 관여되는 통신 패브릭(27)의 부분만이 활성화될 수 있다. 메모리(12)는 또한 셀프 리프레시로부터 나올 수 있다. 일 실시예에서, 로컬 PMGR(48)은 또한 전환에 관여되어, 메모리 제어기 공급 전압이 PMU(156)에 의해 관리되는 경우에 메모리 제어기(22)의 전력 공급을 요청할 수 있다.
메모리 액세스 상태(66)에서, 메모리 제어기(22)는 활성일 수 있으며 상시-온 컴포넌트(16)는 메모리(12)에 대한 액세스를 가질 수 있다. 상시-온 컴포넌트(16)(그리고, 일 실시예에서, 보다 구체적으로 프로세서(40))는 메모리(12)에 대한 판독 및 기록 동작들을 생성하도록 구성될 수 있으며, 이는 상호접속부(50) 및 통신 패브릭(27)을 통해 메모리 제어기(22)에 전달될 수 있다. 데이터는 (판독을 위해) 메모리 제어기(22)에 의해 반환될 수 있거나, 유사한 방식으로 (기록을 위해) 메모리 제어기(22)에 의해 수신될 수 있다.
프로세서(40)는 메모리(12)에 액세스할 필요성이 종료되었다고 결정할 수 있으며, 다시 프로세스 상태(64)로의 전환을 야기시킬 수 있다. 전환은, 메모리(12)를 셀프 리프레시 모드로 복귀시키고 메모리 제어기(22) 및 통신 패브릭(27)을 전력 차단하는 것을 포함할 수 있다.
프로세서(40)는 또한 SOC(10)가 웨이크되어야 한다고 결정할 수 있다(예를 들어, 처리를 CPU 컴플렉스(14)로 핸드오프하기 위해). 상태 기계는 메모리 액세스 상태(66)로부터 SOC 온 상태(68)로 전환될 수 있다. 전환은, 로컬 PMGR(48)이 SOC(10)에 대해 PMU(156)로부터 전력 공급을 요청하는 것을 포함할 수 있고, SOC 재구성 회로(46)가 구성 데이터(56)로부터 다양한 컴포넌트들을 프로그래밍하는 것을 포함할 수 있다. 일 실시예에서, 프로세스 상태(64)로부터 SOC 온 상태(68)로의 직접적인 전환이 지원될 수 있다. 이러한 전환에서, 메모리 제어기(22)의 전력 공급 및 셀프 리프레시로부터의 메모리(12)의 제거 또한 수행될 수 있다. 대안적으로, 프로세서(40)는 SOC 온 상태(68)로 전환하고자 하는 요구를 검출할 수 있지만, 전환을 수행하기 위해 메모리 액세스 상태(66)를 통과할 수 있다.
SOC 온 상태(68)로부터, SOC(10)(예를 들어, PMGR(32) 및/또는 CPU 프로세서들(30) 상에서 실행되는 소프트웨어)는 SOC(10)가 더 낮은 전력 상태로 전환되어야 한다고 결정할 수 있다. 일 실시예에서, 소프트웨어는 "RAM 절전 대기(suspend to RAM)" 동작을 수행할 수 있으며, 이 동작에서, 구성 데이터(56)에 의해 또한 표현된 상태를 포함하는 다양한 시스템 상태가, 메모리(12)가 셀프 리프레시에 배치되고 SOC(10) 컴포넌트들이 전력 차단되기 전에 메모리(12)에 기록된다. 따라서, SOC 온 상태(68)로의 복귀시, 구성 데이터(56)로부터의 상태의 재프로그래밍이 수행될 수 있고, 이어서 소프트웨어는 메모리(12)에 저장된 데이터에 기초하여 실행을 재개할 수 있다. 전환은, 예를 들어, 상시-온 컴포넌트(16)가 포함되지 않았을 경우에 비해, 상대적으로 빠를 수 있다. 이러한 경우, 소프트웨어는 일반적 콜드 부트 프로세스를 시작할 수 있다. 프로세스 중 어떤 시점에서, 소프트웨어는 RAM 절전 대기가 발생했음을 인식할 수 있지만, 일부 불필요한 초기화 처리는 이미 프로세스 중 그 시점에서 수행되었을 수 있다.
일반적으로, 상태 기계가 또한 더 높은 전력 상태들 중 임의의 것인 동안에도, 더 낮은 전력 상태들에서 수행되는 동작들이 수행될 수 있다. 예를 들면, 센서 데이터 캡처는 또한, 상태 기계가 프로세스 상태(64), 메모리 액세스 상태(66), 및 SOC 온 상태(68)에 있는 동안에 수행될 수 있다(예를 들어, SCM(44)으로 하여금 데이터를 캡처하게 하는 트리거들 중 하나가, 상태 기계가 다른 상태들 중 임의의 상태인 동안에 발생하는 경우). 유사하게, 프로세서(40)는 프로세스 상태(64), 메모리 액세스 상태(66), 및 SOC 온 상태(68) 중 임의의 상태에서 활성일 수 있으며, 따라서 이들 상태 중 임의의 상태에서 데이터를 처리할 수 있다.
SOC(10)가 셧다운되는 경우, 상태 기계는 SOC 온 상태(68)로부터 메모리 액세스 상태(66)로 되돌아갈 수 있다(그리고 상시-온 컴포넌트(16) 내의 다른 활동에 기초하여 더 낮은 상태들로 전환될 수 있다). 대안적으로, SOC 온 상태(68)로부터 상태들(60, 62, 64, 또는 66) 중 임의의 상태로의 직접적인 전환은, 전환이 발생할 때의 상시-온 컴포넌트(16) 내의 현재 활동에 기초하여 수행될 수 있다.
이제 도 4를 참조하면, 다른 상태 기계의 블록도가 도시된다. 도 4의 상태 기계는 도 3의 상태 기계와 협력하여 구현될 수 있다. 도시된 실시예에서, 상태 기계는 오프 상태(70), SOC 온 상태(72), AO + 메모리 상태(74), AO 상태(76), 및 AO가 아닌 상태(78)를 포함한다. 이러한 맥락에서 AO는 상시-온의 약자일 수 있다.
오프 상태(70)는, SOC(10)를 포함하는 디바이스가 완전히 오프일 때와 같은, SOC(10)에 대한 모든 전력이 오프된 상태일 수 있다. 따라서, 상태 기계는 SOC(10)로의 전력이 턴 온되는 것에 응답하여 오프 상태(70)로부터 (예를 들어, SOC 온 상태(72)로) 전환될 수 있다. SOC(10)의 리셋이 수행될 수 있고, 이어서 SOC(10)는 부트로 진행할 수 있다. 상태 기계는 SOC(10)를 완전히 전력 오프시키는 것에 응답하여 SOC 온 상태(72)로부터 오프 상태(70)로 전환될 수 있다. CPU들(30) 상에서 실행되는 소프트웨어가 메모리(12)로부터 비휘발성 메모리로의 임의의 원하는 상태를 저장하고, 디바이스가 가질 수 있는 다양한 접속들(예를 들어, 무선 및/또는 유선 네트워크 접속들, 무선 전화 접속들 등)을 폐쇄하고, 그리고 다른 방법으로 디바이스를 순서화된 셧다운에 대해 준비시킨 후에, 전력 오프가 발생할 수 있다. 도 4에서 전환은 SOC 온 상태(72)로부터 오프 상태(70)로이지만, 다른 실시예들에서는 다른 상태들로부터 오프 상태(70)로의 전환들이 지원될 수 있다.
SOC 온 상태(72)에서, SOC(10)는 완전 동작 상태일 수 있다. SOC(10)의 다양한 컴포넌트들은 원하는 바에 따라 전력 온되거나 전력 오프될 수 있으며, 전체로서 SOC(10)는 일반적으로 SOC 온 상태(72)에서 활성인 것으로 보여질 수 있다. SOC 온 상태(72)는 도 3의 실시예에서의 SOC 온 상태(68)에 대응할 수 있다.
SOC 온 상태(72)에서, CPU 컴플렉스(14) 상에서 실행되는 소프트웨어는 SOC(10)가 저전력 상태(예를 들어, 슬립)로 가야 한다고 결정할 수 있다. 일 실시예에서, 소프트웨어는, SOC(10)를 전력 차단하기 전에 다양한 SOC 상태가 메모리(12)에 기록되는, "RAM 절전 대기" 동작을 수행할 수 있다. 메모리(12)는 "셀프 리프레시" 모드로 배치될 수 있으며, 이 모드에서 메모리(12)는 메모리 내용을 유지하지만, 메모리 제어기(22)에 대한 메모리 인터페이스 상에서 활성 상태가 아니다. PMGR(32)은 PMU(156)에 전력 차단 커맨드들을 전달하여, 메모리 제어기(22), 패브릭(27)(또는 메모리 제어기(22)와의 사이에서 통신하는 데 사용되는 그것의 일부분), 및 상시-온 컴포넌트(16) 이외의, SOC(10) 내의 컴포넌트들의 전력 차단을 야기시킬 수 있다. 대안적으로, 로컬 PMGR(48)은 전력 차단 커맨드들을 전송할 수 있다. 상태 기계는 AO + 메모리 상태(74)로 전환될 수 있다. 일부 실시예들에서, SOC 온 상태(72)로부터 AO 상태(76)로의 전환이 또한 지원될 수 있다. 대안적으로, SOC 온 상태(72)로부터 AO 상태(76)로의 전환은 AO + 메모리 상태(74)를 통과할 수 있다. 즉, 목표 상태가 AO 상태(76)인 경우, AO + 메모리 상태(74)로의 전환이 이루어지고, 이어서 AO 상태(76)로의 전환이 뒤따를 수 있다.
AO + 메모리 상태(74)에서, 메모리 제어기(22), 통신 패브릭(27)(또는 상시-온 컴포넌트(16)로의 부분), 및 상시-온 컴포넌트(16)는 활성 상태일 수 있다. AO + 메모리 상태(74)는 도 3의 메모리 액세스 상태(66)에 대응할 수 있다. SOC를 웨이크업하게 하는 이벤트가 검출되는 경우, 상태 기계는 SOC 온 상태(72)로 전환될 수 있다(다양한 실시예들에서, PMU(156) 및/또는 SOC(10) 내의 전력 스위치들과의 통신을 통해 SOC(10)의 다른 컴포넌트들에 전력을 공급하고, SOC 재구성 회로(46)를 통해 그리고/또는 메모리(12) 내의 데이터로부터 컴포넌트들을 재구성함).
한편, 상시-온 컴포넌트(16)는 메모리 액세스가 완료되었다고 결정할 수 있고, (메모리(12)를 셀프-리프레시와 같은 유지 모드에 배치한 후에) 메모리 제어기(22)를 비활성화할 수 있다. 메모리 제어기(22)는 전력 차단될 수 있고, 상시-온 컴포넌트(16)는 전력 공급되는 상태를 유지할 수 있다. 상태 기계는 AO 상태(76)로 전환될 수 있다. AO 상태(76)는 도 3에서의 프로세스 상태(64), 캡처 상태(62), 및 대기 상태(60) 중 임의의 상태에 대응할 수 있다. 상시-온 컴포넌트(16)가 (예를 들어, SCM 데이터(52) 내의 다양한 임계치들에 도달하는 것 또는 프로세서(40)를 통해 패턴들/속성들을 검출하는 것으로 인해) 메모리 액세스를 다시 바람직하다고 결정하는 경우, 상태 기계는 AO + 메모리 상태(74)(메모리 제어기(22) 및 통신 패브릭(27)에 전력을 공급하고, SOC 재구성 회로(46)를 통해 동일하게 재구성함)로 전환될 수 있다. 일부 실시예들에서, AO 상태(76)로부터 SOC 온 상태(72)로의 직접 전환이 지원될 수 있으며, 이는 메모리 제어기(22), 통신 패브릭(27), SOC(10)의 다른 컴포넌트들에 전력을 공급하는 것 및 SOC 재구성 회로(46)를 통해 그러한 컴포넌트들을 재구성하는 것을 포함한다.
일 실시예에서, AO가 아닌 상태(No AO state)(78)가 지원될 수 있다. AO가 아닌 상태(78)는, 상시-온 컴포넌트(16)는 전력 차단되지만 메모리(12)는 유지 모드에서 전력 공급되는 상태를 유지하는 상태일 수 있다. AO가 아닌 상태(78)는 "고전적인(classic)" RAM 절전 대기 상태와 유사할 수 있다. AO가 아닌 상태(78)로부터 SOC 온 상태(72)로의 복귀는, 상시-온 컴포넌트(16)를 포함하는 SOC(10)의 컴포넌트들을 소프트웨어가 재구성하는 것을 포함할 수 있다. 소프트웨어는 CPU 프로세서들(30) 상에서 실행될 수 있다. 따라서, AO가 아닌 상태(78)로부터 SOC 온 상태(72)로의 전환은, 소프트웨어가 SOC(10)를 초기화했고 메모리(12)가 이미 상태를 저장하고 있음을 검출할 때까지의, 기본 부트 동작들을 포함할 수 있다.
다음으로 도 5를 참조하면, (예를 들어, CPU 프로세서들(30)에 의해) SOC(10) 상에서 실행될 수 있는 소프트웨어 코드의 일 실시예의 동작을 예시하는 흐름도가 도시된다. 코드는 SOC(10)를 포함하는 디바이스의 부트에서 실행될 수 있다. 코드는 컴포넌트의 프로그램가능 구성의 변경 동안 유사하게 실행될 수 있다. 구성 변경 동안 실행되는 코드는, 다양한 실시예들에서, 부트 동안 실행되는 것과 동일한 코드일 수 있거나, 아닐 수도 있다. 다른 실시예들에서, 도 5에 도시된 동작의 부분들은 하드웨어로 구현될 수 있다. 코드는, 프로세서 상에서 실행될 때, 도 5에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. 일 실시예에서, 도 5에 도시된 동작을 구현하는 코드는 대응하는 컴포넌트에 대한 드라이버 코드의 일부일 수 있고, 따라서 도 5에 도시된 동작은 다수의 코드 시퀀스들로 구현될 수 있다.
코드는 컴포넌트 내에 프로그래밍될 구성 파라미터들을 결정할 수 있다(블록(80)). 파라미터들은 컴포넌트 및 그것의 능력들을 발견하는 것에 기초할 수 있다. SOC(10) 내의 컴포넌트들은 그것들이 하드웨어로 구현되기 때문에 고정식일 수 있지만, 코드는 SOC(10)의 다수의 버전들 상에서 실행되도록 범용일 수 있다. 더욱이, SOC(10)는 다수의, 상이하게 설계된 디바이스들에 포함될 수 있다. 원하는 파라미터들은 SOC(10)가 인스턴스화되는 특정 디바이스에 의해 영향을 받을 수 있다.
코드는 구성 파라미터들을 컴포넌트에 기록하여(블록(82)), 컴포넌트를 프로그래밍할 수 있다. 구성 파라미터들이 슬립 상태 또는 다른 전력 차단 상태 이후에 SOC(10)에 다시 전력을 공급할 때 복구되어야 하는 데이터를 포함하는 경우(결정 블록(84), "예" 가지), 코드는 구성 파라미터들을 프로그램가능 구성 데이터(56)에 기록함으로써, SOC 재구성 회로(46) 내의 상태를 섀도잉할 수 있다(블록(86)). 다른 실시예들에서, SOC 재구성 회로(46)는 원하는 상태를 자동으로 섀도잉하도록 구성될 수 있다.
일부 실시예들에서, 구성 파라미터들 모두가 SOC(10)의 후속 전력 공급 시 컴포넌트에 복구되어야 하는 재구성 상태의 일부이어야 하는 것은 아님에 유의한다. 예를 들어, 컴포넌트와의 기본 통신에 요구되지 않는 다양한 선택적 특징들을 설정하는 파라미터들은 재구성시 디폴트 값들로 설정될 수 있다. 이러한 선택적 파라미터들은, 컴포넌트로 복구를 위해 CPU들(30) 상에서 실행을 재시작한 후에, 메모리(12)에서 RAM 절전 대기 상태로부터 판독될 수 있다. 따라서, 이러한 파라미터들은 SOC 재구성 회로(46)에 의해 저장된 상태의 일부일 필요가 없다. 또한, 앞서 언급한 바와 같이, 일부 실시예들에서, SOC 재구성 회로(46)에 기록된 파라미터들은 SOC(10)가 전력 차단될 때 컴포넌트 내에 프로그래밍된 것들과 상이할 수 있다. 이러한 경우, SOC 재구성 회로(46)에 기록된 파라미터들은 SOC(10)의 웨이크업에 응답하여 컴포넌트 내에 재프로그래밍되어야 하는 것들일 수 있다.
다음으로 도 6을 참조하면, SOC(10)의 하나 이상의 컴포넌트에 다시 전력이 공급되어야 한다는 상시-온 컴포넌트(16)에서의 결정에 응답하는, 상시-온 컴포넌트(16)의 일 실시예의 동작을 예시하는 흐름도가 도시된다. 예를 들어, 도 6의 동작은 메모리 제어기(22) 및 통신 패브릭(27)을 복구하기 위한, 메모리 액세스 상태(66)/AO + 메모리 상태(74)로의 전환의 일부일 수 있다. 도 6의 동작은 SOC(10) 전체에 걸쳐 컴포넌트들을 복구하기 위한, SOC 온 상태(68)/SOC 온 상태(72)로의 전환의 일부일 수 있다. 상시-온 컴포넌트(16)는 도 6에 도시된 동작을 구현하도록 구성될 수 있다.
상시-온 컴포넌트(16)는, 전력이 공급되고 있는 컴포넌트들의 전력의 복구를 야기시키도록 구성될 수 있다(블록(90)). 예를 들어, 로컬 PMGR(48)은, PMU(156)가 SOC(10)의 하나 이상의 공급 전압 레일에 공급 전압을 복구할 것을 요청하도록 구성될 수 있다. 대안적으로, 로컬 PMGR(48) 또는 상시-온 컴포넌트(16) 내의 다른 회로는 전력 게이팅된 컴포넌트들에 전력을 복구하기 위해 SOC(10) 내의 전력 스위치들을 제어하도록 구성될 수 있다. PMU 요청들과 전력 스위치 제어들의 조합 또한 사용될 수 있다.
전력이 안정화되고 임의의 컴포넌트 리셋이 완료되었으면, SOC 재구성 회로(46)는 컴포넌트에 대응하는 프로그램가능 구성 데이터(56)를 이용해 컴포넌트들을 프로그래밍하도록 구성될 수 있다(블록(92)). 재구성이 완료될 때까지(판정 블록(94)), SOC 재구성 회로(46)는 프로그램가능 구성 데이터(56)를 판독하고 데이터를 컴포넌트로 전송하도록 구성될 수 있다. 재구성이 완료되었으면(판정 블록(94), "예" 가지), 새로운 상태(예를 들어, 메모리 액세스 상태(66) 또는 SOC 온 상태(68))로의 전환이 완료될 수 있다(블록(96)).
전송은 임의의 형태를 취할 수 있다(예를 들어, 프로그래밍된 입력/출력(PIO) 기록, 전용 통신 경로, 메모리-매핑된 I/O 기록 등). 구성 파라미터들의 기록 외에도, 일부 실시예들은 컴포넌트로부터 상태를 결정하기 위해 프로그램가능 재구성 데이터(56) 내의 다른 정보를 지원할 수 있으며, 이는 재구성이 완료되었는지 아닌지의 결정의 일부를 형성할 수 있다(판정 블록(94)). 예를 들어, 일련의 구성 파라미터 기록들이 컴포넌트에 전송될 수 있으며, 이어서 예를 들어, 완료를 나타내거나 동작하기 위한 준비상태(readiness)를 나타내기 위해 컴포넌트가 업데이트하는 레지스터에 판독되는 폴링이 뒤따를 수 있다.
도 7은, SOC(10)의 컴포넌트들을 예시하고, 메모리 액세스 상태(66)/AO + 메모리 상태(74)에 대한 SOC(10)의 일 실시예에서 어느 컴포넌트들이 온 또는 오프인지를 예시하는 블록도이다. 도 7의 크로스해칭된 컴포넌트들은 전력 오프된 반면에, 크로스해칭되지 않은 컴포넌트들은 전력 온되어 있다. 다양한 패드들(98A 내지 98D)이 또한 도 7에 도시된다. 패드들은 SOC(10)의 핀들 상에서 신호들을 구동하고 핀들로부터 신호들을 수신하도록 구성된 입력/출력 드라이버/수신기 회로를 포함할 수 있다. 따라서, 패드들(98A 내지 98D)은 공급 전압들을 또한 수신할 수 있다. 이 실시예에서, 메모리(12)와 통신하기 위한 메모리 제어기(22)에 대한 패드(98C)는 전력 온될 수 있는데, 이는 상시-온 컴포넌트(16)로부터 다양한 센서들로의 패드들(98B)에서 마찬가지일 수 있다. PMU(156)로 통신하기 위한 PMGR(32)에 대한 패드(98D), 및 주변장치(18B)에 대한 패드들(98A)은, 둘 모두 전력 차단될 수 있다. 대안적으로, 단일 패드의 구조가 사용될 수 있으며, 이때 적어도 하나의 패드가 전력 온될 때마다 모든 패드들이 전력 온된다.
도 7에 도시된 바와 같이, 메모리 제어기(22) 및 상시-온 컴포넌트(16)는 나머지 컴포넌트들이 전력 차단되는 동안 전력 공급될 수 있다. 추가적으로, 상시-온 컴포넌트(16)와 메모리 제어기(22) 사이에서 통신하기 위해 사용되는 통신 패브릭(27)의 일부분(99)에 전력이 공급되는 동안, 통신 패브릭(27)의 나머지는 전력 차단될 수 있다. 예를 들어, 일 실시예에서, 통신 패브릭(27)은 주변장치들(18A, 18B), CPU 컴플렉스(14), 및 상시-온 컴포넌트(16)와 같은 소스들로부터 메모리 제어기(22)로 트랜잭션들을 라우팅하기 위한 계층적 세트의 버스들 및 회로를 포함할 수 있다. 패브릭은 또한 (기록을 위해 메모리 제어기(22)로, 판독을 위해 메모리 제어기(22)로부터) 데이터를 전달하고, 메모리 제어기(22)로부터 소스들로 응답들을 전달할 수 있다. 상시-온 컴포넌트(16)와 메모리 제어기(22) 사이의 계층적 인터페이스 및 회로의 부분들은 전력 온될 수 있고, 다른 부분들은 전력 오프될 수 있다.
도 8은 일 실시예에 대한, 재구성 메커니즘을 사용한 지연 시간 감소를 예시하는 블록도이다. 도 8의 좌측 편의 화살표에 의해 도시된 바와 같이, 도 8의 위에서 아래로 시간이 증가한다. 좌측으로 집적회로(10)에 대한 부트 시퀀스가 있으며, 우측으로는 본 구현예의 재구성 메커니즘에 따른 재구성이 있다.
부트 시퀀스는 SOC(10)를 포함하는 디바이스가 초기에 전력 공급될 때 수행될 수 있다. 따라서, 메모리(12)에는 저장된 데이터가 없고 SOC(10)는 초기화되지 않으며, 프로그램가능 재구성 데이터(56)를 포함한다. 부트 시퀀스는 판독 전용 메모리(ROM) 로드(load)(100), 저레벨 부트(102), 및 커널(104)을 포함한다. ROM 로드(100)는 CPU 프로세서들(30)에 의한 리셋의 종료시에 시작할 수도 있고, ROM(예를 들어, 보안 ROM)으로부터 저레벨 부트(102)를 위한 저레벨 부트 코드를 판독하는 것, 저레벨 부트 코드를 복호화 및/또는 인증하는 것, 및 저레벨 부트 코드를 시작하는 것을 포함할 수 있다. 저레벨 부트 코드는 SOC(10)의 다양한 컴포넌트들을 발견할 수 있고, 컴포넌트들을 초기화할 수 있다. 일반적으로, 초기화의 양, 초기화될 컴포넌트들, 및 컴포넌트들이 저레벨 부트 코드에 의해 초기화되는 상태는, 커널 코드(커널 블록(104))의 설계에 따라 제어될 수 있다. 즉, 저레벨 부트 코드는, 커널 코드가 그것의 첫 번째 명령어를 실행할 때 제위치에 있을 것으로 기대되는 시스템/SOC(10) 내의 상태를 생성할 수 있다. 커널 코드는, 시스템에서 실행되는 다양한 애플리케이션 프로그램들에 의해 사용할 SOC(10)의 리소스들을 관리하는, 운영체제의 중심 코어일 수 있다.
재구성 메커니즘을 사용하여 다시 전력을 공급할 때, ROM 로드(100)는 회피될 수 있다. 재구성 메커니즘(블록(106))은 저레벨 부트(102)와 동일한 효과를 가질 수 있지만, 일부 경우들에서 저레벨 부트 코드보다 더 빠를 수 있다. 최악의 경우, 재구성 메커니즘(106)은 저레벨 부트(102)와 동일한 지연 시간을 가질 수 있다. 재구성 메커니즘(106)의 마지막에서, 커널(104)은 실행할 준비가 되어 있을 수 있다. 재구성 메커니즘을 사용한 지연 시간 감소는 화살표(108)로 표시된다.
다른 실시예에서, 재구성 메커니즘(106)은, 저레벨 부트 코드로부터 재구성 코드를 도출하고, 전력 공급 이벤트 이후에 CPU 프로세서들(30)에 의해 액세스가능한 위치에(예를 들어, SOC(10) 내의 또는 그것에 연결된, 플래시 메모리와 같은 비휘발성 메모리에) 코드를 저장함으로써 구현될 수 있다. CPU 프로세서들(30)에 전력을 공급하고 리셋한 이후에, CPU 프로세서들(30)은 재구성 코드가 실행될 수 있도록 위치를 가리키는 리셋 벡터로 리셋으로부터 해제될 수 있다. 재구성 코드는 커널에 대한 호출로 종료할 수 있다.
도 9는 일 실시예에 대한, 웨이크업 지연 시간을 감소시키기 위한 추론의 사용을 도시하는 블록도이다. 일반적으로, 도 9에 도시된 것과 같은 추론은 지연 시간을 감소시키기 위한 임의의 레벨(예를 들어, 도 3 및 도 4의 상태들 사이의 임의의 전환)에서 사용될 수 있다. 추론적으로 회로에 전력을 공급하고 추론이 잘못된 경우 그것을 다시 전력 차단하는 것에서 일부 전력이 소비될 수 있지만, 상당히 정확한 추론은 양호한 전력/성능 트레이드오프일 수 있다. 도 8과 유사하게, 도 9의 위에서 아래로 시간이 증가한다.
도 9의 좌측에는 추론 없이 수행되는 시퀀스가 있다. 상시-온 컴포넌트(16)는 N개의 센서 샘플들을 수집할 수 있다(블록(110)). 즉, 상시-온 컴포넌트(16)는 매번 센서 데이터를 캡처하면서 대기 상태(60)와 캡처 상태(62) 사이에서 N번 전환될 수 있다(여기서 N은 양의 정수이다). 상시-온 컴포넌트(16)는 이 예에서 N의 임계치로 프로그래밍되어서, N개의 센서 샘플들 후에, 상태 기계가 프로세스 상태(64)로 전환되도록(프로세서(40)를 웨이크함) 할 수 있다. 프로세서(40)는 센서 데이터를 처리할 수 있지만(블록(112)), 프로세서(40)로 하여금 메모리 제어기(22) 또는 SOC(10)의 다른 부품들을 웨이크하게 하는 센서 데이터의 패턴 또는 다른 속성을 검출하지는 않는다. 상태 기계는 캡처 상태(62) 및/또는 대기 상태(60)로 돌아갈 수 있다. 후속적으로, N개 더 센서 샘플들이 수집될 수 있고(블록(114)), 프로세서(40)는 다시 웨이크될 수 있으며 센서 데이터를 처리할 수 있다(블록(116)). 이 경우, 프로세서(40)는, CPU 프로세서들(30)이 추가로 센서 데이터를 처리하거나 다른 처리를 수행할 수 있도록 SOC(10)가 웨이크되어야 함을 검출할 수 있다. 따라서, 상태 기계는 SOC 온 상태(68/72)로 전환되면서, SOC(10)를 웨이크하고 처리를 허용할 수 있다(블록(118)).
도 9의 우측에는 SOC(10)를 턴 온시키는 것에 대한 지연 시간을 감소시키기 위한 추론의 예가 있다. 좌측의 예와 유사하게, 우측의 예는, 상시-온 컴포넌트(16)가 N개의 센서 샘플들을 수집하고 프로세서(40)를 웨이크하면서(블록(120)), 상태 기계를 프로세스 상태(64)로 전환시키는 것을 포함할 수 있다. 그러나, 이 경우, 프로세서(40)에 의해 실행되는 코드는 (예를 들어, 도 9의 좌측 편의 블록들(112, 116)과 유사한) 즉각적 SOC 처리에 대한 요구를 나타내는 센서 데이터 내의 패턴들/속성들을 검색할 뿐만 아니라, SOC 처리가 곧 요구될 것임을 예측하는 패턴들/속성들을 검색한다. 우측의 예에서, 프로세서(40)에 의해 실행되는 코드는 SOC 처리가 요구되는 것을 예측할 수 있고(블록(122)), 상태 기계들이 SOC 온 상태(68/72)로 전환되게 할 수 있다(블록(124)). SCM(44)은 계속해서 병렬로도 센서 샘플들을 캡처할 수 있다. 웨이크업을 야기시킬 패턴/속성이 검출되는 경우, SOC(10)는 이미 준비되어 있을 수 있다. 지연 시간은 화살표(126)에 의해 도시된 바와 같이, 좌측의 예에 비해 감소될 수 있다. 예측이 잘못된 경우(도 9에서의 예측 오류), SOC(10)는 슬립으로 돌아갈 수 있다(블록(128)). 이 경우, SOC(10)를 웨이크업하는 데 사용된 전력은 낭비되었을 수 있다.
다음으로 도 10을 참조하면, 시스템(150)의 일 실시예의 블록도가 도시된다. 예시된 실시예에서, 시스템(150)은 하나 이상의 주변장치(154) 및 외부 메모리(12)에 연결된 SOC(10)의 적어도 하나의 인스턴스를 포함한다. SOC(10)에 공급 전압들을 공급할 뿐만 아니라, 메모리(12) 및/또는 주변장치들(154)에 하나 이상의 공급 전압을 공급하는 PMU(156)가 제공된다. 일부 실시예들에서, SOC(10)의 둘 이상의 인스턴스가 포함될 수 있다(그리고 둘 이상의 메모리(12) 또한 포함될 수 있다).
주변장치들(154)은 시스템(150)의 유형에 따라, 임의의 원하는 회로를 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(150)은 모바일 디바이스(예컨대, 개인용 휴대 단말기(PDA), 스마트 폰 등)일 수 있으며, 주변장치들(154)은 wifi, 블루투스, 셀룰러, 글로벌 포지셔닝 시스템 등과 같은 다양한 유형의 무선 통신용 디바이스들을 포함할 수 있다. 또한, 주변장치들(154)은 RAM 저장장치, 솔리드 스테이트 저장장치 또는 디스크 저장장치를 포함한, 추가 저장장치를 포함할 수 있다. 주변장치들(154)은 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린을 포함하는 디스플레이 스크린, 키보드 또는 다른 입력 디바이스들, 마이크로폰, 스피커 등과 같은 사용자 인터페이스 디바이스들을 포함할 수 있다. 도 1의 실시예에서, 주변장치들(154)은 센서들(20)을 포함할 수 있다. 다른 실시예들에서, 시스템(150)은 임의의 유형의 컴퓨팅 시스템(예를 들어, 데스크톱 개인용 컴퓨터, 랩톱, 워크스테이션, 넷톱 등)일 수 있다.
외부 메모리(12)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들어, 외부 메모리(12)는 SRAM, 동적 RAM(DRAM), 예컨대 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM, RAMBUS DRAM, 저전력 버전들의 DDR DRAM(예를 들어, LPDDR, mDDR 등) 등일 수 있다. 외부 메모리(12)는 메모리 디바이스들이 장착되는 하나 이상의 메모리 모듈, 예컨대 단일 인라인 메모리 모듈(single inline memory module; SIMM), 듀얼 인라인 메모리 모듈(dual inline memory module; DIMM) 등을 포함할 수 있다. 대안적으로, 외부 메모리(12)는 칩-온-칩 또는 패키지-온-패키지 구현예로 SOC(10) 상에 장착되는 하나 이상의 메모리 디바이스를 포함할 수 있다.
도 11은 컴퓨터 액세스 가능 저장 매체(200)의 일 실시예가 도시된 블록도이다. 일반적으로 말하면, 컴퓨터 액세스가능 저장 매체는 명령어들 및/또는 데이터를 컴퓨터에 제공하기 위하여 사용하는 동안 컴퓨터에 의해 액세스가능한 임의의 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 액세스가능 저장 매체는, 자기 또는 광학 매체, 예를 들어, 디스크(고정식 또는 이동식), 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, 또는 블루레이(Blu-Ray)와 같은 저장 매체를 포함할 수 있다. 저장 매체는, RAM(예를 들어, 동기식 동적 RAM(synchronous dynamic RAM; SDRAM), 램버스 DRAM(RDRAM), 정적 RAM(SRAM) 등), ROM, 또는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리 매체를 추가로 포함할 수 있다. 저장 매체는 저장 매체가 명령어들/데이터를 제공하는 컴퓨터 내에 물리적으로 포함될 수 있다. 대안적으로, 저장 매체는 컴퓨터에 접속될 수 있다. 예를 들어, 저장 매체는 네트워크 부착형 저장장치와 같은, 네트워크 또는 무선 링크를 통해 컴퓨터에 접속될 수 있다. 저장 매체는 범용 시리얼 버스(USB)와 같은 주변장치 인터페이스를 통해 접속될 수 있다. 일반적으로, 컴퓨터 액세스가능 저장 매체(200)는 비일시적 방식으로 데이터를 저장할 수 있고, 본 맥락에서 비일시적은 신호 상에서 명령어들/데이터를 전송하지 않는 것을 지칭할 수 있다. 예를 들어, 비일시적 저장장치는 휘발성(그리고 전력 차단에 응답하여 저장된 명령어들/데이터를 잃을 수 있음) 또는 비휘발성일 수 있다.
도 11의 컴퓨터 액세스가능 저장 매체(200)는 상시-온 컴포넌트 코드(202)를 저장할 수 있다. 상시-온 컴포넌트 코드(202)는, 프로세서(40)에 의해 실행될 때, 상기 코드에 대해 기술된 동작을 구현하는 명령어들을 포함할 수 있다. 상시-온 컴포넌트 코드(202)는 예를 들어, 도 2에 도시된 프로세서 코드(54)를 포함할 수 있다. 도 11의 컴퓨터 액세스가능 저장 매체(200)는 추가로 CPU 코드(204)를 저장할 수 있다. CPU 코드(204)는 ROM 로드 코드(206), 저레벨 부트 코드(208) 및/또는 커널 코드(210)를 포함할 수 있다. 각각의 코드는, 실행될 때, 예를 들어, ROM 로드 블록(100), 저레벨 부트 블록(102), 및 커널 블록(104)에 할당된 동작들을 구현하는 명령어들을 포함할 수 있다. 캐리어 매체는 유선 또는 무선 전송과 같은 전송 매체뿐만 아니라 컴퓨터 액세스가능 저장 매체를 포함할 수 있다.
상기의 개시내용이 완전히 이해된다면, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어서 다수의 변경들 및 수정들이 명백해질 것이다. 하기의 청구범위는 모든 그러한 변경들 및 수정들을 포괄하는 것으로 해석되는 것으로 의도된다.

Claims (18)

  1. 집적회로로서,
    상기 집적회로 내에 통합된 복수의 컴포넌트 - 상기 복수의 컴포넌트는 사용 동안 제1 메모리에 연결되는 중앙처리장치(CPU) 프로세서 및 메모리 제어기를 포함함 -; 및
    상기 복수의 컴포넌트에 연결된 제1 컴포넌트를 포함하며, 상기 제1 컴포넌트는 또한 상기 집적회로 내에 통합되고, 상기 제1 컴포넌트는 상기 복수의 컴포넌트가 전력 오프되는 동안 전력 온 상태를 유지하도록 구성되고, 상기 제1 컴포넌트는 상기 복수의 컴포넌트가 전력 오프되는 시간 동안 상기 집적회로를 포함하는 시스템 내의 적어도 하나의 센서에 연결되도록 구성되며, 상기 제1 컴포넌트는 프로세서, 센서 캡처 회로, 및 제2 메모리를 포함하고:
    상기 센서 캡처 회로는 상기 적어도 하나의 센서로부터 센서 데이터의 N개 샘플들을 상기 제2 메모리 내에 캡처하도록 구성되며, N은 양의 정수이고, 상기 프로세서는 상기 N개 샘플들의 상기 캡처 동안 전력 오프되고;
    상기 제1 컴포넌트는 상기 N개 샘플들의 상기 캡처에 응답하여 상기 프로세서를 전력 온하도록 구성되고;
    상기 프로세서는 상기 캡처된 센서 데이터의 N개 샘플들 내에서 미리결정된 상태를 검출하고;
    상기 제1 컴포넌트는 상기 캡처된 센서 데이터의 N개 샘플들이 상기 제2 메모리 내에 임계 레벨까지 채워지는 것 및 상기 프로세서가 상기 캡처된 센서 데이터의 N개 샘플들 내에서 상기 미리결정된 상태가 없음을 검출하는 것에 응답하여, 상기 메모리 제어기 및 상기 제1 컴포넌트로부터 상기 메모리 제어기로의 통신 경로가 전력 온되게 하도록 구성되고;
    상기 제1 컴포넌트는 상기 CPU 프로세서에 의한 처리를 위하여 상기 캡처된 센서 데이터의 N개 샘플들을 상기 제2 메모리로부터 상기 제1 메모리로 기록하도록 구성되고, 상기 프로세서가 상기 미리결정된 상태가 없음을 검출하는 것에 응답하여 상기 CPU가 전원 오프 상태를 유지하는 동안 상기 기록이 완료되고;
    상기 제1 컴포넌트는 상기 미리결정된 상태를 검출하는 것에 응답하여 상기 복수의 컴포넌트의 전력 온을 야기하도록 구성되고, 상기 CPU 프로세서는 상기 제1 메모리 내의 상기 캡처된 센서 데이터를 처리하도록 구성되는, 집적회로.
  2. 제1항에 있어서, 상기 프로세서는 상기 제2 메모리 내의 상기 캡처된 센서 데이터의 N개 샘플들을 필터링하도록 구성되는, 집적회로.
  3. 제2항에 있어서, 상기 제1 컴포넌트는, 상기 프로세서가 상기 필터링 동안 상기 캡처된 센서 데이터의 N개 샘플들 내에서 미리결정된 상태를 검출하는 것에 응답하여, 상기 복수의 컴포넌트가 전력 온되게 하도록 구성되는, 집적회로.
  4. 제1항에 있어서, 상기 제1 컴포넌트는 복수의 전력 상태에서 동작하도록 구성되고, 상기 복수의 전력 상태 중 제1 전력 상태는, 상기 프로세서가 비활성인 동안에, 상기 센서 캡처 회로가 전력 온되고 센서 데이터를 캡처하는 것을 포함하는, 집적회로.
  5. 제4항에 있어서, 상기 복수의 전력 상태 중 제2 전력 상태는 상기 프로세서가 상기 처리를 수행하기 위해 활성인 것을 포함하고, 상기 제1 컴포넌트는 상기 제2 메모리 내의 상기 캡처된 센서 데이터가 미리결정된 양에 도달하는 것에 응답하여 상기 제1 전력 상태로부터 상기 제2 전력 상태로 전환되도록 구성되는, 집적회로.
  6. 제4항에 있어서, 상기 복수의 전력 상태 중 제3 전력 상태는 상기 센서 캡처 회로 및 상기 프로세서가 비활성인 것을 포함하고, 상기 제1 컴포넌트는 센서 데이터가 판독하는데 이용가능한 것에 응답하여 상기 제3 전력 상태로부터 상기 제1 전력 상태로 전환되도록 구성되는, 집적회로.
  7. 시스템으로서,
    제1항의 상기 적어도 하나의 센서; 및
    제1항의 상기 집적회로를 포함하는, 시스템.
  8. 제7항에 있어서, 상기 센서는 가속도계인, 시스템.
  9. 제7항에 있어서, 상기 센서는 자이로스코프인, 시스템.
  10. 방법으로서,
    집적회로 내의 복수의 컴포넌트 중 제1 컴포넌트에, 상기 복수의 컴포넌트의 나머지가 전력 차단되는 시간 동안, 전력을 공급하는 단계 - 상기 제1 컴포넌트를 포함하는 상기 복수의 컴포넌트는 상기 집적회로에 통합됨 -; 및
    상기 복수의 컴포넌트의 나머지가 전력 차단되는 시간 동안, 상기 제1 컴포넌트가,
    상기 제1 컴포넌트 내의 센서 캡처 회로 및 상기 제1 컴포넌트 내의 메모리를 사용하여 상기 집적회로에 연결된 적어도 하나의 센서로부터 센서 데이터의 N개 샘플들을 캡처하는 단계 - 상기 메모리는 상기 센서 캡처 회로에 의해 캡처된 상기 샘플들을 저장하기 위한 것이고, N은 양의 정수이고, 상기 제1 컴포넌트 내의 프로세서는 상기 캡처 동안 전력이 차단됨 -;
    상기 N개 샘플들의 캡처에 응답하여 상기 프로세서에 전력을 공급하는 단계;
    상기 제1 컴포넌트 내의 상기 프로세서에 의해 상기 메모리로부터의 상기 캡처된 센서 데이터의 N개 샘플들을 처리하는 단계;
    상기 캡처된 센서 데이터의 N개 샘플들 내에서 미리결정된 상태를 검출하는 것에 응답하여 상기 복수의 컴포넌트의 나머지에 전력을 공급하는 단계;
    상기 캡처된 센서 데이터의 N개 샘플들이 상기 메모리 내에 임계 레벨까지 채워지는 것 및 상기 프로세서가 상기 처리 동안 상기 캡처된 센서 데이터의 N개 샘플들 내에서 상기 미리결정된 상태가 없음을 검출하는 것에 응답하여, 메모리 제어기 및 상기 제1 컴포넌트로부터 상기 메모리 제어기로의 통신 경로에 전력을 공급하는 단계; 및
    상기 메모리로부터 상기 메모리 제어기에 의해 제어되는 제2 메모리로상기 N개의 샘플들을 기록하는 단계 - 상기 복수의 컴포넌트 중 하나는 상기 제2 메모리 내의 상기 캡처된 센서 데이터를 처리하도록 구성된 중앙처리장치(CPU) 프로세서를 포함하고, 상기 기록은 상기 제1 컴포넌트에 의해 수행되고 상기 캡처된 센서 데이터의 N개 샘플들 내에서 상기 미리결정된 상태가 없음을 검출하는 것에 응답하여 상기 CPU 프로세서가 전력 차단을 유지하는 동안 수행됨 -
    를 포함하는, 방법.
  11. 제10항에 있어서, 상기 처리는 상기 캡처된 센서 데이터의 N개 샘플들을 필터링하는 것을 포함하는, 방법.
  12. 제11항에 있어서, 상기 제1 컴포넌트는 복수의 전력 상태에서 동작하도록 구성되고, 상기 캡처는 상기 복수의 전력 상태 중 제1 전력 상태에서 발생하고, 상기 필터링은 상기 복수의 상태 중 제2 전력 상태에서 발생하며, 상기 방법은,
    상기 캡처된 센서 데이터의 N개 샘플들이 필터링할 준비가 되어 있음을 검출하는 단계; 및
    상기 검출에 응답하여 상기 제1 전력 상태로부터 상기 제2 전력 상태로 전환되는 단계를 추가로 포함하는, 방법.
  13. 제12항에 있어서, 상기 제1 컴포넌트는 유휴(idle)일 때 제3 전력 상태에서 동작하도록 추가로 구성되며, 상기 방법은,
    상기 센서 데이터의 N개 샘플들이 캡처할 준비가 되어 있음을 검출하는 단계; 및
    상기 검출에 응답하여 상기 제3 전력 상태로부터 상기 제1 전력 상태로 전환되는 단계를 추가로 포함하는, 방법.
  14. 제12항에 있어서, 상기 제1 전력 상태는 상기 센서 캡처 회로가 활성이고 상기 프로세서가 비활성인 것을 포함하며, 상기 제2 전력 상태로 전환되는 단계는 상기 필터링을 수행하기 위해 상기 프로세서를 활성화하는 단계를 포함하는, 방법.
  15. 제13항에 있어서, 상기 제3 전력 상태는 상기 프로세서 및 상기 센서 캡처 회로가 비활성인 것을 포함하고, 상기 제1 전력 상태로 전환되는 단계는 상기 센서 캡처 회로를 활성화하는 단계를 포함하는, 방법.
  16. 제13항에 있어서, 상기 센서 데이터의 캡처를 완료하는 것에 응답하여 상기 제1 전력 상태로부터 상기 제3 전력 상태로 전환되는 단계를 추가로 포함하는, 방법.
  17. 제13항에 있어서, 상기 필터링을 완료하는 것에 응답하여 상기 제2 전력 상태로부터 상기 제1 전력 상태 및 상기 제3 전력 상태 중 하나로 전환되는 단계를 추가로 포함하는, 방법.
  18. 삭제
KR1020167032504A 2014-05-29 2015-04-01 상시-온 프로세서를 갖는 시스템 온 칩 KR101957555B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462004317P 2014-05-29 2014-05-29
US62/004,317 2014-05-29
US14/458,885 US10031000B2 (en) 2014-05-29 2014-08-13 System on a chip with always-on processor
US14/458,885 2014-08-13
PCT/US2015/023824 WO2015183404A1 (en) 2014-05-29 2015-04-01 System on a chip with always-on processor

Publications (2)

Publication Number Publication Date
KR20160145791A KR20160145791A (ko) 2016-12-20
KR101957555B1 true KR101957555B1 (ko) 2019-03-12

Family

ID=52829474

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032504A KR101957555B1 (ko) 2014-05-29 2015-04-01 상시-온 프로세서를 갖는 시스템 온 칩

Country Status (8)

Country Link
US (6) US10031000B2 (ko)
EP (1) EP3146408B1 (ko)
JP (1) JP6449997B2 (ko)
KR (1) KR101957555B1 (ko)
CN (1) CN106255937B (ko)
AU (1) AU2015267615B2 (ko)
TW (1) TWI582578B (ko)
WO (1) WO2015183404A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10079019B2 (en) 2013-11-12 2018-09-18 Apple Inc. Always-on audio control for mobile device
US9619377B2 (en) 2014-05-29 2017-04-11 Apple Inc. System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
US10031000B2 (en) 2014-05-29 2018-07-24 Apple Inc. System on a chip with always-on processor
US9778728B2 (en) 2014-05-29 2017-10-03 Apple Inc. System on a chip with fast wake from sleep
WO2017012126A1 (en) * 2015-07-23 2017-01-26 Qualcomm Technologies International, Ltd. Fast authentication of code in a low-power system
CN106850985B (zh) * 2017-02-04 2019-07-05 Oppo广东移动通信有限公司 移动终端传感器的控制方法、装置及移动终端
US10352782B2 (en) * 2017-03-06 2019-07-16 Nxp Usa, Inc. Thermal monitoring system in an integrated circuit die
US10474224B2 (en) * 2017-03-14 2019-11-12 Qualcomm Incorporated Quick energy efficient reboot from ultra-low power mode for a system on a chip
CN109427402A (zh) * 2017-08-23 2019-03-05 西安莫贝克半导体科技有限公司 固态硬盘
CN109426322A (zh) * 2017-08-23 2019-03-05 西安莫贝克半导体科技有限公司 一种固态硬盘及其供电方法
US10754414B2 (en) 2017-09-12 2020-08-25 Ambiq Micro, Inc. Very low power microcontroller system
US10642338B2 (en) * 2017-09-28 2020-05-05 Intel Corporation Hierarchical power management unit for low power and low duty cycle devices
CN111164952A (zh) * 2017-11-16 2020-05-15 英特尔公司 分布式软件定义的工业系统
CN110678825B (zh) * 2017-11-21 2023-12-08 谷歌有限责任公司 具有机器学习功能的低功率环境计算系统
US10782759B1 (en) 2019-04-23 2020-09-22 Arbor Company, Lllp Systems and methods for integrating batteries with stacked integrated circuit die elements
US11176493B2 (en) 2019-04-29 2021-11-16 Google Llc Virtualizing external memory as local to a machine learning accelerator
CN110286741B (zh) * 2019-06-28 2020-12-29 深圳忆联信息系统有限公司 一种固态硬盘片上系统功耗管理方法及其装置
CN112948320B (zh) * 2019-12-11 2024-01-16 瑞昱半导体股份有限公司 具有内存的芯片
US11463524B2 (en) * 2020-06-29 2022-10-04 Arbor Company, Lllp Mobile IoT edge device using 3D-die stacking re-configurable processor module with 5G processor-independent modem
US20230300532A1 (en) * 2020-07-28 2023-09-21 Sonical Sound Solutions Fully customizable ear worn devices and associated development platform
TWI760974B (zh) * 2020-12-17 2022-04-11 新唐科技股份有限公司 處理器晶片及顯示資訊更新方法
WO2023219757A1 (en) 2022-05-09 2023-11-16 Apple Inc. Proactive recording of locations for backtracking
WO2023219777A1 (en) 2022-05-09 2023-11-16 Apple Inc. Rhythmic collection of positioning information

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011520326A (ja) * 2008-04-11 2011-07-14 クゥアルコム・インコーポレイテッド 特定目的プロセッサ及びモーション・センシングの少なくとも一つを用いる電力管理
US20120254878A1 (en) * 2011-04-01 2012-10-04 Lama Nachman Mechanism for outsourcing context-aware application-related functionalities to a sensor hub

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253410A (en) * 1991-04-08 1993-10-19 Magline, Inc. Retractable underbody truck ramp and method of making
US6593845B1 (en) 1998-01-09 2003-07-15 Intermac Ip Corp. Active RF tag with wake-up circuit to prolong battery life
US6748548B2 (en) 2000-12-29 2004-06-08 Intel Corporation Computer peripheral device that remains operable when central processor operations are suspended
US6843635B2 (en) * 2001-04-17 2005-01-18 Lift-U, Division Of Hogan Mfg., Inc. Vehicle fold-out ramp
US6775750B2 (en) 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
EP1331539B1 (en) 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
JP2003295987A (ja) * 2002-04-03 2003-10-17 Canon Electronics Inc 電子機器、動作モード制御方法、プログラム、及び記憶媒体
EP1351146A1 (en) 2002-04-04 2003-10-08 Hewlett-Packard Company Power management system and method with recovery after power failure
US6698998B2 (en) * 2002-05-08 2004-03-02 Ricon Corp. Foldable ramp
US7134028B2 (en) 2003-05-01 2006-11-07 International Business Machines Corporation Processor with low overhead predictive supply voltage gating for leakage power reduction
US8864822B2 (en) 2003-12-23 2014-10-21 Mitralign, Inc. Devices and methods for introducing elements into tissue
US8112618B2 (en) 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
JP2006107127A (ja) 2004-10-05 2006-04-20 Nec Electronics Corp 半導体集積回路装置
US7995775B2 (en) * 2006-07-14 2011-08-09 Broadcom Corporation Automatic volume control for audio signals
US7797523B2 (en) 2006-09-25 2010-09-14 Hewlett-Packard Development Company, L.P. Method and system of executing stack-based memory reference code
US8041968B2 (en) 2007-01-04 2011-10-18 Apple Inc. Power management for driving display with baseband portion when application portion is in low power mode
US7991992B2 (en) 2007-03-13 2011-08-02 Intel Corporation Power reduction for system on chip
US8065546B2 (en) 2007-05-03 2011-11-22 Microchip Technology Incorporated Interrupt/wake-up of an electronic device in a low power sleep mode when detecting a sensor or frequency source activated frequency change
US20080271266A1 (en) * 2007-05-04 2008-11-06 Lift-U, Division Of Hogan Mfg., Inc. Latch for a fold out ramp
US7941682B2 (en) 2007-05-09 2011-05-10 Gainspan, Inc. Optimum power management of system on chip based on tiered states of operation
EP2166433B1 (en) * 2007-07-09 2017-03-15 Sony Corporation Electronic apparatus and method for controlling the same
US9613215B2 (en) 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US7908695B2 (en) * 2008-04-11 2011-03-22 The Braun Corporation Manually-operated ramp for handicapped access
US8065540B2 (en) 2008-10-31 2011-11-22 Dell Products, Lp Power control for information handling system having shared resources
US8103803B2 (en) 2008-11-21 2012-01-24 Nvidia Corporation Communication between a processor and a controller
KR101512493B1 (ko) * 2009-02-06 2015-04-15 삼성전자주식회사 저전력 시스템온칩
JP5080510B2 (ja) 2009-02-12 2012-11-21 株式会社日立製作所 宅内ゲートウェイ装置
US8405505B2 (en) 2009-05-26 2013-03-26 Qualcomm Incorporated Power management of sensors within a mobile device
GB2472050B (en) 2009-07-22 2013-06-19 Wolfson Microelectronics Plc Power management apparatus and methods
KR101624903B1 (ko) * 2009-09-16 2016-05-30 삼성전자주식회사 휴대용 단말기에서 전력 소모를 줄이기 위한 장치 및 방법
US7913343B1 (en) * 2009-10-16 2011-03-29 Lift-U, A Division Of Hogan Mfg., Inc. Counterbalance mechanism for fold out ramp
US9098274B2 (en) * 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
JP2011129041A (ja) 2009-12-21 2011-06-30 Fujitsu Ltd 情報処理装置、認証処理制御プログラムおよび認証処理制御方法
US8656198B2 (en) 2010-04-26 2014-02-18 Advanced Micro Devices Method and apparatus for memory power management
US8751802B2 (en) 2010-06-30 2014-06-10 Sandisk Il Ltd. Storage device and method and for storage device state recovery
US8438416B2 (en) 2010-10-21 2013-05-07 Advanced Micro Devices, Inc. Function based dynamic power control
US8706172B2 (en) * 2010-10-26 2014-04-22 Miscrosoft Corporation Energy efficient continuous sensing for communications devices
US9135213B2 (en) 2011-01-13 2015-09-15 Xilinx, Inc. Extending a processor system within an integrated circuit and offloading processes to process-specific circuits
US9229489B2 (en) * 2011-05-03 2016-01-05 Facebook, Inc. Adjusting mobile device state based on user intentions and/or identity
US20130124891A1 (en) 2011-07-15 2013-05-16 Aliphcom Efficient control of power consumption in portable sensing devices
US8954017B2 (en) 2011-08-17 2015-02-10 Broadcom Corporation Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device
US8862917B2 (en) 2011-09-19 2014-10-14 Qualcomm Incorporated Dynamic sleep for multicore computing devices
EP2769272A1 (en) 2011-10-18 2014-08-27 Slyde Watch SA A method and circuit for switching a wristwatch from a first power mode to a second power mode
US8812761B2 (en) 2011-10-28 2014-08-19 Apple Inc. System and method for adjusting power usage to reduce interrupt latency
US8631529B1 (en) * 2011-11-02 2014-01-21 Lift-U, Division Of Hogan Mfg., Inc. Operable step
WO2013089686A1 (en) 2011-12-13 2013-06-20 Intel Corporation A method and system for providing instant responses to sleep state transitions with non-volatile random access memory
US9377830B2 (en) 2011-12-30 2016-06-28 Samsung Electronics Co., Ltd. Data processing device with power management unit and portable device having the same
KR20130079076A (ko) 2011-12-30 2013-07-10 삼성전자주식회사 데이터 처리 장치와 이를 포함하는 휴대용 장치
US9063574B1 (en) 2012-03-14 2015-06-23 Amazon Technologies, Inc. Motion detection systems for electronic devices
US8892269B2 (en) 2012-03-30 2014-11-18 Intel Corporation Power down and quick start of thermal sensor
TWI594188B (zh) 2012-04-10 2017-08-01 祥碩科技股份有限公司 系統單晶片及其開機方法
US20130318382A1 (en) * 2012-05-23 2013-11-28 Canon Kabushiki Kaisha Power management apparatus, image forming apparatus and power management method
US9182999B2 (en) 2012-05-30 2015-11-10 Advanced Micro Devices, Inc. Reintialization of a processing system from volatile memory upon resuming from a low-power state
KR101896666B1 (ko) 2012-07-05 2018-09-07 삼성전자주식회사 이미지 센서 칩, 이의 동작 방법, 및 이를 포함하는 시스템
KR102045511B1 (ko) * 2012-07-18 2019-11-15 삼성전자 주식회사 센서 허브를 포함하는 단말기 및 단말기의 제어 방법
US9063731B2 (en) 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
US9152205B2 (en) 2012-08-28 2015-10-06 Intel Corporation Mechanism for facilitating faster suspend/resume operations in computing systems
US9208371B2 (en) 2012-09-28 2015-12-08 Synaptics Incorporated Low power navigation devices, systems and methods
KR101927096B1 (ko) 2012-10-19 2018-12-10 삼성전자주식회사 어플리케이션 프로세서, 이를 구비하는 모바일 기기 및 어플리케이션 프로세서를 위한 클럭 신호 선택 방법
WO2014063330A1 (en) 2012-10-25 2014-05-01 Intel Corporation Anti-theft in firmware
US9760150B2 (en) 2012-11-27 2017-09-12 Nvidia Corporation Low-power states for a computer system with integrated baseband
US9081571B2 (en) * 2012-11-29 2015-07-14 Amazon Technologies, Inc. Gesture detection management for an electronic device
US20140223214A1 (en) 2013-02-01 2014-08-07 Broadcom Corporation Dynamic power mode switching per rail
US10395651B2 (en) * 2013-02-28 2019-08-27 Sony Corporation Device and method for activating with voice input
US8869333B2 (en) * 2013-03-01 2014-10-28 Lift-U, Division Of Hogan Mfg., Inc. Ramp assembly with tilt sensor
US9189248B2 (en) 2013-04-25 2015-11-17 Insyde Software Corp. Specialized boot path for speeding up resume from sleep state
US9541984B2 (en) 2013-06-05 2017-01-10 Apple Inc. L2 flush and memory fabric teardown
US9338003B2 (en) 2013-06-18 2016-05-10 Maxim Integrated Products, Inc. Secure modules using unique identification elements
US9582983B2 (en) * 2013-09-11 2017-02-28 Intel Corporation Low power voice trigger for finding mobile devices
US20150089245A1 (en) 2013-09-26 2015-03-26 Asher M. Altman Data storage in persistent memory
US9171133B2 (en) 2013-10-11 2015-10-27 Landis+Gyr Innovations, Inc. Securing a device and data within the device
US20150127300A1 (en) 2013-11-03 2015-05-07 Microsoft Corporation Sensor Selection Based on Context and Policy
US20150149801A1 (en) 2013-11-26 2015-05-28 Synaptics Incorporated Complex wakeup gesture framework
CN103619056B (zh) 2013-12-02 2018-01-12 华为终端(东莞)有限公司 一种上报传感器数据的方法和终端
WO2015094369A1 (en) * 2013-12-20 2015-06-25 Intel Corporation Transition from low power always listening mode to high power speech recognition mode
US9836113B2 (en) * 2013-12-23 2017-12-05 Intel Corporation Method and apparatus to manage power usage in a processor
WO2015099802A1 (en) 2013-12-28 2015-07-02 Intel Corporation Techniques for increasing energy efficiency of sensor controllers
US9443111B2 (en) 2014-02-28 2016-09-13 Seagate Technology Llc Device security using an encrypted keystore data structure
US9619377B2 (en) 2014-05-29 2017-04-11 Apple Inc. System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
US9778728B2 (en) 2014-05-29 2017-10-03 Apple Inc. System on a chip with fast wake from sleep
US10031000B2 (en) * 2014-05-29 2018-07-24 Apple Inc. System on a chip with always-on processor
WO2016010857A1 (en) 2014-07-18 2016-01-21 Apple Inc. Raise gesture detection in a device
FR3045318A1 (fr) * 2015-12-22 2017-06-23 Univ D'angers Fauteuil roulant pourvu d'un systeme de franchissement d'une marche, comportant des rampes deployables
US10540043B2 (en) 2016-03-02 2020-01-21 Synaptics Incorporated Hybrid in-cell sensor topology
US10568786B1 (en) * 2018-09-25 2020-02-25 Creative Carriage Ltd. Pivotal handle for folding a ramp of a vehicle

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011520326A (ja) * 2008-04-11 2011-07-14 クゥアルコム・インコーポレイテッド 特定目的プロセッサ及びモーション・センシングの少なくとも一つを用いる電力管理
US20120254878A1 (en) * 2011-04-01 2012-10-04 Lama Nachman Mechanism for outsourcing context-aware application-related functionalities to a sensor hub

Also Published As

Publication number Publication date
CN106255937B (zh) 2019-10-18
JP6449997B2 (ja) 2019-01-09
JP2017520937A (ja) 2017-07-27
KR20160145791A (ko) 2016-12-20
TWI582578B (zh) 2017-05-11
US20220388437A1 (en) 2022-12-08
US10488230B2 (en) 2019-11-26
US20210341317A1 (en) 2021-11-04
US20200149932A1 (en) 2020-05-14
AU2015267615B2 (en) 2018-03-15
US20180313673A1 (en) 2018-11-01
TW201602772A (zh) 2016-01-16
CN106255937A (zh) 2016-12-21
AU2015267615A1 (en) 2016-10-27
EP3146408B1 (en) 2018-11-28
WO2015183404A1 (en) 2015-12-03
US20150346001A1 (en) 2015-12-03
US10031000B2 (en) 2018-07-24
US20210333132A1 (en) 2021-10-28
EP3146408A1 (en) 2017-03-29
US11079261B2 (en) 2021-08-03

Similar Documents

Publication Publication Date Title
KR101957555B1 (ko) 상시-온 프로세서를 갖는 시스템 온 칩
US10915160B2 (en) System on a chip with fast wake from sleep
KR101805346B1 (ko) Soc를 재구성하고 메모리-전용 통신 모드를 지원하는 올웨이즈-온 프로세서를 갖는 시스템 온 어 칩
US9959124B1 (en) Secure bypass of low-level configuration in reconfiguration of a computing system
US20150362980A1 (en) Always-On Processor as a Coprocessor
KR101930659B1 (ko) 다수의 비유사 프로세서 코어들을 포함하는 프로세서
US9659616B2 (en) Configuration fuse data management in a partial power-on state
JP5913770B2 (ja) 回転式のディスクを備える記憶装置のパワー・ステートを制御する方法および携帯式コンピュータ

Legal Events

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