Hi,

To follow up on the recent discussions about the LM32 MMU. I think we
can all agree to use virtually indexed physically tagged caches that run
in parallel with the CPU caches. Then to solve aliasing and/or context
switch problems two major options were proposed:
a) Use a process ID tag in the cache. Problems: limits the number of
processes we can have without flushing the caches at each context
switch, data cache cannot be used for inter-process communication, OS
still has to check for aliasing when the same process maps the same
physical address twice (rare case though).
b) Use a simple cache with cache associativity * page size = cache size.
Advantages: simple hardware, and solves above problems. Problems: a bit
less flexible, and if we do not want to flush caches at context switches
we must ensure that shared memory areas are mapped at the same virtual
addresses in all processes that use it. I'm not familiar enough with how
OSes deal with virtual memory to know if this is a strong constraint or
not. Comments?

Let's make the MMU design happen :)

S.


_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode
Twitter: www.twitter.com/milkymistvj
Ideas? http://milkymist.uservoice.com

Reply via email to