# CS101 Lecture 26: Low Level Programming. John Magee 30 July 2013 Some material copyright Jones and Bartlett. Overview/Questions

Save this PDF as:
Size: px
Start display at page:

Download "CS101 Lecture 26: Low Level Programming. John Magee 30 July 2013 Some material copyright Jones and Bartlett. Overview/Questions"

## Transcription

1 CS101 Lecture 26: Low Level Programming John Magee 30 July 2013 Some material copyright Jones and Bartlett 1 Overview/Questions What did we do last time? How can we control the computer s circuits? How does the von Neumann Computer work? What is machine language? What is computer programming? 2 1

2 What did we do last time? Reviewed the full adder (the circuit which does binary number addition) Introduced some other circuits which are part of the CPU: the accumulator, the inverter Described the main memory as a location from which to read data into the adder, and to which data can be stored from the accumulator. Introduced the von Neumann architecture. 3 An Abstract View of CPU Circuits Unanswered Questions: How to specify whether to add or subtract. How to specify memory (RAM) addresses. 4 2

3 Stored Program Computer (Von Neumann Architecture) Figure 5.1 The von Neumann architecture 5 Control Processing Unit Central Processing Unit (CPU) Refers to the combination of the Arithmetic/Logic Unit and the Control Unit. 6 3

4 Arithmetic/Logic Unit The ALU performs basic arithmetic operations and logic operations. Examples: Arithmetic: addition, subtraction, multiplication Logical operations: AND, OR, NOT, XOR Most modern ALUs have a small amount of special storage units called registers The accumulator is the main register 7 Arithmetic/Logic Unit Recall how addition and subtraction happen (at the level of the CPU): Addition: take a value from memory send it to the adder add to the value in the accumulator Subtraction: take a value from memory, invert the bits, send to the adder, set carry-in to 1 add to the value in the accumulator 8 4

5 Arithmetic/Logic Unit The difference between addition and subtraction is slight; it can be controlled by sending a signal to the inverter and to the carry-in bit. This signal is like flipping a switch to tell the circuits to behave a certain way. But instead of flipping the switch, we could just use a binary input to an AND gate 9 Arithmetic/Logic Unit Given that: instructions are carried out by sending data through circuits circuits can be controlled by flipping switches. A binary code can be used to control which operation the CPU will do at a given time. 10 5

6 Control Unit The control unit coordinates the flow of operations and data in the computer. coordinates the ALU and memory Instruction register (IR) Contains the binary code indicating which instruction is being executed. Program counter (PC) Contains the address (in memory) of the next instruction to be executed. 11 Flow of Information Bus A set of wires that connect all major components of the computer. Figure 5.2 Data flow through a von Neumann architecture 12 6

7 The Computer Clock The computer has oscillator generates an endless rapid stream of off/on pulses (0,1,0,1 ). Each change from 0 to 1 is called a clock cycle. cycles per second is one measure of CPU speed measured in Hertz (MHz, GHz) cycles per second The clock cycle is used to coordinate the tasks of the various circuits. 13 The Fetch-Execute Cycle Figure 5.3 The Fetch-Execute Cycle 14 7

8 Fetch Execute Cycle The previous diagram shows how it takes 4 steps to execute each instruction. Is cycles per second a valid measure of CPU performance? 15 Stored Program Computer (Von Neumann Architecture) Data and instructions to manipulate the data are logically the same (binary code) and can be stored in the same place (RAM). The machine language of a particular computer is the set of binary coded instructions built into its hardware. 16 8

9 Machine Language Characteristics of machine language: Every processor type has its own set of specific machine instructions. The relationship between the processor type and the instructions it can carry out is completely integrated. Each machine-language instruction does only one very low-level task. 17 Machine Language Example A Virtual Computer is a hypothetical machine designed to contain the important features of a real computer that we want to illustrate. Our examples will use the Pep/7 virtual computer designed by Stanley Warford that has 32 machinelanguage instructions. Note: different than the Super Simple CPU

10 Instruction Format The machine language of a particular computer is the set of binary coded instructions built into its hardware. This machine language has a 3-byte instruction format. Figure 7.2 The Pep/7 instruction format 19 Instruction Format Operation Code Specifies which instruction is to be carried out. Register Specifier Specifies which register is to be used. Addressing-mode Specifier How to interpret the operand part of the instruction. 00 for immediate (value given in operand) 01 for direct (memory address given in operand) 20 10

11 Some Sample Instructions Figure 7.3 Subset of Pep/7 instructions 21 Sample Instructions What does this instruction mean? Load immediate value 7 into the accumulator 22 11

12 Sample Instructions What does this instruction mean? Load value from address 31 into the accumulator 23 Sample Instructions What does this instruction mean? Store value from accumulator into address

13 Sample Instructions What does this instruction mean? Add value from address 522 into the accumulator 25 Sample Instructions What does this instruction mean? Read a character of input into address

14 Sample Instructions What does this instruction mean? Send a character from address 10 to output 27 Computer Programming The CPU does some low-level tasks, and each one is specified as a machine-language instruction. How do we get the CPU to do stuff for us? Computer programming is the process of analyzing a problem, designing a solution, and expressing that solution as a series of computer instructions. Computer programs must be written in the language the computer understands

15 Programming Strategy Divide and Conquer! Break up a large problem into smaller units and solve each smaller problem. Applies the concept of abstraction. The divide-and-conquer approach can be applied over and over again until each subtask is manageable. 29 Machine Language Example Hello, world! program The classic first computer program is called Hello World It prints the words Hello, world to the screen. How to write it in Machine Language for the Pep/7? Specify explicit tasks in unambiguous language. Divide and conquer: Keep refining these tasks until we arrive at a concrete set of instructions which map to machine language instructions

16 Writing a Computer Program Write "Hello, World!" Is this concrete yet? Write "Hello, World!" Write "H" Write "e" Write "l" Write "l" Write "o" Is this concrete yet? 31 Writing a Computer Program Write "H" Write 0x48 Is this concrete yet? Write "e" Write 0x65... Write "o" Write 0x6F 32 16

17 Writing a Computer Program 33 Machine Language Machine language is the set of binary coded instructions built into the hardware of a particular computer, and used directly by ALU/Control Unit. why are the instructions binary encoded? how does this encoding relate to the hardware? 34 17

18 Review: Machine Language Operation Code Specifies which instruction is to be carried out. Register Specifier Specifies which register is to be used. Addressing-mode Specifier How to interpret the operand part of the instruction. 00 for immediate (value given in operand) 01 for direct (memory address given in operand) 35 What the Computer Can Do Modern computer processors can do the following types of basic tasks (CPU instructions): Add, subtract, multiply, divide, increment, decrement Logical AND, OR, XOR, NOT, and NEG operations Load data in from RAM, store data out to RAM Load data from/ send data to input/output Compare register contents for equal to Zero, Less than Zero, Negative Jump to another instruction (by address) Note: by data, we mean one word (e.g. 32 bits) 36 18

19 The JUMP Instruction Recall that the von Neumann computer stores data and instructions in the same RAM. The Program Counter holds the address of the next instruction to be executed. Usually, to find the next instruction, the PrC increments the stored address. The JUMP instruction changes the address stored in the Program Counter programmatically. Conditionally: jump if accumulator equals 0 Conditionally: jump if accumulator is less than 0 Unconditionally: just jump 37 The JUMP Instruction The JUMP instruction enables decision making and repetition inside the CPU. One could argue that JUMP is what makes a computer really programmable. Examples (with some abstraction): If a value is less than 0, then jump to instruction 7 If the quotient is 0, then end the program

20 Lab 09 Learning Objective To deepen your understanding of the central processor unit, the fetch-execute cycle, and the stored program concept. In addition, you will use pseudo code to express an algorithm, and translate the algorithm into machine-language instructions which the CPU can execute

21 Super Simple CPU Input: 1 word (16 bits) Output 1 word (16 bits) Registers: Program Counter Accumulator Temp Instruction Register RAM: 16 words (16 bits each) 41 SSCPU Machine Language Note: the Super Simple CPU has a different instruction format and opcode list than the Pep/7 CPU. Why? What are the implications of this? SSCPU Instruction Format: Each instruction is 16 bits First 4 bits specify the operation code (opcode) Last 12 bits specify either a RAM address, or an immediate value (a.k.a. a literal number) 42 21

22 SSCPU Machine Language Some example instructions: 1111: stop the program 0001: add operand to accumulator 0010: subtract operand from accumulator 0011: load memory cell into accumulator 0101: store accumulator into memory cell 0110: input value into accumulator 0111: output value from accumulator 43 Lab Exercise You will use a simple, simulated CPU to: observe the CPU s fetch-execute cycle in action become acquainted with machine language programming and instructions experiment with programming in a machine language You will write a pseudo code algorithm, and a machine language program to do addition of 2 numeric inputs

23 Pseudo code Pseudo code is a way of expressing algorithms that uses a mixture of English phrases and indention to make the steps in the solution explicit. There are no grammar rules in pseudocode. Pseudocode is not case sensitive. Analogy: pseudo code is like an outline for writing a paper -- it contains all of the main ideas, but is not tied to the structure of grammar, etc. 45 Algorithms Algorithm A set of unambiguous instructions for solving a problem or subproblem in a finite amount of time, and using a finite amount of data. For a given set of inputs, the algorithm will always produce the same outputs

24 Following an Algorithm Grandpa Ron s Chocolate Kahlua Mudslides Ingredient List: ½ cup vodka ½ cup Kahlua ½ cup Bailey s Irish Cream ¼ cup Hershey s chocolate syrup 1 blender full of ice Process: Fill blender with ice. Pours other ingredients onto ice. Blend until smooth consistency. Pour into glasses and enjoy. 47 Following an Algorithm Algorithm for preparing Chocolate Mudslides: If not all ingredients are present Go to store and buy missing ingredients Fill blender with ice Pour other ingredients into the blender While (not smooth) Turn on blender Wait 10 seconds Turn off blender Test consistency with wooden spoon Pour into glasses and serve 48 24

25 Partial Summary Even the modern computer is still a moronic number-crunching, data moving device. Algorithms describe the explicit steps the computer must follow to solve a problem. Pseudocode is a tool to help us express an algorithm, but it is not understood by the computer. Why would anyone want to write a program in machine language? 49 Assembly Language Assembly language A language that uses mnemonic codes to represent machine-language instructions Mnemonic code examples: LOADA means load value into accumulator ADDA means add value into accumulator STOREA means store value from accumulator 50 25

26 The Assembly Process Assembler A program that reads each of the instructions in mnemonic form and translates it into the machine-language equivalent. 51 Pep/7 Assembly Language Mode specifier: i = immediate, d = direct (memory) 52 26

27 Pep/7 Assembly Language An assembly language can have pseudo operations which do not map directly to the underlying machine language operations. 53 Example: Pseudo Code Program Reading and adding three numbers Set sum to 0 Read num1 Add num1 to sum Read num2 Add num2 to sum Read num3 Add num3 to sum Write sum 54 27

28 Example: Assembly Program 55 Partial Summary Assembly language: much easier to write/read than machine language! Why not just use assembly language instead of machine language? Who wrote the assembler program, and what language was it written in? Why not just write programs in pseudo code, and have a program translate that into machine language instructions? 56 28

29 Take-Away Points Von Neumann Architecture Arithmetic/Logic Unit Control Unit Machine Language Divide and Conquer strategy 57 Student To Dos Readings: Reed ch 7, pp Reed ch 6 Homework on course schedule. Wednesday: Meet in CS teaching lab

### Let s put together a Manual Processor

Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce

### Notes on Assembly Language

Notes on Assembly Language Brief introduction to assembly programming The main components of a computer that take part in the execution of a program written in assembly code are the following: A set of

### (Refer Slide Time: 00:01:16 min)

Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control

### Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

Chapter 4 Register Transfer and Microoperations Section 4.1 Register Transfer Language Digital systems are composed of modules that are constructed from digital components, such as registers, decoders,

### what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

Inside the CPU how does the CPU work? what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? some short, boring programs to illustrate the

### Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2

Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of

### MICROPROCESSOR AND MICROCOMPUTER BASICS

Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit

### Chapter 2 Logic Gates and Introduction to Computer Architecture

Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are

### CHAPTER 7: The CPU and Memory

CHAPTER 7: The CPU and Memory The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint slides

### CPU Organisation and Operation

CPU Organisation and Operation The Fetch-Execute Cycle The operation of the CPU 1 is usually described in terms of the Fetch-Execute cycle. 2 Fetch-Execute Cycle Fetch the Instruction Increment the Program

### 150127-Microprocessor & Assembly Language

Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an

### 1. Convert the following base 10 numbers into 8-bit 2 s complement notation 0, -1, -12

C5 Solutions 1. Convert the following base 10 numbers into 8-bit 2 s complement notation 0, -1, -12 To Compute 0 0 = 00000000 To Compute 1 Step 1. Convert 1 to binary 00000001 Step 2. Flip the bits 11111110

### Systems I: Computer Organization and Architecture

Systems I: Computer Organization and Architecture Lecture 9 - Register Transfer and Microoperations Microoperations Digital systems are modular in nature, with modules containing registers, decoders, arithmetic

### Central Processing Unit (CPU)

Central Processing Unit (CPU) CPU is the heart and brain It interprets and executes machine level instructions Controls data transfer from/to Main Memory (MM) and CPU Detects any errors In the following

### 1 Classical Universal Computer 3

Chapter 6: Machine Language and Assembler Christian Jacob 1 Classical Universal Computer 3 1.1 Von Neumann Architecture 3 1.2 CPU and RAM 5 1.3 Arithmetic Logical Unit (ALU) 6 1.4 Arithmetic Logical Unit

### MACHINE ARCHITECTURE & LANGUAGE

in the name of God the compassionate, the merciful notes on MACHINE ARCHITECTURE & LANGUAGE compiled by Jumong Chap. 9 Microprocessor Fundamentals A system designer should consider a microprocessor-based

### Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

Chapter 2 Basic Structure of Computers Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan Outline Functional Units Basic Operational Concepts Bus Structures Software

### Computer Organization. and Instruction Execution. August 22

Computer Organization and Instruction Execution August 22 CSC201 Section 002 Fall, 2000 The Main Parts of a Computer CSC201 Section Copyright 2000, Douglas Reeves 2 I/O and Storage Devices (lots of devices,

### A s we saw in Chapter 4, a CPU contains three main sections: the register section,

6 CPU Design A s we saw in Chapter 4, a CPU contains three main sections: the register section, the arithmetic/logic unit (ALU), and the control unit. These sections work together to perform the sequences

### MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1

MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable

### Computer System: User s View. Computer System Components: High Level View. Input. Output. Computer. Computer System: Motherboard Level

System: User s View System Components: High Level View Input Output 1 System: Motherboard Level 2 Components: Interconnection I/O MEMORY 3 4 Organization Registers ALU CU 5 6 1 Input/Output I/O MEMORY

### İSTANBUL AYDIN UNIVERSITY

İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER

### CPU Organization and Assembly Language

COS 140 Foundations of Computer Science School of Computing and Information Science University of Maine October 2, 2015 Outline 1 2 3 4 5 6 7 8 Homework and announcements Reading: Chapter 12 Homework:

### Building a computer. Electronic Numerical Integrator and Computer (ENIAC)

Building a computer Electronic Numerical Integrator and Computer (ENIAC) CSCI 255: Introduc/on to Embedded Systems Keith Vertanen Copyright 2011 Layers of abstrac

CSC 3210 Computer Organization and Programming Introduction and Overview Dr. Anu Bourgeois (modified by Yuan Long) Administrative Issues Required Prerequisites CSc 2010 Intro to CSc CSc 2310 Java Programming

### An Introduction to Computer Science and Computer Organization Comp 150 Fall 2008

An Introduction to Computer Science and Computer Organization Comp 150 Fall 2008 Computer Science the study of algorithms, including Their formal and mathematical properties Their hardware realizations

### Today. Binary addition Representing negative numbers. Andrew H. Fagg: Embedded Real- Time Systems: Binary Arithmetic

Today Binary addition Representing negative numbers 2 Binary Addition Consider the following binary numbers: 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 How do we add these numbers? 3 Binary Addition 0 0 1 0 0 1 1

### Decimal Number (base 10) Binary Number (base 2)

LECTURE 5. BINARY COUNTER Before starting with counters there is some vital information that needs to be understood. The most important is the fact that since the outputs of a digital chip can only be

### Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8

Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8 January 22, 2013 Name: Grade /10 Introduction: In this lab you will write, test, and execute a number of simple PDP-8

### CHAPTER 11: Flip Flops

CHAPTER 11: Flip Flops In this chapter, you will be building the part of the circuit that controls the command sequencing. The required circuit must operate the counter and the memory chip. When the teach

### The WIMP51: A Simple Processor and Visualization Tool to Introduce Undergraduates to Computer Organization

The WIMP51: A Simple Processor and Visualization Tool to Introduce Undergraduates to Computer Organization David Sullins, Dr. Hardy Pottinger, Dr. Daryl Beetner University of Missouri Rolla Session I.

### CHAPTER 4 MARIE: An Introduction to a Simple Computer

CHAPTER 4 MARIE: An Introduction to a Simple Computer 4.1 Introduction 195 4.2 CPU Basics and Organization 195 4.2.1 The Registers 196 4.2.2 The ALU 197 4.2.3 The Control Unit 197 4.3 The Bus 197 4.4 Clocks

### Computer organization

Computer organization Computer design an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + datapath Control = finite state machine inputs

### Learning Outcomes. Simple CPU Operation and Buses. Composition of a CPU. A simple CPU design

Learning Outcomes Simple CPU Operation and Buses Dr Eddie Edwards eddie.edwards@imperial.ac.uk At the end of this lecture you will Understand how a CPU might be put together Be able to name the basic components

### CS101 Lecture 11: Number Systems and Binary Numbers. Aaron Stevens 14 February 2011

CS101 Lecture 11: Number Systems and Binary Numbers Aaron Stevens 14 February 2011 1 2 1 3!!! MATH WARNING!!! TODAY S LECTURE CONTAINS TRACE AMOUNTS OF ARITHMETIC AND ALGEBRA PLEASE BE ADVISED THAT CALCULTORS

### Chapter 01: Introduction. Lesson 02 Evolution of Computers Part 2 First generation Computers

Chapter 01: Introduction Lesson 02 Evolution of Computers Part 2 First generation Computers Objective Understand how electronic computers evolved during the first generation of computers First Generation

### The 104 Duke_ACC Machine

The 104 Duke_ACC Machine The goal of the next two lessons is to design and simulate a simple accumulator-based processor. The specifications for this processor and some of the QuartusII design components

### EC 362 Problem Set #2

EC 362 Problem Set #2 1) Using Single Precision IEEE 754, what is FF28 0000? 2) Suppose the fraction enhanced of a processor is 40% and the speedup of the enhancement was tenfold. What is the overall speedup?

### An Overview of Stack Architecture and the PSC 1000 Microprocessor

An Overview of Stack Architecture and the PSC 1000 Microprocessor Introduction A stack is an important data handling structure used in computing. Specifically, a stack is a dynamic set of elements in which

### Addressing The problem. When & Where do we encounter Data? The concept of addressing data' in computations. The implications for our machine design(s)

Addressing The problem Objectives:- When & Where do we encounter Data? The concept of addressing data' in computations The implications for our machine design(s) Introducing the stack-machine concept Slide

### Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

Computers CMPT 125: Lecture 1: Understanding the Computer Tamara Smyth, tamaras@cs.sfu.ca School of Computing Science, Simon Fraser University January 3, 2009 A computer performs 2 basic functions: 1.

### CS 61C: Great Ideas in Computer Architecture Finite State Machines. Machine Interpreta4on

CS 61C: Great Ideas in Computer Architecture Finite State Machines Instructors: Krste Asanovic & Vladimir Stojanovic hbp://inst.eecs.berkeley.edu/~cs61c/sp15 1 Levels of RepresentaKon/ InterpretaKon High

### Chapter 5 Instructor's Manual

The Essentials of Computer Organization and Architecture Linda Null and Julia Lobur Jones and Bartlett Publishers, 2003 Chapter 5 Instructor's Manual Chapter Objectives Chapter 5, A Closer Look at Instruction

### Gates, Circuits, and Boolean Algebra

Gates, Circuits, and Boolean Algebra Computers and Electricity A gate is a device that performs a basic operation on electrical signals Gates are combined into circuits to perform more complicated tasks

### Central Processing Unit

Chapter 4 Central Processing Unit 1. CPU organization and operation flowchart 1.1. General concepts The primary function of the Central Processing Unit is to execute sequences of instructions representing

### AC 2007-2027: A PROCESSOR DESIGN PROJECT FOR A FIRST COURSE IN COMPUTER ORGANIZATION

AC 2007-2027: A PROCESSOR DESIGN PROJECT FOR A FIRST COURSE IN COMPUTER ORGANIZATION Michael Black, American University Manoj Franklin, University of Maryland-College Park American Society for Engineering

### Instruction Set Architecture (ISA)

Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine

### CSE140 Homework #7 - Solution

CSE140 Spring2013 CSE140 Homework #7 - Solution You must SHOW ALL STEPS for obtaining the solution. Reporting the correct answer, without showing the work performed at each step will result in getting

### a storage location directly on the CPU, used for temporary storage of small amounts of data during processing.

CS143 Handout 18 Summer 2008 30 July, 2008 Processor Architectures Handout written by Maggie Johnson and revised by Julie Zelenski. Architecture Vocabulary Let s review a few relevant hardware definitions:

### Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University cwliu@twins.ee.nctu.edu.

Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University cwliu@twins.ee.nctu.edu.tw Review Computers in mid 50 s Hardware was expensive

### TEACHING COMPUTER ARCHITECTURE THROUGH SIMULATION (A BRIEF EVALUATION OF CPU SIMULATORS) *

TEACHING COMPUTER ARCHITECTURE THROUGH SIMULATION (A BRIEF EVALUATION OF CPU SIMULATORS) * Timothy Stanley, PhD Computer and Network Sciences, Utah Valley University, Orem, Utah 84058, 801 863-8978, TStanley@uvu.edu

### UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180B Lab 7: MISP Processor Design Spring 1995

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering EEC180B Lab 7: MISP Processor Design Spring 1995 Objective: In this lab, you will complete the design of the MISP processor,

### Lecture N -1- PHYS 3330. Microcontrollers

Lecture N -1- PHYS 3330 Microcontrollers If you need more than a handful of logic gates to accomplish the task at hand, you likely should use a microcontroller instead of discrete logic gates 1. Microcontrollers

### 1 Description of The Simpletron

Simulating The Simpletron Computer 50 points 1 Description of The Simpletron In this assignment you will write a program to simulate a fictional computer that we will call the Simpletron. As its name implies

### TIMING DIAGRAM O 8085

5 TIMING DIAGRAM O 8085 5.1 INTRODUCTION Timing diagram is the display of initiation of read/write and transfer of data operations under the control of 3-status signals IO / M, S 1, and S 0. As the heartbeat

### Summary of the MARIE Assembly Language

Supplement for Assignment # (sections.8 -. of the textbook) Summary of the MARIE Assembly Language Type of Instructions Arithmetic Data Transfer I/O Branch Subroutine call and return Mnemonic ADD X SUBT

### ================================================================

==== ==== ================================================================ DR 6502 AER 201S Engineering Design 6502 Execution Simulator ================================================================

### l C-Programming l A real computer language l Data Representation l Everything goes down to bits and bytes l Machine representation Language

198:211 Computer Architecture Topics: Processor Design Where are we now? C-Programming A real computer language Data Representation Everything goes down to bits and bytes Machine representation Language

### ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER Pierre A. von Kaenel Mathematics and Computer Science Department Skidmore College Saratoga Springs, NY 12866 (518) 580-5292 pvonk@skidmore.edu ABSTRACT This paper

### Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

### CHAPTER 3 Boolean Algebra and Digital Logic

CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4

### Chapter 2 Topics. 2.1 Classification of Computers & Instructions 2.2 Classes of Instruction Sets 2.3 Informal Description of Simple RISC Computer, SRC

Chapter 2 Topics 2.1 Classification of Computers & Instructions 2.2 Classes of Instruction Sets 2.3 Informal Description of Simple RISC Computer, SRC See Appendix C for Assembly language information. 2.4

### Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?

Management Challenge Managing Hardware Assets What computer processing and storage capability does our organization need to handle its information and business transactions? What arrangement of computers

### SIM-PL: Software for teaching computer hardware at secondary schools in the Netherlands

SIM-PL: Software for teaching computer hardware at secondary schools in the Netherlands Ben Bruidegom, benb@science.uva.nl AMSTEL Instituut Universiteit van Amsterdam Kruislaan 404 NL-1098 SM Amsterdam

### Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

### Systems I: Computer Organization and Architecture

Systems I: omputer Organization and Architecture Lecture 8: Registers and ounters Registers A register is a group of flip-flops. Each flip-flop stores one bit of data; n flip-flops are required to store

### Numeral Systems. The number twenty-five can be represented in many ways: Decimal system (base 10): 25 Roman numerals:

Numeral Systems Which number is larger? 25 8 We need to distinguish between numbers and the symbols that represent them, called numerals. The number 25 is larger than 8, but the numeral 8 above is larger

### Digital Electronics Detailed Outline

Digital Electronics Detailed Outline Unit 1: Fundamentals of Analog and Digital Electronics (32 Total Days) Lesson 1.1: Foundations and the Board Game Counter (9 days) 1. Safety is an important concept

### CHAPTER 6: Computer System Organisation 1. The Computer System's Primary Functions

CHAPTER 6: Computer System Organisation 1. The Computer System's Primary Functions All computers, from the first room-sized mainframes, to today's powerful desktop, laptop and even hand-held PCs, perform

### CSCI 4717 Computer Architecture. Function. Data Storage. Data Processing. Data movement to a peripheral. Data Movement

CSCI 4717/5717 Computer Architecture Topic: Functional View & History Reading: Sections 1.2, 2.1, & 2.3 Function All computer functions are comprised of four basic operations: Data processing Data storage

### MACHINE INSTRUCTIONS AND PROGRAMS

CHAPTER 2 MACHINE INSTRUCTIONS AND PROGRAMS CHAPTER OBJECTIVES In this chapter you will learn about: Machine instructions and program execution, including branching and subroutine call and return operations

### Levels of Programming Languages. Gerald Penn CSC 324

Levels of Programming Languages Gerald Penn CSC 324 Levels of Programming Language Microcode Machine code Assembly Language Low-level Programming Language High-level Programming Language Levels of Programming

### Instruction Set Design

Instruction Set Design Instruction Set Architecture: to what purpose? ISA provides the level of abstraction between the software and the hardware One of the most important abstraction in CS It s narrow,

### 3.Basic Gate Combinations

3.Basic Gate Combinations 3.1 TTL NAND Gate In logic circuits transistors play the role of switches. For those in the TTL gate the conducting state (on) occurs when the baseemmiter signal is high, and

### Counters and Decoders

Physics 3330 Experiment #10 Fall 1999 Purpose Counters and Decoders In this experiment, you will design and construct a 4-bit ripple-through decade counter with a decimal read-out display. Such a counter

### GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. COURSE CURRICULUM COURSE TITLE: COMPUTER ORGANIZATION AND ARCHITECTURE (Code: 3340705)

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT COURSE CURRICULUM COURSE TITLE: COMPUTER ORGANIZATION AND ARCHITECTURE (Code: 3340705) Diploma Programmes in which this course is offered Computer Engineering

### Machine Architecture and Number Systems. Major Computer Components. Schematic Diagram of a Computer. The CPU. The Bus. Main Memory.

1 Topics Machine Architecture and Number Systems Major Computer Components Bits, Bytes, and Words The Decimal Number System The Binary Number System Converting from Decimal to Binary Major Computer Components

### Unit A451: Computer systems and programming. Section 2: Computing Hardware 1/5: Central Processing Unit

Unit A451: Computer systems and programming Section 2: Computing Hardware 1/5: Central Processing Unit Section Objectives Candidates should be able to: (a) State the purpose of the CPU (b) Understand the

### How It All Works. Other M68000 Updates. Basic Control Signals. Basic Control Signals

CPU Architectures Motorola 68000 Several CPU architectures exist currently: Motorola Intel AMD (Advanced Micro Devices) PowerPC Pick one to study; others will be variations on this. Arbitrary pick: Motorola

### PART B QUESTIONS AND ANSWERS UNIT I

PART B QUESTIONS AND ANSWERS UNIT I 1. Explain the architecture of 8085 microprocessor? Logic pin out of 8085 microprocessor Address bus: unidirectional bus, used as high order bus Data bus: bi-directional

### COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

PH-315 COMINATIONAL and SEUENTIAL LOGIC CIRCUITS Hardware implementation and software design A La Rosa I PURPOSE: To familiarize with combinational and sequential logic circuits Combinational circuits

### LSN 2 Computer Processors

LSN 2 Computer Processors Department of Engineering Technology LSN 2 Computer Processors Microprocessors Design Instruction set Processor organization Processor performance Bandwidth Clock speed LSN 2

### Sequential Logic. (Materials taken from: Principles of Computer Hardware by Alan Clements )

Sequential Logic (Materials taken from: Principles of Computer Hardware by Alan Clements ) Sequential vs. Combinational Circuits Combinatorial circuits: their outputs are computed entirely from their present

### CS311 Lecture: Sequential Circuits

CS311 Lecture: Sequential Circuits Last revised 8/15/2007 Objectives: 1. To introduce asynchronous and synchronous flip-flops (latches and pulsetriggered, plus asynchronous preset/clear) 2. To introduce

### CSE 141L Computer Architecture Lab Fall 2003. Lecture 2

CSE 141L Computer Architecture Lab Fall 2003 Lecture 2 Pramod V. Argade CSE141L: Computer Architecture Lab Instructor: TA: Readers: Pramod V. Argade (p2argade@cs.ucsd.edu) Office Hour: Tue./Thu. 9:30-10:30

### Introducción. Diseño de sistemas digitales.1

Introducción Adapted from: Mary Jane Irwin ( www.cse.psu.edu/~mji ) www.cse.psu.edu/~cg431 [Original from Computer Organization and Design, Patterson & Hennessy, 2005, UCB] Diseño de sistemas digitales.1

### Chapter 6: From Digital-to-Analog and Back Again

Chapter 6: From Digital-to-Analog and Back Again Overview Often the information you want to capture in an experiment originates in the laboratory as an analog voltage or a current. Sometimes you want to

### The string of digits 101101 in the binary number system represents the quantity

Data Representation Section 3.1 Data Types Registers contain either data or control information Control information is a bit or group of bits used to specify the sequence of command signals needed for

### 1 Computer hardware. Peripheral Bus device "B" Peripheral device. controller. Memory. Central Processing Unit (CPU)

1 1 Computer hardware Most computers are organized as shown in Figure 1.1. A computer contains several major subsystems --- such as the Central Processing Unit (CPU), memory, and peripheral device controllers.

### Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

Digital Logic Design Basics Combinational Circuits Sequential Circuits Pu-Jen Cheng Adapted from the slides prepared by S. Dandamudi for the book, Fundamentals of Computer Organization and Design. Introduction

### An Introduction to the ARM 7 Architecture

An Introduction to the ARM 7 Architecture Trevor Martin CEng, MIEE Technical Director This article gives an overview of the ARM 7 architecture and a description of its major features for a developer new

### EE361: Digital Computer Organization Course Syllabus

EE361: Digital Computer Organization Course Syllabus Dr. Mohammad H. Awedh Spring 2014 Course Objectives Simply, a computer is a set of components (Processor, Memory and Storage, Input/Output Devices)

### ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

ETEC 2301 Programmable Logic Devices Chapter 10 Counters Shawnee State University Department of Industrial and Engineering Technologies Copyright 2007 by Janna B. Gallaher Asynchronous Counter Operation

### A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

Other architectures Example. Accumulator-based machines A single register, called the accumulator, stores the operand before the operation, and stores the result after the operation. Load x # into acc

### Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

Experiment # 9 Clock generator circuits & Counters Eng. Waleed Y. Mousa 1. Objectives: 1. Understanding the principles and construction of Clock generator. 2. To be familiar with clock pulse generation

### Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance

What You Will Learn... Computers Are Your Future Chapter 6 Understand how computers represent data Understand the measurements used to describe data transfer rates and data storage capacity List the components