Computer Organization and Design, Revised Printing, 3/e: The Hardware/Software Interface
暫譯: 計算機組織與設計(修訂版,第3版):硬體/軟體介面

David A. Patterson, John L. Hennessy

  • 出版商: Morgan Kaufmann
  • 出版日期: 2007-06-20
  • 售價: $2,500
  • 貴賓價: 9.5$2,375
  • 語言: 英文
  • 頁數: 621
  • 裝訂: Paperback
  • ISBN: 0123706068
  • ISBN-13: 9780123706065
  • 相關分類: Computer-architecture
  • 無法訂購

買這商品的人也買了...

相關主題

商品描述

Description

What’s New in the Third Edition, Revised Printing

The same great book gets better! This revised printing features all of the original content along with these additional features:

• Appendix A (Assemblers, Linkers, and the SPIM Simulator) has been moved from the CD-ROM into the printed book

• Corrections and bug fixes

Third Edition features

New pedagogical features

• Understanding Program Performance
- Analyzes key performance issues from the programmer’s perspective
• Check Yourself Questions
- Helps students assess their understanding of key points of a section
• Computers In the Real World
- Illustrates the diversity of applications of computing technology beyond traditional desktop and servers
• For More Practice
- Provides students with additional problems they can tackle
• In More Depth
- Presents new information and challenging exercises for the advanced student

New reference features

• Highlighted glossary terms and definitions appear on the book page, as bold-faced entries in the index, and as a separate and searchable reference on the CD.
• A complete index of the material in the book and on the CD appears in the printed index and the CD includes a fully searchable version of the same index.
• Historical Perspectives and Further Readings have been updated and expanded to include the history of software R&D.
• CD-Library provides materials collected from the web which directly support the text.


In addition to thoroughly updating every aspect of the text to reflect the most current computing technology, the third edition

• Uses standard 32-bit MIPS 32 as the primary teaching ISA.
• Presents the assembler-to-HLL translations in both C and Java.
• Highlights the latest developments in architecture in Real Stuff sections:
- Intel IA-32
- Power PC 604
- Google’s PC cluster
- Pentium P4
- SPEC CPU2000 benchmark suite for processors
- SPEC Web99 benchmark for web servers
- EEMBC benchmark for embedded systems
- AMD Opteron memory hierarchy
- AMD vs. 1A-64

New support for distinct course goals

Many of the adopters who have used our book throughout its two editions are refining their courses with a greater hardware or software focus. We have provided new material to support these course goals:

New material to support a Hardware Focus

• Using logic design conventions
• Designing with hardware description languages
• Advanced pipelining
• Designing with FPGAs
• HDL simulators and tutorials
• Xilinx CAD tools

New material to support a Software Focus

• How compilers work
• How to optimize compilers
• How to implement object oriented languages
• MIPS simulator and tutorial
• History sections on programming languages, compilers, operating systems and databases


On the CD

NEW: Search function to search for content on both the CD-ROM and the printed text
• CD-Bars: Full length sections that are introduced in the book and presented on the CD
• CD-Appendixes: Appendices B-D
• CD-Library: Materials collected from the web which directly support the text
• CD-Exercises: For More Practice provides exercises and solutions for self-study
• In More Depth presents new information and challenging exercises for the advanced or curious student
• Glossary: Terms that are defined in the text are collected in this searchable reference
• Further Reading: References are organized by the chapter they support
• Software: HDL simulators, MIPS simulators, and FPGA design tools
• Tutorials: SPIM, Verilog, and VHDL
• Additional Support: Processor Models, Labs, Homeworks, Index covering the book and CD contents

Instructor Support

Instructor support provided on textbooks.elsevier.com:

• Solutions to all the exercises
• Figures from the book in a number of formats
• Lecture slides prepared by the authors and other instructors
• Lecture notes

Table of Contents

Chapter sections in bold type are new to this edition
Chapters and sections in italics are located on the CD

Chapter One: Computer Abstractions and Technology

1.1 Introduction
1.2 Below Your Program
1.3 Under the Covers
1.4 Real Stuff: Manufacturing Pentium 4 Chips
1.5 Fallacies and Pitfalls
1.6 Concluding Remarks
1.7 Historical Perspective and Further Reading
1.8 Exercises

Computers in the Real World: Information Technology for the 4 Billion without IT

Chapter Two: Instructions: Language of the Computer

2.1 Introduction
2.2 Operations of the Computer Hardware
2.3 Operands of the Computer Hardware
2.4 Representing Instructions in the Computer
2.5 Logical Operations
2.6 Instructions for Making Decisions
2.7 Supporting Procedures in Computer Hardware
2.8 Communicating with People
2.9 MIPS Addressing for 32-bit Immediates and Addresses
2.10 Starting a Program
2.11 How Compilers Optimize
2.12 How Compilers Work: An Introduction
2.13 A C Sort Example to Put It All Together
2.14 Implementing an Object Oriented Language
2.15 Arrays versus Pointers
2.16 Real Stuff: IA-32 Instructions
2.17 Fallacies and Pitfalls
2.18 Concluding Remarks
2.19 Historical Perspective and Further Reading
2.20 Exercises

Computers in the Real World: Saving our Environment with Data

Chapter Three: Arithmetic for Computers

3.1 Introduction
3.2 Signed and Unsigned Numbers
3.3 Addition and Subtraction
3.4 Multiplication
3.5 Division
3.6 Floating Point
3.7 Real Stuff: Floating Point in the IA-32
3.8 Fallacies and Pitfalls
3.9 Concluding Remarks
3.10 Historical Perspective and Further Reading
3.11 Exercises

Computers in the Real World: Reconstructing the Ancient World

Chapter Four: Assessing and Understanding Performance

4.1 Introduction
4.2 CPU Performance and Its Factors
4.3 Evaluating Performance
4.4 Real Stuff: Two SPEC Benchmarks and the Performance of Recent Intel Processors

4.5 Fallacies and Pitfalls
4.6 Concluding Remarks
4.7 Historical Perspective and Further Reading
4.8 Exercises

Computers in the Real World: Moving People Faster and More Safely


Chapter Five: The Processor: Datapath and Control

5.1 Introduction
5.2 Logic Design Conventions
5.3 Building a Datapath
5.4 A Simple Implementation Scheme
5.5 A Multicycle Implementation
5.7 Exceptions
5.8 Microprogramming: Simplifying Control Design
5.9 An Introduction to Digital Design Using a Hardware Design Language

5.10 Real Stuff: The Organization of Recent Pentium Implementations

5.11 Fallacies and Pitfalls
5.12 Concluding Remarks
5.13 Historical Perspective and Further Reading
5.14 Exercises

Computers in the Real World: Empowering the Disabled


Chapter Six: Enhancing Performance with Pipelining

6.1 An Overview of Pipelining
6.2 A Pipelined Datapath
6.3 Pipelined Control
6.4 Data Hazards and Forwarding
6.5 Data Hazards and Stalls
6.6 Branch Hazards
6.7 Using a Hardware Description Language to Describe and Model a Pipeline
6.8 Exceptions
6.9 Advanced Pipelining: Extracting More Performance
6.10 Real Stuff: The Pentium 4 Pipeline

6.11 Fallacies and Pitfalls
6.12 Concluding Remarks
6.13 Historical Perspective and Further Reading
6.14 Exercises

Computers in the Real World: Mass Communications without Gatekeepers


Chapter Seven: Large and Fast: Exploiting Memory Hierarchy

7.1 Introduction
7.2 The Basics of Caches
7.3 Measuring and Improving Cache Performance
7.4 Virtual Memory
7.5 A Common Framework for Memory Hierarchies
7.6 Real Stuff: A Pentium P4 and the AMD Opteron Memory Hierarchies
7.7 Fallacies and Pitfalls
7.8 Concluding Remarks
7.9 Historical Perspective and Further Reading
7.10 Exercises

Computers in the Real World: Saving the World’s Art Treasures


Chapter Eight: Storage, Networks, and Other Peripherals

8.1 Introduction
8.2 Disk Storage and Dependability
8.3 Networks
8.4 Buses: Connecting I/O Devices to Processor and Memory
8.5 Interfacing I/O Devices to the Memory, Processor, and Operating System
8.6 I/O Performance Measures: Examples from Disk and File Systems
8.7 Designing an I/O System
8.8 Real Stuff: A Typical Desktop I/O System
8.9 Fallacies and Pitfalls
8.10 Concluding Remarks
8.11 Historical Perspective and Further Reading
8.12 Exercises

Computers in the Real World: Saving Lives Through Better Diagnosis


Appendix A: Assemblers, Linkers, and the SPIM Simulator

A.1 Introduction
A.2 Assemblers
A.3 Linkers
A.4 Loading
A.5 Memory Usage
A.6 Procedure Call Convention
A.7 Exceptions and Interrupts
A.8 Input and Output
A.9 SPIM
A.10 MIPS R2000 Assembly Language
A.11 Concluding Remarks
A.12 Exercises


All of the folling material appears on the CD

Chapter Nine: Multiprocessors

9.1 Introduction
9.2 Programming Multiprocessors
9.3 Multiprocessors Connected by a Single Bus
9.4 Multiprocessors Connected by a Network
9.5 Clusters
9.6 Network Topologies
9.7 Multiprocessors Inside a Chip and Multithreading
9.8 Real Stuff: The Google Cluster of PCs

9.9 Fallacies and Pitfalls
9.10 Concluding Remarks
9.11 Historical Perspective and Further Reading
9.12 Exercises

Appendix B: The Basics of Logic Design

B.1 Introduction
B.2 Gates, Truth Tables, and Logic Equations
B.3 Combinational Logic
B.4 Clocks
B.5 Memory Elements
B.6 Finite State Machines
B.7 Timing Methodologies
B.8 Field Programmable Devices
B.9 Concluding Remarks
B.10 Exercises

Appendix C: Mapping Control to Hardware

C.1 Introduction
C.2 Implementing Combinational Control Units
C.3 Implementing Finite State Machine Control
C.4 Implementing the Next-State Function with a Sequencer
C.5 Translating a Microprogram to Hardware
C.6 Concluding Remarks
C.7 Exercises

Appendix D: A Survey of RISC Architectures for Desktop, Server, and Embedded Computers

D.1 Introduction
D.2 Addressing Modes and Instruction Formats
D.3 Instructions: The MIPS Core Subset
D.4 Instructions: Multimedia Extensions of the Desktop/Server RISCs
D.5 Instructions: Digital Signal-Processing Extensions of the Embedded RISCs
D.6 Instructions: Common Extensions to MIPS Core
D.7 Instructions Unique to MIPS64
D.8 Instructions Unique to Alpha
D.9 Instructions Unique to SPARC v.9
D.10 Instructions Unique to PowerPC
D.11 Instructions Unique to PA-RISC 2.0
D.12 Instructions Unique to ARM
D.13 Instructions Unique to Thumb
D.14 Instructions Unique to SuperH
D.15 Instructions Unique to M32R
D.16 Instructions Unique to MIPS16
D.17 Concluding Remarks
D.18 Acknowledgements
D.19 References

商品描述(中文翻譯)

描述

第三版修訂印刷版的新內容
這本優秀的書籍變得更好了!這次修訂印刷版包含所有原始內容以及以下附加功能:

• 附錄A(組譯器、連結器和SPIM模擬器)已從CD-ROM移至印刷書中
• 修正和錯誤修復

第三版特色

新教學特點
• 理解程式性能
- 從程式設計師的角度分析關鍵性能問題
• 自我檢查問題
- 幫助學生評估他們對某一部分關鍵點的理解
• 現實世界中的計算機
- 說明計算技術在傳統桌面和伺服器之外的多樣性應用
• 更多練習
- 提供學生可以解決的額外問題
• 更深入
- 為進階學生提供新資訊和挑戰性練習

新參考特點
• 突出的詞彙表術語和定義出現在書頁上,作為索引中的粗體條目,以及作為CD上的單獨可搜尋參考。
• 書中和CD上的材料的完整索引出現在印刷索引中,CD包含相同索引的完全可搜尋版本。
• 歷史觀點和進一步閱讀已更新並擴展,以包括軟體研發的歷史。
• CD圖書館提供從網路收集的直接支持文本的材料。

除了徹底更新文本的每個方面以反映最新的計算技術外,第三版
• 使用標準32位MIPS 32作為主要教學ISA。
• 以C和Java呈現組譯器到高級語言的轉換。
• 在現實內容部分突顯最新的架構發展:
- Intel IA-32
- Power PC 604
- Google的PC叢集
- Pentium P4
- SPEC CPU2000基準套件
- SPEC Web99基準測試
- EEMBC基準測試
- AMD Opteron記憶體層次
- AMD與1A-64

新支持不同課程目標的材料
許多在兩版中使用我們書籍的採用者正在精煉他們的課程,並更專注於硬體或軟體。我們提供了新材料以支持這些課程目標:

支持硬體重點的新材料
• 使用邏輯設計慣例
• 使用硬體描述語言進行設計
• 進階流水線技術
• 使用FPGA進行設計
• HDL模擬器和教程
• Xilinx CAD工具

支持軟體重點的新材料
• 編譯器的工作原理
• 如何優化編譯器
• 如何實現物件導向語言
• MIPS模擬器和教程
• 有關程式語言、編譯器、作業系統和資料庫的歷史部分

在CD上
• 新增:搜索功能以搜尋CD-ROM和印刷文本中的內容
• CD條:書中介紹的完整長度部分並在CD上呈現
• CD附錄:附錄B-D
• CD圖書館:從網路收集的直接支持文本的材料
• CD練習:更多練習提供自學的練習和解答
• 更深入呈現新資訊和挑戰性練習給進階或好奇的學生
• 詞彙表:文本中定義的術語收集在這個可搜尋的參考中
• 進一步閱讀:參考按其支持的章節組織
• 軟體:HDL模擬器、MIPS模擬器和FPGA設計工具
• 教程:SPIM、Verilog和VHDL
• 額外支持:處理器模型、實驗室、作業、涵蓋書籍和CD內容的索引

教師支持
在textbooks.elsevier.com提供的教師支持:
• 所有練習的解答
• 書中的圖形以多種格式提供
• 作者和其他教師準備的講義幻燈片
• 講義

目錄
章節標題以粗體字表示為本版新增
章節和部分以斜體字表示位於CD上

第一章:計算機抽象與技術
1.1 介紹
1.2 在你的程式之下
1.3 在幕後
1.4 現實內容:製造Pentium 4晶片
1.5 謬誤與陷阱
1.6 總結
1.7 歷史觀點與進一步閱讀
1.8 練習

現實世界中的計算機:為40億沒有IT的人提供資訊技術

第二章:指令:計算機的語言
2.1 介紹
2.2 計算機硬體的操作
2.3 計算機硬體的操作數
2.4 在計算機中表示指令
2.5 邏輯運算
2.6 做出決策的指令
2.7 支持計算機硬體的程序
2.8 與人溝通
2.9 MIPS對於32位立即數和地址的尋址
2.10 啟動程式
2.11 編譯器如何優化
2.12 編譯器的工作原理:簡介
2.13 一個C排序範例將所有內容整合
2.14 實現物件導向語言
2.15 陣列與指標
2.16 現實內容:IA-32指令
2.17 謬誤與陷阱
2.18 總結
2.19 歷史觀點與進一步閱讀
2.20 練習

現實世界中的計算機:用數據拯救我們的環境

第三章:計算機的算術
3.1 介紹
3.2 有符號和無符號數字
3.3 加法與減法
3.4 乘法
3.5 除法
3.6 浮點數
3.7 現實內容:IA-32中的浮點數
3.8 謬誤與陷阱
3.9 總結
3.10 歷史觀點與進一步閱讀
3.11 練習

現實世界中的計算機:重建古代世界

第四章:評估與理解性能
4.1 介紹
4.2 CPU性能及其因素
4.3 評估性能
4.4 現實內容:兩個SPEC基準測試和近期Intel處理器的性能
4.5 謬誤與陷阱
4.6 總結
4.7 歷史觀點與進一步閱讀
4.8 練習

現實世界中的計算機:更快更安全地移動人員

第五章:處理器:數據通路與控制
5.1 介紹
5.2 邏輯設計慣例
5.3 建立數據通路
5.4 簡單的實現方案
5.5 多週期實現
5.6 異常
5.7 微程式設計:簡化控制設計
5.8 使用硬體設計語言進行數位設計的簡介
5.9 現實內容:近期Pentium實現的組織
5.10 謬誤與陷阱
5.11 總結
5.12 歷史觀點與進一步閱讀
5.13 練習

現實世界中的計算機:賦能殘障人士

第六章:利用流水線提升性能
6.1 流水線概述
6.2 流水線數據通路
6.3 流水線控制
6.4 數據危害與轉發
6.5 數據危害與停頓
6.6 分支危害
6.7 使用硬體描述語言描述和建模流水線
6.8 異常
6.9 進階流水線:提取更多性能
6.10 現實內容:Pentium 4流水線
6.11 謬誤與陷阱
6.12 總結
6.13 歷史觀點與進一步閱讀
6.14 練習

現實世界中的計算機:沒有守門人的大眾傳播

第七章:大而快:利用記憶體層次
7.1 介紹
7.2 快取的基本概念
7.3 測量和改善快取性能
7.4 虛擬記憶體
7.5 記憶體層次的共同框架
7.6 現實內容:Pentium P4和AMD Opteron記憶體層次
7.7 謬誤與陷阱
7.8 總結
7.9 歷史觀點與進一步閱讀
7.10 練習

現實世界中的計算機:拯救世界的藝術珍品

第八章:儲存、網路和其他周邊設備
8.1 介紹
8.2 磁碟儲存與可靠性
8.3 網路
8.4 匯流排:將I/O設備連接到處理器和記憶體
8.5 將I/O設備與記憶體、處理器和作業系統介面
8.6 I/O性能測量:來自磁碟和檔案系統的範例
8.7 設計I/O系統
8.8 現實內容:典型的桌面I/O系統
8.9 謬誤與陷阱
8.10 總結
8.11 歷史觀點與進一步閱讀
8.12 練習

現實世界中的計算機:透過更好的診斷拯救生命

附錄A:組譯器、連結器和SPIM模擬器
A.1 介紹
A.2 組譯器
A.3 連結器
A.4 載入
A.5 記憶體使用
A.6 程序呼叫約定
A.7 異常和中斷
A.8 輸入和輸出
A.9 SPIM
A.10 MIPS R2000組合語言
A.11 總結
A.12 練習

以下所有材料均出現在CD上
第九章:多處理器
9.1 介紹
9.2 編程多處理器
9.3 通過單一匯流排連接的多處理器
9.4 通過網路連接的多處理器
9.5 叢集
9.6 網路拓撲
9.7 芯片內的多處理器和多線程
9.8 現實內容:Google的PC叢集
9.9 謬誤與陷阱
9.10 總結
9.11 歷史觀點與進一步閱讀
9.12 練習

附錄B:邏輯設計的基本概念
B.1 介紹
B.2 閘、真值表和邏輯方程
B.3 組合邏輯
B.4 時鐘
B.5 記憶體元件
B.6 有限狀態機
B.7 時序方法
B.8 可編程設備
B.9 總結
B.10 練習

附錄C:將控制映射到硬體
C.1 介紹
C.2 實現組合控制單元
C.3 實現有限狀態機控制
C.4 使用序列器實現下一狀態函數
C.5 將微程式轉換為硬體
C.6 總結