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.