存储系统是计算机系统中至关重要的组成部分,它负责数据的存储、访问和管理,以下是一份详细的存储系统教程:
1、基本概念
存储器的层次结构:从顶层到底层依次为高速缓存(Cache)、主存和辅存,CPU 首先从 Cache 中获取数据,若没有则从主存获取,主存也没有则从辅存获取,这种层次结构解决了速度、容量和价格之间的矛盾,Cache 速度很快但容量小、价格高;主存速度相对较慢,容量较大、价格适中;辅存速度慢,但容量大、价格低。
存储器的分类
按层次分类:可分为高速缓存、主存和辅存。
按传输介质分类:半导体存储器(如内存条、Cache)、磁表面存储器(如磁盘、磁带)、光存储器(如光盘)。
按存取方式分类:随机存取存储器(RAM),可在任何时间对任意存储单元进行读写操作;顺序存取存储器(SAM),读写操作需要按顺序进行;直接存取存储器(DAM),兼具随机存取和顺序存取的特性。
按信息的可更改性分类:读写存储器(如内存、硬盘等),可读可写;只读存储器(如电影使用的光碟),只能读不能写。
按信息的可保存性分类:易失性存储器(如主存、Cache),断电后数据消失;非易失性存储器(如磁盘、光盘),断电后数据仍可保存。
存储器的性能指标
存储容量:存储字数与存储字长的乘积,如 1M×8 位,MAR 反映存储字数,MDR 反映了存储字长。
单位成本:每位价格 = 总成本÷总容量,例如某条内存条价格为 259 元,容量为 8GB,则单位成本 = 259÷(8×8)。
存储速度:数据传输率 = 数据宽度÷存储周期。
存取时间:存取时间 + 恢复时间 = 存取周期,计算机进行一次读写操作后需要一段恢复时间才能进行下一次的读写操作。
主存带宽:即数据传输率,表示每秒从主存进出信息的最大数量,单位为字/秒、字节/秒、位/秒。
2、主存储器
基本组成
存储体:由多个存储单元构成,每个存储单元由多个存储元构成,存储元可以存储一位比特,例如电容可以存储电荷来表示比特 1 或 0,MOS 管作为电控开关控制电容的充电和放电。
地址寄存器和数据寄存器:通过译码器选择存储单元进行读写,并通过数据总线传送数据。
控制电路:控制着 MAR、译码器和 MDR 的数据处理,同时提供片选线、读选择线、写选择线等,片选线用于选择存储芯片,读选择线和写选择线分别控制读和写操作。
随机存取存储器 RAM
存储元件不同导致的特性差异
DRAM:使用栅极电容存储信息,电容内存储电荷表示比特 1,无电压差表示比特 0,具有破坏性读出的特点,读出后需要重写(再生),读写速度比 SRAM 慢,但每个存储元制造成本低、集成度高、功耗低。
SRAM:使用双稳态触发器存储信息,非破坏性读出,读写速度快,只要不断电触发器状态就不会改变,但每个存储元制造成本高、集成度低、功耗高。
DRAM 的刷新:一般每隔 2ms 刷新一次,以行为单位进行刷新,刷新时读出一行的信息后重新写入,占 1 个读/写周期,在 2ms 内,根据存储单元的排列和读/写周期的长度,可以选择集中式、分散式或异步式等刷新方式。
DRAM 的地址线复用技术:为了简化硬件,采用地址线复用技术,行地址和列地址分成两次进行传送到译码器中。
只读存储器 ROM:虽然叫 “Read Only”,但很多 ROM 也可以写,只是写的速度一般比读速度慢,因为写入之前需要先擦除,闪存就是一种常见的 ROM,具有随机存取的特性。
主存储器和 CPU 的连接
单块存储芯片与 CPU 的连接:通过地址线、数据线和控制线进行连接,CPU 通过地址线选择存储单元,通过数据线进行数据传输,控制线控制读写操作。
多块存储芯片与 CPU 的连接:包括位扩展和字扩展等方式,位扩展是用多个存储器器件对字长进行扩充,字扩展是通过增加存储器字数的方法来扩展寻址空间。
3、Cache
基本概念和原理:位于 CPU 与主存之间,用于提高数据访问速度,它存储了主存中经常被访问的数据副本,当 CPU 需要读取数据时,先在 Cache 中查找,如果命中则直接从 Cache 中获取数据,大大提高了访问速度。
Cache 和主存的映射方式
全相联映射:主存中的任何一块数据可以映射到 Cache 中的任何一行,这种方式的优点是命中率高,但硬件实现复杂,成本高。
直接映射:主存中的每一块数据只能映射到 Cache 中的特定一行,这种方式硬件实现简单,成本低,但容易产生冲突,导致命中率下降。
组相联映射:将 Cache 分成若干个组,主存中的数据块可以映射到 Cache 中指定组的任意一行,它是全相联映射和直接映射的折中,既具有较高的命中率,又具有较低的硬件成本。
Cache 替换算法
随机算法(RAND):随机选择一行进行替换,简单但不一定能保证最优的命中率。
先进先出算法(FIFO):先进入 Cache 的数据先被替换,实现简单,但没有考虑数据的近期使用情况。
近期最少使用(LRU):选择最近一段时间内最少被访问的行进行替换,能较好地反映程序的局部性原理,命中率较高,但实现成本也较高。
最近不经常使用(LFU):选择近期内被访问次数最少的行进行替换,实现相对简单,但可能会使一些频繁使用但近期未使用的数据被替换出去。
Cache 写策略
写命中:当 CPU 写数据时,如果数据已经在 Cache 中命中,则同时更新 Cache 和主存中的数据。
写不命中:如果数据未在 Cache 中命中,则直接将数据写入主存。
多级 Cache:现代计算机通常采用多级 Cache,如 L1 Cache、L2 Cache 等,各级 Cache 之间可以采用不同的写策略和替换算法,以提高性能和效率。
4、虚拟存储系统
页式存储:将主存空间划分为大小相等的页面,程序的地址空间也被划分为相应的页面,当程序执行时,如果所需的页面不在主存中,就会发生缺页中断,然后将所需页面从辅存调入主存,这种方式便于管理和保护内存,提高了内存的利用率。
虚拟存储器
页式虚拟存储器:基于页式存储实现的虚拟存储器,通过页表来实现逻辑地址到物理地址的转换,页表中记录了每个页面在主存中的位置等信息。
段式虚拟存储器:将程序的地址空间划分为若干个段,每个段具有独立的逻辑地址空间,段的长度可以根据需要动态变化,便于对程序和数据进行分段管理。
段页式虚拟存储器:结合了页式和段式的优点,先将程序的地址空间划分为段,再将每个段划分为页面,这种方式既便于对程序和数据进行分段管理,又能提高内存的利用率和灵活性。
相关问答
问:什么是存储系统的层次结构?其意义是什么?
答:存储系统的层次结构从顶层到底层依次为高速缓存(Cache)、主存和辅存,这种层次结构的意义在于解决了速度、容量和价格之间的矛盾,CPU 首先从 Cache 中获取数据,若没有则从主存获取,主存也没有则从辅存获取,Cache 速度很快但容量小、价格高;主存速度相对较慢,容量较大、价格适中;辅存速度慢,但容量大、价格低,通过这种分层结构,可以在满足系统对不同类型数据存储需求的同时,提高系统的整体性能和性价比。
问:DRAM 和 SRAM 有哪些主要区别?
答:DRAM 和 SRAM 的主要区别如下:
存储元件:DRAM 使用栅极电容存储信息,电容内存储电荷表示比特 1,无电压差表示比特 0,具有破坏性读出的特点,读出后需要重写(再生);SRAM 使用双稳态触发器存储信息,非破坏性读出,读写速度快,只要不断电触发器状态就不会改变。
制造成本和集成度:DRAM 每个存储元制造成本低、集成度高;SRAM 每个存储元制造成本高、集成度低。
功耗:DRAM 功耗低;SRAM 功耗高。
应用场景:DRAM 常用于主存;SRAM 常用于高速缓存(Cache)。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1569361.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复