The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.

The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.

Date of Patent:
Nov. 11, 2014

Filed:

Mar. 10, 2010
Applicants:

Scott Mosier, North Bend, WA (US);

Michael Mckenzie Magruder, Carnation, WA (US);

Frank V. Peschel-gallee, Kirkland, WA (US);

Inventors:

Scott Mosier, North Bend, WA (US);

Michael McKenzie Magruder, Carnation, WA (US);

Frank V. Peschel-Gallee, Kirkland, WA (US);

Assignee:

Microsoft Corporation, Redmond, WA (US);

Attorneys:
Primary Examiner:
Assistant Examiner:
Int. Cl.
CPC ...
G06F 9/44 (2006.01); G06F 9/38 (2006.01); G06F 9/32 (2006.01);
U.S. Cl.
CPC ...
G06F 9/32 (2013.01); G06F 9/3851 (2013.01); G06F 9/325 (2013.01); G06F 9/44 (2013.01);
Abstract

Loop control flow diversion supports thread synchronization, garbage collection, and other situations involving suspension of long-running loops. Divertible loops have a loop body, a loop top, an indirection cell containing a loop top address, and a loop jump instruction sequence which references the indirection cell. In normal execution, control flows through the indirection cell to the loop top. After the indirection cell is altered, however, execution flow is diverted to a point away from the loop top. Operations such as garbage collection are performed while the loop (and hence the thread(s) using the loop) is thus diverted. The kernel or another thread then restores the loop top address into the indirection cell, and execution flow again continues through the restored indirection cell to the loop top.


Find Patent Forward Citations

Loading…