Claims
- 1. A multi-streaming processor, comprising:
a plurality of streams for streaming one or more instruction threads; a set of functional resources for processing instructions from streams; and interstream control mechanisms whereby any stream may effect the operation of any other stream.
- 2. The processor of claim 1 wherein the interstream control mechanisms include mechanisms for accomplishing one or more of enabling or disabling another stream, putting another stream into a sleep mode or awakening another stream from a sleep mode, setting priorities for another stream relative to access to functional resources, and granting blocking access by another stream to functional resources.
- 3. The processor of claim 2 wherein the interstream control mechanisms include a master mode, whereby one stream is granted master status, and thereby executes a Master stream and exerts any and all available control mechanisms relative to other streams without interference by any other stream.
- 4. The processor of claim 3 wherein more than one stream is accorded Master status, and the streams accorded Master status may each run a Master thread exercising Master control over specific other streams not under control of another Master stream.
- 5. The processor of claim 2 wherein the interstream control mechanisms include supervisory modes, wherein control may be granted from minimal to full control, with compliance of controlled streams, which may alter or withdraw control privileges.
- 6. The processor of claim 2 wherein master status and interstream control hierarchy is recorded and amended by at least one on-chip bit map.
- 7. The processor of claim 6 wherein each stream maintains and edits a bitmap granting or withdrawing control privileges for each other stream, the settings valid for any stream but a Master stream, which will ignore the settings.
- 8. A method for providing cooperation among software threads running concurrently in separate streams of a multi-streaming processor, comprising steps of:
(a) implementing interstream control mechanisms in the processor, wherein any stream may exert control functions on any other stream; (b) establishing control access privileges associated with each stream wherein scope of control for every other stream is recorded; and (c) exercising interstream control between operating streams using the control mechanisms within the scope recorded for each stream.
- 9. The method of claim 8 wherein the scope of control includes one or more of enabling or disabling another stream, putting another stream into a sleep mode or awakening another stream from a sleep mode, setting priorities for another stream relative to access to functional resources, and granting blocking access by another stream to functional resources.
- 10. The method of claim 9 further comprising a step for setting a master mode, wherein one stream is granted master status, and thereby may exert any and all available control mechanisms relative to other streams without interference by any stream.
- 11. The method of claim 10 wherein more than one stream is granted Master status and the streams granted Master status may each run a Master thread exercising Master control over specific other streams not under control of another Master stream.
- 12. The method of claim 9 wherein the interstream control mechanisms include supervisory modes, wherein control may be granted from minimal to full control, with compliance of controlled streams, which may alter or withdraw control privileges.
- 13. The method of claim 9 wherein master status and interstream control hierarchy is recorded and amended by at least one on-chip bit map.
- 14. The method of claim 13 wherein each stream maintains and edits a bitmap granting or withdrawing control privileges for each other stream, the settings valid for any stream but a Master stream, which will ignore the settings.
- 15. A computing system comprising:
input apparatus for acquiring data to be processed; memory elements for storing data and executable code for controlled use; and a multi-streaming processor; Characterized in that the multi-streaming processor has a plurality of streams for streaming one or more instruction threads, a set of functional resources for processing instructions from streams, and interstream control mechanisms whereby any stream may effect the operation of any other stream.
- 16. The system of claim 15 wherein the interstream control mechanisms include mechanisms for accomplishing one or more of enabling or disabling another stream, putting another stream into a sleep mode or awakening another stream from a sleep mode, setting priorities for another stream relative to access to functional resources, and granting blocking access by another stream to functional resources.
- 17. The system of claim 16 wherein the interstream control mechanisms include a master mode, whereby one stream is granted master status, and thereby may exert any and all available control mechanisms relative to other streams without interference by any stream.
- 18. The system of claim 17 wherein more than one stream is granted Master status and the streams granted Master status may each run a Master thread exercising Master control over specific other streams not under control of another Master stream.
- 19. The system of claim 16 wherein the interstream control mechanisms include supervisory modes, wherein control may be granted from minimal to full control, with compliance of controlled streams, which may alter or withdraw control privileges.
- 20. The system of claim 17 wherein master status and interstream control hierarchy is recorded and amended by at least one on-chip bit map.
- 21. The system of claim 120 wherein each stream maintains and edits a bitmap granting or withdrawing control privileges for each other stream, the settings valid for any stream but a Master stream, which will ignore the settings.
- 22. A process for initializing at power-on or reset a multi-streaming processor having a plurality of streams for streaming one or more instruction threads, a set of functional resources for processing instructions from streams, and interstream control mechanisms whereby any stream may effect the operation of any other stream, the process comprising steps of:
(a) designating one stream of the multi-streaming processor as a Master Stream, the Master stream capable of setting status and control modes for all other streams without interference; (b) starting a Master thread in the Master Stream, the Master thread comprising code for initializing all other streams; and (c) executing the Master Stream code, and thereby setting initial status and control modes for all other streams,
- 23. The process of claim 22 further comprising a step (d) for starting, by the Master Stream running the Master thread control code, an initial thread in at least one slave stream subordinate to the Master Stream.
- 24. The process of claim 23 further comprising a step (e) for the Master thread vacating the stream designated as the Master Stream, and starting a different thread in that stream.
CROSS-REFERENCE TO RELATED DOCUMENTS
[0001] The present application is a continuation-in-part (CIP) of prior application Ser. No. 09/216,017, and a CIP of prior application Ser. No. 09/240,012, both of which are incorporated herein in their entirety by reference.
Divisions (1)
|
Number |
Date |
Country |
| Parent |
09273810 |
Mar 1999 |
US |
| Child |
10071547 |
Feb 2002 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
| Parent |
09216017 |
Dec 1998 |
US |
| Child |
09273810 |
Mar 1999 |
US |
| Parent |
09240012 |
Jan 1999 |
US |
| Child |
09273810 |
Mar 1999 |
US |