Essentials of Computer Architecture
eBook - ePub

Essentials of Computer Architecture

Douglas Comer

Share book
  1. 511 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Essentials of Computer Architecture

Douglas Comer

Book details
Book preview
Table of contents
Citations

About This Book

This easy to read textbook provides an introduction to computer architecture, while focusing on the essential aspects of hardware that programmers need to know. The topics are explained from a programmer's point of view, and the text emphasizes consequences for programmers. Divided in five parts, the book covers the basics of digital logic, gates, and data paths, as well as the three primary aspects of architecture: processors, memories, and I/O systems. The book also covers advanced topics of parallelism, pipelining, power and energy, and performance. A hands-on lab is also included. The second edition contains three new chapters as well as changes and updates throughout.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Essentials of Computer Architecture an online PDF/ePUB?
Yes, you can access Essentials of Computer Architecture by Douglas Comer in PDF and/or ePUB format, as well as other popular books in Computer Science & Systems Architecture. We have over one million books available in our catalogue for you to explore.

Information

Year
2017
ISBN
9781351849609
Edition
2

1

Introduction And Overview

Chapter Contents
1.1      The Importance Of Architecture
1.2      Learning The Essentials
1.3      Organization Of The Text
1.4      What We Will Omit
1.5      Terminology: Architecture And Design
1.6      Summary

1.1 The Importance Of Architecture

Computers are everywhere. Cell phones, video games, household appliances, and vehicles all contain programmable processors. Each of these systems depends on software, which brings us to an important question: why should someone interested in building software study computer architecture? The answer is that understanding the hardware makes it possible to write smaller, faster code that is less prone to errors. A basic knowledge of architecture also helps programmers appreciate the relative cost of operations (e.g., the time required for an I/O operation compared to the time required for an arithmetic operation) and the effects of programming choices. Finally, understanding how hardware works helps programmers debug — someone who is aware of the hardware has more clues to help spot the source of bugs. In short, the more a programmer understands about the underlying hardware, the better he or she will be at creating software.

1.2 Learning The Essentials

As any hardware engineer will tell you, digital hardware used to build computer systems is incredibly complex. In addition to myriad technologies and intricate sets of electronic components that constitute each technology, engineers must master design rules that dictate how the components can be constructed and how they can be interconnected to form systems. Furthermore, the technologies continue to evolve, and newer, smaller, faster components appear continuously.
Fortunately, as this text demonstrates, it is possible to understand architectural components without knowing low-level technical details. The text focuses on essentials, and explains computer architecture in broad, conceptual terms — it describes each of the major components and examines their role in the overall system. Thus, readers do not need a background in electronics or electrical engineering to understand the subject.

1.3 Organization Of The Text

What are the major topics we will cover? The text is organized into five parts.
Basics. The first section covers two topics that are essential to the rest of the book: digital logic and data representation. We will see that in each case, the issue is the same: the use of electronic mechanisms to represent and manipulate digital information.
Processors. One of the three key areas of architecture, processing concerns both computation (e.g., arithmetic) and control (e.g., executing a sequence of steps). We will learn about the basic building blocks, and see how the blocks are used in a modern Central Processing Unit (CPU).
Memory. The second key area of architecture, memory systems, focuses on the storage and access of digital information. We will examine both physical and virtual memory systems, and understand one of the most important concepts in computing: caching.
I/O. The third key area of architecture, input and output, focuses on the interconnection of computers and devices such as microphones, keyboards, mice, displays, disks, and networks. We will learn about bus technology, see how a processor uses a bus to communicate with a device, and understand the role of device driver software.
Advanced Topics. The final section focuses on two important topics that arise in many forms: parallelism and pipelining. We will see how either parallel or pipelined hardware can be used to improve overall performance.

1.4 What We Will Omit

Paring a topic down to essentials means choosing items to omit. In the case of this text, we have chosen breadth rather than depth — when a choice is required, we have chosen to focus on concepts instead of details. Thus, the text covers the major topics in architecture, but omits lesser-known variants and low-level engineering details. For example, our discussion of how a basic nand gate operates gives a simplistic description without discussing the exact internal structure or describing precisely how a gate dissipates the electrical current that flows into it. Similarly, our discussion of processors and memory systems avoids the quantitative analysis of performance that an engineer needs. Instead, we take a high-level view aimed at helping the reader understand the overall design and the consequences for programmers rather than preparing the reader to build hardware.

1.5 Terminology: Architecture And Design

Throughout the text, we will use the term architecture to refer to the overall organization of a computer system. A computer architecture is analogous to a blueprint — the architecture specifies the interconnection among major components and the overall functionality of each component without giving many details. Before a digital system can be built that implements a given architecture, engineers must translate the overall architecture into a practical design that accounts for details that the architectural specification omits. For example, the design must specify how components are grouped onto chips, how chips are grouped onto circuit boards, and how power is distributed to each board. Eventually, a design must be implemented, which entails choosing specific hardware from which the system will be constructed. A design represents one possible way to realize a given architecture, and an implementation represents one possible way to realize a given design. The point is that architectural descriptions are abstractions, and we must remember that many designs can be used to satisfy a given architecture and many implementations can be used to realize a given design.

1.6 Summary

This text covers the essentials of computer architecture: digital logic, processors, memories, I/O, and advanced topics. The text does not require a background in electrical engineering or electronics. Instead, topics are explained by focusing on concepts, avoiding low-level details, and concentrating on items that are important to programmers.

Part I

Basics Of Digital Logic And Data Representation

The Fundamentals From Which Computers Are Built

2

Fundamentals Of Digital Logic

Chapter Contents
2.1 Introduction
2.2 Digital Computing Mechanisms
2.3 Electrical Terminology: Voltage And Current
2.4 The Transistor
2.5 Logic Gates
2.6 Implementation Of A Nand Logic Gate Using Transistors
2.7 Symbols Used For Logic Gates
2.8 Example Interconnection Of Gates
2.9 A Digital Circuit For Binary Addition
2.10 Multiple Gates Per Integrated Circuit
2.11 The Need For More Than Combinatorial Circuits
2.12 Circuits That Maintain State
2.13 Propagation Delay
2.14 Using Latches To Create A Memory
2.15 Flip-Flops And Transition Diagrams
2.16 Binary Counters
2.17 Clocks And Sequences
2.18 The Important Concept Of Feedback
2.19 Starting A Sequence
2.20 Iteration In Software Vs. Replication In Hardware
2.21 Gate And Chip Minimization
2.22 Using Spare Gates
2.23 Power Distribution And Heat Dissipation
2.24 Timing And Clock Zones
2.25 Clockless Logic
2.26 Circuit Size And Moore’s Law
2.27 Circuit Boards And Layers
2.28 Levels Of Abstraction
2.29 Summary

2.1 Introduction

This chapter covers the basics of digital logic. The goal is straightforward — provide a background that is sufficient for a reader to understand remaining chapters. Although many low-level details are irrelevant, programmers do need a basic knowledge of hardware to appreciate the consequences for software. Thus, we will not need to delve into electrical details, discuss the underlying physics, or learn the design rules that engineers follow to interconnect devices. Instead, we will learn a few basics that will allow us to understand how complex digital systems work.

2.2 Digital Computing Mechanisms

We use the term digital computer to refer to a device that performs a sequence of computational steps on data items that have discrete values. The alternative, called an analog computer, operates on values that vary continuously over time. Digital computation has the advantage of being precise. Because digital computers have become both inexpensive and highly reliable, analog computation has been relegated to a few special cases.
The need for reliability arises because a computation can entail billions of individual steps. If a computer misinterprets a value or a single set fails, correct computation will not be possible. Therefore, computers are designed for failure rates of much less than one in a billion.
How can high reliability and high speed be achieved? One of the earliest computational devices, known as an abacus, relied on humans to move beads to keep track of sums. By the early twentieth century, mechanical gears and levers were being used to produce cash registers and adding machines. By the 1940s, early electronic computers were being constructed from vacuum tubes. Although they were much faster than mechanical devices, vacuum tubes (which require a filament to become red hot) were unreliable — a filament would burn out after a few hundred hours o...

Table of contents