【Computer Organization笔记19】层次存储器系统概述及动态存储器

本次笔记内容:
P37 计算机组成原理(37)
P38 计算机组成原理(38)

我的计组笔记汇总:计算机组原理成笔记

视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完

幻灯片见我的 GitHub 仓库:计算机组成原理 src/slides

本节课幻灯片:组成原理31 dram.pptx

本节课进入第三单元。

文章目录

本单元内容提要
  • 第一讲 层次存储器系统概述及动态存储器
  • 第二讲 静态存储器及高速缓冲存储器
  • 第三讲 高速缓冲存储器的组成与运行原理
  • 第四讲 虚拟存储器的运行原理
  • 第五讲 磁表面存储设备的存储原理与组成
  • 第六讲 MIPS系统异常处理和响应

与 13 年的课不同的是,19年课程中去掉了“光盘”的部分,用 MIPS 取而代之。

控制器那单元不太好出题,因此用大实验替代;本单元与操作系统联系紧密,适于出题。

本讲概要
  • 存储器系统功能
  • 存储器系统的设计目标
  • 需要解决的问题
  • 层次存储器系统
  • 动态存储器的组成与原理
计算机硬件系统

【Computer Organization笔记19】层次存储器系统概述及动态存储器

存储器地位和作用

  • 存储程序使计算机走向通用。
  • 计算机中用来存放程序和数据的部件,是Von Neumann结构计算机的重要组成,是计算机的中心
  • 程序和数据的特点:
    • 源程序、汇编程序、机器语言程序
    • 各种类型的数据
    • 共同点:二进制数据

对存储介质的基本要求

  • 能够有两个稳定状态来表示二进制中的“0”和“1”
  • 容易识别
  • 两个状态能方便地进行转换
  • 几种常用的存储方式:磁颗粒半导体(电平/电容)

早期存储器:水银延迟线存储器

【Computer Organization笔记19】层次存储器系统概述及动态存储器

磁芯存储器

  • 圆柱型陶瓷上涂磁粉
  • 手工穿线,水手结
  • 消磁后重写

【Computer Organization笔记19】层次存储器系统概述及动态存储器
这个存储器在历史舞台呆了很久。发明者是华裔王安。

需要很大人工。

半导体存储器

存储原理:

  • MOS管寄生电容
  • 触发器

访问机制:

  • 随机访问(所谓随机访问,是访问地址与读取时间没关系)

分类:

  • ROM、RAM
  • SRAM、DRAM
现代计算机存储器系统

主存储器:

  • 寄存器 Register
  • 高速缓存 Cache
  • 主存储器 Main Memory

辅助存储器:

  • 磁盘 Disk
  • 磁带 Tape
  • 光盘 Compact Disc

不同类型存储器比较

【Computer Organization笔记19】层次存储器系统概述及动态存储器

按访问方式分类

随机访问存储器(RAM):

  • 访问时间与存放位置无关
  • 半导体存储器

顺序访问存储器(SAM):

  • 按照存储位置依次访问
  • 磁带存储器

直接访问存储器(DAM):

  • 随机+顺序
  • 磁盘存储器

关联访问存储器(CAM):

  • 根据内容访问
  • Cache和TLB

存储器系统设计目标

  • 尽可能快的存取速度:应能基本满足CPU对数据的访问要求
  • 尽可能大的存储空间:可以满足程序对存储空间的要求
  • 尽可能低的单位成本(价格/位):用户能够承受的范围内
  • 较高的可靠性

摩尔定律

【Computer Organization笔记19】层次存储器系统概述及动态存储器
1965年,Intel公司创始人之一Gordon Moore提出:芯片上集成的晶体管数量每18个月翻一番。
【Computer Organization笔记19】层次存储器系统概述及动态存储器
【Computer Organization笔记19】层次存储器系统概述及动态存储器

存储器对性能的影响

假定某台计算机的处理器工作在:

  • 主频= 1GHz (机器周期为1 ns)
  • CPI = 1.1
  • 50% 算逻指令, 30% 存取指令, 20% 转移指令

再假定其中 10% 的存取指令会发生数据缺失,需要50个周期的延迟:

  • CPI = 理想CPI + 每条指令的平均延迟 = 1.1 + (0.30 x 0.10 x 50)= 1.1 cycle + 1.5 cycle = 2. 6 CPI!
  • 也就是说,处理器 58% 的时间花在等待存储器给出数据上面!
  • 每1% 的指令的数据缺失将给CPI附加0.5个周期!

存储器设计目标

目标:大容量、高速度、低成本、高可靠性

目前现实:

  • 大容量存储器速度慢
  • 快速存储器容量小

如何实现我们的目标呢?

  • 层次存储器系统

层次存储器系统

高速度:

  • 静态存储器速度高
  • 设置较小容量的高速缓冲存储器

大容量:

  • 动态存储器价格适中,速度适中
  • 可作为主存储器

低成本:

  • 磁盘存储器价格低廉
  • 作为辅助存储器,暂存CPU访问频率不高的数据和程序
  • 作为虚拟存储器的载体

程序运行的局部性原理

程序运行时的局部性原理表现在:

  • 在一小段时间内,最近被访问过的程序和数据很可能再次被访问
  • 空间上这些被访问的程序和数据往往集中在一小片存储区
  • 在访问顺序上,指令顺序执行比转移执行的可能性大(大约5:1)

合理地把程序和数据分配在不同存储介质中。

有了局部性原理,我们的层次存储器就有了依据。

层次之间应满足的原则

(1)一致性原则:处在不同层次存储器中的同一个信息应保持相同的值。

(2)包含性原则:处在内层的信息一定被包含在其外层的存储器中,反之则不成立,即内层存储器中的全部信息,是其相邻外层存储器中一部分信息的复制品。

这就是层次存储器基本原理

利用程序的局部性原理:

  • 以最低廉的价格提供尽可能大的存储空间
  • 以最快速的技术实现高速存储访问

【Computer Organization笔记19】层次存储器系统概述及动态存储器

并行技术

主存的一体多字:

  • 一个读写体,每次多个字

单字多体:

  • 多个读写体,交叉编址

多端口存储器

主存储器的作用和连接

存储正处在运行中的程序和数据(或一部分) 的部件,通过地址数据控制三类总线与CPU、与其它部件连通。
【Computer Organization笔记19】层次存储器系统概述及动态存储器

地址总线

地址总线用于选择主存储器的一个存储单元(字或字节),其位数决定了能够访问的存储单元的最大数目,称为最大可寻址空间。例如,当按字节寻址时,20位的地址可以访问1MB的存储空间,32位的地址可以访问4GB的存储空间。

数据总线

数据总线用于在计算机各功能部件之间传送数据,数据总线的位数(总线的宽度)与总线时钟频率的乘积,与该总线所支持的最高数据吞吐(输入/输出)能力成正比。

控制总线

控制总线用于传“控制信号”并不准确。

控制总线用于指明总线的工作周期类型和本次入/出完成的时刻。总线的工作周期可以包括主存储器读周期、主存储器写周期、I/O设备读周期、I/O设备写周期,即用不同的总线周期来区分要用哪个部件(主存或I/O设备)和操作的性质(读或写);还有直接存储器访问(DMA)总线周期等。

主存储器的读写过程

【Computer Organization笔记19】层次存储器系统概述及动态存储器
读过程:

  • 给出地址
  • 给出片选与读命令
  • 保存读出内容

写过程:

  • 给出地址
  • 给出片选与数据
  • 给出写命令
动态存储器的存储原理

动态存储器,是用金属氧化物半导体(MOS)的单个MOS管来存储一个二进制位(bit)信息的。信息被存储在MOS管T的源极的寄生电容CS中,例如,用CS中存储有电荷表示1,无电荷表示0。

动态存储器的写过程

V D D V_{DD} VDD​ 是电源。

写 1

【Computer Organization笔记19】层次存储器系统概述及动态存储器
若CS 上有电荷,则 CS 的电荷不变,保持原记忆的 1 信号不变;

若CS 上有电荷,则 CS 的电荷不变,保持原有的内容 1 不变。

写 0

【Computer Organization笔记19】层次存储器系统概述及动态存储器
若CS 上无电荷,则 CS 无充放电动作,保持原记忆的 0 信号不变。

若CS 上无电荷,则 CS 无充放电动作,保持原记忆的 0 信号不变。

读出过程

【Computer Organization笔记19】层次存储器系统概述及动态存储器
读操作,首先使位线充电至高电平,当字线来高电平后,T导通:

  • 若 CS 上无电荷,则位线上无电位变化 ,读出为 0 ;
  • 若 CS 上有电荷,则会放电,并使位线电位由高变低,接在位线上的读出放大器会感知这种变化,读出为 1。

但是,有一个问题:读了 1 ,电容电放没了,变成 1 了。

动态存储器的工作特点

破坏性读出:

  • 读出时被强制清零
  • 因此,预充电延迟

需定期刷新(防止电掉光):

  • 集中刷新:停止读写,逐行刷新
  • 分散刷新:定时周期性刷新

刷新的单位是页,因此要做快速分页组织。

破坏性读出:读操作后,被读单元的内容一定被清为零,必须把刚读出的内容立即写回去,通常称其为预充电延迟,它影响存储器的工作频率,在结束预充电前不能开始下一次读。

要定期刷新:在不进行读写操作时,DRAM 存储器的各单元处于断路状态,由于漏电的存在,保存在电容CS 上的电荷会慢慢地漏掉,为此必须定时予以补充,通常称其为刷新操作。
刷新不是按字处理,而是每次刷新一行,即为连接在同一行上所有存储单元的电容补充一次能量。 刷新有两种常用方式:①集中刷新,停止内存读写操作,逐行将所有各行刷新一遍;②分散刷新,每一次内存读写后,刷新一行,各行轮流进行。或在规定的期间内,如 2 ms ,能轮流把所有各行刷新一遍。

快速分页组织的存储器:行、列地址要分两次给出,但连续地读写用到相同的行地址时,也可以在前一次将行地址锁存,之后仅送列地址,以节省送地址的时间,支持这种运行方式的被称为快速分页组织的存储器。

动态存储器读写过程(行/列地址)

【Computer Organization笔记19】层次存储器系统概述及动态存储器
动态存储器集成度高,存储容量大,为节约管脚数,地址分为行地址列地址

DRAM 写时序

【Computer Organization笔记19】层次存储器系统概述及动态存储器

DRAM 读时序

【Computer Organization笔记19】层次存储器系统概述及动态存储器

小结

程序的局部性原理:

  • 时间局部性:最近被访问过的程序和数据很可能再次被访问
  • 空间局部性:CPU很可能访问最近被访问过的地址单元附近的地址单元。

利用程序的局部性原理:

  • 使用尽可能大容量的廉价、低速存储器存放程序和数据。
  • 使用高速存储器来满足CPU对速度的要求。

动态存储器DRAM:

  • 电容充放电来存储数据
  • 集成度高、容量大、能耗低、速度慢
上一篇:关于placement new


下一篇:数组排序-冒泡排序-选择排序-插入排序-希尔排序-快速排序-Java实现