|
<< Click to Display Table of Contents >> Navigation: ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 18 – Fault Dispatcher & Precise Exceptions > 18.11 Repository Directory Mapping |
The fault dispatch subsystem spans several library directories:
Directory |
Key Files |
Responsibility |
|---|---|---|
faultLib/ |
FaultDispatcher.h (~449 lines), PendingEvent_Refined.h (~420 lines) |
Central event authority, unified event structure |
exceptionLib/ |
ExceptionClass_EV6.h, PendingEventKind.h, ExceptionFactory_inl.h (~150 lines), ExceptionMapping_inl.h |
Classification enums, factory methods, ExceptionClass → PalVectorId mapping |
palLib_EV6/ |
PalVectorId_refined.h, PalVectorTable_final.h, Pal_Service.h, PAL_core.h |
PAL vector IDs, vector table, PAL service class, PAL constants |
cpuCoreLib/ |
AlphaCPU.h (enterPalMode, checkInterrupts, runOneInstruction), AlphaPipeline.h (stage_WB fault check, flushYoungerSlots) |
PAL mode entry, interrupt sampling, pipeline fault delivery |
coreLib/ |
IRQPendingState.h (~378 lines), InterruptRouter.h (~505 lines) |
Per-CPU interrupt tracking, interrupt routing and IPI dispatch |
Total fault dispatch subsystem: Approximately 1,932 lines across the six core exception system headers (FaultDispatcher, PendingEvent, ExceptionFactory, ExceptionClass_EV6, IRQPendingState, InterruptRouter). Supporting files in palLib_EV6/ add the PAL vector table and service class. The pipeline integration (fault detection in stage_EX(), delivery in stage_WB()) is woven into the existing AlphaPipeline implementation.
See Also: Chapter 14 – Execution Domains (“Boxes”) (detection points in MBox, EBox, FBox); Chapter 15 – Memory System Implementation Details (memory fault handling); Chapter 17 – Address Translation, TLB, and PTE (TLB miss faults); Chapter 19 – Interrupt Architecture & IPI (interrupt delivery path).