• L
    l2tlb: add next-line prefetcher (#1108) · bc063562
    Lemover 提交于
    预取时机:
    
        或者 发生miss时
        或者 发生hit,但是hit的entry是预取上来的
        当 页表2MB的level命中
        当 预取项不跨2MB项对应的4KB page frame
    
    前面两个限制是为了限制预取的数量
    
    后面两个限制是限制预取请求只会访问最后一级页表 -› 不占用FSM & (几乎)不会重新访问cache,造成卡死。
    
    =============
    some workloads: gcc(5.4%), wrf(13.6%),milc(9.2%)'s ipc increase.
    some workloads decrease: namd(-2.5%).
    but l2tlb's perf counters are better.
    So I think it is worthy to adding the simple next-line prefetch.
    
    The workloads are of ci and in cold-start state, so prefetch may seems to be much better than it should be.
    But l2tlb's memory access ability is much better than what it needs, so the prefetch can be added.
    =============
    
    * mmu.l2tlb: add params filterSize
    
    * mmu.l2tlb: add prefetch,dont work well
    
    * mmu.l2tlb: add prefetch relative perf counter
    
    * l2tlb: prefetch recv miss req and 'hit but pre-fetched' req
    
    * l2tlb: fix some perf counter about prefetch
    
    * l2tlb: prefetch not cross 2MB && not recv when 2MB level miss
    
    * ci: when error, copy emu and SimTop.v to WAVE_HOME
    bc063562
XSCore.scala 14.5 KB