[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