Proceedings of ISP RAS


On the Implementation of a Formal Method for Verification of Scalable Cache Coherent Systems

V. Burenkov (BMSTU, Moscow; MCST, Moscow)

Abstract

This article analyzes existing methods of verification of cache coherence protocols of scalable systems. Analyzed methods include model checking, deductive verification, methods that extend these two methods: compositional verification methods and abstraction-based methods. Based on the research literature, the paper describes a method of formal parameterized verification of safety properties of cache coherence protocols. The method is based on syntactical transformations of Promela models. First, a mathematical model (transition system) of cache coherence protocols is described. Second, the corresponding abstract model is presented according with the concrete model transformations. These transformations lead to abstract model that is independent of the number of processors in the system under verification. The paper proposes a design of a verification system for cache coherence protocols. The main part of the design is a Promela translator and abstract transformations subsystem that obtains an internal representation of a Promela model and modifies it according to the transformations. The article analyzes the method in terms of development and examination of the corresponding Promela model of the German cache coherence protocol. Examples of the syntactic transformations are shown. In order to demonstrate the method’s ability to find bugs, verification results of two buggy versions of the German protocol obtained from the literature are presented and analyzed. Drawbacks of the method are presented. In particular, the usage of a limited Promela subset leads to unnecessary complications and unnatural models. The paper discusses extension and automation of the method needed to adapt it to verification challenges of the Elbrus microprocessors.

Keywords

formal verification; model checking; deductive verification; cache coherence protocol; Elbrus

Edition

Proceedings of the Institute for System Programming, vol. 27, issue 3, 2015, pp. 183-196.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2015-27(3)-13

Full text of the paper in pdf Back to the contents of the volume