信息通过引脚流入流出芯片,每个引脚携带一个1位的信号。
这个电路可以一次传入或传出w位。
视频-VRAM:用在图形系统的帧缓存区中,思想类似FPM DRAM,区别:
1.VRAM的输出是通过依次对内部缓冲区的整个内容进行移位得到的
2.VRAM允许对存储器并行的读和写。
4.非易失性存储器——ROM
EEPROM,电子可擦除PROM,能够被编程的次数的数量级在10的五次方。
(2)闪存FLASH
基于EEPROM,为大量的电子设备提供快速而持久的非易失性存储。
存在于:数码相机、手机、音乐播放器、PDA、笔记本、台式机、服务器计算机系统
存储在ROM设备中的程序通常被称为固件,当一个计算机系统通电以后,他会运行存储在ROM中的固件。
总线分类:
磁盘以扇区大小的块来读写数据。
访问时间的分类:
移动传动臂所用的时间,依赖于读/写头以前的位置和传动臂在盘面上移动的速度。
驱动器等待目标扇区的第一个位旋转到读/写头下,依赖于盘面位置和旋转速度。
最大旋转延迟=1/RPM X 60secs/1min (s)
平均旋转时间是最大值的一半。
主要时间是寻道时间和旋转延迟。
固态硬盘是一种基于闪存的存储技术【区别于旋转磁盘:固态磁盘没有移动的部分。
一个SSD包由一个或多个闪存芯片和闪存翻译层组成:
闪存芯片——对应旋转磁盘中机械驱动器
闪存翻译层(硬件/固件设备)——对应磁盘控制器
速度相当,顺序读比顺序写稍微快一点
写比读慢一个数量级
原因:底层闪存基本属性决定。
一个闪存由B个块的序列组成,每个块由P页组成。通常页的大小是512~4kb,块是由32~128页组成的,块的大小为16kb~512kb。
数据是以页为单位读写的。
局部性原理:
一个编写良好的计算机程序,常常倾向于引用临近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。
分类:
量化评价一个程序中局部性的简单原则:
每层存储设备都是下一层的“缓存”
高速缓存:是一个小而快速的存储设备,它作为存储在更大、更慢的设备中的数据对象的缓冲区域。
缓存:使用高速缓存的过程称为缓存。。
当程序需要第k+1层的某个数据对象d时,首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,就称为缓存命中。
该程序直接从第k层读取d,比从第k+1层中读取d更快。
即第k层中没有缓存数据对象d。
这时第k层缓存会从第k+1层缓存中取出包含d的那个块。如果第k层缓存已满,就可能会覆盖现存的一个块
覆盖——替换/驱逐
替换策略:
高速缓存是一个高速缓存组的数组,它的结构可以用元组(S,E,B,m)来描述:
S:这个数组中有S=2^s个高速缓存组
E:每个组包含E个高速缓存行 B:每个行是由一个B=2^b字节的数据块组成的 m:每个存储器地址有m位,形成M=2^m个不同的地址
除此之外还有标记位和有效位:
有效位:每个行有一个有效位,指明这个行是否包含有意义的信息
标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块 组索引位:s 块偏移位:b
高速缓存的结构将m个地址划分成了t个标记位,s个组索引位和b个块偏移位。
指所有块的大小的和,不包括标记位和有效位,所以:
C=S*E*B
高速缓存确定一个请求是否命中,然后取出被请求的字的过程,分为三步:
1.组选择
2.行匹配
3.字抽取
高速缓存从w的地址中间抽取出s个组索引位
判断缓存命中有两个充分必要条件:
同样的一个类比:块-关于字节的数组,字节偏移是到这个数组的一个索引。
E路组相联高速缓存:1<E<C/B
形式是(key, value),用key作为标记和有效位去匹配,匹配上了之后返回value。
重要思想:组中的任意一行都可以包含任何映射到这个组的存储器块,所以告诉缓存必须搜索组中的每一行。
判断匹配的标准依旧是两个充分必要条件:
1.有效
2.标记匹配
有空行替换空行,没有空行,应用替换策略:
只有一个组,默认组0,没有索引位,地址只被划分成了一个标记和一个块偏移。
同组相联。
只适合做小的高速缓存。
缺点:每次写都会引起总线流量。
加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。
避开高速缓存,直接把这个字写在低一层中。
高速缓存既保存数据,也保存指令。
1.《深入理解计算机系统》