IP Library Granted Patent US 9,753,770
Granted Patent B2
US 9,753,770 · App. 14/658,266 · Granted Sep 5, 2017

Register-type-aware scheduling of virtual central processing units

Inventors: Abel Gordon (Haifa, IL); Shlomo Matichin (Petach Tikva, IL)
Assignee: STRATO SCALE LTD.
G06F9/4881G06F9/30098G06F9/45533G06F9/505G06F9/5044G06F2209/5019
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,753,770
App. No.
14/658,266
Granted
Sep 5, 2017
Kind
B2
Abstract

A method includes running multiple processing tasks on multiple physical processing cores that support general-purpose registers and special-purpose registers. Respective usage levels, with which the processing tasks use the special-purpose registers, are estimated. The physical processing cores are assigned to the processing tasks based on the estimated usage levels of the special-purpose registers.

Claims (38)

1. A method, comprising:

running multiple processing tasks on multiple physical processing cores in a processor that support general-purpose registers and special-purpose registers;

estimating respective usage levels with which the multiple processing tasks use the special-purpose registers;

in response to the estimating the respective usage levels, assigning the multiple processing tasks respective scores that are indicative of the respective usage levels of the special-purpose registers by the multiple processing tasks;

in response to the assigning the multiple processing tasks the respective scores, aggregating the respective scores of the multiple processing tasks on the multiple physical processing cores to obtain sums of the respective scores of the multiple processing tasks on the multiple physical processing cores; and

assigning the multiple physical processing cores to the multiple processing tasks based on the estimated usage levels of the special-purpose registers using a scheduling criterion minimizing the sums of the respective scores of the multiple processing tasks on the multiple physical processing cores to reduce a rate of context-switching between the multiple processing tasks that use the special-purpose registers.

2. The method according to claim 1 , wherein the scheduling criterion aims to reduce usages of the special-purpose registers per physical processing core from the multiple physical processing cores.

3. The method according to claim 2 , wherein the scheduling criterion aims to reduce a maximal number of the multiple processing tasks that use the special-purpose registers on any given physical processing core from the multiple processing cores.

4. The method according to claim 2 , wherein the scheduling criterion aims to reduce a number of save and load operations of the special-purpose registers.

5. The method according to claim 2 , wherein the scheduling criterion aims to reduce a number of detection operations that detect the usages of the special-purpose registers.

6. The method according to claim 1 , wherein the special-purpose registers comprise Floating-Point Unit (FPU) registers.

7. The method according to claim 1 , wherein the special-purpose registers comprise Single-Instruction Multiple-Data (SIMD) registers.

8. The method according to claim 1 , wherein the special-purpose registers comprise vector registers.

9. The method according to claim 1 , wherein the estimating the respective usage levels with which the multiple processing tasks use the special-purpose registers comprises estimating respective usage levels with which Virtual Central Processing Units (VCPUs) of Virtual Machines (VMs) use the special-purpose registers.

10. The method according to claim 1 , wherein the multiple physical processing cores are distributed over multiple physical hosts.

11. The method according to claim 1 , wherein the assigning the multiple physical processing cores to the multiple processing tasks comprises determining, based on the estimated usage levels of the special-purpose registers, a placement of Virtual Machines (VMs) that execute the multiple processing tasks on physical hosts that comprise the multiple physical processing cores.

12. The method according to claim 1 , wherein the running the multiple processing tasks comprises running a hypervisor that allocates resources of the multiple physical processing cores to the multiple processing tasks, and wherein the estimating the usage levels of the special-purpose registers comprises monitoring the allocated resources using the hypervisor.

13. The method according to claim 1 , wherein the estimating the respective usage levels with which the multiple processing tasks use the special-purpose registers comprises estimating based on monitoring the respective usage levels of the special-purpose registers in past activities of the multiple processing tasks.

14. The method according to claim 1 , wherein the assigning the multiple processing tasks the respective scores comprises assigning a first score value to processing tasks that had a high level of use of the special-purpose registers and a second score value to processing tasks that had a low level of use of the special-purpose registers.

15. The method according to claim 1 , wherein the assigning the multiple processing tasks the respective scores comprises assigning scores from a value scale including at least three different values.

16. An apparatus, comprising:

a memory; and

a processor, which comprises multiple physical processing cores that support general-purpose registers and special-purpose registers, and which is configured to:

monitor multiple processing tasks that run on the multiple physical processing cores;

estimate respective usage levels with which the multiple processing tasks use the special-purpose registers;

assign the multiple processing tasks respective scores that are indicative of the usage levels of the special-purpose registers by the multiple processing tasks in response to the estimating the respective usage levels;

in response to the assigning the processing tasks the respective scores, aggregate the scores of the multiple processing tasks on the multiple physical processing cores to obtain sums of the respective scores of the multiple processing tasks on the multiple physical processing cores; and

assign the multiple physical processing cores to the multiple processing tasks based on the estimated usage levels of the special-purpose registers using a scheduling criterion minimizing the sums of the respective scores of the multiple processing tasks on the multiple physical processing cores to reduce a rate of context-switching between the multiple processing tasks that use the special-purpose registers.

17. The apparatus according to claim 16 , wherein the scheduling criterion aims to reduce usages of the special-purpose registers per physical processing core.

18. The apparatus according to claim 17 , wherein the scheduling criterion aims to reduce a maximal number of the multiple processing tasks that use the special-purpose registers on any given physical processing core from the multiple physical processing cores.

19. The apparatus according to claim 17 , wherein the scheduling criterion aims to reduce a number of save and load operations of the special-purpose registers.

20. The apparatus according to claim 17 , wherein the scheduling criterion aims to reduce a number of detection operations that detect the usages of the special-purpose registers.

21. The apparatus according to claim 16 , wherein the special-purpose registers comprise Floating-Point Unit (FPU) registers.

22. The apparatus according to claim 16 , wherein the special-purpose registers comprise Single-Instruction Multiple-Data (SIMD) registers.

23. The apparatus according to claim 16 , wherein the special-purpose registers comprise vector registers.

24. The apparatus according to claim 16 , wherein the multiple processing tasks comprise Virtual Central Processing Units (VCPUs) of Virtual Machines (VMs).

25. The apparatus according to claim 16 , wherein the multiple physical processing cores are distributed over multiple physical hosts.

26. The apparatus according to claim 16 , wherein the processor is configured to run a hypervisor that allocates resources of the multiple physical processing cores to the multiple processing tasks, and to estimate the usage levels of the special-purpose registers by monitoring the allocated resources using the hypervisor.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2020
From: STRATO SCALE LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 053184/0620 →
SECURITY INTEREST Recorded Jan 24, 2019
From: STRATO SCALE LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 048115/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2015
From: GORDON, ABEL; MATICHIN, SHLOMO
To: STRATO SCALE LTD.
Reel/Frame 035168/0437 →
Continuity (2)
Provisional Application 61974491 · Apr 3, 2014
Related Publication 20150286501A1 · Oct 8, 2015