2024.06.06:计算机组成原理学习笔记
多模块存储器是一种空间并行技术,通过利用多个结构完全相同的存储模块或者说存储体,并行工作,来提高存储器的吞吐率。让这些存储模块可以并行工作的原理就在于编址。
8.1 连续编址方式
连续编址无法实现并行,只有交叉编址才可以
- 连续编址方式的编址思路:我对一个存储体进行编址,编址结束之后再对另外一个存储体进行编址
- 存储地址其实就是一串二进制数,高位是体号(确定哪个存储体),地位是体内地址/偏移量(确定存储体的存储单元)
存储的重要思想就是n个二进制位可以表示处2的n次方种含义
- 因为该图中有4个存储体,也就是4种含义,需要2个二进制位才能表示
- 体内地址/偏移量就是用来指示一个存储体内的存储单元的地址,所以它和存储单元数目是息息相关的
连续编址方式下,CPU总是按照顺序访问存储模块,即存储模块不能被并行访问,因此不能提高存储器的吞吐率(除非同时进行DMA)
8.2 交叉编址方式(难点)
8.2.1 轮流启动
- 对于交叉编址的多模块主存储器,如果每一个存储模块的存储字正好等于系统总线的数据线数,则采用轮流启动。按每隔(1/m)个存储周期轮流启动各模块进行读写(m为存储模块个数)
如果每一个存储模块的存储字正好等于系统总线的数据线数,则采用轮流启动,按照每1/m个存储周期轮流启动各模块进行读写
这里要多看多悟,这里我重复了2遍老师的网课,我才明白怎么回事
注意
- 只有一个体的存储周期完全结束,才叫做“读出/写入一个数据”。不可以认为一个存储体的存储周期刚开始1/m就结束了读写,剩下时间用于恢复
- 如果题干提及了轮流启动方式,也就意味着进入了流水线稳定模式
- 轮流启动⽅式下,在⼀个T内,存储器能向CPU提供32位信息
- 轮流启动⽅式下,在T/4内,每个存储模块能向CPU提供8位信息
对于交叉编址的多模块主存储器,若每隔1/m个存储周期启动一个体,则每隔1/m个存储周期就可以读出或写入一个数据,实现并行,存取速度提高m倍
8.2.2 同时启动
- 对于交叉编址的多模块主存储器,如果所有存储模块一次并行读写的总位数等于系统总线的数据总线数,则采用同时启动
8.2.3 总结
同时启动
- 总线宽度:每个存储体的存储字长*模块数m
- 存储周期:总线的存储周期
轮流启动
- 总线宽度:每个存储体的存储字长
- 存储周期:总线传输周期r*模块数m
8.3 总线传输周期r
完成一次数据传输所需的时间,包括地址传递、数据读写等所需的全部时间。
- 如果不采用交叉编址,仅对一个存储体的一个单元进行读写,根据总线传输周期的定义,此时T==r
- 交叉编址
-
- 由于轮流启动实现了存储体并行,因此进入流水线稳定状态后,完成一次数据传输所需的时间仅要T/m,所以r==T/m,时长被优化
-
- 同时启动类似于位扩展,仅仅将一次可访问的字长增加,但未实现并行,因此完成一次数据传输仍然需要等待一个存储周期,故T==r