Winapi SSD上的逻辑块大小
我目前正在为运行在Win10(用C++编写)上的SSD(CFast卡)定制测试/基准测试。部分工作是阅读和解释S.M.A.R.T。SSD报告的属性。我现在感兴趣的是“写入的主机LBA总数”,即主机系统写入的LBA数量。我缺少的信息是“LBA引用的内存大小是多少,以字节为单位?”。 我已经做了一些关于SSD内部工作原理的家庭作业,但我在这里有点困惑,希望有人能对此有所了解,我显然遗漏了一些东西:Winapi SSD上的逻辑块大小,winapi,solid-state-drive,Winapi,Solid State Drive,我目前正在为运行在Win10(用C++编写)上的SSD(CFast卡)定制测试/基准测试。部分工作是阅读和解释S.M.A.R.T。SSD报告的属性。我现在感兴趣的是“写入的主机LBA总数”,即主机系统写入的LBA数量。我缺少的信息是“LBA引用的内存大小是多少,以字节为单位?”。 我已经做了一些关于SSD内部工作原理的家庭作业,但我在这里有点困惑,希望有人能对此有所了解,我显然遗漏了一些东西: SSD中的FTL(闪存转换层)执行LBA到物理地址的映射,以及其他操作(磨损均衡、垃圾收集等) SSD
GetDiskFreeSpace()
报告,它报告512B(其中“SectorsPerCluster”=8)编辑:很抱歉使用“LBA大小”,我知道它在语义上不是100%正确的,希望它是可以理解的…在我的情况下,页面的大小据说是16KiB。由此我天真地得出结论,LBA大小将与页面大小相同。。。我同意。这对我来说当然有道理。它是否缓存整个页面,重写LBA对应的1/32部分,将其写入空块并更新LBA物理地址表?我认为它必须做,是的,它还能做什么?这只是一个完全令人困惑的链接,我甚至不知道为什么要发布它,但实际上似乎没有任何像样的信息:@PaulSanders谢谢你的链接,我之前看过它,它确实没有什么帮助。我还发现了这个演示:在第7页,提到了子页FTL(以及可变大小的FTL)。对我来说,逻辑块的大小比物理块的小是不自然的(尽管我知道16k逻辑块会导致高写放大)。最后,如果SSD能够以字节为单位报告主机写入总量,那就更有意义了……对不起,你比我领先了很多,但我认为逻辑块总是全部写入。