[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [f-cpu] F-CPU architecture...
Moin!
Tobias Bergmann wrote:
Oh I forgot to mention: A collegue of mine is writing a OS tool for
circuit simulation, synthesis, ATPG, fault sim, ...
It's called signs:
http://www.iti.uni-stuttgart.de/~bartscgr/signs/wiki/index.php/Main_Page
Already noticed that on freshmeat.net :)
But I didn't look at it yet.
[...]
How large would the effort be to add SMT to the FC0 core? I'm thinking
of approx. 3-fold SMT.
Too high, IMHO. In particular, the required changes to the register set
and crossbar would be real speed killers.
I recently had an idea for light-weight parallel execution - let's call
it "threadlets". By adding explicit fork/join instructions, an
application could split itself into threadlets if it sees fit. Of course
careful programming would be required because threadlets share the same
register set.
The basic idea is that there is a variant of the jump instruction (with
two arguments), called "fork":
fork r2, r1
That will fork a threadlet starting at address r2 and return some kind
of threadlet "ID" in r1. Now both the main program and the threadlet can
work independently. When the threadlet is done, it will execute a
"return from threadlet" instruction. The main program can use the "join"
instruction
join r1
to wait for termination of a particular threadlet, or
join r0
to wait for all of them. To ease implementation, only the main program
will be allowed to fork threadlets or execute special instructions like
syscall or get/put.
Note that the core is not required to process threadlets in parallel at
all. If support for parallel execution is missing, threadlets will be
executed sequentially, in any order (or lack of order, as you like it).
In the most simple implementation, the "fork" instruction would turn
into a subroutine call (that is, "jump r2, r1"), and "join" would be a
no-op.
On the other hand, a core may execute as many threadlets in parallel as
it can. All we need to provide is an IF&D unit that supports multiple
instruction streams.
--
Michael "Tired" Riepe <michael@xxxxxxxx>
X-Tired: Each morning I get up I die a little
*************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxx with
unsubscribe f-cpu in the body. http://f-cpu.seul.org/