1 / 20

Improving State Coverage Using Bloom Filters

Improving State Coverage Using Bloom Filters. Jennifer Atkins Jin Hu EECS 578 Fall 2006 The University of Michigan. Outline. Our problem Previous approaches Bloom filters in a nutshell Proposed Method Experiments and Results Wrap-Up. The Problem – State Coverage. Design Space.

Télécharger la présentation

Improving State Coverage Using Bloom Filters

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Improving State Coverage Using Bloom Filters Jennifer Atkins Jin Hu EECS 578 Fall 2006 The University of Michigan

  2. Outline • Our problem • Previous approaches • Bloom filters in a nutshell • Proposed Method • Experiments and Results • Wrap-Up

  3. The Problem – State Coverage . . . . . . . . . Design Space

  4. Previous Approaches . . . . . . . . . Design Space Formal Verification

  5. Previous Approaches . . . . . . . . . Design Space Simulation

  6. 0 1 2 3 4 14 15 5 6 7 8 9 13 10 11 12 . . . Problem Motivation • n-bit Counter • void increment(); • void decrement(); • Example: n = 4 • Example++: n = 32  139 steps  many more steps

  7. Proposed Method • Guided randomized search Repeat Backtrack

  8. Proposed Method • Keep track of visited states • Need data structure such that: • Won’t blow up, memory-wise • Allows fast accessibility • Searching • Inserting

  9. 0 0 0 0 0 0 0 m bits . . . Introducing…Bloom Filters! • “Glorified Hash Table” • k hash functions • Functionality • void insert(state s); • Adds element • bool contains(state s); • return 1 if in filter • return 0 if not in filter • void flush(); • Clears filter v[0] v[1] v[2] v[3] v[4] v[5] v[m-1]

  10. 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 v[0] v[1] v[2] v[3] 8 bits v[4] v[5] v[6] v[7] Bloom Filters: void insert(s) Given States: k=4Hash Functions H1(s)=1 H2(s)=7 H3(s)=2 H4(s)=3

  11. 1 1 1 1 0 0 0 1 1 1 0 1 v[0] v[1] v[2] v[3] 8 bits v[4] v[5] v[6] v[7] Bloom Filters: bool contains(s)  return (1& 1 & 1 & 1)  return (1 & 1 &1 & 1)  return (1 & 1& 1 & 1)  return (1 & 1 &1 &1) k=4Hash Functions H1(s)=1 H2(s)=7 H3(s)=2 H4(s)=3

  12. Bloom Filters: Caveats • False Positives • Must periodically flush bloom filter

  13. Hit Tolerance? Next State Initial State Full? Visited? Reset state Randomize input Insert Flush Backtrack (Detailed) Proposed Method no yes no yes yes no for (i < LOOP_COUNT) our contribution

  14. Experimental Setup • Bloom filter written in C • Simulator used: Vera • Simple design • 4-bit shift register w/added functionality • Less Simple design • Alarm Clock

  15. Results Tolerance = 04  151 @ 25842 Tolerance = 10  149 @ 10352 Tolerance = 05  149 @ 10872 Tolerance = 03  148 @ 8022 Random  148 @ 24602

  16. Tolerance = 02  1254 Tolerance = 03  1260 Tolerance = 05  1222 Tolerance = 10  1181 Random  226 Results

  17. Lessons Learned • C++ and Vera do not mix well • “vera_user.o: read-only file system” • Ilya Wagner (CSE 2765) is a great help for Vera!

  18. Future Improvements & Work • Bloom filters with counters • Each element is a r-bit counter • insert(state s); counter++; • delete(state s); counter--; • Bloom Filter memory optimization • Abstraction heuristics to select and/or cluster state bits

  19. Conclusions • Guided randomization improves coverage • Well-suited for single-stage designs • More refinement needed for multi-stage designs

  20. Thanks For Listening! Questions? Comments?

More Related