闪存是如何存储数据的?

存储技术

595人已加入

描述

想象一下,如果你的记忆力只在你醒着的时候起作用。每天早上起床的时候,脑子里一片空白!在你能做任何事情之前,你必须重新学习你所知道的一切。这听起来像是一场噩梦,但这正是古早计算机所面临的问题。当电源关闭时,普通计算机芯片会“忘记”所有内容(丢失全部内容)。大型个人计算机通过硬盘驱动器的强大磁性存储器来解决这个问题,无论电源打开还是关闭,它都可以记住事情。但更小、更便携的设备,例如数码相机和MP3播放器,需要更小、更便携的存储器。他们使用称为闪存的特殊芯片来永久存储信息。闪存很聪明,但也相当复杂。它们究竟是如何工作的?

01

计算机如何存储信息

计算机是处理数字格式信息的电子机器。他们不像人们那样理解单词和数字,而是将这些单词和数字更改为由零和一组成的字符串,称为二进制(有时称为“二进制代码”)。在计算机内部,单个字母“A”存储为八个二进制数:01000001。事实上,键盘上的所有基本字符(大小写字母 A-Z、数字 0-9 以及符号) )可以用八个二进制数的不同组合来表示。问号 (?) 存储为 00111111,数字 7 存储为 00110111,左括号 ([) 存储为 01011011。几乎所有计算机都知道如何用此“代码”表示信息,因为它是公认的全球标准。它称为ASCII(美国信息交换标准代码)。

计算机可以用0和1的模式来表示信息,但是这些信息到底是如何存储在其内存芯片中的呢?举一个稍微不同的例子会有所帮助。假设您站在远处,我想向您发送一条消息,而我只有八个标志可以用来执行此操作。我可以将旗帜排成一行,然后通过升起和放下不同图案的旗帜将消息的每个字母发送给您。如果我们都理解 ASCII 码,发送信息就很容易了。如果我举起一面旗帜,您可以假设我的意思是数字 1,如果我放下一面旗帜,您可以假设我的意思是数字 0。因此,如果我向您展示以下模式:

晶体管

您可以看出我正在向您发送二进制数 00110111,相当于十进制数 55,因此用 ASCII 表示字符“7”。

这和记忆有什么关系?它表明使用类似标志来存储或表示“7”这样的字符,该标志可以位于两个位置(向上或向下)。计算机内存实际上是一个包含数十亿个标志的巨大盒子,每个标志都可以向上或向下。不过,它们并不是真正的旗帜——它们是称为晶体管的微型开关 ,可以打开或关闭。需要八个开关来存储 A、7 或 [ 等字符。需要一个晶体管来存储每个二进制数字(称为一位)。在大多数计算机中,其中八个位统称为一个字节。因此,当您听到人们说计算机有这么多兆字节的内存时,这意味着它可以存储大约数百万个字符的信息(mega表示百万;giga表示数千万或十亿)。

02

什么是闪存?

照片:一个典型的 USB 记忆棒,将其拆开,里面是闪存芯片(右侧的大黑色矩形)。

普通晶体管是通过电打开或关闭的电子开关 ,这既是它们的优点,也是它们的缺点。这是一种优势,因为这意味着计算机只需通过其存储电路传递电流模式即可存储信息。但这也是一个弱点,因为一旦电源关闭,所有晶体管都会恢复到原始状态,并且计算机会丢失它存储的所有信息。这就像电子遭受了失忆症的巨大攻击!

断电时“忘记”的存储器称为随机存取存储器(RAM)。还有另一种存储器称为只读存储器 (ROM),它不会遇到此问题。ROM芯片在制造时就预先存储了信息,因此当电源打开和关闭时它们不会“忘记”它们所知道的内容。然而,它们存储的信息是永久存在的:它们永远不会被再次重写。实际上,计算机会出于不同目的混合使用不同类型的内存。它需要一直记住的事情——比如第一次打开它时要做什么——都存储在 ROM 芯片上。当您在计算机上工作并且需要临时内存来处理事务时,它会使用 RAM 芯片;该信息稍后丢失也没关系。您希望计算机无限期记住的信息存储在其硬盘上。从硬盘驱动器读取和写入信息比从存储芯片读取和写入信息需要更长的时间,因此硬盘驱动器通常不用作临时存储器。在数码相机和小型 MP3 播放器等小工具中,使用闪存代替硬盘。它与 RAM 和 ROM 有某些共同点。与ROM一样,它在断电时会记住信息;与 RAM 一样,它可以一次又一次地擦除和重写。

照片:Apple iPod,过去和现在。左边白色的是一款老式经典 iPod,拥有 20GB 硬盘内存。右侧较新的黑色型号配备 32GB闪存,这使得它更轻、更薄、更坚固(如果掉落则不太可能死亡),并且耗电更少。

03

闪存的工作原理——简单解释

数码相机中的典型安全数字 (SD) 卡

闪光灯使用一种完全不同类型的晶体管,即使电源关闭也能保持打开(或关闭)状态。普通晶体管具有三个连接(控制它的电线),称为源极、漏极和栅极。将晶体管视为一根管道,电流可以像水一样流经其中。管道的一端(水流入的地方)称为水源,可以将其想象为水龙头或水龙头。管道的另一端称为排水管,水从这里排出并流走。在源极和漏极之间,挡住管道,有一个栅极。当门关闭时,管道被关闭,没有电流流动,晶体管关闭。在这种状态下,晶体管存储零,当门打开时,电流流动,晶体管打开,并存储一个值。但当电源关闭时,晶体管也会关闭。当重新打开电源时,晶体管仍然处于关闭状态,并且由于无法知道在断电之前它是打开还是关闭,所以为什么我们说它“忘记”了它存储的任何信息。

闪存晶体管有所不同,因为它在第一个栅极上方有第二个(“浮动”)栅极。当门打开时,一些电流会从第一个门泄漏并保留在第一个门和第二个门之间。即使电源关闭,两扇门之间仍然有电。现在,如果尝试通电,存储的电流会阻止电流流动,因此在这种状态下,晶体管会存储零,如果清除储存的电量,电流又可以流过;在这种状态下,晶体管存储一个“1”。这就是闪存晶体管存储信息(无论电源打开还是关闭)的方式。

04

闪存的工作原理——更详细的解释

这是对极其复杂事物的一种非常掩饰、高度简化的解释。

闪存中的晶体管类似MOSFET,只是顶部有两个栅极,而不是一个。这就是闪存晶体管的内部结构。见下图,它是一个npn三明治,顶部有两个门,一个称为控制门,一个称为浮动门。两个栅极由氧化层隔开,电流通常无法通过氧化层:

晶体管

我们如何使用它来存储数据?源极和漏极区域都富含电子(因为它们是由 n 型硅制成),但由于它们之间存在缺电子的 p 型材料,电子无法从源极流向漏极。如果我们向晶体管的两个触点(称为位线 和字线)施加正电压,电子就会从源极被拉到漏极。有些还设法通过称为隧道效应的过程蠕动穿过氧化层并卡在浮栅上:

晶体管

即使正电压被移除并且无论电路是否通电,电子都会无限期地停留在浮置栅极上。如果我们断开位线和字线的正电压,并尝试使电流通过晶体管,从源极到漏极,则不会有任何电流流动:浮置栅极上的电子将阻止它。因此,在这种状态下,我们说晶体管正在存储零。通过在字线上施加负电压可以将浮置栅极上的电子冲走。这会将电子排斥回它们来时的方向,清除浮动栅极并允许电流再次流过晶体管。在这种状态下,我们说晶体管正在存储一个值。

这不是一个容易理解的过程,但这就是闪存发挥其魔力的方式!

05

闪存的使用寿命有多长?

闪存最终会磨损,因为其浮动栅极在使用一定次数后需要更长的时间才能工作。人们广泛引用的说法是,闪存在被写入和重写约“10,000 次”后会出现性能下降,但这是一种误导。根据英特尔的 Steven Wells 1990 年代的闪存专利,“虽然在大约一万次切换操作之后切换开始需要更长的时间,但在延长的切换时间对系统操作产生任何影响之前,还需要大约十万次切换操作。” 无论是 10,000 还是 100,000,对于每周使用一次的 USB 记忆棒或数码相机中的 SD 存储卡来说通常都可以,但对于计算机、手机或其他日常使用多年的小工具中的主存储来说就不太令人满意了。绕过该限制的一种实用方法是操作系统确保每次擦除和存储信息时使用闪存的不同位(从技术上讲,这称为磨损均衡),因此不会太频繁地擦除位。实际上,现代计算机可能会简单地忽略并“小心翼翼地绕过”闪存芯片坏的部分,就像它们可以忽略硬盘驱动器上的坏扇区一样,因此闪存驱动器的实际实际寿命限制要高得多:大约在 10,000 和 100 万次之间。尖端闪存器件已被证明可以耐受 1 亿次或更多次。

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分