主 存储器

news2025/1/18 11:45:08

主存储器

概述

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

image-20230414201252136

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

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

主存储器的基本组成

image-20230414220152891

存储器芯片的基本原理

存储元

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

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

MOS管的读

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

image-20230414204432333

MOS管的写

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

image-20230414204705293

存储单元

将多个存储元组合起来

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

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

存储器芯片

地址译码器的工作过程

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

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

image-20230414210227796

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

控制电路的工作原理

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

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

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

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

image-20230414211446826

译码驱动中的驱动

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

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

片选线

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

image-20230414214144716

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

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

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

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

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

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

image-20230414214500130


在这里插入图片描述

寻址

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

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

image-20230414215957195

RAM和ROM

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

SRAM和DRAM的核心区别

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

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

DRAM和SRAM的对比

image-20230415151854282

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

栅极电容VS双稳态触发器

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

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

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

DRAM的刷新

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

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

image-20230415144728706

信息如何刷新呢?

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

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

三种刷新方式

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

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

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

image-20230415151205440

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芯片也是主存的一部分。

image-20230415164535990


几个注意点:

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

image-20230415164903537

存储器容量的扩展

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

字扩展

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

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

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

image-20230415195115786

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

image-20230415195348610

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

字扩展

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

image-20230415195545747

image-20230415195435794

字位同时扩展

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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要求访存时,才需选择存储芯片。片选有效信号和地址有关,那些存储芯片上的高位地址将和访存控制信号共同产生存储芯片的片选信号。

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

image-20230415202203052

  1. 合理选择芯片

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

双口RAM

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

image-20230415210648168

多模块存储器

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

单体多字

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

多体并行

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

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

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

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

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

image-20230415212840183

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

应该取几个存储体?

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

image-20230415213525059

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

课程简介:.Net Core从零学习搭建权限管理系统

课程简介目录 🚀前言一、课程背景二、课程目的三、系统功能四、系统技术架构五、课程特点六、课程适合人员七、课程规划的章节八、最后 🚀前言 本文是《.Net Core从零学习搭建权限管理系统》教程专栏的导航站(点击链接,跳转到专栏…

【运动规划算法】路径规划中常用的插值方法

文章目录 简介一、线性插值二、三次样条插值三、B样条插值四、贝塞尔曲线插值总结 简介 常见用于处理路径平滑的插值算法主要包括线性插值、三次样条插值、B样条插值和贝塞尔曲线插值等,下面分别介绍它们的优缺点和使用场景。 一、线性插值 线性插值是最简单的插值…

【主流Chat模型的申请入口和方法】

主流Chat模型的申请入口和方法 一、申请New Bing二、申请内测文心一言三、申请内测Claude四、谷歌家的Bard五、Adobe Firefly六、GitHub Copilot chat七、通义千问八、360智脑 一、申请New Bing 注册一个 outlook 邮箱,很简单,2分钟就可搞定&#xff5e…

操作系统(2.7)--进程

目录 一、进程的引入 1.进程的两个基本属性 2.程序并发执行所需付出的时空开销 3.线程---作为调度和分派的基本单位 二、线程(轻型进程)与进程(重型进程)的比较 1)调度的基本单位 2)并发性 3)拥有资源 4)独立性 5&#…

离线数仓的数仓分层

数据仓库分层的作用 数据结构化更清晰: 对于不同层级的数据,他们作用域不相同,每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。 数据血缘追踪: 提供给外界使用的是一张业务表&#xf…

Material Design:为你的 Android 应用提供精美的 UI 体验

Material Design:为你的 Android 应用提供精美的 UI 体验 介绍 Material Design 概念:介绍 Material Design 是 Google 推出的一种设计语言,用于创建现代、美观、直观且一致的用户界面。解释 Material Design 的基本原则,包括材料…

9、MachO简介

一、MachO文件 MachO其实是Mach Object文件格式的缩写,是Mac以及iOS上可执行文件的格式,类似于windows上的PE格式(Portable Executable), linux上的elf格式(Executable and Linking Format) 二、MachO文件结构 Mach-O为Mach Object文件格式的缩写,它是一种用于可执行文件、目…

fileclude(文件包含漏洞及php://input、php://filter的使用)

先介绍一些知识 1、文件包含漏洞 和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。 什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写…

Pytorch实现FCN图像语义分割网络

针对图像的语义分割网络,本节将介绍PyTorch中已经预训练好网络的使用方式,然后使用VOC2012数据集训练一个FCN语义分割网络。 一、使用预训练好的语义分割网络 PyTorch提供了已预训练好的图像语义分割网络,已经预训练好的可供使用的网络模型…

Java 对象的创建过程面试总结

Java对象创建的过程 Java对象创建的过程主要分为五个步骤,下面我将详细介绍这五个步骤。 Step1:类加载检查 虚拟机遇到一条new指令时,首先会去检查这个指令的参数是否能在class文件中的常量池中定位到这个类的符号引用,并且会检查这个符号…

unplugin-vue-components 源码原理分析

unplugin-vue-components 是一款按需自动导入Vue组件的库。支持 Vue2 和 Vue3,同时支持组件和指令。使用此插件库后,不再需要手动导入组件,插件会自动识别按需导入组件以及对应样式,我们只需要像全局组件那样使用即可。 当然上面…

深入谈谈内存压缩那些事!

1. 技术背景 说到压缩这个词,我们并不陌生,应该都能想到是降低占用空间,使同样的空间可以存放更多的东西,类似于我们平时常用的文件压缩,内存压缩同样也是为了节省内存。 尽管当前android手机6GB,8GB甚至12GB的机器都…

两个月15斤以上的健康减脂减重法,与饥饿、运动等无关的自我实验的验证方法(第六篇完结,无收费内容)...

阅读本文前请先看前五篇内容,本文有部分修改,但是涉及前五篇的内容会大量隐藏,只保留关联修改部分,链接如下: 两个月15斤以上的健康减脂减重法,与饥饿、运动等无关的自我实验的验证方法(第五篇&…

OpenCascade安装编译

重新编译OpenCascade,在漫长的等待过程中,记录一下编译的流程 下载安装 OpenCascade官网中提供了直接安装的二进制版本,如果只是简单的使用需求可以直接下载安装,二进制版本使用VC 2017 64 bit编译 官网地址 源码编译 源码编…

Docker容器:docker基础

目录 一、docker容器简介 1、什么是容器 2、容器的优点 3、什么是docker容器 4、docker的logo及设计宗旨 5、docker与虚拟机对比 6、docker容器2个重要技术 7、docker三大核心概念 二、docker的安装及管理 1、安装docker 2、配置docker加速器 3、docker镜像相关基础…

你为什么从上一家公司离职?程序员这样回答最机智

想必每一位跳槽的程序员伙伴,在面试时都会被问到这个问题吧: “为什么从上一家公司离职?” 可能不少人跳槽的原因都是钱少事多离家远,加班干到十二点,同事之间还内卷,但是这些原因在面试的时候都能说吗&a…

软件测试培训

软件测试培训 软件测试培训是一门针对软件测试人才培养的技术,培训内容涉及到:软件测试基础、自动化测试、性能测试、安全测试、接口测试、云计算测试等。就业方向:软件开发工程师,软件测试工程师, web前端工程师&…

Docker概念|容器|镜像|命令详细(创建,删除,修改,添加)

Docker概念|容器|镜像|命令详细(创建,删除,修改,添加) 一,Docker简介二,Docker与虚拟机的区别三,容器核心技术四,Docker核心概念五 docker的安装5.1关闭防火墙,关闭文件防…

2022年 团体程序设计天梯赛——题解集

Hello各位童学大家好!😊😊,茫茫题海你我相遇即是缘分呐,或许日复一日的刷题已经让你感到疲惫甚至厌倦了,但是我们真的真的已经达到了我们自身极限了吗?少一点自我感动,没有结果前别太…

大悦城中粮物业:用二维码搭建物业系统,“多快好省”提高管理效率

中粮物业(大悦服务)隶属于大悦城控股集团股份有限公司,成立于1993年6月,是中国物业管理协会会员单位、广东省物业管理行业协会常务理事单位。 作为连续多年蝉联“中国物业服务百强企业”的头部物业公司,中粮物业自主研…