Você está na página 1de 26

Arquitetura de Computadores:

Uma Abordagem Quantitativa


Quinta Edio

C0065.indd i 11/10/13 1:28 PM


C0065.indd ii 11/10/13 1:28 PM
Arquitetura de Computadores:
Uma Abordagem Quantitativa
Quinta Edio

John L. Hennessy
Universidade de Stanford

David A. Patterson
Universidade da Califrnia, Berkeley

Com contribuies de Norman P. Jouppi


HP Labs
Krste Asanovic
Universidade da Califrnia, Berkeley Sheng Li
HP Labs
Jason D. Bakos
Naveen Muralimanohar
Universidade da Carolina do Sul
HP Labs
Robert P. Colwell
Gregory D. Peterson
R&E Colwell & Assoc. Inc.
Universidade do Tennessee
Thomas M. Conte Timothy M. Pinkston
Universidade do Estado da Carolina do Norte Universidade do Sul da Califrnia
Jos Duato Parthasarathy Ranganathan
Universidade Politcnica de Valncia e Simula HP Labs
Diana Franklin David A. Wood
Universidade da Califrnia, Santa Brbara Universidade do WisconsinMadison
David Goldberg Amr Zaky
Instituto de Pesquisa Scripps Universidade de Santa Clara

Amsterd Boston Heidelberg Londres


Nova York Oxford Paris So Diego
So Francisco Cingapura Sydney Tquio

C0065.indd iii 11/10/13 1:28 PM


Do original: Computer Architecture: A Quantitative Approach
Traduo autorizada do idioma ingls da edio publicada por Morgan Kaufmann,
an imprint of Elsevier, Inc.
Copyright 2012 Elsevier Inc.
2014, Elsevier Editora Ltda.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998.
Nenhuma parte deste livro, sem autorizao prvia por escrito da editora, poder ser re-
produzida ou transmitida sejam quais forem os meios empregados: eletrnicos, mecnicos,
fotogrficos, gravao ou quaisquer outros.
Copidesque: Andra Vidal
Reviso Grfica: Adriana Maria Patrcio Takaki / Marco Antonio Corra / Roberto Mauro
dos Santos Facce:
Editorao Eletrnica: Thomson Digital
Elsevier Editora Ltda.
Conhecimento sem Fronteiras
Rua Sete de Setembro, 111 16o andar
20050-006 Centro - Rio de Janeiro RJ - Brasil
Rua Quintana, 753/8o andar
04569-011 Brooklin - So Paulo - SP - Brasil
Servio de Atendimento ao Cliente
O800-0265340
Atendimento1@elsevier.com
ISBN: 978-85-352-6122-6
ISBN (verso digital): 978-85-352-6411-1
Edio original: ISBN 978-0-12-383872-8
Nota: Muito zelo e tcnica foram empregados na edio desta obra. No entanto, podem
ocorrer erros de digitao, impresso ou dvida conceitual. Em qualquer das hipteses,
solicitamos a comunicao ao nosso Servio de Atendimento ao Cliente, para que pos-
samos esclarecer ou encaminhar a questo.
Nem a editora nem o autor assumem qualquer responsabilidade por eventuais danos
ou perdas a pessoas ou bens, ou bens, originados do uso desta publicao.

CIP-BRASIL. CATALOGAO NA PUBLICAO


SINDICATO NACIONAL DOS EDITORES DE LIVROS, RJ

H436a
Hennessy, John L.
Arquitetura de computadores : uma abordagem quantitativa / John L. Hennessy,
David A. Petterson ; traduo Eduardo Kraszczuk. - [5. ed.] - Rio de Janeiro : Elsevier,
2014.
744 p. : il. ; 28 cm.
Traduo de: Computer architecture, 5th ed. : a quantitative approach
Inclui apndice
ISBN 978-85-352-6122-6
1. Arquitetura de computador. I. Patterson, David A. II. Ttulo.
13-05666 CDD: 004.22
CDU: 004.2

C0070.indd iv 11/10/13 1:35 PM


Sobre os Autores

John L. Hennessy o dcimo presidente da Universidade de Stanford, onde membro


do corpo docente desde 1977, nos departamentos de Engenharia Eltrica e Cincia da
Computao. Hennessy membro do IEEE e ACM, membro da Academia Nacional de
Engenharia e da Sociedade Americana de Filosofia e membro da Academia Americana
de Artes e Cincias. Entre seus muitos prmios esto o Prmio Eckert-Mauchly de 2001,
por suas contribuies para a tecnologia RISC, o Prmio Seymour Cray de Engenharia da
Computao de 2001 e o Prmio John von Neumann de 2000, que ele dividiu com David
Patterson. Ele tambm recebeu sete doutorados honorrios.
Em 1981, ele iniciou o Projeto MIPS, em Stanford, com um grupo de estudantes de
ps-graduao. Depois de completar o projeto em 1984, tirou licena da universidade
para co-fundar a MIPS Computer Systems (hoje MIPS Technologies), que desenvolveu
um dos primeiros microprocessadores RISC comerciais. Em 2006, mais de 2 bilhes de
microprocessadores MIPS foram vendidos em dispositivos, variando de video games e
computadores palmtop a impressoras laser e switches de rede. Em seguida, Hennessy
liderou o projeto DASH (Director Architeture for Shared Memory Arquitetura Diretora
para Memria Compartilhada), que criou o prottipo do primeiro microprocessador
com cache coerente escalvel. Muitas das ideias-chave desse projeto foram adotadas em
multiprocessadores modernos. Alm de suas atividades tcnicas e responsabilidades na
universidade, ele continuou a trabalhar com diversas empresas startup como conselheiro
nos estgios iniciais e como investidor.
David A. Patterson ensina arquitetura de computadores na Universidade da Califrnia,
em Berkeley, desde que se juntou ao corpo docente em 1977, onde ele ocupa a Cadeira
Pardee de Cincia da Computao. Sua docncia foi honrada com o Prmio de Ensino
Notvel da Universidade da Califrnia, o Prmio Karlstrom da ACM, a Medalha Mulligan
de Educao e o Prmio de Ensino Universitrio do IEEE. Patterson recebeu o Prmio de
Realizao Tcnica do IEEE e o Prmio Eckert-Mauchly por contribuies para o RISC e
dividiu o Prmio Johnson de Armazenamento de Informaes por contribuies para o
RAID. Ele tambm dividiu a Medalha John von Neumann do IEEE e o Prmio C&C com
John Hennessy. Como seu coautor, Patterson membro da Academia Americana de Artes
e Cincias, do Museu da Histria dos Computadores, ACM e IEEE, e foi eleito para a Aca-
demia Nacional de Engenharia, Academia Nacional de Cincias e para o Hall da Fama da
Engenharia do Vale do Silcio. Ele atuou no Comit Consultivo de Tecnologia da Informa-
o do presidente dos Estados Unidos, como presidente da diviso de CS no departamento
EECS em Berkeley, como presidente da Associao de Pesquisa em Computao e como
Presidente da ACM. Este histrico levou a prmios de Servio Destacado da ACM e CRA.
Em Berkeley, Patterson liderou o projeto e a implementao do RISC I, provavelmente o
primeiro computador com conjunto reduzido de instrues VLSI, e a fundao da arqui-
tetura comercial SPARC. Ele foi lder do projeto Arrays Redundantes de Discos Baratos
(Redundant Array of Inexpensive Disks RAID), que levou a sistemas de armazenamento v

C0065.indd v 11/10/13 1:28 PM


vi Sobre os Autores

confiveis para muitas empresas. Ele tambm se envolveu no projeto Rede de Works-
tations (Network of Workstations NOW), que levou tecnologia de clusters usada
pelas empresas de Internet e, mais tarde, computao em nuvem. Esses projetos valeram
trs prmios de dissertao da ACM. Seus projetos de pesquisa atuais so o Laboratrio
Algoritmo-Mquina-Pessoas e o Laboratrio de Computao Paralela, onde ele o diretor.
O objetivo do Laboratrio AMP desenvolver algoritmos de aprendizado de mquina es-
calveis, modelos de programao amigveis para computadores em escala de depsito e
ferramentas de crowd-sourcing para obter rapidamente insights valiosos de muitos dados
na nuvem. O objetivo do laboratrio Par desenvolver tecnologias para entregar softwares
escalveis, portveis, eficientes e produtivos para dispositivos pessoais mveis paralelos.

C0065.indd vi 11/10/13 1:28 PM


Para Andrea, Linda, e nossos quatro filhos

C0075.indd vii 11/10/13 10:38 AM


C0075.indd viii 11/10/13 10:38 AM
Elogios para Arquitetura de Computadores: Uma Abordagem Quantitativa
Quinta Edio

A 5a edio de Arquitetura de Computadores: Uma Abordagem Quantitativa continua o


legado, fornecendo aos estudantes de arquitetura de computadores as informaes mais
atualizadas sobre as plataformas computacionais atuais e insights arquitetnicos para ajud-
los a projetar sistemas futuros. Um destaque da nova edio o captulo significativamente
revisado sobre paralelismo em nvel de dados, que desmistifica as arquiteturas de GPU
com explicaes claras, usando terminologia tradicional de arquitetura de computadores.

Krste Asanovic, Universidade da Califrnia, Berkeley

Arquitetura de Computadores: Uma Abordagem Quantitativa um clssico que, como


um bom vinho, fica cada vez melhor. Eu comprei meu primeiro exemplar quando estava
terminando a graduao e ele continua sendo um dos volumes que eu consulto com mais
frequncia. Quando a quarta edio saiu, havia tanto contedo novo que eu precisava
compr-la para continuar atualizado. E, enquanto eu revisava a quinta edio, percebi que
Hennessy e Patterson tiveram sucesso de novo. Todo o contedo foi bastante atualizado
e s o Captulo 6 j torna esta nova edio uma leitura necessria para aqueles que realmente
querem entender a computao em nuvem e em escala de depsito. Somente Hennessy
e Patterson tm acesso ao pessoal do Google, Amazon, Microsoft e outros provedores de
computao em nuvem e de aplicaes em escala de Internet, e no existe melhor cobertura
dessa importante rea em outro lugar da indstria.

James Hamilton, Amazon Web Services

Hennessy e Patterson escreveram a primeira edio deste livro quando os estudantes de


ps-graduao construam computadores com 50.000 transistores. Hoje, computadores
em escala de depsito contm esse mesmo nmero de servidores, cada qual consistindo
de dzias de processadores independentes e bilhes de transistores. A evoluo
da arquitetura de computadores tem sido rpida e incansvel, mas Arquitetura de
Computadores: Uma Abordagem Quantitativa acompanhou o processo com cada edio
explicando e analisando com preciso as importantes novas ideias que tornam esse
campo to excitante.

James Larus, Microsoft Research

Esta nova adio adiciona um soberbo novo captulo sobre paralelismo em nvel de dados em
SIMD de vetor e arquiteturas de GPU. Ele explica conceitos-chave de arquitetura no interior
das GPUs de mercado de massa, mapeando-os para termos tradicionais e comparando-os
com arquiteturas de vetor e SIMD. Ele chega no momento certo e relevante mudana
generalizada para a computao por GPU paralela. Arquitetura de Computadores: Uma
Abordagem Quantitativa continua sendo o primeiro a apresentar uma cobertura completa
da arquitetura de importantes novos desenvolvimentos!

John Nickolls, NVIDIA

A nova edio deste livro hoje um clssico destaca a ascendncia do paralelismo


explcito (dados, thread, requisio) dedicando um captulo inteiro a cada tipo. O captulo
sobre paralelismo de dados particularmente esclarecedor: a comparao e o contraste

C0060.indd ix 11/10/13 12:34 PM


entre SIMD de vetor, SIMD em nvel de instruo e GPU ultrapassam o jargo associado a
cada arquitetura e expem as similaridades e diferenas entre elas.

Kunle Olukotun, Universidade de Stanford

A 5a edio de Arquitetura de Computadores: Uma Abordagem Quantitativa explora


os diversos conceitos paralelos e seus respectivos trade-offs. Assim como as edies
anteriores, esta nova edio cobre as mais recentes tendncias tecnolgicas. Um destaque
o grande crescimento dos dispositivos pessoais mveis (Personal Mobile Devices PMD) e
da computao em escala de depsito (Warehouse-Scale Computing WSC), cujo foco
mudou para um equilbrio mais sofisticado entre desempenho e eficincia energtica em
comparao com o desempenho bruto. Essas tendncias esto alimentando nossa demanda
por mais capacidade de processamento, que, por sua vez, est nos levando mais longe no
caminho paralelo.

Andrew N. Sloss, Engenheiro consultor, ARM


Autor de ARM System Developer's Guide

C0060.indd x 11/10/13 12:34 PM


Agradecimentos

Embora este livro ainda esteja na quinta edio, criamos dez verses diferentes do
contedo: trs verses da primeira edio (alfa, beta e final) e duas verses da segunda,
da terceira e da quarta edies (beta e final). Nesse percurso, recebemos a ajuda de
centenas de revisores e usurios. Cada um deles ajudou a tornar este livro melhor. Por
isso, decidimos fazer uma lista de todas as pessoas que colaboraram em alguma verso
deste livro.

COLABORADORES DA QUINTA EDIO


Assim como nas edies anteriores, este um esforo comunitrio que envolve diversos
voluntrios. Sem a ajuda deles, esta edio no estaria to bem acabada.

Revisores
Jason D. Bakos, University of South Carolina; Diana Franklin, The University of California,
Santa Barbara; Norman P. Jouppi, HP Labs; Gregory Peterson, University of Tennessee;
Parthasarathy Ranganathan, HP Labs; Mark Smotherman, Clemson University; Gurindar
Sohi, University of WisconsinMadison; Mateo Valero, Universidad Politcnica de Cata-
lua; Sotirios G. Ziavras, New Jersey Institute of Technology.
Membros do Laboratrio Par e Laboratrio RAD da University of CaliforniaBerkeley, que
fizeram frequentes revises dos Captulos 1, 4 e 6, moldando a explicao sobre GPUs
e WSCs: Krste Asanovic, Michael Armbrust, Scott Beamer, Sarah Bird, Bryan Catanzaro,
Jike Chong, Henry Cook, Derrick Coetzee, Randy Katz, Yun-sup Lee, Leo Meyervich, Mark
Murphy, Zhangxi Tan, Vasily Volkov e Andrew Waterman.

Painel consultivo
Luiz Andr Barroso, Google Inc.; Robert P. Colwell, R&E Colwell & Assoc. Inc.; Krisztian
Flautner, VP de R&D na ARM Ltd.; Mary Jane Irwin, Penn State; David Kirk, NVIDIA; Grant
Martin, cientista-chefe, Tensilica; Gurindar Sohi, University of WisconsinMadison; Mateo
Valero, Universidad Politcnica de Catalua.

Apndices
Krste Asanovic, University of CaliforniaBerkeley (Apndice G); Thomas M. Conte, North
Carolina State University (Apndice E); Jos Duato, Universitat Politcnica de Valncia and
Simula (Apndice F); David Goldberg, Xerox PARC (Apndice J); Timothy M. Pinkston,
University of Southern California (Apndice F).
Jos Flich, da Universidad Politcnica de Valencia, deu contribuies significativas para a
atualizao do Apndice F.

xi

C0095.indd xi 11/10/13 11:39 AM


xii Agradecimentos

Estudos de caso e exerccios


Jason D. Bakos, University of South Carolina (Captulos 3 e 4); Diana Franklin, University
of California, Santa Barbara (Captulo 1 e Apndice C); Norman P. Jouppi, HP Labs
(Captulo 2); Naveen Muralimanohar, HP Labs (Captulo 2); Gregory Peterson, University
of Tennessee (Apndice A); Parthasarathy Ranganathan, HP Labs (Captulo 6); Amr Zaky,
University of Santa Clara (Captulo 5 e Apndice B).
Jichuan Chang, Kevin Lim e Justin Meza auxiliaram no desenvolvimento de testes dos
estudos de caso e exerccios do Captulo 6.

Material adicional
John Nickolls, Steve Keckler e Michael Toksvig da NVIDIA (Captulo 4, NVIDIA GPUs);
Victor Lee, Intel (Captulo 4, comparao do Core i7 e GPU); John Shalf, LBNL (Captulo 4,
arquiteturas recentes de vetor); Sam Williams, LBNL (modelo roofline para computadores
no Captulo 4); Steve Blackburn, da Australian National University, e Kathryn McKinley,
da University of Texas, em Austin (Desempenho e medies de energia da Intel, no
Captulo 5); Luiz Barroso, Urs Hlzle, Jimmy Clidaris, Bob Felderman e Chris Johnson
do Google (Google WSC, no Captulo 6); James Hamilton, da Amazon Web Services (Dis-
tribuio de energia e modelo de custos, no Captulo 6).
Jason D. Bakos. da University of South Carolina, desenvolveu os novos slides de aula para
esta edio.
Mais uma vez, nosso agradecimento especial a Mark Smotherman, da Clemson University,
que fez a leitura tcnica final do nosso manuscrito. Mark encontrou diversos erros e
ambiguidades, e, em consequncia disso, o livro ficou muito mais limpo.
Este livro no poderia ter sido publicado sem uma editora, claro. Queremos agradecer
a toda a equipe da Morgan Kaufmann/Elsevier por seus esforos e suporte. Pelo trabalho
nesta edio, particularmente, queremos agradecer aos nossos editores Nate McFadden e
Todd Green, que coordenaram o painel consultivo, o desenvolvimento dos estudos de caso
e exerccios, os grupos de foco, as revises dos manuscritos e a atualizao dos apndices.
Tambm temos de agradecer nossa equipe na universidade, Margaret Rowland e Roxana
Infante, pelas inmeras correspondncias enviadas e pela guarda do forte em Stanford
e Berkeley enquanto trabalhvamos no livro.
Nosso agradecimento final vai para nossas esposas, pelo sofrimento causado pelas leituras,
trocas de ideias e escrita realizadas cada vez mais cedo todos os dias.

COLABORADORES DAS EDIES ANTERIORES


Revisores
George Adams, Purdue University; Sarita Adve, University of Illinois, UrbanaChampaign; Jim
Archibald, Brigham Young University; Krste Asanovic, Massachusetts Institute of Technology;
Jean-Loup Baer, University of Washington; Paul Barr, Northeastern University; Rajendra V.
Boppana, University of Texas, San Antonio; Mark Brehob, University of Michigan; Doug
Burger, University of Texas, Austin; John Burger, SGI; Michael Butler; Thomas Casavant; Rohit
Chandra; Peter Chen, University of Michigan; as turmas de SUNY Stony Brook, Carnegie
Mellon, Stanford, Clemson e Wisconsin; Tim Coe, Vitesse Semiconductor; Robert P. Colwell;
David Cummings; Bill Dally; David Douglas; Jos Duato, Universitat Politcnica de Valncia
and Simula; Anthony Duben, Southeast Missouri State University; Susan Eggers, University of
Washington; Joel Emer; Barry Fagin, Dartmouth; Joel Ferguson, University of California, Santa

C0095.indd xii 11/10/13 11:39 AM


Agradecimentos xiii

Cruz; Carl Feynman; David Filo; Josh Fisher, Hewlett-Packard Laboratories; Rob Fowler, DIKU;
Mark Franklin, Washington University (St. Louis); Kourosh Gharachorloo; Nikolas Gloy,
Harvard University; David Goldberg, Xerox Palo Alto Research Center; Antonio Gonzlez,
Intel and Universitat Politcnica de Catalunya; James Goodman, University of Wisconsin
Madison; Sudhanva Gurumurthi, University of Virginia; David Harris, Harvey Mudd College;
John Heinlein; Mark Heinrich, Stanford; Daniel Helman, University of California, Santa
Cruz; Mark D. Hill, University of WisconsinMadison; Martin Hopkins, IBM; Jerry Huck,
Hewlett-Packard Laboratories; Wen-mei Hwu, University of Illinois at UrbanaChampaign;
Mary Jane Irwin, Pennsylvania State University; Truman Joe; Norm Jouppi; David Kaeli,
Northeastern University; Roger Kieckhafer, University of Nebraska; Lev G. Kirischian, Ryerson
University; Earl Killian; Allan Knies, Purdue University; Don Knuth; Jeff Kuskin, Stanford;
James R. Larus, Microsoft Research; Corinna Lee, University of Toronto; Hank Levy; Kai Li,
Princeton University; Lori Liebrock, University of Alaska, Fairbanks; Mikko Lipasti, University
of WisconsinMadison; Gyula A. Mago, University of North Carolina, Chapel Hill; Bryan
Martin; Norman Matloff; David Meyer; William Michalson, Worcester Polytechnic Institute;
James Mooney; Trevor Mudge, University of Michigan; Ramadass Nagarajan, University
of Texas at Austin; David Nagle, Carnegie Mellon University; Todd Narter; Victor Nelson;
Vojin Oklobdzija, University of California, Berkeley; Kunle Olukotun, Stanford University;
Bob Owens, Pennsylvania State University; Greg Papadapoulous, Sun Microsystems; Joseph
Pfeiffer; Keshav Pingali, Cornell University; Timothy M. Pinkston, University of Southern
California; Bruno Preiss, University of Waterloo; Steven Przybylski; Jim Quinlan; Andras
Radics; Kishore Ramachandran, Georgia Institute of Technology; Joseph Rameh, University
of Texas, Austin; Anthony Reeves, Cornell University; Richard Reid, Michigan State University;
Steve Reinhardt, University of Michigan; David Rennels, University of California, Los Angeles;
Arnold L. Rosenberg, University of Massachusetts, Amherst; Kaushik Roy, Purdue University;
Emilio Salgueiro, Unysis; Karthikeyan Sankaralingam, University of Texas at Austin; Peter
Schnorf; Margo Seltzer; Behrooz Shirazi, Southern Methodist University; Daniel Siewiorek,
Carnegie Mellon University; J. P. Singh, Princeton; Ashok Singhal; Jim Smith, University
of WisconsinMadison; Mike Smith, Harvard University; Mark Smotherman, Clemson
University; Gurindar Sohi, University of WisconsinMadison; Arun Somani, University of
Washington; Gene Tagliarin, Clemson University; Shyamkumar Thoziyoor, University of
Notre Dame; Evan Tick, University of Oregon; Akhilesh Tyagi, University of North Carolina,
Chapel Hill; Dan Upton, University of Virginia; Mateo Valero, Universidad Politcnica de
Catalua, Barcelona; Anujan Varma, University of California, Santa Cruz; Thorsten von
Eicken, Cornell University; Hank Walker, Texas A&M; Roy Want, Xerox Palo Alto Research
Center; David Weaver, Sun Microsystems; Shlomo Weiss, Tel Aviv University; David Wells;
Mike Westall, Clemson University; Maurice Wilkes; Eric Williams; Thomas Willis, Purdue
University; Malcolm Wing; Larry Wittie, SUNY Stony Brook; Ellen Witte Zegura, Georgia
Institute of Technology; Sotirios G. Ziavras, New Jersey Institute of Technology.

Apndices
O apndice sobre vetores foi revisado por Krste Asanovic, do Massachusetts Institute
of Technology. O apndice sobre ponto flutuante foi escrito originalmente por David
Goldberg, da Xerox PARC.

Exerccios
George Adams, Purdue University; Todd M. Bezenek, University of WisconsinMadison
(em memria de sua av, Ethel Eshom); Susan Eggers; Anoop Gupta; David Hayes; Mark
Hill; Allan Knies; Ethan L. Miller, University of California, Santa Cruz; Parthasarathy
Ranganathan, Compaq Western Research Laboratory; Brandon Schwartz, University of

C0095.indd xiii 11/10/13 11:39 AM


xiv Agradecimentos

WisconsinMadison; Michael Scott; Dan Siewiorek; Mike Smith; Mark Smotherman; Evan
Tick; Thomas Willis

Estudos de caso e exerccios


Andrea C. Arpaci-Dusseau, University of WisconsinMadison; Remzi H. Arpaci Dusseau, Uni-
versity of WisconsinMadison; Robert P. Colwell, R&E Colwell & Assoc., Inc.; Diana Franklin,
California Polytechnic State University, San Luis Obispo; Wen-mei W. Hwu, University of
Illinois em UrbanaChampaign; Norman P. Jouppi, HP Labs; John W. Sias, University of
Illinois em UrbanaChampaign; David A. Wood, University of WisconsinMadison

Agradecimentos especiais
Duane Adams, Defense Advanced Research Projects Agency; Tom Adams; Sarita Adve,
University of Illinois, UrbanaChampaign; Anant Agarwal; Dave Albonesi, University
of Rochester; Mitch Alsup; Howard Alt; Dave Anderson; Peter Ashenden; David Bai-
ley; Bill Bandy, Defense Advanced Research Projects Agency; Luiz Barroso, Compaq's
Western Research Lab; Andy Bechtolsheim; C. Gordon Bell; Fred Berkowitz; John Best, IBM;
Dileep Bhandarkar; Jeff Bier, BDTI; Mark Birman; David Black; David Boggs; Jim Brady;
Forrest Brewer; Aaron Brown, University of California, Berkeley; E. Bugnion, Compaq's
Western Research Lab; Alper Buyuktosunoglu, University of Rochester; Mark Callaghan;
Jason F. Cantin; Paul Carrick; Chen-Chung Chang; Lei Chen, University of Rochester; Pete
Chen; Nhan Chu; Doug Clark, Princeton University; Bob Cmelik; John Crawford; Zarka
Cvetanovic; Mike Dahlin, University of Texas, Austin; Merrick Darley; the staff of the
DEC Western Research Laboratory; John DeRosa; Lloyd Dickman; J. Ding; Susan Eggers,
University of Washington; Wael El-Essawy, University of Rochester; Patty Enriquez, Mills;
Milos Ercegovac; Robert Garner; K. Gharachorloo, Compaq's Western Research Lab; Garth
Gibson; Ronald Greenberg; Ben Hao; John Henning, Compaq; Mark Hill, University of
WisconsinMadison; Danny Hillis; David Hodges; Urs Hlzle, Google; David Hough; Ed
Hudson; Chris Hughes, University of Illinois em UrbanaChampaign; Mark Johnson;
Lewis Jordan; Norm Jouppi; William Kahan; Randy Katz; Ed Kelly; Richard Kessler; Les
Kohn; John Kowaleski, Compaq Computer Corp; Dan Lambright; Gary Lauterbach,
Sun Microsystems; Corinna Lee; Ruby Lee; Don Lewine; Chao-Huang Lin; Paul Los-
leben, Defense Advanced Research Projects Agency; Yung-Hsiang Lu; Bob Lucas, Defense
Advanced Research Projects Agency; Ken Lutz; Alan Mainwaring, Intel Berkeley Research
Labs; Al Marston; Rich Martin, Rutgers; John Mashey; Luke McDowell; Sebastian Mirolo,
Trimedia Corporation; Ravi Murthy; Biswadeep Nag; Lisa Noordergraaf, Sun Microsystems;
Bob Parker, Defense Advanced Research Projects Agency; Vern Paxson, Center for Internet
Research; Lawrence Prince; Steven Przybylski; Mark Pullen, Defense Advanced Research
Projects Agency; Chris Rowen; Margaret Rowland; Greg Semeraro, University of Rochester;
Bill Shannon; Behrooz Shirazi; Robert Shomler; Jim Slager; Mark Smotherman, Clemson
University; o SMT research group, University of Washington; Steve Squires, Defense
Advanced Research Projects Agency; Ajay Sreekanth; Darren Staples; Charles Stapper; Jorge
Stolfi; Peter Stoll; os estudantes de Stanford e de Berkeley, que deram suporte s nossas
primeiras tentativas de escrever este livro; Bob Supnik; Steve Swanson; Paul Taysom;
Shreekant Thakkar; Alexander Thomasian, New Jersey Institute of Technology; John Toole,
Defense Advanced Research Projects Agency; Kees A. Vissers, Trimedia Corporation; Willa
Walker; David Weaver; Ric Wheeler, EMC; Maurice Wilkes; Richard Zimmerman.

John Hennessy, David Patterson

C0095.indd xiv 11/10/13 11:39 AM


Introduo

Por Luiz Andr Barroso, Google Inc.


A primeira edio de Arquitetura de Computadores: Uma Abordagem Quantitativa , de
Hennessy e Patterson, foi lanada durante meu primeiro ano na universidade. Eu per-
teno, portanto, quela primeira leva de profissionais que aprenderam a disciplina usando
este livro como guia. Sendo a perspectiva um ingrediente fundamental para um prefcio
til, eu me encontro em desvantagem, dado o quanto dos meus prprios pontos de vista
foram coloridos pelas quatro edies anteriores deste livro. Outro obstculo para uma
perspectiva clara que a reverncia de estudante a esses dois superastros da Cincia da
Computao ainda no me abandonou, apesar de (ou talvez por causa de) eu ter tido
a chance de conhec-los nos anos seguintes. Essas desvantagens so mitigadas pelo fato
de eu ter exercido essa profisso continuamente desde a primeira edio deste livro, o que
me deu a chance de desfrutar sua evoluo e relevncia duradora.
A ltima edio veio apenas dois anos depois que a feroz corrida industrial por maior
frequncia de clock de CPU chegou oficialmente ao fim, com a Intel cancelando o de-
senvolvimento de seus ncleos nicos de 4 GHz e abraando as CPUs multicore. Dois
anos foi tempo suficiente para John e Dave apresentarem essa histria no como uma
atualizao aleatria da linha de produto, mas como um ponto de inflexo definidor
da tecnologia da computao na ltima dcada. Aquela quarta edio teve nfase reduzida
no paralelismo em nvel de instruo (Instruction-Level Parallelism ILP) em favor de
um material adicional sobre paralelismo, algo em que a edio atual vai alm, dedicando
dois captulos ao paralelismo em nvel de thread e dados, enquanto limita a discusso
sobre ILP a um nico captulo. Os leitores que esto sendo apresentados aos novos engines
de processamento grfico vo se beneficiar especialmente do novo Captulo 4, que se
concentra no paralelismo de dados, explicando as solues diferentes mas lentamente
convergentes oferecidas pelas extenses multimdia em processadores de uso geral e
unidades de processamento grfico cada vez mais programveis. De notvel relevncia
prtica: se voc j lutou com a terminologia CUDA, veja a Figura 4.24 (teaser: a memria
compartilhada, na verdade, local, e a memria global se parece mais com o que voc
consideraria memria compartilhada).
Embora ainda estejamos no meio dessa mudana para a tecnologia multicore, esta edio
abarca o que parece ser a prxima grande mudana: computao em nuvem. Nesse caso,
a ubiquidade da conectividade Internet e a evoluo de servios Web atraentes esto
trazendo para o centro do palco dispositivos muito pequenos (smartphones, tablets) e
muito grandes (sistemas de computao em escala de depsito). O ARM Cortex A8, uma
CPU popular para smartphones, aparece na seo Juntando tudo do Captulo 3, e um
Captulo 6 totalmente novo dedicado ao paralelismo em nvel de requisio e dados
no contexto dos sistemas de computao em escala de depsito. Neste novo captulo,
John e Dave apresentam esses novos grandes clusters como uma nova classe distinta de
computadores um convite aberto para os arquitetos de computadores ajudarem a moldar xv

C0085.indd xv 11/10/13 11:18 AM


xvi Introduo

esse campo emergente. Os leitores vo apreciar o modo como essa rea evoluiu na ltima
dcada, comparando a arquitetura do cluster Google descrita na terceira edio com a
encanao mais moderna apresentada no Captulo 6 desta verso.
Aqueles que esto retomando este livro vo poder apreciar novamente o trabalho de dois
destacados cientistas da computao que, ao longo de suas carreiras, aperfeioaram a
arte de combinar o tratamento das ideias com princpios acadmicos com uma profunda
compreenso dos produtos e tecnologias de ponta dessa indstria. O sucesso dos autores
nas interaes com a indstria no ser uma surpresa para aqueles que testemunharam
como Dave conduz seus retiros bianuais de projeto, foruns meticulosamente elaborados
para extrair o mximo das colaboraes acadmico-industriais. Aqueles que se lembram
do sucesso do empreendimento de John com o MIPS ou esbarraram com ele em um
corredor no Google (o que s vezes acontece comigo) tambm no vo se surpreender.
E talvez o mais importante: leitores novos e antigos vo obter aquilo por que pagaram.
O que fez deste livro um clssico duradouro foi o fato de que cada edio no uma
atualizao, mas uma extensa reviso que apresenta as informaes mais atuais e insights
incomparveis sobre esse campo fascinante e rapidamente mutvel. Para mim, depois
de vinte anos nessa profisso, ele tambm outra oportunidade de experimentar aquela
admirao de estudante por dois professores notveis.

C0085.indd xvi 11/10/13 11:18 AM


Prefcio

Por que escrevemos este livro


Ao longo das cinco edies deste livro, nosso objetivo tem sido descrever os princpios
bsicos por detrs dos desenvolvimentos tecnolgicos futuros. Nosso entusiasmo com
relao s oportunidades em arquitetura de computadores no diminuiu, e repetimos o
que dissemos sobre essa rea na primeira edio: Essa no uma cincia melanclica de
mquinas de papel que nunca funcionaro. No! uma disciplina de interesse intelectual
incisivo, que exige o equilbrio entre as foras do mercado e o custo-desempenho-potncia,
levando a gloriosos fracassos e a alguns notveis sucessos.
O principal objetivo da escrita de nosso primeiro livro era mudar o modo como as pessoas
aprendiam e pensavam a respeito da arquitetura de computadores. Acreditamos que esse
objetivo ainda vlido e importante. Esse campo est mudando diariamente e precisa ser
estudado com exemplos e medidas reais sobre computadores reais, e no simplesmente
como uma coleo de definies e projetos que nunca precisaro ser compreendidos.
Damos boas-vindas entusiasmadas a todos os que nos acompanharam no passado e
tambm queles que esto se juntando a ns agora. De qualquer forma, prometemos o
mesmo enfoque quantitativo e a mesma anlise de sistemas reais.
Assim como nas verses anteriores, nos esforamos para elaborar uma nova edio que
continuasse a ser relevante tanto para os engenheiros e arquitetos profissionais quanto para
aqueles envolvidos em cursos avanados de arquitetura e projetos de computador. Assim
como os livros anteriores, esta edio visa desmistificar a arquitetura de computadores com
nfase nas escolhas de custo-benefcio-potncia e bom projeto de engenharia. Acreditamos
que o campo tenha continuado a amadurecer, seguindo para o alicerce quantitativo
rigoroso das disciplinas cientficas e de engenharia bem estabelecidas.

Esta edio
Declaramos que a quarta edio de Arquitetura de Computadores: Uma Abordagem Quantitativa
podia ser a mais significativa desde a primeira edio, devido mudana para chips
multicore. O feedback que recebemos dessa vez foi de que o livro havia perdido o foco
agudo da primeira edio, cobrindo tudo igualmente, mas sem nfase nem contexto.
Estamos bastante certos de que no se dir isso da quinta edio.
Ns acreditamos que a maior parte da agitao est nos extremos do tamanho da com-
putao, com os dispositivos pessoais mveis (Personal Mobile Devices PMDs), como
telefones celulares e tablets, como clientes e computadores em escala de depsito ofere-
cendo computao na nuvem como servidores. (Bons observadores devem ter notado
a dica sobre computao em nuvem na capa do livro.) Estamos impressionados com o
tema comum desses dois extremos em custo, desempenho e eficincia energtica, apesar
de sua diferena em tamanho. Como resultado, o contexto contnuo em cada captulo

xvii

C0090.indd xvii 11/10/13 8:42 PM


xviii Prefcio

a computao para PMDs e para computadores em escala de depsito, e o Captulo 6


totalmente novo com relao a esse tpico.
O outro tema o paralelismo em todas as suas formas. Primeiro identificamos os dois tipos
de paralelismo em nvel de aplicao no Captulo 1, o paralelismo em nvel de dados (Data-Level
Parallelism DLP), que surge por existirem muitos itens de dados que podem ser operados
ao mesmo tempo, e o paralelismo em nvel de tarefa (Task-Level Parallelism TLP), que surge
porque so criadas tarefas que podem operar independentemente e, em grande parte, em
paralelo. Ento, explicamos os quatro estilos arquitetnicos que exploram DLP e TLP: paralelis-
mo em nvel de instruo (Instruction-Level Parallelism ILP) no Captulo 3; arquiteturas de
vetor e unidades de processamento grfico (GPUs) no Captulo 4, que foi escrito para esta edio;
paralelismo em nvel de thread no Captulo 5; e paralelismo em nvel de requisio (Request-Level
Parallelism RLP), atravs de computadores em escala de depsito no Captulo 6, que
tambm foi escrito para esta edio. Ns deslocamos a hierarquia de memria mais para o
incio do livro (Captulo 2) e realocamos o captulo sobre sistemas de armazenamento no
Apndice D. Estamos particularmente orgulhosos do Captulo 4, que contm a mais clara e
mais detalhada explicao j dada sobre GPUs, e do Captulo 6, que a primeira publicao
dos detalhes mais recentes de um computador em escala de depsito do Google.
Como nas edies anteriores, os primeiros trs apndices do livro fornecem o conte-
do bsico sobre o conjunto de instrues MIPS, hierarquia de memria e pipelining
aos leitores que no leram livros como Computer Organization and Design. Para man-
ter os custos baixos e ainda assim fornecer material suplementar que seja do interesse
de alguns leitores, disponibilizamos mais nove apndices onlines em ingls na pgina
www.elsevier.com.br/hennessy. H mais pginas nesses apndices do que neste livro!
Esta edio d continuidade tradio de usar exemplos reais para demonstrar as ideias, e
as sees Juntando tudo so novas as desta edio incluem as organizaes de pipeline e
hierarquia de memria do processador ARM Cortex A8, o processador Intel Core i7, as GPUs
NVIDIA GTX-280 e GTX-480, alm de um dos computadores em escala de depsito do Google.

Seleo e organizao de tpicos


Como nas edies anteriores, usamos uma tcnica conservadora para selecionar os tpicos,
pois existem muito mais ideias interessantes em campo do que poderia ser abordado de
modo razovel em um tratamento de princpios bsicos. Ns nos afastamos de um es-
tudo abrangente de cada arquitetura, com que o leitor poderia se deparar por a. Nossa
apresentao enfoca os principais conceitos que podem ser encontrados em qualquer
mquina nova. O critrio principal continua sendo o da seleo de ideias que foram
examinadas e utilizadas com sucesso suficiente para permitir sua discusso em termos
quantitativos.
Nossa inteno sempre foi enfocar o material que no estava disponvel em formato
equivalente em outras fontes, por isso continuamos a enfatizar o contedo avanado
sempre que possvel. Na realidade, neste livro existem vrios sistemas cujas descries
no podem ser encontradas na literatura. (Os leitores interessados estritamente em uma
introduo mais bsica arquitetura de computadores devero ler Organizao e projeto
de computadores: a interface hardware/software.)

Viso geral do contedo


Nesta edio o Captulo 1 foi aumentado: ele inclui frmulas para energia, potncia es-
ttica, potncia dinmica, custos de circuito integrado, confiabilidade e disponibilidade.
Esperamos que esses tpicos possam ser usados ao longo do livro. Alm dos princpios

C0090.indd xviii 11/10/13 8:42 PM


Prefcio xix

quantitativos clssicos do projeto de computadores e medio de desempenho, a seo


PIAT foi atualizada para usar o novo benchmark SPECPower.
Nossa viso de que hoje a arquitetura do conjunto de instrues est desempenhando
um papel inferior ao de 1990, de modo que passamos esse material para o Apndice A. Ele
ainda usa a arquitetura MIPS64 (para uma rpida reviso, um breve resumo do ISA MIPS
pode ser encontrado no verso da contracapa). Para os fs de ISAs, o Apndice K aborda
10 arquiteturas RISC, o 80x86, o VAX da DEC e o 360/370 da IBM.
Ento, prosseguimos com a hierarquia de memria no Captulo 2, uma vez que fcil
aplicar os princpios de custo-desempenho-energia a esse material e que a memria
um recurso essencial para os demais captulos. Como na edio anterior, Apndice B
contm uma reviso introdutria dos princpios de cache, que est disponvel caso voc
precise dela. O Captulo 2 discute 10 otimizaes avanadas dos caches. O captulo in-
clui mquinas virtuais, que oferecem vantagens em proteo, gerenciamento de software
e gerenciamento de hardware, e tem um papel importante na computao na nuvem.
Alm de abranger as tecnologias SRAM e DRAM, o captulo inclui material novo sobre a
memria Flash. Os exemplos PIAT so o ARM Cortex A8, que usado em PMDs, e o Intel
Core i7, usado em servidores.
O Captulo 3 aborda a explorao do paralelismo em nvel de instruo nos processadores
de alto desempenho, incluindo execuo superescalar, previso de desvio, especulao,
escalonamento dinmico e multithreading. Como j mencionamos, o Apndice C uma
reviso do pipelining, caso voc precise dele. O Captulo 3 tambm examina os limites do
ILP. Assim como no Captulo 2, os exemplos PIAT so o ARM Cortex A8 e o Intel Core i7.
Como a terceira edio continha muito material sobre o Itanium e o VLIW, esse contedo
foi deslocado para o Apndice H, indicando nossa opinio de que essa arquitetura no
sobreviveu s primeiras pretenses.
A crescente importncia das aplicaes multimdia, como jogos e processamento de vdeo,
tambm aumentou a relevncia das arquiteturas que podem explorar o paralelismo em
nvel de dados. H um crescente interesse na computao usando unidades de proces-
samento grfico (Graphical Processing Units GPUs). Ainda assim, poucos arquitetos
entendem como as GPUs realmente funcionam. Decidimos escrever um novo captulo em
grande parte para desvendar esse novo estilo de arquitetura de computadores. O Captulo 4
comea com uma introduo s arquiteturas de vetor, que serve de base para a construo
de explicaes sobre extenses de conjunto de instruo SIMD e GPUS (o Apndice G
traz mais detalhes sobre as arquiteturas de vetor). A seo sobre GPUs foi a mais difcil
de escrever foram feitas muitas tentativas para obter uma descrio precisa que fosse
tambm fcil de entender. Um desafio significativo foi a terminologia. Decidimos usar
nossos prprios termos e, ao traduzi-los, estabelecer uma relao entre eles e os termos
oficiais da NVIDIA (uma cpia dessa tabela pode ser encontrada no verso das capas).
Esse captulo apresenta o modelo roofline de desempenho, usando-o para comparar o
Intel Core i7 e as GPUs NVIDIA GTX 280 e GTX 480. O captulo tambm descreve a GPU
Tegra 2 para PMDs.
O Captulo 5 descreve os processadores multicore. Ele explora as arquiteturas de memria
simtricas e distribudas, examinando os princpios organizacionais e o desempenho.
Os tpicos de sincronismo e modelos de consistncia de memria vm em seguida. O
exemplo o Intel Core i7.
Como j mencionado, o Captulo 6 descreve o mais novo tpico em arquitetura de com-
putadores: os computadores em escala de depsito (Warehouse-Scale Computers WSCs).
Com base na ajuda de engenheiros da Amazon Web Services e Google, esse captulo integra

C0090.indd xix 11/10/13 8:42 PM


xx Prefcio

detalhes sobre projeto, custo e desempenho dos WSCs que poucos arquitetos conhecem.
Ele comea com o popular modelo de programao MapReduce antes de descrever a
arquitetura e implementao fsica dos WSCs, incluindo o custo. Os custos nos permitem
explicar a emergncia da computao em nuvem, porque pode ser mais barato usar WSCs
na nuvem do que em seu datacenter local. O exemplo PIAT uma descrio de um WSC
Google que inclui informaes publicadas pela primeira vez neste livro.
Isso nos leva aos Apndices A a L. O Apndice A aborda os princpios de ISAs, incluindo
MIPS64, e o Apndice K descreve as verses de 64 bits do Alpha, MIPS, PowerPC e SPARC,
alm de suas extenses de multimdia. Ele inclui tambm algumas arquiteturas clssicas
(80x86, VAX e IBM 360/370) e conjuntos de instrues embutidas populares (ARM,
Thumb, SuperH, MIPS16 e Mitsubishi M32R). O Apndice H est relacionado a esses
contedos, pois aborda arquiteturas e compiladores para ISAs VLIW.
Como j dissemos, os Apndices B e C so tutoriais sobre conceitos bsicos de pipelining
e caching. Os leitores relativamente iniciantes em caching devero ler o Apndice B antes
do Captulo 2, e os novos em pipelining devero ler o Apndice C antes do Captulo 3.
O Apndice D, Sistemas de Armazenamento, traz uma discusso maior sobre confiabi-
lidade e disponibilidade, um tutorial sobre RAID com uma descrio dos esquemas RAID
6, e estatsticas de falha de sistemas reais raramente encontradas. Ele continua a fornecer
uma introduo teoria das filas e benchmarks de desempenho de E/S. Ns avaliamos o
custo, o desempenho e a confiabilidade de um cluster real: o Internet Archive. O exemplo
Juntando tudo o arquivador NetApp FAS6000.
O Apndice E, elaborado por Thomas M. Conte, consolida o material embutido em um s lugar.
O Apndice F, sobre redes de interconexo, foi revisado por Timothy M. Pinkston e Jos Duato. O
Apndice G, escrito originalmente por Krste Asanovic, inclui uma descrio dos processadores
vetoriais. Esses dois apndices so parte do melhor material que conhecemos sobre cada tpico.
O Apndice H descreve VLIW e EPIC, a arquitetura do Itanium.
O Apndice I descreve as aplicaes de processamento paralelo e protocolos de coerncia
para o multiprocessamento de memria compartilhada em grande escala. O Apndice J,
de David Goldberg, descreve a aritmtica de computador.
O Apndice L agrupa as Perspectivas histricas e referncias de cada captulo em um
nico apndice. Ele tenta dar o crdito apropriado s ideias presentes em cada captulo
e o contexto histrico de cada inveno. Gostamos de pensar nisso como a apresentao
do drama humano do projeto de computador. Ele tambm d referncias que o aluno
de arquitetura pode querer pesquisar. Se voc tiver tempo, recomendamos a leitura de
alguns dos trabalhos clssicos dessa rea, que so mencionados nessas sees. agradvel
e educativo ouvir as ideias diretamente de seus criadores. Perspectivas histricas foi uma
das sees mais populares das edies anteriores.

Navegando pelo texto


No existe uma ordem melhor para estudar os captulos e os apndices, mas todos os
leitores devero comear pelo Captulo 1. Se voc no quiser ler tudo, aqui esto algumas
sequncias sugeridas:
Hierarquia de memria: Apndice B, Captulo 2 e Apndice D
Paralelismo em nvel de instruo: Apndice C, Captulo 3, e Apndice H
Paralelismo em nvel de dados: Captulos 4 e 6, Apndice G
Paralelismo em nvel de thread: Captulo 5, Apndices F e I

C0090.indd xx 11/10/13 8:42 PM


Prefcio xxi

Paralelismo em nvel de requisio: Captulo 6


ISA: Apndices A e K
O Apndice E pode ser lido a qualquer momento, mas pode ser mais bem aproveitado se for
lido aps as sequncias de ISA e cache. O Apndice J pode ser lido sempre que a aritmtica
atra-lo. Voc deve ler a parte correspondente ao Apndice L depois de finalizar cada captulo.

Estrutura dos captulos


O material que selecionamos foi organizado em uma estrutura coerente, seguida em todos
os captulos. Comeamos explorando as ideias de um captulo. Essas ideias so seguidas
pela seo Questes cruzadas, que mostra como as ideias abordadas em um captulo
interagem com as dadas em outros captulos. Isso seguido pela Juntando tudo, que
une essas ideias, mostrando como elas so usadas em uma mquina real.
Na sequncia vem a seo Falcias e armadilhas, que permite aos leitores aprender com
os erros de outros. Mostramos exemplos de enganos comuns e armadilhas arquitetnicas
que so difceis de evitar, mesmo quando voc sabe que esto sua espera. Falcias e
armadilhas uma das sees mais populares do livro. Cada captulo termina com uma
seo de Comentrios finais.

Estudos de caso com exerccios


Cada captulo termina com estudos de caso e exerccios que os acompanham. Criados
por especialistas do setor e acadmicos, os estudos de caso exploram os principais
conceitos do captulo e verificam o conhecimento dos leitores por meio de exerccios
cada vez mais desafiadores. Provavelmente, os instrutores vo achar os estudos de caso
detalhados e robustos o bastante para permitir que os leitores criem seus prprios
exerccios adicionais.
A numerao de cada exerccio (<captulo.seo > ) indica a seo de maior relevncia
para complet-lo. Esperamos que isso ajude os leitores a evitarem exerccios relacionados a
alguma seo que ainda no tenham lido, alm de fornecer a eles um trecho para reviso.
Os exerccios possuem uma classificao para dar aos leitores uma ideia do tempo neces-
srio para conclu-los:
[10] Menos de 5 minutos (para ler e entender)
[15] 5-15 minutos para dar uma resposta completa
[20] 15-20 minutos para dar uma resposta completa
[25] 1 hora para dar uma resposta completa por escrito
[30] Pequeno projeto de programao: menos de 1 dia inteiro de programao
[40] Projeto de programao significativo: 2 semanas
[Discusso] Tpico para discusso com outros

As solues para estudos de caso e exerccios estaro disponveis em ingls para os


instrutores que se registrarem na pgina do livro (www.elsevier.com.br/hennessy)

Material complementar
Uma variedade de recursos est disponvel online em www.elsevier.com.br/hennessy,
incluindo:
apndices de referncia alguns com autoria de especialistas sobre o assunto,
convidados abordando diversos tpicos avanados;
material de perspectivas histricas que explora o desenvolvimento das principais
ideias apresentadas em cada um dos captulos do texto;

C0090.indd xxi 11/10/13 8:42 PM


xxii Prefcio

slides para o instrutor em PowerPoint;


figuras do livro nos formatos PDF, EPS e PPT;
links para material relacionado na Web;
lista de erratas.
Novos materiais e links para outros recursos disponveis na Web sero adicionados
regularmente.

Ajudando a melhorar este livro


Finalmente, possvel ganhar dinheiro lendo este livro (Isso que custo-desempenho!).
Se voc ler os Agradecimentos, a seguir, ver que nos esforamos muito para corrigir
os erros. Como um livro passa por muitas reimpresses, temos a oportunidade de fazer
vrias correes. Por isso, se voc descobrir qualquer bug extra, entre em contato com a
editora norte-americana pelo e-mail <ca5comments@mkp.com>.

Comentrios finais
Mais uma vez, este livro resultado de uma verdadeira coautoria: cada um de ns escreveu
metade dos captulos e uma parte igual dos apndices. No podemos imaginar quanto
tempo teria sido gasto sem algum fazendo metade do trabalho, servindo de inspirao
quando a tarefa parecia sem soluo, proporcionando um insight-chave para explicar um
conceito difcil, fazendo crticas aos captulos nos fins de semana e se compadecendo
quando o peso de nossas outras obrigaes tornava difcil continuar escrevendo (essas
obrigaes aumentaram exponencialmente com o nmero de edies, como mostra o
minicurriculum de cada um). Assim, mais uma vez, compartilhamos igualmente a res-
ponsabilidade pelo que voc est para ler.

John Hennessy & David Patterson

C0090.indd xxii 11/10/13 8:42 PM


Sumrio

AGRADECIMENTOS ................................................................................................. xi
INTRODUO ..........................................................................................................xv
PREFCIO ...............................................................................................................xvii

Captulo 1 Fundamentos do projeto e anlise quantitativos .............................1


1.1 Introduo ...............................................................................................1
1.2 Classes de computadores ......................................................................4
1.3 Definio da arquitetura do computador ..............................................9
1.4 Tendncias na tecnologia ....................................................................14
1.5 Tendncias na alimentao dos circuitos integrados........................19
1.6 Tendncias no custo .............................................................................24
1.7 Dependncia .........................................................................................30
1.8 Medio, relatrio e resumo do desempenho ....................................32
1.9 Princpios quantitativos do projeto de computadores .......................39
1.10 Juntando tudo: desempenho e preo-desempenho ..........................46
1.11 Falcias e armadilhas ...........................................................................48
1.12 Comentrios finais ................................................................................52
1.13 Perspectivas histricas e referncias ..................................................54
Estudos de caso e exerccios por Diana Franklin ..............................54
Captulo 2 Projeto de hierarquia de memria ...................................................61
2.1 Introduo .............................................................................................61
2.2 Dez otimizaes avanadas de desempenho da cache .....................67
2.3 Tecnologia de memria e otimizaes ................................................83
2.4 Proteo: memria virtual e mquinas virtuais .................................91
2.5 Questes cruzadas: o projeto de hierarquias de memria ...............97
2.6 Juntando tudo: hierarquia de memria no ARM Cortex-A8
e Intel Core i7.........................................................................................98
2.7 Falcias e armadilhas .........................................................................107
2.8 Comentrios finais: olhando para o futuro .......................................113
2.9 Perspectivas histricas e referncias ................................................114
Estudos de caso com exerccios por Norman P. Jouppi, Naveen
Muralimanohar e Sheng Li ................................................................114
Captulo 3 Paralelismo em nvel de instruo e sua explorao
3.1 Paralelismo em nvel de instruo: conceitos e desafios ................127
3.2 Tcnicas bsicas de compilador para expor o ILP ...........................135
3.3 Reduo de custos com previso de desvio avanado ....................140
3.4 Contornando hazards de dados com o escalonamento dinmico...144
3.5 Escalonamento dinmico: exemplos e algoritmo ............................152
3.6 Especulao baseada em hardware..................................................158
3.7 Explorando o ILP com mltiplo despacho e escalonamento
esttico ................................................................................................167

C0080.indd xxiii 11/10/13 8:34 PM


xxiv Sumrio

3.8 Explorando o ILP com escalonamento dinmico, mltiplo


despacho e especulao.....................................................................170
3.9 Tcnicas avanadas para o despacho de instrues
e especulao......................................................................................175
3.10 Estudos das limitaes do ILP ...........................................................185
3.11 Questes cruzadas: tcnicas de ILP e o sistema de memria ........192
3.12 Multithreading: usando suporte do ILP para explorar
o paralelismo em nvel de thread .......................................................193
3.13 Juntando tudo: o Intel Core i7 e o ARM Cortex-A8 .........................202
3.14 Falcias e armadilhas .........................................................................209
3.15 Comentrios finais: o que temos frente? .......................................213
3.16 Perspectivas histricas e referncias ................................................215
Estudos de caso e exerccios por Jason D. Bakos
e Robert P. Colwell .............................................................................215
Captulo 4 Paralelismo em nvel de dados em arquiteturas vetoriais,
SIMD e GPU1....................................................................................227
4.1 Introduo ...........................................................................................227
4.2 Arquitetura vetorial ............................................................................229
4.3 Extenses de conjunto de instrues SIMD para multimdia .........246
4.4 Unidades de processamento grfico .................................................251
4.5 Detectando e melhorando o paralelismo em nvel de loop .............274
4.6 Questes cruzadas .............................................................................282
4.7 Juntando tudo: GPUs mveis versus GPUs servidor
Tesla versus Core i7............................................................................284
4.8 Falcias e armadilhas .........................................................................290
4.9 Consideraes finais...........................................................................291
4.10 Perspectivas histricas e referncias ................................................293
Estudo de caso e exerccios por Jason D. Bakos .............................293
Captulo 5 Paralelismo em nvel de thread ........................................................... 301
5.1 Introduo ...........................................................................................301
5.2 Estruturas da memria compartilhada centralizada .......................308
5.3 Desempenho de multiprocessadores simtricos de memria
compartilhada ......................................................................................321
5.4 Memria distribuda compartilhada e coerncia baseada
em diretrio..........................................................................................332
5.5 Sincronismo: fundamentos ................................................................339
5.6 Modelos de consistncia de memria: uma introduo ..................343
5.7 Questes cruzadas .............................................................................347
5.8 Juntando tudo: processadores multicore e seu desempenho ........350
5.9 Falcias e armadilhas .........................................................................355
5.10 Comentrios finais ..............................................................................359
5.11 Perspectivas histricas e referncias ................................................361
Estudos de caso com exerccios por Amr Zaky
e David A. Wood ................................................................................361
Captulo 6 Computadores em escala warehouse para explorar
paralelismo em nvel de requisio e em nvel de dados ............379
6.1 Introduo ...........................................................................................379
6.2 Modelos de programao e cargas de trabalho
para computadores em escala warehouse........................................384
6.3 Arquitetura de computadores em escala warehouse ......................388
6.4 Infraestrutura fsica e custos dos computadores em escala
warehouse ............................................................................................392

C0080.indd xxiv 11/10/13 8:34 PM


Sumrio xxv

6.5 Computao em nuvem: o retorno da computao de utilidade ....400


6.6 Questes cruzadas .............................................................................405
6.7 Juntando tudo: o computador em escala warehouse do Google ...408
6.8 Falcias e armadilhas .........................................................................415
6.9 Comentrios finais ..............................................................................418
6.10 Perspectivas histricas e referncias ................................................419
Estudos de caso e exerccios por Parthasarathy Ranganathan .....419
Apndice A Princpios e exemplos de conjuntos de instrues ......................A-1
A.1 Introduo ..........................................................................................A-1
A.2 Classificando as arquiteturas de conjunto de instrues ...............A-2
A.3 Endereamento de memria .............................................................A-6
A.4 Tipo e tamanho dos operandos ......................................................A-12
A.5 Operaes no conjunto de instrues ............................................A-13
A.6 Instrues para fluxo de controle ...................................................A-14
A.7 Codificao de um conjunto de instrues ....................................A-18
A.8 Questes gerais: o papel dos compiladores ..................................A-21
A.9 Juntando tudo: a arquitetura MIPS ................................................A-29
A.10 Falcias e armadilhas ......................................................................A-36
A.11 Comentrios finais ...........................................................................A-40
A.12 Perspectiva histrica e referncias ................................................A-41
Exerccios por Gregory D. Peterson................................................A-42
Apndice B Reviso da hierarquia da memria ................................................ B-1
B.1 Introduo ........................................................................................... B-1
B.2 Desempenho de cache ..................................................................... B-13
B.3 Seis otimizaes de cache bsicas.................................................. B-19
B.4 Memria virtual ................................................................................ B-36
B.5 Proteo e exemplos de memria virtual ....................................... B-44
B.6 Falcias e armadilhas ...................................................................... B-51
B.7 Comentrios finais ........................................................................... B-53
B.8 Perspectivas histricas e referncias ............................................. B-53
Exerccios por Amr Zaky ................................................................. B-53
Apndice C Pipelining: conceitos bsicos e intermedirios .............................C-1
C.1 Introduo...........................................................................................C-1
C.2 O principal obstculo do pipelining hazards do pipeline.........C-10
C.3 Como o pipelining implementado? ..............................................C-26
C.4 O que torna o pipelining difcil de implementar?..........................C-38
C.5 Estendendo o pipeline MIPS para lidar com operaes multiciclos...C-46
C.6 Juntando tudo: o pipeline MIPS R4000 ..........................................C-55
C.7 Questes cruzadas ...........................................................................C-62
C.8 Falcias e armadilhas ......................................................................C-71
C.9 Comentrios finais ...........................................................................C-72
C.10 Perspectivas histricas e referncias .............................................C-72
Exerccios atualizados por Diana Franklin.....................................C-73

REFERNCIAS ........................................................................................................................ R-1


NDICE ...................................................................................................................................... I-1

C0080.indd xxv 11/10/13 8:34 PM


C0080.indd xxvi 11/10/13 8:34 PM

Você também pode gostar