java实现Tomasulo算法_并行计算机组成与设计pdf

并行计算机组成与设计 内容简介

《并行计算机组成与设计》以简单易懂的方式讲解错综复杂的并行体系结构,引导读者了解并行计算机的工作原理,同时鼓励读者创新并实现自己的设计。全书共9章,内容涵盖底层电子工艺、微体系结构、存储结构、互连网络、多处理器、片上多处理器以及量化评估模型等。每一章都独立且完备,既包含全面的基本概念,也涵盖一些前沿研究点。本书适合作为高等院校计算机相关专业的教材,教师可根据课程及学生的层次选取不同的主题。同时,对于工程师和研究者,本书也是不可多得的有益参考。

并行计算机组成与设计 目录

第1章 总述

1.1 什么是计算机体系结构

1.2 并行体系结构的基本组成

1.2.1 处理器

1.2.2 存储

1.2.3 互连

1.3 并行体系结构

1.3.1 指令级并行

1.3.2 线程级并行

1.3.3 向量和阵列处理器

1.4 性能

1.4.1 基准测试集

1.4.2 Amdahl定律

1.5 技术挑战

1.5.1 功耗和能量

1.5.2 可靠性

1.5.3 连线延迟

1.5.4 设计复杂度

1.5.5 尺寸缩小极限和CMOS终点

习题

第2章 工艺及其影响

2.1 概述

2.2 电学基本定律

2.2.1 欧姆定律

2.2.2 电阻

2.2.3 电容

2.3 MOSFET晶体管和CMOS反相器

2.4 工艺变更

2.5 功耗和能耗

2.5.1 动态功耗

2.5.2 静态功耗

2.5.3 功耗和能量指标

2.6 可靠性

2.6.1 故障和错误

2.6.2 可靠性指标

2.6.3 故障率和老化

2.6.4 瞬时故障

2.6.5 间歇性故障

2.6.6 永久性故障

2.6.7 工艺偏差及其对故障的影响

习题

第3章 处理器微结构

3.1 概述

3.2 指令集架构

3.2.1 指令类型和操作码

3.2.2 指令混合

3.2.3 指令操作数

3.2.4 异常、陷阱和中断

3.2.5 存储一致性模型

3.2.6 本书的核心ISA

3.2.7 CISC和RISC

3.3 静态调度流水线

3.3.1 经典五级流水线

3.3.2 指令乱序完成

3.3.3 超流水和超标量CPU

3.3.4 分支预测

3.3.5 静态指令调度

3.3.6 静态流水线的优缺点

3.4 动态调度流水线

3.4.1 解决数据相关:Tomasulo算法

3.4.2 推测执行

3.4.3 动态分支预测

3.4.4 支持推测的Tomasulo算法

3.4.5 动态内存歧义消除

3.4.6 显式寄存器重命名

3.4.7 指令发射后的寄存器读取

3.4.8 推测指令调度

3.4.9 打破数据流限制:值预测

3.4.10 单周期多指令

3.4.11 处理复杂ISA

3.5 超长指令字微结构

3.5.1 动态和静态技术

3.5.2 VLIW体系结构

3.5.3 循环展开

3.5.4 软件流水

3.5.5 非循环VLIW调度

3.5.6 谓词指令

3.5.7 推测内存歧义消除

3.5.8 异常

3.6 EPIC微结构

3.7 向量微结构

3.7.1 算术/逻辑向量指令

3.7.2 内存向量指令

3.7.3 向量分段开采和链接

3.7.4 条件语句

3.7.5 scatter和gather操作

习题

第4章 存储层次

4.1 概述

4.2 金字塔形存储层次

4.2.1 访存局部性

4.2.2 存储层次中的一致性

4.2.3 存储包含

4.3 cache层次

4.3.1 cache映射及组织方式

4.3.2 替换策略

4.3.3 写策略

4.3.4 cache层次的性能

4.3.5 cache失效的分类

4.3.6 非阻塞cache

4.3.7 cache预取和预加载

4.4 虚拟存储

4.4.1 引入虚存的动机

4.4.2 从操作系统视角看到的虚拟存储

4.4.3 虚地址转换

4.4.4 访存控制

4.4.5 多级页表

4.4.6 反向页表

4.4.7 旁路转换缓冲

4.4.8 带物理标识的虚地址cache

4.4.9 带虚标识的虚地址cache

习题

第5章 多处理器系统

5.1 概述

5.2 并行编程模型

5.2.1 共享内存系统

5.2.2 消息传递系统

5.3 基于消息传递的多处理器系统

5.3.1 消息传递原语

5.3.2 消息传递协议

5.3.3 消息传递协议的硬件支持

5.4 基于总线的共享内存系统

5.4.1 多处理器cache组织

5.4.2 一个简单的侦听cache协议

5.4.3 侦听cache协议的设计空间

5.4.4 协议变种

5.4.5 多阶段侦听cache协议的设计问题

5.4.6 通信事件的分类

5.4.7 TLB一致性

5.5 可扩展共享内存系统

5.5.1 目录协议的基本概念和术语

5.5.2 目录协议实现方法

5.5.3 目录协议的扩展性

5.5.4 层次化系统

5.5.5 页面迁移和复制

5.6 全cache共享内存系统

5.6.1 基本概念、硬件结构和协议

5.6.2 平坦COMA

习题

第6章 互连网络

6.1 概述

6.2 互连网络的设计空间

6.2.1 设计概念综述

6.2.2 延迟和带宽模型

6.3 交换策略

6.4 拓扑结构

6.4.1 间接网络

6.4.2 直接网络

6.5 路由技术

6.5.1 路由算法

6.5.2 死锁避免和确定性路由

6.5.3 放松路由限制:虚通道和转弯模型

6.5.4 进一步放松的路由算法:自适应路由

6.6 交换架构

习题

第7章 一致性、同步与存储一致性

7.1 概述

7.2 背景

7.2.1 共享内存通信模型

7.2.2 硬件组件

7.3 一致性和store原子性

7.3.1 多处理器一致性的实现困难

7.3.2 cache协议

7.3.3 store原子性

7.3.4 纯一致性

7.3.5 store原子性和访存交错

7.4 顺序一致性

7.4.1 顺序一致性的形式化模型

7.4.2 顺序一致性的访存顺序规则

7.4.3 入站消息管理

7.4.4 store同步性

7.5 同步

7.5.1 基本同步原语

7.5.2 基于硬件的同步

7.5.3 基于软件的同步

7.6 放松的存储一致性模型

7.6.1 不依赖于同步的放松模型

7.6.2 依赖同步的放松模型

7.7 推测执行中的存储序违反

7.7.1 乱序执行处理器中的保守存储模型

7.7.2 推测执行中的存储序违反

习题

第8章 片上多处理器

8.1 概述

8.2 CMP的基本原理

8.2.1 技术趋势

8.2.2 机遇

8.3 核内多线程

8.3.1 软件支持的多线程

8.3.2 硬件支持的多线程

8.3.3 块式(粗粒度)多线程

8.3.4 交错(细粒度)多线程

8.3.5 乱序执行处理器上的同时多线程

8.4 片上多处理器架构

8.4.1 同构CMP架构

8.4.2 基于异构处理器核的CMP系统

8.4.3 连体处理器核

8.5 编程模型

8.5.1 独立进程

8.5.2 显式线程并行

8.5.3 事务内存

8.5.4 线程级推测执行

8.5.5 帮助线程

8.5.6 通过冗余执行提高可靠性

习题

第9章 量化评估

9.1 概述

9.2 模拟器分类

9.2.1 用户级模拟器和全系统模拟器

9.2.2 功能模拟器和时钟精确模拟器

9.2.3 trace驱动模拟器、执行驱动模拟器和直接执行模拟器

9.3 模拟器的集成

9.3.1 功能优先模拟器的集成

9.3.2 时序优先模拟器的集成

9.4 多处理器模拟器

9.4.1 串行多处理器模拟器

9.4.2 并行多处理器模拟器

9.5 功耗和热量模拟

9.6 工作负载采样

9.6.1 基于采样的微架构模拟

9.6.2 SimPoint

9.7 工作负载特征刻画

9.7.1 理解性能瓶颈

9.7.2 合成基准测试程序

9.7.3 预测工作负载行为

习题

附录

并行计算机组成与设计 精彩文摘

1.1 什么是计算机体系结构

计算机体系结构是一门工程或应用科学学科,它主要研究如何在给定的工艺限制和软件要求下设计更好的计算机。过去计算机体系结构是指令集设计的代名词,然而随着时间的推移,该术语已经涵盖了计算机的硬件组成、微处理器乃至硬件组件级别的整个系统的设计。本书中,我们采用了默认的“计算机体系结构”的现代定义,即“计算机硬件组成和计算机设计”,在提到指令集时,我们将明确地使用术语“指令集架构”(简称ISA)。从指令集的设汁发展历史可以看出,指令集是非常稳定的,现在只有少数忉为工业界所支持,虽然目前的指令集可能会不断扩展,但从头开始设计新的指令集是几乎不可能的,因为开发一个全新的指令集并进行实现的成本无疑非常巨大。本书中,我们将粗略地介绍指令集架构,因为这不是我们的主要目标,我们的主要目标是在给定成本和工艺限制下快速、正确地实现指令集架构的并行计算机体系结构。

c2a685211f6de3a7a80b36cce15d73bb.png

并行计算是90年代计算技术的一个重要组成部分,它在未来20年的影响可能与微处理器在过去20年的影响一样大。 事实上,随着高度集成的微处理器和内存芯片的发展,使得多处理器系统越来越具有吸引力,这两种技术紧密相连。 从速度最快的超级计算机,到部门计算服务器,再到个人桌面,多处理器已经代表了计算市场几乎每个部分的高性能终端。 在过去,计算机供应商采用一系列技术来提高整个产品线的性能。 今天,同样最先进的微处理器被广泛使用。 要获得显著的性能范围,最简单的方法是增加处理器的数量,而规模经济使这一点极具吸引力。 很快,几个处理器就可以装在一个芯片上。 4 草稿:并行计算架构8/29/97 虽然并行计算有着悠久而丰富的学术历史,但是与商品技术的紧密结合从根本上改变了这门学科。 对基本架构和外来技术的强调已经让位于定量分析和仔细的工程权衡。 我们写这本书的目的是使新兴的多处理器系统的设计者,从适度并行的个人计算机到大规模并行的超级计算机,了解基本的架构问题和处理设计权衡的可用技术。 同时,我们希望为这些器的软件系统设计人员提供对体系结构发展的可能方向的理解,以及确定硬件设计将遵循的特定路径的力量。 并行计算体系结构中最近最令人兴奋的开发是传统上完全不同的方法(即共享内存、消息传递、SIMD和数据流)在一个公共器结构上的聚合。 这部分是由于共同的技术和经济力量,部分是由于更好地理解并行软件。 这种聚合使我们能够专注于最重要的体系结构问题,并开发一个通用框架,在其中理解和评估体系结构的权衡。 此外,并行软件已经成熟到流行的并行编程模型可以在广泛的器上使用,并且存在有意义的基准测试。 这一领域的成熟使得对硬件/软件交互进行定量和定性研究成为可能。 事实上,它需要这样一种方法。 本书遵循了一系列对所有并行架构都至关重要的问题——通信延迟、通信带宽以及跨整个现代设计的协作工作的协调。 它描述了用于解决每个问题的硬件和软件中可用的一组技术,并探讨了各种技术如何交互。 案例研究提供了一般原则的具体说明,并说明了制之间的具体相互作用。 我们的最终动来自于目前我们在斯坦福、伯克利和普林斯顿的课程缺乏足够的课本。 现有的很多教材对材料的涉及面都比较粗略,只是对各种建筑和研究成果进行了总结,并没有对其进行深入的分析。 另一些人专注于特定的项目,但没有认识到可用于替代方法的原则。 该领域的研究报告提供了大量的经验数据,但还没有提炼成一个连贯的画面。 我们希望通过集中注意技术融合背景下的突出问题,而不是使我们走到这一点的丰富和多样的历史,对该领域提供更深刻和更连贯的了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值