Using Dynamic Runtime Testing for Rapid Development of Architectural Simulators

  • Authors:
  • Saša Tomić;Adrián Cristal;Osman Unsal;Mateo Valero

  • Affiliations:
  • Barcelona Supercomputing Center (BSC), Barcelona, Spain and Universitat Politècnica de Catalunya (UPC), Barcelona, Spain;Barcelona Supercomputing Center (BSC), Barcelona, Spain and Artificial Intelligence Research Institute (IIIA), National Research Council (CSIC), Barcelona, Spain;Barcelona Supercomputing Center (BSC), Barcelona, Spain;Barcelona Supercomputing Center (BSC), Barcelona, Spain and Universitat Politècnica de Catalunya (UPC), Barcelona, Spain

  • Venue:
  • International Journal of Parallel Programming
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

Architectural simulator platforms are particularly complex and error-prone programs that aim to simulate all hardware details of a given target architecture. Development of a stable cycle-accurate architectural simulator can easily take several man-years. Discovering and fixing all visible errors in a simulator often requires significant effort, much higher than for writing the simulator code in the first place. In addition, there are no guarantees that all programming errors will be eliminated, no matter how much effort is put into testing and debugging. This paper presents dynamic runtime testing, a methodology for rapid development and accurate detection of functional bugs in architectural cycle-accurate simulators. Dynamic runtime testing consists of comparing an execution of a cycle-accurate simulator with an execution of a simple and functionally equivalent emulator. Dynamic runtime testing detects a possible functional error if there is a mismatch between the execution in the simulator and the emulator. Dynamic runtime testing provides a reliable and accurate verification of a simulator, during its entire development cycle, with very acceptable performance impact, and without requiring complex setup for the simulator execution. Based on our experience, dynamic testing reduced the simulator modification time from 12---18 person-months to only 3---4 person-months, while it only modestly reduced the simulator performance (in our case under 20 %).