锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

预习计算机组成原理之存储器——笔记2

时间:2022-12-23 18:00:00 集成电路x0ms类型晶体管g547g2p81u集成电路

系列文章目录

第四章 存储器


文章目录

  • 系列文章目录
  • 前言
  • 一、存储器概述
  • 二、 半导体存储器芯片简介
    • 2.1 半导体存储芯片的基本结构
    • 2.2 半导体存储芯片的解码驱动模式-线选法
    • 2.3 半导体存储芯片的解码驱动模式-重合法
  • 三、随机存取存储器(RAM)
    • 3.1 静态RAM(SRAM)
      • 3.1.1 静态RAM基本电路
      • 3.1.2 静态RAM经典芯片
    • 3.2 动态RAM(DRAM)
      • 3.2.1 第一个基本单元电路,三管动态RAM
      • 3.2.2 第二种基本单元电路,单管动态RAM
      • 3.2.3 动态RAM经典芯片(三管)
      • 3.2.4 动态RAM经典芯片(单管)
      • 3.2.5 动态RAM刷新
    • 3.3 动态RAM和静态RAM的比较
  • 四、只读存储器(ROM)
    • 4.1 发展历程
    • 4.2 掩模ROM(MROM)
    • 4.3 PROM(一次性编程)
    • 4.4 EPROM(多次编程)
    • 4.5 EEPROM(多次性编程)与 Flash Memory 等待其他存储器
  • 五、存储器和CPU的连接
    • 5.1 扩展存储容量
      • 5.1.1 位扩展(如两个 I K × 4 IK\times4 IK×4位组成 I K × 8 IK\times8 IK×8位)
      • 5.1.2 字扩展
      • 5.1.3 同时扩展
    • 5.2 存储器与CPU的连接
  • 六、 检查存储器
    • 6.1 检测和纠错编码的能力
    • 6.2 典型例子:汉明码
      • 6.2.1 简要介绍汉明码
      • 6.2.2 如何分组汉明码?
      • 6.2.3 汉明码的组成
      • 6.2.4 编码例题
      • 6.2.5 汉明码纠错过程
  • 七、提高访存速度的措施
    • 7.1 提高访存速度的措施
      • 7.1.1 调整主存结构之一:单体多字系统
      • 7.1.2 调整主存结构之二:高位交叉
      • 7.1.3 调整主存结构三:低交叉
      • 7.1.4 调整主存储结构4:高性能存储芯片
  • 八、习题课
    • 8.1 字节编址和地址分配
    • 8.2 由存储器组成的简单计算
    • 8.3 以及存储芯片的选择CPU与其连接题(经典74138译码器与书中的例题一致)
    • 8.4 以及存储芯片的选择CPU与之相连的高级题
    • 8.5 交叉编址和多体并行系统
  • 九、高速缓冲存储器
    • 9.1 概述
      • 9.1.1 为什么用cache
      • 9.1.2 cache的工作原理
      • 9.1.3 cache的基本结构
      • 9.1.4 cache的读写操作
      • 9.1.5 cache的改进
    • 9.2 cache-主存地址映射
      • 9.2.1 直接映射
      • 9.2.2 全相联映射
      • 9.2.3 组相联映射(几路就是一组有多少块)
    • 9.3 替换算法
  • 十、辅助存储器
    • 10.1概述
    • 10.2 磁记录原理
    • 10.3 硬磁盘存储器
    • 10.4 软磁盘存储
    • 10.5 光盘存储器


前言

现在是7月12号了,继续学习第四章存储器的内容


一、存储器概述

执行程序需要的指令数据都来自存储器,执行结果也存储在存储器中

1.1 存储器类型(分类)

教材给出了三种分类方法

1.1.1 按存储介质分类

  1. 半导体存储器——电脑的内存条/U盘——分为两种一种是TTL(晶体管-晶体管逻辑)另一种是MOS(金属-氧化物半导体场效应晶体管
    TTL:集成度低、功耗高、速度快
    MOS:集成度高、功耗低
    现在计算机内存主要是MOS型的半导体
  2. 磁表面存储器(要有磁头和载磁体)
  3. 磁芯存储器 (core memory)
  4. 光盘存储器 激光、磁光材料构成

半导体存储器是易失的,断电后不会保存
磁表面存储器、磁芯存储器 和光盘存储器 是非易失的,断电后仍然保存

1.1.2 按存取方式分类

  1. 存取时间与物理地址无关(随机访问)
    随机存储器 在程序的执行过程中 可读可写 ——RAM
    只读存储器——程序执行过程中 只读,可以用来存放系统参数与系统程序
  2. 存取时间和物理地址有关(串行访问)
    顺序存取存储器——磁带
    直接存取存储器——磁盘

1.1.3 按在计算机中作用分类

存储器分为主存储器和辅助存储器
主存储器 分为:
RAM(可读可写)——随机存储器,用户的数据和用户的程序。分为静态RAM和动态RAM(电容)
ROM (只读)

主存储器和辅助存储器之间可以再放上 Flash Memory。
U盘,半导体存储器,速度比磁盘块,比主存储器慢;
计算机硬盘(比较高性能的计算机);
在主存储器和辅助存储器之间的缓存,SSD核心的存储材料就是Flash Memory

高速缓冲存储器,即cache
放在主存储器和CPU之间,比主存、Flash Memory快,通常用静态RAM来做
在这里插入图片描述

1.2 存储器的层次结构

1.2.1 存储器三个主要特征的关系

速度、容量、价格/位

寄存器和缓存的一部分在CPU中,不过一些I/O端口中也有寄存器

寄存器分为两类:
体系结构寄存器(不透明,提供给机器语言程序员的,可以通过机器语言指令操作)
非体系结寄存器(透明的,不需要机器语言程序员了解,不能通过指令操作)

1.2.2 两个重要的存储层次:缓存—主存层次 和 主存—辅存层次

缓存—主存层次 用硬件连接起来,因为注重的是速度提升,对机器语言程序员来说是透明的,不可见的
主存—辅存层次软件硬件结合的方式,因为这里注重的是容量提升

缓存—主存层次的整体看作主存储器,使用的地址直接是主存的地址,如果缓存有就会通过分块偏移找到位置
主存—辅存的整体看作虚拟存储器,使用的时候用的是虚拟地址,逻辑地址

1.3 主存储器概述

1.3.1 主存的基本组成

我们已经直到存储器的构成是:存储体、MAR、MDR。主存要更复杂一些
MAR存储地址,通过译码器等等器件在存储体找到位置
控制电路通过读写电路控制数据方向

1.3.2 主存与CPU之间的联系

连接是三种类型的信号:
数据总线
地址总线
控制总线(读、写等控制信号)

1.3.3 主存中存储单元地址的分配

假设存储字长:32位,即对这个存储器的读和写,一次是读或者写32个0/1
主存的编址,编址是8位,每一个字节都有个地址。

那么定义:这存储字的每一个字节都有一个字节地址,但是存储字的字地址在大端方式中是高位字节的地址
在小端方式中是低位字节地址

1.3.4 主存的技术指标

两个技术指标——速度和容量

存取周期 是第一次开始到第二次开始之间的最小时间间隔
任何一种存储器,在读写操作后,总要有一段恢复内部状态的复原时间。对于破坏性读出的存储器,存取周期往往比存取时间大得多,因为存储器中的信息读出后需要马上进行再生。
存取时间一般比存取周期短

存储器带宽是单位时间传输的位数或者字节数

二、 半导体存储器芯片简介

2.1 半导体存储芯片的基本结构

地址线是单向的,可以是CPU或者是I/O设备的控制器指向存储器
读/写控制线可以是一条也可以是两条

片选线 半导体芯片片选线有两种标识方式: C S ‾ \overline{CS} CS C E ‾ \overline{CE} CE 这两个上面都有一个横线,都是表示低电平有效

C S ‾ \overline{CS} CS 芯片选择
C E ‾ \overline{CE} CE 芯片使能信号
W E ‾ \overline{WE} WE 读/写控制线 ,一根线。低电平表示写操作
若是两根线,那么是 W E ‾ \overline{WE} WE O E ‾ \overline{OE} OE 与读/写控制线 ,两根线,前者低电平表示写,后者低电平表示读

2.2 半导体存储芯片的译码驱动方式——线选法

地址有4位,每一个地址输出数据8位,那么就是 16 ∗ 8 16*8 168
但是如果是1M*8的存储器,那就需要20根地址线,从地址译码器发出的线有100万根线,很难做到集成

2.3 半导体存储芯片的译码驱动方式——重合法

A 0   A 4 是行地址 A_0~A_4是行地址 A0 A4是行地址 A 5   A 9 是列地址 A_5~A_9是列地址 A5 A9是列地址
第0行的X0是有效的
第0列的Y0是有效的
Y0有效,两个
开关打开,(0,0)输出到I/O
Y31则因为管子不导通,无法输出到I/O设备
此时线选法的20位的地址,译码得到的1M根线,重合法只需要行1K,列1K,只需要20条线,集成度可以做得更好。
但是要注意,每一次选中的这个交差点上的存储单元,只包括了一个基本单元电路,每次读出和写入的位数只有1位。一次输出多位的情况见下面2114芯片,如何一次输出4位

三、随机存取存储器(RAM)

内存就是由随机存储器构成
RAM是对应用户的区域和系统程序运行的区域(ROM存储系统程序和保存配置信息的)

3.1 静态RAM(SRAM)

3.1.1 静态RAM基本电路

下面是静态RAM的基本单元
T 1 T_1 T1~ T 4 T_4 T4
触发器用于保存0和1
T 5 T_5 T5 T 6 T_6 T6是由行地址选择,用来控制读和写
这一个小单元是一共是6个晶体管

在大的SRAM中,虚线部分会被重复
T 7 T_7 T7 T 8 T_8 T8是一列共有的开关,叫做列开关
如果选中一个行,那么这行的 T 5 T_5 T5 T 6 T_6 T6都会被打开,但是只有列开关打开的才可以读写操作
注意写操作的时候,因为存储器是双稳态的触发器,所以写入的时候要分两边传,一个传0一个传1

读操作如下:

写操作如下:

3.1.2 静态RAM经典芯片

静态RAM芯片举例:
W E ‾ \overline{WE} WE 读/写控制线 ,低电平则有效,为写操作。高电平是读操作
C S ‾ \overline{CS} CS 片选信号,只有为低电平时候这个芯片才会被选中
A 0   A 9 A_0~A_9 A0 A9是十根地址线,2114芯片是1K个存储单元
I / O 1   I / O 4 I/O_1~I/O_4 I/O1 I/O4是四根数据线,每个存储单元选中后都可以读出或写入4位信号,每个存储单元有四个基本电路
1 K × 4 1K\times4 1K×4在实现中就是 64 × 64 64\times64 64×64的阵列

一个列选信号可以同时选择四列的操作(下图就是每一组的第一列)
读操作如下:

写操作:

3.2 动态RAM(DRAM)


静态RAM使用的是双稳态触发器,动态RAM用的是电容
电容保存了电荷则认为是1,电容中没有电则认为是0

3.2.1 第一种基本单元电路,三管动态RAM

基本单元电路如下:
信息保存在 C g C_g Cg
T 1 T_1 T1 T 2 T_2 T2 T 3 T_3 T3是控制管,进行读出和写入。选择线有效,对应控制管可以导通
以读操作为例,过程如下:
通过预充电信号让 T 4 T_4 T4这个晶体管导通, V D D V_DD VDD会通过 T 4 T_4 T4晶体管给读数据线进行充电。读数据线是1
读操作,读选择线有效, T 2 T_2 T2导通

  1. C g C_g Cg中保存的信号是0,那么 T 1 T_1 T1不会导通
    读数据线保持高电平,那么读数据线上就是1( C g C_g Cg为0)
  2. C g C_g Cg中保存的信号是1,那么 T 1 T_1 T1导通
    读数据线会通过 T 1 T_1 T1 T 2 T_2 T2两个管子进行放电,那么读数据线上就是0( C g C_g Cg为1)

读出的信息和保存的信号相反,因此在接受信号时需要加一个非门
但是如果进行的是写入的话,输入的信息和存储的信息是相同的

3.2.2 第二种基本单元电路,单管动态RAM

竖着的是字线(控制线),相应的行被选中后,T会被打开
C s C_s Cs是1的时候,数据线为1; C s C_s Cs为0的时候,数据线为0

3.2.3 动态RAM经典芯片(三管)

读操作:
存储容量 1 K × 1 1K\times1 1K×1
行地址译码器处,参加译码的不仅仅是地址还有读写控制信号
需要注意的三角形的刷新放大器,因为电容会漏电,刷新放大器对电容保存的信息进行刷新

写操作:

3.2.4 动态RAM经典芯片(单管)

16K应该是14位,地址应该是14位,但是这里只有7位,之前的14位需要分两次传入,第一次传入行地址,第二次传入列地址
芯片有自己的控制器
R A S ‾ \overline{RAS} RAS——行选通信号——行时钟
C A S ‾ \overline{CAS} CAS——列选通信号——列时钟
W E ‾ \overline{WE} WE——读写控制信号——写时钟

读放大器一侧是0那么另一侧是1
一侧是1那么另一侧是0
所以在读放大器的左侧的行 C s C_s Cs是1,输出却是0;右侧则正常输出
然后通过紫色的通道输出

我们再看一下写操作,通过选中的行和选中的列,通过读放大器后做了一次相反操作,存储的信息与输入信息相反(0~63行)但是要注意,正好他们在读的时候也会进行一次取反,两次取反抵消了。

3.2.5 动态RAM刷新

电容容易漏电,一定时间内不对电容的信息进行再生,电容中的电会慢慢漏掉——动态RAM刷新
每一次刷新操作只和行地址有关,跟列地址没有关系,每一次刷新都是一行的所有基本单元电路,而不是某一个存储单元

  1. 集中式刷新——刷新时间集中在一起
    问题:在死区时间内CPU与I/O设备只能进行等待
    死区的计算是对每一行都进行刷新,每一次刷新都是用一个存储周期
  2. 分散刷新
    这里假设的存储周期要比集中刷新的存储周期时间长
    这是因为:
    t M t_M tM:正常的CPU或者I/O与内存进行信息交换的存取周期
    t R t_R tR:专门用于动态RAM芯片某一行的刷新
    t C t_C tC t M t_M tM+ t R t_

相关文章