2006-05-12 06:54:21

by Krishna Chaitanya

[permalink] [raw]
Subject: Linux for Asymmetric Multi Processing Systems.

Hi All!

I am working on a project where the hardware is Asymmetric Multi
Processing Systems(ASMP).

In my system I have one ARM9, four ARM7s'.

1. Can I use one Linux Kernel for all the CPUs in an ASMP system. (or)
Should I use One Linux Kernel for ARM9 and RTOSes for ARM7.
2. If my hardware would come up in future with another ARM7 does linux
scale for the new CPU.

Can anyone please direct me to the source/docs how to use Linux for
ASMP systems.

Thanks,
krs


2006-05-12 18:54:28

by Lennart Sorensen

[permalink] [raw]
Subject: Re: Linux for Asymmetric Multi Processing Systems.

On Fri, May 12, 2006 at 12:24:20PM +0530, Krishna Chaitanya wrote:
> I am working on a project where the hardware is Asymmetric Multi
> Processing Systems(ASMP).
>
> In my system I have one ARM9, four ARM7s'.
>
> 1. Can I use one Linux Kernel for all the CPUs in an ASMP system. (or)
> Should I use One Linux Kernel for ARM9 and RTOSes for ARM7.
> 2. If my hardware would come up in future with another ARM7 does linux
> scale for the new CPU.
>
> Can anyone please direct me to the source/docs how to use Linux for
> ASMP systems.

So you have two different instruction sets (although I think the arm7 is
a subset of the arm9, but what do I know), running different clocks
speeds most likely.

Does each cpu have it's own ram, or do they all share one pool of memory?

How does the Cell processor systems deal with this?

Len Sorensen

2006-05-13 12:10:55

by Krishna Chaitanya

[permalink] [raw]
Subject: Re: Linux for Asymmetric Multi Processing Systems.

Hi Len,

Each Processor has its own RAM and the main ARM9 processor can access
the ARM7 Memory Map through a _Shared RAM_.

In other words, the Memory Map of ARM7 processors is visible to ARM9 processor.

Finally there are 3 RAMs:
1) System RAM (ARM9)
2) Shared RAM (the Common Memory)
3) Local RAM for ARM7s.

Basically, this is a _flexible_ mechanism to control the _visibility_
of Each Processor.

And the Memory Controller can do either _cached_ or _non-cached_ operations.

Regards,
krs

On 5/13/06, Lennart Sorensen <[email protected]> wrote:
> On Fri, May 12, 2006 at 12:24:20PM +0530, Krishna Chaitanya wrote:
> > I am working on a project where the hardware is Asymmetric Multi
> > Processing Systems(ASMP).
> >
> > In my system I have one ARM9, four ARM7s'.
> >
> > 1. Can I use one Linux Kernel for all the CPUs in an ASMP system. (or)
> > Should I use One Linux Kernel for ARM9 and RTOSes for ARM7.
> > 2. If my hardware would come up in future with another ARM7 does linux
> > scale for the new CPU.
> >
> > Can anyone please direct me to the source/docs how to use Linux for
> > ASMP systems.
>
> So you have two different instruction sets (although I think the arm7 is
> a subset of the arm9, but what do I know), running different clocks
> speeds most likely.
>
> Does each cpu have it's own ram, or do they all share one pool of memory?
>
> How does the Cell processor systems deal with this?
>
> Len Sorensen
>

2006-05-15 07:33:00

by Zhou Yingchao

[permalink] [raw]
Subject: Re: Linux for Asymmetric Multi Processing Systems.

Your architecture is much like ours. Nowadays we are involing a
project named cluster_on_board, on which there are 4~16 cpus on a
board, these cpus can be the same and also can be different, and all
cpus can see all the memory. We are trying let each cpu running one
instance of kernel image(same or different), and communicate through
tcp/ip on a virtual Ethernet. Of course, modifications are needed.

I think you can do it in the same way. Or any more exciting ideas?

2006/5/12, Krishna Chaitanya <[email protected]>:
> Hi All!
>
> I am working on a project where the hardware is Asymmetric Multi
> Processing Systems(ASMP).
>
> In my system I have one ARM9, four ARM7s'.
>
> 1. Can I use one Linux Kernel for all the CPUs in an ASMP system. (or)
> Should I use One Linux Kernel for ARM9 and RTOSes for ARM7.
> 2. If my hardware would come up in future with another ARM7 does linux
> scale for the new CPU.
>
> Can anyone please direct me to the source/docs how to use Linux for
> ASMP systems.
>
> Thanks,
> krs



--
Yingchao Zhou
***********************************************
Institute Of Computing Technology
Chinese Academy of Sciences
Tel(O) : 010-62613792-28
***********************************************

2006-05-15 13:04:13

by Lennart Sorensen

[permalink] [raw]
Subject: Re: Linux for Asymmetric Multi Processing Systems.

On Sat, May 13, 2006 at 05:40:54PM +0530, Krishna Chaitanya wrote:
> Each Processor has its own RAM and the main ARM9 processor can access
> the ARM7 Memory Map through a _Shared RAM_.
>
> In other words, the Memory Map of ARM7 processors is visible to ARM9
> processor.
>
> Finally there are 3 RAMs:
> 1) System RAM (ARM9)
> 2) Shared RAM (the Common Memory)
> 3) Local RAM for ARM7s.
>
> Basically, this is a _flexible_ mechanism to control the _visibility_
> of Each Processor.
>
> And the Memory Controller can do either _cached_ or _non-cached_ operations.

Sounds like a neat system. I am not sure I would know what to do with
one. :)

It does however sound like the methods used for the Cell based systems
might apply reasonably to it. The main OS runs on the main CPU, and
executes tasks on the other processors by transfering the task to them
and retreiving the results later when it is ready.

Len Sorensen