Exception Handler Segmentation for Reliable Memory Error Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing exception handling mechanisms in computer systems are unreliable due to the risk of stored exception handlers being located in faulty memory, leading to system shutdowns during hardware errors, and current solutions are limited in applicability and require expensive, scarce safe memory.
Innovation Solution
The solution involves splitting the exception handler into a unique dispatcher in safe memory and multiple instances of the main exception handler in unsafe memory, allowing for reliable exception handling by ensuring execution can continue even if some memory modules fail, with the dispatcher directing execution to intact handler instances.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the exception handler is stored in unsafe memory region, then the storage space is sufficient for complete exception handling routines, but the reliability of exception handling deteriorates because the handler itself may be corrupted by memory errors
Solution Approach 1:
The exception handling system is segmented into two distinct parts: a small dispatcher stored in safe memory that performs initial error checking and coordination, and a larger main exception handler stored in unsafe memory that performs the actual exception processing. This segmentation allows the critical coordination logic to reside in reliable memory while the bulk of the handling routines can utilize the larger unsafe memory space.
Solution Approach 2:
The dispatcher acts as an intermediary between the memory error detection mechanism and the main exception handler. It verifies the integrity of the main exception handler before execution and coordinates the exception handling process, thereby protecting the system from corrupted handler code while enabling comprehensive exception processing.
2Quantity of substance
If the exception handler is stored in safe memory region, then the reliability of exception handling is improved, but the storage space available is severely limited and cannot accommodate complete exception handling routines
Solution Approach 1:
The exception handling system is segmented into two distinct parts: a small dispatcher stored in safe memory that performs initial error checking and coordination, and a larger main exception handler stored in unsafe memory that performs the actual exception processing. This segmentation allows the critical coordination logic to reside in reliable memory while the bulk of the handling routines can utilize the larger unsafe memory space.
3Reliability
If a single exception handler is used, then the device complexity is reduced, but the reliability deteriorates because there is no backup if the handler is corrupted
Solution Approach 1:
The exception handling system is segmented into two distinct parts: a small dispatcher stored in safe memory that performs initial error checking and coordination, and a larger main exception handler stored in unsafe memory that performs the actual exception processing. This segmentation allows the critical coordination logic to reside in reliable memory while the bulk of the handling routines can utilize the larger unsafe memory space.
Solution Approach 2:
The dispatcher performs preliminary verification of the main exception handler's integrity before execution is transferred to it. This preliminary check ensures that the main handler has not been corrupted by memory errors, thereby preventing propagation of errors while maintaining a relatively simple overall structure.
Data Source
AI summary
A method provides exception handling for a computer system. As an error in the computer system's hardware is detected, an exception vector pertaining to the hardware error is determined, and execution flow is transferred to a dispatcher that corresponds/pertains to the exception vector. A specific instance of a plurality of instances of a main exception handler is selected, and the specific instance of the main exception handler is executed. The actual exception handler thus contains two distinct parts, a dispatcher, which is unique and preferably resides in a safe memory region, and a main exception handler, multiple copies of which reside in an unsafe memory region.


