Reducing Manual Abstraction in Formal Verification of Out-of-Order Execution

Abstract

Several methods have recently been proposed for verifying processors with out-of-order execution. These methods use intermediate abstractions to decompose the verification process into smaller steps. Unfortunately, the process of manually creating intermediate abstractions is very laborious. We present an approach that dramatically reduces the need for an intermediate abstraction, so that only the scheduling logic of the implementation is abstracted. After the abstraction, we apply an enhanced incremental-flushing approach to verify the remaining circuitry by comparing the processor description against itself in a slightly simpler configuration. By induction, we demonstrate that any reachable configuration is equivalent to the simplest possible configuration. Finally, we prove correctness on the simplest configuration. The approach is illustrated with a simple example of an out-of-order execution core.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 2002
Accession Number
ADA400402

Entities

People

  • David L. Dill
  • Jens U. Skakkebaek
  • Robert B. Jones

Organizations

  • Stanford University

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Algorithms
  • Computational Complexity
  • Computers
  • Computing System Architectures
  • Instruction Set Architecture
  • Instructions
  • Microarchitecture
  • Pipelines
  • Scheduling (Production)
  • Sequences
  • Simulations
  • Specifications
  • Stalling
  • Transitions
  • Verification

Fields of Study

  • Computer science

Readers

  • Parallel and Distributed Computing.
  • Systems Analysis and Design