07-04-07 06:22 PM
Rainer Weikusat wrote:
> Rainer Temme <Rainer_Temme@nospam.hotmail_dot_com> writes:
[vbcol=seagreen]
[vbcol=seagreen]
> This would amount to a Harvard-architecture where the MMU selectively
> allows or disallows read accesses, based on the path they came in (data
> or instruction) and the access protection attribtute associated with a
> specific 'virtual memory' section.
>
> Does such a thing actually exist and if so, what is its name and which
> UNIX(*) runs or used to run on it?
I am not an expert, but I have done a little programming on ARM machines,
some of which have separate caches for data and instructions. I even
ran into an issue related to this: I was loading some code into memory[
1],
and because I was writing it through the data cache, the changes weren't
making it into the instruction cache[2]. Therefore, when I tried to exe
cute
it, it was executing garbage and the machine would crash.
Anyway, like I said, I'm not an expert, but I believe a separation between
instructions and data is a feature of the platform in general. In fact,
here's a product information page for an Intel ARM processor that appears
to have separate MMUs for data and instructions:
http://www.intel.com/design/iio/80200.htm
If you look at the block diagram, you can see what looks like two separate
MMUs, one on each of the two caches. If these have separate access
permissions -- as the bullet items under "Features and Benefits" imply
they do -- then...
As for whether any Unix variant runs on such a system or has, it's
certainly possible. There are a lot of embedded devices and portable
devices (PDAs, phones, etc.) that run on ARM processors, and Unix and
Linux are starting to be adopted in those areas. In particular, the
iPhone runs on ARM, apparently the Marvell PXA320. And the iPhone is
supposedly running OS X, which "is" Unix (there are reports that someone
has run crack against its /etc/passwd and recovered some passwords, so
it would appear that Apple hasn't stripped out the Unix parts of OS X
for the iPhone version).
Also, Palm is promising Linux stuff, probably on ARM. The Palm Foleo
(their "hey look, it's not a laptop even though it looks like one!"
product) will run Linux, and other devices are supposed to as well.
I suppose it's possible they could use some other processor, but all
their devices for the last several years have been ARM.
The point, though, is not about these specific devices. It's just
that ARM is a pseudo-Harvard architecture, and Unix/Linux on ARM is
a reality and may become more popular in the future.
- Logan
[1] Because Palm OS didn't do this for you with ARM code, you have to d
o
it manually.
[2] Because Palm OS doesn't supply you with any method to flush the cac
he!
[ Post a follow-up to this message ]
|