改变存储器的结构提高访存:双口RAM和多模块存储器
原因
根据摩尔定律,主存和CPU之间的速度差距会越来越大,因此如何提升主存的工作速度?就成了我们这篇文章的主题。使用双口RAM和多模块存储器是通过设计特殊的存储器管理结构达到提升目的
存取周期
弄清楚如何优化存储器之前,我们需要先学习怎么算存储器的存取周期。提升速度就是在缩短存储周期
存取周期 = 存取时间 + 恢复时间
描述:
- 主存储器都是使用DRAM,DRAM都是使用的电容作为存储单元,电容有电荷表示1,无电荷表示0
- 每次去读取主存储器中的数据时,当电容中有电荷,对应的地址线打开,电荷放电使得对应的数据线为1 = 存储周期的存储时间就是完成这个事情
- 此刻电容中的电荷已经被释放,因此需要进行充电,否则下次读取数据将会是错误的 = 存取周期的恢复时间用来在存取操作结束后来更改状态
由上述可知,除了存取数据本身的时间之外,每存取完还需要一段恢复时间。(这非常重要,芯片的工作可不是无缝衔接的),因此我们的一个存取周期是存取时间+恢复时间。
想提升速度的话呢,除了加速他的工作,我们还可以好好利用芯片这段恢复时间进行并行操作或者流水线方案,当某个芯片在休息,可以让其他单元干活
刷新 VS 恢复
- 刷新时间:发生在存取周期间,因为电容的问题是会慢慢放电(fading),,因此需要隔一段时间来进行恢复。
- 恢复时间:发生在存取周期内,是当电容有电荷并读出时,需要通过充电来恢复。
双口RAM
- 概念:双口RAM允许两个独立的CPU同时异步地访问存储单元,通过空间并行
多模块存储器之高位交叉
- 概念:当程序按体内地址顺序存放,即一个体存满之后,再存入下一个体时,这种方式称为顺序存储
- 适用于:在多CPU系统中,不同的CPU访问不同的存储块,达到并行工作
多模块存储器之低位交叉
- 概念:对应于高位交叉编址,低位交叉编址指的是将程序连续存放在相邻体中,又称交叉存储
- 适用于:在单处理器系统,CPU在一个访问周期下一次性访问多个不同的存储体
本博客仅仅做整体描述,更多信息请见: