<br><br>On Saturday, May 8, 2021, Luke Kenneth Casson Leighton &lt;<a href="mailto:lkcl@lkcl.net">lkcl@lkcl.net</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
solutions that i have seen to this, used by intel, have been to make multi-level<br>
PTE caches. an 8-entry single-cycle, followed by (guessing) 256-entry two-cycle<br>
followed by (guessing) 4k three-cycle.</blockquote><div><br></div><div><a href="https://github.com/lowRISC/ariane/blob/master/src/tlb.sv">https://github.com/lowRISC/ariane/blob/master/src/tlb.sv</a></div><div><br></div><div>ariane only has four entry TLB caches!  this seems to be enough, and is small enough to do in 1 clock cycle.</div><div><br></div><div>also interestingly they cache how far down the RADIX the lookup went.  RISC-V hardcodes the page table sizes to 4k, 2M and 1G.</div><div><br></div><div>whereas POWER allows the OS to define them, making a TLB cache design a leetle more fun.</div><div><br></div><div>l.</div><div><br></div><div><br></div><br><br>-- <br>---<br>crowd-funded eco-conscious hardware: <a href="https://www.crowdsupply.com/eoma68" target="_blank">https://www.crowdsupply.com/eoma68</a><br><br>