《计算机系统结构》多线程和多处理器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
One or
more levels more levels more levels more levels
of cache of cache of cache of cache
Main memory
I/O 系统
适合小规 模的多处 理器,扩 展性不强。
14
3 多处理器和多核技术
• 分布式存储器架构 节约了存储器带宽,减少了访存延迟
• 一个Cell处理器包含二个主要组成部分。 • 以一个Power处理器单元作为主控处理器(PPE),另外两部分
分别是八个单指令多数据流处理器(SPE)。
1
6 多线程和多处理器
1 指令级并行的局限性 2 多线程技术 3 多处理器和多核技术
2
1 指令级并行的局限性
从1980年代中期开始,研究ILP一直是处理器设计的主要 关注点。在开始的15年中, 在流水线、多发射、动态调度、 推测执行等技术方面获得了巨大的进度。流水线处理器的性
能较单周期处理器有了非常大的提升。但是由于ILP在并行性、 功耗等方面的限制,从2000年开始,业界的设计目标逐渐转 向多线程、多处理器、多核等技术的研究。 限制ILP的因素有: • 处理器每个时钟周期能发射的指令数
16
3 多处理器和多核技术
多处理机Cache一致性
处理机速度的提高和处理机数量的增加,对共享 存储器的访问将变成系统的瓶颈,在多处理机系统中, 一定会使用Cache。
因此在多处理机系统中存在Cache一致性问题。
17
3 多处理器和多核技术
解决多处理机系统中存在Cache一致性问题, 有两种策略:
适合大规 模的多处 理器,扩 展性强。
15
3 多处理器和多核技术
通信模型和存储器架构
根据处理器间传递数据所用的方法,有两种不同的系统结构: 1. 通过共享的地址空间进行通信。物理上分开的存储器能够
作为逻辑上共享的地址空间进行寻址。也就是说,只要有 正确的访问权限,任何一个处理器都能通过引用地址的方 式访问任意节点上的存储器。这类机器称为分布式共享存 储器系统。共享存储器不是说有单一的、集中的存储器, 所以也称为非均匀存储器访问NUMA。 2. 另一种地址空间由多个私有的地址空间组成,这些私有地 址空间在逻辑上是分散的,不能被远程处理器寻址。
19
3 多处理器和多核技术
芯片级并行性
• 特点
• 独立的控制流 • 分离的内部状态 • 没有共享的功能部件
• 分类
• 同构多核
• Core 2 Duo
• 异构多核
• Cell处理器 • 网络处理器
FP Unit EXE Core
FP Unit EXE Core
L1 CaΒιβλιοθήκη Baiduhe
L1 Cache
L2 Cache
• 粗粒度:仅在长空闲周期时才切换线程。
劣势:在短空闲周期时不切换线程,在切换线程时还涉及流水线的排空 和装载,不能较好地发挥性能。
6
2 多线程技术
同时多线程(Simultaneous Multi-Threading, SMT)是多线程 的变种,结合了多发射、在ILP和TLP上动态调度指令的 功能。 SMT提出的原因在于现代多发射处理器常常有多个功能 单元,因此结合寄存器换名、动态调度、多发射等技术 使独立线程能够被同时发射而不用考虑其相关性。
微码
指令队列
指令队列
微码
ROM
指令译码
指令译码
ROM
和
寄存器更名分配
ROB
控
ROB
寄存器更名分配
制
调度器
调度器
FPU ALU ALU ALU LD ST
L1 D-cache 和 D-TLB
ST LD ALU ALU ALU FPU
L1 D-cache 和 D-TLB
21
3 多处理器和多核技术
IBM-Sony CELL
多发射处理器的性能提升与功耗的增加不成正比,功耗的增 幅大于性能的增幅。
11
3 多处理器和多核技术
下面几个因素催生了多处理的发展: • 对于服务器性能关注的增长 • 面向数据的应用的增加 • 桌面系统性能增加的关注越来越少 • 服务器环境在线程级并行性的天生优势 • 时钟频率增加的瓶颈 • 对于处理器功耗的关注 • ILP的局限性
• 分支预测的准确性
• 各种相关性限制
• 寄存器重命名的能力
3
2 多线程技术
比ILP更高一级的并行是线程级并行(Thread Level Parallelism, TLP)。一个线程是有自己的指令和数据的过 程。每个线程都有用于执行的必要的状态(包括指令、 数据、PC、寄存器状态)。与ILP去发掘循环或顺序代码 段的隐式并行性不同,TLP是显式表示多个线程的执行。
• Multiple instruction streams, single data stream (MISD,多 指令单数据流) —没有现实的处理器.
• Multiple instruction streams, multiple data streams (MIMD, 多指令多数据流) —每个处理器取自己的指令,并在自己 的数据上操作。
多线程技术允许多个线程来共享单个处理器的功能部件。 为了允许这种共享,处理器必须能复制每个线程的独立状态, 这样才具备在多个线程之间进行切换的能力。
5
2 多线程技术
多线程技术的两种实现: • 细粒度:可在每条指令之间切换线程,使得线程交替
执行,因此CPU必须能够在每个时钟周期切换一次线程。
优势:不论是长空闲周期还是短空闲周期,都能切换线程, 劣势:对于单个线程来说,性能受到了影响
13
3 多处理器和多核技术
MIMD系统中,每个处理器都执行自己的指令流。
MIMD可分为两类
这样的结构也称为均匀存储器访
• 集中共享存储器架构
问UMA结构。也可称为对称型多 处理机SMP
Processor Processor Processor Processor
One or
One or
One or
7
2 多线程技术
水平方向表示每个时钟周期处理器能发射的指令数 垂直方向表示时钟周期序列。空格表示时钟周期内未使用的指令发射槽。 不同的颜色分别对应四个不同的线程。
超标量、粗粒度、细粒度和SMT之间的效率对比
8
2 多线程技术
为每个线程设置重命名表、保留指令各自的PC值、为来 自多个线程的指令的提交提供支持,多线程完全可以在乱序 执行处理器的基础上实现。 SMT的设计挑战 1. SMT必须在细粒度的实现方式下才有意义 2. 为了保存多个上下文信息,寄存器文件会格外庞大 3. 不能影响每个时钟周期的开销 4. 必须保证同时执行多个线程引起的Cache和TLB的冲突不
对于其他不易实现广播操作的网络如多级开关网络,只 有将写废或写改命令送到有拷贝的Cache中。怎样才能知道 一个Cache块还存在在哪些其他的Cache中,需要一个 Cache目录来存放信息。Cache目录为每个块设立一个指针, 指向有该块拷贝的这些Cache。这样的机制称为目录协议。 Cache目录可以是集中式的,也可以是分布式的。
TLP的并行性比ILP更有效,是ILP更好的替代品。业 界有很多重要的应用都是以TLP的方式执行,特别是在 服务器类应用中。
4
2 多线程技术
TLP和ILP是发掘一个程序的不同方面的并行性,那么一 个自然的问题是: 一个面向ILP设计的处理器能否用来面向TLP? 这个问题的提出是因为观察到面向ILP的处理器常常会因为相 关性或者空周期而其功能部件空闲。
• 增加L1指令缓冲的相联度和TLB • 增加虚拟寄存器的个数152-240
• 增加每个线程的load和store队列 • 增加发射队列的大小
• 增加L2和L3的Cache大小
SMT相对ST的加速比一般是0.9-1.6之间。
10
2 多线程技术
多发射处理器的局限性
如果要将每个时钟周期发射3-6条指令的数量增加到6-12条, 将会要求处理器能够每个时钟周期发射3-4次数据存储器访问、处 理2-3个分支、重命名20个以上的寄存器、取12-24条指令。实现这 些机制的复杂性可能会牺牲最大时钟频率。
会使性能显著下降
9
2 多线程技术
SMT技术不会获得太高的加速比,原因在于:
1 损失单个线程的性能
2多个线程同时运行,势必会加剧各种资源的竞争,如指令预取缓 冲、存储器带宽。
IBM Power5使用了与Power4一样的流水线,但是增加SMT的支持。 Power5的设计者发现他们必须在Power5中增加大量的模块来减少 性能的负面影响:
System Bus (667MHz, 5333MB/s)
• CPU芯片降低15%工作电压的结果 • 主频降低15% • 功耗降低45% • 性能下降10%
20
3 多处理器和多核技术
Core 2 Processor Block Diagram
系统总线
L2 Cache
指令预取/预译码
指令预取/预译码
*写废策略:当一个处理机往Cache的某个 块写数据时,该块在其他处理机中的拷贝置为 无效;
*写改策略:当一个处理机往Cache的某个 块写数据时,新的数据也写到其他处理机 Cache相应的块中。
18
3 多处理器和多核技术
按照互连网络拓扑结构不同,写废或写改策略的实现方 法也不同。例如:共享总线容易实现广播操作,写废或写改 命令可广播到其他所有Cache。每个Cache都监听总线,以 知道其他Cache是否有写操作发生,称为监听Cache协议。
12
3 多处理器和多核技术
并行结构的分类
• Single instruction stream, single data stream (SISD,单指令单 数据流) —普通的单处理器.
• Single instruction stream, multiple data streams (SIMD,单指 令多数据流) —向量处理器.
Processor +cache
Processor +cache
Processor +cache
Memory
I/O Memory
I/O Memory
I/O
互联网络
Memory
I/O Memory
I/O Memory
I/O
Processor +cache
Processor +cache
Processor +cache