RAM_ROM_SRAM_DRAM_SDRAM_FLASH

以下内容完全参照三篇文章,特别是第一篇文章,再此表示感谢。
https://blog.csdn.net/liujiaoyage/article/details/37930475
http://www.atpinc.com/Memory-insider/computer-memory-types-dram-ram-module
https://blog.csdn.net/wbwwf8685/article/details/52724068

RAM和ROM的区别

根据掉电数据是否丢失可以分为RAM(Read Only Memory/随机存取存储器)ROM(Random Access Memory/只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失。
ROM掉电后数据不会丢失,ROM可片上运行,与NOR FLASH一样,通常存储CPU的ROM Code,不可改变。能不能片上执行,主要是看存储器存放的代码是可以由CPU直接取指并执行。


RAM的分类

RAM又可分为SRAM(Static RAM/静态存储器)DRAM(Dynamic RAM/动态存储器)

  • SRAMSRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。
  • DRAM:每个DRAM存储器单元由集成电路内的晶体管和电容器组成,数据位存储在电容器中。由于晶体管总是少量泄漏,电容器会缓慢放电,导致存储在其中的信息耗尽; 因此,每隔几毫秒就必须刷新DRAM(给定新的电子充电)以保留数据。
    计算机内存就是DRAM的。DRAM分为很多种,常见的主要有FPRAM/FastPageEDORAMSDRAMDDR RAMRDRAM等。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAMSDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势.

DRAM分类

  • SDRAM-Synchronizes DRAM:是DRAM的一种,它是同步动态存储器,利用一个单一的系统时钟同步所有的地址数据和控制信号。使用SDRAM不但能提高系统表现,还能简化设计、提供高速的数据传输,在嵌入式系统中经常使用。
  • RDRAM-Rambus DRAM:名字取自Rambus公司。它在21世纪初流行,主要用于视频游戏设备和显卡,传输速度高达1GHz。
  • DDR SDRAM-Double Data Rate SDRAM:双倍速率同步动态随机存储器。SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。
    这就是我们通常口中所说的DDR内存条。

Flash定义

Flash也是一种非易失性存储器(掉电不会丢失),它擦写方便,访问速度快,已大大取代了传统的EPROM的地位。由于它具有和ROM一样掉电不会丢失的特性,因此很多人称其为Flash ROM
FLASH存储器又称闪存,它结合了ROMRAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。
在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储bootloader以及操作系统或者程序代码或者直接当硬盘使用。

  • NOR FlashNOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码(也就是片上运行),这样可以减少SRAM的容量从而节约了成本。
  • NAND FlashNAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

比较:

  • NAND则是高数据存储密度的理想解决方案,NOR一般只用来存储少量的代码;
  • NOR主要应用在代码存储介质中,NOR的特点是应用简单、无需专门的接口电路、传输效率高,它是属于芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在NOR flash上运行,不必再把代码读到系统RAM中;
  • 在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NOR flash占据了容量为1~16MB闪存市场的大部分。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口;
  • Nor Flash有自己的地址线和数据线,可以采用类似于memory的随机访问方式,在Nor Flash上可以直接运行程序,所以Nor Flash可以直接用来做boot,采用Nor Flash启动的时候会把地址映射到0x00上;
  • Nand Flash是IO设备,数据、地址、控制线都是共用的,需要软件区控制读取时序,所以不能像Nor Flash内存一样随机访问,不能EIP(片上运行),因此不能直接作为boot;

为什么不能再NAND 上运行程序?

代码执行主要就是指令取值和数据存取,对于指令存取和数据存取,CPU 直接将要预取的指令或者数据的地址发到系统总线上,对于ARM (就是AXBI)总线,这个地址会根据Soc之间的地址编码送到不同的控制器。
对于NAND Flash根本就没有地址线,只有数据线。NAND Flash的读取是要靠软件代码经过NAND Flash controller发相关的命令和要地址等数据到NAND Flash芯片内部的控制器,命令和地址都是经过数据线传送的。一般需要多个周期,由于需要数据读写,需要软件介入,所以说他不是XIP的。
XIP从某种意义上说是CPU送出的地址能否不经过任何软件直接能够寻址到相关的存储单元。所以Nor Flash/SRAM/SDRAM都是XIP的,而Nand Flash等就不是XIP了。

Title:RAM_ROM_SRAM_DRAM_SDRAM_FLASH

Author:Victor Huang

Time:2019-03-17 / 16:03

Link:http://wowothink.com/f3b410c4/

License: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)