CA2465015A1 - Context scheduling - Google Patents

Context scheduling Download PDF

Info

Publication number
CA2465015A1
CA2465015A1 CA002465015A CA2465015A CA2465015A1 CA 2465015 A1 CA2465015 A1 CA 2465015A1 CA 002465015 A CA002465015 A CA 002465015A CA 2465015 A CA2465015 A CA 2465015A CA 2465015 A1 CA2465015 A1 CA 2465015A1
Authority
CA
Canada
Prior art keywords
context
logic
scan
contexts
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA002465015A
Other languages
French (fr)
Other versions
CA2465015C (en
Inventor
John Wishneusky
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2465015A1 publication Critical patent/CA2465015A1/en
Application granted granted Critical
Publication of CA2465015C publication Critical patent/CA2465015C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

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.

Claims (23)

1. A programmable processing system that executes multiple instruction contexts comprising:
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 comprising:
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.
2. The system of claim 1 wherein said scheduling logic further comprises:
control logic that determines when a context may be scheduled based on the execution of another context by said system.
3. The system of claim 2 wherein said scheduling logic further comprises:
a context store to store context information for a plurality of contexts, the context information including a priority field that indicates the execution priority level of each of the plurality of contexts; and an executing contexts stack to indicate the priority level of a context marked for execution.
4. The system of claim 3 wherein the executing contexts stack has a first bit field that indicates a context having context information stored in the executing contexts stack is ready to pre-empt the currently executing context.
5. The system of claim 4 wherein said executing contexts stack has a second bit field that indicates a context having context information stored in said execution stack is currently being executed.
6. The system of claim 5 wherein the first bit field and the second bit field are used by said inhibit control logic to determine when a new context may be transferred to the executing contexts stack for pre-empting another context.
7. The system of claim 6 wherein the first bit field is set by the inhibit control logic when the new context is transferred to the executing contexts stack.
8. The system of claim 3 wherein said scheduling logic further comprises:
sampling logic that receives the condition signals; and a scan set counter that selects a first scan set to be output from said sampling logic.
9. The system of claim 8 wherein said context store includes a starting event field associated with one of said plurality of contexts, with the starting event field used by said scheduling logic to determine whether a bit of the condition signal contained within the first scan set matches a bit indicated by the starting event field.
10. The system of claim 9 wherein the starting event field comprises:
a condition field indicating which condition signal within a scan set must be set for this context to be scheduled for execution; and a scan set indicator field indicating which of the plurality of scan sets contains the condition signal which must be set for this context to be scheduled for execution.
11. The system of claim 10 wherein the starting event field further comprises:
a type bit field specifying the polarity of the condition signal that indicates the condition signal is set.
12. The system of claim 9 wherein said scheduling logic further comprises:
a low priority comparator and a high priority comparator that compare a selected scan set to a low priority start event context and a high priority start event context.
13. The system of claim 12 wherein said scheduling logic further comprises:
a scan word register that stores the last selected scan set and the last scan set counter value, said scan word register being input to said low priority comparator for comparing the last selected scan set at a time after the high priority comparison on the last context scan set has completed.
14. The system of claim 9 further comprise:
15 at least one input/output logic block, said input/output logic block also providing at least one of the condition signals to the scheduling logic.

15. The system of claim 9 wherein said inhibit control logic delays the enabling of the low priority context before the high priority context when an instruction causes a context exit.
16. The system of claim 9 further comprises:
a plurality of coprocessor engines that execute multiple instruction contexts, said plurality of coprocessor engines also providing a set of coprocessor condition signals to said scheduling logic.
17. The system of claim 14 wherein at least one said plurality of coprocessors further comprise:
at least one of a buffer and an address queue, said at least one coprocessor also providing at least one of the condiction signals to the scheduling logic.
18. A method of operating a programmable processing system, the method comprising:
scheduling execution of an instruction context 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 to provide a plurality of scan sets of sampled conditions.
19. The method of claim 18 wherein context information is stored that includes a starting event for each context that may be scheduled for execution, the method further comprises:
determining that a starting event for a context matches one of the sampled conditions in one of the plurality of scan sets.
20. The method of claim 19 wherein said determining further comprises:
determining when a context may be scheduled based on a level of priority of a currently executing context.
21. The method of claim 20 further comprises:
dividing context information into at least two priority levels; and scheduling a higher priority context for execution having a starting that matches a sampled condition before a lower priority context having the same starting event.
22. A computer program stored in a computer readable medium having instructions causing a computer to:
schedule execution of an instruction context based on condition signals based on an availability of a hardware resource, with the condition signals being divided into groups of condition signals, which are sampled to provide a plurality of scan sets of sampled conditions.
23. The computer program of claim 22 further comprising instruction causing a computer to:
determine that a starting event for a context matches one of the sampled conditions in one of the plurality of scan sets.
CA002465015A 2001-11-19 2002-11-13 Context scheduling Expired - Fee Related CA2465015C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/989,482 2001-11-19
US09/989,482 US6901507B2 (en) 2001-11-19 2001-11-19 Context scheduling
PCT/US2002/036687 WO2003044658A2 (en) 2001-11-19 2002-11-13 Context scheduling

Publications (2)

Publication Number Publication Date
CA2465015A1 true CA2465015A1 (en) 2003-05-30
CA2465015C CA2465015C (en) 2010-01-05

Family

ID=25535148

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002465015A Expired - Fee Related CA2465015C (en) 2001-11-19 2002-11-13 Context scheduling

Country Status (8)

Country Link
US (2) US6901507B2 (en)
EP (1) EP1449071B1 (en)
AT (1) ATE403903T1 (en)
AU (1) AU2002361634A1 (en)
CA (1) CA2465015C (en)
DE (1) DE60228116D1 (en)
TW (1) TWI248019B (en)
WO (1) WO2003044658A2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047284A (en) 1997-05-14 2000-04-04 Portal Software, Inc. Method and apparatus for object oriented storage and retrieval of data from a relational database
US8099393B2 (en) * 2002-03-22 2012-01-17 Oracle International Corporation Transaction in memory object store
US20040034759A1 (en) * 2002-08-16 2004-02-19 Lexra, Inc. Multi-threaded pipeline with context issue rules
DE102004059972B4 (en) * 2004-12-13 2010-07-01 Infineon Technologies Ag Thread scheduling method, and thread list scheduler device
US7713330B2 (en) * 2004-12-22 2010-05-11 Oreck Holdings, Llc Tower ionizer air cleaner
US7631132B1 (en) * 2004-12-27 2009-12-08 Unisys Corporation Method and apparatus for prioritized transaction queuing
US8223935B2 (en) 2005-04-30 2012-07-17 Oracle International Corporation Revenue management systems and methods
CA2613701C (en) 2005-06-28 2016-04-12 Alexander Rockel Revenue management system and method
CA2616194C (en) 2005-07-28 2015-02-17 Oracle International Corporation Revenue management system and method
US8223777B2 (en) 2005-11-15 2012-07-17 Oracle International Corporation Gateway for achieving low latency and high availability in a real time event processing system
TW200945205A (en) * 2008-04-18 2009-11-01 Inventec Corp A divided disk command processing system and method thereof
US8561072B2 (en) * 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
CN103761073A (en) * 2014-01-08 2014-04-30 东南大学 ARMv7-oriented prediction-based dynamic instruction scheduling method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975828A (en) * 1987-08-05 1990-12-04 Cirrus Logic, Inc. Multi-channel data communications controller
US6728959B1 (en) * 1995-08-08 2004-04-27 Novell, Inc. Method and apparatus for strong affinity multiprocessor scheduling
US6073159A (en) * 1996-12-31 2000-06-06 Compaq Computer Corporation Thread properties attribute vector based thread selection in multithreading processor
US6092180A (en) * 1997-11-26 2000-07-18 Digital Equipment Corporation Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed
EP0942366A2 (en) 1998-03-10 1999-09-15 Lucent Technologies Inc. Event-driven and cyclic context controller and processor employing the same
US6493741B1 (en) * 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit

Also Published As

Publication number Publication date
TWI248019B (en) 2006-01-21
TW200302979A (en) 2003-08-16
WO2003044658A2 (en) 2003-05-30
WO2003044658A3 (en) 2004-02-26
US20030097547A1 (en) 2003-05-22
ATE403903T1 (en) 2008-08-15
AU2002361634A1 (en) 2003-06-10
CA2465015C (en) 2010-01-05
US6901507B2 (en) 2005-05-31
AU2002361634A8 (en) 2003-06-10
EP1449071A2 (en) 2004-08-25
DE60228116D1 (en) 2008-09-18
US20060026596A1 (en) 2006-02-02
EP1449071B1 (en) 2008-08-06

Similar Documents

Publication Publication Date Title
US7210146B2 (en) Sleep queue management
US7302684B2 (en) Systems and methods for managing a run queue
US7793296B2 (en) System and method for scheduling a multi-threaded processor
US5918033A (en) Method and apparatus for dynamic location and control of processor resources to increase resolution of data dependency stalls
US20060026596A1 (en) Context scheduling
US20050198476A1 (en) Parallel multithread processor (PMT) with split contexts
US8065457B2 (en) Delayed memory access request arbitration
US20060156306A1 (en) Thread scheduling method, and device to be used with a thread scheduling method
US7634774B2 (en) System and method of scheduling computing threads
WO2020198220A1 (en) Processor and interrupt controller
US20110276979A1 (en) Non-Real Time Thread Scheduling
US8601488B2 (en) Controlling the task switch timing of a multitask system
US20130104141A1 (en) Divided central data processing,
CN112767978B (en) DDR command scheduling method, device, equipment and medium
US7318228B2 (en) System and method for task arbitration in multi-threaded simulations
JP5803721B2 (en) Data processing device
JPH08137703A (en) Task switching device
KR100329780B1 (en) Interrupt processing apparatus reducing interrupt response time
JPS63163533A (en) Microcomputer
JPH04147344A (en) Multitask execution control method
JPH0381832A (en) Interruption control circuit
JPH0328962A (en) Alignment control system using scoreboard
JPS6389933A (en) Queue control system
JPS6223892B2 (en)

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20131113