QUIZ. Name all the 4 parts of the fetch-execute cycle.

Similar documents
Low-level software. Components Circuits Gates Transistors

QUIZ. Name all the 4 parts of the fetch-execute cycle.

Extra-credit QUIZ Pipelining -due next time-

High-level software (Ch.9) Algorithms and data structures. Low-level software. Components Circuits Gates Transistors

Low-Level Programming Languages and Pseudocode

LOW-LEVEL PROGRAMMING LANAGUAGES AND PSEUDOCODE. Introduction to Computer Engineering 2015 Spring by Euiseong Seo

Write "Nell" Write "N" Write "e" Write "l" Write "l" Write "N" Write 4E (hex) Write "e" W rite 65 (hex) Write "l" W rite 6C (hex)

CSC 221: Computer Organization, Spring 2009

Chapter. Assembly Language

Wednesday, February 7, 2018

Wednesday, March 12, 2014

Wednesday, February 4, Chapter 4

COSC 122 Computer Fluency. Computer Organization. Dr. Ramon Lawrence University of British Columbia Okanagan

CS 101, Mock Computer Architecture

Monday, February 16, 2015

Course Schedule. CS 221 Computer Architecture. Week 3: Plan. I. Hexadecimals and Character Representations. Hexadecimal Representation

QUIZ: Generations of computer technology. Hardware:

Wednesday, February 15, 2017

Wednesday, September 13, Chapter 4

Unified Engineering Fall 2004

The CPU and Memory. How does a computer work? How does a computer interact with data? How are instructions performed? Recall schematic diagram:

QUIZ: What value is stored in a after this

Wednesday, September 21, 2016

Monday, February 11, 2013

Introduction to Computers - Chapter 4

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016

Teaching London Computing

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 11 Instruction Sets: Addressing Modes and Formats

Show how to connect three Full Adders to implement a 3-bit ripple-carry adder

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 3, 2015

Introduction to MiniSim A Simple von Neumann Machine

Tutorial for Chapter 3, 4

COSC121: Computer Systems: Review

Laboratory. Low-Level. Languages. Objective. References. Study simple machine language and assembly language programs.

Copyright 2000 N. AYDIN. All rights reserved. 1

Dec Hex Bin ORG ; ZERO. Introduction To Computing

QUIZ: Generations of computer technology. Hardware:

csitnepal Unit 3 Basic Computer Organization and Design

EE 5340/7340 Motorola 68HC11 Microcontroler Lecture 1. Carlos E. Davila, Electrical Engineering Dept. Southern Methodist University

EE 3170 Microcontroller Applications

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

2.2 THE MARIE Instruction Set Architecture

16.1. Unit 16. Computer Organization Design of a Simple Processor

User. Application program. Interfaces. Operating system. Hardware

Monday, March 9, 2015

Wednesday, April 22, 2015

2. Computer Evolution and Performance

The LC3's micro-coded controller ("useq") is nothing more than a finite-state machine (FSM). It has these inputs:

Monday, October 17, 2016

ORG ; TWO. Assembly Language Programming

1 Little Man Computer

the SAP-2 I. Intro cmpt-150-arc Sections 8-8, 8-9, 9-4, 9-5, 9.6, We ll do this in bits and pieces, doing the beginning of each section first.

Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 1: Basic Concepts. Chapter Overview. Welcome to Assembly Language

Wednesday, April 19, 2017

Wednesday, September 27, 2017

Microcontroller Systems

Monday, March 13, 2017

A rubric for programming assignments

Module 5 - CPU Design

CSCI170 Lecture 1: Analysis of Programming Languages. John Magee 1 September 2011 Some material copyright Jones and Bartlett

Show how to connect three Full Adders to implement a 3-bit ripple-carry adder

Project 3: RPN Calculator

COMPUTER ORGANIZATION & ARCHITECTURE

EE 3170 Microcontroller Applications

Final Labs and Tutors

COSC121: Computer Systems: Review

5-1 Instruction Codes

2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS).

Computer Organization CS 206 T Lec# 2: Instruction Sets

CMPS 10 Introduction to Computer Science Lecture Notes

Chapter 2. Binary Values and Number Systems

Chapter 4. MARIE: An Introduction to a Simple Computer. Chapter 4 Objectives. 4.1 Introduction. 4.2 CPU Basics

Chapter 6 Programming the LC-3

Computer architecture Assignment 3

Tailoring the 32-Bit ALU to MIPS

Why learn Computer Programming? Computer-based problem solving in Science and Engineering. Why learn Fortran? Elementary Computer Organization

Lecture 5 Assembly Programming: Arithmetic

von Neumann Architecture Basic Computer System Early Computers Microprocessor Reading Assignment An Introduction to Computer Architecture

Basic Computer System. von Neumann Architecture. Reading Assignment. An Introduction to Computer Architecture. EEL 4744C: Microprocessor Applications

QUIZ: What is the output of this MATLAB code? >> A = [2,4,10,13;16,3,7,18; 8,4,9,25;3,12,15,17]; >> length(a) >> size(a) >> B = A(2:3, 1:3) >> B(5)

Von Neumann Architecture

Chapter. Computer Architecture

UNIT 1 REFERENCE 1 PREPARED BY S.RAVINDRAKUMAR, LECT/ECE, CHETTINAD COLLEGE OF ENGG AND TECH, KARUR

Wednesday, September 20, 2017

Unit 1. Digital Representation

CHAPTER SIX BASIC COMPUTER ORGANIZATION AND DESIGN

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

Week 6: Processor Components

Unit II Basic Computer Organization

Monday, March 6, We have seen how to translate void functions. What about functions that return a value such as

Blog -

5. The result of dividing the 8 bit value by the 8 bit value is:

The MARIE Architecture

Processor design - MIPS

Memory General R0 Registers R1 R2. Input Register 1. Input Register 2. Program Counter. Instruction Register

2010 Summer Answers [OS I]

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch

Computer System. Hiroaki Kobayashi 7/25/2011. Agenda. Von Neumann Model Stored-program instructions and data are stored on memory

In this lecture, we will look at how storage (or memory) works with processor in a computer system. This is in preparation for the next lecture, in

Switching to AQA from OCR

Transcription:

QUIZ Name all the 4 parts of the fetch-execute cycle. 1

Solution Name all the 4 parts of the fetch-execute cycle. 2

QUIZ Name two fundamental differences between magnetic drives and optical drives: 3

QUIZ Define Embedded Systems 4

QUIZ What are two ways to create a non-vn architecture? What are the 3 parallel architectures we covered? 5

Solution What are two ways to create a non-vn architecture? A: By using more than one MM, or by using more than one CPU. What are the 3 parallel architectures we covered? Pipelined CPUs Synchronous CPUs Parallel (non-synchronous) CPUs 6

QUIZ Pipelining A computer pipeline has 4 processors, as shown above. Each processor takes 15 ms to execute, and each instruction must go sequentially through all 4 processors. A program has 10 instructions. Calculate how long it takes to run it: without pipelining with pipelining 7

Extra-credit QUIZ 8

Low-level software Components Circuits Gates Transistors

Abstractions and more abstractions You are here 10

6.1 Computer Operations Computer = programmable electronic device that can store, retrieve, and process data Von Neumann architecture: Data and instructions to manipulate the data are represented in the same way (binary) and are stored in the same place (memory) For processing, both data and instructions have to be brought into the CPU (fetch-execute cycle) 11

6.2 Machine Language Machine language = The language made up of binary coded instructions built into the hardware of a particular computer and used directly by the computer Why would anyone use machine language? (Hint: they had no choice. Why?) Image source: http://www.alpcentauri.info/chapter_18.html 12

Remember: The Fetch-Execute Cycle According to the CPU s machine language 13

Characteristics of machine language: Every processor type has its own set of specific machine instructions The relationship between the processor and the instructions it can carry out is completely integrated Each machine-language instruction does only one very low-level task 14

Pep/8 Virtual Computer Virtual computer A hypothetical machine designed to contain the important features of a real machine Pep/8 A virtual computer designed by Stanley Warford that has 39 machine-language instructions (We re going to cover only a few of them!) 15

Extra-credit 16

Pep/8 Registers The program counter (PC) (contains the address of the next instruction to be executed) The instruction register (IR) (contains a copy of the instruction being executed) The accumulator (register A) The memory unit is made up of 65,636 Bytes of storage Can you figure out how long the Pep/8 address is? 17

QUIZ The previous version of Pep, Pep/7, could use only 12 bits for memory addresses. How many memory cells could Pep/7 address? 18

24 bits 16 bits Explain the address format! 19

Can you show what instructions look like in memory? Explain the address format! 20

Instruction Format 21

Instruction Format Operation code, a.k.a. opcode Specifies which instruction is to be carried out Register specifier Specifies which register is to be used (only use A in this chapter) Addressing-mode specifier Says how to interpret the operand part of the instruction: Direct Immediate Say that again?!? 22

Instruction Format Addressing-mode specifier Says how to interpret the operand part of the instruction: Direct Immediate?? 2 + 3 Immediate A + B Direct 23

Immediate and direct addressing modes 24

Immediate and direct addressing modes Example: ADD 42 to accumulator A What exactly am I to add? 25

Instruction Format Addressing modes: immediate direct Is there something we are not telling you about Pep s addressing modes? 26

PEP/8 machine instructions 27

What does this instruction mean, what is its hex code, and what exactly does it do? 28 EOL 1

QUIZ Name all the 4 parts of the fetch-execute cycle. What do IR, A, and PC stand for in the computer s architecture? Name and explain the 2 addressing modes we ve covered. 29

QUIZ: Immediate vs. direct addressing We have this Pep instruction: SUB 30 from accumulator A What exactly will Pep subtract? 30

We have this Pep instruction: SUB 30 from accumulator A What exactly will Pep subtract? A: It depends on the addressing mode! If immediate (000), then the integer 30 goes in A. If direct (001), then the content of the memory address 30 goes in A. Solution 31

QUIZ: Immediate vs. direct addressing We have this Pep instruction: LOAD 20 (decimal) into accumulator A What exactly will Pep load? 32

What does this instruction mean, what is its hex code, and what exactly does it do? 33

What does this instruction mean, what is its hex code, and what exactly does it do? 34

What do these instructions mean, what are their hex codes, and what exactly do they do? 35

Wait a second... 36

Conclusions It is useless to write operands into IR. IR is written only in the FETCH stage of the Fetch-Execute cycle, when the 3 bytes of the instruction are brought from memory. Operands can be written only to: Accumulator Memory Some instructions cannot have the immediate addressing mode 37

What do these instructions mean, what are their hex codes, and what exactly do they do? 38

What does this instruction mean, what is its hex code, and what exactly does it do? Why is there only one on this page?

40 What do these instructions mean, what are their hex codes, and what exactly do they do?

Problem 17 / 190 The PEP/8 memory has the following contents: 0001 A2 0002 11 0003 00 0004 FF What are the contents of reg. A after this instruction is executed: C1 00 02 The first step is 41

Problem 17 / 190 The PEP/8 memory has the following contents: 0001 A2 0002 11 0003 00 0004 FF What are the contents of reg. A after this instruction is executed: C1 00 02 1100 0001 0000 0000 0000 0010 42

Problem 16 / 189 The PEP/8 memory has the following contents: 0001 A2 0002 11 0003 00 0004 FF What are the contents of reg. A after this instruction is executed: C1 00 01 43

0001 A2 0002 11 0003 00 0004 FF Instruction executed: C1 00 01 44

6.3 Program to write "Hello" Every program ends with this! 45

Your turn! What does this program do? 1111 0000 1 0000 1111

Steps for executing a machine-language program Machine code program in a file on disk Loader Execute Program in memory 47

SKIP Pep/8 Simulator EOL 248

Problem 33 / 191 The PEP/8 memory has the following program in memory (in hex): 0001 49 0002 00 0003 08 0004 51 0005 00 0006 08 0007 00 Convert the program to binary and explain in your own words what it does. 49

Fact: Writing programs in machine language sucks! (i.e. it is time-consuming, boring, errorprone, unintuitive, etc.) 50

that s why we invented assembly language 51

6.4 Assembly Language Assembly language A language that uses mnemonic codes to represent machine-language instructions Assembler A program that reads each of the instructions in mnemonic form and translates it into the machine-language equivalent 52

Steps for executing an assembly-language program Loader 53 Execute Program in memory

Pep/8 Assembly Language Opcode is 04 Opcode is 31 Opcode is 38 Opcode is 39 54

Hello program in assembly mnemonic operand addressing mode comments CHARO CHARO CHARO CHARO CHARO STOP.END 0x0048, i ;Outputs character 'H' 0x0065, i 0x006C, i 0x006C, i 0x006F, i What in the world is this?! 55

A New Program Problem: Read and sum three values and print the sum How would you do it by hand? 56

Declaring variables in assembly: We simply reserve space in memory for them! Labels they are just placeholders for memory addresses 57

Assembler directives, a.k.a. pseudo-ops What is the difference between operations and pseudo operations? 58

Completed Program sum:.word 0x0000 num1:.block 2 num2:.block 2 num3:.block 2 main: LDA sum,d DECI num1,d ADDA num1,d DECI num2,d ADDA num2,d DECI num3,d ADDA num3,d STA sum,d DECO sum,d STOP.END 59

Completed Program Houston, we have a problem! How does the CPU know that the program starts here? sum:.word 0x0000 num1:.block 2 num2:.block 2 Num3:.BLOCK 2 main: LDA sum,d DECI num1,d ADDA num1,d DECI num2,d ADDA num2,d DECI num3,d ADDA num3,d STA sum,d DECO sum,d STOP.END 60

Solution: Branch instruction BR main sum:.word 0x0000 num1:.block 2 num2:.block 2 num3:.block 2 main: LDA sum,d DECI num1,d ADDA num1,d DECI num2,d ADDA num2,d DECI num3,d ADDA num3,d STA sum,d DECO sum,d STOP.END See comments on next slide 61

Unconditional branch! Completed Program 62

Your turn! Change the program so it adds only two numbers: always 7 + 42 63 EOL 3

We have covered the beginning of section 6.4. We stopped before the sub-section A Program with Branching. Read the text carefully and make sure you can explain in your own words what each instruction accomplishes. Individual work (do in notebook for next time): 16, 17, 19, 21-26 EOL 3 64

Decision-making instructions BR Set PC to operand unconditionally BRLT i Set PC to operand if A < 0 BREQ i Set PC to operand if A = 0 65

Decision making problem: Same as previous sum program, but print the sum only if positive or zero; if negative, print an error message negmsg: CHARO 0x0045,i BR finish main: LDA sum,d BRLT negmsg STA sum,d DECO sum,d finish: STOP What ASCII code is this? 66

Decision making problem: Same as before, but print the sum only if positive or zero; if negative, print E (Error) negmsg: CHARO 0x0045,i BR finish main: LDA sum,d BRLT negmsg STA sum,d DECO sum,d finish: STOP ASCII code for 'E' How many ways are there to reach finish?

QUIZ: Would the decision program from the first example still work if the negmsg block were placed after the main program instead of before? main: LDA sum,d BRLT negmsg STA sum,d DECO sum,d finish: STOP negmsg: CHARO 0x0045,i BR finish 68

QUIZ: What does this program do? BR main a:.block 2 main: DECI a, d LDA a, d SUBA 0x002A, i STA a, d DECO a, d STOP.END 69

Solution BR main a:.block 2 main: DECI a, d LDA a, d SUBA 0x002A, i STA a, d DECO a, d STOP.END A: It subtracts 42 from the number entered, and displays the result. 70

QUIZ: What does this program do? BR main a:.block 2 main: DECI a, d LDA a, d SUBA 0x002A, i STA a, d BREQ yes DECO a, d fin: STOP yes: CHARO 0x0046, i BR fin.end ASCII code for 'F' 71

QUIZ: Write an assembly program to subtract 20 10 from 42 10 and put the result in memory Take inspiration from the program we studied last time: BR main sum:.word 0x0000 num1:.block 2 num2:.block 2 num3:.block 2 main: LDA sum,d DECI num1,d ADDA num1,d DECI num2,d ADDA num2,d DECI num3,d ADDA num3,d STA sum,d DECO sum,d STOP.END 72

Three quizzes for individual work Write a program that adds the number 3 to a number entered by the user, and prints : the result if equal to zero, otherwise it prints nothing. the result if less than zero, otherwise it prints nothing. the result if greater than zero, otherwise it prints nothing. 73

What does this program do? (p.173) CPA must always be followed by a conditional branch! 74

High-level software (Ch.9) Algorithms (and data structures) Low-level software Components Circuits Gates Transistors

6.5 Algorithms and Pseudocode Algorithm = A sequence of steps for solving a problem Muḥammad ibn Mūsā al-khwārizmī (780-850A.D.) 76

Remember: Decision-making instructions BR Set PC to operand unconditionally BRLT i Set PC to operand if A < 0 BREQ i Set PC to operand if A = 0 77

Not in text How to describe an algorithm in an intuitive way? Flowcharts! We use decision-making instructions to build: branches loops 78

Problems with flowcharts: They re hard to follow when they get complex Not in text 79

Problems with flowcharts: They re hard to follow when they get complex They re hard to draw in electronic documents Not in text 80

Problems with flowcharts: They re hard to follow when they get complex They re hard to draw in electronic documents Not in text Our text uses only pseudocode 81

6.5 Algorithms and Pseudocode Pseudocode = A mixture of English and formatting to make the steps in an algorithm explicit There are no syntax rules in pseudocode! Pseudocode is not case sensitive! Example: Repeated-division algorithm (convert base-10 number to other bases): While ( the quotient is not zero ) Divide the decimal number by the new base Make the remainder the next digit to the left in the answer Replace the original decimal number with the quotient 82

Algorithms can also be described in natural language! 83

but pseudocode is more precise IF concerned about cholesterol Put butter substitute in a pot ELSE Put butter in a pot Turn on burner Put pot on the burner WHILE (NOT bubbling) Leave pot on the burner Put other ingredients in the blender Turn on blender WHILE (more in pot) Pour contents into lender in slow steam Turn off blender 84

Draw the flowchart for this pseudocode IF concerned about cholesterol Put butter substitute in a pot ELSE Put butter in a pot Turn on burner Put pot on the burner WHILE (NOT bubbling) Leave pot on the burner Put other ingredients in the blender Turn on blender WHILE (more in pot) Pour contents into lender in slow steam Turn off blender 85

Pseudocode functionality Pseudocode has all of the concepts encountered in any high-level programming language, only the syntax is informal: Variables Assignment I/O Selection / decision Repetition / loop Boolean expressions 86

Reading assignment: Pages 175-179 of the text Refer to your Python programming experience! 87

We can test a pseudocode algorithm w/pencil & paper, a.k.a. desk checking While ( the quotient is not zero ) Divide the decimal number by the new base Make the remainder the next digit to the left in the answer Replace the original decimal number with What is 93 in base 8? 93/8 gives 11 remainder 5 11/8 gives 1 remainder 3 1/ 8 gives 0 remainder 1 answer 1 3 5 88

Organizing the solution in a computer-like way gives us better idea of what is required for the computer to execute it, e.g. two numbers need to be entered, etc. 89

QUIZ: Desk-check the repeated division algorithm with decimalnumber = 242, and newbase = 8 Answer: 362 90

SKIP 6.6 Testing 91

Read and take notes in notebook: Software Piracy and Copyrighting Have you every "borrowed" software from a friend? Have you ever "lent" software to a friend? Did you know that about 100,000 jobs are lost in the US every year due to such "borrowing" and "lending?" 92

Chapter Review Questions List the operations that a computer can perform Describe the important features of the Pep/8 virtual machine Distinguish between immediate addressing mode and direct addressing mode Write a simple machine-language program Distinguish between machine language and assembly language 93

Chapter Review Questions Describe the steps in creating and running an assembly-language program Write a simple program in assembly program Distinguish between instructions to the assembler (a.k.a. directives) and instructions to be translated into machine code (a.k.a. executable instructions) Distinguish between following an algorithm and developing one 94

Chapter Review Questions Describe the pseudocode constructs used in expressing an algorithm Use pseudocode to express and algorithm Distinguish between black-box and clear-box testing 95

Homework Due Wednesday, Oct.26 End of chapter exercises: 10, 11, 12, 13, 14, 15, 18, 20, Correction in 20: use E1 instead of E0 27, 34, Hint for 34: machine code 31 means decimal input 36, 41, Hint for 41: How are integers represented in Pep/8? 44, 45

All PEP instructions, with machine codes 00 Stop STOP 04 Branch unconditional BR 08 Branch if Less Than BRLT 0A Branch if equal BREQ 31 Decimal Input Direct DECI 38 Decimal Output Immediate DECO 39 Decimal Output Direct DECO 49 Char. Input Direct CHARI 50 Char. Output Immediate CHARO 51 Char. Output Direct CHARO 70 Add to A Immediate ADDA 71 Add to A Direct ADDA 80 Subtract from A Immediate SUBA 81 Subtract from A Direct SUBA C0 Load into A Immediate LDA C1 Load into A Direct LDA E1 Store A Direct STA 97