mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Richard B. Johnson" <root@chaos.analogic.com>
To: Andre Bonin <kernel@bonin.ca>
Cc: Linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: PCI coprocessors
Date: Wed, 15 Sep 2004 09:45:32 -0400 (EDT)	[thread overview]
Message-ID: <Pine.LNX.4.53.0409150931540.7297@chaos> (raw)
In-Reply-To: <41483BD3.4030405@bonin.ca>

On Wed, 15 Sep 2004, Andre Bonin wrote:

> Hey all,
> I'me building an FPGA based pci board for a degree project.  In theory
> this board could be used as a custom, field programmable coprocessor (to
> accelerate processes).  At which point, it might be nice to be able to
> support it as a processor under the kernel.
>
> Yes bandwidth, yes it should be PCI-Express but it is still just a
> degree project, 33mhz is fast enough for the proof of concept.
>

Typically, such a board would use a standard PCI interface chip
like those made by PLX. This would be connected to a FPGA plus
whatever else was needed to perform the needed functions.

If you attempt to make your own PCI interface using a FPGA,
you are going to devote a lot of time to that, alone. You
probably won't even get to your coprocessor until graduation.

> Which leads me to my questions:
>
> 1) Is their support for having two different 'machine types' within one
> kernel? that is for example, certain executables for intel would get run
> on an intel processor, and others would get run on processor with type XXXX.
>

The support is for whatever driver you provide. For instance,
the Analogic's Sky Computer Division produces array processors
with their own CPUs. The Sky-code runs in those processors.
It doesn't (can't) affect the Intel processor kernel code in
the host.

> I heard once someone put native "java" .class support within the kernel
> (it would call the jvm run time if i remember).  I could maby do this
> with my own set of libraries and driver.  But differentiating between
> the types of executable might be hard.
>

You could certainly make a Java engine run on your coprocessor
board or use Intel code, whatever is better at that instant.
This is done with a library that you provide.

> 2) Is their kernel support for PCI coprocessors for thread allocation
> etc.  I couldn't find any but i can try looking through the code again.
>

Things that go on the PCI bus use drivers (modules) for interface.
The kernel doesn't directly determine what functions are handled
by kernel code and what ones are handled by your PCI interface
coprocessor. Your (or the standard) runtime libraries do this.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.26 on an i686 machine (5570.56 BogoMips).
            Note 96.31% of all statistics are fiction.


  parent reply	other threads:[~2004-09-15 13:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-15 12:55 Andre Bonin
2004-09-15 12:30 ` Alan Cox
2004-09-15 13:44 ` Matti Aarnio
2004-09-15 13:45 ` Richard B. Johnson [this message]
2004-09-15 14:55 ` Tomasz Rola
2004-09-15 15:15   ` Andre Bonin
2004-09-15 16:49   ` Tonnerre
2004-09-16  0:12     ` Tomasz Rola
2004-09-15 16:01 ` Jeff Garzik
2004-09-15 22:39   ` Tonnerre
2004-09-17 10:16     ` Andre Tomt
2004-09-17 16:19       ` Tony Lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.53.0409150931540.7297@chaos \
    --to=root@chaos.analogic.com \
    --cc=kernel@bonin.ca \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®