发表于2024-12-29
本书从简单的数字逻辑电路设计基础开始,由浅入深,讲解组合逻辑和时序逻辑电路的设计技术、计算机组成的基本原理和计算机体系结构的相关概念,后深入探讨了现代计算机系统如何利用硬件支持安全的体系结构。书中通过大量实例揭示作者对现代计算机设计目标的理解,展示如何应用流水线和并行化技术提升并发处理能力,并阐述了处理器体系结构与编译器、编程方法和性能之间的关系。本书可作为高等院校“数字逻辑与计算机组成”相关课程本科生、研究生教材,也可作为电子信息类相关专业人士完整理解计算机系统的整体组成和硬件工作原理的参考书。
Nikrouz Faroughi,加利福尼亚州立大学萨克拉门托分校教授、计算机科学系研究生专员和计算机工程专业教师。从密西根州立大学获得计算机工程学士学位、计算机科学硕士学位、电子工程硕士学位和计算机工程方向的电子工程博士学位。曾任职系统分析师,并曾作为顾问和技术经理在英特尔公司工作,目前在该公司兼职。
Digital Logic Design and Computer Organization with Computer Architecture for Security
出版者的话
译者序
前言
致谢
第1章 导论 1
1.1 简介 1
1.1.1 数据表示 1
1.1.2 数据通路 5
1.1.3 计算机系统 5
1.1.4 嵌入式系统 7
1.2 逻辑设计 7
1.2.1 电路最小化 8
1.2.2 实现 9
1.2.3 电路类型 10
1.2.4 计算机辅助设计工具 12
1.3 计算机组成 13
1.4 计算机体系结构 13
1.4.1 流水线 14
1.4.2 并行性 15
1.5 计算机安全 19
参考文献 19
练习 19
第2章 组合电路:小型设计 22
2.1 简介 22
2.2 逻辑表达式 24
2.2.1 乘积的和表达式 25
2.2.2 和的乘积表达式 27
2.3 规范表达式 29
2.3.1 极小项 29
2.3.2 极大项 30
2.4 逻辑化简 30
2.4.1 卡诺图 31
2.4.2 K图化简 33
2.5 逻辑化简算法 37
2.6 电路时序图 43
2.6.1 信号传播延迟 45
2.6.2 扇入和扇出 45
2.7 其他逻辑门 46
2.7.1 缓存 46
2.7.2 集电极开路缓冲区 46
2.7.3 三态缓存 48
2.8 设计实例 50
2.8.1 全加器 50
2.8.2 多路选择器 52
2.8.3 译码器 54
2.8.4 编码器 55
2.9 实现 57
2.9.1 可编程逻辑器件 57
2.9.2 设计流程 58
2.10 硬件描述语言 60
2.10.1 结构模型 60
2.10.2 传输延迟仿真 63
2.10.3 行为建模 65
2.10.4 综合与仿真 67
参考文献 69
练习 69
第3章 组合电路:大型设计 72
3.1 简介 72
3.2 算术函数 74
3.3 加法器 74
3.3.1 进位传输加法器 74
3.3.2 先行进位加法器 75
3.4 减法器 81
3.5 2的补码加法/减法器 83
3.6 算术逻辑单元 86
3.6.1 设计部分:位并行 87
3.6.2 设计部分:位串行 91
3.7 设计实例 93
3.7.1 乘法器 93
3.7.2 除法器 95
3.8 实数算术 96
3.8.1 浮点数标准 97
3.8.2 浮点数据空间 98
3.8.3 浮点运算 100
3.8.4 浮点单元 104
参考文献 105
练习 105
第4章 时序电路:核心模块 109
4.1 简介 109
4.2 SR锁存器 110
4.3 D锁存器 113
4.4 锁存器的缺陷 114
4.5 D触发器 115
4.5.1 选择电路 116
4.5.2 操作规范 116
4.5.3 建立和保持时间 116
4.6 无相位差的时钟频率估计 120
4.7 触发器使能 120
4.8 其他触发器 121
4.9 硬件描述语言模型 122
参考文献 124
练习 125
第5章 时序电路:小型设计 127
5.1 简介 127
5.2 状态机介绍:寄存器设计 128
5.2.1 寄存器模型 129
5.2.2 多功能寄存器 130
5.3 FSM设计 132
5.3.1 二进制编码状态 134
5.3.2 独热码状态 137
5.4 计数器 142
5.5 容错FSM 149
5.6 时序电路的时序 154
5.6.1 带有时钟相位差的时钟频率评估 157
5.6.2 异步接口 157
5.7 硬件描述语言模型 159
参考文献 164
练习 164
第6章 时序电路:大型设计 168
6.1 简介 168
6.2 数据通路设计 169
6.2.1 单周期 170
6.2.2 多周期 171
6.2.3 流水线 171
6.3 控制单元设计技术 175
6.3.1 硬件控制单元:FSD 176
6.3.2 微程序控制 176
6.3.3 硬件控制:流水线 180
6.4 能源和功率消耗 181
6.5 设计实例 183
6.5.1 无符号串行乘法器 184
6.5.2 带符号串行乘法器 192
6.5.3 计算机图形学:旋转 199
参考文献 211
练习 211
第7章 存储器 214
7.1 简介 214
7.2 存储技术 215
7.2.1 只读存储器 215
7.2.2 随机存取存储器 215
7.2.3 应用 217
7.3 存储单元阵列 217
7.3.1 字存取 218
7.3.2 突发访问 218
7.4 存储器组织结构 220
7.4.1 现代DRAM 221
7.4.2 SRAM存储单元模型 223
7.4.3 SRAM芯片内部组织结构 223
7.4.4 存储单元设计 225
7.5 存储时序 228
7.5.1 SRAM 228
7.5.2 DRAM 230
7.5.3 SDRAM 231
7.5.4 DDR SDRAM 232
7.6 存储器体系结构 232
7.6.1 高位交叉存储 233
7.6.2 低位交叉存储 233
7.6.3 多通道 234
7.7 设计实例:多处理器存储结构 236
7.7.1 UMA与NUMA 236
7.7.2 NUMA应用 236
7.8 HDL模型 237
参考文献 240
练习 240
第8章 指令集体系结构 243
8.1 简介 243
8.1.1 指令类型 244
8.1.2 程序翻译 244
8.1.3 指令周期 244
8.2 指令集体系结构的类型 246
8.2.1 寻址模式 246
8.2.2 指令格式 247
8.2.3 堆栈ISA 247
8.2.4 累加器ISA 249
8.2.5 CISC-ISA 249
8.2.6 RISC-ISA 250
8.3 设计示例 250
8.3.1 累加器ISA指令集设计 250
8.3.2 累加器ISA处理器:单周期 255
8.3.3 累加器ISA处理器:流水线 259
8.3.4 RISC-ISA处理器 266
8.4 先进的处理器架构 269
8.4.1 深度流水线 269
8.4.2 分支预测技术 271
8.4.3 指令级并行 278
8.4.4 多线程 284
参考文献 288
练习 288
第9章 计算机体系结构:互连 293
9.1 简介 293
9.2 存储器控制器 298
9.2.1
前 言Digital Logic Design and Computer Organization with Computer Architecture for Security编写本书的目的是让读者通过一本教科书全面理解数字逻辑设计和计算机组成。此外,本书还有独立的一章介绍安全的计算机体系结构。
本书涵盖数字逻辑设计的基本原理和Verilog硬件描述语言设计。各个章节分别讨论简单和复杂的组合电路和时序电路的设计方法。本书概述了电路设计的现代工具和方法,而Verilog实例仅用于展示该语言的基本特性和可综合特性。如有需要,教师可以选择用VHDL替代。不过,本书并不要求使用硬件描述语言。
本书内容包括存储器组织、处理器核心和处理器组织结构,以及硬件支持的计算机安全等。由于技术的进步以及对高速和低功耗设计的需求改变了计算机组织结构的基础,因此本书尝试不仅提供简单的实例用于展示基本的设计概念,而且揭示对现代计算机设计目标的理解。
本书还从指令集体系结构角度讨论了计算机体系结构的概念,包括支持安全指令执行的架构、流水线和并行化,以及存储器层次结构。本书尝试提供大量实例来展示如何应用流水线和并行化技术来提升并发处理能力并降低或隐藏延迟(这是两个影响性能的因素)。程序代码实例也用于展示CPU体系结构与编译器、编程方法和性能之间的关系。
各章节概述本书一共有11章。第1章概述了数字系统、计算创新、数码系统、数字逻辑设计和计算机组成/体系结构及安全。
第2章和第3章涵盖简单和复杂的组合电路,包括整型和浮点算术运算。在第2章讨论小型电路的设计方法时,假定若需要化简超过4个输入变量的真值表,学生可以利用逻辑化简软件,例如从互联网上免费下载的Espresso。这一章还介绍了设计工具、结构级和行为级设计模型,以及利用可编程逻辑器件的电路设计,也包括Verilog设计实例及其综合和仿真结果。第3章涵盖设计大型组合电路的方法和整型及浮点数计算机算术运算,同样给出了设计实例。
第4~6章涵盖了简单和复杂的时序电路,从基本模型到复杂的数据通路与控制,再到时序约束、设计效率和功耗利用。第4章介绍了锁存器、触发器及其时序要求。第5章介绍了有限状态机(FSM)设计及其时序要求和异步输入的处理。第6章介绍了单周期、多周期和流水线数据通路与控制。设计实例展示了数据通路和基于FSM、微程序及流水线的三种控制单元组织,此外还给出了几个数据通路设计实例,包括无符号和带符号乘法运算以及二维虚拟目标旋转。
第7章专注于存储器,包括SDRAM技术,以及包括交叉和多通道在内的存储器设计。这一章也介绍了存储器通信协议、性能,以及均匀存储器存取(UMA)和非均匀存储器存取(NUMA)组织;还讨论了一些编程方法实例,这些实例可以利用NUMA组织结构的优势来提高性能。
第8章讲解CPU设计,从单周期和流水线到精简指令集计算机(RISC)、深度流水和分支预测,再到静态和动态指令集并行(ILP),直到多线程。章中包括CPU数据通路实例的设计和仿真,并给出了编程代码实例来说明通过编译器优化改进性能、分支预测、ILP和多线程。
第9章专注于微型计算机体系结构,内容从简单的总线结构到集成结构再到现代点到点结构的历史脉络,也包括I/O端口寻址、中断驱动I/O和直接存储器访问(DMA),以及现代“即插即用”设备控制器接口,例如USB主机控制器接口。这一章还讨论了中断和相关操作系统任务,中断处理CPU的数据通路和指令集也被用作实例来解释简单计算机的体系结构和操作。
第10章涵盖存储器层次结构的原理及其组织。这一章还讨论了单处理器系统中的cache一致性,也介绍了共享存储器多处理器系统中的cache一致性问题,通过实例从缺失率、硬件数量和功耗等方面说明不同的cache映射技术的优势,还介绍了虚地址转换、页表管理和用于转换虚地址的可选处理器的组织结构。
第11章从应用在计算机体系结构中的安全工程方法的基本概念入手,接着引出访问控制、安全策略模型、硬件安全策略机制和软件/物理攻击机制,并介绍了加密技术。这一章还介绍了基于安全协处理器(用于实现安全数据存储和通信等)或者安全通用处理器实现的可信计算基(TCB)架构,也详细介绍了实现程序(指令和数据)机密性和完整性的安全处理器的体系结构。
虽然第11章的内容被编排在一起以方便读者阅读,但其内容也同时包含在其他章节中。例如,当学到时序电路设计技术时,学生就可以设计简单的加密电路。还有一些该章涉及的内容也在其他章节中出现过,包括硬件木马和硬件安全策略机制、存储器认证、中断的安全处理、安全协处理器和安全处理器架构等。为了给出第11章内容与其他章节相关内容的关联,第1章、第3章、第5~10章的练习部分都列出了第11章的练习,并加注说明为“计算机安全”。教师在这些章节中可以选择所列的习题。
为便于参考,关键字在第一次出现时会加粗显示。缩写的关键字不加粗,但少数会标出完整术语,便于读者阅读。选择本书为其课程必修教材的学术机构的教师可获得练习答案和PowerPoint幻灯片。
如何阅读本书大多数人认为,本书对于数字设计和计算机组成的讨论深度明显高于市面上相似的教材。对于这两个主题,本教材的目标是在覆盖的广度和深度方面更加平衡。在一个学期中,教师既能审慎地选择知识点,也可以选择其课程中需要强调的每个知识点的深度和广度。本教材也包含了足够的内容来适应两个季度或两个学期的课程安排,以便深入讲授数字逻辑设计和计算机组成/体系结构两部分内容,也使学生有更多的时间来深入理解设计练习。下面是对读者阅读本书的方式的几点建议:
1.对于没有或只有有限的数字逻辑基础的本科生,课程内容可以包括第1~5章和第6~9章的部分知识点,以及其余章节中的典型知识点。某些章节和设计实例可以跳过。
2.对于具备一些数字逻辑基础的计算机科学和计算机工程的本科生,课程内容可以包括第1章、复习或选讲第2~5章中的部分知识点、第6~10章全部知识点和第11章的部分知识点。
3.对于那些向没有或只有有限的数字逻辑设计和计算机组成基础的研究生授予学位的学术机构,本书是一本理想的教科书,因为其将数字逻辑设计和计算机组成及体系结构整合到了一本书中。
4.希望更新其数字逻辑和计算机组成及体系结构知识以及希望学习安全相关的计算机体系结构概念的专业人士可以从本书中获益。
致 谢Digital Logic Design and Computer Organization with Computer Architecture for Security许多人都对本书做出了宝贵的贡献。我要特别感谢同事Isaac Ghansah和Thomas Mathews,他们对本书内容做出了重要贡献并提出了宝贵的建议。我也要感谢Martin Nicholes(现在英特尔工作),他对第11章的内容提出了有见地的参考意见。我还要感谢审稿人给出的深思熟虑的意见,本书终稿的部分内容根据他们的建议做了修改。
我的许多学生也对本书的初稿提供了有价值的反馈,并帮助找出了文中的一些错误。他们对本书中某些实例的详尽分析为发现书中的文字和拼写错误帮助颇多。我要特别感谢Kevin Schultz、Andrew Larsen、Branden Garner、Chris Dalisay、Thomas Lee、Robert Carreras、Ian Reif和Matt Larsen,也欢迎大家帮助找出书中未修正的错误并提出任何改进本书的建议。我还要感谢McGraw-Hill出版社的赞助编辑Michael McCabe、编辑主管Donna Martone、著作监督Lynn Messina、文字编辑Lisa McCoy、美术指导Jeff Weeks,以及项目经理Dheeraj Chahal和MPS公司的Surendra Shivam,他们提供了大力支持,为本书设计了封面并完成了最后加工。
最后但同样重要的是,我要感谢妻子Gita和儿子Kian与Ryon的耐心和支持,特别是忍受我长时间忘我地投入本书的写作。
译者序Digital Logic Design and Computer Organization with Computer Architecture for Security信息技术发展和应用的速度如此之快,以至于层出不穷的新概念和新技术使人眼花缭乱、应接不暇。无论是物联网、移动互联网、云计算、大数据,还是人工智能、智能硬件、机器学习、智能人机交互,这些热点应用领域都要依靠计算机系统硬件提供的强大计算能力。因此,不仅是计算机专业,越来越多的各领域的专业人士都需要理解计算机系统硬件的完整组成和基本工作原理,进而在系统层面掌握计算机工作的全貌。
我在北京邮电大学从事“计算机组成原理”课程教学二十余年,深刻感觉到,计算机系统硬件课程对教和学双方而言难度都非常大。开设“计算机组成原理”课程的目的是:帮助学生理解构成计算机硬件的基本电路的特性和设计方法;使学生了解计算机系统整体概念,理解指令在计算机硬件上的执行过程;理解计算机系统层次结构,理解高级语言程序、指令系统体系结构、编译器、操作系统和硬件部件之间的关系;让学生站在系统的高度考虑和解决问题,培养具有系统观的软件/硬件贯通人才。因此,就教师而言,如果自身没有对计算机系统硬件设计的深入体会,也就不可能让学生深入地理解计算机系统的整体组成和工作原理。
本书在计算机系统硬件教学方面做了非常有益的探索。作者Nikrouz Faroughi教授从密歇根州立大学获得计算机科学硕士学位、电子工程硕士学位和计算机工程方向的电子工程博士学位,并曾作为顾问和技术经理在英特尔公司工作,拥有丰富的工程经验,对计算机系统硬件有深入的了解。
本书是一部从专业角度讨论计算机系统硬件技术的完整教材。通读本书可以看出,本书与其他教科书相比具有鲜明的特色。
第一个特色是深入浅出、循序渐进,并带有丰富的教学实例。作者从简单的数字逻辑电路设计基础开始,由浅入深,讲解了组合逻辑和时序逻辑电路的设计技术、计算机组成的基本原理和计算机体系结构的相关概念。全书共11章。第1章是计算机系统相关概念的概述;第2~5章分别讨论组合逻辑电路和数字逻辑电路的设计;第6章则从大型时序电路设计过渡到计算机系统控制器的设计;第7~9章分别讨论存储器、指令集体系结构和系统互连(总线与输入/输出系统);第10章讨论多级存储体系。
第二个特色是把计算机体系结构与系统安全问题相关联。安全问题是现代信息系统面临的重大挑战,如何在计算机系统硬件层面支持系统安全是在当今网络互连时代必须面对的问题。第11章用较大篇幅深入探讨了现代计算机系统如何利用硬件支持安全的体系结构。这一章从安全工程的基本概念入手,引出访问控制、硬件安全策略机制和软件/物理攻击机制,并介绍了加密技术、安全协处理器及安全通用处理器等诸多安全计算机体系结构的相关概念与方法。
第三个特色是突出现代计算机的设计理念。由于移动计算和高性能计算对系统性能和功耗的要求,以及现代半导体技术进步和信息技术发展提供的可能性,计算机组织结构的 数字逻辑设计与计算机组成 下载 mobi epub pdf txt 电子书 格式
数字逻辑设计与计算机组成 下载 mobi pdf epub txt 电子书 格式 2024
数字逻辑设计与计算机组成 下载 mobi epub pdf 电子书数字逻辑设计与计算机组成 mobi epub pdf txt 电子书 格式下载 2024