slacr_

Just to record my life and thoughts.
笔记/编程/杂乱/极简

[计组笔记]存储系统和结构

Apr 25, 2023CS2731 words in 18 min

书写的太差, 根本不是为了让正常人看懂.

存储器分类

按存储器在计算机系统中的作用分类

  • 高速缓冲存储器 cache
  • 主存储器
  • 辅助存储器

按存取方式分类

  • 随机存取存储器(Random Access Memory,RAM)
  • 只读存储器(Read Only Memory,ROM)
  • 顺序存取存储器(Sequential Access Memory,SAM)
  • 直接存取存储器(Direct Access Memory,DAM)

按存储介质分类

  • 磁芯存储器
  • 半导体存储器
  • 磁表面存储器
  • 光存储器

按信息的可保存性分类

断电后存储信息即消失的存储器称为易失性存储器,例如半导体RAM。断电后信息仍然
保存的存储器称为非易失性存储器,例如ROM、磁芯存储器、磁表面存储器和光存储器。

存储系统层次结构


主存储器的组织

主存通常由存储体、地址译码(address decoding)驱动电路、I/O和读写电路组成

主存储器的存储单元

主存储器的主要技术指标

  • 存储容量
  • 存取速度 主存的存取速度通常由存取时间T_n、存取周期T_m和主存带宽B_m等参数来描述
  • 可靠性
  • 功耗

数据在主存中的存放

半导体随机存储器和只读存储器

RAM记忆单元电路

通常把存放一个二进制位的物理器件称为记忆单元,它是存储器的最基本构件,地址码相同的多个记忆单元构成一个存储单元。记忆单元可以由各种材料制成,但最常见的由MOS电路组成。RAM又可分为静态RAM(Static RAM,SRAM)和动态RAM(Dynamic RAM,DRAM)两种。

刷新方式

常见的刷新方式有集中式、分散式和异步式3种

  • 集中式刷新
    在允许的最大刷新间隔(如2ms)内,按照存储芯片容量的大小集中安排若干个刷新周期,刷新时停止读写操作。


    ==151==
  • 分散式刷新
    分散刷新是指把刷新操作分散到每个存取周期内进行,此时系统的存取周期被分为两部分,前一部分时间进行读写操作或保持,后一部分时间进行刷新操作。在一个系统存取周期内刷新存储矩阵中的一行。
  • 异步刷新方式
    异步刷新方式可以看成前述两种方式的结合,它充分利用了最大刷新间隔时间,把刷新操作平均分配到整个最大刷新间隔时间内进行,故有:

RAM芯片地址译码方式

RAM芯片中的地址译码电路能把地址线送来的地址信号翻译成对应存储单元的选择信号。地址译码方式有单译码和双译码两种。

单译码方式又称字选法,所对应的存储器是字结构的.
字结构的优点是结构简单,缺点是使用的外围电路多,成本昂贵。更严重的是,当字数大大超过位数时,存储体会形成纵向很长而横向很窄的不合理结构,所以这种方式只适用于容量不大的存储器。

双译码方式又称为重合法。通常是把K位地址线分成接近相等的两段,一段用于水平方向作X地址线,供X地址译码器译码;一段用于垂直方向作Y地址线,供Y地址译码器译码。X和Y两个方向的选择线在存储体内部的每个记忆单元上交叉,以选择相应的记忆单元。

ROM的类型

ROM的最大优点是具有非易失性,即使电源断电,ROM中存储的信息也不会丢失。

  • 掩膜式ROM(MROM)
  • 一次可编程ROM(PROM)
  • 可擦除可编程ROM(EPROM)
  • 闪速存储器(Flash Memory)

半导体存储器的封装

DIP存储芯片

过去一般存储芯片都是双列直插封装(Dual In-line Package,DIP)的。这种内存芯片必须焊接在主板上才能使用,一旦某一块芯片坏了,必须焊下来才能更换。

内存条

目前,厂家广泛地使用单列直插存储模块(Single In-line Memory Module,SIMM)、双列直插存储模块(Dual In-line Memory Module,DIMM)以及Rambus直插存储模块(Rambus In-line Memory Module,RIMM),这些就是通常所说的内存条。内存条实际上是一条焊有多片存储芯片的印刷电路板,插在主板内存插槽中(不同的内存条必须安装在与其对应的专用插槽上),这样内存条就可以随意拆卸了。
DIMM有多种类型:标准的DIMM、DDR DIMM、DDR2 DIMM、DDR3 DIMM和DDR4 DIMM。

主存储器的连接与控制

主存容量的扩展

根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出总的芯片数,即

将多片组合起来常采用位扩展法、字扩展法、字和位同时扩展法
==158==

主存储器和CPU的连接

主存与CPU的硬连接有3组连线:地址总线(AB)、数据总线(DB)和控制总线(CB)

DDR SDRAM
双数据传输率同步动态随机存储器(Double Data Rate SDRAM,DDR SDRAM)也可以说是SDRAM的升级版本,DDR SDRAM运用了更先进的同步电路,它与SDRAM的主要区别是:DDR SDRAM不仅能在时钟脉冲的上升沿读出数据而且还能在下降沿读出数据,不需要提高时钟频率就能加倍提高SDRAM的速度
DDR SDRAM的频率可以用工作频率和等效传输频率两种方式表示,工作频率是内存颗粒实际的工作频率(又称核心频率),但是由于DDR可以在脉冲的上升沿和下降沿都传输数据,因此传输数据的等效传输频率是工作频率的两倍。由于外部数据总线的宽度为64位,所以数据传输率(带宽)等于等效传输频率×8。

高速缓冲存储器cache

高速缓存工作原理

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

Cache的基本结构

地址映像

在Cache中,地址映像是指把主存地址空间映像到Cache地址空间,也就是把存放在主存中的程序按照某种规则装入Cache中。地址映像的方法有3种:全相联映像、直接映像和组相联映像

全相联映像

全相联映像就是让主存中任何一个块均可以映像装入到Cache中任何一个块的位置上. 全相联映像方式比较灵活,Cache的块冲突概率最低、空间利用率最高,但是地址变换速度慢,而且成本高,实现起来比较困难

直接映像

直接映像是指主存中的每一个块只能被放置到Cache中唯一的一个指定位置,若这个位置已有内容,则产生块冲突,原来的块将无条件地被替换出去。直接映像方式是最简单的地址映像方式,成本低,易实现,地址变换速度快,而且不涉及其他两种映像方式中的替换算法问题。但是,这种方式不够灵活,Cache的块冲突概率最高,空间利用率最低。

组相联映像

组相联映像将Cache空间分成大小相同的组,让主存中的一块直接映像装入Cache中对应组的任何一块位置上,即组间采取直接映像,而组内采取全相联映像

替换算法

在采用全相联映像和组相联映像方式从主存向Cache传送一个新块,而Cache中的空间已被占满时,就需要把原来存储的一块替换掉。常用的替换算法有下述3种。

  • 随机算法
  • 先进先出(FIFO)算法
  • 近期最少使用(LRU)算法

更新策略

Cache有两种更新策略:写直达法和写回法
==179==

微机中Cache技术的实现

Cache刚出现时,典型系统中只有一个Cache,而近年来的微机系统中普遍采用了多个Cache。多个Cache的含义有两方面:一是增加Cache的级数;二是将统一的Cache变成分开的Cache。

多级缓存, 在拥有三级缓存L3 cache的CPU中,只有约5%数据需要从内存中调用

统一缓存是指指令和数据都存放在同一个Cache中。而分开缓存是指指令和数据分别存放在两个Cache中,一个称为指令Cache,另一个称为数据Cache。

虚拟存储器

虚拟存储器由主存储器和联机工作的辅助存储器(通常为磁盘存储器)共同组成,这两个存储器在硬件和系统软件的共同管理下工作,对于应用程序员,可以把它们看作一个单一的存储器。

虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的存储空间。在这个大空间里,用户可以自由编程,完全不必考虑程序在主存是否装得下以及这些程序将来在主存中的实际存放位置。

参考

  1. 《计算机组成原理(第四版)》 IBSN 9787302530213
  • Author:

    slacr_

  • Copyright:

  • Published:

    April 25, 2023

  • Updated:

    April 25, 2023

Buy me a cup of coffee ☕.

1000000