【计算机组成体系结构】SRAM和DRAM

  • RAM — Random Access Memory 随机访问存储器

—指定某一存储单元地址的时候,存储单元的读取速度并不会因为存储单元的物理位置改变

  • SRAM即为 Static RAM 静态随机访问存储器 — 用于主存
  • DRAM即为 Dynamic RAM 动态随机访问存储器 — 用于Cache

一、SRAM和DRAM的特性差异

DRAM采用栅极电容存储二进制0/1,线端是否有电荷流出代表存储的是1还是0。输出电荷后原本的电容没有电荷了,这称之为破坏性读出,所以还需要进行重写操作。

SRAM采用双稳态触发器存储二进制0/1(包含6个MOS管),A端高电平B端低电平代表写入1,反正代表写入0。左线输出低电平代表输出0,右线输出低电平代表输出1。 与栅极电容不同,双稳态触发器则没有破坏性读出的问题,因此SRAM的读写速度会更快

其次,观察栅极电容双稳态触发器电路的复杂程度和MOS管数量,我们可以得到以下结论。

栅极电容 DRAM双稳态触发器 SRAM
功耗
相同空间集成度
成本


二、DRAM的刷新 

1.为什么刷新

栅极电容有有一个问题,电容存储的电荷只能维持2ms,也就是说我们每2ms之内,就必须给电容进行一次充电,也就是进行刷新,使得存储的信息不会消失。 

而双稳态触发器则没有刷新问题。

2.刷新规则

3.刷新时机 

假设DRAM的存取周期位0.5μs,内部结构128x128,那么一个刷新周期内,存储器可以进行4000个存取周期。则我们要在2ms内把128行都刷新一遍。分为三种思路

(1)分散刷新

每一个存取周期之后都刷新一次,存取周期变为1μs,可以刷新2000次,足够刷新128行很多次。

(2)集中刷新

前3872个周期进行存取周期,剩下的128个周期集中进行刷新,而剩下这128个周期的时间是不可以存取的,无法访问存储器,所以被称为死区。

(3)异步刷新

把128次刷新分摊到2ms内,也就是2ms/128 = 15.6μs,也就是说我们每隔15.6μs刷新就可以了,那么每15.6μs,有15.1μs存取,0.5μs的时间刷新,也就是说有0.5μs的死区,在实际操作中,我们可以在CPU不访问存储器的一段时间内进行刷新,比如译码阶段。


三、DRAM的地址线复用 

我们上篇提到了存储器的地址是一个个存储单元的地址,如果有20位的地址,那么就要有2^20,也就是1m的选通线,显然在工程上实现是非常困难的。

因此我们通常把译码器拆分成行地址译码器列地址译码器。 也就是把存储单元从一维展至二维。

如果是8位地址,那么一维排列的需要2^8 = 256根选通线,而二维排列只需要2 * 2^4 =32根选通线即可。

给出8位地址,00000000,左边一次性读入译码器选择第一根选通线。右边则是拆分成0000 0000行地址和列地址分别送给行列地址译码器,每个存储单元都是两个选通线都被选通才可以被读出。


在SRAM中,如果给出八位地址0000 0000,则行列地址是同时被输给行列地址译码器的。也就是说有多少位地址,就要提供给多少根地址线给译码器。

但是DRAM则不同,DRAM存储容量一般比较大,所需的地址线较多,所以我们DRAM一般会采用地址线复用来把地址线数量减半。简单地说,就是将行列地址分两次送到行列地址缓冲区,再送到行列地址译码器。先送4位行地址,再送4位列地址,所以只需要4根地址线即可。同时,芯片引脚也减少一半。

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

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

相关文章

智能外呼常见场景有哪些?

智能外呼常见场景是什么? 智能外呼在各种场景下都有应用,以下是一些常见的场景: 营销推广 通过智能外呼向潜在客户进行产品或服务的宣传和推广,收集客户对产品或服务的反馈。根据客户的反馈自动调整宣传策略,从而提…

JavaSE基础50题:15. 斐波那契数列(迭代实现)

概述 求斐波那契数列的第n项&#xff08;迭代实现&#xff09;。 斐波那契&#xff1a;1 1 2 3 5 8…… 代码 public class P15 {public static int fib(int n) {if (n 1 || n 2) {return 1;}int f1 1;int f2 1;int f3 0;for (int i 3; i < n; i) {f3 f1 f2;f1 …

Java TCP(一对一)聊天简易版

客户端 import java.io.*; import java.net.Socket; import java.util.Date; import javax.swing.*;public class MyClient {private JFrame jf;private JButton jBsend;private JTextArea jTAcontent;private JTextField jText;private JLabel JLcontent;private Date data;p…

字符选择的题解

目录 原题描述&#xff1a; 题目描述 样例输入1 样例输出1 样例输入2 样例输出2 题目大意&#xff1a; 主要思路&#xff1a; change的设计&#xff1a; dp的转移&#xff1a; dp初始化&#xff1a; dp的结算&#xff1a; 注意事项&#xff1a; 代码&#xff08;有…

使用智能AI文心一言处理采集数据

简数采集器支持调用百度智能AI文心一言大模型API接口&#xff0c;可对采集的数据进行研究分析&#xff0c;内容创作。 文心一言API使用方法如下&#xff1a; 目录 1. 采集数据 2. 申请API 3. 对接文心一言API 4. 设置文心一言API的执行指令 5. 使用文心一言API处理采集数…

Java 第21章 网络通信

网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素封装成不同的类&#xff0c;用户只要创建这些类的对象&#xff0c;使用相应的方法&#xff0c;即使不具备有关的网络支持&#xff0c;也可以编写出高质量的网络通信程序。 …

OpenEuler_22.03升级mongdb到7.0.4

使用命令&#xff1a;lscpu&#xff0c;查看cpu架构为aarch64为arm架构的一种执行状态。 所以我们直接下载arm的包安装即可。无需自己编译源码。 下载地址&#xff1a;https://www.mongodb.com/try/download/community 下载解压 wget https://fastdl.mongodb.org/linux/mong…

高精度时钟芯片SD2405

概要 SD2405是一款非常优秀的RTC解决方案&#xff0c;为了能让用户在Arduino上有一款方便易用的时钟模块。该模块是一款内置晶振&#xff0c;支持IIC串行接口的高精度时钟模块&#xff1b;内置一次性工业级电池&#xff0c;可保证外部掉电的情况下&#xff0c;可以继续工作5~8…

c语言词法分析器

词法分析器&#xff08;也称为词法解析器或词法扫描器&#xff09;是编译器的一个组成部分&#xff0c;它的任务是将输入的源代码&#xff08;字符流&#xff09;分解成称为“标记”的序列&#xff0c;其中每个标记对应于源代码中的一个单词或符号。 以下是一个简单的C语言词法…

CTF-misc(1)图片隐写

笔记目录 渗透测试工具(1)wireshark渗透测试工具(2)Nmap渗透测试工具(3)BurpsuiteAWD比赛(1)AWD入门攻略大纲CTF-Web(2)SQL注入CTF-Web(3)文件上传漏洞 图片隐写目录 (1)GIf和二维码隐写 二维码补全 二维码绘图 Gif规律分析 (2)文本附加图片隐写 (3)IHDR文件头修复图片宽高 (…

案例060:基于微信小程序考试系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

C++ day58 每日温度 下一个更大元素

题目1&#xff1a;739 每日温度 题目链接&#xff1a;每日温度 对题目的理解 temperature[i]表示每天的温度&#xff0c;返回数组answer&#xff0c;answer[i]指对于第i天&#xff0c;下一个更高温度最近出现在几天后&#xff0c;如果气温在这之后都不会升高&#xff0c;用0…