|
Parallel Array Processor Project
by Unknown on Aug 17, 2004 |
Not available! | ||
|
Aloha!
markus at reaaliaika.net wrote:
Have anyone programmed DSPs with C (or other higher level language)?
In my other project, a DSP-based guitar effect box, I'm programming Motorola DSP56303. It's very hard to try to express variable allocation from different kinds of memories (internal/external, X/Y/P/L) and it's very hard to write a good C compiler for these. And trying to write an OS: very unpleasant job, indeed. Yes I have. I would say that quite a lot (most?) DSP programming is done in C, albeit with more or less lots of pragmas and calls to (inlined) library functions sprinkled whithin the code. DSP codes are much more regular with the bulk of the execution located in specific kernels. The kernels however might be written in optimized assembler for the specific architecture. Programming DSPs can be quite a challenge, both due to non-orthogonal instruction sets and (for example TIs 6000 series) VLIW and multiple core architectures. TI, AMD, AD etc spends lots of money developing good compilers for their architectures.
There were one idea I haven't even think about - constructing a stack-
based PSM. The author has rejected this because it's not very straightforward to program, but that doesn't matter in this project. Stack based cores for embedded multiprocessor applications are a very fine idea. There have been some work done on this, but I have few references for you. One thing to consider is how to implement/include the communication semantics. You could do this by adding a communication co-processor that extends the instruction set with port semantics. Doing this pushes/exposes the syncronization to the user and removes lots of burden for the HW implementation.
The compiler could be easily modified to output reverse polish program
for the cell. In fact, it's easier to do this than make the compiler to output programs for register-based PSMs. You mean you have a pcode generator? ;-)
The stack-based PSM would have a very dense instruction set and it
Yep!
--
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
----------------------------------------------------------------------
would be versatile with small efforts. |
|||
|
Parallel Array Processor Project
by nico on Aug 17, 2004 |
nico
Posts: 21 Joined: Jun 21, 2008 Last seen: May 11, 2009 |
||
|
The stack-based PSM would have a very dense instruction set and it
If you look at stack based cpu. You could maybe look at forth chip. I have
heard about "F40" or somethink linke that. It's a self timed assynchronous
chip. It was running at a 2 ns cycle on a 0.5 µm technology (but need 4
cycles for an add). It count around ~1000 transistors designed by hand. It
was made with a french public lab like Tima or INRIA but i don't remember
precisly.
Maybe that could be a nice starting point if you know how to programm such
array :)
I find this about FORTH cpu but is not the projet i had speak about :
http://pet.dhs.org/~ecl/theproject/theproject.html
and this one :
http://www.jwdt.com/~paysan/b16.html
would be versatile with small efforts. Certainly I have think about this more closely. |
|||
|
Parallel Array Processor Project
by nico on Aug 17, 2004 |
nico
Posts: 21 Joined: Jun 21, 2008 Last seen: May 11, 2009 |
||
|
i found the forth chip :)
http://www.ultratechnology.com/f21.html
|
|||
|
Parallel Array Processor Project
by markus on Aug 17, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
i found the forth chip :)
http://www.ultratechnology.com/f21.html
Thanks! I already took a quick look. The F21 could be striped down more, when using in the array. There's no need for subroutines, jumps and conditionals are enough. Thus, there's no need for PC stack, either. The data stack could be decreased, too. What increases the complexity, is the neighborhood synchronization - it could be HW or SW based, which ever seems to be better. I would prefer software-based, because: * You would implement only that synchronization mode, which you're using in the cell (with HW implementation, you'd need to implement all modes to all cells) * It could give you possibility to use very complex synchronizations. But I'll look it closer and make some scetchs. |
|||
|
Parallel Array Processor Project
by markus on Aug 17, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
[Forth Chip]
It was running at a 2 ns cycle on a 0.5 µm technology
(but need 4 cycles for an add). The speed of the single operations is not a problem. If my current thoughts are right, the parallelism easily overcomes that in the average cases.
It count around ~1000 transistors designed by hand.
Sounds faschinating! |
|||
|
Parallel Array Processor Project
by markus on Aug 17, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
[Stack-based cells]
Well, I didn't quite follow this... Most parsers/compilers (including most
of my compiler constructions and the current PM HLL compiler) convert
the mixed prefix/infix notation (function calls, infix operators) to a
postfix, stack-based code. Then, for conventional processors, a register
allocation is done and the compiled code is emitted.
Furthermore, most of the virtual machines (Java bytecode VM, Python
VM) are stack-based, because of the easiness of the implementation of
both VM and the compiler for it.
---
[DSPs and C and uniform memory addresssing/accessing paradigm]
One thing to consider is how to implement/include the
communication semantics. You could do this by adding a communication co-processor that extends the instruction set with port semantics. Doing this pushes/exposes the syncronization to the user and removes lots of burden for the HW implementation. I have already been comparing HW-based and SW-based synchronization models in my head. The SW-based is more fascinating for me, because I'm much more a programmer than a HW designer and because it's relatively easy to include that to the assembler/HLL compiler.
> The compiler could be easily modified to output reverse polish
> program for the cell. In fact, it's easier to do this than make > the compiler to output programs for register-based PSMs. You mean you have a pcode generator? ;-)
> Have anyone programmed DSPs with C (or other higher level
> language)? [...]
Yes I have. I would say that quite a lot (most?) DSP programming is
done in C, albeit with more or less lots of pragmas and calls to (inlined) library functions sprinkled whithin the code. I know - what a mess :-( But, the assembler programming is much harder for larger applications than programming tweaked C code... :-/
Programming DSPs can be quite a challenge, both due to
non-orthogonal instruction sets and (for example TIs 6000 series) VLIW and multiple core architectures. You said it :-)
TI, AMD, AD etc spends lots of money developing good compilers
Yes, and the results are quite good, altought the language itself does
everything to make it harder...
for their architectures. |
|||
|
Parallel Array Processor Project
by Unknown on Aug 17, 2004 |
Not available! | ||
|
Aloha!
nico at seul.org wrote:
If you look at stack based cpu. You could maybe look at forth chip. I have
There has been a previous thread about stack processors on OC. These links
were mentioned in that thread:
(Good list of basically all known chips and cores)
http://www.ultratechnology.com/chips.htm
JOP - The Java Optimized Processor; a stack architecture
http://www.jopdesign.com/
And it's hard to talk about stack processors without mentioning Koopmans
seminal book on the subject - "Stack Computers: the new wave":
http://www.ece.cmu.edu/~koopman/stack_computers/index.html
Finally Chuck Moore is the old man to know about when it comes to stack
processors:
http://www.colorforth.com/
--
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
----------------------------------------------------------------------
heard about "F40" or somethink linke that. It's a self timed assynchronous chip. It was running at a 2 ns cycle on a 0.5 µm technology (but need 4 cycles for an add). It count around ~1000 transistors designed by hand. It was made with a french public lab like Tima or INRIA but i don't remember precisly. |
|||
|
Parallel Array Processor Project
by Unknown on Aug 17, 2004 |
Not available! | ||
|
Aloha!
markus at reaaliaika.net wrote:
Thanks! I already took a quick look. The F21 could be striped down
more, when using in the array. There's no need for subroutines, jumps and conditionals are enough. Thus, there's no need for PC stack, either. The data stack could be decreased, too. Remember to strip you compiler if you kick out subroutines. They really don't cost that much in stack machines.
What increases the complexity, is the neighborhood synchronization - it
Did you see my comments on the PORT semantics for stack machines?
What you probably want are three primitives:
(1) An IN port directive. Read from a shared memory via the port system. The
address could be implicitlt taken as the value on TOP on the data stack.
(2) An OUT port directive. Write to a shared memory via the port system. The
address and value could be implicitly taken as TOP and TOP+1 on the data stack.
(3) An atomic test and set ("TST" perhaps), a semaphore. Either a binary or
multi value semaphore where the set value is TOP.
The HW implementation for (1) and (2) would need to consider write scheduling
and/or memory segmentation (dedicated write areas per PE), the latter would
directly affect the programming model.
(3) can be quite simply implemented by restricting the area where TST can be
performed. I.e. they are located in a separate area from the shared memory.
--
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
----------------------------------------------------------------------
could be HW or SW based, which ever seems to be better. I would prefer software-based, because: * You would implement only that synchronization mode, which you're using in the cell (with HW implementation, you'd need to implement all modes to all cells) * It could give you possibility to use very complex synchronizations. |
|||
|
Parallel Array Processor Project
by Unknown on Aug 17, 2004 |
Not available! | ||
|
Aloha!
markus at reaaliaika.net wrote:
Which is called p-code after the UCSD p-code machine. Used heavily in the
early compiler research and was related to Pascal. See:
http://en.wikipedia.org/wiki/P-Code_machine
http://en.wikipedia.org/wiki/Pascal_programming_language
http://www.fact-index.com/p/p_/p_code_machine.html
Normally though you use the p-code to build trace trees and then optimize on
them, perform register allocation, instruction selection, new optimization
pass etc etc before generating code for the non-stack-processor. Unless the
target is a stack machine like Python or Java byte code etc.
You mean you have a pcode generator? ;-)
Well, I didn't quite follow this... Most parsers/compilers (including most of my compiler constructions and the current PM HLL compiler) convert the mixed prefix/infix notation (function calls, infix operators) to a postfix, stack-based code. Then, for conventional processors, a register allocation is done and the compiled code is emitted.
I know - what a mess :-( But, the assembler programming is much
That's why people buy a faster DSP instead and take the overhead [1], esp for
first, second product releases. Converting code to assembler and other
optimizations are saved for nmanufacturing cost reduction after the product
have successfully been released onto the market.
[1] And if you look at TI 6000, AD TigerSHARC etc, most programmers have a
hard time beating the performance reached by the compilers by hand writing
asssembler. Few people are able to easily grok multiple executin, instruction
pairing. This is especially true if the architecture is non-orthogonal which
introduces lots of rules for instruction scheduling, register allocation,
instruction pairing, pipeline allocation etc etc.
--
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
----------------------------------------------------------------------
harder for larger applications than programming tweaked C code... :-/ |
|||
|
Parallel Array Processor Project
by markus on Aug 17, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
[P-code generator]
>You mean you have a pcode generator? ;-)
> > Well, I didn't quite follow this... Most parsers/compilers [...] > convert the mixed prefix/infix notation (function calls, infix > operators) to a postfix, stack-based code. Which is called p-code after the UCSD p-code machine. I readed the description, and in broader sense, yes, maybe, I have a some kind of P-code generator - or Forth-code generator. Hmmh, I have hard times to trying to classify the current compiler backend. The front-end is definitely a stack-based, recursive system. It's derived from compiler for conventional processors, but because the array has no stacks or procedure calls, the resulting code is not stack- based. But because of the inheritance, it's easily modified to do so.
Normally though you use the p-code to build trace trees and then
optimize on them [...] for the non-stack-processor. Yes (altought I normally use the term "evaluation trees"). [Striping a Forth processor]
Remember to strip you compiler if you kick out subroutines.
They really don't cost that much in stack machines. What would the cell call for? I can't see at the moment much use of subroutines, because the stack engine is only used to implement cell instructions (which would otherwise require HW). The array itself doesn't have subroutines. For example, one cell could add the values from north and south cells. The code for the cell would be: push north push south add out ..where: "out" "result = pop()"
> What increases the complexity, is the neighborhood
> synchronization - it could be HW or SW based [...] Did you see my comments on the PORT semantics for stack machines? Yes, I saw and I'm familiar with the concept (Forth uses somewhat similar thing for memory addressing). I have a something like that in my simple single-bus cell processor design: http://reaaliaika.net/showarea.php/procmem/schw_connection Some more words about the sync'ing with software based solutions: http://reaaliaika.net/showarea.php/procmem/schw_sync [DSP programming]
[1] And if you look at TI 6000, AD TigerSHARC etc, most programmers
have a hard time beating the performance reached by the compilers by hand writing asssembler. Yes, and speak about the difficultiness of writing the compiler. For that DSP56303, I realized, that I have to have a quite complete processor model inside an assembler compiler to produce good, pipeline stall-less code. |
|||
|
Parallel Array Processor Project
by markus on Aug 22, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
Amongst a huge restructuration, there's now a small PDF file, which
tries to collect the basic things of the project:
http://reaaliaika.net/download/procmem.000.sxw.pdf
|
|||
|
Parallel Array Processor Project
by Unknown on Aug 23, 2004 |
Not available! | ||
|
At 15:54 2004-08-22 +0200, markus at reaaliaika.net wrote:
Amongst a huge restructuration, there's now a small PDF file, which
tries to collect the basic things of the project:
http://reaaliaika.net/download/procmem.000.sxw.pdf
Hi Markus, I've followed this thread for a while. Your ideas sound interesting I think, but note that I'm not any kind of expert on processor architecture. I am however a hardware developer, and as such, one thing strikes me when I read about your ideas; Isn't it so that your architecture actually IS the architecture of an FPGA? Or very much like it anyway, might be that the FPGA architectures have even simpler processing cells than the ones you have in mind? But they do have an instruction register (the LUT programming), a result register (output flip-flops), and read connections to their neighbours (the routing, even though this is more complicated in the FPGA case). You then have to excuse my ignorance because I have not had time to in detail try to understand your ideas for programming this processor, but from what I've read in this thread I got the impression that you're thinking in the way of a programming language with lots of parallellism. Sounds quite a lot like hardware design, on RTL or somewhat higher level, to me... The RTL code can be seen as a "program" for an FPGA, the compiler then being the synthesis and place-and-route tools. Interesting also that you call it a "processing memory", this name also fits quite good for an (SRAM-based) FPGA... Which is basically a memory with some processing facilities added (the people developing the FPGAs might not agree completely with this description... ;-) Do you think that this interpretation of your ideas makes any sense? Maybe the fact that the processing cells you're thinking of are much more advanced than the current FPGA macrocells really adds a new dimension with regards to how the processor is programmed and so on? Anyway, if my comparison stands, you probably can take some inspiration from hardware design and the associated tools. And maybe also the other way around in the future... (Take a look at e.g. "handel-C" from Celoxica, which is C with extensions for parallellism. They have a compiler for it that takes it all the way to hardware. They claim it is a very efficient way to design hardware. I don't know about that though... :) Good luck with your project, best regards Gunnar Dahlgren ASIC designer @ Axis Communications AB, Sweden
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
|
|||
|
Parallel Array Processor Project
by markus on Aug 23, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
I am however a hardware developer, and as such, one thing strikes
me when I read about your ideas; Isn't it so that your architecture actually IS the architecture of an FPGA? Or very much like it anyway [...] You're absolutely right here! Unconsciously I have thought that the PM and FPGA have many things in common (for example, I have studied using the VHDL as a programming language and I have borrowed many ideas found from FPGAs to the possible physical implementations), but I haven't thought this consciously. Now I'm doing this first time, when writing this, so you probably understand some "fuzziness" in the thougts... :-)
[...] might be that the FPGA architectures have even
simpler processing cells than the ones you have in mind? That's true. What are the differences of the FPGA cell and the PM cell? In ground level, the program written for PM could be compiled to the FPGA, as well as for conventional processor. That's nothing new, I think, every program can be implemented either with hardware or with software or with a some kind of combination of both. --- I could quickly think these differences: * The PM design should allow you to write programs for writing programs (e.g. compilers, text editors and so on). I'm not sure, if you could write a VHDL/FPGA compiler to FPGA? BTW, one test for analyzing the completeness of the programming languages is, that is it possible to write a program to output that program with it? I don't know, if the VHDL passes that test? * Furthermore, PM design should allow a program to "load" another program inside the array. If I recall correctly, there has been some attempts for creating "self-reconfigurable" FPGAs, too? But because of the application area of the FPGA, I think that those oddities are not very popular...? * The PM chip should be able to execute larger programs that can fit inside of the chip, by using a virtual memory. Normally, you don't have this kind of possibilities in the FPGA, am I right? I think that the ground reason for this is, that the PM cell is synchronous. You can stop it for processing, read the state of it, store it and later, restore the state from the memory and continue processing. --- But PM and FPGA share many things, like inherent parallelism and cellular structure. Some people could say, that PM is one implementation of so called reconfigurable computing - I'd say, that it's just a massively parallel processor.
But they do have an instruction register
(the LUT programming), a result register (output flip-flops), and read connections to their neighbours (the routing, even though this is more complicated in the FPGA case). I borrowed the idea of the "transmission gateway" (accessing distant parts of the array) from the FPGA world :-)
but from what I've read in this thread I got the impression that
you're thinking in the way of a programming language with lots of parallellism. Yes, you're right here. My approach comes from the programming world and I have just basic knowledge (which is not too much) of the hardware desing world.
Sounds quite a lot like hardware design, on RTL or somewhat higher
level, to me... The RTL code can be seen as a "program" for an FPGA, the compiler then being the synthesis and place-and-route tools. Yes, and I think, that the hardware designers would easier understand the programming paradigms of the PM than regular software designers. And, I have borrowed the idea of "cell mapper" from the FPGA world - that is, the PM needs a program for mapping the virtual assembler code to physical cells just like VHDL does.
Interesting also that you call it a "processing memory",
this name also fits quite good for an (SRAM-based) FPGA... Which is basically a memory with some processing facilities added (the people developing the FPGAs might not agree completely with this description... ;-) :-) But yes, PM and SRAM-based FPGAs are close to each other. And yes, PIM (Processing In Memory) architectures are close to these, too. The name comes to very obvious thing: I was designing a memory, which processes the data by itself.
Do you think that this interpretation of your ideas makes any
sense? Perfectly!
Maybe the fact that the processing cells you're thinking of are
much more advanced than the current FPGA macrocells really adds a new dimension with regards to how the processor is programmed and so on? Surely, the cells are more complex than the cells in the FPGA. About the new dimension of processor programming, I'm not sure - my primary goal is to get the PM to be programmable, without any extra pain (which it is at the moment).
Anyway, if my comparison stands, you probably can take some
inspiration from hardware design and the associated tools. I'll do that.
(Take a look at e.g. "handel-C" from Celoxica, which is C
with extensions for parallellism. They have a compiler for it that takes it all the way to hardware. They claim it is a very efficient way to design hardware. I don't know about that though... :) I'll do that, altought at the moment I started the design of the HLL once again from the grounds and decided to leave the world of the existing languages behind... :-) |
|||
|
Parallel Array Processor Project
by nico on Aug 23, 2004 |
nico
Posts: 21 Joined: Jun 21, 2008 Last seen: May 11, 2009 |
||
|
I am however a hardware developer, and as such, one thing strikes
me when I read about your ideas; Isn't it so that your architecture actually IS the architecture of an FPGA? Or very much like it anyway [...] You're absolutely right here! Unconsciously I have thought that the PM and FPGA have many things in common (for example, I have studied using the VHDL as a programming language and I have borrowed many ideas found from FPGAs to the possible physical implementations), but I haven't thought this consciously. Now I'm doing this first time, when writing this, so you probably understand some "fuzziness" in the thougts... :-)
[...] might be that the FPGA architectures have even
simpler processing cells than the ones you have in mind? That's true. What are the differences of the FPGA cell and the PM cell? In ground level, the program written for PM could be compiled to the FPGA, as well as for conventional processor. That's nothing new, I think, every program can be implemented either with hardware or with software or with a some kind of combination of both. --- I could quickly think these differences: * The PM design should allow you to write programs for writing programs (e.g. compilers, text editors and so on). I'm not sure, if you could write a VHDL/FPGA compiler to FPGA? It's theorically possible. But the design will be udge. But it's much easier, to put a LEON or an openrisc in the FPGA and then used C ;D
BTW, one test for analyzing the completeness of the programming
languages is, that is it possible to write a program to output that program with it? I don't know, if the VHDL passes that test? That will be hard but i don't see why this could impossible. * Furthermore, PM design should allow a program to "load" another program inside the array. If I recall correctly, there has been some attempts for creating "self-reconfigurable" FPGAs, too? But because of the application area of the FPGA, I think that those oddities are not very popular...? Most FPGA are SRAM based. So you "just" need the access to the SRAM buses. A compagny have sell a fpga with high-bandwith configuration bus, much faster than the usual serial link. It could also be reprogrammed partialy. This is not common because nobody find an application for it. * The PM chip should be able to execute larger programs that can fit inside of the chip, by using a virtual memory. Normally, you don't have this kind of possibilities in the FPGA, am I right? virtual memory are juste a means to "remap" real memory. It don't think it's the easiest way to spread a lot of tiny memory bloc. You could always programm the use of an external memory chip. I think that the ground reason for this is, that the PM cell is synchronous. You can stop it for processing, read the state of it, store it and later, restore the state from the memory and continue processing.
From the point of view of the system, an FPGA cell could be much more
synchronous than a unpredictive cpu. Beside that, i don't think it possible for the humain brain to track the state of each individual cpu in a 128 cpus array.
---
But PM and FPGA share many things, like inherent parallelism and cellular structure. Some people could say, that PM is one implementation of so called reconfigurable computing - I'd say, that it's just a massively parallel processor.
But they do have an instruction register
(the LUT programming), a result register (output flip-flops), and read connections to their neighbours (the routing, even though this is more complicated in the FPGA case). I borrowed the idea of the "transmission gateway" (accessing distant parts of the array) from the FPGA world :-) You could also look at the concept of "LAN on chip". This use message passing instead of buses. Message passing could be pipeline very easly. Buses could not, because of the semantic of the "read".
but from what I've read in this thread I got the impression that
you're thinking in the way of a programming language with lots of parallellism. Yes, you're right here. My approach comes from the programming world and I have just basic knowledge (which is not too much) of the hardware desing world.
Sounds quite a lot like hardware design, on RTL or somewhat higher
level, to me... The RTL code can be seen as a "program" for an FPGA, the compiler then being the synthesis and place-and-route tools. Yes, and I think, that the hardware designers would easier understand the programming paradigms of the PM than regular software designers. And, I have borrowed the idea of "cell mapper" from the FPGA world - that is, the PM needs a program for mapping the virtual assembler code to physical cells just like VHDL does. I imagine that a compiled programme is a tiny code that is loaded in the program memory of each cpu. To look like a "usual" cpu, it must be easly change. But it will be a hard task from the HW point of view.
Interesting also that you call it a "processing memory",
this name also fits quite good for an (SRAM-based) FPGA... Which is basically a memory with some processing facilities added (the people developing the FPGAs might not agree completely with this description... ;-) :-) But yes, PM and SRAM-based FPGAs are close to each other. And yes, PIM (Processing In Memory) architectures are close to these, too. The name comes to very obvious thing: I was designing a memory, which processes the data by itself.
Do you think that this interpretation of your ideas makes any
sense? Perfectly!
Maybe the fact that the processing cells you're thinking of are
much more advanced than the current FPGA macrocells really adds a new dimension with regards to how the processor is programmed and so on? Surely, the cells are more complex than the cells in the FPGA. About the new dimension of processor programming, I'm not sure - my primary goal is to get the PM to be programmable, without any extra pain (which it is at the moment).
Anyway, if my comparison stands, you probably can take some
inspiration from hardware design and the associated tools. I'll do that.
(Take a look at e.g. "handel-C" from Celoxica, which is C
I'll do that, altought at the moment I started the design of the HLL once
again from the grounds and decided to leave the world of the existing
languages behind... :-)
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
with extensions for parallellism. They have a compiler for it that takes it all the way to hardware. They claim it is a very efficient way to design hardware. I don't know about that though... :) |
|||
|
Parallel Array Processor Project
by markus on Aug 23, 2004 |
markus
Posts: 32 Joined: Dec 9, 2002 Last seen: Apr 30, 2013 |
||
|
Gunnar Dahlgren:
Isn't it so that your architecture actually IS the architecture
I added the comment with my reply to my web pages (feedback
section), because it just brought a whole new world in to my mind...
I also thought the issue a little further and made this addition:
"What really is the difference between the PM and the FPGA? I must
think more about this, because it could reveal some extraordinary
possibilities for the PM.
One thing is sure; the FPGA has been designed to process electronical
signals. The PM has been designed to process abstract signals - data.
PM is like a FPGA, not operating in the physical world, but in the
abstract, virtual data world. Does it make any sense?"
---
Altogether, there's new thoughts about the HLL and esp the "HLL Crisis":
http://reaaliaika.net/showarea.php/procmem/hll_design/crisis
of an FPGA? Or very much like it anyway [...] |
|||




