计算机组成原理 —— 存储系统(DRAM和SRAM,ROM)

计算机组成原理 —— 存储系统(DRAM和SRAM)

  • DRAM和SRAM
  • DRAM的刷新
  • DRAM地址复用
  • ROM(Read-Only Memory(只读存储器))

我们今天来看DRAM和SRAM

DRAM和SRAM

DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)都是半导体存储器,广泛应用于计算机和其他电子设备中,但它们在设计、性能、成本和应用场景上存在显著差异:

SRAM(静态随机存取存储器)

  • 工作原理:SRAM使用双稳态触发器来存储每个比特的信息,不需要刷新电路来维持数据。这意味着一旦数据被写入SRAM,只要电源持续供应,数据就会保持不变。
  • 速度:由于其设计,SRAM提供了非常快速的读写访问时间,通常用于需要高速数据访问的场景,如CPU缓存(L1、L2、L3缓存)。
  • 集成度与成本:SRAM的每个存储单元需要更多的晶体管(通常是4到6个),这导致其集成度相对较低,成本较高,且占用更多空间。
  • 应用场景:因其高速特性,SRAM常用于缓存、寄存器以及对速度要求极高的局部存储。

DRAM(动态随机存取存储器)

  • 工作原理:DRAM通过电容来存储电荷,以此表示比特的1或0状态。由于电容会自然放电,DRAM需要定期刷新(每隔几毫秒)来保持数据的完整性。
  • 速度:相比SRAM,DRAM的读写速度较慢,因为它涉及到电容充电/放电的过程以及刷新操作。
  • 集成度与成本:DRAM的存储单元结构更为简单,每个比特通常只需一个晶体管和一个小电容,这使得DRAM能够在给定的芯片面积上集成更多的存储单元,从而降低成本,提高存储密度。
  • 应用场景:由于其高密度和相对低廉的成本,DRAM是计算机主内存(如DDR SDRAM)的首选,广泛应用于个人电脑、服务器、移动设备等,作为大容量存储解决方案。

总结来说,SRAM提供快速访问但成本较高,适用于需要快速数据交换的小容量存储场景;而DRAM虽然访问速度稍慢,但因成本效益高、容量大,成为大规模存储的主流选择。

其实我们上篇博客讲的就是DRAM:

在这里插入图片描述这就是DRAM的内部组成,如果大家对上一篇博客有兴趣的话,可以点击这里:

https://blog.csdn.net/qq_67693066/article/details/139881200

SRAM换了一种材料,换成了双稳态触发器
在这里插入图片描述双稳态触发器集成了6根MOS管,体积更大,稳定性更高。经常用作Cache的材料。
在这里插入图片描述

DRAM的刷新

DRAM(动态随机存取存储器)的刷新是维护DRAM存储数据完整性的必要操作,因为DRAM单元中的电容会随着时间逐渐放电,导致存储的信息丢失。为了防止这种情况发生,DRAM需要定期刷新。刷新操作涉及读取每一行的数据,然后立即重写回该行,以补充电容的电荷,确保数据得以保持。

DRAM刷新主要采用以下三种方式:

  1. 集中刷新(Bulk Refresh或Collective Refresh):在这种模式下,系统会在一个特定的刷新周期内,暂停正常的读写操作,集中一段时间来逐行刷新所有存储单元。这意味着在刷新期间,DRAM无法响应其他读写请求,这会造成所谓的“刷新死区”(refresh dead time),影响系统的连续数据访问性能。
  1. 分散刷新(Distributed Refresh或Hidden Refresh):分散刷新尝试减少集中刷新带来的性能损失,它将刷新操作分散到每个存储周期中进行。在每次访问DRAM时,系统会检查是否需要对当前行进行刷新,如果需要,则在访问之后立即执行刷新操作,尽量使刷新操作与正常读写操作重叠,从而隐藏刷新带来的延迟。
  1. 异步刷新(Self Refresh):异步刷新是集中刷新和分散刷新的折衷方案,它允许DRAM在没有外部命令的情况下自行管理刷新操作。在低功耗模式或待机状态下特别有用,此时DRAM可以按照内部定时器控制的周期自行进行刷新,减少了对外部控制器的依赖,降低了系统整体的能耗。

在这里插入图片描述
我们的SRAM就不用刷新:
在这里插入图片描述

刷新间隔和刷新周期是DRAM参数的重要组成部分,刷新间隔定义了两次刷新操作之间的时间,而刷新周期则是对DRAM所有存储单元完成一次刷新的总时间间隔。这些参数由DRAM芯片规格确定,并需由系统内存控制器妥善管理,以确保数据的可靠存储。

DRAM地址复用

DRAM(动态随机存取存储器)采用地址复用技术,主要是为了减少芯片引脚数量,从而降低成本并简化电路设计。具体来说,DRAM的存储阵列由行和列地址共同确定一个唯一的存储单元位置。由于DRAM存储单元数量庞大,若为每个地址位都分配单独的引脚,会显著增加芯片的物理尺寸和复杂性,进而增加制造成本。

在地址复用技术中,DRAM将完整的地址信号分为两部分:行地址和列地址,通过同一组地址线分时传送。具体过程如下:

  1. 行地址传输:首先,DRAM接收到来自内存控制器的行地址,通过行地址选通信号(RAS, Row Address Strobe)激活相应的行,这个过程被称为行有效(Row Active)或行选通(Row Access)。
  1. 列地址传输:随后,在列地址选通信号(CAS, Column Address Strobe)的作用下,DRAM准备好接收列地址。列地址被送入后,指定的列与之前激活的行交叉点处的存储单元就被选中,从而完成寻址。
  1. 数据读写:在列地址传输完成后,可以进行数据的读取或写入操作。

在这里插入图片描述

通过这样的分时复用机制,DRAM使用较少的地址线实现了对大量存储单元的寻址,降低了对硬件资源的需求。然而,这也意味着相比于地址线独立的SRAM,DRAM在每次访问时需要更多的时钟周期来完成寻址,因此在速度上有所牺牲。

我们的刷新操作一般会在行列选址的时候发生
在这里插入图片描述
下面一张图对比了SRAM和DRAM
在这里插入图片描述

ROM(Read-Only Memory(只读存储器))

ROM,全称为Read-Only Memory(只读存储器),是一种非易失性存储介质,其中存储的数据在正常操作下是固定的,无法轻松或直接修改。ROM的特点包括:

  1. 数据持久性:ROM中的信息在断电后仍能保留,因为它是非易失性的。
  1. 出厂预编程:传统ROM的信息通常在制造过程中就被永久写入,不适合用户修改。
  1. 固定用途:由于数据不可改写,ROM常用于存储计算机启动时所需的固件、BIOS、初始化程序或者特定设备的控制代码等。

随着技术的发展,ROM的概念扩展到了几种不同的类型,包括:

  • PROM (可编程只读存储器):用户可以通过特殊的设备一次性写入数据,之后便无法更改。
  • EPROM (可擦除可编程只读存储器):可以通过紫外线照射擦除原有数据,然后可以重新编程。这类ROM有一个透明窗口,以便暴露芯片于紫外线。
  • EEPROM (电可擦除可编程只读存储器):可以在电路板上通过电信号擦除和重写数据,无需移除芯片或使用特殊设备,提供了更高的灵活性。
  • Flash Memory(闪存):虽然通常不归类为传统的ROM,但闪存基于EEPROM技术,提供高速度、高密度和更便捷的多次擦写能力,广泛应用于USB驱动器、存储卡和固态硬盘中。

在这里插入图片描述我们的操作系统就是安装在ROM中的:
在这里插入图片描述

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

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

相关文章

展示3D模型的网站哪个好?

如果仅仅是模型展示,目前国内外值得推荐的无非就是那么几个,它们各自有不同的特点和优势: 1、Sketchfab:Sketchfab是一个知名的3D模型展示平台,提供了海量的模型资源和出色的3D展示效果。用户无需安装任何插件即可在线…

Spring Cloud - nacos +ubuntu环境搭建

1、安装ubuntu虚拟环境 VMware虚拟机安装Ubuntu与配置Ubuntu(超详细教程) 2、docker环境安装 1、apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 2、curl -fsSL https://mirrors.ustc.edu.cn/docke…

Maven的依赖传递、依赖管理、依赖作用域

在Maven项目中通常会引入大量依赖,但依赖管理不当,会造成版本混乱冲突或者目标包臃肿。因此,我们以SpringBoot为例,从三方面探索依赖的使用规则。 1、 依赖传递 依赖是会传递的,依赖的依赖也会连带引入。例如在项目中…

自动驾驶仿真测试用例表格示例 ACC ELK FCW

自动驾驶仿真测试用例表格示例 测试用例概览 本测试用例表格涵盖了自动驾驶系统中多个关键功能和场景的测试,旨在确保系统在不同条件下的表现和稳定性。 用例编号测试项目测试描述预期结果实际结果通过/失败TC-001ACC功能测试在高速公路上启用ACC,测试车…

SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测

SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测 目录 SCI一区级 | Matlab实现BO-Transformer-LSTM多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现BO-Transformer-LSTM多变量时间序列预测,贝叶斯…

力扣SQL50 超过5名学生的课

Problem: 596. 超过5名学生的课 Code select class from courses group by class having count(distinct student) > 5;

高通安卓12-固件升级

下载步骤 第一步 格式化 「下载一次即可;能开机能下载的板子 忽略这一步,直接执行第二步即可」 QFIL工具配置为UFS类型,勾选Provision,如下图: Programmer选择prog_firehose_ddr.elf,Provision Xml选择prov…

【STM32-新建工程-CubeMX】

STM32-新建工程-CubeMX ■ CubeMX 生产工程 ■ CubeMX 生产工程

QT事件处理系统之五:自定义事件的发送案例 sendEvent和postEvent接口

1、案例 双击窗口,会发送 自定义事件,然后在事件过滤中心进行拦截处理自定义事件。 2、核心代码 /*解释:双击窗口时,将产生双击事件,然后该事件被包裹成一个对象,随后将会被发往event事件中心,然后进行事件的处理(Widget对象);因为m_lineEdit开启了事件过滤机制,所…

Linux - 利用/proc/sys/vm/drop_caches实现手工清理系统缓存

文章目录 现象buff/cache 的作用和含义分析 buff/cache 占用大量内存的原因是否需要清理缓存及其方法 命令清理缓存方法1. sync 命令2. echo 3>/proc/sys/vm/drop_caches 命令 注意事项小结 现象 使用free 命令,看到 buff/cache 占用很多 。 free 命令用于显示系…

第一个Flask程序

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 一切准备就绪,现在我们开始编写第一个Flask程序,由于是第一个Flask程序,当然要从最简单的“Hello World&#xff…

GPT-5大幅推迟?OpenAI CTO称将在2025年底到2026年初推出

GPT-5大幅推迟?OpenAI CTO称将在2025年底到2026年初推出 OpenAI CTO同时透露,GPT-5性能将有巨大飞跃,在某些特定任务中达到“博士水平”智能,此前市场曾预测GPT-5可能在2023年底或2024年夏季发布。 一再跳票的GPT-5可能大幅推迟…

JetBrains IDEA 新旧UI切换

JetBrains IDE 新旧UI切换 IntelliJ IDEA 的老 UI 以其经典的布局和稳定的性能,成为了许多开发者的首选。而新 UI 则在此基础上进行了全面的改进,带来了更加现代化、响应式和高效的用户体验。无论是新用户还是老用户,都可以通过了解和适应这…

101.qt qml-自定义日历控件2-附带动画效果

黑色风格截图如下所示: 白色风格如下所示: GIF效果如下所示: 1.控件使用介绍 QianWindow2.5版本及以上提供,源码位于:qrc:/common/qmlQianDateTime/QianCalendarInputField.qml QianWindow2.5版本及以上提供,示例使用代码位于:qrc:/pages/QianControlPages/QianDateTimeP…

修复:cannot execute binary file --- ppc64le 系统架构

前言: 修复node_exporter,引用pprof包,对源码编译后在 Linux 系统下执行程序运行时,发生了报错,报错信息:cannot execute binary file: Exec format error。 开始以为编译有问题,检查发现;该l…

C++ 教程 - 04 类的使用

文章目录 类的定义类定义案例 类的定义 C 在 C 语言的基础上增加面向对象编程,类是用于指定对象的形式,是一种用户自定义的数据类型,封装了数据和函数。类可以被看作是一种模板,可以用来创建具有相同属性和行为的多个对象。 cla…

python爬虫学习笔记一(基本概念urllib基础)

学习资料:尚硅谷_爬虫 学习环境: pycharm 一.爬虫基本概念 爬虫定义 > 解释1:通过程序,根据URL进行爬取网页,获取有用信息 > 解释2:使用程序模拟浏览器,向服务器发送请求,获取相应信息…

尚品汇-(五)

商品管理模块开发 下面用到的表: 属性表: 属性值表: 分类一表: 分类二表: 分类三表: 1.1在service 模块下搭建service-product 搭建过程同common-util 添加配置文件application.yml spring:applicatio…

C#基于SkiaSharp实现印章管理(1)

最近对着微软的教程学习SkiaSharp的概念及用法,由于之前使用GDI绘制过坐标系、印章等程序,准备使用SkiaSharp、SKControl控件编写简单的印章设计功能,并能用印章对图片盖章。本文实现创建印章背景、序列化及反序列化印章对象等功能。   VS2…

2-14 基于matlab的GA优化算法优化车间调度问题

基于matlab的GA优化算法优化车间调度问题。n个工作在m个台机器上加工。已知每个工作中工序加工顺序、各工序的加工时间以及每个工件所包含的工序,在满足约束条件的前提下,目的是确定机器上各工件顺序,以保证某项性能指标最优。程序功能说明&a…