<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jul 28, 2014 at 1:20 PM, Hesham Moustafa <span dir="ltr"><<a href="mailto:heshamelmatary@gmail.com" target="_blank">heshamelmatary@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I have read about MMU and Caches in OpenRISC to start implementing<br>
related managers in the new or1k port. Before beginning to write the<br>
code, I would like to introduce some of the architecture details<br>
regarding MMU and Caches.<br>
<br>
There are both; data and instruction MMU, TLBs, Caches.<br>
First, page tables there are divided into two levels; one level can be<br>
used with 32 GB or 16 MB pages, and two-levels for 8 KB pages. 32 GB<br>
and 16 MB would be too big for RTEMS, and that led us to two-level 8<br>
KB pages. Two-level pages would hurt the performance unless we setup<br>
TLBs at startup statically; there are 128 TLB entries. Other than<br>
defined run-time sections, the remaining pool of TLB entries can be<br>
used for dynamic page-table setup.<br>
<br></blockquote><div><br>So you can only have a static setup of at most 1MB (128 entries by 8K)?<br><br></div><div>Is the only use case for the MMU / virtual memory to have memory protection?<br><br></div><div>Can the 16MB superpages be mixed with the 8K pages? This can accomodate some user who might have more than 16MB of memory but wants memory protection in a static configuration.<br>
<br></div><div>-Gedare<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Protection domains are set into a special purpose registers forming 7<br>
groups, and each PTE can associates its protection domain to one of<br>
them. Protection provides control over pages for read, write, and<br>
execute accesses.<br>
<br>
Christian, I would like to know more about or1ksim implementation. I<br>
guess TLB misses are handled in software and accordingly software<br>
look-up operation. Also I would say that PTE reloads are also handled<br>
in software. Please correct me if I am wrong.<br>
<br>
Cache is working with PTEs; each of of which has some control bits to<br>
define the Cache attributes for its page.<br>
<br>
Given the previous little piece of info, I would appreciate your<br>
opinion regarding implementation decisions for or1k RTEMS port.<br>
<br>
Thanks,<br>
Hesham<br>
</blockquote></div><br></div></div>