18.11 Repository Directory Mapping

<< 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).