Subject: Re: MMU requirements
To: None <tech-kern@NetBSD.org>
From: Jared Momose <jpmomose@hotmail.com>
List: tech-kern
Date: 02/18/2005 16:08:54
Kamal,

> > >Without translation, you are doomed some nasty page
> > swapping madness. You
> > >might be able to minimize it by attempting to
> > locate your binaries to
> > >different addresses such that concurrently running
> > binaries occupy different
> > >sections of your address space, but you still have
> > severe limitations
>
>Not a problem if you consider that:-
>(1) there is no swap device

On this processor, since a "virtual" address can only be backed by a single 
physical address (realize that in this hypothetical system, VA would have to 
be the same as PA), you will need to find a way to juggle the contents of 
the page being addressed.

> > >(multiple instances of the same programe, i.e.
> > getty, anything multiuser,
> > >fork needs to be reworked?!). Personally, I have
>
>do we need getty() on a dsp?

The issue I presented was that of executing multiple instances of the same 
binary. The problem is that both contend for the same address space for 
data/bss, and will require some funky page swapping code to mitigate the two 
instances.

> > concluded that although it
> > >may be possible, the result would be terribly
> > inefficient and not very
> > >useful for anything academic or commercial.
> > >
> >
>uclinux is the modified version of linux that is
>commercially used.

The paradigm used by ucLinux to handle processes is very different than 
Linux. If someone was clever and did port the Linux kernel to the Blackfin, 
including fork() and the ablilty to execute N instances of an arbitrary elf, 
I believe my statement would stand.

Of course, as Steven M. Bellovin pointed out, you could always play some 
games with the linker and the program loader. But from what I recall, this 
path was abandoned years ago due to its tedious nature and the advent of 
more sophisticated hardware, i.e. address translation.

Best regards,
Jared Momose