- 12 11月, 2021 1 次提交
-
-
由 ZhangZifei 提交于
-
- 27 10月, 2021 1 次提交
-
-
由 Lemover 提交于
* l2tlb: add repeater/filter's object apply method * l2tlb: add one more cycle(repeater) between itlb and l2tlb
-
- 21 10月, 2021 1 次提交
-
-
由 happy-lx 提交于
add mmu's asid support. 1. put asid inside sram (if the entry is sram), or it will take too many sources. 2. when sfence, just flush it all, don't care asid. 3. when hit check, check asid. 4. when asid changed, flush all the inflight ptw req for safety 5. simple asid unit test: asid 1 write, asid 2 read and check, asid 2 write, asid 1 read and check. same va, different pa * ASID: make satp's asid bits configurable to RW * use AsidLength to control it * ASID: implement asid refilling and hit checking * TODO: sfence flush with asid * ASID: implement sfence with asid * TODO: extract asid from SRAMTemplate * ASID: extract asid from SRAMTemplate * all is down * TODO: test * fix write to asid * Sfence: support rs2 of sfence and fix Fence Unit * rs2 of Sfence should be Reg and pass it to Fence Unit * judge the value of reg instead of the index in Fence Unit * mmu: re-write asid now, asid is stored inside sram, so sfence just flush it it's a complex job to handle the problem that asid is changed but no sfence.vma is executed. when asid is changed, all the inflight mmu reqs are flushed but entries in storage is not influenced. so the inflight reqs do not need to record asid, just use satp.asid * tlb: fix bug of refill mask * ci: add asid unit test Co-authored-by: NZhangZifei <zhangzifei20z@ict.ac.cn>
-
- 11 9月, 2021 1 次提交
-
-
由 Lemover 提交于
* mmu.l2tlb: add object TimeOutAssert * mmu.l2tlb: add TimeOutAssert to Repeater * mmu.l2tlb: cut down mem req buffer from 8 ptes to 1 pte each * util: move some utils from MMUBundle to utils
-
- 02 9月, 2021 1 次提交
-
-
由 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)
-
- 23 8月, 2021 1 次提交
-
- 22 8月, 2021 1 次提交
-
-
由 Lemover 提交于
* Miniconfig: change dtlb size to 32 at minimal config * mmu.dtlb: change tlb's replacement access code style dtlb now can support plru (functionaly). plru with multi-access is chained, so there will be long latency for dtlb to use plru. * mmu.tlb: add tlb at new level named btlb bridge tlb: one l0-tlb in each mem pipeline all the l0-tlb connect to bridge tlb btlb connects to l2tlb, so btlb is also l1-tlb itlb remains the same * mmu.tlb: set tlb size: l0-8, l1-64 * mmu.btlb: add sfence logic * mmu.tlb: fix bug of sfence logic of g bit * mmu.btlb: add some perf counter * mmu.btlb: fix bug of random replace * mmu.filter: add port vector to record which ports the reqs come from * mmu.btlb: add some perf counter && add refill mask * mmu.filter: add check for flushed req
-
- 24 7月, 2021 1 次提交
-
-
由 Yinan Xu 提交于
XiangShan is jointly released by ICT and PCL.
-
- 19 7月, 2021 1 次提交
-
-
由 Lemover 提交于
-