主 存储器

主存储器

概述

实际上在主存储器运作时,根据MAR中的地址访问某个存储单元时,还需经过地址译码、驱动等电路才能找到所需的访问单元。读出时需经过读出放大器,才能将被选中单元的存储字送到MDR。写入时,MDR中的数据也必须经过写入电路才能真正写入被选中的单元中

主 存储器_第1张图片

现代计算机的主存都是由半导体集成电路构成,上图中的驱动器、译码器和读写电路均在存储芯片中,而MAR和MDR都在CPU芯片内。存储芯片和CPU芯片通过总线相连

要从存储器中读出某一信息时,先由CPU将该字的地址送到MAR,经地址总线送至主存,然后发出读命令。主存接到读命令后,得知需将该地址单元的内容读出,便完成读操作,将该单元的内容读至数据总线上,至于该信息由MDR送到什么地方,这由CPU决定。

主存储器的基本组成

主 存储器_第2张图片

存储器芯片的基本原理

存储元

半导体存储元,如下图所示。其中MOS管看作是用电控制的开关,当MOS管上输入一个足够高的电压MOS管下面的导线才会导通,否则下方的导线不会导通。所以通过MOS管可以控制存储元的读写的开关。而其中的电容可以存储电荷,将有无存储电荷看作0和1.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGzHy3E2-1681625179744)(null)]

MOS管的读

如下图所示。先给MOS管加上一定的电压,表示该存储元要工作,然检测导线右侧有无电流流出,若若检测出电流,则索命电容中有存储电荷即读出的数据为1,否则为0.

主 存储器_第3张图片

MOS管的写

如下图所示。献给导线右侧加上一定的电压表示写入1,给MOS加上一个电压,表示开启对这个存储元的写入。随着导线的接通,电容中就会存储上一定量的电荷,即写入了1。

主 存储器_第4张图片

存储单元

将多个存储元组合起来

如下图所示,可以将多个存储元的MOS管通过电路串联成一个存储元,然后每个存储元右侧通一条导线。这样就可以一次同时操控多个存储单元的读入和写出。这里对应理解存储字,存储字是存储器一次进行读写操作的单位,也就是类似于下图的有几个MOS管同时被一根导线链接,被同一导线连接的MOS管对应的存储单元会同时进行读写操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4CxYGRS-1681625179700)(null)]

存储器芯片

地址译码器的工作过程

​ 紧接着上面的思路。对于一个存储器若有 2 n 2^n 2n个存储元。当要读写一组数据时,MDR会从MAR获得地址,地址译码器将其转化为对应字选线的高电压,如下图所。这样就可以表示对这个存储单元进行读或者写操作。若对应读操作,只需对下图中的绿色导线中的电流进行检测即可。

​ 这里可以理解 总容量 = 存储单元个数 × 存储字长 = 2 地址总线位数 × 存储字长 总容量 = 存储单元个数 \times 存储字长 = 2^{地址总线位数} \times 存储字长 总容量=存储单元个数×存储字长=2地址总线位数×存储字长。这个公式也表明了,一个根地址总线对应一个存储单元,而一个存储单元中又有同时被控制的若干个存储元。

主 存储器_第5张图片

注意:在实际的存储器中为了减少自选线的数量,一般会采用行列地址,甚至是三维地址。不过只是改变了存储单元的排列方式,需要多条自选线才能让一个上存储单元进行工作。

控制电路的工作原理

控制电路的控制分为三个方面:

​ ①第一个方面是控制电路和MAR、MDR的连接线,分别让MAR中的电信号稳定和数据读出时的电信号稳定时才及进行对应的地址翻译和数据读取的操作。

​ ②片选线(CS chip select/CE chip enable)。片选线发出芯片的选择信号/使能信号,表示该片芯片是否工作。因为存储器可能是由多个芯片组成,这个时候CS/CE的作用其实就跟字选线的作用类似

​ ③读写控制。读写控制按照是否复用读写线分为两种。第一种是两根读写线,读控制线和写控制线分开。 W E ‾ \overline{WE} WE和OE(有上划线表示低电平有效)分别表示读写。 第二种是一根读写控制线,低电平表示写,高电平表示读。

主 存储器_第6张图片

译码驱动中的驱动

通常在译码器后面接上一个驱动电路,来放大字选线的信号,这也就是驱动器的作用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JM3e55wH-1681625179664)(null)]

片选线

一个存储器通常由多个芯片组成,通过片选线可以用来指定让哪个芯片工作。类似于自选线。所以片选线的条数可以代表芯片的个数

主 存储器_第7张图片

✨存储芯片金属引脚数判断

存储芯片引脚数 = 地址线数 + 片选线数 + 读写控制线 + 数据线数 + 2 + n 存储芯片引脚数 = 地址线数 + 片选线数 + 读写控制线 + 数据线数 + 2 + n 存储芯片引脚数=地址线数+片选线数+读写控制线+数据线数+2+n

上面中的+2指的是,供电引脚、接地引脚各一根。+n指的是若有其它情况,例如DRAM在采用地址线复用技术时,需要增加行选通线和列选通线。

注意:读写控制线可能是一根也可能是两根。同时需要考虑额外的两根供电引脚、接地引脚

存储器中往往有多个存储芯片,那为什么存储芯片中片选线只有一根呢?

说明当CPU在选择芯片的时候,并没有进行类似于行列选择的多维方式进行选择。而是每个存储芯片连对应一条片选线。那为什么不是一条片选线对应的0~1芯片来选择两个芯片呢?这样不是可以节省片选线的数量嘛?这里应该考虑到存储器和芯片往往分开生产,每个芯片上只对应一个片选线,那么生产芯片时就不需要管使用芯片时的存储体用了几个芯片。

主 存储器_第8张图片


主 存储器_第9张图片

寻址

例如字长为4B,总容量为1KB(地址线10根):

  • 按字节寻址:1K个单元,每个单元1B
  • 按字寻址:256个单元,每个单元4B
  • 按半字寻址:512个单元,每个单元2B
  • 按双字寻址:128个单元,每个单元8B

主 存储器_第10张图片

RAM和ROM

主存储器由DRAM实现,靠处理器的那一层(Cache)由SRAM实现,它们都属于易失性存储器,只要电源被切断,原来保存的信息便会丢失,即属于易失性存储器。DRAM的每位价格低于SRAM,速度也慢于SRAM,价格差异主要是因为制造SRAM需要更多的硅。ROM属于非易失性存储器

SRAM和DRAM的核心区别

DRAM芯片:使用栅极电容存储信息

SRAM芯片:使用双稳态触发器存储信息

DRAM和SRAM的对比

主 存储器_第11张图片

需要注意的是:DARM和SRAM采用不同的送行列地址方式。DRAM分两次送行列地址(地址线复用技术),会导致地址线、地址引脚减半,不过还会增加行通选和上列通选来区分送来的地址类型。

栅极电容VS双稳态触发器

栅极电容存放的电信息被破坏性读出。读出后应有重写操作,也称“再生”。每个存储元制造成本更低,集成度更高,功耗低。存储的电荷只能维持1-2ms,所以隔一段时间需要进行刷新。刷新操作不需要CPU的控制

双稳态触发器读出数据时,触发器状态保持稳定,是非破坏性读出,无需重写。每个存储元的制造成本更高,集成度低,功耗大。不需要进行刷新。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WOzS1iIz-1681625179418)(null)]

DRAM的刷新

因为DRAM中存储的电荷一般只能维持1~2ms,所以每隔一段时间必须刷新。每次刷新都以行为单位,即每次刷新一行存储单元(包含多个存储单元)

在实际的应用中,存储单元以串行排列,选通线数量过多,因此通常采用二维或者三维排列。当进行二维排列时,如下图,则对应使用行列地址。

主 存储器_第12张图片

信息如何刷新呢?

通过硬件支持,读出一行的信息后重新写入,占用1一个读/写周期。具体的操作:

  1. 按行进行内部读操作
  2. 由刷新计数器产生行地址,选择要刷新的行,读即刷新。(但和读操作又有所不同)
  3. 需要刷新的行数为单个芯片单个矩阵的行数(对内部包含多个存储矩阵的芯片或多个存储芯片,各个矩阵同一行同时被刷新)

三种刷新方式

集中刷新。在一个刷新周期内,利用一段固定的时间,依次对存储器的所有行进行再生,在此期间停止对存储器的读写操作,称为死时间死区。优点是存储读写操作时不受刷新工作的影响;缺点是集中刷新时不能访问存储区。

分散刷新。把对每行的刷新分布到各个工作周期中。系统的的工作周期分为两部分:前半部分用于正常读、写或保持;后半部分用于刷新。优点是没有死区;缺点是加长了系统的存取周期

异步刷新。将对所有行的刷新分布到一个刷新周期。具体做法是将刷新周期除以行数,得到两次刷新操作之间的时间间隔t,利用逻辑电路每个时间t产生一次刷新请求。可以将刷新操作安排到CPU不使用内存的阶段,例如译码阶段。

主 存储器_第13张图片

DRAM刷新需要注意的问题:

  1. 刷新对CPU是透明的,刷新不依赖外部的访问
  2. 刷新单位是行,由芯片内部自行生成行地址
  3. 刷新操作类似于读操作,但是又有不同。
  4. 同时对整个存储器中的所有芯片进行刷新

只读存储器ROM

我们知道将存储器按照易失性,分为RAM和ROM。

  • RAM芯片——易失性,断电后数据小时
  • ROM芯片——非易失性,断电后数据不会消失

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqEFEv4W-1681625179556)(null)]

MROM——掩模式只读存储器

厂家按照客户需求,在芯片生产过程中直接写入信息,之后任何人都不能重写,只能读出。

PROM——可编程只读存储器

用户可用专门的PROM写入器写入信息,写一次后就不可更改。具体存储信息的原理是将内部存储元中的熔丝是否熔断表示为0或1。而断的熔丝无法恢复,所以这种ROM只能实现一次编程,不能再修改。

EPROM——可擦除可编程只读存储器

允许用户写入信息,之后用某种方法擦除数据,可进行多次重写

UVEPROM——用紫外线照射8~20分钟,擦除所有信息

EEPROM——可用“电擦除”,擦除指定的字

Flash Memory——闪速存储器U盘、SD卡就是闪存)

在EEPROM基础上发展而来,断电后也能保存信息,且可进行多次快速擦除重写。

由于:闪存需要先擦除再写入,因此闪存的写速度比读速度慢

SSD——固态硬盘

由控制单元+存储单元(Flash芯片)构成,与闪速存储器的核心区别在于控制单元不一样,但存储介质都类似,可进行多次快速擦除重写。SSD速度快,功耗低、价格高。目前个人电脑上常用SSD取代传统的机械硬盘。(拓:手机辅存也使用Flash芯片,但相比SSD使用的芯片集成度高,功耗低、价格高)

计算机重要的ROM

BIOS芯片

主板上的BIOS芯片(ROM),存储了“自举装入程序”,负责应道装入操作系统(开机)。

注意:逻辑上,主存由RAM和ROM组成,且二者统一编址.我们通常说的“内存条”就是“主存”但事实上,主板上的ROM芯片也是主存的一部分。

主 存储器_第14张图片


几个注意点:

  • 很多ROM芯片虽然名字是“Read-Only”,但很多ROM也可以“写”
  • 闪存的写速度一般比读速度慢,因为写入前要先擦除
  • RAM芯片是易失性的,ROM芯片是非易失性的。很多ROM也具有“随机存取”的特性

主 存储器_第15张图片

存储器容量的扩展

由于单片存储芯片的总量总是有限的,很难满足实际的需求,因此,必须将若干存储芯片连在一起才能组成足够容量的存储器,称为存储容量的扩展,通常有位扩展子扩展

字扩展

字扩展是指增加存储器字的数量。例如用2片 1 k × 8 1k \times 8 1k×8位的存储芯片可组成一个 2 k × 8 2k \times 8 2k×8位的存储器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gkUodwr1-1681625179587)(null)]

线选法,通过高位的地址线来指定对应的芯片工作,即一条地址线可以指定一个芯片。

主 存储器_第16张图片

片选法,一条地址线的高低电平可代表两个芯片,此时n根片选线可以指定 2 n 2^n 2n个存储芯片

主 存储器_第17张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZrx9RAT-1681625179451)(null)]

字扩展

位扩展是指增加存储字长,例如2片 1 k × 4 1k \times 4 1k×4位的芯片可组成 1 k × 8 1k \times 8 1k×8位的存储器。

主 存储器_第18张图片

主 存储器_第19张图片

字位同时扩展

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xQ4ujPAz-1681625179627)(null)]

存储器与CPU的连接

  1. 地址线的连接

存储芯片的容量不同时,其地址线数也不同,CPU的地址线数往往比存储芯片的地址线数多(存储芯片地址线数不等于CPU的地址线数)。通常总是将CPU地址线的地位与存储芯片的地址线相连。CPU地址线的高位或在存储芯片的扩展时用,或者做其它用途是,如片选信号等

  1. 数据线的连接

CPU的数据线数与存储芯片的位数也不一样相等。此时必须对芯片扩位,使其数据位数与CPU的数据线数相等。

  1. 读/写命令线的连接

CPU的读写命令一般可直接与存储芯片的读写控制端相连,通常高电平为读,低电平为写。有些CPU的读写命令线是分开的

  1. 片选线的连接

​ 片选线的连接是CPU与存储芯片正确工作的关键。存储器由许多存储芯片组成,哪个芯片被选中完全取决与该存储芯片的片选控制端 C S ‾ / C E ‾ \overline{CS}/ \overline{CE} CS/CE是否能收到来自CPU的片选有效信号

片选有效信号与CPU的访存控制信号 M R E Q ‾ \overline{MREQ} MREQ(低电平有效)有关,因为只有当CPU要求访存时,才需选择存储芯片。片选有效信号和地址有关,那些存储芯片上的高位地址将和访存控制信号共同产生存储芯片的片选信号。

可以理解片选有效信号为了选出要存取的存储芯片,访存控制信号控制是否开始存取

主 存储器_第20张图片

  1. 合理选择芯片

通常选用ROM存放系统程序、标准子程序和各类常数等。RAM则是为用户编程而设置。此外在考虑芯片数量的时候,要尽量保证连线简单。

双口RAM

​ 现在CPU通常是多核的,采用双口RAM可以让多核CPU同时对RAM进行部分存取操作,具体如下图。双口RAM可以支持:①两个端口对不同地址单元的存取数据;②两个端口可同时读取一个地址单元中的数据。当出现对同一地址的操作中有写操作,则发出“BUSY”信号,其中一个CPU的访问端口暂时关闭。

主 存储器_第21张图片

多模块存储器

为了进一步提升主存的存取速度,除了寻找高速元件和采用层次结构外,调整主存的结构也可提高访问速度。

单体多字

单体多字,可以字面理解这个意思。或者可以这么向,原本我们要存取四条指令,需要经历四次存取周期。若一个存储单元中存储的的信息有4个字的长度,一次就可以存取4条指令,对应存取4条指令的时间仅需1个存取周期是。这种方法的前提使:指令和数据在主存内必须连续存放,否则这种方法效果就不明显

多体并行

​ 多体并行系统采用多体模块组成的存储器。每个模块有相同的容量和存取速度,每个模块都有独立的地址寄存器(MAR)、数据寄存器(MDR)、地址译码、驱动电路和读写电路,它们能并行工作,能交叉工作。

​ 按照以地址的高位代表不同的存储器还是用低位表示不同的存储器,多体并行又分为高位交叉编制(相当于单纯扩容)和低位交叉编址(俗称双通道)。

为什么要考虑“连续访问”的情况?

根据程序局部访问的原理,一些存储结构例如数组……

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xo1iDNZM-1681625179484)(null)]

主 存储器_第22张图片

​ 从上图中,可以明显看出,当访问连续存储单元时,采用地位交叉编址的多体存储器,可以利用DRAM的恢复时间,来直接对下一个存储体进行存取操作,从节省了等待存储单元恢复的时间

应该取几个存储体?

采用地址交叉编址的多体存储器时。当存取周期位T,总线传输周期位r(也可描述:总线传输周期为r),为了使流水线不间断,应该保证模块数量 m > = T / r m>=T/r m>=T/r

主 存储器_第23张图片

你可能感兴趣的:(计算机组成原理,主存储器,多模块存储器,存储器容量扩展)