Title: CDA 3100 Computer Organization I
1CDA 3100 Computer Organization I
- Fall 2007
- Instructor Xiuwen Liu
- Teaching Assistants
- Department of Computer Science
- Florida State University
2Outline
- Class organization
- Syllabus recapitulated
- Class schedule (tentative)
- Introduction
3Class organization
- Class syllabus recapitulated
- Class web page
- http//www.cs.fsu.edu/liux/courses/cda3100/
- Class schedule (tentative)
- Comments
- Grading
- Academic honor code
- Programs you submitted must be your own work
- While discussions of class materials and
assignments are allowed, copying of solutions is
strictly prohibited
4Class Communication
- This class will use Blackboard as the means for
communication and for posting grades - Please make sure that you check your emails on
the account on your University record - The class web site will also be used to post
news, changes, and updates
5Required Textbook
- The required textbook for this class is
- Computer Organization and Design
- The hardware/software interface
- By David A. Patterson and John L. Hennessy
- Third Edition
- Morgan Kaufmann Plublishers, part of Elsevier
- 2005
- We will cover chapters 1-4, part of 5, and
appendices A and B
6Lecture Notes and Textbook
- All the materials that you will be tested on will
be covered in the lectures - Even though you may need to read the textbook for
review and further detail explanations - The lectures will be based on the textbook and
handouts distributed in class
7Programming Environment at CS
- For this class, we will use linprog most of the
time - linprog is a machine stack, consisting of four
Pentium III machines - Running Linux 2.6.9
- Another available machine stack is program,
consisting of four Sun workstations
(Sun-Fire-V240, sparc ISA) - Running SunOS 5.10
- Using ssh to remotely login to these machines
8Computer System Overview
- A computer system consists of hardware and
software that are combined to provide a tool to
solve problems (with best performance) - Hardware includes CPU, memory, disks, printers,
screen, keyboard, mouse ... - Software includes
- System software
- A general environment to create specific
applications - Application software
- A tool to solve a specific problem
9Computer System Overview cont.
10Steps to Run a C Program
- First we need to compile the program
11(No Transcript)
12Steps to Run a C Program
- Then we need to run the program
- The operating system locates where the program is
- Then it loads the program into memory
- The instructions in the program are then executed
one by one - When the program is done, the operating system
then releases the memory and other resources
allocated to the program
13Computer Organization
- Regardless what programming languages you use,
each program consists of instructions - In this class we will understand computer systems
by - Looking at instruction sets
- Programming (almost) directly using instructions
- Looking at designs of building blocks (gates,
registers, memory, ..) - Designing a processor (a simple implementation)
14How can We Understand Computer Systems?
- They are the most complicated machines ever built
on the earth - For example, each dual-core Intel Itanium 2 9000
processor contains 1.72 billion transistors - In comparison, a Boeing airplane has about 4
million parts - How can we comprehend these computer systems?
According to Intel http//www.intel.com/pressroom/
kits/core2duo/pdf/Intel20Quad20Core20Processor
20Update20E2809320Sept202006.pdf
15Opening the Box
16A Motherboard
17Silicon Graphics MIPS R12000
1840x Magnification
The actual size is about 80 microns
Silicon Graphics MIPS R12000
19Hierarchical Abstraction
- Instead, we focus on principles underlying these
computer systems using hierarchical abstractions
20Hierarchical Abstractions
- Applications/systems software
- Assembly/machine language
- Architectural issues i.e., caches, virtual
memory, pipelining - Boolean logic, 1s and 0s
- Sequential logic, finite state machines
- Combinational logic, arithmetic circuits
- Transistors used to build logic gates (CMOS)
- Semiconductors/silicon used to build transistors
- Properties of atoms, electrons, and quantum
dynamics - In this class we focus on the software-hardware
interface - Known as the instruction set architectures (ISA)
21Instruction Set Architecture
- A very important abstraction
- Interface between hardware and low-level software
- Standardizes instructions, machine language bit
patterns, etc. - Advantage different implementations of the same
architecture - Modern instruction set architectures
- IA-32, PowerPC, MIPS, SPARC, ARM,
22Five Classic Components
23Why This Class Important?
- If you want to create better computers
- It introduces necessary concepts, components, and
principles necessary to become a computer
scientist - By understanding the existing systems, you can
create better ones - If you want to build software with better
performance
24Example
- Rendering of realistic 3D objects requires
projection - It requires a lot of multiplications
25Why This Class Important?
- If you want to create better computers
- It introduces necessary concepts, components, and
principles for a computer scientist - By understanding the existing systems, you may
create better ones - If you want to build software with better
performance - If you want to have a good choice of jobs
- If you want to be a real computer science major
26Performance Increase of Workstations
27Market
28Market
29Career Potential for a Computer Science Graduate
Source NACE Fall 2005 Report (http//www.jobweb.c
om/resources/library/Careers_In/Starting_Salary_51
_01.htm)
30Career Potential for a Computer Science Graduate
Source NACE Fall 2005 Report (http//www.jobweb.c
om/resources/library/Careers_In/Starting_Salary_51
_01.htm)
31Historical Perspective
- One of the unique characteristics of computers
compared to other tools is that the same hardware
can be used for all possible computations - In other words, they are general purpose
computers - There is a long history of building such machines
- Abacus in 3000 BC
- Charles Babbage (1791-1871) first attempted to
build universal computing machines - Difference Engines 1 and 2
32Analytical Machine
33(No Transcript)
34Science Museums Reconstruction
35Jacquard Loom
36von Neumann Architecture
37ENIAC
- ENIAC built in World War II was the first general
purpose computer - Used for computing artillery firing tables
- 80 feet long by 8.5 feet high and several feet
wide - Each of the twenty 10 digit registers was 2 feet
long - Used 18,000 vacuum tubes
- Performed 1900 additions per second
38Technology Advances
39First transistor developed in 1948, used in the
second generation computers
40Technology Advances
41Performance Increases of Workstations
42Fun Fact Where are the Bugs in Programs
43Summary
- The focus of this class is to
- Understand instruction set architectures
- Be able to program using instructions
- Understand the building blocks of computer
hardware - Design a simple processor
- Next class Number representations