教材学习内容总结
存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构随机访问存储器(两类)
1.静态RAM
SRAM的特点:存储器单元具有双稳态特性,只要有电就会永远保持它的值,干扰消除时,电路就会恢复到稳定值
2.动态RAM
DRAM的特点:每一位的存储是对一个电容的充电,当电容的电压被扰乱之后,就永远不会恢复 DRAM存储不稳定的应对机制: ①存储器系统必须周期性地通过读出,或者重写来刷新存储器的每一位 ②使用纠错码
SRAM和DRAM的区别:
①只要有电,SRAM就会保持不变,而DRAM需要不断刷新 ②SRAM的存取比DRAM快 ③SRAM对光和电噪声等干扰不敏感 ④SRAM比DRAM需要使用更多的晶体管,所以更昂贵
传统的DRAM:
行地址i:RAS 列地址j:CAS
DRAM组织成二位阵列降低芯片上地址引脚的数量,但增加了访问时间
DRAM芯片包装在存储器模块中插入到主板的扩展槽上
存储器模块分类:
①168个引脚的双列直插存储器模块,以64位为块传送数据 ②72个引脚的单列直插存储器模块,以32位为块传送数据 磁盘存储
磁盘构造:
由盘片构成
表面:每个盘片有两个表面 主轴:盘片中央,可旋转 磁道:同心圆 扇区:每个磁道被划分为一组扇区 数据位:每个扇区包含相等数量的数据位,通常为512字节 间隙:存储用来标识扇区的格式化位 柱面:所有盘片表面上到主轴中心的距离相等的磁道的集合
计算公式:
磁盘容量=字节数/扇区x平均磁盘数/磁道x磁道数/表面x表面数/盘片x盘片数/磁盘
1GB=10^9字节
磁盘操作:
读写头:磁盘用读写头来读写存储在磁性表面的位
寻道:通过沿着半径轴前后移动的这个传动臂,驱动器可以将读写头定位在盘片上的任何磁道上在任何时刻,所有的读写头都位于同一个柱面上
读写头碰撞:读写头碰到了阻碍,读写头就会停下来
磁盘以扇区大小的块来读写数据:
寻道时间:
移动传送臂所需要的时间
旋转时间:
一旦读写头定位你到了期望的磁道,驱动器等待目标扇区的第一个位旋转到读写头下 Tmax rotation=1/RPM x 60secs/1min Tavg rotation=0.5Tmax rotation
传送时间:
一个扇区的传送时间依赖于旋转速度和每条磁道的扇区数目 Tavg transfer= 1/RPM x 1/(平均扇区数/磁道) x 60s/1min
访问时间=Tavg rotation+Tavg transfer+Tavg seek
逻辑磁盘块
磁盘控制器:磁盘中一个小的硬件、固件设备,维护着逻辑块号和实际物理磁盘扇区之间的映射关系
连接到I/O设备:
外围设备互连(PCI):连接到CPU和主存 I/O总线的分类: 通用串行总线(USB):包括键盘、鼠标、调制解调器、数码相机、游戏操纵杆、打印机、外部磁盘驱动器和固态硬盘等 图形卡(适配器):负责代表CPU在显示器上画像素 主机总线适配器:使用特别的主机总线接口定义的通信协议
固态硬盘(SSD):
一个SSD包由一个或多个闪存芯片和闪存翻译层组成 随机读和写的性能差别是由底层闪存基本属性决定的
读写很慢的原因:
①擦除块需要相对较长的时间 ②写操作试图修改一个包含已经有数据的页p,那么这个二块中的所有带有用数据的页都必须被拷贝到一个新(擦除过的)块,然后才能进行对页p的写
优点:随机访问时间比旋转磁盘块,能耗更低,更结实。 缺点:闪存翻译层中的平均磨损逻辑试图通过将擦除平均分布在所有的块上来最大化每个块的寿命
局部性
倾向于引用邻近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身,这种倾向性,被称为局部性原理。
时间局部性:被引用过一次的存储器位置很可能在不远的将来再被多次引用 空间局部性:一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置
评价一个程序中局部性的简单原则:
①重复引用同一个变量的程序有良好的时间局部性 ②对于具有步长为k的引用模式的程序,步长越小,空间局部性越好 ③对于取指令来说,循环有好的时间和空间局部性,循环体越小,循环迭代次数越多,局部性越好
存储器层次结构中的缓存
高速缓存:是一个小而快速地存储设备,它作为存储在更大、也更慢的设备中的数据对象的缓冲区域cash 缓存:使用高速缓存的过程cashing 块:第k+1层的存储器被划分成连续的对象片,每个块有一个唯一的地址或名字,使之区别于其他的块 传送单元:数据总是以块大小为传送单元
缓存命中:
当程序需要第k+1层的某个数据对象d时,它首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,那么就是我们说的缓存命中。
缓存不命中:
若第k层中没有缓存数据对象d,那么就是我们所说的缓存不命中
替换或驱逐:
覆盖一个现存的块的过程
牺牲块:
被驱逐的这个块
替换策略:
决定应该替换哪个块
缓存不命中的种类:
冷缓存(强制不命中\冷不命中):一个空的缓存,对于有效位为0的情况 放置策略:发生了不命中,第k层的缓存就必须执行某个放置策略,确定把它从第k+1层中取出来的块放在哪里 冲突不命中:限制性的放置策略会引起的一种不命中 工作集:程序是按照一系列阶段来运行的,每个阶段访问缓存块的某个相对稳定不变的集合 容量不命中:当工作集的大小超过缓存的大小时
缓存管理:某个东西要将缓存划分成块,在不同的层之间传送块,判定是命中还是不命中,并处理它们
高速缓存存储器
通用的高速缓存存储器结构:
每个存储器地址有m位,形成M=2^m个不同的地址 高速缓存组:S=2^s个高速缓存组的数组 高速缓存行:B=2^b字节的数据块组成 有效位:指明这个行是否包含有意义的信息 标记位:唯一地标识存储在这个高速缓存行中的块,t=m -(b+s)