用户
 找回密码
 立即注册
搜索

转个固态硬盘ssd分区对齐的贴子

[复制链接]

88

主题

540

帖子

2439

积分

高级会员

Rank: 4

积分
2439
发表于 2011-2-27 22:45:45

固态硬盘ssd分区对齐设置提升硬盘性能,WIN7不需要使用,会自动管理SSD硬盘的。

提速的原理应该是通过调整第一个NTFS分区的起始位置来保证不会出现NTFS的簇跨越NAND闪存的块(block),从而提高数据读写的效率。

具体来说是这样的,SLC闪存芯片的页/块大小是2KB/128KB,MLC的页/块大小是2KB/256KB或4KB/512KB(再早的MLC还有512B/32KB的,不过现在很少见了)。
也就是意味着每次可以分别以2KB/2KB/4KB为单位来写入数据,但是每次擦除必须要以128KB/256KB/512KB来擦除数据。
因为平衡写入算法的存在,用了一段时间之后的SSD每次写入数据时都必然是先擦除再写入这样一个过程。
如果按照XP之前的起始位置放在LBA63(起始位置之前保留512Bx63=31.5KB)的分区方式,将会导致NTFS分区每32(或64或128)个簇(以现在硬盘的大小,NTFS分区几乎全是4KB/簇),
就会有一个簇跨越了两个闪存块,当系统正好对跨块的簇进行操作时,就会导致需要擦除两个块之后才能写入数据,或是要分别从两个块来读取这些4KB簇的数据,这就降低了读写数据的效率。
通过调整NTFS分区的起始位置,我们就可以避免这种每隔一些簇就有一个跨过闪存块的情况,从而提高读写的效率。

这个开始位置应该放在哪里呢?
如果只是单通道的闪存设备,只要NTFS分区的开始位置前面空出512KB,也就是开始位置放在LBA1024处,就可以保证128KB/256KB/512KB块大小的闪存芯片都可以实现NTFS分区对齐了。
但事实上,几乎所有的SSD都不是单通道的,比如最常见的JM602方案是8通道的,Intel X25-M是10通道的,Intel X25-V是5通道的,这时候应该空出多少呢?
实际上,多通道的闪存设备也是把数据拆成一个一个的块,然后分别对每个通道进行读写操作,这个块的大小和所使用的闪存芯片的块的大小是一样的。
(关于这一点,大家可以从Intel X25-M和X25-V的4KB写入速度看出端倪。
Intel的主控对写入进行了优化,随机4KB写入并不是即时写入,而是在缓存中积累达到256KB(正好是Intel使用的闪存芯片的块大小)后再一次性写入。
如果这256KB数据会再进一步拆分然后才写到各个通道的话,10通道的X25-M必然会比5通道的X25-V要快,但实际上却是相差无几,这就说明多通道写入时最小的数据单位也是闪存块的大小。)
因此,我们完全可以不考虑设备是几通道的,直接把第一个分区的起始位置设在512KB之后的那个簇,也就是LBA1024处即可。
这个操作,XP之前的操作系统自带的分区工具是无法完成的,必须借助第三方工具;但是Vista/Win7的磁盘管理工具和光盘安装的分区界面进行分区时,
会自动把第一个分区设在LBA2048处,正好是1024的倍数,因此直接使用Vista/Win7来分区就自动完成了NTFS分区对齐闪存块的操作。
PS: 当然也可以根据自己固态硬盘的闪存类型来设置,比如SLC(2KB/128KB)的设在LBA256,MLC(2KB/256KB)的设在LBA512处,MLC(4KB/512KB)的设在LBA1024处等。
不过这说起来就麻烦了,建议怕麻烦的直接把硬盘挂在装好Vista/Win7的机器上,使用磁盘管理工具来分一下区就可以了。


原理说完了,Vista/Win7的下分区这边不废话了,现在来看看如何使用第三方工具来操作以及实际效果如何。
由于这是对分区进行操作,务必要先备份要进行操作的分区中的数据。
只是对第一个分区做操作,可以用WINPE启动计算机,先使用Ghost把第一个分区做个镜像存到后面的分区中去,改好了再Ghost回来即可。
因为Windows自带的分区工具无法实现根据LBA地址来分区的操作,这里要使用第三方分区工具,这里推荐DiskGenius。
大家可以去其官网下载:
http://www.diskman.cc/download.htm

我这里的操作和测试都是以自己手中的一个16GB的U盘为例的,另外也在自己的Sandisk SSD上试过了,确实有所改善。
1. 打开主界面,左侧选中要操作的磁盘,右边可以看到当前的第一个分区是从0-1-1开始的,也就是LBA63,右键点击把它删除掉。




2. 在删除后得到的空闲空间上右键点击来建立新分区。



3. 在建立新分区界面中点开详细参数,把起始磁头设为8,起始扇区设为9,
这时下面的起始扇区号会自动变为512,这个512其实就是指LBA512,确认后点击确定即可创建分区。
如果是四通道的NAND存储设备,可以进一步调整起始磁头和起始扇区,让起始扇区号显示为1024即可。



4. 回到主界面可以看到,此时第一个分区的起始柱面/磁头/扇区已经变成0-8-9了,点击应用更改保存设置。



5. 因此第一个分区的起始位置变了,建议大家重建MBR一下,以防出现不能启动的问题。
在DiskGenius中点一下刚才创建的分区,然后在硬盘菜单中点重建主引导纪录(MBR),并确认执行即可。
特别提醒的是,重建MBR后,如果之前MBR中有写入过的诸如WIN7 OEM破解信息等都会被去掉,需要重新使用相应的工具来重新写入。



最后上一下修改前后的ATTO测试成绩,都是在格式化后U盘里没有任何数据的情况下来进行的。
左:起始柱面/磁头/扇区为0-1-1(LBA63)时的测试成绩;右:起始柱面/磁头/扇区为0-8-9(LBA512)时的测试成绩:



使用道具 举报 回复
发表于 2011-2-27 22:52:01
{:4_319:}对非WIN7用户很不错
使用道具 举报 回复 支持 反对
发表于 2011-2-28 15:28:13
如今的系统短板我觉得就是硬盘了,没办法,一部高清电影十几个G,一个游戏十几个G。
时间都浪费到读盘时间上了。
使用道具 举报 回复 支持 反对
发表于 2011-3-2 11:02:48
还没用过SSD 不过WIN7自生支持的也不错
使用道具 举报 回复 支持 反对
发表于 2011-3-2 13:49:37
面包会有的 牛奶也会有的
使用道具 举报 回复 支持 反对
发表于 2013-11-26 13:58:39
长见识了 感谢楼主分享…………
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则