55:035 — Spring 2007
Computer Architecture and Organization
Instructor: Andreas Wahle
1 main () {
printf ("Hello world\n");
}
57:017
?
55:035
55:032
3
Syllabus (tentative)
January Weeks 1–2: Basics
February 3–5 Instructions and Addressing
6–7 Arithmetic
March 8
///
Midterm (3/5/2007, 8:30–9:20am)
—Spring break—
9–10 Memory Design
April 11–13 Central Processing Unit
14–15 Devices and Optimization
May 16 Final (5/11/2007, 9:45–11:45am)
5
Administrative Issues
•
Scope, syllabus
•
Homeworks, exams, grading
•
Office hours and contacts
Introduction
•
Definitions, history of computing
2
Scope of the course
•
Overview — what is a computer?
•
Representation and handling of data
•
Processor examples
(68000, ARM, IA-32; “SISC”)
•
How to build a processor?
(arithmetic, CPU design)
•
Optimization
(memory management, parallelism)
4
Homeworks
•
Assigned weekly Wednesdays — due on
Friday of the following week before class
•
First assignment posted this Friday
•
On paper for theoretical assignments use grade for programming assignments
•
CSS account needed by mid February!
•
Unless explicitly stated, problems are to be worked on individually
6
Grading
15% Homework Assignments
20% Verilog Projects
25% Midterm Exam
35% Final Exam (cumulative)
5% “bad luck bonus”
100%
Final “letter” course grade to be determined by instructor!
7
Contact — Teaching Assistant
Keith Pump:
Office: 1313 Seamans Center
E-mail: kpump@engineering.uiowa.edu
Hours: 2:00pm–3:00pm T, W, Th
Contact — Instructor
Andreas Wahle:
Office: 3320 Seamans Center
E-mail: awahle@engineering.uiowa.edu
Phone: (319) 384-0773
Hours: 12:00–1:00pm M, W;
3:00–4:00pm Th
8
What is a Computer?
9
Definition
Com
• put
• er:
. . . a programmable electronic device designed for performing prescribed operations on data at high speed, esp. one housed with or linked to other devices for inputting, storing, retrieving,
and displaying the data.
c 1997 Random House Webster’s College Dictionary
To be added: general-purpose!
11
10
!
The Pre-Electronic Age
Abacus First calculator,
≈
5000 years ago
≈
1820 Mechanical calculator
Industrialization (looms)
≈
1941 First freely programmable computers based on electro-mechanical relays
•
North America: Mark-I
•
Europe: Z3, Colossus
12
?
Mark I (Harvard, IBM) Z3
From http://en.wikipedia.org/wiki/Harvard Mark I
13
First Generation: 1945–1955/56
•
General scheme for computer architecture by John von Neumann
•
Vacuum-tube technology
•
Magnetic core memory, tape storage
•
Mnemonic code (assembler language)
•
ENIAC (1946), UNIVAC I (1951)
15
UNIVAC 1107
From http://irb.cs.tu-berlin.de/
∼ zuse/Konrad Zuse
14
Second Generation: 1955/56–1964/65
•
Invention of the transistor (AT&T, 1948)
•
New languages (FORTRAN, COBOL)
•
Punch cards or punch tapes
•
Magnetic storage devices established
•
IBM 1401, UNIVAC 1107, . . .
⇒ birth of computer industry
16
UNIVAC 1107
From http://www.fourmilab.ch/documents/univac/
17
From http://www.fourmilab.ch/documents/univac/
18
Third Generation: 1964/65–1971/75
•
Integrated circuits (TI, 1958)
⇒ miniaturization
•
Direct access (terminals, dial-up lines)
•
Complex operating systems
•
Multi-user, multi-tasking
•
IBM 360, PDP series, . . .
19
Recent Developments
•
Multi-core (2, 4, 8) processors
•
Virtual machines (revisited)
•
Liquid chrystal displays
•
Exponential growth . . .
⇒ what’s next?
21
Fourth Generation: 1971/75–. . .
•
VLSI / ULSI
•
Computer on a chip (Intel 4004, 1971)
•
Cathode-ray-tube terminals
•
Raise of the PC (IBM, 1981)
•
Graphical user interfaces
(Xerox / Apple, 1984)
20
Overview (next time)
1. Functional units of a computer
2. Representation of data (numbers, etc.)
3. Instruction sets
4. Memory usage
5. . . .
22