一、存储机理
RAM的实现逻辑有种,分别是触发器和电容。
SRAM(Static) | DRAM(Dynamic) | |
存储方式 | 触发器 | 电容 |
破坏性读出 | 否(触发器具有稳态,能够锁住0或1两种状态) | 是(电容需要放电才能获取当前状态) |
需要刷新 | 否 | 是(电容的电会在2ms后自动放出,每次刷新一行存储单元) |
送行列地址 | 同时送 | 分两次(二维矩阵排列方式,这样使地址线得以复用变少) |
运行速度 | 快(集成度低) | 慢(集成度高) |
发热量 | 大 | 小 |
存储成本 | 高 | 低 |
由表中数据可知,电容方式构造的存储器结构简单但是速度并不快,所以常被用作主存;而由触发器构造的存储器访问速度快,成本高,所以常被用做cache。
二、读取写入
1.DRAM的刷新
动态随即地址存储器由于是电容构造而成所以需要进行随时的充电,充电周期以2ms为单位(因为在2ms后就算不充电也会将电放出)。
这就导致有三种刷新方式:集中刷新、分散刷新、异步刷新。
1)集中刷新
集中刷新指在2ms的最后,拿出所需时间进行刷新。缺点是:这段时间内外界是不能访问内存的,称为“死区”或者“死时间”。
2)分散刷新
分散刷新指在一个读写周期内,每次读写完毕后,都对于DRAM进行刷新。这样做能够消除“死区”。缺点是:并不高效。
3)异步刷新
假设现有一块8*8的DRAM存储器。
异步刷新指在2ms的时间内,把这8行的刷新压力分散开,2ms/8 = 0.25ms,即0.25ms刷新一行,即可在要求时间内完成存储器的刷新工作。
2.读取/写入数据
1.首先由读写控制线发挥使能,使整个RAM处于读取状态(假设本RAM只有一片存储芯片)
2.由地址线传入地址,根据译码器选择本次从哪个存储单元读取数据
3.找到后由读写电路进行输出读取到的数据完成一次读取
由以上过程可知一次读取过程首先是传进地址后,由片选线进行判断这个地址是不是在自己所指向的存储芯片中,若在则调动存储体进行数据的读取,然后进行数据的读取,由数据线进行传输。
所以在这个过程中会有延迟:传进地址时,由于有多根地址线进行传输,传输的数据也不同,造成了传输速度的不同,所以需要等待一段时间待地址稳定后,片选线发挥作用读入正确的地址,在读写电路进行数据读取时,也和第一阶段读取地址一样,存在数据的不稳定,所以仍然需要等待一段时间待数据稳定后再进行数据的读取,此时数据已经开始读取,数据在传输的路上,所以可以关闭地址线向片选线的输送,但是读写电路仍需等待,因为数据不稳定,不能够确保数据完全读取出来,这段读写电路等待的时间称为恢复时间,等到读取出的数据稳定后,读写电路也关闭,才能进行下一次的存取工作,这时,完成一次数据的读取工作。
从传进地址开始一直到恢复时间之前的时间段叫做存取时间,存取时间和回复时间共同构成了存取周期。
写入数据的过程同读取过程类似,也有存取时间和恢复时间。
三、总结
存储速度:用数据传输率表示,(也叫主存带宽(Bm))单位为字/秒,字节/秒。
数据传输率 = 数据宽度 / 存取周期
存储容量 = 存储字数 * 字长
单位成本 = 总成本 / 总容量