type
status
date
slug
summary
tags
category
icon
password

存储子系统

概述

存储子系统的层次结构

想想概述中的存储器层次结构:CPU连接主存,主存连接外存(辅存),然后CPU和主存之间还有高速缓冲
  • 对存储器的基本要求
    • 容量大
    • 速度快
    • 成本低
  • 存储器的分层结构:高速缓存(Cache)-主存-外存
    • 主存储器
      • 存储内容:能由CPU直接编程访问,存放当前CPU需要执行的程序与需要处理的数据
      • 主存储器的特点:存取速度较快(相较于外存),容量有限(相较于外存)
      • 对主存储器的基本要求
        • 随机访问(需要随机读写存储器,也就是RAM)
        • 工作速度快(相较于外存)
        • 具有一定的存储容量
    • 外存储器(辅存。要求是非破坏性读出,并且能长期保存信息)
      • 存储内容:存放需要联机保存、但暂不使用的大量程序与数据。
      • 特点:速度较慢,容量很大成本低(相对于其他存储器)。程序与数据只有进入主存才能真正运行,外存储器用作后援(因为外存没有跟CPU直接连接,CPU只跟主存直接连接。所以CPU没办法对外存寻址)
    • 高速缓存(减少了CPU和主存之间的速度差)
      • 存放需要联机保存、但暂不使用的大量程序与数据
      • 存放内容:存放即将要使用的程序与数据,作为主存中当前活跃信息的副本

存储器按存储介质分类

  • 半导体存储器
    • 用途:半导体存储器常用作主存(所以后面重点介绍半导体存储器的存储原理)
    • 分类
      • 双极型(了解即可):分为TTL型和ECL型。速度很快、功耗大、容量小
      • MOS型(后面存储原理中将介绍):分为静态MOS(SRAM,也就是static)和动态MOS(DRAM)
  • 磁表面存储器(各种带“磁”的存储器,如磁盘、磁带等)
    • 用途:主要用作外存
  • 光盘存储器
    • 用途:主要用作外存
    • 分类(就跟后面的存取方式有关系了,下面的三个应该都是只读存储器):
      • 只读型光盘(CD-ROM)
      • 写入式(只能写一次)光盘(W-ROM)
      • 可擦除/重写型(可逆式)光盘

存储器按存取方式分类

  • 随机访问存储器(RAM&ROM)
    • 随机访问存储器的特点
      • 可按地址随机地访问任一存储单元
      • 访问各存储单元所需时间相同,与地址无关
    • 速度指标
      • 存取时间(操作时间):启动读/写操作到完成该操作所需时间
      • 存取周期(操作间隙):连续两次独立访存所需的最小时间间隔
    • 用途:作主存(主存要求随机访问)、高速缓存(作为主存中活跃信息的副本,也需要能够随机访问)
    • 随机访问存储器的分类(感觉按照是否易失更好理解)
      • RAM(可读可写):SDR,DDR等。具有易失性(断电内容丢失)
      • ROM(只读):具有非易失性,也就是断电内容不丢失
      • ROM根据能否进行写操作又分为:
        • 固存:用户不能编程(常说的刷固件刷的就是这一块存储区域)
        • PROM:用户可一次编程
        • EPROM:用户可多次编程(紫外线擦除)
        • EEPROM:用户可多次编程(电擦除)
        • Flash Memory(闪存):快擦可重写(这个时候看着好像跟RAM没什么区别了,但是还是属于ROM。想想STM32的flash闪存,掉电之后已经烧上去的程序不会丢失)
  • 顺序访问存储器(SAM):如磁带等(磁带就需要等到他转到那个位置才能读出来想要的数据)
    • 顺序访问存储器的特点:信息按顺序存放,访问时间与信息存放位置有关
    • 顺序访问存储器读写操作
    • 分为两步
      • 等待操作
      • 读/写操作
    • 速度指标:对应着顺序存储器的读写操作,顺序访问存储器的速度指标也有两个
      • 平均等待时间(ms):也就是等待磁带转到想要的位置的那一段时间
      • 数据传输率(MB/s):也就是顺序访问存储器进行读写操作的时间
  • 直接访问存储器(DAM):如磁盘等(就把磁盘当成那种黑胶唱片就好了)
    • 直接访问存储器的特点:访问时间与数据位置有关
    • 直接访问存储器读写操作
    • 分为三步:
      • 定位(寻道)操作:也就是把黑胶唱片的针放到指定的圆上的操作
      • 等待(旋转)操作:等待胶盘旋转到想要的位置
      • 读/写操作:真正开始进行信息的读写
    • 速度指标:同样对应着直接存储器的读写操作,直接访问存储器的速度指标也有三个(操作更麻烦,但是还是叫直接访问存储器)
      • 平均定位(平均寻道)时间(ms):拨动黑胶唱片的针花费的时间
      • 平均等待(平均旋转)时间(ms):等待胶盘旋转到想要的位置的时间
      • 数据传输率(MB/s):直接存储器进行读写操作所需的时间

半导体存储原理

基本概念

  • 存储元:能够表示一位二进制的“0”、“1”两种状态,且具有记忆功能(不用触发器是因为触发器太贵哩)的物理器件
  • 存储单元:若干存储元构成一个存储单元

静态MOS存储元与芯片(SRAM)

静态MOS存储器不需刷新(因为使用的都是MOS管,不存在漏电的问题)
  • 六管单元电路结构(是SRAM的一个存储元):依靠双稳态电路内部交叉反馈的机制存储信息
    • 存储逻辑
    • 如下图(这里的字线Z的功能就是选中这个存储元,让读写线的输入有效):
      • notion image
      • “0”:T1导通,T2截止
      • “1”:T1截止,T2导通
      • 记忆:就看T2的状态就好了,T2截止就是存储0,T2导通就是存储1,这样就感觉有点逻辑关系了
  • 静态MOS存储芯片(SRAM的芯片,不会考滴,就了解一下)
    • SRAM芯片2114
    • 如下图:
      • notion image
        地址线就是用来配合片选信号选中存储元的;数据端的位数是跟存储芯片的位数有关的;片选信号后面详细介绍
    • SRAM芯片6264
    • 如下图:
      • notion image
        所有的引脚定义跟上一个芯片几乎一样,只不过这个芯片有了两个片选信号,读写线分成读允许线和写允许线了,然后还剩下了一个空端引脚

动态MOS存储元与芯片(DRAM)

动态MOS存储器需定期刷新
  • DRAM基本存储原理:依靠电容存储电荷(电容漏电所以导致DRAM需要定期刷新)的原理存储信息。
  • 动态存储器刷新:电容存在泄漏通路,电容上的电荷通过泄漏电路放电,使存储的信息丢失。为此,每隔一定时间后就需要对存1的电容重新充电,称为刷新
  • 四管单元电路(DRAM的存储元,非破坏性读出,读出的时候是在补充电荷)
    • 存储逻辑
    • 如下图:
      • notion image
        记忆:跟SRAM一样,看C2。C2没电就是存储0;C2有电就是存储1
    • 工作(读写)
      • 写入
        • 写0:就是给C1充电,C2放电,所以需要给W加高电平
        • 写1:就是给C1放电,C2充电,所以需要给W加低电平
      • 如下图:
        • notion image
          notion image
      • 读取(需要将两根W线都充电至高电平):
        • 读0:此时C1上有电,C2上没电,这个时候T1上就有电流通过。同时W给C1补充电荷(所以读操作也就是一次刷新操作)
        • 读1:此时C1上没电,C2上有电,这个时候T2上就有电流通过。同时W非给C2补充电荷(所以读操作也就是一次刷新操作)
      • 记忆:记住1在左边还有W非在左边,并且读取的时候两根线都是加高电平即可,然后根据存储逻辑来进行判断即可
      • 保持:字线Z加低电平时,T3、T4断开,基本上无放电回路,仅存在泄漏电流,信息可暂存一定时间,需定期刷新(也就是需要定期进行读操作来补充电容泄露的电流)
  • 单管单元(是DRAM的存储元,破坏性读出,因为读出的时候电容就放电了)
    • 存储逻辑
    • 如下图:
      • notion image
        记忆:这个就好记,电容有电就是1,电容没有电就是0
    • 写入(实际上就是通过W线来给电容充放电):Z加高电平,T导通,在W上加高/低电平,写1/0
    • 读出:W先预充电,断开充电回路。(注意此时W的电平应该位于电容的1电平和0电平之间)Z加高电平,T导通,根据W线电位的变化(如果W线电位变高,就说明当前电容为高电平,也就是存储1;如果W线电位变低,就说明当前电容为低电平,也就是存储0),读1/0。注意到读出的时候电容会进行放电/充电,进而改变原来存储的信息,所以单管单元是破坏性读出
    • 保持:Z加低电平,T截止,该单元未选中,保持原状态(也有可能漏电。但是这里不考虑,因为这一点点漏电跟进行读操作时候的变化相比就很小了)
  • 动态MOS存储芯片(不会考滴)
    • 存储芯片2164
    • 如下图:
      • notion image
        实际上DRAM存储芯片跟SRAM存储芯片的引脚没有特别大的区别。
        这里因为是64k个存储单元,一共需要16根地址线。这里只有8根,所以要分时复用(也可以理解为这个芯片里面是一个8*8的矩阵)
        如果将这个芯片看成8*8的矩阵,那么两个片选信号不仅有选中芯片的功能,还能代表当前传入的地址是行地址(高位地址)还是列地址(低位地址)

主存储器组织(重点)

主存储器的逻辑设计(重点)

也就是如何将一堆存储芯片组合成一个主存储器,并且将这个组合成的主存储器跟CPU相连
  • 设计主存需要考虑的问题
    • 需先明确总容量:字数×位数(存储容量的计算公式,这里的位数是指基本字长,也就是编制单元,详见概论)
    • 确定可供选用的存储芯片:类型、型号、每片容量。 可能存在位数字数的扩展问题
      • 位扩展(如:将两个4位芯片接在一起变成8位芯片):各芯片的数据线相拼接,满足位数要求。
      • 字扩展:若干芯片组成连续地址空间的存储器,满足字数要求。
  • 主存逻辑设计示例(可以当例题做捏
  • 如下图:
    • 例一:所有芯片的字数都是一样的
      notion image
      notion image
      notion image
      总结:先确定芯片内的寻址范围,剩下的就用来当片选信号
      例二:芯片的字数不同
      notion image
      notion image
      总结:先分配大容量芯片(就是将大容量芯片放在地址低端。此时可能会导致一些空间没办法使用,直接浪费掉就好了),然后再分配小容量芯片。同样是先确定芯片内部的寻址范围(不同字数的芯片分别考虑),然后再确定每一个芯片的片选逻辑(这个时候字数小的芯片的片选逻辑就会多几位)
  • 片选地址译码
notion image
还没写完哇。。。(之后可能会补上捏)
Paper2PX4
Loading...
Noah
Noah
永远年轻,永远热泪盈眶
公告
❗❗复习笔记问题❗❗
由于兼容性问题
导入md文件可能导致了一些格式错误
🌹如发现格式错误,请联系我~🌹
🌹如博客内容有误也欢迎指出~🌹