320 likes | 519 Views
Why Computer Architecture is Exciting and Challenging. Daniel Sorin Department of Electrical & Computer Engineering Duke University. Computer Architecture 101. Computer architects design computer systems Processors: Intel Pentium 4, IBM PowerPC Also: memory systems, interconnections, ???.
E N D
Why Computer Architecture is Exciting and Challenging Daniel Sorin Department of Electrical & Computer Engineering Duke University
Computer 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
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
Pentium disk ethernet card cache memory (DRAM) bridge to I/O Intro to Multiprocessor Architecture • I design computer systems with multiple processors Node Node Node Node Interconnection Network
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 • 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? • 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
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? • 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? • Make the processors bigger Proc chip • Make more little processors Proc Proc Proc chip
Outline • What is computer architecture? • Why is architecture exciting? • Fast-paced: Technology trends • Important: Prevalence of computers • Why is architecture challenging?
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 • 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 • 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 • 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 Tradeoff between three desired features Ease of development & Flexibility Modeling Simulating Precision Runtime speed Building
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 • 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 • 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 Application Simulator Performance results System description • Tough problems associated with each arrow!
Applications to Simulate • We care how system does on importantapplications • 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 • 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 • 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 • 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 • 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)
Application Software Operating Systems, Compilers, Networking Software Computer Architecture Circuits, Wires, Network Hardware How Architecture Relates to Other Areas • Besides these interactions, also global issues! • Power, system verification, performance analysis, etc.
How 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
How 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)
How 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
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