存储系统
概念
上面的梯形表示:上面是速度快,容量小,价格高;下面是慢大低
cpu的寄存器一般是位为单位,如32位
cache:m为单位,如3m
主存储器(内存):G
联机硬盘存储器:g或t,外盘
脱机光盘、磁盘存储器,外盘
-
计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题
-
两级存储:Cache-主存(cache缓冲和内存)、主存-辅存(虚拟存储体系)
-
局部性原理:总的来说,在CPU运行时,所访问的数据会超向于一个较小的局部空间地址内,包括下面两个方面:
时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。
空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数地址很可能是相近的,即相邻的空间地址会被连续访问。
cache
-
高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本贝,对于程序员来说是透明的。
-
Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。
-
地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:
考点:由硬件自动完成映射,不需要程序员自己去设定
直接映像
将cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。 (如图所示)
考点:
优点:地址变化简单、访问速度快
缺点:块冲突率最高、cache空间得不到充分利用
主存地址构成:
主存区号 区内块号 块内地址 注:这里每个区号都占一个编址地址,也就是说,主存总块数就是主存占的多少位的位数
Cache的块数(区内块号位数)=高速缓存容量 / 每一块的大小
主存区号个数(主存占多少位):主存容量 / 高速缓存容量
块内地址占位数:块的大小转换成2的n次方
主存地址位数=主存区号+主存块号+块内地址(即上述三项相加)
如
全相联映像
同样都等分成块并编号。主存中任意一块都与cache中任意一块对应。因此可以随意调入Cache任意位置(不用担心类似哈希冲突那样,他会自动跑去空的位置),但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。
考点:
优点:灵活,块冲突率最低,只有在cache中的快全部装满后才会出现冲突,cache利用率高
缺点:无法从主存块号中直接获得所对应的cache的块号,变换比较复杂,地址变换速度慢,成本高
主存地址构成:
主存区号 块内地址
组组相连映像
前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换。
考点:
- 组组相连映像冲突概率位于直接映像和全相联映像中
- 主存地址位数=区号+组号+主存块号+块内地址
- cache地址位数(块内地址位数)=组号+组内块号+块内地址
一组多少块是没用的信息。
主存地址的位数=块的大小*主存的块数量 (结果取2的n次方)
主存区号的位数=主存块数量/cache块数量
cache的性能分析
设Hc为cache的命中率,tc为cache的存取时间,tm为主存的访问时间,则cache存储器的等效加权平均访问时间ta为:
ta=Hctc+(1-Hc)tm
也就是:等效加权平均访问时间=cache命中率*cache存取时间+cache未命中率*访问主存时间
存储单位
数据的最小存储单位是bit(比特/位),一个b为一个二进制位(做存储空间的题时一定要转换成二进制先),一个字节(B)为8个二进制位
k、m、g是数量单位,每个单位相差1024倍
b,B是存储单位
即1B=8bit,1kB=8kb
运算方式:不要硬算,化简为2 的幂指数来计算
存储器分类
-
按存储器所处位置分类
- 内存:…
- 外存:…
-
按存储器构成材料分类
- 磁存储器
- 半导体存储器
- 光存储器
-
按存储器工作方式分类
- 读写存储器(Random Access Memory,RAM,就是随机存储器)。其是既能读取数据也能存入数据的 存储器。
- 只读存储器。根据数据的写入方式,这种存储器又可分为ROM、PROM、EPROM和EEPROM等类型。
- ①固定只读存储器(read Only Memory,ROM)。这种存储器的内容是在厂家生产时就写好的,其内容只能读出,不能改变。一般用于存放系统程序BIOS以及用于微程序控制。
- ②可编程的只读存储器(Programmable read Only Memory,PROM)。其中的内容可以由 用户一次性地写入,写入后不能再修改。
- ③可擦除可编程的只读存储器(Erasable Programmable read Only Memory,EPROM)。其 中的内容既可以读出,也可以由用户写入,写入后还可以修改。改写的方法是写入之前先用紫外线照射15~20分钟以擦去所有信息,然后再用特殊的电子设备写入信息。
- ④电擦除可编程的只读存储器(Electrically Erasable Programmable read Only Memory, EEPROM)。与EPROM相似,EEPROM中的内容既可以读出,也可以进行改写。只不过这种存储器是用电擦除的方法进行数据的改写。
- ⑤闪速存储器(Flash Memory)。其简称闪存,闪存的特性介于EPROM和EEPROM之 间,类似于EEPROM,也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于EPROM。
-
按访问方式分类
存储器按访问方式可分为按地址访问的存储器和按内容访问的存储器。
-
按寻址方式分类
存储器按寻址方式可分为随机存储器、顺序存储器和直接存储器。
(1)随机存储器(Random Access Memory,RAM)。这种存储器可对任何存储单元存入 或读取数据,访问任何一个存储单元所需的时间是相同的。
(2)顺序存储器(Sequentially Addressed Memory,SAM)。访问数据所需要的时间与数据 所在的存储位置相关,磁带是典型的顺序存储器。
(3)直接存储器(Direct Addressed Memory,DAM)。介于随机存取和顺序存取之间的一 种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
不是dma数据交互方式,而是dam存储器
随机访问存储器
随机访问存储器(ram)分为静态ram和动态ram两类。静态比动态更快也更贵
- sram:常用来做高速缓存存储器
- dram:用来作为主存及图形系统的帧缓冲存储区
外存储器
详细参考:
-
磁盘存储器(硬盘)
-
磁盘结构和参数
磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道(从外到里编号,最外一圈是0道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。
磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间(寻磁道)和等待时间(转到数据)。
公式为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)。
注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
-
-
光盘存储器
- co-rom
- worm
不考,但是是硬盘的相关知识
文件系统
用来管理目录和文件的系统叫做文件系统,它规定了文件和目录数据如何储存到储存设备上,Windows 用的文件系统是 NTFS。
因为我们很少有只占用一个扇区以下的文件,所以文件系统会将磁盘面上相邻的若干个扇区合并为一个簇(又叫分配单元,Unix 类系统叫块,反正都是一个意思)。文件系统进行读写操作的基本单位就是簇。
可以看到大小和占用空间两个属性,后面跟着的容量是不同的。「大小」就是文件的实际大小,「占用空间」就是这个文件在磁盘上占用的簇大小 ,因为 10.2 KB > 8KB,而 NTFS 文件系统的簇大小是 4KB,所以他必须要占三个簇,也就是 12KB。比较大的文件看着大小和占用空间可能一样,但仔细观察后面的字节数,也会发现相差了簇以内的字节。
虚拟存储器
实际上是一种逻辑存储器
在概念上,可以将主存存储器看作一个由若干个字节构成的存储空间,每个字节(称为一个存储单元)有一个地址编号,主存单元的该地址称为物理地址(physicaladdress)。当需要访问主存中的数据时,由CPU给出要访问数据所在的存储单元地址,然后由主存的读写控制部件定位对应的存储单元,对其进行读(或写)操作来完成访问操作。
现代系统提供了一种对主存的抽象,称为虚拟存储(virtualmemory),使用虚拟地址(viraladdress,由CPU生成)的概念来访问主存,使用专门的MMU(Memory Management unit)将虚拟地址转换为物理地址后访问主存。设主存容量为4GB,则其简化后的访问操作和内存模型如图1-13所示。
转换检测缓冲区:将虚拟地址映射到物理地址的硬件机制
**虚拟存储器实际上是一种逻辑存储器,实质是对物理存储设备进行逻辑化的处理,并将统的逻辑视图呈现给用户。**因此,用户在使用时,操作的是虚拟设备,无需关心底层的物理环境,从而可以充分利用基于异构平台的存储空间,达到最优化的使用效率。
真题
虚拟存储管理系统的基础是程序的局部性理论,这个理论的基本含义是指程序执行时往往会不均匀地访问主存储器单元。根据这个理论,Denning提出了工作集理论。工作集是进程运行时被频繁地访问的页面集合。在进程运行时,如果它的工作集页面都在主存储器内,能够使该进程有效地运行,否则会出现频繁的页面调入/调出现象
相联存储器
相联存储器是一种按内容访问的存储器