Abstraction Discovery and Refinement for Model Checking Partially Ordered State Spaces

Lead Research Organisation: University of Oxford
Department Name: Computer Science

Abstract

Integrated electronic chips, such as the processor in your laptop, are among the most complex artifacts ever devised by humans. They consist of many millions of interconnected transistors, all working together to run programs. The engineering design of these chips is extremely challenging, and very difficult to get right. Checking that a modern electronics design will produce a chip that does what it's supposed to do occupies up to 80% of the effort in designing a new chip and requires months or years of computer simulation using large banks of computers.Formal verification is an approach to this problem that aims to improve the quality of chip designs using logical reasoning instead of simulation. A mathematical model of the chip design is constructed, and mathematical proofs are done to show that the model describes just those behaviours that we wish the chip itself to have. These models and proofs are usually very complex - far too big for pencil-and-paper mathematics - and specialised computer software is used for them.With formal verification, the functioning of a chip can often be tested and errors discovered far more thoroughly and with much less effort than by simulating it. But there is a problem with this approach too: an accurate and fully detailed mathematical model of a modern chip design would itself be vastly too large and complex to represent and do proofs about, even using state of the art software.An approach to solving this problem is to let the mathematical models we use be abstractions, or simplifications, of the chip designs they represent. Instead of modelling the design in full detail, we represent only its salient features - only those aspects of it which, if got wrong, will produce an error. An abstract model can be much smaller than a fully detailed one, and so be much easier to handle.The difficulty with this method is coming up with an appropriate abstraction. If the abstraction throws away too much information about the design, then it may not say enough about its behaviour to establish that the design does the expected thing. Even worse, such an oversimplification may give a false assurance that the design is right. On the other hand, if we retain too much information about the design, then the model may be too big to be tractable. The problem of finding a good abstraction in general is very difficult and in practice often requires a great deal of human ingenuity and insight.It would be much better to have a way to find good abstractions automatically. One idea is to begin with a fairly crude abstraction, one that simplifies a great deal. If doing proofs with this reveals an error, then we check if there really is an error in the actual design, or if the problem is just an artefact of oversimplification in our model. (There are ways to check this efficiently.) If the error is real, we have found a problem with our design and can repair it. If the error is spurious, then it can give us information that will allow us to refine our abstraction by adding more of the right kind of design detail to it to get a more accurate one. Repeating this process arrives, we hope, at a tractable abstraction that is sufficient for checking our design.This basic idea has many variants and technical subtleties, and there is a rich literature of advanced research on this topic. This project at Oxford will make a contribution to this research by looking at ways of constructing abstractions in a specific modelling and proof framework called Symbolic Trajectory Evaluation (STE). This is one of the most practical formal verification methods; it is used, for example, by Intel. STE provides an especially rich setting for abstractions, but so far most abstractions in STE have been created manually - by experts and with much effort. This research will develop a new abstraction refinement method for STE that will exploit its full potential and make it much easier forengineers to use effectively.

Publications

10 25 50
 
Description Computer microprocessor chips are among the most complex artifacts ever devised by humans. They consist of many millions of interconnected transistors, which must all be working perfectly together to run programs. The engineering design of these chips is extremely challenging-and very difficult to get right. Checking that a modern processor design does what its supposed to do occupies up to 80% of the effort in designing a new chip, and requires months or years of computer simula- tion using large banks of computers.

Formal verification is an approach to this problem that improves the quality of chip designs using logi- cal reasoning instead of simulation. A mathematical model of the chip design is constructed, and mathemati- cal proofs are done to show that the model describes just those behaviours that we wish the chip itself to have. These models and proofs are very complex-and much too big for pencil-and-paper mathematics-so highly so- phisticated computer software must be used.

With formal verification, the functioning of a chip can often be tested and errors discovered far more thor- oughly and with much less effort than by simulating it. But there is a problem with this approach too: a fully detailed mathematical model of a modern chip design is itself vastly too large and complex to represent and do proofs about, even using state of the art software.

An approach to solving this problem is to let the mathematical models we use be abstractions, or simplifications, of the chip designs they represent. Instead of modelling the design in full detail, we represent only its salient features-only those aspects needed to catch errors. (The precise mathematical definition of 'abstrac- tion' in this context is fairly technical.) An abstract model can be much smaller than a fully detailed one, and so be much easier to handle.

The difficulty with this method is coming up with an appropriate abstraction. If the abstraction throws away too much information, then it may not say enough about its behaviour to establish that the design is right. Even worse, such an oversimplification may give a false assurance that the design is right. But if we retain too much information, the model may be too big to be tractable. The problem of finding a good abstraction in general is very difficult, and an extremely active and centrally important research topic in this field.

Symbolic Trajectory Evaluation provides an especially rich setting for representing abstractions. But devising these abstractions has always required difficult and creative manual effort by experts. EPSRC project EP/E026745/1 at Oxford developed a method and algorithm for automatically finding candidate abstractions for symbolic trajectory evaluation. This was complemented by a number of computational techniques for adjusting the level of the abstractions found to seek a good fit with the problem. The project employed a research assistant for one year and supported a Doctoral student, Sara Adams, who completed her dissertation and went on to a career at Google.

Our main results were published at FMCAD 2007, the top peer-reviewed conference in hardware formal verification, where we won a best paper award. The work comprises both theory and experimental results, which have been obtained using a prototype software implementation of our algorithm. Using this we have tested our technique on small to medium sized examples of our own devising.
Exploitation Route We have carried forward our research results by investigating the fit between the technical capabilities we developed and industrial practice. This translational work was done under projects funded through the EPSRC Knowledge Transfer Secondment scheme in 2010-2011. These activities identified and characterised the methodological gaps that need to be filled to bring our results into industrial practice at at least one major commercial microelectronics company. Further technical work to fill the gaps is ongoing.
Sectors Digital/Communication/Information Technologies (including Software),Electronics