正是基于这个原理,ReadyBoost 可充当内存与硬盘之间的桥梁作用,从而加速系统性能。
Readyboost功能
ReadyBoost功能,允许使用者通过闪存来加速系统。ReadyBoost由一个在%SystemRoot%\System32\Emdmgmt.dll中实现的运行于主机进程中的服务和一个卷过滤器驱动程序 (%SystemRoot%\System32\Drivers\Ecache.sys)组成。当闪存设备插入系统后,ReadyBoost服务会查看该设备以确定其性能特征,并将测试结果存储在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Emdmgmt中。 并不是所有闪存设备都能够支持ReadyBoost功能,在微软的技术文档中写道:“当闪存设备容量介于256MB和 32GB之间,对于4KB随机读取的传输率为2.5MBps或更高、对于512KB随机写入的传输率为1.75MBps或更高”时, ReadyBoost才会将询问用户是否想要将部分存储空间用于进行磁盘缓存。 尽管ReadyBoost可以使用NTFS,它还是会将最大缓存大小限制在4GB,以适应FAT32的限制。如果用户同意使用ReadyBoost功能的话,那么该服务便会在该设备的根目录下创建一个名为ReadyBoost.sfcache的缓存文件,并要求SuperFetch在后台预先填充缓存。 在ReadyBoost服务对缓存进行初始化之后,Ecache.sys设备驱动程序会将所有读写数据截取到本地硬盘卷(例如 C:\),并将要写入的所有数据复制到该服务创建的缓存文件中。Ecache.sys会将数据压缩,压缩比通常达到2:1。这样,4GB的缓存文件通常将包含8GB数据。驱动程序会联合使用高级加密标准(AES)和一个随机生成的引导会话密钥对其写入的每个块进行加密,以在将设备从系统移除的情况下保证缓存中数据的保密性。 当ReadyBoost确定闪存内的缓存比硬盘内的缓存更能满足随机读取需求时,它便会从闪盘介质内随机读取数据。而硬盘的有序读取访问要明显胜过闪存,因此,当 ReadyBoost 侦测到有系统正在使用有序访问数据的时候,将直接从磁盘读取,即使该数据同样位于闪盘介质内的缓存中。