Context scheduling -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer How to File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
     new ** File a Provisional Patent ** 
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
02/02/06 | 17 views | #20060026596 | Prev - Next | USPTO Class 718 | About this Page  718 rss/xml feed  monitor keywords

Context scheduling

USPTO Application #: 20060026596
Title: Context scheduling
Abstract: A programmable processing system that executes multiple instruction contexts includes an instruction memory for storing instructions that are executed by the system, fetch logic for determining an address of an instruction, with the fetch logic including scheduling logic that schedules execution of the instruction contexts based on condition signals indicating an availability of a hardware resource, with the condition signals being divided into groups of condition signals, which are sampled in turn by the scheduling logic to provide a plurality of scan sets of sampled conditions.
(end of abstract)
Agent: Fish & Richardson, PC - Minneapolis, MN, US
Inventor: John A. Wishneusky
USPTO Applicaton #: 20060026596 - Class: 718100000 (USPTO)
Related Patent Categories: Electrical Computers And Digital Processing Systems: Virtual Machine Task Or Process Management Or Task Management/control, Task Management Or Control
The Patent Description & Claims data below is from USPTO Patent Application 20060026596.
Brief Patent Description - Full Patent Description - Patent Application Claims  monitor keywords



CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation application of and claims priority to U.S. patent application Ser. No. 09/989,482, filed Nov. 19, 2001.

BACKGROUND

[0002] This invention relates to scheduling contexts in a computer processor.

[0003] Instruction execution in a computer processor may be accomplished by partitioning a stream of instructions into individual contexts. Contexts are "swapped" in or out of execution according to a scheduling system associated with the computer processor. How and when contexts are swapped affects availability of computer processor resources and overall processor performance.

DESCRIPTION OF THE DRAWINGS

[0004] FIG. 1 shows a block diagram of a processing system that includes context scheduling logic;

[0005] FIG. 2 shows a logic diagram for the context scheduling logic of FIG. 1 that includes high priority and low priority comparators; and

[0006] FIG. 3 shows a logic diagram for one of the high priority and low priority comparators of FIG. 2.

DESCRIPTION

[0007] Referring to FIG. 1, a programmable processing system 100 includes a computer processing unit (CPU) 105, an instruction memory 115 for holding instructions for CPU 105 and a common data bus 123 for transferring data from CPU 105 to input/output bus controllers (I/O controllers) 180A-180N. I/O controllers 180A-180N are connected to both data bus 123 and input/output buses (I/O buses) 190A-190N, respectively, and manage data transfers between the respective buses 123 and 190A-190N. Additional logic blocks 107A-107N, e.g., CPUs, may also be connected to data bus 123 that transfer data to and from I/O controllers 180A-180N. Programmable system 100 is designed to provide high-speed data transfers and communications over I/O buses 190A-190N, e.g., performing data transfers and communications according to Ethernet or High-Speed Serial protocols or the like.

[0008] I/O controllers 180A-180N are logic blocks designed to manage the I/O operations associated with a specific I/O bus 190A-190N, respectively. Each I/O controller generally will include at least one memory buffer (a "queue") that is filled and emptied as data is sent and received over I/O buses 190A-190N and also maintains hardware status bits to indicate the status of a queue or the availability of an I/O controller 180A-180N for processing data transfers. I/O controllers 180A-180N output the hardware status bits to CPU 105 on condition signal lines 112. Some examples of hardware status bits indications include: the availability of a buffer, the storing of an address in a queue, the availability of an I/O controller for I/O operations or the state of a mutex being set or cleared.

[0009] CPU 105 includes decode logic 120 for decoding instructions from instruction memory 115 and fetch logic 130 that outputs the address of an instruction to instruction memory 115. Fetch logic 130 also includes PC selection logic 160 for selecting the instruction address (the "program counter" (PC)) that is output on address bus 162 to instruction memory 115. Each PC address output on bus 162 causes instruction memory 115 to output an instruction on instruction bus 117 to decode logic 120. CPU 105 also includes ALU/Register logic 110 that performs arithmetic operations and data reads and writes according to decode signals from decode logic 120.

[0010] System 100 includes several different hardware resources that operate at different speeds, therefore, an instruction may be processed faster by one hardware resource than another hardware resource is able to respond. As an example, an instruction may cause CPU 105 to request a data transfer to or from one of the I/O buses 190A-190N. The data read may require the use of a memory buffer associated with the corresponding I/O controller, and, therefore, if that buffer is unavailable, CPU 105 would need to be stalled to wait for the availability of the buffer. To more effectively utilize the processing speed of CPU 105 while waiting for hardware resources to become available, programmable processing system 100 is configured to execute multiple instruction streams ("contexts"), where a first context may begin execution and then be pre-empted by a second context before completion of the first context.

[0011] To manage the scheduling of a multiple contexts, fetch logic 130 includes context scheduler logic 149 that uses condition signals 112, in part, to determine when to schedule a new context. Fetch logic 130 also includes a context store 140 that contains "starting event" information and PC values for, e.g., sixteen (16) contexts that may be scheduled by context scheduler 149. Starting event information is used to determine what hardware resource, as indicated by a specified condition signal 112, that must be available before scheduling a context for pre-emption. Fetch logic 130 also includes an executing contexts stack (ECS) 145 for storing context information that is used by context scheduler 149 to store "pre-empting" context information for three (3) contexts at three different priority levels.

[0012] Context information is stored in ECS 145 according to the three priority levels (from Level 0 to Level 2, where Level 2 is the highest priority level). Therefore, ECS 145 provides a mechanism for storing a higher priority context for execution before a lower priority context when both the higher and lower priority contexts are waiting for the availability of the same hardware resource, as will be explained.

[0013] ECS 145 contains the context information for each context that may be executed at each priority level, i.e., the starting PC value for each context. ECS 145 also includes execution status bits "P" and "A", which indicate when a context at a particular priority level is ready to pre-empt the execution of any lower priority contexts (the P-bit is set), and whether a particular context stored in ECS 145 is currently being executed (the A-bit is set). In operation, a "background" context, at priority level zero (0) will be executed when no higher priority level context has been placed in ECS 145 with the P-bit set. However, whenever a higher priority context is placed in ECS 145 with the P-bit set, the PC selection logic 160 will pre-empt the currently executing context and begin execution of the highest priority context in ECS 145. ECS 145 contains only one entry for each priority level (Level 0-Level 2) so that only one context for each priority may be scheduled at a time.

[0014] The sixteen contexts that may be scheduled for execution are divided into three (3) priority levels, as follows:

[0015] Level 0: The background context has the lowest execution priority (Level 0). A context with a level 0 priority may be preempted by any other context. The background context has no start event, being executed by default whenever no higher priority context is executing. The second priority level is Level 1. There are seven (7) contexts with a priority Level 1. These contexts are the lowest priority above background context, (Level 0). Only one Level 1 context may be on ECS 145 at the same time. The third context is Level 2. There are eight (8) contexts with a priority Level 2. These are the highest priority contexts. Only one of the eight (8) Level 2 contexts may be on ECS 145 at one time.

[0016] Level 1 contexts may only preempt the background context. Level 2 contexts may preempt the background context and any Level 1 context.

[0017] Referring to FIG. 2, context store 140 stores the starting event bit fields 142A/142B and starting PC 144A/144B for each of the eight (8) high priority contexts and each of the seven (7) low priority contexts, respectively, that may be scheduled for execution by scheduler 149. Starting event bit fields 142A/142B indicate which of the condition signals 112 must be set (and at which logic level) before a specific context may be scheduled, as will be explained. Context scheduler 149 includes condition scanner logic 150 that performs context scheduling by comparing hardware condition signals 112 to a starting event that must match a specified condition signal 112 before a context may be stored as pre-empting in ECS 145. In system 100, the sixteen contexts stored in context store 140 are broken into a set of eight (8) Level 2 contexts, seven (7) Level 1 contexts and one (1) Level 0 context.

[0018] In system 100 a total of sixty-four (64) hardware condition signals 112 are used. To reduce the complexity and size of the scheduling logic and also to address the prioritization of sixteen (16) contexts, the hardware condition signals 112 are divided into four (4) groups (a "scan set") of sixteen (16) sampled condition signals 112. Each scan set is identified by a two-bit scan set number and each scan set is sampled in turn by scheduling logic 149 when determining which context to schedule. The individual conditions signals 112 are latched by the controller logic associated with the signal, for example, a flip/flop or register in I/O controller 180A-180N. However, the individual condition signals could also be latched in or near the context scheduler logic 149. Some examples of hardware conditions that are represented by condition signals 112 may include the status of a queue (queue full, queue empty, queue nearly full, etc.), the status of a transaction (completed or not complete) or the detection of a data transmission error.

[0019] Referring again to FIG. 2, context scheduler 149 includes a scan set counter 153 for producing a scan set number 153A, and a scan set selector mux 152 connected to receive hardware conditions signal 112 and for outputting a selected scan set 154A. Context scheduler also includes a set of high priority comparators 151A (eight in total) for comparing the selected scan set 154A to a set of high priority starting events values 142A from context store 140. Context scheduler also includes a condition scan word register 157 for storing the previously selected scan set 154R and the previous scan set number 153R. Context scheduler also includes a set of low priority comparators (seven in total) for comparing low priority starting events 142B to the scan set in scan word register 157.

[0020] Context scheduler logic 149 also includes inhibit control logic 155 that is connected to each of the high priority comparators 151A and low priority comparators 151B, by enable control lines 202 and 204, respectively. Enable control lines 202 and 204 are used to control the output of any high or low priority matched context to be stored in ECS 145, as will be explained.

Continue reading...
Full patent description for Context scheduling

Brief Patent Description - Full Patent Description - Patent Application Claims
Click on the above for other options relating to this Context scheduling patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Context scheduling or other areas of interest.
###


Previous Patent Application:
Categorizing, voting and rating community threads
Next Patent Application:
Image processing apparatus and control method and program thereof
Industry Class:
Electrical computers and digital processing systems: virtual machine task or process management or task management/control

###

FreshPatents.com Support
Thank you for viewing the Context scheduling patent info.
IP-related news and info


Results in 0.55557 seconds


Other interesting Feshpatents.com categories:
Electronics: Semiconductor Audio Illumination Connectors Crypto