【计算机组成原理】主存储器深度解析

news2024/9/22 21:37:28

📢博客主页:https://blog.csdn.net/2301_779549673
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 JohnKi 原创,首发于 CSDN🙉
📢未来很长,值得我们全力奔赴更美好的生活✨

在这里插入图片描述

在这里插入图片描述

文章目录

  • 📢前言
  • 🏳️‍🌈一、主存储器概述
  • 🏳️‍🌈二、SRAM 与 DRAM 对比
  • 🏳️‍🌈三、主存储器内部结构
  • 🏳️‍🌈四、ROM 的种类与特点
  • 🏳️‍🌈五、多模块存储器及字位拓展法
  • 👥总结


📢前言

在计算机考研 408 的漫漫征途中,主存储器无疑是一座关键的知识堡垒。主存储器作为计算机系统的核心组成部分,其性能和结构直接影响着整个计算机的运行效率。对于备考 408 的学子们来说,深入理解主存储器的各个方面,包括 SRAM 和 DRAM 的特性对比、内部结构、基本组成,ROM 的不同类型,以及多模块存储器和字位拓展法等内容,不仅是应对考试的必要之举,更是为日后深入学习计算机体系结构奠定坚实的基础。本文将系统地对考研 408 中主存储器的相关知识进行深度解析,助力考生们攻克这一重要考点。

在这里插入图片描述


🏳️‍🌈一、主存储器概述

主存储器在计算机组成中占据着至关重要的地位。它是计算机系统的核心组成部分之一,直接影响着计算机的性能和运行效率。

考研 408 中,主存储器涵盖了多个重要的知识点。首先,主存储器包括随机存取存储器(RAM)只读存储器(ROM)。RAM 又分为静态随机存取存储器(SRAM)动态随机存取存储器(DRAM)。SRAM 通常由 MOS 管组成,速度快但成本高;DRAM 则利用电容的电荷存储信息,需要不断刷新,成本相对较低。

下图左边是DRAM的一个存储元,右边是SRAM的一个存储元
在这里插入图片描述

主存储器与 CPU 的连接也是一个重要的考点。CPU 通过地址线访问存储器的 MAR(地址寄存器),从主存储器中读取指令和数据。主存储器的容量和速度对计算机的性能有着重要影响。一般来说,主存储器的容量越大,可以存储的程序和数据就越多;速度越快,CPU 与主存储器之间的数据交换就越高效。

此外,多模块存储器也是主存储器的一个重要方面。多模块存储器可以提高存储器的访问速度,常见的有高位交叉编址低位交叉编址两种方式。

🏳️‍🌈二、SRAM 与 DRAM 对比

请添加图片描述

(一)存储原理差异
SRAM 使用触发器来存储数据,每个存储元由多个触发器构成,能呈现出两种稳定状态,分别对应二进制的 0 和 1。由于这种设计,SRAM 在读出数据后,数据状态依然保持稳定,属于非破坏性读出。而 DRAM 使用电容器来存储数据,通过电容的充放电来表示二进制信息。当对 DRAM 进行读操作时,电容中的电荷会被释放,导致信息被破坏,所以需要进行重写操作,即给电容重新充电。

(二)寻址方式区别
SRAM 采用单一地址寻址,同时送出行地址和列地址,把行地址和列地址拼接起来作为一次读写访问的地址,然后放到地址线上。

DRAM 分两次送行列地址,先送出行地址,选中一整行存储单元,再送入列地址,从该行中选中特定的存储单元。这种寻址方式使得 DRAM 需要更多的控制逻辑,但可以减少地址线的数量。
在这里插入图片描述

所以,假设一个用 DRAM,采用地址复用技术,容量是 1024 * 8位

则它的地址引脚为 1024 = 210,因为每根引脚能提供 0 或 1 的数据,地址复用技术分次输入 地址,所以仅需要5根地址引脚,即:行(25) * 列(25,就能实现

数据引脚能够提供8位的数据即可,所以需要8根数据引脚

总的来说,需要13根引脚

(三)芯片特性不同
在读写速度方面,SRAM 的读写速度非常快,远高于 DRAM。这是因为 SRAM 的存储元结构简单,不需要进行额外的刷新操作。而 DRAM 由于需要不断刷新电容中的电荷,所以读写速度相对较慢。在功耗方面,SRAM 在读写过程中消耗的功耗更低。相比之下,DRAM 需要定期刷新电容,功耗较高。在集成度方面,DRAM 具有较高的集成度,可以使用一个晶体管和一个电容器来存储一个比特的信息,因此可以实现更大的存储容量。而 SRAM 的存储元需要六个晶体管,集成度相对较低,难以制造大容量的存储器。

(四)刷新需求差异
DRAM 因电容电荷易流失,需要定期刷新。通常存储器里采用的电容,电荷只能维持两毫秒的时间。因此,在两毫秒之内必须给 DRAM 中的电容刷新一次,也就是给电容充电。刷新操作由专门的刷新电路支持,会直接读出一整行的存储单元的信息然后重新写入,耗时和一个读写周期的耗时差不多。而 SRAM 只要不断电,存储在其中的数据就不会丢失,无需刷新。

在这里插入图片描述

🏳️‍🌈三、主存储器内部结构

(一)存储体构成
存储体是主存储器的重要组成部分。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件。存储单元可以看作是存储二进制代码的容器,一个存储单元能够存储一连串的二进制代码,这串二进制代码被称为一个存储字。而存储元件则可以存储一位二进制数 0 或 1。

例如,存储体就如同一栋大楼,大楼内有很多个房间,这些房间就相当于存储单元,每个房间又有很多个床位,床位就如同存储元件。二进制代码 0 和 1 可以分别表示不同的对象。存储单元在存储体中是有编号的,这些编号称为存储单元的地址号。存储单元地址的分配有大端、大尾方式和小端、小尾方式两种。存储单元是按地址寻访的,这些地址同样都是二进制的形式。

(二)MAR 和 MDR 的作用
MAR(存储地址寄存器) 保存的是存储单元的地址,其位数反映了存储单元的个数。比如有 32 个存储单元,而存储单元的地址是用二进制来表示的,那么 5 位二进制数就可以表示 32 个存储单元,此时 MAR 的位数就是 5 位。在实际运用中,知道了 MAR 的位数,就可以确定存储单元的个数。

MDR(存储数据寄存器) 存放的是从存储元件读出,或者要写入某存储元件的数据(二进制数)。如果 MDR = 16,即每个存储单元进行访问的时候,数据是 16 位,那么存储字长就是 16 位。MDR 的位数反映存储字长。

(三)主存储器与 CPU 工作原理
在现代计算中,主存储器和 CPU 的数据交换是通过一系列控制信号实现的。CPU 中的控制器要给主存发送一系列的控制信号,包括读写命令、地址译码或者发送驱动信号等等。主存由半导体元件和电容器件组成,驱动器、译码器、读写电路均位于主存储芯片中。MAR、MDR 位于 CPU 的内部芯片中。存储芯片和 CPU 芯片通过系统总线(数据总线、系统总线)连接。

当要完成一个完整的读取操作时,首先 CPU 中的控制器发出读命令等控制信号,通过地址总线将存储单元的地址从 MAR 传输到主存储器。主存储器根据地址找到相应的存储单元,将存储单元中的数据通过数据总线传输到 MDR,再由 MDR 传输到 CPU 内部进行处理。在写入操作时,CPU 将数据加载到 MDR 中,将要写入数据的内存地址加载到 MAR 中,然后发出写入数据的指令,将 MDR 中的数据写入到 MAR 指示的内存位置。
在这里插入图片描述

🏳️‍🌈四、ROM 的种类与特点

(一)MROM
MROM(Mask-programmed ROM),即掩膜编程的只读存储器。这种类型的 ROM 是在制造过程中由厂家通过掩膜技术写入数据,一旦生产完成,数据就无法更改。客户不能对其进行重写操作,这使得 MROM 的灵活性较差。然而,正因为其数据在制造后就固定不变,所以具有很高的可靠性。在一些对数据稳定性要求极高且不需要更改数据的应用场景中,MROM 发挥着重要作用。

(二)PROM
PROM(Programmable ROM)可编程只读存储器。用户可以使用专门的写入器对 PROM 进行一次编程,将数据写入其中。但在写入完成后,就不能再进行更改。这种特性使得 PROM 在一些特定的应用中具有一定的优势,比如在一些需要固定数据但又不希望数据被随意更改的场合。

(三)EPROM
EPROM(Erasable Programmable ROM)可擦除可编程只读存储器。用户可以对 EPROM 进行擦除操作,然后重新写入数据。EPROM 主要分为两种类型:UVEPROM(紫外线擦除可编程只读存储器)和 EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程只读存储器)。UVEPROM 需要通过紫外线照射一定时间才能擦除数据,然后进行重新编程。而 EEPROM 则可以通过电信号进行擦除和编程操作,更加方便快捷。

(四)Flash Memory
Flash Memory,即闪存。闪存可以进行多次快速的擦除和重写操作,具有较高的位密度。虽然闪存可以进行读写操作,但它仍然被归为 ROM 的一种类型。这是因为闪存的写入操作相对较慢,而且在写入之前通常需要先进行擦除操作。此外,闪存的擦除和写入次数也是有限的。闪存广泛应用于各种存储设备中,如 U 盘、固态硬盘等。

(五)SSD
SSD(Solid State Drive)固态硬盘。固态硬盘主要由闪存芯片组成,用于存储数据。同时,固态硬盘还需要一个控制单元来控制数据的读写操作。固态硬盘具有很多优点,比如读写速度快、抗震性好、功耗低等。据统计,固态硬盘的读写速度可以达到传统机械硬盘的数倍甚至数十倍。此外,固态硬盘没有机械部件,所以在抗震性方面表现出色,即使在受到震动或冲击的情况下,也不容易损坏数据。而且,固态硬盘的功耗相对较低,有助于延长设备的电池续航时间。然而,固态硬盘也存在一些缺点。首先,固态硬盘的价格相对较高,尤其是大容量的固态硬盘。其次,固态硬盘的写入寿命是有限的,虽然目前的固态硬盘技术已经大大提高了写入寿命,但在长期大量写入数据的情况下,仍然可能会出现故障。最后,固态硬盘的数据恢复难度较大,如果固态硬盘出现故障,数据恢复的成功率相对较低。
在这里插入图片描述

🏳️‍🌈五、多模块存储器及字位拓展法

(一)主存容量扩展方法

  1. 位扩展法:当 CPU 的数据线与存储芯片的数据位数不一致时,可以采取位扩展的方式。例如,若 CPU 有 8 根数据线,而存储芯片是 8K×1 位的芯片,213=8K,因此需要 13 根地址线。一个芯片只有一个输出数据,也就是只有一个数据线,所以需要 8 个这样的芯片才能满足 CPU 的 8 位数据线的要求。位扩展的连接方式是将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出。当 CPU 发出寻址指令后,同一时间对多个存储芯片进行寻址,多个芯片同一时间返回数据,同时到达 CPU 的数据端。
    请添加图片描述

  2. 字扩展法:字扩展是指增加存储器中字的数量,而位数不变。将多个一字节存储芯片的数据线同时并到 CPU 的数据线,片选线进行选通,可以避免数据的混乱。当 CPU 发出寻址指令后,同一时间只对一个存储芯片进行寻址,这个芯片返回数据,到达 CPU 的数据端。字扩展将芯片的地址线、数据线、读写控制线并联,由片选信号来区分各芯片。
    在这里插入图片描述

  3. 字位同时扩展法:字位同时扩展指既增加存储字的数量,又增加存储字长。采用字位同时扩展时,各芯片连接地址线的方式相同,但是连接数据线的方式不同,而且需要通过片选信号或译码器设计连接到相应的芯片。例如,先进行两个 16K×4 位的芯片进行位扩展,此时就构成了 16K×8 位的芯片,然后水平扩展 4 个进行字扩展,最终形成了一个 64K×8 位的容量的芯片(214=16K)。
    在这里插入图片描述

(二)存储芯片地址分配与片选
线选法: 使用一个地址线对应一个芯片。优点是不需要地址译码器,线路简单,选择芯片无须外加逻辑电路,仅适用于连接存储芯片较少的场合。缺点是不能使用连续空间,因为片选地址每次寻址时只能有一位有效,不允许同时有多位有效。例如,A13、A14 只能取值 10 或 01,其空间范围是 (10 0000…0000 到 10 1111…1111) 和 (01 0000…0000 到 01 1111…1111),其中 00 xxxx…xxxx 和 11 xxxx…xxxx 空间没有使用到。

译码片选法: 用除片内寻址外的高位地址线通过地址译码器芯片产生片选信号。优点是地址空间连续,n 条地址线经过译码器可以转化成 2n 个不同的芯片编号。以 A13、A15 为片选信号为例,片选信号的 A14 为无效信号,可以为任何值,而 A13 和 A15 决定了芯片选取。

(三)多体并行存储器
高位交叉编址: 程序按照体内地址顺序存放(一个体存满后,再存入下一个体),高位地址表示体号,低位地址为体内地址。优点是某一组的故障不影响其他组,且容易通过添加模块来扩充容量;由于体内地址连续,有利于存储器扩充。缺点是相邻地址单元的数据放在同一组存储单元,各组间串行工作,不利于提升存储器的带宽。

低位交叉编址: 程序连续存放在相邻体中,低位地址用来表示体号,高位地址为体内地址。这种编址方式又称为模 M 编址(M 等于模块数),一般模块数取 2 的方幂,使硬件电路比较简单。优点是相邻地址单元的数据放在不同组,各组可以并行工作,能较好提高存储器的带宽;采用流水线的方式并行存取,在不改变每个模块的存取周期的前提下,提高整个主存的速度。例如,一个 4 体并行低位交叉存储器,每个模块的容量是 64K×32 位,存取周期为 200ns,在 200ns 内,存储器能向 CPU 提供 128 位二进制信息。缺点是某一组出现故障,会影响整个存储器的正常工作。

多模块存储器的优势和实际应用: 多模块存储器是一种空间并行技术,利用多个结构完全相同的存储模块的并行工作来提高存储器的吞吐率。例如,当一个存储体正在和 CPU 交换信息时,另一个存储体可同时与外部设备进行直接存储器访问,实现两个体并行工作。多模块存储器可以提高存储器的访问速度,满足 CPU 对数据的快速需求,广泛应用于计算机系统中。


👥总结

本篇博文对 主存储器 做了一个较为详细的介绍,不知道对你有没有帮助呢

觉得博主写得还不错的三连支持下吧!会继续努力的~

请添加图片描述

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

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

相关文章

基于SpringBoot+Vue的时尚美妆电商网站系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 精品专栏:Java精选实战项目源码、Python精…

Windows下安装Neo4j流程

Neo4j简介 Neo4j 是一个基于图形结构的 NoSQL 数据库,专门用于存储和管理图数据。与传统的关系型数据库不同,Neo4j 使用 图(graph)的形式来表示数据,其中数据点(称为 节点)通过 边(…

GUI编程19:贪吃蛇小游戏及GUI总结

视频链接:21、贪吃蛇之界面绘制_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p21&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.游戏中用的的图片素材 1.贪吃蛇游戏的主启动类StartGame; package com.yundait.snake;import j…

【ArcGISPro】配置模块

ArcGIS Pro 配置类似于加载项,但提供了扩展应用程序的其他方法。它可以帮助您设计更贴近您组织品牌和工作流的 ArcGIS Pro 版本。 托管配置是比 Add-in 更高级别的自定义。 配置可以提高加载项安全级别并添加非管理员指定的已知文件夹。 配置可以提供比插件更广泛…

全国832个贫困县名单及精准扶贫脱贫数据(2016-2020.11)

自党的十八大以来,通过全党全国各族人民的共同努力,中国成功实现了现行标准下9899万农村贫困人口的全部脱贫,832个贫困县全部摘帽。 摘帽名单 2016年-2020.11全国832个贫困县名单及精准扶贫脱贫数据整理(大数据)https…

图解 TCP 四次挥手|深度解析|为什么是四次|为什么要等2MSL

写在前面 今天我们来图解一下TCP的四次挥手、深度解析为什么是四次? 上一片文章我们已经介绍了TCP的三次握手 解析四次挥手 数据传输完毕之后,通信的双方都可释放连接。现在客户端A和服务端B都处于ESTABLISHED状态。 第一次挥手 客户端A的应用进…

笔尖划出秋季的声息

笔尖划出秋季的声息 进入秋分,天气渐趋凉爽,天空青蓝明朗,难言伤感。 九月,把一些句子记录好,明年拿出来晒一晒,秋季也就有了答案。 1、经历 9月6日,台风“摩羯”席卷而过粤西,…

尚品汇-秒杀商品定时任务存入缓存、Redis发布订阅实现状态位(五十一)

目录: (1)秒杀业务分析 (2)搭建秒杀模块 (3)秒杀商品导入缓存 (4)redis发布与订阅实现 (1)秒杀业务分析 需求分析 所谓“秒杀”&#xff0…

STM32CSDK生成代码报错

STM32CubeMX not found 在使用STM32CSDK时报错 STM32CubeMX not found - ver. “5.2.0” or higher is required Download STM32CubeMx 解决方案 重新安装STM32CubeMX,选择为所有用户安装 MotorControl reference pack not found: 解决方案 1.选择合适的STM32…

Python语法(二)——函数

文章目录 函数语法格式函数参数链式调用嵌套调用函数递归变量作用域 函数 一段可以被重复使用的代码片段 求数列的和, 不使用函数 # 1.求1-100的和 sum 0 for i in range(1, 101):sum i print(fsum {sum})# 2.求300-400的和 sum 0 for i in range(300, 401):sum i print(…

为什么推荐使用英文版LabVIEW

在LabVIEW开发中,中文版和英文版主要在界面语言、功能习惯以及社区支持等方面存在差异。以下是两者的特点以及推荐使用英文版的原因: 中文版特点: 界面和帮助文档为中文:对于中文母语开发者来说,中文版LabVIEW的界面和…

在 Windows 11 中,可以通过修改注册表来更改系统的自动更新时间设置

regedit 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings FlightSettingsMaxPauseDays 36524

YOLOV8 OpenCV + usb 相机 实时识别

1 OpenCV 读相机 import cv2cap cv2.VideoCapture(0) while (1):# get a frameret, frame cap.read()# show a framecv2.imshow("capture", frame)if cv2.waitKey(1) & 0xFF ord(q):# cv2.imwrite("/opt/code/image/fangjian2.jpeg", frame)#passb…

设置CentOS7使用代理服务器上网

搭建代理 软件设置-参数设置-允许来自局域网的连接 软件设置-参数设置-为局域网开启新的端口(可选) 记录本机ip与端口号 配置系统代理 永久设置 # 编辑配置文件 vi /etc/profile# 在文件后添加以下内容: export http_proxyhttp://代理服务器IP:端口号 export h…

python - 子类为什么调用父类的方法

菜鸟教程 - 面向对象https://www.runoob.com/python3/python3-class.html为什么写这个呢 ,因为很多时候,事情很简单,但我往往记住了使用方式,忘记了使用原因,也因为自己看到super()时,也想问为什么要用supe…

重生之我们在ES顶端相遇第16 章 - Lucene 写入流程

文章目录 前言写入流程图refreshRefresh 触发时机Translog FlushMerge 前言 上一章我们介绍了倒排索引的数据结构。 本章我们将深入介绍 Lucene 写入流程。 该知识点在面试中比较常问,也是理解 ES 必须掌握的知识点。 写入流程图 在第 14 章,我在介绍…

web基础—dvwa靶场(七)SQL Injection

SQL Injection(SQL注入) SQL Injection(SQL注入),是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的。SQL注入漏洞的危害是巨大的,常常会导致…

有毒有害气体检测仪的应用和性能_鼎跃安全

随着现代工业的不断发展和扩张,越来越多的企业涉及到有毒有害气体的生产、使用和处理。工业规模的扩大导致有毒有害气体的排放量增加,同时也增加了气体泄漏的风险。在发生火灾、爆炸或危险化学品泄漏等紧急事件时,救援人员需要迅速了解现场的…

自动化立体仓库与堆垛机单元的技术参数

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是一份自动化立体仓库与堆垛机单…

Java内存泄漏排查

内存泄漏排查 1. 堆内存快照导出2. 导入内存分析工具 1. 堆内存快照导出 获取 Java 进程 ID Windows:执行 jps 命令,或任务管理器查看,又或者执行 tasklist 命令。 注意:当有多个 Java 进程时,任务管理器或 tasklist |…