Egregoros

Signal feed

Timeline

Post

Remote status

Context

5
I guess you could technically do what I want with extensions, but it would just be an extension to add a whole other instruction set... So basically it's just a new processor anyway.

I want to make every instruction asynchronous using a belt where operands are always taken off the close end of the belt, and results are written to wherever on the belt the instruction indicates. In hardware, the close end is a cache and the far end is DRAM.

Then you can do like n way hyperthreading just by interleaving belts.
Unfortunately this does not solve branch prediction or instruction caching, but there's a reasonable chance that the same general method would be possible for those as well.

Branch instructions would just have to return a result which is thrown to the belt, and that is the branch predictor context which becomes the 2nd operand of the next branch.
Well, a Turing machine IIRC is reading an instruction tape, and this is about managing operands in memory - whilst giving the compiler some say into how things should work.

But for it to really work, there needs to be a similar design for instructions, to get rid of the icache - this would be more Turing like indeed.

Replies

4
Okay yeah, so it has a jmp insn on the tape. Very classical von Neumann.

Like I said, I'm really not sure how to do instructions. Either you prepare the belt for both possible directions, and then use skip instructions to discard what you didn't need, or you basically spawn a new thread and exit so your belt is swept up in hardware.