[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [oc] Beyond Transmeta...
> What I ment was - how many instructions and cycles do you need to calculate
> all 32 bits of e.
For e alone, it would take 124 instructions... the amount of cycles it takes
depends on the number of 1bit processors. 1 processor is 124 cycles, 4
processors is 32 cycles. In this case for 1 add you don't need anything
higher then 4 processors. Of course this depends on the how the network is
setup to do the add.
> Yes... I just remembered - this could be a problem since number of
> connections will
> be probably limited...
Yeah, I think 2 output connections may be the limit, but having 2 as a limit
means you can link another one to it and then have that one with 2, making it
3., and you can keep doing this until you get the amount of connections as
needed, but this eats clocks though.
> I think that routing is major problem for your
> design.
I agree, I'm still not sure how it can be done and still have self
modification. I'm trying to think of another way of doing self modification,
I believe neural networks use something called back propagation, I'm going to
have to study some of that. A self modifying network would seem to work best
with at least a backwards network to alter it. hmm.
> However I would recomend some mixture of or2k network and somesort message
> passing for longer distances (like in plastic cell arrays).
Message passing? Hmmm, would this increase the amount of work the 1bit
processor does, or do you think a seperate component does the routing and
message passing?
> I don't see a problem here if routing would be enough general. But even if
> not
> nets can be optimized pretty good, shown in or2k example. Speed loss
> in 3x3 or2k matrix because of connections inside basic block is just around
> 5%.
hmmm, I wish I could pretend to know what you mean but I am at a loss.
> You can surely use function like use normal instructions. But you cannot
> gain
> parallelity this way.
Thats right, but you reduce network redundancy and decrease memory usage.
This is so that on a system with limited memory it creates more internal
processing networks, if you are really limited by memory you would have only
one processing network (working just like a CPU) that does everything,
general purpose.
On the other hand if you have a lot of memory and processors, you can
increase the network size and use more processing units, making it more
parallel, all the way up until the application is nothing but a big
processing network itself.
> There is another thing I am not sure I understand - how would you know when
> certain network finishes its work?
> You cannot know that from result itself unless it changes, but you don't
> know if
> it ever will. So when may you use it to send it to next network?
Well, it depends on how the network is configured.
If it is configured to work like a CPU, then it will try to emulate what a
processor does, either through a timing network that consumes clocks and is
setup to alter a bit when the estimated amount of time to do it goes by, each
type of CPU instruction could have its own kind of timing network. This would
eat up clock cycles though, and bits and require routing as well. I think
networks have the ability to replicate any kind of hardware logic, if you can
create a processor that does it in real life, then a network could be setup
to do the same... At least I think so...
When its configured to be a persistent network (where things only update if
necesary), then timing is less of an issue, although a part of the network
will probably be setup to act like a timer, or some input bits will take in
an external timer, but for this kind of network its less important to know
when they finish its work because they only update if their work needs to be
changed.
Leyland Needham