问的好,不过这个问题何不直接问我呢?
CPU的L1、L2、L3是预取,而SSD的SLC Cache是缓冲写入并在空闲时立即释放,SSD的SLC Cache并没有预取的特性,包括用了SLC Cache给读取作弊的SSD,它的SLC Cache内缓存的是刚刚写入的数据,只要一有空闲,SLC Cache就会立刻释放,Cache中就什么也不存在了,没有预读,又何来实际应用的加速效果?如果测试软件不是写完后立刻就测读取,又如何能体现出作弊的效果?实际使用中尤其是家用条件下,空闲时间远比IO操作时间多,SLC Cache原本就是用来加速写入的,只要有空闲就会释放的一干二净,不能再被用来影响读取速度,哪里又有机会让作弊算法体现出“优化”的效果来?
如果你还不明白CPU的Cache原理,我直接复制一段计算机组成与系统结构-Cache基本原理的课程内容过来给你看
- 2. Cache的基本原理
- CPU与Cache之间的数据交换是以字为单位的,而Cache与主存之间的数据交换则是以块为单位的。一个块由若干个定长字组成。
- 当CPU读取主存中的一个字时,该字的主存地址被发给Cache和主存,此时,Cache控制逻辑依据地址判断该字当前是否存在于Cache中:若在,该字立即被从Cache传送给CPU;若不在,则用主存读周期把该字从主存读出送到CPU,同时把含有这个字的整个数据块从主存读出送到Cache中,并采用一定的替换策略将Cache中的某一块替换掉,替换算法由Cache管理逻辑电路来实现。
复制代码
|