Priority based context preemption
First Claim
Patent Images
1. A system comprising:
- a processor;
a pipeline;
a first port to receive contexts having a first priority;
a second port to receive contexts having a second priority that is higher than the first priority;
a context detection module to detect receipt of the contexts having the second priority at the second port;
a pre-emption module to pre-empt a context having the first priority in the pipeline, wherein to pre-empt the context having the first priority in the pipeline is to include flushing the pipeline by permitting the context having the first priority already in the pipeline to complete execution when the first port receives another context having the first priority;
a pause module to pause the context having the first priority in the pipeline before it completes in the pipeline and without flushing the pipeline after the context detection module has detected the receipt of a context having the second priority at the second port; and
on-die storage to store a state of the paused context.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatuses may prioritize the processing of high priority and low priority contexts submitted to a processing unit through separate high priority and low priority context submission ports. According to one embodiment, submission of a context to the low priority port causes contexts in progress to be preempted, whereas submission of a context to the high priority port causes contexts in progress to be paused.
21 Citations
21 Claims
-
1. A system comprising:
-
a processor; a pipeline; a first port to receive contexts having a first priority; a second port to receive contexts having a second priority that is higher than the first priority; a context detection module to detect receipt of the contexts having the second priority at the second port; a pre-emption module to pre-empt a context having the first priority in the pipeline, wherein to pre-empt the context having the first priority in the pipeline is to include flushing the pipeline by permitting the context having the first priority already in the pipeline to complete execution when the first port receives another context having the first priority; a pause module to pause the context having the first priority in the pipeline before it completes in the pipeline and without flushing the pipeline after the context detection module has detected the receipt of a context having the second priority at the second port; and on-die storage to store a state of the paused context. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
submitting a first context to a first port dedicated to contexts having a first priority; submitting the first context to a pipeline; pre-empting the first context in the pipeline by flushing the pipeline so as to permit the first context already in the pipeline to complete execution when another context has been submitted to the first port; submitting a second context to a second port dedicated to contexts having a second priority, wherein the second priority is higher than the first priority; in response to submitting the second context to the second port, pausing the first context already in the pipeline before it completes in the pipeline, wherein the pipeline is not flushed; and saving a state of the paused context. - View Dependent Claims (10, 11, 12)
-
-
13. At least one non-transitory computer readable storage medium comprising a set of instructions which, if executed by a computing device, cause the computing device to:
-
submit a first context to a first port dedicated to contexts having a first priority; submit the first context to a pipeline; pre-empt the first context in the pipeline by flushing the pipeline so as to permit the first context already in the pipeline to complete execution when another context has been submitted to the first port; submit a second context to a second port dedicated to contexts having a second priority, wherein the second priority is higher than the first priority; in response to submitting the second context to the second port, pause the first context already in the pipeline before it completes in the pipeline, wherein the pipeline is not flushed; and save a state of the paused context. - View Dependent Claims (14, 15, 16)
-
-
17. An apparatus comprising:
-
a first port to receive contexts of a first priority; a second port to receive contexts of a second priority; a pipeline to process contexts; a context detection module to detect the submission of contexts to the ports; a scheduler module to send contexts to the pipeline; a pre-emption module to pre-empt a context having the first priority in the pipeline, wherein to pre-empt the context having the first priority in the pipeline is to include flushing the pipeline by permitting the context having the first priority already in the pipeline to complete execution when the first port receives another context having the first priority; a pause module to pause the pipeline processing the context having the first priority before it completes in the pipeline and without flushing the pipeline when a context having the second priority is received at the second port, wherein the second priority is higher than the first priority; and on-die storage to store a state of at least one of the paused contexts. - View Dependent Claims (18, 19, 20, 21)
-
Specification