软件设计师 - 层次化存储
层次化存储体系
辅助存储器,外存:硬盘,光盘,U盘等,其容量能达到TB级别
内存:随机存储器RAM,只读存储器ROM,其容量能达到GB级别
Cache:按内容存取,其容量能达到MB级别
CPU中寄存器:最快,容量小,成本高,其容量能达到B级别
虚拟存储体系:内存+外存
三级存储体系:Cache+内存+外存
局部性原理
是层次化存储结构的支撑
时间局部性:刚被访问的内容,立即被访问,循环的体现
空间局部性:刚被访问的内容,临近的空间很快被访问,顺序的体现,数组
存储器分类
按存储器位置分类:内存,外存
按存取方式分类:
按内容存取:
相联存储器,Cache
按地址存取:
随机存取存储器:内容
顺序存取存储器:磁带
直接存取存储器:磁盘
按工作方式分类:
随机存取存储器RAM,内存DRAM,掉电内容丢失,定时刷新
只读存储器ROM,BIOS
其他概念
SRAM:静态随机存取存储器,不需要定时刷新
EEPROM:电可擦可编程只读存储器
Cache
命中率
会随着容量的扩大而提高,但并非线性的,命中率主要由映射方式决定
平均访问时间
命中概率*Cache访问时间+非命中概率*主存访问时间(默认包含了访问Cache不命中的时间)
主存与Cache之间的地址映射有硬件直接完成,映射方式如下:
- 直接相联映像:硬件电路简单,冲突率很高,cache内分块,主存中分区,区内分块,cache内的块只与主存中块号相同的块相联。
- 全相联映像:冲突率低,cache内分块,主存中分块,cache内的块可以和主存中任意块相联。
- 组相联映像:前两者折中,cache内分组,组内分页,主存中分区,区内分组,组内分页,cache内的页只与主存中与其组号相同的组内任意页相连,组间使用直接相联,组内使用全相联。
替换算法
- LRU(Least Recently Used)
- LFU(Least Frequently Used)
- FIFO(First-In, First-Out)
- Random Replacement
- MRU(Most Recently Used)
- ARC(Adaptive Replacement Cache)
- 2Q
- Clock Algorithm
主存编址计算
存储单元:一般是8bit
每个存储单元都有一个地址
存储单元个数:最大地址-最小地址+1
编址内容:
按字编址:这个和系统位数有关
按字节编址:8bit一个存储单元
总容量:存储单元个数*编址内容
总片数:总容量/每片容量