Upload
christa-brockwell
View
226
Download
2
Tags:
Embed Size (px)
Citation preview
ISO 9126: Software Quality
• Internal Quality: Maintainability
– Analyzability, Testability, Stability, Changeability
• External Quality
– Functionality
– Usability
– Reliability
– Portability
– Efficiency
Moore's Law
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 MooreCo-founder of Intel
Often misquoted as Often misquoted as “the speed will double “the speed will double every 18 months”every 18 months”
Intel Processor Speeds over Time
1970 1980 1990 2000 2010
10 GHz
1 GHz
100 MHz
10 MHz
1 MHz 40048008
8080
8086
8028680386
80486
PentiumPentium II
Pentium IIIPentium 4
What’s the State-of-the-Art?
• Fastest commercially available CPU: ~4GHz
• 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
1940sElectromagnetic
Relays
pre-1940sMechanical 1950s
VacuumTubes
1960sTransistors
since 1970sIntegrated
CircuitsQuantum
Computers?
The Future
The Current Solution:The Current Solution:
ParallelismParallelism
Process-Level Parallelism
Early computers (1950s and 1960s) could only run one program at a time
When it finished, it would run the next one
Multi-programming operating systems (1970s) made it appear as if multiple programs were running simultaneously
Instruction-Level Parallelism
Rather than wait for an instruction to finish, start the next one as soon as possible
Very common in RISC architectures
Pipelining: Fetch/decode one instruction while executing another
Thread-Level Parallelism
Modern programming languages support threads, which allow a program to do more than one thing at a time
Examples Reading data from one source while writing to another Performing two parts of a calculation simultaneously Handling interaction with multiple users at the same
time
Today
Concurrency (threads) in C Does concurrency really make your code faster? Race conditions and synchronization
Short break; head to Moore 207 Lab assignment