Differences

This shows you the differences between two versions of the page.

Link to this comparison view

processor_state:mode [2008/11/26 12:09] (current)
scott created
Line 1: Line 1:
 +====== Processor Modes ======
  
 +The elements of this Architecture specific to multiprocessors consist of six processor classes. The classes are called __modes__ and are **KERNEL**, **EXECUTING**, **IDLE**, **INTERRUPTING**, **STOPPED** and **DEAD**.
 +
 +**KERNEL** mode is comprised of the basic interrupt handling and dispatching code
 +of the MCP.  It is entered whenever a processor in the
 +**INTERRUPTING** mode obtains a hardware maintained lock which assures that there is at most one processor in **KERNEL** mode at any time.  The only other transition into **KERNEL** mode
 +occurs when a completely stopped system is bootstrapped by the Maintenance Processor.  It
 +must set the **KERNEL MODE ACCESS LOCK** to owned and set a single processor into **KERNEL**
 +mode from **STOPPED** mode.
 +
 +**EXECUTING** mode is entered from **KERNEL** mode upon execution of the [[instructions:brv|Branch Reinstate Virtual]] instruction.   Within **EXECUTING** mode the processor may freely make transitions
 +between __Privileged__ and __User__ contexts.  The difference between these two contexts
 +is the setting of the //Privileged Enable// toggle.  Except as initiated by the Maintenance
 +Processor, the only transitions out of **EXECUTING** mode are into **IDLE** mode when an
 +[[instructions:idl|Idle]] instruction is executed, or into **INTERRUPTING** mode whenever
 +the processor responds to an interrupt.
 +
 +The **IDLE** mode is characterized by the processor doing nothing except waiting for
 +interrupts.  When the processor responds to an interrupt, it enters **INTERRUPTING** mode.
 +
 +The **INTERRUPTING** mode is entered from **EXECUTING** mode or from **IDLE** mode when a
 +processor responds to an interrupt, or from **STOPPED** mode when the processor responds to
 +the //Start Selected Processors // variant of the [[instructions:ipc|Interprocessor Communicate]] instruction.  The
 +**INTERRUPTING** mode is a transitional mode between other modes and **KERNEL** mode. It is
 +characterized by an attempt to obtain the **KERNEL MODE ACCESS LOCK**, which results in obtaining
 +exclusive access to **KERNEL** mode (if the lock was obtained), or waiting to again attempt to
 +acquire the lock.
 +
 +The **STOPPED** mode is entered from **KERNEL** mode through execution of the //Stop This Processor//
 +variant of the [[instructions:ipc|Interprocessor Communicate]] instruction;  it is the initial
 +mode of all processors when the system is being bootstrapped by the Maintenance processor.  The
 +only transitions out of **STOPPED** mode occur into **INTERRUPTING** mode as a response to the
 +execution of a //Start Selected Processors// variant of the [[instructions:ipc|Interprocessor Communicate]] instruction or into **DEAD** mode through Maintenance processor intervention,
 +or into **KERNEL** mode (for one and only one processor) at the instigation of the
 +Maintenance processor.
 +
 +The **DEAD** mode is characterized by a processor having no affect on the system; it is
 +under control of the Maintenance Processor.  It can be returned to the system by the MP returning
 +it to the **STOPPED** mode.  MCP intervention is required to cause it to move from the **STOPPED**
 +mode back into the normal complement of the system, through the [[instructions:ipc|Interprocessor Communicate]] instruction.
processor_state/mode.txt ยท Last modified: 2008/11/26 12:09 by scott
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki