嵌入式(1):ROM、RAM和FLASH傻傻分不清,搞懂存储介质与启动顺序(ramromflash的存储原理及区别)
硬件的存储介质配置决定了整体的启动流程运行介质都会在CPU的地址空间上,占用地址空间的一部分CPU可以根据寻址地址从运行介质中读取一条指令或者一条数据RAM属于随机访问存储器,ROM和Flash等属于非易失性存储器。
ROMROM(Read Only Memory),只读存储器ROM数据不能随意更新,但是在任何时候都可以读取主要用于存放一些固定的不需要修改的代码或者数据掉电之后,数据还可以保存IROM则是指集成于芯片内部的ROM。
ROMROM主要有Mask ROM、EPROM、EEPROM和Flash ROMMask ROM(掩膜ROM),一次性由厂家写入数据的ROM,用户无法修改PROM只允许用户利用专门的设备(编程器)将自己的程序写入一次,一旦写入后,其内容将无法改变。
所以也叫做一次可编程只读存储器(One Time Programming ROM)EPROM(可擦除可编程ROM),分为UVEPROM(紫外线擦除)和EEPROM(电擦除)EPROM虽然即可读又可“写”,但它不能取代RAM。
因为EPROM的编程次数是有限的;而且它写入的时间较长,即使对于EEPROM,擦除一个字节需要约10ms,写入一个字节大约需要10us,比SRAM或DRAM的时间长100~1000倍EEPROM不但可以利用电压的高低来写入数据,还可以利用电压的高低清除EEROM所存储的数据。
EEPROM在数据清除时还可以针对个别的存储单元进行清除操作,比起EPROM需要整个清除数据方便许多EEPROM的数据存储保持能力可以长达10年,而数据清除再被规划的次数可以达到一万次以上Flash ROM
见NOR Flash部分。RAMRAM有两个大类,静态RAM和动态RAM。
板载RAMSRAM(Static Random Access Memory),即静态随机存取存储器(六个晶体管存储一位数据,功耗大,密面积大)它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。
优点,速度快(目前读写速度最快的存储设备),不必配合内存刷新电路,可提高整体的工作效率初始化简单缺点,集成度低,掉电不能保存数据,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率。
(一、二级缓存)DRAM( Dynamic Random Access Memory),动态随机存储器(一个晶体管和一个电容存储一位数据,便宜简单,需要刷新),动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。
DRAM有很多种,主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等其中SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器,同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;相对于SRAM来说,体积较小且价格便宜。
由General SDRAM and Controller进行控制,通常只能工作在133MHz主频其中DDRAM(Double Data Rate SDRAM,双倍速率随机存储器),DDRAM依靠一种叫做双倍预取(2n-prefetch)的技术,即在内存芯片内部的数据宽度是外部接口数据宽度的2倍,使峰值的读写速度达到输入时钟速率的2倍,并且DDRAM允许在时钟脉冲上升沿或下降沿传输数据,这样不需要提高时钟频率就能加倍提高SDRAM的速度,并具有SDRAM多一倍的传输速率和内存带宽。
同时为了保证在高速运行时的信号完整性,DDRAM技术还采用了差分输入的方式总的来说DDRAM采用更低的电压、差分输入和双倍数据速率输出等技术Flash又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。
在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替ROM(EPROM)在嵌入式系统中的地位
U盘、SD大小卡Flash有两种:NOR Flash和NADN FlashNOR Flash(读慢、写快)一般用来存储少量的代码,适合小容量固件的启动内存NADN Flash一般用在高数据存储密度方案(固态硬盘、u盘等)。
NOR Flash的读取和我们常见的SRAM的读取是一样,不需要再把代码读到系统RAM中运行,用户可以直接运行装载在NOR FLASH里面的代NOR Flash的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但很低的擦除和写入速度大大影响了它的性能。
NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价NAND Flash不能像RAM那样,直接对目标地址进行总线操作,比如执行一次写操作,它必须输入一串特殊的指令(NOR Flash),或者完成一段时序(NAND Flash)才能将数据写入到Flash Memory中,因此用户不能直接运行NAND Flash上的代码,好多使用NAND Flash的开发板除了使用NAND Flah以外,还配上了一块小的NOR Flash来运行启动代码。
SPI Flash使用SPI总线接口的Nand FlasheMMC是Nand Flash和闪存控制器集成在同一芯片封装SD和eMMC相似,区别就是eMMC焊接在主板上,而SD卡是可以拔插的TF(Trans Flash),也称为Micro SD卡,本质和SD卡是一个东西。
TF卡SSD(solid-state drive)固态硬盘,与eMMC类似,区别是SSD是有多个闪存芯片,eMMC通常是一个闪存芯片,SSD使用SATA、PCIe、M2等接口,传输速度比eMMC的SPI接口更快,eMMC常用于移动设备中,SSD常用于PC。
三星870pro SSD启动顺序在uboot启动过程中有三个步骤,即BL0、BL1和BL2因为BL0是上电启动代码,固定不变的,所以将其固化在IROM中运行因为SRAM是集成在平台内部,BL0阶段之后可以直接使用,但是size比较小。
而SDRAM需要根据外围DDR进行初始化,BL0之后还无法使用,需要在BL1中进行初始化之后才能使用故BL0放在IROM中运行,BL1放在SRAM中运行,BL2放在SDRAM中运行本文为算法卡农所有,严禁侵权!
喜欢的话加个关注吧!
以上就是关于《嵌入式(1):ROM、RAM和FLASH傻傻分不清,搞懂存储介质与启动顺序(ramromflash的存储原理及区别)》的全部内容,本文网址:https://www.7ca.cn/baike/3009.shtml,如对您有帮助可以分享给好友,谢谢。