数字设计和计算机体系结构(英文版·第2版)
作者 : (美)David Money Harris 哈维玛德学院 Sarah L. Harris哈维玛德学院 著
丛书名 : 经典原版书库
出版日期 : 2013-12-30
ISBN : 978-7-111-44810-5
定价 : 129.00元
教辅资源下载
扩展信息
语种 : 英文
页数 : 660
开本 : 16
原书名 : 数字设计和计算机体系结构(英文版·第2版)
原出版社: Elsevier (Singapore) Pte Ltd
属性分类: 教材
包含CD :
绝版 :
图书简介

本书以一种流行的方式介绍了从计算机组织和设计到更细节层次的内容,涵盖了数字逻辑设计的主要内容,展示了使用vhdl和verilog这两种主要硬件描述语言设计mips处理器的技术细节,并通过mips微处理器的设计强化数字逻辑的概念。本书的典型特色是将数字逻辑和计算机体系结构融合,教学内容反映了当前数字电路设计的主流方法,并突出计算机体系结构的工程特点,书中的大量示例及习题设计也可以加强读者对基本概念和技术的理解和记忆。

图书特色

本书采用流行的教学法,从计算机组成和设计向下至更精细的层次,详细展示如何用SystemVerilog和VHDL构建MIPS微处理器。本书为学生提供了一个很好的机会,使他们可以在现代FPGA上进行大型的数字设计,既能增长学生的专业知识,又能启发学生运用所学知识去解决实际问题。
  ——David A. Patterson,加州大学伯克利分校,《计算机组成与设计》的作者之一
本书基于作者丰富的教学和实践经验,以幽默的写作风格展示了最新的数字设计技术。书中采用一种独特的现代数字设计方法,先介绍数字逻辑门,接着讲述组合电路和时序电路的设计,并以这些基本的数字逻辑设计概念为基础,重点介绍如何设计实际的MIPS处理器。另外,在全书的实例中运用SystemVerilog和VHDL展示基于CAD的电路设计方法和技术。通过本书,读者能够构建自己的微处理器,并能够自顶向下地理解微处理器的工作原理。
第2版更新了关于微机上通用处理器以及几乎随处可见的微控制器中的I/O系统的内容,提供了多个实例来说明如何使用RS232、SPI、电机控制、中断、无线和模数转换器与外围设备交互。除了对全书内容进行更新和扩展外,新版在编程和代码例题中采用SystemVerilog(替代Verilog)与VHDL一起给出数字系统设计的实现。第2版还提供了更多的练习题,来加强编程与处理器体系结构之间的联系。
第2版特色
介绍数字逻辑设计的基础知识,并通过设计实际的MIPS微处理器来加强逻辑概念。
在例题部分,分别用两种最流行的硬件描述语言(SystemVerilog和VHDL)给出相应数字系统设计的实现。
通过大量示例,帮助读者加深对关键概念和技术的理解和记忆。
配套网站中提供了丰富的教辅资源,包括教学幻灯片、实验材料、奇数题答案、HDL文件,以及各种用于FPGA设计的CAD工具的下载链接等。

作者简介
David Money Harris 哈维玛德学院工程学教授,拥有斯坦福大学电子工程博士学位,麻省理工学院电子工程与计算机科学硕士学位。他曾在Intel公司从事Itanium和Pentium II处理器的逻辑和电路设计,并担任Sun Microsystems、 惠普、 Evans & Sutherland和其他设计公司的顾问。他的兴趣包括教学、构建芯片、户外探索。他取得了12项专利,并且与人合著了三本芯片设计方面的教材。
Sarah L. Harris 哈维玛德学院工程学副教授,拥有斯坦福大学电子工程博士学位。她曾为惠普、圣地亚哥超算中心和Nvidia公司工作,擅长计算机体系结构设计和系统设计。

上架指导

计算机\计算机组成

封底文字

本书采用流行的教学法,从计算机组成和设计向下至更精细的层次,详细展示如何用SystemVerilog和VHDL构建MIPS微处理器。本书为学生提供了一个很好的机会,使他们可以在现代FPGA上进行大型的数字设计,既能增长学生的专业知识,又能启发学生运用所学知识去解决实际问题。
  ——David A. Patterson,加州大学伯克利分校,《计算机组成与设计》的作者之一

   本书基于作者丰富的教学和实践经验,以幽默的写作风格展示了最新的数字设计技术。书中采用一种独特的现代数字设计方法,先介绍数字逻辑门,接着讲述组合电路和时序电路的设计,并以这些基本的数字逻辑设计概念为基础,重点介绍如何设计实际的MIPS处理器。另外,在全书的实例中运用SystemVerilog和VHDL展示基于CAD的电路设计方法和技术。通过本书,读者能够构建自己的微处理器,并能够自顶向下地理解微处理器的工作原理。
第2版更新了关于微机上通用处理器以及几乎随处可见的微控制器中的I/O系统的内容,提供了多个实例来说明如何使用RS232、SPI、电机控制、中断、无线和模数转换器与外围设备交互。除了对全书内容进行更新和扩展外,新版在编程和代码例题中采用SystemVerilog(替代Verilog)与VHDL一起给出数字系统设计的实现。第2版还提供了更多的练习题和一个新的关于C语言编程的附录,来加强编程与处理器体系结构之间的联系。

第2版特色
 介绍数字逻辑设计的基础知识,并通过设计实际的MIPS微处理器来加强逻辑概念。
 在例题部分,分别用两种最流行的硬件描述语言(SystemVerilog和VHDL)给出相应数字系统设计的实现。
 通过大量示例,帮助读者加深对关键概念和技术的理解和记忆。
 配套网站中提供了丰富的教辅资源,包括教学幻灯片、实验材料、奇数题答案、HDL文件,以及各种用于FPGA设计的CAD工具的下载链接等。

作者简介

(美)David Money Harris 哈维玛德学院 Sarah L. Harris哈维玛德学院 著:David Money Harris 哈维玛德学院工程学教授,拥有斯坦福大学电子工程博士学位,麻省理工学院电子工程与计算机科学硕士学位。他曾在Intel公司从事Itanium和Pentium II处理器的逻辑和电路设计,并担任Sun Microsystems、 惠普、 Evans & Sutherland和其他设计公司的顾问。他的兴趣包括教学、构建芯片、户外探索。他取得了12项专利,并且与人合著了三本芯片设计方面的教材。 Sarah L. Harris 哈维玛德学院工程学副教授,拥有斯坦福大学电子工程博士学位。她曾为惠普、圣地亚哥超算中心和Nvidia公司工作,擅长计算机体系结构设计和系统设计。

图书目录

In Praise of Digital Design and Computer Architecture............IV
Preface
About the Authors
Chapter1FromZerotoOne..................................3
1.1TheGamePlan............................................3
1.2TheArtofManagingComplexity...........................4
1.2.1Abstraction........................................4
1.2.2Discipline..........................................5
1.2.3TheThree-Y’s......................................6
1.3TheDigitalAbstraction....................................7
1.4NumberSystems...........................................9
1.4.1DecimalNumbers..................................9
1.4.2BinaryNumbers....................................9
1.4.3HexadecimalNumbers.............................11
1.4.4Bytes,Nibbles,andAllThatJazz...................13
1.4.5BinaryAddition...................................14
1.4.6SignedBinaryNumbers............................15
1.5LogicGates...............................................19
1.5.1NOTGate........................................20
1.5.2Buffer.............................................20
1.5.3ANDGate........................................20
1.5.4ORGate.........................................21
1.5.5OtherTwo-InputGates............................21
1.5.6Multiple-InputGates...............................21
1.6BeneaththeDigitalAbstraction............................22
1.6.1SupplyVoltage....................................22
1.6.2LogicLevels......................................22
1.6.3NoiseMargins....................................23
1.6.4DCTransferCharacteristics........................24
1.6.5TheStaticDiscipline...............................24
1.7CMOSTransistors........................................26
1.7.1Semiconductors....................................27
1.7.2Diodes............................................27
1.7.3Capacitors........................................28
1.7.4nMOSandpMOSTransistors......................28
1.7.5CMOSNOTGate.................................31
1.7.6OtherCMOSLogicGates.........................31
1.7.7TransmissionGates................................33
1.7.8Pseudo-nMOSLogic...............................33
1.8PowerConsumption......................................34
1.9SummaryandaLookAhead...............................35
Exercises..................................................37
InterviewQuestions.........................................52
Chapter2CombinationalLogicDesign........................55
2.1Introduction..............................................55
2.2BooleanEquations........................................58
2.2.1Terminology.....................................58
2.2.2Sum-of-ProductsForm............................58
2.2.3Product-of-umsForm............................60
2.3BooleanAlgebra..........................................60
2.3.1Axioms..........................................61
2.3.2TheoremsofOneVariable........................61
2.3.3TheoremsofSeveralVariables.....................62
2.3.4TheTruthBehindItAll...........................64
2.3.5SimplifyingEquations.............................65
2.4FromLogictoGates......................................66
2.5MultilevelCombinationalLogic............................69
2.5.1HardwareReduction..............................70
2.5.2BubblePushing...................................71
2.6X’sandZ’s,OhMy......................................73
2.6.1IllegalValue:X..................................73
2.6.2FloatingValue:Z.................................74
2.7KarnaughMaps..........................................75
2.7.1CircularThinking................................76
2.7.2LogicMinimizationwithK-Maps..................77
2.7.3Don’tCares......................................81
2.7.4TheBigPicture...................................82
2.8CombinationalBuildingBlocks............................83
2.8.1Multiplexers......................................83
2.8.2Decoders........................................86
2.9Timing...................................................88
2.9.1PropagationandContaminationDelay.............88
2.9.2Glitches..........................................92
2.10Summary................................................95
Exercises..................................................97
InterviewQuestions......................................106
Chapter3SequentialLogicDesign..........................109
3.1Introduction.............................................109
3.2LatchesandFlip-Flops...................................109
3.2.1SRLatch.......................................111
3.2.2DLatch........................................113
3.2.3DFIip-Flop.....................................114
3.2.4Register.........................................114
3.2.5EnabledFlip-Flop...............................115
3.2.6ResettableFlip-Flop..............................116
3.2.7Transistor-LevelLatchandFlip-FlopDesigns......116
3.2.8PuttingItAllTogether...........................118
3.3SynchronousLogicDesign................................119
3.3.1SomeProblematicCircuits........................119
3.3.2SynchronousSequentialCircuits..................120
3.3.3SynchronousandAsynchronousCircuits...........122
3.4FiniteStateMachines....................................123
3.4.1FSMDesignExample............................123
3.4.2StateEncodings.................................129
3.4.3MooreandMealyMachines......................132
3.4.4FactoringStateMachines.........................134
3.4.5DerivinganFSMfromaSchematic...............137
3.4.6FSMReview....................................140
3.5TimingofSequentialLogic...............................141
3.5.1TheDynamicDiscipline..........................142
3.5.2SystemTiming..................................142
3.5.3ClockSkew.....................................148
3.5.4Metastability....................................151
3.5.5Synchronizers...................................152
3.5.6DerivationofResolutionTime....................154
3.6Parallelism..............................................157
3.7Summary...............................................161
Exercises................................................162
InterviewQuestions......................................171
Chapter4HardwareDescriptionLanguages..................173
4.1Introduction.............................................173
4.1.1Modules........................................173
4.1.2LanguageOrigins...............................174
4.1.3SimulationandSynthesis.........................175
4.2CombinationalLogic.....................................177
4.2.1BitwiseOperators...............................177
4.2.2CommentsandWhiteSpace......................180
4.2.3ReductionOperators.............................180
4.2.4ConditionalAssignment..........................181
4.2.5InternalVariables...............................182
4.2.6Precedence......................................184
4.2.7Numbers........................................185
4.2.8Z’sandX’s.....................................186
4.2.9BitSwizzling....................................188
4.2.10Delays..........................................188
4.3StructuralModeling......................................190
4.4SequentialLogic.........................................193
4.4.1Registers........................................193
4.4.2ResettableRegisters..............................194
4.4.3EnabledRegisters................................196
4.4.4MultipleRegisters...............................197
4.4.5Latches.........................................198
4.5MoreCombinationalLogic...............................198
4.5.1CaseStatements.................................201
4.5.2IfStatements....................................202
4.5.3TruthTableswithDon’tCares...................205
4.5.4BlockingandNonblockingAssignments...........205
4.6FiniteStateMachines....................................209
4.7DataTypes..............................................213
4.7.1SystemVerilog...................................214
4.7.2VHDL.........................................215
4.8ParameterizedModules...................................217
4.9Testbenches.............................................220
4.10Summary...............................................224
Exercises................................................226
InterviewQuestions......................................237
Chapter5DigitalBuildingBlocks............................239
5.1Introduction.............................................239
5.2ArithmeticCircuits.......................................239
5.2.1Addition........................................239
5.2.2Subtraction.....................................246
5.2.3Comparators....................................246
5.2.4ALU...........................................248
5.2.5ShiftersandRotators............................250
5.2.6Multiplication...................................252
5.2.7Division........................................253
5.2.8FurtherReading.................................254
5.3NumberSystems.........................................255
5.3.1Fixed-PointNumberSystems.....................255
5.3.2Floating-PointNumberSystems...................256
5.4SequentialBuildingBlocks................................260
5.4.1Counters........................................260
5.4.2ShiftRegisters...................................261
5.5MemoryArrays.........................................263
5.5.1Overview.......................................263
5.5.2DynamicRandomAccessMemory(DRAM).......266
5.5.3StaticRandomAccessMemory(SRAM)...........266
5.5.4AreaandDelay.................................266
5.5.5RegisterFiles....................................267
5.5.6ReadOnlyMemory.............................268
5.5.7LogicUsingMemoryArrays......................270
5.5.8MemoryHDL...................................270
5.6LogicArrays............................................272
5.6.1ProgrammableLogicArray.......................272
5.6.2FieldProgrammableGateArray..................274
5.6.3ArrayImplementations...........................279
5.7Summary...............................................280
Exercises................................................282
InterviewQuestions.......................................293
Chapter6Architecture.....................................295
6.1Introduction.............................................295
6.2AssemblyLanguage......................................296
6.2.1Instructions.....................................296
6.2.2Operands:Registers,Memory,andConstants......298
6.3MachineLanguage.......................................305
6.3.1R-TypeInstructions..............................305
6.3.2I-TypeInstructions..............................307
6.3.3J-TypeInstructions..............................308
6.3.4InterpretingMachineLanguageCode.............308
6.3.5ThePoweroftheStoredProgram.................309
6.4Programming............................................310
6.4.1Arithmetic/LogicalInstructions...................310
6.4.2Branching.......................................314
6.4.3ConditionalStatements...........................316
6.4.4GettingLoopy..................................317
6.4.5Arrays..........................................320
6.4.6FunctionCalls...................................325
6.5AddressingModes.......................................333
6.6Lights,Camera,Action:Compiling,Assembling,andLoading...336
6.6.1TheMemoryMap...............................336
6.6.2TranslatingandStartingaProgram...............337
6.7OddsandEnds..........................................342
6.7.1Pseudoinstructions...............................342
6.7.2Exceptions......................................343
6.7.3SignedandUnsignedInstructions.................344
6.7.4Floating-PointInstructions.......................346
6.8Real-WorldPerspective:x86Architecture..................347
6.8.1x86Registers....................................348
6.8.2x86Operands...................................348
6.8.3StatusFlags.....................................350
6.8.4x86Instructions.................................350
6.8.5x86InstructionEncoding........................352
6.8.6Otherx86Peculiarities...........................354
6.8.7TheBigPicture..................................354
6.9Summary...............................................355
Exercises................................................357
InterviewQuestions.......................................369
Chapter7Microarchitecture................................371
7.1Introduction.............................................371
7.1.1ArchitecturalStateandInstructionSet.............371
7.1.2DesignProcess..................................372
7.1.3MIPSMicroarchitectures.........................374
7.2PerformanceAnalysis....................................374
7.3Single-CycleProcessor....................................376
7.3.1Single-CycleDatapath...........................376
7.3.2Single-CycleControl.............................382
7.3.3MoreInstructions...............................385
7.3.4PerformanceAnalysis............................388
7.4MulticycleProcessor.....................................389
7.4.1MulticycleDatapath.............................390
7.4.2MulticycleControl...............................396
7.4.3MoreInstructions...............................403
7.4.4PerformanceAnalysis............................405
7.5PipelinedProcessor......................................409
7.5.1PipelinedDatapath..............................412
7.5.2PipelinedControl................................413
7.5.3Hazards........................................414
7.5.4MoreInstructions...............................426
7.5.5PerformanceAnalysis............................426
7.6HDLRepresentation.....................................429
7.6.1Single-CycleProcessor...........................430
7.6.2GenericBuildingBlocks..........................434
7.6.3Testbench.......................................437
7.7Exceptions..............................................440
7.8AdvancedMicroarchitecture..............................444
7.8.1DeepPipelines..................................444
7.8.2BranchPrediction...............................446
7.8.3SuperscalarProcessor............................447
7.8.4Out-of-OrderProcessor..........................450
7.8.5RegisterRenaming...............................452
7.8.6SingleInstructionMultipleData..................454
7.8.7Multithreading..................................455
7.8.8HomogeneousMultiprocessors....................456
7.8.9HeterogeneousMultiprocessors...................456
7.9Real-WorldPerspective:x86Microarchitecture.............458
7.10Summary...............................................465
Exercises................................................467
InterviewQuestions.......................................473
Chapter8MemoryandI/OSystems.........................475
8.1Introduction.............................................475
8.2MemorySystemPerformanceAnalysis.....................479
8.3Caches..................................................480
8.3.1WhatDataisHeldintheCache .................481
8.3.2HowisDataFound .............................482
8.3.3WhatDataisReplaced ..........................490
8.3.4AdvancedCacheDesign..........................491
8.3.5TheEvolutionofMIPSCaches...................495
8.4VirtualMemory.........................................496
8.4.1AddressTranslation.............................498
8.4.2ThePageTable..................................500
8.4.3TheTranslationLookasideBuffer.................502
8.4.4MemoryProtection..............................503
8.4.5ReplacementPolicies.............................504
8.4.6MultilevelPageTables...........................504
8.5I/OIntroduction.........................................506
8.6EmbeddedI/OSystems...................................508
8.6.1PIC32MX675F512HMicrocontroller.............509
8.6.2General-PurposeDigitalI/O......................513
8.6.3SerialI/O.......................................515
8.6.4Timers..........................................527
8.6.5Interrupts.......................................529
8.6.6AnalogI/O.....................................531
8.6.7OtherMicrocontrollerPeripherals.................537
8.7PCI/OSystems..........................................558
8.7.1USB............................................559
8.7.2PCIandPCIExpress............................560
8.7.3DDR3Memory.................................561
8.7.4Networking.....................................561
8.7.5SATA..........................................562
8.7.6InterfacingtoaPC..............................562
8.8Real-WorldPerspective:x86MemoryandI/OSystems......564
8.8.1x86CacheSystems..............................564
8.8.2x86VirtualMemory.............................567
8.8.3x86ProgrammedI/O............................567
8.9Summary...............................................568
Epilogue................................................568
Exercises................................................570
InterviewQuestions......................................580
AppendixADigitalSystemImplementation...................581
A.1 Introduction
A.2 74xx Logic
A.2.1 Logic Gates
A.2.2 Other Functions
A.3 Programmable Logic
A.3.1 PROMs
A.3.2 PLAs
A.3.3 FPGAs
A.4 Application-Specific Integrated Circuits
A.5 Data Sheets
A.6 Logic Families
A.7 Packaging and Assembly
A.8 Transmission Lines
A.8.1Matched Termination
A.8.2Open Termination
A.8.3Short Termination
A.8.4Mismatched Termination
A.8.5When to Use Transmission Line Models
A.8.6Proper TransmissionLine Terminations
A.8.7Derivation of Z0
A.8.8Derivationof the Reflection Coefficient
A.8.9Putting It All Together
A.9Economics.
Appendix B MIPS Instructions.
Appendix C C Programming
C.1Introduction
C.2 WelcometoC
C.2.1CProgramDissection
C.2.2RunningaCProgram
C.3 Compilation
C.3.1 Comments
C.3.2#define
C.3.3#include
C.4 Variables
C.4.1 Primitive Data Types
C.4.2 Global and Local Variables
C.4.3 Initializing Variables
C.5Operators
C.6 FunctionCalls
C.7 Control-Flow Statements
C.7.1Conditional Statements
C.7.2Loops
C.8 More Data Types
C.8.1Pointers
C.8.2Arrays
C.8.3Characters
C.8.4Strings
C.8.5Structures
C.8.6typedef
C.8.7DynamicMemory Allocation
C.8.8LinkedLists
C.9 Standard Libraries
C.9.1stdio
C.9.2stdlib
C.9.3math
C.9.4string
C.10 Compiler and Command Line Options
C.10.1 Compiling Multiple C SourceFiles
C.10.2 Compiler Options
C.10.3 Command Line Arguments
C.11 CommonMistakes
FurtherReading............................................621
Index......................................................623

教学资源推荐
作者: (加)Carl Hamacher女皇大学 Zvonko Vranesic多伦多大学 Safwat Zaky多伦多大学 Naraig Manjikian女皇大学 著
作者: [美]戴维·A. 帕特森(David A. Patterson) 约翰·L. 亨尼斯(John L. Hennessy) 著
作者: [美]莎拉 L. 哈里斯(Sarah L. Harris) 戴维·莫尼·哈里斯(David Money Harris) 著
参考读物推荐
作者: 国际商业机器中国有限公司
作者: 赵建领; 薛园园
作者: [美]阿诺德·S.伯格(Arnold S.Berger) 著