【组成原理期末复习】03存储系统

本文详细介绍了计算机存储器的分类,包括磁表面、半导体和光存储器,以及按存取方式、读写功能、信息可保存性和在系统中的作用分类。还探讨了存储器的层次结构,如SRAM和DRAM的特点、工作原理及优缺点。此外,讲解了ROM的不同类型,如PROM、EPROM和Flash。最后,讨论了并行存储器、Cache和虚拟存储器的工作机制,以及提高存储性能的各种策略。
摘要由CSDN通过智能技术生成

7.存储器的分类

  • 按存储介质分类:
    • 磁表面:磁芯、磁带、磁盘
    • 半导体存储器
    • 光存储器:只读光盘/读写光盘
  • 按存取方式分类:
    • 随机、顺序存储(磁带)、半顺序(磁盘)
  • 按读写功能分类:
    • ROM(只读):PROM EPROM EEPROM
    • RAM(随机存取):
      • SRAM(cache)
      • DRAM(内存):DDR GDDR LPDDR
  • 按信息的可保存性:
    • 易失性:RAM一旦掉电信息丢失
    • 非易失性:ROM掉电信息不丢失、磁性材料不易失、Flash(BIOS芯片、U盘、固态硬盘)
  • 按存储系统中的作用:
    • 内存(主存(RAM、ROM)、缓存(cache))、辅存(外存)、控制存储器(存放微程序)

8.存储器的层次结构

1.SRAM(静态随机存取存储器)

  • 优点:和DRAM相比存取速度更快,但存储容量和密度不如SRAM大
  • 基本的静态存储元阵列
    • SRAM采用锁存器(触发器)作为存储元,如果电源断电,SRAM存储的数据会丢失
    • 三组信号线:
      • 地址线 6条地址线表示有2^6=64个存储单元
      • 双向数据线 4条数据线表示存储器的字长是4位,因此存储位元的总数位64*4=256
      • 控制线 如R/~W读写控制线
    • 地址译码器:64条地址选择先,称为行线,作用是打开存储位元的输入与非门
  • SRAM逻辑结构
    • 采用二级译码(x=8,y=7)
      • SRAM芯片多采用双译码方式,以便组织更大的存储容量
        • 这种方式减少了选择线数目和驱动器数目,单译码方式需要65536条选择线
      • 第一级将地址分为x(行译码)、y(列译码)两部分单独译码
      • 第二级在存储阵列中完成交叉译码
      • 存储阵列问三维结构,即256行×128列×8位
        • 通常把各个字的同一位集成在同一个芯片(32K×1bit)内,8块芯片就是32KBytes
  • 读写时序
    • 三个控制信号:~CS片选信号、~OE读出信号、~WE写信号
      • 其中OE和WE是互锁的
    • 读/写周期(时间顺序):从地址有效到地址失效
      • 地址线先有效
      • CS和OE/WE有效,开始读出/写入
      • 读出/写入有效,地址线上出现数据
      • CS和OE恢复
      • (写周期:为了写入可靠,数据线写入数据要有维持时间,CS的维持时间也比读周期长)
      • 地址线恢复
    • 为了控制方便,一般取读/写周期相同,称为读写周期
  • 容量扩充
    • 所需芯片数d=要求的存储容量/芯片的存储容量
    • 位扩展:
      • 芯片的字数(地址数)符合要求,需要扩展位数
      • 地址线数不变,数据线增多
    • 字扩展:
      • 位数不变,扩充容量
      • 地址增多,地址总线的高位译码产生片选信号,片内地址位数+片选信号位数=地址位数
    • 字位同时扩展:
      • 先位扩展,再字扩展

2.DRAM(动态随机存取存储器)

  • 特点

    • 简化了存储元的结构,因而存储密度很高,通常用作主存储器

    • 存储位元是一个由MOS晶体管和电容器组成的记忆电路,通过刷新电路保持数据

  • 逻辑电路

    • 信号:RAS CAS R/W
    • 相对于SRAM,增加了行地址锁存器和列地址锁存器
      • 由于存储容量很大,地址线宽度增加,芯片地址线管脚数增加,采用的方法是分时传送地址码
      • 行选通信号RAS 列选通信号CAS
    • 刷新操作:
      • 读操作会使电荷流失,未读写的存储元电荷会逐渐泄漏而减少,因而必须进行刷新
      • DRAM芯片通常会在进行读操作后自动刷新,但读操作是不固定的,因此还要进行周期性刷新
      • 刷新计数器
        • 按行刷新,因此刷新计数器的长度等于行地址锁存器
        • 通过2选1多路开关提供刷新地址或读/写地址
        • 刷新策略
          • 集中式刷新策略 再刷新过程中不允许读写操作,存在”死时间“
          • 分散式刷新策略 当前主流的刷新周期位64ms,8192行即每隔7.8us刷新一次
  • 读/写周期:

    • 从一个RAS下降沿到下一个RAS下降沿为一个周期
    • 为控制方便,读写周期相等
  • 新型DRAM

    • 快速页FPM DRAM(Fast Page Mode)
      • 根据程序的局部性原理:
        • 时间局部性:程序中的某一条指令一旦执行,不久后可能被再次访问
        • 空间局部性:一旦访问了某个存储单元,不久之后附近的存储单元也会被访问
      • 允许在选定的行(页)中对每一个列地址进行连续快速读写
    • 高速缓冲CDRAM(Cached)
      • 在DRAM芯片中集成一个小容量SRAM作为高速缓冲器
    • 同步DRAM(SDRAM)
    • 双倍速率DDR DRAM(Double Date Rate)

DRAM和SRAM对比

DRAMSRAM
能耗
速度
价格
定期刷新需要不需要
存储密度
晶体管/单元16
工艺简单复杂
容量

3.ROM(只读存储器)

  • 特点:
    • 非易失性,但访问速度较RAM低
    • “只读”的意思是在工作时只能读出,不能写入,因此必须在工作前将数据全部写入
    • 工作可靠,保密性强
  • 分类:
    • 掩模ROM:存储内容固定,通常用户给厂家提供信息代码,厂家提供产品
    • 可编程ROM(PROM):用户可写入内容
      • 一次性编程ROM(OTPROM)
      • 紫外线PROM(UV-PROM)可将电路板拔下擦除数据,能进行多次编程和验证
      • 电可擦PROM(EPROM,EEPROM)容量小,单位成本高,但可擦次数多
      • Flash存储器(闪存)存储密度高,擦除次数相对较少
        • NOR闪存(线性闪存)随机存取,读出速度快,擦除速度较慢
        • NAND闪存(非线性闪存)以页为单位,成本低,容量大

4.并行存储器

  • CPU很快,内存较慢,从内存读写时,往往需要CPU等待
  • 解决措施:
    • 提高储存芯片的速率
    • 多模块存储器并行技术:多端口存储器(时间并行)、多模块交叉存储器(空间并行)
    • 分层存储结构:Cache和虚拟存储器
  • 双端口存储器:
    • 一个存储器具有两组相互独立的读写控制电路
    • 读写控制:
      • 有冲突:两个端口同时存取同一个存储单元
        • 解决:设置BUSY标志
      • 无冲突:地址不相同,每一个端口都有自己的片选控制(CE)金额输出驱动控制(OE)
  • 多模块交叉存储器:
    • 采用交叉方式编址:
      • 顺序方式:高位片选地址,低位片内地址

      • 交叉方式:高位片内地址。低位片选地址 流水线方式存取

        • 每个模块都有自己的读写控制电路、地址寄存器和数据寄存器
        • CPU同时访问多个模块,由存储控制部件控制分时使用数据总线
        • CPU可以在一个存储周期内连续访问多个模块,读写过程重叠进行
        • 存取周期为:t = 存取周期 +(存储模块-1)* 总线传送周期
      • 采用交叉方式可以对连续字的成块传送实现多模块流水式并行存取,提高存储器的带宽

5.Cache

  • 用来解决CPU和主存之间速度不匹配的问题

  • 根据程序的空间局部性原理和时间局部性原理:

    • 指令:按顺序存放,循环程序段或在程序段重复执行
    • 数据:连续存放,数组元素重复、按顺序访问
    • 在CPU和主存之间设置一个容量较小的快速容器,存放最频繁使用的程序块和数据,大多数情况下不必访问主存
  • 构成:采用高速SRAM芯片构成,采用一级、两级、多级cache系统

  • 数据传送:

    • CPU和cache之间传送以字为单位
    • 主存和cache之间传送以块为单位
  • 命中率:

    • 命中:被访问信息在cache中 命中率:所有CPU发出的存储器访问请求中由Cache满足CPU需要的部分所占的比例
    • 命中率越接近1,访问效率越高 理想情况下,命中率接近1
    • 有关的因素:程序本身的行为、cache的容量、组织方式、映射方式
      • cache设计要解决的问题:
        • 命中率尽可能高
        • cache对CPU透明
  • 主存和cache的映射方式:

    • CPU访问存储器时,给出的内存地址会自动变成cache地址,称为cache地址变换

    • 把主存块放入cache中,必须用某种方法把主存地址定位到cache中,称为地址映射

      • 映射:把主存分为大小相等的主存块,cache对应有槽/行

      • 全相联映射

        • cache的每一个槽都可以存储主存中的任意一块
        • cache地址:主存块号+块内地址
        • 缺点:高速比较器电路难于设计和实现
      • 直接映射

        • 主存的每一块映射到一个固定的行
        • cache行号 = 主存块号 mod Cache行数,即主存的第0,1,2,…m-1,m行存储到cache的第0行
        • cache地址:块群地址+群里第几块+块内地址
        • 优点:成本低,硬件简单,速度快;缺点:容易造成冲突
      • 组相联映射

        • 将主存分为不同的组别,cache也进行分组,相当于对直接映射中cache的每一块进行了扩展,主存中每组可以任一在cache每组中存储。是直接映射和全相联映射的结合
        • cache组号=主存块号mod cache组数
        • cache地址:组群号+块号+块内地址
      • 失靶率和关联度:

        • 失靶率:直接映射最高,全相联映射最低
        • 关联度:全相联映射为cache行数,直接映射为1,N-路组相联映射为N
        • 命中时间:直接映射最小,全相联映射最大
  • 替换策略:

    • cache替换问题主要是选择和执行替换算法,以便在不命中时替换cache中的数据

    • 全相联映射和N-路组相联映射需要替换策略,其过程为:

      • 从主存中取出一个新块
      • 选择一个有映射关系的cache行
      • cache占满时,从cache中调出一个主存块
    • 常用替换算法:

      • 先进先出FIFO
      • 最近最少LRU 有较高的命中率 命中置零,其余加一
      • 最不常用LFU 并不能反映近期使用情况
      • 随机替换Random 替换出的块可能是近期要使用的块,但这种缺点随着cache的增大而减少
  • 数据一致性(读操作):

    • cache的写操作策略,重点是在更新时保持主存与cache的一致性
    • 写操作策略:
      • 写回法:写命中(要写的单元已经在cache中)时,只修改cache,cache被取出时才写回主存
      • 全写法:cache与内存一起写
      • 写一次法:第一次命中cache时采用全写法,之后的写操作只写cache

6.虚拟存储器

  • 借助辅助存储器扩大内存,是一个容量非常大的存储器逻辑模型,不是任何实际的的物理存储器

  • 实地址:存储、运行程序的空间的地址

  • 虚地址:程序的逻辑地址

  • 三级存储体系:cache-内存-辅存

    • 虚拟存储和cache的区别:
      • 都是为了提高性能价格比而构造的分层存储体系
      • 基于局部性原理:把最近常用的部分驻留在高速的存储器中;对用户是透明的;性能接近高速存储器,价格接近低速存储器
  • 虚拟存储器访问过程:

    • 将要执行的程序段调入主存,暂不执行的保留在辅存
    • 执行某个放在辅存的程序段时,CPU执行某种调度算法调入主存
  • 分页式、分段式、段页式(在主存中)

    • 分页式:虚地址到实地址之间的变换由页表来实现,页长是固定的
      • 物理地址:(实际页号)+页内偏移
      • 页表内记录了(虚页号、实页号、装入位)
      • 每个进程对应一个页表,页表中存在着逻辑页号和物理页号的对应关系,以及标志是否存入主存的有效位
      • 快表:把页表中最活跃的部分存放在高速存储器中,称为转换后缓冲器(TLB),相当于存储系统中的cache
    • 分段式:按照程序的自然分界划分段表,可以改变长度
      • 物理地址:(段起址)+段内偏移
      • 段表内记录了段号(段起址、有效位、段长)
    • 段页式:分段存储,每段通过多个页表进行定位
      • 逻辑地址:基号(段表基址)、段号(页表基址)、页号(程序页号)、页内地址,每一个段表和页表都需要设置一个有效位
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值