(3)IO传输引起 Cache不一致性 当某一或多个处理机的 Cache有主存某共享区域的副本时,行Io 操作时将输入数据写入到共享主存的这一区域中,将引起 Cache与主存共 享区域的不一致性;或者?改写了 Cache,而采取的是替换时写回策略 这时另一β执行输出共享存储器区域的操作,输出的则是原来的内容。 2.保持 Cache-致性的三种措施 目前,解决多处理机中 Cache-致性的措施有多种,一是采用软件 的办法,二是监听一致性协议法,另一种是目录表法去 (1)软件办法 主要是借助于编译程序进行分析,使共享信息只存放在共享主存中 而不进入多处理机的局部 Cache中。这样,进入 Cache中的信息不为其它处 理机所共享。但是影响了 Cache的效率
(3)I/O传输引起Cache不一致性 当某一或多个处理机的Cache有主存某共享区域的副本时,Pi执行I/O 操作时将输入数据写入到共享主存的这一区域中,将引起Cache与主存共 享区域的不一致性;或者Pi改写了Cache,而采取的是替换时写回策略, 这时另一Pi+1执行输出共享存储器区域的操作,输出的则是原来的内容。 2. 保持Cache一致性的三种措施 目前,解决多处理机中Cache一致性的措施有多种,一是采用软件 的办法,二是监听一致性协议法,另一种是目录表法 (1)软件办法 主要是借助于编译程序进行分析,使共享信息只存放在共享主存中, 而不进入多处理机的局部Cache中。这样,进入Cache中的信息不为其它处 理机所共享。但是影响了Cache的效率
(2)监听( Snoopy)-致性协议法 是在处理机- Cache上设置一个部件,监听总线操作。当监听到某R 有 Cache操作或使主存共享区域改变时,按约定协议处理。常用协议有两 种 ①写无效协议:当某一A改写其 Cache中的数据后,使其它处理机中 Cache的相应副本无效。 ②写更新协议:当某一R改写其 Cache中的数据后,将改写结果广播 到其余处理机的 Cache中,做相应的拷贝。 (3)目录表法 也称为目录表协议,是在某处理机修改 Cache和共享主存后,仅把 修改信息发送到与该 Cache有相同副本的处理机,故此需要一个目录表 记录所有 Cache块和共享数据块的位置与状态,其内容主要是一些指针 表明块拷贝的地址和是否进行了写入的状态。根据目录表的构成方式, 可分为集中式和分布式两种。集中式常用于集中共享主存的小型多处理 机的 Cache致性控制。分布式是将目录分布到各个处理机上,每个存储 模块有一个单独的目录存放所有 Cache的状态信息
(2)监听(Snoopy)一致性协议法 是在处理机-Cache上设置一个部件,监听总线操作。当监听到某Pi 有Cache操作或使主存共享区域改变时,按约定协议处理。常用协议有两 种: ① 写无效协议:当某一Pi改写其Cache中的数据后,使其它处理机中 Cache的相应副本无效。 ② 写更新协议:当某一Pi改写其Cache中的数据后,将改写结果广播 到其余处理机的Cache中,做相应的拷贝。 (3)目录表法 也称为目录表协议,是在某处理机Pi修改Cache和共享主存后,仅把 修改信息发送到与该Cache有相同副本的处理机,故此需要一个目录表, 记录所有Cache块和共享数据块的位置与状态,其内容主要是一些指针, 表明块拷贝的地址和是否进行了写入的状态。根据目录表的构成方式, 可分为集中式和分布式两种。集中式常用于集中共享主存的小型多处理 机的Cache一致性控制。分布式是将目录分布到各个处理机上,每个存储 模块有一个单独的目录存放所有Cache的状态信息
82并行多处理机技术 8.2.1程序并行性分析 8.2.2并行程序设计语言 操作系统 8.24.多处理机调度策略
8.2 并行多处理机技术 8.2.1 程序并行性分析 8.2.2 并行程序设计语言 8.2.3 多处理机操作系统 8.2.4. 多处理机调度策略
82.1程序并行性分析 多处理机的并行性主要表现在程序级或任务级。因此,能否把 顺序程序转换成语义等价且可并行运行的程序,是程序并行性分析 的主要任务。这里,主要涉及程序中的数据相关和并行检测技术。 1.程序中数据相关性分析 虽然在多处理机上并行运行的程序段是异步执行的,但是由 于它们是由某一顺序程序转换而来的,因此在程序段之间也可能存 在象标量流水线中所说的相关性。这里,主要是数据相关。下面仅 以赋值语句表示程序段尸,来说明三种常见的数据相关
8.2.1 程序并行性分析 多处理机的并行性主要表现在程序级或任务级。因此,能否把 顺序程序转换成语义等价且可并行运行的程序,是程序并行性分析 的主要任务。这里,主要涉及程序中的数据相关和并行检测技术。 1. 程序中数据相关性分析 虽然在多处理机上并行运行的程序段是异步执行的,但是由 于它们是由某一顺序程序转换而来的,因此在程序段之间也可能存 在象标量流水线中所说的相关性。这里,主要是数据相关。下面仅 以赋值语句表示程序段P,来说明三种常见的数据相关
(1)数据相关 设程序段烈和P如下: P1: A=B+C P2: DA C 由于程序段P1中赋值号左边的变量A出现在P2中赋值号右边的 变量集中,因此程序段P2必须在P1中求出A值以后才能执行。于是 称程序段P2中的数据相关于P1。 (2)数据反相关 设程序段P1和P2如下 P1:A=B米C P2: C=D+E 由于程序段P2中赋值号左边的变量c出现在P1中赋值号右边的 变量集中,因此程序段P1必须读出变量c的值以后P2才能执行。于是 称程序段P1中的数据反相关于P2
(1)数据相关 设程序段P1和P2如下: P1:A=B+C P2:D=A*C 由于程序段P1中赋值号左边的变量A出现在P2中赋值号右边的 变量集中,因此程序段P2必须在P1中求出A的值以后才能执行。于是 称程序段P2中的数据相关于P1。 (2)数据反相关 设程序段P1和P2如下: P1:A=B*C P2:C=D+E 由于程序段P2中赋值号左边的变量C出现在P1中赋值号右边的 变量集中,因此程序段P1必须读出变量C的值以后P2才能执行。于是 称程序段P1中的数据反相关于P2