Discussion:
MMU vs no-MMU
Peter Teoh
2008-04-04 05:41:38 UTC
Permalink
Just learned that ARM9 processor can have MMU and no-MMU mode. Is
that correct? So what are the consequences of having no-MMU - what
are the implications in the "processes" architecture? Since paging
figured so widely in the kernel, and without paging, everything is
just physical address. Kernel and process address space - there is
no longer switching among different "process" address space, and so
meaningless to talk about "processes"? Are my analysis correct?

What are the other consequences of no-MMU?
--
Regards,
Peter Teoh

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ***@nl.linux.org
Please read the FAQ at http://kernelnewbies.org/FAQ
Mulyadi Santosa
2008-04-05 01:21:22 UTC
Permalink
Hi
Post by Peter Teoh
Just learned that ARM9 processor can have MMU and no-MMU mode. Is
that correct? So what are the consequences of having no-MMU - what
are the implications in the "processes" architecture?
I know nothing about ARM arch but perhaps I can share my thoughts
about MMU vs no MMU. Put it simply, you can't depend on paging in no
MMU environment....so, let's assume in x86 env, you just left with
segmentation for "creating memory boundary between processes".

For task switching, I think it's just a matter between primarily
reloading paging registers vs just segmen registers. Also, with flat
memory, it would be harder to tackle non contigous allocation or
dealing with fragmentation because you can't present the process with
virtually contigous memory area.

I am open for criticism here....

regards,

Mulyadi.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ***@nl.linux.org
Please read the FAQ at http://kernelnewbies.org/FAQ
Peter Teoh
2008-04-05 16:18:33 UTC
Permalink
Post by Mulyadi Santosa
Hi
Post by Peter Teoh
Just learned that ARM9 processor can have MMU and no-MMU mode. Is
that correct? So what are the consequences of having no-MMU - what
are the implications in the "processes" architecture?
I know nothing about ARM arch but perhaps I can share my thoughts
about MMU vs no MMU. Put it simply, you can't depend on paging in no
MMU environment....so, let's assume in x86 env, you just left with
segmentation for "creating memory boundary between processes".
technically u are right, x86 only offer seg + paging. but under the arch
directory - for all the arch that offer CONFIG_MMU option, there is no x86
(ie, no-MMU is not an option for x86), am I right? (never heard of this
before, just making deduction).

and as for the technical reason for this??? Please share....

but for other arch like arm, frv, sh, m32r - CONFIG_MMU is offered, and
therefore possibly no-MMU is possible by removing this.
Post by Mulyadi Santosa
For task switching, I think it's just a matter between primarily
reloading paging registers vs just segmen registers. Also, with flat
memory, it would be harder to tackle non contigous allocation or
dealing with fragmentation because you can't present the process with
virtually contigous memory area.
I am open for criticism here....
regards,
Mulyadi.
As for problems encountered: I remembered this site has a good summary
page some time back: www.uclinux.org (its mission is the following):*

The Linux/Microcontroller project is a port of Linux to systems without a
Memory Management Unit (MMU).

*But now I cannot find it now. So that's why I asked the question here.

For two recent thread talking about this:

http://www.gossamer-threads.com/lists/linux/kernel/900584

http://fixunix.com/embedded/340109-embedded-linux-without-mmu.html

A lot of the answer to our discussion here seemed to be found here:

http://www.internals.com/articles/protmode/protmode.htm

Take a look.....for example, still unanswered question like:

what are key results of x86 removed of its paging disabled? does it worked
in protected mode? and what is the max range of memory it can accessed?
task switching will be disabled if paging disabled - right? so is it
possible to implement swap mechanism? (swapping requires page fault - and
paging and page fault does not have any relationship, right?)

BUT - all the above are questions just for sake of knowledge per se, and in
Linux Kernel at least, it does not exists for x86 - so far. So it almost
have no practical purposes knowing the answer :-), or may be I am wrong?
--
Regards,
Peter Teoh
Continue reading on narkive:
Loading...