RAM, ROM, FLASH memory and the principle difference

Source: http: //blog.csdn.net/grow_mature/article/details/8554465

A, RAM (Random Access Memory) a random access memory, the main role is called when needed by the CPU code and data storage. These data are not stored in bags containing rice is so like, more like a library with a grid of shelves to store books, like, not only to put in but also can accurately call out when needed. Similar principles such as a RAM memory, although storage of the code 1 and 0 is representative of, but with different combinations of data becomes different. If there is a bookshelf there are 10 rows and 10 columns grid (each row and each column is numbered 0-9), there are 100 books to be stored in it, then we can determine if a book based on number of rows and columns s position. Known as a book number 87, we can lock the first line 8, and then find the column 7 can accurately find this book. RAM memory storage principle is similar. In RAM memory, a data bus for input and output data. Memory storage space such as store shelf of books by a rule as mentioned earlier defined, we may be stored in the corresponding memory location data according to this rule, the positioning of the data is achieved through the address bus.

  For the CPU, the RAM is like a long thin line lot of spaces, each space has a unique address corresponding thereto. If the CPU wants to call after the data from the RAM, it first needs to send the address information of the data to be accessed to the address bus, then wait a number of clock cycles, data bus, will transfer data to the CPU. The following is a schematic diagram of the read data.

  

  FIG small garden point represent memory space in RAM, each storage space has a unique address line connected with it. When the address decoder receiving address data sent from the address bus, whereby it is positioned CPU data storage locations want to call, which is then transferred to the CPU via the data bus data.

If the CPU, RAM for only one "line", it can not reflect the actual operating conditions. If the actual situation that is the case, in the actual manufacture of the chip, there will be many practical difficulties, especially in the need to design large-capacity RAM time. A better method is to reduce the cost of storing information "space" arranged in a number of rows, each of the "space" bit stored in a corresponding position. Thus, if you want to store data 1024bits, just use the matrix can be 32x32. A 32x32 matrix is ​​clearly more compact apparatus than a 1024bit line, and easier to implement. As shown below.

     

For the X86 processor, it sends a coded address through an address bus having 22 binary digits, where 11 is the row address, column address additional 11 which are separated by an interface RAM address. Row address decoder (row decoder) first determines the row address and the column address decoder (column decoder) to determine the column address, so that we can determine the location of stored data only, and will pass that data to the data RAM data interface spread data bus.
       


Two, SRAM is "static RAM (Static Random Access Memory)" for short, where the data is stored, when power is not lost. Usually consists of a SRAM cell transistors 4-6, when the SRAM cell is given the state 0 or 1, it will stay in this state until the next is assigned a new state or a power-off only after the change or disappear. SRAM speed is relatively fast and more power, but the information needs 4-6 1bit storage transistor manufacturing cost too high.

  Early SRAM chip uses 20 lines dual inline (DIP: Dual Inline Package) packaging technology, the reason why they have so many pins, because they must:
  1) requires an address signal of each signal line;
  2 ) a data input line and a data output line;
  3) of the control line (the Write the Enable, Chip the Select);
  . 4) and a ground power supply line.
    

The following is a functional schematic diagram of pin 16K x 1-bit SRAM chip.  


  1) A0-A13 是地址输入信号引脚;

  2) /CS 是芯片选择引脚,在一个实际的系统中,一般具有很多片SRAM 芯片,所以需要选择究竟从那一片SRAM 芯片中写入或者读取数据;
  3) /WE 是写入启用引脚,当SRAM 得到一个地址之后,它需要知道进行什么操作,究竟是写入还是读取,/WE 就是告诉SRAM 要写入数据;
  4) Vcc 是供电引脚;
  5) Din 是数据输入引脚;
  6) Dout 是数据输出引脚;
  7) GND 是接地引脚;
8) Output Enable(OE),有的SRAM 芯片中也有这个引脚,但是上面的图中并没有,这个引脚同/WE 引脚的功能是相对的,它是让SRAM 知道要进行读取操作而不是写入操作。
从Dout 引脚读取1bit 数据的步骤如下:
  1) 通过地址总线把要读取的bit 的地址传送到相应的读取地址引脚,这个时候/WE 引脚没有激活,因此不应执行写入操作;
  2) 激活/CS,选择SRAM 芯片;
  3) 激活/OE 引脚,让SRAM 知道是读取操作;
  第三步之后,要读取的数据就会从DOut 引脚传输到数据总线。写入1bit 数据的过程如下:
  1) 通过地址总线确定要写入信息的位置,确定/OE 引脚没有被激活;
  2) 通过数据总线将要写入的数据传输到Din 引脚;
  3) 激活/CS 引脚,选择SRAM 芯片;
  4) 激活/WE 引脚,通知SRAM 知道要进行写入操作。
经过上面的四个步骤之后,需要写入的数据就已经放在了需要写入的地方。
DRAM 为动态随机存储器。与SRAM不同,DRAM 必须在一定的时间内不停的刷新才能保持其中存储的数据不会丢失。DRAM 只要1 只晶体管就可以实现。
  DRAM 相对于SRAM 来说更加复杂,因为在DRAM 存储数据的过程中需要对于存储的信息不停的刷新,这也是它们之间最大的不同。让我们看看DRAM 芯片的针脚的作用。最早、最简单也是最重要的一款DRAM 芯片是Intel 在1979 年发布的2188 ,这款芯片是16Kx1 DRAM 18 线DIP 封装。“16K x 1 ”的部分意思告诉我们这款芯片可以存储16384 个bit 数据,在同一个时期可以同时进行1bit 的读取或写入操作。
     
  由示意图可看出DRAM 和SRAM 之间有着明显的不同。首先,地址引脚由14 根变为7 根,那么这颗16K DRAM 是如何完成同16K SRAM 一样的工作的呢?答案很简单,DRAM 通过DRAM 接口把地址一分为二,然后利用两个连续的时钟周期传输地址数据,这样就达到了使用一半的针脚实现同SRAM 同样的功能的目的,这种技术被称为多路技术(multiplexing)。
  前面我们曾经介绍过,存储1bit 的数据SRAM 需要4~6 个晶体管,但DRAM 仅仅需要1 个晶体管,那么这样同样容量的SRAM 的体积比DRAM 大至少4 倍。这样就意味着你没有足够空间安放同样数量的引脚(因为针脚并没有因此减少4 倍)。当然为了安装同样数量的针脚,也可以把芯片的体积加大,但是这样就提高芯片的生产成本和功耗。所以减少针脚数目也是必要的,对于现在的大容量DRAM 芯片,多路寻址技术已经是必不可少的了。当然,多路寻址技术也使得读写的过程更加复杂了,这样在设计的时候不仅仅DRAM 芯片更加复杂了,DRAM 接口也要更加复杂。DRAM 芯片内部结构示意图如下:
    
  在上面的示意图中,可看到在DRAM 结构中相对于SRAM 多了两个部分:
  1) 由/RAS (Row Address Strobe :行地址脉冲选通器)引脚控制的行地址门闩线路(Row Address Latch);
  2) 由/CAS(Column Address Strobe :列地址脉冲选通器)引脚控制的列地址门闩线路(Column Address Latch)。
  DRAM 读取过程如下:
  1) 通过地址总线将行地址传输到地址引脚;
  2) /RAS 引脚被激活,这样行地址被传送到行地址门闩线路中;
  3) 行地址解码器根据接收到的数据选择相应的行;
     
  4) /WE 引脚被确定不被激活,所以DRAM 知道它不会进行写入操作;
  5) 列地址通过地址总线传输到地址引脚;
  6) /CAS 引脚被激活,这样列地址被传送到行地址门闩线路中;
  7) /CAS 引脚同样还具有/OE 引脚的功能,所以这个时候Dout 引脚知道需要向外输出数据;
     
  8) /RAS 和/CAS 都不被激活,这样就可以进行下一个周期的数据操作了。
DRAM 的写入的过程和读取过程是基本一样的,只要把第4 步改为/WE 引脚被激活就可以了。
前面提到过,DRAM 同SRAM 的最大不同之处在于不能比较长久的保持数据,这项特性使得这种存储介质对我们几乎没有任何作用。但DRAM 设计师利用刷新技术使得DRAM 成为现在对于我们最有用处的存储介质之一。DRAM 内仅仅能保持其内存储的电荷非常短暂的时间,所以它需要在其内的电荷消失之前就进行刷新直到下次写入数据或者计算机断电才停止。每次读写操作都能刷新DRAM 内的电荷,所以DRAM 就被设计为有规律的读取DRAM 内的内容。这样做有下面几个好处。
  1) 仅仅使用/RAS 激活每一行就可以达到全部刷新的目的;
2) 用DRAM 控制器来控制刷新,这样可以防止刷新操作干扰有规律的读写操作。

三、简单介绍ROM、RAM及FLASH的区别:
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓 冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很 多,计算机内存就是DRAM的。
DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦除,价格很高,写入时间很长,写入速度很慢。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据 (NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此很多使用NAND Flash的开发板除了使用NAND Flah以外,还附加一块小的NOR Flash来运行启动代码。
一般小容量的存储用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。


ROM和硬盘的区别(电脑硬盘不是ROM,BIOS存在ROM当中):

只读内存(Read-Only Memory)就是ROM,它是一块单独的内部存储器,和随机内存RAM(即平时说的内存)相似,但是只能读取,用来存储和保存永久数据的。ROM数据不能随意更新,但是在任何时候都可以读取。即使是断电,ROM也能够保留数据。 
往ROM中注入数据需要另外的编译器,PC上面是没有这个功能的。一般在ROM出厂前注入信息,没有特殊情况一般不会更改内容,也就是说通常是一辈子都是同样的内容。 
在PC中容易误解的一点就是经常有人把ROM和HardDisk(硬盘)搞混淆,HardDisk是属于外部存储器,而ROM是内部存储器。样貌 也有很大差别,硬盘是一个立方体状的东西,而ROM更像一个扁平固定长条状的东西。硬盘可以轻易地改写内容,但是ROM不可以。而且硬盘的容量比ROM大 得多。 
在PC中ROM内的内容有BIOS程序和机器码和出厂信息之类的东西。 
而计算机的外部存储器中采用了类似磁带的装置的东东就叫磁盘。软盘、硬盘、U盘等都是磁盘的一种。


数码闪存卡:主流数码存储介质 
数码相机、MP3播放器、掌上电脑、手机等数字设备是闪存最主要的市场。手机领域以NOR型闪存为主、闪存芯片被直接做在内部的电路板上,但数码相机、MP3播放器、掌上电脑等设备要求存储介质具备可更换性,这就必须制定出接口标准来实现连接,闪存卡技术应运而生。闪存卡是以闪存作为核心存储部件,此外它还具备接口控制电路和外在的封装,从逻辑层面来说可以和闪盘归为一类,只是闪存卡具有更浓的专用化色彩、而闪盘则使用通行的USB接口。由于历史原因,闪存卡技术未能形成业界统一的工业标准,许多厂商都开发出自己的闪存卡方案。目前比较常见的有CF卡、SD卡、SM卡、MMC卡和索尼的 Memory Stick记忆棒。
CF卡(CompactFlash) 
CF卡是美国SanDisk 公司于1994引入的闪存卡,可以说是最早的大容量便携式存储设备。它的大小只有43mm×36mm×3.3mm,相当于笔记本电脑的PCMCIA卡体积的四分之一。CF卡内部拥有独立的控制器芯片、具有完全的PCMCIA-ATA 功能,它与设备的连接方式同PCMCIA卡的连接方式类似,只是CF卡的针脚数多达五十针。这种连接方式稳定而可靠,并不会因为频繁插拔而影响其稳定性。
CF卡没有任何活动的部件,不存在物理坏道之类的问题,而且拥有优秀的抗震性能, CF卡比软盘、硬盘之类的设备要安全可靠。CF卡的功耗很低,它可以自适应3.3伏和5伏两种电压,耗电量大约相当于桌面硬盘的百分之五。这样的特性是出类拔萃的,CF卡出现之后便成为数码相机的首选存储设备。经过多年的发展,CF卡技术已经非常成熟,容量从最初的4MB飙升到如今的3GB,价格也越来越 平实,受到各数码相机制造商的普遍喜爱。CF卡目前在数码相机存储卡领域的市场占有率排在第二位。
MMC卡 (MultiMediaCard) 

MMC卡是SanDisk公司和德国西门子公司于1997年 合作推出的新型存储卡,它的尺寸只有32mm×24mm×1.4mm、大小同一枚邮票差不多,其重量也多在2克以下,并且具有耐冲击、可反复读写30万次以上等特点。从本质上看,MMC与CF其实属于同一技术体系,两者结构都包括快闪存芯片和控制 器芯片,功能也完全一样,只是MMC卡的尺寸超小,而连接器也必须做在狭小的卡里面,导致生产难度和制造成本都很高、价格较为昂贵。MMC主要应用与移动电话和MP3播放器等体积小的设备。

(资料均来源于互联网,侵权请声明,谢谢)

Guess you like

Origin blog.csdn.net/alss1923/article/details/78861166