Title: Why Computer Architecture is Exciting and Challenging
1Why Computer Architecture is Exciting and
Challenging
- Daniel Sorin
- Department of Electrical Computer Engineering
- Duke University
2Computer Architecture 101
- Computer architects design computer systems
- Processors Intel Pentium 4, IBM PowerPC
- Also memory systems, interconnections, ???
Pentium
disk
ethernet card
cache memory
memory (DRAM)
bridge to I/O
3Intro to Microarchitecture (CPS 220 in 1 slide)
- Microarchitects design processors
- Goals for processors
- Faster!!!!
- Higher bandwidth communication with memory system
- Backward-compatible with previous models
- How do we make processors faster?
- Faster clocks (gt2 GHz)
- Do more work (execute instructions) at same time
4Intro to Multiprocessor Architecture
- I design computer systems with multiple
processors
Node
Node
Node
Node
Interconnection Network
5What Multiprocessor Architects Do All Day
- How do we make processors work together?
- Exploit parallelism in applications
- Example web server
- Each processor handles different requests
- Processors communicate occasionally to synch up
- Some challenges
- Interconnection network design
- Protocols for communicating and sharing data
- Scalability
- Reliability
6Outline
- What is computer architecture?
- Why is architecture exciting?
- Fast-paced Technology trends
- Important Prevalence of computers
- Why is architecture challenging?
7Technology Trends Why do I Care?
- We design an architecture for a given technology
- Technology parameters
- Number of transistors on a chip
- Transistor speed
- Amount of memory
- Memory speed
- Bandwidth between components
- Power usage
- Applications to be run on system
- All of these change dramatically over time!
parameter
time
8Technology Trends A Few Examples
- Number of transistors
- Doubles every 18 months (Moores Law)
- Memory size
- 1992 I bought an extra 512Kbytes for my desktop
- 2002 My desktop came with 512 Mbytes
- Power usage
- Pentium 4 can draw 50 amps of current and burn 50
W - Important applications
- Word processing, spreadsheets ? multimedia, web
surfing
9Technology Trends Good or Bad?
- Pessimist trends make designs obsolete
- But now I have to re-think everything Id already
solved! - Optimist/Architect trends offer opportunities
- What can do we do with a billion transistors?
- Good design ideas ?? Bad design ideas
- E.g., was good idea to scale up processor sizes
- But, it now uses too much power and is too complex
10What To Do With a Billion Transistors?
- Make the processors bigger
Proc
chip
- Make more little processors
Proc
Proc
Proc
chip
11Outline
- What is computer architecture?
- Why is architecture exciting?
- Fast-paced Technology trends
- Important Prevalence of computers
- Why is architecture challenging?
12Prevalence of Computers
- Theyre everywhere!
- Desktops, laptops, cars, airplanes, ???
- Optimist/Architect
- More opportunities to innovate!
- Pessimist were in trouble if
- They fail
- They use up too much power
- Lets look at these two issues now
13Computer Availability
- Availability probability that computer works
correctly - More parts ? more parts that can fail
- How do we protect computer from failing?
- Redundancy (e.g., double bagging your groceries)
- Recovery mechanisms (e.g., Undo button in
PowerPoint) - My research explores how to detect errors and
recover from them
14Power Usage
- Used to just be a problem for supercomputers
- E.g., Cray computers came with coolant system
- Now its a problem for all computers (tech
trend!) - More computers using more power
15Outline
- What is computer architecture?
- Why is architecture exciting?
- Why is architecture challenging?
- Difficult to evaluate solutions
- Inter-related with other fields
16Ways to Evaluate New Architectures
Tradeoff between three desired features
Ease of development
Flexibility
Modeling
Simulating
Runtime speed
Precision
Building
17Building
- Construct a hardware prototype
- Advantages
- Way cool to show off hardware to friends
- Runs quickly
- Disadvantages
- Takes long time (grad student time!) to build
- Expensive
- Not flexible
- ? Generally too labor intensive for research
studies
18Modeling
- Mathematically model the system
- Use probabilities and/or queuing models
- Advantages
- Very flexible
- Very quick to develop
- Runs quickly
- Disadvantages
- Cannot capture effects of system details
- Architects are skeptical of models
- ? Generally OK for back of the envelope estimates
mem time hit time miss ratepenalty
19Simulating
- Write a program that mimics system behavior
- Advantages
- Very flexible
- Relatively quick to develop
- Disadvantages
- Runs slowly (e.g., 30,000 times slower than
hardware) - ? Method of choice for most architectural
research
20Simulation Challenges
Application
Simulator
Performance results
System description
- Tough problems associated with each arrow!
21Applications to Simulate
- We care how system does on important applications
- But who defines important? (I do!)
- Types of applications
- Scientific (genomics, weather simulation, protein
folding) - Commercial (database, web serving, application
serving) - Desktop (office productivity software,
multimedia) - Portable (voice recognition)
- ???
22Describing Simulated System
- How detailed must our simulator be?
- Model every transistor in the processor?
- Would take too long
- Abstract away details of processor organization?
- Could miss important effects of processor
features - Could achieve wrong conclusion
- Need balance
- Model in detail only where necessary
- E.g., I model memory system in detail, but
abstract disks
23Performance Results
- How do tell if our design is good?
- Need metrics for evaluation
- Performance metrics
- Clock speed (gigahertz)?
- Instructions per cycle?
- Database transactions per second
- Compare results to other published research?
- Cant do it!
- Major problem in architecture research
- JIR Journal of Irreproducible Results
24Outline
- What is computer architecture?
- Why is architecture exciting?
- Why is architecture challenging?
- Difficult to evaluate solutions
- Inter-related with other fields
25Why Architects Need Friends
- Architecture is considered both computer
engineering and computer science - Architects interact with other areas
- Circuit design (Electrical Engineering)
- Transmission lines (EE)
- Power (EE, Mechanical Engineering)
- Compilers (Comp Sci)
- Operating systems (CS)
- Networking (EE, CS)
- Databases (CS)
- Queuing theory (CS, EE, Industrial Engineering)
26How Architecture Relates to Other Areas
- Besides these interactions, also global issues!
- Power, system verification, performance analysis,
etc.
27How Architecture Relates to Hardware (EE)
Application Software
Operating Systems, Compilers, Networking Software
Computer Architecture
Circuits, Wires, Network Hardware
- Architecture should enable efficient hardware
design - Avoid huge hardware structures
- Avoid cross-chip wires
28How Architecture Relates to System Software
Application Software
Operating Systems, Compilers, Networking Software
Computer Architecture
Circuits, Wires, Network Hardware
- Architecture should support system software
- Provide good target for compiler (unlike IA-64?)
- Support important OS features (such as
synchronization)
29How Architecture Relates to User Software
Application Software
Operating Systems, Compilers, Networking Software
Computer Architecture
Circuits, Wires, Network Hardware
- Architecture should efficiently run important
apps - Intel added MMX hardware to support media apps
- Sun IBM design multiprocessors for commercial
apps
30Conclusions
- Computer architecture is way cool, but not easy
- If it was easy, everyone would do it. - my Mom
- Students interested in architecture should
- Take ECE 259 / CPS 221 in the spring
- Attend architecture/systems seminars in CS
department - Take courses in related fields