CSR-transition coverage
ConceptCSR-transition coverage (CTC) is a hardware-fuzzing coverage metric introduced by ProcessorFuzz. It treats changes in selected Control and Status Registers (CSRs) between consecutive instructions as signals of processor Finite State Machine (FSM) state changes, and uses those transitions as the feedback signal to guide coverage-guided fuzzing of processor designs.
WIKI
Overview
CSR-transition coverage (CTC) is a coverage metric for processor fuzzing, introduced by the ProcessorFuzz paper. The metric monitors transitions in Control and Status Registers (CSRs), which are part of the ISA specification, and uses those transitions to decide whether a generated test input is "interesting" during coverage-guided fuzzing. It is referred to in the paper as the "novel CSR-transition coverage (CTC) metric" and is one of the two central contributions of ProcessorFuzz (the other being the use of ISA simulation to determine whether an input is interesting).
The underlying intuition is that a processor is effectively a complex Finite State Machine (FSM) whose state is partly exposed through CSRs. A processor "is effectively a complex Finite State Machine (FSM) that consists of a large number of states," and "exploring different states in 'processor FSM' is the key to identifying bugs in the processor." Because CSRs are ISA-defined registers that "have direct control over the current processor state" and "expose information (e.g., state of the floating-point unit) about the current architectural state of the processor," a change in a CSR's value is taken as a sign that the processor has moved to a new architectural state and therefore merits further exploration.
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →