浅谈关于SRAM与DRAM的区别

 从名字上看,SRAM与DRAM的区别只在于一个是静态一个是动态。由于SRAM不需要刷新电路就能够保存数据,所以具有静止存取数据的作用。而DRAM则需要不停地刷新电路,否则内部的数据将会消失。而且不停刷新电路的功耗是很高的,在我们的PC待机时消耗的电量有很大一部分都来自于对内存的刷新。那么为什么我们不用SRAM来作为内存呢?

  首先来看一张SRAM的基本单元结构图                  再来看看DRAM的基本单元结构图

                                                  

 

SRAM存储一位需要花6个晶体管,而DRAM只需要花一个电容和一个晶体管。cache追求的是速度所以选择SRAM,而内存则追求容量所以选择能够在相同空间中存放更多内容并且造价相对低廉的DRAM。

我们姑且不去讨论关于SRAM是如何静态存储数据(触发器)的。为什么DRAM需要不断刷新呢?

DRAM的数据实际上是存在电容里的。而电容放久了,内部的电荷就会越来越少,对外就形成不了电位的变化。而且当对DRAM进行读操作的时候需要将电容与外界形成回路,通过检查是否有电荷流进或流出来判断该bit是1还是0。所以无论怎样,在读操作中我们都破坏了原来的数据。所以在读操作结束后需要将数据写回DRAM中。在整个读或者写操作的周期中,计算机都会进行DRAM的刷新,通常是刷新的周期是4ms-64ms。

  关于SRAM和DRAM的寻址方式也有所不同。虽然通常我们都认为内存像一个长长的数组呈一维排列,但实际上内存是以一个二维数组的形式排列的,每个单元都有其行地址和列地址,当然cache也一样。而这两者的不同在于对于容量较小的SRAM,我们可以将行地址和列地址一次性传入到SRAM中,而如果我们对DRAM也这样做的话,则需要很多很多根地址线(容量越大,地址越长,地址位数越多)。所以我们选择分别传送行地址和列地址到DRAM中。先选中一整行,然后将整行数据存到一个锁存器中,等待列地址的传送然后选中所需要的数据。这也是为什么SRAM比DRAM快的原因之一。

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

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

相关文章

字符串系列之最长回文子串

2019独角兽企业重金招聘Python工程师标准>>> 问题描述: 给定一个字符串SA1A2...An,要求找出其最长回文子串(Longest Palindromic Substring)。所谓回文子串就是S的某个子串Ai...Aj为回文。例如,对字符串Sab…

Host SMBus controller not enabled的解决方法

From: http://blog.csdn.net/starmlk/article/details/7982077 SMBus 目录 SMBus与I2C的差别SMBus 是 System Management Bus 的缩写,是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯。它主要是希望通过一条廉价并且功能强大的总线&…

【Bugly干货分享】微信文件微起底Ⅰ

Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处 微信大家都在用,但微信的本地文件到底隐藏着什么样的信息呢…

由旋转矩阵求旋转中心

在图像的复合变化过程中,通常会用到Matrix矩阵,一般的过程是先构造仿射变换矩阵,然后对图像进行仿射变换,如:围绕点(100,100)旋转30度(sin 30 0.5 ,cos 30 0.866)&…

git服务器搭建

本文主要记录在Ubuntu 16.04操作系统中搭建GitLab服务器的操作记录,以下是操作步骤(主要参考资料:https://about.gitlab.com/downloads/#ubuntu1604)。1.安装依赖包,运行命令sudo apt-get install curl openssh-server…

Ubuntu桌面版网络设置

先来说下我的经验吧,我觉得Ubuntu桌面版中网络配置最好的方法是用Network-Manager这个带界面的软件,因为桌面版中这个软件是自动启动的。理由如下: 1. 如果要把这个软件设置为开机时不启动,得执行:chkconfig network-…

ant-design之form-重置表单多个值

重置form表单中的某一个值或者一次重置多个值 watch: {databaseType: function(curr, old) {this.getMyTableData [];this.form.resetFields([databaseSource,"databaseName","tableName",""]);},},

2016matlab安装

百度云的下载链接(永久有效)链接:https://pan.baidu.com/s/1dGZB4q9 密码:pfl3Matlab用途:点击打开链接与网盘资源相对应的安装教程1.将网盘中的3个文件下载下来后,解压(在当前路径下&#xff0…

Nginx_查看并发连接数

通过查看Nginx的并发连接,我们可以更清除的知道网站的负载情况。Nginx并发查看有两种方法(之所以这么说,是因为笔者只知道两种),一种是通过 web界面,一种是通过命令,web查看要比命令查看显示的结…

解决vuex中store保存数据,刷新页面会清空得问题

1.在App.vue下加入 mounted() {window.addEventListener("unload", this.saveState);},methods: {saveState() {sessionStorage.setItem("state", JSON.stringify(this.$store.state));}}2.在store下的index.js文件下修改 state:sessionStorage.getItem(…

arm MMU详解

一、MMU的产生许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时…

二叉树的建立与三种遍历

树是一种数据结构,为什么叫它“树”,因为它倒过来就是一棵树 根在上,而叶在下 其概念主要有根、父、子、深、叶等, 如上图:A为这棵树的根 B为D的父,而D则为B的子 E、F、G互为兄弟, D也可以叫叶 这也是一棵深…

vue中如何设置和清除定时器setInterval

data中生明定时器 方法里使用和清除定时器

VMware10中安装Mac10.9.3

教程网上确实有,我主要参考这个:http://bbs.pcbeta.com/viewthread-1418055-1-1.html 但是我按它的步骤,用我自己下载的mac os x 10.9.3原版.dmg在启动系统时就是会失败,我试过提取里面的InstallESD.dmg(取了2次,第一…

cisco 交换机通过console 导入 IOS

准备说明: 电脑上安装有 SecureCRT 软件 导入 IOS: 第一步:使用 SecureCRT 连接上交换机。进入rommon 模式(CtrlBreak组合键) 第二部:设置波特率为115200.调整波特率,可以大大减少灌IOS的时间&a…

localStorage.getItem 往浏览器里面储存数据到本地localStorage

借鉴https://blog.csdn.net/aaa333qwe/article/details/79025336 往浏览器里面储存数据 localStorage.setItem(‘todos’, JSON.stringify(value)) 读取 const list JSON.parse(localStorage.getItem(‘todos’)) || []

ZOJ 1450 Minimal Circle 点集的最小圆覆盖

From: http://blog.csdn.net/zmx354/article/details/17076267 给定一个点集,求出能覆盖点集内所有点的半径最小的圆。包含点在圆上的情况。个人感觉算是比较麻烦的计算几何模板了。 在网上看了很多解题,大多数都摘抄自《求一个包含点集所有点的最小圆…

命令行选项解析函数(C语言):getopt()和getopt_long()

上午在看源码项目 webbench 时,刚开始就被一个似乎挺陌生函数 getopt_long() 给卡住了,说实话这函数没怎么见过,自然不知道这哥们是干什么的。于是乎百度了一番,原来是处理命令行选项参数的,的确,正规点的大…

夺命雷公狗ThinkPHP项目之----企业网站2之数据库的快速设计

我们在一个项目的时候,花费最多事件的估计还是数据库的时间了,我们的数据库暂时就这样设计好了: 暂时我们的数据库就这样设计好了用下先,建好后如下所示: 转载于:https://www.cnblogs.com/leigood/p/5411017.html