计算机体系结构 第八章 多处理机

8 多处理机

8.1 多处理机结构

8.1.1 多处理机分类

  • 多处理机系统由多个独立的处理机组成,每个处理机都能够独立执行自己的程序

  • 连接程度:紧耦合、松散耦合

  • 是否共享主存:共享存储器、分布存储器多处理机

  • 按处理机类型:同构型、异构型 多处理机

  • 按处理机的个数:大规模并行处理机MPP 和 堆成多处理机 SMP

  • 按照PE和IIOP之间的连接方式分: 对称型:每个IOP能连接到所有的PE上、 非对称型:每个IOP只与一个PE连接、
    冗余对成型:一个PE和多个IOP连接

  • 按照存储器的访问方式:均匀存储器 UMA模型、非均匀存储器 NUMA模型、 只有cache COMA模型

  • 多向量处理机、机群系统

基本概念
  • 属于多指令流、多数据流系统
    在这里插入图片描述

8.1.2 多处理机和并行处理机的差别

在这里插入图片描述

8.1.3 多处理机存在的技术问题

  • 硬件结构互联
  • 最大限度并行
  • 分割任务大小
  • 并行任务同步
  • 资源调度、防止死锁
  • 系统故障,如何重新组织正常工作

多处理机硬件结构

1 紧耦合多处理机
  • 通过共享主存实现处理机间通讯,通信速率首先有主存频率
  • 为减少主存冲突,采用模M多体交叉
  • 各个处理机为同构型,同一类型、功能相同的多处理机
    在这里插入图片描述
  • I/O-处理机互连网络虽然连接灵活,但价格昂贵,所以多数多处理机采用非对称互连。
    非对称会连:每个IOP之和一个PE连接,容错性小
  • 处理机共享主存,通过高速总线或告诉开关连接
  • 多个输入输出处理机IOP也连接在互连网络上,IO设备与CPU共享主存
  • 处理机数量不能太多,几个到几十个
  • 要求较高通信带宽
2 松散耦合处理机
  • 每台处理及有较大的局部存储器,减少冲突访问
  • 处理机通过信道互连 或者 信息传递系统 实现通信
  • 松散耦合,粗粒度执行并行计算
  • 两种构型: 松耦合非层次型多处理机、层次型总线形式多处理机

在这里插入图片描述

在这里插入图片描述

  • 主机间连接频带较低
  • 通过并口、串口把多台计算机连接起来
  • 通过以太网连接多台计算机
    在这里插入图片描述
机间互联形式

总线形式

  • 总线仲裁算法:
  • 静态优先级
  • 固定时间片
  • 动态优先级
  • 先来先服务

环形互联;

  • 令牌 token
    在这里插入图片描述
    交叉开关形式;
  • 交叉开关阵列复杂
    在这里插入图片描述
    多端口存储形式
    在这里插入图片描述蠕虫穿洞寻径网络
    机间采用小容量缓冲存储器,实现消息分组寻径存储转发之用

开关枢纽结构形式
把互连结构的开关设置在各个处理机或其接口内部,组成分布式结构

存储器组织

并行存储器,高位交叉、低位交叉;
低位交叉:

  • 按物理地址轮流分布在各个存储模块中,同一个存储体内不连续
  • 同一个存储体内,步距为m
  • 向量、流水或阵列处理机中采用低位交叉

高位交叉:

  • 同一存储体内连续分布
  • 多处理机采用高位交叉

8.2 多处理机 cache 一致性

采用局部cache 引起cache和共享存储器之间一致性的问题
在这里插入图片描述

8.2.1 多处理机cache一致性问题的产生

1 写共享数据引起的不一致性
2 进程迁移引起的数据不一致
3 I/O造成的数据不一致

8.2.2 监听协议

解决cache不一致性问题的协议;

  • 监听协议:总线互联
    在这里插入图片描述

  • 目录协议:用于无法进行监听时

1 两种监听协议

写无效策略: 本地cache修改时,使远程数据块都无效
写更新策略: 本地cache修改时,将数据块广播给其他cache

  • cache采用写通过,在使用无效、更新策略时,还要同时修改共享存储器中的内容。

  • 写更新,总线负担重,大多数处理机系统用写无效

在这里插入图片描述

2 采用写通过方式的cache
  • 数据块有两种状态: 有效、无效
    在这里插入图片描述
3 采用写回方式的cache

在这里插入图片描述

  • 只读状态: 表示整个系统中,有多个数据块拷贝是正确的(例如: 一个在cache种,另一个在存储器中)
  • 读写状态: 表示数据块至少被修改过一次,存储器中相应数据块还没有修改,在整个系统中只有一个数据块拷贝是正确的
4 写一次协议
  • 第一次写cache用写通过,以后用写回

四种状态:

  • 有效: 从存储器中读入并与存储器拷贝一直的cache数据块
  • 无效:在cache中找不到或数据块已作废
  • 保留:数据从存储器读入cache后只被写过一次,cache和存储器中都正确
  • 重写:cache中数据块被写过多次,且唯一正确
  • 主要缺点:当主存储器的内容无效时,读缺失引起的总线读操作必须禁止访问主存储器,而大多数总线不支持这种操作
  • 主要优点: 减少了大量无效访问,提高总线效率

在这里插入图片描述
上图有bug,无效应该是 WR RR的自环

CPU读cache的两种可能性
写命中、写不命中

在这里插入图片描述

8.2.3 基于目录的协议

把使得其他cache块无效的一致性命令只发给存储响应数据块的cache

1 cahce目录结构
  • Cache目录中存放大量指针,指明拷贝块的地址,每个目录项有一个重写位,指明,是否允许一个cahce块写入数据
  • cache目录的存放形式,有集中式和分布式两种

目录协议分成三类

  • 全映射目录: 存放全局存储器每个块的有关数据
  • 有限目录:每个目录的指针数固定
  • 链式目录:把目录分布到cahce块中

目录使用规则

  • 当一个CPU对cache进行写操作时,将cache目录中,所有存有相同拷贝的块置无效,并置重写位
  • 在CPU对Cache进行读操作时,如果读命中,则直接读Cache即可
  • 如果重写位为“0”,则从主存或其他Cache中读入该块,并修改目录
2 全映射目录

在这里插入图片描述

在这里插入图片描述

  • 优点:全目录协议效率高
  • 缺点: 开销与处理机数目的平方成正比,不具有扩展性
3 有限目录
  • 处理机数目为N时,限制目录大小 O(N log2N)

在这里插入图片描述

  • 因为目录有限,cache1 cache2 都有X的拷贝时,P3访问X,需要驱逐一个
4 链式目录

在这里插入图片描述

在这里插入图片描述

  • 当cache中的数据块需要替换的时候,把该cache从目录链中删除,解决方法:
    在这里插入图片描述
  • 优点:不限制共享数据块的拷贝数目,保持可扩展性
  • 缺点:复杂度高
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值