DRAM 和 SRAM
随机访问器存储器(Random-Access Memory ,RAM) 分为两类 : 静态和动态.
这两个的区别可以见下面这样图:
持续 指的是动态DRAM的数据需要硬件是不是充电刷新,即需要充电刷新才能维持0或1的状态,而静态RAM只要有供电就会保持状态.
敏感 指的是SRAM一般不容易收到外界影响,一直会保持状态0或者1.而DRAM 当电容的电压受到影响就会影响到数据.
从主存中读取和写入数据
看下面的例图,结合文字来理解.
下面以这个例子来说明读取的过程, 首先传过来行地址,然后 DRAM 每个chip中获取某行的数据放到了SRAM中,这个获取到的数据就是行缓存,当传过来列地址时,从16个chip 里面读取8个bit ,最后形成了128位的数据传给总线.需要注意的的每个chip 后里有8小片,所以才形成像下图一样的长方体.
- 行缓冲数据的地址(指的是所有的行缓冲)都是连续的,当读取连续区域的时候就可以从行缓冲中读取,速度快,注意这里的连续,指的是图中蓝色虚线内的,而芯片内的地址是不连续的,为什么呢?不连续又有什么好处呢?看下图
图一
图二
- 交叉编址 : 可以看到每个chip的地址不是连续的, 例如chip0 第0列 是 i , 而 i+1就到了chip1 中.形成了交叉选址.
磁盘
磁盘结构
直接上图,需要知道几个名词是指哪里的硬件(磁道,扇区,柱面).我们知道每个扇面放的都是512byte的数据,里面的区域面积小,外面的面积大,但是数据都是同样大小的,所以以前的磁盘里面区域的数据密度就大,外面就小,现在的磁盘则做成密度一样了.
图一
下面是一个扇区表示的数据内容,共600个字节(例子中的磁盘,实际可能大小有偏颇,但是结构是一样的),我们所说的格式化(format)实际就是重新排列一下 ID域.
图二
下图是读取时间,实际上影响比较大的就是磁盘旋转速度.所以在买磁盘时看可以看看这个参数.
图三
固态硬盘
相比于磁盘的硬盘, SSD 价格贵,有擦洗次数(即超过擦洗次数就不能使用了),但是速度快.
读取数据动作过程
这个过程可以用下面几张图概括
可以看到当磁盘读取完后使用中断通知CPU , 原因是磁盘在读取的同时,CPU可以执行其他事务.
局部性
计算机程序的局部性原理主要有两种表现形式: 空间局部性 和 时间局部性.很好理解,时间局部性,在连续的时间内,同一快存储地址会被访问到.
参考内容:
1.https://zhuanlan.zhihu.com/p/26255460
2.MOOC 袁春风老师的课