Xiⅱ Preface the first in-depth appendix on GPUs.I'd like to express again my appreciation to Jim Larus of Microsoft Research for his willingness in contributing his expertise on assembly language programming,as well as for welcoming readers of this book to use the simulator he developed and maintains. I am also very grateful for the contributions of the many experts who developed the new exercises for this new edition.Writing good exercises is not an easy task, and each contributor worked long and hard to develop problems that are both challenging and engaging: Chapter 1:Javier Bruguera(Universidade de Santiago de Compostela) Chapter 2:John Oliver(Cal Poly,San Luis Obispo),with contributions from Nicole Kaiyan(University of Adelaide)and Milos Prvulovic (Georgia Tech) Chapter 3:Matthew Farrens(University of California,Davis) Chapter 4:Milos Prvulovic (Georgia Tech) Chapter 5:Jichuan Chang,Jacob Leverich,Kevin Lim,and Partha Ranganathan(all from Hewlett-Packard),with contributions from Nicole Kaiyan(University of Adelaide) Chapter 6:Perry Alexander(The University of Kansas) Chapter 7:David Kaeli(Northeastern University) Peter Ashenden took on the Herculean task of editing and evaluating all of the new exercises.Moreover,he even added the substantial burden of developing the companion CD and new lecture slides. Thanks to David August and Prakash Prabhu of Princeton University for their work on the chapter quizzes that are available for instructors on the publisher's Web site. I relied on my Silicon Valley colleagues for much of the technical material that this book relies upon: AMD-for the details and measurements of the Opteron X4 (Barcelona): William Brantley,Vasileios Liaskovitis,Chuck Moore,and Brian Waldecker. Intel-for the prereleased information on the Intel Nehalem:Faye Briggs Micron-for background on Flash Memory in Chapter 6:Dean Klein Sun Microsystems-for the measurements of the instruction mixes for the SPEC CPU2006 benchmarks in Chapter 2 and details and measurements of the Sun Server x4150 in Chapter 6:Yan Fisher,John Fowler,Darryl Gove, Paul Joyce,Shenik Mehta,Pierre Reynes,Dimitry Stuve,Durgam Vahia, and David Weaver. U.C.Berkeley-Krste Asanovic (who supplied the idea for software concurrency versus hardware parallelism in Chapter 7),James Demmel
xxii Preface the first in-depth appendix on GPUs. I’d like to express again my appreciation to Jim Larus of Microsoft Research for his willingness in contributing his expertise on assembly language programming, as well as for welcoming readers of this book to use the simulator he developed and maintains. I am also very grateful for the contributions of the many experts who developed the new exercises for this new edition. Writing good exercises is not an easy task, and each contributor worked long and hard to develop problems that are both challenging and engaging: ■ Chapter 1: Javier Bruguera (Universidade de Santiago de Compostela) ■ Chapter 2: John Oliver (Cal Poly, San Luis Obispo), with contributions from Nicole Kaiyan (University of Adelaide) and Milos Prvulovic (Georgia Tech) ■ Chapter 3: Matthew Farrens (University of California, Davis) ■ Chapter 4: Milos Prvulovic (Georgia Tech) ■ Chapter 5: Jichuan Chang, Jacob Leverich, Kevin Lim, and Partha Ranganathan (all from Hewlett-Packard), with contributions from Nicole Kaiyan (University of Adelaide) ■ Chapter 6: Perry Alexander (The University of Kansas) ■ Chapter 7: David Kaeli (Northeastern University) Peter Ashenden took on the Herculean task of editing and evaluating all of the new exercises. Moreover, he even added the substantial burden of developing the companion CD and new lecture slides. Thanks to David August and Prakash Prabhu of Princeton University for their work on the chapter quizzes that are available for instructors on the publisher’s Web site. I relied on my Silicon Valley colleagues for much of the technical material that this book relies upon: ■ AMD—for the details and measurements of the Opteron X4 (Barcelona): William Brantley, Vasileios Liaskovitis, Chuck Moore, and Brian Waldecker. ■ Intel—for the prereleased information on the Intel Nehalem: Faye Briggs. ■ Micron—for background on Flash Memory in Chapter 6: Dean Klein. ■ Sun Microsystems—for the measurements of the instruction mixes for the SPEC CPU2006 benchmarks in Chapter 2 and details and measurements of the Sun Server x4150 in Chapter 6: Yan Fisher, John Fowler, Darryl Gove, Paul Joyce, Shenik Mehta, Pierre Reynes, Dimitry Stuve, Durgam Vahia, and David Weaver. ■ U.C. Berkeley—Krste Asanovic (who supplied the idea for software concurrency versus hardware parallelism in Chapter 7), James Demmel
Preface xxiii and Velvel Kahan (who commented on parallelism and floating-point calculations),Zhangxi Tan (who designed the cache controller and wrote the Verilog for it in Chapter 5),Sam Williams(who supplied the roofline model and the multicore measurements in Chapter 7),and the rest of my colleagues in the Par Lab who gave extensive suggestions and feedback on parallelism topics found throughout the book. I am grateful to the many instructors who answered the publisher's surveys, reviewed our proposals,and attended focus groups to analyze and respond to our plans for this edition.They include the following individuals:Focus Group:Mark Hill(University of Wisconsin,Madison),E.J.Kim (Texas A&M University),Jihong Kim(Seoul National University),Lu Peng(Louisiana State University),Dean Tullsen (UC San Diego),Ken Vollmar(Missouri State University),David Wood(University of Wisconsin,Madison),Ki Hwan Yum(University of Texas,San Antonio);Surveys and Reviews:Mahmoud Abou-Nasr(Wayne State University),Perry Alexander(The University of Kansas),Hakan Aydin(George Mason University),Hussein Badr(State University of New York at Stony Brook),Mac Baker (Virginia Military Institute), Ron Barnes (George Mason University),Douglas Blough (Georgia Institute of Technology),Kevin Bolding(Seattle Pacific University),Miodrag Bolic(University of Ottawa),John Bonomo(Westminster College),Jeff Braun (Montana Tech),Tom Briggs(Shippensburg University),Scott Burgess(Humboldt State University),Fazli Can(Bilkent University),Warren R.Carithers(Rochester Institute of Technology), Bruce Carlton(Mesa Community College),Nicholas Carter(University of Illinois at Urbana-Champaign),Anthony Cocchi(The City University of New York),Don Cooley(Utah State University),Robert D.Cupper(Allegheny College),Edward W. Davis(North Carolina State University),Nathaniel J.Davis (Air Force Institute of Technology),Molisa Derk(Oklahoma City University),Derek Eager(University of Saskatchewan),Ernest Ferguson (Northwest Missouri State University),Rhonda Kay Gaede (The University of Alabama),Etienne M.Gagnon (UQAM),Costa Gerousis(Christopher Newport University),Paul Gillard(Memorial University of Newfoundland),Michael Goldweber(Xavier University),Georgia Grant(College of San Mateo),Merrill Hall (The Master's College),Tyson Hall(Southern Adventist University),Ed Harcourt (Lawrence University),Justin E.Harlow(University of South Florida),Paul F.Hemler (Hampden-Sydney College),Martin Herbordt (Boston University),Steve J.Hodges (Cabrillo College),Kenneth Hopkinson (Cornell University),Dalton Hunkins (St.Bonaventure University),Baback Izadi(State University of New York-New Paltz),Reza Jafari,Robert W.Johnson (Colorado Technical University),Bharat Joshi (University of North Carolina, Charlotte),Nagarajan Kandasamy (Drexel University),Rajiv Kapadia,Ryan Kastner (University of California,Santa Barbara),Jim Kirk(Union University), Geoffrey S.Knauth (Lycoming College),Manish M.Kochhal (Wayne State),Suzan Koknar-Tezel (Saint Joseph's University),Angkul Kongmunvattana(Columbus State University),April Kontostathis (Ursinus College),Christos Kozyrakis (Stanford University),Danny Krizanc (Wesleyan University),Ashok Kumar, S.Kumar (The University of Texas),Robert N.Lea (University of Houston)
Preface xxiii and Velvel Kahan (who commented on parallelism and floating-point calculations), Zhangxi Tan (who designed the cache controller and wrote the Verilog for it in Chapter 5), Sam Williams (who supplied the roofline model and the multicore measurements in Chapter 7), and the rest of my colleagues in the Par Lab who gave extensive suggestions and feedback on parallelism topics found throughout the book. I am grateful to the many instructors who answered the publisher’s surveys, reviewed our proposals, and attended focus groups to analyze and respond to our plans for this edition. They include the following individuals: Focus Group: Mark Hill (University of Wisconsin, Madison), E.J. Kim (Texas A&M University), Jihong Kim (Seoul National University), Lu Peng (Louisiana State University), Dean Tullsen (UC San Diego), Ken Vollmar (Missouri State University), David Wood (University of Wisconsin, Madison), Ki Hwan Yum (University of Texas, San Antonio); Surveys and Reviews: Mahmoud Abou-Nasr (Wayne State University), Perry Alexander (The University of Kansas), Hakan Aydin (George Mason University), Hussein Badr (State University of New York at Stony Brook), Mac Baker (Virginia Military Institute), Ron Barnes (George Mason University), Douglas Blough (Georgia Institute of Technology), Kevin Bolding (Seattle Pacific University), Miodrag Bolic (University of Ottawa), John Bonomo (Westminster College), Jeff Braun (Montana Tech), Tom Briggs (Shippensburg University), Scott Burgess (Humboldt State University), Fazli Can (Bilkent University), Warren R. Carithers (Rochester Institute of Technology), Bruce Carlton (Mesa Community College), Nicholas Carter (University of Illinois at Urbana-Champaign), Anthony Cocchi (The City University of New York), Don Cooley (Utah State University), Robert D. Cupper (Allegheny College), Edward W. Davis (North Carolina State University), Nathaniel J. Davis (Air Force Institute of Technology), Molisa Derk (Oklahoma City University), Derek Eager (University of Saskatchewan), Ernest Ferguson (Northwest Missouri State University), Rhonda Kay Gaede (The University of Alabama), Etienne M. Gagnon (UQAM), Costa Gerousis (Christopher Newport University), Paul Gillard (Memorial University of Newfoundland), Michael Goldweber (Xavier University), Georgia Grant (College of San Mateo), Merrill Hall (The Master’s College), Tyson Hall (Southern Adventist University), Ed Harcourt (Lawrence University), Justin E. Harlow (University of South Florida), Paul F. Hemler (Hampden-Sydney College), Martin Herbordt (Boston University), Steve J. Hodges (Cabrillo College), Kenneth Hopkinson (Cornell University), Dalton Hunkins (St. Bonaventure University), Baback Izadi (State University of New York—New Paltz), Reza Jafari, Robert W. Johnson (Colorado Technical University), Bharat Joshi (University of North Carolina, Charlotte), Nagarajan Kandasamy (Drexel University), Rajiv Kapadia, Ryan Kastner (University of California, Santa Barbara), Jim Kirk (Union University), Geoffrey S. Knauth (Lycoming College), Manish M. Kochhal (Wayne State), Suzan Koknar-Tezel (Saint Joseph’s University), Angkul Kongmunvattana (Columbus State University), April Kontostathis (Ursinus College), Christos Kozyrakis (Stanford University), Danny Krizanc (Wesleyan University), Ashok Kumar, S. Kumar (The University of Texas), Robert N. Lea (University of Houston)
XXiV Preface Baoxin Li (Arizona State University),Li Liao (University of Delaware),Gary Livingston(University of Massachusetts),Michael Lyle,Douglas W.Lynn(Oregon Institute of Technology),Yashwant K Malaiya(Colorado State University),Bill Mark(University of Texas at Austin),Ananda Mondal(Claflin University),Alvin Moser (Seattle University),Walid Najjar (University of California,Riverside), Danial J.Neebel (Loras College),John Nestor (Lafayette College),Joe Oldham (Centre College),Timour Paltashev,James Parkerson (University of Arkansas), Shaunak Pawagi(SUNY at Stony Brook),Steve Pearce,Ted Pedersen(University of Minnesota),Gregory D Peterson(The University of Tennessee),Dejan Raskovic (University of Alaska,Fairbanks)Brad Richards(University of Puget Sound), Roman Rozanov,Louis Rubinfield (Villanova University),Md Abdus Salam (Southern University),Augustine Samba(Kent State University),Robert Schaefer (Daniel Webster College),Carolyn J.C.Schauble (Colorado State University), Keith Schubert(CSU San Bernardino),William L.Schultz,Kelly Shaw(University of Richmond),Shahram Shirani (McMaster University),Scott Sigman (Drury University),Bruce Smith,David Smith,Jeff W.Smith (University of Georgia, Athens),Philip Snyder (Johns Hopkins University),Alex Sprintson (Texas A&M), Timothy D.Stanley (Brigham Young University),Dean Stevens (Morningside College),Nozar Tabrizi (Kettering University),Yuval Tamir (UCLA),Alexander Taubin (Boston University),Will Thacker (Winthrop University),Mithuna Thottethodi(Purdue University),Manghui Tu(Southern Utah University),Rama Viswanathan (Beloit College),Guoping Wang (Indiana-Purdue University), Patricia Wenner (Bucknell University),Kent Wilken (University of California, Davis),David Wolfe (Gustavus Adolphus College),David Wood (University of Wisconsin,Madison),Mohamed Zahran (City College of New York),Gerald D. Zarnett (Ryerson University),Nian Zhang (South Dakota School of Mines Technology),Jiling Zhong(Troy University),Huiyang Zhou (The University of Central Florida),Weiyu Zhu(Illinois Wesleyan University). I would especially like to thank the Berkeley people who gave key feedback for Chapter 7 and Appendix A,which were the most challenging pieces to write for this edition:Krste Asanovic,Christopher Batten,Rastilav Bodik,Bryan Catanzaro, Jike Chong,Kaushik Data,Greg Giebling,Anik Jain,Jae Lee,Vasily Volkov,and Samuel Williams. A special thanks also goes to Mark Smotherman for making multiple passes to find technical and writing glitches that significantly improved the quality of this edition.He played an even more important role this time given that this edition was done as a solo act. We wish to thank the extended Morgan Kaufmann family for agreeing to publish this book again under the able leadership of Denise Penrose.Nathaniel McFadden was the developmental editor for this edition and worked with me weekly on the contents of the book.Kimberlee Honjo coordinated the surveying of users and their responses
xxiv Preface Baoxin Li (Arizona State University), Li Liao (University of Delaware), Gary Livingston (University of Massachusetts), Michael Lyle, Douglas W. Lynn (Oregon Institute of Technology), Yashwant K Malaiya (Colorado State University), Bill Mark (University of Texas at Austin), Ananda Mondal (Claflin University), Alvin Moser (Seattle University), Walid Najjar (University of California, Riverside), Danial J. Neebel (Loras College), John Nestor (Lafayette College), Joe Oldham (Centre College), Timour Paltashev, James Parkerson (University of Arkansas), Shaunak Pawagi (SUNY at Stony Brook), Steve Pearce, Ted Pedersen (University of Minnesota), Gregory D Peterson (The University of Tennessee), Dejan Raskovic (University of Alaska, Fairbanks) Brad Richards (University of Puget Sound), Roman Rozanov, Louis Rubinfield (Villanova University), Md Abdus Salam (Southern University), Augustine Samba (Kent State University), Robert Schaefer (Daniel Webster College), Carolyn J. C. Schauble (Colorado State University), Keith Schubert (CSU San Bernardino), William L. Schultz, Kelly Shaw (University of Richmond), Shahram Shirani (McMaster University), Scott Sigman (Drury University), Bruce Smith, David Smith, Jeff W. Smith (University of Georgia, Athens), Philip Snyder (Johns Hopkins University), Alex Sprintson (Texas A&M), Timothy D. Stanley (Brigham Young University), Dean Stevens (Morningside College), Nozar Tabrizi (Kettering University), Yuval Tamir (UCLA), Alexander Taubin (Boston University), Will Thacker (Winthrop University), Mithuna Thottethodi (Purdue University), Manghui Tu (Southern Utah University), Rama Viswanathan (Beloit College), Guoping Wang (Indiana-Purdue University), Patricia Wenner (Bucknell University), Kent Wilken (University of California, Davis), David Wolfe (Gustavus Adolphus College), David Wood (University of Wisconsin, Madison), Mohamed Zahran (City College of New York), Gerald D. Zarnett (Ryerson University), Nian Zhang (South Dakota School of Mines & Technology), Jiling Zhong (Troy University), Huiyang Zhou (The University of Central Florida), Weiyu Zhu (Illinois Wesleyan University). I would especially like to thank the Berkeley people who gave key feedback for Chapter 7 and Appendix A,which were the most challenging pieces to write for this edition: Krste Asanovic, Christopher Batten, Rastilav Bodik, Bryan Catanzaro, Jike Chong, Kaushik Data, Greg Giebling, Anik Jain, Jae Lee, Vasily Volkov, and Samuel Williams. A special thanks also goes to Mark Smotherman for making multiple passes to find technical and writing glitches that significantly improved the quality of this edition. He played an even more important role this time given that this edition was done as a solo act. We wish to thank the extended Morgan Kaufmann family for agreeing to publish this book again under the able leadership of Denise Penrose. Nathaniel McFadden was the developmental editor for this edition and worked with me weekly on the contents of the book. Kimberlee Honjo coordinated the surveying of users and their responses
Preface XXV Dawnmarie Simpson managed the book production process.We thank also the many freelance vendors who contributed to this volume,especially Alan Rose of Multiscience Press and diacriTech,our compositor. The contributions of the nearly 200 people we mentioned here have helped make this fourth edition what I hope will be our best book yet.Enjoy! David A.Patterson
Preface xxv Dawnmarie Simpson managed the book production process. We thank also the many freelance vendors who contributed to this volume, especially Alan Rose of Multiscience Press and diacriTech, our compositor. The contributions of the nearly 200 people we mentioned here have helped make this fourth edition what I hope will be our best book yet. Enjoy! David A. Patterson
Computer Abstractions and Technology Civilization advances by extending the 1.1 Introduction 3 number of important 1.2 Below Your Program 10 operations which we 1.3 Under the Covers 13 can perform without 1.4 Performance 26 thinking about them. 1.5 The Power Wall 39 1.6 The Sea Change:The Switch from Alfred North Whitehead Uniprocessors to Multiprocessors 41 An Introduction to Mathematics,1911 Computer Organization and Design.DOI:10.1016/B978-0-12-374750-1.00001-3 2012 Elsevier,Inc.All rights reserved
1 Civilization advances by extending the number of important operations which we can perform without thinking about them. Alfred North Whitehead An Introduction to Mathematics, 1911 Computer Abstractions and Technology 1.1 Introduction 3 1.2 Below Your Program 10 1.3 Under the Covers 13 1.4 Performance 26 1.5 The Power Wall 39 1.6 The Sea Change: The Switch from Uniprocessors to Multiprocessors 41 Computer Organization and Design. DOI: 10.1016/B978-0-12-374750-1.00001-3 © 2012 Elsevier, Inc. All rights reserved