A simple method for extracting models from protocol code

26Citations
Citations of this article
26Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The use of model checking for validation requires that models of the underlying system be created. Creating such models is both difficult and error prone and as a result, verification is rarely used despite its advantages. In this paper, we present a method for automatically extracting models from low level software implementations. Our method is based on the use of an extensible compiler system, xg++, to perform the extraction. The extracted model is combined with a model of the hardware, a description of correctness, and an initial state. The whole model is then checked with the Murφ model checker. As a case study, we apply our method to the cache coherence protocols of the Stanford FLASH multiprocessor. Our system has a number of advantages. First, it reduces the cost of creating models, which allows model checking to be used more frequently. Second, it increases the effectiveness of model checking since the automatically extracted models are more accurate and faithful to the underlying implementation. We found a total of 8 errors using our system. Two errors were global resource errors, which would be difficult to find through any other means. We feel the approach is applicable to other low level systems.

Cite

CITATION STYLE

APA

Lie, D., Chou, A., Engler, D., & Dill, D. L. (2001). A simple method for extracting models from protocol code. In Conference Proceedings - Annual International Symposium on Computer Architecture, ISCA (pp. 192–203). https://doi.org/10.1145/384285.379263

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free