WO2011106172A1 - Processor core communication in multi-core processor - Google Patents

Processor core communication in multi-core processor Download PDF

Info

Publication number
WO2011106172A1
WO2011106172A1 PCT/US2011/024477 US2011024477W WO2011106172A1 WO 2011106172 A1 WO2011106172 A1 WO 2011106172A1 US 2011024477 W US2011024477 W US 2011024477W WO 2011106172 A1 WO2011106172 A1 WO 2011106172A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor cores
processor
core
cores
core processor
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/US2011/024477
Other languages
French (fr)
Inventor
Andrew Wolfe
Marc Levitt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=44505940&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2011106172(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Empire Technology Development LLC filed Critical Empire Technology Development LLC
Priority to DE112011100695T priority Critical patent/DE112011100695T5/en
Priority to CN201180005030.6A priority patent/CN102667744B/en
Priority to JP2012553946A priority patent/JP5547820B2/en
Priority to KR1020127024888A priority patent/KR101426341B1/en
Publication of WO2011106172A1 publication Critical patent/WO2011106172A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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

Definitions

  • the present disclosure relates generally to processor technologies and more specifically to processor core communication in multi-core processors.
  • a multi-core processor includes two or more independent processor cores arranged in an array.
  • Each processor core in a conventional multi-core processor generally shares the same supply voltage and clock signal to simplify the interfaces between the processor cores.
  • dynamic supply voltage and clock speed control may be utilized, so that a multi-core processor may operate at high power and high clock frequency when needed and at low power when the computing requirements are reduced.
  • One embodiment of the present disclosure may generally relate to a multi-core processor.
  • One example multi-core processor may include a first set of processor cores of the multi-core processor, wherein each processor core from the first set of processor cores is configured to dynamically receive a first supply voltage and a first clock signal, a second set of processor cores of the multi-core processor, wherein each processor core from the second set of processor cores is configured to dynamically receive a second supply voltage and a second clock signal, and an interface block coupled to the first set of processor cores and also coupled to the second set of processor cores, wherein the interface block is configured to facilitate communication between the first set of processor cores and the second set of processor cores.
  • Another embodiment of the present disclosure may generally relate to a method for managing communications in a multi-core processor that includes a plurality of processor cores having a first set of processor cores and a second set of processor cores.
  • One example method may include idling communications with one or more of the plurality of processor cores in response to a clock frequency change request for the first set of processor cores, and resuming communications with one or more of the plurality of processor cores after having determined that a first phase lock loop operation associated with the first set of processor cores has acquired a first lock signal and a second phase lock loop operation associated with the second set of processor cores has also acquired a second lock signal.
  • Yet another embodiment of the present disclosure may generally relate to a computer-readable medium containing a sequence of instructions for managing
  • the computing device may be configured to issue a first command to idle communications with one or more of the plurality of processor cores in response to a clock frequency change request for the first set of processor cores, and issue a second command to resume communications with one or more of the plurality of processor cores after having determined that a first phase lock loop operation associated with the first set of processor cores has acquired a first lock signal and a second phase lock loop operation associated with the second set of processor cores has also acquired a second lock signal.
  • FIG. 1 illustrates an example configuration of a multi-core processor
  • FIG. 2 is a block diagram illustrating an example set of processor cores with example interface blocks having level shifters
  • FIG. 3 is another block diagram illustrating an example set of processor cores with example interface blocks having synchronizers
  • FIG. 4 is a flow chart illustrating an example transition processing routine for managing a clock frequency change
  • FIG. 5 is a block diagram illustrating an example computer program product for handling processor core communication in a multi-core processor; all arranged in
  • This disclosure is drawn, inter alia, to devices, methods, systems, and computer programs related to power management for a multi-core processor.
  • a multi-core processor may include multiple processor cores arranged in an array.
  • a power profile associated with an individual processor core may be controlled through signals that may be received from control blocks that are located in the periphery of the multi-core processor.
  • the power profile may include, without limitation, one or more power-supply voltages of the core processor, clock rates of the core processor, clock multipliers of the core processor, power throttling of the core processor, and/or sleep state cycles of the core processor.
  • FIG. 1 illustrates an example configuration of a multi-core processor 100 that is arranged in accordance with at least some embodiments of the present disclosure.
  • the multi-core processor 100 may include multiple processor cores 102 arranged in rows and columns in a 2-dimensional array in an integrated circuit.
  • a processor core may be coupled with adjacent processor cores through an interface circuit 120.
  • the processor cores 102 may be horizontally coupled to one another, vertically coupled to one another, and/or diagonally coupled to one another by the interface circuit 120.
  • the processor core 102 located on one edge of the multi-core processor 100 may also be coupled to the processor core 102 on the opposite edge with a wrap-around connection 122, which may be employed to ensure a continuous connection among the processor cores in the same row and/or column.
  • the multi-core processor 100 may be further divided into regions. In some implementations, the regions of multi-core processor 100 may correspond to rows of the two-dimensional array, and the regions may or may not be overlapping.
  • Each row of processors may also be referred to as a "stripe.”
  • the multi-core processor 100 may be divided into stripes 1 12, 1 14, 1 16, and 1 18.
  • Each stripe may be associated with an independent power profile.
  • the stripe 1 12 may be powered by a supply voltage received from a power control block 108 and/or may be associated with an independent clock domain defined by a clock signal received from a clock control block 1 10.
  • the power control block 108 and the clock control block 1 10 may be arranged at two different sides of the multi-core processor 100 as shown in FIG. 1 .
  • the power control block 108 and the clock control block 1 10 may be arranged at the same side of the multi-core processor 100.
  • the power control block 108 and the clock control block 1 10 may be arranged in a common area located near the center of the multi-core processor 100.
  • the power profile associated with a stripe may be determined based on the computational requirements of the tasks assigned to the processor cores in the stripe.
  • sensors placed at the input of each processor core may be configured to measure the supply voltage and the local temperature for the processor core.
  • the measured supply voltage and local temperature may be maintained in the power control block 108.
  • One or more performance counters associated with each processor core may also provide feedback to the power control block 108.
  • the power control block 108 may then be configured to select a supply voltage for each strip. For example, the tasks with the highest computational requirements may be scheduled into the topmost stripe, such as the stripe 1 12.
  • the stripe 1 12 may be configured to operate at a high supply voltage.
  • the tasks with lesser computational requirements may be scheduled into the stripe 1 14 and so forth.
  • the stripes 1 14, 1 16, and 1 18 thus may be configured to operate lower supply voltages.
  • supply voltages to the stripes may be selected such that the selected supply voltages for adjacent stripes may differ by a limited amount. This limited amount may be based on a relationship between the output voltage level associated with one stripe and the input voltage level associated with an adjacent stripe. For example, suppose the stripe with the higher supply voltage (e.g., the stripe 1 12) may be associated with an output voltage level (e.g., V 0 ).
  • V 0 needs to fall reliably within an acceptable input voltage level range (e.g., V i+ to V,.) for an adjacent stripe (e.g., the stripe 1 14).
  • the power control block 108 may be configured to select the supply voltages to the stripe 1 12 and the stripe 1 14, so that the aforementioned relationship between V 0 and range V i+ to v.. may be maintained.
  • adjusting the supply voltage to one stripe may involve adjusting the supply voltages to the other stripes.
  • the power control block 108 may adjust the supply voltage to the stripe 1 12.
  • the power control block 108 may adjust the supply voltages to the stripes 1 18, 1 16, and 1 14 before adjusting the supply voltage to the stripe 1 12.
  • processor core 152 belongs to the stripe 1 12; the processor core 154 belongs to the stripe 1 14; and the processor core 156 belongs to the stripe 1 16.
  • FIG. 2 is a block diagram illustrating an example subset 150 of processor cores with example interface blocks having level shifters, arranged in accordance with at least some embodiments of the present disclosure.
  • the processor core 152 may be powered by a supply voltage 1 and coupled to an interface block 200 having a level shifter 202; the processor core 154 may be powered by a supply voltage 2 and coupled to the same interface block 200; and the processor core 156 may be powered by a supply voltage 3 and coupled to an interface block 204 having a level shifter 206.
  • the inputs of the level shifter 202 may be the supply voltage 1 and the supply voltage 2
  • the inputs of the level shifter 206 may be the supply voltage 2 and the supply voltage 3.
  • the supply voltage 1 , the supply voltage 2, and the supply voltage 3 may come from a power control block, such as the power control block 108 of FIG 1 .
  • the output voltage of the level shifter 202 may be tied to the supply voltage 2
  • the input voltage of the level shifter 202 may be tied to the supply voltage 1
  • the level shifters are arranged to translate the signal levels such that each of the processor cores operates correctly (e.g., the processor cores properly interpret the voltages as valid logic levels even though processor cores are powered by different supply voltages).
  • the level shifter 202 may be adapted to translate first logic levels associated with the stripe 1 12 to second logic levels associated with the stripe 1 14, and the level shifter 202 may be referenced to the supply voltage 2.
  • the output voltage of the level shifter 202 may be tied to the supply voltage 1
  • the input voltage of the level shifter 202 may be tied to the supply voltage 2.
  • the level shifter 202 may be adapted to translate second logic levels associated with the stripe 1 14 to first logic levels associated with stripe 1 12, and the level shifter 202 may be referenced to the supply voltage 1 .
  • the relationships among the supply voltage 1 , supply voltage 2, and the level shifter 202 described above similarly apply to the relationships among the supply voltage 2, supply voltage 3, and the level shifter 206. [0020] FIG.
  • FIG. 3 is another block diagram illustrating an example subset 150 of processor cores with example interface blocks having synchronizers, arranged in accordance with at least some embodiments of the present disclosure.
  • the processor core 152 may be driven by a clock signal 1 and coupled to an interface block 300 having a synchronizer 302; the processor core 154 may be driven by a clock signal 2 and coupled to the same interface block 300; and the processor core 156 may be driven by a clock signal 3 and coupled to an interface block 304 having a synchronizer 306.
  • the clock signal 1 , the clock signal 2, the clock signal 3, and the respective phase lock loops (PLLs) may be a part of a clock control block, such as the clock control block 1 10.
  • the processing results of the PLL blocks may be fed back to a transition processing routine 308. Commands generated by the transition processing routine 308 may also be sent to the synchronizer 302 and/or the synchronizer 306.
  • FIG. 4 is a flow chart illustrating an example transition processing routine 400 for managing a clock frequency change, arranged in accordance with at least some
  • transition processing routine 400 is described in terms of a set of processor cores and interface blocks
  • the transition processing routine 400 may include one or more functions, operations, or actions as depicted by operations 402, 404, 406, 408, and/or 410. In some implementations, the various features of the illustrated operations for the transition processing routine 400 may be combined into fewer operations, divided into additional operations, or eliminated based on the desired result.
  • Processing for the transition processing routine 300 may begin at operation 302, "receive clock frequency change request.” Operation 302 may be followed by operation 304, “idle communication between stripes.” Operation 304 may be followed by operation 306, “examine PLL blocks of requesting stripe and adjacent stripe(s).” Operation 306 may be followed by operation 308, “does each of PLL blocks acquire a lock?” Operation 308 may be followed by either operation 306 when the decision logic tested at block 308 fails to be satisfied (NO), or operation 310, "determine whether to resume communication between stripes", when the decision logic tested at block 308 is satisfied (YES). Processing for the routine may terminate after block 310.
  • the transition processing routine 400 may issue commands to the synchronizer 302 and the synchronizer 306 in operation 404 to idle the communications between the processor core 154 and the processor core 152 and between the processor core 154 and the processor core 156.
  • the outputs of the PLL blocks for the stripes that are adjacent to the stripe 1 14 may be examined in operation 406.
  • the transition processing routine 400 may decide in operation 410 whether the transition sequence has occurred properly and the communication between the stripes may resume.
  • a stable clock signal may be sent to the processor core 154 and also the synchronizer 302 and the synchronizer 306.
  • the synchronizer 302 may be configured to synchronize the clock signal 1 and the clock signal 2 for the communication between the processor core 152 and the processor core 154.
  • the synchronizer 306 may be configured to synchronize the clock signal 2 and the clock signal 3 for the communication between the processor core 154 and the processor core 156.
  • FIG. 5 is a block diagram illustrating a computer program product 500 for handling processor core communication in a multi-core processor in accordance with at least some embodiments of the present disclosure.
  • Computer program product 500 may include one or more sets of executable instructions 502 for executing the transition processing routine described above and illustrated in FIG. 4.
  • Computer program product 500 may be transmitted in a signal bearing medium 504 or another similar communication medium 506.
  • Computer program product 500 may also be recorded in a computer readable medium 508 or another similar recordable medium 510.
  • the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.
  • embodiments disclosed herein, in whole or in part, can be equivalently implemented in integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and or firmware would be well within the skill of one of skill in the art in light of this disclosure.
  • Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, a computer memory, etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link and/or channel, a wireless communication link and/or channel, etc.).
  • a recordable type medium such as a floppy disk, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, a computer memory, etc.
  • a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link and/or channel, a wireless communication link and/or channel, etc.).
  • a typical data processing system generally includes one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors (e.g., feedback for sensing position and/or velocity; control motors for moving and/or adjusting components and/or quantities).
  • a typical data processing system may be implemented utilizing any suitable commercially available components, such as those typically found in data computing/communication and/or network computing/communication systems.
  • any two components so associated can also be viewed as being “operably connected”, or “operably coupled”, to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being “operably couplable”, to each other to achieve the desired functionality.
  • operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)

Abstract

Embodiments of the disclosure generally set forth techniques for handling communication between processor cores. Some example multi-core processors include a first set of processor cores in a first region of the multi-core processor configured to dynamically receive a first supply voltage and a first clock signal, a second set of processor cores in a second region of the multi-core processor configured to dynamically receive a second supply voltage and a second clock signal, and an interface block coupled to the first set of processor cores and the second set of processor cores, wherein the interface block is configured to facilitate communications between the first set of processor cores and the second set of processor cores.

Description

PROCESSOR CORE COMMUNICATION IN MULTI-CORE PROCESSOR
TECHNICAL FIELD
[0001] The present disclosure relates generally to processor technologies and more specifically to processor core communication in multi-core processors. BACKGROUND OF THE DISCLOSURE
[0002] A multi-core processor includes two or more independent processor cores arranged in an array. Each processor core in a conventional multi-core processor generally shares the same supply voltage and clock signal to simplify the interfaces between the processor cores. For power consumption management, dynamic supply voltage and clock speed control may be utilized, so that a multi-core processor may operate at high power and high clock frequency when needed and at low power when the computing requirements are reduced.
SUMMARY
[0003] One embodiment of the present disclosure may generally relate to a multi-core processor. One example multi-core processor may include a first set of processor cores of the multi-core processor, wherein each processor core from the first set of processor cores is configured to dynamically receive a first supply voltage and a first clock signal, a second set of processor cores of the multi-core processor, wherein each processor core from the second set of processor cores is configured to dynamically receive a second supply voltage and a second clock signal, and an interface block coupled to the first set of processor cores and also coupled to the second set of processor cores, wherein the interface block is configured to facilitate communication between the first set of processor cores and the second set of processor cores.
[0004] Another embodiment of the present disclosure may generally relate to a method for managing communications in a multi-core processor that includes a plurality of processor cores having a first set of processor cores and a second set of processor cores. One example method may include idling communications with one or more of the plurality of processor cores in response to a clock frequency change request for the first set of processor cores, and resuming communications with one or more of the plurality of processor cores after having determined that a first phase lock loop operation associated with the first set of processor cores has acquired a first lock signal and a second phase lock loop operation associated with the second set of processor cores has also acquired a second lock signal.
[0005] Yet another embodiment of the present disclosure may generally relate to a computer-readable medium containing a sequence of instructions for managing
communications in a multi-core processor that includes a plurality of processor cores having a first set of processor cores and a second set of processor cores. When one example sequence of instructions are executed by a computing device, the computing device may be configured to issue a first command to idle communications with one or more of the plurality of processor cores in response to a clock frequency change request for the first set of processor cores, and issue a second command to resume communications with one or more of the plurality of processor cores after having determined that a first phase lock loop operation associated with the first set of processor cores has acquired a first lock signal and a second phase lock loop operation associated with the second set of processor cores has also acquired a second lock signal. [0006] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. These drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope. The disclosure will be described with additional specificity and detail through use of the accompanying drawings.
[0008] FIG. 1 illustrates an example configuration of a multi-core processor;
FIG. 2 is a block diagram illustrating an example set of processor cores with example interface blocks having level shifters;
FIG. 3 is another block diagram illustrating an example set of processor cores with example interface blocks having synchronizers; FIG. 4 is a flow chart illustrating an example transition processing routine for managing a clock frequency change; and
FIG. 5 is a block diagram illustrating an example computer program product for handling processor core communication in a multi-core processor; all arranged in
accordance with at least some embodiments of the present disclosure.
DETAILED DESCRIPTION
[0009] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which are explicitly contemplated and make part of this disclosure.
[0010] This disclosure is drawn, inter alia, to devices, methods, systems, and computer programs related to power management for a multi-core processor.
[0011] A multi-core processor may include multiple processor cores arranged in an array. A power profile associated with an individual processor core may be controlled through signals that may be received from control blocks that are located in the periphery of the multi-core processor. The power profile may include, without limitation, one or more power-supply voltages of the core processor, clock rates of the core processor, clock multipliers of the core processor, power throttling of the core processor, and/or sleep state cycles of the core processor. [0012] FIG. 1 illustrates an example configuration of a multi-core processor 100 that is arranged in accordance with at least some embodiments of the present disclosure. The multi-core processor 100 may include multiple processor cores 102 arranged in rows and columns in a 2-dimensional array in an integrated circuit. A processor core may be coupled with adjacent processor cores through an interface circuit 120. In some implementations, the processor cores 102 may be horizontally coupled to one another, vertically coupled to one another, and/or diagonally coupled to one another by the interface circuit 120. In some example implementations, the processor core 102 located on one edge of the multi-core processor 100 may also be coupled to the processor core 102 on the opposite edge with a wrap-around connection 122, which may be employed to ensure a continuous connection among the processor cores in the same row and/or column. [0013] The multi-core processor 100 may be further divided into regions. In some implementations, the regions of multi-core processor 100 may correspond to rows of the two-dimensional array, and the regions may or may not be overlapping. Each row of processors may also be referred to as a "stripe." For example, the multi-core processor 100 may be divided into stripes 1 12, 1 14, 1 16, and 1 18. Each stripe may be associated with an independent power profile. For example, the stripe 1 12 may be powered by a supply voltage received from a power control block 108 and/or may be associated with an independent clock domain defined by a clock signal received from a clock control block 1 10. In some implementations, the power control block 108 and the clock control block 1 10 may be arranged at two different sides of the multi-core processor 100 as shown in FIG. 1 . In some other implementations, the power control block 108 and the clock control block 1 10 may be arranged at the same side of the multi-core processor 100. In yet some other implementations, the power control block 108 and the clock control block 1 10 may be arranged in a common area located near the center of the multi-core processor 100.
[0014] The power profile associated with a stripe may be determined based on the computational requirements of the tasks assigned to the processor cores in the stripe. In some implementations, sensors placed at the input of each processor core may be configured to measure the supply voltage and the local temperature for the processor core. The measured supply voltage and local temperature may be maintained in the power control block 108. One or more performance counters associated with each processor core may also provide feedback to the power control block 108. Based on the measured operational information (e.g., supply voltage and local temperature) and the performance data, the power control block 108 may then be configured to select a supply voltage for each strip. For example, the tasks with the highest computational requirements may be scheduled into the topmost stripe, such as the stripe 1 12. The stripe 1 12 may be configured to operate at a high supply voltage. The tasks with lesser computational requirements may be scheduled into the stripe 1 14 and so forth. The stripes 1 14, 1 16, and 1 18 thus may be configured to operate lower supply voltages. [0015] In some implementations, supply voltages to the stripes may be selected such that the selected supply voltages for adjacent stripes may differ by a limited amount. This limited amount may be based on a relationship between the output voltage level associated with one stripe and the input voltage level associated with an adjacent stripe. For example, suppose the stripe with the higher supply voltage (e.g., the stripe 1 12) may be associated with an output voltage level (e.g., V0). V0 needs to fall reliably within an acceptable input voltage level range (e.g., Vi+ to V,.) for an adjacent stripe (e.g., the stripe 1 14). In other words, the power control block 108 may be configured to select the supply voltages to the stripe 1 12 and the stripe 1 14, so that the aforementioned relationship between V0 and range Vi+ to v.. may be maintained.
[0016] To maintain the limited differential relationship discussed above, adjusting the supply voltage to one stripe may involve adjusting the supply voltages to the other stripes. To illustrate, suppose the power control block 108 may adjust the supply voltage to the stripe 1 12. To maintain the limited differential relationship, the power control block 108 may adjust the supply voltages to the stripes 1 18, 1 16, and 1 14 before adjusting the supply voltage to the stripe 1 12.
[0017] Although dynamically adjusting the power profile for a stripe in response to changes in computational requirements may reduce power consumption for a multi-core processor, such adjustments may take some period of time to stabilize. To further illustrate the interfaces that facilitate communication between two processor cores in the multi-core processor 100, a subset 150 of processor cores 152, 154, and 156 of FIG. 1 may be selected. The processor core 152 belongs to the stripe 1 12; the processor core 154 belongs to the stripe 1 14; and the processor core 156 belongs to the stripe 1 16.
[0018] FIG. 2 is a block diagram illustrating an example subset 150 of processor cores with example interface blocks having level shifters, arranged in accordance with at least some embodiments of the present disclosure. The processor core 152 may be powered by a supply voltage 1 and coupled to an interface block 200 having a level shifter 202; the processor core 154 may be powered by a supply voltage 2 and coupled to the same interface block 200; and the processor core 156 may be powered by a supply voltage 3 and coupled to an interface block 204 having a level shifter 206. In some implementations, the inputs of the level shifter 202 may be the supply voltage 1 and the supply voltage 2, and the inputs of the level shifter 206 may be the supply voltage 2 and the supply voltage 3. The supply voltage 1 , the supply voltage 2, and the supply voltage 3 may come from a power control block, such as the power control block 108 of FIG 1 .
[0019] When the processor core 152 of the stripe 1 12 sends a signal to the processor core 154 of the stripe 1 14, in some implementations, the output voltage of the level shifter 202 may be tied to the supply voltage 2, and the input voltage of the level shifter 202 may be tied to the supply voltage 1 . The level shifters are arranged to translate the signal levels such that each of the processor cores operates correctly (e.g., the processor cores properly interpret the voltages as valid logic levels even though processor cores are powered by different supply voltages). Here, the level shifter 202 may be adapted to translate first logic levels associated with the stripe 1 12 to second logic levels associated with the stripe 1 14, and the level shifter 202 may be referenced to the supply voltage 2. On the other hand, when the processor core 154 of the stripe 1 14 sends a signal to the processor core 152 of the stripe 1 12, the output voltage of the level shifter 202 may be tied to the supply voltage 1 , and the input voltage of the level shifter 202 may be tied to the supply voltage 2. In other words, the level shifter 202 may be adapted to translate second logic levels associated with the stripe 1 14 to first logic levels associated with stripe 1 12, and the level shifter 202 may be referenced to the supply voltage 1 . The relationships among the supply voltage 1 , supply voltage 2, and the level shifter 202 described above similarly apply to the relationships among the supply voltage 2, supply voltage 3, and the level shifter 206. [0020] FIG. 3 is another block diagram illustrating an example subset 150 of processor cores with example interface blocks having synchronizers, arranged in accordance with at least some embodiments of the present disclosure. The processor core 152 may be driven by a clock signal 1 and coupled to an interface block 300 having a synchronizer 302; the processor core 154 may be driven by a clock signal 2 and coupled to the same interface block 300; and the processor core 156 may be driven by a clock signal 3 and coupled to an interface block 304 having a synchronizer 306. In some implementations, the clock signal 1 , the clock signal 2, the clock signal 3, and the respective phase lock loops (PLLs) may be a part of a clock control block, such as the clock control block 1 10. The processing results of the PLL blocks may be fed back to a transition processing routine 308. Commands generated by the transition processing routine 308 may also be sent to the synchronizer 302 and/or the synchronizer 306.
[0021] As discussed above, when the power profile for a stripe changes, such as a change in clock frequency, the clock signal for the stripe may become unstable. To handle such a situation, FIG. 4 is a flow chart illustrating an example transition processing routine 400 for managing a clock frequency change, arranged in accordance with at least some
embodiments of the present disclosure. For ease of description, the transition processing routine 400 is described in terms of a set of processor cores and interface blocks
substantially similar to those described previously with respect to FIG. 3. The transition processing routine 400 may include one or more functions, operations, or actions as depicted by operations 402, 404, 406, 408, and/or 410. In some implementations, the various features of the illustrated operations for the transition processing routine 400 may be combined into fewer operations, divided into additional operations, or eliminated based on the desired result.
[0022] Processing for the transition processing routine 300 may begin at operation 302, "receive clock frequency change request." Operation 302 may be followed by operation 304, "idle communication between stripes." Operation 304 may be followed by operation 306, "examine PLL blocks of requesting stripe and adjacent stripe(s)." Operation 306 may be followed by operation 308, "does each of PLL blocks acquire a lock?" Operation 308 may be followed by either operation 306 when the decision logic tested at block 308 fails to be satisfied (NO), or operation 310, "determine whether to resume communication between stripes", when the decision logic tested at block 308 is satisfied (YES). Processing for the routine may terminate after block 310. [0023] For illustration, suppose the processor core 154 of the stripe 1 14 in FIG. 3 is asked to change its clock frequency based on the tasks that are being assigned to the stripe 1 14 for processing. After having received the request in operation 402, the transition processing routine 400 may issue commands to the synchronizer 302 and the synchronizer 306 in operation 404 to idle the communications between the processor core 154 and the processor core 152 and between the processor core 154 and the processor core 156.
Following operation 404, the outputs of the PLL blocks for the stripes that are adjacent to the stripe 1 14 may be examined in operation 406. Depending on whether the PLL blocks have acquired locks as determined in operation 408, the transition processing routine 400 may decide in operation 410 whether the transition sequence has occurred properly and the communication between the stripes may resume.
[0024] In some implementations, after each of the PLL block 1 , PLL block 2, and PLL block 3 is determined to have acquired a lock of its respective clock signal in operation 408, a stable clock signal may be sent to the processor core 154 and also the synchronizer 302 and the synchronizer 306. Then, the synchronizer 302 may be configured to synchronize the clock signal 1 and the clock signal 2 for the communication between the processor core 152 and the processor core 154. Similarly, the synchronizer 306 may be configured to synchronize the clock signal 2 and the clock signal 3 for the communication between the processor core 154 and the processor core 156.
[0025] FIG. 5 is a block diagram illustrating a computer program product 500 for handling processor core communication in a multi-core processor in accordance with at least some embodiments of the present disclosure. Computer program product 500 may include one or more sets of executable instructions 502 for executing the transition processing routine described above and illustrated in FIG. 4. Computer program product 500 may be transmitted in a signal bearing medium 504 or another similar communication medium 506. Computer program product 500 may also be recorded in a computer readable medium 508 or another similar recordable medium 510.
[0026] There is little distinction left between hardware and software implementations of aspects of systems; the use of hardware or software is generally (but not always, in that in certain contexts the choice between hardware and software can become significant) a design choice representing cost vs. efficiency tradeoffs. There are various vehicles by which processes and/or systems and/or other technologies described herein can be effected (e.g., hardware, software, and/or firmware), and that the preferred vehicle will vary with the context in which the processes and/or systems and/or other technologies are deployed. For example, if an implementer determines that speed and accuracy are paramount, the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.
[0027] The foregoing detailed description has set forth various embodiments of the devices and/or processes via the use of block diagrams, flowcharts, and/or examples. Insofar as such block diagrams, flowcharts, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams, flowcharts, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one embodiment, several portions of the subject matter described herein may be implemented via Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), digital signal processors (DSPs), or other integrated formats. However, those skilled in the art will recognize that some aspects of the
embodiments disclosed herein, in whole or in part, can be equivalently implemented in integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and or firmware would be well within the skill of one of skill in the art in light of this disclosure. In addition, those skilled in the art will appreciate that the mechanisms of the subject matter described herein are capable of being distributed as a program product in a variety of forms, and that an illustrative embodiment of the subject matter described herein applies regardless of the particular type of signal bearing medium used to actually carry out the distribution. Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, a computer memory, etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link and/or channel, a wireless communication link and/or channel, etc.). [0028] Those skilled in the art will recognize that it is common within the art to describe devices and/or processes in the fashion set forth herein, and thereafter use engineering practices to integrate such described devices and/or processes into data processing systems. That is, at least a portion of the devices and/or processes described herein can be integrated into a data processing system via a reasonable amount of
experimentation. Those having skill in the art will recognize that a typical data processing system generally includes one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors (e.g., feedback for sensing position and/or velocity; control motors for moving and/or adjusting components and/or quantities). A typical data processing system may be implemented utilizing any suitable commercially available components, such as those typically found in data computing/communication and/or network computing/communication systems.
[0029] The herein described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being "operably connected", or "operably coupled", to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being "operably couplable", to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.
[0030] With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.
[0031] It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as "open" terms (e.g., the term "including" should be interpreted as "including but not limited to," the term "having" should be interpreted as "having at least," the term
"includes" should be interpreted as "includes but is not limited to," etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to inventions containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an" (e.g., "a" and/or "an" should typically be interpreted to mean "at least one" or "one or more"); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of "two recitations," without other modifiers, typically means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to "at least one of A, B, and C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, and C" would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to "at least one of A, B, or C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, or C" would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase "A or B" will be understood to include the possibilities of "A" or "B" or "A and B."
[0032] While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Claims

We Claim:
1 . A multi-core processor, comprising:
a first set of processor cores of the multi-core processor, wherein each processor core from the first set of processor cores is configured to dynamically receive a first supply voltage and a first clock signal;
a second set of processor cores of the multi-core processor, wherein each processor core from the second set of processor cores is configured to dynamically receive a second supply voltage and a second clock signal; and an interface block coupled to the first set of processor cores and also coupled to the second set of processor cores, wherein the interface block is configured to facilitate communication between the first set of processor cores and the second set of processor cores.
2. The multi-core processor of claim 1 , the interface block further comprising a first level shifter that is referenced to the second supply voltage and adapted to translate first logic levels associated with the first set of processor cores to second logic levels associated with the second set of processor cores for a first signal traveling from the first set of processor cores to the second set of processor cores.
3. The multi-core processor of claim 1 , the interface block further comprising a second level shifter that is referenced to the first supply voltage and adapted to translate second logic levels associated with the second set of processor cores to first logic levels associated with the first set of processor cores for a second signal traveling from the second set of processor cores to the first set of processor cores.
4. The multi-core processor of claim 1 , wherein the interface block further comprises a synchronizer configured to synchronize the first clock signal and the second clock signal for communication between one or more processor cores of the first set of processor cores and one or more processor cores of the second set of processor cores.
5. The multi-core processor of claim 1 , wherein the first set of processor cores and the second set of processor cores are configured to receive one or more control signals from one or more control blocks located in a periphery of the multi-core processor.
6. The multi-core processor of claim 1 , wherein the first set of processor cores are located in a first region of the multi-core processor, and the second set of processor cores are located in a second region of the multi-core processor.
7. The multi-core processor of claim 6, wherein the first region and the second region are overlapping regions of the multi-core processor.
8. The multi-core processor of claim 6, wherein the first region and the second region are non-overlapping regions of the multi-core processor.
9. The multi-core processor of claim 6, wherein the first region corresponds to a first row of the multi-core processor, and wherein the second region corresponds to a second row of the multi-core processor.
10. The multi-core processor of claim 1 , wherein the interface block is configured to idle communications between the first set of processor cores and the second set of processor cores when one or more of the first clock signal and/or the second clock signal is determined to have changed.
1 1 . The multi-core processor of claim 10, wherein the interface block is configured to resume communication between the first set of processor cores and the second set of processor cores after one or more of the first clock signal and/or the second clock signal is determined to have stabilized.
12. The multi-core processor of claim 5, wherein the first set of processor cores is adjacent to the second set of processor cores, and the one or more control blocks are configured to select the first supply voltage and the second supply voltage to maintain a differential relationship between the first supply voltage and the second supply voltage.
13. The multi-core processor of claim 12, wherein the differential relationship is based on having an output voltage level associated with the first set of processor cores to be within an acceptable input voltage level associated with the second set of processor cores.
14. The multi-core processor of claim 1 , wherein the first set of processor cores and the second set of processor cores are configured to receive one or more control signals from one or more control blocks located in a common region that is substantially central to the first set of processor cores and the second set of processor cores.
15. A method for managing communications in a multi-core processor that includes a plurality of processor cores having a first set of processor cores and a second set of processor cores, the method comprising:
idling communications with one or more of the plurality of processor cores in
response to a clock frequency change request for the first set of processor cores; and
resuming communications with one or more of the plurality of processor cores after having determined that a first phase lock loop operation associated with the first set of processor cores has acquired a first lock signal and a second phase lock loop operation associated with the second set of processor cores has also acquired a second lock signal.
16. The method of claim 15, wherein resuming communications further comprising having determined that a third phase lock loop operation associated with a third set of processor cores in the multi-core processor has acquired a third lock signal, wherein the third set of processor cores is adjacent to the first set of processor cores.
17. The method of claim 16, wherein the second set of processor cores is adjacent to the first set of processor cores.
18. A computer-readable medium containing a sequence of instructions for managing communications in a multi-core processor that includes a plurality of processor cores having a first set of processor cores and a second set of processor cores, which when executed by a computing device, causes the computing device to:
issue a first command to idle communications with one or more of the plurality of processor cores in response to a clock frequency change request for the first set of processor cores; and
issue a second command to resume communications with one or more of the
plurality of processor cores after having determined that a first phase lock loop operation associated with the first set of processor cores has acquired a first lock signal and a second phase lock loop operation associated with the second set of processor cores has also acquired a second lock signal.
19. The computer-readable medium of claim 18, further including a sequence of instructions, which when executed by the computing device, causes the computing device to determine whether a third phase lock loop operation associated with a third set of processor cores in the multi-core processor has acquired a third lock signal before issuing the second command, wherein the third set of processor cores is adjacent to the first set of processor cores.
20. The computer-readable medium of claim 19, wherein the second set of processor cores is adjacent to the first set of processor cores.
PCT/US2011/024477 2010-02-26 2011-02-11 Processor core communication in multi-core processor Ceased WO2011106172A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE112011100695T DE112011100695T5 (en) 2010-02-26 2011-02-11 PROCESSOR CORRECTION IN MULTI-CORE PROCESSORS
CN201180005030.6A CN102667744B (en) 2010-02-26 2011-02-11 Processor core communication in multi-core processor
JP2012553946A JP5547820B2 (en) 2010-02-26 2011-02-11 Processor core communication in multi-core processors
KR1020127024888A KR101426341B1 (en) 2010-02-26 2011-02-11 Processor core communication in multi-core processor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/713,220 2010-02-26
US12/713,220 US8549339B2 (en) 2010-02-26 2010-02-26 Processor core communication in multi-core processor

Publications (1)

Publication Number Publication Date
WO2011106172A1 true WO2011106172A1 (en) 2011-09-01

Family

ID=44505940

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/024477 Ceased WO2011106172A1 (en) 2010-02-26 2011-02-11 Processor core communication in multi-core processor

Country Status (6)

Country Link
US (1) US8549339B2 (en)
JP (1) JP5547820B2 (en)
KR (1) KR101426341B1 (en)
CN (1) CN102667744B (en)
DE (1) DE112011100695T5 (en)
WO (1) WO2011106172A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014070255A1 (en) * 2012-10-31 2014-05-08 Intel Corporation Reducing the overhead associated with frequency changes in processors

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2362297B1 (en) * 2010-02-25 2014-05-14 Telefonaktiebolaget L M Ericsson (publ) Technique for selecting a frequency of operation in a processor system
EP2798434A4 (en) 2012-04-20 2015-09-02 Hewlett Packard Development Co Voltage regulator control system
US9335803B2 (en) 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
WO2014133522A2 (en) 2013-02-28 2014-09-04 Empire Technology Development, Llc Local message queue processing for co-located workers
CN104360727B (en) * 2013-08-28 2019-02-01 威盛电子股份有限公司 Microprocessor and power saving method using the same
KR20160054850A (en) * 2014-11-07 2016-05-17 삼성전자주식회사 Apparatus and method for operating processors
KR102325453B1 (en) * 2014-12-04 2021-11-11 삼성전자주식회사 Method for operating semiconductor device
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
KR102474620B1 (en) * 2016-01-25 2022-12-05 삼성전자주식회사 Semiconductor device, semiconductor system and method for operating semiconductor device
KR102550422B1 (en) * 2016-01-25 2023-06-30 삼성전자주식회사 Semiconductor device
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
JP7282090B2 (en) 2017-12-10 2023-05-26 マジック リープ, インコーポレイテッド Antireflection coating on optical waveguide
CN111712751B (en) 2017-12-20 2022-11-01 奇跃公司 Insert for augmented reality viewing apparatus
EP4415355A3 (en) 2018-03-15 2024-09-04 Magic Leap, Inc. Image correction due to deformation of components of a viewing device
CN112601975B (en) 2018-05-31 2024-09-06 奇跃公司 Radar head posture positioning
WO2020010097A1 (en) 2018-07-02 2020-01-09 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11510027B2 (en) 2018-07-03 2022-11-22 Magic Leap, Inc. Systems and methods for virtual and augmented reality
JP7374981B2 (en) 2018-07-10 2023-11-07 マジック リープ, インコーポレイテッド Thread weaving for cross instruction set architecture procedure calls
US11598651B2 (en) 2018-07-24 2023-03-07 Magic Leap, Inc. Temperature dependent calibration of movement detection devices
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
EP4650919A3 (en) 2018-08-02 2026-01-21 Magic Leap, Inc. A viewing system with interpupillary distance compensation based on head motion
EP3830631A4 (en) 2018-08-03 2021-10-27 Magic Leap, Inc. NON-FUSED POSE DRIFT CORRECTION OF A FUSED TOTEM IN A USER INTERACTION SYSTEM
JP7487176B2 (en) 2018-08-22 2024-05-20 マジック リープ, インコーポレイテッド Patient Visibility System
TWI682634B (en) 2018-11-06 2020-01-11 崛智科技有限公司 Integrated circuitry
CN113196138B (en) 2018-11-16 2023-08-25 奇跃公司 Clarification of image size triggers for maintaining image clarity
JP7543274B2 (en) 2018-12-21 2024-09-02 マジック リープ, インコーポレイテッド Air pocket structures for enhancing total internal reflection in waveguides.
EP3939030B1 (en) 2019-03-12 2025-10-29 Magic Leap, Inc. Registration of local content between first and second augmented reality viewers
CN120812326A (en) 2019-05-01 2025-10-17 奇跃公司 Content providing system and method
WO2021021670A1 (en) 2019-07-26 2021-02-04 Magic Leap, Inc. Systems and methods for augmented reality
KR102766383B1 (en) * 2019-08-06 2025-02-12 삼성전자주식회사 Multi-core system and controlling operation of the same
US12033081B2 (en) 2019-11-14 2024-07-09 Magic Leap, Inc. Systems and methods for virtual and augmented reality
EP4058979A4 (en) 2019-11-15 2023-01-11 Magic Leap, Inc. A viewing system for use in a surgical environment
KR102606224B1 (en) * 2023-05-25 2023-11-29 메티스엑스 주식회사 Electronic device including hardware architecture for supporting inter-process communication and method for performing inter-process communication
US20250199600A1 (en) * 2023-12-13 2025-06-19 Cisco Technology, Inc. Smart Network Interface Cards (sNICs) Offload for Improved Sustainability

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156370A1 (en) * 2006-01-03 2007-07-05 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US20070174586A1 (en) * 2005-04-15 2007-07-26 Rambus, Inc. Processor controlled interface
US20080178023A1 (en) * 2007-01-18 2008-07-24 International Business Machines Corporation Method and system for independent processor voltage supply

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711447B1 (en) * 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
KR20050115227A (en) * 2003-01-23 2005-12-07 유니버시티 오브 로체스터 Multiple clock domain microprocessor
US7103320B2 (en) * 2003-04-19 2006-09-05 International Business Machines Corporation Wireless communication system within a system on a chip
JP2005100269A (en) * 2003-09-26 2005-04-14 Toshiba Microelectronics Corp Semiconductor integrated circuit
US7219245B1 (en) * 2004-06-03 2007-05-15 Advanced Micro Devices, Inc. Adaptive CPU clock management
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7802212B2 (en) * 2005-04-15 2010-09-21 Rambus Inc. Processor controlled interface
JP4846272B2 (en) * 2005-06-07 2011-12-28 ルネサスエレクトロニクス株式会社 Semiconductor integrated circuit device
KR101108397B1 (en) * 2005-06-10 2012-01-30 엘지전자 주식회사 Power control device and method of a multi-core processor
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
JP2007148952A (en) * 2005-11-30 2007-06-14 Renesas Technology Corp Semiconductor integrated circuit
JP2007305148A (en) * 2007-06-25 2007-11-22 Univ Waseda Multiprocessor system
US8281308B1 (en) * 2007-07-23 2012-10-02 Oracle America, Inc. Virtual core remapping based on temperature
US7945804B2 (en) * 2007-10-17 2011-05-17 International Business Machines Corporation Methods and systems for digitally controlled multi-frequency clocking of multi-core processors
US8032772B2 (en) * 2007-11-15 2011-10-04 Intel Corporation Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
US8578193B2 (en) * 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
US8589707B2 (en) * 2008-12-05 2013-11-19 Stmicroelectronics International N.V. System and method for optimizing electrical power consumption by changing CPU frequency including steps of changing the system to a slow mode, changing a phase locked loop frequency register and changing the system to a normal mode
US7915910B2 (en) * 2009-01-28 2011-03-29 Apple Inc. Dynamic voltage and frequency management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174586A1 (en) * 2005-04-15 2007-07-26 Rambus, Inc. Processor controlled interface
US20070156370A1 (en) * 2006-01-03 2007-07-05 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US20080178023A1 (en) * 2007-01-18 2008-07-24 International Business Machines Corporation Method and system for independent processor voltage supply

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014070255A1 (en) * 2012-10-31 2014-05-08 Intel Corporation Reducing the overhead associated with frequency changes in processors

Also Published As

Publication number Publication date
JP5547820B2 (en) 2014-07-16
CN102667744A (en) 2012-09-12
JP2013525872A (en) 2013-06-20
CN102667744B (en) 2015-06-10
DE112011100695T5 (en) 2013-01-17
KR20120131195A (en) 2012-12-04
US8549339B2 (en) 2013-10-01
KR101426341B1 (en) 2014-08-06
US20110213991A1 (en) 2011-09-01

Similar Documents

Publication Publication Date Title
US8549339B2 (en) Processor core communication in multi-core processor
US8069358B2 (en) Independent power control of processing cores
JP5697278B2 (en) System hardware automatic performance state transition for processor sleep and wake events
US7739388B2 (en) Method and system for managing data center power usage based on service commitments
US7716506B1 (en) Apparatus, method, and system for dynamically selecting power down level
EP2808789B1 (en) Multi-core apparatus and job scheduling method thereof
US8286015B2 (en) Storage array power management using lifecycle information
EP1590912A2 (en) Method and apparatus for controlling a data processing system during debug
US9411404B2 (en) Coprocessor dynamic power gating for on-die leakage reduction
US20150346797A1 (en) Systems and methods for displaying energy meters
Akramullah Power consumption by video applications
HK1259523B (en) Hardware automatic performance state transitions in system on processor sleep and wake events
HK1163274A (en) Hardware-based automatic performance state transitions on processor sleep and wake events
HK1163274B (en) Hardware-based automatic performance state transitions on processor sleep and wake events

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11747859

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012553946

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 112011100695

Country of ref document: DE

Ref document number: 1120111006950

Country of ref document: DE

ENP Entry into the national phase

Ref document number: 20127024888

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 11747859

Country of ref document: EP

Kind code of ref document: A1