US2014325511A1PendingUtilityA1

Operating system decoupled heterogeneous computing

Assignee: MICROSOFT CORPPriority: Jun 8, 2011Filed: Jul 9, 2014Published: Oct 30, 2014
Est. expiryJun 8, 2031(~4.9 yrs left)· nominal 20-yr term from priority
Inventors:Jered Aasheim
G06F 2009/45595G06F 9/45558G06F 9/46G06F 9/22G06F 9/5094Y02D10/00
55
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A heterogeneous processing system is described herein that provides a software hypervisor to autonomously control operating system thread scheduling across big and little cores without the operating system's awareness or involvement to improve energy efficiency or meet other processing goals. The system presents a finite set of virtualized compute cores to the operating system to which the system schedules threads for execution. Subsequently, the hypervisor intelligently controls the physical assignment and selection of which core(s) execute each thread to manage energy use or other processing requirements. By using a software hypervisor to abstract the underlying big and little computer architecture, the performance and power operating differences between the cores remain opaque to the operating system. The inherent indirection also decouples the release of hardware with new capabilities from the operating system release schedule.

Claims

exact text as granted — not AI-modified
I/We claim: 
     
         1 . A computer-implemented method for providing operating system-decoupled heterogeneous computing through a hypervisor, the method comprising:
 determining capabilities of two or more physical processing cores accessible to a computing device, wherein the capabilities include one or more power profiles offered by each physical processing core and performance characteristics of each physical processing core;   accessing hypervisor policy information that specifies one or more goals for scheduling operating system threads on the physical processing cores;   creating one or more virtual cores to expose to an operating system, wherein each virtual core isolates the operating system from determined differences in capabilities among the physical processing cores; and   invoking the operating system and presenting the one or more virtual cores to the operating system while isolating the operating system from the physical processing cores.   
     
     
         2 . The computer-implemented method of  claim 1 , further comprising:
 activating the hypervisor, the hypervisor interfacing between the operating system and the physical processing cores; and   identifying at least one operating system that the hypervisor will manage access and scheduling of the physical processing cores.   
     
     
         3 . The computer-implemented method of  claim 1 , wherein the one or more goals include one or more of a performance goal and/or a power usage goal. 
     
     
         4 . The computer-implemented method of  claim 1 , wherein the hypervisor policy information includes one or more of Minimum Power, Maximum Performance, Minimal Power Performance on Demand, and/or Maximum Performance Power Down on Idle. 
     
     
         5 . The computer-implemented method of  claim 1 , further comprising:
 receiving a thread scheduling request from the operating system to run a thread on an identified virtual core; and   selecting at least one physical processing core on which to execute the thread.   
     
     
         6 . The computer-implemented method of  claim 5 , wherein the selection is based on a scheduling policy and available system facilities. 
     
     
         7 . The computer-implemented method of  claim 6 , wherein the scheduling policy is based on power usage. 
     
     
         8 . A computer-readable storage medium, not comprising a signal per se, including instructions, upon execution, cause a processor to perform actions comprising:
 determining capabilities of two or more physical processing cores accessible to a computing device, wherein the capabilities include one or more power profiles offered by each physical processing core and performance characteristics of each physical processing core;   accessing hypervisor policy information that specifies one or more goals for scheduling operating system threads on the physical processing cores;   creating one or more virtual cores to expose to an operating system, wherein each virtual core isolates the operating system from determined differences in capabilities among the physical processing cores; and   invoking the operating system and presenting the one or more virtual cores to the operating system while isolating the operating system from the physical processing cores.   
     
     
         9 . The computer-readable storage medium of  claim 8 , further comprising:
 activating the hypervisor, the hypervisor interfacing between the operating system and the physical processing cores; and   identifying at least one operating system that the hypervisor will manage access and scheduling of the physical processing cores.   
     
     
         10 . The computer-readable storage medium of  claim 8 , wherein the one or more goals include one or more of a performance goal and/or a power usage goal. 
     
     
         11 . The computer-readable storage medium of  claim 8 , wherein the hypervisor policy information includes one or more of Minimum Power, Maximum Performance, Minimal Power Performance on Demand, and/or Maximum Performance Power Down on Idle. 
     
     
         12 . The computer-readable storage medium of  claim 8 , further comprising:
 receiving a thread scheduling request from the operating system to run a thread on an identified virtual core; and   selecting at least one physical processing core on which to execute the thread.   
     
     
         13 . The computer-readable storage medium of  claim 8 , wherein the selection is based on a scheduling policy and available system facilities. 
     
     
         14 . The computer-readable storage medium of  claim 8 , wherein the scheduling policy is based on power usage. 
     
     
         15 . A computer system for providing operating system-decoupled heterogeneous computing, the system comprising:
 two or more physical processing cores;   a memory, the memory including:
 hypervisor policy information that specifies one or more goals for scheduling operating system threads, wherein at least one goal is based on power usage; and 
 a hypervisor, interfacing between an operating system and the two or more physical processing cores, the hypervisor:
 determining capabilities of the two or more physical processing cores, wherein the capabilities include one or more power profiles offered by each physical processing core and performance characteristics of each physical processing core, 
 creating one or more virtual cores to expose to the operating system based on the hypervisor policy information; and 
 invoking the operating system and presenting the one or more virtual cores to the operating system while isolating the operating system from the physical processing cores. 
 
   
     
     
         16 . The computer system of  claim 15 , wherein the hypervisor policy information includes one or more of Minimum Power, Maximum Performance, Minimal Power, Performance on Demand, and/or Power Down on Idle. 
     
     
         17 . The computer system of  claim 15 , further comprising:
 receiving a thread scheduling request from the operating system to run a thread on an identified virtual core; and   selecting at least one physical processing core on which to execute the thread.   
     
     
         18 . The computer system of  claim 17 , wherein the selection is based on a scheduling policy and available system facilities. 
     
     
         19 . The computer system of  claim 17 , wherein the hypervisor migrates the thread to another physical processing core after the thread has begun executing. 
     
     
         20 . The computer system of  claim 17 , wherein the hypervisor employs processor voltage and frequency modifications to reduce power or increase performance up to a threshold before selecting a core.

Join the waitlist — get patent alerts

Track US2014325511A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.