U盘开发之SSD对比
U盘因其小巧方便,逐步取代了笨重的移动硬盘和光驱,成为最普及的存储介质。现在的主板BIOS也将支持USB启动,作为标准之一,再过几年,光驱时代可能就要终结了。从早期的16MU盘,到现在动辄几个G,U盘的容量有了数量级的飞跃,但普通U盘的读写速度却没有太大的提高。原因在于U盘多用于即插即用的场合,且受限于USB2.0接口,做多通道的意义不是很大,随着USB3.0的普及和U盘成本的下降,这个现状可能会改变。
高速U盘采用高性能的主控芯片和多片Nand flash,通过并行处理技术,将N片低速Flash芯片并联起来,使用相同的控制线、片选线和读写信号线,构成一个多位宽的Flash组,这样N片并行工作,进行相同的操作,存储量可以达到单片Flash的N倍,理论上的存储速度也是单片Flash的N倍。金士顿新出一款100MB/s读取速度的高速U盘,不过价格超过同容量的SSD,离平民阶层时日尚早。
SSD和U盘,都采用Flash作为存储介质,可以将SSD视为强大的Flash阵列。SSD内部采用多个FLash贴片,常见的64G SSD,通常采用16片4GB Flash,读写速度较好的可以达到200MB/S,如果不计成本的话,可以做的更好。
SSD的读写操作是可以同时进行的,而U盘在同一时间仅能读或写,这是Nand Flash的特性决定了的.。SSD带有电池,用于应急备份。
SSD和U盘区别不仅仅在于速度,关键在于算法。Flash介质的擦除次数是有限的,反复的对一个Block擦写,可能会出现坏块。一些厂商在固件中提供了损耗平衡算法,尽可能充分利用每个Block的,延长整个SSD的寿命。同时,Flash的写入都存在一个放大效应,不同于机械硬盘的写操作,对Flash某个存储单元的写入,必须先将整个Block读入缓存,修改完数据,再擦除整个Block的数据,最后将这个Block写入,因此即使一个微小的改动,带来的影响也可能是巨大的(蝴蝶效应?)。一些SSD的固件里实现了Trim算法,对win7等支持trim的操作系统,开启trim功能,能提升SSD的读写性能,又大大减轻了SSD的损耗。还有一些SSD自身带有高速缓存,进一步提高了读写性能和IOPS。除了SATA接口的SSD,还有PCIE接口,性能更高,甚至GBps级别,当然成本也是极其昂贵。一些厂商为了降低成本,开发了SSD-HDD的混合硬盘,兼顾了性能和成本。
由于SSD良好的随机读写性能和低功耗、无噪音、抗震动、低热量的特点,被广泛应用于平板电脑和上网本。在数据库优化方面,将SSD用作高速缓存,对密集读的应用,可能带来数量级的性能提升。
在快速销毁领域,SSD也具有无法比拟的优势,Flash数据的擦除基于电信号的改变,只需要几秒钟,且现有技术手段难以恢复,而传统的机械硬盘,依靠盘片上的磁性介质记录信息,即使低格也不能完全销毁磁盘上的数据(不然也不会有艳照门了),只能借助专业的软件或者物理销毁,理论上来说,即使一块盘片碎片,也能从中恢复信息,但以目前的技术手段,尚有困难。有兴趣的TX,可以看看网上一位猛人利用铝热剂,物理销毁磁盘的方法。3000°C的高温,别说磁盘了,铁都化成水了。
U盘开发之SSD对比的更多相关文章
- U盘开发之GPIF Master模式
在U盘开发过程中,一个人从头做到尾,经常遇到一些莫名其妙的问题,只有到官网论坛发帖.折腾困扰我最久的,就是U盘的读写性能问题了,不采用GPIF的方式,single读只有几百K,single写只有几十K ...
- U盘开发之SCSI命令
借助硬件USB协议分析仪,可以清楚的看到U盘启动时和上位机之间交互的USB协议流程,从get desciptor get congfiguration set configuration到scsi命令 ...
- 高效开发之SASS篇 灵异留白事件——图片下方无故留白 你会用::before、::after吗 link 与 @import之对比 学习前端前必知的——HTTP协议详解 深入了解——CSS3新增属性 菜鸟进阶——grunt $(#form :input)与$(#form input)的区别
高效开发之SASS篇 作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~ 他是谁? 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家 ...
- RAMOS和SSD对比
http://bbs.pcbeta.com/forum.php?mod=redirect&goto=findpost&ptid=1786284&pid=48341400RAMO ...
- UWP开发之Mvvmlight实践七:如何查找设备(Mobile模拟器、实体手机、PC)中应用的Log等文件
在开发中或者后期测试乃至最后交付使用的时候,如果应用出问题了我们一般的做法就是查看Log文件.上章也提到了查看Log文件,这章重点讲解下如何查看Log文件?如何找到我们需要的Packages安装包目录 ...
- 【转载】浅谈游戏开发之2D手游工具
浅谈游戏开发之2D手游工具 来源:http://www.gameres.com/459713.html 游戏程序 平台类型: iOS Android 程序设计: 其它 编程语言: 引擎/SDK ...
- qt-qml移动开发之在ios上开发和部署app流程简单介绍
qt5.3已经全面支持移动开发,除了mac,windows,linux.还支持ios,android,wp,meego等移动平台,本教程是作者依据自己的经验,从头讲怎么样在ios上公布自己的app.因 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...
随机推荐
- AJAX Data 传值 无效的JSON基元:AJAX jQuery的方法,用c#WEBMETHOD-c#,jquery.
我有这样的代码:I数据值,而不是连接字符串作为对象常量.为什么?看到这里 我的代码是这样的:- $.ajax({ url: "../Member/Home.aspx/SaveClient&q ...
- Document原来可以这样来获取DOM
images集合(页面中的图象) a)通过集合引用 代码 document.images //对应页面上的<img>标签 document.images.leng ...
- BZOJ 3529 数表(莫比乌斯反演)
http://www.lydsy.com/JudgeOnline/problem.php?id=3529 思路:令F(i)为i的约数和, 1<=x<=n,1<=y<=m G(i ...
- 信号量 <第六篇>
一.ManualResetEvent 该对象有两种信号量状态True和False.构造函数设置初始状态. WaitOne:该方法用于阻塞线程,默认是无限期的阻塞,支持超时阻塞,如果超时就放弃阻塞,这样 ...
- Triangle 解答
Question Given a triangle, find the minimum path sum from top to bottom. Each step you may move to a ...
- poj 2299 Ultra-QuickSort(归并排序或是bit 树+离散化皆可)
题意:给一个数组,计算需要的冒泡排序的次数,元素个数很大,不能用n^2的冒泡排序计算. 解析:这题实际上就是求逆序对的个数,可以用归并排序的方法,我这里用另一种方法写,bit树+离散化.由于元素的值可 ...
- uva 101 by sixleaves
这是一道很好的模拟题,用vector<int> p[maxn],建立模型,映射为maxn个堆.主要要掌握vector模拟堆操作的简单方法.接下来得思路是自顶向下的方式,逐步完善程序.首先根 ...
- DAT文件怎样打开
DAT文件类型主要是"数据"文件.能够是不论什么内容,比方:文字,图形,视频或一般的二进制数据,它并没有统一详细的结构.所以您不能理解它也相应一个用来打开它的应用程序.比方你看到一 ...
- unix系统非roo账号安装JDK
AIX系统用户rusky(非root用户,没有权限修改/etc/profile和/etc/environment文件 )直接解压JDK.zip文件,解压后把JAVA目录拷贝到/home/rusky目录 ...
- Android studio教程:[1] 创建app项目
Android studio作为面市不久的安卓开发工具,越来越受到大家的喜爱,这里我将介绍如何在Android studio中创建一个APP项目,并在以后经验中介绍其他有关Android studio ...