Fast PokeEMU: Scaling generated instruction tests using aggregation and state chaining

Qiuchen Yan, Stephen A McCamant

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Software that emulates a CPU has many applications, but is difficult to implement correctly and requires extensive testing. Since a large number of test cases are required for full coverage, it is important that the tests execute efficiently. We explore techniques for combining many instruction tests into one program to amortize overheads such as booting an emulator. To ensure the results of each test are reflected in a final result, we use the outputs of one instruction test as an input to the next, and adopt the “Feistel network” construction from cryptography so that each step is invertible. We evaluate this approach by applying it to PokeEMU, a tool that generates emulator tests using symbolic execution. The combined tests run much faster, but still reveal most of the same behavior differences as when run individually.

Original languageEnglish (US)
Title of host publicationVEE 2018 - Proceedings of the 2018 International Conference on Virtual Execution Environments
PublisherAssociation for Computing Machinery, Inc
Pages71-83
Number of pages13
Volume53
Edition3
ISBN (Electronic)9781450355797
DOIs
StatePublished - Mar 25 2018
Event14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE 2018 - Williamsburg, United States
Duration: Mar 25 2018Mar 25 2018

Publication series

NameVEE 2018 - Proceedings of the 2018 International Conference on Virtual Execution Environments

Other

Other14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE 2018
CountryUnited States
CityWilliamsburg
Period3/25/183/25/18

Keywords

  • CPU emulators
  • Cross-validation
  • Symbolic binary execution

Fingerprint Dive into the research topics of 'Fast PokeEMU: Scaling generated instruction tests using aggregation and state chaining'. Together they form a unique fingerprint.

  • Cite this

    Yan, Q., & McCamant, S. A. (2018). Fast PokeEMU: Scaling generated instruction tests using aggregation and state chaining. In VEE 2018 - Proceedings of the 2018 International Conference on Virtual Execution Environments (3 ed., Vol. 53, pp. 71-83). (VEE 2018 - Proceedings of the 2018 International Conference on Virtual Execution Environments). Association for Computing Machinery, Inc. https://doi.org/10.1145/3186411.3186417