Jump to content


Photo

Pc0 As Ps3/360 Coprocessor And Memory Extension


  • Please log in to reply
1 reply to this topic

#1 openxdkman

openxdkman

    X-S Genius

  • Moderator
  • PipPipPipPip
  • 823 posts
  • Xbox Version:unk
  • 360 version:unknown

Posted 27 June 2009 - 07:17 AM

Just got that idea waking up this morning... If you read this forum that probably means you have some old PC's you would like to recycle into something useful. Also you know that, years ago (got harassed by a new job found after pbKit release and couldn't find enough free time since), I released a very first version of minidash allowing to download and execute canonic assembler (but no problem if we want to branch to native x86 code if needed). Actually, it's (almost) all we need to start using a PC0 as coprocessor and memory extension for another machine, let's say for a much more powerful machine but in serious lack of memory... last gen consoles of course!

For example, path finding (+ AI). No genius found yet a way to do that quick without consuming a lot of resource. So it's still an heavy task nowadays. Also if zone is very large (or a lots of NPC's), that's a bunch of memory we may want to discard out of last gen console memory. So the idea is to have a PC0 boot after last gen console, and at boot time, have it download code and data thru 1Gbit/s ethernet cable and send results of calculation periodically thru ethernet cable again. That way almost all last gen console resources can be dedicated to graphics and sound.
(You may also consider it as the server of an online game, sitting next to your console and where you are the only player in a temporary -vanishes when PC shutdowns- world... Which means several consoles could share it and create a not so M(assive), M(utliplayer)O(nline)R(oleplaying)G(ame) in your house.)

It's something similar to the real time raytracing projects based on several PS3's connected together thru ethernet cables. Each PS3 calculates a part of screen. But since we don't really want to stack up PS3's in our home, using an old PC recycled as PC0 is interesting.

Minidash (or your own code booting on PC0) will stay in hybrid mode (real mode -that avoids context switch while handling packet driver interrupts-, with a small protected mode registers setting allowing full 32 bits linear adressing from real mode code -thru a little x86 mnemonic trick-). Since it may be considered as a very small monotask operating system, you will get almost all memory for your purpose and no background unknown task slowing you down. Also, no virtual memory, so hard disk doesn't get involved at all, so no slow down from this part as well (a PC0 may have no hard disk at all).

Actually the small already released version of minidash can do the work, but for now, it supports only a few 100MBits/s ethernet cards (the ones I own and for which I could find .com -real mode- packet drivers). I purchased a couple of Realtek 8169 (1Gbits/s) years ago. All I need now is to look for their packet drivers. I know well the one for Realtek 8139, so I hope I could support it as well by coping with their differences.

Stay tuned...

Edited by openxdkman, 28 June 2009 - 08:57 AM.


#2 openxdkman

openxdkman

    X-S Genius

  • Moderator
  • PipPipPipPip
  • 823 posts
  • Xbox Version:unk
  • 360 version:unknown

Posted 28 June 2009 - 08:35 AM

It will be even easier than expected to support Realtek 8169...
A mini-cd, supplied with the network card, had the linux driver source on it!

CODE


/*
* Various supported device vendors/types and their names.
*/
static struct rl_type rl_devs[] = {
    { RT_VENDORID, RT_DEVICEID_8129,
        "RealTek 8129 10/100BaseTX" },
    { RT_VENDORID, RT_DEVICEID_8139,
        "RealTek 8139 family 10/100BaseTX" },
    { RT_VENDORID, RT_DEVICEID_8169,
        "Realtek RTL8169(s) Gigabit Ethernet Adapter" },        
    { ACCTON_VENDORID, ACCTON_DEVICEID_5030,
        "Accton MPX 5030/5038 10/100BaseTX" },
    { DELTA_VENDORID, DELTA_DEVICEID_8139,
        "Delta Electronics 8139 10/100BaseTX" },
    { ADDTRON_VENDORID, ADDTRON_DEVICEID_8139,
        "Addtron Technolgy 8139 10/100BaseTX" },
    { DLINK_VENDORID, DLINK_DEVICEID_530TXPLUS,
        "D-Link DFE-530TX+ 10/100BaseTX" },
    { 0, 0, NULL }
};



That's why I love Realtek...
They don't create thousands of models, each requiring a special opaque driver.
Straight, simple and transparent!





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users