FADE: A programmable filtering accelerator for instruction-grain monitoring

S. Fytraki, E. Vlachos, O. Kocberber, B. Falsafi, B. Grot

Research output: Chapter in Book/Report/Conference proceedingConference contribution


Instruction-grain monitoring is a powerful approach that enables a wide spectrum of bug-finding tools. As existing software approaches incur prohibitive runtime overhead, researchers have focused on hardware support for instruction-grain monitoring. A recurring theme in recent work is the use of hardware-assisted filtering so as to elide costly software analysis. This work generalizes and extends prior point solutions into a programmable filtering accelerator affording vast flexibility and at-speed event filtering. The pipelined microarchitecture of the accelerator affords a peak filtering rate of one application event per cycle, which suffices to keep up with an aggressive OoO core running the monitored application. A unique feature of the proposed design is the ability to dynamically resolve dependencies between unfilterable events and subsequent events, eliminating data-dependent stalls and maximizing accelerator's performance. Our evaluation results show a monitoring slowdown of just 1.2-1.8x across a diverse set of monitoring tools.
Original languageUndefined/Unknown
Title of host publicationHigh Performance Computer Architecture (HPCA), 2014 IEEE 20th International Symposium on
Number of pages12
Publication statusPublished - 1 Feb 2014


  • pipeline processing
  • program debugging
  • programmable filters
  • software performance evaluation
  • software tools
  • system monitoring
  • FADE
  • OoO core
  • accelerator microarchitecture
  • accelerator performance
  • bug-finding tools
  • data-dependent stalls
  • hardware-assisted filtering
  • instruction-grain monitoring
  • monitoring tools
  • peak filtering rate
  • programmable filtering accelerator
  • runtime overhead
  • software analysis
  • subsequent events
  • unfilterable events
  • Acceleration
  • Benchmark testing
  • Filtering
  • Hardware
  • Monitoring
  • Runtime
  • Software

Cite this