3 Certifying RISC Machine Code Safe from Aliasing
2016
Abstract
Sometimes machine code turns out to be a better target for verification than source code. RISC machine code is especially advantaged with respect to source code in this regard because it has only two instructions that access memory. That architecture forms the basis here for an inference system that can prove machine code safe against 'hardware aliasing', an effect that occurs in embedded systems. There are programming memes that ensure code is safe from hardware aliasing, but we want to certify that a given machine code is provably safe.
References (11)
- Michael Barr. Programming Embedded Systems in C and C++. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 1st edition, 1998.
- J. P. Bowen. Formal specification of the ProCoS/Safemos instruction set. Micoprocessors and Microsystems, 14(10):637-643, December 1990.
- J. P. Bowen and P. T. Breuer. Decompilation. In H. van Zuylen, editor, The REDO Com- pendium: Reverse Engineering for Software Maintenance, chapter 10, pages 131-138. John Wiley & Sons, 1993.
- P. T. Breuer and J. P. Bowen. Decompilation: The enumeration of types and grammars. ACM Transactions on Programming Languages and Systems (TOPLAS), 16(5):1613-1647, September 1994.
- P. T. Breuer and J. P. Bowen. Typed assembler for a RISC crypto-processor. In Proc. ES- SOS'12: Intl. Symp. on Engineering Secure Software and Systems, number 7159 in LNCS, pages 22-29. Springer, February 2012.
- P. T. Breuer and J. P. Bowen. A fully homomorphic crypto-processor design: Correctness of a secret computer. In Proc. ESSOS'13: Intl. Symp. on Engineering Secure Software and Systems, number 7781 in LNCS. Springer, February 2013.
- F. H. Fischer, V. Sindalovsky, and S. A. Segan. Memory aliasing method and apparatus, August 20 2002. US Patent 6,438,672.
- Bruce Jacob, 2004. http://www.eng.umd.edu/˜blj/RiSC/RiSC-isa.pdf.
- D. A. Patterson. Reduced instruction set computers. Communications of the ACM, 28(1):8- 21, January 1985.
- T. Sato. Speculative resolution of ambiguous memory aliasing. In Innovative Architecture for Future Generation High-Performance Processors and Systems, pages 17-26. IEEE, 1997.
- Malcolm J. Wing and Edmund J. Kelly. Method and apparatus for aliasing memory data in an advanced microprocessor, July 20 1999. US Patent 5,926,832.