Teaching parameter passing by example using thunks in C and C++
SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education
Evolving algebras 1993: Lipari guide
Specification and validation methods
Symbolic execution and program testing
Communications of the ACM
A universal technique for fast and flexible instruction-set architecture simulation
Proceedings of the 39th annual Design Automation Conference
Description and Simulation of Microprocessor Instruction Sets Using ASMs
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
Composition and Submachine Concepts for Sequential ASMs
Proceedings of the 14th Annual Conference of the EACSL on Computer Science Logic
Abstract State Machines: A Method for High-Level System Design and Analysis
Abstract State Machines: A Method for High-Level System Design and Analysis
Processor Modeling for Hardware Software Codesign
VLSID '99 Proceedings of the 12th International Conference on VLSI Design - 'VLSI for the Information Appliance'
Simulation of Computer Architectures: Simulators, Benchmarks, Methodologies, and Recommendations
IEEE Transactions on Computers
MiBench: A free, commercially representative embedded benchmark suite
WWC '01 Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop
The ArchC architecture description language and tools
International Journal of Parallel Programming
The design and implementation of VAMPIRE
AI Communications - CASC
IEEE Computer Architecture Letters
Computer Organization and Design, Fourth Edition, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design)
Verification and validation of simulation models
Winter Simulation Conference
Using the TPTP language for writing derivations and finite interpretations
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
A unified processor model for compiler verification and simulation using ASM
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
Hi-index | 0.00 |
We present the CASM language, an abstract state machine (ASM) based modeling language originally designed for verifying compiler backends. We demonstrate the expressiveness by describing an instruction set simulator (ISS) for MIPS in approximately 700 lines of code. Further we present a refinement of the models to cycle-accurately describe two implementations of the classic 5-stage MIPS pipeline. Utilizing symbolic execution allows us to prove semantic equivalence of the pipeline implementations and the instruction set description. Finally we compile the models to C++ and provide a small runtime to create a system simulator achieving a performance of approx. 1 MHz in MiBench and SPECInt2000 benchmarks.