常用存储器介绍

图一
注意:"易失/非易失"是指存储器断电后,它存储的数据内容是否会丢失的特性。

(一)RAM和ROM

1.1 RAM

RAM即随机存储器,它是指存储器中的数据被读入或者写入与信息所在位置无关,时间都是相同的

1.1.1 DRAM

DRAM即动态随机存储器,它以电容的电荷表示数据,由于电容的充放电效应,所以存储数据需要定时刷新才能保证数据的正确性。它的优点是集成密度远高于SRAM,功耗低,价格也低;缺点是因需要舒心而使外围电路复杂,速度较SRAM慢,但是比任何ROM都快。尽管如此,由于DRAM[1]存储单元的结构简单,所用元件少,集成度高,功耗低,所以目前已成为大容量RAM的主流产品。
图二
根据DRAM的通信方式又可以分为同步和异步,这两种方式根据是否需要时钟信号来区分,由于同步的通信更快,所以同步的DRAM使用更广泛,同步的DRAM又被称为SDRAM
为了进一步提高SDRAM的通信速度,又设计了DDR SDRAM,双倍速率SDRAM,它是在SDRAM上的一种改进,至于DDRII和DDRIII他们的通信方式并没有区别,主要是通信的同步时钟的频率提高了。
小知识:当前计算机的内存条是DDRIII SDRAM

特性DRAMSRAM
存取速度较慢较快
集成度较高较低
生产成本较低较高
是否需要刷新
1.1.2 SRAM

SRAM静态随机存储器,这种存储器是以锁存器的形式存储数据,由于不需要定时刷新充电,所以称为静态的。它的优点是速度快、使用简单、不需要刷新、静态功耗极低,常用作缓存;缺点就是元件较多、集成密度低、运行功耗大,价格高

PSRAM:

基本原理:PSRAM就是伪SRAM,内部的内存颗粒跟SDRAM的颗粒相似,但外部的接口跟SRAM相似,不需要SDRAM那样复杂的控制器和刷新机制,PSRAM的接口跟SRAM的接口是一样的。PSRAM主要应用于手机,电子词典,掌上电脑,PDA,PMP.MP3/4,GPS接收器等消费电子产品与SRAM(采用6T的技术)相比,PSRAM采用的是1T+1C的技术,所以在体积上更小,同时,PSRAM的I/O接口与SRAM相同.在容量上,目前有4MB,8MB,16MB,32MB,64MB和128MB。比较于SDRAM,PSRAM的功耗要低很多。所以对于要求有一定缓存容量的很多便携式产品是一个理想的选择。

1.2 ROM

ROM即只读存储器,一般用于指现代非易失性存储半导体

  1. MASK ROM
    MASK(掩膜) ROM就是正宗的"Read Only Memory",存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改,其主要优势是大批量生产时成本低。当前在生产量大,数据不需要修改的场合,还有应用。
  2. OTPROM
    OTPROM(One Time Programable ROM)是一次可编程存储器。这种存储器出厂时内部并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。在NXP公司生产的控制器芯片中常使用OTPROM来存储密钥;STM32F429系列的芯片内部也包含有一部分的OTPROM空间。
  3. EPROM
    EPROM(Erasable Programmable ROM)是可重复擦写的存储器,它解决了PROM芯片只能写入一次的问题。这种存储器使用紫外线照射芯片内部擦除数据,擦除和写入都要专用的设备。现在这种存储器基本淘汰,被EEPROM取代。
  4. EEPROM
    EEPROM(Electrically Erasable Programmable ROM)是电可擦除存储器。EEPROM可以重复擦写,它的擦除和写入都是直接使用电路控制,不需要再使用外部设备来擦写。而且可以按字节为单位修改数据,无需整个芯片擦除。现在主要使用的ROM芯片都是EEPROM。

(二)NOR FLASH 和NAND FLASH的区别

FLASH 又称为闪存,也有人称为FLASH ROM,它们的容量一般较大,在擦除时一般以多字节为单位。 相同点:

  • Nor flash 和nand flash都是在写入之前进行擦除的

区别:
主要在于Nor flash 的地址线和数据线分开,它可以按字节读取数据,符合CPU的指令译码执行要求, 所以NOR FLASH 可以运行代码,即CPU给NOR FLASH 一个地址,NOR FLASH 就能向CPU返回一个数据让CPU执行,不需要额外的操作,NOR的特点是应用简单、无需专门的接口电路、传输效率高。
而NAND FLASH 数据线和地址线共用,只能按块读写数据,即使存储了代码指令,它也无法返回某数据的地址,所以不能运行程序,NAND FLASH结构能提供极高的单元密度,可以达到高存储密度,应用NAND的困难在于flash的管理和需要特殊的系统接口。
由于两种FLASH存储器特性的差异,NOR FLASH一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而NAND FLASH一般应用在大数据量存储的场合,包括SD卡、U盘以及固态硬盘等,都是NAND FLASH类型的。

特性NOR FLASHNAND FLASH
同容量存储器成本较贵较便宜
集成度较低较高
介质类型随机存储连续存储
地址线和数据线独立分开公用
擦除单元以扇区为单位以块为单位
读写单元可以基于字节读写必须以块为单位读写
读取速度较高较低
写入速度较低较高
坏块较少较多
是否支持XIP支持不支持

(三)emmc

eMMC (Embedded Multi Media Card)是MMC协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC在封装中集成了一个控制器,提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。

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

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

相关文章

TortoiseGit与github实现项目的上传

1. 下载并安装相关软件 这里主要涉及的软件包括msysgit和TortoiseGit。 msysgit的下载地址:http://msysgit.googlecode.com/files/Git-1.7.4-preview20110204.exe TortoiseGit的下载地址:http://code.google.com/p/tortoisegit/downloads/list&#xff0…

Uboot启动

(一)uboot 配置编译分析 u-boot源码是通过gcc和Makefile组织编译的,顶层目录下的Makefile可通过boards.cfg来设置开发板的定义 然后递归调用各级子目录下的Makefile,把编译过的程序连接成u-boot boards.cfg文件: 开发…

行列式计算的两种方法

#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define N 100 using namespace std; int a[N][N]; double aa[N][N]; int n;/**********************************************************/ //求行列式的值&#xff1…

uboot启动流程分析

Uboot的启动流程分为两个阶段&#xff0c;第一阶段主要是汇编语言编写&#xff0c;第二阶段是C语言编写&#xff0c;每个阶段所做的工作不同&#xff0c;这篇文章分析的是uboot 2010版&#xff0c;以tiny4412的uboot为例。 启动过程涉及的主要文件&#xff1a; arch/arm/cpu/a…

(一)uboot的移植与制作

目录&#xff08;一&#xff09;环境&#xff08;二&#xff09;流程分析&#xff08;三&#xff09;具体步骤在裸机启动流程里涉及到BL1&#xff0c;BL2为系统的加载启动项&#xff0c;全称为BootLoader。 Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程…

jquery ajax(实现单独提交某个form)

function submitTaskScore(formid) {//formid表示的是表单的id$.ajax({type:"post",url:"companyAndDistributeAction!scoreTask",//后台处理程序data:$(formid).serialize(),success:function(){document.getElementById("hjzggContent").inner…

(二)linux内核镜像制作

&#xff08;一&#xff09;目的 在进行嵌入式开发的时候&#xff0c;我们往往会先在电脑上安装交叉编译器&#xff0c;然后编译目标板上的代码&#xff0c;最后把代码下载到电路板中&#xff0c;嵌入式系统组成包括&#xff1a;BootLoaderkernelfilesystemapplication&#x…

js+css实现骰子的随机转动

网上找的例子&#xff0c;然后增添了新的东西&#xff0c;在这里展示一下...... 效果图预览&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html x…

linux安装交叉编译环境

&#xff08;一&#xff09;交叉编译器的简介 &#xff08;1&#xff09;本地编译 在了解交叉编译之前我们首先介绍一下另一个概念&#xff1a;本地编译 之前所做的C开发属于本地编译&#xff0c;即在当前PC下&#xff08;x86的CPU下&#xff09;&#xff0c;直接编译出可以运…

jsp实现邮件的发送

如果程序出现 454 Authentication failed, please open smtp flag first! 错误&#xff0c;那么一般是邮箱没有开通POP3/SMTP服务&#xff0c;登录邮箱&#xff0c;在设置中开启该服务即可 &#xff01; 另外需要的jar包如下: imap.jar, mail.jar, smtp.jar, 可以自己在网上下…

linux的mount和umount指令使用

mount即挂在操作&#xff0c;磁盘或分区创建好文件系统后需要挂载到一个目录&#xff08;一般mount在/mnt下&#xff09;才能使 用&#xff0c;和winsdows不同的是在linux下需要手动挂载。 用法&#xff1a;mount [-t文件系统] [选项] 设备目录注意&#xff1a;[ ]为可选项…

斐波那契的四种求法

首先看一下斐波那契的矩阵表示&#xff1a; 数列的递推公式为&#xff1a;f(1)1&#xff0c;f(2)2&#xff0c;f(n)f(n-1)f(n-2)(n>3) 用矩阵表示为&#xff1a; 进一步&#xff0c;可以得出直接推导公式&#xff1a; #include<iostream> #include<cstring> #i…

利用STM32制作红外测温仪之软件设计(MLX90614)

目录&#xff08;一&#xff09;工程目录如图&#xff1a;&#xff08;二&#xff09;main函数实现&#xff1a;&#xff08;三&#xff09;MLX90614测温代码实现前面介绍了使用 STM32制作红外测温仪硬件设计,今天来说一下软件的实现&#xff0c;具体的程序&#xff0c;完整的k…

Windows下使用Dev-C++开发基于pthread.h的多线程程序

一、下载Windows版本的pthread 目前最新版本是&#xff1a;pthreads-w32-2-9-1-release.zip。 二、解压pthread到指定目录 我选择的目录是&#xff1a;E:\DEV-CPP\Pthread完成后&#xff0c;该目录会多出三个文件夹&#xff1a;Pre-built.2&#xff0c;pthreads.2&#xff0c;Q…

(三)linux之根文件系统的制作

&#xff08;一&#xff09;准备工作 Ubuntu 16.04系统linux-3.5内核:linux-3.5-20190929交叉编译工具arm-linux-gcc-4.5.1-v6-vfp-20120301.rarbusybox源码包&#xff1a;busybox-1.21.1.rar &#xff08;二&#xff09;工具介绍 &#xff08;1&#xff09;交叉编译器 这个…

c/c++多线程模拟系统资源分配(并通过银行家算法避免死锁产生)

银行家算法数据结构 &#xff08;1&#xff09;可利用资源向量Available 是个含有m个元素的数组&#xff0c;其中的每一个元素代表一类可利用的资源数目。如果Available[j]K&#xff0c;则表示系统中现有Rj类资源K个。 &#xff08;2&#xff09;最大需求矩阵Max 这是一个nm的…

(四)Linux内核模块化编程

目录&#xff08;一&#xff09;模块化编程简介&#xff08;二&#xff09;安装卸载模块命令.&#xff08;三&#xff09;将自定义功能添加到内核三种方法&#xff08;1&#xff09;修改Kconfig和Makefile&#xff08;2&#xff09;直接修改功能对应目录下的Makefile文件&#…

基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序

1.字节顺序  字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序&#xff0c;通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处&#xff0c;高字节数据存放在内存高地址处&#xff1b;大端字节序是高字节数据存放在低地址处&#xff0c;低字…

Linux内核空间和用户空间

在Linux系统中存在进程的概念&#xff1a; 进程的分类&#xff1a; 用户进程&#xff1a;运行在用户空间的进程被称为用户进程 内核进程:运行在内核空间的进程被称为内核进程 进程的空间&#xff1a; 系统会为每一个进程分0-4G的虚拟寻址空间&#xff0c;在4G的空间中 0-3G&…

codeforces Round #320 (Div. 2) C. A Problem about Polyline(数学) D. Or Game(暴力,数学)

解题思路&#xff1a;就是求数 n 对应的二进制数中有多少个 1 #include <iostream> #include<cstdio> using namespace std; int main(){int n;cin>>n;int ans 0; // while(n){//这也是一种好的方法 // n n&(n-1); // ans; // }while(n…