计算机组成原理---第四章 存储器(上)

存储器

功不唐捐

笔记框架:

概述

4.1.1存储器分类

存储器分类

4.1.2 存储器的层次结构

1.存储器速度,容量和价位的关系
存储器的层次结构
没有哪个存储器是可以同时满足这三个要求的

这就形成了不同的存储结构之间相互组合最终组成一个如下存储系统层次结构

2.存储系统层次结构
两个层次
(1)缓存-主存
解决问题:CPU 与 主存 速度不匹配问题
完成:硬件完成
透明:透明(程序员不用知道内部如何实现)
(2)主存-辅存
解决问题:存储系统的容量问题
完成:硬件+操作系统(软件)

为了增加 主存和辅存的容量这里添加了虚拟存储器,程序员会得到一个更大的存储空间,将虚拟地址转换为逻辑地址后对数据进行存取,而这一过程对程序员是透明的。对于虚拟存储器的深入理解可以看链接

4.2 主存储器

4.2.1概述

1.主存储器的详细构成

在这里插入图片描述

2.主存储器与 CPU 的连接

在这里插入图片描述

读数据: CPU 将该字的地址送到 MAR ,经地址线转到主存,读出此单元的数据。内存将数值读到数据总线上再由 CPU 控制 MDR 送到相应的部件上

存数据: CPU 将该字所在主存储单元的地址 由 MAR 送到地址主线,将字节信息存入 MDR,CPU 再向内存发出写命令,再将 MDR 的信息写入对应的地址线上传给相应的部件

3.主存中存储单元地址的分配

地址分配问题就是在已知地址线,电脑位数的情况下,以按字,按字节寻址内存的寻址范围是多少,即如何给内存单元进行编号。笔记进行了单独的整理

按字节/字寻址

题:一个机型:有24根地址线,字长为32位,则

每一个存储字包含4个字节,按字存储需要两根地址线

按字节寻址
224 = 16M
按字寻址
224-2 =4M

另一个机型:有24根地址线,字长为16位,则

每一个存储字包含2个字节,按字存储需要一根地址线

按字节寻址
224 = 16M
按字寻址
224-1 =8M

4.主存的技术指标

主存的技术指标

4.2.2 半导体存储芯片

什么是存储芯片

在这里插入图片描述

在内存条中这样的一个个的黑色方块就是存储芯片,芯片中有:具有记忆功能的存储矩阵,译码驱动电路和读/写单路等,下面将从芯片整体出发逐个剖析芯片内部

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

内存芯片的结构
存储芯片包含三部分:译码驱动存储矩阵, 读/写电路
其中存储芯片依靠:地址总线,数据总线,控制总线(片选线+读/写控制线)与外部链接。下面是这几个概念的解释

(1)译码驱动:将地址总线的地址送来的地址号翻译成对应存储单元的选择信号
(2)读/写电路:用来完成读写操作
(3)地址线:单项输入,将地址输入由 CPU 或其它设备用来寻找数据。上图有对于地址线,数据线的计算问题,具体计算可见按字节/字寻址
(4)数据线:双向传输,与数据的输入输出有关
(5)片选线:用于选择芯片 ,判断所给出的地址是否是针对这个存储芯片的地址,被选择的存储单元与字节是否在此芯片当中。用 CS(有上划线)或CE(有上划线)信号判断

带上划线的信号什么意思
带有上划线的信号是指,该信号在低电平有效,如果一个信号 CE 为低电平状态则代表这个芯片就是所选的芯片

(6)读/写控制线:决定芯片的读/写操作,可用 WE一个信号的两种状态表示写/写操作,或者 OE(上划线)及 WE(上划线)两个信号分别表示读操作和写操作
(7)芯片的组合:

数据存储

例如:一个芯片的大小为 16K * 1位,如果想要一个 64K * 8 位的内存,首先将8个内存芯片组成一组,要有四组,所以一共有32个芯片,这32个芯片被片选线进行连接。
第一组存储芯片的地址为:0 ~ 16K-1
第二组存储芯片的地址为:16K ~ 32K-1
第三组存储芯片的地址为:32K ~ 48K-1
第四组存储芯片的地址为:48 ~ 64K-1
所以如果想访问 地址65535 时 ,在最后一列的那八个的片选器是有效的

2.半导体存储芯片的译码驱动方式

主要是用于:地址总线给出了地址后如何在内存中找到存储单元

有两种方法 : 线选法重合法
1.线选法
线选法
特点:一根字选线对应一根存储单元
工作原理: 这里有 4根地址线 A1,A2,A3,A4,这四根地址线可以表示 16 个存储单元,在内存中对应了16根字线,可以看到是 0~15,选中0000这个存储单元,其余 15根不选中。用下面的8根位线直接为单元内每一位传输数据

缺点: 如果有一个 1M 的地址线,那么在内存中就要部署 220个字线,来对这 1M 的存储单元写入数据,这样会对内存电路集成中造成很大困难,所以这种方法更适合存储量不大的芯片

2.重合法
在这里插入图片描述

特点: 将线选法中单一的地址译码器分成了行地址译码器和列地址译码器,行和列的交汇处共同锁定一个单元
工作原理: 加入选中行地址译码器为 00000,这时0行一整行都被选中。然后让列地址译码器为00000,那么就可以确定是0行0列的这个单元
适用性: 更适合存储大的内存芯片

4.2.3随机存储器(RAM)

随机存储器可以分为:静态RAM(SRAM) 与 动态 RAM(DRAM) 。根据不同的特性在电脑中承担的任务也不同

1.静态 RAM

(1)静态 RAM 的基本电源电路

基本电源电路:用于存储 0/1 代码的那一块电路

T1~T4是用来保存数据的触发器。触发器用于保存数据,保存电路的状态
当进行数据传输时,片选器选中的整行行开关会被全部打开,但是只有列地址是通着的那一列上的触发器才会被保存数据。A 是触发器的源端,A’ 是触发器的非端

读操作
下方的图是由 6根 MOS(晶体管的一种)组成的基本电路
在这里插入图片描述
首先经过译码之后相应的 T5,T6打开;其次让 T7,T8打开。假设触发器已存有 1 信号,即A点为高电平,这时 T6被接通

在这里插入图片描述
再由位线 A 通过T8作为读出放大器的输入信号,在读选择有效时将 1 输出

写操作
写1
根据译码将响应的 T5,T6,T7,T8晶体管打开,写选择器有效

在这里插入图片描述
同过 DIN 这条线将数据由左右两端进行输入分别通向 A,A’,最终将数据写入

在这里插入图片描述
左边的电路有取反操作,保证了 A’ 中写入的数据是相反的,最终完成写的操作

(2)静态RAM芯片存储矩阵

Intel2114

这是一个Intel2114 RAM芯片,下面是它的结构

A0~A9 是10根地址线,说明有 1M 的存储单元
I/O1~I/O4 是四根数据线,可以存放 4位的数据,一次读取四位的数据
WE,CS 分别是片选线与读写控制线,低电平有效
于是就组成了一个 1K x 4位 为的芯片,这个存储矩阵由 64 x 64 个基本单元电路组成

下面是针对这个芯片整体的读写过程,相比于上面更加宏观

读操作
在这里插入图片描述
2114结构可以一次传输 4 位的数据,所以可以将这个64 * 64的矩阵分为4组,每组里面有16个单元。

在这里插入图片描述
假设我将行地址译码输入000000,则会选中0行的所有单元,也就是上方图紫色的单元;列地址译码输入0000,则会选中每一组的第一个单元;行选择,列选择同时工作,由下方的 WE,CE同时控制就可以实现对于黄色框的读数据操作。
根据上面的基本电路的知识,最终通过读写电路将 A端与A’ 端的数据读取出来

写操作结构相似

2.动态RAM

(1)动态 RAM 的基本单元电路
常见的动态 RAM 基本单元电路有 三管式和单管式两种。与静态RAM的触发器不同,动态RAM使用电容存储数据,电容中有电荷为1否则为0

a. 三管式
在这里插入图片描述
T1,2,3 三个控制管,通过他们控制数据读出和写入
T2读,T3写,保存在 Cg电容当中

b.单管
在这里插入图片描述
通过 T 这个控制管,将数据保存在 Cs电容当中

(2)对基本单元电路如何读出和写入

a.三管式

读操作

如果进行读操作,首先将 T4晶体管进行通电,VDD通过T4读数据线进行充电,读选择信号有效,T2也就会被导通。
在这里插入图片描述
如果Cg没有进行充电是0,也就是我们想要读出的数据是0,T1不用进行通电,电流只通过T2传到读数据线,最终的结果是高电平1。读取的数据也是1.
在这里插入图片描述
如果我们想要读出的数据是1,Cg中的数据是1,则 T1进行通电,那么电流就会通过 T1,T2同时放电,高电平变低电平,于是读数据线的数据就是0。

所以对于读操作读出的数据最后要加一个 “非门”逻辑判断

写操作
与读操作相似,写操作只需T3一个晶体管控制,T3通电写入1,不通电写入0

读出与原存信息相反
写入与输入信息相同

b.单管

读操作
在这里插入图片描述
如果 CS中保存的是0,则数据线没有电流
在这里插入图片描述
如果 CS中保存的是1,则数据线有电流

写操作

写入的是1 : 对电容进行充电
写入的是 0:对电容进行放电

(2)动态 RAM 芯片存储矩阵

a.三管式

读操作

这个芯片有 5根行地址线,5根列地址线。与静态不同在于添加了两个不同的选择线,分别进行读写操作。(在静态中使用的是位线)在这里插入图片描述

假如对 行地址译码器输入 00000,所对应的整行会被连通。列地址译码器输入 00000,最终确定所选单元,也就是黄色的单元。同时相应的读操作的选择线会被选中,通过读写控制电路将数据读出。

刷新放大器:(三角形区域)因为电容会漏电,一定时间之后电容的数据会消失,所以要对存储单元恢复存储状态。

写操作

在这里插入图片描述

写入时换了传入的地址,最终在黄色单元内进行数据的写入。

b.单管

芯片结构

单管芯片结构4116单管芯片:这是一个 16K x 1位的存储芯片,它的特殊之处在于理应该有14根地址线,但是这里只有7根,地址分两次传输,先送 7位行地址保存到芯片内的行地址缓存器,再传入列地址。芯片内有时序电路,它受 行地址选通 RAS(上划线),列地址选通 CAS (上划线),以及写允许信号 WE(上划线)控制

存储矩阵示意图

读操作
在这里插入图片描述
假设选中63行0列的单管MOS电路电容当中保存的信息会被送出,到读放大器的左侧,如果电容中有电,读放大器左侧为1,右侧为0.如果没有电,左端为0,右端为1。相反,读放大器右侧的电路,电容中为1输出的就是1

读放大器左侧,有电最后输出为0,没有电输出为1
读放大器右侧,有电最后输出为1,没有电输出为0

写操作

在这里插入图片描述
写操作与读操作一致,放大器右侧读写始终一致,左侧,如果想要写入1,则保存的是0.

这样一想,如果我们在左侧保存1,实则保存的是0。在读出的时候由于读放大器所以再取一次反,读出的就是1了不用再取反

这样使写入与读取一致

撬撬板电路:读放大器是一个撬撬板电路,类似一个触发器,使得左右 两边电平相反

(3)动态RAM 的刷新

首先先认识几个定义

存取周期:对于某个单元存取一次数据所用的时间
刷新周期:存储单元恢复一次原状态的时间间隔

  1. 集中刷新

定义:在规定的一个刷新周期内,对全部的存储单元逐行进行刷新

在这里插入图片描述

对一个 128 x 128矩阵的存储芯片进行刷新,存取周期为 0.5us,刷新周期为2ms,是4000个存取周期。
对128行进行逐行刷新共需 64us(128个存取周期)还剩3872个存取周期,用来让 CPU,I/O设备读,写维持信息。
这64us不能进行读/写,CPU,I/O设备只能等待,所以这段时间成为死时间,访存区成为死区。死时间率为 128/4000=3.2%。这也是集中刷新的缺点。

2)分散刷新
定义:对每行存取单元的刷新分散到每个存储周期完成。将每个单元的存储周期分为两段,每段为0.5us,tM 段用于tR,tM 可以用于CPU等设备的读写操作;tR用于刷新。这样的好处就是没有死区

在这里插入图片描述
一个128 x 128的矩阵,2ms为一个刷新周期,可以将数据刷新156遍,但是刷新太过频繁,系统性能会降低

3)异步刷新
定义: 将前两种方法结合

在这里插入图片描述

存储周期是0.5us,并且在2ms内将所有行刷新一遍即可,所以每隔15.6us刷新一行,刷新这一行的死时间为 0.5us,如果说将这段死时间进行合理安排,比如安排CPU译码则避免了内存CPU的信息传输,避免死时间,提升工作效率

3.静态 RAM(DRAM) 动态 RAM 比较(SRAM)

在这里插入图片描述

静态 RAM 多用于做 cash ,动态RAM多用于做 内存存储


总结

l8zNjczMTcwNg==,size_16,color_FFFFFF,t_70)

  • 44
    点赞
  • 178
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值