Transcript ppt

ECE291 – Comp Eng II
Lecture 1 – Overview and Review
Your Instructor
Josh Potts
[email protected]
(217)244-8032
242 Everitt Lab
Office Hours: 9-10 M-F
Your TA’s
Mike Urman
[email protected]
Karan Mehra
[email protected]
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)
Binary numbers
digital logic,
state machines
Programming
Classes
Machine-level
High-level languages
operations, computer
and algorithms
organization, data
movement
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 history
and historical perspective
1642
Blaise Pascal invents his mechanical
calculator (counting device)
1830
Charles Babbage’s
“Difference Engine”
First steampowered
“Analytical Engine”
1880’s
John H. Patterson’s
Mechanical cash
register (NCR)
First applications for
computing devices
1930’s
Claude Shannon suggests use of
the 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
computers
Vacuum tubes &
mechanical relays:
UNIVAC, ENIAC
 30 tons
 150 Kwatts
 80 bytes of
memory

1940’s – 1950’s
ILLIAC
Metze 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 use
transistors 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 Mainframes
Powerful, centralized CPU’s with terminals
 Age of the “big iron”

1970’s
DEC PDP-11s
Low-cost Mini-computers
 Age of the “Vaxen”

1974
Microprocessors
Intel introduces the 8080 (a “toy”)
 Bill Gates is a sophomore at Harvard

1974
Altair 8800
8080 CPU
 Affordable ($379 kit)
 No screen (LEDs on
front panel)
 No storage
 4KB memory

1974
Bill Gates and Paul Allen
start writing BASIC
Your instructor was born.
1977
Radio Shack TRS80
Apple II
Commodore-64
1980
IBM meets with Bill Gates to license
BASIC and MSDOS (QDOS)
1981
IBM Personal Computer
16-bit microprocessor: 4.77 MHz 8088
 ROM BASIC
 Cassette interface
 360KB floppy drive (optional)
 DOS 1.0
 ~$5000

1982
Illiac-IV decommissioned
1983
Low cost computing
10 MB hard disk costs just $3000
 640 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 80386
 Addresses up to 4 GB of memory

1986
First 32-bit 80x86 Systems

Compaq 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
systems
100 MIP CPU’s
 32MB DRAM
 12x CDROM’s

1997
Single Instruction Multiple Data (SIMD),
Multimedia Extensions / Matrix Math
Extensions (MMX)
AMD, K6
 Intel Pentium II
 Cyrix/IBM M2 (6x86 MX)

1997
Low-cost computing
233 MHz CPU w/MMX: $300
 64MB 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 computing
300 MHz MMX CPU + 3D: $125
 64 MB SDRAM: $75
 10 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 Changes
Moore’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 Review
from 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 Operation
Compute sum of digits, modulo base
 Propagate carries to next digit
 Must use like bases when performing
arithmetic

Number Systems VI
Pop quiz: Question 2
Add 128 and 58. The result
should 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 zeros
1…0 and 0…0
Difficult to process negative numbers
(special case)
 There is a better way to handle negative
numbers!

Signed Numbers III
Two’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 number
s = 0: positive (+)
 s = 1: negative (-)

Signed Numbers V
Three methods to compute a negative
number (n) (choose one method)
Inverting bits then add 1
 Take largest number (all ones), subtract n,
add 1
 Scan 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
Observations

When 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.