IP Library Granted Patent US 9,971,397
Granted Patent B2
US 9,971,397 · App. 14/879,027 · Granted May 15, 2018

Methods and apparatus for managing power with an inter-processor communication link between independently operable processors

Inventors: Karan Sanghi (San Jose, CA); Saurabh Garg (San Jose, CA); Haining Zhang (San Jose, CA)
Assignee: APPLE INC.
G06F1/3293G06F1/3228G06F1/3243G06F1/3287G06F9/4403G06F9/4405G06F9/4411G06F11/1471G06F13/4282G06F11/1417G06F11/1474G06F2201/805G06F2201/87Y02B60/121Y02B60/1235Y02B60/1239Y02B60/1282Y02D10/122Y02D10/151Y02D10/152Y02D10/171
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,971,397
App. No.
14/879,027
Granted
May 15, 2018
Kind
B2
Abstract

Methods and apparatus for an inter-processor communication (IPC) link between two (or more) independently operable processors. In one aspect, the IPC protocol is based on a “shared” memory interface for run-time processing (i.e., the independently operable processors each share (either virtually or physically) a common memory interface). In another aspect, the IPC communication link is configured to support a host driven boot protocol used during a boot sequence to establish a basic communication path between the peripheral and the host processors. Various other embodiments described herein include sleep procedures (as defined separately for the host and peripheral processors), and error handling.

Claims (35)

1. A method of reducing electrical power consumption in a portable electronic device having a host processor and a wireless baseband processor, the method comprising:

using a memory-mapped serialized bus protocol to transfer operational data between the host processor and the wireless baseband processor;

causing the host processor to transact one or more data structures across a communication link between the host processor and the wireless baseband processor, the one or more data structures configured to enable at least one of the host processor and the wireless baseband processor to enter a sleep state; and

causing at least one of the host processor and the wireless baseband processor to enter the sleep state, thereby reducing the consumption of electrical power.

2. The method of claim 1 , wherein the portable electronic device comprises a smartphone having a cellular interface and a Wi-Fi interface, the wireless baseband processor is associated with at least one of the cellular interface and the Wi-Fi interface, and the using of the memory-mapped serialized bus protocol comprises using a protocol compliant with a Peripheral Component Interconnect—Express (PCIe) specification.

3. The method of claim 2 , wherein the method further comprises enabling at least one of the host processor and the wireless baseband processor to enter the sleep state without loss of operational data via use of a shared memory interface.

4. The method of claim 1 , wherein the method further comprises enabling at least one of the host processor and the wireless baseband processor to enter the sleep state without loss of operational data via use of a shared memory interface.

5. A portable electronic device configured for power management, the portable electronic device comprising:

a host processor;

an auxiliary processor in data communication with the host processor via an inter-processor communication link;

a memory interface shared between the host processor and the auxiliary processor; and

a storage apparatus in data communication with the host processor, the storage apparatus comprising a computer program configured to, when executed by the host processor:

cause the host processor to transact one or more data structures across the inter-processor communication link, the one or more data structures configured to enable the auxiliary processor to enter a sleep state; and

cause the auxiliary processor to enter the sleep state, thereby reducing consumption of electrical power.

6. The portable electronic device of claim 5 , wherein the computer program is further configured to, when executed, utilize a serialized bus protocol to transfer operational data between the host processor and the auxiliary processor.

7. The portable electronic device of claim 6 , wherein the transfer of the operational data between the host processor and the auxiliary processor occurs at least in part over the inter-processor communication link.

8. The portable electronic device of claim 6 , wherein the transfer of the operational data between the host processor and the auxiliary processor occurs at least in part over a link other than the inter-processor communication link.

9. The portable electronic device of claim 5 , wherein the host processor and the auxiliary processor physically share the memory interface.

10. The portable electronic device of claim 5 , wherein the host processor and the auxiliary processor virtually share the memory interface.

11. The portable electronic device of claim 5 , wherein the memory interface comprises a memory-mapped interface, and the host processor and the auxiliary processor can each perform at least one of a read and a write operation to one or more locations within the memory-mapped interface.

12. The portable electronic device of claim 5 , wherein the host processor and the auxiliary processor are rendered as part of an integrated circuit (IC), the IC having the inter-processor communication link substantially rendered in integrated circuitry therein, the IC comprising a single semi-conductive die.

13. The portable electronic device of claim 5 , wherein the host processor and the auxiliary processor are rendered on a respective separate integrated circuit die, the respective separate integrated circuit dies being part of a chipset comprising a plurality of integrated circuits (ICs).

14. A non-transitory computer-readable apparatus comprising a storage medium, the storage medium having a computer program, the computer program which, when executed by a first processor apparatus, is configured to:

evaluate a plurality of conditions relating to the first processor apparatus to determine whether the first processor apparatus comprises a state eligible for power reduction;

evaluate at least one condition relating to a second processor apparatus to determine whether the second processor apparatus is likely to utilize the first processor apparatus within a prescribed operational window; and

when it is determined that both (i) the first processor apparatus comprises the state eligible for power reduction, and (ii) the second processor apparatus is not likely to utilize the first processor apparatus within the prescribed operational window, cause the first processor apparatus to enter at least one of a plurality of reduced power states so as to conserve power.

15. The non-transitory computer-readable apparatus of claim 14 , wherein the evaluation of the plurality of conditions is performed at least in part by the first processor apparatus, and the at least one condition comprises a state or status associated with an inter-processor communication link between the second processor apparatus and the first processor apparatus.

16. The non-transitory computer-readable apparatus of claim 15 , wherein the inter-processor communication link comprises a shared memory interface having memory-mapped storage locations associated therewith, and the determination of the state or status is performed as a read of data written to one or more of the storage locations.

17. The non-transitory computer-readable apparatus of claim 16 , wherein the shared memory interface may remain operational for the read of data written to the one or more of the storage locations when one of the first processor apparatus or the second processor apparatus is in one of the plurality of reduced power states.

18. A method of operating a multi-processor System on Chip (SoC) device comprising a host processor and an auxiliary processor, the method comprising:

evaluating a plurality of conditions relating to the auxiliary processor to determine whether the auxiliary processor comprises a state eligible for power reduction;

evaluating at least one condition relating to the host processor to determine whether the host processor is likely to utilize the auxiliary processor within a prescribed operational window; and

when it is determined that both (i) the auxiliary processor comprises the state eligible for power reduction, and (ii) the host processor is not likely to utilize the auxiliary processor within the prescribed operational window, causing the auxiliary processor to enter at least one of a plurality of reduced power states so as to conserve power.

19. The method of claim 18 , wherein the evaluating of the plurality of conditions relating to the auxiliary processor further comprises evaluating a state or status associated with an inter-processor communication link between the host processor and the auxiliary processor.

20. The method of claim 19 , wherein the determination of whether the auxiliary processor comprises the state eligible for power reduction comprises reading data written to one or more storage locations on a shared memory interface of the inter-processor communication link.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2016
From: SANGHI, KARAN; GARG, SAURABH; ZHANG, HAINING
To: APPLE INC.
Reel/Frame 037444/0028 →
Continuity (2)
Provisional Application 62061605 · Oct 8, 2014
Related Publication 20160103480A1 · Apr 14, 2016