【系统结构】并行存储器、多体交叉访问存储器和无冲突访问存储器

并行存储器和无冲突访问存储器的工作原理

主存两大指标:延迟(cache解决)和带宽 并行以及无冲突解决的是带宽低的问题

并行存储器

img

= 单体多字存储器 同时拿出n个字

缺点:访存效率不高 容易发生冲突

  • 取指令冲突:如果一次读取的m个指令字中有分支指令,而且分支成功,那么该分支指令之后的指令是无用的
  • 一次取出的m个数据不一定都是有用的。另一方面,当前执行指令所需要的多个操作数也不一定正好都存放在同一个长存储字中
  • 写数据冲突:写入有可能变得复杂
  • 读写冲突:当要读出的数据字和要写入的数据字处于同一个长存储字内时读和写的操作就无法在同一个存储周期内完成

【.】多体交叉访问存储器

img

  • 高位交叉访问(竖式)

用于扩容

高位交叉编址指的是对存储单元按体内地址顺序存放,(故又称顺序存储)

img

作用于多用户多任务或者指令和数据分开,每一列都互不相干,扩容很方便

  • 低位交叉访问(横式)

和并行存储器目的一样,都是为了提高速度(带宽)

流水线式,在一个时间段内拿出一整串,不容易发生冲突

低位交叉编址:对存储单元矩阵按行优先进行编址

img

无访问冲突存储器

解决冲突的本质是让访问时可以并发的读取不同存储体,而不是只读取一个

一维数组

img

向量子集(一维数组)的元素逐次按2的整数次幂相间访问

  • 先间隔2^0=1访问
  • 再间隔2^1=2访问
  • 间隔2^2=4访问

存储体个数为质数,保证不冲突

二维数组

要求:nxn二维数组要求按行、列、对角线、反对角线访问,且在不同变址位移量都能实现无冲突访问

img

列冲突

img

对角线冲突

解决方案1

通用,但是会浪费一个存储体的资源

在上述第2个的基础上,解决列冲突即可,解决方案如下

  • 存储体个数m>=n,且取质数
  • 同一列相邻元素在存储体中错开d1个存储体
  • 同一行相邻元素在存储体中错开d2个存储体
  • m=22p+1, d1=2p,d2=1

img

计算公式:

img

解决方案2

有前提,要满足存在 n = 22p

优先选这个,节省存储体资源

img

img

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jiong-952

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值