EE 344
Digital Computer Systems
Lecture 1
Prof. Bruce Kim
Admin
Instructor:
Prof. Bruce Kim, Room: ST-635,
Assistant: Saikat Mondal, Lab, ST-630
Phone: 212-650-7934,
E-mail: bruce.kim@ieee.org
Office Hours: Monday and Wednesday
from 2:00-3:30PM, or by appointment
Student Learning Outcomes
At the conclusion of this course, the
students in this class should be able to
understand microprocessor
architectures, instruction sets, binary
data representations, evaluation of
computer performance, memory
systems, and computer programming on
MIPS simulator.
Textbook
Computer Organization and
Design:
The Hardware/Software
Interface, Revised
4th Edition by Morgan
Kaufmann
Plus Lecture notes
Tentative Outline of Topics
Overview of a computer system (1.5 lectures)
CPU performance evaluation (2 lectures)
High Level Languages (2.5 lectures)
Assembly Languages (2.5 lectures)
Instruction Set Architecture, binary data representations
(3.5 lectures)
CPU microarchitecture, pipelines (5 lectures)
Control Unit design and Microprogramming (5 lectures)
Memory system (3 lectures)
I/O (2 lectures)
Midterms (2 lectures)
Grading Policy
The final grade will be determined on a maximum
score of 100% based on:
Homework
15%
Quizzes
10%
Mid-term 1
20% (~mid March)
Mid-term 2
20% (~end April)
Final (cumulative)
35% (optional >90%)
(Wednesday, May 20@10:30AM-12:45PM; 6PM-8:15PM)
Grade Scale: A+(100-97); A(96-91); A-(90);
B+(89); B(88-81); B-(80); C+(79); C(78-71); C-(70);
D+(69); D(68-61); F(60-0)
Policy on Missed Exams &
Coursework
Missed quizzes will not be made up under any
circumstances.
I will accept late homework only if you notify me
before it is due for special circumstances. Late
homework will receive penalty of 20% per day
including weekends.
If you miss a test, the final exam will count extra
in order to make up for the missed test. A student
must get instructors permission before the test is
given.
Homeworks
Homeworks are due at the start of the
lecture
Homeworks can be done in groups but hand
in separately and provide independent
answers
If I feel that you copied the solutions
from others, youll get a zero in that
homework.
Class Make-Up
Due to attending research meetings, conferences and site visits
for my research, there may be a conflict with the class
schedule. In those circumstances, we will resolve in the
following manner:
Reschedule class to other time
Compensate by having earlier midterm exam
Compensate by substitute instructor
I will announce any class conflicts due to travel in
class and Blackboard.
Goals of this Course
Understand how computers work
Understand the relationship between
assembly language, machine language,
and high-level language using MIPS
simulator
Understand the interaction between
software and hardware
Understand the basics of computer
hardware design in high abstract
level
Things not covered are:
Any specific details of
hardware/circuits
All HW circuits are in blocks, i.e.,
Controller, Adder, memory, etc.
Exactly how the circuits connect
Exact HW configurations
This is not a HW course!
Why do you need to learn this?
To write more efficient programs
To design better computer systems
To be able to use computers in different
applications and environments
To be able to analyze the performance of
any computer system
To be able to make a purchasing decision or
offer expert advice
Blackboard: The Course
Webpage
Always look at the Announcements section
You will find the lecture slides in pdf
You will find the reading assignments
Homework
The Course Web Page will be constructed soon.
How to get an A in this
course?
You have three sources of information:
These lectures (on the course web page)
Your own notes (lectures are not enough)
The textbook (webpage shows which sections to read)
Computer Organization and Design: The Hardware/Software
Interface,
Revised 4th Edition Morgan Kaufmann; (2012)
Never wait till near the exam to study
Always ask about anything you dont understand.
Never be shy!
Dont memorize!
Keep an eye on the course webpage announcements
SoWhat is a computer?
The Computer is only a fast idiot, it has no imagination;
it cannot originate action. It is, and will remain, only a tool
to human beings.
American Library Associations reaction to UNIVAC computer
Exhibit at the 1964 New York Worlds fair.
Computers
are dumb!
Inside PC
10
Processors
The Motherboard
Opening the Box of Laptop
11
Classes of Computers
Desktop computers
Designed to deliver good performance to a single user at low cost
usually executing 3rd party software, usually incorporating a graphics
display, a keyboard, and a mouse
Servers
Used to run larger programs for multiple, simultaneous users typically
accessed only via a network and that places a greater emphasis on
dependability and (often) security
Supercomputers
A high performance, high cost class of servers with hundreds to
thousands of processors, terabytes of memory and petabytes of
storage that are used for high-end scientific and engineering
applications
Embedded computers (processors)
A computer inside another device used for running one predetermined
application
Basic Definitions
Kilobyte 210 or 1,024 bytes
Megabyte 220 or 1,048,576 bytes
sometimes rounded to 106 or 1,000,000 bytes
Gigabyte 230 or 1,073,741,824 bytes
sometimes rounded to 109 or 1,000,000,000 bytes
Terabyte 240 or 1,099,511,627,776 bytes
sometimes rounded to 1012 or 1,000,000,000,000 bytes
Petabyte 250 or 1024 terabytes
sometimes rounded to 1015 or 1,000,000,000,000,000
bytes
12
The Processor Market
It all starts with a problem
13
Hardware and Software
14
The Program
System software
Operating system supervising program that interfaces
the users program with the hardware (e.g., Linux,
MacOS, Windows) - Handles basic input and output
operations - Allocates storage and memory - Provides for
protected sharing among multiple applications
Compiler translate programs written in a high-level
language (e.g., C, Java) into instructions that the
hardware can execute
Program
15
Advantages of Higher Level
Higher-level languages
Allow the programmer to think in a more natural language and for their
intended use (Fortran for scientific computation, Cobol for business
programming, Lisp for symbol manipulation, Java for web programming,
)
Improve programmer productivity more understandable code that is
easier to debug and validate
Improve program maintainability
Allow programs to be independent of the computer on which they are
developed (compilers and assemblers can translate high-level language
programs to the binary instructions of any machine)
Emergence of optimizing compilers that produce very efficient
assembly code optimized for the target machine
As a result, very little programming is done today at the assembler level
Hardware Organization
CPU
Input
Data Path
Memory
Control Unit
Output
Storage
16
Hardware vs Software
Logically equivalent
Price/performance
Depends on the application
Computer History
Eckert and Mauchly
1st working electronic
computer (1946)
18,000 Vacuum tubes
1,800 instructions/sec
3,000 ft3
17
Computer History
Maurice Wilkes
EDSAC 1 (1949)
http://www.cl.cam.ac.uk/UoCCL/misc/EDSAC99/
1st stored program
computer
650 instructions/sec
1,400 ft3
Transistor History
Transistor William Shockley, Walter Brattain,
John Bardeen (Bell Labs) in 1947
Bipolar transistor Schockley in 1949
First bipolar digital logic gate Harris in 1956
First monolithic IC Jack Kilby in 1959
First commercial IC logic gates Fairchild 1960
18
Intel 4004 Die Photo
Introduced in 1970
First
microprocessor
2,250 transistors
12 mm2
108 KHz
Intel 8086 Die Scan
29,000 transistors
33 mm2
5 MHz
Introduced in 1979
Basic architecture
of the IA32 PC
19
Intel 80486 Die Scan
1,200,000
transistors
81 mm2
25 MHz
Introduced in 1989
1st pipelined
implementation of
IA32
Pentium Die Photo
3,100,000
transistors
296 mm2
60 MHz
Introduced in 1993
1st superscalar
implementation of
IA32
20
Pentium III
9,500,000
transistors
125 mm2
450 MHz
Introduced in 1999
http://www.intel.com/intel/museum/25anniv/hof/hof_main.htm
Pentium 4
55,000,000
transistors
146 mm2
3 GHz
Introduced in 2000
http://www.chip-architect.com
21
Pentium 4
IBM Power 5
Core 2 Duo
(Merom)
Montecito
Core Duo (Yonah)
Cell Processor
Niagara
(SUN UltraSparc T1)
Intel Core Processors
22
Inside the Processor
AMD Barcelona: 4 processor cores
23
Technology Trends:
Microprocessor Complexity
100000000
Itanium 2: 41 Million
Athlon (K7): 22 Million
Alpha 21264: 15 million
Pentium Pro: 5.5 million
PowerPC 620: 6.9 million
Alpha 21164: 9.3 million
Sparc Ultra: 5.2 million
10000000
Moores Law
Pentium
i80486
1000000
i80386
i80286
100000
2X transistors/Chip
Every 1.5 years
i8086
10000
i8080
i4004
1000
1970
1975
1980
1985
1990
1995
2000
Year
Called
Moores Law
Moores Law
24
Intel Co-Founders
Gordon Moore
Robert Noyce
Andrew Grove (CEO)
25
Computer Technology
Memory
DRAM capacity: 2x / 2 years (since 96);
64x size improvement in last decade.
Processor
Speed 2x / 1.5 years (since 85);
100X performance in last decade.
Disk
Capacity: 2x / 1 year (since 97)
250X size in last decade.
End of Lecture 1!
26