ece291 – comp eng ii lecture 1 – overview and review

Post on 31-Dec-2015

225 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ECE291 – Comp Eng II

Lecture 1 – Overview and Review

Your Instructor

Josh Potts

jpotts@uiuc.edu

(217)244-8032

242 Everitt Lab

Office Hours: 9-10 M-F

Your TA’s

Mike Urman

urman@uiuc.edu

Karan Mehra

kmehra@uiuc.edu

ECE291 Web SIte

www.ece.uiuc.edu/ece291

Everything you need to know about ECE291

ECE291 Lab

Location: 238 Everitt Lab

Hours: 24 Hour Access

Assignments

Homework is distributed, completed,and graded online.

MP Handouts are online.

Your textbook is online.

Access all of these from the 291 web site.

NT Accounts

Go to www.ece.uiuc.edu/oics and click on “Create Account” to obtain your computer account for use in the

ECE291 lab. You should do this at least 24 hours prior to using the lab.

Evaluation

Your grade will be based on:

5 Homeworks

4 Machine Problems

1 Final Project

2 Exams

1 Final

Occasional Unannounced Quizzes

Course Goals I

ECE290 ECE291 (Everything in between)

Programming Classes

Binary numbers

digital logic,

state machines

Machine-level operations, computer

organization, data movement

High-level languages and algorithms

ECE291 bridges the gap between your logic classes and programming courses through assembly-level

programming of a real (80x86) computer

Course Goals II

You will become proficient in assembly-level programming

You will learn to organize large programs.

You will learn how to interface to hardware

Course Overview

Course Syllabus

Lecture, Exam, Homework, MP Schedule

Lab Staffing Schedule

Today’s Topics

History of computing

Rapid changes (Moore’s Law)

Review of previous classes

A very short historyand historical perspective

1642

Blaise Pascal invents his mechanical calculator (counting device)

1830

Charles Babbage’s “Difference Engine”

First steam-powered “Analytical Engine”

1880’s

John H. Patterson’s Mechanical cash register (NCR)

First applications for computing devices

1930’s

Claude Shannon suggests use ofthe binary system for use

with electronic circuits

1940’s

John Von Neumann proposes reconfigurable computing by storing

programs in memory

1940’s – 1950’s

First electronic computersVacuum tubes &

mechanical relays: UNIVAC, ENIAC

30 tons150 Kwatts80 bytes of

memory

1940’s – 1950’s

ILLIACMetze et. al. play Illinois fight song on accumulator bit – first computer music

1948

John Bardeen, Walter Brattain, and William Schockley file patent on

invention of the transistor

1958

Jack Kilby introduces concept of the “Integrated Circuit”

1960’s

Computers begin to usetransistors and integrated circuits

1965

Gordon Moore observes that every chip produced contains roughly twice the capacity of its predecessor and that new generations of chips were being

released every 18-24 months

Late 1960’s

IBM MainframesPowerful, centralized CPU’s with terminalsAge of the “big iron”

1970’s

DEC PDP-11sLow-cost Mini-computersAge of the “Vaxen”

1974

Microprocessors Intel introduces the 8080 (a “toy”)Bill Gates is a sophomore at Harvard

1974

Altair 88008080 CPUAffordable ($379 kit)No screen (LEDs on

front panel)No storage4KB memory

1974

Bill Gates and Paul Allenstart writing BASIC

Your instructor was born.

1977

Radio Shack TRS-80

Apple II

Commodore-64

1980

IBM meets with Bill Gates to license BASIC and MSDOS (QDOS)

1981

IBM Personal Computer16-bit microprocessor: 4.77 MHz 8088ROM BASICCassette interface360KB floppy drive (optional)DOS 1.0~$5000

1982

Illiac-IV decommissioned

1983

Low cost computing10 MB hard disk costs just $3000640 KB of memory costs $1000

Compaq introduces“Portable Computing”

1984

Macintosh: GUI based on work at Xerox

IBM introduces PC-AT: 80286-based system

Record year for IBM

1985

First 32-bit 80x86 CPU’s Intel introduces the 80386Addresses up to 4 GB of memory

1986

First 32-bit 80x86 SystemsCompaq introduces first

80386-based system

1989

Intel introduces 80486,includes math co-processor or

floating-point unit (FPU)

1992

AMD/Cyrix 486 (Compatible CPU’s)

Intel introduces Pentium (64-bit memory bus)

1995

AMD/Cyrix introduces 5x86

1 GB hard drive costs $300 (1000 times cheaper/MB than in 1983!)

1996

Use of Reduced Instruction Set Computer (RISC) core to execute 80x86 instructions AMD K5 (RISC Ops = ROPS) Intel Pentium Pro

Superscalar Execution AMD K5/K6 Cyrix M1 (6x86) Intel Pentium Pro

1996

Powerful entry-level systems100 MIP CPU’s32MB DRAM12x CDROM’s

1997

Single Instruction Multiple Data (SIMD), Multimedia Extensions / Matrix Math Extensions (MMX)AMD, K6 Intel Pentium IICyrix/IBM M2 (6x86 MX)

1997

Low-cost computing233 MHz CPU w/MMX: $30064MB RAM: $300 (300 times cheaper/MB

than in 1983!)

1998

Low-power portable computing

Single Instruction Multiple Data (SIMD) for floating point ops (AMD K6-2)

Integrated CPU/Video/Audio (Cyrix/NSM MediaGX)

1998

Low-cost computing300 MHz MMX CPU + 3D: $12564 MB SDRAM: $7510 GB hard disk: $200

1999

More floating point parallelism (Pentium III Katmai)Faster bus architectures (on-chip full speed caches)Explicit instruction-level floating-point parallelism (Itanium)Ubiquitous computing)Active networks

2000

1 GHz processors from AMD and Intel

Judge rules to breakup Microsoft

Rapid ChangesMoore’s Law

Moore’s Law

Estimates that the number of transistors per chip doubles every 18 months

Exponential growth!

Has been true for 20 years!

Moore’s Law

2^(20 years / 1.5 years / double) = 2^13.3 = 10,000 x performance!

Moore’s Law

“If we had similar progress in automotive technology, today you could buy a Lexus for about $2. It would travel at the speed of sound, and get about 600 miles on a thimble of gas.”

- Randall Tobias: Former Vice Chairman of AT&T

Material Reviewfrom previous classes

Prerequisite Knowledge

ECE290 is the official prerequisite

Number systems

Base conversions

Signed and unsigned numbers

Number Systems I

Base 10 representation (decimal) (0..9): d[n]*10^n + d[n-1]*10^(n-1) + ... +

d[2]*10^2 + d[1]*10^1 + d[0]*10^0 Eg: 3045

= 3*10^3 + 4*10^1 + 5*10^0 = 3000 + 40 + 5 = 3045

Number Systems II

Base 2 representation (binary) (0..1): d[n]*2^n + d[n-1]*2^(n-1) + ... + d[2]*^2 +

d[1]*2^1 + d[0]*2^0 Eg: 101101

= 1*2^5 + 1*2^3 + 1*2^2 + 1*2^0 = 32 + 8 + 4 + 1= 45

Number Systems III

Base 16 representation (hex) (0..9,A..F): d[n]*16^n + d[n-1]*16^(n-1) + ... +

d[2]*16^2 + d[1]*16^1 + d[0]*16^0 3AF

= 3*16^2 + 10*16^1 + 15*16^0 = 3*256 + 10*16 + 15= 943

Number Systems IV

Pop quiz: Question 1

What is the decimal representation of the hexadecimal number C0FFEE?

Number Systems V

Addition OperationCompute sum of digits, modulo basePropagate carries to next digitMust use like bases when performing

arithmetic

Number Systems VI

Pop quiz: Question 2

Add 128 and 58. The resultshould be in base 8

Base Conversion I

Division/Remainder method: Long division by largest power of base

Example: Convert 45 to binary 45 divides by 32 (2^5) once, leaves 13 13 divides by 8 (2^3) once, leaves 5 5 divides by 4 (2^2) once, leaves 1 1 divides by 1 (2^0) once, leaves nothing [done] Thus: 45 (base 10) == 101101 (base 2)

Base Conversion II

Pop quiz: Question 3

Convert the decimal 112 into Base 3

Signed Numbers I

We need a way to represent negative numbers

Simple idea: use the first bit as a sign bit!s = 0: positive (+)S = 1: negative (-)

Signed Numbers II

Problem: There are TWO zeros1…0 and 0…0

Difficult to process negative numbers (special case)

There is a better way to handle negative numbers!

Signed Numbers IIITwo’s complement

Numeric Formula: -d[n]*2^n + d[n-1]*2^(n-1) + ... + d[2]*2^2 + d[1]*2^1 + d[0]*2^0

Notice the negative sign in front of d[n]

Signed Numbers IV

To subtract A-B, perform A+(-B).

Now the addition operator works for negative numbers

Notice: First bit still represents the sign of the numbers = 0: positive (+)s = 1: negative (-)

Signed Numbers V

Three methods to compute a negative number (n) (choose one method) Inverting bits then add 1Take largest number (all ones), subtract n,

add 1Scan n from right to left. copy zeros, copy

1st one, invert rest

Signed Numbers VI

Examples (8-bit): -1 = 1111,1111 -2 = 1111,1110 -128 = 1000,0000 +1 = 0000,0001 +127 = 0111,1111 +128 = Invalid

Signed Numbers VII

Examples: (16-bit) -1 = 1111,1111,1111,1111 -2 = 1111,1111,1111,1110 -32,768 = 1000,0000,0000,0000

Signed Numbers VIII

ObservationsWhen you move a piece of data to a larger

register (increasing the number of bits), just extend the Nth bit to the left.

Signed Numbers IX

Pop quiz: Question 4

Calculate the 2’s compliment binary representation of –56.

Use the minimum number of bits to represent this number.

For Next Time…

Read Hyde (online):Sections 1.0-1.3, 1.7

Read Brey:Chapter 1, Browse Chapter 2

Read Lab Manual: Table of Contents, Sections 1, 2-1, and 2-2

Start HW0 (Due Thursday)

Next Lecture

80x86 Organization and Architecture, memory, segmentation, registers, C/assembler similarities.

top related