Fast, All-Purpose State Storage
Peter C. Dillinger and Panagiotis Manolios. SPIN 2009, 16th International SPIN Workshop on Model Checking of Software © Springer
Abstract
Existing techniques for approximate storage of visited states in
a model checker are too special-purpose and too
DRAM-intensive. Bit-state hashing, based on Bloom filters, is good for
exploring most of very large state spaces, and hash compaction is good
for high-assurance verification of more tractable problems. We
describe a scheme that is good at both, because it adapts at run time
to the number of states visited. It does this within a fixed memory
space and with remarkable speed and accuracy. In many cases, it is
faster than existing techniques, because it only ever requires one
random access to main memory per operation; existing techniques
require several to have good accuracy. Adapting to accommodate more
states happens in place using streaming access to memory; traditional
rehashing would require extra space, random memory accesses, and hash
computation. The structure can also incorporate search stack matching
for partial-order reductions, saving the need for extra resources
dedicated to an additional structure. Our scheme is well-suited for a
future in which random accesses to memory are more of a limiting
factor than the size of memory.
PDF (207K) © Springer