热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

转:《你对固态硬盘了解多少》

文章来源:http:www.kuqin.comhardware20130328334069.html,本人略做了一些整理。一下为主文:随着制造工艺的不断提升固态硬盘的价格也慢

文章来源:http://www.kuqin.com/hardware/20130328/334069.html,本人略做了一些整理。

一下为主文:

随着制造工艺的不断提升 固态硬盘的价格也慢慢降到了大众可以接受的范围 越来越多的人开始为自己的爱机增加一个固态硬盘 可大多数人对固态硬盘的构造和原理一无所知

接下来 就随我一起揭开固态硬盘的神秘面纱

1.固态硬盘的特点

2.从沙子到颗粒的蜕变

3.闪存的历史与类型

4.闲话SandForce--神秘的压缩

5.如何爱护自己的固态硬盘


一、固态硬盘的特点固态硬盘与传统硬盘的绝对优势

1. 固态硬盘没有噪音。因为固态硬盘没有风扇和机械马达,工作时噪音值为0分贝。某些高端或大容量产品装有风扇,所以仍然会产生噪音。

2. 固态硬盘是不需要用磁头,快速随机读取,读延迟极小。根据相关测试:两台电脑在同样配置的电脑下,搭载固态硬盘的笔记本从开机到出现桌面一共只用了18秒,而搭载传统硬盘的笔记本总共用了31秒,两者几乎有将近一半的差距。

3. 基于DRAM的固态硬盘写入速度极快。

4. 启动快,没有电机加速旋转的过程。

5. 低容量的固态硬盘比同容量硬盘体积小、重量轻。但这一优势随容量增大而逐渐减弱。直至256GB,固态硬盘仍比相同容量的普通硬盘轻。

6. 相对固定的读取时间。由于寻址时间与数据存储位置无关,因此磁盘碎片不会影响读取时间。

7. 低容量的基于闪存的积海固态硬盘在工作状态下能耗和发热量较低,但高端或大容量产品能耗会较高。

8. 固态硬盘比传统的硬盘工作温度范围更大。典型的硬盘驱动器只能在5到55摄氏度范围内工作。而固态硬盘可在-10~70摄氏度工作,一些工业级的固态硬盘还可在-40~85摄氏度,甚至更大的温度范围下工作。

9. 内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞、冲击、振动。这样即使在高速移动甚至伴随翻转倾斜的情况下也不会影响到正常使用,而且在笔记本电脑发生意外掉落或与硬物碰撞时能够将数据丢失的可能性降到最小。

二、砂子到颗粒的蜕变NAND颗粒的制造

第一阶段:沙子熔炼单晶硅

沙子:脱氧后的沙子(尤其是石英)最多包含25%的硅元素,以二氧化硅SiO2的形式存在,这也是半导体制造产业的基础。

硅熔炼:硅净化熔炼成大晶体。通过多次净化后达到半导体制造需求的电子级硅,平均每一百万个硅原子中最多只有一个杂质原子。

单晶硅锭:最后得到纯度99.9999%的单晶硅锭。

第二阶段:硅锭切割成晶圆

硅锭切割:将硅锭横向切割成单个硅片,也就是我们常说的晶圆(Wafer)。因为是类圆柱体切割,横截面自然就是圆形了。

晶圆:切割出来的晶圆经过抛光后表面像镜面一样完美。现在的晶圆多为300毫米(12英寸)。

第三阶段:光刻

IMFT内的光刻室

操作间的无尘控制标准比医院手术室还要干净100倍!

晶圆光刻时做掩膜

在300mm晶圆上采用25nm技术光刻出的NAND闪存芯片

25nm制程NAND闪存芯片,单个长方形为2GB,单个Die是8GB

第四阶段:检测与封装

晶圆光刻完成之后,需要进行测试后进行封装,封装成为颗粒才能使用在SSD等各种设备上。

一片晶圆在出厂之前经由测试分类出好的晶粒(Good Die)和不良品(Ink Die)。

关于Ink Die的起源是这样的,以往封装设备还没有自动化的时候,需要人工在不良品上点上墨点作为标记,所以后来不良品就被成为Ink Die。

封装设备和技术进步以后,晶圆的测试会以坐标的方式区分Good Die和Ink Die,记录下来的资料就叫Mapping。

封测厂根据Mapping把Good Die取下来封装成颗粒,对于Flash来说有以下几种封装类型:

TSOP II:类似于DRAM 4Mx16,2001年以前的小容量多是这种封装

TSOP I:Thin Small Out-line Package,48脚封**GA:Ball Grid Array,常见有100/132/136/152 Ball

LGA:Land Grid Array,Apple产品应用倡导的封装形式。

DBG(DICING BEFORE GRINDING)晶圆封装工艺流程示意图:

三 闪存的历史与类型NAND的天命

现在的SSD使用闪存(FlashMemory)作为存储介质。相较于RAM来说,闪存是一种非易失性存储器,保存数据是不需要消耗电力的。闪存同时还具有较低的读取延迟和良好的抗震性,所以被移动设备广泛采用,其历史可以追溯到上世纪80年代。

1984年,东芝公司的舛冈富士雄博士(Dr.FujioMasuoka)发明闪存,由于这种存储器的抹除流程很像相机的闪光灯,最终被命名为闪存。

闪存之父:舛冈富士雄博士

1988年,Intel生产出第一款商业性NORFlash(闪存的一种)芯片。

NORFlash的擦除速度很慢,但提供完整寻址与数据总线,允许随机存取存储器上的任何区域,NORFlash多被用于ROM芯片,如主板上的BIOS芯片。

东芝在1989年的国际固态电路学会(ISSCC)上发表了另一种形式的闪存——NANDFlash。NAND闪存擦除速度更快,但是没有随机存取外部寻址总线,它必须以区块形式进行读取。NAND闪存也就是当前SSD使用的闪存形式。

根据每个存储单元能够储存的信息量,NAND闪存又被分为三类:SLC、MLC、TLC。

SLC的每个存储单元内存储1个Bit,称为单阶存储单元(Single-LevelCell,SLC),速度最快,耐久度最高,价格也最高。主要用于服务器市场上。

MLC的每个存储单元内存储2个Bit,因此叫多阶存储单元(Multi-LevelCell,MLC),速度比SLC慢,耐久度也比SLC低一些,当价格也降低了,更容易被消费级市场接受。正是MLC将SSD带入了家用可接受的成本范围内,推进了SSD的普及。MLC取得了速度、耐久度与成本之间的良好均衡。

TLC(三阶存储单元,Triple-LevelCell,TLC)的每个存储单元内可以存储3个Bit。由于每个单元可以存储更多的数据,TLC的成本进一步降低,但是随之而来的是写入速度和耐久度的再次降低。当前TLCNAND主要用于U盘、存储卡一类对于数据安全性要求不太高的领域。三星已经开始在最新的840系列SSD上试水TLCNAND,不过TLC在SSD上的使用经验还是较少,耐久度仍存疑问,尤其是三星从未公布过自己产品的耐久度参数。

在短期内MLC作为成熟的技术,仍将是SSD产品最广泛的使用选择。尤其是上期我们提到的SandForce主控所带来的压缩特性,能够降低写入放大率,将MLC产品耐用度提升到接近过去SLC产品方能达到的水平。

闪存的制程进步与PE次数:

闪存作为半导体产品,同样遵循摩尔定律,制程不断进步,集成度越来越高。带来的优势包括闪存容量的提升与单位容量价格的下降,使我们能够以更低的价格买到更大容量的SSD。但同时也带来一个令人头痛的问题:耐久度的下滑。

闪存在写入前必须先进行擦除,而闪存有编程和擦除的次数限制,这样每次的编程/擦除就叫做1个P/E(program/erasecycles)周期。

NAND制程处于50nm级别时,MLC的闪存普遍具有5,000-10,000次PE。而到了30nm级后,这一数值普遍为5000次PE;进入25nm时代,MLC的大众PE水平已经跌落到了3000次PE。在这一背景下,SandForce的低写入放大优势就更加明显。

四.闲话SandForce--神秘的压缩

SandForce是位于美国加利福尼亚州米尔皮塔斯的一家“fabless(无工厂)”半导体公司,在2006年由AlexNaqvi和Rado Danilak创建,二人在公司成立初期带来了大量相关的技术经验。

2009年4月,SandForce宣布进军快速发展中的固态硬盘市场。

SandForce自身并不生产和销售SSD固态硬盘成品,而是主要设计和制造SSD固态硬盘的闪存控制器并出售给SSD制造厂商。所谓fabless,就是指SandForce本身并没有生产工厂,专门从事芯片设计工作,而将生产作业交给代工厂来完成。我们熟悉的Nvidia和ARM也属于类似的fabless公司,比如Nvidia的代工厂就是台积电,而ARM也是只卖授权,而不实际生产处理器。无工厂半导体制造模式也是生产分工高度进化的一个表现。

最初企业级领域SSD只有使用昂贵的SLC闪存才能满足耐久度需求。而SandForce出现的最大意义在于使得使用相对廉价的MLC闪存也能够达到企业级环境下达到5年以上的预期寿命。SandForce这个最早定位于企业级应用的背景使得采用了SandForce主控的SSD能够在耐用度上取得相较其他主控方案更好的表现

SF-2200系列主控的功能特性图表:

左侧为与主机接口的示意,SMART信息、SATA6Gbps速率,最高队列深度32,物理层、链路层、转换层、指令。

中间为SandForce使用的各种技术,统称为“DuraClass Technology”,包含了智能磨损平衡、垃圾回收以及DuraWrite与RAISE等。支持AES-128自动加密与每512字节55Bit的ECC校验纠错机制。

右侧则是SandForce当前能够支持的NAND接口,Toggle与ONFI2同步方案均可支持。最高支持166MT/s带宽,支持20nm、30nm甚至1X nm级的闪存颗粒,最大容量支持到512GB。

SandForce最为著名的特性当属DuraWrite压缩技术,由于实际需要写入的数据量压缩后变小,写入速度得到了提升。在需要读取的时候,被压缩过的数据在主控内解压后输出,又带来了外部读取速度增益。

由此带来的就是SandForce在ATTO默认模型下Bug的跑分

由于ATTO测试的默认数据类型是完全可压缩的,经由SandForce主控的压缩算法之后,犹如一头大象被压缩成了一只猫咪的大小,装入了罐头。因为实际写入到NAND里的数据量很小,写入操作很快就完成了。外部测到的写入速度接近SATA6Gbps的接口带宽。

五 如何爱护自己的固态硬盘

对于固态硬盘的使用和保养,最重要的一条就是:在机械硬盘时代养成的“良好习惯”,未必适合固态硬盘。

1、不要使用碎片整理

碎片整理是对付机械硬盘变慢的一个好方法,但对于固态硬盘来说这完全就是一种“折磨”。

消费级固态硬盘的擦写次数是有限制,碎片整理会大大减少固态硬盘的使用寿命。其实,固态硬盘的垃圾回收机制就已经是一种很好的“磁盘整理”,再多的整理完全没必要。Windows的“磁盘整理”功能是机械硬盘时代的产物,并不适用于SSD。

除此之外,使用固态硬盘最好禁用win7的预读(Superfetch)和快速搜索(Windows Search)功能。这两个功能的实用意义不大,而禁用可以降低硬盘读写频率。

2、小分区,少分区

还是由于固态硬盘的“垃圾回收机制”。在固态硬盘上彻底删除文件,是将无效数据所在的整个区域摧毁,过程是这样的:先把区域内有效数据集中起来,转移到空闲的位置,然后把“问题区域”整个清除。

这一机制意味着,分区时不要把SSD的容量都分满。例如一块128G的固态硬盘,厂商一般会标称120G,预留了一部分空间。但如果在分区的时候只分100G,留出更多空间,固态硬盘的性能表现会更好。这些保留空间会被自动用于固态硬盘内部的优化操作,如磨损平衡、垃圾回收和坏块映射。这种做法被称之为“小分区”。

“少分区”则是另外一种概念,关系到“4k对齐”对固态硬盘的影响。一方面现在主流SSD容量都不是很大,分区越多意味着浪费的空间越多,另一方面分区太多容易导致分区错位,在分区边界的磁盘区域性能可能受到影响。最简单地保持“4k对齐”的方法就是用Win7自带的分区工具进行分区,这样能保证分出来的区域都是4K对齐的。

3、保留足够剩余空间

固态硬盘存储越多性能越慢。而如果某个分区长期处于使用量超过90%的状态,固态硬盘崩溃的可能性将大大增加。

所以及时清理无用的文件,设置合适的虚拟内存大小,将电影音乐等大文件存放到机械硬盘非常重要,必须让固态硬盘分区保留足够的剩余空间。

4、及时刷新固件

“固件”好比主板上的BIOS,控制固态硬盘一切内部操作,不仅直接影响固态硬盘的性能、稳定性,也会影响到寿命。优秀的固件包含先进的算法能减少固态硬盘不必要的写入,从而减少闪存芯片的磨损,维持性能的同时也延长了固态硬盘的寿命。因此及时更新官方发布的最新固件显得十分重要。不仅能提升性能和稳定性,还可以修复之前出现的bug。

5、学会使用恢复指令

固态硬盘的Trim重置指令可以把性能完全恢复到出厂状态。但不建议过多使用,因为对固态硬盘来说,每做一次Trim重置就相当于完成了一次完整的擦写操作,对磁盘寿命会有影响。
现在有许多软件都能提供固态硬盘的恢复指令,最著名的是HDDErase。操作过程大致也是将主板BIOS的启动顺序改为光驱优先或者U盘优先,然后插入存好软件的启动设备,进入引导界面,根据提示来操作。
英特尔固态硬盘工具箱(Intel SSD Toolbox)也是一个很好的选择,不用打繁杂的代码,直接在windows下按照提示鼠标操作即可,最大程度地避免了固态硬盘性能衰减。



推荐阅读
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
author-avatar
热情的海浪公主
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有