US5386563A - Register substitution during exception processing - Google Patents
Register substitution during exception processing Download PDFInfo
- Publication number
- US5386563A US5386563A US07/959,711 US95971192A US5386563A US 5386563 A US5386563 A US 5386563A US 95971192 A US95971192 A US 95971192A US 5386563 A US5386563 A US 5386563A
- Authority
- US
- United States
- Prior art keywords
- exception
- data
- processing
- register
- mode
- 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.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims abstract description 304
- 238000006467 substitution reaction Methods 0.000 title description 5
- 238000000034 method Methods 0.000 claims abstract description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 244000050403 Iris x germanica Species 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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/30098—Register arrangements
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/462—Saving or restoring of program or task context with multiple register sets
Definitions
- This invention relates to data processing apparatus and a method of operating a data processing apparatus. More particularly, this invention relates to a data processing apparatus that is operable in either a main processing mode or one or more exception processing modes.
- CPUs central processing units
- main processing mode is used for execution of the application software for performing the user's desired data processing.
- exception processing modes are usually used for operations such as responding to externally applied interrupt signals.
- the move between the main processing mode and the exception processing mode should be reversible in that when a return is made to the main processing mode the operation of the main processing mode will continue as if it had not been interrupted.
- the contents of the various processing registers within the CPU should be saved upon leaving the main processing mode so that they can be restored after the exception processing mode has finished its use of the registers and control is returned to the main processing mode. This is conventionally achieved by saving the contents of the registers in the main processing mode to an area of stack memory in external random access memory (RAM) upon leaving the main processing mode and then returning these contents from the area of stack memory to the registers upon returning to the main processing mode.
- RAM external random access memory
- a problem with this conventional approach is that the operations of writing to and subsequently reading from a stack memory is relatively slow and thus degrades the performance of the CPU.
- processing overhead must also be expended to save and restore processing status data (e.g. various status flags specifying the desired/permitted operation of the CPU) when leaving and re-entering the main processing mode.
- processing status data e.g. various status flags specifying the desired/permitted operation of the CPU
- this invention provides a data processing apparatus operable to manipulate data in either a main processing mode or an exception processing mode, said data processing apparatus comprising:
- (v) means for substituting for use said at least one exception data register for a respective corresponding one of said main data registers upon entering said exception processing mode
- (viii) means for restoring said data stored in said saved processing status register to said processing status register upon leaving said exception processing mode.
- the provision of at least one exception data register for substituting for use in place of a respective corresponding one of the main data registers has the effect that the exception data register is available for immediate use by the exception handling code without the need to first save the data stored within the corresponding main data register. Furthermore, the data stored within the main data register for which the exception data register is substituted remains in that main data register and is available for immediate use upon re-entering the main processing mode.
- the provision of the special purpose saved processing status register allows a high speed saving and restoring of the data indicative of processing status data and yet remains independent of what that status data is.
- a program counter register for holding data indicative of program position within an executing program; means for storing said data indicative of program position within a currently executing program into one of said at least one exception data register serving as a return address register upon entering said exception handling mode; and means for restoring said data stored in said return address register to said program count register upon leaving said exception processing mode.
- the storing of the program counter register contents within one of the exception data registers allows the return address to be directly available within the exception processing mode thus providing a higher speed return from the exception processing mode.
- said plurality of main data registers include a main processing mode stack pointer register for holding data indicative of current address within a stack memory area used by said main processing mode and said at least one exception data register includes an exception processing mode stack pointer register for substituting for said main processing mode stack pointer register in said exception processing mode and for holding data indicative of current address within a stack memory area used by said exception processing mode.
- one register within the main data registers is used as a stack pointer for the main mode. It is desirable that the exception processing mode should also have access to a stack memory.
- the exception processing mode is provided with its own stack memory area having its own stack pointer stored in an exception processing mode stack register. The substitution of the exception processing mode stack pointer register for the main processing mode stack pointer register ensures the main processing mode stack pointer is preserved and yet allows the exception processing mode to have immediate access to its own stack memory area.
- exceptions can take more than one form. For example, an exception may arise due to an externally applied interrupt or through a protection violation in a cache memory access attempt. These different sorts of exception require different exception handling routines. In order to deal with this and preserve the advantages of increased speed, preferred embodiments of the invention provide a plurality of exception processing modes each having at least one exception data register and a saved processing status register associated therewith.
- the system can be arranged such that when a further differing exception occurs within an exception processing mode:
- said means for storing stores in said saved processing status register corresponding to said further differing exception said data indicative of processing status in said exception processing mode currently in use.
- the saved processing status register preserves the processing status of the previous mode and enables the system to return to that previous mode with exactly the same processing status data and register contents, it now becomes feasible to efficiently provide for further differing exceptions to occur within an existing exception processing mode. This allows the stringent conditions upon exception handling codes to be relaxed and can be seen to provide a sort of nested exception handling structure.
- the exception processing mode or modes that are supported can take a number of forms.
- the mode or modes may be selected from the group comprising:
- preferred embodiments of the invention provide that when said plurality of exception processing modes include one or more high speed exception processing modes and one or more low speed exception processing modes, said one or more high speed exception processing modes having a greater number of associated exception data registers to be made directly available for use upon entering said one or more high speed exception processing modes than said one or more low speed exception processing modes.
- preferred embodiments provide a write buffer into which data from said main data registers may be written prior to storage elsewhere, said write buffer having a data storage capacity equal to or greater than an amount of data contained within those main data registors not substituted with exception data registers in said one or more high speed exception processing modes.
- preferred embodiments of the invention have means for reading from a plurality of main data registers and exception data registers in response to single store multiple software instruction and means for writing to a plurality of main data registers and exception data registers in response to single load multiple software instruction.
- Another preferred feature that can improve the speed of the high speed exception processing modes is that said one or more high speed exception processing modes commence exception handling code execution directly from an exception vector.
- One factor involved in implementing the invention is that the system should have some means of directing instructions to have effect upon the appropriate one of a main data register and a corresponding exception data register depending upon whether a substitution has occurred.
- An advantageously simple and effective way of achieving this is to provide that said main data registers and said exception data registers are addressed using a register address formed from an instruction portion derived from an executed software instruction and a mode portion derived from at least some bits of said data indicative of processing status stored in said processing status register.
- the concatenation of bits of the processing status data with an address derived from an instruction automatically ensures that the appropriate one of a main data register and an exception data register is addressed merely by ensuring that the processing status register is changed to indicate the appropriate one of the main processing modes or exception processing modes that is currently in operation.
- this invention provides a method of operating a data processing apparatus to manipulate data in either a main processing mode or an exception processing mode, said data processing apparatus comprising: a plurality of main data registers for holding data to be manipulated; a processing status register for holding data indicative of processing status; at least one exception data register; and a saved processing status register; said method comprising the steps of:
- FIG. 1 schematically illustrates a CPU architecture
- FIG. 2 illustrates the data registers available in a main processing mode and a number of exception processing modes
- FIG. 3 illustrates how a physical register address is derived from mode bits from the programming status register and from the instruction being executed
- FIG. 4 shows a flow diagram illustrating the switch between a main processing routine and an exception processing routine
- FIG. 4A shows a flow diagram illustrating an example of the system control process during the execution of embedded exception processing according to the present invention.
- FIG. 1 schematically illustrates a part of a CPU 2.
- the CPU 2 contains an internal bus 4 by which the various portions of the CPU 2 communicate.
- An interrupt controller 6 is attached to the internal bus 4.
- the interrupt controller 6 receives external inputs nFIQ and nIRQ that are signal indicating interrupt requests applied to external pins on the CPU package.
- An external data bus (not shown) communicates with a read buffer 8 and a write buffer 10 via which data (either data to be manipulated or instruction data) is respectively read into or written out from the CPU.
- Instruction data read into the read buffer 8 can be fed directly to the internal bus 4 and then to an instruction register 12 where they are stored and then decoded for action by an instruction decoder 14.
- Data to be manipulated may be input or output from a register bank 16 via the read buffer 8 and write buffer 10 respectively. The data within the registers of a register bank 16 is manipulated under control of decoded instructions using the instruction decoder 14.
- a processing status register 18 stores processing status information (e.g. flags indicating whether fast or slow interrupts are allowed) and includes a section indicating the current processing mode of the CPU 2.
- a bank of saved processing status registers 20 are provided to store a previous set of active processing status data when a change is made between processing modes. Amongst other tasks, the contents of the processing status register 18 are used with a register address from the instruction decoder 14 to produce a composite register address that uniquely identifies one register within the register bank 16 upon which a particular instruction is to be carried out.
- FIG. 2 illustrates the different registers available during a main processing mode User32 and various exception processing modes.
- the main processing mode fifteen general purpose registers R0 to R14 are provided for data manipulation operations.
- a program counter register R15pc is provided to serve as a program counter indicating the current position within a sequence of instructions to be executed.
- a processing status register CPSR stores various flags indicating control parameters of the CPU 2 and five bits indicating the current processing mode.
- the mode User32 is provided for the execution of user application software.
- the remaining five processing modes illustrated are all differing types of exception processing modes.
- the exception processing modes are:
- Undef32 undefined (Undef32) which is entered when an undefined instruction enters the execution unit
- abort (Abt32) which is entered when the memory system aborts a memory access (either a data access or an instruction prefetch);
- interrupt request entered when the nIRQ pin is held low and the Ibit in the CPSR is clear indicating that such slow interrupt requests are allowed;
- FIQ32 fast interrupt request
- Each of the exception modes SVC32, Abt32, IRQ32 and Undef32 have two exception data registers associated with them that substitute for the main data registers R13 and R14 respectively when one of these modes is entered.
- R13 is the usual register used to store a stack pointer in both the main processing mode User32 and the exception processing modes.
- the system stores the contents of R15pc in the R14 register of the mode being entered to serve as the return address register. This provides ready access to the return address when the exception handling code for that mode is exited.
- Each of the exception handling modes has an associated saved program status register SPSR. These SPSRs save the contents of the CPSR from the previous mode and allow this to be restored to the CPSR when the previous mode is returned to.
- the fast interrupt mode FIQ32 has seven exception data registers (R8fiq to R14fiq) as opposed to two exception data registers for the other exception processing modes. The result of this is that exception data registers R8fiq to R12fiq are available for immediate use upon entering the FIQ32 mode. It is also of note that the write buffer 10 of FIG. 1 is the equivalent of eight registers deep and so if the exception handling code of mode FIQ32 requires that the registers RO to R7 be saved, then this can be achieved in a short time since they can be completely held within the write buffer 10.
- the CPU is provided with a load muliple instruction and store multiple instruction that allow any set of the sixteen active registers to be loaded and stored (e.g. LDM R1, ⁇ R0, R3, R4, R6, R14, R15 pc ⁇ loads the registers inside the ⁇ ⁇ from an area of memory starting at address R1).
- the instruction decoder 14 controls the operation of the CPU to perform this operation.
- FIG. 4A A detailed flow diagram showing the system control implemented according to this example is provided in FIG. 4A.
- instruction data including a software interrupt instruction is received from the external bus and eventually transferred to the instruction decoder. This is shown at step 50 of the flow diagram.
- the instruction decoder Upon receipt of the software interrupt instruction, the instruction decoder notifies the interrupt controller at step 52.
- exception data registers R13svc and R14svc replace registers R13 and R14 respectively at step 54.
- the contents of R15pc from the User32 mode are saved in the R14svc register also at step 54.
- the contents of the CPSR from the User32 mode are saved in the SPSRsvc at step 56 and the contents of the CPSR updated to reflect the SVC32 mode which has been entered at step 58.
- the five bit field indicating the processing mode is updated. If, while in the SVC32 mode, a further exception occurs (steps 62) as determined at step 60, such as an aborted memory access, then the Abt32 mode is entered from the SVC32 mode.
- the R13abt and R14abt registers replace the respective R13svc and R14svc registers of the SVC32 mode at step 64.
- the contents of the R15pc register current in the SVC32 mode are saved in the R14abt register also as step 64.
- the contents of the CPSR in the SVC32 mode are saved in the SPSRabt at step 66. It should be understood that again the 5-bit mode in the CPSR is updated to reflect the Abt32 mode which has been entered.
- the CPU When the exception handling is complete within the Abt32 mode (step 70), the CPU will restore the contents of R14abt to R15pc and the contents of SPSRabt to the CPSR at steps 72 and 74 respectively. Restoring the contents of the CPSR to the state they had when the SVC32 mode was last executed will change the 5 bit field indicating the mode back to indicating the SVC32 mode (step 76) which will automatically change the registers addressed such that the R13svc and R14svc registers are now addressed instead of the R13abt and R14abt registers. Since no processing has occurred upon the R13svc and R14svc registers since the SVC32 mode was exited, then the values within these registers will have been preserved.
- the SVC32 mode processing will resume at step 78 at substantially the exact point at which it was exited (providing the contents of RO to R12 have been restored if these were altered in the Abt32 mode.
- the system will return to the User32 mode by substituting the R13 and R14 and R15 registers for the R13svc and R14svc registers at step 80.
- the contents of the SPSRsvc will be restored to the CPSR at step 82.
- the CPSR 5-bit mode is then reset to reflect that the main processing mode has been entered as shown at step 84.
- the overall effect of the above is that an abort exception is nested within a supervisor exception from the main processing mode User32.
- the use of the exception data registers to substitute for corresponding ones of the main data registers means that the switching between modes can be achieved at high speed.
- the provision of the saved programming status registers allows a seamless switching and return to be achieved with reduced programming overhead.
- FIG. 3 illustrates how a physical register address identifying a particular one of the main data registers and the exception data registers is derived from a combination of the mode bits from the CPSR and an instruction register address as decoded by the instruction decoder 14 of FIG. 1.
- these various composite register addresses will be used as inputs to the register address decoder of the register bank rather than going through an intermediate stage of producing a physical register address.
- FIG. 4 schematically illustrates the processing that occurs when moving between a main processing mode and an exception processing mode.
- the data processing apparatus is performing a main processing routine 22.
- a step 24 tests as to whether an exception has occurred. If no exception has occurred, then the main processing routine 22 continues. If an exception has occurred, then control passes to step 26.
- step 26 the contents of the CPSR are stored to the SPSR of the relevant exception mode that has been identified. The contents of the CPSR are then changed to reflect the new processing mode that has been entered.
- step 28 the contents of the program counter R15pc from the previous mode are saved in the R14xx of the exception mode that has been entered. Steps 26 and 28 take place in response to a single instruction.
- the system executes an exception routine 30.
- the contents of the register R14xx are returned to the program counter R15pc and the programming status data of the previous mode is restored from the SPSRxx to the CPSR.
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
Description
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/959,711 US5386563A (en) | 1992-10-13 | 1992-10-13 | Register substitution during exception processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/959,711 US5386563A (en) | 1992-10-13 | 1992-10-13 | Register substitution during exception processing |
Publications (1)
Publication Number | Publication Date |
---|---|
US5386563A true US5386563A (en) | 1995-01-31 |
Family
ID=25502321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/959,711 Expired - Lifetime US5386563A (en) | 1992-10-13 | 1992-10-13 | Register substitution during exception processing |
Country Status (1)
Country | Link |
---|---|
US (1) | US5386563A (en) |
Cited By (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600848A (en) * | 1993-10-21 | 1997-02-04 | Sun Microsystems, Inc. | Counterflow pipeline processor with instructions flowing in a first direction and instruction results flowing in the reverse direction |
US5701493A (en) * | 1995-08-03 | 1997-12-23 | Advanced Risc Machines Limited | Exception handling method and apparatus in data processing systems |
US5745770A (en) * | 1993-12-27 | 1998-04-28 | Intel Corporation | Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor |
US5812868A (en) * | 1996-09-16 | 1998-09-22 | Motorola Inc. | Method and apparatus for selecting a register file in a data processing system |
US5812823A (en) * | 1996-01-02 | 1998-09-22 | International Business Machines Corporation | Method and system for performing an emulation context save and restore that is transparent to the operating system |
US5900025A (en) * | 1995-09-12 | 1999-05-04 | Zsp Corporation | Processor having a hierarchical control register file and methods for operating the same |
US5901309A (en) * | 1997-10-07 | 1999-05-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for improved interrupt handling within a microprocessor |
US5938762A (en) * | 1995-10-06 | 1999-08-17 | Denso Corporation | Method and apparatus for performing exception processing routine in pipeline processing |
US5966529A (en) * | 1995-05-15 | 1999-10-12 | Zsp Corporation | Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution |
US5987258A (en) * | 1997-06-27 | 1999-11-16 | Lsi Logic Corporation | Register reservation method for fast context switching in microprocessors |
US6038661A (en) * | 1994-09-09 | 2000-03-14 | Hitachi, Ltd. | Single-chip data processor handling synchronous and asynchronous exceptions by branching from a first exception handler to a second exception handler |
US6081880A (en) * | 1995-03-09 | 2000-06-27 | Lsi Logic Corporation | Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file |
EP1042712A1 (en) * | 1997-12-19 | 2000-10-11 | Bull HN Information Systems Inc. | Fast domain switch and error recovery in a secure cpu architecture |
US6167497A (en) * | 1996-06-19 | 2000-12-26 | Hitachi, Ltd. | Data processing apparatus and register address translation method thereof |
US6189093B1 (en) * | 1998-07-21 | 2001-02-13 | Lsi Logic Corporation | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register |
US6192513B1 (en) * | 1998-11-02 | 2001-02-20 | Hewlett-Packard Company | Mechanism for finding spare registers in binary code |
US6199156B1 (en) * | 1998-12-16 | 2001-03-06 | Bull Hn Information Systems Inc. | System for explicitly referencing a register for its current content when performing processor context switch |
US6230259B1 (en) * | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
US6243804B1 (en) * | 1998-07-22 | 2001-06-05 | Scenix Semiconductor, Inc. | Single cycle transition pipeline processing using shadow registers |
US20020144184A1 (en) * | 2001-03-30 | 2002-10-03 | Transmeta Corporation | Method and apparatus for handling nested faults |
US20020181577A1 (en) * | 2001-06-01 | 2002-12-05 | Bowling Stephen A. | Configuration fuses for setting PWM options |
US20020184286A1 (en) * | 2001-06-01 | 2002-12-05 | Catherwood Michael I. | Maximally negative signed fractional number multiplication |
US20020184469A1 (en) * | 2001-06-01 | 2002-12-05 | Bowling Stephen A. | Processor with dual-deadtime pulse width modulation generator |
US20020184566A1 (en) * | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US20020188639A1 (en) * | 2001-06-01 | 2002-12-12 | Catherwood Michael I. | Euclidean distance instructions |
US20020188784A1 (en) * | 2001-06-01 | 2002-12-12 | Brian Boles | Variable cycle interrupt disabling |
US20020188640A1 (en) * | 2001-06-01 | 2002-12-12 | Catherwood Michael I. | Dual mode arithmetic saturation processing |
US20030005269A1 (en) * | 2001-06-01 | 2003-01-02 | Conner Joshua M. | Multi-precision barrel shifting |
US20030005268A1 (en) * | 2001-06-01 | 2003-01-02 | Catherwood Michael I. | Find first bit value instruction |
US20030005245A1 (en) * | 2001-06-01 | 2003-01-02 | Michael Catherwood | Modified harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US20030005011A1 (en) * | 2001-06-01 | 2003-01-02 | John Elliott | Sticky z bit |
US20030023836A1 (en) * | 2001-06-01 | 2003-01-30 | Michael Catherwood | Shadow register array control instructions |
US20030028696A1 (en) * | 2001-06-01 | 2003-02-06 | Michael Catherwood | Low overhead interrupt |
US20030074545A1 (en) * | 2001-10-12 | 2003-04-17 | Uhler G. Michael | Method and apparatus for binding shadow registers to vectored interrupts |
US20030074508A1 (en) * | 2001-10-12 | 2003-04-17 | Uhler G. Michael | Configurable prioritization of core generated interrupts |
US20030097546A1 (en) * | 2001-11-20 | 2003-05-22 | Richard Taylor | Reconfigurable processor |
US20030126484A1 (en) * | 2001-06-01 | 2003-07-03 | Catherwood Michael I. | Reduced power option |
US20030226001A1 (en) * | 2002-05-31 | 2003-12-04 | Moyer William C. | Data processing system having multiple register contexts and method therefor |
US20040199716A1 (en) * | 1993-09-17 | 2004-10-07 | Shumpei Kawasaki | Single-chip microcomputer |
US20050061167A1 (en) * | 2003-09-18 | 2005-03-24 | Anthony Fox | Trash compactor for fast food restaurant waste |
US20050081021A1 (en) * | 2003-10-09 | 2005-04-14 | National Sun Yat-Sen University | Automatic register backup/restore system and method |
US20050086650A1 (en) * | 1999-01-28 | 2005-04-21 | Ati International Srl | Transferring execution from one instruction stream to another |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6941545B1 (en) | 1999-01-28 | 2005-09-06 | Ati International Srl | Profiling of computer programs executing in virtual memory systems |
US6954923B1 (en) | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
US6976158B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US6978462B1 (en) | 1999-01-28 | 2005-12-20 | Ati International Srl | Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled |
US7047394B1 (en) | 1999-01-28 | 2006-05-16 | Ati International Srl | Computer for execution of RISC and CISC instruction sets |
US7069421B1 (en) | 1999-01-28 | 2006-06-27 | Ati Technologies, Srl | Side tables annotating an instruction stream |
US20060282821A1 (en) * | 2005-06-10 | 2006-12-14 | Renno Erik K | Efficient subprogram return in microprocessors |
US7162615B1 (en) | 2000-06-12 | 2007-01-09 | Mips Technologies, Inc. | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
US20070038848A1 (en) * | 2005-08-12 | 2007-02-15 | Gschwind Michael K | Implementing instruction set architectures with non-contiguous register file specifiers |
US20070038984A1 (en) * | 2005-08-12 | 2007-02-15 | Gschwind Michael K | Methods for generating code for an architecture encoding an extended register specification |
US7254806B1 (en) | 1999-08-30 | 2007-08-07 | Ati International Srl | Detecting reordered side-effects |
CN100375032C (en) * | 2002-12-05 | 2008-03-12 | 国际商业机器公司 | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US20080216073A1 (en) * | 1999-01-28 | 2008-09-04 | Ati International Srl | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US20110047359A1 (en) * | 2009-08-19 | 2011-02-24 | International Business Machines Corporation | Insertion of Operation-and-Indicate Instructions for Optimized SIMD Code |
US20110047358A1 (en) * | 2009-08-19 | 2011-02-24 | International Business Machines Corporation | In-Data Path Tracking of Floating Point Exceptions and Store-Based Exception Indication |
US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US8074055B1 (en) | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
USRE43248E1 (en) | 1994-06-10 | 2012-03-13 | Arm Limited | Interoperability with multiple instruction sets |
US20150301833A1 (en) * | 2010-03-15 | 2015-10-22 | Arm Limited | Apparatus and method for handling exception events |
US20150363270A1 (en) * | 2014-06-11 | 2015-12-17 | Commvault Systems, Inc. | Conveying value of implementing an integrated data management and protection system |
WO2016034087A1 (en) * | 2014-09-03 | 2016-03-10 | Mediatek Inc. | Method for handling mode switching with less unnecessary register data access and related non-transitory machine readable medium |
US20160246534A1 (en) * | 2015-02-20 | 2016-08-25 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
US20170123816A1 (en) * | 2015-10-30 | 2017-05-04 | International Business Machines Corporation | Simultaneously capturing status information for multiple operating modes |
US9858201B2 (en) | 2015-02-20 | 2018-01-02 | Qualcomm Incorporated | Selective translation lookaside buffer search and page fault |
CN109933451A (en) * | 2019-03-18 | 2019-06-25 | 晶晨半导体(上海)股份有限公司 | A kind of exception and interrupt processing system and method based on RISC-V framework |
US11157277B2 (en) * | 2018-10-04 | 2021-10-26 | Arm Limited | Data processing apparatus with respective banked registers for exception levels |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4217638A (en) * | 1977-05-19 | 1980-08-12 | Tokyo Shibaura Electric Co., Ltd. | Data-processing apparatus and method |
US4434461A (en) * | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
US4812967A (en) * | 1985-03-11 | 1989-03-14 | Hitachi, Ltd. | Method and apparatus for controlling interrupts in a virtual machine system |
US4905196A (en) * | 1984-04-26 | 1990-02-27 | Bbc Brown, Boveri & Company Ltd. | Method and storage device for saving the computer status during interrupt |
US4970641A (en) * | 1985-10-01 | 1990-11-13 | Ibm Corporation | Exception handling in a pipelined microprocessor |
US5095426A (en) * | 1988-06-08 | 1992-03-10 | Nec Corporation | Data processing system for effectively handling exceptions during execution of two different types of instructions |
US5115506A (en) * | 1990-01-05 | 1992-05-19 | Motorola, Inc. | Method and apparatus for preventing recursion jeopardy |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
-
1992
- 1992-10-13 US US07/959,711 patent/US5386563A/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4217638A (en) * | 1977-05-19 | 1980-08-12 | Tokyo Shibaura Electric Co., Ltd. | Data-processing apparatus and method |
US4434461A (en) * | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
US4905196A (en) * | 1984-04-26 | 1990-02-27 | Bbc Brown, Boveri & Company Ltd. | Method and storage device for saving the computer status during interrupt |
US4812967A (en) * | 1985-03-11 | 1989-03-14 | Hitachi, Ltd. | Method and apparatus for controlling interrupts in a virtual machine system |
US4970641A (en) * | 1985-10-01 | 1990-11-13 | Ibm Corporation | Exception handling in a pipelined microprocessor |
US5095426A (en) * | 1988-06-08 | 1992-03-10 | Nec Corporation | Data processing system for effectively handling exceptions during execution of two different types of instructions |
US5115506A (en) * | 1990-01-05 | 1992-05-19 | Motorola, Inc. | Method and apparatus for preventing recursion jeopardy |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
Cited By (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263228A1 (en) * | 1993-09-17 | 2008-10-23 | Shumpei Kawasaki | Single-chip microcomputer |
US20040199716A1 (en) * | 1993-09-17 | 2004-10-07 | Shumpei Kawasaki | Single-chip microcomputer |
US5600848A (en) * | 1993-10-21 | 1997-02-04 | Sun Microsystems, Inc. | Counterflow pipeline processor with instructions flowing in a first direction and instruction results flowing in the reverse direction |
US5745770A (en) * | 1993-12-27 | 1998-04-28 | Intel Corporation | Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor |
USRE43248E1 (en) | 1994-06-10 | 2012-03-13 | Arm Limited | Interoperability with multiple instruction sets |
US6425039B2 (en) | 1994-09-09 | 2002-07-23 | Hitachi, Ltd. | Accessing exception handlers without translating the address |
US6038661A (en) * | 1994-09-09 | 2000-03-14 | Hitachi, Ltd. | Single-chip data processor handling synchronous and asynchronous exceptions by branching from a first exception handler to a second exception handler |
US6081880A (en) * | 1995-03-09 | 2000-06-27 | Lsi Logic Corporation | Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file |
US5966529A (en) * | 1995-05-15 | 1999-10-12 | Zsp Corporation | Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution |
US5701493A (en) * | 1995-08-03 | 1997-12-23 | Advanced Risc Machines Limited | Exception handling method and apparatus in data processing systems |
US5900025A (en) * | 1995-09-12 | 1999-05-04 | Zsp Corporation | Processor having a hierarchical control register file and methods for operating the same |
US5938762A (en) * | 1995-10-06 | 1999-08-17 | Denso Corporation | Method and apparatus for performing exception processing routine in pipeline processing |
US5812823A (en) * | 1996-01-02 | 1998-09-22 | International Business Machines Corporation | Method and system for performing an emulation context save and restore that is transparent to the operating system |
US6167497A (en) * | 1996-06-19 | 2000-12-26 | Hitachi, Ltd. | Data processing apparatus and register address translation method thereof |
US5812868A (en) * | 1996-09-16 | 1998-09-22 | Motorola Inc. | Method and apparatus for selecting a register file in a data processing system |
US5987258A (en) * | 1997-06-27 | 1999-11-16 | Lsi Logic Corporation | Register reservation method for fast context switching in microprocessors |
US5901309A (en) * | 1997-10-07 | 1999-05-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for improved interrupt handling within a microprocessor |
US6230259B1 (en) * | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
EP1042712A1 (en) * | 1997-12-19 | 2000-10-11 | Bull HN Information Systems Inc. | Fast domain switch and error recovery in a secure cpu architecture |
EP1042712A4 (en) * | 1997-12-19 | 2006-10-25 | Bull Hn Information Syst | Fast domain switch and error recovery in a secure cpu architecture |
US6189093B1 (en) * | 1998-07-21 | 2001-02-13 | Lsi Logic Corporation | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register |
US6243804B1 (en) * | 1998-07-22 | 2001-06-05 | Scenix Semiconductor, Inc. | Single cycle transition pipeline processing using shadow registers |
US6192513B1 (en) * | 1998-11-02 | 2001-02-20 | Hewlett-Packard Company | Mechanism for finding spare registers in binary code |
US6199156B1 (en) * | 1998-12-16 | 2001-03-06 | Bull Hn Information Systems Inc. | System for explicitly referencing a register for its current content when performing processor context switch |
US8065504B2 (en) | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
US20050086650A1 (en) * | 1999-01-28 | 2005-04-21 | Ati International Srl | Transferring execution from one instruction stream to another |
US8788792B2 (en) | 1999-01-28 | 2014-07-22 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architecture on a computer of a second architecture |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US8121828B2 (en) | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
US8074055B1 (en) | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US20080216073A1 (en) * | 1999-01-28 | 2008-09-04 | Ati International Srl | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US7275246B1 (en) | 1999-01-28 | 2007-09-25 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
US7137110B1 (en) | 1999-01-28 | 2006-11-14 | Ati International Srl | Profiling ranges of execution of a computer program |
US7111290B1 (en) | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US7069421B1 (en) | 1999-01-28 | 2006-06-27 | Ati Technologies, Srl | Side tables annotating an instruction stream |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US7047394B1 (en) | 1999-01-28 | 2006-05-16 | Ati International Srl | Computer for execution of RISC and CISC instruction sets |
US6978462B1 (en) | 1999-01-28 | 2005-12-20 | Ati International Srl | Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled |
US6954923B1 (en) | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
US6941545B1 (en) | 1999-01-28 | 2005-09-06 | Ati International Srl | Profiling of computer programs executing in virtual memory systems |
US20050086451A1 (en) * | 1999-01-28 | 2005-04-21 | Ati International Srl | Table look-up for control of instruction execution |
US7254806B1 (en) | 1999-08-30 | 2007-08-07 | Ati International Srl | Detecting reordered side-effects |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US7228404B1 (en) | 2000-01-18 | 2007-06-05 | Ati International Srl | Managing instruction side-effects |
US9519507B2 (en) | 2000-06-12 | 2016-12-13 | Arm Finance Overseas Limited | Executing an instruction of currently active thread before context switch upon receiving inactive context ID to be activated |
US11226820B2 (en) | 2000-06-12 | 2022-01-18 | Arm Finance Overseas Limited | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
US7529915B2 (en) | 2000-06-12 | 2009-05-05 | Mips Technologies, Inc. | Context switching processor with multiple context control register sets including write address register identifying destination register for waiting context to store returned data from external source |
US20090210682A1 (en) * | 2000-06-12 | 2009-08-20 | Robert Gelinas | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
US20070106886A1 (en) * | 2000-06-12 | 2007-05-10 | Mips Technologies, Inc. | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
US7162615B1 (en) | 2000-06-12 | 2007-01-09 | Mips Technologies, Inc. | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
US9047093B2 (en) | 2000-06-12 | 2015-06-02 | Arm Finance Overseas Limited | Data transfer bus communication to receive data by sending request instruction attached with identifier indicating processor and thread context identities |
US20020144184A1 (en) * | 2001-03-30 | 2002-10-03 | Transmeta Corporation | Method and apparatus for handling nested faults |
US6829719B2 (en) * | 2001-03-30 | 2004-12-07 | Transmeta Corporation | Method and apparatus for handling nested faults |
US7640450B1 (en) * | 2001-03-30 | 2009-12-29 | Anvin H Peter | Method and apparatus for handling nested faults |
US20030126484A1 (en) * | 2001-06-01 | 2003-07-03 | Catherwood Michael I. | Reduced power option |
US20050172109A1 (en) * | 2001-06-01 | 2005-08-04 | Microchip Technology Incorporated | Register pointer trap |
US7003543B2 (en) | 2001-06-01 | 2006-02-21 | Microchip Technology Incorporated | Sticky z bit |
US7007172B2 (en) | 2001-06-01 | 2006-02-28 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US7020788B2 (en) | 2001-06-01 | 2006-03-28 | Microchip Technology Incorporated | Reduced power option |
US6975679B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Configuration fuses for setting PWM options |
US6952711B2 (en) | 2001-06-01 | 2005-10-04 | Microchip Technology Incorporated | Maximally negative signed fractional number multiplication |
US20020188784A1 (en) * | 2001-06-01 | 2002-12-12 | Brian Boles | Variable cycle interrupt disabling |
US20020184286A1 (en) * | 2001-06-01 | 2002-12-05 | Catherwood Michael I. | Maximally negative signed fractional number multiplication |
US20020188640A1 (en) * | 2001-06-01 | 2002-12-12 | Catherwood Michael I. | Dual mode arithmetic saturation processing |
US20020184469A1 (en) * | 2001-06-01 | 2002-12-05 | Bowling Stephen A. | Processor with dual-deadtime pulse width modulation generator |
US20030005269A1 (en) * | 2001-06-01 | 2003-01-02 | Conner Joshua M. | Multi-precision barrel shifting |
US20030005011A1 (en) * | 2001-06-01 | 2003-01-02 | John Elliott | Sticky z bit |
US6985986B2 (en) | 2001-06-01 | 2006-01-10 | Microchip Technology Incorporated | Variable cycle interrupt disabling |
US20020184566A1 (en) * | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US20050210284A1 (en) * | 2001-06-01 | 2005-09-22 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US7966480B2 (en) | 2001-06-01 | 2011-06-21 | Microchip Technology Incorporated | Register pointer trap to prevent errors due to an invalid pointer value in a register |
US20030005245A1 (en) * | 2001-06-01 | 2003-01-02 | Michael Catherwood | Modified harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US20020181577A1 (en) * | 2001-06-01 | 2002-12-05 | Bowling Stephen A. | Configuration fuses for setting PWM options |
US6976158B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US6937084B2 (en) | 2001-06-01 | 2005-08-30 | Microchip Technology Incorporated | Processor with dual-deadtime pulse width modulation generator |
US7243372B2 (en) | 2001-06-01 | 2007-07-10 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US20020188639A1 (en) * | 2001-06-01 | 2002-12-12 | Catherwood Michael I. | Euclidean distance instructions |
US20030023836A1 (en) * | 2001-06-01 | 2003-01-30 | Michael Catherwood | Shadow register array control instructions |
US6934728B2 (en) | 2001-06-01 | 2005-08-23 | Microchip Technology Incorporated | Euclidean distance instructions |
US20030005268A1 (en) * | 2001-06-01 | 2003-01-02 | Catherwood Michael I. | Find first bit value instruction |
US7467178B2 (en) | 2001-06-01 | 2008-12-16 | Microchip Technology Incorporated | Dual mode arithmetic saturation processing |
US20030028696A1 (en) * | 2001-06-01 | 2003-02-06 | Michael Catherwood | Low overhead interrupt |
US7487339B2 (en) * | 2001-10-12 | 2009-02-03 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
US7925864B2 (en) | 2001-10-12 | 2011-04-12 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
US20030074508A1 (en) * | 2001-10-12 | 2003-04-17 | Uhler G. Michael | Configurable prioritization of core generated interrupts |
US20060253635A1 (en) * | 2001-10-12 | 2006-11-09 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
US7487332B2 (en) | 2001-10-12 | 2009-02-03 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
US20030074545A1 (en) * | 2001-10-12 | 2003-04-17 | Uhler G. Michael | Method and apparatus for binding shadow registers to vectored interrupts |
US20090119434A1 (en) * | 2001-10-12 | 2009-05-07 | Uhler G Michael | Method and apparatus for binding shadow registers to vectored interrupts |
US7552261B2 (en) | 2001-10-12 | 2009-06-23 | Mips Technologies, Inc. | Configurable prioritization of core generated interrupts |
US20070124569A1 (en) * | 2001-10-12 | 2007-05-31 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
US8181000B2 (en) * | 2001-10-12 | 2012-05-15 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
US20030097546A1 (en) * | 2001-11-20 | 2003-05-22 | Richard Taylor | Reconfigurable processor |
US20030226001A1 (en) * | 2002-05-31 | 2003-12-04 | Moyer William C. | Data processing system having multiple register contexts and method therefor |
US7117346B2 (en) * | 2002-05-31 | 2006-10-03 | Freescale Semiconductor, Inc. | Data processing system having multiple register contexts and method therefor |
CN100375032C (en) * | 2002-12-05 | 2008-03-12 | 国际商业机器公司 | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US20050061167A1 (en) * | 2003-09-18 | 2005-03-24 | Anthony Fox | Trash compactor for fast food restaurant waste |
US7143271B2 (en) | 2003-10-09 | 2006-11-28 | National Sun Yat-Sen University | Automatic register backup/restore system and method |
US20050081021A1 (en) * | 2003-10-09 | 2005-04-14 | National Sun Yat-Sen University | Automatic register backup/restore system and method |
US20100250904A1 (en) * | 2005-06-10 | 2010-09-30 | Atmel Corporation | Methods and processor-related media to perform rapid returns from subroutines in microprocessors and microcontrollers |
US8555041B2 (en) | 2005-06-10 | 2013-10-08 | Atmel Corporation | Method for performing a return operation in parallel with setting status flags based on a return value register test |
US20060282821A1 (en) * | 2005-06-10 | 2006-12-14 | Renno Erik K | Efficient subprogram return in microprocessors |
US20070038984A1 (en) * | 2005-08-12 | 2007-02-15 | Gschwind Michael K | Methods for generating code for an architecture encoding an extended register specification |
US20070038848A1 (en) * | 2005-08-12 | 2007-02-15 | Gschwind Michael K | Implementing instruction set architectures with non-contiguous register file specifiers |
US8166281B2 (en) | 2005-08-12 | 2012-04-24 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US8312424B2 (en) | 2005-08-12 | 2012-11-13 | International Business Machines Corporation | Methods for generating code for an architecture encoding an extended register specification |
US20080215856A1 (en) * | 2005-08-12 | 2008-09-04 | Michael Karl Gschwind | Methods for generating code for an architecture encoding an extended register specification |
US7421566B2 (en) | 2005-08-12 | 2008-09-02 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US8893095B2 (en) | 2005-08-12 | 2014-11-18 | International Business Machines Corporation | Methods for generating code for an architecture encoding an extended register specification |
US8893079B2 (en) | 2005-08-12 | 2014-11-18 | International Business Machines Corporation | Methods for generating code for an architecture encoding an extended register specification |
US7793081B2 (en) | 2006-06-02 | 2010-09-07 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US20080189519A1 (en) * | 2006-06-02 | 2008-08-07 | Michael Karl Gschwind | Implementing instruction set architectures with non-contiguous register file specifiers |
US8458684B2 (en) | 2009-08-19 | 2013-06-04 | International Business Machines Corporation | Insertion of operation-and-indicate instructions for optimized SIMD code |
US20110047358A1 (en) * | 2009-08-19 | 2011-02-24 | International Business Machines Corporation | In-Data Path Tracking of Floating Point Exceptions and Store-Based Exception Indication |
US20110047359A1 (en) * | 2009-08-19 | 2011-02-24 | International Business Machines Corporation | Insertion of Operation-and-Indicate Instructions for Optimized SIMD Code |
US9727343B2 (en) * | 2010-03-15 | 2017-08-08 | Arm Limited | Apparatus and method for handling exception events |
US20150301833A1 (en) * | 2010-03-15 | 2015-10-22 | Arm Limited | Apparatus and method for handling exception events |
US20150363270A1 (en) * | 2014-06-11 | 2015-12-17 | Commvault Systems, Inc. | Conveying value of implementing an integrated data management and protection system |
US9760446B2 (en) * | 2014-06-11 | 2017-09-12 | Micron Technology, Inc. | Conveying value of implementing an integrated data management and protection system |
WO2016034087A1 (en) * | 2014-09-03 | 2016-03-10 | Mediatek Inc. | Method for handling mode switching with less unnecessary register data access and related non-transitory machine readable medium |
US9858201B2 (en) | 2015-02-20 | 2018-01-02 | Qualcomm Incorporated | Selective translation lookaside buffer search and page fault |
US20160246534A1 (en) * | 2015-02-20 | 2016-08-25 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
US9658793B2 (en) * | 2015-02-20 | 2017-05-23 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
US9727353B2 (en) * | 2015-10-30 | 2017-08-08 | International Business Machines Corporation | Simultaneously capturing status information for multiple operating modes |
US10102007B2 (en) * | 2015-10-30 | 2018-10-16 | International Business Machines Corporation | Simultaneously capturing status information for multiple operating modes |
US10346180B2 (en) | 2015-10-30 | 2019-07-09 | International Business Machines Corporation | Simultaneously capturing status information for multiple operating modes |
US11036519B2 (en) | 2015-10-30 | 2021-06-15 | International Business Machines Corporation | Simultaneously capturing status information for multiple operating modes |
US20170123816A1 (en) * | 2015-10-30 | 2017-05-04 | International Business Machines Corporation | Simultaneously capturing status information for multiple operating modes |
US11157277B2 (en) * | 2018-10-04 | 2021-10-26 | Arm Limited | Data processing apparatus with respective banked registers for exception levels |
CN109933451A (en) * | 2019-03-18 | 2019-06-25 | 晶晨半导体(上海)股份有限公司 | A kind of exception and interrupt processing system and method based on RISC-V framework |
CN109933451B (en) * | 2019-03-18 | 2022-06-28 | 晶晨半导体(上海)股份有限公司 | RISC-V architecture based exception and interrupt handling system and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5386563A (en) | Register substitution during exception processing | |
US5701493A (en) | Exception handling method and apparatus in data processing systems | |
US5557766A (en) | High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank | |
US6209085B1 (en) | Method and apparatus for performing process switching in multiprocessor computer systems | |
KR920001101B1 (en) | Microprocessor and internal register device | |
US5161226A (en) | Microprocessor inverse processor state usage | |
US6314515B1 (en) | Resetting multiple processors in a computer system | |
US5634046A (en) | General purpose use of a stack pointer register | |
US5125087A (en) | Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register | |
US5148544A (en) | Apparatus and method for control of asynchronous program interrupt events in a data processing system | |
KR100848603B1 (en) | A data processing apparatus and method for saving return state | |
KR100766732B1 (en) | Device and method for performing high-speed low overhead context switch | |
JPH08278886A (en) | Method and system for operation of extended system management in data-processing system | |
GB2348306A (en) | Batch processing of tasks in data processing systems | |
JPH05197548A (en) | Psw changing system | |
US5680599A (en) | Program counter save on reset system and method | |
US6088787A (en) | Enhanced program counter stack for multi-tasking central processing unit | |
JP3970609B2 (en) | Processor system | |
US5615348A (en) | Microprocessor having register bank architecture | |
EP0297892B1 (en) | Apparatus and method for control of asynchronous program interrupt events in a data processing system | |
US4816992A (en) | Method of operating a data processing system in response to an interrupt | |
EP0156307A2 (en) | Pipelined processor having dual cache memories | |
US5201052A (en) | System for transferring first and second ring information from program status word register and store buffer | |
JP3539984B2 (en) | Processor | |
US5933856A (en) | System and method for processing of memory data and communication system comprising such system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ADVANCED RISC MACHINES LIMITED, GREAT BRITAIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CHADWICK, GERARD WALTER ADAMSON, ATTORNEY FOR THE ADMINISTRATRIX;REEL/FRAME:007165/0799 Effective date: 19930328 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: ARM LIMITED, UNITED KINGDOM Free format text: CHANGE OF NAME;ASSIGNOR:ADVANCED RISC MACHINES LIMITED;REEL/FRAME:009289/0569 Effective date: 19980521 |
|
AS | Assignment |
Owner name: ARM LIMITED, UNITED KINGDOM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARM LIMITED;REEL/FRAME:010742/0340 Effective date: 20000320 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |