GB2259166A - Transparent system interrupts with automatic input/output trap restart - Google Patents
Transparent system interrupts with automatic input/output trap restart Download PDFInfo
- Publication number
- GB2259166A GB2259166A GB9217580A GB9217580A GB2259166A GB 2259166 A GB2259166 A GB 2259166A GB 9217580 A GB9217580 A GB 9217580A GB 9217580 A GB9217580 A GB 9217580A GB 2259166 A GB2259166 A GB 2259166A
- Authority
- GB
- United Kingdom
- Prior art keywords
- cpu
- instruction
- interrupt
- trap
- interrupted
- 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
- 238000011084 recovery Methods 0.000 abstract description 4
- 238000000034 method Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 238000000545 stagnation point adsorption reflectometry Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- 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 or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
A CPU of a microprocessor system is modified to post an executed write I/O instruction upon completion of writing by a bus unit. A dedicated memory area (SMRAM) is provided for storing a customizable system interrupt service routine, and for storing at the time of interruption, 102-107, state data of the CPU and an I/O trap indicator indicating the CPU was interrupted during execution of an I/O instruction. The dedicated memory area is normally not mapped as part of the main memory space, thereby keep it inaccessible to the operating system and applications. An unmaskable system supervisor interrupt (SSI) having higher priority than all other maskable and unmaskable interrupts is added to the CPU interrupts. A RESUME instruction is added to the CPU instructions to provide, by use of the stored data and indicator, 112-118, recovery of the CPU to the state before it was interrupted and automatic re-execution of an interrupted I/O instruction. As a result, a system integrator or OEM may provide transparent system level interrupts with automated I/O trap restart that will operate reliably in any operating environment, and be relieved of the heavy burden of managing I/O trap restart. <IMAGE>
Description
22-)91")6 JP.Ab]SPAR'Jn'1' SYS'MI INFERRUFFS 141171 A11R3MAFIC,
INPUI'/OLTI,l,lrr TRAL' RESTART UM2 QE THE -INVENTTION
1. Field of the. Invention&
The present invention relates to the field of microprocessor architecture. In particular, the present invention Is a method and apparatus for providing transparent system interrupts with automated inputloutput trap restart.
2. plicatine This application is related to U.S. Patent Application, Serial Number 071594,278, filed on October 9, 1990, assigned to the assignee of the present 15 application, Intel Corporation, and entitled Transparent System Interrupt, 3. BackgrQund:
In the related co-pending U.S. Patent Application, a method and apparatus for providing transparent system interrupts is disclosed, which has particular application to microprocessor architecture. The method and apparatus disclosed irLthe related co-pending U.S. Patent Application solves the problem inherent in prior art microprocessors, particularly those that have a protected mode as well as a real mode of operation, of the inability of a system integrator or original equipment manufacturer (OEM) to provide transparent system Interrupts.
Transparent system interrupts are system-level Interrupts that may not be relocated or overwritten by any operating system or application, thereby allowing a;ystem integrator using the microprocessor to provide system-level interrupts that will operate reliably in any operating environment. Under the preferred embodiment disclosed in the related co.pending U.S. Patent -2Application, a transparent system interrupt is invoked by the assertion of an electrical signal at an external pin of the central processing unit (CPU) chip of a microprocessor-based chip set.
Upon assertion of the electrical signal at the external pin of the CPU chip, the CPU maps a normally unmapped dedicated random access memory (RAM) area where the transparent system interrupt service routine is stored as a pre-determined area of the main memory space, saves the current CPU state into the dedicated RAM space, and begins execution of the transparent system interrupt service routine. The transparent system interrupt routine typically comprises instructions that are unique to a particular application of the transparent system interrupts to the system in which the CPU chip is installed. Recovery from the transparent system interrupt is accomplished upon recognition of an external event that invokes a Resume instruction causing the CPU to be restored to exactly the same state that existed prior to the transparent system interrupt.
An important application of the transparent system interrupts is to power management functions, whereby the processor and/or other system devices may be effectively shut down during periods of non-use and then restarted without the need to go through a power-up routine. This function is particularly useful in connection with batte ry-ope rated computers where power conservation is a primary concern. Thus, for example, if a computer operator is interrupted while working with an application program, the system may be powered down to conserve battery life. -When the operator returns to use the system, it is restored to the same point in the application pro-gram as if the system had been running throughout the intervening period of time. The operator need not take any action to save application program results prior to the interruption, nor reload the application program when returning to use the computer.
Under the related co-pending U.S Patent Application, the transparent system interrupt does not provide any specific support for interrupting the CPU during execution of an 110 instruction. Therefore, the transparent system -3service routine with application specific instructions has the responsibility for checking to determine if the CPU was interrupted during execution of an 110 instruction. If the CPU was interrupted during execution of an 110 instruction, the transparent system service routine has the further responsibility for determining which 1/0 instruction was interrupted, and fixing up the appropriate registers of the CPU state saved in the dedicated memory space, so that when the Resume instruction is executed to restore the CPU state, the CPU will re-execute the interrupted 110 instruction, if needed.
The manner in which a transparent system interrupt service routine can determine whether the CPU was interrupted during execution of an 110 instruction is microprocessor dependent and typically rather difficult. For the exemplary 1386m W CPU based microprocessor system discussed in the related co-pending U.S. Patent Application, the transparent system interrupt service routine first determines whether the CPU was interrupted during execution of an 110 instruction by searching through the user's memory space to determine if an 110 trap has occurred.
After determining an 110 trap has occurred, the transparent system interrupt service routine determines which 1/0 instruction was executed by determining where the instruction was located. To do so, the transparent system interrupt service routine has to determine the execution mode of the CPU, obtain the logical address, and translate the logical address into a physical address. Then, the transparent system interrupt service routine determines the interrupted 1/0 instruction's instruction type, instruction length, address length, and operand length. To do so, the transparent system interrupt service routine has to determine A number of parameters including the memory segment size, any address prefix override and opcode prefix override.
The approach of having the transparent system interrupt service routine be responsible for restarting the CPU. from an interrupted 110 instruction has at least two disadvantages:
1) the heavy burden of re-starting the CPU to continue execution of an interrupted 110 instruction is placed on the transparent system interrupt service routine, and 2) the manner in which the CPU is restarted after it was interrupted 5 from an 1/0 instruction is microprocessor dependent.
4 1 C 1 nP THP:
It is therefore an object of the present invention to provide an 5 Improved transparent system interrupt with automated 110 trap restart.
Under the present invention, the 110 wdte Instructions are not posted. The central processing unit (CPU) waits until the bus unit has finished writing before executing the next instruction. A transparent system interrupt is invoked by the assertion of an electrical signal at an external pin of the central processing unit (CPU) chip of a microprocessor-based chip set. Upon assertion of the electrical signal at the external pin of the CPU chip, the CPU maps a normally unmapped dedicated random access memory (RAM) area where the transparent system interrupt service routine is stored as a pre-determined area of the main memory space, saves the current CPU state into the dedicated RAM space, and begins execution of the transparent system interrupt service routine.
The CPU state saved comprises an Instruction pointer, a prior instruction pointer, and a plurality of 110 parameter registers. The transparent system interrupt service routine sets an 110 trap Indicator in the dedicated RAM space, if the CPU is being interrupted durIng execution of an 1/0 instruction and the interrupt service routine wants the interrupted 1/0 instruction to be restarted, when execution resumes. The transparent system Interrupt service routine typically comprises instructions that are unique to a particular application of the transparent system interrupts to the system In which the CPU chip is installed.
Recovery from the transparent system interrupt is accomplished upon recognition of an external event that Invokes a Resume" instruction causing the CPU to be restored to exactly the same state that existed prior to the 30 transparent system interrupt including automatic reexecution of the interrupted 110 instruction. In particular, during restoration of the CPU state, the 'Resume" instruction restores the Instruction, and prior instruction pointers, checks the 1/0 trap indicator, and conditionally decrement the instruction pointer to the prior instruction pointer if the 110 trap indicator is set. Additionally, if the 110 trap indicator is set, the 110 parameter registers are restored to the appropriate general purpose registers. As a result, when the 0Resume" instruction restarts the CPU to execute the Onext' instruction, an interrupted 110 instruction will be re5 executed automatically.
-7BRIEF DESCRIPTION OF THE DRAWINGS
The objects, features and advantages of the present invention will be apparent from the following detailed description of the preferred embodiment of the invention with references to the drawings in which:
Figure 1 is a functional block diagram of an exemplary microprocessor system embodying the present invention.
Figure 2 is a functional flow diagram of the microcode for the transparent system interrupt with automated 110 trap restart of the present invention.
-8DETAILED DESCRIPTION
System Overview Referring now to Figure 1, a block diagram illustrating an exemplary 7nicroprocessor system embodying the present invention is shown. The exemplary microprocessor system is briefly described below; however, it is to be understood that the present invention is not limited to this particular microprocessor design, and may be incorporated in virtually any processor design.
The exemplary microprocessor system 10 comprises three main components. designated as GENCPU, GENIO and GENVGA. GENCPU is an expanded central processing unit; GENIO is a single chip input/output unit; and GENVGA is a single chip graphics interfdce. Th three components communicate with each other and with other system components (such as expansion slots, keyboard controller, disk controllers) via]SA bus 42.
GENCPU includes a CPU 12, a memory controller 14, a cache controller 16,]SA bus control logic 18 and line buffers 20. CPU 12 has at least two modes of operations, a real mode and a protected mode. CPU 12 is essentially a "i386Tm W CPU manufactured by Intel Corporation, the corporate assignee of this invention. Throughout this description, certain terminology relating to the 93867m W CPU, such as register names, signal nomenclature, is employed to described the present invention. Such terminology is understood by practitioners in the field of microprocessor design and will therefore not be explained at length herein.
In particular, CPU 12 comprises a plurality of general registers (not shown), an instruction pointer register (not shown) containing an instruction pointer, ant! a prior instruction pointer register (not shown) containing a prior instruction pointer. The instruction pointer controls instruction fetching. CPU 12 1 -9automatically increments the instruction and prior instruction pointers to point to the next instruction to be executed and the instruction just executed respectively after executing an instruction.
CPU 12 also comprises logics (not shown) for executing a plurality of instructions. The instructions comprise a plurality of read 110 instructions and write 110 instructions. The write 110 instructions are not posted.and execution of the next instruction is deferred by CPU 12 until the bus unit has finished writing.
Each read/write 110 instruction comprises a plurality of 1/0 parameters. The 110 parameters are stored in the general purpose registers. The instructions, including the read/write 110 instructions, operate on either zero, one, or two operands. An operand either resides in the instruction, in a register or in a memory location. CPU 12 has two modes of operations, a real mode and a protected mode. The primary differences between the real mode and the protected mode is how a logical address is translated into a linear address, the size of the address space, and paging capability.
-1 Additionally, CPU 12 comprises logics (not shown) for executing a plurality of hardware interrupts. Hardware interrupts occur as the result of an external event and are classified into two types: maskable and nonmaskable.
Interrupts are serviced after execution of the current instruction. After the interrupt service routine is finished with servicing the interrupt, execution proceeds with the instruction immediately after the interrupted instruction.
Maskable interrupts are typically used to respond to asynchronous external hardware events. Unmaskable interrupts are typically used to service very high priority events.
a For further description relating to the registers and internal structure of CPU 12, see jaEr SX Microprocessor, published by Intel Corporation as publication number 240187, and related publications.
GENIO includes parallel ports (PIO) 22, dual serial ports (SIO) 24a, 24b, real time clock unit (RTC) 26, dual programmable interrupt controllers (PIC) 1 - 28a, 28b, dual programmable timers (PIT) 30a, 30b, and dual direct memory access controllers (DMA) 32a, 32b. GENVGA includes VGA graphics controller 36, video n79mory controller 38 and interface 40 for a flat panel display unit.
n Additionally. external to the three maincomponents are system memory 44, cache memory 46, video memory 48, and an interface (PAUDAC) 50 for a conventional VGA monitor. The system memory 44, the cache memory 46 and video memory 48 are aocessed by the memory controller 14, cache memory controller 16 and video memory controller 38 respectively. The video memory 48 may also be accessed through the ISA bus 42, and the two interfaces 40, 50.
For further description relating to the "i386Tm W Microprocessor, see jaU7 SX Microprocessor Hardware Reference Manual---publi shed by Intel
Corporation as publication number 240332, and related publications.
-11 Transparent 5ystem Interrupt with Automated 110 Trap Restart The present invention is implemented by means of three enhancements to a conventional prior art microprocessor architecture, for example, the assignee's 1386Tw architecture, as follows:
1. A new interrupt called the System Supervisor interrupt (SSI) for superseding the entire microprocessor system's protection mechanism with specific support for superseding the protection mechanism while the CPU is executing an 110 instructiost. The SSI interrupt is non-maskable and has a higher priority than all other interrupts, including other non-maskable interrupt. The SSI interrupt is serviced by a SSI interrupt service routine.
2. A special system transparent memory area referred to as System Management RAM or SMRAM for storing the SSI interrupt service routine, the state of the CPU at the time it was interrupted, and an 110 trap indicator. The 110 trap indicator indicating whether the CPU was interrupted during execution of an 110 instruction.
3. A new instruction, called RESUME, for returning the microprocessor system to the state just before it was interrupted by an SSI interrupt and resuming execution at the next instruction or automatically re executing the interrupted 110 instruction.
Referring now to Figure 2, a flow chart illustrating the microcode of the SSI interrupt of the present invention is shown. A SS] interrupt is invoked by the assertion of an electrical signal at an external pin of the CPU chip. Upon detection of the electrical signal at the external pin of the CPU chip (SS1 event), the CPU maps the SMRAM as a pre-determined area of main memory space, block 102. The SMRAM is normally not mapped as part of the main memory space, thereby making it inaccessible to the operating system and the applications. Additionally, the CPU saves the CPU state into the SMRAM space, block 104, switches the CPU into real mode, block 106, re-initializes the CPU's program control registers, block 108, and starts execution of the SS( interrupt service routine, block 110.
The CPU state saved comprises the instruction pointer, the prior instruction pointer, the 110 parameter registers. The SSI interrupt service routine sets an 110 trap indicator in the dedicated RAM space, if the CPU is being interrupted during execution of an 110 instruction and the interrupt service routine 5 wants the interrupted 110 instruction to be restarted when execution resumes. The SSI interrupt service routine typically comprises instructions that are unique to a particular application of the SSI interrupt to the system in which the CPU chip is installed.
Recovery from the SSI interrupt is accomplished upon recognition of an external event that invokes the Resume" instruction (RSM event). Upon detection of the external event, the CPU restores the CPU state stored in the SMRAM area, block 112, checks to determine if the 110 trap indicator is set, block 113. If the 110 trap indicator is set, branch 11 3a, the CPU decrements the instruction pointer to the prior instruction pointer, block 114. Additionally. the 110 parameter registers are restored to the values before the interrupt occurred.
If the 1/0 trap indicator is not set, branch 11 3b, or upon decrementing the instruction pointer to the prior instruction pointer, block 115, the CPU switches out the SMRAM area and unmaps it as part of the main memory space, block 116, and continues execution of the interrupted operating system or application program, block 117. Therefore, if the 110 trap indicator is set upon returning from the system interrupt service routine, the interrupted 110 instruction gets re-executed. However, if the 110 trap indicator is not set upon returning from the system interrupt service routine, the next instruction gets executed.
Except saving the instruction and prior instruction pointers, saving the 110 parameter registers, checking the 110 trap indicator, decrementing the instruction pointer and conditionally restoring the 110 parameter registers, these enhancement, including a specific application of the SSI interrupt, the power management interrupt (PM1), are described in detail in the related co-pending U.S. Patent Application, which is hereby fully incorporated by reference.
1 While the method of the present invention has been described in terms of its presently preferred form, those skilled in the art will recognize that the method of the present invention is not limited to the presently preferred form described. The method of the present invention may be practiced with modification and alteration within the spirit and scope of the appended claims. The specifications and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
-14CLADIS 1. An improved microprocessor system comprising a central processing unit (CPU) coupled to at least one memory unit and at least one bus unit for executing an operating system and at least one application program comprising a plurality' of said CPU's instructions, said CPU further having at least two modes of program execution, a real mode and a protected mode, and at least one interrupt for interrupting program execution, wherein the improvement to said microprocessor system comprises:
(a) said CPU posting an executed write input-output (110) instruction upon completion of writing by said bus unit, said instructions comprising at least one 1/0 instruction including raid write 110 instruction; (b) said memory units having a dedicated memory area for storing an interrupt processing program, processor state data of said CPU, and an 110 trap indicator, said dedicated memory area being not mapped as part of main memory space thereby keeping said dedicated memory area inaccessible to said operating system and application programs, said interrupt processing program comprising instructions for determining if said CPU is being interrupted during one of said 1/0 instructions and conditionally setting said 1/0 trap indicator to indicate said CPU being interrupted during one of said 110 instructions and said interrupted 110 instruction is to be restarted when said CPU resumes execution., said processor state data comprising an instruction pointer, a prior instruction pointer, and at least one 110 parameter register, said instruction and prior instruction pointers pointing to a first and second instructions of said operation system and application programs' instructions, said first instruction being an instruction to be executed next by said CPU, said second instruction being an instruction just executed by said CPU, said 1/0 parameter registers being associated with the most recently executed 110 instruction; said 110 trap indicator indicating whether said CPU is interrupted during execution of one of said 110 instructions; t- 4 z (c) said interrupts having a System Supervisor Interrupt (SSI) for interrupting execution of said operating system and said application programs, switching in and mapping said dedicated memory area to a predetermined segment of said main memory space, storing said processor state data of said CPU into said dedicated memory area, switching said CPU into said real mode of execution, and starting execution of said interrupt processing program, said SSI being unmaskable by said operating system and said application programs, and having a higher priority than other interrupts; (d) said instructions having a Resume instruction for restoring said saved processor state data from said dedicated. memory area to said CPU, checking said 1/0 trap indicator to determine if it is set, conditionally decrementing said restored instruction pointer to said restored prior instruction pointer if said 110 trap indicator is set, loading said restored 1/0 port pointer and said restored 110 buffer size constant into two general purpose registers of said CPU, switching out and unmapping said dedicated memory area to said main memory space, and resuming execution of said operating system and said application programs; thereby allowing said CPU to be interrupted reliably and automated 1/0 trap restart be provided to said interrupt service program in a manner transparent to said operating system and said application programs.
2. The improved microprocessor system as set forth in claim 1, wherein said memory units comprises on-board random access memory (RAM), and said dedicated memory area is part of said on-board RAM.
3. The improved microprocessor system as set forth in claim 1, wherein said memory unRs comprises off-board RAM coupled to an on-board RAM controller, and said dedicated memory area is part of said off-board RAM.
4. The improved microprocessor system as set forth in claim 1, wherein said CPU comprises interrupt means for triggering said interrupts including said SSI, said SS] being triggered upon receipt of an electrical signal, said interrupt means comprising an interface for receiving said electrical signal.
The improved microprocessor system as set forth in claim 4, wherein said Interface is an external circuit pin.
6. The improved microprocessor system as set forth in claim 4, wherein said microprocessor system further comprises an event detection means coupled to at least one system asset of said microprocessor system and said Interrupt means for detecting a pre-determined event associated with said system asset and generating for said interface said electrical signal upon said detection.
7. The improved microprocessor system as set forth in claim 1, wherein said CPU comprises instruction means for executing said instructions including said 110 instructions and said Resume instruction.
8. In a microprocessor system comprising a central processing unit (CPU) 15 coupled to at least one memory unit and a bus unit for executing an operating system and at least one application program comprising a plurality of said CPU's instructions, said CPU further having at least two modes of program execution, a real mode and a protected mode, and at least one interrupt for interrupting program execution, a method for for reliably interrupting said CPU and providing. 20 automated 110 trap restart in a manner transparent to said operating system and application programs comprising the steps of: (a) Rosting an executed write Inputoutput (110) instruction upon completion of writing by said bus unit, said instructions comprising at least one 110 instruction including said write 110 initruction'; 25 (b) storing an interrupt processing program In a dedicated memory area on said memory units, said dedicated memory area being not mapped as part of main memory space thereby keeping said dedicated memory area inaccessible to said operating system and application programs; (c) interrupting execution of said operating system and said application 30 programs upon receipt of a pre-determined input, said interruption being unmaskable by said operating system and said application programs, and having a higher priority than other interruptions; z (d) swIlching in and mapping said dedicated memory area to a pre determined segment of said main memory space; (e) storing processor state data of said CPU into said dedicated memory area, said processor state data comprising an instruction pointer, a prior instruction pointer, and at least one 110 parameter register, said instruction and prior instruction pointers pointing to a first and second instructions of said operating system agd application programs, said first instruction being an instruction to be executed next by said CPU, said second instruction being an instruction just executed by said CPU, said 110 parameter registers being associated with the most recently executed 110 instruction; (f) determining if said CPU is being interrupted during execution of one of said 1/0 instructions, and if said CPU is being interrupted during execution of one of said 1/0 instructions, and. said interrupted 110 instruction is to be re-executed when said CPU resumes execution, storing said 110 trap indicator in said dedicated memory area; (g) switching said CPU into said real mode of execution; (h) starting execution of said interrupt processing program; (i) restoring said saved processor state data, said restoration being controlled by said interrupt service program; 0) determining if said saved 110 trap indicator is set, and if said saved 1/0 trap indicator is set, decrementing said restored instruction pointer to said restored prior instruction pointer, and restoring said 1/0 parameter registers; (k) switching out and unmapping said dedicated memory area to said main memory space; and (1) resUming execution of said operating system and said application programs at the instruction pointed to by by said instruction pointer.
9. The method as set forth in claim 8, wherein said memory units comprises on-board random access memory (RAM), and said dedicated memory area is 30 part of said on-board RAM.
1 -1810. The method as set forth in claim 8, wherein said memory units comprises off-board RAM coupled to an on-board RAM controller, and said dedicated memory area is part of said off-board RAM.
11. The improved microprocessor system as Set forth in claim 8, wherein said steps (c) through (h) are performed by interrupt means of said CPU upon receipt of an electrical signal, said interrupt means comprising an interface for receiving said electrical signal.
12. The method as set forth in claim 11, wherein said interface is an external circuit pin.
13. The method as set forth in claim 11, wherein said electrical signal being generated and provided to said interface by an event detection means coupled to at least one system asset of said microprocessor system and said interrupt means upon detection of a pre-determined event associated with said system asset.
14. The method as set forth in claim 11, wherein said steps (a) and steps (i) through (1) are performed by instruction means of said CP-U.
15. An lw"roved microprocessor system substantially as hereinbefore described with reference to the accompanying drawings.
16. In a microprocessor system comprising a central processing unit (CPU) coupled to at least one memory unit and a bus unit for executing an operating system and at least one application program comprising a plurality of said CPU's instructions, S'aid CPU further having at least two modes of program execution, a real mode and a protected mode, and atleast one interrupt for interrupting program execution, a method for reliably interrupting said CPU and providing automated I/0 trap restart in a manner transparent to said operating system and application programs5 substantially as hereinbefore described.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75310791A | 1991-08-30 | 1991-08-30 |
Publications (3)
Publication Number | Publication Date |
---|---|
GB9217580D0 GB9217580D0 (en) | 1992-09-30 |
GB2259166A true GB2259166A (en) | 1993-03-03 |
GB2259166B GB2259166B (en) | 1995-05-03 |
Family
ID=25029188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9217580A Expired - Fee Related GB2259166B (en) | 1991-08-30 | 1992-08-19 | Transparent system interrupts with automated input/output trap restart |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP2753781B2 (en) |
DE (1) | DE4228754C2 (en) |
FR (1) | FR2681963B1 (en) |
GB (1) | GB2259166B (en) |
HK (1) | HK170895A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0575171A2 (en) * | 1992-06-17 | 1993-12-22 | Cyrix Corporation | Enhanced system management method and apparatus |
EP0617364A2 (en) * | 1993-03-22 | 1994-09-28 | Compaq Computer Corporation | Computer system which overrides write protection status during execution in system management mode |
WO1997013202A1 (en) * | 1995-10-06 | 1997-04-10 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (smm) in a processor |
WO1998050842A1 (en) * | 1997-05-02 | 1998-11-12 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US7925815B1 (en) * | 2006-06-29 | 2011-04-12 | David Dunn | Modifications to increase computer system security |
US8661265B1 (en) | 2006-06-29 | 2014-02-25 | David Dunn | Processor modifications to increase computer system security |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4826169A (en) * | 1971-08-09 | 1973-04-05 | ||
JPS51114839A (en) * | 1975-04-02 | 1976-10-08 | Hitachi Ltd | Data processor |
JPS5384540A (en) * | 1976-12-29 | 1978-07-26 | Fujitsu Ltd | Data processing unit |
JPS599937B2 (en) * | 1980-02-20 | 1984-03-06 | 富士通株式会社 | information processing equipment |
US4374415A (en) * | 1980-07-14 | 1983-02-15 | International Business Machines Corp. | Host control of suspension and resumption of channel program execution |
US4719565A (en) * | 1984-11-01 | 1988-01-12 | Advanced Micro Devices, Inc. | Interrupt and trap handling in microprogram sequencer |
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4907150A (en) * | 1986-01-17 | 1990-03-06 | International Business Machines Corporation | Apparatus and method for suspending and resuming software applications on a computer |
JPS6468838A (en) * | 1987-09-10 | 1989-03-14 | Hitachi Ltd | Level processing information processor |
-
1992
- 1992-08-19 GB GB9217580A patent/GB2259166B/en not_active Expired - Fee Related
- 1992-08-28 DE DE4228754A patent/DE4228754C2/en not_active Expired - Fee Related
- 1992-08-28 FR FR9210351A patent/FR2681963B1/en not_active Expired - Fee Related
- 1992-08-31 JP JP4253662A patent/JP2753781B2/en not_active Expired - Lifetime
-
1995
- 1995-11-09 HK HK170895A patent/HK170895A/en not_active IP Right Cessation
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0575171A2 (en) * | 1992-06-17 | 1993-12-22 | Cyrix Corporation | Enhanced system management method and apparatus |
EP0575171A3 (en) * | 1992-06-17 | 1995-06-28 | Cyrix Corp | Enhanced system management method and apparatus. |
EP0617364A2 (en) * | 1993-03-22 | 1994-09-28 | Compaq Computer Corporation | Computer system which overrides write protection status during execution in system management mode |
JPH076094A (en) * | 1993-03-22 | 1995-01-10 | Compaq Computer Corp | Operating method of computer system for overwriting of write protection state during execution of system management mode and computer system |
EP0617364A3 (en) * | 1993-03-22 | 1995-10-11 | Compaq Computer Corp | Computer system which overrides write protection status during execution in system management mode. |
JP2849327B2 (en) | 1993-03-22 | 1999-01-20 | コンパック・コンピュータ・コーポレイション | Computer system operating method and computer system for disabling write protection state during execution of system management mode |
WO1997013202A1 (en) * | 1995-10-06 | 1997-04-10 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (smm) in a processor |
US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
WO1998050842A1 (en) * | 1997-05-02 | 1998-11-12 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6557104B2 (en) | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US7925815B1 (en) * | 2006-06-29 | 2011-04-12 | David Dunn | Modifications to increase computer system security |
US8661265B1 (en) | 2006-06-29 | 2014-02-25 | David Dunn | Processor modifications to increase computer system security |
Also Published As
Publication number | Publication date |
---|---|
FR2681963A1 (en) | 1993-04-02 |
HK170895A (en) | 1995-11-17 |
JPH05233325A (en) | 1993-09-10 |
FR2681963B1 (en) | 1995-01-13 |
GB2259166B (en) | 1995-05-03 |
DE4228754A1 (en) | 1993-03-04 |
DE4228754C2 (en) | 1997-01-09 |
GB9217580D0 (en) | 1992-09-30 |
JP2753781B2 (en) | 1998-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5291604A (en) | Transparent system interrupts with automated halt state restart | |
US5357628A (en) | Computer system having integrated source level debugging functions that provide hardware information using transparent system interrupt | |
US5339437A (en) | Method and apparatus for saving a system image onto permanent storage that is operating system independently | |
US5274834A (en) | Transparent system interrupts with integrated extended memory addressing | |
US5175853A (en) | Transparent system interrupt | |
US5021983A (en) | Suspend/resume apparatus and method for reducing power consumption in battery powered computers | |
US6154838A (en) | Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events | |
KR100403405B1 (en) | Integrated circuit with multiple functions sharing multiple internal signal buses according to distributed bus access and control arbitration | |
US5274826A (en) | Transparent system interrupts with automated input/output trap restart | |
US5931951A (en) | Computer system for preventing cache malfunction by invalidating the cache during a period of switching to normal operation mode from power saving mode | |
US6173417B1 (en) | Initializing and restarting operating systems | |
US4851987A (en) | System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur | |
US5867703A (en) | Common reset ROM | |
US5437039A (en) | Servicing transparent system interrupts and reducing interrupt latency | |
US6282601B1 (en) | Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt | |
EP0516159A2 (en) | Resume processing function for the OS/2 operating system | |
US5537656A (en) | Method and apparatus for a microprocessor to enter and exit a reduced power consumption state | |
US6154846A (en) | System for controlling a power saving mode in a computer system | |
US20050015672A1 (en) | Identifying affected program threads and enabling error containment and recovery | |
US5603037A (en) | Clock disable circuit for translation buffer | |
GB2266605A (en) | Microprocessor having a run/stop pin for accessing an idle mode | |
US5435005A (en) | Method and system for controlling resuming operation of an AC-driven computer system using an external memory | |
US5963738A (en) | Computer system for reading/writing system configuration using I/O instruction | |
US6282645B1 (en) | Computer system for reading/writing system configuration using I/O instruction | |
GB2259166A (en) | Transparent system interrupts with automatic input/output trap restart |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 19980819 |