来源:网络素材
整理:李肖遥
所有使用者对“存储器”这个名词可是一点都不陌生,因为所有的电子产品都必须用到存储器,且通常用到不只一种存储器。不过对于存储器种类、规格与形式,很多人容易搞混。比如NAND Flash,产业新闻里常常提到的DRAM,还有SRAM、SDRAM、DDR 3、DDR 4、NOR Flash … 这些又是什么?存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存,港台称之为记忆体)。外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。而简单来说,DRAM就是我们一般在用的内存,而NAND Flash 闪存,它在做的事情其实是硬盘。不熟悉PC知识的朋友常常在选购设备时问,硬盘和内存到底有什么差别?我硬盘容量明明有 1TB,但PC还是跑得很慢哎?硬盘和内存的差异,在于把电源关掉后、空间中储存的数据还会不会留着。就算关掉电源,硬盘的数据也不会消失。但我们要运算数据时,如果 CPU 要直接从硬盘里面抓数据,时间会太久。所以”内存”会作为中间桥梁,先到硬盘里面复制一份进来、再让 CPU 直接到内存中拿数据做运算。这样会 比直接去硬盘抓数据,快约数百万倍。打开任务管理器,就可以看到现在执行中程序占掉的内存空间,很多人就在骂Chrome 耗费的运算资源很高,内存使用率高于其他浏览器,多开几个分页内存就被吃完了。所以简单来说,计算机在运作就像是办公一样,喝饮料、看书本、听音响… 想一次使用越多东西、桌面(内存)就要越大。但其他一时间没有要用到的东西,都会放在抽屉(硬盘)里面。所以硬盘就算再大,你一次想执行很多任务,还是得要看内存大小。内存的处理速度比硬盘更快,但断电之后数据会消失,且价格也比硬盘贵。简单来说,CPU 里面也有一个储存空间,叫做 Register。要运算时、CPU 会从内存中把数据载入Register、再让Register中存的数字做运算,运算完再将结果存回内存中。毕竟 CPU 和内存终究还是两片不同的芯片,没有在同一片芯片里直接抓数据快。还有一个概念是 Cache,这是CPU 和内存之间的中间桥梁。速度来讲,就是:CPU里面的Register > Cache > 内存 > 硬盘。越上层(越靠近 CPU),速度就越快、价格越高、容量越低。
电的存储器是指电写电读的存储器,主要分为两大类,如图一所示:易失性存储器(Volatile Memory,VM):电源开启时资料存在,电源关闭则资料立刻流失(资料挥发掉),例如:SRAM、DRAM、SDRAM、DDR-SDRAM 等。非易失性存储器(Non-Volatile Memory,NVM):电源开启时资料存在,电源关闭资料仍然可以保留,例如:ROM、PROM、EPROM、EEPROM、Flash ROM、FRAM、MRAM、RRAM、PCRAM 等。存储器的“单元”(Cell)是指用来存取资料的最小结构,如果含有一个晶体管(Transistor)与一个电容(Capacitor)则称为“1T1C”;如果含有一个晶体管(Transistor)与一个电阻(Resistor)则称为“1T1R”;如果含有一个二极体(Diode)与一个电阻(Resistor)则称为“1D1R”。存储器的每个“单元”不一定只能储存 1 个位的资料,由于我们对存储器容量的要求越来越高,每个“单元”能储存的资料越来越多,依照每个“单元”能储存的资料位数又分为:单层单元(Single-Level Cell,SLC)、多层单元(Multi-Level Cell,MLC)、三层单元(Triple-Level Cell,TLC)、四层单元(Quad-Level Cell,QLC)等。要了解电子产品的各种存储器配置,就必须先介绍“存储器层次结构”(Memory hierarchy)观念。存储器层次结构是指如何将储存容量不同、运算速度不同、单位价格不同的多种存储器妥善分配,才能达到最大的经济效益,使产品的运算速度合理、储存容量合理、产品价格合理。图二为存储器阶层示意图,由上而下依序为暂存器、快取存储器、主存储器、辅助存储器:
暂存器(Register,也译为寄存器):在处理器内,用来设定处理器的功能,主要是“暂时储存”设定值的地方。快取存储器(Cache memory,翻译版本有缓存,快取缓存区,快取存储器;台湾翻译为快取。):在处理器内,执行程序时“暂时储存”程序与资料的地方,通常以 SRAM 制作。主存储器(Main memory):在处理器外,“暂时储存”程序与资料的地方,通常以 DRAM 制作,目前已经改良成 SDRAM 或 DDR。辅助存储器(Assistant memory):在处理器外,“永久储存”程序与资料的地方,包括:快闪存储器、磁盘机、光盘机、磁带机等。不同种类的存储器分别有不同的储存容量、工作速度、单位价格:储存容量:辅助存储器(GB)> 主存储器(MB)> 快取存储器(KB)> 暂存器(B)。工作速度:辅助存储器(1ms)< 主存储器(10ns)< 快取存储器(1ns)< 暂存器(1ns)。单位价格:辅助存储器 < 主存储器 < 快取存储器 < 暂存器。所有的电子产品都必须用到存储器,而且通常用到不只一种存储器,由于存储器的种类繁多,常常让使用者混淆,我们简单说明不同存储器之间的差异,图三为手机主要芯片的系统方块图(System block diagram),包括:应用处理器(Application processor)、基带处理器(Baseband processor)、运动控制器(Motion Controller)。应用处理器主要是执行操作系统(Operating System,OS)与应用程序(Application program,App),暂存器与快取存储器目前都是内建在处理器内,其中暂存器用来设定处理器的功能,用来设定暂存器数值的程序,也就是用来趋动硬件的软件程序又称为“固件”(Firmware);快取存储器是在执行程序时用来“暂时储存”程序与资料的地方,由于在处理器内离运算单元比较近,可以缩短程序与资料来回的时间,加快程序的执行速度因此称为“Cache”。由于快取存储器成本较高因此容量不大,如果执行程序时放不下,则可以退一步放在主存储器内,可是目前主存储器所使用的 SDRAM 或 DDR,属于易失性存储器,电源关闭则资料立刻流失,因此关机后资料必须储存在非易失性的辅助存储器内,早期辅助存储器使用磁盘机、光盘机、磁带机等,由于半导体制程的进步,目前大多使用快闪存储器(Flash ROM),或所谓的固态硬盘(Solid State Disk,SSD),固态硬盘其实也是使快闪存储器制作。由于快取存储器(SRAM)与主存储器(SDRAM、DDR)是执行程序用来“暂时储存”程序与资料的地方,与处理器内的运算单位直接使用汇流排(Bus)连接,一般都是用“位”(bit)来计算容量;而辅助存储器是“永久储存”程序与资料的地方,由于一个位组(Byte)可以储存一个半型字,因此一般都是用“位组”(Byte)来计算容量。▲ 图三:手机主要芯片的系统方块图(System block diagram)。静态随机存取存储器(SRAM:Static RAM)以 6 个晶体管(MOS)来储存 1 个位(1bit)的资料,而且使用时“不需要”周期性地补充电源来保持记忆的内容,故称为“静态”(Static)。SRAM 的构造较复杂(6 个晶体管储存 1 个位的资料),不使用电容所以存取速度较快,但是成本也较高,因此一般都制作成对容量要求较低但是对速度要求较高的存储器,例如:中央处理器(CPU)内建 256KB、512KB、1MB 的“快取存储器”(Cache memory),一般都是使用 SRAM。动态随机存取存储器(DRAM:Dynamic RAM)以一个晶体管(MOS)加上一个电容(Capacitor)来储存一个位(1bit)的资料,而且使用时“需要”周期性地补充电源来保持记忆的内容,故称为“动态”(Dynamic)。DRAM 构造较简单(一个晶体管加上一个电容),由于电容充电放电需要较长的时间造成存取速度较慢,但是成本也较低,因此一般制作成对容量要求较高但是对速度要求较低的存储器,例如:个人电脑主机板通常使用 1GB 以上的 DDR-SDRAM 就是属于一种 DRAM。由于处理器的速度越来越快,传统 DRAM 的速度已经无法满足要求,因此目前都改良成 SDRAM 或 DDR-SDRAM 等两种型式来使用。同步动态随机存取存储器(SDRAM:Synchronous DRAM)中央处理器(CPU)与主机板上的主存储器(SDRAM)存取资料时的“工作时脉”(Clock)相同,故称为“同步”(Synchronous)。由于 CPU 在存取资料时不需要“等待”(Wait)因此效率较高,SDRAM 的存取速度较 DRAM 快,所以早期电脑主机板上都是使用 SDRAM 来取代传统 DRAM,不过目前也只有少数工业电脑仍然使用 SDRAM。可以记住一个简单的结论:SRAM 比较快、 DRAM 比较慢;SRAM 比较贵、DRAM 比较便宜。这是我们平常在计算机中使用的内存,更精确的说法应该叫”内存模块”(Memory Module)。一个内存模块实际上就是由一块小电路板、再加上几块的 DRAM 芯片构成。图标中的内存模块上一共有 8 个 DRAM 芯片。让我们把一个 DRAM 芯片的内部结构剖开看看,会看到一个储存数组(Memorry Array)。CPU 会给这个储存数组”行地址”和”列地址”,就可以选出一个”储存单元”。常见的储存单元包含了 4 bit 或 8 bit,每一个 bit 都会采用一个电路结构,我们称为 DRAM 的一个”基本储存单元”。这个基本储存单元中包含了一个晶体管匹配一个电容。然后就可以视电容器是否有充电电荷存在、来判别目前的记忆状态。“写入内存”的动作,就是由外部的数据线、对电容进行充电或放电,从而完成写入 1 或 0 的数字数据。DRAM 使用一个晶体管(MOS)与一个电容来储存一个位的资料(一个 0 或一个 1),如图四(a)所示,当晶体管(MOS)不导通时没有电子流过,电容没有电荷,代表这一个位的资料是 0,如图四(b)所示;当晶体管(MOS)导通时(在闸极施加正电压),电子会由源极流向汲极,电容有电荷,代表这一个位的资料是 1,为了要将这些流过来的电荷“储存起来”,因此必须使用一个微小的电容,如图四(c)所示,DRAM 就是因为电容需要时间充电,所以速度比 SRAM 还慢。▲ 图四:动态随机存取存储器(DRAM)的结构与工作原理示意图。由于电容会有漏电的现象,导致电位差不足而使记忆消失,因此除非电容经常周期性地充电,否则无法确保数据能长久保存起来。由于每个 DRAM 基本储存单元的电路结构非常的简单,所以功耗低、价格也较低。这样一来用低成本就能制造出大储存容量的 DRAM 芯片。缺点就是读写的速度慢(电容要充电放电),影响了 DRAM 的性能。SRAM 的结构则较为复杂,一共有六个晶体管构成。我们能分别用 M1、M2、M3 到 M6 进行标记。这六个晶体管合起来才能保存一个 bit。SRAM 芯片和 DRAM 芯片不太一样,不需要分成行地址和列地址分别选择,而且 SRAM 的设计相对来说又更加灵活,一个地址对应的储存单元数量可以是 8 bit、10 bit,或 32 bit、40 bit、64 bit 都行。另外,晶体管的开关速度远比电容充电放电的速度还快,所以相对于 DRAM、SRAM 的读写速度比 DRAM 快很多。然而 SRAM 中要储存一个 bit 就得用到六个晶体管。晶体管的数量一多、就会造成芯片的面积变大,从而带来集成电路难以变得更小、还有价格更贵的问题。(SRAM 的价格比起 DRMA 要高达 1000 倍以上。比如 2010 年世代––—SRAM 的每单位储存价格是 $60/MB,DRAM 则是 $0.06/MB。)同时每个晶体管都要耗电,晶体管越多、功耗就越高。考虑到价格高和功耗大,目前只能在一些很严苛的地方来使用 SRAM,比如上面提到的快取 (Cache)。故目前”主存储器”还是使用 DRAM 技术,但小块用来拉速度的”快取”就是采用 SRAM。然而无论是 DRAM 还是 SRAM,一不供应电源就会丧失储存的数据,所以都叫做挥发性内存。动态随机存取存储器(DRAM)是以一个晶体管加上一个电容来储存一个位(1bit)的资料,由于传统 DRAM 的电容都是使用“氧化矽”做为绝缘体,氧化矽的介电常数不够大(K 值不够大),因此不容易吸引(储存)电子与电洞,造成必须不停地补充电子与电洞,所以称为“动态”,只要电脑的电源关闭,电容所储存的电子与电洞就会流失,DRAM 所储存的资料也就会流失。要解决这个问题,最简单的就是使用介电常数够大(K 值够大)的材料来取代“氧化矽”为绝缘体,让电子与电洞可以储存在电容里不会流失。目前业界使用“钛锆酸铅”(PZT)或“钽铋酸锶”(SBT)这种介电常数很大(K 值很大)的“铁电材料”(Ferroelectric material)来取代氧化矽,则可以储存电子与电洞不会流失,让原本“易失性”的动态随机存取存储器(DRAM)变成“非易失性”的存储器称为“铁电随机存取存储器”(Ferroelectric RAM,FRAM)。Flash(闪存)由于具备了重量轻、体积小、功率低等优点,被应用在各类电子产品的硬盘上。Flash 又可以分成 NOR 型 Flash 和 NAND 型 Flash。NOR Flash 比 NAND Flash 更早导入市场。读取的速度较快,但写入的速度慢、价格也比 NAND Flash 贵。目前用来储存操作系统的程序代码或重要数据,比如拿来做 ROM。像是生产 NOR Flash 的台厂旺宏就是因为打入任天堂 Switch 主机的 ROM 供应链,今年营收上看攀升。NAND Flash 写入的速度快、价格较低,故目前以 NAND Flash 最为普遍。现在的 USB 硬盘和手机储存空间,就是用 NAND Flash 为主流技术。另外,固态硬盘(Solid State Drive, SSD)也是以 NAND 型 Flash 为基础所建构的储存装置。SSD 不像传统硬盘(HDD)中有马达、读写臂等零件。速度慢、功耗高,对震动又相当敏感,很难用在小型行动装置中。SSD 在读写数据时不会有噪音,耐震、传输速度快、重量又能缩减到 HDD 十分之一以上,现在已经成为个人计算机和笔记本电脑的主流储存设备。依照停止供应电源的话、是否还能保留数据,分成”易失性”与”非易失性”存储。SRAM 更快但价格更贵,所以主存储器多用 DRAM、快取多用 SRAM。
非易失性存储分成 ROM 和 Flash。主要用来作为硬盘。
Flash 又分成 NOR Flash 与 NAND Flash,现在硬盘多以 NAND Flash 构成的 SSD 为主。
▲ Q:看看一天到晚听到的 DRAM、SRAM、Flash 等内存厂商又分别代表哪层?‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
关注我的微信公众号,回复“加群”按规则加入技术交流群。
关注程序员编程基地,回复“pdf”获取程序员必读经典书单,一起编程一起进阶。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。