CA-第十一讲 指令集并行

Molaters Lv5
[[计算机体系结构]]

内容回顾

流水线控制冲突

分支指令的行为特点

减少流水线分支损失的方法(冻结或排空、预测分支转移失败、预测分支转移成功、分支延迟槽)

流水线的实例 MIPS R4000

整形流水线

浮点流水线

流水线性能分析

向量处理机 Cray-I

性能指标、基本结构

链接技术

指令集并行

  1. 指令集并行的概念
  2. 指令的动态调度
  3. 控制相关的动态解决技术
  4. 多指令流水技术

基于预测的乱序执行

指令集并行的概念

循环展开调度的基本方法

相关性

指令之间不存在相关的时候,它们在流水线中式可以重叠起来执行的。这种指令序列中存在的潜在并行性称为指令集并行

怎么知道指令之间需要并行?软硬件如何支持指令级并行,怎么研究这些问题?

硬件技术或者软件技术都可以提高指令级并行性

性能评价

流水线处理器的实际CPI

image.png

软件和硬件的支持

几个基本概念

基本(程序)块:一段除了入口和出口之外的不包含其他分支的线性代码段

  • 程序平均每 6 ~ 7条指令就会有一个分支
  • 必须在多个基本块之间开发指令级的并行性

所以最重要的就是循环

循环级并行:开发循环体的不同迭代之间存在的并行性

开发循环级并行的基本技术方法:

  1. 指令调度
  2. 循环展开
  3. 换名

循环展开调度的基本方法

循环展开指的是展开循环体若干次,将循环级并行转换为 指令级并行的技术

这个过程:编译器静态完成 && 硬件动态完成

分支指令 $\iff$ 条件分支指令

编译器在完成这种指令调度的时候,受限于两个特性

整数流水线特性说明

载入延迟为一个节拍

由于数据的取操作的结果可以毫无停顿的通过相关通路机制传送到数据存部件,所以延迟为0.

分支指令,由整数流水线执行

分支条件检测搭调整到ID段

如果分支指令使用上一条指令的结果作为分支条件,就要延迟一个节拍

分支指令有一个节拍的延迟操

浮点运算一般为64位

  • 标题: CA-第十一讲 指令集并行
  • 作者: Molaters
  • 创建于 : 2023-11-24 11:30:49
  • 更新于 : 2023-10-12 17:04:39
  • 链接: https://molaters.github.io/2023/11/24/计算机体系结构/CA-第十一讲 指令集并行/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论