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?