← Back to Patent Explorer
US5900025A Expired / Lapsed US ⏱️ 0.0 years remaining

Processor having a hierarchical control register file and methods for operating the same

Assignee: LSI Corp
•
Filing: 1995-09-12
•
Granted: 1999-05-04
•
Expires: 2015-09-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A processor is provided with a number of control registers logically organized in a hierarchical manner. At the highest level is a set of control registers for controlling the overall system. At the second highest level are multiple sets of control registers for controlling concurrent execution of processes in multiple contexts. At the third highest level are multiple sets of control registers for controlling concurrent execution of multiple process threads for each of the concurrently executing contexts. Besides modifications resulting from the normal course of instruction execution, the control registers are directly accessible and modifiable using instructions of the standard instruction set. Each context/thread is assigned a variable privilege level for accessing and modifying control registers at the various levels. The instruction fetch unit is enhanced to dispatch instructions with appended context and tag identifications. The execution units are enhanced to verify a context/thread's privilege by locating the assigned privilege level using the appended context and thread identification information, before executing any instructions that access/modify a control register. Additionally, the execution units are further enhanced to be dynamically configurable in response to configuration control information stored in a thread level control register set for a thread and/or configuration information integrated with an instruction.

Inventors

  • 👤 Donald L. Sollars

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 05:56
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30098; G06F9/30101; G06F9/46; G06F9/461; G06F9/462

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 156 words
A processor apparatus including a plurality of control registers organized and arranged in files and sets within the files, the apparatus being adapted for an operating system capable of allocating a plurality of contexts for concurrent execution within an overall system, and threads within the contexts, the apparatus comprising: a first control register file having a first plurality of the control registers, the first control register file comprising: a system level control register set adapted to retrievably store information useful for controlling overall system operation, the system level control set including a plurality of active context control registers; and a plurality of context level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of contexts, wherein each active context control register stores a first variable control value denoting a corresponding context's privilege level for accessing and modifying contents of the system level and context level control register sets.
Claim 2
Dependent Claim 156 words
A processor apparatus including a plurality of control registers organized and arranged in files and sets within the files, the apparatus being adapted for an operating system capable of allocating a plurality of contexts for concurrent execution within an overall system, and threads within the contexts, the apparatus comprising: a first control register file having a first plurality of the control registers, the first control register file comprising: a system level control register set adapted to retrievably store information useful for controlling overall system operation, the system level control set including a plurality of active context control registers; and a plurality of context level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of contexts, wherein each active context control register stores a first variable control value denoting a corresponding context's privilege level for accessing and modifying contents of the system level and context level control register sets.
Claim 3
Dependent Claim 37 words
The processor apparatus as set forth in claim 1, wherein each context level control register set comprises a plurality of active thread control registers adapted to retrievable store control information about executing threads of the respective context.
Claim 4
Dependent Claim 42 words
The processor apparatus as set forth in claim 2, wherein each active thread control register stores a first variable control value denoting the corresponding thread's privilege level for accessing and modifying contents of the system level and context level control register sets.
Claim 5
Dependent Claim 48 words
The processor apparatus as set forth in claim 1, wherein the first control register file further includes; a plurality of thread level control register sets adapted to retrievable store information useful for respectively controlling concurrent execution of a plurality of threads for each of the plurality of contexts.
Claim 6
Dependent Claim 40 words
The processor apparatus as set forth in claim 4, wherein each thread level control register set comprises a first control register adapted to retrievable store functional unit configuration control information useful for dynamically configuring functional units for the respective thread.
Claim 7
Dependent Claim 63 words
The processor apparatus as set forth in claim 5, wherein the execution unit comprises: a functional unit coupled to the first control register that is capable of performing a first function and a second function and is adapted to perform a selected one of the first and second functions for the respective thread in response to the stored functional unit configuration control information.
Claim 8
Dependent Claim 72 words
The processor apparatus as set forth in claim 5, wherein the execution unit comprises: a functional unit coupled to the first control register that is capable of performing a first variation of a function and a second variation of the function and is adapted to perform a selected one of the first and second variations of the function for the respective thread in response to the stored functional unit configuration control information.
Claim 9
Dependent Claim 35 words
The processor apparatus as set forth in claim 4, wherein each thread level control register set comprises a first control register adapted to retrievable store a plurality of software defined flags for the respective thread.
Claim 10
Dependent Claim 42 words
The processor apparatus as set forth in claim 8, wherein each context level control register set comprises a second control register adapted to retrievable store a base address pointer to a software flag array and a size of the software flag array.
Claim 11
Dependent Claim 100 words
The processor apparatus as set forth in claim 9, wherein each context level control register set further comprises a third control register adapted to retrievably store a first offset to a number of software flag register entries of a corresponding one of the plurality of threads in the software flag array and a count of the entries; and each thread level control register set further comprises a fourth control register adapted to retrievable store a second offset from the first offset identifying a software flag register entry from which the content of the first control register is to be derived.
Claim 12
Dependent Claim 90 words
The processor apparatus as set forth in claim 4, further comprising: a second control register file having a second plurality of the control registers, the second control register file comprising a plurality of macro-trap level control register sets adapted to retrievable store information useful for respectively controlling execution of a plurality of macro-trap library routines, the macro-trap library routines being caused to be executed by executing ones of the the plurality of threads, the processor being adapted to execute the macro-trap library routines concurrently with the contexts and the threads.
Claim 13
Dependent Claim 32 words
The processor apparatus as set forth in claim 11, wherein each macro-trap level control register set comprises a status register adapted to retrievable store status information about the respective macro-trap library routine.
Claim 14
Dependent Claim 53 words
The processor apparatus as set forth in claim 4, further comprising: an instruction fetch unit coupled to the execution unit comprising a plurality of buffers, a plurality of decoders and a plurality of queues for concurrently fetching, decoding and queueing decoded instructions for dispatching to the execution unit for a plurality of threads.
Claim 15
Dependent Claim 46 words
The processor apparatus as set forth in claim 13, wherein the instruction fetch unit further comprises a control circuit that appends a context tag and a thread tag to each instruction identifying the context and thread level control register sets with which the instruction is associated.
Claim 16
Dependent Claim 91 words
The processor apparatus as set forth in claim 14, wherein the execution unit comprises functional units adapted to control accesses to and modifications of contents of control registers in the system level, context level, and thread level control register sets in accordance with privilege levels associated with the context and/or thread with which the instruction is associated, the privilege levels being stored in the respective context level and thread level control register sets, the functional units using the context and thread tags appended to the instruction to determine the privilege levels.
Claim 17
Dependent Claim 71 words
The processor apparatus as set forth in claim 1, further comprising: at least one execution unit coupled to the control registers that executes first instructions for controlling overall system operation, the first instructions referencing the system level control register set control registers, and second instructions for controlling execution of one of the contexts, the second instructions referencing the control registers of the respective one of the context level control register sets.
Claim 18
Dependent Claim 169 words
A processor apparatus including a plurality of control registers organized and arranged in files and sets within the files, the apparatus being adapted for an operating system capable of allocating a plurality of contexts for concurrent execution within an overall system, and threads within the contexts, the apparatus comprising: a first control register file having a first plurality of the control registers, the first control register file comprising: a plurality of context level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of contexts, each context level control set including a plurality of active thread control registers; and a plurality of thread level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of threads associated with each of the contexts, wherein each active thread control register stores a first variable control value denoting a corresponding thread's privilege level for accessing and modifying contents of the context level and thread level control register sets.
Claim 19
Dependent Claim 169 words
A processor apparatus including a plurality of control registers organized and arranged in files and sets within the files, the apparatus being adapted for an operating system capable of allocating a plurality of contexts for concurrent execution within an overall system, and threads within the contexts, the apparatus comprising: a first control register file having a first plurality of the control registers, the first control register file comprising: a plurality of context level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of contexts, each context level control set including a plurality of active thread control registers; and a plurality of thread level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of threads associated with each of the contexts, wherein each active thread control register stores a first variable control value denoting a corresponding thread's privilege level for accessing and modifying contents of the context level and thread level control register sets.
Claim 20
Dependent Claim 82 words
The processor apparatus as set forth in claim 17, further comprising: at least one execution unit coupled to the control registers that executes first instructions for controlling execution of the respective one of the contexts, the first instructions referencing the control registers of one of the context level control register sets, and second instructions for controlling execution of one of the respective one of the threads, the second instructions referencing the control registers of one of the thread level control register sets.
Claim 21
Dependent Claim 210 words
A processor apparatus including a plurality of control registers organized and arranged in files and sets within the files, the apparatus being adapted for an operating system capable of allocating a plurality of contexts for concurrent execution within an overall system, and threads within the contexts the apparatus comprising: a first control register file having a first plurality of the control registers, the first control register file comprising: a plurality of thread level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of threads, and a plurality of active thread control registers, wherein each active thread control register stores a first variable control value denoting a corresponding thread's privilege level for accessing and modifying contents of the thread level control register sets; a second control register file having a second plurality of the control registers, the second control register file comprising a plurality of macro-trap level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of child macro-trap library routines of the threads; and at least one execution unit coupled to the control registers that executes instructions that reference the control registers in accordance with the sets and files in which they are arranged.
Claim 22
Dependent Claim 210 words
A processor apparatus including a plurality of control registers organized and arranged in files and sets within the files, the apparatus being adapted for an operating system capable of allocating a plurality of contexts for concurrent execution within an overall system, and threads within the contexts the apparatus comprising: a first control register file having a first plurality of the control registers, the first control register file comprising: a plurality of thread level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of threads, and a plurality of active thread control registers, wherein each active thread control register stores a first variable control value denoting a corresponding thread's privilege level for accessing and modifying contents of the thread level control register sets; a second control register file having a second plurality of the control registers, the second control register file comprising a plurality of macro-trap level control register sets adapted to retrievably store information useful for respectively controlling concurrent execution of a plurality of child macro-trap library routines of the threads; and at least one execution unit coupled to the control registers that executes instructions that reference the control registers in accordance with the sets and files in which they are arranged.
Claim 23
Dependent Claim 121 words
A processor apparatus adapted for a computer operating system having a heirarchy of contexts, and threads within the contexts, the apparatus comprising: a first control register for storing a plurality of software defined flags for a thread, a second control register for storing a base address pointer to a software flag array and a size of the array of the thread's context, a third control register for storing a first offset to a number of software flag register entries and a count of the entries of the thread, and a fourth control register for storing a second offset from the first offset identifying a software flag register entry from which the contents of the first control register are to be obtained.
Claim 24
Dependent Claim 121 words
A processor apparatus adapted for a computer operating system having a heirarchy of contexts, and threads within the contexts, the apparatus comprising: a first control register for storing a plurality of software defined flags for a thread, a second control register for storing a base address pointer to a software flag array and a size of the array of the thread's context, a third control register for storing a first offset to a number of software flag register entries and a count of the entries of the thread, and a fourth control register for storing a second offset from the first offset identifying a software flag register entry from which the contents of the first control register are to be obtained.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-05-03 2002-11-02 2003-05-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-05-03 2006-11-02 2007-05-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-05-03 2010-11-02 2011-05-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag