并行存储器无冲突访问:错位存放策略

需积分: 46 2 下载量 31 浏览量 更新于2024-08-21 收藏 300KB PPT 举报
"错位存放-并行存储器的无冲突访问" 在并行计算和高性能计算领域,存储器的高效访问是至关重要的。错位存放是一种策略,用于解决并行存储器系统中的访问冲突问题,特别是在阵列处理机中。这种技术允许多个处理器或者计算单元同时访问存储器,而不会因为地址冲突导致性能下降。 首先,让我们理解描述中的“错位存放”概念。在n*n的二维数组A中,元素Aab的存储地址由两个部分组成:体号地址j和体内地址i。体号地址j计算公式为j=(aδ+bβ+c) mod m,其中δ和β是常数,c是可能的偏移量,而m是一个特定的质数,通常设置为2的2p+1次幂(p是正整数)。体内地址i直接等于行索引a。这样的地址分配方式使得元素能够在不同的存储体中分布,从而避免同一时刻多个处理器试图访问同一存储体的情况,进而减少冲突。 在共享主存的阵列处理机中,存储器带宽是一个关键的瓶颈。当多个处理器同时访问存储器时,如果访问模式不同,如按行、列或对角线存取,就可能导致访问冲突,因为它们可能请求相同存储位置。例如,在一维数组中,连续访问4个元素通常是无冲突的,但如果按2的变址访问,冲突会降低存取效率。因此,为了解决这个问题,可以采用多体交叉存储器来增加存储器带宽,或者对向量进行分组操作,使得存储器带宽能够匹配向量操作的带宽需求。 对于二维数组,错位存放可以确保在同一时刻访问一行、主对角线或次对角线上的元素时没有冲突。但访问某一列会导致冲突,因为所有列元素会映射到相同的存储体上,降低了并行性。通过调整δ和β的值,可以实现行和列的错开,从而实现无冲突访问。 例如,当m和n都为4,δ和β都为1时,二维数组的元素将按照特定的模式分布在存储体中,每个元素的位置都是经过计算后的结果。这保证了即使在同一行或列上的元素,也可以通过改变步长(δ和β的值)来避免冲突。类似地,当m=5,n=4,δ=2,β=1时,通过调整行列的错开距离,可以进一步优化无冲突访问。 错位存放是一种有效的并行存储器访问策略,它通过精心设计的地址映射,确保多个并行操作可以在同一时间无冲突地访问存储器。这种方法对于提高阵列处理机和其他并行系统的性能至关重要,因为它可以最大化利用存储器带宽,减少等待时间,并提高整体计算效率。