【计算机组成 课程笔记】7.2 DRAM和SRAM

课程链接:

计算机组成_北京大学_中国大学MOOC(慕课)

7 - 2 - 702-DRAM和SRAM(13-'22-'-')_哔哩哔哩_bilibili

从【计算机组成 课程笔记】7.1 存储层次结构概况_Elaine_Bao的博客-CSDN博客中,我们了解到:SRAM比较快,DRAM比较慢,SRAM比较贵,DRAM比较便宜。记住这些结论是很容易的, 但是比是什么更重要的是为什么,这一节我们就从电路的级别来探索DRAM和SRAM为什么会具有它们这样各自的特点。

DRAM

这是我们计算机中使用的内存条,准确的说叫内存模组,图中这个内存模组中共有8块DRAM芯片。

DRAM芯片内部的核心结构就是这个存储阵列,由若干行、若干列构成。如果外部给定行地址和列地址,DRAM中有地址译码逻辑电路,能够选中一个存储单元,而每个存储单元往往包含若干个比特,常见的有4比特和8比特。每个比特都采用如下的电路结构,称为DRAM的基本存储单元。

DRAM的基本存储单元(1bit)

这个基本单元就是通过一个电容来保存一个比特的信息。写入就是由外部的数据线驱动对电容进行充电或者放电的操作,从而完成写入0或1,读操作则是由电容对外部的数据信号线进行驱动,从而完成读出0或1。

这个电路结构非常简单,但是我们要注意,电容是存在漏电效应的,如果经过一段时间,电容上的电荷流失过多,我们就会丢失它所存的信息。因此,为了保证DRAM的存储信息的正确性,我们需要定期对所有的单元进行“刷新”。如果初始保存的数据是0,则通过刷新使它保持无电荷状态,如果原先保存的数据为1,则补充这个电容的电荷。这就是DRAM的基本结构和运行原理。

DRAM的特点和主要用途

现在PC机中大多是采用DRAM作为主存储器,也就是内存。当然,DRAM也有很多种不同的实现,比如SDRAM,这个S是同步的缩写,它是在DRAM的基本结构基础上,对输入输出接口进行时钟同步,从而提高了读写的效率。而现在更为常用的内存,则是在SDARAM的基础上又进行了进一步的改进,比如说这些年有DDR1,DDR2,DDR3, 这些不同的内存标准都是在SDRAM的基础上进行的改进和升级。

总体来说,由于每个DRAM的基本存储单元非常简单,所以能做到很高的集成度,而且功耗也比较低,我们可以用较低的成本制造大容量的DRAM芯片。当然它的缺点也跟它的这个结构有关,因为采用了电容充放电的方式,所以DRAM的读写速度还是比较慢的,而且它还需要定期刷新,这进一步影响了DRAM的读写性能。

SRAM

那么与DRAM相对的,还有一种常用的存储部件,就是SRAM。我们先来看看SRAM的基本结构。

SRAM的基本存储单元(1bit)

SRAM的基本存储单元共有6个晶体管构成,我们分别用M1~M6表示,这6个晶体管合在一起才可以保存一个比特,显然比DRAM的结构要复杂得多。

这个基本存储单元对外有3个接口信号,其中BL、~BL用于传送读写数据信息,WL用于控制外部是否可以访问这个存储单元。

下面通过读写的实例来看看SRAM是如何工作的。

SRAM的写入过程示例

以写入数据1为例进行分析。

  1. 首先,这个存储单元中连接了电源和地,分别代表1和0。只要SRAM处于通电状态,VDD和地的信号的值都会保持稳定,为1和0。
  2. 如果要写入1,则将BL置为1,与之相对~BL则为0,这样就准备好了要写入的数据。
  3. 然后我们需要访问这个SRAM单元,就要将WL置为1。WL信号为1,则M5、M6两个晶体管的gate端也为1。由于M5和M6都是NMOS晶体管,当NMOS晶体管的gate端为1时,它是处于连通状态的。因此BL上的值就会通过M6传递进来,则Q信号为1,类似的,~Q信号为0。
  4. Q信号控制了M2晶体管的gate端,它是一个PMOS晶体管,当PMOS晶体管的gate端为1时,它是处于关闭状态的,所以VDD的信号不会被传到~Q,与步骤3中由~BL信号传递进来的0是一致的。类似的,Q信号还控制了M1晶体管,则它处于连通状态。M3和M4被~Q信号控制,分别处于关闭和连通状态,此时VDD的信号传到Q,与步骤3中由BL信号传递进来的1也是没有冲突的。

这样由外部的BL和~BL输入的信号就驱动了这个SRAM的存储单元的晶体管达到了一个稳定的状态。因为晶体管的工作速度很快,所以SRAM的写入过程也很快,当这几个晶体管达到稳定后,写入过程就结束了。

现在我们可以撤销WL信号了(由1变0),从而将M5、M6两个晶体管关闭。然后撤销BL和~BL的信号,那在外部的信号撤销之后,因为M5和M6都关闭了,所以并不是由外部的信号驱动M2和M1这两个晶体管的gate端,但是由于在刚才写入的过程中,M4晶体管处于连通状态,所以电源传导的这个1会始终驱动M2和M1的gate端保持为1。而只要M2和M1的gate端保持为1,由地传导过来的0又会反过来驱动M4和M3的gate端为0。那么在这4个晶体管的相互作用下,SRAM就保持住了刚才写入的1。只要WL信号保持为0,这个存储单元就会始终保持住之前存储的信号,当然前提是要保持通电的状态。

SRAM的读出过程示例

以读取刚才写入的数据1为例。

  1. 首先把WL信号置为1,这样M5、M6两个晶体管都会处于连通的状态。
  2. 此时外部并不驱动BL和~BL,因此它们会通过M5、M6被SRAM驱动。
  3. BL被驱动为1,~BL被驱动为0,这样读出1的过程就完成了。

这就是SRAM基本存储单元的结果和工作原理。

SRAM的特点和主要用途

如果我们把很多个这样的存储单元组合在一起,就可以构成一个存储矩阵,从外部可以输入若干的地址线,通过增加一些地址译码的驱动电路,就可以根据地址线的值选中存储矩阵当中对应的若干个存储单元,再通过读写控制,就可以将存储单元和数据线进行连通。

由此看来,因为晶体管的开关速度远比电容充放电速度快,所以相对于DRAM,SRAM更快。但是我们也看到,SRAM中每存储一个比特就需要6个晶体管,晶体管数量多会造成芯片面积大,从而带来集成度和价格高的问题。同时每个晶体管都是要耗电的,晶体管越多功耗就越高,这些都是SRAM的缺点。

那现代CPU中的高速缓存都是用SRAM实现的。比如这就是一颗4核CPU的版图,在这个芯片当中,这些大面积的看起来非常规整的电路,实际上都是SRAM。所以仅从制造成本上来看,这些作为高速缓存的SRAM往往要占到整个CPU的一半或者更多。而且由于高速缓存大多采用和CPU相当的时钟频率,所以它们的功耗也非常高。

DRAM和SRAM的比较

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

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

相关文章

mysql的mvcc详解

一 MVCC的作用 1.1 mvcc的作用 1.MVCC(Multiversion Concurrency Control)多版本并发控制。即通过数据行的多个版本管理来实现数据库的并发控制,使得在InnoDB事务隔离级别下执行一致性读操作有了保障。 2.mysql中的InnoDB中实现了MVCC主要…

Go Gin Gorm Casbin权限管理实现 - 3. 实现Gin鉴权中间件

文章目录 0. 背景1. 准备工作2. gin中间件2.1 中间件代码2.2 中间件使用2.3 测试中间件使用结果 3. 添加权限管理API3.1 获取所有用户3.2 获取所有角色组3.3 获取所有角色组的策略3.4 修改角色组策略3.5 删除角色组策略3.6 添加用户到组3.7 从组中删除用户3.8 测试API 4. 最终目…

Leetcode1071. 字符串的最大公因子(三种方法,带详细解析)

🎶Leetcode1071. 字符串的最大公因子 对于字符串 s 和 t,只有在 s t … t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。 给定两个字符串 str1 和 str2 。返回 最长字符串 x,要求满足 x 能除尽…

c#设计模式-行为型模式 之 状态模式

🚀简介 状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后,我们可以创建一个上下文类,它会根据其当前的状态对象来改…

学习笔记|ADC反推电源电压|扫描按键(长按循环触发)|课设级实战练习|STC32G单片机视频开发教程(冲哥)|第十八集:ADC实战

文章目录 1.ADC反推电源电压测出Vref引脚电压的意义?手册示例代码分析复写手册代码Tips:乘除法与移位关系为什么4096后面还有L 2.ADC扫描按键(长按循环触发)长按触发的实现 3.实战小练1.初始状态显示 00 - 00 - 00,分别作为时,分&#xff0c…

黑豹程序员-架构师学习路线图-百科:JSON替代XML

文章目录 1、数据交换之王2、XML的起源3、JSON诞生4、什么是JSON 1、数据交换之王 最早多个软件之间使用txt进行信息交互,缺点:纯文本,无法了解其结构;之后使用信令,如:电话的信令(拨号、接听、…

【程序员必看】计算机网络,快速了解网络层次、常用协议和物理设备!

文章目录 0 引言1 基础知识的定义1.1 计算机网络层次1.2 网络供应商 ISP1.3 猫、路由器、交换机1.4 IP协议1.5 TCP、UDP协议1.6 HTTP、HTTPS、FTP协议1.7 Web、Web浏览器、Web服务器1.8 以太网和WLAN1.9 Socket (网络套接字) 2 总结 0 引言 在学习的过程…

常用Redis界面化软件

对于Redis的操作,前期有过介绍【Centos 下安装 Redis 及命令行操作】。而在Redis的日常开发调试中,可使用可视化软件方便进行操作。 本篇主要介绍Redis可视化的两款工具:Redis Desktop Manager和AnotherRedisDesktopManager。 1、Redis Desk…

Aasee Api开放平台上线啦!

使用方法 首先介绍使用方法&#xff0c;只需导入一个SDK即可使用实现调用第三方的接口&#xff0c;那如何导入SDK呢&#xff0c;目前jar已经上传至maven中心仓库可直接引入到pom文件中使用&#xff0c;下面是例子&#xff1a; <dependency><groupId>io.github.Aa…

【Java 进阶篇】使用 JDBCTemplate 执行 DML 语句详解

JDBCTemplate 是 Spring 框架中的一个核心模块&#xff0c;用于简化 JDBC 编程&#xff0c;使数据库操作更加便捷和高效。在本文中&#xff0c;我们将重点介绍如何使用 JDBCTemplate 执行 DML&#xff08;Data Manipulation Language&#xff09;语句&#xff0c;包括插入、更新…

SNP Glue:SAP数据导入到其他系统的多种方式

SAP是一款功能强大的企业资源计划&#xff08;ERP&#xff09;软件&#xff0c;许多企业依赖SAP来管理和处理其核心业务数据。然而&#xff0c;有时候企业需要将SAP中的数据导入到其他系统中&#xff0c;以实现更广泛的数据共享和集成&#xff0c;便于企业实现数据智能。本文将…

计算摄像技术02 - 颜色空间

一些计算摄像技术知识内容的整理&#xff1a;颜色视觉与感知特性、颜色空间和基于彩色滤镜阵列的彩色感知。 文章目录 一、颜色视觉与感知特性 &#xff08;1&#xff09;色调 &#xff08;2&#xff09;饱和度 &#xff08;3&#xff09;明度 二、颜色空间 &#xff08;1&…

[架构之路-228]:目标系统 - 纵向分层 - 计算机硬件与体系结构 - 硬盘存储结构原理:如何表征0和1,即如何存储0和1,如何读数据,如何写数据(修改数据)

目录 前言&#xff1a; 一、磁盘的盘面组成 1.1 磁盘是什么 ​编辑1.2 磁盘存储介质 1.3 磁盘数据的组织 1.3.1 分层组织&#xff1a;盘面号 1.3.2 扇区和磁道 1.3.3 数据 1.3.4 磁盘数据0和1的存储方式 1.3.5 磁盘数据0和1的修正方法 1.3.6 磁盘数据0和1的读 二、…

基于腾讯云的OTA远程升级

一、OTA OTA即over the air,是一种远程固件升级技术&#xff0c;它允许在设备已经部署在现场运行时通过网络远程更新其固件或软件。OTA技术有许多优点&#xff0c;比如我们手机系统有个地方做了优化&#xff0c;使用OTA技术我们就不用召回每部手机&#xff0c;直接通过云端就可…

(一)正点原子STM32MP135移植——准备

一、简述 使用板卡&#xff1a;正点原子的ATK-DLMP135 V1.2 从i.mx6ull学习完过来&#xff0c;想继续学习一下移植uboot和内核的&#xff0c;但是原子官方没有MP135的移植教程&#xff0c;STM32MP157的移植教程用的又是老版本的代码&#xff0c;ST官方更新后的代码不兼容老版本…

Linux中的wc命令

2023年10月6月&#xff0c;周五晚上 目录 wc命令的主要功能和用法如下:统计文件行数、字数和字节数只统计行数只统计字数只统计字节数 wc命令在Linux/Unix系统中是word count的缩写,它用来统计文件的行数、字数和字节数。 wc命令的主要功能和用法如下: 统计文件行数、字数和字…

mac清理垃圾的软件有哪些?这三款我最推荐

没错&#xff0c;Mac电脑真的好用&#xff0c;但是清理系统垃圾可不是件容易的事。由于Mac系统的封闭性&#xff0c;系统的缓存垃圾常常隐藏得让人发现不了。不过&#xff0c;别担心&#xff01;有一些专业的Mac清理软件可以帮你解决这一系列问题&#xff0c;让清理垃圾变得轻松…

踩大坑ssh免密登录详细讲解

目 录 问题背景 环境说明 免密登录流程说明 1.首先要在对应的用户主机名的情况下生成密钥对&#xff0c;在A服务器执行 2.将A服务器d公钥拷贝到B服务器对应的位置 3.在A服务器访问B服务器 免密登录流程 0.用户说明 1.目前现状演示 2.删除B服务器.ssh 文件夹下面的…

【将文本编码为图像灰度级别】以 ASCII 编码并与灰度级别位混合将文本字符串隐藏到图像像素的最低位中,使其不明显研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

我在 NPM 发布了新包: con-colors

链接地址&#xff1a;npmjs.com con-colors 安装依赖 yarn add con-colors使用 导入&#xff1a; import { print } from "con-colors";使用&#xff1a; print.succ("成功的消息"); print.err("失败的消息")例子&#xff1a; import { p…