throbber
COMPUTER
`
`ORGANIZATION
`
`JOHN L. HENNESSY
`
`AND DESIGN
`
`THE HARDWARE/SOFTWARE INTERFACE
`
`DAVID A. PATTERSON
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 1
`
`

`

`ACKNOWLEDGEMENTS
`
`Figures 1.9. I. [5 L‘ourtesv of Intel.
`
`Computers in the Real \Vorld:
`
`Figure [.1] Courtesy of Storage Technology Corp.
`
`Photo of “A Laotian villager," courtesy of David Sanger.
`
`Figures. III. [3.2. (‘.I3.2 (Itmrtesv of the (_.harles Itablmge Inttitute.
`L'ttiversitv of Minnesota Libraries. Minneapolis.
`
`Figures 1.7.3. (.1. I 3. l, {3. I 5.3. 7.9.3. 3.11.2 Courtesy of IBM.
`
`Figure [.14 Cmtrtearrr ul‘Cruy Inc.
`
`Figure [3.5 Courtesy oprple ( Iumputer, Inc.
`
`Figure lit» t inurresv of the t Zmnputer History Museum.
`
`Figure 7.53 Courtesy of AMI).
`
`Photo of an “Indian villager," propertyr ul‘Iincore Software, l_1:.I.. India.
`
`Photos of “Block and students." and “a pop-up archival satellite tag."
`courtesy of Prufessur Barbara Black. Photos by Scott Taylor.
`
`Photo» of “Professor Dawson and student" and “the Mic-.1 micromote.h
`
`courtesy of Al’fWorld \Vide Photos.
`
`l‘holus of “images of pottery fragments" and “a computer recunslruc-
`tiun,"cuurle5_v ol'Andrew \Villis and David It. Cooper, Brown L'niversitv.
`Division of Engineering.
`
`Figures 7.9.1. 7.9.2 Courtesv of Museum of Science. Boston.
`
`Photo of "the EurostanGV train," by his van der Kolk.
`
`Figure 7.951 Curtl‘leznur of MIPS Technologies, Inc.
`
`l‘hulu (ll-“”16 interior oI‘al Eul‘oslar TGV cab," by And)“ Veilcll.
`
`Figure 8.3 -¢"=l’eg, Skorpimki.
`
`Photo of "firefighter Ken Whine-n." courtesy,r oHVorhI Economic Forum.
`
`Figure 3.1].l (Iourtesv uflhe (Imuputer Museum ot'r‘um-rica.
`
`Figure 3.1 1.5 tjourtesy ofthe Commercial Llomputing NILISL‘UIT'I.
`
`Figures EH [.3. 9.| L3 Courtesy of NASA Ames Research Center.
`
`Figure 9.1 II-I Courtesy of Lawrence Livermore National Laboratory.
`
`Graphic of an “artificial
`Reprinted by permission.
`
`retina." 4" The San Francisco (Throuicle.
`
`Image of “A laser scan of L-Iichelnngelo’n alatue of David," courtesy of
`Marc Levov and Dr. Franca Falletti. director of the tiaileria dell‘Acca-
`demiu, Italy.
`
`111 image
`“An image From the Sistine Chapel." courtesy of Luca l’euati.
`recorded using the scanner for IR retlectography of the [NUA {National
`Institute for Applied Optics. httpfllarteanmit) at the Opilicin delle Pietre
`Dure in Florence.
`
`
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 2
`
`

`

`
`
`Senior Editor
`
`Denise E. M. l’enrose
`
`Publishing Services Manager
`Iiditorial Assistant
`Cover Design
`timer and Chapter Illustration
`'l‘ext Design
`Composition
`'l'echnical Illustration
`Copyeditor
`Proofreader
`indexer
`
`Simon Crump
`Summer Block
`Ross Caron Design
`[Chris Asimondis
`HUS Book Services
`Nancy Logan and Dartmouth Publishing. inc.
`llartnit'iulh Publishing, inc.
`Ken Dellal’enta
`lacqui Brownstein
`[.inda littskus
`
`Interior printer
`Cover printer
`
`Courier
`tjourier
`
`.\-'lorg,an Kauhnann Publishers is an imprint of Elsevier.
`Stilt Sansome Street, Suite 4““. San Francisco, t IA 9-H t]
`
`This book is printed on acidei'ree paper.
`
`'<"- 2005 by Elsevier Inc. All rights reserved.
`
`Designatitms used by companies to distinguish their products are often claimed as trademarks or registered
`trademarks. In all instances in which Morgan Kaufmann Publishers is aware of a claim. the product names
`appear in initial capital or all capital letters. Readers, however. should contact the appropriate companies
`lot more complete information regarding trademarks and registration.
`
`
`No part of this publication may be reproduced. stored in a retrieval system. or transmitted in any form or
`by any means
`electronic, mechanical. photocopying. scanning, or ratherwise—withoul prior written per—
`mission of the publisher.
`
`Permissions may he sought directly from Elsevier's Science &' Technology Rights Department in Oxford.
`UK: phone: (till lBoS 843830. fax: tt-N) [SoS 85.5333. e-mail: permissiunsGT'elsevier.comark. You may
`also complete your request tun—line via the Iilseyier homepage ihttp:Helseyier.com) hy selecting “Customer
`Support" and then “Obtaining Permissions."
`
`Library of t Iongress t lataioging—in—l’ulslication Data
`Application submitted
`
`ISBN: l‘SEli‘ihU-{fill‘l‘l
`
`For information on all Morgan Kaolinann publications.
`visil nLlr “"eh site at www.mlip.corl‘t.
`
`Printed in the United States of America
`04 {15 06 U? [18
`5 4 3 2
`I
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 3
`
`

`

`
`
`Contents
`
`
`
`
`Contents
`
`Preface
`
`ix
`
`C H A P T E R S
`
`a Computer Abstractions and Technology 2
`
`1.1
`
`introduction
`
`3
`
`Below Your Program I
`1.2
`1.3 Under the Covers
`15
`
`l
`
`1.4
`1.5
`
`Real Stuff: Manufacturing Pentium {1 Chips
`Fallacies and Pitfalls
`33
`
`28
`
`I
`
`35
`Lo Concluding Remarks
`1.? Historical Perspective and Further Reading
`1.8
`Exercises
`3o
`
`36
`
`COMPUTERS IN THE REAL WORLD
`
`Information Technology for the 4 Billion without IT 44
`
`a Instructions: Language of the Computer 46
`
`2.1
`
`Introduction
`
`48
`
`49
`2.2 Operations of'the Computer Hardware
`52
`2.3 Operands ot‘the Computer l-lardware
`2.4
`Representing Instructions in the Computer
`2.5
`Logical Operations
`(18
`72
`2.6
`Instructions for Making Decisions
`2.?
`Sttpporting Procedures in Computer Hardware
`2.8 Communicating with People
`90
`2.9 MIPS Addressing for 32—Bit lmmediates and Addresses
`2.10 'l'ranslating and Starting, a Program 106
`2.l I How (It'mtpilers Optimize
`I lo
`"3
`.I2 How Compilers Work: An Introduction
`
`60
`
`F'9
`
`95
`
`I2[
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 4
`
`

`

`Contents
`
`.13 A C Sort Example to Put It All 'I'ogether
`
`121
`
`Implementing an Object-Oriented Language
`.14
`.15 Arrays versus Pointers
`130
`.16 Real Stuff: Iii—32 Instructions
`
`I34
`
`130
`
`.17 Fallacies and Pitfalls
`
`143
`
`145
`.18 Concluding Remarks
`.19 Historical Perspective and Further Reading
`.20 Exercises
`14?
`
`14?
`
`totototototomta)
`
`COMPUTERS IN THE REAL WORLD
`
`I'Iehing Save Our Environment with Data 156
`
`a Arithmetic for Computers 158
`
`3.l
`
`Introduction
`
`160
`
`Signed and Unsigned Numbers
`3.2
`3.3 Addition and Subtraction
`120
`
`160
`
`3.4 Multiplication
`5.5 Division
`183
`
`176
`
`3.6
`3.?
`3.8
`
`189
`Floating Point
`Real Stuff: Floating, Point in the lA—32
`Fallacies and Pitfalls
`220
`
`21?
`
`I
`
`225
`3.9 Concluding Remarks
`3.11) Historical Perspective and Further Reading
`3.1 1 Exercises
`229
`
`229
`
`COMPUTERS IN THE REAL WORLD
`
`Reconstructing the Ancient World 236
`
`n Assessing and Understanding Performance 238
`
`4.|
`
`4.2
`
`4.3
`4.4
`
`Introduction
`
`240
`
`CPU Performance and Its Factors
`
`246
`
`254
`Evaluating Performance
`Real Stuff: Two SPEC Benchmarks and the Performance of Recent
`
`Intel Processors
`
`259
`
`4.5
`
`Fallacies and Pitfalls
`
`266
`
`I
`
`2?”
`4.6 Concluding Remarks
`4.? Historical Perspective and Further Reading
`4.8
`Exercises
`272
`
`272
`
`COMPUTERS IN THE REAL WORLD
`
`Moving People Faster and More Safely 280
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 5
`
`

`

`Contents
`V"
`
`'I'he Processor: Datapath and Control 282
`
`5.1
`
`Introduction
`
`284
`
`289
`
`301)
`
`Logic Design Conventions
`5.2
`Buildinga Datapath
`293.
`5.3
`A Simple Implementation Scheme
`5.4
`A Mullicvcle Implementation
`318
`5.5
`Exceptions
`340
`5.0
`346
`5.7 Microprogramming: Simplifying Control Design
`5.8 An Introduction to Digital Design Using a Hardware Design
`Language
`346
`Real Stuff: The Organization of Recent Pentium
`Implementations
`347
`5.10 Fallacies and Pitfalls
`350
`
`5.9
`
`352
`5.11 Concluding Remarks
`5.12 Historical Perspective and Further Reading
`5.13 Exercises
`354
`
`353
`
`COMPUTERS IN THE REAL WORLD
`
`Empowering the Difllell 383
`
`Enhancing Performance with Pipelining 368
`
`An Overview of Pipelining
`6.1
`A Pipelined Datapath
`384
`6.2
`Pipeiined Control
`399
`6.3
`6.4 Data Hazards and Forwarding
`[3.5 Data Hazards and Stalls
`413
`
`370
`
`402
`
`6.6
`
`Branch Hazards
`
`416
`
`(3.?
`
`Using :1 Hardware Description Language to Describe and Model a
`Pipeline
`426
`Exceptions
`43?
`{LS
`6.9 Advanced Pipelining: Exiracling More Performance
`6.10 Real Stuff: The Pentium 4 Pipeline
`448
`5.11 Fallacies and Pitfalls
`451
`
`432
`
`h.12 Concluding Remarks
`
`453
`
`6.13 Historical Perspective and Further Reading
`6.14 Exercises
`454
`
`45.4
`
`cOMPUTERS IN THE REAL WORLD
`
`Mass Communication without Gatekeepers 4B4
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 6
`
`

`

`Contents
`will
`
`
`Large and Fast: Exploiting Memory Hierarchy 466
`
`7.1
`
`7.2
`
`Introduction
`
`468
`
`The Basics ol'Caches
`
`473
`
`7.3 Measuring and Improving Cache Performance
`7.4 Virtual Memory
`511
`538
`7.5
`A Common Framework for M emory Hierarchies
`7.6
`Real Stuff: The Pentium P4 and the AMD Opteron Memoryr
`Hierarchies
`546
`
`492
`
`7 7
`
`Fallacies and Pitfalls
`
`550
`
`7.8 Concluding Remarks
`
`552
`
`7.9 Historical Perspective and Further Reading
`7.10 Exercises
`555
`
`555
`
`COMPUTERS IN THE REAL WORLD
`
`Savlng the World's Art Treasures 582
`
`Storage, Networks, and Other Peripherals 564
`
`8.1
`
`Introduction
`
`560
`
`Disk Storage ant11)epend;ihilily
`8.2
`8..3 Networks
`580
`
`569
`
`8.4
`
`Buses and Other Connections between Processors, Memory, and [IO
`Devices
`581
`
`8.5
`
`Interfacing 1/0 Devices to the Processor, Memory. and Operating
`System 588
`8.6 NO Performance Measures: Examples from Disk and File
`
`597
`Systems
`8.? Designing an 1/0 System out)
`8.8
`Real Stuff: A Digital Camera
`8.9
`Fallacies and Pitfalls
`(506
`
`603
`
`(709
`8.11) Concluding Remarks
`8.11 Historical Perspective and Further Reading,
`8.12 Exercises
`(111
`
`611
`
`cOMPUTERS IN THE REAL WORLD
`
`Saving Lives throng: Better Diagnosis 622
`
`
`
`Multiprocessors and clusters 9-2
`
`9.1
`
`Introduction
`
`9—4
`
`9-8
`Programming Multiprocessors
`9.2
`9.3 Multiprocessors Connected by a Single Bus
`
`9‘11
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 7
`
`

`

`Contents
`
`
`
`
`9.4 Multiprocessors Connected by a NetWork
`9.5
`Clusters
`9-25
`
`9-20
`
`9.6
`9.?
`9.8
`9.9
`
`9—2?
`Network 'l'opologies
`M ultiprocessors Inside a Chip and Multithreading
`Real Stuff: The Google Cluster of PCS
`9—34
`Fallacies and Pitfalls
`9-39
`
`9—30
`
`9-42
`9.10 Concluding Remarks
`9.11 Historical Perspective and Further Reading
`9.12 Exercises
`9-55
`
`9-4?
`
`APPENDI¢E$
`
` Assemblers, Linkers, and the SPIM Simulator A-2
`
`A.1
`
`Introduction
`
`A—3
`
`A“? Assemblers
`
`A—lU
`
`A3
`
`Linkers A-18
`
`AA Loading A—l9
`
`Ax": Memory Usage A-20
`Ab
`Procedure Call Convention A-EE
`
`A]
`A.8
`A59
`
`Exceptions andlnterrupts A-33
`lnpntand Output
`A—38
`SPLVI
`A—40
`
`£1.10 MIPS R2000 Assembly Language
`AJ] ConcludingRemarks
`A—S]
`A.12 Exercises A-Sl
`
`91—45
`
`
`
`The Basics of Logic Design 3-2
`
`8.1
`
`Introduction
`
`8-3
`
`8.2 Gates, Truth Tables. and Logic Equations
`8.3 Combinational Logic 88
`8.4 Using a Hardware Description Language
`8.5 Constructing a Basic Arithmetic Logic Unit
`8.6:
`Faster Addition: Carry Lookahead
`8-38
`8.? Clocks
`8—4?
`
`8—4
`
`8—20
`B—2b
`
`8.8 M emory Elements: Flip-flops. Latches, and Registers
`
`8-49
`
`8.9 Memory Elements: SRAMS and DRAMS
`8.10 Finite State N'Iachines
`8-67
`
`8-57
`
`8.1] Timing k-lethodologies
`
`8—?2
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 8
`
`

`

`Contents
`
`
`
`
`
`13.12 Field Programmable Devices
`
`13-7?
`
`8.13 Concluding Remarks
`15.14 Exercises BJ‘)
`
`8-78
`
`Mapping Control to Hardware
`
`c-2
`
`C.l
`
`Introduction
`
`(3-3
`
`(1-4
`Implementing Combinational Control Units
`(1.2
`(3-8
`Implementing Finite State Machine Control
`C.3
`Implementing the Next-State Function with a Sequencer C-El
`(1.4
`Cf: Translating a h-Iicroprogram to Hardware
`(2-27
`Ci: Concluding Remarks
`C—31
`(L? Exercises
`(232
`
`A Survey of nlsc Architectures for Desktola, Server,
`and Embedded Computers 0-2
`
`13.1
`
`Introduction
`
`13-3
`
`D.2 Addressing Modes and Instruction Formats
`11.3
`Instructions: The MIPS Core Subset
`I)-9
`
`13—5
`
`DA Instructions: Multimedia Extensions ofthe Desktop/Server RISCs
`D5
`Instructions: Digital Signal—Processing Extensions ofthe
`Embedded RISCs
`D-19
`
`[31— lo
`
`13.6
`
`Instructions: Common Extensions to MIPS Core
`
`13-30
`
`1).?
`[18
`
`Instructions Unique to MlPStiLt
`Instructions Unique to Alpha
`
`D-25
`IJ-ZT
`
`17-29
`Instructions Unique to SPARC v.9
`17.9
`D.10 Instructions Unique to PowerPC D—32
`113.11
`Instructions Unique to PA—RISC 2.0
`0—34
`1.3.1.2 Instructions Unique to ARM 17—36
`D.13 Instructions Unique to Thumb
`D—38
`D.l4 Instructions Unique to SuperH D-39
`1).]5 Instructions Unique to M32R 13-40
`1.3.16 Instructions Unique to MlPSlo D-41
`1).]? Concluding Remarks D-43
`17.18 Acknowledgments
`17-46
`13.19 References
`D—47
`
`Index
`
`1—]
`
`I Glossary
`
`(7—!
`
`I Further Reading
`
`FR-I
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 9
`
`

`

`
`
`Computer
`
`Abstractions
`
`and Technology
`
`Civilization advances by extending
`the number of important operations
`which we can perform without
`thinking about them.
`
`Mind North Whltohoad
`
`An Introduction to Mathematics, 1911
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 10
`
`

`

`This Page Intentionally Left Blank
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 11
`
`

`

`1.1
`
`Introduction 3
`
`1.2
`
`1.3
`
`1.4
`
`1.5
`
`Below Your Program II
`
`Under the Covers
`
`15
`
`Real Stuff: Manufacturing Pentium 4 Chips
`
`38
`
`Fallacies and Pitfalls
`
`33
`
`1.6
`
`Concluding Remarks
`
`35
`
`I 1.7
`
`Historical Perspective and Further Reading 36
`
`1.8
`
`Exercises
`
`36
`
`
`
`Introduction
`
`Welcome to this book! We’re delighted to have this opportunity to coatvey the
`excitement of the world of computer systems. This is not a dry and dreary field,
`where progress is glacial and where new ideas atrophy from neglect. No! Comput-
`ers are the product of the incredibly vibrant information technology industry, all
`aspects of which are responsible For almost 10% of the gross national product of
`the United States. This unusual industry embraces innovation at a breathtaking
`rate. Since 1985 there have been a number of new computers whose introduction
`appeared to revolutionize the computing industry; these revolutions were Cut
`short only because someone else built an even better computer.
`This race to innovate has led to unprecedented progress since the inception of
`electronic computing in the late 19405. Had the transportation industry kept pace
`with the computer industry, for example, today we could travel coast to coast in
`about a second for roughly a few cents. Take just a moment to contemplate how
`such an improvement would change society—living in Tahiti while working in
`San Francisco, going to Moscow for an evening at the Bolshoi Ballet—and you can
`appreciate the implications of such a change.
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 12
`
`

`

`Ohm!» 1 Comic: Abstractions and Technology
`
`Computers have led to a third revolution for civilization, with the information
`revolution taking its place alongside the agricultural and the industrial revolu-
`tions. The resulting multiplication of humankind’s intellectual strength and reach
`naturally has affected our everyday lives profoundly and also changed the ways in
`which the search for new knowledge is carried out. There is now a new vein of sci-
`entific investigation, with computational scientists joining theoretical and experi-
`mental scientists in the exploration of new frontiers in astronomy, biology,
`chemistry, physics, .
`.
`.
`The computer revolution continues. Each time the cost of computing improves
`by another factor of 10, the opportunities for computers multiply. Applications
`that were economically infeasible suddenly become practical. In the recent past,
`the following applications were “computer science fiction.”
`
`I Automatic teller machines: A computer placed in the wall of banks to dis—
`tribute and collect cash would have been a ridiculous concept in the 19505,
`when the cheapest c0mputer cost at least $500,000 and was the size of a car.
`
`I Computers in automobiles: Until microprocessors improved dramatically in
`price and performance in the early 19805. computer control of cars was ludi-
`crous. Today, computers reduce pollution and improve fuel efficiency via
`engine controls and increase safety through the prevention of dangerous
`skids and through the inflation of air bags to protect occupants in a crash.
`
`I Laptop computers: Who would have dreamed that advances in computer
`systems would lead to laptop computers, allowing students to bring com-
`puters to coffeehouses and on airplanes?
`
`l Human genome project: The cost of computer equipment to map and ana—
`lyze human DNA sequences is hundreds of millions of dollars. It's unlikely
`that anyone would have considered this project had the computer costs been
`10 to 100 times higher, as they would have been 10 to 20 years ago.
`
`I Wold Wide irVeit: Not in existence at the time of the first edition of this
`
`book, the World Wide Web has transformed our society. Among its uses are
`distributing news, sending flowers, buying from online catalogues, taking
`electmnic tours to help pick vacatiou spots, finding others who share your
`esoteric interests, and even more mundane topics like finding the lecture
`notes of the authors of your textbooks.
`
`Clearly, advances in this technology now affect almost every aspect of our society.
`Hardware advances have allowed programmers to create wonderfully useful soft-
`ware, and explain why computers are omnipresent. Tomorrow’s science fiction
`computer applications are the cashless society, automated intelligent highways,
`and genuinely ubiquitous computing: no One carries computers because they are
`available everywhere.
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 13
`
`

`

`1.1 Introductlon
`
`Classes of computing Applications and Their
`
`Characteristics
`
`Although a common set of hardware technologies (discussed in Sections 1.3 and
`1.4) is used in computers ranging from smart home appliances to cell phones to
`the largest supercomputers,
`these different applications have different design
`requirements and employ the core hardware technologies in different ways.
`Broadly speaking, computers are used in three different classes of applications.
`Desktop computers are possibly the best-known form of computing and are
`characterized by the personal computer, which most readers of this book have
`probably used extensively. Desktop computers emphasize delivering good perfor-
`mance to a single user at low cost and usually are used to execute third-party soft-
`ware, also called shrink«wrap software. Desktop computing is one of the largest
`markets for computers, and the evolution of many computing technologies is
`driven by this class of computing, which is only about 30 years old!
`Servers are the modern form of what was once mainframes, minicomputers,
`and supercomputers, and are usually accessed only via a network. Servers are ori-
`ented to carrying large workloads, which may consist of either single complex
`applications, usually a scientific or engineering application, or handling many
`small jobs, such as would occur in building a large Web server. These applications
`are often based 011 software front another source (such as a database or simulation
`system), but are often modified or customized for a particular function. Servers
`are built from the same basic technology as desktop computers, but provide for
`greater expandability of both computing and in put/output capacity. As we will see
`in the Chapter 4, the performance of a server can be measured in several different
`ways, depending on the application of interest. In general, servers also place a
`greater emphasis on dependability, since a crash is usually more costly than it
`would be On a Single-user desktop computer.
`Servers span the widest range in cost and capability. At the low end, a server
`may be little more than a desktop machine without a screen or keyboard and with
`a cost of a thousand dollars. These low-end servers are typically used for file stor»
`age, small business applications, or simple web serving. At the other extreme are
`supercomputers, which at the present consist of hundreds to thousands of pro—
`cessors, and usually gigabytes to terabytes of memory and terabytes to petabytes
`of storage, and cost millions to hundreds of millions of dollars. Supercomputers
`are usually used for high—end scientific and engineering calculations, such as
`weather forecasting, oil exploration, protein structure determination, and other
`large-scale problems. Although such supercomputers represent the peak of com—
`puting capability, they are a relatively small fraction of the servers and a relatively
`small fraction of the overall computer market in terms of total revenue.
`Embedded computers are the largest class of computers and span the widest
`range of applications and performance. Embedded computers include the micro—
`processors found in your washing machine and car, the computers in a cell phone
`
`desktop computer A com-
`puter designed for use by an
`individual, usually incorporat—
`ing a graphics display, keyboard,
`and mouse.
`
`Server A computer used for
`running larger programs for
`multiple users often simulta~
`neously and typically accessed
`only via a network.
`
`supercomputer A class of
`computers with the highest per-
`formance and cost; they are
`configured as servers and typi—
`cally cost millions of dollars.
`
`terabyte Originally
`1,099.51 l,(127,??6 {24”} bytes,
`although some communications
`and secondary storage systems
`have redefined it to mean
`
`1,000.000noonao (10”) bytes.
`
`embedded computer A com-
`puter inside another device used
`for running one predetermined
`application or collection ofsoft-
`wore.
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 14
`
`

`

`
`
`Charter 1 Commuter Abstractions and Technology
`
`or personal digital assistant, the computers in a video game or digital television,
`and the networks of processors that control a modern airplane or cargo ship.
`Embedded computing systems are designed to run one application or one set of
`related applications, which is normally integrated with the hardware and delivered
`as a single system; thus, despite the large number of embedded computers, most
`users never really see that they are using a computer!
`Embedded applicatious often have unique application requirements that com»
`bine a minimum performance with stringent limitations on cost or power. For
`example, consider a cell phone: the processor need only be as fast as necessary to
`handle its limited function, and beyond that, minimizing cost and power are the
`most important objectives. Despite their low cost, embedded computers often
`have the least tolerance for failure, since the results can vary from upsetting (when
`your new television crashes) to devastating (such as might occur when the com-
`puter in a plane or car crashes). In consumer-oriented embedded applications,
`such as a digital home appliance, dependability is achieved primarily through
`simplicity—the emphasis is on doing one function, as perfectly as possible. In
`large embedded systems, techniques of redundancy, which are used in servers, are
`often employed. Although this book focuses on general-purpose computers, most
`of the concepts apply directly. or with slight modifications, to embedded comput-
`ers. In several places, we will touch on sonie of the unique aspects of embedded
`
`computers.
`Figure 1.1 shows that during the last several years, the growth in the number of
`embedded computers has been much faster (40% compounded annual growth
`rate) than the growth rate among desktop computers and servers (9% annually).
`Note that the embedded computers include cell phones, video games, digital TVs
`and set-top boxes, personal digital assistants, and a variety of such consumer
`devices. Note that this data does not include low—end embedded control devices
`
`that use 8—bit and 16—bit processors.
`
`Elaboration: Elaborations are short sections used throughout the text to provide
`more detail on a particular subject, which may be of interest. Disinterested readers
`
`may skip over an elaboration, since the subsequent material will never depend on the
`contents of the elaboration.
`
`Many embedded processors are designed using processor cores, 3 version of a pro-
`
`cessor written in a hardware description language such as Verilog or VHDL. The core
`allows a designer to integrate other application-specific hardware with the processor
`
`core for fabrication on a single chip. The availability of synthesis tools that can gener-
`
`ate a chip from a Veritog specification, together with the capacity of modern silicon
`chips, has made such special-purpose processors highly attractive. Since the core can
`
`be synthesized for different semiconductor manufacturing lines. using a core provides
`flexibility in choosing a manufacturer as well. In the last few years, the use of cores has
`
`
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 15
`
`

`

`1.1 Introduction
`
`1200
`
`1190
`
`1 000
`
`
`
`D Embedded computer
`I Desktops
`
`I serers
`
`
`
`Millionsofcomputers
`
`900
`
`800
`
`700
`
`600
`
`100
`
`500
`
`400
`
`300
`
`200
`
`1998
`
`1999
`
`2000
`
`2001
`
`2002
`
`FIGURE 1.1 Tho number of distinct processors sold between 1998 and 2002. These counts
`are obtained somewhat differently. so some caution is required in interpreting the results. For example. the
`totals for desktops and servers count complete computer systems. because some traction of these include
`multiple processors. the number of processors sold is somewhat higher. but probably ht; only Ill 2t|"-n in
`tot-.1] (since the servers. which may average more than one processor per system. are only about 3th: of the
`desktop sales. which are predominantly sirtgleeprocessor systems). The totals for embedded computers actur
`ally count processors, many of which are not even visible. and in some cases there may be multiple proces-
`sors per device.
`
`been growing very fast. For example, in 1998 only 31% of the embedded processors
`were cores. By 2002. 56% of the embedded processors were cores. Furthermore,
`
`while the overall growth rate in the embedded market has been 40% per year, this
`
`growth has been primarily driven by cores, where the compounded annual growth rate
`has been 63%!
`
`Figure 1.2 shows the major architectures sold in these markets with counts for
`each architecture, across all
`three types of products (embedded, desktop, and
`server). Only 32-bit and 64-bit processors are included. although 32-bit proces-
`sors are the vast majority for most ot‘ the architectures.
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 16
`
`

`

`Chapter 1 Col-motor abstractions and technology
`
`I: Other
`
`I SPAHC
`
`I Hitachi SH
`
`I PowerPC
`
`l:l Motorola 88K
`
`
`
`Millionsofprocessors
`
`zation.
`
`Successful programmers have always been COncerned about the performance of
`their programs because getting results to the user quickly is critical in creating
`successful software. In the 19605 and 19705, a primary constraint on computer
`performance was the size of the computer’s memory. Thus programmers often
`followed a simple credo: Minimize memory space to make programs fast. In the
`last decade, advances in computer design and memory technology have greatly
`reduced the importance of small memory size in most applications other than
`those in embedded computing systems.
`Programmers interested in performance now need to understand the issues
`that have replaced the simple memory model ofthe 19605:
`the hierarchical nature
`of memories and the parallel nature of processors. Programmers who seek to
`build competitive versions of compilers, operating systems, databases, and even
`applications will therefore need to increase their knowledge of computer organi-
`
`1998
`
`1999
`
`2000
`
`2001
`
`2002
`
`FIGURE 1.2 Sales of mlcroprocomn Maroon 1998 and 2002 by Instruction set are!“-
`techno comblnhg all III... The "other" category refers to processors that are either application-
`specilic or customized architectures. In the case ul'ARM. roughly 30% of the sales are for cellphones. where
`an ARM core is used in conjunction with applicatinivspccific logic on a chip.
`
`What You Can Learn in This Book
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 17
`
`

`

`1.1 Introduction
`
`We are honored to have the opportunity to explain what’s inside this rev—
`olutionary machine, unraveling the software below your program and the hard-
`ware under the covers of your computer. By the time you complete this book, we
`believe you will be able to answer the following questions:
`
`I How are programs written in a high-level language, such as C or lava, trans-
`lated into the language of the hardware, and how does the hardware execute
`the resulting program? Comprehending these concepts forms the basis of
`understanding the aspects ofboth the hardware and software that affect pro-
`gram performance.
`
`I What is the interface between the software and the hardware, and how does
`
`software instruct the hardware to perform needed functions? These con-
`cepts are vital to understanding how to write many kinds of software.
`
`I What determines the performance of a program, and how can a program-
`mer improve the performance? As we will see, this depends on the original
`program, the software translation of that program into the computer’s lan-
`guage, and the effectiveness of the hardware in executing the program.
`
`I What techniques can be used by hardware designers to improve perfor-
`mance? This book will introduce the basic concepts of modern computer
`design. The interested reader will find much more material on this topic in
`our advanced book, A (L'ompuhrr Architecture: A Quantitative Approach.
`
`Without understanding the answers to these questions, improving the perfor-
`mance of your program on a modern COmputer, or evaluating what features might
`make one computer better than another for a particular application, will be a
`complex process of trial and error, rather than a scientific procedure driven by
`insight and analysis.
`This first chapter lays the foundation for the rest of the book. It introduces the
`basic ideas and definitions, places the major components of software and hard-
`ware in perspective, and introduces integrated circuits, the technology that fuels
`the computer revolutiOn. In this chapter, and later ones, you will likely see a lot of
`new words, or words that you may have heard, but are not sure what they mean.
`Don’t panic! Yes, there is a lot of special terminology used in describing modern
`computers, but the terminology actually helps since it enables us to describe pre—
`cisely a function or capability. in addition, computer designers (including your
`authors) lure using acronyms, which are easy to understand once you know what
`the letters stand for! To help you remember and locate terms, we have included a
`highlighted definition of every term, the first time it appears in the text. After a
`Short time of working with the terminology, you will be fluent, and your friends
`
`acronym A word constructed
`by taking the initial letters of
`
`string ofwords. For example:
`RAM is an acronym for Ran-
`dom Access Memory, and CPU
`is an acronym for Central Pro-
`
`cessing Unit.
`
`
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 18
`
`

`

`10
`
`charter :I. Comte: Abetractlone and Technology
`
`will be impressed as you correctly use words such as BIOS, DIMM, CPU, cache,
`DRAM, ATA, PCI, and many others.
`To reinforce how the software and hardware systems used to run a program will
`affect performance, we use a special section, “Understanding Program Perfor-
`mance,” throughout the book, with the first one appearing below. These elements
`summarize important insights into program performance.
`
`
`
`Understanding
`
`Program
`Performance
`
`The performance of a program depends on a combination of the effectiveness of
`the algorithms used in the program, the software systems used to create and trans—
`late the program into machine instructions, and the effectiveness of the computer
`in executing those instructions, which may include U0 operations. The following
`table summarizes how the hardware and software affect performance.
`
`Where is this
`How this component effect:
`Hardwue or software
`
`
`performancecomponent topic covered?
`
`- Algorithm
`
`Determines both the number of source—levei
`statements and the number of I/O operations
`executed
`
`Other books!
`
`
`
`
`
`Programming language.
`compiler. and architecture
`Processor and memory
`system
`
`Determines the number of machine instructions Chapters 2 and 3
`for each source-level statement
`‘
`Determines how fast instructions can be
`executed
`
`Chapters 5, 6.
`and 7
`
`Chapter 8
`Determines how fast I/O operations may be
`I/D system (hardware and
`
`operating system} executed
`
`
`
`Check
`
`Yourself
`
`“Check Yourself ” sections are designed to help readers assess whether they have
`comprehended the major concepts introduced in a chapter and understand the
`implications of those concepts. Some “Check Yourself“ questions have simple
`answers; others are for diSCUSSlOn among a group. Answers to the specific ques-
`tions can be found at the end of the chapter. “Check Yourself” questions appear
`only at the end of a section, making it easy to skip them if you are sure you under-
`stand the material.
`
`]. Section 1.1 showed that the number of embedded processors sold every
`year greatly outnumbers the number of desktop processors. Can you con—
`firm or deny this insight based on your own experience? Try to count the
`number of embedded processors in your home. How does it compare with
`the number of desktop computers in your home?
`
`Patent Owner, Bot M8 LLC - Ex. 2044, p. 19
`
`

`

`1.2 Bolow Your Program
`
`As mentioned earlier, both the software and hardware affect the perfor—
`mance of a progr

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket