[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] virtual memory



Hello!

> I'm progressing in stages.  First, I made the 030 tables look like
> the 040/060 tables.  This may make the 030 users hate me for a while,
> as it does drive up the amount of memory needed for an MMU table.
> This is done and sent to Frank.

For mprot030 I doesn't get anything yet. Hope it's not lost. Can you
resend?

> Second, if we want virtual memory, we really can't afford to give
> each process an MMU table entry, as we do now.

Why not?

> If I recall, the table
> size would be in the megabytes per process.

No, the table size here on my 040 is around 80 kb per Process. The table
size depend how much pages are allocated by the program. At the moment
it's equal to the main memory size as there is no virtual mapping (96 MB
require something around 80 kB if I remeber correctly).

With real virtual mapping we can decrease the table size dramatically. A
program that use 512 kb memory need the top level table, one second level
table and two page level tables (this are some kB).

global memory can be shared between all processes.

And at last the tables can be swapable too.

> Therefore, I'm going
> to make two MMU tables for all processes to use.  The code changes
> for the 68040/060 version is about 95% done.  All that's left is the
> changes needed to modify the MMU table(s) during a context switch.
> I know what I need to do there, it's just a matter of finding time.

I dislike this idea. A context switch in general is expensive. With the
addition of rewriting the complete MMU tree the computer will spend most
of the time in rewriting the MMU and not in running applications. I never
heard from such an implementation. And I think it decrease the failure
tolerance as rewriting the MMU is a very critical part.


Tschuess
   ...Frank

--
ATARI FALCON 040 // MILAN 060
-----------------------------------------
http://www.cs.uni-magdeburg.de/~fnaumann/
e-Mail: fnaumann@freemint.de