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

news2024/10/2 22:13:27
  • 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.coloradmin.cn/o/1293434.html

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

相关文章

Elasticsearch 8.9 flush刷新缓存中的数据到磁盘源码

一、相关API的handler1、接收HTTP请求的hander2、每一个数据节点(node)执行分片刷新的action是TransportShardFlushAction 二、对indexShard执行刷新请求1、首先获取读锁,再获取刷新锁,如果获取不到根据参数决定是否直接返回还是等待2、在刷新之后transl…

Jquery easyui异步提交表单的两种方式

这篇文章分享一下easyui常用的两种表单异步提交的方式。 目录 第一种:利用ajax提交 $.post() $.ajax() 第二种:使用easyui提供的表单提交方式 首先,准备一个简单的表单,包含三个输入框,在页面引入easyui的js文件。…

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

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

苹果mac电脑如何彻底删除卸载软件?

在苹果电脑上安装和使用软件非常容易,但是卸载软件却可能会变得复杂和困难。不像在Windows上,你不能简单地在控制面板中找到已安装的程序并卸载它们。因此,在这篇文章中,我们将讨论苹果电脑怎么彻底删除软件。 CleanMyMac X全新版…

『 C++ 』BinarySearchTree搜索二叉树

文章目录 前言 🦕二叉搜索树的概念 🦕搜索二叉树的初始化 🦕Insert( )插入函数 🦕👾 InsertR( ) 插入函数(递归) InOrder( ) 中序遍历打印 🦕Find( ) 查找函数 🦕👾 Find( ) 查找函数…

系列学习前端之第 2 章:一文精通 HTML

全套学习 HTMLCSSJavaScript 代码和笔记请下载网盘的资料: 链接: https://pan.baidu.com/s/1-vY2anBdrsBSwDZfALZ6FQ 提取码: 6666 HTML 全称:HyperText Markup Language(超文本标记语言) 1、 HTML 标签 1. 标签又称元素&#…

第二十一章总结博客

网络程序设计基础 局域网与互联网 为了实现两台计算机的通信,必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称,是一种网络协议。Internet 网络采用的协议是TCP/IP协议,其全称是Transmission …

区块链媒体:Web3.0时代的推广创新10爆款策略概览-华媒舍

随着Web3.0时代的到来,互联网推广正经历着一场创新的革命。在这个新的时代背景下,一系列全新的推广策略正在兴起,引领着市场的变革。本文将基于这一背景,为大家介绍Web3.0时代中的10大爆款推广策略概览。 1. 个性化推广 在Web3.0…

Linux:缓冲区的概念理解

文章目录 缓冲区什么是缓冲区?缓冲区的意义是什么?缓冲区的刷新方式 理解缓冲区用户缓冲区和内核缓冲区缓冲区在哪里? 本篇主要总结的是关于缓冲区的概念理解,以及再次基础上对文件的常用接口进行一定程度的封装 缓冲区 什么是缓…

基于ssm家庭理财系统源码和论文

基于ssm家庭理财系统源码和论文743 idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 环境: jdk8 tomcat8.5 开发技术 ssm 摘要 随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff…

Linux_CentOS_7.9配置oracle sqlplus、rman实现上下按键切换历史命令等便捷效率功能之简易记录

配置oracle sqlplus以及rman可以上下按键切换历史命令等便捷效率功能 设置前提是已经yum安装了rlwrap软件具体软件下载及配置参考文章http://t.csdnimg.cn/iXuVK su - oracleVim .bash_profile ## 文件中增加如下的别名设置 ---------------- alias sqlplusrlwrap sqlplus…

Android音量调节参考一

基于android 9平台分析。 在Android系统中,默认的设备(phone等)音量都是分开控制的,这些包括媒体、铃声、闹铃、蓝牙、通话通过音频流来区别不同的音量类型。每种流类型都定义最大音量、最小音量及默认音量,Android 9定了了11中音频流类型&am…

【MATLAB】MVMD信号分解+FFT+HHT组合算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 MVMD信号分解FFTHHT组合算法是一种强大的分析方法,结合了变分模态分解(MVMD)、快速傅里叶变换(FFT)和希尔伯特-黄变换(HHT)。 首先,使用MVMD将原始信号分解成多个…

几分钟在Ubuntu搭建本地Emlog博客网站并发布至公网无需购买域名服务器

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总结 前言 博客作为使…

Python-封装配置文件

Code [url] baidu http://www.baidu.com[value] send_value 百度[server] ip 220.181.111.188封装的格式可以套用 # 封装,类似函数调用 import configparserclass ReadConfigIni():def __init__(self,filename):self.cf configparser.ConfigParser()self.cf.read(filenam…

分布式搜索引擎03

1.数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近…

[Linux] nginx配置的主配置文件

一、六个模块的作用 全局块:全局配置,对全局生效; events块:配置影响 Nginx 服务器与用户的网络连接; http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;…

STM32 cubeMX 呼吸灯实验

文章代码使用 HAL 库。 文章目录 一、1.PWM原理二、LED 原理图三、使用cubemx 配置 led四、PWM 相关函数五、PWM占空比占空比计算六、PWM 呼吸灯重要代码总结 呼吸灯 一、1.PWM原理 PWM全称为脉冲宽度调制(Pulse Width Modulation),是一种常…

【Linux】进程通信之命名管道mkfifo

1.认识命名管道 匿名管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。命名管道是一种特殊类型的文件 2.在命…

华清远见嵌入式学习——QT——作业1

作业要求&#xff1a; 代码&#xff1a; ①&#xff1a;头文件 #ifndef LOGIN_H #define LOGIN_H#include <QWidget> #include <QLineEdit> //行编辑器类 #include <QPushButton> //按钮类 #include <QLabel> //标签类 #include <QM…