romram存储器原理详解以及dramsramsdramflash存储器的介绍(代码片段)

17岁boy想当攻城狮 17岁boy想当攻城狮     2022-12-29     316

关键词:

目录

概述

一、ROM

1. 介绍

2. 硬件结构

二、RAM

1. 介绍

2. 硬件结构

三、DRAM

四、SRAM

五、DRAM与SRAM的区别

SRAM

DRAM

六、SDRAM

七、FLASH


概述

ROM、RAM是可读与可读可写存储器的一种框架,DRAM、SRAM、SDRAM是基于RAM框架的一种实现

一、ROM

1. 介绍

ROM全拼是Read Only Memory(只读存储器),它是只读的,一旦出厂不能在写,在出厂之前会预设好它的数据,并且它是掉电不丢失的,又称为固定存储器,它使用一些特定材料存储数据,这里以磁盘为列简单说一下原理:磁盘里面使用一些磁材料存储数据,当对内部导体进行导通时会导致内部磁场发生变化,会让内部的磁极根据电流的方向而产生改变,发生的改变不会因为没有电流而消失,这个改变是永久的,当下次来读时只需要将上次的变化转化成对应的电流变化,这个过程较为复杂,涉及到一些磁信号到电信号的转换,速度相对于较慢,同时如果受到一些磁场较大的一些设备影响会导致里面的磁信号混乱,也就是数据混乱。

2. 硬件结构

以下是ROM的结构图


 其实从图中可以看到并没有可写方面的结构,并且它是以字(1字=2字节)为单位读写,可以看到里面有一个CS线,这个线是接到外部CPU上的,CPU通过CS线来告诉内存单元开始工作了,然后通过地址总线将地址发送过去,然后通过控制总线发送控制命令,在通过数据总线接收数据,ROM内部有一个小型的控制芯片用于处理CPU传递过来的控制指令,它在出厂时设置的代码就不支持写操作,同时也可以看到上面输出线路时没有设计输入线路

 下图结构为译码过程,同时可以看到没有输入缓冲器也没有输入接口,所以它只支持输出

 上面的NxM的意思是有N行,每行有M个单元,需要注意的是可以看到译码过程中前面的A0A1A2是地址的意思,内存里是以二维数组为布局,A0A1为列,A2为行号,后面的W0W1..是译码后的地址,它就相当于指向了一个二维地址的实际地址,如有一个二维数组:

short a[10][10];

实际上它在内存中是连续的

只是将连续的地址抽象化的进行了分列,这样方便管理,当我们访问a[1][0]时实际上就是对地址进行了偏移递增的处理,这样只是让我们更加方便的管理,ap[1][2]和a[12]没有区别,所以在给ROM地址时ROM要求高多少位是列,低多少位是行,最后它会进行译码成一个实际的地址,ROM会对内部的单元生成一个二位的数组存储这些地址,当解析出行与列之后直接以这个为下标索引就可以取出内存单元的实际地址,然后对这个分配在这个地址上的引脚进行操作。

它的每个单元以字为单位,也就是两个字节代表位宽是16位的,那么要求数据总线与地址总线最低16位,当然这个看ROM的设计,有的ROM可能以字节为单位。

二、RAM

1. 介绍

RAM全拼是Random Access Memory(随机存取存储器),它可读可写,它是掉电丢失的,它里面的数据是非初始化的,使用之前需要对它进行一次初始化,因为上电后无法确定RAM里的数据是什么,为了防止使用时出现随机数的情况需要对其进行初始化为0,它是使用电容作为存储单位,电容存储的电荷会随时间的流逝还消失,存储器需要每隔一段时间给存储器内部的电容器进行一行充电或者一直保持充电状态,会根据电容的电平值以及当前使用的电平标准来提升电容的电荷,它的访问速度较快,因为它只需要读取电容里的电荷值然后转化成对应的数字电路就可以了,其实当断电的一瞬间其实里面还是有数据的,只不过随着时间的流逝没有芯片给这些电容器充电了会导致里面的电荷随之流逝。

2. 硬件结构

可以看到结构与ROM类似,只不过多了一个输入的接口电路,其次它是掉电丢失的,它的存储单元在介绍里说过是以电容存储的,需要充电。

三、DRAM

DRAM全拼Dynamic Random Access Memory(动态随机存储器),它是基于RAM框架,有了上面的RAM框架的介绍,DRAM就比较容易理解了,DRAM使用MOS(金属氧化物半导体)电容存储电荷来储存信息,因此必须通过不停的给电容充电来维持信息,DRAM只是RAM的一种实现手段,所谓的动态就是指周期性的动态给里面的电容充一次电,它需要在更新前获取每个电容的电平信号是1还是0然后根据电路进行对每个电容的刷新,上面说过RAM是电容来存储数据的,DRAM保存电容的方式就是动态更新,当控制信号来时若此时正在更新电荷则等待电荷更新完成去处理控制信号

四、SRAM

SRAM全拼Static Random Access Memory(静态随机存储器),SRAM与DRAM类似,它不会动态式的充电,它使用晶体管的特性来存储数据,晶体管是可以根据电流来控制自身开合,利用这一特性可以通过外接线来获取晶体管状态来返回对应数字信号,这样就不需要实时更新只需要一直向它发送特定的电流就可以了

五、DRAM与SRAM的区别

SRAM

SRAM成本要高,尺寸要求较大,因为SRAM需要更多的引脚来存储数据,一个引脚用来接VDD电流控制晶体管开合,一个引脚来取状态并转化对应的数字信号等,但是它不需要动态时的刷新对时钟以及实时性没有太大的要求,所以功耗较低,其次它速度要快于DRAM因为它不需要动态刷新,在动态刷新期间DRAM是不能存取数据的,所以平时见到的CPU一级与二级缓存,用的就是它,它可以随时存取,价格较贵

DRAM

DRAM对尺寸要求较小,对引脚要求较小,几乎一根线就可以了,一根线用于取以及更新电荷,它需要动态刷新,也就是需要时钟来定时中断,对实时性有要求,功耗较高,价格较为便宜

六、SDRAM

SDRAM全拼Synchronous Dynamic Random Access Memory(同步动态随机存储器),注意它不是SRAM与DRAM的结合,它是同步的,基于DRAM结构的,DRAM的输入输出不是同步的,是异步的,DRAM提供了一个异步接口,用于DRAM响应工作,读写等,SDRAM则提供了一个同步接口,用这个接口来完成同步操作

七、FLASH

FLASH全拼是Flash Memory(闪存)、是一种非易失闪存技术,可以随机读写,同时也能掉电不丢失,至于具体如何保存数据需要看不同厂商对FLASH的设计,若使用了磁铁来存储数据就需要注意一些不要将存储器带到可能对磁信号产生影响的一些地方

计算机组成原理第二章练习题(答案详解)

...不对,学校抽题系统的问题吧。。目录存储系统2.1主存储器概述2.2主存储体组织2.3磁盘存储器2.4光盘存储器2.5存储体系存储系统2.1主存储器概述1【单选题】某单 查看详情

zephry_gpio的中断使用详解以及中断原理(代码片段)

目录 1.开发环境1.1系统环境与硬件环境2.GPIO中断2.1GPIO中断介绍2.2中断的好处3.分析Zephry设备树DTC文件3.1通过名称找到对应GPIO口3.2设备树类型3.3实例化设备树类型3.4GPIO操作API4.示例4.1包含头文件与定义操作的PIN脚4.2创建中断服务... 查看详情

rru原理详解以及ecpri+low-phy

RRU原理详解以及eCPRI+Low-Phyhttps://blog.csdn.net/Hennys/article/details/121157343 查看详情

sparkstreaming初步使用以及工作原理详解

...SparkStreaming,Samaz等框架,本文主要讲解SparkStreaming的工作原理以及如何使用。一、流式计算1.什么是流?Streaming:是一种数 查看详情

详解mfs分布式存储系统(代码片段)

分布式原理分布式文件系统是指文件系统管理的物理存储资源下不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的优点是集中访问、简化操作、数据容灾,以及提高了文件的存取性能。MFS分布式... 查看详情

synchronized的实现原理以及锁升级详解

文章目录​​写在前面​​​​synchronized的实现​​​​Java对象头​​​​锁的升级与对比​​​​无锁​​​​偏向锁​​​​偏向锁的撤销​​​​关闭偏向锁​​​​轻量级锁​​​​轻量级锁加锁​​​​轻量级锁解... 查看详情

html5localstorage本地存储原理详解

  首先自然是检测浏览器是否支持本地存储。在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没... 查看详情

hdfs原理详解(代码片段)

前言一、HDFS的设计原理二、什么是零拷贝三、什么是DMA四、HDFS架构剖析     HDFS架构整体概述     HDFS架构图五、HDFS集群角色介绍1.主角色:namenode2从角色:datanode3主角色辅助角色:secondarynamenode 六、HDFS重要特性--主从架构 七... 查看详情

hadoop文件存储系统-hdfs详解以及java编程实现

...二三事IntelliJIDEA搭建Hadoop开发环境Hadoop文件存储系统-HDFS详解以及java编程实现背景        我们在本系列的第一篇文章的时候就谈到过,面对海量数据,我们最为缺乏的就是对大数据量的存储能力以及处理能力。而这... 查看详情

hadoop详解——hive的原理和安装配置和udf,flume的安装和配置以及简单使用,flume+hive+hadoop进行日志处理(代码片段)

hive简介什么是hive?①hive是建立在Hadoop上的数据仓库基础架构。它提供了一系列的工具,可以用来进行数据提取转换加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive定义了简单的类似... 查看详情

request之登录系统跳转应用以及原理详解javaweb(代码片段)

@[toc]一.HttpServletRequest准备HttpServletRequest:客户端的请求,可以获得客户端的所有信息。通过HTTP访问到我们的服务器,请求中的所有信息都会封装到HttpServletRequest中。我们的req.getParameter();可以返回一个。而req.getParameterValues()可以... 查看详情

mysql架构原理(详解)(代码片段)

 一.MySQL整体逻辑架构我们先下图看看MySQL整体逻辑架构(MySQL’sLogicalArchitecture)           图1  第一层:连接层,所包含的服务并不是MySQL所独有的技术。它们都是服务于C/S程序或者是这些程序所需要的:连接处... 查看详情

uart工作原理详解(代码片段)

...停止位、校验位(DP9-RS232)速率计算波特率FIFOFIFO存储器FIFO的概念超时设计FIFO缓冲区的清空FIFO输入与输出中断FIFO缓冲区取数据时的原理UARTFIFOUSART概述UART全拼UniversalAsyn 查看详情

uart工作原理详解(代码片段)

...停止位、校验位(DP9-RS232)速率计算波特率FIFOFIFO存储器FIFO的概念超时设计FIFO缓冲区的清空FIFO输入与输出中断FIFO缓冲区取数据时的原理UARTFIFOUSART概述UART全拼UniversalAsyn 查看详情

对于servlet原理以及mapping的五种映射和404页面的详解(代码片段)

@[toc]一.Servlet原理1,浏览器向web容器发送Http请求,我们这里用的web容器为tomcat。2.我们在Servlet里的protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)里写了请求和响应的方法,这里调用Servlet的Serice方法。3.访问我们自己写的实现... 查看详情

threadlocal应用及其原理详解(代码片段)

...变量(在重入方法中替代参数的显式传递)实现原理哈希冲突问题代码案例线程私有变量与普通变量springboot使用ThreadLocalThreadLocal概念ThreadLocal顾名思义是线程私有的局部变量存储容器,可以理解成每个线程都有自己... 查看详情

对于servlet原理以及mapping的五种映射和404页面的详解(代码片段)

一.Servlet原理1,浏览器向web容器发送Http请求,我们这里用的web容器为tomcat。2.我们在Servlet里的protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)里写了请求和响应的方法,这里调用Servlet的Serice方法。3.访问我们自己写的实现类,... 查看详情

kafka核心概念详解二(代码片段)

...机制、以及produce生产者、消费者 Consumer、及事务模式的原理详解消息存储机制消息序号在每个分片中会给每条消息一个递增的序号,这个序号存到inde 查看详情