扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:zdnet安全频道 来源:论坛整理 2008年9月5日
关键字: Windows Vista Vista
概述篇:受命于危难之际?
前言
2005年秋季IDF上,英特尔首次披露了Robson技术,标志着闪存即将进入计算机的存储器系统架构中。根据该公司的计划,2007年5月被称为迅驰4的Santa Rosa移动平台发布时,并在先进的P35芯片组中也预留了它的位置。微软的Windows Vista统赋予了U盘前所未有的加速功能,与此同时,混合硬盘(Hybird Hard Disk Drive)和固态盘(SSD,Solid State Disk)也已经就绪。闪存的介入的问世是否标志着现代计算机系统开始又一场革命呢?
这是一个很难回答的问题,也许我们可以通过集ReadyBoost和ReadyDrive为一身的Turbo Memory来进行研究,它比U盘更专业,比混合硬盘和固态盘更接近于中国的用户,相信也有许多消费者正在为是否选择搭载Turbo Memory的笔记本而踌躇。
英特尔的 Turbo Memory演示动画截图,将南桥和北桥合为了一体
英特尔声称,Turbo Memory将会为系统提供高达20%左右的启动加速,高达200%的程序加载及运行速度提升,并且能明显延长笔记本电脑的电池续航能力。
然而,在Santa Rosa笔记本全面铺货时,Turbo Memory只是作为选配出现在高端型号中。在6月份,全球笔记本出货量第一的惠普宣布目前不考虑在其产品中加入这一模块,理由是“成本太高提升不明显”,随后,英特尔搁置了在最新的P35系列台式机主板芯片组上采用Turbo Memory的计划,版本升级到1.5之后再推向桌面平台……
国内外的舆论对于Turbo Memory也是褒贬不一,吹棒者有之,抵毁者有之,见风使舵者有之。目前Santa Rosa已经走过了青涩的年华,成为市场中高端的主流。英特尔留给了消费者选择的空间,而Turbo Memory是一笔合理的投资吗?它的真实性能究竟如何?相信本文会给你一些有建议。
受命于危难之际?
大部分用户对于“闪存”的感性认识来自于U盘和MP3/4,一款传输速率达到15MB/s以上的U盘已经被认为是“高性能”,相比之下,当前主流的台式机硬盘持续传输率在60MB/s左右,希捷最新的7200.11甚至可以达到100MB/s,而用于主流笔记本平台的2.5英寸硬盘,最大持续传输率也可以达到35MB/s以上,把闪存放在硬盘和内存之间真的能起到加速作用吗?
一张令人悲观的曲线图,近十年来,CPU性能突发猛进,硬盘性能却几乎是原地踏步,实际上真的如此吗?(图片来源:英特尔)
英特尔认为,自1996年2006的十年之间,处理器性能提升了30倍,然而硬盘性能只提升了1.3倍,平均每年只有2.5%。 这一说法是否确切呢?CPU的进步有目共睹,由于当中还涉及到指令集的问题,无法单纯地用MIPS来描述,不过30倍还是一个很容易理解的数字,不过硬盘的性能增长就很难理解了,1997年还是昆腾大脚等“老爷车”横行的时期,再对比一下当前武装到牙齿的希捷7200.10,日立7K1000等先进产品,似乎无论如何都很难得出1.3倍的结论。
我们无法得知英特尔是如何去比较的,但可以用以下的这张表来对比一下硬盘十年来的发展,要注意是其中的参数来自于官方产品说明,并非评测数据。(注:在谈及存储器的时候,一般会用访问周期、带宽、容量、价格去衡量,和直接关系到存储器性能的是访问周期和带宽。访问周期就是我们常提到的延迟值,而带宽可以理解为数据传输率。)
注:橘黄色为2.5英寸硬盘(点击查看大图)
可以看出的是,硬盘的各个方面都有着显著的进步,就接口的最大持续传输率而言,相对10年前产品的提升已经超越10倍。但是也有例外,那就是随机访问性能。决定硬盘随机访问性能的两个参数是磁头平均潜伏时间和平均寻道时间,前者主要由转速来决定,再先进的7200rpm硬盘也难逃4.167ms的平均延迟,而且单碟容量(更确切的说是磁道密度)是平均寻道时间非常重要的决定性因素,可以对比一下西数的JB系列和7200.11,单碟40GB和单碟200GB的存储密度反映到平均寻道时间上,也带来了较大的差异。
即使接口速率已经达到了3Gbp/s,即使有NCQ,即使垂直记录技术的潜力不断地被挖掘,即使缓存容量扩展了50倍以上,然而这些改良技术仍然无法摆脱“温彻斯特”架构的限制。10年之间,硬盘随机访问性能的增长,仍然只能以“蹒跚”来形容,而随机访问性能的瓶颈将是致命的,DDR2 667内存的延时值仅为80ns左右(软件实测值),CPU的二级缓存的访问周期是内存的1/10~100左右,但是硬盘和内存之间的随机访问速度差距甚至达到了1万倍,无数个时钟周期就在硬盘的寻寻觅觅中白白耗费了。
DDR2 667内存(CL=5)访问延迟为87.4ns,Core2 Duo T7700的L2缓存访问延迟为5.7ns,L1缓存为1.1ns,差距不大。然而从内存的100ns级到硬盘的10ms级,已有万倍之差,它们之间需要一个μs级的缓冲。
无论是英特尔还是AMD,都很注重CPU和内存之间的“交流”,英特尔Core2 Duo架构比Netburst内存访问效率更高,AMD K8处理器集成了内存控制器,L1缓存可以直接和内存对话,极大地减少了访问内存的延迟,975P的和PP965的内存控制器的优化,内存控制器。不过硬盘和内存之间的鸿沟一直以来几乎都没有特殊的措施去填充,只能放任由它们的性能自由发展,差距越来越大。
如果想在内存和硬盘之间再加一层缓冲,显然只能是随机访问存储器,即RAM。RAM在计算机系统中的应用非常普遍,CPU缓存是SRAM,内存和硬盘缓存是DRAM,还有什么选择呢?答案是NVRAM,闪存就是最常用的NVRAM,其μs级的访问周期虽然不如ns级别的DRAM,但是比ms级别的硬盘要快得多,价格相对而言较为适合,市场也已经非常成熟,于是一直游离在计算机系统边缘的闪存被微软和英特尔钦点为了救世主。
硬盘访问16KB文件时,接口传输用时为55μs,媒体传输用时220μs,而硬盘的机械延迟整整用去了5.13ms,占整个过程95%的时间,而且5.13ms还是一个较为乐观的时间。
由此可以算出,在访问16KB文件时,硬盘的随机访问速度只有2.5MB/s左右,尽管其内部传输率有70MB/s以上,如果是4KB的文件,那么硬盘的随机访问速度甚至有可能会低于1MB/s,因为机械延迟是恒定的。在这个实例中的机械延迟已经是相当乐观的情况,因为一台主流7200rpm硬盘,其平均机械延迟值往往在14ms左右,而5400rpm的2.5英寸笔记本机械延迟会更高,达到18ms左右,再计算一下其随机访问性能,绝对是惨不忍睹,英特尔1.3倍的观点并非空穴来风。
闪存会是什么样的情况呢?在此假设闪存的访问延迟(接口传输+寻址时间)为0.5ms,读取速度为20MB/s,那么在访问16KB的数据时,总用时约为1.8ms以内,随机访问速度是硬盘的4倍以上。而且文件越小,闪存的优势越大。同时,所列举的闪存的例子适用于U盘,在下文会提到,Turbo Memory的性能要远高于U盘,而且用于评测的迅驰4笔记本硬盘为5400rpm的WD,它们的在随机访问速度上的差距是十分惊人的。
借用一下英特尔Value SSD和硬盘的对比图,该SSD和Turbo Memory中的闪存速度相对接近,因此同样具备参考价值。在基于Windows的平台中,根据微软的统计,4KB以下的文件占到了近40%,16KB以下的文件超过50%,而大于128KB的文件只占文件总数的10%左右。对比闪存(紫色曲线)和硬盘(蓝色曲线),在访问小文件时,闪存大占上风,当文件大于512KB时,硬盘的优势才越来越明显。 (点击查看大图)
不得不提的是Windows系统平台的文件结构,绝大部分的程序都采用了大量的DLL动态链接库文件,例如IE、Photoshop、Outlook Express这样的程序,所需的DLL文件都超过100个。而访问每个DLL文件可能要涉及到5~6个磁盘位置,包括NTFS主文件表的条目、目录、.data页面以及.text页面。此外,一个简单的注册表读写访问,也可能会涉及5~6次的随机磁盘访问。可以说,这样的文件结构特点放大了硬盘的弱势,也为闪存带来了机会。
DLL文件在硬盘上的布局
Turbo Memory——始发 PM965+ICH8M
闪存这位救世主会以一种什么样的形态来出现呢,目前有半路出家的U盘和存储卡,神龙见首不见尾的混合硬盘和钱包杀手固态盘,此外就是本文的主角——英特尔Turbo Memory,基于PM965+ICH8M的平台,同时具备了ReadyBoost、ReadyDrive功能。
英特尔Turbo Memory,基于Windows Vista操作系统,由Intel Matrix Storage Manager Driver进行管理,BIOS中AHCI功能必须开启,可同时作为ReadyBoost和ReadyDrive(研发代号Piston)和SuperFetch缓存来使用,总线为PCI-E x1。OROM指的是Option ROM,用于在系统驱动程序加载之前管理Turbo Memory。
Turbo Memory模组非常简单,采用PCI ExpressMini Card的尺寸,两颗来自IM Flash的NAND闪存芯片和一颗的控制芯片,根据惠普的说法,它的组件成本高达50美元!尽管目前内存价格上涨,但它的价格仍然超过了1GB DDR2 667内存模组的零售价。
Turbo Memory模块的详细图赏,从与SD卡的对比中,我们能明确感知到它的大小
这两颗闪存芯片基于72nm制程,容量4Gb(512Mb*8),英特尔表示在未来将会采用50nm的芯片。代号为DiamondLake(钻石湖)的Intel 29AE20AA0闪存控制芯片,主要作用是将PCI-E信号转换为闪存信号,在操作驱动加载之前进行模组管理,同时最高支持四颗英特尔的NAND闪存芯片,最大容量2GB,可向下兼容单颗和两颗闪存,有消息称其价格为19美元。
Turbo Memory评测分析篇——ReadyBoost、ReadyDrive左右互搏
以下面讲解Turbo Memory在Windows Vista中的工作原理。
ReadyBoost
这是一项发挥闪存的随机访问速度优势,加快程序的加载速度和运行性能的技术。它和开机的速度无关,这是一项进入系统之后才启动的服务。
它对USB闪存的要求是:USB2.0接口;剩余空间不低于256M;读取4KB数据的速度需达2.5MB/s或以上,随机写入512KB数据的速度需达1.75MB/s或以上,而且整个闪存空间都要高于这个速度要求,可以说它的要求已经比较低,因为硬盘的随机访问速率在1MB左右。
在常规情况下,内存需要和硬盘中的虚拟内存进行页面交换,而通过Turbo Memory上的ReadyBoost缓存,内存可以直接和迅盘进行页面交换(黄色部分代表虚拟内存),速度得以提升。ReadyBoost中的数据经过了2倍的压缩和128bit AES(Advanced Encryption Standard)加密,即512MB的闪存可以缓存1GB的数据。(加密和压缩均为软件实现)
虽然ReadyBoost经过了压缩/解压和加密/解密的过程,在一定程度上会影响数据传输率,但是即使用速度不如Turbo Memory模组的U盘,页面交换速度仍然比硬盘要快得多。2X压缩也表明了闪存容量对于命中率的提高是非常有效的,微软的推荐值是物理内存的1~2.5倍,但是32bit系统仍要受限于4GB的总容量。
此外,128bit AES加密几乎不会带来硬件性能的损失,而且安全性很高,应用范围极广,索尼PSP也采用了同样的加密方法。可能对于Turbo Memory而言,加密的重要性不如U盘,但是对于一直标榜“安全”的Vista,自然是想做得滴水不漏。
SuperFetch
微软对SuperFetch 定义是:Windows Vista系统所采用的一种通过历史信息和前瞻性内存管理来增强“Least-Recently Accessed”(最近最少访问)方法的内存管理方案。
SuperFetch可以看作Windows XP所采用的PreFetch预读取技术的升级版,PreFetch的作用是在每个应用程序启动的时候预先加载所需的DLL和程序应用文件。SuperFetch则是把用户常用的应用程序页面事先缓存到内存中,可精确至哪一个账户、一周中的哪些天、一天中的哪些时间使用哪些前台应用程序,对于计算机用户——尤其是企业用户而言,使用电脑往往会有一定的规律,使用的软件也相对的固定,根据统计学的原理,一个系统的使用时间越长,结果就越精确,并且习惯变化时系统也会随之变化,当应用程序运行时就不需要从磁盘中读取所需的内容。
SuperFetch的意义在于对大容量内存的管理功能比Windows 2000/XP更加优秀,尤其对于2GB以上的内存更加明显,SuperFetch可以让Vista更好地利用闲置的内存容量,而且不会减少可用内存。
这是评测用样机(标准内存容量1GB,集成显卡分配8MB)在无操作时的情况,“已缓存”值已经达到了599MB,可是已经使用的“物理内存”仅有55%,即是说有近600MB的文件被加载到了备用页面列表中,这就是SuperFetch
什么是备用页面列表呢?常说的可用内存由四个部分组成,分别是自由页面列表(Free Page List)、已修改页面列表(Modified Page List)、清零页面列表(Zero Page List)和备用页面列表(Standby Page List),内存工作集里的进程退出之后,并不会真正的清出内存,而是进入备用列表中,再次引用时,会触发缺页中断(Page Fault),不过如果进程仍在备用列表中,那么只会发生软中断,进行的是内存内部的页面交换,如果内存中找不到相应的页面,就会触发硬中断,必须访问速度非常慢的硬盘。
如果在测试Turbo Memory时喜欢重复启动同一个程序,然后对连续打开四到五次的成绩进行对比。基于上述所谈到的原理,得出结果是没有太大参考价值的,你会发现启动速度越来越快,然后稳定在一个值,然而此时页面交换是在内存内容进行的,除非内存实在太小,程序关闭之后马上被彻底清出内存,把空间分配给其它的进程,否则连硬缺页中断都不会发生,Turbo Memory能起到什么作用呢?
Turbo Memory的ReadyBoost缓存中会载入SuperFetch的文件,同样是容量越大命中率越高。需要注意的是,ReadyBoost进程的优先级别是“正常”,而SuperFetch的加载到内存中的程序IO优先级别为“后台”
关于SuperFetch会导致前台进程性能下降以及引起硬盘频繁读写的说法是不正确的,由于I/O优先级低,它不会和优先级更高的前台进程互抢资源,同时SuperFetch的理念是让内存中尽量保持正确的内容,让尽量多的页面交换在内存中进行,以减少磁盘访问的次数,小内存的用户也会从中受益,只不过命中率太低而已。
如果内存的容量足够大,SuperFetch可以缓存大量的备用列表,当启动一个常用的进程时,如果备用列表中缓存命中,发生的是软页面中断,只需要改变内存列表中逻辑地址的指向便可,几乎没有数据交换,当前台进程的内存占用率提升之后,SuperFetch缓存中最近最少访问的数据就会被“请出”内存。
内存容量过小的情况会怎么样呢?例如512MB内存,只能满足Vista运行的最低要求,也许还有一小部分可以用于缓存SuperFetch文件,但是由于容量太小,命中率可想而知。当然,此时SuperFetch还可以缓存于硬盘的虚拟内存中,比分散文件的寻道要快得多,但是和内存比起来,随机访问速度已经慢了几个数量级。
ReadyBoost就是为了解决这一问题而产生的,把SuperFetch缓存保存在闪存中,利用闪存随机访问速度远高于硬盘的优势来达到加速的目的,虽然触发的仍然是硬缺页中断,不过页面交换的速度仍然是硬盘无法企及的。
ReadyBoost会在硬盘中会保存一个映像,采用的是Write Through机制,两者数据保持同步,这是为了连接可靠性不高的U盘而设计的,以免U盘突然被拔出而丢失数据。
ReadyDrive
这是Windows Vista为混合硬盘(Hybird HDD)而设计的技术。
混合硬盘由微软、东芝、富士通、希捷和日立联合推出,通过非易失性闪存来提升系统启动/运行速度、省电和提高安全性的目的。不过直到2007年第三季度开始,混合硬盘还停留在工程样品阶段。
ReadyDrive的作用包括:
1 加快开机速度:ReadyDrive充分利用了闪存的非易失性和随机访问速度高的优势,Vista在关机的时候,会把下一次启动的需要用到的文件保存在NV Cache中。下一次开机时,Windows将直接从闪存中读取数据。
在关机过程中,把Vista启动时需要的文件加载到ReadyDrive中从而加快开机速度,这是硬盘的缓存无法做到的,因为SDRAM是易失性的
当然,Vista不会把所有的启动文件都保存在闪存里,一方面这会延长关机的时间,另一方面闪存的顺序访问没有优势,而系统启动时同时从闪存和硬盘中读取数据效率无疑是最高的,同时硬盘从加电到转动“浪费”的时间也相当于省下了。
2 提升应用程序的运行性能:ReadyDrive会把常用程序所需要访问的内容加载到NV Cache中(同样采用LRA算法),同时还可以把DLL文件所需要随机访问的部分,例如前文提到的主文件表条目、目录项、PE头信息和.text页面也存放在NV Cache中。在访问文件时,这些随机访问的数据都从闪存中读取,而顺序访问的.data数据文件仍然直接在硬盘中读取。
利用ReadyDrive提升程序运行的性能。硬盘缓存的主要作用还是在于预写入和被动预读取,所谓被动,指的是访问数据的过程中“顺手”将邻近的数据载入缓存中,但是ReadyDrive加载主文件表条目、目录项、PE头信息和.text页面等需要硬盘访问没有优势的文件则是主动的
3 省电:和ReadyBoost不同,ReadyDrive管理下的闪存和硬盘上的数据所采用的是Write Back方式,即当硬盘要写入新的数据时,不会马上进行磁盘访问,而是“积攒”到一定的程度才会启动硬盘写入数据,以保持数据的一致性。再加上预读取的功能,盘片加电旋转时间得以减少,同时寻道次数下降,这表现在移动平台上就是性能的增加,而且硬盘的MTBF(平均无故障间隔时间)也随之提高。
ReadyDrive利用闪存随机访问速度高于硬盘的特性,可以更快地完成写入工作,并使系统进入功耗状态,因此闪存的写性能变得异常重要。WB Data即写回(Write Back)数据,只占用部分的ReadyDrive缓存容量,由此可以看出,增加闪存的容量可以缓存更多的数据,从而进一步减少磁盘的写操作
通过Turbo Memory,传统硬盘也可以拥有ReadyDrive,相比之下Turbo Memory的方案是有劣势的,闪存和硬盘交换数据要经过南桥的中转,会在一定程度上增加延迟。不过从总线拓朴来看,Turbo Memory存在为一块以上的硬盘缓存的潜力(目前未知是否能够做到)。
混合硬盘工作原理
下面进入测试环节。
测试篇——盛名之下,其实难符?
测试平台与设置
以下是本次测试的平台,来自英特尔的无品牌工程样机,硬盘为日立的HTS72108,由于7200rpm 2.5英寸硬盘离普及还有一定的距离,特别替换了一块5400rpm的产品——西数WD800BEVS。
英特尔迅驰4笔记本测试平台配置表
处理器 |
Intel Core 2 Duo T7700(2.4GHz) |
芯片组 |
Intel Crestline PM965 |
无线模块 |
Intel Wireless WiFi Link 4965AGN |
内存 |
512/1GB/2GB DDR2-667 |
硬盘 |
WD800BEVS(80GB/SATA 150/5400rpm) |
显卡 |
Intel X3100 |
迅盘 |
1GB Turbo Memory |
注:512MB DDR2 667为单根
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者