各位做嵌入式开发的小伙伴有没有这种困扰,每当开会讨论开发板性能,各种参数配置,领导们侃侃而谈的rom、ram、ddr、nand-flash等一系列装X单词…到底是些什么东西,你都了解吗,赶紧来熟悉一波吧
内存
什么是内存?在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,CD等,能长期保存信息,并且不依赖与电来保存信息。
内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,一旦断电,其中的程序和数据就会丢失。
CPU 内存 硬盘
CPU如果直接从硬盘中抓数据,时间会太久。所以“内存” 作为中间人,然从硬盘里面复制一份进来,再让CPU直接到内存中拿数据做运算。这样会比直接去硬盘抓数据,快百万倍。
CPU里面有一个存储空间,叫Register(寄存器),运算时,CPU会从内存中把数据载入Register,再让Register中存的数字做运算,运算完再将结果存回内存中。毕竟CPU和内存是两片不同的芯片,没有在同一块芯片里直接抓数据块。
还有一个概念是Cache,这是CPU和内存之间的桥梁。
速度来讲,就是:CPU里面的Register > Cache > 内存 > 硬盘,速度越快,价格越高,容量越低。
ROM和RAM
ROM和RAM指的都是半导体存储器,都是计算机内部存储器的一种,ROM(只读存储器)是Read Only Memory的缩写,RAM(随机存取存储器)是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM比较好理解,可以理解成我们常说的手机以及计算机的运行内存,RAM越大,能同时在内存中执行的程序就越多,性能一般是越好的。
ROM对于很多新手来说,可能会和硬盘理解混淆。那么ROM和硬盘到底有没有关系呢?要从早期发展历程说起,早期,乃至现在,我们的主要存储介质都是磁性存储,也就是磁盘,分为硬盘和软盘,硬盘不太适合做移动存储,因为其磁头容易损坏,不耐摔,而且体积较大,就算缩小容量仍然很难缩小其体积,软盘虽然用作移动介质还算方便,但其容量过于小,不够用,而光盘虽然容量大但不易擦写,同时体积也不够小,这时就很适合使用半导体存储介质–ROM和RAM,ROM用来嵌入电脑主板或者做移动存储介质就很合适了,其体积够小,提供的容量可以比光盘和软盘的大,速度也更快,但成本相对更高,而且早期的ROM因为技术不成熟所以无法擦写,出厂后就只能读数据,所以叫只读存储器,后来随着技术的发展,在ROM的基础上出现了新的半导体存储介质EPROM和EEPROM,这两种可擦写,这就不符合ROM的命名,但是由于是在ROM的技术上衍变出来的,所以延用了一部分原来的叫法,此时非易失的半导体存储介质开始得以广泛应用,被大量用于电脑主板的bios和嵌入式存储,而后来在这两种技术的发展上又发展出了NAND FLASH闪存,这就是我们现在用的U盘中用到的技术,同样,因为其体积小,容量和速度均不错,现在手机存储中的emmc颗粒也是用的这种技术,所以有手机厂商就把手机的存储容量约定俗成为ROM,其继承ROM断电不丢失数据的特性,而且有着较快的速度。
那么电脑硬盘和ROM有什么关系呢?由于ROM和硬盘都可以存储数据而且断电不会丢失,而有都广泛运用于电子产品中,所以有人就对两者产生了混淆。硬盘分为两种,一种是机械硬盘(即磁盘HDD),一种是固态硬盘(SSD),磁盘和ROM没什么关系,但是固态硬盘就不一样了,固态硬盘用到的颗粒也是基于NAND FLASH技术,和u盘以及手机存储有点相似,所以说硬盘和ROM还是有关系的,固态硬盘的存储颗粒是ROM技术发展的产物,但不能说ROM就是硬盘。
ROM和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。
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦除,价格很高,写入时间很长,写入速度很慢。
DDR RAM(RAM的一种)
DDR=Double Data Rate双倍速率,DDR SDRAM=双倍速率同步动态随机存储器,DDR内存是在SDRAM内存基础上发展而来的。这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
Flash内存
Flash内存即Flash Memory,全名叫Flash EEPROM Memory,又名闪存,其存储特性相当于硬盘,它结合了ROM和RAM的长处,不仅具备了电子可擦除可编程(EPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。 在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NAND Flash。
NAND FLASH
Nand-flash内存是flash内存的一种,1989年,东芝公司发表了NAND flash结构。其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。
Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
NOR FLASH
NOR Flash的读取和我们常见的SDRAM的读取是类似的,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约成本。
intel公司1988年开发出了NOR FLASH技术,NOR的特点是芯片内执行,这样应用程序可以直接在flash闪存内运行,不必再把代码读取到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是其很低的写入和擦出速度大大影响了它的性能。
NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。