资讯详情

存储系统及存储器

目录

  • 1.存储器概述
    • 分类
    • 性能指标
  • 2.存储器的层次结构
  • 3.半导体随机存储器
    • SRAM和DRAM
    • ROM
  • 4.主存与CPU的连接
    • 连接原理
    • 扩展主存容量
    • 存储芯片的地址分配和片选
    • 存储器与CPU的连接
  • 5.双端口RAM多模块存储器
    • 双端口RAM
    • 多模块存储器
  • 6.高速缓冲存储器
    • 程序访问的局部原理
    • Cache基本工作原理
    • Cache以及主存的映射方式
    • Cache替换中主存块的算法
    • Cache写策略
  • 7.虚拟存储器
    • 概述
    • 虚拟存储器和Cache的比较

1.存储器概述

分类

  • 按计算机中的层次分类
  1. 主存储器:主存储器,又称内存。用于存储计算机运行所需的大量程序和数据,CPU可直接随机访问,也可与高速缓冲存储器一起使用(Cache)辅助存储器交换数据。其特点是容量小,访问速度快,每个价格高。
  2. 辅助存储器:辅助存储器,也称为外部存储器。用于存储暂时不使用的程序和数据,以及一些需要永久保存的信息。它不能与之相处CPU直接交换信息。其特点是容量大、访问速度慢、单位成本低。
  3. 高速缓冲存储器:Cache,位于主存与CPU之间存储正在执行的程序段和数据,以便CPU它们可以高速使用。Cache存取速度可与CPU速度匹配,但存储容量小,价格高。
  • 按存储介质进行分类 根据存储介质,存储器可分为磁性表面存储器磁心存储器半导体存储器(MOS类型存储器、双极存储器)和光存储器(光盘)。

  • 按存取方式分类

  1. 随机存储器(RAM):任何存储单元的内容都可以随机访问,访问时间与存储单元的物理位置无关。其优点是读写方便,使用灵活,主要用作主存储或高速缓冲存储。RAM又分为静态RAM(以触发器原理存储信息)和动态RAM(以电容充电原理存储信息)。
  2. 只读存储器(ROM):存储器的内容只能随机读取而不能写入。信息一旦写入存储器,就会固定,即使断电,内容也不会丢失。因此,它通常用于存储固定的程序、常数和汉字库,甚至用于操作系统的固化。它可以与随机存储器一起作为主存储器的一部分,形成主存储器的地址域。
  3. 串行访问存储器:读写存储单元时,应按物理位置的顺序找到地址,包括存储器(如磁带)和直接存储器(如磁盘)。
  • 根据信息的可保存性进行分类 断电后,存储信息消失的存储器称为易失性存储器,如RAM。 断电后,信息保持的存储器称为非易失性存储器,如ROM、磁表面存储器和光存储器。 如果存储单元存储的信息在读取时被破坏,则称为破坏性读取;如果读取单元的原始存储信息不被破坏,则称为非破坏性读取。 对于具有破坏性读出性能的存储器,每次读出操作后,必须进行再生操作,以恢复被破坏的信息。

性能指标

存储器有三个主要性能指标:存储容量、单位成本和存储速度。这三个指标相互限制。设计存储系统的目标是大容量、低成本和高速。

  • 存储容量 = 存储字数 x 字长(如1M x 8位)。单位转换:11B(Byte,字节)= 8b(bit,位)。 存储字数表示存储器的地址空间大小,字长表示一次的数据量。

  • 单位成本:每个价格 = 总成本/总容量。

  • 存储速度:数据传输率 = 数据宽度/存储周期。

    1. 访问时间:访问时间是指从启动存储器操作到完成操作的时间,分为读取时间和写入时间。
    2. 访问周期:访问周期也称为读写周期或访问周期。它是指存储器完整读写操作所需的所有时间,即连续两次独立访问存储器操作(读写操作)所需的最小时间间隔。
    3. 主存带宽:主存带宽又称数据传输率,表示每秒从主存进出信息的最大数量。

    访问时间不等于存储周期,通常存储周期大于访问时间。因为对于任何一个存储器,在阅读和写作操作后,总有一段恢复内部状态的时间。对于破坏性读取的存储器,访问周期通常比访问时间大得多,因为存储器中的信息需要在读取后立即再生。 存取时间与存取周期的关系如下图所示: 在这里插入图片描述

2.存储器的层次结构

  • 为了解决存储系统大容量、高速、低成本的矛盾,计算机系统通常采用多级存储结构,如下图所示,价格越来越低,速度越来越慢,容量越来越大,CPU访问频率也越来越低。

  • 存储系统的层次结构主要体现在Cache—主存水平和主存-辅存水平。前者主要解决CPU与主存储速度不匹配的问题主要解决了存储系统的容量问题。在存储系统中,Cache、主存能与CPU通过主存和辅存直接交换信息CPU主存与交换信息CPU、Cache、辅存都能交换信息,如下图所示。

  • 存储层次结构的主要思想是上层存储器作为低层存储器的高速缓存。CPU从角度看,Cache—主存的层次速度接近于主存Cache,容量和价格接近主存。从主存-辅存的角度来看,速度接近主存,但容量和价格接近辅存。这解决了速度、容量和成本之间的矛盾。 1.需要注意的是,主存和Cache数据调动由硬件自动完成,对所有程序员都是透明的;主存和辅存之间的数据调动由硬件和操作系统完成,对应用程序员是透明的。 2. 在主存储-辅助存储水平的不断发展中,虚拟存储系统逐渐形成,程序员编程的地址范围对应于虚拟存储器的地址空间。对于具有虚拟存储器的计算机系统,编程中的地址空间远远大于主存储空间。 3. 在“Cache—在主存和主存-辅存层面,上一层的内容只是下一层的副本,即Cache(或主存)中的内容只是主存(或辅存)中内容的一部分。

3.半导体随机存储器

主存储器由DRAM实现,依靠处理器的层(Cache)则由SRAM它们都是易失性存储器,只要电源被切断,原始保存的信息就会丢失。DRAM每比特成本低于SRAM,速度也慢于SRAM,价格差异主要是由于制造业DRAM需要更多的硅ROM属于非易失性存储器。

SRAM和DRAM

  1. SRAM的工作原理
  1. DRAM的工作原理
  • 与SRAM存储原理、动态随机存储器(DRAM)存储元电路中栅极电容上的电荷用于存储信息,DRAM基本存储元通常只使用一个晶体管,所以它比SRAM密度要高得多。DRAM采用地址复用技术,地址线为原来的1/2,地址信号分行,列两次传输。
  • 相比于SRAM来说,DRAM它具有集成方便、价格低、容量大、功耗低等优点DRAM访问速度比SRAM慢,一般用于形成大容量主存系统。l>
  • DRAM电容上的电荷一般只能维持1~2ms,因此即使电源不断电,信息也会自动消失。为此,每隔一段时间必须刷新,通常取2ms,这个时间称为刷新周期。
  1. 比较
SRAM DRAM
存储信息 触发器 电容
破坏性读出
需要刷新 不需要 需要
送行列地址 同时送 分两次送
运行速度
集成度
发热量(功耗)
存储成本
主要用途 高速缓存 主机内存

ROM

  1. 特点 ROM和RAM都是支持随机存取的存储器,其中SRAM和DRAM均为易失性半导体存储器。而ROM中一旦有了信息,就不能轻易改变,即使掉电也不会丢失,它在计算机系统中是只供读出的存储器。ROM器件的特点为:结构简单,所以位密度比可读写存储器的高;具有非易失性,所以可靠性高。
  2. 类型
  • 掩模式只读存储器(MROM):MROM的内容由半导体制造厂按用户提出的要求在芯片的生产过程中直接写入,写入以后任何人都无法改变其内容。优点是可靠性高,集成度高,价格便宜;缺点是灵活性差。
  • 一次可编程只读存储器(PROM):允许用户利用专门的设备(编程器)写入自己的程序,一旦写入,内容就无法改变。
  • 可擦除可编程只读存储器(EPROM):不仅可以由用户利用编程器写入信息,而且可以对其内容进行多次改写。需要修改EPROM的内容时,先将其全部内容擦除,然后编程。EPROM虽然既可读又可写,但它不能取代RAM,因为EPROM的编程次数有限,且写入时间过长。
  • 闪速存储器(Flash Memory):其主要特点是既可在不加电的情况下长期保存信息,又能在线进行快速擦除与重写。
  • 固态硬盘(SSD):基于闪存的固态硬盘是用固态电子存储芯片阵列制成的硬盘,由控制单元和存储单元(FLASH芯片)组成。保留了Flash Memory长期保存信息、快速擦除与重写的特性。对比传统硬盘也具有读写速度快、低功耗的特性,缺点是价格较高。

4.主存与CPU的连接

连接原理

  • 主存储器通过数据总线、地址总线和控制总线与CPU连接。
  • 数据总线的位数与工作频率的乘积正比于数据传输率。
  • 地址总线的位数决定了可寻址的最大内存空间。
  • 控制总线(读写)指出总线周期的类型和本次输入/输出操作完成的时刻。

主存与CPU的连接如下图所示:

主存容量的扩展

由于单个存储芯片的容量是有限的,它在字数或字长方面与实际存储器的要求都有差距,因此需要在字和位两方面进行扩充才能满足实际存储器的容量要求。通常采用位扩展法、字扩展法和字位同时扩展法来扩展主存容量。

  • 位扩展的连接方式是将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出。各芯片连接地址线的方式相同,但连接数据线的方式不同,在某一时刻选中所有的芯片。
  • 字扩展将芯片的地址线、数据线、读写控制端相应并联,而由片选信号来区分各芯片的地址范围。各芯片连接地址线的方式相同,连接数据线的方式也相同,但在某一时刻只选中部分芯片。
  • 采用字位同时扩展时,各芯片连接地址线的方式相同,但连接数据线的方式不同。

存储芯片的地址分配和片选

CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后为选中的芯片依地址码选择相应的存储单元,以进行数据的存取,即进行字选。片内的字选通常是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端。片选信号的产生分为线选法和译码片选法。

存储器与CPU的连接

  1. 合理选择存储芯片:通常选用ROM存放系统程序、标准子程序和各类常数,RAM则是为用户编程而设置的。在考虑芯片数量时,要尽量使连线简单、方便。
  2. 地址线的连接:存储芯片的容量不同,其地址线数也不同。而CPU的地址线数往往比存储芯片的地址线数要多。通常将CPU地址线的低位与存储芯片的地址线相连,以选择芯片中的某一单元(字选),这部分的译码是由芯片的片内逻辑完成的。而CPU地址线的高位则在扩充存储芯片时使用,用来选择存储芯片(片选),这部分译码由外接译码器逻辑完成。
  3. 数据线的连接:CPU的数据线数与存储芯片的数据线数不一定相等,在相等时可直接相连;在不等时必须对存储芯片扩位,使其数据位数与CPU的数据线数相等。
  4. 读写命令线的连接:CPU读写命令线一般可直接与存储芯片的读写控制端相连,通常高电平为读,低电平为写。
  5. 片选线的连接:片选有效信号与CPU的访存控制信号有关,因为只有当CPU要求访存时,才要求选中存储芯片。

5.双端口RAM与多模块存储器

为了提高CPU访问存储器的速度,可以采用双端口存储器、多模块存储器等技术,它们同属并行技术,前者为空间并行,后者为时间并行。

双端口RAM

双端口RAM是指同一个存储器有左、右两个独立的端口,分别具有两组相互独立的地址线、数据线和读写控制线,允许两个独立的控制器同时异步地访问存储单元。结构如下图所示:

多模块存储器

为提高访存速度,可以采用多模块存储器,常见的有单体多字存储器和多体低位交叉存储器。

6.高速缓冲存储器

程序访问的局部性原理

程序访问的局部性原理包括时间局部性和空间局部性。

  • 时间局部性是指在最近的未来要用到的信息,很可能是现在正在使用的信息,因为程序中存在循环。
  • 空间局部性是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是邻近的,因为指令通常是顺序存放、顺序执行的,数据一般也是以向量、数组等形式簇聚地存储在一起的。

高速缓冲技术就是利用程序访问的局部性原理,把程序中正在使用的部分存放在一个高速的、容量较小的Cache中,使CPU的访存操作大多数针对Cache进行,从而大大提高程序的执行速度。

Cache的基本工作原理

Cache位于存储器层次结构的顶层,通常由SRAM构成。

  • 由于Cache的容量远小于主存的容量,所以Cache中的块数要远少于主存中的块数,它仅保存主存中最活跃的若干块的副本。因此Cache按照某种策略,预测CPU在未来一段时间欲访存的数据,将其装入Cache。
  • 当CPU发出读请求的时候,若访存地址在Cache中命中,就将此地址转换成Cache地址,直接对Cache进行读操作,与主存无关;若Cache没命中,则仍需访问主存,并把此字所在的块一次性地从主存调入Cache。若此时Cache已满,则需根据某种替换算法,用这个块替换Cache中原来的某种信息。此外,CPU与Cache之间的数据交换以字为单位,而Cache与主存之间的数据交换则以Cache块为单位。
  • 当CPU发出写请求的时候,若Cache命中,有可能会遇到Cache与主存中的内容不一致的问题,需要按照一定的写策略处理。

Cache和主存的映射方式

  • Cache行中的信息是主存中某个块的副本,地址映射是指把主存地址空间映射到Cache地址空间,即把存放在主存中的信息按照某种规则装入Cache。
  • 由于Cache行数比主存块数少得多,因此主存中只有一部分块的信息可放在Cache中,因此在Cache中要为每块加一个标记,指明它是主存中哪一块的副本。该标记的内容相当于主存中块的编号。为了说明Cache行中的信息是否有效,每个Cache行需要一个有效位。
  • 地址映射不同于地址变换。地址变换是指CPU在访存时,将主存地址按映射规则换算成Cache地址的过程。地址映射的方法有直接映射、全相联映射和组相联映射。组相联映射即组间采取直接映射,组内采用全相联映射。

Cache中主存块的替换算法

在采用全相联映射或组相联映射方式时,从主存向Cache传送一个新块,当Cache或Cache组中的空间已被占满时,就需要使用替换算法置换Cache行。 而采用直接映射时,一个给定的主存块只能放到唯一的固定Cache行中,所以在对应Cache行中已有一个主存块的情况下,新的主存块毫无选择地把原先已有的那个主存块替换掉,因而无须考虑替换算法。 常用的替换算法有以下几种:

  • 随机(RAND):随机地确定替换的Cache块。它的实现比较简单,但未依据程序访问的局部性原理,因此可能命中率较低。
  • 先进先出(FIFO):选择最早进入的行进行替换。比较容易实现,但也未依据程序访问的局部性原理,因为最早进入的主存块也可能是目前经常要用的。
  • 近期最少使用(LRU):依据程序访问的局部性原理,选择近期内长久未访问过的Cache行作为替换的行,平均命中率要比FIFO高,是堆栈类算法。
  • 最不经常使用(LFU):将一段时间内被访问次数最少的存储行换出。

Cache写策略

因为Cache中的内容是主存块副本,当对Cache中的内容进行更新时,就需要选用写操作策略使得Cache内容和主存内容保持一致。此时有两种情况:

  • 对于Cache写命中,有两种处理方法:
  1. 全写法:当CPU对Cache写命中时,必须把数据同时写入Cache和主存。当某一块需要替换时,不必把这一块写回主存,用新调入的块直接覆盖即可。这种方法实现简单,能随时保持主存数据的正确性。缺点是增加了访存次数,降低了Cache的效率。 写缓冲:为了减少全写法直接写入主存的时间损耗,在Cache和主存之间加一个写缓冲(Write Buffer),如下图所示。 CPU同时写数据到Cache和写缓冲中,写缓冲再控制将内容写入主存。写缓冲是一个FIFO队列,可以解决速度不匹配的问题。但若出现频繁写,会使写缓冲饱和溢出。

  2. 写回法:当CPU对Cache写命中的时候,只修改Cache的内容,而不立即写入主存。只有当此块被换出时才写回主存。这种方法减少了访存次数,但存在不一致的隐患。采用这种策略时,每个Cache行必须设置一个标志位,以反映此块是否被CPU修改过。

全写法和写回法都对应于Cache写命中(要被修改的单元在Cache中)时的情况。

  • 对于Cache写不命中,有两种处理方法:
  1. 写分配法:加载主存中的块到Cache中,然后更新这个Cache块。其试图利用程序的空间局部性,缺点是每次不命中都需要从主存中读取一块。
  2. 非写分配法:只写入主存,不进行调块。

非写分配法通常与全写法合用,写分配法通常和写回法合用。

现代计算机的Cache通常设立多级Cache(通常为三级),假定三级Cache,按离CPU的远近可各自命名为L1 Cache、L2 Cache、L3 Cache,离CPU越远,访问速度越慢,容量越大。指令Cache与数据Cache分离一般在L1级,此时通常为写分配法与写回法合用。 下图为一个含有两级Cache的系统,L1 Cache对L2 Cache使用全写法,L2 Cache对主存使用写回法,由于L2 Cache的存在,其访问速度大于主存,因此避免了因频繁写时造成的写缓冲饱和溢出。

7.虚拟存储器

主存和联机工作的辅存共同构成了虚拟存储器,二者在硬件和系统软件的共同管理下工作。

概述

  • 虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的地址空间,在这个空间内,用户可以自由编程,而不必在乎实际的主存容量和程序在主存中实际的存放位置。
  • 用户编程允许涉及的地址称为虚地址或逻辑地址,虚地址对应的存储空间称为虚拟空间或程序空间。实际的主存单元地址称为实地址或物理地址,实地址对应的是主存地址空间,也称实地址空间。虚地址比实地址要大很多。
  • CPU使用虚地址时,由辅助硬件找出虚地址和实地址之间的对应关系,并判断这个虚地址对应的存储单元内容是否已装入主存。若已在主存中,则通过地址变换,CPU可直接访问主存指示的实际单元;若不在主存中,则把包含这个字的一页或一段调入主存后再由CPU访问。若主存已满,则采用替换算法置换主存中的一页或一段。
  • 在实际的物理存储层次上,所编程序和数据在操作系统管理下,先送入磁盘,然后操作系统将当前运行所需要的部分调入主存,供CPU使用,其余暂不运行的部分则留在磁盘中。

虚拟存储器与Cache的比较

相同点 不同点
最终目标都是为了提高系统性能,两者都有容量、速度价格的梯度。 Cache主要解决系统速度,而虚拟存储器却是为了解决主存容量。
都把数据划分为小信息块,并作为基本的传递单位,虚存系统的信息块更大。 Cache由全硬件实现,是硬件存储器,对所有程序员透明;而虚拟存储器由OS和硬件共同实现,是逻辑上的存储器,对系统程序员不透明,但对应用程序员透明。
都有地址的映射、替换算法、更新策略等问题。 对于不命中性能影响,因为CPU的速度约为Cache的10倍,主存的速度为硬盘的100倍以上,因此虚拟存储器系统不命中时对系统性能影响更大。
依据程序的局部性原理应用“”快速缓存的思想“,将活跃的数据放在相对高速的部件中。 CPU与Cache和主存都建立了直接访问的通路,而辅存与CPU没有直接通路。也就是说,在Cache不命中时主存能和CPU直接通信,同时将数据调入Cache;而虚拟存储器系统不命中时,只能先由硬盘调入内存,而不能直接和CPU通信。

标签: 固态电容取代了吗

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台