Skip to content
STIMSMITH

Instruction Distillation

Technique

Instruction distillation is a technique used in RTL-level hardware (CPU) fuzzing to shorten the length of generated input instruction sequences while preserving their effectiveness for bug detection and coverage exploration. It is implemented within the RTL fuzzer INSTILLER via a variant of ant colony optimization called VACO, and has been shown to produce substantially shorter inputs, higher coverage, and more detected mismatches compared with prior work such as DiFuzzRTL.

First seen 5/24/2026
Last seen 7/11/2026
Evidence 4 chunks
Wiki v2

WIKI

Instruction Distillation

Instruction distillation is a technique for reducing the length of instruction sequences used as inputs in RTL-level hardware fuzzing while preserving their usefulness for bug detection and coverage exploration.[1] In the context of the RTL fuzzer INSTILLER—short for Instruction Distiller—instruction distillation is used to keep fuzzing inputs short because prior CPU fuzzing approaches can generate increasingly long RTL input instruction sequences, and longer inputs are not necessarily more effective for fuzzing.[1]

Background

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

2 connections
INSTILLER ← uses 100% 3e
INSTILLER distills input instructions using VACO to keep input length short.
INSTILLER ← implements 1e
Instiller implements the Instruction Distillation technique to keep input instruction length short and efficient.','description':'Instiller is named after its core technique of distilling input instructions.','confidence':0.97},{'src_label':'Tool','src_name':'Instiller','relation_type':'USES','dst_label':'Technique','dst_name':'Ant Colony Optimization','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'an RTL fuzzer based on ant colony optimization (ACO)','claim':'Instiller uses Ant Colony Optimization as its underlying algorithmic framework.','description':'ACO is the foundational optimization technique upon which Instiller is built.','confidence':0.98},{'src_label':'Tool','src_name':'Instiller','relation_type':'USES','dst_label':'Technique','dst_name':'Variant Ant Colony Optimization','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'it distills input instructions with a variant of ACO (VACO)','claim':'Instiller uses a Variant of ACO (VACO) specifically to distill input instructions.','description':'VACO is the specific variant of ACO used by Instiller for instruction distillation.','confidence':0.98},{'src_label':'Tool','src_name':'Instiller','relation_type':'IMPLEMENTS','dst_label':'Technique','dst_name':'RTL Fuzzing','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'we propose Instiller (Instruction Distiller), an RTL fuzzer','claim':'Instiller implements RTL Fuzzing as its primary testing methodology.','description':'Instiller is described as an RTL fuzzer targeting CPU hardware.','confidence':0.97},{'src_label':'Tool','src_name':'Instiller','relation_type':'USES','dst_label':'Concept','dst_name':'Hardware Seed Selection','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'we propose hardware-based seed selection and mutation strategies','claim':'Instiller uses hardware-based seed selection to improve fuzzing performance.','description':'Hardware seed selection is one of the strategies proposed to enhance Instiller performance.','confidence':0.95},{'src_label':'Tool','src_name':'Instiller','relation_type':'USES','dst_label':'Concept','dst_name':'Hardware Mutation Strategy','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'we propose hardware-based seed selection and mutation strategies','claim':'Instiller uses hardware-based mutation strategies to improve fuzzing performance.','description':'Hardware mutation strategy is one of the strategies proposed to enhance Instiller performance.','confidence':0.95},{'src_label':'Tool','src_name':'Instiller','relation_type':'USES','dst_label':'Concept','dst_name':'Interrupt and Exception Injection','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'Instiller solves the problem of inserting interruptions and exceptions in generating the inputs','claim':'Instiller uses interrupt and exception injection to simulate realistic interruptions during fuzzing.','description':'Instiller addresses a gap in prior work by properly injecting interrupts and exceptions into generated inputs.','confidence':0.96},{'src_label':'Tool','src_name':'Instiller','relation_type':'EVALUATES','dst_label':'Concept','dst_name':'CPU Bug Detection','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'17.0% more mismatches are detected by Instiller','claim':'Instiller is evaluated for its effectiveness in CPU bug detection.','description':'Instiller targets CPU bug detection and is measured by the number of mismatches it detects.','confidence':0.95},{'src_label':'Tool','src_name':'Instiller','relation_type':'EVALUATES','dst_label':'Concept','dst_name':'CPU Core','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'conduct extensive experiments against state-of-the-art fuzzing work in real-world target CPU cores','claim':'Instiller is evaluated against real-world target CPU cores.','description':'Instiller targets real CPU core implementations at the RTL level.','confidence':0.95},{'src_label':'Tool','src_name':'Instiller','relation_type':'COMPARES_WITH','dst_label':'Tool','dst_name':'DiFuzzRTL','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'Instiller has 29.4% more coverage than DiFuzzRTL','claim':'Instiller is compared against DiFuzzRTL and outperforms it in coverage and mismatch detection.','description':'DiFuzzRTL is the state-of-the-art baseline against which Instiller is benchmarked.','confidence':0.97},{'src_label':'Tool','src_name':'Instiller','relation_type':'USES','dst_label':'Concept','dst_name':'Register Transfer Level','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'an RTL fuzzer based on ant colony optimization','claim':'Instiller operates at the Register Transfer Level for hardware fuzzing.','description':'Instiller works on RTL inputs, which are register transfer level descriptions of hardware.','confidence':0.96},{'src_label':'Technique','src_name':'Variant Ant Colony Optimization','relation_type':'DERIVED_FROM','dst_label':'Technique','dst_name':'Ant Colony Optimization','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'it distills input instructions with a variant of ACO (VACO)','claim':'Variant Ant Colony Optimization is derived from Ant Colony Optimization.','description':'VACO is a modification of the standard ACO algorithm tailored for instruction distillation.','confidence':0.97},{'src_label':'Technique','src_name':'Instruction Distillation','relation_type':'USES','dst_label':'Technique','dst_name':'Variant Ant Colony Optimization','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'it distills input instructions with a variant of ACO (VACO)','claim':'Instruction Distillation uses Variant Ant Colony Optimization as its core algorithm.','description':'VACO drives the instruction distillation process in Instiller.','confidence':0.96},{'src_label':'Technique','src_name':'RTL Fuzzing','relation_type':'USES','dst_label':'Concept','dst_name':'Register Transfer Level','evidence_chunk_ids':['8d39cccc-1a05-4d64-85ce-152478b1e950'],'quote':'the length of register transition level (RTL) input instructions keeps growing','claim':'RTL Fuzzing operates on Register Transfer Level input instructions.','description':'RTL Fuzzing is defined by its use of register transfer level hardware descriptions as inputs.','confidence':0.95}]},

CITATIONS

8 sources
8 citations — click to expand
[1] Instruction distillation is a technique for reducing the length of instruction sequences used as inputs in RTL-level hardware fuzzing while preserving their usefulness for bug detection and coverage exploration. INSTILLER: Towards Efficient and Realistic RTL Fuzzing
[2] INSTILLER is an RTL fuzzer based on ant colony optimization (ACO) and uses a variant of ACO called VACO to distill input instructions. INSTILLER: Towards Efficient and Realistic RTL Fuzzing
[3] Previous CPU RTL fuzzing work produced input instruction sequences that grew in length over time, and longer inputs were ineffective for fuzzing. INSTILLER: Towards Efficient and Realistic RTL Fuzzing
[4] INSTILLER addresses realistic insertion of interruptions and exceptions in fuzzing inputs, and uses hardware-based seed selection and mutation strategies. INSTILLER: Towards Efficient and Realistic RTL Fuzzing
[5] INSTILLER achieves 29.4% more coverage than DiFuzzRTL and detects 17.0% more mismatches in evaluations on real-world target CPU cores. INSTILLER: Towards Efficient and Realistic RTL Fuzzing
[6] VACO generates 79.3% shorter input instructions than DiFuzzRTL, and instruction distillation leads to a 6.7% average increase in execution speed. INSTILLER: Towards Efficient and Realistic RTL Fuzzing
[7] Authors of the INSTILLER paper: Gen Zhang, Pengfei Wang, Tai Yue, Danjun Liu, Yubei Guo, Kai Lu. INSTILLER: Towards Efficient and Realistic RTL Fuzzing
[8] The INSTILLER paper is classified under cs.CR (Cryptography and Security) and cs.SE (Software Engineering). INSTILLER: Towards Efficient and Realistic RTL Fuzzing