100 likes | 245 Views
A Reversible MC68HC11 Simulator and Its Empirical Computational Complexity Charles Vermette CIS 4914 Senior Project August 7, 2001. Problem Hard data is needed to prove theoretical behavior of simulation algorithms on a real architecture. Solution
E N D
A Reversible MC68HC11 Simulator and Its Empirical Computational Complexity Charles Vermette CIS 4914 Senior Project August 7, 2001
Problem • Hard data is needed to prove theoretical behavior of simulation algorithms on a real architecture. • Solution • Simulate a real irreversible machine on a real reversible architecture and record time/space complexity. • Motivation • Why? • Work will aid in research into reversible computing. • Why me? • Interested in subject matter. • Some previous experience.
Literature Sources • C. H. Bennett. Logical reversibility of computation. IBM J. Research and Development, 17(6):525-532, 1973. • C.H. Bennett. Time/space trade-offs for reversible computation. SIAM J. Computing, 18(4):766-776, 1989. • M. P. Frank. Reversibility for Efficient Computing. (unpublished manuscript), 1999. • R. Y. Levine and A. T. Sherman. A note on Bennett’s time-space tradeoff for reversible computation. SIAM J. Computation, 19(4):673-677, 1990. • M. Li, J. Tromp, P. Vitány.Reversible Simulation of Irreversible Computation. Physica D, 120:168-176, 1998. • Motorola, Inc. M68HC11 E Series Programming Reference Guide. (product information pamphlet), 2000.
Work Completed • Test program written and compiled. • integer Floyd-Warshall algorithm. • using gcc hc11 port http://home.worldnet.fr/~stcarrez/m68hc11_port.html • Op code counting program written. • outputs op codes used in program dump, total number of op codes and total unique op codes. • Binary to R language translator written. • converts a binary dump of a program segment to an R language array declaration statement • Simulation step code written. • All op codes detected have had simulation routines written. • note: only 45/64 ops in current version due to accidental deletion
Garbage Information Layout 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ccr | garbage | pc info pc info [7..0]: 7 - branch taken flag 6 - jump taken flag 5 - page x flag 2..0 - instruction length
C to HC11 Compilation Statistics Source file: apsp.c Length: 13 loc, 273 bytes Text Segment Dump: apsp.b Length: 897 bytes Output from opcount: Page 1 5 6 8 e 20 26 27 2d 2f 30 32 33 35 36 37 38 39 3c 3e 4a 4c 4f 5a 5f 6f 7e 80 83 8c 8e 8f a6 bd c3 cc ce d3 dc dd de df e3 ec ed ee ff Page 2 8 30 38 3c 8f a7 ce de df e3 ec ed Page 3 83 a3 ee ef Page 4 ee ef Total opcodes in file: 471 Distinct opcodes in file: 64
Program Embedding • Use objcopy utility to produce binary dump of text segment • Run bin2ra to convert the dump into an R language array • Insert the output of bin2ra into the simulator source file • Binary becomes R code • $12$FF$05 (defarray [name] • 18 255 5 • )
Conclusions • Bugs in R compiler were exposed and corrected • Utility of R as a general purpose language was supported • New R language constructs were discussed • Work was begun to test behavior of Bennett89
Future Work • Recover lost op code routines. • Test op code routines. • Code simulation segment routine. • Get complexity measurements.