[问题] 一个LRU cache实作的问题

楼主: Neverfor (八卦蟑螂)   2021-01-21 01:36:08
拍谢不知道要在哪里问,最近在实作LRU遇到一些问题
假设我的cache policy是以LRU实作
存放单位是以request为单位
request = (起始位置,写的长度)
假设写单位是sector (LSN)
一个request (100,3)代表 :
写LSN100 ~ 102
那问题来了
假设两个request之间只有部份位置重叠
例如两个request分别 :
写100 101 102 103
写99 100
问题 :
1.这样的话有部份重叠到
如果我是以request evict当作真正处理request的话,不就会有发生先后顺序的问题了,可
能我先写了新的100再写旧100
2.如果是hit到另外一笔request的部份位置,需要把那个request也往MRU丢吗!?
3.这种情况发生的多吗?如果都是只更新一小部份的话会一直遇到这个问题
p.s这边假设是以Request level去做,用sector level去做就不会有这个问题了
先谢谢大家了0...0
作者: ucrxzero (RX-0)   2021-01-21 13:22:00
sector level是用 bio吗?
作者: wtchen (没有存在感的人)   2021-01-21 15:35:00
与C无直接关联喔

Links booklink

Contact Us: admin [ a t ] ucptt.com