目录•SSD架构•SATA和SAS接口•混合存储SSDIntroduceSSD架构SSDIntroduceSSD的构成NANDFlash存储阵列主机接口主控芯片缓存芯片SSD主要有主控制器、存储阵列和缓存芯片构成,除此之外还有一些其他组件,例如电源芯片、晶振、电容、温度传感器等。SSDIntroduceSSD主控芯片主控芯片主要作用:•连接闪存芯片和主机接口,提供主机与闪存之间合适和接口协议。•合理调配各个闪存芯片,高效处理数据,尽量提高传输速度,保证数据完整性。主控芯片一般由一个16位或32位处理器和专用硬件逻辑构成。SSDIntroduceSSD主控芯片主机接口一般是工业上通用的标准接口,例如PCIe、SATA、SAS等,接口需要保证主机和设备之间的电气连接,提供足够的带宽保证主机和闪存之间的高速通信,这部分由硬件逻辑和固件混合组成。SSDIntroduceSSD主控芯片文件系统闪存的读写单位是4KB或8KB大小的页,而且闪存的擦除操作是按照128或256页大小的快来操作的,写入数据之前必须先擦除整个快,而不能直接覆盖,这与传统的机械硬盘的操作有很大区别,为了兼容传统机械硬盘的操作方式,出现了FTL,FTL完成逻辑到物理的映射(页和扇区),使得操作系统按照传统扇区操作方式来操作闪存,FTL是文件系统需要实现的主要功能。除此之外文件系统还要完成以下功能:磨损平衡管理、垃圾收集、坏块管理……SSDIntroduce磨损平衡为了延长SSD的寿命,目前固态硬盘中采用了磨损平衡机制,它尽可能地将文件平均分配到每一个区块,保证了对每一个闪存快的编程/擦写次数一致,避免对某一部分区块的过度重复操作,有效延长了固态硬盘的使用寿命。主控尽量选择较新的区块(擦写次数最少)来使用。动态磨损平衡静态磨损平衡将那些不经常更新的文件转移至较老的区块中,因为这些文件不会经常修改,所占用的区块被磨损的次数更少,以此来达到优化的目的。SSDIntroduce垃圾回收磨损平衡主要是在垃圾回收过程中来实现的,为了能够让固态硬盘中闪存实现比较均衡的磨损,垃圾回收过程中总是把数据写到更新的快中。SSDIntroduce坏块管理坏块分出厂坏块和使用过程中出现的坏块,SSD有坏块表来管理坏块。出厂坏块会在上面有标记,使用中出现的坏块要靠主控来识别。主控在每次写入/擦除等操作后都要检查状态寄存器,判断当前快是否为坏块。如果出现坏块坏块管理程序应该用好的快替换这个坏块,更新坏块表。SSDIntroduce多通道交叉操作Performance_SSD=N*performance_NANDSSDIntroduceNANDFlash存储芯片NANDFlash是一种非易失性存储,上电可以擦除和编程,掉电之后也能保存数据长达数年。NANDFlash存储器具有容量大,改写速度快等优点,适用于大容量的数据存储。NANDFlash的存储单元为浮栅晶体管,浮栅晶体管比普通MOS管多了一个浮置栅极,浮置栅极是真正存储电荷的地方,浮置栅极与硅衬底之间是二氧化硅绝缘层,从来保护符栅极中的电荷不会泄露。SSDIntroduceNANDFlash存储芯片对于NAND的写入,就是控制控制栅极对浮栅极充电,使得浮栅中存储的电荷够多,超过阀值Vth,就表示0。对于NAND的擦除,就是对浮栅放电,低于阀值Vth,就表示1。SSDIntroduceNANDFlash存储芯片NANDFLASH根据单个晶体管浮栅极中存储信息量的不同又分为SLC(SingleLevelCell)、MLC(MultiLeveledCell)和TLC(TrinaryLevelCell)SLC与MLC的原理对比图SSDIntroduceNAND接口以前的NAND器件使用异步接口,每通道带宽为40MB/s,已经不能满足高速SSD等产品需求。因此英特尔、镁光、海力士等公司联合制定了ONFI标准,2013年发布的ONFI3.2标准,接口带宽达到533MB/s。在ONFI标准中,地址和命令信号与时钟CLK同步,数据信号与DQS同步,比先前的异步接口增加了一根DQS信号线,大大提高了接口最大工作速度。SSDIntroduceSATA和SAS固态硬盘SSDIntroduce企业级SSD与消费级SSDSSDIntroduce企业级SSD与消费级SSD企业级SSD在出厂之前必须经过更加严格的测试。企业级SSD与消费级SSD主要区别在控制器的硬件逻辑和固件上。数据完整性是企业级SSD最重要的准则,因此企业级SSD在设计的时候会使用ECC和CRC校验等手段来保证数据的正确性。企业级SSD内置冗余,保证即使有些闪存芯片损坏,主控可以通过冗余来恢复数据。企业级SSD还设有掉电保护功能,能够避免意外掉电造成数据丢失。SSDIntroduce企业级与消费级SSDSSDIntroduceSATA与SASSATA设备成本更低SATA设备使用ATA命令集与主机通信SAS设备使用SCSI命令集与主机通信SAS驱动器提供双端口的功能SAS系统背板可以兼容SATA驱动器,但是SATA背板不能兼容SAS驱动器SAS驱动器的测试更加严格SAS和SATA接口都支持热插拔,可以在系统正在运行的时候动态插入和移除SSDIntroduceSATA协议SATA(SerialATA)是取代并行ATA的新一代串行总线架构的存储接口技术,SATA协议自出现以来,已经历三代更新,传输速率发展至6Gbps。SATA协议分为四个子层,分别是:物理层、链路层、传输层和应用层,主机和设备都是由这四个层次组成,两者之间的通信由最底层物理层实现。SSDIntroduceSATA协议物理层主要完成高速串行数据收发、串并/并串转换、带外信号检测、等功能链路层中只有两种合法的数据结构,分别是帧和原语。链路层主要任务:给传输层送来的FIS加入帧头帧尾和CRC校验封装成帧、提供流量控制、信道编码传输层接收来自链路层的FIS并将其解析,向上层反馈解析出来的有效信息。将来自上层的命令请求和控制信息转化成FIS发送给数据链路层。应用层是SATA协议的顶层,负责为不同的应用而发送相关命令。SSDIntroduce混合存储SSDIntroduce混合存储将小尺寸、经常访问的数据放在闪存,而将大容量、非经常访问的数据存储在磁盘。SSDIntroduce混合存储另一种混合存储的方式:将闪存作为主机和磁盘存储之间的共享存储设备,闪存设备作为缓存来提升读写操作速度,主机先快速将数据写入闪存,闪存再将新收到的数据写入到磁盘存储,同时主机可以继续完成其他操作。SSDIntroduce混合SSDNAND闪存有不同的种类,根据单个存储单元内存储的信息数量可以分为SLC、MLC和TLC等,使用单个存储单元能够存储更多信息的NAND闪存可以大幅提升存储容量,但同时也带来了读写速度下降、误码率变高等缺点。SSDIntroduce混合SSDSSD中单快Flash操作速率满足不了SAS、SATA等接口带宽,高性能SSD通常由多块NANDFlash构成。使用SLC和MLC混合构成SSD,通常把小尺寸、经常访问的数据存入SLC,把大尺寸、非经常访问的数据存入MLC。这种混合存储能够使SSD达到更高的性价比。SSDIntroduce