• L
    l0tlb: add a new level tlb, a load tlb and a store tlb (#961) · a0301c0d
    Lemover 提交于
    * Revert "Revert "l0tlb: add a new level tlb to each mem pipeline (#936)" (#945)"
    
    This reverts commit b052b972.
    
    * fu: remove unused import
    
    * mmu.tlb: 2 load/store pipeline has 1 dtlb
    
    * mmu: remove btlb, the l1-tlb
    
    * mmu: set split-tlb to 32 to check perf effect
    
    * mmu: wrap tlb's param with TLBParameters
    
    * mmu: add params 'useBTlb'
    
    dtlb size is small: normal 8, super 2
    
    * mmu.tlb: add Bundle TlbEntry, simplify tlb hit logic(coding)
    
    * mmu.tlb: seperate tlb's storage, relative hit/sfence logic
    
    tlb now supports full-associate, set-associate, directive-associate.
    more: change tlb's parameter usage, change util.Random to support
    case that mod is 1.
    
    * mmu.tlb: support normalAsVictim, super(fa) -> normal(sa/da)
    
    be carefull to use tlb's parameter, only a part of param combination
    is supported
    
    * mmu.tlb: fix bug of hit method and victim write
    
    * mmu.tlb: add tlb storage's perf counter
    
    * mmu.tlb: rewrite replace part, support set or non-set
    
    * mmu.tlb: add param outReplace to receive out replace index
    
    * mmu.tlb: change param superSize to superNWays
    
    add param superNSets, which should always be 1
    
    * mmu.tlb: change some perf counter's name and change some params
    
    * mmu.tlb: fix bug of replace io bundle
    
    * mmu.tlb: remove unused signal wayIdx in tlbstorageio
    
    * mmu.tlb: separate tlb_ld/st into two 'same' tlb
    
    * mmu.tlb: when nWays is 1, replace returns 0.U
    
    before, replace will return 1.U, no influence for refill but bad
    for perf counter
    
    * mmu.tlb: give tlb_ld and tlb_st a name (in waveform)
    a0301c0d
StoreUnit.scala 8.0 KB