Formalization and Analysis of a Solution to the PCI 2.1 Bus Transaction Ordering Problem

  • Authors:
  • Abdel Mokkedem;Ravi M. Hosabettu;Michael D. Jones;Ganesh C. Gopalakrishnan

  • Affiliations:
  • Department of Computer Science, University of Utah, Salt Lake City, UT 84112-9205, USA. mokkedem@cs.utah.edu;Department of Computer Science, University of Utah, Salt Lake City, UT 84112-9205, USA. hosabett@cs.utah.edu;Department of Computer Science, University of Utah, Salt Lake City, UT 84112-9205, USA. mjones@cs.utah.edu;Department of Computer Science, University of Utah, Salt Lake City, UT 84112-9205, USA. ganesh@cs.utah.edu

  • Venue:
  • Formal Methods in System Design - Special issue on formal methods for computer-added design
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

The transaction ordering problem of the original PCI 2.1 standard busspecification violates the desired correctness property of maintainingthe so called ‘Producer/Consumer’ relationship between writers andreaders of data. This violation stems mainly from the so called completion stealing problem, first identified and solved by Corellaet al. [4], and supported by a formal paper andpencil argument. In this paper, we develop a flexible graph theorylibrary in PVS for modeling computer bus structures, formalize the PCI2.1 protocol containing the solution of [4] in it,and mechanically prove the absence of completion stealing. Next, wedefine the Producer/Consumer property in PVS and sketch its mechanicalproof. Noting the complexity of this proof effort (unfinished asyet), we explore a combination of theorem proving and model-checkingin which the model used for model-checking is made tractable byexploiting the formal theorems established during theorem-proving aswell as several intuitively justified assumptions. The theorem-proving infrastructure we have built for modelingCPU interconnect structures is highly reusable.Our work is one example of a natural division of labor betweentheorem-proving and model-checking in tackling system-levelverification problems under realistic time budgets.