Short Review – Eliminating microarchitectural dependency from Architectural Vulnerability
There is a paper that is very closely related to our work on RFV. Question is how do they differ?
First terminology. Microarchitecture-level masking is hardware-dependent portion whereas architecture-level masking is software-dependent. Then AVF captures both, while their PVF is claimed to capture only the latter. “Therefore, PVF is impacted only by changes to the binary or to input data and not by changes in hardware.” That’s it. It does not really say about how to statically estimate the PVF without actually running the program.
But this paper is important in that it establishes the needs for our static estimation techniques.
The architectural vulnerability factor (AVF) of a hardware structure is the probability that a fault in the structure will affect the output of a program. AVF captures both microarchitectural and architectural fault masking effects; therefore, AVF measurements cannot generate insight into the vulnerability of software independent of hardware. To evaluate the behavior of software in the presence of hardware faults, we must isolate the software-dependent (architecture-level masking) portion of AVF from the hardware-dependent (microarchitecture-level masking) portion, providing a quantitative basis to make reliability decisions about software independent of hardware. In this work, we demonstrate that the new program vulnerability factor (PVF) metric provides such a basis: PVF captures the architecture-level fault masking inherent in a program, allowing software designers to make quantitative statements about a program’s tolerance to soft errors. PVF can also explain the AVF behavior of a program when executed on hardware; PVF captures the workload-driven changes in AVF for all structures. Finally, we demonstrate two practical uses for PVF: choosing algorithms and compiler optimizations to reduce a program’s failure rate.