存储器分类
- 内存(RAM)
-
- SRAM
- DRAM
- 外存(ROM)
-
- PROM
- EPROM
- EEPROM
- FLASH
-
- SPI flash
- Nor、Nand
- eMMC
- SD、TF
- HDD
- SSD
存储器有两种,一种是断电之后会丢失信息,叫做易失性存储器(volatile memory);一种是断电后仍然可以保存信息,叫做非已失性存储器(nonvolatile memory)。其中SRAM和DRAM是易失性存储器,经常还会被统称为RAM(Random-Access Memory),随机访问存储器,也叫做主存或内存。非易失性存储器人们也称为ROM(Read-Only Memory),这里就不能仅仅以字面意思去理解,ROM字面意思是只读存储器,但有很多ROM既可以读也可以写,ROM称为外存。这些名词似乎都无法准确进行概括去区分,甚至在不同的环境中会有不同的意思,对于刚学习计算机的人会有困惑,但是很多东西似乎也是约定俗成,只要我们知道他们的功能就不会理解错误。
例如怎么理解内存和外存呢?我觉得一定是你已经明白了,你才知道。但你是怎么明白的,一定不是从书上看到的概念:内存,存取速度快,容量小;外存,存取速度慢,容量大。我以前看到这样的描述也觉得说了等于没说。我就会想,为什么速度快就是内存,有多快,比谁快,慢的就不能当内存吗?直到我知道CPU是如何执行指令,程序的代码和数据如何被存放和加载的,计算机局部性原理,存储器层次结构,可能才对这些概念有一个更深的认识,知道为什么这样去设计,这些概念也会随着技术的发展会有变化。本人也是能力有限,无法说明白这些存储器更深层次的区别,不过也给大家提供一个思路。
内存(RAM)
随机访问存储器分为两类,静态的(SRAM)和动态的(DRAM)。
SRAM
SRAM将每个位存储在一个双稳态的存储器单元里。每个单元是用一个六晶体管电路来实现的,在供电期间保留数据。这使得每个内存单元相对较大,并限制了SRAM在低密度内存中的使用。SRAM能够提供更快的数据访问,使用更少的待机电量,但往往比DRAM更昂贵。SRAM一般用来作为高速缓存存储器。
DRAM
DRAM为每个存储器位使用一个晶体管和一个小电容。 由于电容不会无限期地保持电荷,因此必须经常对DRAM单元进行充电(刷新)以避免丢失内容。 这些较小的存储单元允许DRAM用于高密度,低成本的存储器,但通常比SRAM慢。DRAM一般用来作为主存。
外存(ROM)
PROM
PROM,Programmable ROM,可编程只读存储器。只能被编程一次。PROM的每个存储单元有一种熔丝,通过高压电流将其熔丝“烧”断以将其设置为1或0,这过程不可逆,因此数据只能烧写一次。
EPROM
EPROM,Erasable Programmalbe ROM,可擦写可编程只读存储器。EPROM对PROM来说是一个很大的改进,因为不仅可以烧写所需的数据或程序,而且还可以进行多次烧写。早期的EPROM有一个透明的石英窗口,将它们石英窗口暴露于紫外线(UV)中,可以将它们擦除。对EPROM写数据是通过特殊设备来完成的。
EEPROM
EEPROM,Electrically Erasable PROM,电可擦写可编程只读存储器。这是对早期EPROM的改进,因为它不再需要紫外线来擦除存储芯片,因此不需要特殊的设备进行写入。取而代之的是,只需要向芯片上的一个引脚施加特殊的电压就可以了。EEPROM要求一次写入或擦除一个字节的数据。
FLASH
FLASH,Flash Memory,闪存。flash是基于EEPROM发展的,区别是EEPROM要求一次写入或擦除一个字节的数据,而闪存则允许以块为单位写入或擦除数据,这使闪存速度更快。
SPI flash
flash以接口不同可以分为传统flash和SPI flash,传统flash的接口不一,CLE、ALE、CE、RE等,使用的管脚数量也不一,因此难以使用。而后面的SPI flash的接口就SPI总线,统一接口可以方便随时更换不同厂家的flash而不需要修改电路设计和代码,并且SPI flash使用的管脚数量比传统的flash更少。
Nor、Nand
flash memory有两种架构,Nor和Nand。
Nor,容量小,价格高,Nor通常用于代码存储和执行。 Nor允许快速随机访问存储器阵列中的任何位置,部件寿命期内所有存储单元(bit)都是良好的以及可以直接从Nor闪存中执行代码。
Nand,容量大,价格低,通常用于数据存储。 Nand闪存需要一段时间去初始化才能工作,部件寿命期内大概98%的存储单元(bit)是良好的,意味着还有2%的存储单元(bit)是故障,因此需要使用数据校验算法(ECC)。写入和擦除时间比Nor快得多。
eMMC
eMMC,embedded Multi-Media Controller。是Nand和闪存控制器集成在同一芯片封装。Nor和Nand闪存最初不需要单独的硬件闪存控制器,并且将这部分此功能移交给软件处理。硬件闪存控制器的主要功能一是纠错和编码(ECC);功能二实现了FTL(Flash Translation Layer,闪存转换层),该FTL进行类似于磁盘的块访问并将其转换为有意义的Nand操作,以及执行损耗均衡和块节省。eMMC适用于高性能应用,例如用于智能手机,平板电脑,导航系统和数码相机等便携式消费电子产品。
SD、TF
SD,Secure Digital Memory Card,数字安全记忆卡。SD卡和eMMC非常相似,区别就是eMMC一般焊接在主板上,而SD卡是可以拔插的。
TF,TransFLash,也称为Micro SD卡,其实本质上和SD卡是一个东西,只是外形不同,名称不同,开发的公司不同而已。市面上还有TF卡插头适配器,可以直接转换为SD卡。
HDD
磁盘,Hard Disk Drive,HDD。使用旋转盘片为基础的非易失性存储器,它在平整的磁性表面存储和检索数字数据,数据通过离磁性表面很近的磁头由电磁流来改变极性的方式被写入到磁盘上,数据可以通过盘片被读取,原理是磁头经过盘片的上方时盘片本身的磁场导致读取线圈中电气信号改变。(维基百科)
SSD
SSD,solid-state drive,固态硬盘。SSD也是和eMMC一样由Nand和闪存控制器组成,可以理解eMMC通常是一个闪存芯片而SSD是多个闪存芯片,SSD容量会更大;SSD使用SATA、PCIe、M2等接口,传输速度比eMMC的SPI接口更快;eMMC常用于移动设备中,SSD常用于PC。
部分参考:
[1] https://blog.csdn.net/sinat_27746419/article/details/73604520
[2] https://blog.csdn.net/u014470361/article/details/96130939
[3] https://www.gearbest.com/blog/new-gear/tf-card-vs-sd-card-what-is-it-and-9-easy-ways-to-help-you-tell-their-differences-6305
[4] https://www.cypress.com/file/202491/download