SSD Introduction

Fork me on GitHub
  

SSD简介

SSD(Solid State Disk)是一种使用使用Non-volatile NAND Flash的大容量存储器,相比传统的HDD(Hard Driver Disk)SSD由于使用的是集成电路来保存数据,没有机械结构,拥有较高的读写速度,在读写要求较高的数据库领域得到广泛使用。下面主要介绍一下 SSD内部存储数据的结构。

Non-Volatile Flash 分类

根据基本存储结构的不同, 可以分为NOR FlashNAND Flash,而根据每一个基本单元存储信息量可以分为SLC ( single level cell ), MLC ( multi - level cell ), TLC ( triple level cell )QLC ( quard level cell )

Floating-Gate MOSFET结构

不管怎么分类, Flash 里存储信息单元都是 Floating Gate MOSFET, 其基本结构如下所示:

Floating-Gate MOSFET

Floating-Gate MOSFET和一般场效应管主要区别是栅极是由被SiO2包围的Floating Gate和正常的Control Gate组成, 也就是多了一个Floating Gate

Floating-Gate MOSFET特性

根据上面结构图, 可以知道, FLoating Gate处在 Control Gate以及源级和漏级组成的channel中间。因此Floating Gate MOSFET主要特性和FLoating Gate有关。

  • Floating Gate上不存在电荷时,此时MOSFET阈值电压是 VT1, 管道导通
  • Floating Gate上存在电荷时,此时为了能使管道导通,除了要施加上面VT1,还需要抵消Floating Gate上电荷, 因此此时阈值电压 Vt2 > Vt1
  • 因此, 当没有对Floating Gate MOSFETProgramming操作时,Floating Gate上是不存在电荷的,也就是当前数据是1。而Programming使Floating Gate带上电荷之后,保存数据时0
  • 当需要做Programming操作时,需要在Control Gate上施加大于Vt2电压,此时源级和漏级之间的Channel里的电流会导致电子跃迁,进入Floating Gate。此时保存数据是0
  • 当需要读数据时,在Control Gate上施加一个介于Vt1Vt2上的,此时如果Floating上没有电荷,则管道导通,数据为1。否则,管道不导通,数据为0
  • 上面主要是SLC情况, 即每一个cell只保存1bit的信息,所以只需要判断MOSFET是否有电流流过即可。 而对于MLC,TLCQLC可以根据加到Control Gate上不同电压时流过电流不同来区别多bit的信息。

NOR FLash

将上面介绍的Floating Gate MOSFET的漏级接在一起形成bitline,相连的源级接地,这样只要一个MOSFETControl Gate施加介于Vt1Vt2之间的电压,会导致bitline被拉低,所以叫做NOR Flash. 结构如下所示:

Nor-Flash layout

Programming

当需要对NOR FlashProgramming操作时,需要在Control Gate上施加高电压以便使Channel上的电子能够跃迁到Floating Gate上,此时各级上电压如下所示: NOR Flash Programming

Erasing

当需要对NOR FlashErasing操作(使MOSFET回到存储1状态)时,要在Control Gate和源级上施加相反的电压,使Floating Gate上的电子形成隧道效应而释放掉。此时各级上电压如下所示: NOR Flash Erasing

NAND Flash

与上面NOR Flash主要不同是NAND Flash基本单元是串在一起的Floating Gate MOSFET, 这些串在一起的Floating Gate MOSFET之后再组成基本单元按照NOR Flash方式连接。基本结构如下所示: NAND-FLash layout

上面基本结构决定了NAND FlashNOR Flash面积更小, 价格更便宜。不过NOR Flash能够任意寻址,所以一般作为程序代码存储,而NAND Flash则作为大量数据存储。

缺点与限制

Block Erasure

不管是NOR Flash还是NAND Flash, 虽然可以按 byte, wordprogrammingread,但是都只能Erase一个block。

Memory Wear

另外,Flashprogram-erase cycle有一定限制,一般有100,00 P/E。因此,为了能够使整块Flash能够不被program-erase同一个block而坏掉,需要控制器控制program-earse分布到所有block

Read Disturb

这个是由于Floating Gate MOSFET之间的串扰导致读取一个cell的数据时导致临近其他cell数据变化

X-ray effects

X-ray射线能够erase已经porgrammingFlash中的 bit

Reference

  1. Flash Memory - wikipedia
  2. Solid state drive - wikipedia
  
志飞 /
Published under (CC) BY-NC-SA