存储名词科普
我们经常都把手机的存储卡说成是“内存卡”,偶尔也听说内存几百G的,而还有名词flash, nor flash, nand flash等等,相信蛮多人都晕坨坨的。这里科普一下。
我们都知道存储器是用来存数据的,而数据又包括代码数据和一般意义上的数据。存储器的访问方式有两种,一种是随机访问,即可以任意读取某一字长长度内容,另一种是块访问,即每次访问都是以扇区(512字节,或者扇区的整数倍)进行。而代码的执行可能会随意跳转地址,因为只能够使用支持随机读的存储介质。
一、支持代码执行的存储器
1. RAM
RAM即是我们常说的内存,而RAM分两种,一种是SDRAM(同步动态随机存储器),电脑的内存条就是SDRAM,现在都普遍4G了,手机的内存也是SDRAM,千元机2G。另外一种是SRAM(静态随机存储器)。动态是指存储阵列需要不断的刷新来保证数据不丢失,而静态则不需要刷新,因此静态的设计工艺要求高,成本也相对高,一般SRAM的规模比较小,集成到芯片的内部(SOC),大小是K级或者M级。
RAM是易失性存储,即掉电后数据会丢失。
2.ROM
ROM即只读存储器,代码是固化到ROM中,永不能改变。因此一般由ROM中的代码负责启动,再把操作系统的代码引导到RAM中执行。很多大量量产的低端电子产品的代码是全部固化的,如一些语音玩具狗等等。
3.OTP
OTP(One Time program)是一次性编程,即只能编程一次,写入后就跟ROM一样了。可见,其比ROM要灵活一点,一般是固化之前用于调试代码的,或者是为了增加产品差异性的一种手段。
4. nor flash
flash(flash eeprom memroy)即闪存,其是非易失存储,也可以EIP(Excute in Place)即芯片内执行。其接口比SDRAM要简单,大小在M级别,所以绝大部分的单片机、处理器的开发板都会使用nor flash作为内存来烧写或者运行代码。早期的非智能机使用nor flash作为内存也很广泛。
二、不支持代码执行的存储器
不支持代码执行的存储都属于外存储器介质了。
1. nand flash
nand flash也是闪存的一种,但其读取只能以块来读取,但其擦写速度比nor flash要快很多,所以nand flash作为大容量的数据存储有绝对的优势。mp3,u盘等产品的存储就是用它来做。
2. SD-MMC CARD
这个就是开头所讲的“内存卡”,实际是外存储介质。其也是大容量的数据存储的解决方案,因为卡的接口方便,可以拆卸,更换方便,而nand flash是死死地焊在板子上的。所以手机上可以换的就是SD-MMC卡了。不过大家也要清楚,除了这个卡之外,手机的存储也有几G空间的,这个并不是内存,而是内置的nand flash或者nor flash。
3. 硬盘
这个不用说啦,就是电脑的硬盘,典型的外存储。
4. EEPROM
EEPROM也是闪存的一种,不过一般意义上说闪存是不包括EERPOM,是比较老的工艺了,也是字节访问的。很少的数据可以考虑用eeprom。