Post on 03-Jan-2016
CS2504, Spring'2007©Dimitris Nikolopoulos
CS2504: Computer Organization
Lecture 1: Welcome to CS2504Instructor: Dimitris Nikolopoulos
(Δημήτρης Νικολόπουλος)
CS2504, Spring'2007©Dimitris Nikolopoulos
2
Administrivia
Instructor: Dimitris Nikolopoulos Office hours: MCB 614, Monday 10.00am-
11.30am 217 VTKWII Building, Wednesday 3.00pm-
4.30pm By appointment: dsn@cs.vt.edu
TA: Ganesh Narayanaswami Office hours: TBD cnganesh@cs.vt.edu
CS2504, Spring'2007©Dimitris Nikolopoulos
3
Administrivia
Course structure: Lectures, discussion, some problem solving 10% pop quizzes (always have a notebook),
20% midterm, 25% final, 50% homework (including programming and logic design assignments)
Midterm, final, quizzes in class. Usual honor rules apply
Use common sense You can not share code or written material You can share ideas
CS2504, Spring'2007©Dimitris Nikolopoulos
4
Prerequisites
Familiarity with UNIX (CS 2204) Data structures and C++ (CS 2605)
Grades C or higher Fill out forms, honestly
CS2504, Spring'2007©Dimitris Nikolopoulos
5
Textbook
Patterson and Hennessy, Computer Organization and Design, 3ed. Additional material on CD
Software (simulators, etc.) Practice problems
Course web sites: http://courses.cs.vt.edu/~cs2504 Make a habit of checking the web site! http://forum.cs.vt.edu Curator to be used for homework assignments
CS2504, Spring'2007©Dimitris Nikolopoulos
6
Assignments
Submitted online via curator Instructions for file formats, coding
rules, tools etc. will be posted Primary tools: SPIM, LogicSIM Late submission penalized by 25% per
diem We do use plagiarism detection tools Protocol:
Discuss grade with grader (TA or DSN) If not resolved, discuss further with DSN
CS2504, Spring'2007©Dimitris Nikolopoulos
7
Assignments
Use common sense: Take frequent backups Keep copies of your assignments until they
are graded and any grading issues are resolved
Assignments are atomic Can't prevent exchange of ideas. Feel free! Don't exchange code Do not edit the output! We run the
assignments and we enforce occasional demos
Use reasonable coding principles Some instructions will be posted. Use comments, reasonable identation, etc.
CS2504, Spring'2007©Dimitris Nikolopoulos
8
Reading
Read the book, lectures follow the book Read lecture notes, come to lectures
Check University policies for attendance Lectures convey useful insight Lectures will be posted shortly after class Reward for bugs in lecture notes
Consult frequently with the TA and DSN Nice guys, help a lot!
Textbook CD, companion site Google!
CS2504, Spring'2007©Dimitris Nikolopoulos
9
Evaluation
Graded on a curve: 100-point scale Top 10% of class A, If within 95% of top 10% average A- 1 point under A, B+ 2 points under A B 10 points from A, C 20 points etc Curves may foster some competition, but they
also shield you from unexpected failures in tests and assignments
Instructor reserves right to tune grading policy
CS2504, Spring'2007©Dimitris Nikolopoulos
10
Course outline
I. Computers, abstractions and technology
II.Instruction set architecture: talking to the computer in its own language
III.Arithmetic for computers
IV.Understanding and measuring performance
V.Processor: Datapath and control
VI.Improving performance: pipelines and ILP
VII.Memory hierarchies
VIII.Storage and I/O
IX.Multiprocessors and clusters
CS2504, Spring'2007©Dimitris Nikolopoulos
12
Computer revolution
Computers in ATMs Computers in cars Laptops, palmtops, cell phones Settop boxes, Sony PS3, Wii Computers and the web Computers and scientific revolution
Human genome Climate change Nuclear reactions
CS2504, Spring'2007©Dimitris Nikolopoulos
13
Computers around us
Desktops: one user, at home Servers: many users, remotely Supercomputers: highest performance Embedded computers: computers
hidden inside a box, running one application
Class quiz: Which category has the highest population on the planet?
CS2504, Spring'2007©Dimitris Nikolopoulos
15
Quiz set No. 2
How many of you know what a Pentium processor is?
How many of you know what an ARM processor is?
How many of you think that they are carrying an ARM processor in their jackets?
CS2504, Spring'2007©Dimitris Nikolopoulos
17
Below your program
System software Operating system:
hiding complexities, managing resources efficiently
Compiler: translate high-level languages into assembly language instructions
Assembler: translate assembly instructions to bit streams
CS2504, Spring'2007©Dimitris Nikolopoulos
21
Some definitions
Integrated circuit A large collection of transistors
CPU Microprocessor
Datapath and control Arithmetic and instruction logic in the CPU
DRAM Volatile storage for data and instructions
CS2504, Spring'2007©Dimitris Nikolopoulos
22
Some definitions
Cache Volatile superfast storage for instructions
and data Non-volatile storage
Disks, tapes and other media for permanent storage
ISA (instruction set architecture) Abstract interface between hardware and
software: how to talk to a machine correctly ABI (application binary interface)
ISA plus OS interfaces for talking to devices other than the CPU
CS2504, Spring'2007©Dimitris Nikolopoulos
23
Abstracting it away
Computers seen as layers of abstractions: Each layers provides an interface to access
the computer and hides implementation details from the layers above it
Example: binary code, instruction set, high-level programming language, component programming
Simplifies computing tasks, such as programming, compiling, running programs
CS has been raising the level of abstraction for almost 50 years
Some indications that this trend may change in the near future (blurred boundaries)
CS2504, Spring'2007©Dimitris Nikolopoulos
24
Memory hierarchies
A hierarchy of storage “devices”: E.g. Cache, DRAM, disk, tapes, the library Moving down: Lower cost, increased capacity,
slower access time What makes memory hierarchies work:
The principle of locality Programs go through phases A program needs only a portion of its
instructions/data to execute in the time span of a phase
Adjacent data accessed by adjacent instructions Data is often reused
CS2504, Spring'2007©Dimitris Nikolopoulos
25
The network
Wasn't even in the CO books until the latest edition...
Now, a computers without a network interface may be considered useless!
Networking drives computer evolution in many ways
CS2504, Spring'2007©Dimitris Nikolopoulos
28
Moore's law discussion
Many project its end Some reasons for being pessimistic:
Physical limitations with packaging components in silicon
Physical limitations with power. Microprocessor power density is similar to that of nuclear reactors...
Physical limitations with distance. Signals need time to travel inside the processor...
CS2504, Spring'2007©Dimitris Nikolopoulos
29
Moore's law discussion
What is the driving force? For many years: technology! Able to package more transistors on a chip Think of PC ads you've seen in the past. All
about clock-rate... Think of PC ads you've seen recently. All
about multicore... So what changed?
CS2504, Spring'2007©Dimitris Nikolopoulos
30
Staying on Moore's curve
Innovation in the design of microprocessors has become more important Instruction-level parallelism Prediction, speculation Thread-level parallelism Better organization of memory hierarchies
System software has become more important Optimizing compilers for exotic
microprocessors Parallelism in algorithms and system
software
CS2504, Spring'2007©Dimitris Nikolopoulos
31
Recap
An exciting, rapidly changing field of study: The computer is ubiquitous
You may be carrying 2-3 with you as we speak May have a few tens of them at home
Exponential growth driven by: Technology Innovation
Technology that changes our lives in ways not seen before:
Google and access to information The human genome The $100 laptop The virtual patient