A Reversible MC68HC11 Simulator and Its Empirical Computational Complexity Charles Vermette CIS 4914 Senior Project August 7, 2001.

Slides:



Advertisements
Similar presentations
Chapter 1 Background System Software Chih-Shun Hsu
Advertisements

Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Program Flow Charting How to tackle the beginning stage a program design.
Program Flow Charting How to tackle the beginning stage a program design.
1 Lab Session-IV CSIT-120 Fall 2000 Precedence Rules Machine Language Programming The “Micro” Machine The “Micro” Simulator The “Micro” Translator (Thanks.
1 RISC Machines l RISC system »instruction –standard, fixed instruction format –single-cycle execution of most instructions –memory access is available.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
ECE 265 – LECTURE 9 PROGRAM DESIGN 8/12/ ECE265.
Homework Reading Programming Assignments
CPS120: Introduction to Computer Science
CIS Computer Programming Logic
Spring 2007W. Rhett Davis with slight modification by Dean Brock UNCA ECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 11: Memories,
Dr Masri Ayob TK 2633: Microprocessor & Interfacing Lecture 7: Assembly Language.
A Simple Two-Pass Assembler
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Chapter 1: Introduction to Computers and Programming.
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
What is Programming? A program is a list of instructions that is executed by a computer to accomplish a particular task. Creating those instructions is.
Kirk Scott Computer Science The University of Alaska Anchorage 1.
The MIPS Processor Computer Organization The MIPS Processor Appendix A.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
1 Overview of Programming Principles of Computers.
Compilers and Interpreters
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Introduction to computer software. Programming the computer Program, is a sequence of instructions, written to perform a specified task on a computer.
Lecture 3 Translation.
BASIC PROGRAMMING C SCP1103 (02)
Why don’t programmers have to program in machine code?
Component 1.6.
Displacement (Indexed) Stack
Assembly language.
MIPS Instruction Set Advantages
Introduction to programming
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Introduction to Computer Science
CSCI-235 Micro-Computer Applications
BASIC PROGRAMMING C SCP1103 (02)
ECE 353 Introduction to Microprocessor Systems
Computer System and Programming
ACOE301: Computer Architecture II Labs
Ch. 8 File Structures Sequential files. Text files. Indexed files.
William Stallings Computer Organization and Architecture 8th Edition
Computer Science 210 Computer Organization
Translators & Facilities of Languages
Compiler Construction
Computer Science 210 Computer Organization
CS170 Computer Organization and Architecture I
Computer Programming Machine and Assembly.
A Reversible MC68HC11 Simulator and Its Empirical Computational Complexity Charles Vermette CIS 4914 Senior Project May 30, 2001.
Performance Optimization for Embedded Software
The Instruction Set Architecture Level
Lesson Objectives Aims Key Words Compiler, interpreter, assembler
Programming Fundamentals (750113) Ch1. Problem Solving
ECEG-3202 Computer Architecture and Organization
Chapter 1 Introduction(1.1)
A Simple Two-Pass Assembler
System Programming by Leland L. Beck Chapter 2
A programming language
ECE 352 Digital System Fundamentals
CISC 7120X Programming Languages and Compilers
Computer Architecture and System Programming Laboratory
Chapter 4 The Von Neumann Model
Dr. Clincy Professor of CS
Presentation transcript:

A Reversible MC68HC11 Simulator and Its Empirical Computational Complexity Charles Vermette CIS 4914 Senior Project August 7, 2001

Problem Solution Motivation 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

Simulator Architecture

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.