登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』计算机体系结构

書城自編碼: 3023005
分類: 簡體書→大陸圖書→教材研究生/本科/专科教材
作者: Gerard Blanchet, Bertrand Dupo
國際書號(ISBN): 9787302460640
出版社: 清华大学出版社
出版日期: 2017-07-01
版次: 1 印次: 1
頁數/字數: 265/418000
書度/開本: 32开 釘裝: 平装

售價:NT$ 281

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
这就是心理咨询:全球心理咨询师都在用的45项技术(第3版)
《 这就是心理咨询:全球心理咨询师都在用的45项技术(第3版) 》

售價:NT$ 717.0
正说清朝十二帝(修订珍藏版)
《 正说清朝十二帝(修订珍藏版) 》

售價:NT$ 493.0
黑海史:从历史涟漪到时代巨浪
《 黑海史:从历史涟漪到时代巨浪 》

售價:NT$ 538.0
我,毕加索
《 我,毕加索 》

售價:NT$ 280.0
投资真相
《 投资真相 》

售價:NT$ 381.0
非洲大陆简史(萤火虫书系)
《 非洲大陆简史(萤火虫书系) 》

售價:NT$ 437.0
知宋·宋代之军事
《 知宋·宋代之军事 》

售價:NT$ 442.0
我能帮上什么忙?——一位资深精神科医生的现场医疗记录(万镜·现象)
《 我能帮上什么忙?——一位资深精神科医生的现场医疗记录(万镜·现象) 》

售價:NT$ 381.0

建議一齊購買:

+

NT$ 396
《 编程风格:好代码的逻辑 》
+

NT$ 782
《 图像处理、分析与机器视觉(第4版) 》
+

NT$ 668
《 数字设计和计算机体系结构(原书第2版) 》
+

NT$ 822
《 计算机组成与设计:硬件/软件接口(原书第5版) 》
+

NT$ 357
《 计算机组成原理(第2版) 》
+

NT$ 1014
《 计算机体系结构:量化研究方法(第5版) 》
編輯推薦:
(1)阐述了理解计算机的工作原理所需掌握的概念。(2)分为5个部分,内容包括基本体系结构的元素、编程模型和操作、存储器层次结构、并行性和性能增强,*后一部分附录给出了书中练习的提示和解决方案。(3)精心选择了适用于各个时代的示例。(4)适合作为高校相关专业计算机体系结构课程的教材。
內容簡介:
本书介绍了理解计算机的操作系统所需掌握的概念。本书基于以下几个方面编写。
(1)计算机的组件以电子方式工作的细节超出了本书的范围。
(2)本书重点放在概念上,关注的是机器的体系结构的构件、它们的功能以及它们的交互。
(3)本书在任何必要的地方强调了软件与硬件资源之间必不可少的联系。
目錄
目 录
第1部分 基本体系结构的元素

第1章 简介3
1.1 历史背景3
1.1.1 自动化和机械计算器3
1.1.2 从外部程序到存储程序5
1.1.3 各代计算机简介7
1.2 内部操作简介10
1.2.1 与机器通信10
1.2.2 执行指令11
1.3 未来展望12
第2章 基本模块14
2.1 存储器14
2.1.1 定义14
2.1.2 几个技术元件15
2.2 处理器16
2.2.1 功能单元16
2.2.2 处理器的寄存器17
2.2.3 处理单元的元素20
2.2.4 控制器的元件21
2.2.5 地址计算单元22
2.3 模块之间的通信22
2.3.1 PCI总线23
第3章 信息的表示25
3.1 复习25
3.1.1 以2为基数25
3.1.2 二进制、八进制和十六进制表示26
3.2 数字表示约定27
3.2.1 整数27
3.2.2 实数28
3.2.3 浮点表示的一个示例IEEE-754标准31
3.2.4 动态范围与精度33
3.2.5 实现33
3.2.6 IEEE-754标准的扩展34
3.3 字符表示34
3.3.1 8位表示34
3.3.2 现代表示36
3.4 练习37

第2部分 编程模型和操作

第4章 指令41
4.1 编程模型41
4.1.1 I8086的寄存器41
4.1.2 地址构造和寻址模式42
4.2 指令集44
4.2.1 移动指令44
4.2.2 算术和逻辑指令45
4.2.3 移位指令45
4.2.4 转移46
4.2.5 其他指令48
4.3 编程示例49
4.4 从汇编语言到基本指令51
4.4.1 汇编器51
4.4.2 汇编阶段52
4.4.3 连接器53
4.4.4 何时利用汇编语言编程54
第5章 处理器55
5.1 控制总线55
5.1.1 复位线路56
5.1.2 保持线路56
5.1.3 等待控制线路56
5.1.4 中断线路57
5.1.5 概念图57
5.2 指令的执行:一个示例57
5.2.1 指令的执行59
5.2.2 时序图62
5.3 定序器的构成63
5.3.1 传统的合成方法63
5.3.2 微编程65
5.4 扩展65
5.4.1 协处理器65
5.4.2 矢量扩展67
5.4.3 DSP和GPU71
5.5 练习72
第6章 输入和输出74
6.1 示例75
6.1.1 示例:控制热电偶75
6.1.2 示例:串行终端连接79
6.2 交换器的设计和寻址81
6.2.1 交换器的设计81
6.2.2 交换器寻址82
6.3 交换模式83
6.3.1 轮询交换模式83
6.3.2 直接存储器存取84
6.3.3 中断88
6.4 处理中断88
6.4.1 工作原理88
6.4.2 示例90
6.4.3 软件中断91
6.4.4 屏蔽与取消屏蔽中断91
6.4.5 中断优先级或级别92
6.4.6 类似的机制92
6.5 练习93

第3部分 存储器层次结构

第7章 存储器97
7.1 存储器资源97
7.2 特征97
7.3 存储器层次结构98
7.3.1 局部性原理99
7.3.2 层次结构的组织和管理99
7.3.3 定义和性能100
7.4 存储器大小和保护机制100
7.5 分段101
7.5.1 使用段寄存器:一个示例101
7.5.2 使用段描述符102
7.6 分页103
7.7 存储器交叉存取和突发模式105
7.7.1 C存取105
7.7.2 S存取105
7.7.3 突发模式106
7.7.4 预取缓冲区107
7.8 保护,I386的示例108
第8章 缓存109
8.1 高速缓冲存储器109
8.1.1 操作原理和体系结构109
8.1.2 高速缓冲存储器的操作109
8.1.3 缓存设计111
8.2 替换算法114
8.2.1 LRU方法114
8.2.2 多级缓存的情况118
8.2.3 性能和模拟119
第9章 虚拟存储器122
9.1 一般概念122
9.1.1 操作122
9.1.2 存取信息123
9.1.3 地址翻译123
9.2 存取方法的规则124
9.2.1 页错误124
9.2.2 多级分页125
9.2.3 服务信息、保护和访问权限125
9.2.4 页大小126
9.3 程序执行的示例127
9.3.1 引入翻译缓存128
9.3.2 执行129
9.3.3 备注131
9.4 二级分页的示例132
9.4.1 管理132
9.4.2 处理服务位132
9.4.3 信息访问中的步骤134
9.5 页式分段136
9.5.1 36位扩展138
9.6 练习138
9.7 文档摘录139
9.7.1 MMU简介139
9.7.2 TLB的描述140
9.7.3 TLB特性142

第4部分 并行性和性能增强

第10章 流水线体系结构147
10.1 动机和思想147
10.1.1 RISC机器147
10.1.2 操作原理148
10.1.3 流水线体系结构的代价150
10.2 流水线管理问题150
10.2.1 结构风险150
10.2.2 依赖冲突153
10.2.3 转移154
10.3 处理转移155
10.3.1 延迟的转移和软件处理155
10.3.2 转移预测157
10.3.3 转移目标缓冲区160
10.3.4 全局预测161
10.3.5 示例163
10.4 中断和异常166
10.4.1 中断166
10.4.2 陷阱和错误167
第11章 体系结构的示例168
11.1 简介168
11.1.1 流水线描述168
11.1.2 指令集170
11.1.3 指令格式171
11.2 执行指令172
11.2.1 读取和解码指令172
11.2.2 存储器读取172
11.2.3 存储器写操作174
11.2.4 寄存器到寄存器的操作174
11.2.5 条件转移176
11.2.6 具有立即寻址的指令179
11.3 DLX中的冲突解决179
11.3.1 转发技术179
11.3.2 处理转移182
11.4 练习185
第12章 多处理器环境中的缓存190
12.1 缓存一致性191
12.1.1 示例191
12.1.2 要考虑的元素192
12.1.3 一致性的定义192
12.1.4 方法193
12.2 嗅探协议的示例194
12.2.1 MSI协议194
12.2.2 MEI协议197
12.2.3 MESI协议197
12.2.4 MOESI协议199
12.3 改进200
12.4 基于目录的一致性协议200
12.5 一致性203
12.5.1 相容性与一致性203
12.5.2 表示法203
12.5.3 原子相容性204
12.5.4 顺序相容性204
12.5.5 因果相容性205
12.5.6 弱相容性206
12.6 练习207
第13章 超标量体系结构210
13.1 超标量体系结构的原理210
13.1.1 风险211
13.2 寻求解决方案212
13.2.1 原理212
13.2.2 示例214
13.3 处理指令流215
13.3.1 记分牌的原理215
13.3.2 记分牌实现216
13.3.3 详细的示例217
13.3.4 关于优先级约束的注释221
13.3.5 Tomasulo算法的原理222
13.3.6 详细的示例224
13.3.7 循环执行和WAW风险229
13.4 VLIW体系结构231
13.4.1 超标量体系结构的局限性231
13.4.2 VLIW体系结构概述232
13.4.3 预测233
13.5 练习235

第5部分 附录

附录A 提示和解决方案241
A.1 信息的表示241
A.2 处理器244
A.3 输入和输出245
A.4 虚拟存储器246
A.5 流水线体系结构247
A.6 多处理器环境中的缓存253
A.7 超标量体系结构256
附录B 编程模型258
B.1 I8086中的指令编码258
B.2 DLX体系结构的指令集259
B.2.1 浮点数上的操作259
B.2.2 移动操作259
B.2.3 算术和逻辑运算260
B.2.4 转移260
参考文献262
內容試閱
前言
本书介绍了理解计算机的操作系统所需掌握的概念。本书基于以下几个方面编写。


第5章 处 理 器在第2章中看到,通过检查可知,由处理器(Processor)执行的功能可以划分成以下三个单元(参见图5.1)。(1)控制器(Control Unit),它负责:① 从存储器中获取指令。② 解码这些指令。③ 对微命令进行排序,确保所识别的指令的操作。(2)处理单元(Processing Unit),它产生基本算术和逻辑运算的结果。(3)寄存器(Register),它用于把处理单元处理的信息存储进存储器中。
图5.1 处理器的组件在按顺序发送的微命令的环境中,将使用以下术语。(1)微指令(Microinstruction):一个布尔型(Boolean)矢量,表示这些来源于控制器的微命令的逻辑状态。(2)微操作(Micro-Operation):微指令的执行(参见图5.2)。本章在介绍了一个指令执行的示例之后,将详细描述控制器的组件及其设计中所涉及的概念。5.1 控 制 总 线我们强调了处理器任务的必要性:读取指令、解码、执行、读取指令等。这种循环可以通过外部信号改变,这些信号是在控制总线(Control Bus)的线路上传送的。我们已经提过了等待线路的情况(参见图5.3)。还有其他一些来源于处理器的信号,用于指示处理器的内部状态或者给外部设备提供信息(图5.4中显示了确认的示例),它们是在这条相同的总线上传送的。通常通过触发器来记住控制线路的状态,然后反遇出激活它们的事件。
图5.3 控制线路的测试图5.4 控制线路5.1.1 复位线路复位(Reset)线路将导致处理器重新引导。当这条线路改变状态时,将初始化多个触发器和内部寄存器,然后获得引导地址。(1)直接:利用给定的值初始化程序计数器(Intel I8080和Intel I8086微处理器就是这样,对于前者来说,将把程序计数器复位为0;对于后者来说,其物理(Physical)引导地址是FFFF016)。(2)间接:程序计数器在加载时具有一个值,它是处理器从存储器中的某个固定地址(例如,8位Motorola MC6800微处理器中的FFFE16和FFFF16,参见图5.5)获取的。
图5.5 Motorola MC6800中的引导方式5.1.2 保持线路当除了处理器以外的某个单元(另一个处理器或交换器)尝试控制总线时,就会使用保持(Hold)线路。如果这个尝试成功,处理器就必须放弃访问总线。协议使用控制总线的两条线路:HOLD(保持)线路和HOLD Acknowledge(保持确认)线路。为了响应这个保持请求,处理器将发送一个确认,指示数据和地址总线切换为高阻抗状态。然后就称处理器处于空闲模式(Idle Mode)。5.1.3 等待控制线路如我们已经见过的,当处理器(或者另一个输入输出设备)尝试获得长时间访问存储器的权限时,等待控制(Wait Control)线路就被证明是必要的。这种WAIT(等待)控制线路或READY(就绪)线路允许处理器在读或写操作期间插入等待周期(Wait Cycle)或等待状态(Wait State),同时等待必需的数据变得可用,或者输入输出单元做好准备。5.1.4 中断线路中断(Interrupt)线路用于把外部事件考虑在内。可以执行一个指令序列来响应这种请求。这些事件的处理被称为中断,将在第6章介绍输入输出时讨论它。5.1.5 概念图受Motorola MC6800微处理器的启发而得到的操作图可以表示为如图5.6所示。
图5.6 操作图的示例执行指令的完整阶段被称为指令周期(Instruction Cycle),这个周期的长度依赖于机器的体系结构。5.2 指令的执行:一个示例本节将利用一个示例演示刚才所介绍的,这个示例基于Intel I8080微处理器的内部操作(参见图5.7)[INT 79]。依据Intel定义的表示法,我们所选的指令是add M。
图5.7 Intel I8085这个指令对寄存器A(累加器)与存储器字(其地址由HL寄存器(用作地址寄存器)的内容提供)的内容执行求和。结果存储在寄存器A中(参见图5.8)。
图5.8 add M指令的操作图这个指令将引发两个存储器访问:一个是读取指令;另一个是把操作数读入存储器中。之所以选择这个示例,是因为Intel I8080微处理器的操作非常简单,也是因为每条指令中的每个步骤的描述都可以在Intel公司提供的文档中找到。add M被划分在三个机器周期中:M1、M2和M3。依据以下模式,将每个周期划分成状态T1、T2等。
M1
T1T2T3T4T5add M代码8616PC OUT状态PCINSTIRA ACT?M2M3
T1T2T3T1T2T3
HL OUT状态数据TMP
ACT TMPA?机器简化的内部结构如图5.9所示。
图5.9 CPU的简化结构这幅图显示了主要的寄存器:指令寄存器IR(8位)、标志(8位)、程序计数器(16位)、寄存器HL(16位)、寄存器A(8位)和两个缓冲寄存器,分别称为ACT(16位)和TMP(8位)。地址缓冲区AR(16位)可以临时记住需要提供给地址总线的地址。使用双向驱动器(Driver)给数据总线供电,它们是三态(Three State)驱动器。5.2.1 指令的执行Intel对机器周期(Machine Cycle)定义了一个顺序。这意味着每条指令都被划分在主要周期(1~5)中。在这里,求和指令被认为包含三个机器周期。其中每个周期都包含由基本时钟定义的2~5个基本周期(Elementary Cycle)(状态)。执行每个基本周期所涉及的微命令通过表示,其中,j是机器周期编号,k是基本周期编号,i则是线路编号。(1)第一个机器周期:这对应于在存储器中获取指令,并且包含以下4个基本周期。① 把程序计数器PC的内容传输给地址缓冲区AR。与此同时,数据总线提供关于当前机器周期的指示,在这里是指令获取周期。这个阶段(通过M1-T1表示(参见图5.10))涉及以下微代码。* 命令多路复用器Mux把PC的内容转移给AR。* 命令加载缓冲区AR。* 指示位于周期T1中。这个信息显示在控制总线的线路上的名称SYNC下面,并且可以被外部逻辑使用。* 命令发送方向上的数据总线驱动器等。
图5.10 M1-T1阶段这些当然不是所有的微命令,但是这个列表很好地描述了信号在确保指令执行方面所起的作用。② M1-T2阶段包含递增程序计数器的内容。在处理占据单个字的指令时,程序计数器的这种递增的预期可以节省时间,并为存储器提供额外的时间来设置它自身(参见下一个阶段)。在微命令当中,将提及、以及或,其中,指示程序计数器递增模式,用于激活递增,或则用于验证对存储器的访问(参见图5.11)。在这个阶段,将测试READY线路。如果它被置0,就意味着存储器没有准备好递送指令代码,处理器将引入基本等待周期TW。在这个阶段还将测试保持线路。③ 在M1-TW等待阶段,在数据总线上期望的指令并不认为是稳定的。因此,它可能不会进入指令寄存器中(参见图5.12)。
图5.11 M1-T2阶段
图5.12 M1-TW阶段④ M1-T3阶段(参见图5.13)将实际地获取指令,它将被加载进指令寄存器IR中。在相关的微命令当中,可以提及以下微命令。* 命令,用于数据总线驱动器。* 存储器控制信号。* 加载指令寄存器IR。从M1-T1阶段起,包含指令的存储器字的地址就已经位于总线上。
图5.13 M1-T3阶段⑤ M1-T4阶段标记指令的实际展开的开始。它对应于把寄存器A的内容传输到缓冲区ACT,如以前所解释的,这个传输起着阻止发生操作意外事故的作用(参见图2.10)。微命令触发ACT的加载(求和代码已经位于算术逻辑运算器上)(参见图5.14)。(2)第二个机器周期:这个周期由三个基本周期组成,对应于用于读取存储器中的操作数的机器周期。① M2-T1阶段(参见图5.15)包括指示周期类型、存储器读取(Memory Read),并且与M1-T1阶段(指令获取(Instruction Fetch))的各个方面完全相同。
图5.14 M1-T4阶段
图5.15 M2-T1阶段存储器中的操作数的地址(包含在HL中)存储在缓冲区AR中。② 在M2-T2阶段(参见图5.16),将测试READY线路,并根据需要插入等待周期。③ M2-TW等待阶段与M1-TW阶段的各个方面完全相同。④ M2-T3阶段(参见图5.17)包括利用以下微命令获取第二个操作数:* 命令,用于数据总线驱动器。* ,控制用于存储器的信号。* ,用于加载TMP。
图5.16 M2-T2阶段
图5.17 M2-T3阶段从M2-T1阶段起,包含操作数的存储器字的地址就已经位于地址总线上。就像在读操作中一样,将为存储器生成读命令,并且设置数据总线驱动器。唯一的区别是寄存器的加载:用TMP代替IR。(3)第三个机器周期:可以将其描述为指令执行周期。它包含以下两个基本周期。① 在第一个到最后一个阶段即M3-T1阶段(参见图5.18),当前操作不会发生任何事情。人为地引入它只是为了后面的指令开启它的周期。
图5.18 M3-T1阶段(程序中的下一条指令的M1-T1阶段)② 最后一个阶段即M3-T2阶段(参见图5.19)包括从寄存器A获得求和运算的结果,并设置标志。在使用的微命令当中,可以提及以下微命令。* ,用于寄存器A的加载。* ,用于标志寄存器的加载。
图5.19 M3-T2阶段(程序中的下一条指令的M1-T2阶段)连续操作之间的重叠可以显著改进性能。对于求和指令,可以从所需的9个基本周期中获得两个基本周期的好处(一旦包括等待周期的话)。5.2.2 时序图我们将继续讨论上一节中研究的指令执行中涉及的命令,并且现在将在图5.20中描绘的时序图(Timing Diagram)中表示它们。这幅时序图基于Intel公司的I8080和I8085处理器。线路实际上是随Intel I8085引入的。在Intel I8080中,使用DBIN(Data Bus IN,数据总线IN)线路来验证读取传输。在x轴上表示时间,并在y轴上表示少数几个命令的逻辑状态。我们希望更详细地观察,尤其是在M1-T1到M1-T3阶段,它们对应于指令获取。(1)在M1-T1阶段,涉及的微命令如下。① 命令,用于多路复用器Mux,在M1-T1阶段假定它等于1。
图5.20 时序图② 命令,用于加载缓冲区AR,它等于2。在利用HL的内容加载AR的阶段,也使用这些命令获取操作数。我们假定=0。(2)在M1-T2阶段,指令的地址(阴影区域)在地址总线上还不是有效(Valid)的。为了递增程序计数器,将递增(Increment)模式设置为1,然后使用生成一个来自时钟的脉冲。(3)以此类推。5.3 定序器的构成定序器(参见图5.21)是一种生成微命令的自动机。这种自动机或时序(Sequential)机获取以下输入。(1)指令代码,或者如果我们要区分解码器(Decoder)与定序器(Sequencer),那么它将获取解码器的输出。(2)关于处理器的状态(特别是标志)的信息。(3)控制总线的线路状态。(4)来自时钟的信号。这种时序机的设计可以通过以下几个方面实现。(1)基于硬连接的自动机的传统合成方法。(2)基于微编程概念的方法。(3)上述两种方法相结合。5.3.1 传统的合成方法传统的合成方法在很大程度上依赖于设计师的经验,包括对指令执行的不同阶段进行编码。为了加以说明,我们将再次考虑用作一个示例的指令,它甚至简化了更多的处理器的操作。设Cn是唯一标识指令的变量,是规范地对Mi-Tj阶段进行编码的变量(参见图5.22)。当然,它取自于彼此独立地合成所有指令的问题。任务将会非常困难。
图5.22 变量用于多路复用PCHL命令(单独用于该指令)的方程式可以写成:=?Cn=因为独立于Cn,这是由于无论指令是什么,那个阶段都会执行自身。注意:这可能会导致简化(最简单的表达式并不总是对应于最简单的设计)。用于寄存器AR的加载命令可能是:loadAR= Cn由于incrPC对于指令代码是独立的,用于程序计数器的递增命令将写成incrPC?=。如果我们知道怎样把所有这些命令都写成方程式,那么我们的合成问题将简化成生成。然后可以绘制对应的时序机的状态图(State Diagram)(参见图5.23)。为这幅图中的跃迁设置条件的函数依赖于指令和条件代码。例如,条件C1只对空指令(不做任何事情的指令或nop)为真,而它的补集将对所有其他的指令为真。这样一条指令将生成序列--。序列状态1-状态2-状态3将不可压缩,并且是所有指令的公共序列。合成过程依赖于在进行状态编码时所达到的变量复杂性模型,其后接着用于状态变量和输出的逻辑方程式。图5.24显示了所得到的定序器的操作。
图5.23 生成器的状态图图5.24 硬连接的定序器的操作图这种方法的主要难点表现在设计(每次修改都需要把整个合成过程再执行一遍)、结果优化(最小化元素数量)以及结果测试这些方面。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.