PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

SSD随机读性能分析

[复制链接]
跳转到指定楼层
1#
clouds 发表于 2011-5-5 10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:5417|回复数:4
本贴介绍SSD随机读性能制约因素。具体来说,就是AS SSD Acc.Time Read的得分如何提高。AS SSD Acc.Time Read在测试的时候,就是发4K Page Random Read命令,貌似评价响应时间,也就是命令发出去到数据获取的延迟。这个是猜测的。

读取的过程为:
1)AP调用读取的API,经过Driver -〉 2)SATA命令 -〉3)Disk接收到命令 ->4)SSD Firmware查FTL表 -〉5)发送NAND FLASH命令 -〉6)等待NAND Flash返回数据 -〉7)数据传输到Buffer中 ->8)数据经过SATA传输到Host -〉9)Driver发中断-> 10)AP结束计时。
其中, (1) (9) (10)是CPU进行的,高性能的CPU,速度就快一些,也和Driver的效率有关。但是总时间基本忽略不计。
(2)和(8)为固定时间。只要SATA的速度固定,这个时间对所有的SSD都是一样的。
(3) (4) (5) (6) (7)为Firmware和控制器消耗的时间。如果性能好,速度就快。这也是SSD性能差异的体现。

对于(6)过程,时间是依赖于Flash的。一般的情况下,MLC的Latency为50us,也就是0.05ms.
在(7)这个过程中。有两种速度。现在的Flash数据接口,分为Sync Mode和ASync Mode,在ASync Mode下,数据的传输率是40M Bps或者50M Bps。而ONFI的Sync Mode,为166MBps。因此,数据传输的时间,对于前者为4K / 40M(Byte/s) = 0.1 ms,对于后者为 4K / 166MBps = 0.025ms
在(4)这个过程中,有两种形式的FTL,一种是表全都在内存里的。另一种是做Page Swap的。如果Firmware的内存比较小,无法容纳所有的表,那么Firmware一般会做Memory Page,将不用的表存入Flash中,如果需要用到,则从Flash取出,装入Memory。如果table miss,则需要的时间是0.1ms + 0.05ms,
因此,一个Page,从收到读命令,到数据放到SATA总线上,延迟为 “Firmware计算时间” + (0.075ms ~ 0.3ms)之间。

此外,由于有NCQ的存在,不同命令的(3) (4) (5) (6) (7)步骤可以互相重叠。另外,由于有多个NAND Flash Channels, 不同Page的读取也可以并行,因此性能高于上面算到的时间。

总结本版网友上传的AS SSD性能,
大概Read Latency为0.25 和 0.15两个档次。应该代表不同的Firmware算法。
2#
neeyuese 发表于 2011-5-5 11:12 | 只看该作者
你确定是4KB不是512B吗?
3#
clouds  楼主| 发表于 2011-5-5 11:27 | 只看该作者
Read 是4K, Write是512B
4#
clouds  楼主| 发表于 2011-5-5 12:17 | 只看该作者
我用DiskMonitor抓到的磁盘访问就是4K的。我再换个工具试试看。
5#
neeyuese 发表于 2011-5-5 12:18 | 只看该作者
read 4k,write 512B,这倒是有可能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部