Why Computer Architecture is Exciting and Challenging :Why Computer Architecture is Exciting and Challenging
Computer Architecture 101 :slide 2 Computer Architecture 101 Computer architects design computer systems
Processors: Intel Pentium 4, IBM PowerPC
Also: memory systems, interconnections, ??? Pentium cache
memory memory
(DRAM) bridge to I/O disk ethernet
card
Intro to Microarchitecture (CPS 220 in 1 slide) :slide 3 Intro 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 (>2 GHz)
Do more work (execute instructions) at same time
Intro to Multiprocessor Architecture :slide 4 Intro to Multiprocessor Architecture I design computer systems with multiple processors Node Node Node Interconnection
Network Node
What Multiprocessor Architects Do All Day :slide 5 What 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
Outline :slide 6 Outline What is computer architecture?
Why is architecture exciting?
Fast-paced: Technology trends
Important: Prevalence of computers
Why is architecture challenging?
Technology Trends – Why do I Care? :slide 7 Technology 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! time parameter
Technology Trends – A Few Examples :slide 8 Technology Trends – A Few Examples Number of transistors
Doubles every 18 months (Moore’s 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
Technology Trends – Good or Bad? :slide 9 Technology Trends – Good or Bad? Pessimist: trends make designs obsolete
But now I have to re-think everything I’d 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
What To Do With a Billion Transistors? :slide 10 What To Do With a Billion Transistors? Make the processors bigger Proc Make more little processors Proc chip chip Proc Proc
Outline :slide 11 Outline What is computer architecture?
Why is architecture exciting?
Fast-paced: Technology trends
Important: Prevalence of computers
Why is architecture challenging?
Prevalence of Computers :slide 12 Prevalence of Computers They’re everywhere!
Desktops, laptops, cars, airplanes, ???
Optimist/Architect:
More opportunities to innovate!
Pessimist: we’re in trouble if:
They fail
They use up too much power
Let’s look at these two issues now
Computer Availability :slide 13 Computer 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
Power Usage :slide 14 Power Usage Used to just be a problem for supercomputers
E.g., Cray computers came with coolant system
Now it’s a problem for all computers (tech trend!)
More computers using more power
Outline :slide 15 Outline What is computer architecture?
Why is architecture exciting?
Why is architecture challenging?
Difficult to evaluate solutions
Inter-related with other fields
Ways to Evaluate New Architectures :slide 16 Ways to Evaluate New Architectures Runtime speed Precision Ease of development & Flexibility Simulating Modeling Building Tradeoff between three desired features
Building :slide 17 Building 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
Modeling :slide 18 Modeling 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 rate*penalty
Simulating :slide 19 Simulating 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
Simulation Challenges :slide 20 Simulation Challenges Simulator Application System description Performance results Tough problems associated with each arrow!
Applications to Simulate :slide 21 Applications 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)
???
Describing Simulated System :slide 22 Describing 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
Performance Results :slide 23 Performance 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?
Can’t do it!
Major problem in architecture research
JIR = “Journal of Irreproducible Results”
Outline :slide 24 Outline What is computer architecture?
Why is architecture exciting?
Why is architecture challenging?
Difficult to evaluate solutions
Inter-related with other fields
Why Architects Need Friends :slide 25 Why 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)
How Architecture Relates to Other Areas :slide 26 How Architecture Relates to Other Areas Besides these interactions, also global issues!
Power, system verification, performance analysis, etc.
How Architecture Relates to Hardware (EE) :slide 27 How Architecture Relates to Hardware (EE) Computer Architecture Operating Systems, Compilers, Networking Software Circuits, Wires, Network Hardware Application Software Architecture should enable efficient hardware design
Avoid huge hardware structures
Avoid cross-chip wires
How Architecture Relates to System Software :slide 28 How Architecture Relates to System Software Computer Architecture Operating Systems, Compilers, Networking Software Circuits, Wires, Network Hardware Application Software Architecture should support system software
Provide good target for compiler (unlike IA-64?)
Support important OS features (such as synchronization)
How Architecture Relates to User Software :slide 29 How Architecture Relates to User Software Computer Architecture Operating Systems, Compilers, Networking Software Circuits, Wires, Network Hardware Application Software Architecture should efficiently run important apps
Intel added MMX hardware to support media apps
Sun & IBM design multiprocessors for commercial apps
Conclusions :slide 30 Conclusions 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