标题：计算机组成与设计硬件/软件接口
基本信息
原书名： Computer Organization and Design: The Hardware/Software Interface, Third Edition
原出版社： Morgan Kaufmann
作者： （美）David A.Patterson, John L.Hennessy  丛书名： 经典原版书库
出版社：机械工业出版社
ISBN：7111193393
上架时间：2006-6-30
出版日期：2006 年7月
开本：16开
页码：621
版次：1-1 
内容简介
软件设计者对软件系统运行环境硬件技术是否了解、了解多少会很大程度地影响软件系统的性能，同样，硬件设计者也必须了解他们的设计决策将对软件产生怎样的影响。本书着眼于当前计算机设计中最基本的概念，展示了软硬件间的关系。无论上述的哪一类读者，本书的内容都会使他们对计算机有更深入的认识。.
同以往版本一样，本书采用mips处理器作为展示计算机硬件技术基本功能的核心。书中逐条指令地列举了完整的mips指令集——汇编语言的核心、计算机算术运算、流水线、存储器层次结构以及i/o，并介绍了网络和多处理器结构的基本内容。..
将cpu性能和程序性能紧密地联系起来是本版的一个新增内容。作者展示了软硬件部件 (如算法、编程语言、编译器、指令集系统结构以及处理器的实现) 如何影响程序的性能。另外，本版对软硬件的讨论更加深入，并在光盘中为侧重硬件和侧重软件的读者分别提供了相关资料。
随书光盘的内容非常丰富，不仅包括第9章、附录、本书网站内容、附加习题、术语表、参考文献、索引等，而且还提供了hdl模拟器、mips模拟器以及fpga设计工具等软件。
作者简介
DavidA.Patterson 加州大学伯克利分校计算机科学系教授，美国国家工程研究院院士，IEEE和ACM会士，曾因成功的启发式教育方法被IEEE授予James H.Mulligan，Jr.教育奖章。他因为对日ISC技术的贡献而荣获1995年IEEE技术成就奖，而在RAID技术方面的成就为他赢得了1999 年IEEE Reynold Johnson信息存储奖。2000年他和John L.Hennessy分享了John von Neumann奖。
目录
chapters . 
1 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 
2 computers in the real world 
information technology for the 4 billion without it 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 translating and 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 12 
2.14 implementing an object-oriented language 
2.15 arrays versus pointers 130 
2.16 real stuff: ia-32 instructions 134 
2.17 fallacies and pitfalls 143 
2.18 concluding remarks 145 
2.19 historical perspective and further reading 
2.20 exercises 147 
computers in the real world helping save our environment with data 
3 arlthmeuc 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 reeonstrueting the anclent world 
4 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 falter and more safely 280 
5 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.6 exceptions 
5.7 microprogramming: simplifying control design 
5.8 an introduction to digital design using a hardware design language 
5.9 real stuff: the organization of recent pentium implementations 
5.10 fallades and pitfalls 
5.11 concluding remarks 
5.12 historical perspective and further reading 
5.13 exercises 
computers in the real world empowering the disabled 
6 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 mm communication without gatekeepers 
7 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: the 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 
8 storage, networks, and other peripherals 
8.1 introduction 
8.2 disk storage and dependability 
8.3 networks 
8.4 buses and other connections between processors, memory, and i/o devices 
8.5 interfacing i/o devices to the processor, memory, 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 digital camera 
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 bottor dlaffnods 
9 multiprocossors and clusters 
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 appendices 
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 
b the basics of logic design 
b.1 introduction 
b.2 gates, truth tables, and logic equations 
b.3 combinational logic 
b.4 using a hardware description language 
b.5 constructing a basic arithmetic logic unit 
b.6 faster addition: carry lookahead 
b.7 clocks 
b.8 memory elements: flip-flops, latches, and registers 
b.9 memory elements: srams and drams 
b.10 finite state machines 
b.11 timing methodologies 
b.12 field programmable devices 
b.13 concluding remarks 
b.14 exercises 
c mapping control to hardware 
c.i 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 
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 acknowledgments 
d.19 references 
index 
glossary 
further reading ...