CSC 1200 Computer Organization

Download Report

Transcript CSC 1200 Computer Organization

CSC 2400
Computer Systems I
Lecture 3
Big Ideas
Big Idea: Universal Computing Device
All computers, given enough time and memory,
are capable of computing exactly the same things.
=
PDA
=
Workstation
Supercomputer
2
Charles Babbage
1791 – 1871
English mathematician,
philosopher, inventor and
mechanical engineer
“Father of the Computer”
Invented first mechanical
computer
3
Babbage’s Difference Engine
4
Ada Lovelace
1815 – 1852
English mathematician and
writer
First computer programmer,
worked on Difference Engine
Daughter of poet Lord Byron
5
Alan Turing
1912 – 1954
British mathematician,
logician, cryptanalyst, and
computer scientist
“Father of Computer Science
and Artificial Intelligence”
Cracked the Enigma
6
Enigma machine
Electro-mechanical rotor
cipher machine
Encrypt & decrypt secret
messages
Select a combination of
letters as a code
Type each letter of msg
Write down each coded letter
7
Turing Machine
Mathematical model of a device that can perform
any computation – Alan Turing (1937)
• ability to read/write symbols on an infinite “tape”
• state transitions, based on current state and symbol
Every computation can be performed by some
Turing machine. (Turing’s thesis)
a,b
Tadd
a+b
Turing machine that adds
a,b
Tmul
ab
Turing machine that multiplies
8
Universal Turing Machine
Turing described a Turing machine that could implement
all other Turing machines.
• inputs: data, plus a description of computation (Turing machine)
Tadd, Tmul
U
a,b,c
c(a+b)
Universal Turing Machine
U is programmable – so is a computer!
• instructions are part of the input data
• a computer can emulate a Universal Turing Machine,
and vice versa
Therefore, a computer is a universal computing device!
9
From Theory to Practice
In theory, computer can compute anything
that’s possible to compute
• given enough memory and time
In practice, solving problems involves
computing under constraints.
• time
 weather forecast, next frame of animation, ...
• cost
 cell phone, automotive engine controller, ...
• power
 cell phone, handheld video game, ...
10
Computer System: Layers of Abstraction
Application Program
Algorithms
Software
Hardware
Language
Instruction Set Architecture
(and I/O Interfaces)
Microarchitecture
Circuits
Devices
11
Big Idea: Transformations Between Layers
How do we solve a problem using a computer?
A systematic sequence of transformations between
layers of abstraction.
Problem
Software Design:
choose algorithms and data structures
Algorithm
Programming:
use language to express design
Program
Instr Set
Architecture
Compiling/Interpreting:
convert language to
machine instructions
12
Deeper and Deeper…
Instr Set
Architecture
Processor Design:
choose structures to implement ISA
Microarch
Circuits
Logic/Circuit Design:
gates and low-level circuits to
implement components
Devices
Process Engineering & Fabrication:
develop and manufacture
lowest-level components
13
Descriptions of Each Level
Problem Statement
• stated using "natural language"
• may be ambiguous, imprecise
Algorithm
• step-by-step procedure, guaranteed to finish
• definiteness, effective computability, finiteness
Program
• express the algorithm using a computer language
• high-level language, low-level language
Instruction Set Architecture (ISA)
• specifies the set of instructions the computer can perform
• data types, addressing mode
14
Descriptions of Each Level (cont.)
Microarchitecture
• detailed organization of a processor implementation
• different implementations of a single ISA
Logic Circuits
• combine basic operations to realize microarchitecture
• many different ways to implement a single function
(e.g., addition)
Devices
• properties of materials, manufacturability
15
What is a Compiler?
• A compiler is a program
• Its input is the text of a program in a particular
language, say C
• The compiler translates the C code into the
instruction set understood by the computer
• The translation is not a line by line transliteration.
Optimization.
16
Simple Example
From a program we write:
sum = x + y + z;
How it might look using ISA-defined machine instructions:
ADD t1, x, y
ADD t2, t1, z
MOV sum, t2
17
What is the ISA?
ISA = Instruction Set Architecture
•List of all instructions, or operations, the computer can do
•Instruction: type of instruction, 0 or more operands
•Instruction format: What do the instructions look like?
•Example instruction: 1000 0004 0002
ADD
4
2
•Types of instructions: ADD, MULT, LOAD, STORE
•Types of operands: the data types, addressing modes
18
Levels of computer language
User: applications (Word, Excel, Netscape, etc.)
High-level: Java, C++, C (sort of medium-level)
Machine
Dependent
Machine
Independent
Low-level: Assembly language (humanreadable machine language)
ISA: instruction set, addressing modes of
a specific line of computers
Microarchitecture: bit settings that
activate specific data flows
Hardware: understands voltages
19
Moore's Law (1967)


Noted that the
number of transistors
per unit area had
doubled every year
from 1958 to 1965
Expected the trend
to last “for at least
ten years”
Gordon Moore
Co-founder of Intel
Often misquoted as
“the speed will double
every 18 months”

Number of Transistors over Time
10 GHz
1 GHz
100 MHz
10 MHz
1 MHz
Processor vs. Memory Speed over Time
10 GHz
1 GHz
100 MHz
10 MHz
1 MHz
What’s the State-of-the-Art?
•Fastest commercially available CPU: ~5GHz
•Fastest experimental CPU: 500Ghz
– Need to cool it down to 4°K, though
•Fastest theoretical transistor: 1THz
The End of Moore’s Law?
•Production limitations
•Physical limitations
•Bottleneck issues
•Market issues
pre-1940s
Mechanical
1960s
Transistors
1940s
Electromagnetic
Relays
since 1970s
Integrated
Circuits
1950s
Vacuum
Tubes
The Future
Quantum
Computers?