Symbolic Instruction Graphs
Overview
Symbolic Instruction Graphs (SIGs) are a technique for the architectural verification of processors. The approach was introduced by A. K. Chandra, V. S. Iyengar, R. V. Jawalekar, M. P. Mullen, I. Nair, and B. K. Rosen in the paper Architectural Verification of Processors Using Symbolic Instruction Graphs, presented at the International Conference on Computer Design (ICCD) in October 1994 [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292]. The technique is cited as a foundational reference within the broader processor implementation verification methodology literature.
Role in Processor Verification
Within the methodology for processor implementation verification (Springer chapter, "A methodology for processor implementation verification"), Symbolic Instruction Graphs are positioned as a symbolic, graph-based approach for verifying that a processor implementation conforms to its architectural specification. The technique supports formal reasoning over instruction-level behavior, complementing other methods discussed in the same survey such as constraint-satisfaction-based test program generation, architecture validation, and symbolic model checking [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292].
Related Approaches Cited Alongside SIGs
The processor verification methodology references Symbolic Instruction Graphs in the context of several complementary techniques, including:
- Symbolic Model Checking (McMillan, Kluwer, 1993) and the SMV System (McMillan, CMU, 1992) [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292].
- Constraint Solving for Test Case Generation (Chandra and Iyengar, ICCD-92, 1992) and Constraint Satisfaction for Test Program Generation (Lewin et al., 1995) [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292].
- Architecture Validation for Processors (Ho, Han Yang, Horowitz, and Dill, ISCA 1995) [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292].
- Automatic Test Program Generation for Pipelined Processors (Iwashita, Kowatari, Nakata, and Hirose, ICCAD 1994) [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292].
- Coverage Driven Processor Bug Classification (Abarbanel, Lichtenstein, Malka, and Ur, DAC 1996) [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292].
Significance
Symbolic Instruction Graphs are significant as one of the early symbolic techniques to apply graph-structured representations to architectural-level processor verification. By treating instruction semantics symbolically rather than enumerating concrete test cases, the approach enables broader coverage of architectural state and supports rigorous comparison between a specification and its implementation [chunk: f6a19b46-f399-4509-b8e4-761ab01cb292].
Key Reference
- A. K. Chandra, V. S. Iyengar, R. V. Jawalekar, M. P. Mullen, I. Nair, B. K. Rosen, Architectural Verification of Processors Using Symbolic Instruction Graphs, Proceedings of the International Conference on Computer Design, October 1994.