CA2465015A1 - Context scheduling - Google Patents
Context scheduling Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims 6
- 238000004590 computer program Methods 0.000 claims 2
- 238000005070 sampling Methods 0.000 claims 2
- 230000001934 delay Effects 0.000 claims 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
determine that a starting event for a context matches one of the sampled conditions in one of the plurality of scan sets.
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)
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)
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 |
-
2001
- 2001-11-19 US US09/989,482 patent/US6901507B2/en not_active Expired - Lifetime
-
2002
- 2002-11-13 WO PCT/US2002/036687 patent/WO2003044658A2/en not_active Application Discontinuation
- 2002-11-13 CA CA002465015A patent/CA2465015C/en not_active Expired - Fee Related
- 2002-11-13 EP EP02797114A patent/EP1449071B1/en not_active Expired - Lifetime
- 2002-11-13 DE DE60228116T patent/DE60228116D1/en not_active Expired - Lifetime
- 2002-11-13 AU AU2002361634A patent/AU2002361634A1/en not_active Abandoned
- 2002-11-13 AT AT02797114T patent/ATE403903T1/en not_active IP Right Cessation
- 2002-11-18 TW TW091133620A patent/TWI248019B/en not_active IP Right Cessation
-
2005
- 2005-05-31 US US11/141,993 patent/US20060026596A1/en not_active Abandoned
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 |