Re: [NTLK] WWNC & Einstein

From: Paul Guyot (pguyot_at_kallisys.net)
Date: Fri Sep 10 2004 - 23:03:42 PDT


Aux environs du 11/09/04 à 0:42 -0500, sous le titre "Re: [NTLK] WWNC
& Einstein", Jim Witte prit sa plus belle plume pour écrire les mots
suivants:
> >> Basically a subset of the question might be:
>>> - should we work on JIT emulation and run on any PDA with any
>>> processor?
>>> or
>>> - should we work on porting Einstein for natice code execution on
>>> ARM-based PDAs?
>>> or
>>> - should we work on porting Einstein for native code execution on top
>>> of an open source POSIX-compliant operating system (like NetBSD or
>>> Linux)?
>
> I'd vote for the ARM-based PDA solution or a POSIX solution.
>ARM-based because it seems like it would be faster and simpler to do
>than making a JIT. (The iPod is ARM based too, and that would *look*
>cool, even though it would be totally useless) With an ARM-based
>soltion, if you used a device that had a real floating-point
>coprocessor, and could remove/disable the FPE code, it could make
>certain things faster (maybe Rosetta for one, because I'm sure the
>neural-net code is floating point) How many ARM-based PDAs are there
>out there now, for which documentation is available enough for stuff
>like display access, etc (who am I to talk about docs when Paul and
>Nicolas just reverse engineered large portions of the NewtOS?)

Rosetta is fixed point with a very small depth. This is what Larry
told us on Sunday morning.

Maybe I should explain all these options.
What I call JIT isn't really JIT in fact. :)
It is to improve the emulator by automatic recompilation to the
target processor. With this, we will get a decent speed, especially
considering that the code executed by NewtonOS is mainly in ROM and
hence we can recompile once. I think that JIT will do something
correct on 400 MHz+ PDAs around including Tablet PCs (even if Tablet
PCs with their x86 processors aren't very suitable for JITing ARM
processors).

Porting Einstein for native code execution directly to another PDA
means that the PDA will only run code for the Newton and for
Einstein. It is easier to do, but we won't get SSH for example. It
will require some small changes in the OS at some places we can
easily find. Indeed, most hardware calls go through P-Classes but
some don't and these are easy to find and will require patches and
modifications of the ROM (just after it gets loaded, I guess).
There will be little work on the MMU.

Running the thing natively on top of POSIX means that:
- we'll use the underlaying OS for the hardware calls
- we'll have big work on the MMU to switch the context.

It would work better with more recent ARM cores that have context
switching I think. The target OS (NetBSD or Linux) might need changes.

In exchange, we will get a full POSIX core underneath and hence
Mozilla and SSH. We would also use drivers for the host OS and the
TCP/IP stack of it with hooks to the Newton world so NewtonOS-based
programs, without change, could take advantage of improvements.

All this is what I have thought about. There might be other options
as well, of course.

Paul

-- 
Ceci est une signature banale.
http://www.kallisys.com/
http://newton.kallisys.net:8080/
http://wwnc.newtontalk.net/
-- 
This is the NewtonTalk list - http://www.newtontalk.net/ for all inquiries
Official Newton FAQ: http://www.chuma.org/newton/faq/
WikiWikiNewt for all kinds of articles: http://tools.unna.org/wikiwikinewt/


This archive was generated by hypermail 2.1.5 : Sat Sep 11 2004 - 07:00:01 PDT