嵌入式-存储器类型详解

概述

要搞嵌入式Linux开发环境移植… 从内核移植篇中讲到的"将内核映像和设备树下载到内存中",有点蒙,竟然还没有正儿八经的搞明白ROM和RAM。以上述问题为契机,开始了一天的关于嵌入式板卡存储体系的学习…

RAM

基本概念

随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。所谓“随机存取”,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系。
RAM由存储矩阵、地址译码器、读/写控制器、输入/输出、片选控制等几部分组成。存储矩阵是RAM的核心部分,是一个寄存器矩阵,用来存储信息。

DDR

在阅读FS44412开发板清单时,看到其内存配置为1GB双通道 DDR3,前边标注的是RAM,有点low,这就是我的认识过程。DDR内存全称是DDR SDRAM(Double Data Rate SDRAM,双倍速率SDRAM),人们习惯称为DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器,DDR内存是在SDRAM内存基础上发展而来的。至此,我才将PC的内存条设备和嵌入式里常见的RAM联系了起来…

SRAM

ROM

名字问题

只读存储器(Read-Only Memory,ROM),为什么叫做只读但是也可以擦除编程,因为这种说法来自于早期计算机中相关叫法,当时的技术还没现在这么先进(当时一次写入无法擦除,无法修改),所以叫做只读,最早见于电脑BIOS中。随着技术的发展,有许多的概念已经不完全是它的字面意思啦…

ROM分类

在嵌入式中讲到ROM,“程序存储器是一种只读存储器ROM”,用它来固化单片机的应用程序和一些表格参数,并讲到ROM存储器有,MaskROM型、EPROM型、OTPROM型、FlashROM型。
PROM是可编程只读存储器(Programmable read-ONly memory)的缩写,是一种电脑存储记忆晶片,它允许使用称为PROM编程器的硬件将数据写入设备中,是只能被使用者修改一次的只读存储器(ROM)。
EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。在一个EEPROM中,当计算机在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。通常讲,EEPROM在读写次数、操作单元、功耗等方面要优于Flash,但是其读写速率、容量大小等远不如Flash。
这个东西的作用于铁电差不很多,主要用来存储那些较小的配置?待查证!

Flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。Flash Memory,是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。与硬盘相比,闪存也有更佳的动态抗震性。闪存的写入速度往往明显慢于读取速度。

NorFlash

NOR Flash需要很长的时间进行抹写,但是它提供完整的寻址与数据总线,并允许随机存取存储器上的任何区域,这使的它非常适合取代老式的ROM芯片。当时ROM芯片主要用来存储几乎不需更新的代码,例如电脑的BIOS或机上盒(Set-top Box)的固件。NOR Flash可以忍受一万到一百万次抹写循环,它同时也是早期的可移除式快闪存储媒体的基础。
NorFlash对比NandFlash 主要参考NandFlah百科NAND Flash和NOR Flash区别,主要对比如下:

  1. 写入bai/擦除操作的时间不同
    擦除NAND器件以8~32KB的块进行,执行同一写入/擦除的操作时间为4ms
    擦除NOR器件是以64~128KB的块进行,执行同一个写入/擦除操作的时间为5s
  2. 接口不同
    nand flash使用较为复杂的I/O口来串行地存取数据,并且各个产品或厂商的方法可能各不相同。
    nor flash为SRAM接口,拥有足够的地址引脚用于寻址。
  3. 容量成本不同
    NAND flash的单元尺寸大约为NOR器件的一半,由于生产过程更为简单,因此价格较低。
    NOR flash单元尺寸较大,生产过程也较为复杂,因此价格较高。
  4. 耐用性不同
    NAND闪存中每个块的最大擦写次数是一百万次。
    NOR闪存中每个块的最大擦写次数是十万次。

NandFlash

NAND Flash式东芝在1989年的国际固态电路研讨会(ISSCC)上发表的, 要在NandFlash上面读写数据,要外部加主控和电路设计。NAND Flash具有较快的抹写时间, 而且每个存储单元的面积也较小,这让NAND Flash相较于NOR Flash具有较高的存储密度与较低的每比特成本。同时它的可抹除次数也高出NOR Flash十倍。然而NAND Flash 的I/O接口并没有随机存取外部地址总线,它必须以区块性的方式进行读取,NAND Flash典型的区块大小是数百至数千比特。
因为多数微处理器与微控制器要求字节等级的随机存取,所以NAND Flash不适合取代那些用以装载程序的ROM。从这样的角度看来,NAND Flash比较像光盘、硬盘这类的次级存储设备。NAND Flash非常适合用于储存卡之类的大量存储设备。第一款创建在NAND Flash基础上的可移除式存储媒体是SmartMedia,此后许多存储媒体也跟着采用NAND Flash,包括MultiMediaCard、Secure Digital、Memory Stick与xD卡。

EMMC

eMMC (Embedded Multi Media Card) 为MMC协会所订立的,eMMC 相当于 NandFlash+主控IC ,对外的接口协议与SD、TF卡一样,主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说,同样的重要。
eMMC由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器设备(Nand Flash)及主控制器,所有都在一个小型的BGA 封装。接口速度高达每秒52MBytes,eMMC具有快速、可升级的性能。

RAM和ROM实践

今天学习STM32F407开发板,了解到它的存储系统有4部分:192K的片内SRAM、1M的片内Flash、1M的片外SRAM(XM8A51216)、16M的片外Flah(W25Q128),由此重新来理一下上述两种Flash的区别。

STM32F407的NORFlash

结构图,及其使用方法。
使用方法参见库函数板开发指南,第39章。

堆内存

堆内存,是区别于栈区、全局数据区和代码区的另一个内存区域。堆允许程序在运行时动态地申请某个大小的内存空间。Here,以此为契机,看看上述提到的区域都真实的存在哪里?

堆内存分配

在正点原子的FreeRTOS开发手册中,有提到堆内存的分配方法。默认情况下,FreeRTOS的堆内存是有编译器来分配的,将宏configAPPLICATION_ALLOCATED_HEEP定义为1的话,堆内存可以由用户自行设置,堆内存在heap_1.c/heap_2.c/heap_3.c/heap_4.c/heap_5.c中有定义,具体的在哪个文件取决于用户选择哪种内存管理方式。

//in heap_4.c /* Allocate the memory for the heap. */
#if( configAPPLICATION_ALLOCATED_HEAP == 1 )
	/* The application writer has already defined the array used for the RTOS
	heap - probably so it can be placed in a special segment or address. */
	extern uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];
#else
	static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];
#endif /* configAPPLICATION_ALLOCATED_HEAP */

内存/外存

脑海里泛出来的第一问题时,既然RAM对应了PC的内存,那么是不是ROM对应的是外存或者说是硬盘? 心里犯嘀咕,感觉像又感觉不像!有的人想当然就把他们对应上来,从一些嵌入式书籍的描述中,ROM通常是被描述为内存的…
外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。从冯.诺依曼的存储程序工作原理及计算机的组成来说,计算机分为运算器、控制器、存储器和输入/输出设备,这里的存储器就是指内存,而硬盘属于输入/输出设备。

? 从制造材料上,ROM和硬盘是完全不同的,从使用功能上来说ROM和硬盘是相似的,如存储操作系统、应用程序、数据等,但是硬盘更突出存储暂时不用的数据的意思,ROM没有这层意思,嵌入式开发中也不会有这样的需求,ROM更加突出存储应用程序的意思。在嵌入式领域,ROM被描述为内存。

固态硬盘

PC上常常谈及到的固态硬盘,在本质上是Flash吗?
https://zhidao.baidu.com/question/164676437.html
SSD固态硬盘是固态存储,属于Flash memory,使用寿命长,不容易损du坏,抗震性强。

FIFO存储器

作为一种新型大规模集成电路,FIFO( First Input First Output)芯片以其灵活、方便、高效的特性,逐渐在高速数据采集、高速数据处理、高速数据传输以及多机处理系统中得到越来越广泛的应用。FIFO存储器是系统的缓冲环节,IFO存储器分为写入专用区和读取专用区。读操作与写操作可以异步进行,写入区上写入的数据按照写入的顺序从读取端的区中读出,类似于吸收写入端与读出端速度差的一种缓冲器。计算机的串口,一般也都具有FIFO缓冲器(不是单一的FIFO存储器,而是嵌入在设备内部)。
FIFO可以是一块具体的硬件存储设备,也可是程序在内存中开辟的一段内存区域,而buffer往往就是一段缓冲的数据区域。FIFO强调先进先出,它有时可帮助系统解决始终域不同步或数据局宽度不一样的情况。环形缓冲区ring buffer在外在表现上有些类似fifo存储器…
FIFO 是“First-In First-Out”的缩写,意为“先进先出”,是一种常见的队列操作。 Stellaris 系列ARM 的UART 模块包含有2 个16 字节的FIFO:一个用于发送,另一个用于接收。可以将两个FIFO 分别配置为以不同深度触发中断。(来自UART-FIFO操作

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值