|
Parallel Array Processor Project
by markus on Jul 13, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
Recently, I started again thinking about massive-parallel processor,
which I last time designed in early 90's. You can get more information
from my web pages:
http://reaaliaika.net/showarea.php/procmem
Short description: It's a general purpose, programmable, fine-grained
massive-parallel processors, it's basically, but not purely a DFM.
Why to announce here? If you get interested about the idea, you could
help me in many ways. First of all, I'm more a programmer than a CPU
designer, so if you have any idea for my "Simple-Cell" or "Macro-Cell"
design, I'd be pleased. Second, you could point my browser to projects
somewhat similar to mine. And third, I'm of course very interested to
get some feedback of my project.
|
|||
|
Parallel Array Processor Project
by Unknown on Jul 14, 2004 |
Not available! | ||
|
Aloha!
markus at reaaliaika.net wrote:
Recently, I started again thinking about massive-parallel processor,
which I last time designed in early 90's. You can get more information
from my web pages:
http://reaaliaika.net/showarea.php/procmem
Short description: It's a general purpose, programmable, fine-grained
massive-parallel processors, it's basically, but not purely a DFM.
Why to announce here? If you get interested about the idea, you could
help me in many ways. First of all, I'm more a programmer than a CPU
designer, so if you have any idea for my "Simple-Cell" or "Macro-Cell"
design, I'd be pleased. Second, you could point my browser to projects
somewhat similar to mine. And third, I'm of course very interested to
get some feedback of my project.
One project you should check out is the Raw project. The Raw architecture is
very much what you have been thinking about: Lots of small processing elements
connected on-die. They have produced real chips and have done quite a lot of
work on the non-trivial aspect of programming the beast.
There are several other projects. There is at least one project at IMEC in
Leuwen that have produced a chip with a programmable (read: configurable)
processing array. MITs old Transit project should provide some interesting
pointers too. Patterssons iRAM-ideas too perhaps.
I took a look at your page, and unless I'm fooled by the PovRay-images, you
are thinking in terms if a 3D-array, no? If you are I think you should try to
keep that 3D-thingy shallow. Eveb though state of the art technologies
provides 10+ metal layers it still don't provide very much in terms of a third
connectivity dimension. And, besides the functionality is still implemented at
the bottom of the chip.
--
Med vänlig hälsning, Yours
Joachim Strömbergson - Alltid i harmonisk svängning.
VP, Research & Development
----------------------------------------------------------------------
InformAsic AB / Hugo Grauers gata 5B / SE-411 33 GÖTEBORG / Sweden
Tel: +46 31 68 54 90 Fax: +46 31 68 54 91 Mobile: +46 733 75 97 02
E-mail: joachim.strombergson at informasic.com Home: www.informasic.com
----------------------------------------------------------------------
|
|||
|
Parallel Array Processor Project
by Unknown on Jul 14, 2004 |
Not available! | ||
|
Hi Markus
I was looking at implementing a 8 CPU processor array in a 300K gate
Spartan 2e.
I've implemented a very simple 16 bit microprocessor and I figure I can
fit 8 of them
in the XC2S300e.
http://members.optushome.com.au/jekent/Micro16Array/index.html
The idea was to use the onchip block RAM with the memory segmented in 8
x 1Kbyte blocks.
The RAM is driven through a non blocking address and data bus switch in
such a way that
each processor can write into other CPU's memory but still have its own
shared local base
page memory.
Bus arbitration is prioritized so that the highest memory has the
highest priority access by the
local CPU. This means that any CPU writing a message to a given CPU's
base page memory
will have priority. CPU access arbitration is also prioritised based on
the position of the
messaging CPU's base page memory in the othe CPU's memory map.
The blocks are mapped differently in each CPU such that they all have
their own base page memory.
The CPU's have one interrupt which is used for message passing and is
triggered when one processor
writes into another processors base page memory.
I was going to use my VHDL 6809 clone core to control the processor
array from a separate
board but had a few problems working out the clock sharing between the
boards.
(I wanted to make them synchronous)
I've got so far with it having designed the CPU core, RAM switch and
most of the priority bus access
logic.... but sort of lost interest as I could see no real use for it,
and was getting a bit sick of CPU design.
I'm not sure what scale you are interested in designing on, what size
chips and how many.
My budget only supports simple 300K gate devices and free web pack software.
You might also consider what you can do with 2D and 3D cellular automata
designs.
John.
markus at reaaliaika.net wrote:
Recently, I started again thinking about massive-parallel processor,
which I last time designed in early 90's. You can get more information
from my web pages:
http://reaaliaika.net/showarea.php/procmem
Short description: It's a general purpose, programmable, fine-grained
massive-parallel processors, it's basically, but not purely a DFM.
Why to announce here? If you get interested about the idea, you could
help me in many ways. First of all, I'm more a programmer than a CPU
designer, so if you have any idea for my "Simple-Cell" or "Macro-Cell"
design, I'd be pleased. Second, you could point my browser to projects
somewhat similar to mine. And third, I'm of course very interested to
get some feedback of my project.
--
http://members.optushome.com.au/jekent
|
|||
|
Parallel Array Processor Project
by Unknown on Jul 14, 2004 |
Not available! | ||
|
Aloha!
The Raw project is here:
http://www.cag.lcs.mit.edu/raw/
--
Med vänlig hälsning, Yours
Joachim Strömbergson - Alltid i harmonisk svängning.
VP, Research & Development
----------------------------------------------------------------------
InformAsic AB / Hugo Grauers gata 5B / SE-411 33 GÖTEBORG / Sweden
Tel: +46 31 68 54 90 Fax: +46 31 68 54 91 Mobile: +46 733 75 97 02
E-mail: joachim.strombergson at informasic.com Home: www.informasic.com
----------------------------------------------------------------------
|
|||
|
Parallel Array Processor Project
by markus on Jul 14, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
One project you should check out is the Raw project. The Raw
architecture is very much what you have been thinking about: Lots of small processing elements connected on-die. They have produced real chips and have done quite a lot of work on the non-trivial aspect of programming the beast. Alright, I'll take a look on that. Unfortunately I wasn't able to open the link you gave in your following posting, but I'll use google to find the project. Thanks for the other links, too.
I took a look at your page, and unless I'm fooled by the
PovRay-images, you are thinking in terms if a 3D-array, no? No, you're not fooled - the fundamental approach is to use a 3D array, a "cube" of cells.
If you are I think you should try to keep that 3D-thingy shallow.
Eveb though state of the art technologies provides 10+ metal layers it still don't provide very much in terms of a third connectivity dimension. And, besides the functionality is still implemented at the bottom of the chip. I know this and I write something about it in the chapter "Cell Array Organization". I have no formal proof, but my intuition says that two "layers" (while using 3D model) is the absolute minimum to get the thing working - and fortunately it's quite easy to design those two layers with one transistor layer (i.e. using current IC processes). Of course, it's possible to use just one layer, but you have to have crossovers in it (shown in the last example there) - or special "crossover" instruction in the cell. This intuition comes from the fact, that the electronic designs can still be drawn to one sheet of paper and that 2-layer PCB can be used for implement almost anything, if just the ICs are provided in DIP packages... --- But besides of this, I'm not sure, if the 2D layout could ever give reasonable results for the cell array for two reasons - first, it can be so that one transistor layer is just not enough to carry enough cells to get real benefits of parallel processing, and second, it's possible that the software compiled to 2D array has too long data transmission paths to operate fast enough (without any hardware acceleration solutions). So, basically I'm designing for 3D world, but I keep continuously in mind, how to implement things with current technology. |
|||
|
Parallel Array Processor Project
by markus on Jul 14, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
I've implemented a very simple 16 bit microprocessor and I figure I
can fit 8 of them in the XC2S300e.
http://members.optushome.com.au/jekent/Micro16Array/index.html
I took a look of your design (I'll study it more closely later). We have one difference in fundamentals: in my model, processors can change only their own state (i.e. memory), they have read-only access to the states (memory) of the neighbor. I selected this approach as the base of the design to overcome the difficultiness in concurrent writes (i.e. multiport RAM cells).
I was going to use my VHDL 6809 clone core to control the processor
array from a separate board but had a few problems working out the clock sharing between the boards. Here's another difference in fundamentals: I'm trying to achieve a stand- alone architecture, with no need for controlling devices (others than a normal CPU have).
logic.... but sort of lost interest as I could see no real use for
it, and was getting a bit sick of CPU design. You said it ;-) One possible future of my project.
I'm not sure what scale you are interested in designing on, what
size chips and how many. Currently, I'm just scetching the fundamental needs for cells, which could be used to construct that processor "cube". I must say, that I'm a little bit sceptic, if the 2-layer "cube" would give anything new you haven't seen already. I place my hopes to future IC manufacturing technologies... :-) But there's a small hope, that some of the hardware implementation alternatives could really be a platform to implement a real, functional and useful processor (altought that probably requires a huge amount of gates; something like 20 million). In my dreams this kind of useful processor would be a "parallel co-processor" in a PCI board. To go further, if it's possible to get a Pentium-compatible pin layout and replace the old PC's processor with a parallel one, that would be much more interesting... But the way to go there is long.
My budget only supports simple 300K gate devices and free web pack
software. I'm not yet looking a physical implementation, software simulations are more than enough. But I could really benefit for a VHDL-models of cell implementations.
You might also consider what you can do with 2D and 3D cellular
automata designs. Yes, this was the "magic word" I'd forgot! Thanks, I'll go to the web to search more information. |
|||
|
Parallel Array Processor Project
by Unknown on Jul 15, 2004 |
Not available! | ||
|
Hi Markus,
markus at reaaliaika.net wrote:
I took a look of your design (I'll study it more closely later). We have
one difference in fundamentals: in my model, processors can change only their own state (i.e. memory), they have read-only access to the states (memory) of the neighbor. I selected this approach as the base of the design to overcome the difficultiness in concurrent writes (i.e. multiport RAM cells). With a cellular automata design you can get away with two port memory because you only have the processor and it's neighbour accessing shared memory.
Here's another difference in fundamentals: I'm trying to achieve a stand-
alone architecture, with no need for controlling devices (others than a normal CPU have). You need some mass storage, and usually this is localise to one of the CPUs. To keep the design symetrical I was going to use the 6809 to load and save code by using the dual port facility of the Xilinx Block RAM. There is no reason why the 6809 can't be on the same chip It was only a size constraint of the FPGA. Back in the early 90's when I was doing my masters my supervisor had a 16 Transputer array organised in a hyper cube (I think). They were running Helios on it as I recall with a PC host for file serving. They used a CSP style message passing system on th transputer.
Currently, I'm just scetching the fundamental needs for cells, which
could be used to
construct that processor "cube". I must say, that I'm
a little bit sceptic, if the 2-layer "cube" would give anything new you haven't seen already. I place my hopes to future IC manufacturing technologies... :-) I attended an FPGA conference in the UK back in 1997. There was a paper on 3D semiconductor design ... The problem as I understand it was to be able to pollish the surface of the chip such that it was level enough to grow another silicom layer on it. I had the opportunity earlier this year to speak with the Xilinx Fellow Bill Carter who said that they hard largely overcome the pollishing problem but presumably there are other reasons why you can't go vertical ...
You might also consider what you can do with 2D and 3D cellular
automata designs. Yes, this was the "magic word" I'd forgot! Thanks, I'll go to the web to search more information. |
|||
|
Parallel Array Processor Project
by markus on Jul 15, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
The Raw project is here:
http://www.cag.lcs.mit.edu/raw/
OK, I read the available information of RAW, Transit, iRAM and those. RAW is "regular" transputer -like architecture. The similarities between these architectures and mine is the connection network (just ot neighbors) and for the same reasons - this kind of network is highly scalable compared to any central-controlled networks. The difference between my project and these "transputer" -like architectures are the cell design. Both transputer and MIT RAW use quite regular CPUs as processing nodes. I'm trying to construct an independent cell, which have: - 1 instruction word memory (maybe 12 bits?) - 1 x 8-bit write-only memory element - N x 8-bit read-only memory (N = number of neighbors, possible values might be 4, 6 or 8) You might think, that my "macrocell" units bring the project closer to transputers, but it's not entirely true. "Macrocells" are there just to reduce transistor count by "simulating" the operation of multiple cells - thus many logic circuits can be shared, altought the speed drops because of sequential execution. Because cells are basically (but not purely) DFMs (Data Flow Machines), the "macrocells" are DFMs, too. I have already found DFM designs, but they mostly concentrate for implementing a - could we say - large scale DFM, with a pool of processors and common memory. Altought for these differences between my "macrocells" and those DFMs, I was able to refine my design using the information available on those. For programmers point of view, there's no semantical difference, if the processor hardware is constructed from single cells or macro-cells or with a hybrid model (using both macrocells and single cells in various combinations). It's possible to use even a heterogenous model, i.e. not all cells are able to perform all instructions - or the instruction completition time may vary. For example, single-cycle multiplication, which takes a lots of space, could only be performed in one cell, while others implement it with chained adding-and-shifting (taking several cycles). I also searched information about cellular automatas. I found something, but most of these systems are not aimed to produce a computational platform or to be used in physical world (only in computer simulations). I'll keep my eyes open for these. |
|||
|
Parallel Array Processor Project
by markus on Jul 15, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
[multiport memories]
With a cellular automata design you can get away with two port
memory because you only have the processor and it's neighbour accessing shared memory. Yes, true. I just try even simpler. Altought last night when I was waiting for sleep I realized, that there could be some use for cell operations, which could change the state of the neighbor. But I must refine my instruction set to see it... [stand-alones]
You need some mass storage, and usually this is localise to one of
the CPUs. To keep the design symetrical I was going to use the 6809 to load and save code by using the dual port facility of the Xilinx Block RAM. There is no reason why the 6809 can't be on the same chip. It was only a size constraint of the FPGA. Of course. Normally, when I'm scetching a virtual processor core, I left the code download issues (just like MMU's and such) out of the design at the first phase. But the concept I'm scetching now is different enough from my other designs, that I think it's important for me to keep in mind (and scetch), how to implement programs with the array to program the array. If I am ever going to make a prototype out of the design, I probably leave the programming issues last ones to try out. Before that, the array is programmed by an external controller (e.g. PC).
> a little bit sceptic, if the 2-layer "cube" would
> give anything new you > haven't seen already. I place my hopes to future IC > manufacturing > technologies... :-) > I attended an FPGA conference in the UK back in 1997. There was a paper on 3D semiconductor design ... I have always believed, that chip manufacturers "waste" lots of money to develop processes for stacked transistor layers. That would benefit regular processor (and memory) implementations too. [cellular automatas]
> Yes, this was the "magic word" I'd forgot! Thanks,
> I'll go to the web to > search more information. > I was interested in using Cellular Automata for image processing at one stage, but the FPGA chips were too small at the time to do any thing serious ... [...] In your description, you covered some of the problems I have with my design. Altought the whole project started to go around the problem of external memory bandwidth, AFAIK it still have a significant effect to the overall performance of the algorithms. And yes, it's quite a problem and waste of cells (and more importantly, waste of space), that only the few cells have something useful to do, while most of the cells just stay idling or moving data. |
|||
|
Parallel Array Processor Project
by Unknown on Jul 15, 2004 |
Not available! | ||
|
Aloha!
markus at reaaliaika.net wrote:
The RAW processing element is quite simplistic. But, my recommendation at
looking at Raw for inspiration was to see a research project that:
(A) Have developed massive PE-arrays on chip.
(B) Have worked a lot on the SW-aspect. Something I think you will consider
quite a bit.
There are others too. And mabye for you SIMD-like systems with small PEs are
more appropriate. MITs Transit project (which I mentioned too) contains lots
of interesting tidbits on this, for example:
http://www.cs.caltech.edu/research/ic/transit/tn95/tn95.html
AFAIK Transit is dead and a few years old, but still interesting to check out.
BTW: I found this posting at fpgacpu.org interesting:
http://www.fpgacpu.org/usenet/array.html
--
Med vänlig hälsning, Yours
Joachim Strömbergson - Alltid i harmonisk svängning.
VP, Research & Development
----------------------------------------------------------------------
InformAsic AB / Hugo Grauers gata 5B / SE-411 33 GÖTEBORG / Sweden
Tel: +46 31 68 54 90 Fax: +46 31 68 54 91 Mobile: +46 733 75 97 02
E-mail: joachim.strombergson at informasic.com Home: www.informasic.com
----------------------------------------------------------------------
The Raw project is here:
http://www.cag.lcs.mit.edu/raw/
OK, I read the available information of RAW, Transit, iRAM and those. RAW is "regular" transputer -like architecture. The similarities between these architectures and mine is the connection network (just ot neighbors) and for the same reasons - this kind of network is highly scalable compared to any central-controlled networks. The difference between my project and these "transputer" -like architectures are the cell design. Both transputer and MIT RAW use quite regular CPUs as processing nodes. I'm trying to construct an independent cell, which have: |
|||
|
Parallel Array Processor Project
by markus on Jul 15, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
> OK, I read the available information of RAW, Transit, iRAM and
> those. Offtopic: I meant, that I already have readed the basics of those projects. I'll of course continuosly search more information of those. ---
But, my recommendation at
looking at Raw for inspiration was to see a research project that: (A) Have developed massive PE-arrays on chip. (B) Have worked a lot on the SW-aspect. Something I think you will consider quite a bit. Yep, sure, I readed all the material I quickly found and I'm looking forward to get more information. But unfortunately at the moment the RAW material hasn't had anything I haven't already know and to be honest, the fundamental approach difference between RAW and my project could mean, that I can't find anything very useful from the materials. But I'll keep reading that material. If you think a RAW-based computer or a transputer, where you don't compile programs to nodes but use fixed software modules inside of those and design the software using only that fixed set of cell code, you're designing more or less the same thing as I do.
There are others too.
[...]
AFAIK Transit is dead and a few years old, but still interesting to
check out. I already did that.
BTW: I found this posting at fpgacpu.org interesting:
http://www.fpgacpu.org/usenet/array.html
Thanks. I also earlier found a DFM design from here (OpenCores), in fact that led me to announce my project here :-) |
|||
|
Parallel Array Processor Project
by Unknown on Aug 14, 2004 |
Not available! | ||
|
Le Jeudi 15 Juillet 2004 11:33, Joachim Strömbergson a écrit :
(A) Have developed massive PE-arrays on chip.
(B) Have worked a lot on the SW-aspect. Something I think you will consider quite a bit. This can't be a new architecture target for HDL ? I imagine that it could possible to exchange macrocell with tiny cpu (8 or 16 bits ?). If some connection could be change (like chaining alu of different cpu), maybe a lot of power could be used for code with a lot of complexity in the control part. Nicolas Boulay |
|||
|
Parallel Array Processor Project
by Unknown on Aug 15, 2004 |
Not available! | ||
|
----- Original Message -----
From: Nicolas Boulaynico at s...>
To:
Date: Sat Aug 14 00:05:53 CEST 2004
Subject: [oc] Parallel Array Processor Project
Le Jeudi 15 Juillet 2004 11:33, Joachim Strömbergson a
écrit :
> (A) Have developed massive PE-arrays on chip.
> (B) Have worked a lot on the SW-aspect. Something I think you will consider
> quite a bit.
Is there some technical material available of the work thats already done? Is there already a real implementation done?
This can't be a new architecture target for HDL ?
I imagine that it could possible to exchange macrocell with tiny cpu (8 or 16 bits ?). If some connection could be change (like chaining alu of different cpu), maybe a lot of power could be used for code with a lot of complexity in the control part. Nicolas Boulay P. Pelgrims |
|||
|
Parallel Array Processor Project
by markus on Aug 16, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
I'm not sure, if you're heading this question to me or to Joachim, but I'll
answer anyway.
> Le Jeudi 15 Juillet 2004 11:33, Joachim Strömbergson a
For MIT RAW, yes there are. They have already made it on silicon.
For my project, from the HW point of view, there are no HW
specifications, just thoughts. I'm not a HW specialist and not very
familiar with VHDL and such things.
I have a software simulator (VM, Virtual Machine, written with Python)
of the model and I'm writing a HLL compiler for it. (Almost) all the
existing material can be found from my website
(http://reaaliaika.net/showarea.php/procmem).
Nicolas Boulay:
> écrit :
> (A) Have developed massive PE-arrays on chip.
> (B) Have worked a lot on the SW-aspect. Something I think > you will consider quite a bit. Is there some technical material available of the work thats already done? Is there already a real implementation done?
> I imagine that it could possible to exchange macrocell with
> tiny cpu (8 or 16 bits ?). Sure. I have already thought of having tiny 8-bit microcode programmed cells in the array, but of course there's lots more possibilities for constructing the chip. Many people have suggested, that the cell should preferaly be 16-bit or wider, but I still think, that it's better to design the software for 8-bit cells and thus increase the number of execution units.
> If some connection could be change (like chaining alu
> of different cpu), maybe a lot of power could be used for code > with a lot of complexity in the control part. That's possible too. I already thought, that there could be synchronization "bypass" in the one-arg cells, so that you can directly join several cells together. The compiler could decide the bypassing, there's no need for complex HW for that (at least currently I think so). For two or more arg cells, I think that the by-passing won't work. The args can enter the cell in different times, so only in rare cases you can be sure, that all the args are ready for processing. But in some cases, yes, it should be possible. |
|||
|
Parallel Array Processor Project
by bporcella on Aug 16, 2004 |
bporcella
Posts: 22 Joined: Jan 16, 2004 Last seen: Oct 2, 2007 |
||
|
All:
There Is a complete body of knowledge relative to SIMD processing.
http://www.cse.ogi.edu/~strom/papers/cnaps.pdf
Is a web site that describes a commercial architecture ( I managed Hardware Engineering there for a short period.)
Motorola also made an experimental chip called VeComp related to the work of this company (Adaptive Solutions).
You certainly should understand the MMX extensions to the Pentium as a preliminary to building the kind of core you are
talking about. There may be ways to leverage some of the software developed for MMX -- there may also be ways to
leverage the CNAPS software.
A word of caution. The application space for these machines is high performance digital filtering ( neural networks
have not proved
commercially viable). In this space throughput is critical. You must consider back-end issues ( at the leading
edge ) if you plan for
anything that could be actually competitive -- MACS/sec is the figure of merit -- beating the DSP's ( and the
Pentium MMX for that matter)
is not easy.
bj Porcella
http://pages.sbcglobal.net/bporcella/
----- Original Message -----
From: patrick.pelgrims at pandora.be>
To: cores at opencores.org>
Sent: Sunday, August 15, 2004 11:15 AM
Subject: Re: [oc] Parallel Array Processor Project
----- Original Message -----
From: Nicolas Boulaynico at s...>
To:
Date: Sat Aug 14 00:05:53 CEST 2004
Subject: [oc] Parallel Array Processor Project
> Le Jeudi 15 Juillet 2004 11:33, Joachim Strömbergson a
> écrit :
> (A) Have developed massive PE-arrays on chip.
> (B) Have worked a lot on the SW-aspect. Something I think you > will consider
> quite a bit.
Is there some technical material available of the work thats already done? Is there already a real implementation done?
> This can't be a new architecture target for HDL ?
> I imagine that it could possible to exchange macrocell with tiny > cpu (8 or 16 > bits ?). If some connection could be change (like chaining alu of > different > cpu), maybe a lot of power could be used for code with a lot of > complexity in > the control part. > Nicolas Boulay P. Pelgrims
>
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
> |
|||

1/5 
