引言
平时我们买手机,关注最多的配置就是内存了,比如6G+64G、8G+128G等等。但是很多人容易弄混这两个概念。之前我遇到有人问我,说买平板是64G内存,还是128G内存好,128G有点贵,64G又怕不够用。我当时愣了一下,心里想:这是啥平板啊,64G内存,企业级服务器的配置也不过如此,后来一想他说的肯定是闪存。
存储器分类
存储芯片种类很多,依据不同的特性有多种分类方法
(1) 按存取方式分类
随机存取存储器(Random Access Memory, RAM)
这种存储器每个单元读写时间一样,且与各单元所在位置无关。我们平常说的手机内存,那个6G或者8G的,指的就是这种。(注:原意主要强调地址译码时间相同。现在的DRAM芯片采用行缓冲,因而可能因为位置不同而使访问时间有所差别。)顺序存取存储器 (Sequential Access Memory, SAM)
数据按顺序从存储载体的始端读出或写入,因而存取时间的长短与信息所在位置有关。例如:磁带。直接存取存储器 (Direct Access Memory, DAM)
直接定位到读写数据块,在读写数据块时按顺序进行。例如:磁盘。相联存储器 (Associate Memory, AM)
按内容检索到存储位置进行读写。例如:快表。
(2) 按存储介质分类
半导体存储器:双极型,静态MOS型,动态MOS型。
磁表面存储器:磁盘(Disk)、磁带(Tape)。
光存储器:CD,CD-ROM,DVD。
(3) 按信息的可更改性分类
读写存储器(Read/ Write Memory):可读可写。
只读存储器(Read Only Memory):只能读不能写。
(4) 按断电后信息的可保存性分类
非易失性存储器(Nonvolatile Memory):信息可一直保留,不需电源维持。 (如 :ROM、磁表面存储器、光存储器等)
易失性存储器(Volatile Memory): 电源关闭时信息自动丢失,(如:RAM、Cache等)。
(5) 按功能/容量/速度/所在位置分类
寄存器(Register)
这种存储器封装在CPU内,用于存放当前正在执行的指令和使用的数据。用触发器实现,速度极快,容量很小(几个字节到几十字节)高速缓存(Cache)
位于CPU内部或附近,用来存放当前要执行的局部程序段和数据。用SRAM实现,速度可与CPU匹配,容量小(几十KB到几MB)内存储器MM(又称主存储器Main (Primary) Memory)
位于CPU之外,用来存放已被启动的程序及所用的数据。用DRAM实现,速度较快,容量较大(目前来说通常是2GB到16GB)。外存储器AM(又称辅助存储器Auxiliary / Secondary Storage)
位于主机之外,用来存放暂不运行的程序、数据或存档文件。用磁表面或光存储器实现,容量大而速度慢。
目前我们讨论的多的还是按照第4种分类方式,因为按照这样来分只有2类,描述比较方便,当然第3种方式也是分为两类,不过目前存储器都支持读写,只读的很少,所以一般说第4类种分法。那么按照第4种分法,可以总结如下图:
内 存
讲理论往往是枯燥的,下面拿平时身边用到的举例。笔记本电脑或者台式电脑是我们平时都要接触的,那么它里面的内存听的最多的词就是DDR了,我们在购买时的详情页面也会写:
这里的DDR4在上面的分类图中就是属于RAM。RAM又分DRAM(动态随机存储器)和SRAM(静态随机存储器),它们之间不同在于生产工艺,SRAM保存数据是靠晶体管锁存的,DRAM保存数据靠电容充电来维持。SRAM的工艺复杂,生产成本高,所以价格昂贵,但是速度很快,一般做寄存器。容量比较大的RAM一般都选用的是DRAM。 现在电脑里面用的内存条就是DRAM。而SDRAM是“Synchronous Dynamic Random Access Memory”的缩写,也就是“同步动态随机存取存储器”的意思。
我的笔记本用的是DDR3 SDRAM(图中的DDRIII SDRAM)。DDR SDRAM和SDRAM的区别在于DDR(Double Data Rate)双倍速率,即双倍速率同步动态随机存储器。SDRAM只在时钟的上升沿表示一个数据,而DDR SDRAM能在上升沿和下降沿都表示一个数据。当然DDR SDRAM工艺也在不断发展,一步步经过改良出现了一代、二代、三代,已经现在普遍使用的四代(DDR4)和明年要推出的五代(DDR5)。
补充一点:RAM既然是存储器就要传输数据,传输数据就是通信。通信又分同步通信和异步通信。前面我们所说的DRAM和SRAM都是异步通信的,速率没有SDRAM和SSRAM快。所以现在大容量RAM存储器是选用SDRAM的,其中S表示同步(Synchronous单词的首字母)。
说完电脑的内存,再来说一说手机的。我们在购买手机时,其详情页面也会有介绍,如图:
这里怎么是LPDDR5呢,和电脑的内存是一样的吗?LPDDR和DDR其实是师出同门,LPDDR内存全称是Low Power Double Data Rate SDRAM,中文意为低功耗双倍数据速率内存,又称为mDDR(Mobile DDR SDRM),是美国JEDEC固态协会面向低功耗内存制定的通信标准,主要针对于移动端电子产品。
主要是因为手机尺寸小,而且电量也不充足,不可能用和电脑规格一样的内存条,所以针对手机的特点进行了改进,于是有了LPDDR。现在手机普遍使用的是LPDDR4内存或者是LPDDR4X,如果使用了更先进的内存,会特别说明,比如上图就是,用了LPDDR5,那还不得宣传一番。
还没结束,我们电脑用的显卡,有个词叫"显存"。这个显存和内存一样吗。如图,来看看今年最火的甜品级显卡3060的参数:
可以发现显存使用的是GDDR6。前面说了DDR内存,GDDR就是“Graphics Double Data Rate DRAM”的英文缩写,用于显卡的高速DDR颗粒,GDDR是专门为了设计高端显卡而特别设计的高性能DDR存储器规格,其有专属的工作频率、时钟频率、电压,因此与市面上标准的DDR存储器有所差异,与普通DDR内存不同且不能共用。一般它比主内存中使用的普通DDR存储器时钟频率更高,发热量更小,所以更适合搭配高端显示芯片。
针对显卡设计的高性能DRAM有两个主要特点,一是高密度寻址能力,也就是颗粒的容量要高,以满足显卡对内存容量的要求和显卡设计的要求。高密度图形内存寻址只是设计要面对的一半问题,另一半就是性能,显存必须能提供高速传输,现在的GDDR显存可以提供超过1GT/s的数据传输率。
其实GDDR就是源自于DDR,而GDDR2源自于DDR2,而GDDR3在频率方面的表现又与DDR3比较相似,不少用户认为GDDR3就是显存版的DDR3,这是一大误区。
闪 存
上面说的是内存,但是还有一个东西,我们购买手机时,如图:
图中红色圈起来的“8”就是上面说的内存,这表明该手机配备8GB大小的内存,那么后面绿色圈起来的128又是什么呢?这里就要提到闪存了,在分类图中就是FLASH。
前面说到,内存是保存进程的相关数据,一旦关机,内存里面的数据就随之清空。而像照片,文档什么的,并不是保存在内存中,而是存在闪存里面,也就是图中的128G。内存越大,可以同时运行的软件就越多,闪存越大,可以存储的文件就越多。
目前的手机闪存大多用的是Nand Flash,也有少数用Nor Flash的。同样说到手机的闪存,不得不提电脑了。电脑除了内存,也要存文件,那么电脑是不是和手机一样,也是闪存呢。有人马上会说,不是闪存,是叫固态硬盘或者机械硬盘。目前电脑大多使用固态硬盘,如图:
购买时的详情页面512后面写了固态两个字。看起来好像和手机的闪存没有关系,其实它们本质上是一样的。
固态驱动器(Solid State Disk或Solid State Drive,简称SSD),俗称固态硬盘。固态硬盘是用固态电子存储芯片阵列而制成的硬盘,由FLASH闪存作为基础存储介质的存储设备。手机上的闪存和电脑的固态,存储介质都是Nand Flash,也就是说他们的存储芯片是一样的,只是控制芯片不同。
FLASH的速度比机械硬盘速度快很多,所以被广泛应用与存储设备。不仅是手机的闪存和电脑的固态硬盘,目前的U盘、SD卡等都是flash。不过有的人可能会看到这样的介绍:
上面是某品牌手机的详情页,再看下面这款:
可以看到,闪存部分的介绍都是UFS,不是说闪存是Nand Flash吗,怎么是UFS?这里就得介绍接口标准了。
协议和标准
手机的闪存,无论是eMMC还是UFS,其存储介质都是Nand Flash芯片。UFS只是接口协议或者说标准。(有的文献不区分标准和协议,比较混乱,大家清楚就行)
UFS,全称是Universal Flash Storage,中文叫通用闪存存储。上图中的手机闪存就是采用了UFS3.0标准,该标准采用HS-G4规范,单通道带宽可达11.6Gbps,性能为UFS 2.1的两倍。简单来说UFS3.0标准在传输速度上更快,功耗更低,软件响应更快,程序运行更流畅,而省电效果更佳。
前面讲固态时也提了,存储器除了存储介质,还需要控制器。这么说吧:既然是存储器就要传输数据(读或写),传输数据就是通信。说到通信就好明白了,计算机网络里面,各种通信协议,TCP/IP、UDP等等。这个闪存的通信也需要协议。这个UFS就是个通信标准。主流的标准有eMMC和UFS两种,目前绝大部分半导体厂商都使用UFS这种标准。
虽说eMMC标准的闪存和UFS标准的闪存在外观和作用上都没明显区别,但是实际上两者的内部结构却有着本质上的差异。eMMC闪存基于并行数据传输技术打造,其内部存储单元与主控之间拥有8个数据通道,传输数据时8个通道同步工作,工作模式为半双工,也就是说每个通道都可以进行读写传输,但同一时刻只能执行读或者写的操作,与PC上已经淘汰的IDE接口硬盘很是相似。
而UFS闪存则是基于串行数据传输技术打造,其内部存储单元与主控之间虽然只有两个数据通道,但由于采用串行数据传输,其实际数据传输时速远超基于并行技术的eMMC闪存。此外UFS闪存支持的是全双工模式,所有数据通道均可以同时执行读写操作,在数据读写的响应速度上也要凌驾于eMMC闪存。这里仅拿UFS 2.0来比较,如图:
可以看到UFS 2.0的性能已经远超eMMC 5.1了,至于UFS 2.1、3.0以及目前最新的3.1就不拿来欺负eMMC了。
正因为eMMC闪存与UFS闪存在内部结构上存在着本质上的区别,这让两者的理论带宽产生了极大的差异。近年来比较常见的eMMC闪存多应用eMMC 4.x或者5.x规范,其中eMMC 4.5常见于低端设备,理论带宽为200MB/s,现在已经基本淘汰;而eMMC 5.0/5.1标准在目前来说仍算主流,理论带宽分别为400MB/s和600MB/s,从数字上看并不算低。
然而与UFS闪存相比,eMMC闪存的这点理论带宽就不够看了。UFS闪存的相关标准是在2月份首次亮相,当时的UFS 1.1标准其已经可以提供相当于300MB/s的理论带宽,而eMMC闪存要到的eMMC 4.5标准时才可以提供200MB/s的理论速率。只是由于当时的应用环境以及产本成本等因素的限制,USF 1.1标准未能得到大规模的推广。
直到UFS 2.0规范出炉后,eMMC闪存才被彻底碾压。UFS 2.0规范分为两部分,第一部分是UFS HS-G2规范,也就是我们常说的UFS 2.0,其单通道单向的理论带宽就可以达到1.45Gbps的水平,双通道双向的理论带宽就是5.8Gbps;而第二部分的UFS HS-G3标准,也就是我们常说的UFS 2.1,其理论带宽更是UFS 2.0的翻倍,达到11.6Gbps,eMMC闪存彻底望尘莫及了。
这里主要说的是Android手机,其实常见的手机闪存标准有eMMC、UFS与NVMe三种。其中Android手机主要采用eMMC与UFS标准,而NVMe则是苹果iPhone所使用的闪存标准。其实不难理解,类比文件系统,Windows用的是NTFS取代了之前的FAT32,而Mac的文件系统是HFS+标准,如果是HTFS的U盘,对于Mac来说只能读不能写,不过可以安装插件。
对于笔记本电脑也是一样,虽然前面已经说了,固态硬盘也是闪存,用的Nand Flash颗粒,但我们购买时是这样介绍的:
SSD前面的PCle 4.0是什么鬼,不是说固态硬盘存储也是用的Nand Flash吗。没错,SSD存储介质确实是Flash,这里的PCle是数据通道,数据通信总需要通道吧,这个PCle就是。电脑的固态现在普遍是PCle标准,目前最新的是第四代PCle 4.0标准。
细心的可能发现了,上图有一句“双M.2接口”,什么情况。这个M.2又是什么鬼,注意,M.2不是通信协议,也不是数据通道,而是接口标准。举个简单的例子:大家最熟悉的USB接口,常见的有Type-A和Type-C,就拿type-c来说,它就可以支持多种通信协议,比如支持雷达协议、dp协议等等。
M.2接口类型既可以走PCle通道,也可以走SATA通道,所以有双M.2的说法。值得注意是的是,PCle通道有专门的PCle接口类型,如图:
当然了,SATA通道也有专门的接口类型,那就是SATA接口,如图:
也就是说,硬盘与主板连接的接口,主要有SATA、PCIe、M.2三种形式,但从主板插槽到主板芯片之间,传输数据的总线(就是上面提到的“数据通道”)有SATA和PCIe两种。基于这种理解,M.2接口有两种规范,一种是socket2,一种是socket3。前者支持SATA3和PCIe x2的总线接口,后者支持PCIe x4的总线接口。
也就是说,并非M.2接口就是PCle通道,所以不要以为M.2接口的就是高速固态硬盘,也可能是机械硬盘。
最后就是NVMe协议。大伙还记得电脑bios里面硬盘的一个设置项,可选择为AHCI或者ATAPI。一块SATA接口的硬盘,可以选择使用AHCI传输协议或者ATAPI传输协议。而M.2接口PCIe通道的固态硬盘,只有NVMe协议。
M.2接口,如果走SATA通道,只能使用AHCI协议,而不能用NVMe协议;如果走PCle通道,即可采用AHCI协议,也可以采用NVMe协议。
笔者公众号:极客随想。主要分享一些网络安全,黑客攻防,渗透测试以及日常操作系统使用技巧相关的知识。欢迎关注。
如果觉得《内存 外存 硬盘 磁盘 闪存 傻傻分不清?》对你有帮助,请点赞、收藏,并留下你的观点哦!